1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
pub const Format = enum(u32) {
argb8888 = 0,
xrgb8888 = 1,
c1 = 0x20203143,
d1 = 0x20203144,
r1 = 0x20203152,
c2 = 0x20203243,
d2 = 0x20203244,
r2 = 0x20203252,
c4 = 0x20203443,
d4 = 0x20203444,
r4 = 0x20203452,
c8 = 0x20203843,
d8 = 0x20203844,
r8 = 0x20203852,
r10 = 0x20303152,
r12 = 0x20323152,
r16 = 0x20363152,
p010 = 0x30313050,
p210 = 0x30313250,
y210 = 0x30313259,
q410 = 0x30313451,
y410 = 0x30313459,
axbxgxrx106106106106 = 0x30314241,
yuv420_10bit = 0x30315559,
p030 = 0x30333050,
bgra1010102 = 0x30334142,
rgba1010102 = 0x30334152,
abgr2101010 = 0x30334241,
xbgr2101010 = 0x30334258,
argb2101010 = 0x30335241,
xrgb2101010 = 0x30335258,
vuy101010 = 0x30335556,
xvyu2101010 = 0x30335658,
bgrx1010102 = 0x30335842,
rgbx1010102 = 0x30335852,
x0l0 = 0x304c3058,
y0l0 = 0x304c3059,
q401 = 0x31303451,
yuv411 = 0x31315559,
yvu411 = 0x31315659,
nv21 = 0x3132564e,
nv61 = 0x3136564e,
p012 = 0x32313050,
y212 = 0x32313259,
y412 = 0x32313459,
bgra4444 = 0x32314142,
rgba4444 = 0x32314152,
abgr4444 = 0x32314241,
xbgr4444 = 0x32314258,
argb4444 = 0x32315241,
xrgb4444 = 0x32315258,
yuv420 = 0x32315559,
nv12 = 0x3231564e,
yvu420 = 0x32315659,
bgrx4444 = 0x32315842,
rgbx4444 = 0x32315852,
rg1616 = 0x32334752,
gr1616 = 0x32335247,
nv42 = 0x3234564e,
x0l2 = 0x324c3058,
y0l2 = 0x324c3059,
bgra8888 = 0x34324142,
rgba8888 = 0x34324152,
abgr8888 = 0x34324241,
xbgr8888 = 0x34324258,
bgr888 = 0x34324742,
rgb888 = 0x34324752,
vuy888 = 0x34325556,
yuv444 = 0x34325559,
nv24 = 0x3432564e,
yvu444 = 0x34325659,
bgrx8888 = 0x34325842,
rgbx8888 = 0x34325852,
bgra5551 = 0x35314142,
rgba5551 = 0x35314152,
abgr1555 = 0x35314241,
xbgr1555 = 0x35314258,
argb1555 = 0x35315241,
xrgb1555 = 0x35315258,
nv15 = 0x3531564e,
bgrx5551 = 0x35315842,
rgbx5551 = 0x35315852,
p016 = 0x36313050,
y216 = 0x36313259,
y416 = 0x36313459,
bgr565 = 0x36314742,
rgb565 = 0x36314752,
yuv422 = 0x36315559,
nv16 = 0x3631564e,
yvu422 = 0x36315659,
xvyu12_16161616 = 0x36335658,
yuv420_8bit = 0x38305559,
abgr16161616 = 0x38344241,
xbgr16161616 = 0x38344258,
argb16161616 = 0x38345241,
xrgb16161616 = 0x38345258,
xvyu16161616 = 0x38345658,
rg88 = 0x38384752,
gr88 = 0x38385247,
bgr565_a8 = 0x38413542,
rgb565_a8 = 0x38413552,
bgr888_a8 = 0x38413842,
rgb888_a8 = 0x38413852,
xbgr8888_a8 = 0x38414258,
xrgb8888_a8 = 0x38415258,
bgrx8888_a8 = 0x38415842,
rgbx8888_a8 = 0x38415852,
rgb332 = 0x38424752,
bgr233 = 0x38524742,
yvu410 = 0x39555659,
yuv410 = 0x39565559,
abgr16161616f = 0x48344241,
xbgr16161616f = 0x48344258,
argb16161616f = 0x48345241,
xrgb16161616f = 0x48345258,
yvyu = 0x55595659,
ayuv = 0x56555941,
xyuv8888 = 0x56555958,
yuyv = 0x56595559,
avuy8888 = 0x59555641,
xvuy8888 = 0x59555658,
vyuy = 0x59555956,
uyvy = 0x59565955,
pub fn bytes_per_pixel(self: @This()) usize {
return switch (self) {
.argb8888 => 4,
else => @panic("unimplemented"),
};
}
pub fn Pixel(self: @This()) type {
return switch (self) {
.argb8888 => packed struct {
alpha: u8,
red: u8,
green: u8,
blue: u8
},
else => @panic("unimplemented"),
};
}
};
|