Merge branch 'mesa_7_7_branch'
[mesa.git] / src / mesa / main / get_gen.py
1 #!/usr/bin/env python
2
3 # Mesa 3-D graphics library
4 #
5 # Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
6 #
7 # Permission is hereby granted, free of charge, to any person obtaining a
8 # copy of this software and associated documentation files (the "Software"),
9 # to deal in the Software without restriction, including without limitation
10 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 # and/or sell copies of the Software, and to permit persons to whom the
12 # Software is furnished to do so, subject to the following conditions:
13 #
14 # The above copyright notice and this permission notice shall be included
15 # in all copies or substantial portions of the Software.
16 #
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 # BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
24
25 # This script is used to generate the get.c file:
26 # python get_gen.py > get.c
27
28
29 import string
30
31
32 GLint = 1
33 GLenum = 2
34 GLfloat = 3
35 GLdouble = 4
36 GLboolean = 5
37 GLfloatN = 6 # A normalized value, such as a color or depth range
38 GLint64 = 7
39
40
41 TypeStrings = {
42 GLint : "GLint",
43 GLenum : "GLenum",
44 GLfloat : "GLfloat",
45 GLdouble : "GLdouble",
46 GLboolean : "GLboolean",
47 GLint64 : "GLint64"
48 }
49
50
51 # Each entry is a tuple of:
52 # - the GL state name, such as GL_CURRENT_COLOR
53 # - the state datatype, one of GLint, GLfloat, GLboolean or GLenum
54 # - list of code fragments to get the state, such as ["ctx->Foo.Bar"]
55 # - optional extra code or empty string. If present, "CONVERSION" will be
56 # replaced by ENUM_TO_FLOAT, INT_TO_FLOAT, etc.
57 # - optional extensions to check, or None
58 #
59 StateVars = [
60 ( "GL_ACCUM_RED_BITS", GLint, ["ctx->DrawBuffer->Visual.accumRedBits"],
61 "", None ),
62 ( "GL_ACCUM_GREEN_BITS", GLint, ["ctx->DrawBuffer->Visual.accumGreenBits"],
63 "", None ),
64 ( "GL_ACCUM_BLUE_BITS", GLint, ["ctx->DrawBuffer->Visual.accumBlueBits"],
65 "", None ),
66 ( "GL_ACCUM_ALPHA_BITS", GLint, ["ctx->DrawBuffer->Visual.accumAlphaBits"],
67 "", None ),
68 ( "GL_ACCUM_CLEAR_VALUE", GLfloatN,
69 [ "ctx->Accum.ClearColor[0]",
70 "ctx->Accum.ClearColor[1]",
71 "ctx->Accum.ClearColor[2]",
72 "ctx->Accum.ClearColor[3]" ],
73 "", None ),
74 ( "GL_ALPHA_BIAS", GLfloat, ["ctx->Pixel.AlphaBias"], "", None ),
75 ( "GL_ALPHA_BITS", GLint, ["ctx->DrawBuffer->Visual.alphaBits"],
76 "", None ),
77 ( "GL_ALPHA_SCALE", GLfloat, ["ctx->Pixel.AlphaScale"], "", None ),
78 ( "GL_ALPHA_TEST", GLboolean, ["ctx->Color.AlphaEnabled"], "", None ),
79 ( "GL_ALPHA_TEST_FUNC", GLenum, ["ctx->Color.AlphaFunc"], "", None ),
80 ( "GL_ALPHA_TEST_REF", GLfloatN, ["ctx->Color.AlphaRef"], "", None ),
81 ( "GL_ATTRIB_STACK_DEPTH", GLint, ["ctx->AttribStackDepth"], "", None ),
82 ( "GL_AUTO_NORMAL", GLboolean, ["ctx->Eval.AutoNormal"], "", None ),
83 ( "GL_AUX_BUFFERS", GLint, ["ctx->DrawBuffer->Visual.numAuxBuffers"],
84 "", None ),
85 ( "GL_BLEND", GLboolean, ["(ctx->Color.BlendEnabled & 1)"], "", None ),
86 ( "GL_BLEND_DST", GLenum, ["ctx->Color.BlendDstRGB"], "", None ),
87 ( "GL_BLEND_SRC", GLenum, ["ctx->Color.BlendSrcRGB"], "", None ),
88 ( "GL_BLEND_SRC_RGB_EXT", GLenum, ["ctx->Color.BlendSrcRGB"], "", None ),
89 ( "GL_BLEND_DST_RGB_EXT", GLenum, ["ctx->Color.BlendDstRGB"], "", None ),
90 ( "GL_BLEND_SRC_ALPHA_EXT", GLenum, ["ctx->Color.BlendSrcA"], "", None ),
91 ( "GL_BLEND_DST_ALPHA_EXT", GLenum, ["ctx->Color.BlendDstA"], "", None ),
92 ( "GL_BLEND_EQUATION", GLenum, ["ctx->Color.BlendEquationRGB "], "", None),
93 ( "GL_BLEND_EQUATION_ALPHA_EXT", GLenum, ["ctx->Color.BlendEquationA "],
94 "", None ),
95 ( "GL_BLEND_COLOR_EXT", GLfloatN,
96 [ "ctx->Color.BlendColor[0]",
97 "ctx->Color.BlendColor[1]",
98 "ctx->Color.BlendColor[2]",
99 "ctx->Color.BlendColor[3]"], "", None ),
100 ( "GL_BLUE_BIAS", GLfloat, ["ctx->Pixel.BlueBias"], "", None ),
101 ( "GL_BLUE_BITS", GLint, ["ctx->DrawBuffer->Visual.blueBits"], "", None ),
102 ( "GL_BLUE_SCALE", GLfloat, ["ctx->Pixel.BlueScale"], "", None ),
103 ( "GL_CLIENT_ATTRIB_STACK_DEPTH", GLint,
104 ["ctx->ClientAttribStackDepth"], "", None ),
105 ( "GL_CLIP_PLANE0", GLboolean,
106 [ "(ctx->Transform.ClipPlanesEnabled >> 0) & 1" ], "", None ),
107 ( "GL_CLIP_PLANE1", GLboolean,
108 [ "(ctx->Transform.ClipPlanesEnabled >> 1) & 1" ], "", None ),
109 ( "GL_CLIP_PLANE2", GLboolean,
110 [ "(ctx->Transform.ClipPlanesEnabled >> 2) & 1" ], "", None ),
111 ( "GL_CLIP_PLANE3", GLboolean,
112 [ "(ctx->Transform.ClipPlanesEnabled >> 3) & 1" ], "", None ),
113 ( "GL_CLIP_PLANE4", GLboolean,
114 [ "(ctx->Transform.ClipPlanesEnabled >> 4) & 1" ], "", None ),
115 ( "GL_CLIP_PLANE5", GLboolean,
116 [ "(ctx->Transform.ClipPlanesEnabled >> 5) & 1" ], "", None ),
117 ( "GL_COLOR_CLEAR_VALUE", GLfloatN,
118 [ "ctx->Color.ClearColor[0]",
119 "ctx->Color.ClearColor[1]",
120 "ctx->Color.ClearColor[2]",
121 "ctx->Color.ClearColor[3]" ], "", None ),
122 ( "GL_COLOR_MATERIAL", GLboolean,
123 ["ctx->Light.ColorMaterialEnabled"], "", None ),
124 ( "GL_COLOR_MATERIAL_FACE", GLenum,
125 ["ctx->Light.ColorMaterialFace"], "", None ),
126 ( "GL_COLOR_MATERIAL_PARAMETER", GLenum,
127 ["ctx->Light.ColorMaterialMode"], "", None ),
128 ( "GL_COLOR_WRITEMASK", GLint,
129 [ "ctx->Color.ColorMask[0][RCOMP] ? 1 : 0",
130 "ctx->Color.ColorMask[0][GCOMP] ? 1 : 0",
131 "ctx->Color.ColorMask[0][BCOMP] ? 1 : 0",
132 "ctx->Color.ColorMask[0][ACOMP] ? 1 : 0" ], "", None ),
133 ( "GL_CULL_FACE", GLboolean, ["ctx->Polygon.CullFlag"], "", None ),
134 ( "GL_CULL_FACE_MODE", GLenum, ["ctx->Polygon.CullFaceMode"], "", None ),
135 ( "GL_CURRENT_COLOR", GLfloatN,
136 [ "ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]",
137 "ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]",
138 "ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]",
139 "ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]" ],
140 "FLUSH_CURRENT(ctx, 0);", None ),
141 ( "GL_CURRENT_INDEX", GLfloat,
142 [ "ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]" ],
143 "FLUSH_CURRENT(ctx, 0);", None ),
144 ( "GL_CURRENT_NORMAL", GLfloatN,
145 [ "ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]",
146 "ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]",
147 "ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]"],
148 "FLUSH_CURRENT(ctx, 0);", None ),
149 ( "GL_CURRENT_RASTER_COLOR", GLfloatN,
150 ["ctx->Current.RasterColor[0]",
151 "ctx->Current.RasterColor[1]",
152 "ctx->Current.RasterColor[2]",
153 "ctx->Current.RasterColor[3]"], "", None ),
154 ( "GL_CURRENT_RASTER_DISTANCE", GLfloat,
155 ["ctx->Current.RasterDistance"], "", None ),
156 ( "GL_CURRENT_RASTER_INDEX", GLfloat,
157 ["ctx->Current.RasterIndex"], "", None ),
158 ( "GL_CURRENT_RASTER_POSITION", GLfloat,
159 ["ctx->Current.RasterPos[0]",
160 "ctx->Current.RasterPos[1]",
161 "ctx->Current.RasterPos[2]",
162 "ctx->Current.RasterPos[3]"], "", None ),
163 ( "GL_CURRENT_RASTER_SECONDARY_COLOR", GLfloatN,
164 ["ctx->Current.RasterSecondaryColor[0]",
165 "ctx->Current.RasterSecondaryColor[1]",
166 "ctx->Current.RasterSecondaryColor[2]",
167 "ctx->Current.RasterSecondaryColor[3]"], "", None ),
168 ( "GL_CURRENT_RASTER_TEXTURE_COORDS", GLfloat,
169 ["ctx->Current.RasterTexCoords[texUnit][0]",
170 "ctx->Current.RasterTexCoords[texUnit][1]",
171 "ctx->Current.RasterTexCoords[texUnit][2]",
172 "ctx->Current.RasterTexCoords[texUnit][3]"],
173 "const GLuint texUnit = ctx->Texture.CurrentUnit;", None ),
174 ( "GL_CURRENT_RASTER_POSITION_VALID", GLboolean,
175 ["ctx->Current.RasterPosValid"], "", None ),
176 ( "GL_CURRENT_TEXTURE_COORDS", GLfloat,
177 ["ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]",
178 "ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]",
179 "ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]",
180 "ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]"],
181 """const GLuint texUnit = ctx->Texture.CurrentUnit;
182 FLUSH_CURRENT(ctx, 0);""", None ),
183 ( "GL_DEPTH_BIAS", GLfloat, ["ctx->Pixel.DepthBias"], "", None ),
184 ( "GL_DEPTH_BITS", GLint, ["ctx->DrawBuffer->Visual.depthBits"],
185 "", None ),
186 ( "GL_DEPTH_CLEAR_VALUE", GLfloatN, ["((GLfloat) ctx->Depth.Clear)"], "", None ),
187 ( "GL_DEPTH_FUNC", GLenum, ["ctx->Depth.Func"], "", None ),
188 ( "GL_DEPTH_RANGE", GLfloatN,
189 [ "ctx->Viewport.Near", "ctx->Viewport.Far" ], "", None ),
190 ( "GL_DEPTH_SCALE", GLfloat, ["ctx->Pixel.DepthScale"], "", None ),
191 ( "GL_DEPTH_TEST", GLboolean, ["ctx->Depth.Test"], "", None ),
192 ( "GL_DEPTH_WRITEMASK", GLboolean, ["ctx->Depth.Mask"], "", None ),
193 ( "GL_DITHER", GLboolean, ["ctx->Color.DitherFlag"], "", None ),
194 ( "GL_DOUBLEBUFFER", GLboolean,
195 ["ctx->DrawBuffer->Visual.doubleBufferMode"], "", None ),
196 ( "GL_DRAW_BUFFER", GLenum, ["ctx->DrawBuffer->ColorDrawBuffer[0]"], "", None ),
197 ( "GL_EDGE_FLAG", GLboolean, ["(ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0)"],
198 "FLUSH_CURRENT(ctx, 0);", None ),
199 ( "GL_FEEDBACK_BUFFER_SIZE", GLint, ["ctx->Feedback.BufferSize"], "", None ),
200 ( "GL_FEEDBACK_BUFFER_TYPE", GLenum, ["ctx->Feedback.Type"], "", None ),
201 ( "GL_FOG", GLboolean, ["ctx->Fog.Enabled"], "", None ),
202 ( "GL_FOG_COLOR", GLfloatN,
203 [ "ctx->Fog.Color[0]",
204 "ctx->Fog.Color[1]",
205 "ctx->Fog.Color[2]",
206 "ctx->Fog.Color[3]" ], "", None ),
207 ( "GL_FOG_DENSITY", GLfloat, ["ctx->Fog.Density"], "", None ),
208 ( "GL_FOG_END", GLfloat, ["ctx->Fog.End"], "", None ),
209 ( "GL_FOG_HINT", GLenum, ["ctx->Hint.Fog"], "", None ),
210 ( "GL_FOG_INDEX", GLfloat, ["ctx->Fog.Index"], "", None ),
211 ( "GL_FOG_MODE", GLenum, ["ctx->Fog.Mode"], "", None ),
212 ( "GL_FOG_START", GLfloat, ["ctx->Fog.Start"], "", None ),
213 ( "GL_FRONT_FACE", GLenum, ["ctx->Polygon.FrontFace"], "", None ),
214 ( "GL_GREEN_BIAS", GLfloat, ["ctx->Pixel.GreenBias"], "", None ),
215 ( "GL_GREEN_BITS", GLint, ["ctx->DrawBuffer->Visual.greenBits"],
216 "", None ),
217 ( "GL_GREEN_SCALE", GLfloat, ["ctx->Pixel.GreenScale"], "", None ),
218 ( "GL_INDEX_BITS", GLint, ["ctx->DrawBuffer->Visual.indexBits"],
219 "", None ),
220 ( "GL_INDEX_CLEAR_VALUE", GLint, ["ctx->Color.ClearIndex"], "", None ),
221 ( "GL_INDEX_MODE", GLboolean, ["!ctx->DrawBuffer->Visual.rgbMode"],
222 "", None ),
223 ( "GL_INDEX_OFFSET", GLint, ["ctx->Pixel.IndexOffset"], "", None ),
224 ( "GL_INDEX_SHIFT", GLint, ["ctx->Pixel.IndexShift"], "", None ),
225 ( "GL_INDEX_WRITEMASK", GLint, ["ctx->Color.IndexMask"], "", None ),
226 ( "GL_LIGHT0", GLboolean, ["ctx->Light.Light[0].Enabled"], "", None ),
227 ( "GL_LIGHT1", GLboolean, ["ctx->Light.Light[1].Enabled"], "", None ),
228 ( "GL_LIGHT2", GLboolean, ["ctx->Light.Light[2].Enabled"], "", None ),
229 ( "GL_LIGHT3", GLboolean, ["ctx->Light.Light[3].Enabled"], "", None ),
230 ( "GL_LIGHT4", GLboolean, ["ctx->Light.Light[4].Enabled"], "", None ),
231 ( "GL_LIGHT5", GLboolean, ["ctx->Light.Light[5].Enabled"], "", None ),
232 ( "GL_LIGHT6", GLboolean, ["ctx->Light.Light[6].Enabled"], "", None ),
233 ( "GL_LIGHT7", GLboolean, ["ctx->Light.Light[7].Enabled"], "", None ),
234 ( "GL_LIGHTING", GLboolean, ["ctx->Light.Enabled"], "", None ),
235 ( "GL_LIGHT_MODEL_AMBIENT", GLfloatN,
236 ["ctx->Light.Model.Ambient[0]",
237 "ctx->Light.Model.Ambient[1]",
238 "ctx->Light.Model.Ambient[2]",
239 "ctx->Light.Model.Ambient[3]"], "", None ),
240 ( "GL_LIGHT_MODEL_COLOR_CONTROL", GLenum,
241 ["ctx->Light.Model.ColorControl"], "", None ),
242 ( "GL_LIGHT_MODEL_LOCAL_VIEWER", GLboolean,
243 ["ctx->Light.Model.LocalViewer"], "", None ),
244 ( "GL_LIGHT_MODEL_TWO_SIDE", GLboolean, ["ctx->Light.Model.TwoSide"], "", None ),
245 ( "GL_LINE_SMOOTH", GLboolean, ["ctx->Line.SmoothFlag"], "", None ),
246 ( "GL_LINE_SMOOTH_HINT", GLenum, ["ctx->Hint.LineSmooth"], "", None ),
247 ( "GL_LINE_STIPPLE", GLboolean, ["ctx->Line.StippleFlag"], "", None ),
248 ( "GL_LINE_STIPPLE_PATTERN", GLint, ["ctx->Line.StipplePattern"], "", None ),
249 ( "GL_LINE_STIPPLE_REPEAT", GLint, ["ctx->Line.StippleFactor"], "", None ),
250 ( "GL_LINE_WIDTH", GLfloat, ["ctx->Line.Width"], "", None ),
251 ( "GL_LINE_WIDTH_GRANULARITY", GLfloat,
252 ["ctx->Const.LineWidthGranularity"], "", None ),
253 ( "GL_LINE_WIDTH_RANGE", GLfloat,
254 ["ctx->Const.MinLineWidthAA",
255 "ctx->Const.MaxLineWidthAA"], "", None ),
256 ( "GL_ALIASED_LINE_WIDTH_RANGE", GLfloat,
257 ["ctx->Const.MinLineWidth",
258 "ctx->Const.MaxLineWidth"], "", None ),
259 ( "GL_LIST_BASE", GLint, ["ctx->List.ListBase"], "", None ),
260 ( "GL_LIST_INDEX", GLint, ["(ctx->ListState.CurrentList ? ctx->ListState.CurrentList->Name : 0)"], "", None ),
261 ( "GL_LIST_MODE", GLenum, ["mode"],
262 """GLenum mode;
263 if (!ctx->CompileFlag)
264 mode = 0;
265 else if (ctx->ExecuteFlag)
266 mode = GL_COMPILE_AND_EXECUTE;
267 else
268 mode = GL_COMPILE;""", None ),
269 ( "GL_INDEX_LOGIC_OP", GLboolean, ["ctx->Color.IndexLogicOpEnabled"], "", None ),
270 ( "GL_COLOR_LOGIC_OP", GLboolean, ["ctx->Color.ColorLogicOpEnabled"], "", None ),
271 ( "GL_LOGIC_OP_MODE", GLenum, ["ctx->Color.LogicOp"], "", None ),
272 ( "GL_MAP1_COLOR_4", GLboolean, ["ctx->Eval.Map1Color4"], "", None ),
273 ( "GL_MAP1_GRID_DOMAIN", GLfloat,
274 ["ctx->Eval.MapGrid1u1",
275 "ctx->Eval.MapGrid1u2"], "", None ),
276 ( "GL_MAP1_GRID_SEGMENTS", GLint, ["ctx->Eval.MapGrid1un"], "", None ),
277 ( "GL_MAP1_INDEX", GLboolean, ["ctx->Eval.Map1Index"], "", None ),
278 ( "GL_MAP1_NORMAL", GLboolean, ["ctx->Eval.Map1Normal"], "", None ),
279 ( "GL_MAP1_TEXTURE_COORD_1", GLboolean, ["ctx->Eval.Map1TextureCoord1"], "", None ),
280 ( "GL_MAP1_TEXTURE_COORD_2", GLboolean, ["ctx->Eval.Map1TextureCoord2"], "", None ),
281 ( "GL_MAP1_TEXTURE_COORD_3", GLboolean, ["ctx->Eval.Map1TextureCoord3"], "", None ),
282 ( "GL_MAP1_TEXTURE_COORD_4", GLboolean, ["ctx->Eval.Map1TextureCoord4"], "", None ),
283 ( "GL_MAP1_VERTEX_3", GLboolean, ["ctx->Eval.Map1Vertex3"], "", None ),
284 ( "GL_MAP1_VERTEX_4", GLboolean, ["ctx->Eval.Map1Vertex4"], "", None ),
285 ( "GL_MAP2_COLOR_4", GLboolean, ["ctx->Eval.Map2Color4"], "", None ),
286 ( "GL_MAP2_GRID_DOMAIN", GLfloat,
287 ["ctx->Eval.MapGrid2u1",
288 "ctx->Eval.MapGrid2u2",
289 "ctx->Eval.MapGrid2v1",
290 "ctx->Eval.MapGrid2v2"], "", None ),
291 ( "GL_MAP2_GRID_SEGMENTS", GLint,
292 ["ctx->Eval.MapGrid2un",
293 "ctx->Eval.MapGrid2vn"], "", None ),
294 ( "GL_MAP2_INDEX", GLboolean, ["ctx->Eval.Map2Index"], "", None ),
295 ( "GL_MAP2_NORMAL", GLboolean, ["ctx->Eval.Map2Normal"], "", None ),
296 ( "GL_MAP2_TEXTURE_COORD_1", GLboolean, ["ctx->Eval.Map2TextureCoord1"], "", None ),
297 ( "GL_MAP2_TEXTURE_COORD_2", GLboolean, ["ctx->Eval.Map2TextureCoord2"], "", None ),
298 ( "GL_MAP2_TEXTURE_COORD_3", GLboolean, ["ctx->Eval.Map2TextureCoord3"], "", None ),
299 ( "GL_MAP2_TEXTURE_COORD_4", GLboolean, ["ctx->Eval.Map2TextureCoord4"], "", None ),
300 ( "GL_MAP2_VERTEX_3", GLboolean, ["ctx->Eval.Map2Vertex3"], "", None ),
301 ( "GL_MAP2_VERTEX_4", GLboolean, ["ctx->Eval.Map2Vertex4"], "", None ),
302 ( "GL_MAP_COLOR", GLboolean, ["ctx->Pixel.MapColorFlag"], "", None ),
303 ( "GL_MAP_STENCIL", GLboolean, ["ctx->Pixel.MapStencilFlag"], "", None ),
304 ( "GL_MATRIX_MODE", GLenum, ["ctx->Transform.MatrixMode"], "", None ),
305
306 ( "GL_MAX_ATTRIB_STACK_DEPTH", GLint, ["MAX_ATTRIB_STACK_DEPTH"], "", None ),
307 ( "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH", GLint, ["MAX_CLIENT_ATTRIB_STACK_DEPTH"], "", None ),
308 ( "GL_MAX_CLIP_PLANES", GLint, ["ctx->Const.MaxClipPlanes"], "", None ),
309 ( "GL_MAX_ELEMENTS_VERTICES", GLint, ["ctx->Const.MaxArrayLockSize"], "", None ),
310 ( "GL_MAX_ELEMENTS_INDICES", GLint, ["ctx->Const.MaxArrayLockSize"], "", None ),
311 ( "GL_MAX_EVAL_ORDER", GLint, ["MAX_EVAL_ORDER"], "", None ),
312 ( "GL_MAX_LIGHTS", GLint, ["ctx->Const.MaxLights"], "", None ),
313 ( "GL_MAX_LIST_NESTING", GLint, ["MAX_LIST_NESTING"], "", None ),
314 ( "GL_MAX_MODELVIEW_STACK_DEPTH", GLint, ["MAX_MODELVIEW_STACK_DEPTH"], "", None ),
315 ( "GL_MAX_NAME_STACK_DEPTH", GLint, ["MAX_NAME_STACK_DEPTH"], "", None ),
316 ( "GL_MAX_PIXEL_MAP_TABLE", GLint, ["MAX_PIXEL_MAP_TABLE"], "", None ),
317 ( "GL_MAX_PROJECTION_STACK_DEPTH", GLint, ["MAX_PROJECTION_STACK_DEPTH"], "", None ),
318 ( "GL_MAX_TEXTURE_SIZE", GLint, ["1 << (ctx->Const.MaxTextureLevels - 1)"], "", None ),
319 ( "GL_MAX_3D_TEXTURE_SIZE", GLint, ["1 << (ctx->Const.Max3DTextureLevels - 1)"], "", None ),
320 ( "GL_MAX_TEXTURE_STACK_DEPTH", GLint, ["MAX_TEXTURE_STACK_DEPTH"], "", None ),
321 ( "GL_MAX_VIEWPORT_DIMS", GLint,
322 ["ctx->Const.MaxViewportWidth", "ctx->Const.MaxViewportHeight"],
323 "", None ),
324 ( "GL_MODELVIEW_MATRIX", GLfloat,
325 [ "matrix[0]", "matrix[1]", "matrix[2]", "matrix[3]",
326 "matrix[4]", "matrix[5]", "matrix[6]", "matrix[7]",
327 "matrix[8]", "matrix[9]", "matrix[10]", "matrix[11]",
328 "matrix[12]", "matrix[13]", "matrix[14]", "matrix[15]" ],
329 "const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;", None ),
330 ( "GL_MODELVIEW_STACK_DEPTH", GLint, ["ctx->ModelviewMatrixStack.Depth + 1"], "", None ),
331 ( "GL_NAME_STACK_DEPTH", GLint, ["ctx->Select.NameStackDepth"], "", None ),
332 ( "GL_NORMALIZE", GLboolean, ["ctx->Transform.Normalize"], "", None ),
333 ( "GL_PACK_ALIGNMENT", GLint, ["ctx->Pack.Alignment"], "", None ),
334 ( "GL_PACK_LSB_FIRST", GLboolean, ["ctx->Pack.LsbFirst"], "", None ),
335 ( "GL_PACK_ROW_LENGTH", GLint, ["ctx->Pack.RowLength"], "", None ),
336 ( "GL_PACK_SKIP_PIXELS", GLint, ["ctx->Pack.SkipPixels"], "", None ),
337 ( "GL_PACK_SKIP_ROWS", GLint, ["ctx->Pack.SkipRows"], "", None ),
338 ( "GL_PACK_SWAP_BYTES", GLboolean, ["ctx->Pack.SwapBytes"], "", None ),
339 ( "GL_PACK_SKIP_IMAGES_EXT", GLint, ["ctx->Pack.SkipImages"], "", None ),
340 ( "GL_PACK_IMAGE_HEIGHT_EXT", GLint, ["ctx->Pack.ImageHeight"], "", None ),
341 ( "GL_PACK_INVERT_MESA", GLboolean, ["ctx->Pack.Invert"], "", None ),
342 ( "GL_PERSPECTIVE_CORRECTION_HINT", GLenum,
343 ["ctx->Hint.PerspectiveCorrection"], "", None ),
344 ( "GL_PIXEL_MAP_A_TO_A_SIZE", GLint, ["ctx->PixelMaps.AtoA.Size"], "", None ),
345 ( "GL_PIXEL_MAP_B_TO_B_SIZE", GLint, ["ctx->PixelMaps.BtoB.Size"], "", None ),
346 ( "GL_PIXEL_MAP_G_TO_G_SIZE", GLint, ["ctx->PixelMaps.GtoG.Size"], "", None ),
347 ( "GL_PIXEL_MAP_I_TO_A_SIZE", GLint, ["ctx->PixelMaps.ItoA.Size"], "", None ),
348 ( "GL_PIXEL_MAP_I_TO_B_SIZE", GLint, ["ctx->PixelMaps.ItoB.Size"], "", None ),
349 ( "GL_PIXEL_MAP_I_TO_G_SIZE", GLint, ["ctx->PixelMaps.ItoG.Size"], "", None ),
350 ( "GL_PIXEL_MAP_I_TO_I_SIZE", GLint, ["ctx->PixelMaps.ItoI.Size"], "", None ),
351 ( "GL_PIXEL_MAP_I_TO_R_SIZE", GLint, ["ctx->PixelMaps.ItoR.Size"], "", None ),
352 ( "GL_PIXEL_MAP_R_TO_R_SIZE", GLint, ["ctx->PixelMaps.RtoR.Size"], "", None ),
353 ( "GL_PIXEL_MAP_S_TO_S_SIZE", GLint, ["ctx->PixelMaps.StoS.Size"], "", None ),
354 ( "GL_POINT_SIZE", GLfloat, ["ctx->Point.Size"], "", None ),
355 ( "GL_POINT_SIZE_GRANULARITY", GLfloat,
356 ["ctx->Const.PointSizeGranularity"], "", None ),
357 ( "GL_POINT_SIZE_RANGE", GLfloat,
358 ["ctx->Const.MinPointSizeAA",
359 "ctx->Const.MaxPointSizeAA"], "", None ),
360 ( "GL_ALIASED_POINT_SIZE_RANGE", GLfloat,
361 ["ctx->Const.MinPointSize",
362 "ctx->Const.MaxPointSize"], "", None ),
363 ( "GL_POINT_SMOOTH", GLboolean, ["ctx->Point.SmoothFlag"], "", None ),
364 ( "GL_POINT_SMOOTH_HINT", GLenum, ["ctx->Hint.PointSmooth"], "", None ),
365 ( "GL_POINT_SIZE_MIN_EXT", GLfloat, ["ctx->Point.MinSize"], "", None ),
366 ( "GL_POINT_SIZE_MAX_EXT", GLfloat, ["ctx->Point.MaxSize"], "", None ),
367 ( "GL_POINT_FADE_THRESHOLD_SIZE_EXT", GLfloat,
368 ["ctx->Point.Threshold"], "", None ),
369 ( "GL_DISTANCE_ATTENUATION_EXT", GLfloat,
370 ["ctx->Point.Params[0]",
371 "ctx->Point.Params[1]",
372 "ctx->Point.Params[2]"], "", None ),
373 ( "GL_POLYGON_MODE", GLenum,
374 ["ctx->Polygon.FrontMode",
375 "ctx->Polygon.BackMode"], "", None ),
376 ( "GL_POLYGON_OFFSET_BIAS_EXT", GLfloat, ["ctx->Polygon.OffsetUnits"], "", None ),
377 ( "GL_POLYGON_OFFSET_FACTOR", GLfloat, ["ctx->Polygon.OffsetFactor "], "", None ),
378 ( "GL_POLYGON_OFFSET_UNITS", GLfloat, ["ctx->Polygon.OffsetUnits "], "", None ),
379 ( "GL_POLYGON_OFFSET_POINT", GLboolean, ["ctx->Polygon.OffsetPoint"], "", None ),
380 ( "GL_POLYGON_OFFSET_LINE", GLboolean, ["ctx->Polygon.OffsetLine"], "", None ),
381 ( "GL_POLYGON_OFFSET_FILL", GLboolean, ["ctx->Polygon.OffsetFill"], "", None ),
382 ( "GL_POLYGON_SMOOTH", GLboolean, ["ctx->Polygon.SmoothFlag"], "", None ),
383 ( "GL_POLYGON_SMOOTH_HINT", GLenum, ["ctx->Hint.PolygonSmooth"], "", None ),
384 ( "GL_POLYGON_STIPPLE", GLboolean, ["ctx->Polygon.StippleFlag"], "", None ),
385 ( "GL_PROJECTION_MATRIX", GLfloat,
386 [ "matrix[0]", "matrix[1]", "matrix[2]", "matrix[3]",
387 "matrix[4]", "matrix[5]", "matrix[6]", "matrix[7]",
388 "matrix[8]", "matrix[9]", "matrix[10]", "matrix[11]",
389 "matrix[12]", "matrix[13]", "matrix[14]", "matrix[15]" ],
390 "const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;", None ),
391 ( "GL_PROJECTION_STACK_DEPTH", GLint,
392 ["ctx->ProjectionMatrixStack.Depth + 1"], "", None ),
393 ( "GL_READ_BUFFER", GLenum, ["ctx->ReadBuffer->ColorReadBuffer"], "", None ),
394 ( "GL_RED_BIAS", GLfloat, ["ctx->Pixel.RedBias"], "", None ),
395 ( "GL_RED_BITS", GLint, ["ctx->DrawBuffer->Visual.redBits"], "", None ),
396 ( "GL_RED_SCALE", GLfloat, ["ctx->Pixel.RedScale"], "", None ),
397 ( "GL_RENDER_MODE", GLenum, ["ctx->RenderMode"], "", None ),
398 ( "GL_RESCALE_NORMAL", GLboolean,
399 ["ctx->Transform.RescaleNormals"], "", None ),
400 ( "GL_RGBA_MODE", GLboolean, ["ctx->DrawBuffer->Visual.rgbMode"],
401 "", None ),
402 ( "GL_SCISSOR_BOX", GLint,
403 ["ctx->Scissor.X",
404 "ctx->Scissor.Y",
405 "ctx->Scissor.Width",
406 "ctx->Scissor.Height"], "", None ),
407 ( "GL_SCISSOR_TEST", GLboolean, ["ctx->Scissor.Enabled"], "", None ),
408 ( "GL_SELECTION_BUFFER_SIZE", GLint, ["ctx->Select.BufferSize"], "", None ),
409 ( "GL_SHADE_MODEL", GLenum, ["ctx->Light.ShadeModel"], "", None ),
410 ( "GL_SHARED_TEXTURE_PALETTE_EXT", GLboolean,
411 ["ctx->Texture.SharedPalette"], "", None ),
412 ( "GL_STENCIL_BITS", GLint, ["ctx->DrawBuffer->Visual.stencilBits"], "", None ),
413 ( "GL_STENCIL_CLEAR_VALUE", GLint, ["ctx->Stencil.Clear"], "", None ),
414 ( "GL_STENCIL_FAIL", GLenum,
415 ["ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]"], "", None ),
416 ( "GL_STENCIL_FUNC", GLenum,
417 ["ctx->Stencil.Function[ctx->Stencil.ActiveFace]"], "", None ),
418 ( "GL_STENCIL_PASS_DEPTH_FAIL", GLenum,
419 ["ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]"], "", None ),
420 ( "GL_STENCIL_PASS_DEPTH_PASS", GLenum,
421 ["ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]"], "", None ),
422 ( "GL_STENCIL_REF", GLint,
423 ["ctx->Stencil.Ref[ctx->Stencil.ActiveFace]"], "", None ),
424 ( "GL_STENCIL_TEST", GLboolean, ["ctx->Stencil.Enabled"], "", None ),
425 ( "GL_STENCIL_VALUE_MASK", GLint,
426 ["ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]"], "", None ),
427 ( "GL_STENCIL_WRITEMASK", GLint,
428 ["ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]"], "", None ),
429 ( "GL_STEREO", GLboolean, ["ctx->DrawBuffer->Visual.stereoMode"],
430 "", None ),
431 ( "GL_SUBPIXEL_BITS", GLint, ["ctx->Const.SubPixelBits"], "", None ),
432 ( "GL_TEXTURE_1D", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_1D)"], "", None ),
433 ( "GL_TEXTURE_2D", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_2D)"], "", None ),
434 ( "GL_TEXTURE_3D", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_3D)"], "", None ),
435 ( "GL_TEXTURE_1D_ARRAY_EXT", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT)"], "", ["MESA_texture_array"] ),
436 ( "GL_TEXTURE_2D_ARRAY_EXT", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT)"], "", ["MESA_texture_array"] ),
437 ( "GL_TEXTURE_BINDING_1D", GLint,
438 ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_INDEX]->Name"], "", None ),
439 ( "GL_TEXTURE_BINDING_2D", GLint,
440 ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_INDEX]->Name"], "", None ),
441 ( "GL_TEXTURE_BINDING_3D", GLint,
442 ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_3D_INDEX]->Name"], "", None ),
443 ( "GL_TEXTURE_BINDING_1D_ARRAY_EXT", GLint,
444 ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_ARRAY_INDEX]->Name"], "", ["MESA_texture_array"] ),
445 ( "GL_TEXTURE_BINDING_2D_ARRAY_EXT", GLint,
446 ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_ARRAY_INDEX]->Name"], "", ["MESA_texture_array"] ),
447 ( "GL_TEXTURE_GEN_S", GLboolean,
448 ["((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0)"], "", None ),
449 ( "GL_TEXTURE_GEN_T", GLboolean,
450 ["((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0)"], "", None ),
451 ( "GL_TEXTURE_GEN_R", GLboolean,
452 ["((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0)"], "", None ),
453 ( "GL_TEXTURE_GEN_Q", GLboolean,
454 ["((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0)"], "", None ),
455 ( "GL_TEXTURE_MATRIX", GLfloat,
456 ["matrix[0]", "matrix[1]", "matrix[2]", "matrix[3]",
457 "matrix[4]", "matrix[5]", "matrix[6]", "matrix[7]",
458 "matrix[8]", "matrix[9]", "matrix[10]", "matrix[11]",
459 "matrix[12]", "matrix[13]", "matrix[14]", "matrix[15]" ],
460 "const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;", None ),
461 ( "GL_TEXTURE_STACK_DEPTH", GLint,
462 ["ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1"], "", None ),
463 ( "GL_UNPACK_ALIGNMENT", GLint, ["ctx->Unpack.Alignment"], "", None ),
464 ( "GL_UNPACK_LSB_FIRST", GLboolean, ["ctx->Unpack.LsbFirst"], "", None ),
465 ( "GL_UNPACK_ROW_LENGTH", GLint, ["ctx->Unpack.RowLength"], "", None ),
466 ( "GL_UNPACK_SKIP_PIXELS", GLint, ["ctx->Unpack.SkipPixels"], "", None ),
467 ( "GL_UNPACK_SKIP_ROWS", GLint, ["ctx->Unpack.SkipRows"], "", None ),
468 ( "GL_UNPACK_SWAP_BYTES", GLboolean, ["ctx->Unpack.SwapBytes"], "", None ),
469 ( "GL_UNPACK_SKIP_IMAGES_EXT", GLint, ["ctx->Unpack.SkipImages"], "", None ),
470 ( "GL_UNPACK_IMAGE_HEIGHT_EXT", GLint, ["ctx->Unpack.ImageHeight"], "", None ),
471 ( "GL_UNPACK_CLIENT_STORAGE_APPLE", GLboolean, ["ctx->Unpack.ClientStorage"], "", None ),
472 ( "GL_VIEWPORT", GLint, [ "ctx->Viewport.X", "ctx->Viewport.Y",
473 "ctx->Viewport.Width", "ctx->Viewport.Height" ], "", None ),
474 ( "GL_ZOOM_X", GLfloat, ["ctx->Pixel.ZoomX"], "", None ),
475 ( "GL_ZOOM_Y", GLfloat, ["ctx->Pixel.ZoomY"], "", None ),
476
477 # Vertex arrays
478 ( "GL_VERTEX_ARRAY", GLboolean, ["ctx->Array.ArrayObj->Vertex.Enabled"], "", None ),
479 ( "GL_VERTEX_ARRAY_SIZE", GLint, ["ctx->Array.ArrayObj->Vertex.Size"], "", None ),
480 ( "GL_VERTEX_ARRAY_TYPE", GLenum, ["ctx->Array.ArrayObj->Vertex.Type"], "", None ),
481 ( "GL_VERTEX_ARRAY_STRIDE", GLint, ["ctx->Array.ArrayObj->Vertex.Stride"], "", None ),
482 ( "GL_VERTEX_ARRAY_COUNT_EXT", GLint, ["0"], "", None ),
483 ( "GL_NORMAL_ARRAY", GLenum, ["ctx->Array.ArrayObj->Normal.Enabled"], "", None ),
484 ( "GL_NORMAL_ARRAY_TYPE", GLenum, ["ctx->Array.ArrayObj->Normal.Type"], "", None ),
485 ( "GL_NORMAL_ARRAY_STRIDE", GLint, ["ctx->Array.ArrayObj->Normal.Stride"], "", None ),
486 ( "GL_NORMAL_ARRAY_COUNT_EXT", GLint, ["0"], "", None ),
487 ( "GL_COLOR_ARRAY", GLboolean, ["ctx->Array.ArrayObj->Color.Enabled"], "", None ),
488 ( "GL_COLOR_ARRAY_SIZE", GLint, ["ctx->Array.ArrayObj->Color.Size"], "", None ),
489 ( "GL_COLOR_ARRAY_TYPE", GLenum, ["ctx->Array.ArrayObj->Color.Type"], "", None ),
490 ( "GL_COLOR_ARRAY_STRIDE", GLint, ["ctx->Array.ArrayObj->Color.Stride"], "", None ),
491 ( "GL_COLOR_ARRAY_COUNT_EXT", GLint, ["0"], "", None ),
492 ( "GL_INDEX_ARRAY", GLboolean, ["ctx->Array.ArrayObj->Index.Enabled"], "", None ),
493 ( "GL_INDEX_ARRAY_TYPE", GLenum, ["ctx->Array.ArrayObj->Index.Type"], "", None ),
494 ( "GL_INDEX_ARRAY_STRIDE", GLint, ["ctx->Array.ArrayObj->Index.Stride"], "", None ),
495 ( "GL_INDEX_ARRAY_COUNT_EXT", GLint, ["0"], "", None ),
496 ( "GL_TEXTURE_COORD_ARRAY", GLboolean,
497 ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled"], "", None ),
498 ( "GL_TEXTURE_COORD_ARRAY_SIZE", GLint,
499 ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size"], "", None ),
500 ( "GL_TEXTURE_COORD_ARRAY_TYPE", GLenum,
501 ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type"], "", None ),
502 ( "GL_TEXTURE_COORD_ARRAY_STRIDE", GLint,
503 ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride"], "", None ),
504 ( "GL_TEXTURE_COORD_ARRAY_COUNT_EXT", GLint, ["0"], "", None ),
505 ( "GL_EDGE_FLAG_ARRAY", GLboolean, ["ctx->Array.ArrayObj->EdgeFlag.Enabled"], "", None ),
506 ( "GL_EDGE_FLAG_ARRAY_STRIDE", GLint, ["ctx->Array.ArrayObj->EdgeFlag.Stride"], "", None ),
507 ( "GL_EDGE_FLAG_ARRAY_COUNT_EXT", GLint, ["0"], "", None ),
508
509 # GL_ARB_multitexture
510 ( "GL_MAX_TEXTURE_UNITS_ARB", GLint,
511 ["ctx->Const.MaxTextureUnits"], "", ["ARB_multitexture"] ),
512 ( "GL_ACTIVE_TEXTURE_ARB", GLint,
513 [ "GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit"], "", ["ARB_multitexture"] ),
514 ( "GL_CLIENT_ACTIVE_TEXTURE_ARB", GLint,
515 ["GL_TEXTURE0_ARB + ctx->Array.ActiveTexture"], "", ["ARB_multitexture"] ),
516
517 # GL_ARB_texture_cube_map
518 ( "GL_TEXTURE_CUBE_MAP_ARB", GLboolean,
519 ["_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB)"], "", ["ARB_texture_cube_map"] ),
520 ( "GL_TEXTURE_BINDING_CUBE_MAP_ARB", GLint,
521 ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_CUBE_INDEX]->Name"],
522 "", ["ARB_texture_cube_map"] ),
523 ( "GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB", GLint,
524 ["(1 << (ctx->Const.MaxCubeTextureLevels - 1))"],
525 "", ["ARB_texture_cube_map"]),
526
527 # GL_ARB_texture_compression */
528 ( "GL_TEXTURE_COMPRESSION_HINT_ARB", GLint,
529 ["ctx->Hint.TextureCompression"], "", None ),
530 ( "GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB", GLint,
531 ["_mesa_get_compressed_formats(ctx, NULL, GL_FALSE)"],
532 "", None ),
533 ( "GL_COMPRESSED_TEXTURE_FORMATS_ARB", GLenum,
534 [],
535 """GLint formats[100];
536 GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
537 ASSERT(n <= 100);
538 for (i = 0; i < n; i++)
539 params[i] = CONVERSION(formats[i]);""",
540 None ),
541
542 # GL_EXT_compiled_vertex_array
543 ( "GL_ARRAY_ELEMENT_LOCK_FIRST_EXT", GLint, ["ctx->Array.LockFirst"],
544 "", ["EXT_compiled_vertex_array"] ),
545 ( "GL_ARRAY_ELEMENT_LOCK_COUNT_EXT", GLint, ["ctx->Array.LockCount"],
546 "", ["EXT_compiled_vertex_array"] ),
547
548 # GL_ARB_transpose_matrix
549 ( "GL_TRANSPOSE_COLOR_MATRIX_ARB", GLfloat,
550 ["matrix[0]", "matrix[4]", "matrix[8]", "matrix[12]",
551 "matrix[1]", "matrix[5]", "matrix[9]", "matrix[13]",
552 "matrix[2]", "matrix[6]", "matrix[10]", "matrix[14]",
553 "matrix[3]", "matrix[7]", "matrix[11]", "matrix[15]"],
554 "const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;", None ),
555 ( "GL_TRANSPOSE_MODELVIEW_MATRIX_ARB", GLfloat,
556 ["matrix[0]", "matrix[4]", "matrix[8]", "matrix[12]",
557 "matrix[1]", "matrix[5]", "matrix[9]", "matrix[13]",
558 "matrix[2]", "matrix[6]", "matrix[10]", "matrix[14]",
559 "matrix[3]", "matrix[7]", "matrix[11]", "matrix[15]"],
560 "const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;", None ),
561 ( "GL_TRANSPOSE_PROJECTION_MATRIX_ARB", GLfloat,
562 ["matrix[0]", "matrix[4]", "matrix[8]", "matrix[12]",
563 "matrix[1]", "matrix[5]", "matrix[9]", "matrix[13]",
564 "matrix[2]", "matrix[6]", "matrix[10]", "matrix[14]",
565 "matrix[3]", "matrix[7]", "matrix[11]", "matrix[15]"],
566 "const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;", None ),
567 ( "GL_TRANSPOSE_TEXTURE_MATRIX_ARB", GLfloat,
568 ["matrix[0]", "matrix[4]", "matrix[8]", "matrix[12]",
569 "matrix[1]", "matrix[5]", "matrix[9]", "matrix[13]",
570 "matrix[2]", "matrix[6]", "matrix[10]", "matrix[14]",
571 "matrix[3]", "matrix[7]", "matrix[11]", "matrix[15]"],
572 "const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;", None ),
573
574 # GL_SGI_color_matrix (also in 1.2 imaging)
575 ( "GL_COLOR_MATRIX_SGI", GLfloat,
576 ["matrix[0]", "matrix[1]", "matrix[2]", "matrix[3]",
577 "matrix[4]", "matrix[5]", "matrix[6]", "matrix[7]",
578 "matrix[8]", "matrix[9]", "matrix[10]", "matrix[11]",
579 "matrix[12]", "matrix[13]", "matrix[14]", "matrix[15]" ],
580 "const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;", None ),
581 ( "GL_COLOR_MATRIX_STACK_DEPTH_SGI", GLint,
582 ["ctx->ColorMatrixStack.Depth + 1"], "", None ),
583 ( "GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI", GLint,
584 ["MAX_COLOR_STACK_DEPTH"], "", None ),
585 ( "GL_POST_COLOR_MATRIX_RED_SCALE_SGI", GLfloat,
586 ["ctx->Pixel.PostColorMatrixScale[0]"], "", None ),
587 ( "GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI", GLfloat,
588 ["ctx->Pixel.PostColorMatrixScale[1]"], "", None ),
589 ( "GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI", GLfloat,
590 ["ctx->Pixel.PostColorMatrixScale[2]"], "", None ),
591 ( "GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI", GLfloat,
592 ["ctx->Pixel.PostColorMatrixScale[3]"], "", None ),
593 ( "GL_POST_COLOR_MATRIX_RED_BIAS_SGI", GLfloat,
594 ["ctx->Pixel.PostColorMatrixBias[0]"], "", None ),
595 ( "GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI", GLfloat,
596 ["ctx->Pixel.PostColorMatrixBias[1]"], "", None ),
597 ( "GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI", GLfloat,
598 ["ctx->Pixel.PostColorMatrixBias[2]"], "", None ),
599 ( "GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI", GLfloat,
600 ["ctx->Pixel.PostColorMatrixBias[3]"], "", None ),
601
602 # GL_EXT_convolution (also in 1.2 imaging)
603 ( "GL_CONVOLUTION_1D_EXT", GLboolean,
604 ["ctx->Pixel.Convolution1DEnabled"], "", ["EXT_convolution"] ),
605 ( "GL_CONVOLUTION_2D_EXT", GLboolean,
606 ["ctx->Pixel.Convolution2DEnabled"], "", ["EXT_convolution"] ),
607 ( "GL_SEPARABLE_2D_EXT", GLboolean,
608 ["ctx->Pixel.Separable2DEnabled"], "", ["EXT_convolution"] ),
609 ( "GL_POST_CONVOLUTION_RED_SCALE_EXT", GLfloat,
610 ["ctx->Pixel.PostConvolutionScale[0]"], "", ["EXT_convolution"] ),
611 ( "GL_POST_CONVOLUTION_GREEN_SCALE_EXT", GLfloat,
612 ["ctx->Pixel.PostConvolutionScale[1]"], "", ["EXT_convolution"] ),
613 ( "GL_POST_CONVOLUTION_BLUE_SCALE_EXT", GLfloat,
614 ["ctx->Pixel.PostConvolutionScale[2]"], "", ["EXT_convolution"] ),
615 ( "GL_POST_CONVOLUTION_ALPHA_SCALE_EXT", GLfloat,
616 ["ctx->Pixel.PostConvolutionScale[3]"], "", ["EXT_convolution"] ),
617 ( "GL_POST_CONVOLUTION_RED_BIAS_EXT", GLfloat,
618 ["ctx->Pixel.PostConvolutionBias[0]"], "", ["EXT_convolution"] ),
619 ( "GL_POST_CONVOLUTION_GREEN_BIAS_EXT", GLfloat,
620 ["ctx->Pixel.PostConvolutionBias[1]"], "", ["EXT_convolution"] ),
621 ( "GL_POST_CONVOLUTION_BLUE_BIAS_EXT", GLfloat,
622 ["ctx->Pixel.PostConvolutionBias[2]"], "", ["EXT_convolution"] ),
623 ( "GL_POST_CONVOLUTION_ALPHA_BIAS_EXT", GLfloat,
624 ["ctx->Pixel.PostConvolutionBias[3]"], "", ["EXT_convolution"] ),
625
626 # GL_EXT_histogram / GL_ARB_imaging
627 ( "GL_HISTOGRAM", GLboolean,
628 [ "ctx->Pixel.HistogramEnabled" ], "", ["EXT_histogram"] ),
629 ( "GL_MINMAX", GLboolean,
630 [ "ctx->Pixel.MinMaxEnabled" ], "", ["EXT_histogram"] ),
631
632 # GL_SGI_color_table / GL_ARB_imaging
633 ( "GL_COLOR_TABLE_SGI", GLboolean,
634 ["ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]"], "", ["SGI_color_table"] ),
635 ( "GL_POST_CONVOLUTION_COLOR_TABLE_SGI", GLboolean,
636 ["ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]"], "", ["SGI_color_table"] ),
637 ( "GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI", GLboolean,
638 ["ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]"], "", ["SGI_color_table"] ),
639
640 # GL_SGI_texture_color_table
641 ( "GL_TEXTURE_COLOR_TABLE_SGI", GLboolean,
642 ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled"],
643 "", ["SGI_texture_color_table"] ),
644
645 # GL_EXT_secondary_color
646 ( "GL_COLOR_SUM_EXT", GLboolean,
647 ["ctx->Fog.ColorSumEnabled"], "",
648 ["EXT_secondary_color", "ARB_vertex_program"] ),
649 ( "GL_CURRENT_SECONDARY_COLOR_EXT", GLfloatN,
650 ["ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]",
651 "ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]",
652 "ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]",
653 "ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]"],
654 "FLUSH_CURRENT(ctx, 0);", ["EXT_secondary_color"] ),
655 ( "GL_SECONDARY_COLOR_ARRAY_EXT", GLboolean,
656 ["ctx->Array.ArrayObj->SecondaryColor.Enabled"], "", ["EXT_secondary_color"] ),
657 ( "GL_SECONDARY_COLOR_ARRAY_TYPE_EXT", GLenum,
658 ["ctx->Array.ArrayObj->SecondaryColor.Type"], "", ["EXT_secondary_color"] ),
659 ( "GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT", GLint,
660 ["ctx->Array.ArrayObj->SecondaryColor.Stride"], "", ["EXT_secondary_color"] ),
661 ( "GL_SECONDARY_COLOR_ARRAY_SIZE_EXT", GLint,
662 ["ctx->Array.ArrayObj->SecondaryColor.Size"], "", ["EXT_secondary_color"] ),
663
664 # GL_EXT_fog_coord
665 ( "GL_CURRENT_FOG_COORDINATE_EXT", GLfloat,
666 ["ctx->Current.Attrib[VERT_ATTRIB_FOG][0]"],
667 "FLUSH_CURRENT(ctx, 0);", ["EXT_fog_coord"] ),
668 ( "GL_FOG_COORDINATE_ARRAY_EXT", GLboolean, ["ctx->Array.ArrayObj->FogCoord.Enabled"],
669 "", ["EXT_fog_coord"] ),
670 ( "GL_FOG_COORDINATE_ARRAY_TYPE_EXT", GLenum, ["ctx->Array.ArrayObj->FogCoord.Type"],
671 "", ["EXT_fog_coord"] ),
672 ( "GL_FOG_COORDINATE_ARRAY_STRIDE_EXT", GLint, ["ctx->Array.ArrayObj->FogCoord.Stride"],
673 "", ["EXT_fog_coord"] ),
674 ( "GL_FOG_COORDINATE_SOURCE_EXT", GLenum, ["ctx->Fog.FogCoordinateSource"],
675 "", ["EXT_fog_coord"] ),
676
677 # GL_EXT_texture_lod_bias
678 ( "GL_MAX_TEXTURE_LOD_BIAS_EXT", GLfloat,
679 ["ctx->Const.MaxTextureLodBias"], "", ["EXT_texture_lod_bias"]),
680
681 # GL_EXT_texture_filter_anisotropic
682 ( "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT", GLfloat,
683 ["ctx->Const.MaxTextureMaxAnisotropy"], "", ["EXT_texture_filter_anisotropic"]),
684
685 # GL_ARB_multisample
686 ( "GL_MULTISAMPLE_ARB", GLboolean,
687 ["ctx->Multisample.Enabled"], "", None ),
688 ( "GL_SAMPLE_ALPHA_TO_COVERAGE_ARB", GLboolean,
689 ["ctx->Multisample.SampleAlphaToCoverage"], "", None ),
690 ( "GL_SAMPLE_ALPHA_TO_ONE_ARB", GLboolean,
691 ["ctx->Multisample.SampleAlphaToOne"], "", None ),
692 ( "GL_SAMPLE_COVERAGE_ARB", GLboolean,
693 ["ctx->Multisample.SampleCoverage"], "", None ),
694 ( "GL_SAMPLE_COVERAGE_VALUE_ARB", GLfloat,
695 ["ctx->Multisample.SampleCoverageValue"], "", None ),
696 ( "GL_SAMPLE_COVERAGE_INVERT_ARB", GLboolean,
697 ["ctx->Multisample.SampleCoverageInvert"], "", None ),
698 ( "GL_SAMPLE_BUFFERS_ARB", GLint,
699 ["ctx->DrawBuffer->Visual.sampleBuffers"], "", None ),
700 ( "GL_SAMPLES_ARB", GLint,
701 ["ctx->DrawBuffer->Visual.samples"], "", None ),
702
703 # GL_IBM_rasterpos_clip
704 ( "GL_RASTER_POSITION_UNCLIPPED_IBM", GLboolean,
705 ["ctx->Transform.RasterPositionUnclipped"], "", ["IBM_rasterpos_clip"] ),
706
707 # GL_NV_point_sprite
708 ( "GL_POINT_SPRITE_NV", GLboolean, ["ctx->Point.PointSprite"], # == GL_POINT_SPRITE_ARB
709 "", ["NV_point_sprite", "ARB_point_sprite"] ),
710 ( "GL_POINT_SPRITE_R_MODE_NV", GLenum, ["ctx->Point.SpriteRMode"],
711 "", ["NV_point_sprite"] ),
712 ( "GL_POINT_SPRITE_COORD_ORIGIN", GLenum, ["ctx->Point.SpriteOrigin"],
713 "", ["NV_point_sprite", "ARB_point_sprite"] ),
714
715 # GL_SGIS_generate_mipmap
716 ( "GL_GENERATE_MIPMAP_HINT_SGIS", GLenum, ["ctx->Hint.GenerateMipmap"],
717 "", ["SGIS_generate_mipmap"] ),
718
719 # GL_NV_vertex_program
720 ( "GL_VERTEX_PROGRAM_BINDING_NV", GLint,
721 ["(ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0)"],
722 "", ["NV_vertex_program"] ),
723 ( "GL_VERTEX_ATTRIB_ARRAY0_NV", GLboolean,
724 ["ctx->Array.ArrayObj->VertexAttrib[0].Enabled"], "", ["NV_vertex_program"] ),
725 ( "GL_VERTEX_ATTRIB_ARRAY1_NV", GLboolean,
726 ["ctx->Array.ArrayObj->VertexAttrib[1].Enabled"], "", ["NV_vertex_program"] ),
727 ( "GL_VERTEX_ATTRIB_ARRAY2_NV", GLboolean,
728 ["ctx->Array.ArrayObj->VertexAttrib[2].Enabled"], "", ["NV_vertex_program"] ),
729 ( "GL_VERTEX_ATTRIB_ARRAY3_NV", GLboolean,
730 ["ctx->Array.ArrayObj->VertexAttrib[3].Enabled"], "", ["NV_vertex_program"] ),
731 ( "GL_VERTEX_ATTRIB_ARRAY4_NV", GLboolean,
732 ["ctx->Array.ArrayObj->VertexAttrib[4].Enabled"], "", ["NV_vertex_program"] ),
733 ( "GL_VERTEX_ATTRIB_ARRAY5_NV", GLboolean,
734 ["ctx->Array.ArrayObj->VertexAttrib[5].Enabled"], "", ["NV_vertex_program"] ),
735 ( "GL_VERTEX_ATTRIB_ARRAY6_NV", GLboolean,
736 ["ctx->Array.ArrayObj->VertexAttrib[6].Enabled"], "", ["NV_vertex_program"] ),
737 ( "GL_VERTEX_ATTRIB_ARRAY7_NV", GLboolean,
738 ["ctx->Array.ArrayObj->VertexAttrib[7].Enabled"], "", ["NV_vertex_program"] ),
739 ( "GL_VERTEX_ATTRIB_ARRAY8_NV", GLboolean,
740 ["ctx->Array.ArrayObj->VertexAttrib[8].Enabled"], "", ["NV_vertex_program"] ),
741 ( "GL_VERTEX_ATTRIB_ARRAY9_NV", GLboolean,
742 ["ctx->Array.ArrayObj->VertexAttrib[9].Enabled"], "", ["NV_vertex_program"] ),
743 ( "GL_VERTEX_ATTRIB_ARRAY10_NV", GLboolean,
744 ["ctx->Array.ArrayObj->VertexAttrib[10].Enabled"], "", ["NV_vertex_program"] ),
745 ( "GL_VERTEX_ATTRIB_ARRAY11_NV", GLboolean,
746 ["ctx->Array.ArrayObj->VertexAttrib[11].Enabled"], "", ["NV_vertex_program"] ),
747 ( "GL_VERTEX_ATTRIB_ARRAY12_NV", GLboolean,
748 ["ctx->Array.ArrayObj->VertexAttrib[12].Enabled"], "", ["NV_vertex_program"] ),
749 ( "GL_VERTEX_ATTRIB_ARRAY13_NV", GLboolean,
750 ["ctx->Array.ArrayObj->VertexAttrib[13].Enabled"], "", ["NV_vertex_program"] ),
751 ( "GL_VERTEX_ATTRIB_ARRAY14_NV", GLboolean,
752 ["ctx->Array.ArrayObj->VertexAttrib[14].Enabled"], "", ["NV_vertex_program"] ),
753 ( "GL_VERTEX_ATTRIB_ARRAY15_NV", GLboolean,
754 ["ctx->Array.ArrayObj->VertexAttrib[15].Enabled"], "", ["NV_vertex_program"] ),
755 ( "GL_MAP1_VERTEX_ATTRIB0_4_NV", GLboolean,
756 ["ctx->Eval.Map1Attrib[0]"], "", ["NV_vertex_program"] ),
757 ( "GL_MAP1_VERTEX_ATTRIB1_4_NV", GLboolean,
758 ["ctx->Eval.Map1Attrib[1]"], "", ["NV_vertex_program"] ),
759 ( "GL_MAP1_VERTEX_ATTRIB2_4_NV", GLboolean,
760 ["ctx->Eval.Map1Attrib[2]"], "", ["NV_vertex_program"] ),
761 ( "GL_MAP1_VERTEX_ATTRIB3_4_NV", GLboolean,
762 ["ctx->Eval.Map1Attrib[3]"], "", ["NV_vertex_program"] ),
763 ( "GL_MAP1_VERTEX_ATTRIB4_4_NV", GLboolean,
764 ["ctx->Eval.Map1Attrib[4]"], "", ["NV_vertex_program"] ),
765 ( "GL_MAP1_VERTEX_ATTRIB5_4_NV", GLboolean,
766 ["ctx->Eval.Map1Attrib[5]"], "", ["NV_vertex_program"] ),
767 ( "GL_MAP1_VERTEX_ATTRIB6_4_NV", GLboolean,
768 ["ctx->Eval.Map1Attrib[6]"], "", ["NV_vertex_program"] ),
769 ( "GL_MAP1_VERTEX_ATTRIB7_4_NV", GLboolean,
770 ["ctx->Eval.Map1Attrib[7]"], "", ["NV_vertex_program"] ),
771 ( "GL_MAP1_VERTEX_ATTRIB8_4_NV", GLboolean,
772 ["ctx->Eval.Map1Attrib[8]"], "", ["NV_vertex_program"] ),
773 ( "GL_MAP1_VERTEX_ATTRIB9_4_NV", GLboolean,
774 ["ctx->Eval.Map1Attrib[9]"], "", ["NV_vertex_program"] ),
775 ( "GL_MAP1_VERTEX_ATTRIB10_4_NV", GLboolean,
776 ["ctx->Eval.Map1Attrib[10]"], "", ["NV_vertex_program"] ),
777 ( "GL_MAP1_VERTEX_ATTRIB11_4_NV", GLboolean,
778 ["ctx->Eval.Map1Attrib[11]"], "", ["NV_vertex_program"] ),
779 ( "GL_MAP1_VERTEX_ATTRIB12_4_NV", GLboolean,
780 ["ctx->Eval.Map1Attrib[12]"], "", ["NV_vertex_program"] ),
781 ( "GL_MAP1_VERTEX_ATTRIB13_4_NV", GLboolean,
782 ["ctx->Eval.Map1Attrib[13]"], "", ["NV_vertex_program"] ),
783 ( "GL_MAP1_VERTEX_ATTRIB14_4_NV", GLboolean,
784 ["ctx->Eval.Map1Attrib[14]"], "", ["NV_vertex_program"] ),
785 ( "GL_MAP1_VERTEX_ATTRIB15_4_NV", GLboolean,
786 ["ctx->Eval.Map1Attrib[15]"], "", ["NV_vertex_program"] ),
787
788 # GL_NV_fragment_program
789 ( "GL_FRAGMENT_PROGRAM_NV", GLboolean,
790 ["ctx->FragmentProgram.Enabled"], "", ["NV_fragment_program"] ),
791 ( "GL_FRAGMENT_PROGRAM_BINDING_NV", GLint,
792 ["ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0"],
793 "", ["NV_fragment_program"] ),
794 ( "GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV", GLint,
795 ["MAX_NV_FRAGMENT_PROGRAM_PARAMS"], "", ["NV_fragment_program"] ),
796
797 # GL_NV_texture_rectangle
798 ( "GL_TEXTURE_RECTANGLE_NV", GLboolean,
799 ["_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV)"], "", ["NV_texture_rectangle"] ),
800 ( "GL_TEXTURE_BINDING_RECTANGLE_NV", GLint,
801 ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_RECT_INDEX]->Name"],
802 "", ["NV_texture_rectangle"] ),
803 ( "GL_MAX_RECTANGLE_TEXTURE_SIZE_NV", GLint,
804 ["ctx->Const.MaxTextureRectSize"], "", ["NV_texture_rectangle"] ),
805
806 # GL_EXT_stencil_two_side
807 ( "GL_STENCIL_TEST_TWO_SIDE_EXT", GLboolean,
808 ["ctx->Stencil.TestTwoSide"], "", ["EXT_stencil_two_side"] ),
809 ( "GL_ACTIVE_STENCIL_FACE_EXT", GLenum,
810 ["ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT"],
811 "", ["EXT_stencil_two_side"] ),
812
813 # GL_NV_light_max_exponent
814 ( "GL_MAX_SHININESS_NV", GLfloat,
815 ["ctx->Const.MaxShininess"], "", ["NV_light_max_exponent"] ),
816 ( "GL_MAX_SPOT_EXPONENT_NV", GLfloat,
817 ["ctx->Const.MaxSpotExponent"], "", ["NV_light_max_exponent"] ),
818
819 # GL_ARB_vertex_buffer_object
820 ( "GL_ARRAY_BUFFER_BINDING_ARB", GLint,
821 ["ctx->Array.ArrayBufferObj->Name"], "", None ),
822 ( "GL_VERTEX_ARRAY_BUFFER_BINDING_ARB", GLint,
823 ["ctx->Array.ArrayObj->Vertex.BufferObj->Name"], "", None ),
824 ( "GL_NORMAL_ARRAY_BUFFER_BINDING_ARB", GLint,
825 ["ctx->Array.ArrayObj->Normal.BufferObj->Name"], "", None ),
826 ( "GL_COLOR_ARRAY_BUFFER_BINDING_ARB", GLint,
827 ["ctx->Array.ArrayObj->Color.BufferObj->Name"], "", None ),
828 ( "GL_INDEX_ARRAY_BUFFER_BINDING_ARB", GLint,
829 ["ctx->Array.ArrayObj->Index.BufferObj->Name"], "", None ),
830 ( "GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB", GLint,
831 ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name"],
832 "", None ),
833 ( "GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB", GLint,
834 ["ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name"], "", None ),
835 ( "GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB", GLint,
836 ["ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name"],
837 "", None ),
838 ( "GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB", GLint,
839 ["ctx->Array.ArrayObj->FogCoord.BufferObj->Name"],
840 "", None ),
841 # GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB - not supported
842 ( "GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB", GLint,
843 ["ctx->Array.ElementArrayBufferObj->Name"],
844 "", None ),
845
846 # GL_EXT_pixel_buffer_object
847 ( "GL_PIXEL_PACK_BUFFER_BINDING_EXT", GLint,
848 ["ctx->Pack.BufferObj->Name"], "", ["EXT_pixel_buffer_object"] ),
849 ( "GL_PIXEL_UNPACK_BUFFER_BINDING_EXT", GLint,
850 ["ctx->Unpack.BufferObj->Name"], "", ["EXT_pixel_buffer_object"] ),
851
852 # GL_ARB_vertex_program
853 ( "GL_VERTEX_PROGRAM_ARB", GLboolean, # == GL_VERTEX_PROGRAM_NV
854 ["ctx->VertexProgram.Enabled"], "",
855 ["ARB_vertex_program", "NV_vertex_program"] ),
856 ( "GL_VERTEX_PROGRAM_POINT_SIZE_ARB", GLboolean, # == GL_VERTEX_PROGRAM_POINT_SIZE_NV
857 ["ctx->VertexProgram.PointSizeEnabled"], "",
858 ["ARB_vertex_program", "NV_vertex_program"] ),
859 ( "GL_VERTEX_PROGRAM_TWO_SIDE_ARB", GLboolean, # == GL_VERTEX_PROGRAM_TWO_SIDE_NV
860 ["ctx->VertexProgram.TwoSideEnabled"], "",
861 ["ARB_vertex_program", "NV_vertex_program"] ),
862 ( "GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB", GLint, # == GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
863 ["ctx->Const.MaxProgramMatrixStackDepth"], "",
864 ["ARB_vertex_program", "ARB_fragment_program", "NV_vertex_program"] ),
865 ( "GL_MAX_PROGRAM_MATRICES_ARB", GLint, # == GL_MAX_TRACK_MATRICES_NV
866 ["ctx->Const.MaxProgramMatrices"], "",
867 ["ARB_vertex_program", "ARB_fragment_program", "NV_vertex_program"] ),
868 ( "GL_CURRENT_MATRIX_STACK_DEPTH_ARB", GLboolean, # == GL_CURRENT_MATRIX_STACK_DEPTH_NV
869 ["ctx->CurrentStack->Depth + 1"], "",
870 ["ARB_vertex_program", "ARB_fragment_program", "NV_vertex_program"] ),
871 ( "GL_CURRENT_MATRIX_ARB", GLfloat, # == GL_CURRENT_MATRIX_NV
872 ["matrix[0]", "matrix[1]", "matrix[2]", "matrix[3]",
873 "matrix[4]", "matrix[5]", "matrix[6]", "matrix[7]",
874 "matrix[8]", "matrix[9]", "matrix[10]", "matrix[11]",
875 "matrix[12]", "matrix[13]", "matrix[14]", "matrix[15]" ],
876 "const GLfloat *matrix = ctx->CurrentStack->Top->m;",
877 ["ARB_vertex_program", "ARB_fragment_program", "NV_fragment_program"] ),
878 ( "GL_TRANSPOSE_CURRENT_MATRIX_ARB", GLfloat,
879 ["matrix[0]", "matrix[4]", "matrix[8]", "matrix[12]",
880 "matrix[1]", "matrix[5]", "matrix[9]", "matrix[13]",
881 "matrix[2]", "matrix[6]", "matrix[10]", "matrix[14]",
882 "matrix[3]", "matrix[7]", "matrix[11]", "matrix[15]"],
883 "const GLfloat *matrix = ctx->CurrentStack->Top->m;",
884 ["ARB_vertex_program", "ARB_fragment_program"] ),
885 ( "GL_MAX_VERTEX_ATTRIBS_ARB", GLint,
886 ["ctx->Const.VertexProgram.MaxAttribs"], "", ["ARB_vertex_program"] ),
887 ( "GL_PROGRAM_ERROR_POSITION_ARB", GLint, # == GL_PROGRAM_ERROR_POSITION_NV
888 ["ctx->Program.ErrorPos"], "", ["NV_vertex_program",
889 "ARB_vertex_program", "NV_fragment_program", "ARB_fragment_program"] ),
890
891 # GL_ARB_fragment_program
892 ( "GL_FRAGMENT_PROGRAM_ARB", GLboolean,
893 ["ctx->FragmentProgram.Enabled"], "", ["ARB_fragment_program"] ),
894 ( "GL_MAX_TEXTURE_COORDS_ARB", GLint, # == GL_MAX_TEXTURE_COORDS_NV
895 ["ctx->Const.MaxTextureCoordUnits"], "",
896 ["ARB_fragment_program", "NV_fragment_program"] ),
897 ( "GL_MAX_TEXTURE_IMAGE_UNITS_ARB", GLint, # == GL_MAX_TEXTURE_IMAGE_UNITS_NV
898 ["ctx->Const.MaxTextureImageUnits"], "",
899 ["ARB_fragment_program", "NV_fragment_program"] ),
900
901 # GL_EXT_depth_bounds_test
902 ( "GL_DEPTH_BOUNDS_TEST_EXT", GLboolean,
903 ["ctx->Depth.BoundsTest"], "", ["EXT_depth_bounds_test"] ),
904 ( "GL_DEPTH_BOUNDS_EXT", GLfloat,
905 ["ctx->Depth.BoundsMin", "ctx->Depth.BoundsMax"],
906 "", ["EXT_depth_bounds_test"] ),
907
908 # GL_ARB_depth_clamp
909 ( "GL_DEPTH_CLAMP", GLboolean, ["ctx->Transform.DepthClamp"], "",
910 ["ARB_depth_clamp"] ),
911
912 # GL_ARB_draw_buffers
913 ( "GL_MAX_DRAW_BUFFERS_ARB", GLint,
914 ["ctx->Const.MaxDrawBuffers"], "", None ),
915 ( "GL_DRAW_BUFFER0_ARB", GLenum,
916 ["ctx->DrawBuffer->ColorDrawBuffer[0]"], "", None ),
917 ( "GL_DRAW_BUFFER1_ARB", GLenum,
918 ["buffer"],
919 """GLenum buffer;
920 if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
921 _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
922 return;
923 }
924 buffer = ctx->DrawBuffer->ColorDrawBuffer[1];""", None ),
925 ( "GL_DRAW_BUFFER2_ARB", GLenum,
926 ["buffer"],
927 """GLenum buffer;
928 if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
929 _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
930 return;
931 }
932 buffer = ctx->DrawBuffer->ColorDrawBuffer[2];""", None ),
933 ( "GL_DRAW_BUFFER3_ARB", GLenum,
934 ["buffer"],
935 """GLenum buffer;
936 if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
937 _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
938 return;
939 }
940 buffer = ctx->DrawBuffer->ColorDrawBuffer[3];""", None ),
941 # XXX Add more GL_DRAW_BUFFERn_ARB entries as needed in the future
942
943 # GL_OES_read_format
944 ( "GL_IMPLEMENTATION_COLOR_READ_TYPE_OES", GLint,
945 ["_mesa_get_color_read_type(ctx)"], "", ["OES_read_format"] ),
946 ( "GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES", GLint,
947 ["_mesa_get_color_read_format(ctx)"], "", ["OES_read_format"] ),
948
949 # GL_ATI_fragment_shader
950 ( "GL_NUM_FRAGMENT_REGISTERS_ATI", GLint, ["6"], "", ["ATI_fragment_shader"] ),
951 ( "GL_NUM_FRAGMENT_CONSTANTS_ATI", GLint, ["8"], "", ["ATI_fragment_shader"] ),
952 ( "GL_NUM_PASSES_ATI", GLint, ["2"], "", ["ATI_fragment_shader"] ),
953 ( "GL_NUM_INSTRUCTIONS_PER_PASS_ATI", GLint, ["8"], "", ["ATI_fragment_shader"] ),
954 ( "GL_NUM_INSTRUCTIONS_TOTAL_ATI", GLint, ["16"], "", ["ATI_fragment_shader"] ),
955 ( "GL_COLOR_ALPHA_PAIRING_ATI", GLboolean, ["GL_TRUE"], "", ["ATI_fragment_shader"] ),
956 ( "GL_NUM_LOOPBACK_COMPONENTS_ATI", GLint, ["3"], "", ["ATI_fragment_shader"] ),
957 ( "GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI", GLint, ["3"], "", ["ATI_fragment_shader"] ),
958
959 # OpenGL 2.0
960 ( "GL_STENCIL_BACK_FUNC", GLenum, ["ctx->Stencil.Function[1]"], "", None ),
961 ( "GL_STENCIL_BACK_VALUE_MASK", GLint, ["ctx->Stencil.ValueMask[1]"], "", None ),
962 ( "GL_STENCIL_BACK_WRITEMASK", GLint, ["ctx->Stencil.WriteMask[1]"], "", None ),
963 ( "GL_STENCIL_BACK_REF", GLint, ["ctx->Stencil.Ref[1]"], "", None ),
964 ( "GL_STENCIL_BACK_FAIL", GLenum, ["ctx->Stencil.FailFunc[1]"], "", None ),
965 ( "GL_STENCIL_BACK_PASS_DEPTH_FAIL", GLenum, ["ctx->Stencil.ZFailFunc[1]"], "", None ),
966 ( "GL_STENCIL_BACK_PASS_DEPTH_PASS", GLenum, ["ctx->Stencil.ZPassFunc[1]"], "", None ),
967
968 # GL_EXT_framebuffer_object
969 ( "GL_FRAMEBUFFER_BINDING_EXT", GLint, ["ctx->DrawBuffer->Name"], "",
970 ["EXT_framebuffer_object"] ),
971 ( "GL_RENDERBUFFER_BINDING_EXT", GLint,
972 ["ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0"], "",
973 ["EXT_framebuffer_object"] ),
974 ( "GL_MAX_COLOR_ATTACHMENTS_EXT", GLint,
975 ["ctx->Const.MaxColorAttachments"], "",
976 ["EXT_framebuffer_object"] ),
977 ( "GL_MAX_RENDERBUFFER_SIZE_EXT", GLint,
978 ["ctx->Const.MaxRenderbufferSize"], "",
979 ["EXT_framebuffer_object"] ),
980
981 # GL_EXT_framebuffer_blit
982 # NOTE: GL_DRAW_FRAMEBUFFER_BINDING_EXT == GL_FRAMEBUFFER_BINDING_EXT
983 ( "GL_READ_FRAMEBUFFER_BINDING_EXT", GLint, ["ctx->ReadBuffer->Name"], "",
984 ["EXT_framebuffer_blit"] ),
985
986 # GL_EXT_provoking_vertex
987 ( "GL_PROVOKING_VERTEX_EXT", GLboolean,
988 ["ctx->Light.ProvokingVertex"], "", ["EXT_provoking_vertex"] ),
989 ( "GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT", GLboolean,
990 ["ctx->Const.QuadsFollowProvokingVertexConvention"], "",
991 ["EXT_provoking_vertex"] ),
992
993 # GL_ARB_fragment_shader
994 ( "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB", GLint,
995 ["ctx->Const.FragmentProgram.MaxUniformComponents"], "",
996 ["ARB_fragment_shader"] ),
997 ( "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB", GLenum,
998 ["ctx->Hint.FragmentShaderDerivative"], "", ["ARB_fragment_shader"] ),
999
1000 # GL_ARB_vertex_shader
1001 ( "GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB", GLint,
1002 ["ctx->Const.VertexProgram.MaxUniformComponents"], "",
1003 ["ARB_vertex_shader"] ),
1004 ( "GL_MAX_VARYING_FLOATS_ARB", GLint,
1005 ["ctx->Const.MaxVarying * 4"], "", ["ARB_vertex_shader"] ),
1006 ( "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB", GLint,
1007 ["ctx->Const.MaxVertexTextureImageUnits"], "", ["ARB_vertex_shader"] ),
1008 ( "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB", GLint,
1009 ["ctx->Const.MaxCombinedTextureImageUnits"], "", ["ARB_vertex_shader"] ),
1010
1011 # GL_ARB_shader_objects
1012 # Actually, this token isn't part of GL_ARB_shader_objects, but is
1013 # close enough for now.
1014 ( "GL_CURRENT_PROGRAM", GLint,
1015 ["ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0"],
1016 "", ["ARB_shader_objects"] ),
1017
1018 # GL_ARB_framebuffer_object
1019 ( "GL_MAX_SAMPLES", GLint, ["ctx->Const.MaxSamples"], "",
1020 ["ARB_framebuffer_object"] ),
1021
1022 # GL_APPLE_vertex_array_object
1023 ( "GL_VERTEX_ARRAY_BINDING_APPLE", GLint, ["ctx->Array.ArrayObj->Name"], "",
1024 ["APPLE_vertex_array_object"] ),
1025
1026 # GL_ARB_seamless_cube_map
1027 ( "GL_TEXTURE_CUBE_MAP_SEAMLESS", GLboolean, ["ctx->Texture.CubeMapSeamless"], "",
1028 ["ARB_seamless_cube_map"] ),
1029
1030 # GL_ARB_sync
1031 ( "GL_MAX_SERVER_WAIT_TIMEOUT", GLint64, ["ctx->Const.MaxServerWaitTimeout"], "",
1032 ["ARB_sync"] ),
1033
1034 # GL3
1035 ( "GL_NUM_EXTENSIONS", GLint, ["_mesa_get_extension_count(ctx)"], "", None ),
1036 ( "GL_MAJOR_VERSION", GLint, ["ctx->VersionMajor"], "", None ),
1037 ( "GL_MINOR_VERSION", GLint, ["ctx->VersionMinor"], "", None )
1038 ]
1039
1040
1041 # These are queried via glGetIntegetIndexdvEXT() or glGetIntegeri_v()
1042 IndexedStateVars = [
1043 ( "GL_BLEND", GLint, ["((ctx->Color.BlendEnabled >> index) & 1)"],
1044 "ctx->Const.MaxDrawBuffers", ["EXT_draw_buffers2"] ),
1045 ( "GL_COLOR_WRITEMASK", GLint,
1046 [ "ctx->Color.ColorMask[index][RCOMP] ? 1 : 0",
1047 "ctx->Color.ColorMask[index][GCOMP] ? 1 : 0",
1048 "ctx->Color.ColorMask[index][BCOMP] ? 1 : 0",
1049 "ctx->Color.ColorMask[index][ACOMP] ? 1 : 0" ],
1050 "ctx->Const.MaxDrawBuffers", ["EXT_draw_buffers2"] ),
1051 # XXX more to come...
1052 ]
1053
1054
1055
1056 def ConversionFunc(fromType, toType):
1057 """Return the name of the macro to convert between two data types."""
1058 if fromType == toType:
1059 return ""
1060 elif fromType == GLfloat and toType == GLint:
1061 return "IROUND"
1062 elif fromType == GLfloat and toType == GLint64:
1063 return "IROUND64"
1064 elif fromType == GLfloatN and toType == GLfloat:
1065 return ""
1066 elif fromType == GLint and toType == GLfloat: # but not GLfloatN!
1067 return "(GLfloat)"
1068 elif fromType == GLint and toType == GLint64:
1069 return "(GLint64)"
1070 elif fromType == GLint64 and toType == GLfloat: # but not GLfloatN!
1071 return "(GLfloat)"
1072 else:
1073 if fromType == GLfloatN:
1074 fromType = GLfloat
1075 fromStr = TypeStrings[fromType]
1076 fromStr = string.upper(fromStr[2:])
1077 toStr = TypeStrings[toType]
1078 toStr = string.upper(toStr[2:])
1079 return fromStr + "_TO_" + toStr
1080
1081
1082 def EmitGetFunction(stateVars, returnType, indexed):
1083 """Emit the code to implement glGetBooleanv, glGetIntegerv or glGetFloatv."""
1084 assert (returnType == GLboolean or
1085 returnType == GLint or
1086 returnType == GLint64 or
1087 returnType == GLfloat)
1088
1089 strType = TypeStrings[returnType]
1090 # Capitalize first letter of return type
1091 if indexed:
1092 if returnType == GLint:
1093 function = "GetIntegerIndexedv"
1094 elif returnType == GLboolean:
1095 function = "GetBooleanIndexedv"
1096 elif returnType == GLint64:
1097 function = "GetInteger64Indexedv"
1098 else:
1099 function = "Foo"
1100 else:
1101 if returnType == GLint:
1102 function = "GetIntegerv"
1103 elif returnType == GLboolean:
1104 function = "GetBooleanv"
1105 elif returnType == GLfloat:
1106 function = "GetFloatv"
1107 elif returnType == GLint64:
1108 function = "GetInteger64v"
1109 else:
1110 abort()
1111
1112 if returnType == GLint64:
1113 print "#if FEATURE_ARB_sync"
1114
1115 print "void GLAPIENTRY"
1116 if indexed:
1117 print "_mesa_%s( GLenum pname, GLuint index, %s *params )" % (function, strType)
1118 else:
1119 print "_mesa_%s( GLenum pname, %s *params )" % (function, strType)
1120 print "{"
1121 print " GET_CURRENT_CONTEXT(ctx);"
1122 print " ASSERT_OUTSIDE_BEGIN_END(ctx);"
1123 print ""
1124 print " if (!params)"
1125 print " return;"
1126 print ""
1127 print " if (ctx->NewState)"
1128 print " _mesa_update_state(ctx);"
1129 print ""
1130 if indexed == 0:
1131 print " if (ctx->Driver.%s &&" % function
1132 print " ctx->Driver.%s(ctx, pname, params))" % function
1133 print " return;"
1134 print ""
1135 print " switch (pname) {"
1136
1137 for state in stateVars:
1138 if indexed:
1139 (name, varType, state, indexMax, extensions) = state
1140 optionalCode = 0
1141 else:
1142 (name, varType, state, optionalCode, extensions) = state
1143 indexMax = 0
1144 print " case " + name + ":"
1145 if extensions:
1146 if len(extensions) == 1:
1147 print (' CHECK_EXT1(%s, "%s");' %
1148 (extensions[0], function))
1149 elif len(extensions) == 2:
1150 print (' CHECK_EXT2(%s, %s, "%s");' %
1151 (extensions[0], extensions[1], function))
1152 elif len(extensions) == 3:
1153 print (' CHECK_EXT3(%s, %s, %s, "%s");' %
1154 (extensions[0], extensions[1], extensions[2], function))
1155 else:
1156 assert len(extensions) == 4
1157 print (' CHECK_EXT4(%s, %s, %s, %s, "%s");' %
1158 (extensions[0], extensions[1], extensions[2], extensions[3], function))
1159 if indexMax:
1160 print (' if (index >= %s) {' % indexMax)
1161 print (' _mesa_error(ctx, GL_INVALID_VALUE, "gl%s(index=%%u), index", pname);' % function)
1162 print (' }')
1163
1164 conversion = ConversionFunc(varType, returnType)
1165 if optionalCode:
1166 optionalCode = string.replace(optionalCode, "CONVERSION", conversion);
1167 print " {"
1168 print " " + optionalCode
1169 n = len(state)
1170 for i in range(n):
1171 if conversion:
1172 print " params[%d] = %s(%s);" % (i, conversion, state[i])
1173 else:
1174 print " params[%d] = %s;" % (i, state[i])
1175 if optionalCode:
1176 print " }"
1177 print " break;"
1178
1179 print " default:"
1180 print ' _mesa_error(ctx, GL_INVALID_ENUM, "gl%s(pname=0x%%x)", pname);' % function
1181 print " }"
1182 print "}"
1183 if returnType == GLint64:
1184 print "#endif /* FEATURE_ARB_sync */"
1185 print ""
1186 return
1187
1188
1189
1190 def EmitHeader():
1191 """Print the get.c file header."""
1192 print """
1193 /***
1194 *** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
1195 ***/
1196
1197 #include "glheader.h"
1198 #include "context.h"
1199 #include "enable.h"
1200 #include "extensions.h"
1201 #include "fbobject.h"
1202 #include "get.h"
1203 #include "macros.h"
1204 #include "mtypes.h"
1205 #include "state.h"
1206 #include "texcompress.h"
1207 #include "framebuffer.h"
1208
1209
1210 #define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
1211
1212 #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
1213
1214 #define INT64_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
1215 #define INT64_TO_INT(I) ( (GLint)((I > INT_MAX) ? INT_MAX : ((I < INT_MIN) ? INT_MIN : (I))) )
1216
1217 #define BOOLEAN_TO_INT(B) ( (GLint) (B) )
1218 #define BOOLEAN_TO_INT64(B) ( (GLint64) (B) )
1219 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
1220
1221 #define ENUM_TO_INT64(E) ( (GLint64) (E) )
1222
1223
1224 /*
1225 * Check if named extension is enabled, if not generate error and return.
1226 */
1227 #define CHECK_EXT1(EXT1, FUNC) \\
1228 if (!ctx->Extensions.EXT1) { \\
1229 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \\
1230 return; \\
1231 }
1232
1233 /*
1234 * Check if either of two extensions is enabled.
1235 */
1236 #define CHECK_EXT2(EXT1, EXT2, FUNC) \\
1237 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \\
1238 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \\
1239 return; \\
1240 }
1241
1242 /*
1243 * Check if either of three extensions is enabled.
1244 */
1245 #define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC) \\
1246 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \\
1247 !ctx->Extensions.EXT3) { \\
1248 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \\
1249 return; \\
1250 }
1251
1252 /*
1253 * Check if either of four extensions is enabled.
1254 */
1255 #define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \\
1256 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \\
1257 !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \\
1258 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \\
1259 return; \\
1260 }
1261
1262 """
1263 return
1264
1265
1266
1267 def EmitGetDoublev():
1268 print """
1269 void GLAPIENTRY
1270 _mesa_GetDoublev( GLenum pname, GLdouble *params )
1271 {
1272 const GLfloat magic = -1234.5F;
1273 GLfloat values[16];
1274 GLuint i;
1275
1276 if (!params)
1277 return;
1278
1279 /* Init temp array to magic numbers so we can figure out how many values
1280 * are returned by the GetFloatv() call.
1281 */
1282 for (i = 0; i < 16; i++)
1283 values[i] = magic;
1284
1285 _mesa_GetFloatv(pname, values);
1286
1287 for (i = 0; i < 16 && values[i] != magic; i++)
1288 params[i] = (GLdouble) values[i];
1289 }
1290 """
1291
1292
1293
1294
1295 EmitHeader()
1296 # XXX Maybe sort the StateVars list
1297 EmitGetFunction(StateVars, GLboolean, 0)
1298 EmitGetFunction(StateVars, GLfloat, 0)
1299 EmitGetFunction(StateVars, GLint, 0)
1300 EmitGetFunction(StateVars, GLint64, 0)
1301 EmitGetDoublev()
1302
1303 EmitGetFunction(IndexedStateVars, GLboolean, 1)
1304 EmitGetFunction(IndexedStateVars, GLint, 1)
1305 EmitGetFunction(IndexedStateVars, GLint64, 1)
1306