~ubuntu-branches/ubuntu/precise/mesa/precise-updates

« back to all changes in this revision

Viewing changes to src/mesa/main/formats.h

  • Committer: Package Import Robot
  • Author(s): Robert Hooker
  • Date: 2012-02-02 12:05:48 UTC
  • mfrom: (1.7.1) (3.3.27 sid)
  • Revision ID: package-import@ubuntu.com-20120202120548-nvkma85jq0h4coix
Tags: 8.0~rc2-0ubuntu4
Drop drisearchdir handling, it is no longer needed with multiarch
and dri-alternates being removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
 
36
36
#include <GL/gl.h>
37
37
 
 
38
 
 
39
#ifdef __cplusplus
 
40
extern "C" {
 
41
#endif
 
42
 
 
43
 
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)
41
47
 
42
48
 
43
49
/**
 
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?
 
53
 */
 
54
#define MAX_PIXEL_BYTES 16
 
55
 
 
56
 
 
57
/**
44
58
 * Mesa texture/renderbuffer image formats.
45
59
 */
46
60
typedef enum
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
104
119
    */
105
120
   /*@{*/
106
 
   MESA_FORMAT_SRGB8,
107
 
   MESA_FORMAT_SRGBA8,
108
 
   MESA_FORMAT_SARGB8,
109
 
   MESA_FORMAT_SL8,
110
 
   MESA_FORMAT_SLA8,
 
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.
155
170
    */
 
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,
 
177
 
 
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,
 
184
 
 
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,
 
191
 
 
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,
 
198
 
 
199
   MESA_FORMAT_R_INT8,
 
200
   MESA_FORMAT_RG_INT8,
 
201
   MESA_FORMAT_RGB_INT8,
156
202
   MESA_FORMAT_RGBA_INT8,
 
203
   MESA_FORMAT_R_INT16,
 
204
   MESA_FORMAT_RG_INT16,
 
205
   MESA_FORMAT_RGB_INT16,
157
206
   MESA_FORMAT_RGBA_INT16,
 
207
   MESA_FORMAT_R_INT32,
 
208
   MESA_FORMAT_RG_INT32,
 
209
   MESA_FORMAT_RGB_INT32,
158
210
   MESA_FORMAT_RGBA_INT32,
159
211
 
160
212
   /**
161
213
    * \name Non-normalized unsigned integer formats.
162
214
    */
 
215
   MESA_FORMAT_R_UINT8,
 
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,
166
227
 
167
228
                                  /* msb <------ TEXEL BITS -----------> lsb */
197
258
   MESA_FORMAT_SIGNED_LA_LATC2,
198
259
   /*@}*/
199
260
 
 
261
   MESA_FORMAT_ETC1_RGB8,
 
262
 
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,
211
274
 
 
275
   MESA_FORMAT_Z32_FLOAT,
 
276
   MESA_FORMAT_Z32_FLOAT_X24S8,
 
277
 
 
278
   MESA_FORMAT_ARGB2101010_UINT,
 
279
 
212
280
   MESA_FORMAT_COUNT
213
281
} gl_format;
214
282
 
222
290
extern GLint
223
291
_mesa_get_format_bits(gl_format format, GLenum pname);
224
292
 
 
293
extern GLuint
 
294
_mesa_get_format_max_bits(gl_format format);
 
295
 
225
296
extern GLenum
226
297
_mesa_get_format_datatype(gl_format format);
227
298
 
264
335
extern gl_format
265
336
_mesa_get_srgb_format_linear(gl_format format);
266
337
 
 
338
extern gl_format
 
339
_mesa_get_uncompressed_format(gl_format format);
 
340
 
 
341
extern GLuint
 
342
_mesa_format_num_components(gl_format format);
 
343
 
 
344
GLboolean
 
345
_mesa_format_matches_format_and_type(gl_format gl_format,
 
346
                                     GLenum format, GLenum type);
 
347
 
 
348
 
 
349
#ifdef __cplusplus
 
350
}
 
351
#endif
 
352
 
267
353
#endif /* FORMATS_H */