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