38
44
/* OpenGL doesn't have GL_UNSIGNED_BYTE_4_4, so we must define our own type
39
45
* for GL_LUMINANCE4_ALPHA4. */
40
46
#define MESA_UNSIGNED_BYTE_4_4 (GL_UNSIGNED_BYTE<<1)
50
* Max number of bytes for any non-compressed pixel format below, or for
51
* intermediate pixel storage in Mesa. This should never be less than
52
* 16. Maybe 32 someday?
54
#define MAX_PIXEL_BYTES 16
44
58
* Mesa texture/renderbuffer image formats.
57
71
MESA_FORMAT_RGBA8888_REV, /* AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */
58
72
MESA_FORMAT_ARGB8888, /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */
59
73
MESA_FORMAT_ARGB8888_REV, /* BBBB BBBB GGGG GGGG RRRR RRRR AAAA AAAA */
74
MESA_FORMAT_RGBX8888, /* RRRR RRRR GGGG GGGG BBBB BBBB XXXX XXXX */
75
MESA_FORMAT_RGBX8888_REV, /* xxxx xxxx BBBB BBBB GGGG GGGG RRRR RRRR */
60
76
MESA_FORMAT_XRGB8888, /* xxxx xxxx RRRR RRRR GGGG GGGG BBBB BBBB */
61
77
MESA_FORMAT_XRGB8888_REV, /* BBBB BBBB GGGG GGGG RRRR RRRR xxxx xxxx */
62
78
MESA_FORMAT_RGB888, /* RRRR RRRR GGGG GGGG BBBB BBBB */
80
96
MESA_FORMAT_L16, /* LLLL LLLL LLLL LLLL */
81
97
MESA_FORMAT_I8, /* IIII IIII */
82
98
MESA_FORMAT_I16, /* IIII IIII IIII IIII */
83
MESA_FORMAT_CI8, /* CCCC CCCC */
84
99
MESA_FORMAT_YCBCR, /* YYYY YYYY UorV UorV */
85
100
MESA_FORMAT_YCBCR_REV, /* UorV UorV YYYY YYYY */
86
101
MESA_FORMAT_R8, /* RRRR RRRR */
87
MESA_FORMAT_RG88, /* RRRR RRRR GGGG GGGG */
88
MESA_FORMAT_RG88_REV, /* GGGG GGGG RRRR RRRR */
102
MESA_FORMAT_GR88, /* GGGG GGGG RRRR RRRR */
103
MESA_FORMAT_RG88, /* RRRR RRRR GGGG GGGG */
89
104
MESA_FORMAT_R16, /* RRRR RRRR RRRR RRRR */
90
MESA_FORMAT_RG1616, /* RRRR RRRR RRRR RRRR GGGG GGGG GGGG GGGG */
91
MESA_FORMAT_RG1616_REV, /* GGGG GGGG GGGG GGGG RRRR RRRR RRRR RRRR */
105
MESA_FORMAT_RG1616, /* GGGG GGGG GGGG GGGG RRRR RRRR RRRR RRRR */
106
MESA_FORMAT_RG1616_REV, /* RRRR RRRR RRRR RRRR GGGG GGGG GGGG GGGG */
92
107
MESA_FORMAT_ARGB2101010, /* AARR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */
93
108
MESA_FORMAT_Z24_S8, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */
94
109
MESA_FORMAT_S8_Z24, /* SSSS SSSS ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */
103
118
* \name 8-bit/channel sRGB formats
121
MESA_FORMAT_SRGB8, /* RRRR RRRR GGGG GGGG BBBB BBBB */
122
MESA_FORMAT_SRGBA8, /* RRRR RRRR GGGG GGGG BBBB BBBB AAAA AAAA */
123
MESA_FORMAT_SARGB8, /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */
124
MESA_FORMAT_SL8, /* LLLL LLLL */
125
MESA_FORMAT_SLA8, /* AAAA AAAA LLLL LLLL */
111
126
MESA_FORMAT_SRGB_DXT1,
112
127
MESA_FORMAT_SRGBA_DXT1,
113
128
MESA_FORMAT_SRGBA_DXT3,
153
168
* XXX Note: these are just stand-ins for some better hardware
154
169
* formats TBD such as BGRA or ARGB.
171
MESA_FORMAT_ALPHA_UINT8,
172
MESA_FORMAT_ALPHA_UINT16,
173
MESA_FORMAT_ALPHA_UINT32,
174
MESA_FORMAT_ALPHA_INT8,
175
MESA_FORMAT_ALPHA_INT16,
176
MESA_FORMAT_ALPHA_INT32,
178
MESA_FORMAT_INTENSITY_UINT8,
179
MESA_FORMAT_INTENSITY_UINT16,
180
MESA_FORMAT_INTENSITY_UINT32,
181
MESA_FORMAT_INTENSITY_INT8,
182
MESA_FORMAT_INTENSITY_INT16,
183
MESA_FORMAT_INTENSITY_INT32,
185
MESA_FORMAT_LUMINANCE_UINT8,
186
MESA_FORMAT_LUMINANCE_UINT16,
187
MESA_FORMAT_LUMINANCE_UINT32,
188
MESA_FORMAT_LUMINANCE_INT8,
189
MESA_FORMAT_LUMINANCE_INT16,
190
MESA_FORMAT_LUMINANCE_INT32,
192
MESA_FORMAT_LUMINANCE_ALPHA_UINT8,
193
MESA_FORMAT_LUMINANCE_ALPHA_UINT16,
194
MESA_FORMAT_LUMINANCE_ALPHA_UINT32,
195
MESA_FORMAT_LUMINANCE_ALPHA_INT8,
196
MESA_FORMAT_LUMINANCE_ALPHA_INT16,
197
MESA_FORMAT_LUMINANCE_ALPHA_INT32,
201
MESA_FORMAT_RGB_INT8,
156
202
MESA_FORMAT_RGBA_INT8,
204
MESA_FORMAT_RG_INT16,
205
MESA_FORMAT_RGB_INT16,
157
206
MESA_FORMAT_RGBA_INT16,
208
MESA_FORMAT_RG_INT32,
209
MESA_FORMAT_RGB_INT32,
158
210
MESA_FORMAT_RGBA_INT32,
161
213
* \name Non-normalized unsigned integer formats.
216
MESA_FORMAT_RG_UINT8,
217
MESA_FORMAT_RGB_UINT8,
163
218
MESA_FORMAT_RGBA_UINT8,
219
MESA_FORMAT_R_UINT16,
220
MESA_FORMAT_RG_UINT16,
221
MESA_FORMAT_RGB_UINT16,
164
222
MESA_FORMAT_RGBA_UINT16,
223
MESA_FORMAT_R_UINT32,
224
MESA_FORMAT_RG_UINT32,
225
MESA_FORMAT_RGB_UINT32,
165
226
MESA_FORMAT_RGBA_UINT32,
167
228
/* msb <------ TEXEL BITS -----------> lsb */
197
258
MESA_FORMAT_SIGNED_LA_LATC2,
261
MESA_FORMAT_ETC1_RGB8,
200
263
MESA_FORMAT_SIGNED_A8, /* AAAA AAAA */
201
264
MESA_FORMAT_SIGNED_L8, /* LLLL LLLL */
202
265
MESA_FORMAT_SIGNED_AL88, /* AAAA AAAA LLLL LLLL */
209
272
MESA_FORMAT_RGB9_E5_FLOAT,
210
273
MESA_FORMAT_R11_G11_B10_FLOAT,
275
MESA_FORMAT_Z32_FLOAT,
276
MESA_FORMAT_Z32_FLOAT_X24S8,
278
MESA_FORMAT_ARGB2101010_UINT,
212
280
MESA_FORMAT_COUNT
265
336
_mesa_get_srgb_format_linear(gl_format format);
339
_mesa_get_uncompressed_format(gl_format format);
342
_mesa_format_num_components(gl_format format);
345
_mesa_format_matches_format_and_type(gl_format gl_format,
346
GLenum format, GLenum type);
267
353
#endif /* FORMATS_H */