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 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
280 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
281 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
282 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
286 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
289 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
291 case GL_DEPTH_CLEAR_VALUE
:
292 params
[0] = FLOAT_TO_BOOLEAN(((GLfloat
) ctx
->Depth
.Clear
));
295 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
298 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
299 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
302 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
305 params
[0] = ctx
->Depth
.Test
;
307 case GL_DEPTH_WRITEMASK
:
308 params
[0] = ctx
->Depth
.Mask
;
311 params
[0] = ctx
->Color
.DitherFlag
;
313 case GL_DOUBLEBUFFER
:
314 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
317 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
321 FLUSH_CURRENT(ctx
, 0);
322 params
[0] = (ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0);
325 case GL_FEEDBACK_BUFFER_SIZE
:
326 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
328 case GL_FEEDBACK_BUFFER_TYPE
:
329 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
332 params
[0] = ctx
->Fog
.Enabled
;
335 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
336 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
337 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
338 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
341 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
344 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
347 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
350 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
353 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
356 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
359 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
362 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
365 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
368 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
371 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
373 case GL_INDEX_CLEAR_VALUE
:
374 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
377 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
379 case GL_INDEX_OFFSET
:
380 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
383 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
385 case GL_INDEX_WRITEMASK
:
386 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
389 params
[0] = ctx
->Light
.Light
[0].Enabled
;
392 params
[0] = ctx
->Light
.Light
[1].Enabled
;
395 params
[0] = ctx
->Light
.Light
[2].Enabled
;
398 params
[0] = ctx
->Light
.Light
[3].Enabled
;
401 params
[0] = ctx
->Light
.Light
[4].Enabled
;
404 params
[0] = ctx
->Light
.Light
[5].Enabled
;
407 params
[0] = ctx
->Light
.Light
[6].Enabled
;
410 params
[0] = ctx
->Light
.Light
[7].Enabled
;
413 params
[0] = ctx
->Light
.Enabled
;
415 case GL_LIGHT_MODEL_AMBIENT
:
416 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
417 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
418 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
419 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
421 case GL_LIGHT_MODEL_COLOR_CONTROL
:
422 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
424 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
425 params
[0] = ctx
->Light
.Model
.LocalViewer
;
427 case GL_LIGHT_MODEL_TWO_SIDE
:
428 params
[0] = ctx
->Light
.Model
.TwoSide
;
431 params
[0] = ctx
->Line
.SmoothFlag
;
433 case GL_LINE_SMOOTH_HINT
:
434 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
436 case GL_LINE_STIPPLE
:
437 params
[0] = ctx
->Line
.StippleFlag
;
439 case GL_LINE_STIPPLE_PATTERN
:
440 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
442 case GL_LINE_STIPPLE_REPEAT
:
443 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
446 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
448 case GL_LINE_WIDTH_GRANULARITY
:
449 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
451 case GL_LINE_WIDTH_RANGE
:
452 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
453 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
455 case GL_ALIASED_LINE_WIDTH_RANGE
:
456 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
457 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
460 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
463 params
[0] = INT_TO_BOOLEAN(ctx
->ListState
.CurrentListNum
);
468 if (!ctx
->CompileFlag
)
470 else if (ctx
->ExecuteFlag
)
471 mode
= GL_COMPILE_AND_EXECUTE
;
474 params
[0] = ENUM_TO_BOOLEAN(mode
);
477 case GL_INDEX_LOGIC_OP
:
478 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
480 case GL_COLOR_LOGIC_OP
:
481 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
483 case GL_LOGIC_OP_MODE
:
484 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
486 case GL_MAP1_COLOR_4
:
487 params
[0] = ctx
->Eval
.Map1Color4
;
489 case GL_MAP1_GRID_DOMAIN
:
490 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
491 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
493 case GL_MAP1_GRID_SEGMENTS
:
494 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
497 params
[0] = ctx
->Eval
.Map1Index
;
500 params
[0] = ctx
->Eval
.Map1Normal
;
502 case GL_MAP1_TEXTURE_COORD_1
:
503 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
505 case GL_MAP1_TEXTURE_COORD_2
:
506 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
508 case GL_MAP1_TEXTURE_COORD_3
:
509 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
511 case GL_MAP1_TEXTURE_COORD_4
:
512 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
514 case GL_MAP1_VERTEX_3
:
515 params
[0] = ctx
->Eval
.Map1Vertex3
;
517 case GL_MAP1_VERTEX_4
:
518 params
[0] = ctx
->Eval
.Map1Vertex4
;
520 case GL_MAP2_COLOR_4
:
521 params
[0] = ctx
->Eval
.Map2Color4
;
523 case GL_MAP2_GRID_DOMAIN
:
524 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
525 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
526 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
527 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
529 case GL_MAP2_GRID_SEGMENTS
:
530 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
531 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
534 params
[0] = ctx
->Eval
.Map2Index
;
537 params
[0] = ctx
->Eval
.Map2Normal
;
539 case GL_MAP2_TEXTURE_COORD_1
:
540 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
542 case GL_MAP2_TEXTURE_COORD_2
:
543 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
545 case GL_MAP2_TEXTURE_COORD_3
:
546 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
548 case GL_MAP2_TEXTURE_COORD_4
:
549 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
551 case GL_MAP2_VERTEX_3
:
552 params
[0] = ctx
->Eval
.Map2Vertex3
;
554 case GL_MAP2_VERTEX_4
:
555 params
[0] = ctx
->Eval
.Map2Vertex4
;
558 params
[0] = ctx
->Pixel
.MapColorFlag
;
561 params
[0] = ctx
->Pixel
.MapStencilFlag
;
564 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
566 case GL_MAX_ATTRIB_STACK_DEPTH
:
567 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
569 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
570 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
572 case GL_MAX_CLIP_PLANES
:
573 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
575 case GL_MAX_ELEMENTS_VERTICES
:
576 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
578 case GL_MAX_ELEMENTS_INDICES
:
579 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
581 case GL_MAX_EVAL_ORDER
:
582 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
585 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
587 case GL_MAX_LIST_NESTING
:
588 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
590 case GL_MAX_MODELVIEW_STACK_DEPTH
:
591 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
593 case GL_MAX_NAME_STACK_DEPTH
:
594 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
596 case GL_MAX_PIXEL_MAP_TABLE
:
597 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
599 case GL_MAX_PROJECTION_STACK_DEPTH
:
600 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
602 case GL_MAX_TEXTURE_SIZE
:
603 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
605 case GL_MAX_3D_TEXTURE_SIZE
:
606 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
608 case GL_MAX_TEXTURE_STACK_DEPTH
:
609 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
611 case GL_MAX_VIEWPORT_DIMS
:
612 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
613 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
615 case GL_MODELVIEW_MATRIX
:
617 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
618 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
619 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
620 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
621 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
622 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
623 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
624 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
625 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
626 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
627 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
628 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
629 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
630 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
631 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
632 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
633 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
636 case GL_MODELVIEW_STACK_DEPTH
:
637 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
639 case GL_NAME_STACK_DEPTH
:
640 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
643 params
[0] = ctx
->Transform
.Normalize
;
645 case GL_PACK_ALIGNMENT
:
646 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
648 case GL_PACK_LSB_FIRST
:
649 params
[0] = ctx
->Pack
.LsbFirst
;
651 case GL_PACK_ROW_LENGTH
:
652 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
654 case GL_PACK_SKIP_PIXELS
:
655 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
657 case GL_PACK_SKIP_ROWS
:
658 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
660 case GL_PACK_SWAP_BYTES
:
661 params
[0] = ctx
->Pack
.SwapBytes
;
663 case GL_PACK_SKIP_IMAGES_EXT
:
664 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
666 case GL_PACK_IMAGE_HEIGHT_EXT
:
667 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
669 case GL_PACK_INVERT_MESA
:
670 params
[0] = ctx
->Pack
.Invert
;
672 case GL_PERSPECTIVE_CORRECTION_HINT
:
673 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
675 case GL_PIXEL_MAP_A_TO_A_SIZE
:
676 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.AtoA
.Size
);
678 case GL_PIXEL_MAP_B_TO_B_SIZE
:
679 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.BtoB
.Size
);
681 case GL_PIXEL_MAP_G_TO_G_SIZE
:
682 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.GtoG
.Size
);
684 case GL_PIXEL_MAP_I_TO_A_SIZE
:
685 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoA
.Size
);
687 case GL_PIXEL_MAP_I_TO_B_SIZE
:
688 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoB
.Size
);
690 case GL_PIXEL_MAP_I_TO_G_SIZE
:
691 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoG
.Size
);
693 case GL_PIXEL_MAP_I_TO_I_SIZE
:
694 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoI
.Size
);
696 case GL_PIXEL_MAP_I_TO_R_SIZE
:
697 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoR
.Size
);
699 case GL_PIXEL_MAP_R_TO_R_SIZE
:
700 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.RtoR
.Size
);
702 case GL_PIXEL_MAP_S_TO_S_SIZE
:
703 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.StoS
.Size
);
706 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
708 case GL_POINT_SIZE_GRANULARITY
:
709 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
711 case GL_POINT_SIZE_RANGE
:
712 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
713 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
715 case GL_ALIASED_POINT_SIZE_RANGE
:
716 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
717 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
719 case GL_POINT_SMOOTH
:
720 params
[0] = ctx
->Point
.SmoothFlag
;
722 case GL_POINT_SMOOTH_HINT
:
723 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
725 case GL_POINT_SIZE_MIN_EXT
:
726 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
728 case GL_POINT_SIZE_MAX_EXT
:
729 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
731 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
732 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
734 case GL_DISTANCE_ATTENUATION_EXT
:
735 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
736 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
737 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
739 case GL_POLYGON_MODE
:
740 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
741 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
743 case GL_POLYGON_OFFSET_BIAS_EXT
:
744 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
746 case GL_POLYGON_OFFSET_FACTOR
:
747 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
749 case GL_POLYGON_OFFSET_UNITS
:
750 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
752 case GL_POLYGON_OFFSET_POINT
:
753 params
[0] = ctx
->Polygon
.OffsetPoint
;
755 case GL_POLYGON_OFFSET_LINE
:
756 params
[0] = ctx
->Polygon
.OffsetLine
;
758 case GL_POLYGON_OFFSET_FILL
:
759 params
[0] = ctx
->Polygon
.OffsetFill
;
761 case GL_POLYGON_SMOOTH
:
762 params
[0] = ctx
->Polygon
.SmoothFlag
;
764 case GL_POLYGON_SMOOTH_HINT
:
765 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
767 case GL_POLYGON_STIPPLE
:
768 params
[0] = ctx
->Polygon
.StippleFlag
;
770 case GL_PROJECTION_MATRIX
:
772 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
773 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
774 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
775 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
776 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
777 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
778 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
779 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
780 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
781 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
782 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
783 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
784 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
785 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
786 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
787 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
788 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
791 case GL_PROJECTION_STACK_DEPTH
:
792 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
795 params
[0] = ENUM_TO_BOOLEAN(ctx
->ReadBuffer
->ColorReadBuffer
);
798 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
801 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.redBits
);
804 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
807 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
809 case GL_RESCALE_NORMAL
:
810 params
[0] = ctx
->Transform
.RescaleNormals
;
813 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
816 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
817 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
818 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
819 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
821 case GL_SCISSOR_TEST
:
822 params
[0] = ctx
->Scissor
.Enabled
;
824 case GL_SELECTION_BUFFER_SIZE
:
825 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
828 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
830 case GL_SHARED_TEXTURE_PALETTE_EXT
:
831 params
[0] = ctx
->Texture
.SharedPalette
;
833 case GL_STENCIL_BITS
:
834 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
836 case GL_STENCIL_CLEAR_VALUE
:
837 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
839 case GL_STENCIL_FAIL
:
840 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
842 case GL_STENCIL_FUNC
:
843 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
845 case GL_STENCIL_PASS_DEPTH_FAIL
:
846 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
848 case GL_STENCIL_PASS_DEPTH_PASS
:
849 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
852 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
854 case GL_STENCIL_TEST
:
855 params
[0] = ctx
->Stencil
.Enabled
;
857 case GL_STENCIL_VALUE_MASK
:
858 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
860 case GL_STENCIL_WRITEMASK
:
861 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
864 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
866 case GL_SUBPIXEL_BITS
:
867 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
870 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
873 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
876 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
878 case GL_TEXTURE_1D_ARRAY_EXT
:
879 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
880 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
);
882 case GL_TEXTURE_2D_ARRAY_EXT
:
883 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
884 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
);
886 case GL_TEXTURE_BINDING_1D
:
887 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
889 case GL_TEXTURE_BINDING_2D
:
890 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
892 case GL_TEXTURE_BINDING_3D
:
893 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
895 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
896 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
897 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1DArray
->Name
);
899 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
900 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
901 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2DArray
->Name
);
903 case GL_TEXTURE_GEN_S
:
904 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
906 case GL_TEXTURE_GEN_T
:
907 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
909 case GL_TEXTURE_GEN_R
:
910 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
912 case GL_TEXTURE_GEN_Q
:
913 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
915 case GL_TEXTURE_MATRIX
:
917 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
918 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
919 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
920 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
921 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
922 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
923 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
924 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
925 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
926 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
927 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
928 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
929 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
930 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
931 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
932 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
933 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
936 case GL_TEXTURE_STACK_DEPTH
:
937 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
939 case GL_UNPACK_ALIGNMENT
:
940 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
942 case GL_UNPACK_LSB_FIRST
:
943 params
[0] = ctx
->Unpack
.LsbFirst
;
945 case GL_UNPACK_ROW_LENGTH
:
946 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
948 case GL_UNPACK_SKIP_PIXELS
:
949 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
951 case GL_UNPACK_SKIP_ROWS
:
952 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
954 case GL_UNPACK_SWAP_BYTES
:
955 params
[0] = ctx
->Unpack
.SwapBytes
;
957 case GL_UNPACK_SKIP_IMAGES_EXT
:
958 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
960 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
961 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
963 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
964 params
[0] = ctx
->Unpack
.ClientStorage
;
967 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
968 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
969 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
970 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
973 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
976 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
978 case GL_VERTEX_ARRAY
:
979 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Enabled
;
981 case GL_VERTEX_ARRAY_SIZE
:
982 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Size
);
984 case GL_VERTEX_ARRAY_TYPE
:
985 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Type
);
987 case GL_VERTEX_ARRAY_STRIDE
:
988 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
990 case GL_VERTEX_ARRAY_COUNT_EXT
:
991 params
[0] = INT_TO_BOOLEAN(0);
993 case GL_NORMAL_ARRAY
:
994 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
996 case GL_NORMAL_ARRAY_TYPE
:
997 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Type
);
999 case GL_NORMAL_ARRAY_STRIDE
:
1000 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Stride
);
1002 case GL_NORMAL_ARRAY_COUNT_EXT
:
1003 params
[0] = INT_TO_BOOLEAN(0);
1005 case GL_COLOR_ARRAY
:
1006 params
[0] = ctx
->Array
.ArrayObj
->Color
.Enabled
;
1008 case GL_COLOR_ARRAY_SIZE
:
1009 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Size
);
1011 case GL_COLOR_ARRAY_TYPE
:
1012 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Type
);
1014 case GL_COLOR_ARRAY_STRIDE
:
1015 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Stride
);
1017 case GL_COLOR_ARRAY_COUNT_EXT
:
1018 params
[0] = INT_TO_BOOLEAN(0);
1020 case GL_INDEX_ARRAY
:
1021 params
[0] = ctx
->Array
.ArrayObj
->Index
.Enabled
;
1023 case GL_INDEX_ARRAY_TYPE
:
1024 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Type
);
1026 case GL_INDEX_ARRAY_STRIDE
:
1027 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Stride
);
1029 case GL_INDEX_ARRAY_COUNT_EXT
:
1030 params
[0] = INT_TO_BOOLEAN(0);
1032 case GL_TEXTURE_COORD_ARRAY
:
1033 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1035 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1036 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1038 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1039 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1041 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1042 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1044 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1045 params
[0] = INT_TO_BOOLEAN(0);
1047 case GL_EDGE_FLAG_ARRAY
:
1048 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
;
1050 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1051 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
1053 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1054 params
[0] = INT_TO_BOOLEAN(0);
1056 case GL_MAX_TEXTURE_UNITS_ARB
:
1057 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1058 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1060 case GL_ACTIVE_TEXTURE_ARB
:
1061 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1062 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1064 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1065 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1066 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1068 case GL_TEXTURE_CUBE_MAP_ARB
:
1069 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1070 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1072 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1073 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1074 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
1076 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1077 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1078 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1080 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1081 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1082 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1084 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1085 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1086 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1088 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1089 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1092 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1094 for (i
= 0; i
< n
; i
++)
1095 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
1098 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1099 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1100 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1102 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1103 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1104 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1106 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1108 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1109 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1110 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1111 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1112 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1113 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1114 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1115 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1116 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1117 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1118 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1119 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1120 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1121 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1122 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1123 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1124 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1127 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1129 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1130 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1131 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1132 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1133 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1134 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1135 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1136 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1137 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1138 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1139 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1140 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1141 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1142 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1143 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1144 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1145 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1148 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1150 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1151 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1152 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1153 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1154 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1155 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1156 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1157 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1158 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1159 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1160 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1161 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1162 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1163 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1164 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1165 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1166 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1169 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1171 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1172 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1173 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1174 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1175 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1176 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1177 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1178 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1179 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1180 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1181 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1182 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1183 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1184 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1185 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1186 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1187 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1190 case GL_COLOR_MATRIX_SGI
:
1192 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1193 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1194 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1195 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1196 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1197 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1198 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1199 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1200 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1201 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1202 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1203 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1204 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1205 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1206 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1207 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1208 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1211 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1212 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1214 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1215 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1217 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1218 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1220 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1221 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1223 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1224 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1226 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1227 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1229 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1230 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1232 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1233 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1235 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1236 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1238 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1239 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1241 case GL_CONVOLUTION_1D_EXT
:
1242 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1243 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1245 case GL_CONVOLUTION_2D_EXT
:
1246 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1247 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1249 case GL_SEPARABLE_2D_EXT
:
1250 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1251 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1253 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1254 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1255 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1257 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1258 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1261 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1262 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1263 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1265 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1266 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1267 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1269 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1270 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1271 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1273 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1274 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1275 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1277 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1278 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1279 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1281 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1282 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1283 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1286 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1287 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1290 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1291 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1293 case GL_COLOR_TABLE_SGI
:
1294 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1295 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
];
1297 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1298 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1299 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
];
1301 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1302 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1303 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
];
1305 case GL_TEXTURE_COLOR_TABLE_SGI
:
1306 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1307 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1309 case GL_COLOR_SUM_EXT
:
1310 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1311 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1313 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1314 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1316 FLUSH_CURRENT(ctx
, 0);
1317 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1318 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1319 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1320 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1323 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1324 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1325 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
;
1327 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1328 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1329 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
1331 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1332 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1333 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
1335 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1336 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1337 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
1339 case GL_CURRENT_FOG_COORDINATE_EXT
:
1340 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1342 FLUSH_CURRENT(ctx
, 0);
1343 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1346 case GL_FOG_COORDINATE_ARRAY_EXT
:
1347 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1348 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Enabled
;
1350 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1351 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1352 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
1354 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1355 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1356 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
1358 case GL_FOG_COORDINATE_SOURCE_EXT
:
1359 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1360 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1362 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1363 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1364 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1366 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1367 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1368 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1370 case GL_MULTISAMPLE_ARB
:
1371 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1372 params
[0] = ctx
->Multisample
.Enabled
;
1374 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1375 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1376 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1378 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1379 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1380 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1382 case GL_SAMPLE_COVERAGE_ARB
:
1383 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1384 params
[0] = ctx
->Multisample
.SampleCoverage
;
1386 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1387 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1388 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1390 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1391 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1392 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1394 case GL_SAMPLE_BUFFERS_ARB
:
1395 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1396 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1398 case GL_SAMPLES_ARB
:
1399 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1400 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1402 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1403 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1404 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1406 case GL_POINT_SPRITE_NV
:
1407 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1408 params
[0] = ctx
->Point
.PointSprite
;
1410 case GL_POINT_SPRITE_R_MODE_NV
:
1411 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1412 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1414 case GL_POINT_SPRITE_COORD_ORIGIN
:
1415 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1416 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1418 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1419 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1420 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1422 case GL_VERTEX_PROGRAM_BINDING_NV
:
1423 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1424 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1426 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1427 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1428 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
;
1430 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1431 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1432 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
;
1434 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1435 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1436 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
;
1438 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1439 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1440 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
;
1442 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1443 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1444 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
;
1446 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1447 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1448 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
;
1450 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1451 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1452 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
;
1454 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1455 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1456 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
;
1458 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1459 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1460 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
;
1462 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1463 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1464 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
;
1466 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1467 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1468 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
;
1470 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1471 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1472 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
;
1474 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1475 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1476 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
;
1478 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1479 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1480 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
;
1482 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1483 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1484 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
;
1486 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1487 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1488 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
;
1490 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1491 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1492 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1494 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1495 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1496 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1498 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1499 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1500 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1502 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1503 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1504 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1506 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1507 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1508 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1510 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1511 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1512 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1514 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1515 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1516 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1518 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1519 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1520 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1522 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1523 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1524 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1526 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1527 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1528 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1530 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1531 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1532 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1534 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1535 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1536 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1538 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1539 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1540 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1542 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1543 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1544 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1546 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1547 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1548 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1550 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1551 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1552 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1554 case GL_FRAGMENT_PROGRAM_NV
:
1555 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1556 params
[0] = ctx
->FragmentProgram
.Enabled
;
1558 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1559 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1560 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1562 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1563 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1564 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1566 case GL_TEXTURE_RECTANGLE_NV
:
1567 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1568 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1570 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1571 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1572 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
1574 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1575 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1576 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1578 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1579 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1580 params
[0] = ctx
->Stencil
.TestTwoSide
;
1582 case GL_ACTIVE_STENCIL_FACE_EXT
:
1583 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1584 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1586 case GL_MAX_SHININESS_NV
:
1587 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1588 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1590 case GL_MAX_SPOT_EXPONENT_NV
:
1591 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1592 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1594 case GL_ARRAY_BUFFER_BINDING_ARB
:
1595 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1596 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1598 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1599 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1600 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
1602 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1603 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1604 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
1606 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1607 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1608 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
1610 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1611 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1612 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
1614 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1615 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1616 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1618 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1619 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1620 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
1622 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1623 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1624 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
1626 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1627 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1628 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
1630 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1631 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1632 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1634 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1635 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1636 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1638 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1639 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1640 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1642 case GL_VERTEX_PROGRAM_ARB
:
1643 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1644 params
[0] = ctx
->VertexProgram
.Enabled
;
1646 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1647 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1648 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1650 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1651 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1652 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1654 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1655 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1656 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1658 case GL_MAX_PROGRAM_MATRICES_ARB
:
1659 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1660 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1662 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1663 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1664 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1666 case GL_CURRENT_MATRIX_ARB
:
1667 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1669 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1670 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1671 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1672 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1673 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1674 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1675 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1676 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1677 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1678 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1679 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1680 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1681 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1682 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1683 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1684 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1685 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1688 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1689 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1691 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1692 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1693 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1694 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1695 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1696 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1697 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1698 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1699 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1700 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1701 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1702 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1703 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1704 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1705 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1706 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1707 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1710 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1711 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1712 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1714 case GL_PROGRAM_ERROR_POSITION_ARB
:
1715 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1716 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1718 case GL_FRAGMENT_PROGRAM_ARB
:
1719 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1720 params
[0] = ctx
->FragmentProgram
.Enabled
;
1722 case GL_MAX_TEXTURE_COORDS_ARB
:
1723 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1724 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1726 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1727 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1728 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1730 case GL_DEPTH_BOUNDS_TEST_EXT
:
1731 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1732 params
[0] = ctx
->Depth
.BoundsTest
;
1734 case GL_DEPTH_BOUNDS_EXT
:
1735 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1736 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1737 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1739 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1740 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1741 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1743 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1744 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1745 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1747 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1748 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1749 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1751 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1752 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1753 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1755 case GL_MAX_DRAW_BUFFERS_ARB
:
1756 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1757 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1759 case GL_DRAW_BUFFER0_ARB
:
1760 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1761 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1763 case GL_DRAW_BUFFER1_ARB
:
1764 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1767 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1768 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1771 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1772 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1775 case GL_DRAW_BUFFER2_ARB
:
1776 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1779 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1780 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1783 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1784 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1787 case GL_DRAW_BUFFER3_ARB
:
1788 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1791 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1792 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1795 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1796 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1799 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1800 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1801 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1803 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1804 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1805 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1807 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1808 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1809 params
[0] = INT_TO_BOOLEAN(6);
1811 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1812 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1813 params
[0] = INT_TO_BOOLEAN(8);
1815 case GL_NUM_PASSES_ATI
:
1816 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1817 params
[0] = INT_TO_BOOLEAN(2);
1819 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1820 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1821 params
[0] = INT_TO_BOOLEAN(8);
1823 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1824 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1825 params
[0] = INT_TO_BOOLEAN(16);
1827 case GL_COLOR_ALPHA_PAIRING_ATI
:
1828 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1829 params
[0] = GL_TRUE
;
1831 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1832 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1833 params
[0] = INT_TO_BOOLEAN(3);
1835 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1836 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1837 params
[0] = INT_TO_BOOLEAN(3);
1839 case GL_STENCIL_BACK_FUNC
:
1840 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1842 case GL_STENCIL_BACK_VALUE_MASK
:
1843 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1845 case GL_STENCIL_BACK_WRITEMASK
:
1846 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1848 case GL_STENCIL_BACK_REF
:
1849 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1851 case GL_STENCIL_BACK_FAIL
:
1852 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1854 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1855 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1857 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1858 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1860 case GL_FRAMEBUFFER_BINDING_EXT
:
1861 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1862 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1864 case GL_RENDERBUFFER_BINDING_EXT
:
1865 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1866 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1868 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1869 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1870 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1872 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1873 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1874 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1876 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1877 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1878 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1880 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1881 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1882 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1884 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1885 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1886 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1888 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1889 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1890 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1892 case GL_MAX_VARYING_FLOATS_ARB
:
1893 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1894 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1896 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1897 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1898 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1900 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1901 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1902 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1904 case GL_CURRENT_PROGRAM
:
1905 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1906 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1909 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1914 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1916 GET_CURRENT_CONTEXT(ctx
);
1917 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1923 _mesa_update_state(ctx
);
1925 if (ctx
->Driver
.GetFloatv
&&
1926 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1930 case GL_ACCUM_RED_BITS
:
1931 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1933 case GL_ACCUM_GREEN_BITS
:
1934 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1936 case GL_ACCUM_BLUE_BITS
:
1937 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1939 case GL_ACCUM_ALPHA_BITS
:
1940 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1942 case GL_ACCUM_CLEAR_VALUE
:
1943 params
[0] = ctx
->Accum
.ClearColor
[0];
1944 params
[1] = ctx
->Accum
.ClearColor
[1];
1945 params
[2] = ctx
->Accum
.ClearColor
[2];
1946 params
[3] = ctx
->Accum
.ClearColor
[3];
1949 params
[0] = ctx
->Pixel
.AlphaBias
;
1952 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1954 case GL_ALPHA_SCALE
:
1955 params
[0] = ctx
->Pixel
.AlphaScale
;
1958 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1960 case GL_ALPHA_TEST_FUNC
:
1961 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1963 case GL_ALPHA_TEST_REF
:
1964 params
[0] = ctx
->Color
.AlphaRef
;
1966 case GL_ATTRIB_STACK_DEPTH
:
1967 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1969 case GL_AUTO_NORMAL
:
1970 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1972 case GL_AUX_BUFFERS
:
1973 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1976 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1979 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1982 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1984 case GL_BLEND_SRC_RGB_EXT
:
1985 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1987 case GL_BLEND_DST_RGB_EXT
:
1988 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1990 case GL_BLEND_SRC_ALPHA_EXT
:
1991 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1993 case GL_BLEND_DST_ALPHA_EXT
:
1994 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1996 case GL_BLEND_EQUATION
:
1997 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1999 case GL_BLEND_EQUATION_ALPHA_EXT
:
2000 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
2002 case GL_BLEND_COLOR_EXT
:
2003 params
[0] = ctx
->Color
.BlendColor
[0];
2004 params
[1] = ctx
->Color
.BlendColor
[1];
2005 params
[2] = ctx
->Color
.BlendColor
[2];
2006 params
[3] = ctx
->Color
.BlendColor
[3];
2009 params
[0] = ctx
->Pixel
.BlueBias
;
2012 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
2015 params
[0] = ctx
->Pixel
.BlueScale
;
2017 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2018 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2020 case GL_CLIP_PLANE0
:
2021 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2023 case GL_CLIP_PLANE1
:
2024 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2026 case GL_CLIP_PLANE2
:
2027 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2029 case GL_CLIP_PLANE3
:
2030 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2032 case GL_CLIP_PLANE4
:
2033 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2035 case GL_CLIP_PLANE5
:
2036 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2038 case GL_COLOR_CLEAR_VALUE
:
2039 params
[0] = ctx
->Color
.ClearColor
[0];
2040 params
[1] = ctx
->Color
.ClearColor
[1];
2041 params
[2] = ctx
->Color
.ClearColor
[2];
2042 params
[3] = ctx
->Color
.ClearColor
[3];
2044 case GL_COLOR_MATERIAL
:
2045 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2047 case GL_COLOR_MATERIAL_FACE
:
2048 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2050 case GL_COLOR_MATERIAL_PARAMETER
:
2051 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2053 case GL_COLOR_WRITEMASK
:
2054 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2055 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2056 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2057 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2060 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2062 case GL_CULL_FACE_MODE
:
2063 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2065 case GL_CURRENT_COLOR
:
2067 FLUSH_CURRENT(ctx
, 0);
2068 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2069 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2070 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2071 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2074 case GL_CURRENT_INDEX
:
2076 FLUSH_CURRENT(ctx
, 0);
2077 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2080 case GL_CURRENT_NORMAL
:
2082 FLUSH_CURRENT(ctx
, 0);
2083 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2084 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2085 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2088 case GL_CURRENT_RASTER_COLOR
:
2089 params
[0] = ctx
->Current
.RasterColor
[0];
2090 params
[1] = ctx
->Current
.RasterColor
[1];
2091 params
[2] = ctx
->Current
.RasterColor
[2];
2092 params
[3] = ctx
->Current
.RasterColor
[3];
2094 case GL_CURRENT_RASTER_DISTANCE
:
2095 params
[0] = ctx
->Current
.RasterDistance
;
2097 case GL_CURRENT_RASTER_INDEX
:
2098 params
[0] = ctx
->Current
.RasterIndex
;
2100 case GL_CURRENT_RASTER_POSITION
:
2101 params
[0] = ctx
->Current
.RasterPos
[0];
2102 params
[1] = ctx
->Current
.RasterPos
[1];
2103 params
[2] = ctx
->Current
.RasterPos
[2];
2104 params
[3] = ctx
->Current
.RasterPos
[3];
2106 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2107 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2108 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2109 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2110 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2112 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2114 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2115 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2116 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2117 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2118 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2121 case GL_CURRENT_RASTER_POSITION_VALID
:
2122 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2124 case GL_CURRENT_TEXTURE_COORDS
:
2126 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2127 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2128 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2129 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2130 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2134 params
[0] = ctx
->Pixel
.DepthBias
;
2137 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2139 case GL_DEPTH_CLEAR_VALUE
:
2140 params
[0] = ((GLfloat
) ctx
->Depth
.Clear
);
2143 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2145 case GL_DEPTH_RANGE
:
2146 params
[0] = ctx
->Viewport
.Near
;
2147 params
[1] = ctx
->Viewport
.Far
;
2149 case GL_DEPTH_SCALE
:
2150 params
[0] = ctx
->Pixel
.DepthScale
;
2153 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2155 case GL_DEPTH_WRITEMASK
:
2156 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2159 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2161 case GL_DOUBLEBUFFER
:
2162 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2164 case GL_DRAW_BUFFER
:
2165 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2169 FLUSH_CURRENT(ctx
, 0);
2170 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
2173 case GL_FEEDBACK_BUFFER_SIZE
:
2174 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2176 case GL_FEEDBACK_BUFFER_TYPE
:
2177 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2180 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2183 params
[0] = ctx
->Fog
.Color
[0];
2184 params
[1] = ctx
->Fog
.Color
[1];
2185 params
[2] = ctx
->Fog
.Color
[2];
2186 params
[3] = ctx
->Fog
.Color
[3];
2188 case GL_FOG_DENSITY
:
2189 params
[0] = ctx
->Fog
.Density
;
2192 params
[0] = ctx
->Fog
.End
;
2195 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2198 params
[0] = ctx
->Fog
.Index
;
2201 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2204 params
[0] = ctx
->Fog
.Start
;
2207 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2210 params
[0] = ctx
->Pixel
.GreenBias
;
2213 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2215 case GL_GREEN_SCALE
:
2216 params
[0] = ctx
->Pixel
.GreenScale
;
2219 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2221 case GL_INDEX_CLEAR_VALUE
:
2222 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2225 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2227 case GL_INDEX_OFFSET
:
2228 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2230 case GL_INDEX_SHIFT
:
2231 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2233 case GL_INDEX_WRITEMASK
:
2234 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2237 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2240 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2243 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2246 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2249 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2252 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2255 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2258 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2261 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2263 case GL_LIGHT_MODEL_AMBIENT
:
2264 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2265 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2266 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2267 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2269 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2270 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2272 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2273 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2275 case GL_LIGHT_MODEL_TWO_SIDE
:
2276 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2278 case GL_LINE_SMOOTH
:
2279 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2281 case GL_LINE_SMOOTH_HINT
:
2282 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2284 case GL_LINE_STIPPLE
:
2285 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2287 case GL_LINE_STIPPLE_PATTERN
:
2288 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2290 case GL_LINE_STIPPLE_REPEAT
:
2291 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2294 params
[0] = ctx
->Line
.Width
;
2296 case GL_LINE_WIDTH_GRANULARITY
:
2297 params
[0] = ctx
->Const
.LineWidthGranularity
;
2299 case GL_LINE_WIDTH_RANGE
:
2300 params
[0] = ctx
->Const
.MinLineWidthAA
;
2301 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2303 case GL_ALIASED_LINE_WIDTH_RANGE
:
2304 params
[0] = ctx
->Const
.MinLineWidth
;
2305 params
[1] = ctx
->Const
.MaxLineWidth
;
2308 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2311 params
[0] = (GLfloat
)(ctx
->ListState
.CurrentListNum
);
2316 if (!ctx
->CompileFlag
)
2318 else if (ctx
->ExecuteFlag
)
2319 mode
= GL_COMPILE_AND_EXECUTE
;
2322 params
[0] = ENUM_TO_FLOAT(mode
);
2325 case GL_INDEX_LOGIC_OP
:
2326 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2328 case GL_COLOR_LOGIC_OP
:
2329 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2331 case GL_LOGIC_OP_MODE
:
2332 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2334 case GL_MAP1_COLOR_4
:
2335 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2337 case GL_MAP1_GRID_DOMAIN
:
2338 params
[0] = ctx
->Eval
.MapGrid1u1
;
2339 params
[1] = ctx
->Eval
.MapGrid1u2
;
2341 case GL_MAP1_GRID_SEGMENTS
:
2342 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2345 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2347 case GL_MAP1_NORMAL
:
2348 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2350 case GL_MAP1_TEXTURE_COORD_1
:
2351 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2353 case GL_MAP1_TEXTURE_COORD_2
:
2354 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2356 case GL_MAP1_TEXTURE_COORD_3
:
2357 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2359 case GL_MAP1_TEXTURE_COORD_4
:
2360 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2362 case GL_MAP1_VERTEX_3
:
2363 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2365 case GL_MAP1_VERTEX_4
:
2366 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2368 case GL_MAP2_COLOR_4
:
2369 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2371 case GL_MAP2_GRID_DOMAIN
:
2372 params
[0] = ctx
->Eval
.MapGrid2u1
;
2373 params
[1] = ctx
->Eval
.MapGrid2u2
;
2374 params
[2] = ctx
->Eval
.MapGrid2v1
;
2375 params
[3] = ctx
->Eval
.MapGrid2v2
;
2377 case GL_MAP2_GRID_SEGMENTS
:
2378 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2379 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2382 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2384 case GL_MAP2_NORMAL
:
2385 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2387 case GL_MAP2_TEXTURE_COORD_1
:
2388 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2390 case GL_MAP2_TEXTURE_COORD_2
:
2391 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2393 case GL_MAP2_TEXTURE_COORD_3
:
2394 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2396 case GL_MAP2_TEXTURE_COORD_4
:
2397 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2399 case GL_MAP2_VERTEX_3
:
2400 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2402 case GL_MAP2_VERTEX_4
:
2403 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2406 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2408 case GL_MAP_STENCIL
:
2409 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2411 case GL_MATRIX_MODE
:
2412 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2414 case GL_MAX_ATTRIB_STACK_DEPTH
:
2415 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2417 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2418 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2420 case GL_MAX_CLIP_PLANES
:
2421 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2423 case GL_MAX_ELEMENTS_VERTICES
:
2424 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2426 case GL_MAX_ELEMENTS_INDICES
:
2427 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2429 case GL_MAX_EVAL_ORDER
:
2430 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2433 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2435 case GL_MAX_LIST_NESTING
:
2436 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2438 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2439 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2441 case GL_MAX_NAME_STACK_DEPTH
:
2442 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2444 case GL_MAX_PIXEL_MAP_TABLE
:
2445 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2447 case GL_MAX_PROJECTION_STACK_DEPTH
:
2448 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2450 case GL_MAX_TEXTURE_SIZE
:
2451 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2453 case GL_MAX_3D_TEXTURE_SIZE
:
2454 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2456 case GL_MAX_TEXTURE_STACK_DEPTH
:
2457 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2459 case GL_MAX_VIEWPORT_DIMS
:
2460 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2461 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2463 case GL_MODELVIEW_MATRIX
:
2465 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2466 params
[0] = matrix
[0];
2467 params
[1] = matrix
[1];
2468 params
[2] = matrix
[2];
2469 params
[3] = matrix
[3];
2470 params
[4] = matrix
[4];
2471 params
[5] = matrix
[5];
2472 params
[6] = matrix
[6];
2473 params
[7] = matrix
[7];
2474 params
[8] = matrix
[8];
2475 params
[9] = matrix
[9];
2476 params
[10] = matrix
[10];
2477 params
[11] = matrix
[11];
2478 params
[12] = matrix
[12];
2479 params
[13] = matrix
[13];
2480 params
[14] = matrix
[14];
2481 params
[15] = matrix
[15];
2484 case GL_MODELVIEW_STACK_DEPTH
:
2485 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2487 case GL_NAME_STACK_DEPTH
:
2488 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2491 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2493 case GL_PACK_ALIGNMENT
:
2494 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2496 case GL_PACK_LSB_FIRST
:
2497 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2499 case GL_PACK_ROW_LENGTH
:
2500 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2502 case GL_PACK_SKIP_PIXELS
:
2503 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2505 case GL_PACK_SKIP_ROWS
:
2506 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2508 case GL_PACK_SWAP_BYTES
:
2509 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2511 case GL_PACK_SKIP_IMAGES_EXT
:
2512 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2514 case GL_PACK_IMAGE_HEIGHT_EXT
:
2515 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2517 case GL_PACK_INVERT_MESA
:
2518 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2520 case GL_PERSPECTIVE_CORRECTION_HINT
:
2521 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2523 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2524 params
[0] = (GLfloat
)(ctx
->PixelMaps
.AtoA
.Size
);
2526 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2527 params
[0] = (GLfloat
)(ctx
->PixelMaps
.BtoB
.Size
);
2529 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2530 params
[0] = (GLfloat
)(ctx
->PixelMaps
.GtoG
.Size
);
2532 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2533 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoA
.Size
);
2535 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2536 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoB
.Size
);
2538 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2539 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoG
.Size
);
2541 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2542 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoI
.Size
);
2544 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2545 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoR
.Size
);
2547 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2548 params
[0] = (GLfloat
)(ctx
->PixelMaps
.RtoR
.Size
);
2550 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2551 params
[0] = (GLfloat
)(ctx
->PixelMaps
.StoS
.Size
);
2554 params
[0] = ctx
->Point
.Size
;
2556 case GL_POINT_SIZE_GRANULARITY
:
2557 params
[0] = ctx
->Const
.PointSizeGranularity
;
2559 case GL_POINT_SIZE_RANGE
:
2560 params
[0] = ctx
->Const
.MinPointSizeAA
;
2561 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2563 case GL_ALIASED_POINT_SIZE_RANGE
:
2564 params
[0] = ctx
->Const
.MinPointSize
;
2565 params
[1] = ctx
->Const
.MaxPointSize
;
2567 case GL_POINT_SMOOTH
:
2568 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2570 case GL_POINT_SMOOTH_HINT
:
2571 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2573 case GL_POINT_SIZE_MIN_EXT
:
2574 params
[0] = ctx
->Point
.MinSize
;
2576 case GL_POINT_SIZE_MAX_EXT
:
2577 params
[0] = ctx
->Point
.MaxSize
;
2579 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2580 params
[0] = ctx
->Point
.Threshold
;
2582 case GL_DISTANCE_ATTENUATION_EXT
:
2583 params
[0] = ctx
->Point
.Params
[0];
2584 params
[1] = ctx
->Point
.Params
[1];
2585 params
[2] = ctx
->Point
.Params
[2];
2587 case GL_POLYGON_MODE
:
2588 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2589 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2591 case GL_POLYGON_OFFSET_BIAS_EXT
:
2592 params
[0] = ctx
->Polygon
.OffsetUnits
;
2594 case GL_POLYGON_OFFSET_FACTOR
:
2595 params
[0] = ctx
->Polygon
.OffsetFactor
;
2597 case GL_POLYGON_OFFSET_UNITS
:
2598 params
[0] = ctx
->Polygon
.OffsetUnits
;
2600 case GL_POLYGON_OFFSET_POINT
:
2601 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetPoint
);
2603 case GL_POLYGON_OFFSET_LINE
:
2604 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetLine
);
2606 case GL_POLYGON_OFFSET_FILL
:
2607 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetFill
);
2609 case GL_POLYGON_SMOOTH
:
2610 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2612 case GL_POLYGON_SMOOTH_HINT
:
2613 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2615 case GL_POLYGON_STIPPLE
:
2616 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2618 case GL_PROJECTION_MATRIX
:
2620 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2621 params
[0] = matrix
[0];
2622 params
[1] = matrix
[1];
2623 params
[2] = matrix
[2];
2624 params
[3] = matrix
[3];
2625 params
[4] = matrix
[4];
2626 params
[5] = matrix
[5];
2627 params
[6] = matrix
[6];
2628 params
[7] = matrix
[7];
2629 params
[8] = matrix
[8];
2630 params
[9] = matrix
[9];
2631 params
[10] = matrix
[10];
2632 params
[11] = matrix
[11];
2633 params
[12] = matrix
[12];
2634 params
[13] = matrix
[13];
2635 params
[14] = matrix
[14];
2636 params
[15] = matrix
[15];
2639 case GL_PROJECTION_STACK_DEPTH
:
2640 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2642 case GL_READ_BUFFER
:
2643 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2646 params
[0] = ctx
->Pixel
.RedBias
;
2649 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.redBits
);
2652 params
[0] = ctx
->Pixel
.RedScale
;
2654 case GL_RENDER_MODE
:
2655 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2657 case GL_RESCALE_NORMAL
:
2658 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2661 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2663 case GL_SCISSOR_BOX
:
2664 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2665 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2666 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2667 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2669 case GL_SCISSOR_TEST
:
2670 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2672 case GL_SELECTION_BUFFER_SIZE
:
2673 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2675 case GL_SHADE_MODEL
:
2676 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2678 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2679 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2681 case GL_STENCIL_BITS
:
2682 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2684 case GL_STENCIL_CLEAR_VALUE
:
2685 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2687 case GL_STENCIL_FAIL
:
2688 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2690 case GL_STENCIL_FUNC
:
2691 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2693 case GL_STENCIL_PASS_DEPTH_FAIL
:
2694 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2696 case GL_STENCIL_PASS_DEPTH_PASS
:
2697 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2699 case GL_STENCIL_REF
:
2700 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2702 case GL_STENCIL_TEST
:
2703 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2705 case GL_STENCIL_VALUE_MASK
:
2706 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2708 case GL_STENCIL_WRITEMASK
:
2709 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2712 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2714 case GL_SUBPIXEL_BITS
:
2715 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2718 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2721 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2724 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2726 case GL_TEXTURE_1D_ARRAY_EXT
:
2727 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2728 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
2730 case GL_TEXTURE_2D_ARRAY_EXT
:
2731 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2732 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
2734 case GL_TEXTURE_BINDING_1D
:
2735 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
2737 case GL_TEXTURE_BINDING_2D
:
2738 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2740 case GL_TEXTURE_BINDING_3D
:
2741 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
2743 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
2744 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2745 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1DArray
->Name
);
2747 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
2748 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2749 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2DArray
->Name
);
2751 case GL_TEXTURE_GEN_S
:
2752 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2754 case GL_TEXTURE_GEN_T
:
2755 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2757 case GL_TEXTURE_GEN_R
:
2758 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2760 case GL_TEXTURE_GEN_Q
:
2761 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2763 case GL_TEXTURE_MATRIX
:
2765 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2766 params
[0] = matrix
[0];
2767 params
[1] = matrix
[1];
2768 params
[2] = matrix
[2];
2769 params
[3] = matrix
[3];
2770 params
[4] = matrix
[4];
2771 params
[5] = matrix
[5];
2772 params
[6] = matrix
[6];
2773 params
[7] = matrix
[7];
2774 params
[8] = matrix
[8];
2775 params
[9] = matrix
[9];
2776 params
[10] = matrix
[10];
2777 params
[11] = matrix
[11];
2778 params
[12] = matrix
[12];
2779 params
[13] = matrix
[13];
2780 params
[14] = matrix
[14];
2781 params
[15] = matrix
[15];
2784 case GL_TEXTURE_STACK_DEPTH
:
2785 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2787 case GL_UNPACK_ALIGNMENT
:
2788 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2790 case GL_UNPACK_LSB_FIRST
:
2791 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2793 case GL_UNPACK_ROW_LENGTH
:
2794 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2796 case GL_UNPACK_SKIP_PIXELS
:
2797 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2799 case GL_UNPACK_SKIP_ROWS
:
2800 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2802 case GL_UNPACK_SWAP_BYTES
:
2803 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2805 case GL_UNPACK_SKIP_IMAGES_EXT
:
2806 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2808 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2809 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2811 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2812 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2815 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2816 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2817 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2818 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2821 params
[0] = ctx
->Pixel
.ZoomX
;
2824 params
[0] = ctx
->Pixel
.ZoomY
;
2826 case GL_VERTEX_ARRAY
:
2827 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
2829 case GL_VERTEX_ARRAY_SIZE
:
2830 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
2832 case GL_VERTEX_ARRAY_TYPE
:
2833 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
2835 case GL_VERTEX_ARRAY_STRIDE
:
2836 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
2838 case GL_VERTEX_ARRAY_COUNT_EXT
:
2839 params
[0] = (GLfloat
)(0);
2841 case GL_NORMAL_ARRAY
:
2842 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
2844 case GL_NORMAL_ARRAY_TYPE
:
2845 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Type
);
2847 case GL_NORMAL_ARRAY_STRIDE
:
2848 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
2850 case GL_NORMAL_ARRAY_COUNT_EXT
:
2851 params
[0] = (GLfloat
)(0);
2853 case GL_COLOR_ARRAY
:
2854 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
2856 case GL_COLOR_ARRAY_SIZE
:
2857 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Size
);
2859 case GL_COLOR_ARRAY_TYPE
:
2860 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Type
);
2862 case GL_COLOR_ARRAY_STRIDE
:
2863 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
2865 case GL_COLOR_ARRAY_COUNT_EXT
:
2866 params
[0] = (GLfloat
)(0);
2868 case GL_INDEX_ARRAY
:
2869 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
2871 case GL_INDEX_ARRAY_TYPE
:
2872 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Type
);
2874 case GL_INDEX_ARRAY_STRIDE
:
2875 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
2877 case GL_INDEX_ARRAY_COUNT_EXT
:
2878 params
[0] = (GLfloat
)(0);
2880 case GL_TEXTURE_COORD_ARRAY
:
2881 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2883 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2884 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2886 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2887 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2889 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2890 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2892 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2893 params
[0] = (GLfloat
)(0);
2895 case GL_EDGE_FLAG_ARRAY
:
2896 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
2898 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2899 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
2901 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2902 params
[0] = (GLfloat
)(0);
2904 case GL_MAX_TEXTURE_UNITS_ARB
:
2905 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2906 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2908 case GL_ACTIVE_TEXTURE_ARB
:
2909 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2910 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2912 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2913 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2914 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2916 case GL_TEXTURE_CUBE_MAP_ARB
:
2917 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2918 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2920 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2921 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2922 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
2924 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2925 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2926 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2928 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2929 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2930 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2932 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2933 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2934 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2936 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2937 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2940 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2942 for (i
= 0; i
< n
; i
++)
2943 params
[i
] = ENUM_TO_FLOAT(formats
[i
]);
2946 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2947 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2948 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2950 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2951 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2952 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2954 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2956 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2957 params
[0] = matrix
[0];
2958 params
[1] = matrix
[4];
2959 params
[2] = matrix
[8];
2960 params
[3] = matrix
[12];
2961 params
[4] = matrix
[1];
2962 params
[5] = matrix
[5];
2963 params
[6] = matrix
[9];
2964 params
[7] = matrix
[13];
2965 params
[8] = matrix
[2];
2966 params
[9] = matrix
[6];
2967 params
[10] = matrix
[10];
2968 params
[11] = matrix
[14];
2969 params
[12] = matrix
[3];
2970 params
[13] = matrix
[7];
2971 params
[14] = matrix
[11];
2972 params
[15] = matrix
[15];
2975 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2977 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2978 params
[0] = matrix
[0];
2979 params
[1] = matrix
[4];
2980 params
[2] = matrix
[8];
2981 params
[3] = matrix
[12];
2982 params
[4] = matrix
[1];
2983 params
[5] = matrix
[5];
2984 params
[6] = matrix
[9];
2985 params
[7] = matrix
[13];
2986 params
[8] = matrix
[2];
2987 params
[9] = matrix
[6];
2988 params
[10] = matrix
[10];
2989 params
[11] = matrix
[14];
2990 params
[12] = matrix
[3];
2991 params
[13] = matrix
[7];
2992 params
[14] = matrix
[11];
2993 params
[15] = matrix
[15];
2996 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2998 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2999 params
[0] = matrix
[0];
3000 params
[1] = matrix
[4];
3001 params
[2] = matrix
[8];
3002 params
[3] = matrix
[12];
3003 params
[4] = matrix
[1];
3004 params
[5] = matrix
[5];
3005 params
[6] = matrix
[9];
3006 params
[7] = matrix
[13];
3007 params
[8] = matrix
[2];
3008 params
[9] = matrix
[6];
3009 params
[10] = matrix
[10];
3010 params
[11] = matrix
[14];
3011 params
[12] = matrix
[3];
3012 params
[13] = matrix
[7];
3013 params
[14] = matrix
[11];
3014 params
[15] = matrix
[15];
3017 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
3019 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
3020 params
[0] = matrix
[0];
3021 params
[1] = matrix
[4];
3022 params
[2] = matrix
[8];
3023 params
[3] = matrix
[12];
3024 params
[4] = matrix
[1];
3025 params
[5] = matrix
[5];
3026 params
[6] = matrix
[9];
3027 params
[7] = matrix
[13];
3028 params
[8] = matrix
[2];
3029 params
[9] = matrix
[6];
3030 params
[10] = matrix
[10];
3031 params
[11] = matrix
[14];
3032 params
[12] = matrix
[3];
3033 params
[13] = matrix
[7];
3034 params
[14] = matrix
[11];
3035 params
[15] = matrix
[15];
3038 case GL_COLOR_MATRIX_SGI
:
3040 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3041 params
[0] = matrix
[0];
3042 params
[1] = matrix
[1];
3043 params
[2] = matrix
[2];
3044 params
[3] = matrix
[3];
3045 params
[4] = matrix
[4];
3046 params
[5] = matrix
[5];
3047 params
[6] = matrix
[6];
3048 params
[7] = matrix
[7];
3049 params
[8] = matrix
[8];
3050 params
[9] = matrix
[9];
3051 params
[10] = matrix
[10];
3052 params
[11] = matrix
[11];
3053 params
[12] = matrix
[12];
3054 params
[13] = matrix
[13];
3055 params
[14] = matrix
[14];
3056 params
[15] = matrix
[15];
3059 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3060 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3062 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3063 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3065 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3066 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3068 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3069 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3071 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3072 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3074 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3075 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3077 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3078 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3080 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3081 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3083 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3084 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3086 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3087 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3089 case GL_CONVOLUTION_1D_EXT
:
3090 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3091 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3093 case GL_CONVOLUTION_2D_EXT
:
3094 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3095 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3097 case GL_SEPARABLE_2D_EXT
:
3098 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3099 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3101 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3102 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3103 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3105 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3106 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3107 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3109 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3110 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3111 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3113 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3114 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3115 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3117 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3118 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3119 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3121 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3122 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3123 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3125 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3126 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3127 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3129 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3130 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3131 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3134 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3135 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3138 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3139 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3141 case GL_COLOR_TABLE_SGI
:
3142 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3143 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3145 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3146 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3147 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3149 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3150 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3151 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3153 case GL_TEXTURE_COLOR_TABLE_SGI
:
3154 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3155 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3157 case GL_COLOR_SUM_EXT
:
3158 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3159 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3161 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3162 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3164 FLUSH_CURRENT(ctx
, 0);
3165 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3166 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3167 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3168 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3171 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3172 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3173 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3175 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3176 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3177 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3179 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3180 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3181 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3183 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3184 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3185 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3187 case GL_CURRENT_FOG_COORDINATE_EXT
:
3188 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3190 FLUSH_CURRENT(ctx
, 0);
3191 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3194 case GL_FOG_COORDINATE_ARRAY_EXT
:
3195 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3196 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3198 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3199 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3200 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3202 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3203 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3204 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3206 case GL_FOG_COORDINATE_SOURCE_EXT
:
3207 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3208 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3210 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3211 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3212 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3214 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3215 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3216 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3218 case GL_MULTISAMPLE_ARB
:
3219 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3220 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3222 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3223 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3224 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3226 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3227 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3228 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3230 case GL_SAMPLE_COVERAGE_ARB
:
3231 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3232 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3234 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3235 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3236 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3238 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3239 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3240 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3242 case GL_SAMPLE_BUFFERS_ARB
:
3243 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3244 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3246 case GL_SAMPLES_ARB
:
3247 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3248 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3250 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3251 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3252 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3254 case GL_POINT_SPRITE_NV
:
3255 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3256 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3258 case GL_POINT_SPRITE_R_MODE_NV
:
3259 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3260 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3262 case GL_POINT_SPRITE_COORD_ORIGIN
:
3263 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3264 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3266 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3267 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3268 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3270 case GL_VERTEX_PROGRAM_BINDING_NV
:
3271 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3272 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3274 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3275 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3276 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3278 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3279 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3280 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3282 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3283 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3284 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3286 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3287 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3288 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3290 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3291 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3292 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3294 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3295 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3296 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3298 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3299 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3300 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3302 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3303 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3304 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3306 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3307 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3308 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3310 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3311 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3312 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3314 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3315 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3316 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3318 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3319 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3320 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3322 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3323 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3324 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3326 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3327 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3330 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3331 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3332 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3334 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3335 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3336 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3338 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3339 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3340 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3342 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3343 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3344 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3346 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3347 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3348 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3350 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3351 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3352 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3354 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3355 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3356 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3358 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3359 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3360 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3362 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3363 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3366 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3367 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3370 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3371 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3372 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3374 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3375 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3376 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3378 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3379 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3380 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3382 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3383 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3384 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3386 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3387 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3388 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3390 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3391 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3392 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3394 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3395 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3396 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3398 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3399 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3400 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3402 case GL_FRAGMENT_PROGRAM_NV
:
3403 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3404 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3406 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3407 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3408 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3410 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3411 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3412 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3414 case GL_TEXTURE_RECTANGLE_NV
:
3415 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3416 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3418 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3419 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3420 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3422 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3423 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3424 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3426 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3427 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3428 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3430 case GL_ACTIVE_STENCIL_FACE_EXT
:
3431 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3432 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3434 case GL_MAX_SHININESS_NV
:
3435 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3436 params
[0] = ctx
->Const
.MaxShininess
;
3438 case GL_MAX_SPOT_EXPONENT_NV
:
3439 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3440 params
[0] = ctx
->Const
.MaxSpotExponent
;
3442 case GL_ARRAY_BUFFER_BINDING_ARB
:
3443 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3444 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3446 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3447 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3448 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3450 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3451 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3452 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3454 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3455 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3456 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3458 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3459 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3460 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3462 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3463 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3464 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3466 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3467 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3468 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3470 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3471 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3472 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3474 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3475 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3476 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3478 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3479 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3480 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3482 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3483 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3484 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3486 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3487 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3488 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3490 case GL_VERTEX_PROGRAM_ARB
:
3491 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3492 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3494 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3495 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3496 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3498 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3499 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3500 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3502 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3503 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3504 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3506 case GL_MAX_PROGRAM_MATRICES_ARB
:
3507 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3508 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3510 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3511 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3512 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3514 case GL_CURRENT_MATRIX_ARB
:
3515 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3517 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3518 params
[0] = matrix
[0];
3519 params
[1] = matrix
[1];
3520 params
[2] = matrix
[2];
3521 params
[3] = matrix
[3];
3522 params
[4] = matrix
[4];
3523 params
[5] = matrix
[5];
3524 params
[6] = matrix
[6];
3525 params
[7] = matrix
[7];
3526 params
[8] = matrix
[8];
3527 params
[9] = matrix
[9];
3528 params
[10] = matrix
[10];
3529 params
[11] = matrix
[11];
3530 params
[12] = matrix
[12];
3531 params
[13] = matrix
[13];
3532 params
[14] = matrix
[14];
3533 params
[15] = matrix
[15];
3536 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3537 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3539 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3540 params
[0] = matrix
[0];
3541 params
[1] = matrix
[4];
3542 params
[2] = matrix
[8];
3543 params
[3] = matrix
[12];
3544 params
[4] = matrix
[1];
3545 params
[5] = matrix
[5];
3546 params
[6] = matrix
[9];
3547 params
[7] = matrix
[13];
3548 params
[8] = matrix
[2];
3549 params
[9] = matrix
[6];
3550 params
[10] = matrix
[10];
3551 params
[11] = matrix
[14];
3552 params
[12] = matrix
[3];
3553 params
[13] = matrix
[7];
3554 params
[14] = matrix
[11];
3555 params
[15] = matrix
[15];
3558 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3559 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3560 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3562 case GL_PROGRAM_ERROR_POSITION_ARB
:
3563 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3564 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3566 case GL_FRAGMENT_PROGRAM_ARB
:
3567 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3568 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3570 case GL_MAX_TEXTURE_COORDS_ARB
:
3571 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3572 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3574 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3575 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3576 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3578 case GL_DEPTH_BOUNDS_TEST_EXT
:
3579 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3580 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3582 case GL_DEPTH_BOUNDS_EXT
:
3583 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3584 params
[0] = ctx
->Depth
.BoundsMin
;
3585 params
[1] = ctx
->Depth
.BoundsMax
;
3587 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3588 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3589 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3591 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3592 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3593 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3595 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3596 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3597 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3599 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3600 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3601 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3603 case GL_MAX_DRAW_BUFFERS_ARB
:
3604 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3605 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3607 case GL_DRAW_BUFFER0_ARB
:
3608 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3609 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3611 case GL_DRAW_BUFFER1_ARB
:
3612 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3615 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3616 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3619 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3620 params
[0] = ENUM_TO_FLOAT(buffer
);
3623 case GL_DRAW_BUFFER2_ARB
:
3624 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3627 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3628 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3631 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3632 params
[0] = ENUM_TO_FLOAT(buffer
);
3635 case GL_DRAW_BUFFER3_ARB
:
3636 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3639 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3640 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3643 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3644 params
[0] = ENUM_TO_FLOAT(buffer
);
3647 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3648 CHECK_EXT1(OES_read_format
, "GetFloatv");
3649 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3651 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3652 CHECK_EXT1(OES_read_format
, "GetFloatv");
3653 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3655 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3656 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3657 params
[0] = (GLfloat
)(6);
3659 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3660 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3661 params
[0] = (GLfloat
)(8);
3663 case GL_NUM_PASSES_ATI
:
3664 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3665 params
[0] = (GLfloat
)(2);
3667 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3668 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3669 params
[0] = (GLfloat
)(8);
3671 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3672 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3673 params
[0] = (GLfloat
)(16);
3675 case GL_COLOR_ALPHA_PAIRING_ATI
:
3676 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3677 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3679 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3680 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3681 params
[0] = (GLfloat
)(3);
3683 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3684 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3685 params
[0] = (GLfloat
)(3);
3687 case GL_STENCIL_BACK_FUNC
:
3688 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3690 case GL_STENCIL_BACK_VALUE_MASK
:
3691 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3693 case GL_STENCIL_BACK_WRITEMASK
:
3694 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3696 case GL_STENCIL_BACK_REF
:
3697 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3699 case GL_STENCIL_BACK_FAIL
:
3700 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3702 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3703 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3705 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3706 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3708 case GL_FRAMEBUFFER_BINDING_EXT
:
3709 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3710 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3712 case GL_RENDERBUFFER_BINDING_EXT
:
3713 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3714 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3716 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3717 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3718 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3720 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3721 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3722 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3724 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3725 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3726 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3728 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3729 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3730 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3732 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3733 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3734 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3736 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3737 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3738 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3740 case GL_MAX_VARYING_FLOATS_ARB
:
3741 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3742 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3744 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3745 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3746 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3748 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3749 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3750 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3752 case GL_CURRENT_PROGRAM
:
3753 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3754 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3757 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3762 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3764 GET_CURRENT_CONTEXT(ctx
);
3765 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3771 _mesa_update_state(ctx
);
3773 if (ctx
->Driver
.GetIntegerv
&&
3774 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3778 case GL_ACCUM_RED_BITS
:
3779 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3781 case GL_ACCUM_GREEN_BITS
:
3782 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3784 case GL_ACCUM_BLUE_BITS
:
3785 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3787 case GL_ACCUM_ALPHA_BITS
:
3788 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3790 case GL_ACCUM_CLEAR_VALUE
:
3791 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3792 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3793 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3794 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3797 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3800 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3802 case GL_ALPHA_SCALE
:
3803 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3806 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3808 case GL_ALPHA_TEST_FUNC
:
3809 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3811 case GL_ALPHA_TEST_REF
:
3812 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3814 case GL_ATTRIB_STACK_DEPTH
:
3815 params
[0] = ctx
->AttribStackDepth
;
3817 case GL_AUTO_NORMAL
:
3818 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3820 case GL_AUX_BUFFERS
:
3821 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3824 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3827 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3830 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3832 case GL_BLEND_SRC_RGB_EXT
:
3833 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3835 case GL_BLEND_DST_RGB_EXT
:
3836 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3838 case GL_BLEND_SRC_ALPHA_EXT
:
3839 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3841 case GL_BLEND_DST_ALPHA_EXT
:
3842 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3844 case GL_BLEND_EQUATION
:
3845 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3847 case GL_BLEND_EQUATION_ALPHA_EXT
:
3848 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3850 case GL_BLEND_COLOR_EXT
:
3851 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3852 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3853 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3854 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3857 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3860 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3863 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3865 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3866 params
[0] = ctx
->ClientAttribStackDepth
;
3868 case GL_CLIP_PLANE0
:
3869 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3871 case GL_CLIP_PLANE1
:
3872 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3874 case GL_CLIP_PLANE2
:
3875 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3877 case GL_CLIP_PLANE3
:
3878 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3880 case GL_CLIP_PLANE4
:
3881 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3883 case GL_CLIP_PLANE5
:
3884 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3886 case GL_COLOR_CLEAR_VALUE
:
3887 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3888 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3889 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3890 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3892 case GL_COLOR_MATERIAL
:
3893 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3895 case GL_COLOR_MATERIAL_FACE
:
3896 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3898 case GL_COLOR_MATERIAL_PARAMETER
:
3899 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3901 case GL_COLOR_WRITEMASK
:
3902 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3903 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3904 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3905 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3908 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3910 case GL_CULL_FACE_MODE
:
3911 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3913 case GL_CURRENT_COLOR
:
3915 FLUSH_CURRENT(ctx
, 0);
3916 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3917 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3918 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3919 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3922 case GL_CURRENT_INDEX
:
3924 FLUSH_CURRENT(ctx
, 0);
3925 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3928 case GL_CURRENT_NORMAL
:
3930 FLUSH_CURRENT(ctx
, 0);
3931 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3932 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3933 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3936 case GL_CURRENT_RASTER_COLOR
:
3937 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3938 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3939 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3940 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3942 case GL_CURRENT_RASTER_DISTANCE
:
3943 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3945 case GL_CURRENT_RASTER_INDEX
:
3946 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3948 case GL_CURRENT_RASTER_POSITION
:
3949 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3950 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3951 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3952 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3954 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
3955 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
3956 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
3957 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
3958 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
3960 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3962 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3963 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3964 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3965 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3966 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3969 case GL_CURRENT_RASTER_POSITION_VALID
:
3970 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3972 case GL_CURRENT_TEXTURE_COORDS
:
3974 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3975 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3976 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3977 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3978 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3982 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3985 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3987 case GL_DEPTH_CLEAR_VALUE
:
3988 params
[0] = FLOAT_TO_INT(((GLfloat
) ctx
->Depth
.Clear
));
3991 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3993 case GL_DEPTH_RANGE
:
3994 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3995 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3997 case GL_DEPTH_SCALE
:
3998 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
4001 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
4003 case GL_DEPTH_WRITEMASK
:
4004 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
4007 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
4009 case GL_DOUBLEBUFFER
:
4010 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
4012 case GL_DRAW_BUFFER
:
4013 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
4017 FLUSH_CURRENT(ctx
, 0);
4018 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
4021 case GL_FEEDBACK_BUFFER_SIZE
:
4022 params
[0] = ctx
->Feedback
.BufferSize
;
4024 case GL_FEEDBACK_BUFFER_TYPE
:
4025 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
4028 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
4031 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
4032 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
4033 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
4034 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
4036 case GL_FOG_DENSITY
:
4037 params
[0] = IROUND(ctx
->Fog
.Density
);
4040 params
[0] = IROUND(ctx
->Fog
.End
);
4043 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4046 params
[0] = IROUND(ctx
->Fog
.Index
);
4049 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4052 params
[0] = IROUND(ctx
->Fog
.Start
);
4055 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4058 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4061 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4063 case GL_GREEN_SCALE
:
4064 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4067 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4069 case GL_INDEX_CLEAR_VALUE
:
4070 params
[0] = ctx
->Color
.ClearIndex
;
4073 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4075 case GL_INDEX_OFFSET
:
4076 params
[0] = ctx
->Pixel
.IndexOffset
;
4078 case GL_INDEX_SHIFT
:
4079 params
[0] = ctx
->Pixel
.IndexShift
;
4081 case GL_INDEX_WRITEMASK
:
4082 params
[0] = ctx
->Color
.IndexMask
;
4085 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4088 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4091 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4094 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4097 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4100 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4103 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4106 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4109 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4111 case GL_LIGHT_MODEL_AMBIENT
:
4112 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4113 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4114 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4115 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4117 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4118 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4120 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4121 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4123 case GL_LIGHT_MODEL_TWO_SIDE
:
4124 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4126 case GL_LINE_SMOOTH
:
4127 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4129 case GL_LINE_SMOOTH_HINT
:
4130 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4132 case GL_LINE_STIPPLE
:
4133 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4135 case GL_LINE_STIPPLE_PATTERN
:
4136 params
[0] = ctx
->Line
.StipplePattern
;
4138 case GL_LINE_STIPPLE_REPEAT
:
4139 params
[0] = ctx
->Line
.StippleFactor
;
4142 params
[0] = IROUND(ctx
->Line
.Width
);
4144 case GL_LINE_WIDTH_GRANULARITY
:
4145 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4147 case GL_LINE_WIDTH_RANGE
:
4148 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4149 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4151 case GL_ALIASED_LINE_WIDTH_RANGE
:
4152 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4153 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4156 params
[0] = ctx
->List
.ListBase
;
4159 params
[0] = ctx
->ListState
.CurrentListNum
;
4164 if (!ctx
->CompileFlag
)
4166 else if (ctx
->ExecuteFlag
)
4167 mode
= GL_COMPILE_AND_EXECUTE
;
4170 params
[0] = ENUM_TO_INT(mode
);
4173 case GL_INDEX_LOGIC_OP
:
4174 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4176 case GL_COLOR_LOGIC_OP
:
4177 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4179 case GL_LOGIC_OP_MODE
:
4180 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4182 case GL_MAP1_COLOR_4
:
4183 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4185 case GL_MAP1_GRID_DOMAIN
:
4186 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4187 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4189 case GL_MAP1_GRID_SEGMENTS
:
4190 params
[0] = ctx
->Eval
.MapGrid1un
;
4193 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4195 case GL_MAP1_NORMAL
:
4196 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4198 case GL_MAP1_TEXTURE_COORD_1
:
4199 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4201 case GL_MAP1_TEXTURE_COORD_2
:
4202 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4204 case GL_MAP1_TEXTURE_COORD_3
:
4205 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4207 case GL_MAP1_TEXTURE_COORD_4
:
4208 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4210 case GL_MAP1_VERTEX_3
:
4211 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4213 case GL_MAP1_VERTEX_4
:
4214 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4216 case GL_MAP2_COLOR_4
:
4217 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4219 case GL_MAP2_GRID_DOMAIN
:
4220 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4221 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4222 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4223 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4225 case GL_MAP2_GRID_SEGMENTS
:
4226 params
[0] = ctx
->Eval
.MapGrid2un
;
4227 params
[1] = ctx
->Eval
.MapGrid2vn
;
4230 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4232 case GL_MAP2_NORMAL
:
4233 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4235 case GL_MAP2_TEXTURE_COORD_1
:
4236 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4238 case GL_MAP2_TEXTURE_COORD_2
:
4239 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4241 case GL_MAP2_TEXTURE_COORD_3
:
4242 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4244 case GL_MAP2_TEXTURE_COORD_4
:
4245 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4247 case GL_MAP2_VERTEX_3
:
4248 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4250 case GL_MAP2_VERTEX_4
:
4251 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4254 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4256 case GL_MAP_STENCIL
:
4257 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4259 case GL_MATRIX_MODE
:
4260 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4262 case GL_MAX_ATTRIB_STACK_DEPTH
:
4263 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4265 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4266 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4268 case GL_MAX_CLIP_PLANES
:
4269 params
[0] = ctx
->Const
.MaxClipPlanes
;
4271 case GL_MAX_ELEMENTS_VERTICES
:
4272 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4274 case GL_MAX_ELEMENTS_INDICES
:
4275 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4277 case GL_MAX_EVAL_ORDER
:
4278 params
[0] = MAX_EVAL_ORDER
;
4281 params
[0] = ctx
->Const
.MaxLights
;
4283 case GL_MAX_LIST_NESTING
:
4284 params
[0] = MAX_LIST_NESTING
;
4286 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4287 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4289 case GL_MAX_NAME_STACK_DEPTH
:
4290 params
[0] = MAX_NAME_STACK_DEPTH
;
4292 case GL_MAX_PIXEL_MAP_TABLE
:
4293 params
[0] = MAX_PIXEL_MAP_TABLE
;
4295 case GL_MAX_PROJECTION_STACK_DEPTH
:
4296 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4298 case GL_MAX_TEXTURE_SIZE
:
4299 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4301 case GL_MAX_3D_TEXTURE_SIZE
:
4302 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4304 case GL_MAX_TEXTURE_STACK_DEPTH
:
4305 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4307 case GL_MAX_VIEWPORT_DIMS
:
4308 params
[0] = ctx
->Const
.MaxViewportWidth
;
4309 params
[1] = ctx
->Const
.MaxViewportHeight
;
4311 case GL_MODELVIEW_MATRIX
:
4313 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4314 params
[0] = IROUND(matrix
[0]);
4315 params
[1] = IROUND(matrix
[1]);
4316 params
[2] = IROUND(matrix
[2]);
4317 params
[3] = IROUND(matrix
[3]);
4318 params
[4] = IROUND(matrix
[4]);
4319 params
[5] = IROUND(matrix
[5]);
4320 params
[6] = IROUND(matrix
[6]);
4321 params
[7] = IROUND(matrix
[7]);
4322 params
[8] = IROUND(matrix
[8]);
4323 params
[9] = IROUND(matrix
[9]);
4324 params
[10] = IROUND(matrix
[10]);
4325 params
[11] = IROUND(matrix
[11]);
4326 params
[12] = IROUND(matrix
[12]);
4327 params
[13] = IROUND(matrix
[13]);
4328 params
[14] = IROUND(matrix
[14]);
4329 params
[15] = IROUND(matrix
[15]);
4332 case GL_MODELVIEW_STACK_DEPTH
:
4333 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4335 case GL_NAME_STACK_DEPTH
:
4336 params
[0] = ctx
->Select
.NameStackDepth
;
4339 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4341 case GL_PACK_ALIGNMENT
:
4342 params
[0] = ctx
->Pack
.Alignment
;
4344 case GL_PACK_LSB_FIRST
:
4345 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4347 case GL_PACK_ROW_LENGTH
:
4348 params
[0] = ctx
->Pack
.RowLength
;
4350 case GL_PACK_SKIP_PIXELS
:
4351 params
[0] = ctx
->Pack
.SkipPixels
;
4353 case GL_PACK_SKIP_ROWS
:
4354 params
[0] = ctx
->Pack
.SkipRows
;
4356 case GL_PACK_SWAP_BYTES
:
4357 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4359 case GL_PACK_SKIP_IMAGES_EXT
:
4360 params
[0] = ctx
->Pack
.SkipImages
;
4362 case GL_PACK_IMAGE_HEIGHT_EXT
:
4363 params
[0] = ctx
->Pack
.ImageHeight
;
4365 case GL_PACK_INVERT_MESA
:
4366 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4368 case GL_PERSPECTIVE_CORRECTION_HINT
:
4369 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4371 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4372 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4374 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4375 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4377 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4378 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4380 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4381 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4383 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4384 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4386 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4387 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4389 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4390 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4392 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4393 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4395 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4396 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4398 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4399 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4402 params
[0] = IROUND(ctx
->Point
.Size
);
4404 case GL_POINT_SIZE_GRANULARITY
:
4405 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4407 case GL_POINT_SIZE_RANGE
:
4408 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4409 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4411 case GL_ALIASED_POINT_SIZE_RANGE
:
4412 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4413 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4415 case GL_POINT_SMOOTH
:
4416 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4418 case GL_POINT_SMOOTH_HINT
:
4419 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4421 case GL_POINT_SIZE_MIN_EXT
:
4422 params
[0] = IROUND(ctx
->Point
.MinSize
);
4424 case GL_POINT_SIZE_MAX_EXT
:
4425 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4427 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4428 params
[0] = IROUND(ctx
->Point
.Threshold
);
4430 case GL_DISTANCE_ATTENUATION_EXT
:
4431 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4432 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4433 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4435 case GL_POLYGON_MODE
:
4436 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4437 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4439 case GL_POLYGON_OFFSET_BIAS_EXT
:
4440 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4442 case GL_POLYGON_OFFSET_FACTOR
:
4443 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4445 case GL_POLYGON_OFFSET_UNITS
:
4446 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4448 case GL_POLYGON_OFFSET_POINT
:
4449 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4451 case GL_POLYGON_OFFSET_LINE
:
4452 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4454 case GL_POLYGON_OFFSET_FILL
:
4455 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4457 case GL_POLYGON_SMOOTH
:
4458 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4460 case GL_POLYGON_SMOOTH_HINT
:
4461 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4463 case GL_POLYGON_STIPPLE
:
4464 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4466 case GL_PROJECTION_MATRIX
:
4468 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4469 params
[0] = IROUND(matrix
[0]);
4470 params
[1] = IROUND(matrix
[1]);
4471 params
[2] = IROUND(matrix
[2]);
4472 params
[3] = IROUND(matrix
[3]);
4473 params
[4] = IROUND(matrix
[4]);
4474 params
[5] = IROUND(matrix
[5]);
4475 params
[6] = IROUND(matrix
[6]);
4476 params
[7] = IROUND(matrix
[7]);
4477 params
[8] = IROUND(matrix
[8]);
4478 params
[9] = IROUND(matrix
[9]);
4479 params
[10] = IROUND(matrix
[10]);
4480 params
[11] = IROUND(matrix
[11]);
4481 params
[12] = IROUND(matrix
[12]);
4482 params
[13] = IROUND(matrix
[13]);
4483 params
[14] = IROUND(matrix
[14]);
4484 params
[15] = IROUND(matrix
[15]);
4487 case GL_PROJECTION_STACK_DEPTH
:
4488 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4490 case GL_READ_BUFFER
:
4491 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4494 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4497 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4500 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4502 case GL_RENDER_MODE
:
4503 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4505 case GL_RESCALE_NORMAL
:
4506 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4509 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4511 case GL_SCISSOR_BOX
:
4512 params
[0] = ctx
->Scissor
.X
;
4513 params
[1] = ctx
->Scissor
.Y
;
4514 params
[2] = ctx
->Scissor
.Width
;
4515 params
[3] = ctx
->Scissor
.Height
;
4517 case GL_SCISSOR_TEST
:
4518 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4520 case GL_SELECTION_BUFFER_SIZE
:
4521 params
[0] = ctx
->Select
.BufferSize
;
4523 case GL_SHADE_MODEL
:
4524 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4526 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4527 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4529 case GL_STENCIL_BITS
:
4530 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4532 case GL_STENCIL_CLEAR_VALUE
:
4533 params
[0] = ctx
->Stencil
.Clear
;
4535 case GL_STENCIL_FAIL
:
4536 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4538 case GL_STENCIL_FUNC
:
4539 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4541 case GL_STENCIL_PASS_DEPTH_FAIL
:
4542 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4544 case GL_STENCIL_PASS_DEPTH_PASS
:
4545 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4547 case GL_STENCIL_REF
:
4548 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4550 case GL_STENCIL_TEST
:
4551 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4553 case GL_STENCIL_VALUE_MASK
:
4554 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4556 case GL_STENCIL_WRITEMASK
:
4557 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4560 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4562 case GL_SUBPIXEL_BITS
:
4563 params
[0] = ctx
->Const
.SubPixelBits
;
4566 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4569 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4572 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4574 case GL_TEXTURE_1D_ARRAY_EXT
:
4575 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4576 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4578 case GL_TEXTURE_2D_ARRAY_EXT
:
4579 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4580 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4582 case GL_TEXTURE_BINDING_1D
:
4583 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4585 case GL_TEXTURE_BINDING_2D
:
4586 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4588 case GL_TEXTURE_BINDING_3D
:
4589 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4591 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4592 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4593 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1DArray
->Name
;
4595 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4596 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4597 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2DArray
->Name
;
4599 case GL_TEXTURE_GEN_S
:
4600 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4602 case GL_TEXTURE_GEN_T
:
4603 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4605 case GL_TEXTURE_GEN_R
:
4606 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4608 case GL_TEXTURE_GEN_Q
:
4609 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4611 case GL_TEXTURE_MATRIX
:
4613 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4614 params
[0] = IROUND(matrix
[0]);
4615 params
[1] = IROUND(matrix
[1]);
4616 params
[2] = IROUND(matrix
[2]);
4617 params
[3] = IROUND(matrix
[3]);
4618 params
[4] = IROUND(matrix
[4]);
4619 params
[5] = IROUND(matrix
[5]);
4620 params
[6] = IROUND(matrix
[6]);
4621 params
[7] = IROUND(matrix
[7]);
4622 params
[8] = IROUND(matrix
[8]);
4623 params
[9] = IROUND(matrix
[9]);
4624 params
[10] = IROUND(matrix
[10]);
4625 params
[11] = IROUND(matrix
[11]);
4626 params
[12] = IROUND(matrix
[12]);
4627 params
[13] = IROUND(matrix
[13]);
4628 params
[14] = IROUND(matrix
[14]);
4629 params
[15] = IROUND(matrix
[15]);
4632 case GL_TEXTURE_STACK_DEPTH
:
4633 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4635 case GL_UNPACK_ALIGNMENT
:
4636 params
[0] = ctx
->Unpack
.Alignment
;
4638 case GL_UNPACK_LSB_FIRST
:
4639 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4641 case GL_UNPACK_ROW_LENGTH
:
4642 params
[0] = ctx
->Unpack
.RowLength
;
4644 case GL_UNPACK_SKIP_PIXELS
:
4645 params
[0] = ctx
->Unpack
.SkipPixels
;
4647 case GL_UNPACK_SKIP_ROWS
:
4648 params
[0] = ctx
->Unpack
.SkipRows
;
4650 case GL_UNPACK_SWAP_BYTES
:
4651 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4653 case GL_UNPACK_SKIP_IMAGES_EXT
:
4654 params
[0] = ctx
->Unpack
.SkipImages
;
4656 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4657 params
[0] = ctx
->Unpack
.ImageHeight
;
4659 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4660 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4663 params
[0] = ctx
->Viewport
.X
;
4664 params
[1] = ctx
->Viewport
.Y
;
4665 params
[2] = ctx
->Viewport
.Width
;
4666 params
[3] = ctx
->Viewport
.Height
;
4669 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4672 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4674 case GL_VERTEX_ARRAY
:
4675 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4677 case GL_VERTEX_ARRAY_SIZE
:
4678 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4680 case GL_VERTEX_ARRAY_TYPE
:
4681 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4683 case GL_VERTEX_ARRAY_STRIDE
:
4684 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4686 case GL_VERTEX_ARRAY_COUNT_EXT
:
4689 case GL_NORMAL_ARRAY
:
4690 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4692 case GL_NORMAL_ARRAY_TYPE
:
4693 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4695 case GL_NORMAL_ARRAY_STRIDE
:
4696 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4698 case GL_NORMAL_ARRAY_COUNT_EXT
:
4701 case GL_COLOR_ARRAY
:
4702 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4704 case GL_COLOR_ARRAY_SIZE
:
4705 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4707 case GL_COLOR_ARRAY_TYPE
:
4708 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4710 case GL_COLOR_ARRAY_STRIDE
:
4711 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4713 case GL_COLOR_ARRAY_COUNT_EXT
:
4716 case GL_INDEX_ARRAY
:
4717 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4719 case GL_INDEX_ARRAY_TYPE
:
4720 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4722 case GL_INDEX_ARRAY_STRIDE
:
4723 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4725 case GL_INDEX_ARRAY_COUNT_EXT
:
4728 case GL_TEXTURE_COORD_ARRAY
:
4729 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4731 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4732 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4734 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4735 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4737 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4738 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4740 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4743 case GL_EDGE_FLAG_ARRAY
:
4744 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4746 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4747 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4749 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4752 case GL_MAX_TEXTURE_UNITS_ARB
:
4753 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4754 params
[0] = ctx
->Const
.MaxTextureUnits
;
4756 case GL_ACTIVE_TEXTURE_ARB
:
4757 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4758 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4760 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4761 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4762 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4764 case GL_TEXTURE_CUBE_MAP_ARB
:
4765 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4766 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4768 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4769 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4770 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4772 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4773 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4774 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4776 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4777 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4778 params
[0] = ctx
->Hint
.TextureCompression
;
4780 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4781 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4782 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4784 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4785 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4788 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4790 for (i
= 0; i
< n
; i
++)
4791 params
[i
] = ENUM_TO_INT(formats
[i
]);
4794 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4795 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4796 params
[0] = ctx
->Array
.LockFirst
;
4798 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4799 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4800 params
[0] = ctx
->Array
.LockCount
;
4802 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4804 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4805 params
[0] = IROUND(matrix
[0]);
4806 params
[1] = IROUND(matrix
[4]);
4807 params
[2] = IROUND(matrix
[8]);
4808 params
[3] = IROUND(matrix
[12]);
4809 params
[4] = IROUND(matrix
[1]);
4810 params
[5] = IROUND(matrix
[5]);
4811 params
[6] = IROUND(matrix
[9]);
4812 params
[7] = IROUND(matrix
[13]);
4813 params
[8] = IROUND(matrix
[2]);
4814 params
[9] = IROUND(matrix
[6]);
4815 params
[10] = IROUND(matrix
[10]);
4816 params
[11] = IROUND(matrix
[14]);
4817 params
[12] = IROUND(matrix
[3]);
4818 params
[13] = IROUND(matrix
[7]);
4819 params
[14] = IROUND(matrix
[11]);
4820 params
[15] = IROUND(matrix
[15]);
4823 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4825 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4826 params
[0] = IROUND(matrix
[0]);
4827 params
[1] = IROUND(matrix
[4]);
4828 params
[2] = IROUND(matrix
[8]);
4829 params
[3] = IROUND(matrix
[12]);
4830 params
[4] = IROUND(matrix
[1]);
4831 params
[5] = IROUND(matrix
[5]);
4832 params
[6] = IROUND(matrix
[9]);
4833 params
[7] = IROUND(matrix
[13]);
4834 params
[8] = IROUND(matrix
[2]);
4835 params
[9] = IROUND(matrix
[6]);
4836 params
[10] = IROUND(matrix
[10]);
4837 params
[11] = IROUND(matrix
[14]);
4838 params
[12] = IROUND(matrix
[3]);
4839 params
[13] = IROUND(matrix
[7]);
4840 params
[14] = IROUND(matrix
[11]);
4841 params
[15] = IROUND(matrix
[15]);
4844 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4846 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4847 params
[0] = IROUND(matrix
[0]);
4848 params
[1] = IROUND(matrix
[4]);
4849 params
[2] = IROUND(matrix
[8]);
4850 params
[3] = IROUND(matrix
[12]);
4851 params
[4] = IROUND(matrix
[1]);
4852 params
[5] = IROUND(matrix
[5]);
4853 params
[6] = IROUND(matrix
[9]);
4854 params
[7] = IROUND(matrix
[13]);
4855 params
[8] = IROUND(matrix
[2]);
4856 params
[9] = IROUND(matrix
[6]);
4857 params
[10] = IROUND(matrix
[10]);
4858 params
[11] = IROUND(matrix
[14]);
4859 params
[12] = IROUND(matrix
[3]);
4860 params
[13] = IROUND(matrix
[7]);
4861 params
[14] = IROUND(matrix
[11]);
4862 params
[15] = IROUND(matrix
[15]);
4865 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4867 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4868 params
[0] = IROUND(matrix
[0]);
4869 params
[1] = IROUND(matrix
[4]);
4870 params
[2] = IROUND(matrix
[8]);
4871 params
[3] = IROUND(matrix
[12]);
4872 params
[4] = IROUND(matrix
[1]);
4873 params
[5] = IROUND(matrix
[5]);
4874 params
[6] = IROUND(matrix
[9]);
4875 params
[7] = IROUND(matrix
[13]);
4876 params
[8] = IROUND(matrix
[2]);
4877 params
[9] = IROUND(matrix
[6]);
4878 params
[10] = IROUND(matrix
[10]);
4879 params
[11] = IROUND(matrix
[14]);
4880 params
[12] = IROUND(matrix
[3]);
4881 params
[13] = IROUND(matrix
[7]);
4882 params
[14] = IROUND(matrix
[11]);
4883 params
[15] = IROUND(matrix
[15]);
4886 case GL_COLOR_MATRIX_SGI
:
4888 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4889 params
[0] = IROUND(matrix
[0]);
4890 params
[1] = IROUND(matrix
[1]);
4891 params
[2] = IROUND(matrix
[2]);
4892 params
[3] = IROUND(matrix
[3]);
4893 params
[4] = IROUND(matrix
[4]);
4894 params
[5] = IROUND(matrix
[5]);
4895 params
[6] = IROUND(matrix
[6]);
4896 params
[7] = IROUND(matrix
[7]);
4897 params
[8] = IROUND(matrix
[8]);
4898 params
[9] = IROUND(matrix
[9]);
4899 params
[10] = IROUND(matrix
[10]);
4900 params
[11] = IROUND(matrix
[11]);
4901 params
[12] = IROUND(matrix
[12]);
4902 params
[13] = IROUND(matrix
[13]);
4903 params
[14] = IROUND(matrix
[14]);
4904 params
[15] = IROUND(matrix
[15]);
4907 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4908 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4910 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4911 params
[0] = MAX_COLOR_STACK_DEPTH
;
4913 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4914 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4916 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4917 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4919 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4920 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4922 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4923 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4925 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4926 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4928 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4929 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4931 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4932 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4934 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4935 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4937 case GL_CONVOLUTION_1D_EXT
:
4938 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4939 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4941 case GL_CONVOLUTION_2D_EXT
:
4942 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4943 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4945 case GL_SEPARABLE_2D_EXT
:
4946 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4947 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4949 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4950 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4951 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4953 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4954 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4955 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4957 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4958 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4959 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4961 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4962 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4963 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4965 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4966 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4967 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4969 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4970 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4971 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4973 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4974 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4975 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4977 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4978 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4979 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4982 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4983 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4986 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4987 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4989 case GL_COLOR_TABLE_SGI
:
4990 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4991 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
4993 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4994 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4995 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
4997 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4998 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4999 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
5001 case GL_TEXTURE_COLOR_TABLE_SGI
:
5002 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
5003 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
5005 case GL_COLOR_SUM_EXT
:
5006 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
5007 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
5009 case GL_CURRENT_SECONDARY_COLOR_EXT
:
5010 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5012 FLUSH_CURRENT(ctx
, 0);
5013 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
5014 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
5015 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
5016 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
5019 case GL_SECONDARY_COLOR_ARRAY_EXT
:
5020 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5021 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
5023 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
5024 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5025 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
5027 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
5028 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5029 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
5031 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
5032 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5033 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
5035 case GL_CURRENT_FOG_COORDINATE_EXT
:
5036 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5038 FLUSH_CURRENT(ctx
, 0);
5039 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5042 case GL_FOG_COORDINATE_ARRAY_EXT
:
5043 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5044 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
5046 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5047 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5048 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
5050 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5051 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5052 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
5054 case GL_FOG_COORDINATE_SOURCE_EXT
:
5055 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5056 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5058 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5059 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5060 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5062 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5063 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5064 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5066 case GL_MULTISAMPLE_ARB
:
5067 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5068 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5070 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5071 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5072 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5074 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5075 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5076 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5078 case GL_SAMPLE_COVERAGE_ARB
:
5079 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5080 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5082 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5083 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5084 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5086 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5087 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5088 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5090 case GL_SAMPLE_BUFFERS_ARB
:
5091 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5092 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5094 case GL_SAMPLES_ARB
:
5095 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5096 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5098 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5099 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5100 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5102 case GL_POINT_SPRITE_NV
:
5103 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5104 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5106 case GL_POINT_SPRITE_R_MODE_NV
:
5107 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5108 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5110 case GL_POINT_SPRITE_COORD_ORIGIN
:
5111 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5112 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5114 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5115 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5116 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5118 case GL_VERTEX_PROGRAM_BINDING_NV
:
5119 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5120 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5122 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5123 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5124 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5126 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5127 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5128 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5130 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5131 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5132 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5134 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5135 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5136 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5138 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5139 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5140 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5142 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5143 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5144 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5146 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5147 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5148 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5150 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5151 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5152 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5154 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5155 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5156 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5158 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5159 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5160 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5162 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5163 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5164 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5166 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5167 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5168 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5170 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5171 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5172 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5174 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5175 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5176 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5178 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5179 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5180 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5182 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5183 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5184 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5186 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5187 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5188 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5190 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5191 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5194 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5195 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5196 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5198 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5199 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5200 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5202 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5203 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5204 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5206 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5207 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5208 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5210 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5211 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5212 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5214 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5215 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5216 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5218 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5219 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5220 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5222 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5223 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5224 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5226 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5227 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5228 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5230 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5231 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5232 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5234 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5235 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5236 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5238 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5239 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5240 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5242 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5243 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5244 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5246 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5247 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5248 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5250 case GL_FRAGMENT_PROGRAM_NV
:
5251 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5252 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5254 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5255 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5256 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5258 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5259 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5260 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5262 case GL_TEXTURE_RECTANGLE_NV
:
5263 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5264 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5266 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5267 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5268 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5270 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5271 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5272 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5274 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5275 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5276 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5278 case GL_ACTIVE_STENCIL_FACE_EXT
:
5279 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5280 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5282 case GL_MAX_SHININESS_NV
:
5283 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5284 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5286 case GL_MAX_SPOT_EXPONENT_NV
:
5287 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5288 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5290 case GL_ARRAY_BUFFER_BINDING_ARB
:
5291 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5292 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5294 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5295 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5296 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5298 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5299 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5300 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5302 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5303 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5304 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5306 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5307 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5308 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5310 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5311 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5312 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5314 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5315 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5316 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5318 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5319 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5320 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5322 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5323 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5324 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5326 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5327 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5328 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5330 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5331 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5332 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5334 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5335 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5336 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5338 case GL_VERTEX_PROGRAM_ARB
:
5339 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5340 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5342 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5343 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5344 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5346 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5347 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5348 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5350 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5351 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5352 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5354 case GL_MAX_PROGRAM_MATRICES_ARB
:
5355 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5356 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5358 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5359 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5360 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5362 case GL_CURRENT_MATRIX_ARB
:
5363 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5365 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5366 params
[0] = IROUND(matrix
[0]);
5367 params
[1] = IROUND(matrix
[1]);
5368 params
[2] = IROUND(matrix
[2]);
5369 params
[3] = IROUND(matrix
[3]);
5370 params
[4] = IROUND(matrix
[4]);
5371 params
[5] = IROUND(matrix
[5]);
5372 params
[6] = IROUND(matrix
[6]);
5373 params
[7] = IROUND(matrix
[7]);
5374 params
[8] = IROUND(matrix
[8]);
5375 params
[9] = IROUND(matrix
[9]);
5376 params
[10] = IROUND(matrix
[10]);
5377 params
[11] = IROUND(matrix
[11]);
5378 params
[12] = IROUND(matrix
[12]);
5379 params
[13] = IROUND(matrix
[13]);
5380 params
[14] = IROUND(matrix
[14]);
5381 params
[15] = IROUND(matrix
[15]);
5384 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5385 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5387 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5388 params
[0] = IROUND(matrix
[0]);
5389 params
[1] = IROUND(matrix
[4]);
5390 params
[2] = IROUND(matrix
[8]);
5391 params
[3] = IROUND(matrix
[12]);
5392 params
[4] = IROUND(matrix
[1]);
5393 params
[5] = IROUND(matrix
[5]);
5394 params
[6] = IROUND(matrix
[9]);
5395 params
[7] = IROUND(matrix
[13]);
5396 params
[8] = IROUND(matrix
[2]);
5397 params
[9] = IROUND(matrix
[6]);
5398 params
[10] = IROUND(matrix
[10]);
5399 params
[11] = IROUND(matrix
[14]);
5400 params
[12] = IROUND(matrix
[3]);
5401 params
[13] = IROUND(matrix
[7]);
5402 params
[14] = IROUND(matrix
[11]);
5403 params
[15] = IROUND(matrix
[15]);
5406 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5407 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5408 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5410 case GL_PROGRAM_ERROR_POSITION_ARB
:
5411 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5412 params
[0] = ctx
->Program
.ErrorPos
;
5414 case GL_FRAGMENT_PROGRAM_ARB
:
5415 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5416 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5418 case GL_MAX_TEXTURE_COORDS_ARB
:
5419 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5420 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5422 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5423 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5424 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5426 case GL_DEPTH_BOUNDS_TEST_EXT
:
5427 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5428 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5430 case GL_DEPTH_BOUNDS_EXT
:
5431 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5432 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5433 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5435 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5436 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5437 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5439 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5440 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5441 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5443 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5444 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5445 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5447 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5448 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5449 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5451 case GL_MAX_DRAW_BUFFERS_ARB
:
5452 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5453 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5455 case GL_DRAW_BUFFER0_ARB
:
5456 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5457 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5459 case GL_DRAW_BUFFER1_ARB
:
5460 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5463 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5464 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5467 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5468 params
[0] = ENUM_TO_INT(buffer
);
5471 case GL_DRAW_BUFFER2_ARB
:
5472 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5475 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5476 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5479 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5480 params
[0] = ENUM_TO_INT(buffer
);
5483 case GL_DRAW_BUFFER3_ARB
:
5484 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5487 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5488 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5491 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5492 params
[0] = ENUM_TO_INT(buffer
);
5495 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5496 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5497 params
[0] = ctx
->Const
.ColorReadType
;
5499 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5500 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5501 params
[0] = ctx
->Const
.ColorReadFormat
;
5503 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5504 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5507 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5508 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5511 case GL_NUM_PASSES_ATI
:
5512 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5515 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5516 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5519 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5520 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5523 case GL_COLOR_ALPHA_PAIRING_ATI
:
5524 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5525 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5527 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5528 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5531 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5532 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5535 case GL_STENCIL_BACK_FUNC
:
5536 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5538 case GL_STENCIL_BACK_VALUE_MASK
:
5539 params
[0] = ctx
->Stencil
.ValueMask
[1];
5541 case GL_STENCIL_BACK_WRITEMASK
:
5542 params
[0] = ctx
->Stencil
.WriteMask
[1];
5544 case GL_STENCIL_BACK_REF
:
5545 params
[0] = ctx
->Stencil
.Ref
[1];
5547 case GL_STENCIL_BACK_FAIL
:
5548 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5550 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5551 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5553 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5554 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5556 case GL_FRAMEBUFFER_BINDING_EXT
:
5557 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5558 params
[0] = ctx
->DrawBuffer
->Name
;
5560 case GL_RENDERBUFFER_BINDING_EXT
:
5561 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5562 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5564 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5565 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5566 params
[0] = ctx
->Const
.MaxColorAttachments
;
5568 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5569 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5570 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5572 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5573 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5574 params
[0] = ctx
->ReadBuffer
->Name
;
5576 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5577 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5578 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5580 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5581 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5582 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5584 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5585 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5586 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5588 case GL_MAX_VARYING_FLOATS_ARB
:
5589 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5590 params
[0] = ctx
->Const
.MaxVarying
* 4;
5592 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5593 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5594 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5596 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5597 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5598 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5600 case GL_CURRENT_PROGRAM
:
5601 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5602 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5605 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5611 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5613 const GLfloat magic
= -1234.5F
;
5620 /* Init temp array to magic numbers so we can figure out how many values
5621 * are returned by the GetFloatv() call.
5623 for (i
= 0; i
< 16; i
++)
5626 _mesa_GetFloatv(pname
, values
);
5628 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5629 params
[i
] = (GLdouble
) values
[i
];