3 *** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
9 #include "extensions.h"
15 #include "texcompress.h"
18 #define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
20 #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
22 #define BOOLEAN_TO_INT(B) ( (GLint) (B) )
23 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
27 * Check if named extension is enabled, if not generate error and return.
29 #define CHECK_EXT1(EXT1, FUNC) \
30 if (!ctx->Extensions.EXT1) { \
31 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
36 * Check if either of two extensions is enabled.
38 #define CHECK_EXT2(EXT1, EXT2, FUNC) \
39 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \
40 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
45 * Check if either of three extensions is enabled.
47 #define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC) \
48 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
49 !ctx->Extensions.EXT3) { \
50 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
55 * Check if either of four extensions is enabled.
57 #define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \
58 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
59 !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \
60 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
66 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
68 GET_CURRENT_CONTEXT(ctx
);
69 ASSERT_OUTSIDE_BEGIN_END(ctx
);
75 _mesa_update_state(ctx
);
77 if (ctx
->Driver
.GetBooleanv
&&
78 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
82 case GL_ACCUM_RED_BITS
:
83 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumRedBits
);
85 case GL_ACCUM_GREEN_BITS
:
86 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
88 case GL_ACCUM_BLUE_BITS
:
89 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
91 case GL_ACCUM_ALPHA_BITS
:
92 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
94 case GL_ACCUM_CLEAR_VALUE
:
95 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
96 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
97 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
98 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
101 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
104 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.alphaBits
);
107 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
110 params
[0] = ctx
->Color
.AlphaEnabled
;
112 case GL_ALPHA_TEST_FUNC
:
113 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
115 case GL_ALPHA_TEST_REF
:
116 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
118 case GL_ATTRIB_STACK_DEPTH
:
119 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
122 params
[0] = ctx
->Eval
.AutoNormal
;
125 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
128 params
[0] = ctx
->Color
.BlendEnabled
;
131 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
134 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
136 case GL_BLEND_SRC_RGB_EXT
:
137 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
139 case GL_BLEND_DST_RGB_EXT
:
140 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
142 case GL_BLEND_SRC_ALPHA_EXT
:
143 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
145 case GL_BLEND_DST_ALPHA_EXT
:
146 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
148 case GL_BLEND_EQUATION
:
149 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
151 case GL_BLEND_EQUATION_ALPHA_EXT
:
152 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
154 case GL_BLEND_COLOR_EXT
:
155 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
156 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
157 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
158 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
161 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
164 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.blueBits
);
167 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
169 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
170 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
173 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
176 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
179 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
182 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
185 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
188 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
190 case GL_COLOR_CLEAR_VALUE
:
191 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
192 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
193 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
194 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
196 case GL_COLOR_MATERIAL
:
197 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
199 case GL_COLOR_MATERIAL_FACE
:
200 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
202 case GL_COLOR_MATERIAL_PARAMETER
:
203 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
205 case GL_COLOR_WRITEMASK
:
206 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
207 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
208 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
209 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
212 params
[0] = ctx
->Polygon
.CullFlag
;
214 case GL_CULL_FACE_MODE
:
215 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
217 case GL_CURRENT_COLOR
:
219 FLUSH_CURRENT(ctx
, 0);
220 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
221 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
222 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
223 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
226 case GL_CURRENT_INDEX
:
228 FLUSH_CURRENT(ctx
, 0);
229 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
232 case GL_CURRENT_NORMAL
:
234 FLUSH_CURRENT(ctx
, 0);
235 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
236 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
237 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
240 case GL_CURRENT_RASTER_COLOR
:
241 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
242 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
243 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
244 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
246 case GL_CURRENT_RASTER_DISTANCE
:
247 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
249 case GL_CURRENT_RASTER_INDEX
:
250 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterIndex
);
252 case GL_CURRENT_RASTER_POSITION
:
253 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
254 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
255 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
256 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
258 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[0]);
260 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[1]);
261 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[2]);
262 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[3]);
264 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
266 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
267 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
268 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
269 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
270 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
273 case GL_CURRENT_RASTER_POSITION_VALID
:
274 params
[0] = ctx
->Current
.RasterPosValid
;
276 case GL_CURRENT_TEXTURE_COORDS
:
278 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
279 FLUSH_CURRENT(ctx
, 0);
280 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
281 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
282 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
283 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
287 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
290 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
292 case GL_DEPTH_CLEAR_VALUE
:
293 params
[0] = FLOAT_TO_BOOLEAN(((GLfloat
) ctx
->Depth
.Clear
));
296 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
299 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
300 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
303 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
306 params
[0] = ctx
->Depth
.Test
;
308 case GL_DEPTH_WRITEMASK
:
309 params
[0] = ctx
->Depth
.Mask
;
312 params
[0] = ctx
->Color
.DitherFlag
;
314 case GL_DOUBLEBUFFER
:
315 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
318 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
322 FLUSH_CURRENT(ctx
, 0);
323 params
[0] = (ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0);
326 case GL_FEEDBACK_BUFFER_SIZE
:
327 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
329 case GL_FEEDBACK_BUFFER_TYPE
:
330 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
333 params
[0] = ctx
->Fog
.Enabled
;
336 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
337 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
338 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
339 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
342 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
345 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
348 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
351 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
354 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
357 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
360 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
363 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
366 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
369 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
372 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
374 case GL_INDEX_CLEAR_VALUE
:
375 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
378 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
380 case GL_INDEX_OFFSET
:
381 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
384 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
386 case GL_INDEX_WRITEMASK
:
387 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
390 params
[0] = ctx
->Light
.Light
[0].Enabled
;
393 params
[0] = ctx
->Light
.Light
[1].Enabled
;
396 params
[0] = ctx
->Light
.Light
[2].Enabled
;
399 params
[0] = ctx
->Light
.Light
[3].Enabled
;
402 params
[0] = ctx
->Light
.Light
[4].Enabled
;
405 params
[0] = ctx
->Light
.Light
[5].Enabled
;
408 params
[0] = ctx
->Light
.Light
[6].Enabled
;
411 params
[0] = ctx
->Light
.Light
[7].Enabled
;
414 params
[0] = ctx
->Light
.Enabled
;
416 case GL_LIGHT_MODEL_AMBIENT
:
417 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
418 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
419 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
420 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
422 case GL_LIGHT_MODEL_COLOR_CONTROL
:
423 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
425 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
426 params
[0] = ctx
->Light
.Model
.LocalViewer
;
428 case GL_LIGHT_MODEL_TWO_SIDE
:
429 params
[0] = ctx
->Light
.Model
.TwoSide
;
432 params
[0] = ctx
->Line
.SmoothFlag
;
434 case GL_LINE_SMOOTH_HINT
:
435 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
437 case GL_LINE_STIPPLE
:
438 params
[0] = ctx
->Line
.StippleFlag
;
440 case GL_LINE_STIPPLE_PATTERN
:
441 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
443 case GL_LINE_STIPPLE_REPEAT
:
444 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
447 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
449 case GL_LINE_WIDTH_GRANULARITY
:
450 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
452 case GL_LINE_WIDTH_RANGE
:
453 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
454 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
456 case GL_ALIASED_LINE_WIDTH_RANGE
:
457 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
458 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
461 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
464 params
[0] = INT_TO_BOOLEAN((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
469 if (!ctx
->CompileFlag
)
471 else if (ctx
->ExecuteFlag
)
472 mode
= GL_COMPILE_AND_EXECUTE
;
475 params
[0] = ENUM_TO_BOOLEAN(mode
);
478 case GL_INDEX_LOGIC_OP
:
479 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
481 case GL_COLOR_LOGIC_OP
:
482 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
484 case GL_LOGIC_OP_MODE
:
485 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
487 case GL_MAP1_COLOR_4
:
488 params
[0] = ctx
->Eval
.Map1Color4
;
490 case GL_MAP1_GRID_DOMAIN
:
491 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
492 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
494 case GL_MAP1_GRID_SEGMENTS
:
495 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
498 params
[0] = ctx
->Eval
.Map1Index
;
501 params
[0] = ctx
->Eval
.Map1Normal
;
503 case GL_MAP1_TEXTURE_COORD_1
:
504 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
506 case GL_MAP1_TEXTURE_COORD_2
:
507 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
509 case GL_MAP1_TEXTURE_COORD_3
:
510 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
512 case GL_MAP1_TEXTURE_COORD_4
:
513 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
515 case GL_MAP1_VERTEX_3
:
516 params
[0] = ctx
->Eval
.Map1Vertex3
;
518 case GL_MAP1_VERTEX_4
:
519 params
[0] = ctx
->Eval
.Map1Vertex4
;
521 case GL_MAP2_COLOR_4
:
522 params
[0] = ctx
->Eval
.Map2Color4
;
524 case GL_MAP2_GRID_DOMAIN
:
525 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
526 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
527 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
528 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
530 case GL_MAP2_GRID_SEGMENTS
:
531 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
532 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
535 params
[0] = ctx
->Eval
.Map2Index
;
538 params
[0] = ctx
->Eval
.Map2Normal
;
540 case GL_MAP2_TEXTURE_COORD_1
:
541 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
543 case GL_MAP2_TEXTURE_COORD_2
:
544 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
546 case GL_MAP2_TEXTURE_COORD_3
:
547 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
549 case GL_MAP2_TEXTURE_COORD_4
:
550 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
552 case GL_MAP2_VERTEX_3
:
553 params
[0] = ctx
->Eval
.Map2Vertex3
;
555 case GL_MAP2_VERTEX_4
:
556 params
[0] = ctx
->Eval
.Map2Vertex4
;
559 params
[0] = ctx
->Pixel
.MapColorFlag
;
562 params
[0] = ctx
->Pixel
.MapStencilFlag
;
565 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
567 case GL_MAX_ATTRIB_STACK_DEPTH
:
568 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
570 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
571 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
573 case GL_MAX_CLIP_PLANES
:
574 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
576 case GL_MAX_ELEMENTS_VERTICES
:
577 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
579 case GL_MAX_ELEMENTS_INDICES
:
580 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
582 case GL_MAX_EVAL_ORDER
:
583 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
586 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
588 case GL_MAX_LIST_NESTING
:
589 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
591 case GL_MAX_MODELVIEW_STACK_DEPTH
:
592 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
594 case GL_MAX_NAME_STACK_DEPTH
:
595 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
597 case GL_MAX_PIXEL_MAP_TABLE
:
598 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
600 case GL_MAX_PROJECTION_STACK_DEPTH
:
601 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
603 case GL_MAX_TEXTURE_SIZE
:
604 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
606 case GL_MAX_3D_TEXTURE_SIZE
:
607 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
609 case GL_MAX_TEXTURE_STACK_DEPTH
:
610 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
612 case GL_MAX_VIEWPORT_DIMS
:
613 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
614 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
616 case GL_MODELVIEW_MATRIX
:
618 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
619 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
620 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
621 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
622 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
623 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
624 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
625 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
626 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
627 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
628 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
629 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
630 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
631 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
632 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
633 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
634 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
637 case GL_MODELVIEW_STACK_DEPTH
:
638 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
640 case GL_NAME_STACK_DEPTH
:
641 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
644 params
[0] = ctx
->Transform
.Normalize
;
646 case GL_PACK_ALIGNMENT
:
647 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
649 case GL_PACK_LSB_FIRST
:
650 params
[0] = ctx
->Pack
.LsbFirst
;
652 case GL_PACK_ROW_LENGTH
:
653 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
655 case GL_PACK_SKIP_PIXELS
:
656 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
658 case GL_PACK_SKIP_ROWS
:
659 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
661 case GL_PACK_SWAP_BYTES
:
662 params
[0] = ctx
->Pack
.SwapBytes
;
664 case GL_PACK_SKIP_IMAGES_EXT
:
665 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
667 case GL_PACK_IMAGE_HEIGHT_EXT
:
668 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
670 case GL_PACK_INVERT_MESA
:
671 params
[0] = ctx
->Pack
.Invert
;
673 case GL_PERSPECTIVE_CORRECTION_HINT
:
674 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
676 case GL_PIXEL_MAP_A_TO_A_SIZE
:
677 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.AtoA
.Size
);
679 case GL_PIXEL_MAP_B_TO_B_SIZE
:
680 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.BtoB
.Size
);
682 case GL_PIXEL_MAP_G_TO_G_SIZE
:
683 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.GtoG
.Size
);
685 case GL_PIXEL_MAP_I_TO_A_SIZE
:
686 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoA
.Size
);
688 case GL_PIXEL_MAP_I_TO_B_SIZE
:
689 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoB
.Size
);
691 case GL_PIXEL_MAP_I_TO_G_SIZE
:
692 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoG
.Size
);
694 case GL_PIXEL_MAP_I_TO_I_SIZE
:
695 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoI
.Size
);
697 case GL_PIXEL_MAP_I_TO_R_SIZE
:
698 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoR
.Size
);
700 case GL_PIXEL_MAP_R_TO_R_SIZE
:
701 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.RtoR
.Size
);
703 case GL_PIXEL_MAP_S_TO_S_SIZE
:
704 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.StoS
.Size
);
707 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
709 case GL_POINT_SIZE_GRANULARITY
:
710 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
712 case GL_POINT_SIZE_RANGE
:
713 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
714 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
716 case GL_ALIASED_POINT_SIZE_RANGE
:
717 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
718 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
720 case GL_POINT_SMOOTH
:
721 params
[0] = ctx
->Point
.SmoothFlag
;
723 case GL_POINT_SMOOTH_HINT
:
724 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
726 case GL_POINT_SIZE_MIN_EXT
:
727 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
729 case GL_POINT_SIZE_MAX_EXT
:
730 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
732 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
733 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
735 case GL_DISTANCE_ATTENUATION_EXT
:
736 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
737 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
738 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
740 case GL_POLYGON_MODE
:
741 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
742 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
744 case GL_POLYGON_OFFSET_BIAS_EXT
:
745 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
747 case GL_POLYGON_OFFSET_FACTOR
:
748 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
750 case GL_POLYGON_OFFSET_UNITS
:
751 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
753 case GL_POLYGON_OFFSET_POINT
:
754 params
[0] = ctx
->Polygon
.OffsetPoint
;
756 case GL_POLYGON_OFFSET_LINE
:
757 params
[0] = ctx
->Polygon
.OffsetLine
;
759 case GL_POLYGON_OFFSET_FILL
:
760 params
[0] = ctx
->Polygon
.OffsetFill
;
762 case GL_POLYGON_SMOOTH
:
763 params
[0] = ctx
->Polygon
.SmoothFlag
;
765 case GL_POLYGON_SMOOTH_HINT
:
766 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
768 case GL_POLYGON_STIPPLE
:
769 params
[0] = ctx
->Polygon
.StippleFlag
;
771 case GL_PROJECTION_MATRIX
:
773 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
774 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
775 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
776 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
777 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
778 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
779 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
780 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
781 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
782 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
783 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
784 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
785 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
786 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
787 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
788 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
789 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
792 case GL_PROJECTION_STACK_DEPTH
:
793 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
796 params
[0] = ENUM_TO_BOOLEAN(ctx
->ReadBuffer
->ColorReadBuffer
);
799 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
802 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.redBits
);
805 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
808 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
810 case GL_RESCALE_NORMAL
:
811 params
[0] = ctx
->Transform
.RescaleNormals
;
814 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
817 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
818 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
819 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
820 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
822 case GL_SCISSOR_TEST
:
823 params
[0] = ctx
->Scissor
.Enabled
;
825 case GL_SELECTION_BUFFER_SIZE
:
826 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
829 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
831 case GL_SHARED_TEXTURE_PALETTE_EXT
:
832 params
[0] = ctx
->Texture
.SharedPalette
;
834 case GL_STENCIL_BITS
:
835 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
837 case GL_STENCIL_CLEAR_VALUE
:
838 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
840 case GL_STENCIL_FAIL
:
841 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
843 case GL_STENCIL_FUNC
:
844 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
846 case GL_STENCIL_PASS_DEPTH_FAIL
:
847 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
849 case GL_STENCIL_PASS_DEPTH_PASS
:
850 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
853 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
855 case GL_STENCIL_TEST
:
856 params
[0] = ctx
->Stencil
.Enabled
;
858 case GL_STENCIL_VALUE_MASK
:
859 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
861 case GL_STENCIL_WRITEMASK
:
862 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
865 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
867 case GL_SUBPIXEL_BITS
:
868 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
871 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
874 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
877 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
879 case GL_TEXTURE_1D_ARRAY_EXT
:
880 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
881 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
);
883 case GL_TEXTURE_2D_ARRAY_EXT
:
884 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
885 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
);
887 case GL_TEXTURE_BINDING_1D
:
888 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
890 case GL_TEXTURE_BINDING_2D
:
891 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
893 case GL_TEXTURE_BINDING_3D
:
894 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
896 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
897 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
898 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
900 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
901 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
902 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
904 case GL_TEXTURE_GEN_S
:
905 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
907 case GL_TEXTURE_GEN_T
:
908 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
910 case GL_TEXTURE_GEN_R
:
911 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
913 case GL_TEXTURE_GEN_Q
:
914 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
916 case GL_TEXTURE_MATRIX
:
918 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
919 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
920 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
921 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
922 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
923 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
924 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
925 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
926 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
927 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
928 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
929 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
930 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
931 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
932 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
933 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
934 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
937 case GL_TEXTURE_STACK_DEPTH
:
938 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
940 case GL_UNPACK_ALIGNMENT
:
941 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
943 case GL_UNPACK_LSB_FIRST
:
944 params
[0] = ctx
->Unpack
.LsbFirst
;
946 case GL_UNPACK_ROW_LENGTH
:
947 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
949 case GL_UNPACK_SKIP_PIXELS
:
950 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
952 case GL_UNPACK_SKIP_ROWS
:
953 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
955 case GL_UNPACK_SWAP_BYTES
:
956 params
[0] = ctx
->Unpack
.SwapBytes
;
958 case GL_UNPACK_SKIP_IMAGES_EXT
:
959 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
961 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
962 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
964 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
965 params
[0] = ctx
->Unpack
.ClientStorage
;
968 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
969 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
970 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
971 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
974 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
977 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
979 case GL_VERTEX_ARRAY
:
980 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Enabled
;
982 case GL_VERTEX_ARRAY_SIZE
:
983 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Size
);
985 case GL_VERTEX_ARRAY_TYPE
:
986 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Type
);
988 case GL_VERTEX_ARRAY_STRIDE
:
989 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
991 case GL_VERTEX_ARRAY_COUNT_EXT
:
992 params
[0] = INT_TO_BOOLEAN(0);
994 case GL_NORMAL_ARRAY
:
995 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
997 case GL_NORMAL_ARRAY_TYPE
:
998 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Type
);
1000 case GL_NORMAL_ARRAY_STRIDE
:
1001 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Stride
);
1003 case GL_NORMAL_ARRAY_COUNT_EXT
:
1004 params
[0] = INT_TO_BOOLEAN(0);
1006 case GL_COLOR_ARRAY
:
1007 params
[0] = ctx
->Array
.ArrayObj
->Color
.Enabled
;
1009 case GL_COLOR_ARRAY_SIZE
:
1010 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Size
);
1012 case GL_COLOR_ARRAY_TYPE
:
1013 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Type
);
1015 case GL_COLOR_ARRAY_STRIDE
:
1016 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Stride
);
1018 case GL_COLOR_ARRAY_COUNT_EXT
:
1019 params
[0] = INT_TO_BOOLEAN(0);
1021 case GL_INDEX_ARRAY
:
1022 params
[0] = ctx
->Array
.ArrayObj
->Index
.Enabled
;
1024 case GL_INDEX_ARRAY_TYPE
:
1025 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Type
);
1027 case GL_INDEX_ARRAY_STRIDE
:
1028 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Stride
);
1030 case GL_INDEX_ARRAY_COUNT_EXT
:
1031 params
[0] = INT_TO_BOOLEAN(0);
1033 case GL_TEXTURE_COORD_ARRAY
:
1034 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1036 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1037 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1039 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1040 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1042 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1043 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1045 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1046 params
[0] = INT_TO_BOOLEAN(0);
1048 case GL_EDGE_FLAG_ARRAY
:
1049 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
;
1051 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1052 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
1054 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1055 params
[0] = INT_TO_BOOLEAN(0);
1057 case GL_MAX_TEXTURE_UNITS_ARB
:
1058 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1059 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1061 case GL_ACTIVE_TEXTURE_ARB
:
1062 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1063 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1065 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1066 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1067 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1069 case GL_TEXTURE_CUBE_MAP_ARB
:
1070 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1071 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1073 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1074 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1075 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
1077 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1078 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1079 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1081 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1082 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1084 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1085 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1087 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1090 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1092 for (i
= 0; i
< n
; i
++)
1093 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
1096 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1097 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1098 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1100 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1101 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1102 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1104 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1106 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1107 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1108 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1109 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1110 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1111 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1112 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1113 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1114 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1115 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1116 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1117 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1118 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1119 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1120 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1121 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1122 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1125 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1127 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1128 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1129 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1130 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1131 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1132 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1133 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1134 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1135 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1136 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1137 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1138 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1139 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1140 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1141 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1142 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1143 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1146 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1148 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1149 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1150 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1151 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1152 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1153 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1154 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1155 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1156 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1157 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1158 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1159 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1160 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1161 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1162 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1163 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1164 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1167 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1169 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1170 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1171 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1172 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1173 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1174 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1175 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1176 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1177 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1178 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1179 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1180 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1181 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1182 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1183 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1184 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1185 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1188 case GL_COLOR_MATRIX_SGI
:
1190 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1191 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1192 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1193 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1194 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1195 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1196 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1197 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1198 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1199 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1200 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1201 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1202 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1203 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1204 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1205 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1206 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1209 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1210 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1212 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1213 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1215 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1216 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1218 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1219 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1221 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1222 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1224 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1225 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1227 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1228 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1230 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1231 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1233 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1234 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1236 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1237 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1239 case GL_CONVOLUTION_1D_EXT
:
1240 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1241 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1243 case GL_CONVOLUTION_2D_EXT
:
1244 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1245 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1247 case GL_SEPARABLE_2D_EXT
:
1248 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1249 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1251 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1252 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1253 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1255 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1256 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1257 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1259 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1260 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1261 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1263 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1264 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1265 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1267 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1268 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1269 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1271 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1272 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1273 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1275 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1276 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1277 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1279 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1280 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1281 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1284 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1285 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1288 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1289 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1291 case GL_COLOR_TABLE_SGI
:
1292 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1293 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
];
1295 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1296 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1297 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
];
1299 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1300 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1301 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
];
1303 case GL_TEXTURE_COLOR_TABLE_SGI
:
1304 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1305 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1307 case GL_COLOR_SUM_EXT
:
1308 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1309 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1311 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1312 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1314 FLUSH_CURRENT(ctx
, 0);
1315 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1316 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1317 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1318 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1321 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1322 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1323 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
;
1325 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1326 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1327 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
1329 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1330 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1331 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
1333 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1334 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1335 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
1337 case GL_CURRENT_FOG_COORDINATE_EXT
:
1338 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1340 FLUSH_CURRENT(ctx
, 0);
1341 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1344 case GL_FOG_COORDINATE_ARRAY_EXT
:
1345 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1346 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Enabled
;
1348 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1349 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1350 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
1352 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1353 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1354 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
1356 case GL_FOG_COORDINATE_SOURCE_EXT
:
1357 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1358 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1360 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1361 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1362 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1364 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1365 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1366 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1368 case GL_MULTISAMPLE_ARB
:
1369 params
[0] = ctx
->Multisample
.Enabled
;
1371 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1372 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1374 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1375 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1377 case GL_SAMPLE_COVERAGE_ARB
:
1378 params
[0] = ctx
->Multisample
.SampleCoverage
;
1380 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1381 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1383 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1384 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1386 case GL_SAMPLE_BUFFERS_ARB
:
1387 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1389 case GL_SAMPLES_ARB
:
1390 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1392 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1393 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1394 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1396 case GL_POINT_SPRITE_NV
:
1397 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1398 params
[0] = ctx
->Point
.PointSprite
;
1400 case GL_POINT_SPRITE_R_MODE_NV
:
1401 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1402 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1404 case GL_POINT_SPRITE_COORD_ORIGIN
:
1405 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1406 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1408 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1409 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1410 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1412 case GL_VERTEX_PROGRAM_BINDING_NV
:
1413 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1414 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1416 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1417 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1418 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
;
1420 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1421 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1422 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
;
1424 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1425 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1426 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
;
1428 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1429 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1430 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
;
1432 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1433 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1434 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
;
1436 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1437 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1438 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
;
1440 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1441 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1442 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
;
1444 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1445 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1446 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
;
1448 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1449 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1450 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
;
1452 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1453 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1454 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
;
1456 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1457 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1458 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
;
1460 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1461 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1462 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
;
1464 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1465 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1466 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
;
1468 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1469 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1470 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
;
1472 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1473 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1474 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
;
1476 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1477 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1478 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
;
1480 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1481 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1482 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1484 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1485 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1486 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1488 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1489 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1490 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1492 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1493 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1494 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1496 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1497 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1498 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1500 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1501 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1502 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1504 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1505 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1506 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1508 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1509 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1510 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1512 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1513 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1514 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1516 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1517 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1518 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1520 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1521 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1522 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1524 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1525 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1526 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1528 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1529 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1530 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1532 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1533 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1534 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1536 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1537 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1538 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1540 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1541 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1542 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1544 case GL_FRAGMENT_PROGRAM_NV
:
1545 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1546 params
[0] = ctx
->FragmentProgram
.Enabled
;
1548 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1549 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1550 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1552 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1553 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1554 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1556 case GL_TEXTURE_RECTANGLE_NV
:
1557 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1558 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1560 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1561 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1562 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
1564 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1565 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1566 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1568 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1569 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1570 params
[0] = ctx
->Stencil
.TestTwoSide
;
1572 case GL_ACTIVE_STENCIL_FACE_EXT
:
1573 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1574 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1576 case GL_MAX_SHININESS_NV
:
1577 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1578 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1580 case GL_MAX_SPOT_EXPONENT_NV
:
1581 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1582 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1584 case GL_ARRAY_BUFFER_BINDING_ARB
:
1585 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1587 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1588 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
1590 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1591 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
1593 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1594 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
1596 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1597 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
1599 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1600 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1602 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1603 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
1605 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1606 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
1608 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1609 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
1611 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1612 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1614 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1615 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1616 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1618 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1619 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1620 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1622 case GL_VERTEX_PROGRAM_ARB
:
1623 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1624 params
[0] = ctx
->VertexProgram
.Enabled
;
1626 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1627 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1628 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1630 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1631 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1632 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1634 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1635 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1636 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1638 case GL_MAX_PROGRAM_MATRICES_ARB
:
1639 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1640 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1642 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1643 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1644 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1646 case GL_CURRENT_MATRIX_ARB
:
1647 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1649 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1650 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1651 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1652 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1653 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1654 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1655 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1656 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1657 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1658 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1659 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1660 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1661 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1662 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1663 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1664 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1665 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1668 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1669 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1671 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1672 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1673 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1674 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1675 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1676 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1677 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1678 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1679 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1680 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1681 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1682 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1683 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1684 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1685 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1686 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1687 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1690 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1691 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1692 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1694 case GL_PROGRAM_ERROR_POSITION_ARB
:
1695 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1696 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1698 case GL_FRAGMENT_PROGRAM_ARB
:
1699 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1700 params
[0] = ctx
->FragmentProgram
.Enabled
;
1702 case GL_MAX_TEXTURE_COORDS_ARB
:
1703 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1704 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1706 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1707 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1708 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1710 case GL_DEPTH_BOUNDS_TEST_EXT
:
1711 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1712 params
[0] = ctx
->Depth
.BoundsTest
;
1714 case GL_DEPTH_BOUNDS_EXT
:
1715 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1716 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1717 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1719 case GL_MAX_DRAW_BUFFERS_ARB
:
1720 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1722 case GL_DRAW_BUFFER0_ARB
:
1723 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1725 case GL_DRAW_BUFFER1_ARB
:
1728 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1729 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1732 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1733 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1736 case GL_DRAW_BUFFER2_ARB
:
1739 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1740 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1743 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1744 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1747 case GL_DRAW_BUFFER3_ARB
:
1750 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1751 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1754 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1755 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1758 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1759 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1760 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1762 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1763 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1764 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1766 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1767 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1768 params
[0] = INT_TO_BOOLEAN(6);
1770 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1771 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1772 params
[0] = INT_TO_BOOLEAN(8);
1774 case GL_NUM_PASSES_ATI
:
1775 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1776 params
[0] = INT_TO_BOOLEAN(2);
1778 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1779 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1780 params
[0] = INT_TO_BOOLEAN(8);
1782 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1783 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1784 params
[0] = INT_TO_BOOLEAN(16);
1786 case GL_COLOR_ALPHA_PAIRING_ATI
:
1787 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1788 params
[0] = GL_TRUE
;
1790 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1791 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1792 params
[0] = INT_TO_BOOLEAN(3);
1794 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1795 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1796 params
[0] = INT_TO_BOOLEAN(3);
1798 case GL_STENCIL_BACK_FUNC
:
1799 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1801 case GL_STENCIL_BACK_VALUE_MASK
:
1802 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1804 case GL_STENCIL_BACK_WRITEMASK
:
1805 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1807 case GL_STENCIL_BACK_REF
:
1808 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1810 case GL_STENCIL_BACK_FAIL
:
1811 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1813 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1814 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1816 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1817 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1819 case GL_FRAMEBUFFER_BINDING_EXT
:
1820 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1821 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1823 case GL_RENDERBUFFER_BINDING_EXT
:
1824 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1825 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1827 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1828 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1829 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1831 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1832 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1833 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1835 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1836 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1837 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1839 case GL_PROVOKING_VERTEX_EXT
:
1840 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1841 params
[0] = ctx
->Light
.ProvokingVertex
;
1843 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
1844 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1845 params
[0] = ctx
->Const
.QuadsFollowProvokingVertexConvention
;
1847 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1848 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1849 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1851 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1852 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1853 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1855 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1856 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1857 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1859 case GL_MAX_VARYING_FLOATS_ARB
:
1860 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1861 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1863 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1864 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1865 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1867 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1868 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1869 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1871 case GL_CURRENT_PROGRAM
:
1872 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1873 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1875 case GL_MAX_SAMPLES
:
1876 CHECK_EXT1(ARB_framebuffer_object
, "GetBooleanv");
1877 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxSamples
);
1879 case GL_VERTEX_ARRAY_BINDING_APPLE
:
1880 CHECK_EXT1(APPLE_vertex_array_object
, "GetBooleanv");
1881 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Name
);
1883 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
1884 CHECK_EXT1(ARB_seamless_cube_map
, "GetBooleanv");
1885 params
[0] = ctx
->Texture
.CubeMapSeamless
;
1888 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1893 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1895 GET_CURRENT_CONTEXT(ctx
);
1896 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1902 _mesa_update_state(ctx
);
1904 if (ctx
->Driver
.GetFloatv
&&
1905 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1909 case GL_ACCUM_RED_BITS
:
1910 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1912 case GL_ACCUM_GREEN_BITS
:
1913 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1915 case GL_ACCUM_BLUE_BITS
:
1916 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1918 case GL_ACCUM_ALPHA_BITS
:
1919 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1921 case GL_ACCUM_CLEAR_VALUE
:
1922 params
[0] = ctx
->Accum
.ClearColor
[0];
1923 params
[1] = ctx
->Accum
.ClearColor
[1];
1924 params
[2] = ctx
->Accum
.ClearColor
[2];
1925 params
[3] = ctx
->Accum
.ClearColor
[3];
1928 params
[0] = ctx
->Pixel
.AlphaBias
;
1931 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1933 case GL_ALPHA_SCALE
:
1934 params
[0] = ctx
->Pixel
.AlphaScale
;
1937 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1939 case GL_ALPHA_TEST_FUNC
:
1940 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1942 case GL_ALPHA_TEST_REF
:
1943 params
[0] = ctx
->Color
.AlphaRef
;
1945 case GL_ATTRIB_STACK_DEPTH
:
1946 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1948 case GL_AUTO_NORMAL
:
1949 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1951 case GL_AUX_BUFFERS
:
1952 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1955 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1958 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1961 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1963 case GL_BLEND_SRC_RGB_EXT
:
1964 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1966 case GL_BLEND_DST_RGB_EXT
:
1967 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1969 case GL_BLEND_SRC_ALPHA_EXT
:
1970 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1972 case GL_BLEND_DST_ALPHA_EXT
:
1973 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1975 case GL_BLEND_EQUATION
:
1976 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1978 case GL_BLEND_EQUATION_ALPHA_EXT
:
1979 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1981 case GL_BLEND_COLOR_EXT
:
1982 params
[0] = ctx
->Color
.BlendColor
[0];
1983 params
[1] = ctx
->Color
.BlendColor
[1];
1984 params
[2] = ctx
->Color
.BlendColor
[2];
1985 params
[3] = ctx
->Color
.BlendColor
[3];
1988 params
[0] = ctx
->Pixel
.BlueBias
;
1991 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
1994 params
[0] = ctx
->Pixel
.BlueScale
;
1996 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
1997 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
1999 case GL_CLIP_PLANE0
:
2000 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2002 case GL_CLIP_PLANE1
:
2003 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2005 case GL_CLIP_PLANE2
:
2006 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2008 case GL_CLIP_PLANE3
:
2009 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2011 case GL_CLIP_PLANE4
:
2012 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2014 case GL_CLIP_PLANE5
:
2015 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2017 case GL_COLOR_CLEAR_VALUE
:
2018 params
[0] = ctx
->Color
.ClearColor
[0];
2019 params
[1] = ctx
->Color
.ClearColor
[1];
2020 params
[2] = ctx
->Color
.ClearColor
[2];
2021 params
[3] = ctx
->Color
.ClearColor
[3];
2023 case GL_COLOR_MATERIAL
:
2024 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2026 case GL_COLOR_MATERIAL_FACE
:
2027 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2029 case GL_COLOR_MATERIAL_PARAMETER
:
2030 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2032 case GL_COLOR_WRITEMASK
:
2033 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2034 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2035 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2036 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2039 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2041 case GL_CULL_FACE_MODE
:
2042 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2044 case GL_CURRENT_COLOR
:
2046 FLUSH_CURRENT(ctx
, 0);
2047 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2048 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2049 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2050 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2053 case GL_CURRENT_INDEX
:
2055 FLUSH_CURRENT(ctx
, 0);
2056 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2059 case GL_CURRENT_NORMAL
:
2061 FLUSH_CURRENT(ctx
, 0);
2062 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2063 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2064 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2067 case GL_CURRENT_RASTER_COLOR
:
2068 params
[0] = ctx
->Current
.RasterColor
[0];
2069 params
[1] = ctx
->Current
.RasterColor
[1];
2070 params
[2] = ctx
->Current
.RasterColor
[2];
2071 params
[3] = ctx
->Current
.RasterColor
[3];
2073 case GL_CURRENT_RASTER_DISTANCE
:
2074 params
[0] = ctx
->Current
.RasterDistance
;
2076 case GL_CURRENT_RASTER_INDEX
:
2077 params
[0] = ctx
->Current
.RasterIndex
;
2079 case GL_CURRENT_RASTER_POSITION
:
2080 params
[0] = ctx
->Current
.RasterPos
[0];
2081 params
[1] = ctx
->Current
.RasterPos
[1];
2082 params
[2] = ctx
->Current
.RasterPos
[2];
2083 params
[3] = ctx
->Current
.RasterPos
[3];
2085 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2086 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2087 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2088 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2089 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2091 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2093 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2094 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2095 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2096 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2097 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2100 case GL_CURRENT_RASTER_POSITION_VALID
:
2101 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2103 case GL_CURRENT_TEXTURE_COORDS
:
2105 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2106 FLUSH_CURRENT(ctx
, 0);
2107 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2108 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2109 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2110 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2114 params
[0] = ctx
->Pixel
.DepthBias
;
2117 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2119 case GL_DEPTH_CLEAR_VALUE
:
2120 params
[0] = ((GLfloat
) ctx
->Depth
.Clear
);
2123 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2125 case GL_DEPTH_RANGE
:
2126 params
[0] = ctx
->Viewport
.Near
;
2127 params
[1] = ctx
->Viewport
.Far
;
2129 case GL_DEPTH_SCALE
:
2130 params
[0] = ctx
->Pixel
.DepthScale
;
2133 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2135 case GL_DEPTH_WRITEMASK
:
2136 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2139 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2141 case GL_DOUBLEBUFFER
:
2142 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2144 case GL_DRAW_BUFFER
:
2145 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2149 FLUSH_CURRENT(ctx
, 0);
2150 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
2153 case GL_FEEDBACK_BUFFER_SIZE
:
2154 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2156 case GL_FEEDBACK_BUFFER_TYPE
:
2157 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2160 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2163 params
[0] = ctx
->Fog
.Color
[0];
2164 params
[1] = ctx
->Fog
.Color
[1];
2165 params
[2] = ctx
->Fog
.Color
[2];
2166 params
[3] = ctx
->Fog
.Color
[3];
2168 case GL_FOG_DENSITY
:
2169 params
[0] = ctx
->Fog
.Density
;
2172 params
[0] = ctx
->Fog
.End
;
2175 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2178 params
[0] = ctx
->Fog
.Index
;
2181 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2184 params
[0] = ctx
->Fog
.Start
;
2187 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2190 params
[0] = ctx
->Pixel
.GreenBias
;
2193 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2195 case GL_GREEN_SCALE
:
2196 params
[0] = ctx
->Pixel
.GreenScale
;
2199 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2201 case GL_INDEX_CLEAR_VALUE
:
2202 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2205 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2207 case GL_INDEX_OFFSET
:
2208 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2210 case GL_INDEX_SHIFT
:
2211 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2213 case GL_INDEX_WRITEMASK
:
2214 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2217 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2220 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2226 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2229 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2232 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2235 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2238 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2241 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2243 case GL_LIGHT_MODEL_AMBIENT
:
2244 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2245 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2246 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2247 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2249 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2250 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2252 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2253 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2255 case GL_LIGHT_MODEL_TWO_SIDE
:
2256 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2258 case GL_LINE_SMOOTH
:
2259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2261 case GL_LINE_SMOOTH_HINT
:
2262 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2264 case GL_LINE_STIPPLE
:
2265 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2267 case GL_LINE_STIPPLE_PATTERN
:
2268 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2270 case GL_LINE_STIPPLE_REPEAT
:
2271 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2274 params
[0] = ctx
->Line
.Width
;
2276 case GL_LINE_WIDTH_GRANULARITY
:
2277 params
[0] = ctx
->Const
.LineWidthGranularity
;
2279 case GL_LINE_WIDTH_RANGE
:
2280 params
[0] = ctx
->Const
.MinLineWidthAA
;
2281 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2283 case GL_ALIASED_LINE_WIDTH_RANGE
:
2284 params
[0] = ctx
->Const
.MinLineWidth
;
2285 params
[1] = ctx
->Const
.MaxLineWidth
;
2288 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2291 params
[0] = (GLfloat
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
2296 if (!ctx
->CompileFlag
)
2298 else if (ctx
->ExecuteFlag
)
2299 mode
= GL_COMPILE_AND_EXECUTE
;
2302 params
[0] = ENUM_TO_FLOAT(mode
);
2305 case GL_INDEX_LOGIC_OP
:
2306 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2308 case GL_COLOR_LOGIC_OP
:
2309 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2311 case GL_LOGIC_OP_MODE
:
2312 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2314 case GL_MAP1_COLOR_4
:
2315 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2317 case GL_MAP1_GRID_DOMAIN
:
2318 params
[0] = ctx
->Eval
.MapGrid1u1
;
2319 params
[1] = ctx
->Eval
.MapGrid1u2
;
2321 case GL_MAP1_GRID_SEGMENTS
:
2322 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2325 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2327 case GL_MAP1_NORMAL
:
2328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2330 case GL_MAP1_TEXTURE_COORD_1
:
2331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2333 case GL_MAP1_TEXTURE_COORD_2
:
2334 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2336 case GL_MAP1_TEXTURE_COORD_3
:
2337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2339 case GL_MAP1_TEXTURE_COORD_4
:
2340 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2342 case GL_MAP1_VERTEX_3
:
2343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2345 case GL_MAP1_VERTEX_4
:
2346 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2348 case GL_MAP2_COLOR_4
:
2349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2351 case GL_MAP2_GRID_DOMAIN
:
2352 params
[0] = ctx
->Eval
.MapGrid2u1
;
2353 params
[1] = ctx
->Eval
.MapGrid2u2
;
2354 params
[2] = ctx
->Eval
.MapGrid2v1
;
2355 params
[3] = ctx
->Eval
.MapGrid2v2
;
2357 case GL_MAP2_GRID_SEGMENTS
:
2358 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2359 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2362 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2364 case GL_MAP2_NORMAL
:
2365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2367 case GL_MAP2_TEXTURE_COORD_1
:
2368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2370 case GL_MAP2_TEXTURE_COORD_2
:
2371 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2373 case GL_MAP2_TEXTURE_COORD_3
:
2374 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2376 case GL_MAP2_TEXTURE_COORD_4
:
2377 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2379 case GL_MAP2_VERTEX_3
:
2380 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2382 case GL_MAP2_VERTEX_4
:
2383 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2386 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2388 case GL_MAP_STENCIL
:
2389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2391 case GL_MATRIX_MODE
:
2392 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2394 case GL_MAX_ATTRIB_STACK_DEPTH
:
2395 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2397 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2398 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2400 case GL_MAX_CLIP_PLANES
:
2401 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2403 case GL_MAX_ELEMENTS_VERTICES
:
2404 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2406 case GL_MAX_ELEMENTS_INDICES
:
2407 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2409 case GL_MAX_EVAL_ORDER
:
2410 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2413 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2415 case GL_MAX_LIST_NESTING
:
2416 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2418 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2419 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2421 case GL_MAX_NAME_STACK_DEPTH
:
2422 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2424 case GL_MAX_PIXEL_MAP_TABLE
:
2425 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2427 case GL_MAX_PROJECTION_STACK_DEPTH
:
2428 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2430 case GL_MAX_TEXTURE_SIZE
:
2431 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2433 case GL_MAX_3D_TEXTURE_SIZE
:
2434 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2436 case GL_MAX_TEXTURE_STACK_DEPTH
:
2437 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2439 case GL_MAX_VIEWPORT_DIMS
:
2440 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2441 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2443 case GL_MODELVIEW_MATRIX
:
2445 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2446 params
[0] = matrix
[0];
2447 params
[1] = matrix
[1];
2448 params
[2] = matrix
[2];
2449 params
[3] = matrix
[3];
2450 params
[4] = matrix
[4];
2451 params
[5] = matrix
[5];
2452 params
[6] = matrix
[6];
2453 params
[7] = matrix
[7];
2454 params
[8] = matrix
[8];
2455 params
[9] = matrix
[9];
2456 params
[10] = matrix
[10];
2457 params
[11] = matrix
[11];
2458 params
[12] = matrix
[12];
2459 params
[13] = matrix
[13];
2460 params
[14] = matrix
[14];
2461 params
[15] = matrix
[15];
2464 case GL_MODELVIEW_STACK_DEPTH
:
2465 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2467 case GL_NAME_STACK_DEPTH
:
2468 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2471 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2473 case GL_PACK_ALIGNMENT
:
2474 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2476 case GL_PACK_LSB_FIRST
:
2477 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2479 case GL_PACK_ROW_LENGTH
:
2480 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2482 case GL_PACK_SKIP_PIXELS
:
2483 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2485 case GL_PACK_SKIP_ROWS
:
2486 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2488 case GL_PACK_SWAP_BYTES
:
2489 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2491 case GL_PACK_SKIP_IMAGES_EXT
:
2492 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2494 case GL_PACK_IMAGE_HEIGHT_EXT
:
2495 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2497 case GL_PACK_INVERT_MESA
:
2498 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2500 case GL_PERSPECTIVE_CORRECTION_HINT
:
2501 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2503 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2504 params
[0] = (GLfloat
)(ctx
->PixelMaps
.AtoA
.Size
);
2506 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2507 params
[0] = (GLfloat
)(ctx
->PixelMaps
.BtoB
.Size
);
2509 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2510 params
[0] = (GLfloat
)(ctx
->PixelMaps
.GtoG
.Size
);
2512 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2513 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoA
.Size
);
2515 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2516 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoB
.Size
);
2518 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2519 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoG
.Size
);
2521 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2522 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoI
.Size
);
2524 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2525 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoR
.Size
);
2527 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2528 params
[0] = (GLfloat
)(ctx
->PixelMaps
.RtoR
.Size
);
2530 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2531 params
[0] = (GLfloat
)(ctx
->PixelMaps
.StoS
.Size
);
2534 params
[0] = ctx
->Point
.Size
;
2536 case GL_POINT_SIZE_GRANULARITY
:
2537 params
[0] = ctx
->Const
.PointSizeGranularity
;
2539 case GL_POINT_SIZE_RANGE
:
2540 params
[0] = ctx
->Const
.MinPointSizeAA
;
2541 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2543 case GL_ALIASED_POINT_SIZE_RANGE
:
2544 params
[0] = ctx
->Const
.MinPointSize
;
2545 params
[1] = ctx
->Const
.MaxPointSize
;
2547 case GL_POINT_SMOOTH
:
2548 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2550 case GL_POINT_SMOOTH_HINT
:
2551 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2553 case GL_POINT_SIZE_MIN_EXT
:
2554 params
[0] = ctx
->Point
.MinSize
;
2556 case GL_POINT_SIZE_MAX_EXT
:
2557 params
[0] = ctx
->Point
.MaxSize
;
2559 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2560 params
[0] = ctx
->Point
.Threshold
;
2562 case GL_DISTANCE_ATTENUATION_EXT
:
2563 params
[0] = ctx
->Point
.Params
[0];
2564 params
[1] = ctx
->Point
.Params
[1];
2565 params
[2] = ctx
->Point
.Params
[2];
2567 case GL_POLYGON_MODE
:
2568 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2569 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2571 case GL_POLYGON_OFFSET_BIAS_EXT
:
2572 params
[0] = ctx
->Polygon
.OffsetUnits
;
2574 case GL_POLYGON_OFFSET_FACTOR
:
2575 params
[0] = ctx
->Polygon
.OffsetFactor
;
2577 case GL_POLYGON_OFFSET_UNITS
:
2578 params
[0] = ctx
->Polygon
.OffsetUnits
;
2580 case GL_POLYGON_OFFSET_POINT
:
2581 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetPoint
);
2583 case GL_POLYGON_OFFSET_LINE
:
2584 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetLine
);
2586 case GL_POLYGON_OFFSET_FILL
:
2587 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetFill
);
2589 case GL_POLYGON_SMOOTH
:
2590 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2592 case GL_POLYGON_SMOOTH_HINT
:
2593 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2595 case GL_POLYGON_STIPPLE
:
2596 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2598 case GL_PROJECTION_MATRIX
:
2600 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2601 params
[0] = matrix
[0];
2602 params
[1] = matrix
[1];
2603 params
[2] = matrix
[2];
2604 params
[3] = matrix
[3];
2605 params
[4] = matrix
[4];
2606 params
[5] = matrix
[5];
2607 params
[6] = matrix
[6];
2608 params
[7] = matrix
[7];
2609 params
[8] = matrix
[8];
2610 params
[9] = matrix
[9];
2611 params
[10] = matrix
[10];
2612 params
[11] = matrix
[11];
2613 params
[12] = matrix
[12];
2614 params
[13] = matrix
[13];
2615 params
[14] = matrix
[14];
2616 params
[15] = matrix
[15];
2619 case GL_PROJECTION_STACK_DEPTH
:
2620 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2622 case GL_READ_BUFFER
:
2623 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2626 params
[0] = ctx
->Pixel
.RedBias
;
2629 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.redBits
);
2632 params
[0] = ctx
->Pixel
.RedScale
;
2634 case GL_RENDER_MODE
:
2635 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2637 case GL_RESCALE_NORMAL
:
2638 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2641 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2643 case GL_SCISSOR_BOX
:
2644 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2645 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2646 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2647 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2649 case GL_SCISSOR_TEST
:
2650 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2652 case GL_SELECTION_BUFFER_SIZE
:
2653 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2655 case GL_SHADE_MODEL
:
2656 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2658 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2659 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2661 case GL_STENCIL_BITS
:
2662 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2664 case GL_STENCIL_CLEAR_VALUE
:
2665 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2667 case GL_STENCIL_FAIL
:
2668 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2670 case GL_STENCIL_FUNC
:
2671 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2673 case GL_STENCIL_PASS_DEPTH_FAIL
:
2674 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2676 case GL_STENCIL_PASS_DEPTH_PASS
:
2677 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2679 case GL_STENCIL_REF
:
2680 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2682 case GL_STENCIL_TEST
:
2683 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2685 case GL_STENCIL_VALUE_MASK
:
2686 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2688 case GL_STENCIL_WRITEMASK
:
2689 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2692 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2694 case GL_SUBPIXEL_BITS
:
2695 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2698 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2701 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2704 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2706 case GL_TEXTURE_1D_ARRAY_EXT
:
2707 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2708 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
2710 case GL_TEXTURE_2D_ARRAY_EXT
:
2711 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2712 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
2714 case GL_TEXTURE_BINDING_1D
:
2715 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
2717 case GL_TEXTURE_BINDING_2D
:
2718 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
2720 case GL_TEXTURE_BINDING_3D
:
2721 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
2723 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
2724 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2725 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
2727 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
2728 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2729 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
2731 case GL_TEXTURE_GEN_S
:
2732 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2734 case GL_TEXTURE_GEN_T
:
2735 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2737 case GL_TEXTURE_GEN_R
:
2738 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2740 case GL_TEXTURE_GEN_Q
:
2741 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2743 case GL_TEXTURE_MATRIX
:
2745 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2746 params
[0] = matrix
[0];
2747 params
[1] = matrix
[1];
2748 params
[2] = matrix
[2];
2749 params
[3] = matrix
[3];
2750 params
[4] = matrix
[4];
2751 params
[5] = matrix
[5];
2752 params
[6] = matrix
[6];
2753 params
[7] = matrix
[7];
2754 params
[8] = matrix
[8];
2755 params
[9] = matrix
[9];
2756 params
[10] = matrix
[10];
2757 params
[11] = matrix
[11];
2758 params
[12] = matrix
[12];
2759 params
[13] = matrix
[13];
2760 params
[14] = matrix
[14];
2761 params
[15] = matrix
[15];
2764 case GL_TEXTURE_STACK_DEPTH
:
2765 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2767 case GL_UNPACK_ALIGNMENT
:
2768 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2770 case GL_UNPACK_LSB_FIRST
:
2771 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2773 case GL_UNPACK_ROW_LENGTH
:
2774 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2776 case GL_UNPACK_SKIP_PIXELS
:
2777 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2779 case GL_UNPACK_SKIP_ROWS
:
2780 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2782 case GL_UNPACK_SWAP_BYTES
:
2783 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2785 case GL_UNPACK_SKIP_IMAGES_EXT
:
2786 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2788 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2789 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2791 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2792 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2795 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2796 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2797 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2798 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2801 params
[0] = ctx
->Pixel
.ZoomX
;
2804 params
[0] = ctx
->Pixel
.ZoomY
;
2806 case GL_VERTEX_ARRAY
:
2807 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
2809 case GL_VERTEX_ARRAY_SIZE
:
2810 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
2812 case GL_VERTEX_ARRAY_TYPE
:
2813 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
2815 case GL_VERTEX_ARRAY_STRIDE
:
2816 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
2818 case GL_VERTEX_ARRAY_COUNT_EXT
:
2819 params
[0] = (GLfloat
)(0);
2821 case GL_NORMAL_ARRAY
:
2822 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
2824 case GL_NORMAL_ARRAY_TYPE
:
2825 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Type
);
2827 case GL_NORMAL_ARRAY_STRIDE
:
2828 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
2830 case GL_NORMAL_ARRAY_COUNT_EXT
:
2831 params
[0] = (GLfloat
)(0);
2833 case GL_COLOR_ARRAY
:
2834 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
2836 case GL_COLOR_ARRAY_SIZE
:
2837 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Size
);
2839 case GL_COLOR_ARRAY_TYPE
:
2840 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Type
);
2842 case GL_COLOR_ARRAY_STRIDE
:
2843 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
2845 case GL_COLOR_ARRAY_COUNT_EXT
:
2846 params
[0] = (GLfloat
)(0);
2848 case GL_INDEX_ARRAY
:
2849 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
2851 case GL_INDEX_ARRAY_TYPE
:
2852 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Type
);
2854 case GL_INDEX_ARRAY_STRIDE
:
2855 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
2857 case GL_INDEX_ARRAY_COUNT_EXT
:
2858 params
[0] = (GLfloat
)(0);
2860 case GL_TEXTURE_COORD_ARRAY
:
2861 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2863 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2864 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2866 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2867 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2869 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2870 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2872 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2873 params
[0] = (GLfloat
)(0);
2875 case GL_EDGE_FLAG_ARRAY
:
2876 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
2878 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2879 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
2881 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2882 params
[0] = (GLfloat
)(0);
2884 case GL_MAX_TEXTURE_UNITS_ARB
:
2885 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2886 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2888 case GL_ACTIVE_TEXTURE_ARB
:
2889 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2890 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2892 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2893 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2894 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2896 case GL_TEXTURE_CUBE_MAP_ARB
:
2897 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2898 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2900 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2901 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2902 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
2904 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2905 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2906 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2908 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2909 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2911 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2912 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2914 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2917 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2919 for (i
= 0; i
< n
; i
++)
2920 params
[i
] = ENUM_TO_FLOAT(formats
[i
]);
2923 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2924 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2925 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2927 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2928 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2929 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2931 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2933 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2934 params
[0] = matrix
[0];
2935 params
[1] = matrix
[4];
2936 params
[2] = matrix
[8];
2937 params
[3] = matrix
[12];
2938 params
[4] = matrix
[1];
2939 params
[5] = matrix
[5];
2940 params
[6] = matrix
[9];
2941 params
[7] = matrix
[13];
2942 params
[8] = matrix
[2];
2943 params
[9] = matrix
[6];
2944 params
[10] = matrix
[10];
2945 params
[11] = matrix
[14];
2946 params
[12] = matrix
[3];
2947 params
[13] = matrix
[7];
2948 params
[14] = matrix
[11];
2949 params
[15] = matrix
[15];
2952 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2954 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2955 params
[0] = matrix
[0];
2956 params
[1] = matrix
[4];
2957 params
[2] = matrix
[8];
2958 params
[3] = matrix
[12];
2959 params
[4] = matrix
[1];
2960 params
[5] = matrix
[5];
2961 params
[6] = matrix
[9];
2962 params
[7] = matrix
[13];
2963 params
[8] = matrix
[2];
2964 params
[9] = matrix
[6];
2965 params
[10] = matrix
[10];
2966 params
[11] = matrix
[14];
2967 params
[12] = matrix
[3];
2968 params
[13] = matrix
[7];
2969 params
[14] = matrix
[11];
2970 params
[15] = matrix
[15];
2973 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2975 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2976 params
[0] = matrix
[0];
2977 params
[1] = matrix
[4];
2978 params
[2] = matrix
[8];
2979 params
[3] = matrix
[12];
2980 params
[4] = matrix
[1];
2981 params
[5] = matrix
[5];
2982 params
[6] = matrix
[9];
2983 params
[7] = matrix
[13];
2984 params
[8] = matrix
[2];
2985 params
[9] = matrix
[6];
2986 params
[10] = matrix
[10];
2987 params
[11] = matrix
[14];
2988 params
[12] = matrix
[3];
2989 params
[13] = matrix
[7];
2990 params
[14] = matrix
[11];
2991 params
[15] = matrix
[15];
2994 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2996 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2997 params
[0] = matrix
[0];
2998 params
[1] = matrix
[4];
2999 params
[2] = matrix
[8];
3000 params
[3] = matrix
[12];
3001 params
[4] = matrix
[1];
3002 params
[5] = matrix
[5];
3003 params
[6] = matrix
[9];
3004 params
[7] = matrix
[13];
3005 params
[8] = matrix
[2];
3006 params
[9] = matrix
[6];
3007 params
[10] = matrix
[10];
3008 params
[11] = matrix
[14];
3009 params
[12] = matrix
[3];
3010 params
[13] = matrix
[7];
3011 params
[14] = matrix
[11];
3012 params
[15] = matrix
[15];
3015 case GL_COLOR_MATRIX_SGI
:
3017 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3018 params
[0] = matrix
[0];
3019 params
[1] = matrix
[1];
3020 params
[2] = matrix
[2];
3021 params
[3] = matrix
[3];
3022 params
[4] = matrix
[4];
3023 params
[5] = matrix
[5];
3024 params
[6] = matrix
[6];
3025 params
[7] = matrix
[7];
3026 params
[8] = matrix
[8];
3027 params
[9] = matrix
[9];
3028 params
[10] = matrix
[10];
3029 params
[11] = matrix
[11];
3030 params
[12] = matrix
[12];
3031 params
[13] = matrix
[13];
3032 params
[14] = matrix
[14];
3033 params
[15] = matrix
[15];
3036 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3037 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3039 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3040 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3042 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3043 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3045 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3046 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3048 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3049 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3051 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3052 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3054 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3055 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3057 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3058 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3060 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3061 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3063 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3064 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3066 case GL_CONVOLUTION_1D_EXT
:
3067 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3068 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3070 case GL_CONVOLUTION_2D_EXT
:
3071 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3072 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3074 case GL_SEPARABLE_2D_EXT
:
3075 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3076 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3078 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3079 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3080 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3082 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3083 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3084 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3086 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3087 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3088 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3090 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3091 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3092 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3094 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3095 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3096 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3098 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3099 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3100 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3102 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3103 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3104 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3106 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3107 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3108 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3111 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3112 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3115 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3116 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3118 case GL_COLOR_TABLE_SGI
:
3119 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3120 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3122 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3123 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3124 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3126 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3127 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3128 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3130 case GL_TEXTURE_COLOR_TABLE_SGI
:
3131 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3132 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3134 case GL_COLOR_SUM_EXT
:
3135 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3136 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3138 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3139 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3141 FLUSH_CURRENT(ctx
, 0);
3142 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3143 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3144 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3145 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3148 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3149 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3150 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3152 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3153 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3154 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3156 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3157 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3158 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3160 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3161 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3162 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3164 case GL_CURRENT_FOG_COORDINATE_EXT
:
3165 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3167 FLUSH_CURRENT(ctx
, 0);
3168 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3171 case GL_FOG_COORDINATE_ARRAY_EXT
:
3172 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3173 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3175 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3176 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3177 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3179 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3180 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3181 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3183 case GL_FOG_COORDINATE_SOURCE_EXT
:
3184 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3185 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3187 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3188 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3189 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3191 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3192 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3193 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3195 case GL_MULTISAMPLE_ARB
:
3196 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3198 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3199 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3201 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3202 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3204 case GL_SAMPLE_COVERAGE_ARB
:
3205 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3207 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3208 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3210 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3211 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3213 case GL_SAMPLE_BUFFERS_ARB
:
3214 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3216 case GL_SAMPLES_ARB
:
3217 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3219 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3220 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3221 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3223 case GL_POINT_SPRITE_NV
:
3224 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3225 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3227 case GL_POINT_SPRITE_R_MODE_NV
:
3228 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3229 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3231 case GL_POINT_SPRITE_COORD_ORIGIN
:
3232 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3233 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3235 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3236 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3237 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3239 case GL_VERTEX_PROGRAM_BINDING_NV
:
3240 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3241 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3243 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3244 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3245 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3247 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3248 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3249 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3251 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3252 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3253 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3255 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3256 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3257 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3259 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3260 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3261 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3263 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3264 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3265 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3267 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3268 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3269 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3271 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3272 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3273 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3275 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3276 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3277 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3279 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3280 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3281 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3283 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3284 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3285 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3287 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3288 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3289 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3291 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3292 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3293 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3295 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3296 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3297 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3299 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3300 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3301 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3303 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3304 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3305 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3307 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3308 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3309 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3311 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3312 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3313 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3315 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3316 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3317 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3319 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3320 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3321 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3323 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3324 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3325 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3327 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3328 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3329 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3331 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3332 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3333 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3335 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3336 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3339 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3340 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3341 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3343 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3344 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3345 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3347 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3348 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3351 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3352 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3353 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3355 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3356 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3357 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3359 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3360 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3363 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3364 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3367 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3368 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3369 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3371 case GL_FRAGMENT_PROGRAM_NV
:
3372 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3373 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3375 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3376 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3377 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3379 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3380 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3381 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3383 case GL_TEXTURE_RECTANGLE_NV
:
3384 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3385 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3387 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3388 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3389 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
3391 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3392 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3393 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3395 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3396 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3397 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3399 case GL_ACTIVE_STENCIL_FACE_EXT
:
3400 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3401 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3403 case GL_MAX_SHININESS_NV
:
3404 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3405 params
[0] = ctx
->Const
.MaxShininess
;
3407 case GL_MAX_SPOT_EXPONENT_NV
:
3408 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3409 params
[0] = ctx
->Const
.MaxSpotExponent
;
3411 case GL_ARRAY_BUFFER_BINDING_ARB
:
3412 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3414 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3415 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3417 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3418 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3420 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3421 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3423 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3424 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3426 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3427 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3429 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3430 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3432 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3433 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3435 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3436 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3438 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3439 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3441 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3442 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3443 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3445 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3446 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3447 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3449 case GL_VERTEX_PROGRAM_ARB
:
3450 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3451 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3453 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3454 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3455 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3457 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3458 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3459 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3461 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3462 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3463 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3465 case GL_MAX_PROGRAM_MATRICES_ARB
:
3466 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3467 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3469 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3470 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3471 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3473 case GL_CURRENT_MATRIX_ARB
:
3474 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3476 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3477 params
[0] = matrix
[0];
3478 params
[1] = matrix
[1];
3479 params
[2] = matrix
[2];
3480 params
[3] = matrix
[3];
3481 params
[4] = matrix
[4];
3482 params
[5] = matrix
[5];
3483 params
[6] = matrix
[6];
3484 params
[7] = matrix
[7];
3485 params
[8] = matrix
[8];
3486 params
[9] = matrix
[9];
3487 params
[10] = matrix
[10];
3488 params
[11] = matrix
[11];
3489 params
[12] = matrix
[12];
3490 params
[13] = matrix
[13];
3491 params
[14] = matrix
[14];
3492 params
[15] = matrix
[15];
3495 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3496 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3498 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3499 params
[0] = matrix
[0];
3500 params
[1] = matrix
[4];
3501 params
[2] = matrix
[8];
3502 params
[3] = matrix
[12];
3503 params
[4] = matrix
[1];
3504 params
[5] = matrix
[5];
3505 params
[6] = matrix
[9];
3506 params
[7] = matrix
[13];
3507 params
[8] = matrix
[2];
3508 params
[9] = matrix
[6];
3509 params
[10] = matrix
[10];
3510 params
[11] = matrix
[14];
3511 params
[12] = matrix
[3];
3512 params
[13] = matrix
[7];
3513 params
[14] = matrix
[11];
3514 params
[15] = matrix
[15];
3517 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3518 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3519 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3521 case GL_PROGRAM_ERROR_POSITION_ARB
:
3522 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3523 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3525 case GL_FRAGMENT_PROGRAM_ARB
:
3526 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3527 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3529 case GL_MAX_TEXTURE_COORDS_ARB
:
3530 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3531 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3533 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3534 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3535 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3537 case GL_DEPTH_BOUNDS_TEST_EXT
:
3538 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3539 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3541 case GL_DEPTH_BOUNDS_EXT
:
3542 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3543 params
[0] = ctx
->Depth
.BoundsMin
;
3544 params
[1] = ctx
->Depth
.BoundsMax
;
3546 case GL_MAX_DRAW_BUFFERS_ARB
:
3547 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3549 case GL_DRAW_BUFFER0_ARB
:
3550 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3552 case GL_DRAW_BUFFER1_ARB
:
3555 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3556 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3559 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3560 params
[0] = ENUM_TO_FLOAT(buffer
);
3563 case GL_DRAW_BUFFER2_ARB
:
3566 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3567 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3570 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3571 params
[0] = ENUM_TO_FLOAT(buffer
);
3574 case GL_DRAW_BUFFER3_ARB
:
3577 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3578 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3581 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3582 params
[0] = ENUM_TO_FLOAT(buffer
);
3585 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3586 CHECK_EXT1(OES_read_format
, "GetFloatv");
3587 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3589 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3590 CHECK_EXT1(OES_read_format
, "GetFloatv");
3591 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3593 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3594 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3595 params
[0] = (GLfloat
)(6);
3597 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3598 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3599 params
[0] = (GLfloat
)(8);
3601 case GL_NUM_PASSES_ATI
:
3602 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3603 params
[0] = (GLfloat
)(2);
3605 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3606 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3607 params
[0] = (GLfloat
)(8);
3609 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3610 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3611 params
[0] = (GLfloat
)(16);
3613 case GL_COLOR_ALPHA_PAIRING_ATI
:
3614 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3615 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3617 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3618 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3619 params
[0] = (GLfloat
)(3);
3621 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3622 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3623 params
[0] = (GLfloat
)(3);
3625 case GL_STENCIL_BACK_FUNC
:
3626 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3628 case GL_STENCIL_BACK_VALUE_MASK
:
3629 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3631 case GL_STENCIL_BACK_WRITEMASK
:
3632 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3634 case GL_STENCIL_BACK_REF
:
3635 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3637 case GL_STENCIL_BACK_FAIL
:
3638 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3640 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3641 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3643 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3644 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3646 case GL_FRAMEBUFFER_BINDING_EXT
:
3647 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3648 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3650 case GL_RENDERBUFFER_BINDING_EXT
:
3651 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3652 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3654 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3655 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3656 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3658 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3659 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3660 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3662 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3663 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3664 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3666 case GL_PROVOKING_VERTEX_EXT
:
3667 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3668 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ProvokingVertex
);
3670 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
3671 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3672 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
3674 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3675 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3676 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3678 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3679 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3680 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3682 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3683 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3684 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3686 case GL_MAX_VARYING_FLOATS_ARB
:
3687 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3688 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3690 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3691 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3692 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3694 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3695 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3696 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3698 case GL_CURRENT_PROGRAM
:
3699 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3700 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3702 case GL_MAX_SAMPLES
:
3703 CHECK_EXT1(ARB_framebuffer_object
, "GetFloatv");
3704 params
[0] = (GLfloat
)(ctx
->Const
.MaxSamples
);
3706 case GL_VERTEX_ARRAY_BINDING_APPLE
:
3707 CHECK_EXT1(APPLE_vertex_array_object
, "GetFloatv");
3708 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Name
);
3710 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
3711 CHECK_EXT1(ARB_seamless_cube_map
, "GetFloatv");
3712 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.CubeMapSeamless
);
3715 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3720 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3722 GET_CURRENT_CONTEXT(ctx
);
3723 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3729 _mesa_update_state(ctx
);
3731 if (ctx
->Driver
.GetIntegerv
&&
3732 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3736 case GL_ACCUM_RED_BITS
:
3737 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3739 case GL_ACCUM_GREEN_BITS
:
3740 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3742 case GL_ACCUM_BLUE_BITS
:
3743 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3745 case GL_ACCUM_ALPHA_BITS
:
3746 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3748 case GL_ACCUM_CLEAR_VALUE
:
3749 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3750 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3751 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3752 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3755 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3758 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3760 case GL_ALPHA_SCALE
:
3761 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3764 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3766 case GL_ALPHA_TEST_FUNC
:
3767 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3769 case GL_ALPHA_TEST_REF
:
3770 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3772 case GL_ATTRIB_STACK_DEPTH
:
3773 params
[0] = ctx
->AttribStackDepth
;
3775 case GL_AUTO_NORMAL
:
3776 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3778 case GL_AUX_BUFFERS
:
3779 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3782 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3785 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3788 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3790 case GL_BLEND_SRC_RGB_EXT
:
3791 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3793 case GL_BLEND_DST_RGB_EXT
:
3794 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3796 case GL_BLEND_SRC_ALPHA_EXT
:
3797 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3799 case GL_BLEND_DST_ALPHA_EXT
:
3800 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3802 case GL_BLEND_EQUATION
:
3803 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3805 case GL_BLEND_EQUATION_ALPHA_EXT
:
3806 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3808 case GL_BLEND_COLOR_EXT
:
3809 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3810 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3811 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3812 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3815 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3818 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3821 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3823 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3824 params
[0] = ctx
->ClientAttribStackDepth
;
3826 case GL_CLIP_PLANE0
:
3827 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3829 case GL_CLIP_PLANE1
:
3830 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3832 case GL_CLIP_PLANE2
:
3833 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3835 case GL_CLIP_PLANE3
:
3836 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3838 case GL_CLIP_PLANE4
:
3839 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3841 case GL_CLIP_PLANE5
:
3842 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3844 case GL_COLOR_CLEAR_VALUE
:
3845 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3846 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3847 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3848 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3850 case GL_COLOR_MATERIAL
:
3851 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3853 case GL_COLOR_MATERIAL_FACE
:
3854 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3856 case GL_COLOR_MATERIAL_PARAMETER
:
3857 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3859 case GL_COLOR_WRITEMASK
:
3860 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3861 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3862 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3863 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3866 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3868 case GL_CULL_FACE_MODE
:
3869 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3871 case GL_CURRENT_COLOR
:
3873 FLUSH_CURRENT(ctx
, 0);
3874 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3875 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3876 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3877 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3880 case GL_CURRENT_INDEX
:
3882 FLUSH_CURRENT(ctx
, 0);
3883 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3886 case GL_CURRENT_NORMAL
:
3888 FLUSH_CURRENT(ctx
, 0);
3889 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3890 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3891 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3894 case GL_CURRENT_RASTER_COLOR
:
3895 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3896 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3897 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3898 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3900 case GL_CURRENT_RASTER_DISTANCE
:
3901 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3903 case GL_CURRENT_RASTER_INDEX
:
3904 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3906 case GL_CURRENT_RASTER_POSITION
:
3907 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3908 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3909 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3910 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3912 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
3913 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
3914 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
3915 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
3916 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
3918 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3920 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3921 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3922 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3923 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3924 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3927 case GL_CURRENT_RASTER_POSITION_VALID
:
3928 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3930 case GL_CURRENT_TEXTURE_COORDS
:
3932 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3933 FLUSH_CURRENT(ctx
, 0);
3934 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3935 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3936 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3937 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3941 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3944 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3946 case GL_DEPTH_CLEAR_VALUE
:
3947 params
[0] = FLOAT_TO_INT(((GLfloat
) ctx
->Depth
.Clear
));
3950 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3952 case GL_DEPTH_RANGE
:
3953 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3954 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3956 case GL_DEPTH_SCALE
:
3957 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3960 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3962 case GL_DEPTH_WRITEMASK
:
3963 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3966 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3968 case GL_DOUBLEBUFFER
:
3969 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
3971 case GL_DRAW_BUFFER
:
3972 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3976 FLUSH_CURRENT(ctx
, 0);
3977 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
3980 case GL_FEEDBACK_BUFFER_SIZE
:
3981 params
[0] = ctx
->Feedback
.BufferSize
;
3983 case GL_FEEDBACK_BUFFER_TYPE
:
3984 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
3987 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
3990 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
3991 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
3992 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
3993 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
3995 case GL_FOG_DENSITY
:
3996 params
[0] = IROUND(ctx
->Fog
.Density
);
3999 params
[0] = IROUND(ctx
->Fog
.End
);
4002 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4005 params
[0] = IROUND(ctx
->Fog
.Index
);
4008 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4011 params
[0] = IROUND(ctx
->Fog
.Start
);
4014 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4017 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4020 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4022 case GL_GREEN_SCALE
:
4023 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4026 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4028 case GL_INDEX_CLEAR_VALUE
:
4029 params
[0] = ctx
->Color
.ClearIndex
;
4032 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4034 case GL_INDEX_OFFSET
:
4035 params
[0] = ctx
->Pixel
.IndexOffset
;
4037 case GL_INDEX_SHIFT
:
4038 params
[0] = ctx
->Pixel
.IndexShift
;
4040 case GL_INDEX_WRITEMASK
:
4041 params
[0] = ctx
->Color
.IndexMask
;
4044 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4047 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4050 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4053 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4056 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4059 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4062 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4065 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4068 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4070 case GL_LIGHT_MODEL_AMBIENT
:
4071 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4072 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4073 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4074 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4076 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4077 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4079 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4080 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4082 case GL_LIGHT_MODEL_TWO_SIDE
:
4083 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4085 case GL_LINE_SMOOTH
:
4086 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4088 case GL_LINE_SMOOTH_HINT
:
4089 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4091 case GL_LINE_STIPPLE
:
4092 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4094 case GL_LINE_STIPPLE_PATTERN
:
4095 params
[0] = ctx
->Line
.StipplePattern
;
4097 case GL_LINE_STIPPLE_REPEAT
:
4098 params
[0] = ctx
->Line
.StippleFactor
;
4101 params
[0] = IROUND(ctx
->Line
.Width
);
4103 case GL_LINE_WIDTH_GRANULARITY
:
4104 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4106 case GL_LINE_WIDTH_RANGE
:
4107 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4108 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4110 case GL_ALIASED_LINE_WIDTH_RANGE
:
4111 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4112 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4115 params
[0] = ctx
->List
.ListBase
;
4118 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
4123 if (!ctx
->CompileFlag
)
4125 else if (ctx
->ExecuteFlag
)
4126 mode
= GL_COMPILE_AND_EXECUTE
;
4129 params
[0] = ENUM_TO_INT(mode
);
4132 case GL_INDEX_LOGIC_OP
:
4133 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4135 case GL_COLOR_LOGIC_OP
:
4136 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4138 case GL_LOGIC_OP_MODE
:
4139 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4141 case GL_MAP1_COLOR_4
:
4142 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4144 case GL_MAP1_GRID_DOMAIN
:
4145 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4146 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4148 case GL_MAP1_GRID_SEGMENTS
:
4149 params
[0] = ctx
->Eval
.MapGrid1un
;
4152 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4154 case GL_MAP1_NORMAL
:
4155 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4157 case GL_MAP1_TEXTURE_COORD_1
:
4158 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4160 case GL_MAP1_TEXTURE_COORD_2
:
4161 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4163 case GL_MAP1_TEXTURE_COORD_3
:
4164 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4166 case GL_MAP1_TEXTURE_COORD_4
:
4167 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4169 case GL_MAP1_VERTEX_3
:
4170 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4172 case GL_MAP1_VERTEX_4
:
4173 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4175 case GL_MAP2_COLOR_4
:
4176 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4178 case GL_MAP2_GRID_DOMAIN
:
4179 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4180 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4181 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4182 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4184 case GL_MAP2_GRID_SEGMENTS
:
4185 params
[0] = ctx
->Eval
.MapGrid2un
;
4186 params
[1] = ctx
->Eval
.MapGrid2vn
;
4189 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4191 case GL_MAP2_NORMAL
:
4192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4194 case GL_MAP2_TEXTURE_COORD_1
:
4195 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4197 case GL_MAP2_TEXTURE_COORD_2
:
4198 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4200 case GL_MAP2_TEXTURE_COORD_3
:
4201 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4203 case GL_MAP2_TEXTURE_COORD_4
:
4204 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4206 case GL_MAP2_VERTEX_3
:
4207 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4209 case GL_MAP2_VERTEX_4
:
4210 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4213 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4215 case GL_MAP_STENCIL
:
4216 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4218 case GL_MATRIX_MODE
:
4219 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4221 case GL_MAX_ATTRIB_STACK_DEPTH
:
4222 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4224 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4225 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4227 case GL_MAX_CLIP_PLANES
:
4228 params
[0] = ctx
->Const
.MaxClipPlanes
;
4230 case GL_MAX_ELEMENTS_VERTICES
:
4231 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4233 case GL_MAX_ELEMENTS_INDICES
:
4234 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4236 case GL_MAX_EVAL_ORDER
:
4237 params
[0] = MAX_EVAL_ORDER
;
4240 params
[0] = ctx
->Const
.MaxLights
;
4242 case GL_MAX_LIST_NESTING
:
4243 params
[0] = MAX_LIST_NESTING
;
4245 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4246 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4248 case GL_MAX_NAME_STACK_DEPTH
:
4249 params
[0] = MAX_NAME_STACK_DEPTH
;
4251 case GL_MAX_PIXEL_MAP_TABLE
:
4252 params
[0] = MAX_PIXEL_MAP_TABLE
;
4254 case GL_MAX_PROJECTION_STACK_DEPTH
:
4255 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4257 case GL_MAX_TEXTURE_SIZE
:
4258 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4260 case GL_MAX_3D_TEXTURE_SIZE
:
4261 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4263 case GL_MAX_TEXTURE_STACK_DEPTH
:
4264 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4266 case GL_MAX_VIEWPORT_DIMS
:
4267 params
[0] = ctx
->Const
.MaxViewportWidth
;
4268 params
[1] = ctx
->Const
.MaxViewportHeight
;
4270 case GL_MODELVIEW_MATRIX
:
4272 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4273 params
[0] = IROUND(matrix
[0]);
4274 params
[1] = IROUND(matrix
[1]);
4275 params
[2] = IROUND(matrix
[2]);
4276 params
[3] = IROUND(matrix
[3]);
4277 params
[4] = IROUND(matrix
[4]);
4278 params
[5] = IROUND(matrix
[5]);
4279 params
[6] = IROUND(matrix
[6]);
4280 params
[7] = IROUND(matrix
[7]);
4281 params
[8] = IROUND(matrix
[8]);
4282 params
[9] = IROUND(matrix
[9]);
4283 params
[10] = IROUND(matrix
[10]);
4284 params
[11] = IROUND(matrix
[11]);
4285 params
[12] = IROUND(matrix
[12]);
4286 params
[13] = IROUND(matrix
[13]);
4287 params
[14] = IROUND(matrix
[14]);
4288 params
[15] = IROUND(matrix
[15]);
4291 case GL_MODELVIEW_STACK_DEPTH
:
4292 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4294 case GL_NAME_STACK_DEPTH
:
4295 params
[0] = ctx
->Select
.NameStackDepth
;
4298 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4300 case GL_PACK_ALIGNMENT
:
4301 params
[0] = ctx
->Pack
.Alignment
;
4303 case GL_PACK_LSB_FIRST
:
4304 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4306 case GL_PACK_ROW_LENGTH
:
4307 params
[0] = ctx
->Pack
.RowLength
;
4309 case GL_PACK_SKIP_PIXELS
:
4310 params
[0] = ctx
->Pack
.SkipPixels
;
4312 case GL_PACK_SKIP_ROWS
:
4313 params
[0] = ctx
->Pack
.SkipRows
;
4315 case GL_PACK_SWAP_BYTES
:
4316 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4318 case GL_PACK_SKIP_IMAGES_EXT
:
4319 params
[0] = ctx
->Pack
.SkipImages
;
4321 case GL_PACK_IMAGE_HEIGHT_EXT
:
4322 params
[0] = ctx
->Pack
.ImageHeight
;
4324 case GL_PACK_INVERT_MESA
:
4325 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4327 case GL_PERSPECTIVE_CORRECTION_HINT
:
4328 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4330 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4331 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4333 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4334 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4336 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4337 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4339 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4340 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4342 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4343 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4345 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4346 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4348 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4349 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4351 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4352 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4354 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4355 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4357 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4358 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4361 params
[0] = IROUND(ctx
->Point
.Size
);
4363 case GL_POINT_SIZE_GRANULARITY
:
4364 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4366 case GL_POINT_SIZE_RANGE
:
4367 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4368 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4370 case GL_ALIASED_POINT_SIZE_RANGE
:
4371 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4372 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4374 case GL_POINT_SMOOTH
:
4375 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4377 case GL_POINT_SMOOTH_HINT
:
4378 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4380 case GL_POINT_SIZE_MIN_EXT
:
4381 params
[0] = IROUND(ctx
->Point
.MinSize
);
4383 case GL_POINT_SIZE_MAX_EXT
:
4384 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4386 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4387 params
[0] = IROUND(ctx
->Point
.Threshold
);
4389 case GL_DISTANCE_ATTENUATION_EXT
:
4390 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4391 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4392 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4394 case GL_POLYGON_MODE
:
4395 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4396 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4398 case GL_POLYGON_OFFSET_BIAS_EXT
:
4399 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4401 case GL_POLYGON_OFFSET_FACTOR
:
4402 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4404 case GL_POLYGON_OFFSET_UNITS
:
4405 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4407 case GL_POLYGON_OFFSET_POINT
:
4408 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4410 case GL_POLYGON_OFFSET_LINE
:
4411 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4413 case GL_POLYGON_OFFSET_FILL
:
4414 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4416 case GL_POLYGON_SMOOTH
:
4417 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4419 case GL_POLYGON_SMOOTH_HINT
:
4420 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4422 case GL_POLYGON_STIPPLE
:
4423 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4425 case GL_PROJECTION_MATRIX
:
4427 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4428 params
[0] = IROUND(matrix
[0]);
4429 params
[1] = IROUND(matrix
[1]);
4430 params
[2] = IROUND(matrix
[2]);
4431 params
[3] = IROUND(matrix
[3]);
4432 params
[4] = IROUND(matrix
[4]);
4433 params
[5] = IROUND(matrix
[5]);
4434 params
[6] = IROUND(matrix
[6]);
4435 params
[7] = IROUND(matrix
[7]);
4436 params
[8] = IROUND(matrix
[8]);
4437 params
[9] = IROUND(matrix
[9]);
4438 params
[10] = IROUND(matrix
[10]);
4439 params
[11] = IROUND(matrix
[11]);
4440 params
[12] = IROUND(matrix
[12]);
4441 params
[13] = IROUND(matrix
[13]);
4442 params
[14] = IROUND(matrix
[14]);
4443 params
[15] = IROUND(matrix
[15]);
4446 case GL_PROJECTION_STACK_DEPTH
:
4447 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4449 case GL_READ_BUFFER
:
4450 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4453 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4456 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4459 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4461 case GL_RENDER_MODE
:
4462 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4464 case GL_RESCALE_NORMAL
:
4465 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4468 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4470 case GL_SCISSOR_BOX
:
4471 params
[0] = ctx
->Scissor
.X
;
4472 params
[1] = ctx
->Scissor
.Y
;
4473 params
[2] = ctx
->Scissor
.Width
;
4474 params
[3] = ctx
->Scissor
.Height
;
4476 case GL_SCISSOR_TEST
:
4477 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4479 case GL_SELECTION_BUFFER_SIZE
:
4480 params
[0] = ctx
->Select
.BufferSize
;
4482 case GL_SHADE_MODEL
:
4483 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4485 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4486 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4488 case GL_STENCIL_BITS
:
4489 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4491 case GL_STENCIL_CLEAR_VALUE
:
4492 params
[0] = ctx
->Stencil
.Clear
;
4494 case GL_STENCIL_FAIL
:
4495 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4497 case GL_STENCIL_FUNC
:
4498 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4500 case GL_STENCIL_PASS_DEPTH_FAIL
:
4501 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4503 case GL_STENCIL_PASS_DEPTH_PASS
:
4504 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4506 case GL_STENCIL_REF
:
4507 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4509 case GL_STENCIL_TEST
:
4510 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4512 case GL_STENCIL_VALUE_MASK
:
4513 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4515 case GL_STENCIL_WRITEMASK
:
4516 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4519 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4521 case GL_SUBPIXEL_BITS
:
4522 params
[0] = ctx
->Const
.SubPixelBits
;
4525 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4528 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4531 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4533 case GL_TEXTURE_1D_ARRAY_EXT
:
4534 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4535 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4537 case GL_TEXTURE_2D_ARRAY_EXT
:
4538 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4539 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4541 case GL_TEXTURE_BINDING_1D
:
4542 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
;
4544 case GL_TEXTURE_BINDING_2D
:
4545 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
;
4547 case GL_TEXTURE_BINDING_3D
:
4548 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
;
4550 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4551 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4552 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
;
4554 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4555 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4556 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
;
4558 case GL_TEXTURE_GEN_S
:
4559 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4561 case GL_TEXTURE_GEN_T
:
4562 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4564 case GL_TEXTURE_GEN_R
:
4565 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4567 case GL_TEXTURE_GEN_Q
:
4568 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4570 case GL_TEXTURE_MATRIX
:
4572 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4573 params
[0] = IROUND(matrix
[0]);
4574 params
[1] = IROUND(matrix
[1]);
4575 params
[2] = IROUND(matrix
[2]);
4576 params
[3] = IROUND(matrix
[3]);
4577 params
[4] = IROUND(matrix
[4]);
4578 params
[5] = IROUND(matrix
[5]);
4579 params
[6] = IROUND(matrix
[6]);
4580 params
[7] = IROUND(matrix
[7]);
4581 params
[8] = IROUND(matrix
[8]);
4582 params
[9] = IROUND(matrix
[9]);
4583 params
[10] = IROUND(matrix
[10]);
4584 params
[11] = IROUND(matrix
[11]);
4585 params
[12] = IROUND(matrix
[12]);
4586 params
[13] = IROUND(matrix
[13]);
4587 params
[14] = IROUND(matrix
[14]);
4588 params
[15] = IROUND(matrix
[15]);
4591 case GL_TEXTURE_STACK_DEPTH
:
4592 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4594 case GL_UNPACK_ALIGNMENT
:
4595 params
[0] = ctx
->Unpack
.Alignment
;
4597 case GL_UNPACK_LSB_FIRST
:
4598 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4600 case GL_UNPACK_ROW_LENGTH
:
4601 params
[0] = ctx
->Unpack
.RowLength
;
4603 case GL_UNPACK_SKIP_PIXELS
:
4604 params
[0] = ctx
->Unpack
.SkipPixels
;
4606 case GL_UNPACK_SKIP_ROWS
:
4607 params
[0] = ctx
->Unpack
.SkipRows
;
4609 case GL_UNPACK_SWAP_BYTES
:
4610 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4612 case GL_UNPACK_SKIP_IMAGES_EXT
:
4613 params
[0] = ctx
->Unpack
.SkipImages
;
4615 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4616 params
[0] = ctx
->Unpack
.ImageHeight
;
4618 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4619 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4622 params
[0] = ctx
->Viewport
.X
;
4623 params
[1] = ctx
->Viewport
.Y
;
4624 params
[2] = ctx
->Viewport
.Width
;
4625 params
[3] = ctx
->Viewport
.Height
;
4628 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4631 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4633 case GL_VERTEX_ARRAY
:
4634 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4636 case GL_VERTEX_ARRAY_SIZE
:
4637 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4639 case GL_VERTEX_ARRAY_TYPE
:
4640 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4642 case GL_VERTEX_ARRAY_STRIDE
:
4643 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4645 case GL_VERTEX_ARRAY_COUNT_EXT
:
4648 case GL_NORMAL_ARRAY
:
4649 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4651 case GL_NORMAL_ARRAY_TYPE
:
4652 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4654 case GL_NORMAL_ARRAY_STRIDE
:
4655 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4657 case GL_NORMAL_ARRAY_COUNT_EXT
:
4660 case GL_COLOR_ARRAY
:
4661 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4663 case GL_COLOR_ARRAY_SIZE
:
4664 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4666 case GL_COLOR_ARRAY_TYPE
:
4667 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4669 case GL_COLOR_ARRAY_STRIDE
:
4670 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4672 case GL_COLOR_ARRAY_COUNT_EXT
:
4675 case GL_INDEX_ARRAY
:
4676 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4678 case GL_INDEX_ARRAY_TYPE
:
4679 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4681 case GL_INDEX_ARRAY_STRIDE
:
4682 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4684 case GL_INDEX_ARRAY_COUNT_EXT
:
4687 case GL_TEXTURE_COORD_ARRAY
:
4688 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4690 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4691 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4693 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4694 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4696 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4697 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4699 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4702 case GL_EDGE_FLAG_ARRAY
:
4703 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4705 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4706 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4708 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4711 case GL_MAX_TEXTURE_UNITS_ARB
:
4712 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4713 params
[0] = ctx
->Const
.MaxTextureUnits
;
4715 case GL_ACTIVE_TEXTURE_ARB
:
4716 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4717 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4719 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4720 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4721 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4723 case GL_TEXTURE_CUBE_MAP_ARB
:
4724 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4725 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4727 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4728 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4729 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
;
4731 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4732 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4733 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4735 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4736 params
[0] = ctx
->Hint
.TextureCompression
;
4738 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4739 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4741 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4744 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4746 for (i
= 0; i
< n
; i
++)
4747 params
[i
] = ENUM_TO_INT(formats
[i
]);
4750 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4751 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4752 params
[0] = ctx
->Array
.LockFirst
;
4754 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4755 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4756 params
[0] = ctx
->Array
.LockCount
;
4758 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4760 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4761 params
[0] = IROUND(matrix
[0]);
4762 params
[1] = IROUND(matrix
[4]);
4763 params
[2] = IROUND(matrix
[8]);
4764 params
[3] = IROUND(matrix
[12]);
4765 params
[4] = IROUND(matrix
[1]);
4766 params
[5] = IROUND(matrix
[5]);
4767 params
[6] = IROUND(matrix
[9]);
4768 params
[7] = IROUND(matrix
[13]);
4769 params
[8] = IROUND(matrix
[2]);
4770 params
[9] = IROUND(matrix
[6]);
4771 params
[10] = IROUND(matrix
[10]);
4772 params
[11] = IROUND(matrix
[14]);
4773 params
[12] = IROUND(matrix
[3]);
4774 params
[13] = IROUND(matrix
[7]);
4775 params
[14] = IROUND(matrix
[11]);
4776 params
[15] = IROUND(matrix
[15]);
4779 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4781 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4782 params
[0] = IROUND(matrix
[0]);
4783 params
[1] = IROUND(matrix
[4]);
4784 params
[2] = IROUND(matrix
[8]);
4785 params
[3] = IROUND(matrix
[12]);
4786 params
[4] = IROUND(matrix
[1]);
4787 params
[5] = IROUND(matrix
[5]);
4788 params
[6] = IROUND(matrix
[9]);
4789 params
[7] = IROUND(matrix
[13]);
4790 params
[8] = IROUND(matrix
[2]);
4791 params
[9] = IROUND(matrix
[6]);
4792 params
[10] = IROUND(matrix
[10]);
4793 params
[11] = IROUND(matrix
[14]);
4794 params
[12] = IROUND(matrix
[3]);
4795 params
[13] = IROUND(matrix
[7]);
4796 params
[14] = IROUND(matrix
[11]);
4797 params
[15] = IROUND(matrix
[15]);
4800 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4802 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4803 params
[0] = IROUND(matrix
[0]);
4804 params
[1] = IROUND(matrix
[4]);
4805 params
[2] = IROUND(matrix
[8]);
4806 params
[3] = IROUND(matrix
[12]);
4807 params
[4] = IROUND(matrix
[1]);
4808 params
[5] = IROUND(matrix
[5]);
4809 params
[6] = IROUND(matrix
[9]);
4810 params
[7] = IROUND(matrix
[13]);
4811 params
[8] = IROUND(matrix
[2]);
4812 params
[9] = IROUND(matrix
[6]);
4813 params
[10] = IROUND(matrix
[10]);
4814 params
[11] = IROUND(matrix
[14]);
4815 params
[12] = IROUND(matrix
[3]);
4816 params
[13] = IROUND(matrix
[7]);
4817 params
[14] = IROUND(matrix
[11]);
4818 params
[15] = IROUND(matrix
[15]);
4821 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4823 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4824 params
[0] = IROUND(matrix
[0]);
4825 params
[1] = IROUND(matrix
[4]);
4826 params
[2] = IROUND(matrix
[8]);
4827 params
[3] = IROUND(matrix
[12]);
4828 params
[4] = IROUND(matrix
[1]);
4829 params
[5] = IROUND(matrix
[5]);
4830 params
[6] = IROUND(matrix
[9]);
4831 params
[7] = IROUND(matrix
[13]);
4832 params
[8] = IROUND(matrix
[2]);
4833 params
[9] = IROUND(matrix
[6]);
4834 params
[10] = IROUND(matrix
[10]);
4835 params
[11] = IROUND(matrix
[14]);
4836 params
[12] = IROUND(matrix
[3]);
4837 params
[13] = IROUND(matrix
[7]);
4838 params
[14] = IROUND(matrix
[11]);
4839 params
[15] = IROUND(matrix
[15]);
4842 case GL_COLOR_MATRIX_SGI
:
4844 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4845 params
[0] = IROUND(matrix
[0]);
4846 params
[1] = IROUND(matrix
[1]);
4847 params
[2] = IROUND(matrix
[2]);
4848 params
[3] = IROUND(matrix
[3]);
4849 params
[4] = IROUND(matrix
[4]);
4850 params
[5] = IROUND(matrix
[5]);
4851 params
[6] = IROUND(matrix
[6]);
4852 params
[7] = IROUND(matrix
[7]);
4853 params
[8] = IROUND(matrix
[8]);
4854 params
[9] = IROUND(matrix
[9]);
4855 params
[10] = IROUND(matrix
[10]);
4856 params
[11] = IROUND(matrix
[11]);
4857 params
[12] = IROUND(matrix
[12]);
4858 params
[13] = IROUND(matrix
[13]);
4859 params
[14] = IROUND(matrix
[14]);
4860 params
[15] = IROUND(matrix
[15]);
4863 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4864 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4866 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4867 params
[0] = MAX_COLOR_STACK_DEPTH
;
4869 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4870 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4872 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4873 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4875 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4876 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4878 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4879 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4881 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4882 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4884 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4885 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4887 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4888 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4890 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4891 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4893 case GL_CONVOLUTION_1D_EXT
:
4894 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4895 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4897 case GL_CONVOLUTION_2D_EXT
:
4898 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4899 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4901 case GL_SEPARABLE_2D_EXT
:
4902 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4903 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4905 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4906 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4907 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4909 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4910 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4911 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4913 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4914 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4915 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4917 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4918 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4919 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4921 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4922 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4923 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4925 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4926 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4927 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4929 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4930 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4931 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4933 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4934 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4935 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4938 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4939 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4942 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4943 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4945 case GL_COLOR_TABLE_SGI
:
4946 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4947 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
4949 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4950 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4951 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
4953 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4954 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4955 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
4957 case GL_TEXTURE_COLOR_TABLE_SGI
:
4958 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
4959 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4961 case GL_COLOR_SUM_EXT
:
4962 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
4963 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4965 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4966 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4968 FLUSH_CURRENT(ctx
, 0);
4969 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4970 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4971 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4972 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4975 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4976 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4977 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
4979 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
4980 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4981 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
4983 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
4984 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4985 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
4987 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
4988 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4989 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
4991 case GL_CURRENT_FOG_COORDINATE_EXT
:
4992 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4994 FLUSH_CURRENT(ctx
, 0);
4995 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
4998 case GL_FOG_COORDINATE_ARRAY_EXT
:
4999 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5000 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
5002 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5003 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5004 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
5006 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5007 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5008 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
5010 case GL_FOG_COORDINATE_SOURCE_EXT
:
5011 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5012 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5014 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5015 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5016 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5018 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5019 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5020 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5022 case GL_MULTISAMPLE_ARB
:
5023 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5025 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5026 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5028 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5029 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5031 case GL_SAMPLE_COVERAGE_ARB
:
5032 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5034 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5035 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5037 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5038 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5040 case GL_SAMPLE_BUFFERS_ARB
:
5041 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5043 case GL_SAMPLES_ARB
:
5044 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5046 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5047 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5048 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5050 case GL_POINT_SPRITE_NV
:
5051 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5052 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5054 case GL_POINT_SPRITE_R_MODE_NV
:
5055 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5056 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5058 case GL_POINT_SPRITE_COORD_ORIGIN
:
5059 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5060 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5062 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5063 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5064 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5066 case GL_VERTEX_PROGRAM_BINDING_NV
:
5067 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5068 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5070 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5071 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5072 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5074 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5075 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5076 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5078 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5079 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5080 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5082 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5083 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5084 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5086 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5087 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5088 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5090 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5091 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5092 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5094 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5095 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5096 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5098 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5099 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5100 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5102 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5103 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5104 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5106 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5107 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5108 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5110 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5111 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5112 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5114 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5115 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5116 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5118 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5119 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5120 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5122 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5123 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5124 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5126 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5127 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5128 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5130 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5131 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5132 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5134 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5135 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5136 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5138 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5139 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5140 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5142 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5143 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5144 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5146 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5147 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5148 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5150 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5151 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5152 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5154 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5155 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5156 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5158 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5159 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5160 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5162 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5163 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5164 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5166 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5167 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5168 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5170 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5171 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5172 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5174 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5175 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5176 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5178 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5179 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5180 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5182 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5183 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5184 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5186 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5187 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5188 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5190 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5191 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5194 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5195 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5196 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5198 case GL_FRAGMENT_PROGRAM_NV
:
5199 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5200 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5202 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5203 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5204 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5206 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5207 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5208 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5210 case GL_TEXTURE_RECTANGLE_NV
:
5211 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5212 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5214 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5215 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5216 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
;
5218 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5219 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5220 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5222 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5223 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5224 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5226 case GL_ACTIVE_STENCIL_FACE_EXT
:
5227 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5228 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5230 case GL_MAX_SHININESS_NV
:
5231 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5232 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5234 case GL_MAX_SPOT_EXPONENT_NV
:
5235 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5236 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5238 case GL_ARRAY_BUFFER_BINDING_ARB
:
5239 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5241 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5242 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5244 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5245 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5247 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5248 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5250 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5251 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5253 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5254 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5256 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5257 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5259 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5260 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5262 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5263 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5265 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5266 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5268 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5269 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5270 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5272 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5273 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5274 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5276 case GL_VERTEX_PROGRAM_ARB
:
5277 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5278 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5280 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5281 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5282 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5284 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5285 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5286 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5288 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5289 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5290 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5292 case GL_MAX_PROGRAM_MATRICES_ARB
:
5293 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5294 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5296 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5297 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5298 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5300 case GL_CURRENT_MATRIX_ARB
:
5301 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5303 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5304 params
[0] = IROUND(matrix
[0]);
5305 params
[1] = IROUND(matrix
[1]);
5306 params
[2] = IROUND(matrix
[2]);
5307 params
[3] = IROUND(matrix
[3]);
5308 params
[4] = IROUND(matrix
[4]);
5309 params
[5] = IROUND(matrix
[5]);
5310 params
[6] = IROUND(matrix
[6]);
5311 params
[7] = IROUND(matrix
[7]);
5312 params
[8] = IROUND(matrix
[8]);
5313 params
[9] = IROUND(matrix
[9]);
5314 params
[10] = IROUND(matrix
[10]);
5315 params
[11] = IROUND(matrix
[11]);
5316 params
[12] = IROUND(matrix
[12]);
5317 params
[13] = IROUND(matrix
[13]);
5318 params
[14] = IROUND(matrix
[14]);
5319 params
[15] = IROUND(matrix
[15]);
5322 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5323 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5325 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5326 params
[0] = IROUND(matrix
[0]);
5327 params
[1] = IROUND(matrix
[4]);
5328 params
[2] = IROUND(matrix
[8]);
5329 params
[3] = IROUND(matrix
[12]);
5330 params
[4] = IROUND(matrix
[1]);
5331 params
[5] = IROUND(matrix
[5]);
5332 params
[6] = IROUND(matrix
[9]);
5333 params
[7] = IROUND(matrix
[13]);
5334 params
[8] = IROUND(matrix
[2]);
5335 params
[9] = IROUND(matrix
[6]);
5336 params
[10] = IROUND(matrix
[10]);
5337 params
[11] = IROUND(matrix
[14]);
5338 params
[12] = IROUND(matrix
[3]);
5339 params
[13] = IROUND(matrix
[7]);
5340 params
[14] = IROUND(matrix
[11]);
5341 params
[15] = IROUND(matrix
[15]);
5344 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5345 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5346 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5348 case GL_PROGRAM_ERROR_POSITION_ARB
:
5349 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5350 params
[0] = ctx
->Program
.ErrorPos
;
5352 case GL_FRAGMENT_PROGRAM_ARB
:
5353 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5354 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5356 case GL_MAX_TEXTURE_COORDS_ARB
:
5357 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5358 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5360 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5361 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5362 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5364 case GL_DEPTH_BOUNDS_TEST_EXT
:
5365 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5366 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5368 case GL_DEPTH_BOUNDS_EXT
:
5369 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5370 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5371 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5373 case GL_MAX_DRAW_BUFFERS_ARB
:
5374 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5376 case GL_DRAW_BUFFER0_ARB
:
5377 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5379 case GL_DRAW_BUFFER1_ARB
:
5382 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5383 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5386 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5387 params
[0] = ENUM_TO_INT(buffer
);
5390 case GL_DRAW_BUFFER2_ARB
:
5393 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5394 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5397 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5398 params
[0] = ENUM_TO_INT(buffer
);
5401 case GL_DRAW_BUFFER3_ARB
:
5404 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5405 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5408 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5409 params
[0] = ENUM_TO_INT(buffer
);
5412 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5413 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5414 params
[0] = ctx
->Const
.ColorReadType
;
5416 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5417 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5418 params
[0] = ctx
->Const
.ColorReadFormat
;
5420 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5421 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5424 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5425 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5428 case GL_NUM_PASSES_ATI
:
5429 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5432 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5433 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5436 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5437 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5440 case GL_COLOR_ALPHA_PAIRING_ATI
:
5441 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5442 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5444 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5445 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5448 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5449 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5452 case GL_STENCIL_BACK_FUNC
:
5453 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5455 case GL_STENCIL_BACK_VALUE_MASK
:
5456 params
[0] = ctx
->Stencil
.ValueMask
[1];
5458 case GL_STENCIL_BACK_WRITEMASK
:
5459 params
[0] = ctx
->Stencil
.WriteMask
[1];
5461 case GL_STENCIL_BACK_REF
:
5462 params
[0] = ctx
->Stencil
.Ref
[1];
5464 case GL_STENCIL_BACK_FAIL
:
5465 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5467 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5468 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5470 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5471 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5473 case GL_FRAMEBUFFER_BINDING_EXT
:
5474 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5475 params
[0] = ctx
->DrawBuffer
->Name
;
5477 case GL_RENDERBUFFER_BINDING_EXT
:
5478 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5479 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5481 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5482 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5483 params
[0] = ctx
->Const
.MaxColorAttachments
;
5485 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5486 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5487 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5489 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5490 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5491 params
[0] = ctx
->ReadBuffer
->Name
;
5493 case GL_PROVOKING_VERTEX_EXT
:
5494 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5495 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ProvokingVertex
);
5497 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
5498 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5499 params
[0] = BOOLEAN_TO_INT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
5501 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5502 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5503 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5505 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5506 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5507 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5509 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5510 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5511 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5513 case GL_MAX_VARYING_FLOATS_ARB
:
5514 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5515 params
[0] = ctx
->Const
.MaxVarying
* 4;
5517 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5518 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5519 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5521 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5522 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5523 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5525 case GL_CURRENT_PROGRAM
:
5526 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5527 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5529 case GL_MAX_SAMPLES
:
5530 CHECK_EXT1(ARB_framebuffer_object
, "GetIntegerv");
5531 params
[0] = ctx
->Const
.MaxSamples
;
5533 case GL_VERTEX_ARRAY_BINDING_APPLE
:
5534 CHECK_EXT1(APPLE_vertex_array_object
, "GetIntegerv");
5535 params
[0] = ctx
->Array
.ArrayObj
->Name
;
5537 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
5538 CHECK_EXT1(ARB_seamless_cube_map
, "GetIntegerv");
5539 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.CubeMapSeamless
);
5542 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5548 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5550 const GLfloat magic
= -1234.5F
;
5557 /* Init temp array to magic numbers so we can figure out how many values
5558 * are returned by the GetFloatv() call.
5560 for (i
= 0; i
< 16; i
++)
5563 _mesa_GetFloatv(pname
, values
);
5565 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5566 params
[i
] = (GLdouble
) values
[i
];