3 *** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
9 #include "extensions.h"
14 #include "texcompress.h"
17 #define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
19 #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
21 #define ENUM_TO_BOOLEAN(E) ( (E) ? GL_TRUE : GL_FALSE )
22 #define ENUM_TO_INT(E) ( (GLint) (E) )
23 #define ENUM_TO_FLOAT(E) ( (GLfloat) (E) )
25 #define BOOLEAN_TO_INT(B) ( (GLint) (B) )
26 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
29 /* Check if named extension is enabled, if not generate error and return */
31 #define CHECK1(E1, str, PNAME) \
32 if (!ctx->Extensions.E1) { \
33 _mesa_error(ctx, GL_INVALID_VALUE, \
34 "glGet" str "v(0x%x)", (int) PNAME); \
38 #define CHECK2(E1, E2, str, PNAME) \
39 if (!ctx->Extensions.E1 && !ctx->Extensions.E2) { \
40 _mesa_error(ctx, GL_INVALID_VALUE, \
41 "glGet" str "v(0x%x)", (int) PNAME); \
45 #define CHECK_EXTENSION_B(EXTNAME, PNAME) \
46 CHECK1(EXTNAME, "Boolean", PNAME )
48 #define CHECK_EXTENSION_I(EXTNAME, PNAME) \
49 CHECK1(EXTNAME, "Integer", PNAME )
51 #define CHECK_EXTENSION_F(EXTNAME, PNAME) \
52 CHECK1(EXTNAME, "Float", PNAME )
59 pixel_texgen_mode(const GLcontext
*ctx
)
61 if (ctx
->Pixel
.FragmentRgbSource
== GL_CURRENT_RASTER_POSITION
) {
62 if (ctx
->Pixel
.FragmentAlphaSource
== GL_CURRENT_RASTER_POSITION
) {
70 if (ctx
->Pixel
.FragmentAlphaSource
== GL_CURRENT_RASTER_POSITION
) {
80 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
82 GET_CURRENT_CONTEXT(ctx
);
83 ASSERT_OUTSIDE_BEGIN_END(ctx
);
88 if (ctx
->Driver
.GetBooleanv
&&
89 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
93 case GL_ACCUM_RED_BITS
:
94 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumRedBits
);
96 case GL_ACCUM_GREEN_BITS
:
97 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
99 case GL_ACCUM_BLUE_BITS
:
100 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
102 case GL_ACCUM_ALPHA_BITS
:
103 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
105 case GL_ACCUM_CLEAR_VALUE
:
106 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
107 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
108 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
109 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
112 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
115 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.alphaBits
);
118 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
121 params
[0] = ctx
->Color
.AlphaEnabled
;
123 case GL_ALPHA_TEST_FUNC
:
124 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
126 case GL_ALPHA_TEST_REF
:
127 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
129 case GL_ATTRIB_STACK_DEPTH
:
130 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
133 params
[0] = ctx
->Eval
.AutoNormal
;
136 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
139 params
[0] = ctx
->Color
.BlendEnabled
;
142 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
145 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
147 case GL_BLEND_SRC_RGB_EXT
:
148 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
150 case GL_BLEND_DST_RGB_EXT
:
151 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
153 case GL_BLEND_SRC_ALPHA_EXT
:
154 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
156 case GL_BLEND_DST_ALPHA_EXT
:
157 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
159 case GL_BLEND_EQUATION
:
160 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
162 case GL_BLEND_EQUATION_ALPHA_EXT
:
163 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
165 case GL_BLEND_COLOR_EXT
:
166 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
167 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
168 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
169 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
172 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
175 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.blueBits
);
178 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
180 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
181 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
184 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
187 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
190 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
193 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
196 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
199 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
201 case GL_COLOR_CLEAR_VALUE
:
202 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
203 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
204 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
205 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
207 case GL_COLOR_MATERIAL
:
208 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
210 case GL_COLOR_MATERIAL_FACE
:
211 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
213 case GL_COLOR_MATERIAL_PARAMETER
:
214 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
216 case GL_COLOR_WRITEMASK
:
217 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
218 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
219 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
220 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
223 params
[0] = ctx
->Polygon
.CullFlag
;
225 case GL_CULL_FACE_MODE
:
226 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
228 case GL_CURRENT_COLOR
:
230 FLUSH_CURRENT(ctx
, 0);
231 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
232 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
233 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
234 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
237 case GL_CURRENT_INDEX
:
239 FLUSH_CURRENT(ctx
, 0);
240 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Index
);
243 case GL_CURRENT_NORMAL
:
245 FLUSH_CURRENT(ctx
, 0);
246 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
247 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
248 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
251 case GL_CURRENT_RASTER_COLOR
:
252 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
253 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
254 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
255 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
257 case GL_CURRENT_RASTER_DISTANCE
:
258 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
260 case GL_CURRENT_RASTER_INDEX
:
261 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterIndex
);
263 case GL_CURRENT_RASTER_POSITION
:
264 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
265 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
266 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
267 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
269 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
271 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
272 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
273 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
274 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
275 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
278 case GL_CURRENT_RASTER_POSITION_VALID
:
279 params
[0] = ctx
->Current
.RasterPosValid
;
281 case GL_CURRENT_TEXTURE_COORDS
:
283 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
284 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
285 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
286 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
287 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
291 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
294 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
296 case GL_DEPTH_CLEAR_VALUE
:
297 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.Clear
);
300 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
303 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
304 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
307 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
310 params
[0] = ctx
->Depth
.Test
;
312 case GL_DEPTH_WRITEMASK
:
313 params
[0] = ctx
->Depth
.Mask
;
316 params
[0] = ctx
->Color
.DitherFlag
;
318 case GL_DOUBLEBUFFER
:
319 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
322 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.DrawBuffer
[0]);
326 FLUSH_CURRENT(ctx
, 0);
327 params
[0] = ctx
->Current
.EdgeFlag
;
330 case GL_FEEDBACK_BUFFER_SIZE
:
331 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
333 case GL_FEEDBACK_BUFFER_TYPE
:
334 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
337 params
[0] = ctx
->Fog
.Enabled
;
340 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
341 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
342 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
343 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
346 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
349 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
352 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
355 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
358 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
361 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
364 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
367 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
370 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
373 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
376 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
378 case GL_INDEX_CLEAR_VALUE
:
379 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
382 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
384 case GL_INDEX_OFFSET
:
385 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
388 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
390 case GL_INDEX_WRITEMASK
:
391 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
394 params
[0] = ctx
->Light
.Light
[0].Enabled
;
397 params
[0] = ctx
->Light
.Light
[1].Enabled
;
400 params
[0] = ctx
->Light
.Light
[2].Enabled
;
403 params
[0] = ctx
->Light
.Light
[3].Enabled
;
406 params
[0] = ctx
->Light
.Light
[4].Enabled
;
409 params
[0] = ctx
->Light
.Light
[5].Enabled
;
412 params
[0] = ctx
->Light
.Light
[6].Enabled
;
415 params
[0] = ctx
->Light
.Light
[7].Enabled
;
418 params
[0] = ctx
->Light
.Enabled
;
420 case GL_LIGHT_MODEL_AMBIENT
:
421 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
422 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
423 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
424 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
426 case GL_LIGHT_MODEL_COLOR_CONTROL
:
427 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
429 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
430 params
[0] = ctx
->Light
.Model
.LocalViewer
;
432 case GL_LIGHT_MODEL_TWO_SIDE
:
433 params
[0] = ctx
->Light
.Model
.TwoSide
;
436 params
[0] = ctx
->Line
.SmoothFlag
;
438 case GL_LINE_SMOOTH_HINT
:
439 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
441 case GL_LINE_STIPPLE
:
442 params
[0] = ctx
->Line
.StippleFlag
;
444 case GL_LINE_STIPPLE_PATTERN
:
445 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
447 case GL_LINE_STIPPLE_REPEAT
:
448 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
451 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
453 case GL_LINE_WIDTH_GRANULARITY
:
454 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
456 case GL_LINE_WIDTH_RANGE
:
457 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
458 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
460 case GL_ALIASED_LINE_WIDTH_RANGE
:
461 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
462 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
465 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
468 params
[0] = INT_TO_BOOLEAN(ctx
->ListState
.CurrentListNum
);
473 if (!ctx
->CompileFlag
)
475 else if (ctx
->ExecuteFlag
)
476 mode
= GL_COMPILE_AND_EXECUTE
;
479 params
[0] = ENUM_TO_BOOLEAN(mode
);
482 case GL_INDEX_LOGIC_OP
:
483 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
485 case GL_COLOR_LOGIC_OP
:
486 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
488 case GL_LOGIC_OP_MODE
:
489 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
491 case GL_MAP1_COLOR_4
:
492 params
[0] = ctx
->Eval
.Map1Color4
;
494 case GL_MAP1_GRID_DOMAIN
:
495 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
496 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
498 case GL_MAP1_GRID_SEGMENTS
:
499 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
502 params
[0] = ctx
->Eval
.Map1Index
;
505 params
[0] = ctx
->Eval
.Map1Normal
;
507 case GL_MAP1_TEXTURE_COORD_1
:
508 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
510 case GL_MAP1_TEXTURE_COORD_2
:
511 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
513 case GL_MAP1_TEXTURE_COORD_3
:
514 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
516 case GL_MAP1_TEXTURE_COORD_4
:
517 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
519 case GL_MAP1_VERTEX_3
:
520 params
[0] = ctx
->Eval
.Map1Vertex3
;
522 case GL_MAP1_VERTEX_4
:
523 params
[0] = ctx
->Eval
.Map1Vertex4
;
525 case GL_MAP2_COLOR_4
:
526 params
[0] = ctx
->Eval
.Map2Color4
;
528 case GL_MAP2_GRID_DOMAIN
:
529 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
530 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
531 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
532 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
534 case GL_MAP2_GRID_SEGMENTS
:
535 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
536 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
539 params
[0] = ctx
->Eval
.Map2Index
;
542 params
[0] = ctx
->Eval
.Map2Normal
;
544 case GL_MAP2_TEXTURE_COORD_1
:
545 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
547 case GL_MAP2_TEXTURE_COORD_2
:
548 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
550 case GL_MAP2_TEXTURE_COORD_3
:
551 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
553 case GL_MAP2_TEXTURE_COORD_4
:
554 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
556 case GL_MAP2_VERTEX_3
:
557 params
[0] = ctx
->Eval
.Map2Vertex3
;
559 case GL_MAP2_VERTEX_4
:
560 params
[0] = ctx
->Eval
.Map2Vertex4
;
563 params
[0] = ctx
->Pixel
.MapColorFlag
;
566 params
[0] = ctx
->Pixel
.MapStencilFlag
;
569 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
571 case GL_MAX_ATTRIB_STACK_DEPTH
:
572 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
574 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
575 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
577 case GL_MAX_CLIP_PLANES
:
578 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
580 case GL_MAX_ELEMENTS_VERTICES
:
581 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
583 case GL_MAX_ELEMENTS_INDICES
:
584 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
586 case GL_MAX_EVAL_ORDER
:
587 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
590 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
592 case GL_MAX_LIST_NESTING
:
593 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
595 case GL_MAX_MODELVIEW_STACK_DEPTH
:
596 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
598 case GL_MAX_NAME_STACK_DEPTH
:
599 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
601 case GL_MAX_PIXEL_MAP_TABLE
:
602 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
604 case GL_MAX_PROJECTION_STACK_DEPTH
:
605 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
607 case GL_MAX_TEXTURE_SIZE
:
608 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
610 case GL_MAX_3D_TEXTURE_SIZE
:
611 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
613 case GL_MAX_TEXTURE_STACK_DEPTH
:
614 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
616 case GL_MAX_VIEWPORT_DIMS
:
617 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
618 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
620 case GL_MODELVIEW_MATRIX
:
622 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
623 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
624 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
625 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
626 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
627 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
628 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
629 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
630 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
631 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
632 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
633 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
634 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
635 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
636 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
637 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
638 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
641 case GL_MODELVIEW_STACK_DEPTH
:
642 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
644 case GL_NAME_STACK_DEPTH
:
645 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
648 params
[0] = ctx
->Transform
.Normalize
;
650 case GL_PACK_ALIGNMENT
:
651 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
653 case GL_PACK_LSB_FIRST
:
654 params
[0] = ctx
->Pack
.LsbFirst
;
656 case GL_PACK_ROW_LENGTH
:
657 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
659 case GL_PACK_SKIP_PIXELS
:
660 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
662 case GL_PACK_SKIP_ROWS
:
663 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
665 case GL_PACK_SWAP_BYTES
:
666 params
[0] = ctx
->Pack
.SwapBytes
;
668 case GL_PACK_SKIP_IMAGES_EXT
:
669 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
671 case GL_PACK_IMAGE_HEIGHT_EXT
:
672 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
674 case GL_PACK_INVERT_MESA
:
675 params
[0] = ctx
->Pack
.Invert
;
677 case GL_PERSPECTIVE_CORRECTION_HINT
:
678 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
680 case GL_PIXEL_MAP_A_TO_A_SIZE
:
681 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapAtoAsize
);
683 case GL_PIXEL_MAP_B_TO_B_SIZE
:
684 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapBtoBsize
);
686 case GL_PIXEL_MAP_G_TO_G_SIZE
:
687 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapGtoGsize
);
689 case GL_PIXEL_MAP_I_TO_A_SIZE
:
690 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoAsize
);
692 case GL_PIXEL_MAP_I_TO_B_SIZE
:
693 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoBsize
);
695 case GL_PIXEL_MAP_I_TO_G_SIZE
:
696 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoGsize
);
698 case GL_PIXEL_MAP_I_TO_I_SIZE
:
699 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoIsize
);
701 case GL_PIXEL_MAP_I_TO_R_SIZE
:
702 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoRsize
);
704 case GL_PIXEL_MAP_R_TO_R_SIZE
:
705 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapRtoRsize
);
707 case GL_PIXEL_MAP_S_TO_S_SIZE
:
708 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapStoSsize
);
711 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
713 case GL_POINT_SIZE_GRANULARITY
:
714 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
716 case GL_POINT_SIZE_RANGE
:
717 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
718 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
720 case GL_ALIASED_POINT_SIZE_RANGE
:
721 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
722 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
724 case GL_POINT_SMOOTH
:
725 params
[0] = ctx
->Point
.SmoothFlag
;
727 case GL_POINT_SMOOTH_HINT
:
728 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
730 case GL_POINT_SIZE_MIN_EXT
:
731 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
733 case GL_POINT_SIZE_MAX_EXT
:
734 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
736 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
737 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
739 case GL_DISTANCE_ATTENUATION_EXT
:
740 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
741 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
742 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
744 case GL_POLYGON_MODE
:
745 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
746 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
748 case GL_POLYGON_OFFSET_BIAS_EXT
:
749 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
751 case GL_POLYGON_OFFSET_FACTOR
:
752 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
754 case GL_POLYGON_OFFSET_UNITS
:
755 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
757 case GL_POLYGON_SMOOTH
:
758 params
[0] = ctx
->Polygon
.SmoothFlag
;
760 case GL_POLYGON_SMOOTH_HINT
:
761 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
763 case GL_POLYGON_STIPPLE
:
764 params
[0] = ctx
->Polygon
.StippleFlag
;
766 case GL_PROJECTION_MATRIX
:
768 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
769 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
770 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
771 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
772 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
773 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
774 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
775 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
776 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
777 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
778 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
779 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
780 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
781 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
782 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
783 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
784 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
787 case GL_PROJECTION_STACK_DEPTH
:
788 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
791 params
[0] = ENUM_TO_BOOLEAN(ctx
->Pixel
.ReadBuffer
);
794 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
797 params
[0] = INT_TO_BOOLEAN( ctx
->DrawBuffer
->Visual
.redBits
);
800 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
803 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
805 case GL_RESCALE_NORMAL
:
806 params
[0] = ctx
->Transform
.RescaleNormals
;
809 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
812 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
813 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
814 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
815 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
817 case GL_SCISSOR_TEST
:
818 params
[0] = ctx
->Scissor
.Enabled
;
820 case GL_SELECTION_BUFFER_SIZE
:
821 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
824 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
826 case GL_SHARED_TEXTURE_PALETTE_EXT
:
827 params
[0] = ctx
->Texture
.SharedPalette
;
829 case GL_STENCIL_BITS
:
830 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
832 case GL_STENCIL_CLEAR_VALUE
:
833 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
835 case GL_STENCIL_FAIL
:
836 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
838 case GL_STENCIL_FUNC
:
839 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
841 case GL_STENCIL_PASS_DEPTH_FAIL
:
842 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
844 case GL_STENCIL_PASS_DEPTH_PASS
:
845 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
848 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
850 case GL_STENCIL_TEST
:
851 params
[0] = ctx
->Stencil
.Enabled
;
853 case GL_STENCIL_VALUE_MASK
:
854 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
856 case GL_STENCIL_WRITEMASK
:
857 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
860 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
862 case GL_SUBPIXEL_BITS
:
863 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
866 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
869 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
872 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
874 case GL_TEXTURE_BINDING_1D
:
875 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
877 case GL_TEXTURE_BINDING_2D
:
878 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
880 case GL_TEXTURE_BINDING_3D
:
881 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
883 case GL_TEXTURE_ENV_COLOR
:
885 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
886 params
[0] = FLOAT_TO_BOOLEAN(color
[0]);
887 params
[1] = FLOAT_TO_BOOLEAN(color
[1]);
888 params
[2] = FLOAT_TO_BOOLEAN(color
[2]);
889 params
[3] = FLOAT_TO_BOOLEAN(color
[3]);
892 case GL_TEXTURE_ENV_MODE
:
893 params
[0] = ENUM_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
895 case GL_TEXTURE_GEN_S
:
896 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
898 case GL_TEXTURE_GEN_T
:
899 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
901 case GL_TEXTURE_GEN_R
:
902 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
904 case GL_TEXTURE_GEN_Q
:
905 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
907 case GL_TEXTURE_MATRIX
:
909 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
910 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
911 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
912 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
913 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
914 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
915 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
916 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
917 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
918 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
919 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
920 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
921 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
922 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
923 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
924 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
925 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
928 case GL_TEXTURE_STACK_DEPTH
:
929 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
931 case GL_UNPACK_ALIGNMENT
:
932 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
934 case GL_UNPACK_LSB_FIRST
:
935 params
[0] = ctx
->Unpack
.LsbFirst
;
937 case GL_UNPACK_ROW_LENGTH
:
938 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
940 case GL_UNPACK_SKIP_PIXELS
:
941 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
943 case GL_UNPACK_SKIP_ROWS
:
944 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
946 case GL_UNPACK_SWAP_BYTES
:
947 params
[0] = ctx
->Unpack
.SwapBytes
;
949 case GL_UNPACK_SKIP_IMAGES_EXT
:
950 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
952 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
953 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
955 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
956 params
[0] = ctx
->Unpack
.ClientStorage
;
959 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
960 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
961 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
962 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
965 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
968 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
970 case GL_VERTEX_ARRAY
:
971 params
[0] = ctx
->Array
.Vertex
.Enabled
;
973 case GL_VERTEX_ARRAY_SIZE
:
974 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.Size
);
976 case GL_VERTEX_ARRAY_TYPE
:
977 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Vertex
.Type
);
979 case GL_VERTEX_ARRAY_STRIDE
:
980 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.Stride
);
982 case GL_VERTEX_ARRAY_COUNT_EXT
:
983 params
[0] = INT_TO_BOOLEAN(0);
985 case GL_NORMAL_ARRAY
:
986 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Normal
.Enabled
);
988 case GL_NORMAL_ARRAY_TYPE
:
989 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Normal
.Type
);
991 case GL_NORMAL_ARRAY_STRIDE
:
992 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.Stride
);
994 case GL_NORMAL_ARRAY_COUNT_EXT
:
995 params
[0] = INT_TO_BOOLEAN(0);
998 params
[0] = ctx
->Array
.Color
.Enabled
;
1000 case GL_COLOR_ARRAY_SIZE
:
1001 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.Size
);
1003 case GL_COLOR_ARRAY_TYPE
:
1004 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Color
.Type
);
1006 case GL_COLOR_ARRAY_STRIDE
:
1007 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.Stride
);
1009 case GL_COLOR_ARRAY_COUNT_EXT
:
1010 params
[0] = INT_TO_BOOLEAN(0);
1012 case GL_INDEX_ARRAY
:
1013 params
[0] = ctx
->Array
.Index
.Enabled
;
1015 case GL_INDEX_ARRAY_TYPE
:
1016 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Index
.Type
);
1018 case GL_INDEX_ARRAY_STRIDE
:
1019 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.Stride
);
1021 case GL_INDEX_ARRAY_COUNT_EXT
:
1022 params
[0] = INT_TO_BOOLEAN(0);
1024 case GL_TEXTURE_COORD_ARRAY
:
1025 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1027 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1028 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1030 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1031 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1033 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1034 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1036 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1037 params
[0] = INT_TO_BOOLEAN(0);
1039 case GL_EDGE_FLAG_ARRAY
:
1040 params
[0] = ctx
->Array
.EdgeFlag
.Enabled
;
1042 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1043 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.Stride
);
1045 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1046 params
[0] = INT_TO_BOOLEAN(0);
1048 case GL_MAX_TEXTURE_UNITS_ARB
:
1049 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1050 params
[0] = INT_TO_BOOLEAN(MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
));
1052 case GL_ACTIVE_TEXTURE_ARB
:
1053 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1054 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1056 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1057 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1058 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1060 case GL_TEXTURE_CUBE_MAP_ARB
:
1061 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1062 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1064 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1065 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1066 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
1068 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1069 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1070 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1072 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1073 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1074 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1076 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1077 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1078 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
));
1080 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1081 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1084 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
1086 for (i
= 0; i
< n
; i
++)
1087 params
[i
] = ENUM_TO_INT(formats
[i
]);
1090 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1091 CHECK_EXTENSION_B(EXT_compiled_vertex_array
, pname
);
1092 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1094 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1095 CHECK_EXTENSION_B(EXT_compiled_vertex_array
, pname
);
1096 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1098 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1100 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1101 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1102 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1103 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1104 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1105 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1106 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1107 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1108 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1109 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1110 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1111 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1112 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1113 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1114 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1115 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1116 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1119 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1121 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1122 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1123 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1124 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1125 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1126 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1127 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1128 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1129 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1130 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1131 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1132 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1133 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1134 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1135 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1136 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1137 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1140 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1142 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1143 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1144 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1145 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1146 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1147 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1148 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1149 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1150 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1151 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1152 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1153 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1154 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1155 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1156 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1157 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1158 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1161 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1163 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1164 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1165 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1166 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1167 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1168 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1169 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1170 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1171 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1172 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1173 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1174 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1175 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1176 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1177 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1178 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1179 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1182 case GL_PIXEL_TEXTURE_SGIS
:
1183 CHECK_EXTENSION_B(SGIS_pixel_texture
, pname
);
1184 params
[0] = ctx
->Pixel
.PixelTextureEnabled
;
1186 case GL_PIXEL_TEX_GEN_SGIX
:
1187 CHECK_EXTENSION_B(SGIX_pixel_texture
, pname
);
1188 params
[0] = ctx
->Pixel
.PixelTextureEnabled
;
1190 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
1191 CHECK_EXTENSION_B(SGIX_pixel_texture
, pname
);
1192 params
[0] = ENUM_TO_BOOLEAN(pixel_texgen_mode(ctx
));
1194 case GL_COLOR_MATRIX_SGI
:
1196 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1197 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1198 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1199 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1200 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1201 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1202 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1203 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1204 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1205 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1206 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1207 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1208 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1209 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1210 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1211 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1212 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1215 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1216 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1218 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1219 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1221 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1222 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1224 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1225 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1227 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1228 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1230 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1231 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1233 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1234 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1236 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1237 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1239 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1240 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1242 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1243 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1245 case GL_CONVOLUTION_1D_EXT
:
1246 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1247 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1249 case GL_CONVOLUTION_2D_EXT
:
1250 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1251 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1253 case GL_SEPARABLE_2D_EXT
:
1254 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1255 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1257 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1258 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1261 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1262 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1263 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1265 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1266 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1267 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1269 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1270 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1271 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1273 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1274 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1275 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1277 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1278 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1279 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1281 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1282 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1283 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1285 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1286 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1287 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1290 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1291 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1294 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1295 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1297 case GL_COLOR_TABLE_SGI
:
1298 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1299 params
[0] = ctx
->Pixel
.ColorTableEnabled
;
1301 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1302 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1303 params
[0] = ctx
->Pixel
.PostConvolutionColorTableEnabled
;
1305 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1306 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1307 params
[0] = ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
1309 case GL_TEXTURE_COLOR_TABLE_SGI
:
1310 CHECK_EXTENSION_B(SGI_texture_color_table
, pname
);
1311 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1313 case GL_COLOR_SUM_EXT
:
1314 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1315 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1317 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1318 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1320 FLUSH_CURRENT(ctx
, 0);
1321 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1322 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1323 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1324 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1327 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1328 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1329 params
[0] = ctx
->Array
.SecondaryColor
.Enabled
;
1331 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1332 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1333 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Type
);
1335 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1336 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1337 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Stride
);
1339 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1340 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1341 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Size
);
1343 case GL_CURRENT_FOG_COORDINATE_EXT
:
1344 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1346 FLUSH_CURRENT(ctx
, 0);
1347 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1350 case GL_FOG_COORDINATE_ARRAY_EXT
:
1351 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1352 params
[0] = ctx
->Array
.FogCoord
.Enabled
;
1354 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1355 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1356 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.FogCoord
.Type
);
1358 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1359 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1360 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.Stride
);
1362 case GL_FOG_COORDINATE_SOURCE_EXT
:
1363 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1364 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1366 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1367 CHECK_EXTENSION_B(EXT_texture_lod_bias
, pname
);
1368 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1370 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1371 CHECK_EXTENSION_B(EXT_texture_filter_anisotropic
, pname
);
1372 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1374 case GL_MULTISAMPLE_ARB
:
1375 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1376 params
[0] = ctx
->Multisample
.Enabled
;
1378 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1379 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1380 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1382 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1383 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1384 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1386 case GL_SAMPLE_COVERAGE_ARB
:
1387 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1388 params
[0] = ctx
->Multisample
.SampleCoverage
;
1390 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1391 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1392 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1394 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1395 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1396 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1398 case GL_SAMPLE_BUFFERS_ARB
:
1399 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1400 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1402 case GL_SAMPLES_ARB
:
1403 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1404 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1406 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1407 CHECK_EXTENSION_B(IBM_rasterpos_clip
, pname
);
1408 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1410 case GL_POINT_SPRITE_NV
:
1411 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1412 params
[0] = ctx
->Point
.PointSprite
;
1414 case GL_POINT_SPRITE_R_MODE_NV
:
1415 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1416 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1418 case GL_POINT_SPRITE_COORD_ORIGIN
:
1419 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1420 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1422 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1423 CHECK_EXTENSION_B(SGIS_generate_mipmap
, pname
);
1424 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1426 case GL_VERTEX_PROGRAM_NV
:
1427 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1428 params
[0] = ctx
->VertexProgram
.Enabled
;
1430 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
1431 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1432 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1434 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
1435 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1436 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1438 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
1439 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1440 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1442 case GL_MAX_TRACK_MATRICES_NV
:
1443 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1444 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1446 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
1447 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1448 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1450 case GL_CURRENT_MATRIX_NV
:
1451 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1453 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1454 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1455 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1456 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1457 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1458 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1459 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1460 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1461 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1462 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1463 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1464 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1465 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1466 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1467 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1468 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1469 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1472 case GL_VERTEX_PROGRAM_BINDING_NV
:
1473 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1474 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1476 case GL_PROGRAM_ERROR_POSITION_NV
:
1477 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1478 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1480 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1481 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1482 params
[0] = ctx
->Array
.VertexAttrib
[0].Enabled
;
1484 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1485 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1486 params
[0] = ctx
->Array
.VertexAttrib
[1].Enabled
;
1488 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1489 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1490 params
[0] = ctx
->Array
.VertexAttrib
[2].Enabled
;
1492 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1493 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1494 params
[0] = ctx
->Array
.VertexAttrib
[3].Enabled
;
1496 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1497 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1498 params
[0] = ctx
->Array
.VertexAttrib
[4].Enabled
;
1500 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1501 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1502 params
[0] = ctx
->Array
.VertexAttrib
[5].Enabled
;
1504 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1505 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1506 params
[0] = ctx
->Array
.VertexAttrib
[6].Enabled
;
1508 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1509 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1510 params
[0] = ctx
->Array
.VertexAttrib
[7].Enabled
;
1512 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1513 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1514 params
[0] = ctx
->Array
.VertexAttrib
[8].Enabled
;
1516 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1517 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1518 params
[0] = ctx
->Array
.VertexAttrib
[9].Enabled
;
1520 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1521 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1522 params
[0] = ctx
->Array
.VertexAttrib
[10].Enabled
;
1524 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1525 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1526 params
[0] = ctx
->Array
.VertexAttrib
[11].Enabled
;
1528 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1529 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1530 params
[0] = ctx
->Array
.VertexAttrib
[12].Enabled
;
1532 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1533 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1534 params
[0] = ctx
->Array
.VertexAttrib
[13].Enabled
;
1536 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1537 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1538 params
[0] = ctx
->Array
.VertexAttrib
[14].Enabled
;
1540 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1541 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1542 params
[0] = ctx
->Array
.VertexAttrib
[15].Enabled
;
1544 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1545 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1546 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1548 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1549 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1550 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1552 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1553 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1554 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1556 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1557 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1558 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1560 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1561 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1562 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1564 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1565 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1566 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1568 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1569 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1570 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1572 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1573 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1574 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1576 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1577 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1578 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1580 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1581 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1582 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1584 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1585 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1586 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1588 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1589 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1590 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1592 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1593 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1594 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1596 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1597 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1598 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1600 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1601 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1602 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1604 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1605 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1606 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1608 case GL_FRAGMENT_PROGRAM_NV
:
1609 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1610 params
[0] = ctx
->FragmentProgram
.Enabled
;
1612 case GL_MAX_TEXTURE_COORDS_NV
:
1613 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1614 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1616 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
1617 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1618 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1620 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1621 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1622 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1624 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1625 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1626 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1628 case GL_TEXTURE_RECTANGLE_NV
:
1629 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1630 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1632 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1633 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1634 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
1636 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1637 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1638 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1640 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1641 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1642 params
[0] = ctx
->Stencil
.TestTwoSide
;
1644 case GL_ACTIVE_STENCIL_FACE_EXT
:
1645 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1646 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1648 case GL_MAX_SHININESS_NV
:
1649 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1650 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1652 case GL_MAX_SPOT_EXPONENT_NV
:
1653 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1654 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1656 case GL_ARRAY_BUFFER_BINDING_ARB
:
1657 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1658 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1660 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1661 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1662 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.BufferObj
->Name
);
1664 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1665 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1666 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.BufferObj
->Name
);
1668 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1669 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1670 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.BufferObj
->Name
);
1672 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1673 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1674 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.BufferObj
->Name
);
1676 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1677 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1678 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1680 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1681 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1682 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
1684 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1685 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1686 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
1688 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1689 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1690 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.BufferObj
->Name
);
1692 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1693 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1694 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1696 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1697 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1698 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1700 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1701 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1702 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1704 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1705 CHECK_EXTENSION_B(ARB_vertex_program
, pname
);
1706 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexProgramAttribs
);
1708 case GL_FRAGMENT_PROGRAM_ARB
:
1709 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1710 params
[0] = ctx
->FragmentProgram
.Enabled
;
1712 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1713 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1715 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1716 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1717 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1718 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1719 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1720 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1721 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1722 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1723 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1724 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1725 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1726 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1727 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1728 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1729 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1730 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1731 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1734 case GL_DEPTH_BOUNDS_TEST_EXT
:
1735 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1736 params
[0] = ctx
->Depth
.BoundsTest
;
1738 case GL_DEPTH_BOUNDS_EXT
:
1739 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1740 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1741 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1743 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1744 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1745 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1747 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1748 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1749 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1751 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1752 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1753 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1755 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1756 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1757 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1759 case GL_MAX_DRAW_BUFFERS_ARB
:
1760 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1761 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1763 case GL_DRAW_BUFFER0_ARB
:
1764 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1765 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.DrawBuffer
[0]);
1767 case GL_DRAW_BUFFER1_ARB
:
1768 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1771 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1772 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1775 buffer
= ctx
->Color
.DrawBuffer
[1];
1776 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1779 case GL_DRAW_BUFFER2_ARB
:
1780 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1783 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1784 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1787 buffer
= ctx
->Color
.DrawBuffer
[2];
1788 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1791 case GL_DRAW_BUFFER3_ARB
:
1792 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1795 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1796 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1799 buffer
= ctx
->Color
.DrawBuffer
[3];
1800 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1803 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1804 CHECK_EXTENSION_B(OES_read_format
, pname
);
1805 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1807 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1808 CHECK_EXTENSION_B(OES_read_format
, pname
);
1809 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1811 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1812 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1813 params
[0] = INT_TO_BOOLEAN(6);
1815 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1816 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1817 params
[0] = INT_TO_BOOLEAN(8);
1819 case GL_NUM_PASSES_ATI
:
1820 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1821 params
[0] = INT_TO_BOOLEAN(2);
1823 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1824 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1825 params
[0] = INT_TO_BOOLEAN(8);
1827 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1828 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1829 params
[0] = INT_TO_BOOLEAN(16);
1831 case GL_COLOR_ALPHA_PAIRING_ATI
:
1832 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1833 params
[0] = GL_TRUE
;
1835 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1836 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1837 params
[0] = INT_TO_BOOLEAN(3);
1839 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1840 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1841 params
[0] = INT_TO_BOOLEAN(3);
1843 case GL_STENCIL_BACK_FUNC
:
1844 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1846 case GL_STENCIL_BACK_VALUE_MASK
:
1847 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1849 case GL_STENCIL_BACK_REF
:
1850 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1852 case GL_STENCIL_BACK_FAIL
:
1853 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1855 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1856 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1858 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1859 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1861 case GL_FRAMEBUFFER_BINDING_EXT
:
1862 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1863 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1865 case GL_RENDERBUFFER_BINDING_EXT
:
1866 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1867 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1869 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1870 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1871 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1873 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1874 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1875 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1877 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1878 CHECK_EXTENSION_B(ARB_fragment_shader
, pname
);
1879 params
[0] = INT_TO_BOOLEAN(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
1881 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1882 CHECK_EXTENSION_B(ARB_fragment_shader
, pname
);
1883 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1885 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1886 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1887 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_UNIFORM_COMPONENTS
);
1889 case GL_MAX_VARYING_FLOATS_ARB
:
1890 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1891 params
[0] = INT_TO_BOOLEAN(MAX_VARYING_FLOATS
);
1893 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1894 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1895 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
1897 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1898 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1899 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1902 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1907 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1909 GET_CURRENT_CONTEXT(ctx
);
1910 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1915 if (ctx
->Driver
.GetFloatv
&&
1916 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1920 case GL_ACCUM_RED_BITS
:
1921 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1923 case GL_ACCUM_GREEN_BITS
:
1924 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1926 case GL_ACCUM_BLUE_BITS
:
1927 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1929 case GL_ACCUM_ALPHA_BITS
:
1930 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1932 case GL_ACCUM_CLEAR_VALUE
:
1933 params
[0] = ctx
->Accum
.ClearColor
[0];
1934 params
[1] = ctx
->Accum
.ClearColor
[1];
1935 params
[2] = ctx
->Accum
.ClearColor
[2];
1936 params
[3] = ctx
->Accum
.ClearColor
[3];
1939 params
[0] = ctx
->Pixel
.AlphaBias
;
1942 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1944 case GL_ALPHA_SCALE
:
1945 params
[0] = ctx
->Pixel
.AlphaScale
;
1948 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1950 case GL_ALPHA_TEST_FUNC
:
1951 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1953 case GL_ALPHA_TEST_REF
:
1954 params
[0] = ctx
->Color
.AlphaRef
;
1956 case GL_ATTRIB_STACK_DEPTH
:
1957 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1959 case GL_AUTO_NORMAL
:
1960 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1962 case GL_AUX_BUFFERS
:
1963 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1966 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1969 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1972 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1974 case GL_BLEND_SRC_RGB_EXT
:
1975 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1977 case GL_BLEND_DST_RGB_EXT
:
1978 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1980 case GL_BLEND_SRC_ALPHA_EXT
:
1981 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1983 case GL_BLEND_DST_ALPHA_EXT
:
1984 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1986 case GL_BLEND_EQUATION
:
1987 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1989 case GL_BLEND_EQUATION_ALPHA_EXT
:
1990 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1992 case GL_BLEND_COLOR_EXT
:
1993 params
[0] = ctx
->Color
.BlendColor
[0];
1994 params
[1] = ctx
->Color
.BlendColor
[1];
1995 params
[2] = ctx
->Color
.BlendColor
[2];
1996 params
[3] = ctx
->Color
.BlendColor
[3];
1999 params
[0] = ctx
->Pixel
.BlueBias
;
2002 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
2005 params
[0] = ctx
->Pixel
.BlueScale
;
2007 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2008 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2010 case GL_CLIP_PLANE0
:
2011 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2013 case GL_CLIP_PLANE1
:
2014 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2016 case GL_CLIP_PLANE2
:
2017 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2019 case GL_CLIP_PLANE3
:
2020 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2022 case GL_CLIP_PLANE4
:
2023 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2025 case GL_CLIP_PLANE5
:
2026 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2028 case GL_COLOR_CLEAR_VALUE
:
2029 params
[0] = ctx
->Color
.ClearColor
[0];
2030 params
[1] = ctx
->Color
.ClearColor
[1];
2031 params
[2] = ctx
->Color
.ClearColor
[2];
2032 params
[3] = ctx
->Color
.ClearColor
[3];
2034 case GL_COLOR_MATERIAL
:
2035 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2037 case GL_COLOR_MATERIAL_FACE
:
2038 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2040 case GL_COLOR_MATERIAL_PARAMETER
:
2041 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2043 case GL_COLOR_WRITEMASK
:
2044 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2045 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2046 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2047 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2050 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2052 case GL_CULL_FACE_MODE
:
2053 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2055 case GL_CURRENT_COLOR
:
2057 FLUSH_CURRENT(ctx
, 0);
2058 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2059 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2060 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2061 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2064 case GL_CURRENT_INDEX
:
2066 FLUSH_CURRENT(ctx
, 0);
2067 params
[0] = ctx
->Current
.Index
;
2070 case GL_CURRENT_NORMAL
:
2072 FLUSH_CURRENT(ctx
, 0);
2073 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2074 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2075 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2078 case GL_CURRENT_RASTER_COLOR
:
2079 params
[0] = ctx
->Current
.RasterColor
[0];
2080 params
[1] = ctx
->Current
.RasterColor
[1];
2081 params
[2] = ctx
->Current
.RasterColor
[2];
2082 params
[3] = ctx
->Current
.RasterColor
[3];
2084 case GL_CURRENT_RASTER_DISTANCE
:
2085 params
[0] = ctx
->Current
.RasterDistance
;
2087 case GL_CURRENT_RASTER_INDEX
:
2088 params
[0] = ctx
->Current
.RasterIndex
;
2090 case GL_CURRENT_RASTER_POSITION
:
2091 params
[0] = ctx
->Current
.RasterPos
[0];
2092 params
[1] = ctx
->Current
.RasterPos
[1];
2093 params
[2] = ctx
->Current
.RasterPos
[2];
2094 params
[3] = ctx
->Current
.RasterPos
[3];
2096 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2098 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2099 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2100 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2101 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2102 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2105 case GL_CURRENT_RASTER_POSITION_VALID
:
2106 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2108 case GL_CURRENT_TEXTURE_COORDS
:
2110 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2111 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2112 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2113 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2114 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2118 params
[0] = ctx
->Pixel
.DepthBias
;
2121 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2123 case GL_DEPTH_CLEAR_VALUE
:
2124 params
[0] = ctx
->Depth
.Clear
;
2127 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2129 case GL_DEPTH_RANGE
:
2130 params
[0] = ctx
->Viewport
.Near
;
2131 params
[1] = ctx
->Viewport
.Far
;
2133 case GL_DEPTH_SCALE
:
2134 params
[0] = ctx
->Pixel
.DepthScale
;
2137 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2139 case GL_DEPTH_WRITEMASK
:
2140 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2143 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2145 case GL_DOUBLEBUFFER
:
2146 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2148 case GL_DRAW_BUFFER
:
2149 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
2153 FLUSH_CURRENT(ctx
, 0);
2154 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.EdgeFlag
);
2157 case GL_FEEDBACK_BUFFER_SIZE
:
2158 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2160 case GL_FEEDBACK_BUFFER_TYPE
:
2161 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2164 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2167 params
[0] = ctx
->Fog
.Color
[0];
2168 params
[1] = ctx
->Fog
.Color
[1];
2169 params
[2] = ctx
->Fog
.Color
[2];
2170 params
[3] = ctx
->Fog
.Color
[3];
2172 case GL_FOG_DENSITY
:
2173 params
[0] = ctx
->Fog
.Density
;
2176 params
[0] = ctx
->Fog
.End
;
2179 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2182 params
[0] = ctx
->Fog
.Index
;
2185 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2188 params
[0] = ctx
->Fog
.Start
;
2191 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2194 params
[0] = ctx
->Pixel
.GreenBias
;
2197 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2199 case GL_GREEN_SCALE
:
2200 params
[0] = ctx
->Pixel
.GreenScale
;
2203 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2205 case GL_INDEX_CLEAR_VALUE
:
2206 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2209 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2211 case GL_INDEX_OFFSET
:
2212 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2214 case GL_INDEX_SHIFT
:
2215 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2217 case GL_INDEX_WRITEMASK
:
2218 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2221 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2224 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2227 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2230 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2233 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2236 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2239 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2242 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2245 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2247 case GL_LIGHT_MODEL_AMBIENT
:
2248 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2249 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2250 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2251 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2253 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2254 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2256 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2257 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2259 case GL_LIGHT_MODEL_TWO_SIDE
:
2260 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2262 case GL_LINE_SMOOTH
:
2263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2265 case GL_LINE_SMOOTH_HINT
:
2266 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2268 case GL_LINE_STIPPLE
:
2269 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2271 case GL_LINE_STIPPLE_PATTERN
:
2272 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2274 case GL_LINE_STIPPLE_REPEAT
:
2275 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2278 params
[0] = ctx
->Line
.Width
;
2280 case GL_LINE_WIDTH_GRANULARITY
:
2281 params
[0] = ctx
->Const
.LineWidthGranularity
;
2283 case GL_LINE_WIDTH_RANGE
:
2284 params
[0] = ctx
->Const
.MinLineWidthAA
;
2285 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2287 case GL_ALIASED_LINE_WIDTH_RANGE
:
2288 params
[0] = ctx
->Const
.MinLineWidth
;
2289 params
[1] = ctx
->Const
.MaxLineWidth
;
2292 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2295 params
[0] = (GLfloat
)(ctx
->ListState
.CurrentListNum
);
2300 if (!ctx
->CompileFlag
)
2302 else if (ctx
->ExecuteFlag
)
2303 mode
= GL_COMPILE_AND_EXECUTE
;
2306 params
[0] = ENUM_TO_FLOAT(mode
);
2309 case GL_INDEX_LOGIC_OP
:
2310 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2312 case GL_COLOR_LOGIC_OP
:
2313 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2315 case GL_LOGIC_OP_MODE
:
2316 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2318 case GL_MAP1_COLOR_4
:
2319 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2321 case GL_MAP1_GRID_DOMAIN
:
2322 params
[0] = ctx
->Eval
.MapGrid1u1
;
2323 params
[1] = ctx
->Eval
.MapGrid1u2
;
2325 case GL_MAP1_GRID_SEGMENTS
:
2326 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2329 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2331 case GL_MAP1_NORMAL
:
2332 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2334 case GL_MAP1_TEXTURE_COORD_1
:
2335 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2337 case GL_MAP1_TEXTURE_COORD_2
:
2338 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2340 case GL_MAP1_TEXTURE_COORD_3
:
2341 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2343 case GL_MAP1_TEXTURE_COORD_4
:
2344 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2346 case GL_MAP1_VERTEX_3
:
2347 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2349 case GL_MAP1_VERTEX_4
:
2350 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2352 case GL_MAP2_COLOR_4
:
2353 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2355 case GL_MAP2_GRID_DOMAIN
:
2356 params
[0] = ctx
->Eval
.MapGrid2u1
;
2357 params
[1] = ctx
->Eval
.MapGrid2u2
;
2358 params
[2] = ctx
->Eval
.MapGrid2v1
;
2359 params
[3] = ctx
->Eval
.MapGrid2v2
;
2361 case GL_MAP2_GRID_SEGMENTS
:
2362 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2363 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2366 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2368 case GL_MAP2_NORMAL
:
2369 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2371 case GL_MAP2_TEXTURE_COORD_1
:
2372 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2374 case GL_MAP2_TEXTURE_COORD_2
:
2375 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2377 case GL_MAP2_TEXTURE_COORD_3
:
2378 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2380 case GL_MAP2_TEXTURE_COORD_4
:
2381 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2383 case GL_MAP2_VERTEX_3
:
2384 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2386 case GL_MAP2_VERTEX_4
:
2387 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2390 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2392 case GL_MAP_STENCIL
:
2393 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2395 case GL_MATRIX_MODE
:
2396 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2398 case GL_MAX_ATTRIB_STACK_DEPTH
:
2399 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2401 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2402 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2404 case GL_MAX_CLIP_PLANES
:
2405 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2407 case GL_MAX_ELEMENTS_VERTICES
:
2408 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2410 case GL_MAX_ELEMENTS_INDICES
:
2411 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2413 case GL_MAX_EVAL_ORDER
:
2414 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2417 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2419 case GL_MAX_LIST_NESTING
:
2420 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2422 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2423 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2425 case GL_MAX_NAME_STACK_DEPTH
:
2426 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2428 case GL_MAX_PIXEL_MAP_TABLE
:
2429 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2431 case GL_MAX_PROJECTION_STACK_DEPTH
:
2432 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2434 case GL_MAX_TEXTURE_SIZE
:
2435 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2437 case GL_MAX_3D_TEXTURE_SIZE
:
2438 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2440 case GL_MAX_TEXTURE_STACK_DEPTH
:
2441 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2443 case GL_MAX_VIEWPORT_DIMS
:
2444 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2445 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2447 case GL_MODELVIEW_MATRIX
:
2449 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2450 params
[0] = matrix
[0];
2451 params
[1] = matrix
[1];
2452 params
[2] = matrix
[2];
2453 params
[3] = matrix
[3];
2454 params
[4] = matrix
[4];
2455 params
[5] = matrix
[5];
2456 params
[6] = matrix
[6];
2457 params
[7] = matrix
[7];
2458 params
[8] = matrix
[8];
2459 params
[9] = matrix
[9];
2460 params
[10] = matrix
[10];
2461 params
[11] = matrix
[11];
2462 params
[12] = matrix
[12];
2463 params
[13] = matrix
[13];
2464 params
[14] = matrix
[14];
2465 params
[15] = matrix
[15];
2468 case GL_MODELVIEW_STACK_DEPTH
:
2469 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2471 case GL_NAME_STACK_DEPTH
:
2472 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2475 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2477 case GL_PACK_ALIGNMENT
:
2478 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2480 case GL_PACK_LSB_FIRST
:
2481 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2483 case GL_PACK_ROW_LENGTH
:
2484 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2486 case GL_PACK_SKIP_PIXELS
:
2487 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2489 case GL_PACK_SKIP_ROWS
:
2490 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2492 case GL_PACK_SWAP_BYTES
:
2493 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2495 case GL_PACK_SKIP_IMAGES_EXT
:
2496 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2498 case GL_PACK_IMAGE_HEIGHT_EXT
:
2499 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2501 case GL_PACK_INVERT_MESA
:
2502 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2504 case GL_PERSPECTIVE_CORRECTION_HINT
:
2505 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2507 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2508 params
[0] = (GLfloat
)(ctx
->Pixel
.MapAtoAsize
);
2510 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2511 params
[0] = (GLfloat
)(ctx
->Pixel
.MapBtoBsize
);
2513 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2514 params
[0] = (GLfloat
)(ctx
->Pixel
.MapGtoGsize
);
2516 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2517 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoAsize
);
2519 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2520 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoBsize
);
2522 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2523 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoGsize
);
2525 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2526 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoIsize
);
2528 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2529 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoRsize
);
2531 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2532 params
[0] = (GLfloat
)(ctx
->Pixel
.MapRtoRsize
);
2534 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2535 params
[0] = (GLfloat
)(ctx
->Pixel
.MapStoSsize
);
2538 params
[0] = ctx
->Point
.Size
;
2540 case GL_POINT_SIZE_GRANULARITY
:
2541 params
[0] = ctx
->Const
.PointSizeGranularity
;
2543 case GL_POINT_SIZE_RANGE
:
2544 params
[0] = ctx
->Const
.MinPointSizeAA
;
2545 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2547 case GL_ALIASED_POINT_SIZE_RANGE
:
2548 params
[0] = ctx
->Const
.MinPointSize
;
2549 params
[1] = ctx
->Const
.MaxPointSize
;
2551 case GL_POINT_SMOOTH
:
2552 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2554 case GL_POINT_SMOOTH_HINT
:
2555 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2557 case GL_POINT_SIZE_MIN_EXT
:
2558 params
[0] = ctx
->Point
.MinSize
;
2560 case GL_POINT_SIZE_MAX_EXT
:
2561 params
[0] = ctx
->Point
.MaxSize
;
2563 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2564 params
[0] = ctx
->Point
.Threshold
;
2566 case GL_DISTANCE_ATTENUATION_EXT
:
2567 params
[0] = ctx
->Point
.Params
[0];
2568 params
[1] = ctx
->Point
.Params
[1];
2569 params
[2] = ctx
->Point
.Params
[2];
2571 case GL_POLYGON_MODE
:
2572 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2573 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2575 case GL_POLYGON_OFFSET_BIAS_EXT
:
2576 params
[0] = ctx
->Polygon
.OffsetUnits
;
2578 case GL_POLYGON_OFFSET_FACTOR
:
2579 params
[0] = ctx
->Polygon
.OffsetFactor
;
2581 case GL_POLYGON_OFFSET_UNITS
:
2582 params
[0] = ctx
->Polygon
.OffsetUnits
;
2584 case GL_POLYGON_SMOOTH
:
2585 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2587 case GL_POLYGON_SMOOTH_HINT
:
2588 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2590 case GL_POLYGON_STIPPLE
:
2591 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2593 case GL_PROJECTION_MATRIX
:
2595 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2596 params
[0] = matrix
[0];
2597 params
[1] = matrix
[1];
2598 params
[2] = matrix
[2];
2599 params
[3] = matrix
[3];
2600 params
[4] = matrix
[4];
2601 params
[5] = matrix
[5];
2602 params
[6] = matrix
[6];
2603 params
[7] = matrix
[7];
2604 params
[8] = matrix
[8];
2605 params
[9] = matrix
[9];
2606 params
[10] = matrix
[10];
2607 params
[11] = matrix
[11];
2608 params
[12] = matrix
[12];
2609 params
[13] = matrix
[13];
2610 params
[14] = matrix
[14];
2611 params
[15] = matrix
[15];
2614 case GL_PROJECTION_STACK_DEPTH
:
2615 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2617 case GL_READ_BUFFER
:
2618 params
[0] = ENUM_TO_FLOAT(ctx
->Pixel
.ReadBuffer
);
2621 params
[0] = ctx
->Pixel
.RedBias
;
2624 params
[0] = (GLfloat
)( ctx
->DrawBuffer
->Visual
.redBits
);
2627 params
[0] = ctx
->Pixel
.RedScale
;
2629 case GL_RENDER_MODE
:
2630 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2632 case GL_RESCALE_NORMAL
:
2633 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2636 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2638 case GL_SCISSOR_BOX
:
2639 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2640 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2641 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2642 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2644 case GL_SCISSOR_TEST
:
2645 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2647 case GL_SELECTION_BUFFER_SIZE
:
2648 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2650 case GL_SHADE_MODEL
:
2651 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2653 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2654 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2656 case GL_STENCIL_BITS
:
2657 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2659 case GL_STENCIL_CLEAR_VALUE
:
2660 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2662 case GL_STENCIL_FAIL
:
2663 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2665 case GL_STENCIL_FUNC
:
2666 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2668 case GL_STENCIL_PASS_DEPTH_FAIL
:
2669 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2671 case GL_STENCIL_PASS_DEPTH_PASS
:
2672 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2674 case GL_STENCIL_REF
:
2675 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2677 case GL_STENCIL_TEST
:
2678 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2680 case GL_STENCIL_VALUE_MASK
:
2681 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2683 case GL_STENCIL_WRITEMASK
:
2684 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2687 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2689 case GL_SUBPIXEL_BITS
:
2690 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2693 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2696 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2699 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2701 case GL_TEXTURE_BINDING_1D
:
2702 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
2704 case GL_TEXTURE_BINDING_2D
:
2705 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2707 case GL_TEXTURE_BINDING_3D
:
2708 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
2710 case GL_TEXTURE_ENV_COLOR
:
2712 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
2713 params
[0] = color
[0];
2714 params
[1] = color
[1];
2715 params
[2] = color
[2];
2716 params
[3] = color
[3];
2719 case GL_TEXTURE_ENV_MODE
:
2720 params
[0] = ENUM_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
2722 case GL_TEXTURE_GEN_S
:
2723 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2725 case GL_TEXTURE_GEN_T
:
2726 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2728 case GL_TEXTURE_GEN_R
:
2729 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2731 case GL_TEXTURE_GEN_Q
:
2732 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2734 case GL_TEXTURE_MATRIX
:
2736 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2737 params
[0] = matrix
[0];
2738 params
[1] = matrix
[1];
2739 params
[2] = matrix
[2];
2740 params
[3] = matrix
[3];
2741 params
[4] = matrix
[4];
2742 params
[5] = matrix
[5];
2743 params
[6] = matrix
[6];
2744 params
[7] = matrix
[7];
2745 params
[8] = matrix
[8];
2746 params
[9] = matrix
[9];
2747 params
[10] = matrix
[10];
2748 params
[11] = matrix
[11];
2749 params
[12] = matrix
[12];
2750 params
[13] = matrix
[13];
2751 params
[14] = matrix
[14];
2752 params
[15] = matrix
[15];
2755 case GL_TEXTURE_STACK_DEPTH
:
2756 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2758 case GL_UNPACK_ALIGNMENT
:
2759 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2761 case GL_UNPACK_LSB_FIRST
:
2762 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2764 case GL_UNPACK_ROW_LENGTH
:
2765 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2767 case GL_UNPACK_SKIP_PIXELS
:
2768 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2770 case GL_UNPACK_SKIP_ROWS
:
2771 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2773 case GL_UNPACK_SWAP_BYTES
:
2774 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2776 case GL_UNPACK_SKIP_IMAGES_EXT
:
2777 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2779 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2780 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2782 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2783 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2786 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2787 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2788 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2789 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2792 params
[0] = ctx
->Pixel
.ZoomX
;
2795 params
[0] = ctx
->Pixel
.ZoomY
;
2797 case GL_VERTEX_ARRAY
:
2798 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Vertex
.Enabled
);
2800 case GL_VERTEX_ARRAY_SIZE
:
2801 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Size
);
2803 case GL_VERTEX_ARRAY_TYPE
:
2804 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Vertex
.Type
);
2806 case GL_VERTEX_ARRAY_STRIDE
:
2807 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Stride
);
2809 case GL_VERTEX_ARRAY_COUNT_EXT
:
2810 params
[0] = (GLfloat
)(0);
2812 case GL_NORMAL_ARRAY
:
2813 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Enabled
);
2815 case GL_NORMAL_ARRAY_TYPE
:
2816 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Type
);
2818 case GL_NORMAL_ARRAY_STRIDE
:
2819 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.Stride
);
2821 case GL_NORMAL_ARRAY_COUNT_EXT
:
2822 params
[0] = (GLfloat
)(0);
2824 case GL_COLOR_ARRAY
:
2825 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Color
.Enabled
);
2827 case GL_COLOR_ARRAY_SIZE
:
2828 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Size
);
2830 case GL_COLOR_ARRAY_TYPE
:
2831 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Color
.Type
);
2833 case GL_COLOR_ARRAY_STRIDE
:
2834 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Stride
);
2836 case GL_COLOR_ARRAY_COUNT_EXT
:
2837 params
[0] = (GLfloat
)(0);
2839 case GL_INDEX_ARRAY
:
2840 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Index
.Enabled
);
2842 case GL_INDEX_ARRAY_TYPE
:
2843 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Index
.Type
);
2845 case GL_INDEX_ARRAY_STRIDE
:
2846 params
[0] = (GLfloat
)(ctx
->Array
.Index
.Stride
);
2848 case GL_INDEX_ARRAY_COUNT_EXT
:
2849 params
[0] = (GLfloat
)(0);
2851 case GL_TEXTURE_COORD_ARRAY
:
2852 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2854 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2855 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2857 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2858 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2860 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2861 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2863 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2864 params
[0] = (GLfloat
)(0);
2866 case GL_EDGE_FLAG_ARRAY
:
2867 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.EdgeFlag
.Enabled
);
2869 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2870 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.Stride
);
2872 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2873 params
[0] = (GLfloat
)(0);
2875 case GL_MAX_TEXTURE_UNITS_ARB
:
2876 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2877 params
[0] = (GLfloat
)(MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
));
2879 case GL_ACTIVE_TEXTURE_ARB
:
2880 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2881 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2883 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2884 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2885 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2887 case GL_TEXTURE_CUBE_MAP_ARB
:
2888 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2889 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2891 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2892 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2893 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
2895 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2896 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2897 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2899 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2900 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2901 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2903 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2904 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2905 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
));
2907 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2908 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2911 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
2913 for (i
= 0; i
< n
; i
++)
2914 params
[i
] = ENUM_TO_INT(formats
[i
]);
2917 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2918 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2919 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2921 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2922 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2923 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2925 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2927 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2928 params
[0] = matrix
[0];
2929 params
[1] = matrix
[4];
2930 params
[2] = matrix
[8];
2931 params
[3] = matrix
[12];
2932 params
[4] = matrix
[1];
2933 params
[5] = matrix
[5];
2934 params
[6] = matrix
[9];
2935 params
[7] = matrix
[13];
2936 params
[8] = matrix
[2];
2937 params
[9] = matrix
[6];
2938 params
[10] = matrix
[10];
2939 params
[11] = matrix
[14];
2940 params
[12] = matrix
[3];
2941 params
[13] = matrix
[7];
2942 params
[14] = matrix
[11];
2943 params
[15] = matrix
[15];
2946 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2948 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2949 params
[0] = matrix
[0];
2950 params
[1] = matrix
[4];
2951 params
[2] = matrix
[8];
2952 params
[3] = matrix
[12];
2953 params
[4] = matrix
[1];
2954 params
[5] = matrix
[5];
2955 params
[6] = matrix
[9];
2956 params
[7] = matrix
[13];
2957 params
[8] = matrix
[2];
2958 params
[9] = matrix
[6];
2959 params
[10] = matrix
[10];
2960 params
[11] = matrix
[14];
2961 params
[12] = matrix
[3];
2962 params
[13] = matrix
[7];
2963 params
[14] = matrix
[11];
2964 params
[15] = matrix
[15];
2967 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2969 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2970 params
[0] = matrix
[0];
2971 params
[1] = matrix
[4];
2972 params
[2] = matrix
[8];
2973 params
[3] = matrix
[12];
2974 params
[4] = matrix
[1];
2975 params
[5] = matrix
[5];
2976 params
[6] = matrix
[9];
2977 params
[7] = matrix
[13];
2978 params
[8] = matrix
[2];
2979 params
[9] = matrix
[6];
2980 params
[10] = matrix
[10];
2981 params
[11] = matrix
[14];
2982 params
[12] = matrix
[3];
2983 params
[13] = matrix
[7];
2984 params
[14] = matrix
[11];
2985 params
[15] = matrix
[15];
2988 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2990 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2991 params
[0] = matrix
[0];
2992 params
[1] = matrix
[4];
2993 params
[2] = matrix
[8];
2994 params
[3] = matrix
[12];
2995 params
[4] = matrix
[1];
2996 params
[5] = matrix
[5];
2997 params
[6] = matrix
[9];
2998 params
[7] = matrix
[13];
2999 params
[8] = matrix
[2];
3000 params
[9] = matrix
[6];
3001 params
[10] = matrix
[10];
3002 params
[11] = matrix
[14];
3003 params
[12] = matrix
[3];
3004 params
[13] = matrix
[7];
3005 params
[14] = matrix
[11];
3006 params
[15] = matrix
[15];
3009 case GL_PIXEL_TEXTURE_SGIS
:
3010 CHECK_EXTENSION_F(SGIS_pixel_texture
, pname
);
3011 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PixelTextureEnabled
);
3013 case GL_PIXEL_TEX_GEN_SGIX
:
3014 CHECK_EXTENSION_F(SGIX_pixel_texture
, pname
);
3015 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PixelTextureEnabled
);
3017 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
3018 CHECK_EXTENSION_F(SGIX_pixel_texture
, pname
);
3019 params
[0] = ENUM_TO_FLOAT(pixel_texgen_mode(ctx
));
3021 case GL_COLOR_MATRIX_SGI
:
3023 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3024 params
[0] = matrix
[0];
3025 params
[1] = matrix
[1];
3026 params
[2] = matrix
[2];
3027 params
[3] = matrix
[3];
3028 params
[4] = matrix
[4];
3029 params
[5] = matrix
[5];
3030 params
[6] = matrix
[6];
3031 params
[7] = matrix
[7];
3032 params
[8] = matrix
[8];
3033 params
[9] = matrix
[9];
3034 params
[10] = matrix
[10];
3035 params
[11] = matrix
[11];
3036 params
[12] = matrix
[12];
3037 params
[13] = matrix
[13];
3038 params
[14] = matrix
[14];
3039 params
[15] = matrix
[15];
3042 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3043 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3045 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3046 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3048 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3049 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3051 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3052 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3054 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3055 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3057 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3058 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3060 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3061 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3063 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3064 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3066 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3067 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3069 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3070 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3072 case GL_CONVOLUTION_1D_EXT
:
3073 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3074 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3076 case GL_CONVOLUTION_2D_EXT
:
3077 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3078 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3080 case GL_SEPARABLE_2D_EXT
:
3081 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3082 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3084 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3085 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3086 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3088 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3089 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3090 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3092 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3093 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3094 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3096 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3097 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3098 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3100 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3101 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3102 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3104 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3105 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3106 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3108 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3109 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3110 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3112 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3113 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3114 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3117 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3118 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3121 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3122 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3124 case GL_COLOR_TABLE_SGI
:
3125 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3126 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
);
3128 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3129 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3130 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
3132 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3133 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3134 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
3136 case GL_TEXTURE_COLOR_TABLE_SGI
:
3137 CHECK_EXTENSION_F(SGI_texture_color_table
, pname
);
3138 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3140 case GL_COLOR_SUM_EXT
:
3141 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3142 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3144 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3145 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3147 FLUSH_CURRENT(ctx
, 0);
3148 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3149 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3150 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3151 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3154 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3155 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3156 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.SecondaryColor
.Enabled
);
3158 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3159 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3160 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.SecondaryColor
.Type
);
3162 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3163 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3164 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Stride
);
3166 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3167 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3168 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Size
);
3170 case GL_CURRENT_FOG_COORDINATE_EXT
:
3171 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3173 FLUSH_CURRENT(ctx
, 0);
3174 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3177 case GL_FOG_COORDINATE_ARRAY_EXT
:
3178 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3179 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.FogCoord
.Enabled
);
3181 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3182 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3183 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.FogCoord
.Type
);
3185 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3186 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3187 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.Stride
);
3189 case GL_FOG_COORDINATE_SOURCE_EXT
:
3190 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3191 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3193 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3194 CHECK_EXTENSION_F(EXT_texture_lod_bias
, pname
);
3195 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3197 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3198 CHECK_EXTENSION_F(EXT_texture_filter_anisotropic
, pname
);
3199 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3201 case GL_MULTISAMPLE_ARB
:
3202 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3203 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3205 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3206 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3207 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3209 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3210 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3211 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3213 case GL_SAMPLE_COVERAGE_ARB
:
3214 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3215 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3217 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3218 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3219 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3221 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3222 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3225 case GL_SAMPLE_BUFFERS_ARB
:
3226 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3227 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3229 case GL_SAMPLES_ARB
:
3230 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3231 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3233 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3234 CHECK_EXTENSION_F(IBM_rasterpos_clip
, pname
);
3235 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3237 case GL_POINT_SPRITE_NV
:
3238 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3239 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3241 case GL_POINT_SPRITE_R_MODE_NV
:
3242 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3243 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3245 case GL_POINT_SPRITE_COORD_ORIGIN
:
3246 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3247 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3249 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3250 CHECK_EXTENSION_F(SGIS_generate_mipmap
, pname
);
3251 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3253 case GL_VERTEX_PROGRAM_NV
:
3254 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3255 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3257 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
3258 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3261 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
3262 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3265 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
3266 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3267 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3269 case GL_MAX_TRACK_MATRICES_NV
:
3270 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3271 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3273 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
3274 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3277 case GL_CURRENT_MATRIX_NV
:
3278 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3280 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3281 params
[0] = matrix
[0];
3282 params
[1] = matrix
[1];
3283 params
[2] = matrix
[2];
3284 params
[3] = matrix
[3];
3285 params
[4] = matrix
[4];
3286 params
[5] = matrix
[5];
3287 params
[6] = matrix
[6];
3288 params
[7] = matrix
[7];
3289 params
[8] = matrix
[8];
3290 params
[9] = matrix
[9];
3291 params
[10] = matrix
[10];
3292 params
[11] = matrix
[11];
3293 params
[12] = matrix
[12];
3294 params
[13] = matrix
[13];
3295 params
[14] = matrix
[14];
3296 params
[15] = matrix
[15];
3299 case GL_VERTEX_PROGRAM_BINDING_NV
:
3300 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3301 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3303 case GL_PROGRAM_ERROR_POSITION_NV
:
3304 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3305 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3307 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3308 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3309 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[0].Enabled
);
3311 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3312 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3313 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[1].Enabled
);
3315 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3316 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3317 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[2].Enabled
);
3319 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3320 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3321 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[3].Enabled
);
3323 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3324 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3325 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[4].Enabled
);
3327 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3328 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3329 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[5].Enabled
);
3331 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3332 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3333 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[6].Enabled
);
3335 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3336 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[7].Enabled
);
3339 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3340 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3341 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[8].Enabled
);
3343 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3344 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3345 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[9].Enabled
);
3347 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3348 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[10].Enabled
);
3351 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3352 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3353 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[11].Enabled
);
3355 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3356 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3357 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[12].Enabled
);
3359 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3360 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[13].Enabled
);
3363 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3364 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[14].Enabled
);
3367 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3368 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3369 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[15].Enabled
);
3371 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3372 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3373 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3375 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3376 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3377 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3379 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3380 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3381 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3383 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3384 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3385 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3387 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3388 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3391 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3392 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3393 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3395 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3396 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3397 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3399 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3400 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3401 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3403 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3404 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3405 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3407 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3408 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3409 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3411 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3412 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3413 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3415 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3416 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3417 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3419 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3420 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3421 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3423 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3424 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3425 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3427 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3428 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3429 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3431 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3432 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3433 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3435 case GL_FRAGMENT_PROGRAM_NV
:
3436 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3437 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3439 case GL_MAX_TEXTURE_COORDS_NV
:
3440 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3441 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3443 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
3444 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3445 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3447 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3448 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3449 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3451 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3452 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3453 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3455 case GL_TEXTURE_RECTANGLE_NV
:
3456 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3457 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3459 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3460 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3461 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3463 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3464 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3465 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3467 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3468 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3469 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3471 case GL_ACTIVE_STENCIL_FACE_EXT
:
3472 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3473 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3475 case GL_MAX_SHININESS_NV
:
3476 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3477 params
[0] = ctx
->Const
.MaxShininess
;
3479 case GL_MAX_SPOT_EXPONENT_NV
:
3480 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3481 params
[0] = ctx
->Const
.MaxSpotExponent
;
3483 case GL_ARRAY_BUFFER_BINDING_ARB
:
3484 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3485 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3487 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3488 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3489 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.BufferObj
->Name
);
3491 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3492 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3493 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.BufferObj
->Name
);
3495 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3496 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3497 params
[0] = (GLfloat
)(ctx
->Array
.Color
.BufferObj
->Name
);
3499 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3500 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3501 params
[0] = (GLfloat
)(ctx
->Array
.Index
.BufferObj
->Name
);
3503 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3504 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3505 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3507 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3508 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3509 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
3511 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3512 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3513 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
3515 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3516 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3517 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.BufferObj
->Name
);
3519 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3520 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3521 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3523 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3524 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3525 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3527 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3528 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3529 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3531 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3532 CHECK_EXTENSION_F(ARB_vertex_program
, pname
);
3533 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexProgramAttribs
);
3535 case GL_FRAGMENT_PROGRAM_ARB
:
3536 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3537 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3539 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3540 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3542 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3543 params
[0] = matrix
[0];
3544 params
[1] = matrix
[4];
3545 params
[2] = matrix
[8];
3546 params
[3] = matrix
[12];
3547 params
[4] = matrix
[1];
3548 params
[5] = matrix
[5];
3549 params
[6] = matrix
[9];
3550 params
[7] = matrix
[13];
3551 params
[8] = matrix
[2];
3552 params
[9] = matrix
[6];
3553 params
[10] = matrix
[10];
3554 params
[11] = matrix
[14];
3555 params
[12] = matrix
[3];
3556 params
[13] = matrix
[7];
3557 params
[14] = matrix
[11];
3558 params
[15] = matrix
[15];
3561 case GL_DEPTH_BOUNDS_TEST_EXT
:
3562 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3563 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3565 case GL_DEPTH_BOUNDS_EXT
:
3566 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3567 params
[0] = ctx
->Depth
.BoundsMin
;
3568 params
[1] = ctx
->Depth
.BoundsMax
;
3570 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3571 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3572 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3574 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3575 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3576 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3578 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3579 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3580 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3582 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3583 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3584 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3586 case GL_MAX_DRAW_BUFFERS_ARB
:
3587 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3588 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3590 case GL_DRAW_BUFFER0_ARB
:
3591 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3592 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
3594 case GL_DRAW_BUFFER1_ARB
:
3595 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3598 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3599 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3602 buffer
= ctx
->Color
.DrawBuffer
[1];
3603 params
[0] = ENUM_TO_FLOAT(buffer
);
3606 case GL_DRAW_BUFFER2_ARB
:
3607 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3610 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3611 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3614 buffer
= ctx
->Color
.DrawBuffer
[2];
3615 params
[0] = ENUM_TO_FLOAT(buffer
);
3618 case GL_DRAW_BUFFER3_ARB
:
3619 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3622 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3623 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3626 buffer
= ctx
->Color
.DrawBuffer
[3];
3627 params
[0] = ENUM_TO_FLOAT(buffer
);
3630 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3631 CHECK_EXTENSION_F(OES_read_format
, pname
);
3632 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3634 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3635 CHECK_EXTENSION_F(OES_read_format
, pname
);
3636 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3638 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3639 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3640 params
[0] = (GLfloat
)(6);
3642 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3643 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3644 params
[0] = (GLfloat
)(8);
3646 case GL_NUM_PASSES_ATI
:
3647 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3648 params
[0] = (GLfloat
)(2);
3650 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3651 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3652 params
[0] = (GLfloat
)(8);
3654 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3655 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3656 params
[0] = (GLfloat
)(16);
3658 case GL_COLOR_ALPHA_PAIRING_ATI
:
3659 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3660 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3662 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3663 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3664 params
[0] = (GLfloat
)(3);
3666 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3667 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3668 params
[0] = (GLfloat
)(3);
3670 case GL_STENCIL_BACK_FUNC
:
3671 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3673 case GL_STENCIL_BACK_VALUE_MASK
:
3674 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3676 case GL_STENCIL_BACK_REF
:
3677 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3679 case GL_STENCIL_BACK_FAIL
:
3680 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3682 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3683 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3685 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3686 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3688 case GL_FRAMEBUFFER_BINDING_EXT
:
3689 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3690 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3692 case GL_RENDERBUFFER_BINDING_EXT
:
3693 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3694 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3696 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3697 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3698 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3700 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3701 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3702 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3704 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3705 CHECK_EXTENSION_F(ARB_fragment_shader
, pname
);
3706 params
[0] = (GLfloat
)(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
3708 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3709 CHECK_EXTENSION_F(ARB_fragment_shader
, pname
);
3710 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3712 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3713 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3714 params
[0] = (GLfloat
)(MAX_VERTEX_UNIFORM_COMPONENTS
);
3716 case GL_MAX_VARYING_FLOATS_ARB
:
3717 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3718 params
[0] = (GLfloat
)(MAX_VARYING_FLOATS
);
3720 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3721 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3722 params
[0] = (GLfloat
)(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
3724 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3725 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3726 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3729 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3734 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3736 GET_CURRENT_CONTEXT(ctx
);
3737 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3742 if (ctx
->Driver
.GetIntegerv
&&
3743 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3747 case GL_ACCUM_RED_BITS
:
3748 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3750 case GL_ACCUM_GREEN_BITS
:
3751 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3753 case GL_ACCUM_BLUE_BITS
:
3754 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3756 case GL_ACCUM_ALPHA_BITS
:
3757 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3759 case GL_ACCUM_CLEAR_VALUE
:
3760 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3761 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3762 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3763 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3766 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3769 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3771 case GL_ALPHA_SCALE
:
3772 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3775 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3777 case GL_ALPHA_TEST_FUNC
:
3778 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3780 case GL_ALPHA_TEST_REF
:
3781 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3783 case GL_ATTRIB_STACK_DEPTH
:
3784 params
[0] = ctx
->AttribStackDepth
;
3786 case GL_AUTO_NORMAL
:
3787 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3789 case GL_AUX_BUFFERS
:
3790 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3793 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3796 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3799 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3801 case GL_BLEND_SRC_RGB_EXT
:
3802 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3804 case GL_BLEND_DST_RGB_EXT
:
3805 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3807 case GL_BLEND_SRC_ALPHA_EXT
:
3808 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3810 case GL_BLEND_DST_ALPHA_EXT
:
3811 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3813 case GL_BLEND_EQUATION
:
3814 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3816 case GL_BLEND_EQUATION_ALPHA_EXT
:
3817 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3819 case GL_BLEND_COLOR_EXT
:
3820 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3821 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3822 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3823 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3826 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3829 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3832 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3834 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3835 params
[0] = ctx
->ClientAttribStackDepth
;
3837 case GL_CLIP_PLANE0
:
3838 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3840 case GL_CLIP_PLANE1
:
3841 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3843 case GL_CLIP_PLANE2
:
3844 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3846 case GL_CLIP_PLANE3
:
3847 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3849 case GL_CLIP_PLANE4
:
3850 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3852 case GL_CLIP_PLANE5
:
3853 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3855 case GL_COLOR_CLEAR_VALUE
:
3856 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3857 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3858 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3859 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3861 case GL_COLOR_MATERIAL
:
3862 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3864 case GL_COLOR_MATERIAL_FACE
:
3865 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3867 case GL_COLOR_MATERIAL_PARAMETER
:
3868 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3870 case GL_COLOR_WRITEMASK
:
3871 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3872 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3873 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3874 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3877 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3879 case GL_CULL_FACE_MODE
:
3880 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3882 case GL_CURRENT_COLOR
:
3884 FLUSH_CURRENT(ctx
, 0);
3885 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3886 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3887 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3888 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3891 case GL_CURRENT_INDEX
:
3893 FLUSH_CURRENT(ctx
, 0);
3894 params
[0] = IROUND(ctx
->Current
.Index
);
3897 case GL_CURRENT_NORMAL
:
3899 FLUSH_CURRENT(ctx
, 0);
3900 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3901 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3902 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3905 case GL_CURRENT_RASTER_COLOR
:
3906 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3907 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3908 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3909 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3911 case GL_CURRENT_RASTER_DISTANCE
:
3912 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3914 case GL_CURRENT_RASTER_INDEX
:
3915 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3917 case GL_CURRENT_RASTER_POSITION
:
3918 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3919 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3920 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3921 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3923 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3925 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3926 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3927 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3928 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3929 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3932 case GL_CURRENT_RASTER_POSITION_VALID
:
3933 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3935 case GL_CURRENT_TEXTURE_COORDS
:
3937 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3938 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3939 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3940 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3941 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3945 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3948 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3950 case GL_DEPTH_CLEAR_VALUE
:
3951 params
[0] = IROUND(ctx
->Depth
.Clear
);
3954 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3956 case GL_DEPTH_RANGE
:
3957 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3958 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3960 case GL_DEPTH_SCALE
:
3961 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3964 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3966 case GL_DEPTH_WRITEMASK
:
3967 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3970 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3972 case GL_DOUBLEBUFFER
:
3973 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
3975 case GL_DRAW_BUFFER
:
3976 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
3980 FLUSH_CURRENT(ctx
, 0);
3981 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.EdgeFlag
);
3984 case GL_FEEDBACK_BUFFER_SIZE
:
3985 params
[0] = ctx
->Feedback
.BufferSize
;
3987 case GL_FEEDBACK_BUFFER_TYPE
:
3988 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
3991 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
3994 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
3995 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
3996 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
3997 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
3999 case GL_FOG_DENSITY
:
4000 params
[0] = IROUND(ctx
->Fog
.Density
);
4003 params
[0] = IROUND(ctx
->Fog
.End
);
4006 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4009 params
[0] = IROUND(ctx
->Fog
.Index
);
4012 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4015 params
[0] = IROUND(ctx
->Fog
.Start
);
4018 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4021 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4024 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4026 case GL_GREEN_SCALE
:
4027 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4030 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4032 case GL_INDEX_CLEAR_VALUE
:
4033 params
[0] = ctx
->Color
.ClearIndex
;
4036 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4038 case GL_INDEX_OFFSET
:
4039 params
[0] = ctx
->Pixel
.IndexOffset
;
4041 case GL_INDEX_SHIFT
:
4042 params
[0] = ctx
->Pixel
.IndexShift
;
4044 case GL_INDEX_WRITEMASK
:
4045 params
[0] = ctx
->Color
.IndexMask
;
4048 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4051 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4054 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4057 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4060 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4063 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4066 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4069 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4072 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4074 case GL_LIGHT_MODEL_AMBIENT
:
4075 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4076 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4077 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4078 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4080 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4081 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4083 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4084 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4086 case GL_LIGHT_MODEL_TWO_SIDE
:
4087 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4089 case GL_LINE_SMOOTH
:
4090 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4092 case GL_LINE_SMOOTH_HINT
:
4093 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4095 case GL_LINE_STIPPLE
:
4096 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4098 case GL_LINE_STIPPLE_PATTERN
:
4099 params
[0] = ctx
->Line
.StipplePattern
;
4101 case GL_LINE_STIPPLE_REPEAT
:
4102 params
[0] = ctx
->Line
.StippleFactor
;
4105 params
[0] = IROUND(ctx
->Line
.Width
);
4107 case GL_LINE_WIDTH_GRANULARITY
:
4108 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4110 case GL_LINE_WIDTH_RANGE
:
4111 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4112 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4114 case GL_ALIASED_LINE_WIDTH_RANGE
:
4115 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4116 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4119 params
[0] = ctx
->List
.ListBase
;
4122 params
[0] = ctx
->ListState
.CurrentListNum
;
4127 if (!ctx
->CompileFlag
)
4129 else if (ctx
->ExecuteFlag
)
4130 mode
= GL_COMPILE_AND_EXECUTE
;
4133 params
[0] = ENUM_TO_INT(mode
);
4136 case GL_INDEX_LOGIC_OP
:
4137 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4139 case GL_COLOR_LOGIC_OP
:
4140 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4142 case GL_LOGIC_OP_MODE
:
4143 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4145 case GL_MAP1_COLOR_4
:
4146 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4148 case GL_MAP1_GRID_DOMAIN
:
4149 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4150 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4152 case GL_MAP1_GRID_SEGMENTS
:
4153 params
[0] = ctx
->Eval
.MapGrid1un
;
4156 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4158 case GL_MAP1_NORMAL
:
4159 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4161 case GL_MAP1_TEXTURE_COORD_1
:
4162 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4164 case GL_MAP1_TEXTURE_COORD_2
:
4165 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4167 case GL_MAP1_TEXTURE_COORD_3
:
4168 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4170 case GL_MAP1_TEXTURE_COORD_4
:
4171 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4173 case GL_MAP1_VERTEX_3
:
4174 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4176 case GL_MAP1_VERTEX_4
:
4177 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4179 case GL_MAP2_COLOR_4
:
4180 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4182 case GL_MAP2_GRID_DOMAIN
:
4183 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4184 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4185 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4186 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4188 case GL_MAP2_GRID_SEGMENTS
:
4189 params
[0] = ctx
->Eval
.MapGrid2un
;
4190 params
[1] = ctx
->Eval
.MapGrid2vn
;
4193 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4195 case GL_MAP2_NORMAL
:
4196 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4198 case GL_MAP2_TEXTURE_COORD_1
:
4199 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4201 case GL_MAP2_TEXTURE_COORD_2
:
4202 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4204 case GL_MAP2_TEXTURE_COORD_3
:
4205 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4207 case GL_MAP2_TEXTURE_COORD_4
:
4208 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4210 case GL_MAP2_VERTEX_3
:
4211 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4213 case GL_MAP2_VERTEX_4
:
4214 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4217 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4219 case GL_MAP_STENCIL
:
4220 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4222 case GL_MATRIX_MODE
:
4223 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4225 case GL_MAX_ATTRIB_STACK_DEPTH
:
4226 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4228 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4229 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4231 case GL_MAX_CLIP_PLANES
:
4232 params
[0] = ctx
->Const
.MaxClipPlanes
;
4234 case GL_MAX_ELEMENTS_VERTICES
:
4235 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4237 case GL_MAX_ELEMENTS_INDICES
:
4238 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4240 case GL_MAX_EVAL_ORDER
:
4241 params
[0] = MAX_EVAL_ORDER
;
4244 params
[0] = ctx
->Const
.MaxLights
;
4246 case GL_MAX_LIST_NESTING
:
4247 params
[0] = MAX_LIST_NESTING
;
4249 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4250 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4252 case GL_MAX_NAME_STACK_DEPTH
:
4253 params
[0] = MAX_NAME_STACK_DEPTH
;
4255 case GL_MAX_PIXEL_MAP_TABLE
:
4256 params
[0] = MAX_PIXEL_MAP_TABLE
;
4258 case GL_MAX_PROJECTION_STACK_DEPTH
:
4259 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4261 case GL_MAX_TEXTURE_SIZE
:
4262 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4264 case GL_MAX_3D_TEXTURE_SIZE
:
4265 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4267 case GL_MAX_TEXTURE_STACK_DEPTH
:
4268 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4270 case GL_MAX_VIEWPORT_DIMS
:
4271 params
[0] = ctx
->Const
.MaxViewportWidth
;
4272 params
[1] = ctx
->Const
.MaxViewportHeight
;
4274 case GL_MODELVIEW_MATRIX
:
4276 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4277 params
[0] = IROUND(matrix
[0]);
4278 params
[1] = IROUND(matrix
[1]);
4279 params
[2] = IROUND(matrix
[2]);
4280 params
[3] = IROUND(matrix
[3]);
4281 params
[4] = IROUND(matrix
[4]);
4282 params
[5] = IROUND(matrix
[5]);
4283 params
[6] = IROUND(matrix
[6]);
4284 params
[7] = IROUND(matrix
[7]);
4285 params
[8] = IROUND(matrix
[8]);
4286 params
[9] = IROUND(matrix
[9]);
4287 params
[10] = IROUND(matrix
[10]);
4288 params
[11] = IROUND(matrix
[11]);
4289 params
[12] = IROUND(matrix
[12]);
4290 params
[13] = IROUND(matrix
[13]);
4291 params
[14] = IROUND(matrix
[14]);
4292 params
[15] = IROUND(matrix
[15]);
4295 case GL_MODELVIEW_STACK_DEPTH
:
4296 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4298 case GL_NAME_STACK_DEPTH
:
4299 params
[0] = ctx
->Select
.NameStackDepth
;
4302 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4304 case GL_PACK_ALIGNMENT
:
4305 params
[0] = ctx
->Pack
.Alignment
;
4307 case GL_PACK_LSB_FIRST
:
4308 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4310 case GL_PACK_ROW_LENGTH
:
4311 params
[0] = ctx
->Pack
.RowLength
;
4313 case GL_PACK_SKIP_PIXELS
:
4314 params
[0] = ctx
->Pack
.SkipPixels
;
4316 case GL_PACK_SKIP_ROWS
:
4317 params
[0] = ctx
->Pack
.SkipRows
;
4319 case GL_PACK_SWAP_BYTES
:
4320 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4322 case GL_PACK_SKIP_IMAGES_EXT
:
4323 params
[0] = ctx
->Pack
.SkipImages
;
4325 case GL_PACK_IMAGE_HEIGHT_EXT
:
4326 params
[0] = ctx
->Pack
.ImageHeight
;
4328 case GL_PACK_INVERT_MESA
:
4329 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4331 case GL_PERSPECTIVE_CORRECTION_HINT
:
4332 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4334 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4335 params
[0] = ctx
->Pixel
.MapAtoAsize
;
4337 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4338 params
[0] = ctx
->Pixel
.MapBtoBsize
;
4340 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4341 params
[0] = ctx
->Pixel
.MapGtoGsize
;
4343 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4344 params
[0] = ctx
->Pixel
.MapItoAsize
;
4346 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4347 params
[0] = ctx
->Pixel
.MapItoBsize
;
4349 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4350 params
[0] = ctx
->Pixel
.MapItoGsize
;
4352 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4353 params
[0] = ctx
->Pixel
.MapItoIsize
;
4355 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4356 params
[0] = ctx
->Pixel
.MapItoRsize
;
4358 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4359 params
[0] = ctx
->Pixel
.MapRtoRsize
;
4361 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4362 params
[0] = ctx
->Pixel
.MapStoSsize
;
4365 params
[0] = IROUND(ctx
->Point
.Size
);
4367 case GL_POINT_SIZE_GRANULARITY
:
4368 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4370 case GL_POINT_SIZE_RANGE
:
4371 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4372 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4374 case GL_ALIASED_POINT_SIZE_RANGE
:
4375 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4376 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4378 case GL_POINT_SMOOTH
:
4379 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4381 case GL_POINT_SMOOTH_HINT
:
4382 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4384 case GL_POINT_SIZE_MIN_EXT
:
4385 params
[0] = IROUND(ctx
->Point
.MinSize
);
4387 case GL_POINT_SIZE_MAX_EXT
:
4388 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4390 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4391 params
[0] = IROUND(ctx
->Point
.Threshold
);
4393 case GL_DISTANCE_ATTENUATION_EXT
:
4394 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4395 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4396 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4398 case GL_POLYGON_MODE
:
4399 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4400 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4402 case GL_POLYGON_OFFSET_BIAS_EXT
:
4403 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4405 case GL_POLYGON_OFFSET_FACTOR
:
4406 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4408 case GL_POLYGON_OFFSET_UNITS
:
4409 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4411 case GL_POLYGON_SMOOTH
:
4412 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4414 case GL_POLYGON_SMOOTH_HINT
:
4415 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4417 case GL_POLYGON_STIPPLE
:
4418 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4420 case GL_PROJECTION_MATRIX
:
4422 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4423 params
[0] = IROUND(matrix
[0]);
4424 params
[1] = IROUND(matrix
[1]);
4425 params
[2] = IROUND(matrix
[2]);
4426 params
[3] = IROUND(matrix
[3]);
4427 params
[4] = IROUND(matrix
[4]);
4428 params
[5] = IROUND(matrix
[5]);
4429 params
[6] = IROUND(matrix
[6]);
4430 params
[7] = IROUND(matrix
[7]);
4431 params
[8] = IROUND(matrix
[8]);
4432 params
[9] = IROUND(matrix
[9]);
4433 params
[10] = IROUND(matrix
[10]);
4434 params
[11] = IROUND(matrix
[11]);
4435 params
[12] = IROUND(matrix
[12]);
4436 params
[13] = IROUND(matrix
[13]);
4437 params
[14] = IROUND(matrix
[14]);
4438 params
[15] = IROUND(matrix
[15]);
4441 case GL_PROJECTION_STACK_DEPTH
:
4442 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4444 case GL_READ_BUFFER
:
4445 params
[0] = ENUM_TO_INT(ctx
->Pixel
.ReadBuffer
);
4448 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4451 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4454 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4456 case GL_RENDER_MODE
:
4457 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4459 case GL_RESCALE_NORMAL
:
4460 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4463 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4465 case GL_SCISSOR_BOX
:
4466 params
[0] = ctx
->Scissor
.X
;
4467 params
[1] = ctx
->Scissor
.Y
;
4468 params
[2] = ctx
->Scissor
.Width
;
4469 params
[3] = ctx
->Scissor
.Height
;
4471 case GL_SCISSOR_TEST
:
4472 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4474 case GL_SELECTION_BUFFER_SIZE
:
4475 params
[0] = ctx
->Select
.BufferSize
;
4477 case GL_SHADE_MODEL
:
4478 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4480 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4481 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4483 case GL_STENCIL_BITS
:
4484 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4486 case GL_STENCIL_CLEAR_VALUE
:
4487 params
[0] = ctx
->Stencil
.Clear
;
4489 case GL_STENCIL_FAIL
:
4490 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4492 case GL_STENCIL_FUNC
:
4493 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4495 case GL_STENCIL_PASS_DEPTH_FAIL
:
4496 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4498 case GL_STENCIL_PASS_DEPTH_PASS
:
4499 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4501 case GL_STENCIL_REF
:
4502 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4504 case GL_STENCIL_TEST
:
4505 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4507 case GL_STENCIL_VALUE_MASK
:
4508 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4510 case GL_STENCIL_WRITEMASK
:
4511 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4514 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4516 case GL_SUBPIXEL_BITS
:
4517 params
[0] = ctx
->Const
.SubPixelBits
;
4520 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4523 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4526 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4528 case GL_TEXTURE_BINDING_1D
:
4529 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4531 case GL_TEXTURE_BINDING_2D
:
4532 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4534 case GL_TEXTURE_BINDING_3D
:
4535 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4537 case GL_TEXTURE_ENV_COLOR
:
4539 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
4540 params
[0] = FLOAT_TO_INT(color
[0]);
4541 params
[1] = FLOAT_TO_INT(color
[1]);
4542 params
[2] = FLOAT_TO_INT(color
[2]);
4543 params
[3] = FLOAT_TO_INT(color
[3]);
4546 case GL_TEXTURE_ENV_MODE
:
4547 params
[0] = ENUM_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
4549 case GL_TEXTURE_GEN_S
:
4550 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4552 case GL_TEXTURE_GEN_T
:
4553 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4555 case GL_TEXTURE_GEN_R
:
4556 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4558 case GL_TEXTURE_GEN_Q
:
4559 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4561 case GL_TEXTURE_MATRIX
:
4563 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4564 params
[0] = IROUND(matrix
[0]);
4565 params
[1] = IROUND(matrix
[1]);
4566 params
[2] = IROUND(matrix
[2]);
4567 params
[3] = IROUND(matrix
[3]);
4568 params
[4] = IROUND(matrix
[4]);
4569 params
[5] = IROUND(matrix
[5]);
4570 params
[6] = IROUND(matrix
[6]);
4571 params
[7] = IROUND(matrix
[7]);
4572 params
[8] = IROUND(matrix
[8]);
4573 params
[9] = IROUND(matrix
[9]);
4574 params
[10] = IROUND(matrix
[10]);
4575 params
[11] = IROUND(matrix
[11]);
4576 params
[12] = IROUND(matrix
[12]);
4577 params
[13] = IROUND(matrix
[13]);
4578 params
[14] = IROUND(matrix
[14]);
4579 params
[15] = IROUND(matrix
[15]);
4582 case GL_TEXTURE_STACK_DEPTH
:
4583 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4585 case GL_UNPACK_ALIGNMENT
:
4586 params
[0] = ctx
->Unpack
.Alignment
;
4588 case GL_UNPACK_LSB_FIRST
:
4589 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4591 case GL_UNPACK_ROW_LENGTH
:
4592 params
[0] = ctx
->Unpack
.RowLength
;
4594 case GL_UNPACK_SKIP_PIXELS
:
4595 params
[0] = ctx
->Unpack
.SkipPixels
;
4597 case GL_UNPACK_SKIP_ROWS
:
4598 params
[0] = ctx
->Unpack
.SkipRows
;
4600 case GL_UNPACK_SWAP_BYTES
:
4601 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4603 case GL_UNPACK_SKIP_IMAGES_EXT
:
4604 params
[0] = ctx
->Unpack
.SkipImages
;
4606 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4607 params
[0] = ctx
->Unpack
.ImageHeight
;
4609 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4610 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4613 params
[0] = ctx
->Viewport
.X
;
4614 params
[1] = ctx
->Viewport
.Y
;
4615 params
[2] = ctx
->Viewport
.Width
;
4616 params
[3] = ctx
->Viewport
.Height
;
4619 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4622 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4624 case GL_VERTEX_ARRAY
:
4625 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Vertex
.Enabled
);
4627 case GL_VERTEX_ARRAY_SIZE
:
4628 params
[0] = ctx
->Array
.Vertex
.Size
;
4630 case GL_VERTEX_ARRAY_TYPE
:
4631 params
[0] = ENUM_TO_INT(ctx
->Array
.Vertex
.Type
);
4633 case GL_VERTEX_ARRAY_STRIDE
:
4634 params
[0] = ctx
->Array
.Vertex
.Stride
;
4636 case GL_VERTEX_ARRAY_COUNT_EXT
:
4639 case GL_NORMAL_ARRAY
:
4640 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Enabled
);
4642 case GL_NORMAL_ARRAY_TYPE
:
4643 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Type
);
4645 case GL_NORMAL_ARRAY_STRIDE
:
4646 params
[0] = ctx
->Array
.Normal
.Stride
;
4648 case GL_NORMAL_ARRAY_COUNT_EXT
:
4651 case GL_COLOR_ARRAY
:
4652 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Color
.Enabled
);
4654 case GL_COLOR_ARRAY_SIZE
:
4655 params
[0] = ctx
->Array
.Color
.Size
;
4657 case GL_COLOR_ARRAY_TYPE
:
4658 params
[0] = ENUM_TO_INT(ctx
->Array
.Color
.Type
);
4660 case GL_COLOR_ARRAY_STRIDE
:
4661 params
[0] = ctx
->Array
.Color
.Stride
;
4663 case GL_COLOR_ARRAY_COUNT_EXT
:
4666 case GL_INDEX_ARRAY
:
4667 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Index
.Enabled
);
4669 case GL_INDEX_ARRAY_TYPE
:
4670 params
[0] = ENUM_TO_INT(ctx
->Array
.Index
.Type
);
4672 case GL_INDEX_ARRAY_STRIDE
:
4673 params
[0] = ctx
->Array
.Index
.Stride
;
4675 case GL_INDEX_ARRAY_COUNT_EXT
:
4678 case GL_TEXTURE_COORD_ARRAY
:
4679 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4681 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4682 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4684 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4685 params
[0] = ENUM_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4687 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4688 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4690 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4693 case GL_EDGE_FLAG_ARRAY
:
4694 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.EdgeFlag
.Enabled
);
4696 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4697 params
[0] = ctx
->Array
.EdgeFlag
.Stride
;
4699 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4702 case GL_MAX_TEXTURE_UNITS_ARB
:
4703 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4704 params
[0] = MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
);
4706 case GL_ACTIVE_TEXTURE_ARB
:
4707 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4708 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4710 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4711 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4712 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4714 case GL_TEXTURE_CUBE_MAP_ARB
:
4715 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4716 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4718 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4719 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4720 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4722 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4723 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4724 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4726 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4727 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4728 params
[0] = ctx
->Hint
.TextureCompression
;
4730 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4731 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4732 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
);
4734 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4735 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4738 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
4740 for (i
= 0; i
< n
; i
++)
4741 params
[i
] = ENUM_TO_INT(formats
[i
]);
4744 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4745 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4746 params
[0] = ctx
->Array
.LockFirst
;
4748 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4749 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4750 params
[0] = ctx
->Array
.LockCount
;
4752 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4754 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4755 params
[0] = IROUND(matrix
[0]);
4756 params
[1] = IROUND(matrix
[4]);
4757 params
[2] = IROUND(matrix
[8]);
4758 params
[3] = IROUND(matrix
[12]);
4759 params
[4] = IROUND(matrix
[1]);
4760 params
[5] = IROUND(matrix
[5]);
4761 params
[6] = IROUND(matrix
[9]);
4762 params
[7] = IROUND(matrix
[13]);
4763 params
[8] = IROUND(matrix
[2]);
4764 params
[9] = IROUND(matrix
[6]);
4765 params
[10] = IROUND(matrix
[10]);
4766 params
[11] = IROUND(matrix
[14]);
4767 params
[12] = IROUND(matrix
[3]);
4768 params
[13] = IROUND(matrix
[7]);
4769 params
[14] = IROUND(matrix
[11]);
4770 params
[15] = IROUND(matrix
[15]);
4773 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4775 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4776 params
[0] = IROUND(matrix
[0]);
4777 params
[1] = IROUND(matrix
[4]);
4778 params
[2] = IROUND(matrix
[8]);
4779 params
[3] = IROUND(matrix
[12]);
4780 params
[4] = IROUND(matrix
[1]);
4781 params
[5] = IROUND(matrix
[5]);
4782 params
[6] = IROUND(matrix
[9]);
4783 params
[7] = IROUND(matrix
[13]);
4784 params
[8] = IROUND(matrix
[2]);
4785 params
[9] = IROUND(matrix
[6]);
4786 params
[10] = IROUND(matrix
[10]);
4787 params
[11] = IROUND(matrix
[14]);
4788 params
[12] = IROUND(matrix
[3]);
4789 params
[13] = IROUND(matrix
[7]);
4790 params
[14] = IROUND(matrix
[11]);
4791 params
[15] = IROUND(matrix
[15]);
4794 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4796 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4797 params
[0] = IROUND(matrix
[0]);
4798 params
[1] = IROUND(matrix
[4]);
4799 params
[2] = IROUND(matrix
[8]);
4800 params
[3] = IROUND(matrix
[12]);
4801 params
[4] = IROUND(matrix
[1]);
4802 params
[5] = IROUND(matrix
[5]);
4803 params
[6] = IROUND(matrix
[9]);
4804 params
[7] = IROUND(matrix
[13]);
4805 params
[8] = IROUND(matrix
[2]);
4806 params
[9] = IROUND(matrix
[6]);
4807 params
[10] = IROUND(matrix
[10]);
4808 params
[11] = IROUND(matrix
[14]);
4809 params
[12] = IROUND(matrix
[3]);
4810 params
[13] = IROUND(matrix
[7]);
4811 params
[14] = IROUND(matrix
[11]);
4812 params
[15] = IROUND(matrix
[15]);
4815 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4817 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4818 params
[0] = IROUND(matrix
[0]);
4819 params
[1] = IROUND(matrix
[4]);
4820 params
[2] = IROUND(matrix
[8]);
4821 params
[3] = IROUND(matrix
[12]);
4822 params
[4] = IROUND(matrix
[1]);
4823 params
[5] = IROUND(matrix
[5]);
4824 params
[6] = IROUND(matrix
[9]);
4825 params
[7] = IROUND(matrix
[13]);
4826 params
[8] = IROUND(matrix
[2]);
4827 params
[9] = IROUND(matrix
[6]);
4828 params
[10] = IROUND(matrix
[10]);
4829 params
[11] = IROUND(matrix
[14]);
4830 params
[12] = IROUND(matrix
[3]);
4831 params
[13] = IROUND(matrix
[7]);
4832 params
[14] = IROUND(matrix
[11]);
4833 params
[15] = IROUND(matrix
[15]);
4836 case GL_PIXEL_TEXTURE_SGIS
:
4837 CHECK_EXTENSION_I(SGIS_pixel_texture
, pname
);
4838 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PixelTextureEnabled
);
4840 case GL_PIXEL_TEX_GEN_SGIX
:
4841 CHECK_EXTENSION_I(SGIX_pixel_texture
, pname
);
4842 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PixelTextureEnabled
);
4844 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
4845 CHECK_EXTENSION_I(SGIX_pixel_texture
, pname
);
4846 params
[0] = ENUM_TO_INT(pixel_texgen_mode(ctx
));
4848 case GL_COLOR_MATRIX_SGI
:
4850 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4851 params
[0] = IROUND(matrix
[0]);
4852 params
[1] = IROUND(matrix
[1]);
4853 params
[2] = IROUND(matrix
[2]);
4854 params
[3] = IROUND(matrix
[3]);
4855 params
[4] = IROUND(matrix
[4]);
4856 params
[5] = IROUND(matrix
[5]);
4857 params
[6] = IROUND(matrix
[6]);
4858 params
[7] = IROUND(matrix
[7]);
4859 params
[8] = IROUND(matrix
[8]);
4860 params
[9] = IROUND(matrix
[9]);
4861 params
[10] = IROUND(matrix
[10]);
4862 params
[11] = IROUND(matrix
[11]);
4863 params
[12] = IROUND(matrix
[12]);
4864 params
[13] = IROUND(matrix
[13]);
4865 params
[14] = IROUND(matrix
[14]);
4866 params
[15] = IROUND(matrix
[15]);
4869 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4870 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4872 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4873 params
[0] = MAX_COLOR_STACK_DEPTH
;
4875 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4876 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4878 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4879 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4881 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4882 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4884 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4885 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4887 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4888 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4890 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4891 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4893 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4894 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4896 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4897 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4899 case GL_CONVOLUTION_1D_EXT
:
4900 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4901 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4903 case GL_CONVOLUTION_2D_EXT
:
4904 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4905 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4907 case GL_SEPARABLE_2D_EXT
:
4908 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4909 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4911 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4912 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4913 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4915 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4916 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4917 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4919 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4920 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4921 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4923 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4924 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4925 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4927 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4928 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4929 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4931 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4932 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4933 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4935 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4936 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4937 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4939 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4940 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4941 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4944 CHECK_EXTENSION_I(EXT_histogram
, pname
);
4945 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4948 CHECK_EXTENSION_I(EXT_histogram
, pname
);
4949 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4951 case GL_COLOR_TABLE_SGI
:
4952 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4953 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
);
4955 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4956 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4957 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
4959 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4960 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4961 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
4963 case GL_TEXTURE_COLOR_TABLE_SGI
:
4964 CHECK_EXTENSION_I(SGI_texture_color_table
, pname
);
4965 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4967 case GL_COLOR_SUM_EXT
:
4968 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4969 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4971 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4972 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4974 FLUSH_CURRENT(ctx
, 0);
4975 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4976 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4977 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4978 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4981 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4982 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4983 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.SecondaryColor
.Enabled
);
4985 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
4986 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4987 params
[0] = ENUM_TO_INT(ctx
->Array
.SecondaryColor
.Type
);
4989 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
4990 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4991 params
[0] = ctx
->Array
.SecondaryColor
.Stride
;
4993 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
4994 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4995 params
[0] = ctx
->Array
.SecondaryColor
.Size
;
4997 case GL_CURRENT_FOG_COORDINATE_EXT
:
4998 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5000 FLUSH_CURRENT(ctx
, 0);
5001 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5004 case GL_FOG_COORDINATE_ARRAY_EXT
:
5005 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5006 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.FogCoord
.Enabled
);
5008 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5009 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5010 params
[0] = ENUM_TO_INT(ctx
->Array
.FogCoord
.Type
);
5012 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5013 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5014 params
[0] = ctx
->Array
.FogCoord
.Stride
;
5016 case GL_FOG_COORDINATE_SOURCE_EXT
:
5017 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5018 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5020 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5021 CHECK_EXTENSION_I(EXT_texture_lod_bias
, pname
);
5022 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5024 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5025 CHECK_EXTENSION_I(EXT_texture_filter_anisotropic
, pname
);
5026 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5028 case GL_MULTISAMPLE_ARB
:
5029 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5030 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5032 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5033 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5034 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5036 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5037 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5038 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5040 case GL_SAMPLE_COVERAGE_ARB
:
5041 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5042 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5044 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5045 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5046 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5048 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5049 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5050 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5052 case GL_SAMPLE_BUFFERS_ARB
:
5053 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5054 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5056 case GL_SAMPLES_ARB
:
5057 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5058 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5060 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5061 CHECK_EXTENSION_I(IBM_rasterpos_clip
, pname
);
5062 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5064 case GL_POINT_SPRITE_NV
:
5065 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5066 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5068 case GL_POINT_SPRITE_R_MODE_NV
:
5069 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5070 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5072 case GL_POINT_SPRITE_COORD_ORIGIN
:
5073 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5074 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5076 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5077 CHECK_EXTENSION_I(SGIS_generate_mipmap
, pname
);
5078 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5080 case GL_VERTEX_PROGRAM_NV
:
5081 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5082 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5084 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
5085 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5086 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5088 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
5089 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5090 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5092 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
5093 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5094 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5096 case GL_MAX_TRACK_MATRICES_NV
:
5097 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5098 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5100 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
5101 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5102 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5104 case GL_CURRENT_MATRIX_NV
:
5105 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5107 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5108 params
[0] = IROUND(matrix
[0]);
5109 params
[1] = IROUND(matrix
[1]);
5110 params
[2] = IROUND(matrix
[2]);
5111 params
[3] = IROUND(matrix
[3]);
5112 params
[4] = IROUND(matrix
[4]);
5113 params
[5] = IROUND(matrix
[5]);
5114 params
[6] = IROUND(matrix
[6]);
5115 params
[7] = IROUND(matrix
[7]);
5116 params
[8] = IROUND(matrix
[8]);
5117 params
[9] = IROUND(matrix
[9]);
5118 params
[10] = IROUND(matrix
[10]);
5119 params
[11] = IROUND(matrix
[11]);
5120 params
[12] = IROUND(matrix
[12]);
5121 params
[13] = IROUND(matrix
[13]);
5122 params
[14] = IROUND(matrix
[14]);
5123 params
[15] = IROUND(matrix
[15]);
5126 case GL_VERTEX_PROGRAM_BINDING_NV
:
5127 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5128 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5130 case GL_PROGRAM_ERROR_POSITION_NV
:
5131 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5132 params
[0] = ctx
->Program
.ErrorPos
;
5134 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5135 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5136 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[0].Enabled
);
5138 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5139 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5140 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[1].Enabled
);
5142 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5143 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5144 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[2].Enabled
);
5146 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5147 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5148 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[3].Enabled
);
5150 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5151 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5152 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[4].Enabled
);
5154 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5155 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5156 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[5].Enabled
);
5158 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5159 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5160 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[6].Enabled
);
5162 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5163 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5164 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[7].Enabled
);
5166 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5167 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5168 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[8].Enabled
);
5170 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5171 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5172 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[9].Enabled
);
5174 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5175 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5176 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[10].Enabled
);
5178 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5179 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5180 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[11].Enabled
);
5182 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5183 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5184 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[12].Enabled
);
5186 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5187 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5188 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[13].Enabled
);
5190 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5191 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5192 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[14].Enabled
);
5194 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5195 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5196 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[15].Enabled
);
5198 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5199 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5200 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5202 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5203 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5204 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5206 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5207 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5208 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5210 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5211 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5212 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5214 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5215 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5216 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5218 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5219 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5220 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5222 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5223 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5224 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5226 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5227 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5228 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5230 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5231 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5232 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5234 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5235 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5236 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5238 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5239 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5240 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5242 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5243 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5244 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5246 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5247 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5248 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5250 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5251 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5252 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5254 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5255 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5256 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5258 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5259 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5260 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5262 case GL_FRAGMENT_PROGRAM_NV
:
5263 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5264 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5266 case GL_MAX_TEXTURE_COORDS_NV
:
5267 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5268 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5270 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
5271 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5272 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5274 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5275 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5276 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5278 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5279 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5280 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5282 case GL_TEXTURE_RECTANGLE_NV
:
5283 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5284 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5286 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5287 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5288 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5290 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5291 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5292 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5294 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5295 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5296 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5298 case GL_ACTIVE_STENCIL_FACE_EXT
:
5299 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5300 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5302 case GL_MAX_SHININESS_NV
:
5303 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5304 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5306 case GL_MAX_SPOT_EXPONENT_NV
:
5307 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5308 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5310 case GL_ARRAY_BUFFER_BINDING_ARB
:
5311 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5312 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5314 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5315 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5316 params
[0] = ctx
->Array
.Vertex
.BufferObj
->Name
;
5318 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5319 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5320 params
[0] = ctx
->Array
.Normal
.BufferObj
->Name
;
5322 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5323 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5324 params
[0] = ctx
->Array
.Color
.BufferObj
->Name
;
5326 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5327 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5328 params
[0] = ctx
->Array
.Index
.BufferObj
->Name
;
5330 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5331 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5332 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5334 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5335 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5336 params
[0] = ctx
->Array
.EdgeFlag
.BufferObj
->Name
;
5338 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5339 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5340 params
[0] = ctx
->Array
.SecondaryColor
.BufferObj
->Name
;
5342 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5343 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5344 params
[0] = ctx
->Array
.FogCoord
.BufferObj
->Name
;
5346 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5347 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5348 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5350 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5351 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5352 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5354 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5355 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5356 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5358 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5359 CHECK_EXTENSION_I(ARB_vertex_program
, pname
);
5360 params
[0] = ctx
->Const
.MaxVertexProgramAttribs
;
5362 case GL_FRAGMENT_PROGRAM_ARB
:
5363 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5364 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5366 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5367 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5369 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5370 params
[0] = IROUND(matrix
[0]);
5371 params
[1] = IROUND(matrix
[4]);
5372 params
[2] = IROUND(matrix
[8]);
5373 params
[3] = IROUND(matrix
[12]);
5374 params
[4] = IROUND(matrix
[1]);
5375 params
[5] = IROUND(matrix
[5]);
5376 params
[6] = IROUND(matrix
[9]);
5377 params
[7] = IROUND(matrix
[13]);
5378 params
[8] = IROUND(matrix
[2]);
5379 params
[9] = IROUND(matrix
[6]);
5380 params
[10] = IROUND(matrix
[10]);
5381 params
[11] = IROUND(matrix
[14]);
5382 params
[12] = IROUND(matrix
[3]);
5383 params
[13] = IROUND(matrix
[7]);
5384 params
[14] = IROUND(matrix
[11]);
5385 params
[15] = IROUND(matrix
[15]);
5388 case GL_DEPTH_BOUNDS_TEST_EXT
:
5389 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5390 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5392 case GL_DEPTH_BOUNDS_EXT
:
5393 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5394 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5395 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5397 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5398 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5399 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5401 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5402 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5403 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5405 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5406 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5407 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5409 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5410 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5411 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5413 case GL_MAX_DRAW_BUFFERS_ARB
:
5414 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5415 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5417 case GL_DRAW_BUFFER0_ARB
:
5418 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5419 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
5421 case GL_DRAW_BUFFER1_ARB
:
5422 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5425 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5426 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5429 buffer
= ctx
->Color
.DrawBuffer
[1];
5430 params
[0] = ENUM_TO_INT(buffer
);
5433 case GL_DRAW_BUFFER2_ARB
:
5434 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5437 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5438 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5441 buffer
= ctx
->Color
.DrawBuffer
[2];
5442 params
[0] = ENUM_TO_INT(buffer
);
5445 case GL_DRAW_BUFFER3_ARB
:
5446 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5449 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5450 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5453 buffer
= ctx
->Color
.DrawBuffer
[3];
5454 params
[0] = ENUM_TO_INT(buffer
);
5457 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5458 CHECK_EXTENSION_I(OES_read_format
, pname
);
5459 params
[0] = ctx
->Const
.ColorReadType
;
5461 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5462 CHECK_EXTENSION_I(OES_read_format
, pname
);
5463 params
[0] = ctx
->Const
.ColorReadFormat
;
5465 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5466 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5469 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5470 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5473 case GL_NUM_PASSES_ATI
:
5474 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5477 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5478 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5481 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5482 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5485 case GL_COLOR_ALPHA_PAIRING_ATI
:
5486 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5487 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5489 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5490 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5493 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5494 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5497 case GL_STENCIL_BACK_FUNC
:
5498 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5500 case GL_STENCIL_BACK_VALUE_MASK
:
5501 params
[0] = ctx
->Stencil
.ValueMask
[1];
5503 case GL_STENCIL_BACK_REF
:
5504 params
[0] = ctx
->Stencil
.Ref
[1];
5506 case GL_STENCIL_BACK_FAIL
:
5507 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5509 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5510 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5512 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5513 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5515 case GL_FRAMEBUFFER_BINDING_EXT
:
5516 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5517 params
[0] = ctx
->DrawBuffer
->Name
;
5519 case GL_RENDERBUFFER_BINDING_EXT
:
5520 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5521 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5523 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5524 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5525 params
[0] = ctx
->Const
.MaxColorAttachments
;
5527 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5528 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5529 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5531 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5532 CHECK_EXTENSION_I(ARB_fragment_shader
, pname
);
5533 params
[0] = MAX_FRAGMENT_UNIFORM_COMPONENTS
;
5535 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5536 CHECK_EXTENSION_I(ARB_fragment_shader
, pname
);
5537 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5539 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5540 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5541 params
[0] = MAX_VERTEX_UNIFORM_COMPONENTS
;
5543 case GL_MAX_VARYING_FLOATS_ARB
:
5544 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5545 params
[0] = MAX_VARYING_FLOATS
;
5547 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5548 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5549 params
[0] = MAX_VERTEX_TEXTURE_IMAGE_UNITS
;
5551 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5552 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5553 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5556 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5562 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5564 const GLfloat magic
= -1234.5F
;
5571 /* Init temp array to magic numbers so we can figure out how many values
5572 * are returned by the GetFloatv() call.
5574 for (i
= 0; i
< 16; i
++)
5577 _mesa_GetFloatv(pname
, values
);
5579 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5580 params
[i
] = (GLdouble
) values
[i
];