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
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
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
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
889 case GL_TEXTURE_BINDING_2D
:
890 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
892 case GL_TEXTURE_BINDING_3D
:
893 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->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
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->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
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->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
].CurrentTex
[TEXTURE_CUBE_INDEX
]->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 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1083 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1084 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1086 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1089 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1091 for (i
= 0; i
< n
; i
++)
1092 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
1095 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1096 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1097 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1099 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1100 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1101 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1103 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1105 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1106 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1107 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1108 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1109 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1110 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1111 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1112 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1113 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1114 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1115 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1116 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1117 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1118 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1119 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1120 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1121 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1124 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1126 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1127 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1128 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1129 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1130 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1131 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1132 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1133 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1134 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1135 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1136 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1137 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1138 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1139 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1140 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1141 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1142 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1145 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1147 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1148 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1149 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1150 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1151 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1152 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1153 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1154 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1155 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1156 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1157 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1158 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1159 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1160 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1161 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1162 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1163 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1166 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1168 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1169 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1170 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1171 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1172 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1173 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1174 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1175 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1176 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1177 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1178 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1179 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1180 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1181 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1182 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1183 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1184 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1187 case GL_COLOR_MATRIX_SGI
:
1189 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1190 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1191 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1192 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1193 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1194 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1195 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1196 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1197 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1198 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1199 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1200 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1201 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1202 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1203 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1204 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1205 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1208 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1209 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1211 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1212 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1214 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1215 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1217 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1218 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1220 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1221 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1223 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1224 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1226 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1227 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1229 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1230 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1232 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1233 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1235 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1236 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1238 case GL_CONVOLUTION_1D_EXT
:
1239 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1240 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1242 case GL_CONVOLUTION_2D_EXT
:
1243 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1244 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1246 case GL_SEPARABLE_2D_EXT
:
1247 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1248 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1250 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1251 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1252 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1254 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1255 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1256 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1258 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1259 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1260 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1262 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1263 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1264 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1266 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1267 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1268 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1270 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1271 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1272 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1274 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1275 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1276 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1278 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1279 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1280 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1283 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1284 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1287 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1288 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1290 case GL_COLOR_TABLE_SGI
:
1291 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1292 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
];
1294 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1295 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1296 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
];
1298 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1299 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1300 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
];
1302 case GL_TEXTURE_COLOR_TABLE_SGI
:
1303 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1304 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1306 case GL_COLOR_SUM_EXT
:
1307 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1308 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1310 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1311 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1313 FLUSH_CURRENT(ctx
, 0);
1314 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1315 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1316 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1317 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1320 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1321 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1322 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
;
1324 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1325 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1326 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
1328 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1329 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1330 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
1332 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1333 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1334 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
1336 case GL_CURRENT_FOG_COORDINATE_EXT
:
1337 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1339 FLUSH_CURRENT(ctx
, 0);
1340 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1343 case GL_FOG_COORDINATE_ARRAY_EXT
:
1344 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1345 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Enabled
;
1347 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1348 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1349 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
1351 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1352 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1353 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
1355 case GL_FOG_COORDINATE_SOURCE_EXT
:
1356 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1357 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1359 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1360 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1361 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1363 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1364 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1365 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1367 case GL_MULTISAMPLE_ARB
:
1368 params
[0] = ctx
->Multisample
.Enabled
;
1370 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1371 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1373 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1374 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1376 case GL_SAMPLE_COVERAGE_ARB
:
1377 params
[0] = ctx
->Multisample
.SampleCoverage
;
1379 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1380 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1382 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1383 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1385 case GL_SAMPLE_BUFFERS_ARB
:
1386 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1388 case GL_SAMPLES_ARB
:
1389 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1391 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1392 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1393 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1395 case GL_POINT_SPRITE_NV
:
1396 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1397 params
[0] = ctx
->Point
.PointSprite
;
1399 case GL_POINT_SPRITE_R_MODE_NV
:
1400 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1401 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1403 case GL_POINT_SPRITE_COORD_ORIGIN
:
1404 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1405 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1407 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1408 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1409 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1411 case GL_VERTEX_PROGRAM_BINDING_NV
:
1412 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1413 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1415 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1416 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1417 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
;
1419 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1420 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1421 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
;
1423 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1424 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1425 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
;
1427 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1428 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1429 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
;
1431 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1432 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1433 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
;
1435 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1436 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1437 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
;
1439 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1440 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1441 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
;
1443 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1444 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1445 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
;
1447 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1448 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1449 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
;
1451 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1452 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1453 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
;
1455 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1456 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1457 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
;
1459 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1460 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1461 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
;
1463 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1464 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1465 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
;
1467 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1468 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1469 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
;
1471 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1472 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1473 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
;
1475 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1476 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1477 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
;
1479 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1480 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1481 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1483 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1484 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1485 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1487 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1488 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1489 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1491 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1492 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1493 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1495 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1496 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1497 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1499 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1500 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1501 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1503 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1504 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1505 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1507 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1508 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1509 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1511 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1512 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1513 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1515 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1516 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1517 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1519 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1520 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1521 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1523 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1524 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1525 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1527 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1528 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1529 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1531 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1532 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1533 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1535 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1536 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1537 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1539 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1540 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1541 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1543 case GL_FRAGMENT_PROGRAM_NV
:
1544 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1545 params
[0] = ctx
->FragmentProgram
.Enabled
;
1547 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1548 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1549 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1551 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1552 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1553 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1555 case GL_TEXTURE_RECTANGLE_NV
:
1556 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1557 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1559 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1560 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1561 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
1563 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1564 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1565 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1567 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1568 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1569 params
[0] = ctx
->Stencil
.TestTwoSide
;
1571 case GL_ACTIVE_STENCIL_FACE_EXT
:
1572 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1573 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1575 case GL_MAX_SHININESS_NV
:
1576 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1577 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1579 case GL_MAX_SPOT_EXPONENT_NV
:
1580 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1581 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1583 case GL_ARRAY_BUFFER_BINDING_ARB
:
1584 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1586 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1587 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
1589 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1590 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
1592 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1593 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
1595 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1596 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
1598 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1599 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1601 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1602 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
1604 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1605 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
1607 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1608 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
1610 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1611 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1613 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1614 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1615 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1617 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1618 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1619 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1621 case GL_VERTEX_PROGRAM_ARB
:
1622 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1623 params
[0] = ctx
->VertexProgram
.Enabled
;
1625 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1626 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1627 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1629 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1630 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1631 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1633 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1634 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1635 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1637 case GL_MAX_PROGRAM_MATRICES_ARB
:
1638 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1639 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1641 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1642 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1643 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1645 case GL_CURRENT_MATRIX_ARB
:
1646 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1648 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1649 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1650 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1651 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1652 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1653 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1654 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1655 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1656 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1657 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1658 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1659 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1660 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1661 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1662 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1663 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1664 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1667 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1668 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1670 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1671 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1672 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1673 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1674 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1675 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1676 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1677 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1678 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1679 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1680 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1681 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1682 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1683 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1684 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1685 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1686 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1689 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1690 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1691 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1693 case GL_PROGRAM_ERROR_POSITION_ARB
:
1694 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1695 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1697 case GL_FRAGMENT_PROGRAM_ARB
:
1698 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1699 params
[0] = ctx
->FragmentProgram
.Enabled
;
1701 case GL_MAX_TEXTURE_COORDS_ARB
:
1702 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1703 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1705 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1706 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1707 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1709 case GL_DEPTH_BOUNDS_TEST_EXT
:
1710 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1711 params
[0] = ctx
->Depth
.BoundsTest
;
1713 case GL_DEPTH_BOUNDS_EXT
:
1714 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1715 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1716 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1718 case GL_MAX_DRAW_BUFFERS_ARB
:
1719 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1721 case GL_DRAW_BUFFER0_ARB
:
1722 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1724 case GL_DRAW_BUFFER1_ARB
:
1727 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1728 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1731 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1732 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1735 case GL_DRAW_BUFFER2_ARB
:
1738 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1739 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1742 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1743 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1746 case GL_DRAW_BUFFER3_ARB
:
1749 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1750 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1753 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1754 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1757 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1758 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1759 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1761 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1762 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1763 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1765 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1766 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1767 params
[0] = INT_TO_BOOLEAN(6);
1769 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1770 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1771 params
[0] = INT_TO_BOOLEAN(8);
1773 case GL_NUM_PASSES_ATI
:
1774 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1775 params
[0] = INT_TO_BOOLEAN(2);
1777 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1778 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1779 params
[0] = INT_TO_BOOLEAN(8);
1781 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1782 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1783 params
[0] = INT_TO_BOOLEAN(16);
1785 case GL_COLOR_ALPHA_PAIRING_ATI
:
1786 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1787 params
[0] = GL_TRUE
;
1789 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1790 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1791 params
[0] = INT_TO_BOOLEAN(3);
1793 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1794 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1795 params
[0] = INT_TO_BOOLEAN(3);
1797 case GL_STENCIL_BACK_FUNC
:
1798 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1800 case GL_STENCIL_BACK_VALUE_MASK
:
1801 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1803 case GL_STENCIL_BACK_WRITEMASK
:
1804 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1806 case GL_STENCIL_BACK_REF
:
1807 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1809 case GL_STENCIL_BACK_FAIL
:
1810 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1812 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1813 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1815 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1816 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1818 case GL_FRAMEBUFFER_BINDING_EXT
:
1819 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1820 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1822 case GL_RENDERBUFFER_BINDING_EXT
:
1823 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1824 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1826 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1827 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1828 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1830 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1831 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1832 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1834 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1835 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1836 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1838 case GL_PROVOKING_VERTEX_EXT
:
1839 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1840 params
[0] = ctx
->Light
.ProvokingVertex
;
1842 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
1843 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1844 params
[0] = ctx
->Const
.QuadsFollowProvokingVertexConvention
;
1846 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1847 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1848 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1850 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1851 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1852 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1854 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1855 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1856 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1858 case GL_MAX_VARYING_FLOATS_ARB
:
1859 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1860 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1862 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1863 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1864 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1866 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1867 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1868 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1870 case GL_CURRENT_PROGRAM
:
1871 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1872 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1874 case GL_MAX_SAMPLES
:
1875 CHECK_EXT1(ARB_framebuffer_object
, "GetBooleanv");
1876 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxSamples
);
1878 case GL_VERTEX_ARRAY_BINDING_APPLE
:
1879 CHECK_EXT1(APPLE_vertex_array_object
, "GetBooleanv");
1880 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Name
);
1883 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1888 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1890 GET_CURRENT_CONTEXT(ctx
);
1891 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1897 _mesa_update_state(ctx
);
1899 if (ctx
->Driver
.GetFloatv
&&
1900 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1904 case GL_ACCUM_RED_BITS
:
1905 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1907 case GL_ACCUM_GREEN_BITS
:
1908 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1910 case GL_ACCUM_BLUE_BITS
:
1911 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1913 case GL_ACCUM_ALPHA_BITS
:
1914 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1916 case GL_ACCUM_CLEAR_VALUE
:
1917 params
[0] = ctx
->Accum
.ClearColor
[0];
1918 params
[1] = ctx
->Accum
.ClearColor
[1];
1919 params
[2] = ctx
->Accum
.ClearColor
[2];
1920 params
[3] = ctx
->Accum
.ClearColor
[3];
1923 params
[0] = ctx
->Pixel
.AlphaBias
;
1926 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1928 case GL_ALPHA_SCALE
:
1929 params
[0] = ctx
->Pixel
.AlphaScale
;
1932 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1934 case GL_ALPHA_TEST_FUNC
:
1935 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1937 case GL_ALPHA_TEST_REF
:
1938 params
[0] = ctx
->Color
.AlphaRef
;
1940 case GL_ATTRIB_STACK_DEPTH
:
1941 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1943 case GL_AUTO_NORMAL
:
1944 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1946 case GL_AUX_BUFFERS
:
1947 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1950 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1953 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1956 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1958 case GL_BLEND_SRC_RGB_EXT
:
1959 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1961 case GL_BLEND_DST_RGB_EXT
:
1962 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1964 case GL_BLEND_SRC_ALPHA_EXT
:
1965 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1967 case GL_BLEND_DST_ALPHA_EXT
:
1968 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1970 case GL_BLEND_EQUATION
:
1971 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1973 case GL_BLEND_EQUATION_ALPHA_EXT
:
1974 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1976 case GL_BLEND_COLOR_EXT
:
1977 params
[0] = ctx
->Color
.BlendColor
[0];
1978 params
[1] = ctx
->Color
.BlendColor
[1];
1979 params
[2] = ctx
->Color
.BlendColor
[2];
1980 params
[3] = ctx
->Color
.BlendColor
[3];
1983 params
[0] = ctx
->Pixel
.BlueBias
;
1986 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
1989 params
[0] = ctx
->Pixel
.BlueScale
;
1991 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
1992 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
1994 case GL_CLIP_PLANE0
:
1995 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
1997 case GL_CLIP_PLANE1
:
1998 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2000 case GL_CLIP_PLANE2
:
2001 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2003 case GL_CLIP_PLANE3
:
2004 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2006 case GL_CLIP_PLANE4
:
2007 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2009 case GL_CLIP_PLANE5
:
2010 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2012 case GL_COLOR_CLEAR_VALUE
:
2013 params
[0] = ctx
->Color
.ClearColor
[0];
2014 params
[1] = ctx
->Color
.ClearColor
[1];
2015 params
[2] = ctx
->Color
.ClearColor
[2];
2016 params
[3] = ctx
->Color
.ClearColor
[3];
2018 case GL_COLOR_MATERIAL
:
2019 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2021 case GL_COLOR_MATERIAL_FACE
:
2022 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2024 case GL_COLOR_MATERIAL_PARAMETER
:
2025 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2027 case GL_COLOR_WRITEMASK
:
2028 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2029 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2030 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2031 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2034 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2036 case GL_CULL_FACE_MODE
:
2037 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2039 case GL_CURRENT_COLOR
:
2041 FLUSH_CURRENT(ctx
, 0);
2042 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2043 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2044 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2045 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2048 case GL_CURRENT_INDEX
:
2050 FLUSH_CURRENT(ctx
, 0);
2051 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2054 case GL_CURRENT_NORMAL
:
2056 FLUSH_CURRENT(ctx
, 0);
2057 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2058 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2059 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2062 case GL_CURRENT_RASTER_COLOR
:
2063 params
[0] = ctx
->Current
.RasterColor
[0];
2064 params
[1] = ctx
->Current
.RasterColor
[1];
2065 params
[2] = ctx
->Current
.RasterColor
[2];
2066 params
[3] = ctx
->Current
.RasterColor
[3];
2068 case GL_CURRENT_RASTER_DISTANCE
:
2069 params
[0] = ctx
->Current
.RasterDistance
;
2071 case GL_CURRENT_RASTER_INDEX
:
2072 params
[0] = ctx
->Current
.RasterIndex
;
2074 case GL_CURRENT_RASTER_POSITION
:
2075 params
[0] = ctx
->Current
.RasterPos
[0];
2076 params
[1] = ctx
->Current
.RasterPos
[1];
2077 params
[2] = ctx
->Current
.RasterPos
[2];
2078 params
[3] = ctx
->Current
.RasterPos
[3];
2080 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2081 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2082 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2083 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2084 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2086 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2088 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2089 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2090 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2091 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2092 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2095 case GL_CURRENT_RASTER_POSITION_VALID
:
2096 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2098 case GL_CURRENT_TEXTURE_COORDS
:
2100 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2101 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2102 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2103 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2104 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2108 params
[0] = ctx
->Pixel
.DepthBias
;
2111 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2113 case GL_DEPTH_CLEAR_VALUE
:
2114 params
[0] = ((GLfloat
) ctx
->Depth
.Clear
);
2117 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2119 case GL_DEPTH_RANGE
:
2120 params
[0] = ctx
->Viewport
.Near
;
2121 params
[1] = ctx
->Viewport
.Far
;
2123 case GL_DEPTH_SCALE
:
2124 params
[0] = ctx
->Pixel
.DepthScale
;
2127 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2129 case GL_DEPTH_WRITEMASK
:
2130 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2133 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2135 case GL_DOUBLEBUFFER
:
2136 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2138 case GL_DRAW_BUFFER
:
2139 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2143 FLUSH_CURRENT(ctx
, 0);
2144 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
2147 case GL_FEEDBACK_BUFFER_SIZE
:
2148 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2150 case GL_FEEDBACK_BUFFER_TYPE
:
2151 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2154 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2157 params
[0] = ctx
->Fog
.Color
[0];
2158 params
[1] = ctx
->Fog
.Color
[1];
2159 params
[2] = ctx
->Fog
.Color
[2];
2160 params
[3] = ctx
->Fog
.Color
[3];
2162 case GL_FOG_DENSITY
:
2163 params
[0] = ctx
->Fog
.Density
;
2166 params
[0] = ctx
->Fog
.End
;
2169 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2172 params
[0] = ctx
->Fog
.Index
;
2175 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2178 params
[0] = ctx
->Fog
.Start
;
2181 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2184 params
[0] = ctx
->Pixel
.GreenBias
;
2187 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2189 case GL_GREEN_SCALE
:
2190 params
[0] = ctx
->Pixel
.GreenScale
;
2193 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2195 case GL_INDEX_CLEAR_VALUE
:
2196 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2199 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2201 case GL_INDEX_OFFSET
:
2202 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2204 case GL_INDEX_SHIFT
:
2205 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2207 case GL_INDEX_WRITEMASK
:
2208 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2211 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2214 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2217 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2220 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2226 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2229 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2232 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2235 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2237 case GL_LIGHT_MODEL_AMBIENT
:
2238 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2239 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2240 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2241 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2243 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2244 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2246 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2249 case GL_LIGHT_MODEL_TWO_SIDE
:
2250 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2252 case GL_LINE_SMOOTH
:
2253 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2255 case GL_LINE_SMOOTH_HINT
:
2256 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2258 case GL_LINE_STIPPLE
:
2259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2261 case GL_LINE_STIPPLE_PATTERN
:
2262 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2264 case GL_LINE_STIPPLE_REPEAT
:
2265 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2268 params
[0] = ctx
->Line
.Width
;
2270 case GL_LINE_WIDTH_GRANULARITY
:
2271 params
[0] = ctx
->Const
.LineWidthGranularity
;
2273 case GL_LINE_WIDTH_RANGE
:
2274 params
[0] = ctx
->Const
.MinLineWidthAA
;
2275 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2277 case GL_ALIASED_LINE_WIDTH_RANGE
:
2278 params
[0] = ctx
->Const
.MinLineWidth
;
2279 params
[1] = ctx
->Const
.MaxLineWidth
;
2282 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2285 params
[0] = (GLfloat
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
2290 if (!ctx
->CompileFlag
)
2292 else if (ctx
->ExecuteFlag
)
2293 mode
= GL_COMPILE_AND_EXECUTE
;
2296 params
[0] = ENUM_TO_FLOAT(mode
);
2299 case GL_INDEX_LOGIC_OP
:
2300 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2302 case GL_COLOR_LOGIC_OP
:
2303 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2305 case GL_LOGIC_OP_MODE
:
2306 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2308 case GL_MAP1_COLOR_4
:
2309 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2311 case GL_MAP1_GRID_DOMAIN
:
2312 params
[0] = ctx
->Eval
.MapGrid1u1
;
2313 params
[1] = ctx
->Eval
.MapGrid1u2
;
2315 case GL_MAP1_GRID_SEGMENTS
:
2316 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2319 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2321 case GL_MAP1_NORMAL
:
2322 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2324 case GL_MAP1_TEXTURE_COORD_1
:
2325 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2327 case GL_MAP1_TEXTURE_COORD_2
:
2328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2330 case GL_MAP1_TEXTURE_COORD_3
:
2331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2333 case GL_MAP1_TEXTURE_COORD_4
:
2334 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2336 case GL_MAP1_VERTEX_3
:
2337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2339 case GL_MAP1_VERTEX_4
:
2340 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2342 case GL_MAP2_COLOR_4
:
2343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2345 case GL_MAP2_GRID_DOMAIN
:
2346 params
[0] = ctx
->Eval
.MapGrid2u1
;
2347 params
[1] = ctx
->Eval
.MapGrid2u2
;
2348 params
[2] = ctx
->Eval
.MapGrid2v1
;
2349 params
[3] = ctx
->Eval
.MapGrid2v2
;
2351 case GL_MAP2_GRID_SEGMENTS
:
2352 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2353 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2356 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2358 case GL_MAP2_NORMAL
:
2359 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2361 case GL_MAP2_TEXTURE_COORD_1
:
2362 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2364 case GL_MAP2_TEXTURE_COORD_2
:
2365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2367 case GL_MAP2_TEXTURE_COORD_3
:
2368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2370 case GL_MAP2_TEXTURE_COORD_4
:
2371 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2373 case GL_MAP2_VERTEX_3
:
2374 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2376 case GL_MAP2_VERTEX_4
:
2377 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2380 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2382 case GL_MAP_STENCIL
:
2383 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2385 case GL_MATRIX_MODE
:
2386 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2388 case GL_MAX_ATTRIB_STACK_DEPTH
:
2389 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2391 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2392 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2394 case GL_MAX_CLIP_PLANES
:
2395 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2397 case GL_MAX_ELEMENTS_VERTICES
:
2398 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2400 case GL_MAX_ELEMENTS_INDICES
:
2401 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2403 case GL_MAX_EVAL_ORDER
:
2404 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2407 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2409 case GL_MAX_LIST_NESTING
:
2410 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2412 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2413 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2415 case GL_MAX_NAME_STACK_DEPTH
:
2416 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2418 case GL_MAX_PIXEL_MAP_TABLE
:
2419 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2421 case GL_MAX_PROJECTION_STACK_DEPTH
:
2422 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2424 case GL_MAX_TEXTURE_SIZE
:
2425 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2427 case GL_MAX_3D_TEXTURE_SIZE
:
2428 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2430 case GL_MAX_TEXTURE_STACK_DEPTH
:
2431 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2433 case GL_MAX_VIEWPORT_DIMS
:
2434 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2435 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2437 case GL_MODELVIEW_MATRIX
:
2439 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2440 params
[0] = matrix
[0];
2441 params
[1] = matrix
[1];
2442 params
[2] = matrix
[2];
2443 params
[3] = matrix
[3];
2444 params
[4] = matrix
[4];
2445 params
[5] = matrix
[5];
2446 params
[6] = matrix
[6];
2447 params
[7] = matrix
[7];
2448 params
[8] = matrix
[8];
2449 params
[9] = matrix
[9];
2450 params
[10] = matrix
[10];
2451 params
[11] = matrix
[11];
2452 params
[12] = matrix
[12];
2453 params
[13] = matrix
[13];
2454 params
[14] = matrix
[14];
2455 params
[15] = matrix
[15];
2458 case GL_MODELVIEW_STACK_DEPTH
:
2459 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2461 case GL_NAME_STACK_DEPTH
:
2462 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2465 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2467 case GL_PACK_ALIGNMENT
:
2468 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2470 case GL_PACK_LSB_FIRST
:
2471 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2473 case GL_PACK_ROW_LENGTH
:
2474 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2476 case GL_PACK_SKIP_PIXELS
:
2477 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2479 case GL_PACK_SKIP_ROWS
:
2480 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2482 case GL_PACK_SWAP_BYTES
:
2483 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2485 case GL_PACK_SKIP_IMAGES_EXT
:
2486 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2488 case GL_PACK_IMAGE_HEIGHT_EXT
:
2489 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2491 case GL_PACK_INVERT_MESA
:
2492 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2494 case GL_PERSPECTIVE_CORRECTION_HINT
:
2495 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2497 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2498 params
[0] = (GLfloat
)(ctx
->PixelMaps
.AtoA
.Size
);
2500 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2501 params
[0] = (GLfloat
)(ctx
->PixelMaps
.BtoB
.Size
);
2503 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2504 params
[0] = (GLfloat
)(ctx
->PixelMaps
.GtoG
.Size
);
2506 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2507 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoA
.Size
);
2509 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2510 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoB
.Size
);
2512 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2513 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoG
.Size
);
2515 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2516 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoI
.Size
);
2518 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2519 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoR
.Size
);
2521 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2522 params
[0] = (GLfloat
)(ctx
->PixelMaps
.RtoR
.Size
);
2524 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2525 params
[0] = (GLfloat
)(ctx
->PixelMaps
.StoS
.Size
);
2528 params
[0] = ctx
->Point
.Size
;
2530 case GL_POINT_SIZE_GRANULARITY
:
2531 params
[0] = ctx
->Const
.PointSizeGranularity
;
2533 case GL_POINT_SIZE_RANGE
:
2534 params
[0] = ctx
->Const
.MinPointSizeAA
;
2535 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2537 case GL_ALIASED_POINT_SIZE_RANGE
:
2538 params
[0] = ctx
->Const
.MinPointSize
;
2539 params
[1] = ctx
->Const
.MaxPointSize
;
2541 case GL_POINT_SMOOTH
:
2542 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2544 case GL_POINT_SMOOTH_HINT
:
2545 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2547 case GL_POINT_SIZE_MIN_EXT
:
2548 params
[0] = ctx
->Point
.MinSize
;
2550 case GL_POINT_SIZE_MAX_EXT
:
2551 params
[0] = ctx
->Point
.MaxSize
;
2553 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2554 params
[0] = ctx
->Point
.Threshold
;
2556 case GL_DISTANCE_ATTENUATION_EXT
:
2557 params
[0] = ctx
->Point
.Params
[0];
2558 params
[1] = ctx
->Point
.Params
[1];
2559 params
[2] = ctx
->Point
.Params
[2];
2561 case GL_POLYGON_MODE
:
2562 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2563 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2565 case GL_POLYGON_OFFSET_BIAS_EXT
:
2566 params
[0] = ctx
->Polygon
.OffsetUnits
;
2568 case GL_POLYGON_OFFSET_FACTOR
:
2569 params
[0] = ctx
->Polygon
.OffsetFactor
;
2571 case GL_POLYGON_OFFSET_UNITS
:
2572 params
[0] = ctx
->Polygon
.OffsetUnits
;
2574 case GL_POLYGON_OFFSET_POINT
:
2575 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetPoint
);
2577 case GL_POLYGON_OFFSET_LINE
:
2578 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetLine
);
2580 case GL_POLYGON_OFFSET_FILL
:
2581 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetFill
);
2583 case GL_POLYGON_SMOOTH
:
2584 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2586 case GL_POLYGON_SMOOTH_HINT
:
2587 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2589 case GL_POLYGON_STIPPLE
:
2590 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2592 case GL_PROJECTION_MATRIX
:
2594 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2595 params
[0] = matrix
[0];
2596 params
[1] = matrix
[1];
2597 params
[2] = matrix
[2];
2598 params
[3] = matrix
[3];
2599 params
[4] = matrix
[4];
2600 params
[5] = matrix
[5];
2601 params
[6] = matrix
[6];
2602 params
[7] = matrix
[7];
2603 params
[8] = matrix
[8];
2604 params
[9] = matrix
[9];
2605 params
[10] = matrix
[10];
2606 params
[11] = matrix
[11];
2607 params
[12] = matrix
[12];
2608 params
[13] = matrix
[13];
2609 params
[14] = matrix
[14];
2610 params
[15] = matrix
[15];
2613 case GL_PROJECTION_STACK_DEPTH
:
2614 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2616 case GL_READ_BUFFER
:
2617 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2620 params
[0] = ctx
->Pixel
.RedBias
;
2623 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.redBits
);
2626 params
[0] = ctx
->Pixel
.RedScale
;
2628 case GL_RENDER_MODE
:
2629 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2631 case GL_RESCALE_NORMAL
:
2632 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2635 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2637 case GL_SCISSOR_BOX
:
2638 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2639 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2640 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2641 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2643 case GL_SCISSOR_TEST
:
2644 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2646 case GL_SELECTION_BUFFER_SIZE
:
2647 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2649 case GL_SHADE_MODEL
:
2650 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2652 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2653 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2655 case GL_STENCIL_BITS
:
2656 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2658 case GL_STENCIL_CLEAR_VALUE
:
2659 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2661 case GL_STENCIL_FAIL
:
2662 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2664 case GL_STENCIL_FUNC
:
2665 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2667 case GL_STENCIL_PASS_DEPTH_FAIL
:
2668 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2670 case GL_STENCIL_PASS_DEPTH_PASS
:
2671 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2673 case GL_STENCIL_REF
:
2674 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2676 case GL_STENCIL_TEST
:
2677 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2679 case GL_STENCIL_VALUE_MASK
:
2680 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2682 case GL_STENCIL_WRITEMASK
:
2683 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2686 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2688 case GL_SUBPIXEL_BITS
:
2689 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2692 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2695 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2698 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2700 case GL_TEXTURE_1D_ARRAY_EXT
:
2701 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2702 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
2704 case GL_TEXTURE_2D_ARRAY_EXT
:
2705 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2706 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
2708 case GL_TEXTURE_BINDING_1D
:
2709 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
2711 case GL_TEXTURE_BINDING_2D
:
2712 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
2714 case GL_TEXTURE_BINDING_3D
:
2715 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
2717 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
2718 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2719 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
2721 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
2722 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2723 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
2725 case GL_TEXTURE_GEN_S
:
2726 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2728 case GL_TEXTURE_GEN_T
:
2729 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2731 case GL_TEXTURE_GEN_R
:
2732 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2734 case GL_TEXTURE_GEN_Q
:
2735 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2737 case GL_TEXTURE_MATRIX
:
2739 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2740 params
[0] = matrix
[0];
2741 params
[1] = matrix
[1];
2742 params
[2] = matrix
[2];
2743 params
[3] = matrix
[3];
2744 params
[4] = matrix
[4];
2745 params
[5] = matrix
[5];
2746 params
[6] = matrix
[6];
2747 params
[7] = matrix
[7];
2748 params
[8] = matrix
[8];
2749 params
[9] = matrix
[9];
2750 params
[10] = matrix
[10];
2751 params
[11] = matrix
[11];
2752 params
[12] = matrix
[12];
2753 params
[13] = matrix
[13];
2754 params
[14] = matrix
[14];
2755 params
[15] = matrix
[15];
2758 case GL_TEXTURE_STACK_DEPTH
:
2759 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2761 case GL_UNPACK_ALIGNMENT
:
2762 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2764 case GL_UNPACK_LSB_FIRST
:
2765 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2767 case GL_UNPACK_ROW_LENGTH
:
2768 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2770 case GL_UNPACK_SKIP_PIXELS
:
2771 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2773 case GL_UNPACK_SKIP_ROWS
:
2774 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2776 case GL_UNPACK_SWAP_BYTES
:
2777 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2779 case GL_UNPACK_SKIP_IMAGES_EXT
:
2780 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2782 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2783 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2785 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2786 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2789 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2790 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2791 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2792 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2795 params
[0] = ctx
->Pixel
.ZoomX
;
2798 params
[0] = ctx
->Pixel
.ZoomY
;
2800 case GL_VERTEX_ARRAY
:
2801 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
2803 case GL_VERTEX_ARRAY_SIZE
:
2804 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
2806 case GL_VERTEX_ARRAY_TYPE
:
2807 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
2809 case GL_VERTEX_ARRAY_STRIDE
:
2810 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
2812 case GL_VERTEX_ARRAY_COUNT_EXT
:
2813 params
[0] = (GLfloat
)(0);
2815 case GL_NORMAL_ARRAY
:
2816 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
2818 case GL_NORMAL_ARRAY_TYPE
:
2819 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Type
);
2821 case GL_NORMAL_ARRAY_STRIDE
:
2822 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
2824 case GL_NORMAL_ARRAY_COUNT_EXT
:
2825 params
[0] = (GLfloat
)(0);
2827 case GL_COLOR_ARRAY
:
2828 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
2830 case GL_COLOR_ARRAY_SIZE
:
2831 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Size
);
2833 case GL_COLOR_ARRAY_TYPE
:
2834 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Type
);
2836 case GL_COLOR_ARRAY_STRIDE
:
2837 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
2839 case GL_COLOR_ARRAY_COUNT_EXT
:
2840 params
[0] = (GLfloat
)(0);
2842 case GL_INDEX_ARRAY
:
2843 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
2845 case GL_INDEX_ARRAY_TYPE
:
2846 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Type
);
2848 case GL_INDEX_ARRAY_STRIDE
:
2849 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
2851 case GL_INDEX_ARRAY_COUNT_EXT
:
2852 params
[0] = (GLfloat
)(0);
2854 case GL_TEXTURE_COORD_ARRAY
:
2855 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2857 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2858 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2860 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2861 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2863 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2864 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2866 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2867 params
[0] = (GLfloat
)(0);
2869 case GL_EDGE_FLAG_ARRAY
:
2870 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
2872 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2873 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
2875 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2876 params
[0] = (GLfloat
)(0);
2878 case GL_MAX_TEXTURE_UNITS_ARB
:
2879 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2880 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2882 case GL_ACTIVE_TEXTURE_ARB
:
2883 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2884 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2886 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2887 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2888 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2890 case GL_TEXTURE_CUBE_MAP_ARB
:
2891 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2892 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2894 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2895 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2896 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
2898 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2899 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2900 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2902 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2903 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2905 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2906 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2908 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2911 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2913 for (i
= 0; i
< n
; i
++)
2914 params
[i
] = ENUM_TO_FLOAT(formats
[i
]);
2917 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2918 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2919 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2921 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2922 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2923 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2925 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2927 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2928 params
[0] = matrix
[0];
2929 params
[1] = matrix
[4];
2930 params
[2] = matrix
[8];
2931 params
[3] = matrix
[12];
2932 params
[4] = matrix
[1];
2933 params
[5] = matrix
[5];
2934 params
[6] = matrix
[9];
2935 params
[7] = matrix
[13];
2936 params
[8] = matrix
[2];
2937 params
[9] = matrix
[6];
2938 params
[10] = matrix
[10];
2939 params
[11] = matrix
[14];
2940 params
[12] = matrix
[3];
2941 params
[13] = matrix
[7];
2942 params
[14] = matrix
[11];
2943 params
[15] = matrix
[15];
2946 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2948 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2949 params
[0] = matrix
[0];
2950 params
[1] = matrix
[4];
2951 params
[2] = matrix
[8];
2952 params
[3] = matrix
[12];
2953 params
[4] = matrix
[1];
2954 params
[5] = matrix
[5];
2955 params
[6] = matrix
[9];
2956 params
[7] = matrix
[13];
2957 params
[8] = matrix
[2];
2958 params
[9] = matrix
[6];
2959 params
[10] = matrix
[10];
2960 params
[11] = matrix
[14];
2961 params
[12] = matrix
[3];
2962 params
[13] = matrix
[7];
2963 params
[14] = matrix
[11];
2964 params
[15] = matrix
[15];
2967 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2969 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2970 params
[0] = matrix
[0];
2971 params
[1] = matrix
[4];
2972 params
[2] = matrix
[8];
2973 params
[3] = matrix
[12];
2974 params
[4] = matrix
[1];
2975 params
[5] = matrix
[5];
2976 params
[6] = matrix
[9];
2977 params
[7] = matrix
[13];
2978 params
[8] = matrix
[2];
2979 params
[9] = matrix
[6];
2980 params
[10] = matrix
[10];
2981 params
[11] = matrix
[14];
2982 params
[12] = matrix
[3];
2983 params
[13] = matrix
[7];
2984 params
[14] = matrix
[11];
2985 params
[15] = matrix
[15];
2988 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2990 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2991 params
[0] = matrix
[0];
2992 params
[1] = matrix
[4];
2993 params
[2] = matrix
[8];
2994 params
[3] = matrix
[12];
2995 params
[4] = matrix
[1];
2996 params
[5] = matrix
[5];
2997 params
[6] = matrix
[9];
2998 params
[7] = matrix
[13];
2999 params
[8] = matrix
[2];
3000 params
[9] = matrix
[6];
3001 params
[10] = matrix
[10];
3002 params
[11] = matrix
[14];
3003 params
[12] = matrix
[3];
3004 params
[13] = matrix
[7];
3005 params
[14] = matrix
[11];
3006 params
[15] = matrix
[15];
3009 case GL_COLOR_MATRIX_SGI
:
3011 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3012 params
[0] = matrix
[0];
3013 params
[1] = matrix
[1];
3014 params
[2] = matrix
[2];
3015 params
[3] = matrix
[3];
3016 params
[4] = matrix
[4];
3017 params
[5] = matrix
[5];
3018 params
[6] = matrix
[6];
3019 params
[7] = matrix
[7];
3020 params
[8] = matrix
[8];
3021 params
[9] = matrix
[9];
3022 params
[10] = matrix
[10];
3023 params
[11] = matrix
[11];
3024 params
[12] = matrix
[12];
3025 params
[13] = matrix
[13];
3026 params
[14] = matrix
[14];
3027 params
[15] = matrix
[15];
3030 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3031 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3033 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3034 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3036 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3037 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3039 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3040 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3042 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3043 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3045 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3046 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3048 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3049 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3051 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3052 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3054 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3055 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3057 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3058 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3060 case GL_CONVOLUTION_1D_EXT
:
3061 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3062 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3064 case GL_CONVOLUTION_2D_EXT
:
3065 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3066 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3068 case GL_SEPARABLE_2D_EXT
:
3069 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3070 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3072 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3073 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3074 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3076 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3077 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3078 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3080 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3081 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3082 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3084 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3085 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3086 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3088 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3089 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3090 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3092 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3093 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3094 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3096 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3097 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3098 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3100 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3101 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3102 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3105 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3106 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3109 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3110 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3112 case GL_COLOR_TABLE_SGI
:
3113 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3114 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3116 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3117 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3118 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3120 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3121 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3122 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3124 case GL_TEXTURE_COLOR_TABLE_SGI
:
3125 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3126 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3128 case GL_COLOR_SUM_EXT
:
3129 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3130 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3132 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3133 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3135 FLUSH_CURRENT(ctx
, 0);
3136 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3137 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3138 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3139 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3142 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3143 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3144 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3146 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3147 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3148 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3150 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3151 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3152 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3154 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3155 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3156 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3158 case GL_CURRENT_FOG_COORDINATE_EXT
:
3159 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3161 FLUSH_CURRENT(ctx
, 0);
3162 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3165 case GL_FOG_COORDINATE_ARRAY_EXT
:
3166 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3167 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3169 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3170 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3171 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3173 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3174 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3175 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3177 case GL_FOG_COORDINATE_SOURCE_EXT
:
3178 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3179 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3181 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3182 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3183 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3185 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3186 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3187 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3189 case GL_MULTISAMPLE_ARB
:
3190 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3192 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3193 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3195 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3196 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3198 case GL_SAMPLE_COVERAGE_ARB
:
3199 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3201 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3202 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3204 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3205 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3207 case GL_SAMPLE_BUFFERS_ARB
:
3208 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3210 case GL_SAMPLES_ARB
:
3211 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3213 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3214 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3215 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3217 case GL_POINT_SPRITE_NV
:
3218 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3219 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3221 case GL_POINT_SPRITE_R_MODE_NV
:
3222 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3223 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3225 case GL_POINT_SPRITE_COORD_ORIGIN
:
3226 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3227 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3229 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3230 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3231 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3233 case GL_VERTEX_PROGRAM_BINDING_NV
:
3234 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3235 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3237 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3238 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3239 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3241 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3242 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3243 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3245 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3246 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3249 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3250 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3251 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3253 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3254 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3255 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3257 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3258 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3261 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3262 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3265 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3266 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3267 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3269 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3270 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3271 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3273 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3274 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3277 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3278 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3279 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3281 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3282 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3283 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3285 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3286 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3287 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3289 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3290 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3291 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3293 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3294 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3295 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3297 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3298 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3299 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3301 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3302 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3303 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3305 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3306 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3307 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3309 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3310 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3311 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3313 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3314 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3315 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3317 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3318 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3319 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3321 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3322 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3323 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3325 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3326 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3327 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3329 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3330 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3333 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3334 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3335 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3337 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3338 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3339 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3341 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3342 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3345 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3346 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3347 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3349 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3350 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3351 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3353 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3354 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3355 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3357 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3358 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3359 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3361 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3362 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3363 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3365 case GL_FRAGMENT_PROGRAM_NV
:
3366 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3367 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3369 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3370 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3371 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3373 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3374 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3375 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3377 case GL_TEXTURE_RECTANGLE_NV
:
3378 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3379 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3381 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3382 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3383 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
3385 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3386 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3387 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3389 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3390 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3391 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3393 case GL_ACTIVE_STENCIL_FACE_EXT
:
3394 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3395 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3397 case GL_MAX_SHININESS_NV
:
3398 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3399 params
[0] = ctx
->Const
.MaxShininess
;
3401 case GL_MAX_SPOT_EXPONENT_NV
:
3402 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3403 params
[0] = ctx
->Const
.MaxSpotExponent
;
3405 case GL_ARRAY_BUFFER_BINDING_ARB
:
3406 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3408 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3409 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3411 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3412 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3414 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3415 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3417 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3418 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3420 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3421 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3423 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3424 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3426 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3427 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3429 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3430 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3432 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3433 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3435 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3436 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3437 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3439 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3440 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3441 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3443 case GL_VERTEX_PROGRAM_ARB
:
3444 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3445 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3447 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3448 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3449 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3451 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3452 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3453 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3455 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3456 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3457 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3459 case GL_MAX_PROGRAM_MATRICES_ARB
:
3460 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3461 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3463 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3464 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3465 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3467 case GL_CURRENT_MATRIX_ARB
:
3468 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3470 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3471 params
[0] = matrix
[0];
3472 params
[1] = matrix
[1];
3473 params
[2] = matrix
[2];
3474 params
[3] = matrix
[3];
3475 params
[4] = matrix
[4];
3476 params
[5] = matrix
[5];
3477 params
[6] = matrix
[6];
3478 params
[7] = matrix
[7];
3479 params
[8] = matrix
[8];
3480 params
[9] = matrix
[9];
3481 params
[10] = matrix
[10];
3482 params
[11] = matrix
[11];
3483 params
[12] = matrix
[12];
3484 params
[13] = matrix
[13];
3485 params
[14] = matrix
[14];
3486 params
[15] = matrix
[15];
3489 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3490 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3492 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3493 params
[0] = matrix
[0];
3494 params
[1] = matrix
[4];
3495 params
[2] = matrix
[8];
3496 params
[3] = matrix
[12];
3497 params
[4] = matrix
[1];
3498 params
[5] = matrix
[5];
3499 params
[6] = matrix
[9];
3500 params
[7] = matrix
[13];
3501 params
[8] = matrix
[2];
3502 params
[9] = matrix
[6];
3503 params
[10] = matrix
[10];
3504 params
[11] = matrix
[14];
3505 params
[12] = matrix
[3];
3506 params
[13] = matrix
[7];
3507 params
[14] = matrix
[11];
3508 params
[15] = matrix
[15];
3511 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3512 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3513 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3515 case GL_PROGRAM_ERROR_POSITION_ARB
:
3516 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3517 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3519 case GL_FRAGMENT_PROGRAM_ARB
:
3520 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3521 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3523 case GL_MAX_TEXTURE_COORDS_ARB
:
3524 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3525 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3527 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3528 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3529 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3531 case GL_DEPTH_BOUNDS_TEST_EXT
:
3532 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3533 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3535 case GL_DEPTH_BOUNDS_EXT
:
3536 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3537 params
[0] = ctx
->Depth
.BoundsMin
;
3538 params
[1] = ctx
->Depth
.BoundsMax
;
3540 case GL_MAX_DRAW_BUFFERS_ARB
:
3541 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3543 case GL_DRAW_BUFFER0_ARB
:
3544 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3546 case GL_DRAW_BUFFER1_ARB
:
3549 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3550 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3553 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3554 params
[0] = ENUM_TO_FLOAT(buffer
);
3557 case GL_DRAW_BUFFER2_ARB
:
3560 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3561 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3564 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3565 params
[0] = ENUM_TO_FLOAT(buffer
);
3568 case GL_DRAW_BUFFER3_ARB
:
3571 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3572 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3575 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3576 params
[0] = ENUM_TO_FLOAT(buffer
);
3579 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3580 CHECK_EXT1(OES_read_format
, "GetFloatv");
3581 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3583 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3584 CHECK_EXT1(OES_read_format
, "GetFloatv");
3585 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3587 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3588 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3589 params
[0] = (GLfloat
)(6);
3591 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3592 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3593 params
[0] = (GLfloat
)(8);
3595 case GL_NUM_PASSES_ATI
:
3596 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3597 params
[0] = (GLfloat
)(2);
3599 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3600 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3601 params
[0] = (GLfloat
)(8);
3603 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3604 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3605 params
[0] = (GLfloat
)(16);
3607 case GL_COLOR_ALPHA_PAIRING_ATI
:
3608 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3609 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3611 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3612 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3613 params
[0] = (GLfloat
)(3);
3615 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3616 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3617 params
[0] = (GLfloat
)(3);
3619 case GL_STENCIL_BACK_FUNC
:
3620 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3622 case GL_STENCIL_BACK_VALUE_MASK
:
3623 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3625 case GL_STENCIL_BACK_WRITEMASK
:
3626 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3628 case GL_STENCIL_BACK_REF
:
3629 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3631 case GL_STENCIL_BACK_FAIL
:
3632 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3634 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3635 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3637 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3638 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3640 case GL_FRAMEBUFFER_BINDING_EXT
:
3641 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3642 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3644 case GL_RENDERBUFFER_BINDING_EXT
:
3645 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3646 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3648 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3649 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3650 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3652 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3653 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3654 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3656 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3657 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3658 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3660 case GL_PROVOKING_VERTEX_EXT
:
3661 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3662 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ProvokingVertex
);
3664 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
3665 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3666 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
3668 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3669 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3670 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3672 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3673 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3674 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3676 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3677 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3678 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3680 case GL_MAX_VARYING_FLOATS_ARB
:
3681 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3682 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3684 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3685 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3686 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3688 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3689 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3690 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3692 case GL_CURRENT_PROGRAM
:
3693 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3694 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3696 case GL_MAX_SAMPLES
:
3697 CHECK_EXT1(ARB_framebuffer_object
, "GetFloatv");
3698 params
[0] = (GLfloat
)(ctx
->Const
.MaxSamples
);
3700 case GL_VERTEX_ARRAY_BINDING_APPLE
:
3701 CHECK_EXT1(APPLE_vertex_array_object
, "GetFloatv");
3702 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Name
);
3705 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3710 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3712 GET_CURRENT_CONTEXT(ctx
);
3713 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3719 _mesa_update_state(ctx
);
3721 if (ctx
->Driver
.GetIntegerv
&&
3722 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3726 case GL_ACCUM_RED_BITS
:
3727 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3729 case GL_ACCUM_GREEN_BITS
:
3730 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3732 case GL_ACCUM_BLUE_BITS
:
3733 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3735 case GL_ACCUM_ALPHA_BITS
:
3736 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3738 case GL_ACCUM_CLEAR_VALUE
:
3739 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3740 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3741 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3742 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3745 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3748 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3750 case GL_ALPHA_SCALE
:
3751 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3754 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3756 case GL_ALPHA_TEST_FUNC
:
3757 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3759 case GL_ALPHA_TEST_REF
:
3760 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3762 case GL_ATTRIB_STACK_DEPTH
:
3763 params
[0] = ctx
->AttribStackDepth
;
3765 case GL_AUTO_NORMAL
:
3766 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3768 case GL_AUX_BUFFERS
:
3769 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3772 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3775 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3778 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3780 case GL_BLEND_SRC_RGB_EXT
:
3781 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3783 case GL_BLEND_DST_RGB_EXT
:
3784 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3786 case GL_BLEND_SRC_ALPHA_EXT
:
3787 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3789 case GL_BLEND_DST_ALPHA_EXT
:
3790 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3792 case GL_BLEND_EQUATION
:
3793 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3795 case GL_BLEND_EQUATION_ALPHA_EXT
:
3796 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3798 case GL_BLEND_COLOR_EXT
:
3799 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3800 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3801 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3802 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3805 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3808 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3811 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3813 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3814 params
[0] = ctx
->ClientAttribStackDepth
;
3816 case GL_CLIP_PLANE0
:
3817 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3819 case GL_CLIP_PLANE1
:
3820 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3822 case GL_CLIP_PLANE2
:
3823 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3825 case GL_CLIP_PLANE3
:
3826 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3828 case GL_CLIP_PLANE4
:
3829 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3831 case GL_CLIP_PLANE5
:
3832 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3834 case GL_COLOR_CLEAR_VALUE
:
3835 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3836 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3837 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3838 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3840 case GL_COLOR_MATERIAL
:
3841 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3843 case GL_COLOR_MATERIAL_FACE
:
3844 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3846 case GL_COLOR_MATERIAL_PARAMETER
:
3847 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3849 case GL_COLOR_WRITEMASK
:
3850 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3851 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3852 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3853 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3856 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3858 case GL_CULL_FACE_MODE
:
3859 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3861 case GL_CURRENT_COLOR
:
3863 FLUSH_CURRENT(ctx
, 0);
3864 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3865 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3866 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3867 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3870 case GL_CURRENT_INDEX
:
3872 FLUSH_CURRENT(ctx
, 0);
3873 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3876 case GL_CURRENT_NORMAL
:
3878 FLUSH_CURRENT(ctx
, 0);
3879 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3880 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3881 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3884 case GL_CURRENT_RASTER_COLOR
:
3885 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3886 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3887 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3888 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3890 case GL_CURRENT_RASTER_DISTANCE
:
3891 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3893 case GL_CURRENT_RASTER_INDEX
:
3894 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3896 case GL_CURRENT_RASTER_POSITION
:
3897 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3898 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3899 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3900 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3902 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
3903 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
3904 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
3905 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
3906 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
3908 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3910 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3911 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3912 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3913 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3914 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3917 case GL_CURRENT_RASTER_POSITION_VALID
:
3918 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3920 case GL_CURRENT_TEXTURE_COORDS
:
3922 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3923 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3924 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3925 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3926 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3930 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3933 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3935 case GL_DEPTH_CLEAR_VALUE
:
3936 params
[0] = FLOAT_TO_INT(((GLfloat
) ctx
->Depth
.Clear
));
3939 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3941 case GL_DEPTH_RANGE
:
3942 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3943 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3945 case GL_DEPTH_SCALE
:
3946 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3949 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3951 case GL_DEPTH_WRITEMASK
:
3952 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3955 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3957 case GL_DOUBLEBUFFER
:
3958 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
3960 case GL_DRAW_BUFFER
:
3961 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3965 FLUSH_CURRENT(ctx
, 0);
3966 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
3969 case GL_FEEDBACK_BUFFER_SIZE
:
3970 params
[0] = ctx
->Feedback
.BufferSize
;
3972 case GL_FEEDBACK_BUFFER_TYPE
:
3973 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
3976 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
3979 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
3980 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
3981 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
3982 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
3984 case GL_FOG_DENSITY
:
3985 params
[0] = IROUND(ctx
->Fog
.Density
);
3988 params
[0] = IROUND(ctx
->Fog
.End
);
3991 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
3994 params
[0] = IROUND(ctx
->Fog
.Index
);
3997 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4000 params
[0] = IROUND(ctx
->Fog
.Start
);
4003 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4006 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4009 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4011 case GL_GREEN_SCALE
:
4012 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4015 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4017 case GL_INDEX_CLEAR_VALUE
:
4018 params
[0] = ctx
->Color
.ClearIndex
;
4021 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4023 case GL_INDEX_OFFSET
:
4024 params
[0] = ctx
->Pixel
.IndexOffset
;
4026 case GL_INDEX_SHIFT
:
4027 params
[0] = ctx
->Pixel
.IndexShift
;
4029 case GL_INDEX_WRITEMASK
:
4030 params
[0] = ctx
->Color
.IndexMask
;
4033 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4036 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4039 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4042 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4045 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4048 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4051 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4054 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4057 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4059 case GL_LIGHT_MODEL_AMBIENT
:
4060 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4061 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4062 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4063 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4065 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4066 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4068 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4069 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4071 case GL_LIGHT_MODEL_TWO_SIDE
:
4072 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4074 case GL_LINE_SMOOTH
:
4075 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4077 case GL_LINE_SMOOTH_HINT
:
4078 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4080 case GL_LINE_STIPPLE
:
4081 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4083 case GL_LINE_STIPPLE_PATTERN
:
4084 params
[0] = ctx
->Line
.StipplePattern
;
4086 case GL_LINE_STIPPLE_REPEAT
:
4087 params
[0] = ctx
->Line
.StippleFactor
;
4090 params
[0] = IROUND(ctx
->Line
.Width
);
4092 case GL_LINE_WIDTH_GRANULARITY
:
4093 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4095 case GL_LINE_WIDTH_RANGE
:
4096 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4097 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4099 case GL_ALIASED_LINE_WIDTH_RANGE
:
4100 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4101 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4104 params
[0] = ctx
->List
.ListBase
;
4107 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
4112 if (!ctx
->CompileFlag
)
4114 else if (ctx
->ExecuteFlag
)
4115 mode
= GL_COMPILE_AND_EXECUTE
;
4118 params
[0] = ENUM_TO_INT(mode
);
4121 case GL_INDEX_LOGIC_OP
:
4122 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4124 case GL_COLOR_LOGIC_OP
:
4125 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4127 case GL_LOGIC_OP_MODE
:
4128 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4130 case GL_MAP1_COLOR_4
:
4131 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4133 case GL_MAP1_GRID_DOMAIN
:
4134 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4135 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4137 case GL_MAP1_GRID_SEGMENTS
:
4138 params
[0] = ctx
->Eval
.MapGrid1un
;
4141 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4143 case GL_MAP1_NORMAL
:
4144 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4146 case GL_MAP1_TEXTURE_COORD_1
:
4147 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4149 case GL_MAP1_TEXTURE_COORD_2
:
4150 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4152 case GL_MAP1_TEXTURE_COORD_3
:
4153 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4155 case GL_MAP1_TEXTURE_COORD_4
:
4156 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4158 case GL_MAP1_VERTEX_3
:
4159 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4161 case GL_MAP1_VERTEX_4
:
4162 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4164 case GL_MAP2_COLOR_4
:
4165 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4167 case GL_MAP2_GRID_DOMAIN
:
4168 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4169 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4170 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4171 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4173 case GL_MAP2_GRID_SEGMENTS
:
4174 params
[0] = ctx
->Eval
.MapGrid2un
;
4175 params
[1] = ctx
->Eval
.MapGrid2vn
;
4178 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4180 case GL_MAP2_NORMAL
:
4181 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4183 case GL_MAP2_TEXTURE_COORD_1
:
4184 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4186 case GL_MAP2_TEXTURE_COORD_2
:
4187 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4189 case GL_MAP2_TEXTURE_COORD_3
:
4190 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4192 case GL_MAP2_TEXTURE_COORD_4
:
4193 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4195 case GL_MAP2_VERTEX_3
:
4196 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4198 case GL_MAP2_VERTEX_4
:
4199 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4202 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4204 case GL_MAP_STENCIL
:
4205 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4207 case GL_MATRIX_MODE
:
4208 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4210 case GL_MAX_ATTRIB_STACK_DEPTH
:
4211 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4213 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4214 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4216 case GL_MAX_CLIP_PLANES
:
4217 params
[0] = ctx
->Const
.MaxClipPlanes
;
4219 case GL_MAX_ELEMENTS_VERTICES
:
4220 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4222 case GL_MAX_ELEMENTS_INDICES
:
4223 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4225 case GL_MAX_EVAL_ORDER
:
4226 params
[0] = MAX_EVAL_ORDER
;
4229 params
[0] = ctx
->Const
.MaxLights
;
4231 case GL_MAX_LIST_NESTING
:
4232 params
[0] = MAX_LIST_NESTING
;
4234 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4235 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4237 case GL_MAX_NAME_STACK_DEPTH
:
4238 params
[0] = MAX_NAME_STACK_DEPTH
;
4240 case GL_MAX_PIXEL_MAP_TABLE
:
4241 params
[0] = MAX_PIXEL_MAP_TABLE
;
4243 case GL_MAX_PROJECTION_STACK_DEPTH
:
4244 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4246 case GL_MAX_TEXTURE_SIZE
:
4247 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4249 case GL_MAX_3D_TEXTURE_SIZE
:
4250 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4252 case GL_MAX_TEXTURE_STACK_DEPTH
:
4253 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4255 case GL_MAX_VIEWPORT_DIMS
:
4256 params
[0] = ctx
->Const
.MaxViewportWidth
;
4257 params
[1] = ctx
->Const
.MaxViewportHeight
;
4259 case GL_MODELVIEW_MATRIX
:
4261 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4262 params
[0] = IROUND(matrix
[0]);
4263 params
[1] = IROUND(matrix
[1]);
4264 params
[2] = IROUND(matrix
[2]);
4265 params
[3] = IROUND(matrix
[3]);
4266 params
[4] = IROUND(matrix
[4]);
4267 params
[5] = IROUND(matrix
[5]);
4268 params
[6] = IROUND(matrix
[6]);
4269 params
[7] = IROUND(matrix
[7]);
4270 params
[8] = IROUND(matrix
[8]);
4271 params
[9] = IROUND(matrix
[9]);
4272 params
[10] = IROUND(matrix
[10]);
4273 params
[11] = IROUND(matrix
[11]);
4274 params
[12] = IROUND(matrix
[12]);
4275 params
[13] = IROUND(matrix
[13]);
4276 params
[14] = IROUND(matrix
[14]);
4277 params
[15] = IROUND(matrix
[15]);
4280 case GL_MODELVIEW_STACK_DEPTH
:
4281 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4283 case GL_NAME_STACK_DEPTH
:
4284 params
[0] = ctx
->Select
.NameStackDepth
;
4287 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4289 case GL_PACK_ALIGNMENT
:
4290 params
[0] = ctx
->Pack
.Alignment
;
4292 case GL_PACK_LSB_FIRST
:
4293 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4295 case GL_PACK_ROW_LENGTH
:
4296 params
[0] = ctx
->Pack
.RowLength
;
4298 case GL_PACK_SKIP_PIXELS
:
4299 params
[0] = ctx
->Pack
.SkipPixels
;
4301 case GL_PACK_SKIP_ROWS
:
4302 params
[0] = ctx
->Pack
.SkipRows
;
4304 case GL_PACK_SWAP_BYTES
:
4305 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4307 case GL_PACK_SKIP_IMAGES_EXT
:
4308 params
[0] = ctx
->Pack
.SkipImages
;
4310 case GL_PACK_IMAGE_HEIGHT_EXT
:
4311 params
[0] = ctx
->Pack
.ImageHeight
;
4313 case GL_PACK_INVERT_MESA
:
4314 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4316 case GL_PERSPECTIVE_CORRECTION_HINT
:
4317 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4319 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4320 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4322 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4323 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4325 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4326 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4328 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4329 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4331 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4332 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4334 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4335 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4337 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4338 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4340 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4341 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4343 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4344 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4346 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4347 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4350 params
[0] = IROUND(ctx
->Point
.Size
);
4352 case GL_POINT_SIZE_GRANULARITY
:
4353 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4355 case GL_POINT_SIZE_RANGE
:
4356 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4357 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4359 case GL_ALIASED_POINT_SIZE_RANGE
:
4360 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4361 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4363 case GL_POINT_SMOOTH
:
4364 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4366 case GL_POINT_SMOOTH_HINT
:
4367 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4369 case GL_POINT_SIZE_MIN_EXT
:
4370 params
[0] = IROUND(ctx
->Point
.MinSize
);
4372 case GL_POINT_SIZE_MAX_EXT
:
4373 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4375 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4376 params
[0] = IROUND(ctx
->Point
.Threshold
);
4378 case GL_DISTANCE_ATTENUATION_EXT
:
4379 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4380 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4381 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4383 case GL_POLYGON_MODE
:
4384 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4385 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4387 case GL_POLYGON_OFFSET_BIAS_EXT
:
4388 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4390 case GL_POLYGON_OFFSET_FACTOR
:
4391 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4393 case GL_POLYGON_OFFSET_UNITS
:
4394 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4396 case GL_POLYGON_OFFSET_POINT
:
4397 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4399 case GL_POLYGON_OFFSET_LINE
:
4400 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4402 case GL_POLYGON_OFFSET_FILL
:
4403 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4405 case GL_POLYGON_SMOOTH
:
4406 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4408 case GL_POLYGON_SMOOTH_HINT
:
4409 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4411 case GL_POLYGON_STIPPLE
:
4412 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4414 case GL_PROJECTION_MATRIX
:
4416 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4417 params
[0] = IROUND(matrix
[0]);
4418 params
[1] = IROUND(matrix
[1]);
4419 params
[2] = IROUND(matrix
[2]);
4420 params
[3] = IROUND(matrix
[3]);
4421 params
[4] = IROUND(matrix
[4]);
4422 params
[5] = IROUND(matrix
[5]);
4423 params
[6] = IROUND(matrix
[6]);
4424 params
[7] = IROUND(matrix
[7]);
4425 params
[8] = IROUND(matrix
[8]);
4426 params
[9] = IROUND(matrix
[9]);
4427 params
[10] = IROUND(matrix
[10]);
4428 params
[11] = IROUND(matrix
[11]);
4429 params
[12] = IROUND(matrix
[12]);
4430 params
[13] = IROUND(matrix
[13]);
4431 params
[14] = IROUND(matrix
[14]);
4432 params
[15] = IROUND(matrix
[15]);
4435 case GL_PROJECTION_STACK_DEPTH
:
4436 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4438 case GL_READ_BUFFER
:
4439 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4442 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4445 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4448 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4450 case GL_RENDER_MODE
:
4451 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4453 case GL_RESCALE_NORMAL
:
4454 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4457 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4459 case GL_SCISSOR_BOX
:
4460 params
[0] = ctx
->Scissor
.X
;
4461 params
[1] = ctx
->Scissor
.Y
;
4462 params
[2] = ctx
->Scissor
.Width
;
4463 params
[3] = ctx
->Scissor
.Height
;
4465 case GL_SCISSOR_TEST
:
4466 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4468 case GL_SELECTION_BUFFER_SIZE
:
4469 params
[0] = ctx
->Select
.BufferSize
;
4471 case GL_SHADE_MODEL
:
4472 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4474 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4475 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4477 case GL_STENCIL_BITS
:
4478 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4480 case GL_STENCIL_CLEAR_VALUE
:
4481 params
[0] = ctx
->Stencil
.Clear
;
4483 case GL_STENCIL_FAIL
:
4484 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4486 case GL_STENCIL_FUNC
:
4487 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4489 case GL_STENCIL_PASS_DEPTH_FAIL
:
4490 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4492 case GL_STENCIL_PASS_DEPTH_PASS
:
4493 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4495 case GL_STENCIL_REF
:
4496 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4498 case GL_STENCIL_TEST
:
4499 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4501 case GL_STENCIL_VALUE_MASK
:
4502 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4504 case GL_STENCIL_WRITEMASK
:
4505 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4508 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4510 case GL_SUBPIXEL_BITS
:
4511 params
[0] = ctx
->Const
.SubPixelBits
;
4514 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4517 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4520 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4522 case GL_TEXTURE_1D_ARRAY_EXT
:
4523 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4524 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4526 case GL_TEXTURE_2D_ARRAY_EXT
:
4527 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4528 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4530 case GL_TEXTURE_BINDING_1D
:
4531 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
;
4533 case GL_TEXTURE_BINDING_2D
:
4534 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
;
4536 case GL_TEXTURE_BINDING_3D
:
4537 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
;
4539 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4540 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4541 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
;
4543 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4544 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4545 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
;
4547 case GL_TEXTURE_GEN_S
:
4548 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4550 case GL_TEXTURE_GEN_T
:
4551 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4553 case GL_TEXTURE_GEN_R
:
4554 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4556 case GL_TEXTURE_GEN_Q
:
4557 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4559 case GL_TEXTURE_MATRIX
:
4561 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4562 params
[0] = IROUND(matrix
[0]);
4563 params
[1] = IROUND(matrix
[1]);
4564 params
[2] = IROUND(matrix
[2]);
4565 params
[3] = IROUND(matrix
[3]);
4566 params
[4] = IROUND(matrix
[4]);
4567 params
[5] = IROUND(matrix
[5]);
4568 params
[6] = IROUND(matrix
[6]);
4569 params
[7] = IROUND(matrix
[7]);
4570 params
[8] = IROUND(matrix
[8]);
4571 params
[9] = IROUND(matrix
[9]);
4572 params
[10] = IROUND(matrix
[10]);
4573 params
[11] = IROUND(matrix
[11]);
4574 params
[12] = IROUND(matrix
[12]);
4575 params
[13] = IROUND(matrix
[13]);
4576 params
[14] = IROUND(matrix
[14]);
4577 params
[15] = IROUND(matrix
[15]);
4580 case GL_TEXTURE_STACK_DEPTH
:
4581 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4583 case GL_UNPACK_ALIGNMENT
:
4584 params
[0] = ctx
->Unpack
.Alignment
;
4586 case GL_UNPACK_LSB_FIRST
:
4587 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4589 case GL_UNPACK_ROW_LENGTH
:
4590 params
[0] = ctx
->Unpack
.RowLength
;
4592 case GL_UNPACK_SKIP_PIXELS
:
4593 params
[0] = ctx
->Unpack
.SkipPixels
;
4595 case GL_UNPACK_SKIP_ROWS
:
4596 params
[0] = ctx
->Unpack
.SkipRows
;
4598 case GL_UNPACK_SWAP_BYTES
:
4599 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4601 case GL_UNPACK_SKIP_IMAGES_EXT
:
4602 params
[0] = ctx
->Unpack
.SkipImages
;
4604 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4605 params
[0] = ctx
->Unpack
.ImageHeight
;
4607 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4608 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4611 params
[0] = ctx
->Viewport
.X
;
4612 params
[1] = ctx
->Viewport
.Y
;
4613 params
[2] = ctx
->Viewport
.Width
;
4614 params
[3] = ctx
->Viewport
.Height
;
4617 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4620 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4622 case GL_VERTEX_ARRAY
:
4623 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4625 case GL_VERTEX_ARRAY_SIZE
:
4626 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4628 case GL_VERTEX_ARRAY_TYPE
:
4629 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4631 case GL_VERTEX_ARRAY_STRIDE
:
4632 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4634 case GL_VERTEX_ARRAY_COUNT_EXT
:
4637 case GL_NORMAL_ARRAY
:
4638 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4640 case GL_NORMAL_ARRAY_TYPE
:
4641 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4643 case GL_NORMAL_ARRAY_STRIDE
:
4644 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4646 case GL_NORMAL_ARRAY_COUNT_EXT
:
4649 case GL_COLOR_ARRAY
:
4650 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4652 case GL_COLOR_ARRAY_SIZE
:
4653 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4655 case GL_COLOR_ARRAY_TYPE
:
4656 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4658 case GL_COLOR_ARRAY_STRIDE
:
4659 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4661 case GL_COLOR_ARRAY_COUNT_EXT
:
4664 case GL_INDEX_ARRAY
:
4665 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4667 case GL_INDEX_ARRAY_TYPE
:
4668 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4670 case GL_INDEX_ARRAY_STRIDE
:
4671 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4673 case GL_INDEX_ARRAY_COUNT_EXT
:
4676 case GL_TEXTURE_COORD_ARRAY
:
4677 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4679 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4680 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4682 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4683 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4685 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4686 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4688 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4691 case GL_EDGE_FLAG_ARRAY
:
4692 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4694 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4695 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4697 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4700 case GL_MAX_TEXTURE_UNITS_ARB
:
4701 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4702 params
[0] = ctx
->Const
.MaxTextureUnits
;
4704 case GL_ACTIVE_TEXTURE_ARB
:
4705 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4706 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4708 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4709 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4710 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4712 case GL_TEXTURE_CUBE_MAP_ARB
:
4713 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4714 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4716 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4717 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4718 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
;
4720 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4721 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4722 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4724 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4725 params
[0] = ctx
->Hint
.TextureCompression
;
4727 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4728 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4730 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4733 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4735 for (i
= 0; i
< n
; i
++)
4736 params
[i
] = ENUM_TO_INT(formats
[i
]);
4739 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4740 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4741 params
[0] = ctx
->Array
.LockFirst
;
4743 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4744 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4745 params
[0] = ctx
->Array
.LockCount
;
4747 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4749 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4750 params
[0] = IROUND(matrix
[0]);
4751 params
[1] = IROUND(matrix
[4]);
4752 params
[2] = IROUND(matrix
[8]);
4753 params
[3] = IROUND(matrix
[12]);
4754 params
[4] = IROUND(matrix
[1]);
4755 params
[5] = IROUND(matrix
[5]);
4756 params
[6] = IROUND(matrix
[9]);
4757 params
[7] = IROUND(matrix
[13]);
4758 params
[8] = IROUND(matrix
[2]);
4759 params
[9] = IROUND(matrix
[6]);
4760 params
[10] = IROUND(matrix
[10]);
4761 params
[11] = IROUND(matrix
[14]);
4762 params
[12] = IROUND(matrix
[3]);
4763 params
[13] = IROUND(matrix
[7]);
4764 params
[14] = IROUND(matrix
[11]);
4765 params
[15] = IROUND(matrix
[15]);
4768 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4770 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4771 params
[0] = IROUND(matrix
[0]);
4772 params
[1] = IROUND(matrix
[4]);
4773 params
[2] = IROUND(matrix
[8]);
4774 params
[3] = IROUND(matrix
[12]);
4775 params
[4] = IROUND(matrix
[1]);
4776 params
[5] = IROUND(matrix
[5]);
4777 params
[6] = IROUND(matrix
[9]);
4778 params
[7] = IROUND(matrix
[13]);
4779 params
[8] = IROUND(matrix
[2]);
4780 params
[9] = IROUND(matrix
[6]);
4781 params
[10] = IROUND(matrix
[10]);
4782 params
[11] = IROUND(matrix
[14]);
4783 params
[12] = IROUND(matrix
[3]);
4784 params
[13] = IROUND(matrix
[7]);
4785 params
[14] = IROUND(matrix
[11]);
4786 params
[15] = IROUND(matrix
[15]);
4789 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4791 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4792 params
[0] = IROUND(matrix
[0]);
4793 params
[1] = IROUND(matrix
[4]);
4794 params
[2] = IROUND(matrix
[8]);
4795 params
[3] = IROUND(matrix
[12]);
4796 params
[4] = IROUND(matrix
[1]);
4797 params
[5] = IROUND(matrix
[5]);
4798 params
[6] = IROUND(matrix
[9]);
4799 params
[7] = IROUND(matrix
[13]);
4800 params
[8] = IROUND(matrix
[2]);
4801 params
[9] = IROUND(matrix
[6]);
4802 params
[10] = IROUND(matrix
[10]);
4803 params
[11] = IROUND(matrix
[14]);
4804 params
[12] = IROUND(matrix
[3]);
4805 params
[13] = IROUND(matrix
[7]);
4806 params
[14] = IROUND(matrix
[11]);
4807 params
[15] = IROUND(matrix
[15]);
4810 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4812 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4813 params
[0] = IROUND(matrix
[0]);
4814 params
[1] = IROUND(matrix
[4]);
4815 params
[2] = IROUND(matrix
[8]);
4816 params
[3] = IROUND(matrix
[12]);
4817 params
[4] = IROUND(matrix
[1]);
4818 params
[5] = IROUND(matrix
[5]);
4819 params
[6] = IROUND(matrix
[9]);
4820 params
[7] = IROUND(matrix
[13]);
4821 params
[8] = IROUND(matrix
[2]);
4822 params
[9] = IROUND(matrix
[6]);
4823 params
[10] = IROUND(matrix
[10]);
4824 params
[11] = IROUND(matrix
[14]);
4825 params
[12] = IROUND(matrix
[3]);
4826 params
[13] = IROUND(matrix
[7]);
4827 params
[14] = IROUND(matrix
[11]);
4828 params
[15] = IROUND(matrix
[15]);
4831 case GL_COLOR_MATRIX_SGI
:
4833 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4834 params
[0] = IROUND(matrix
[0]);
4835 params
[1] = IROUND(matrix
[1]);
4836 params
[2] = IROUND(matrix
[2]);
4837 params
[3] = IROUND(matrix
[3]);
4838 params
[4] = IROUND(matrix
[4]);
4839 params
[5] = IROUND(matrix
[5]);
4840 params
[6] = IROUND(matrix
[6]);
4841 params
[7] = IROUND(matrix
[7]);
4842 params
[8] = IROUND(matrix
[8]);
4843 params
[9] = IROUND(matrix
[9]);
4844 params
[10] = IROUND(matrix
[10]);
4845 params
[11] = IROUND(matrix
[11]);
4846 params
[12] = IROUND(matrix
[12]);
4847 params
[13] = IROUND(matrix
[13]);
4848 params
[14] = IROUND(matrix
[14]);
4849 params
[15] = IROUND(matrix
[15]);
4852 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4853 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4855 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4856 params
[0] = MAX_COLOR_STACK_DEPTH
;
4858 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4859 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4861 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4862 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4864 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4865 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4867 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4868 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4870 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4871 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4873 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4874 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4876 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4877 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4879 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4880 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4882 case GL_CONVOLUTION_1D_EXT
:
4883 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4884 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4886 case GL_CONVOLUTION_2D_EXT
:
4887 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4888 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4890 case GL_SEPARABLE_2D_EXT
:
4891 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4892 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4894 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4895 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4896 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4898 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4899 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4900 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4902 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4903 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4904 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4906 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4907 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4908 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4910 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4911 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4912 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4914 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4915 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4916 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4918 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4919 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4920 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4922 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4923 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4924 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4927 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4928 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4931 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4932 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4934 case GL_COLOR_TABLE_SGI
:
4935 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4936 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
4938 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4939 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4940 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
4942 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4943 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4944 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
4946 case GL_TEXTURE_COLOR_TABLE_SGI
:
4947 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
4948 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4950 case GL_COLOR_SUM_EXT
:
4951 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
4952 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4954 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4955 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4957 FLUSH_CURRENT(ctx
, 0);
4958 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4959 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4960 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4961 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4964 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4965 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4966 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
4968 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
4969 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4970 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
4972 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
4973 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4974 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
4976 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
4977 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4978 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
4980 case GL_CURRENT_FOG_COORDINATE_EXT
:
4981 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4983 FLUSH_CURRENT(ctx
, 0);
4984 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
4987 case GL_FOG_COORDINATE_ARRAY_EXT
:
4988 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4989 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
4991 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
4992 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4993 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
4995 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
4996 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4997 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
4999 case GL_FOG_COORDINATE_SOURCE_EXT
:
5000 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5001 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5003 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5004 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5005 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5007 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5008 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5009 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5011 case GL_MULTISAMPLE_ARB
:
5012 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5014 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5015 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5017 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5018 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5020 case GL_SAMPLE_COVERAGE_ARB
:
5021 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5023 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5024 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5026 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5027 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5029 case GL_SAMPLE_BUFFERS_ARB
:
5030 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5032 case GL_SAMPLES_ARB
:
5033 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5035 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5036 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5037 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5039 case GL_POINT_SPRITE_NV
:
5040 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5041 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5043 case GL_POINT_SPRITE_R_MODE_NV
:
5044 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5045 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5047 case GL_POINT_SPRITE_COORD_ORIGIN
:
5048 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5049 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5051 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5052 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5053 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5055 case GL_VERTEX_PROGRAM_BINDING_NV
:
5056 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5057 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5059 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5060 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5061 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5063 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5064 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5065 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5067 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5068 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5069 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5071 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5072 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5073 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5075 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5076 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5077 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5079 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5080 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5081 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5083 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5084 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5085 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5087 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5088 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5089 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5091 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5092 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5093 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5095 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5096 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5097 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5099 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5100 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5101 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5103 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5104 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5105 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5107 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5108 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5109 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5111 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5112 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5113 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5115 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5116 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5117 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5119 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5120 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5121 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5123 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5124 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5125 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5127 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5128 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5129 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5131 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5132 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5133 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5135 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5136 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5137 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5139 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5140 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5141 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5143 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5144 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5145 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5147 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5148 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5149 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5151 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5152 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5153 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5155 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5156 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5157 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5159 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5160 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5161 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5163 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5164 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5165 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5167 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5168 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5169 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5171 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5172 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5173 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5175 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5176 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5177 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5179 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5180 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5181 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5183 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5184 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5185 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5187 case GL_FRAGMENT_PROGRAM_NV
:
5188 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5189 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5191 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5192 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5193 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5195 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5196 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5197 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5199 case GL_TEXTURE_RECTANGLE_NV
:
5200 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5201 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5203 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5204 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5205 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
;
5207 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5208 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5209 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5211 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5212 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5213 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5215 case GL_ACTIVE_STENCIL_FACE_EXT
:
5216 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5217 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5219 case GL_MAX_SHININESS_NV
:
5220 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5221 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5223 case GL_MAX_SPOT_EXPONENT_NV
:
5224 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5225 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5227 case GL_ARRAY_BUFFER_BINDING_ARB
:
5228 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5230 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5231 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5233 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5234 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5236 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5237 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5239 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5240 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5242 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5243 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5245 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5246 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5248 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5249 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5251 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5252 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5254 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5255 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5257 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5258 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5259 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5261 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5262 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5263 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5265 case GL_VERTEX_PROGRAM_ARB
:
5266 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5267 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5269 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5270 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5271 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5273 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5274 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5275 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5277 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5278 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5279 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5281 case GL_MAX_PROGRAM_MATRICES_ARB
:
5282 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5283 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5285 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5286 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5287 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5289 case GL_CURRENT_MATRIX_ARB
:
5290 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5292 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5293 params
[0] = IROUND(matrix
[0]);
5294 params
[1] = IROUND(matrix
[1]);
5295 params
[2] = IROUND(matrix
[2]);
5296 params
[3] = IROUND(matrix
[3]);
5297 params
[4] = IROUND(matrix
[4]);
5298 params
[5] = IROUND(matrix
[5]);
5299 params
[6] = IROUND(matrix
[6]);
5300 params
[7] = IROUND(matrix
[7]);
5301 params
[8] = IROUND(matrix
[8]);
5302 params
[9] = IROUND(matrix
[9]);
5303 params
[10] = IROUND(matrix
[10]);
5304 params
[11] = IROUND(matrix
[11]);
5305 params
[12] = IROUND(matrix
[12]);
5306 params
[13] = IROUND(matrix
[13]);
5307 params
[14] = IROUND(matrix
[14]);
5308 params
[15] = IROUND(matrix
[15]);
5311 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5312 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5314 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5315 params
[0] = IROUND(matrix
[0]);
5316 params
[1] = IROUND(matrix
[4]);
5317 params
[2] = IROUND(matrix
[8]);
5318 params
[3] = IROUND(matrix
[12]);
5319 params
[4] = IROUND(matrix
[1]);
5320 params
[5] = IROUND(matrix
[5]);
5321 params
[6] = IROUND(matrix
[9]);
5322 params
[7] = IROUND(matrix
[13]);
5323 params
[8] = IROUND(matrix
[2]);
5324 params
[9] = IROUND(matrix
[6]);
5325 params
[10] = IROUND(matrix
[10]);
5326 params
[11] = IROUND(matrix
[14]);
5327 params
[12] = IROUND(matrix
[3]);
5328 params
[13] = IROUND(matrix
[7]);
5329 params
[14] = IROUND(matrix
[11]);
5330 params
[15] = IROUND(matrix
[15]);
5333 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5334 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5335 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5337 case GL_PROGRAM_ERROR_POSITION_ARB
:
5338 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5339 params
[0] = ctx
->Program
.ErrorPos
;
5341 case GL_FRAGMENT_PROGRAM_ARB
:
5342 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5343 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5345 case GL_MAX_TEXTURE_COORDS_ARB
:
5346 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5347 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5349 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5350 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5351 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5353 case GL_DEPTH_BOUNDS_TEST_EXT
:
5354 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5355 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5357 case GL_DEPTH_BOUNDS_EXT
:
5358 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5359 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5360 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5362 case GL_MAX_DRAW_BUFFERS_ARB
:
5363 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5365 case GL_DRAW_BUFFER0_ARB
:
5366 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5368 case GL_DRAW_BUFFER1_ARB
:
5371 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5372 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5375 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5376 params
[0] = ENUM_TO_INT(buffer
);
5379 case GL_DRAW_BUFFER2_ARB
:
5382 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5383 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5386 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5387 params
[0] = ENUM_TO_INT(buffer
);
5390 case GL_DRAW_BUFFER3_ARB
:
5393 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5394 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5397 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5398 params
[0] = ENUM_TO_INT(buffer
);
5401 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5402 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5403 params
[0] = ctx
->Const
.ColorReadType
;
5405 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5406 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5407 params
[0] = ctx
->Const
.ColorReadFormat
;
5409 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5410 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5413 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5414 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5417 case GL_NUM_PASSES_ATI
:
5418 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5421 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5422 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5425 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5426 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5429 case GL_COLOR_ALPHA_PAIRING_ATI
:
5430 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5431 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5433 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5434 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5437 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5438 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5441 case GL_STENCIL_BACK_FUNC
:
5442 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5444 case GL_STENCIL_BACK_VALUE_MASK
:
5445 params
[0] = ctx
->Stencil
.ValueMask
[1];
5447 case GL_STENCIL_BACK_WRITEMASK
:
5448 params
[0] = ctx
->Stencil
.WriteMask
[1];
5450 case GL_STENCIL_BACK_REF
:
5451 params
[0] = ctx
->Stencil
.Ref
[1];
5453 case GL_STENCIL_BACK_FAIL
:
5454 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5456 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5457 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5459 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5460 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5462 case GL_FRAMEBUFFER_BINDING_EXT
:
5463 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5464 params
[0] = ctx
->DrawBuffer
->Name
;
5466 case GL_RENDERBUFFER_BINDING_EXT
:
5467 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5468 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5470 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5471 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5472 params
[0] = ctx
->Const
.MaxColorAttachments
;
5474 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5475 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5476 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5478 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5479 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5480 params
[0] = ctx
->ReadBuffer
->Name
;
5482 case GL_PROVOKING_VERTEX_EXT
:
5483 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5484 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ProvokingVertex
);
5486 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
5487 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5488 params
[0] = BOOLEAN_TO_INT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
5490 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5491 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5492 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5494 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5495 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5496 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5498 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5499 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5500 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5502 case GL_MAX_VARYING_FLOATS_ARB
:
5503 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5504 params
[0] = ctx
->Const
.MaxVarying
* 4;
5506 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5507 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5508 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5510 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5511 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5512 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5514 case GL_CURRENT_PROGRAM
:
5515 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5516 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5518 case GL_MAX_SAMPLES
:
5519 CHECK_EXT1(ARB_framebuffer_object
, "GetIntegerv");
5520 params
[0] = ctx
->Const
.MaxSamples
;
5522 case GL_VERTEX_ARRAY_BINDING_APPLE
:
5523 CHECK_EXT1(APPLE_vertex_array_object
, "GetIntegerv");
5524 params
[0] = ctx
->Array
.ArrayObj
->Name
;
5527 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5533 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5535 const GLfloat magic
= -1234.5F
;
5542 /* Init temp array to magic numbers so we can figure out how many values
5543 * are returned by the GetFloatv() call.
5545 for (i
= 0; i
< 16; i
++)
5548 _mesa_GetFloatv(pname
, values
);
5550 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5551 params
[i
] = (GLdouble
) values
[i
];