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
].Current1D
->Name
);
889 case GL_TEXTURE_BINDING_2D
:
890 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
892 case GL_TEXTURE_BINDING_3D
:
893 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
895 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
896 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
897 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1DArray
->Name
);
899 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
900 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
901 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2DArray
->Name
);
903 case GL_TEXTURE_GEN_S
:
904 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
906 case GL_TEXTURE_GEN_T
:
907 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
909 case GL_TEXTURE_GEN_R
:
910 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
912 case GL_TEXTURE_GEN_Q
:
913 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
915 case GL_TEXTURE_MATRIX
:
917 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
918 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
919 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
920 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
921 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
922 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
923 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
924 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
925 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
926 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
927 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
928 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
929 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
930 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
931 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
932 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
933 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
936 case GL_TEXTURE_STACK_DEPTH
:
937 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
939 case GL_UNPACK_ALIGNMENT
:
940 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
942 case GL_UNPACK_LSB_FIRST
:
943 params
[0] = ctx
->Unpack
.LsbFirst
;
945 case GL_UNPACK_ROW_LENGTH
:
946 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
948 case GL_UNPACK_SKIP_PIXELS
:
949 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
951 case GL_UNPACK_SKIP_ROWS
:
952 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
954 case GL_UNPACK_SWAP_BYTES
:
955 params
[0] = ctx
->Unpack
.SwapBytes
;
957 case GL_UNPACK_SKIP_IMAGES_EXT
:
958 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
960 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
961 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
963 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
964 params
[0] = ctx
->Unpack
.ClientStorage
;
967 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
968 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
969 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
970 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
973 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
976 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
978 case GL_VERTEX_ARRAY
:
979 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Enabled
;
981 case GL_VERTEX_ARRAY_SIZE
:
982 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Size
);
984 case GL_VERTEX_ARRAY_TYPE
:
985 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Type
);
987 case GL_VERTEX_ARRAY_STRIDE
:
988 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
990 case GL_VERTEX_ARRAY_COUNT_EXT
:
991 params
[0] = INT_TO_BOOLEAN(0);
993 case GL_NORMAL_ARRAY
:
994 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
996 case GL_NORMAL_ARRAY_TYPE
:
997 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Type
);
999 case GL_NORMAL_ARRAY_STRIDE
:
1000 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Stride
);
1002 case GL_NORMAL_ARRAY_COUNT_EXT
:
1003 params
[0] = INT_TO_BOOLEAN(0);
1005 case GL_COLOR_ARRAY
:
1006 params
[0] = ctx
->Array
.ArrayObj
->Color
.Enabled
;
1008 case GL_COLOR_ARRAY_SIZE
:
1009 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Size
);
1011 case GL_COLOR_ARRAY_TYPE
:
1012 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Type
);
1014 case GL_COLOR_ARRAY_STRIDE
:
1015 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Stride
);
1017 case GL_COLOR_ARRAY_COUNT_EXT
:
1018 params
[0] = INT_TO_BOOLEAN(0);
1020 case GL_INDEX_ARRAY
:
1021 params
[0] = ctx
->Array
.ArrayObj
->Index
.Enabled
;
1023 case GL_INDEX_ARRAY_TYPE
:
1024 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Type
);
1026 case GL_INDEX_ARRAY_STRIDE
:
1027 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Stride
);
1029 case GL_INDEX_ARRAY_COUNT_EXT
:
1030 params
[0] = INT_TO_BOOLEAN(0);
1032 case GL_TEXTURE_COORD_ARRAY
:
1033 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1035 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1036 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1038 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1039 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1041 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1042 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1044 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1045 params
[0] = INT_TO_BOOLEAN(0);
1047 case GL_EDGE_FLAG_ARRAY
:
1048 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
;
1050 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1051 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
1053 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1054 params
[0] = INT_TO_BOOLEAN(0);
1056 case GL_MAX_TEXTURE_UNITS_ARB
:
1057 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1058 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1060 case GL_ACTIVE_TEXTURE_ARB
:
1061 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1062 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1064 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1065 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1066 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1068 case GL_TEXTURE_CUBE_MAP_ARB
:
1069 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1070 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1072 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1073 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1074 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
1076 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1077 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1078 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1080 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1081 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
].CurrentRect
->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_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1719 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1720 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1722 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1723 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1724 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1726 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1727 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1728 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1730 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1731 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1732 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1734 case GL_MAX_DRAW_BUFFERS_ARB
:
1735 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1737 case GL_DRAW_BUFFER0_ARB
:
1738 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1740 case GL_DRAW_BUFFER1_ARB
:
1743 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1744 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1747 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1748 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1751 case GL_DRAW_BUFFER2_ARB
:
1754 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1755 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1758 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1759 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1762 case GL_DRAW_BUFFER3_ARB
:
1765 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1766 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1769 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1770 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1773 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1774 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1775 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1777 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1778 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1779 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1781 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1782 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1783 params
[0] = INT_TO_BOOLEAN(6);
1785 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1786 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1787 params
[0] = INT_TO_BOOLEAN(8);
1789 case GL_NUM_PASSES_ATI
:
1790 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1791 params
[0] = INT_TO_BOOLEAN(2);
1793 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1794 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1795 params
[0] = INT_TO_BOOLEAN(8);
1797 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1798 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1799 params
[0] = INT_TO_BOOLEAN(16);
1801 case GL_COLOR_ALPHA_PAIRING_ATI
:
1802 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1803 params
[0] = GL_TRUE
;
1805 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1806 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1807 params
[0] = INT_TO_BOOLEAN(3);
1809 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1810 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1811 params
[0] = INT_TO_BOOLEAN(3);
1813 case GL_STENCIL_BACK_FUNC
:
1814 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1816 case GL_STENCIL_BACK_VALUE_MASK
:
1817 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1819 case GL_STENCIL_BACK_WRITEMASK
:
1820 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1822 case GL_STENCIL_BACK_REF
:
1823 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1825 case GL_STENCIL_BACK_FAIL
:
1826 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1828 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1829 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1831 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1832 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1834 case GL_FRAMEBUFFER_BINDING_EXT
:
1835 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1836 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1838 case GL_RENDERBUFFER_BINDING_EXT
:
1839 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1840 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1842 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1843 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1844 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1846 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1847 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1848 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1850 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1851 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1852 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1854 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1855 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1856 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1858 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1859 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1860 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1862 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1863 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1864 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1866 case GL_MAX_VARYING_FLOATS_ARB
:
1867 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1868 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1870 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1871 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1872 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1874 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1875 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1876 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1878 case GL_CURRENT_PROGRAM
:
1879 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1880 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1882 case GL_MAX_SAMPLES
:
1883 CHECK_EXT1(ARB_framebuffer_object
, "GetBooleanv");
1884 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxSamples
);
1887 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1892 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1894 GET_CURRENT_CONTEXT(ctx
);
1895 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1901 _mesa_update_state(ctx
);
1903 if (ctx
->Driver
.GetFloatv
&&
1904 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1908 case GL_ACCUM_RED_BITS
:
1909 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1911 case GL_ACCUM_GREEN_BITS
:
1912 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1914 case GL_ACCUM_BLUE_BITS
:
1915 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1917 case GL_ACCUM_ALPHA_BITS
:
1918 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1920 case GL_ACCUM_CLEAR_VALUE
:
1921 params
[0] = ctx
->Accum
.ClearColor
[0];
1922 params
[1] = ctx
->Accum
.ClearColor
[1];
1923 params
[2] = ctx
->Accum
.ClearColor
[2];
1924 params
[3] = ctx
->Accum
.ClearColor
[3];
1927 params
[0] = ctx
->Pixel
.AlphaBias
;
1930 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1932 case GL_ALPHA_SCALE
:
1933 params
[0] = ctx
->Pixel
.AlphaScale
;
1936 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1938 case GL_ALPHA_TEST_FUNC
:
1939 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1941 case GL_ALPHA_TEST_REF
:
1942 params
[0] = ctx
->Color
.AlphaRef
;
1944 case GL_ATTRIB_STACK_DEPTH
:
1945 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1947 case GL_AUTO_NORMAL
:
1948 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1950 case GL_AUX_BUFFERS
:
1951 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1954 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1957 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1960 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1962 case GL_BLEND_SRC_RGB_EXT
:
1963 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1965 case GL_BLEND_DST_RGB_EXT
:
1966 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1968 case GL_BLEND_SRC_ALPHA_EXT
:
1969 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1971 case GL_BLEND_DST_ALPHA_EXT
:
1972 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1974 case GL_BLEND_EQUATION
:
1975 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1977 case GL_BLEND_EQUATION_ALPHA_EXT
:
1978 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1980 case GL_BLEND_COLOR_EXT
:
1981 params
[0] = ctx
->Color
.BlendColor
[0];
1982 params
[1] = ctx
->Color
.BlendColor
[1];
1983 params
[2] = ctx
->Color
.BlendColor
[2];
1984 params
[3] = ctx
->Color
.BlendColor
[3];
1987 params
[0] = ctx
->Pixel
.BlueBias
;
1990 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
1993 params
[0] = ctx
->Pixel
.BlueScale
;
1995 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
1996 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
1998 case GL_CLIP_PLANE0
:
1999 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2001 case GL_CLIP_PLANE1
:
2002 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2004 case GL_CLIP_PLANE2
:
2005 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2007 case GL_CLIP_PLANE3
:
2008 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2010 case GL_CLIP_PLANE4
:
2011 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2013 case GL_CLIP_PLANE5
:
2014 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2016 case GL_COLOR_CLEAR_VALUE
:
2017 params
[0] = ctx
->Color
.ClearColor
[0];
2018 params
[1] = ctx
->Color
.ClearColor
[1];
2019 params
[2] = ctx
->Color
.ClearColor
[2];
2020 params
[3] = ctx
->Color
.ClearColor
[3];
2022 case GL_COLOR_MATERIAL
:
2023 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2025 case GL_COLOR_MATERIAL_FACE
:
2026 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2028 case GL_COLOR_MATERIAL_PARAMETER
:
2029 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2031 case GL_COLOR_WRITEMASK
:
2032 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2033 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2034 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2035 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2038 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2040 case GL_CULL_FACE_MODE
:
2041 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2043 case GL_CURRENT_COLOR
:
2045 FLUSH_CURRENT(ctx
, 0);
2046 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2047 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2048 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2049 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2052 case GL_CURRENT_INDEX
:
2054 FLUSH_CURRENT(ctx
, 0);
2055 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2058 case GL_CURRENT_NORMAL
:
2060 FLUSH_CURRENT(ctx
, 0);
2061 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2062 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2063 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2066 case GL_CURRENT_RASTER_COLOR
:
2067 params
[0] = ctx
->Current
.RasterColor
[0];
2068 params
[1] = ctx
->Current
.RasterColor
[1];
2069 params
[2] = ctx
->Current
.RasterColor
[2];
2070 params
[3] = ctx
->Current
.RasterColor
[3];
2072 case GL_CURRENT_RASTER_DISTANCE
:
2073 params
[0] = ctx
->Current
.RasterDistance
;
2075 case GL_CURRENT_RASTER_INDEX
:
2076 params
[0] = ctx
->Current
.RasterIndex
;
2078 case GL_CURRENT_RASTER_POSITION
:
2079 params
[0] = ctx
->Current
.RasterPos
[0];
2080 params
[1] = ctx
->Current
.RasterPos
[1];
2081 params
[2] = ctx
->Current
.RasterPos
[2];
2082 params
[3] = ctx
->Current
.RasterPos
[3];
2084 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2085 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2086 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2087 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2088 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2090 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2092 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2093 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2094 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2095 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2096 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2099 case GL_CURRENT_RASTER_POSITION_VALID
:
2100 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2102 case GL_CURRENT_TEXTURE_COORDS
:
2104 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2105 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2106 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2107 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2108 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2112 params
[0] = ctx
->Pixel
.DepthBias
;
2115 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2117 case GL_DEPTH_CLEAR_VALUE
:
2118 params
[0] = ((GLfloat
) ctx
->Depth
.Clear
);
2121 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2123 case GL_DEPTH_RANGE
:
2124 params
[0] = ctx
->Viewport
.Near
;
2125 params
[1] = ctx
->Viewport
.Far
;
2127 case GL_DEPTH_SCALE
:
2128 params
[0] = ctx
->Pixel
.DepthScale
;
2131 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2133 case GL_DEPTH_WRITEMASK
:
2134 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2137 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2139 case GL_DOUBLEBUFFER
:
2140 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2142 case GL_DRAW_BUFFER
:
2143 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2147 FLUSH_CURRENT(ctx
, 0);
2148 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
2151 case GL_FEEDBACK_BUFFER_SIZE
:
2152 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2154 case GL_FEEDBACK_BUFFER_TYPE
:
2155 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2158 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2161 params
[0] = ctx
->Fog
.Color
[0];
2162 params
[1] = ctx
->Fog
.Color
[1];
2163 params
[2] = ctx
->Fog
.Color
[2];
2164 params
[3] = ctx
->Fog
.Color
[3];
2166 case GL_FOG_DENSITY
:
2167 params
[0] = ctx
->Fog
.Density
;
2170 params
[0] = ctx
->Fog
.End
;
2173 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2176 params
[0] = ctx
->Fog
.Index
;
2179 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2182 params
[0] = ctx
->Fog
.Start
;
2185 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2188 params
[0] = ctx
->Pixel
.GreenBias
;
2191 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2193 case GL_GREEN_SCALE
:
2194 params
[0] = ctx
->Pixel
.GreenScale
;
2197 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2199 case GL_INDEX_CLEAR_VALUE
:
2200 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2203 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2205 case GL_INDEX_OFFSET
:
2206 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2208 case GL_INDEX_SHIFT
:
2209 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2211 case GL_INDEX_WRITEMASK
:
2212 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2215 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2218 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2221 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2224 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2227 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2230 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2233 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2236 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2239 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2241 case GL_LIGHT_MODEL_AMBIENT
:
2242 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2243 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2244 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2245 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2247 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2248 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2250 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2251 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2253 case GL_LIGHT_MODEL_TWO_SIDE
:
2254 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2256 case GL_LINE_SMOOTH
:
2257 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2259 case GL_LINE_SMOOTH_HINT
:
2260 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2262 case GL_LINE_STIPPLE
:
2263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2265 case GL_LINE_STIPPLE_PATTERN
:
2266 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2268 case GL_LINE_STIPPLE_REPEAT
:
2269 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2272 params
[0] = ctx
->Line
.Width
;
2274 case GL_LINE_WIDTH_GRANULARITY
:
2275 params
[0] = ctx
->Const
.LineWidthGranularity
;
2277 case GL_LINE_WIDTH_RANGE
:
2278 params
[0] = ctx
->Const
.MinLineWidthAA
;
2279 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2281 case GL_ALIASED_LINE_WIDTH_RANGE
:
2282 params
[0] = ctx
->Const
.MinLineWidth
;
2283 params
[1] = ctx
->Const
.MaxLineWidth
;
2286 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2289 params
[0] = (GLfloat
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
2294 if (!ctx
->CompileFlag
)
2296 else if (ctx
->ExecuteFlag
)
2297 mode
= GL_COMPILE_AND_EXECUTE
;
2300 params
[0] = ENUM_TO_FLOAT(mode
);
2303 case GL_INDEX_LOGIC_OP
:
2304 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2306 case GL_COLOR_LOGIC_OP
:
2307 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2309 case GL_LOGIC_OP_MODE
:
2310 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2312 case GL_MAP1_COLOR_4
:
2313 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2315 case GL_MAP1_GRID_DOMAIN
:
2316 params
[0] = ctx
->Eval
.MapGrid1u1
;
2317 params
[1] = ctx
->Eval
.MapGrid1u2
;
2319 case GL_MAP1_GRID_SEGMENTS
:
2320 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2323 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2325 case GL_MAP1_NORMAL
:
2326 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2328 case GL_MAP1_TEXTURE_COORD_1
:
2329 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2331 case GL_MAP1_TEXTURE_COORD_2
:
2332 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2334 case GL_MAP1_TEXTURE_COORD_3
:
2335 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2337 case GL_MAP1_TEXTURE_COORD_4
:
2338 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2340 case GL_MAP1_VERTEX_3
:
2341 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2343 case GL_MAP1_VERTEX_4
:
2344 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2346 case GL_MAP2_COLOR_4
:
2347 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2349 case GL_MAP2_GRID_DOMAIN
:
2350 params
[0] = ctx
->Eval
.MapGrid2u1
;
2351 params
[1] = ctx
->Eval
.MapGrid2u2
;
2352 params
[2] = ctx
->Eval
.MapGrid2v1
;
2353 params
[3] = ctx
->Eval
.MapGrid2v2
;
2355 case GL_MAP2_GRID_SEGMENTS
:
2356 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2357 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2360 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2362 case GL_MAP2_NORMAL
:
2363 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2365 case GL_MAP2_TEXTURE_COORD_1
:
2366 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2368 case GL_MAP2_TEXTURE_COORD_2
:
2369 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2371 case GL_MAP2_TEXTURE_COORD_3
:
2372 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2374 case GL_MAP2_TEXTURE_COORD_4
:
2375 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2377 case GL_MAP2_VERTEX_3
:
2378 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2380 case GL_MAP2_VERTEX_4
:
2381 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2384 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2386 case GL_MAP_STENCIL
:
2387 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2389 case GL_MATRIX_MODE
:
2390 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2392 case GL_MAX_ATTRIB_STACK_DEPTH
:
2393 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2395 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2396 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2398 case GL_MAX_CLIP_PLANES
:
2399 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2401 case GL_MAX_ELEMENTS_VERTICES
:
2402 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2404 case GL_MAX_ELEMENTS_INDICES
:
2405 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2407 case GL_MAX_EVAL_ORDER
:
2408 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2411 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2413 case GL_MAX_LIST_NESTING
:
2414 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2416 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2417 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2419 case GL_MAX_NAME_STACK_DEPTH
:
2420 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2422 case GL_MAX_PIXEL_MAP_TABLE
:
2423 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2425 case GL_MAX_PROJECTION_STACK_DEPTH
:
2426 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2428 case GL_MAX_TEXTURE_SIZE
:
2429 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2431 case GL_MAX_3D_TEXTURE_SIZE
:
2432 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2434 case GL_MAX_TEXTURE_STACK_DEPTH
:
2435 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2437 case GL_MAX_VIEWPORT_DIMS
:
2438 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2439 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2441 case GL_MODELVIEW_MATRIX
:
2443 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2444 params
[0] = matrix
[0];
2445 params
[1] = matrix
[1];
2446 params
[2] = matrix
[2];
2447 params
[3] = matrix
[3];
2448 params
[4] = matrix
[4];
2449 params
[5] = matrix
[5];
2450 params
[6] = matrix
[6];
2451 params
[7] = matrix
[7];
2452 params
[8] = matrix
[8];
2453 params
[9] = matrix
[9];
2454 params
[10] = matrix
[10];
2455 params
[11] = matrix
[11];
2456 params
[12] = matrix
[12];
2457 params
[13] = matrix
[13];
2458 params
[14] = matrix
[14];
2459 params
[15] = matrix
[15];
2462 case GL_MODELVIEW_STACK_DEPTH
:
2463 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2465 case GL_NAME_STACK_DEPTH
:
2466 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2469 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2471 case GL_PACK_ALIGNMENT
:
2472 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2474 case GL_PACK_LSB_FIRST
:
2475 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2477 case GL_PACK_ROW_LENGTH
:
2478 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2480 case GL_PACK_SKIP_PIXELS
:
2481 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2483 case GL_PACK_SKIP_ROWS
:
2484 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2486 case GL_PACK_SWAP_BYTES
:
2487 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2489 case GL_PACK_SKIP_IMAGES_EXT
:
2490 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2492 case GL_PACK_IMAGE_HEIGHT_EXT
:
2493 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2495 case GL_PACK_INVERT_MESA
:
2496 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2498 case GL_PERSPECTIVE_CORRECTION_HINT
:
2499 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2501 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2502 params
[0] = (GLfloat
)(ctx
->PixelMaps
.AtoA
.Size
);
2504 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2505 params
[0] = (GLfloat
)(ctx
->PixelMaps
.BtoB
.Size
);
2507 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2508 params
[0] = (GLfloat
)(ctx
->PixelMaps
.GtoG
.Size
);
2510 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2511 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoA
.Size
);
2513 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2514 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoB
.Size
);
2516 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2517 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoG
.Size
);
2519 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2520 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoI
.Size
);
2522 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2523 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoR
.Size
);
2525 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2526 params
[0] = (GLfloat
)(ctx
->PixelMaps
.RtoR
.Size
);
2528 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2529 params
[0] = (GLfloat
)(ctx
->PixelMaps
.StoS
.Size
);
2532 params
[0] = ctx
->Point
.Size
;
2534 case GL_POINT_SIZE_GRANULARITY
:
2535 params
[0] = ctx
->Const
.PointSizeGranularity
;
2537 case GL_POINT_SIZE_RANGE
:
2538 params
[0] = ctx
->Const
.MinPointSizeAA
;
2539 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2541 case GL_ALIASED_POINT_SIZE_RANGE
:
2542 params
[0] = ctx
->Const
.MinPointSize
;
2543 params
[1] = ctx
->Const
.MaxPointSize
;
2545 case GL_POINT_SMOOTH
:
2546 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2548 case GL_POINT_SMOOTH_HINT
:
2549 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2551 case GL_POINT_SIZE_MIN_EXT
:
2552 params
[0] = ctx
->Point
.MinSize
;
2554 case GL_POINT_SIZE_MAX_EXT
:
2555 params
[0] = ctx
->Point
.MaxSize
;
2557 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2558 params
[0] = ctx
->Point
.Threshold
;
2560 case GL_DISTANCE_ATTENUATION_EXT
:
2561 params
[0] = ctx
->Point
.Params
[0];
2562 params
[1] = ctx
->Point
.Params
[1];
2563 params
[2] = ctx
->Point
.Params
[2];
2565 case GL_POLYGON_MODE
:
2566 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2567 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2569 case GL_POLYGON_OFFSET_BIAS_EXT
:
2570 params
[0] = ctx
->Polygon
.OffsetUnits
;
2572 case GL_POLYGON_OFFSET_FACTOR
:
2573 params
[0] = ctx
->Polygon
.OffsetFactor
;
2575 case GL_POLYGON_OFFSET_UNITS
:
2576 params
[0] = ctx
->Polygon
.OffsetUnits
;
2578 case GL_POLYGON_OFFSET_POINT
:
2579 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetPoint
);
2581 case GL_POLYGON_OFFSET_LINE
:
2582 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetLine
);
2584 case GL_POLYGON_OFFSET_FILL
:
2585 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetFill
);
2587 case GL_POLYGON_SMOOTH
:
2588 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2590 case GL_POLYGON_SMOOTH_HINT
:
2591 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2593 case GL_POLYGON_STIPPLE
:
2594 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2596 case GL_PROJECTION_MATRIX
:
2598 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2599 params
[0] = matrix
[0];
2600 params
[1] = matrix
[1];
2601 params
[2] = matrix
[2];
2602 params
[3] = matrix
[3];
2603 params
[4] = matrix
[4];
2604 params
[5] = matrix
[5];
2605 params
[6] = matrix
[6];
2606 params
[7] = matrix
[7];
2607 params
[8] = matrix
[8];
2608 params
[9] = matrix
[9];
2609 params
[10] = matrix
[10];
2610 params
[11] = matrix
[11];
2611 params
[12] = matrix
[12];
2612 params
[13] = matrix
[13];
2613 params
[14] = matrix
[14];
2614 params
[15] = matrix
[15];
2617 case GL_PROJECTION_STACK_DEPTH
:
2618 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2620 case GL_READ_BUFFER
:
2621 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2624 params
[0] = ctx
->Pixel
.RedBias
;
2627 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.redBits
);
2630 params
[0] = ctx
->Pixel
.RedScale
;
2632 case GL_RENDER_MODE
:
2633 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2635 case GL_RESCALE_NORMAL
:
2636 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2639 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2641 case GL_SCISSOR_BOX
:
2642 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2643 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2644 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2645 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2647 case GL_SCISSOR_TEST
:
2648 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2650 case GL_SELECTION_BUFFER_SIZE
:
2651 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2653 case GL_SHADE_MODEL
:
2654 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2656 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2657 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2659 case GL_STENCIL_BITS
:
2660 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2662 case GL_STENCIL_CLEAR_VALUE
:
2663 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2665 case GL_STENCIL_FAIL
:
2666 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2668 case GL_STENCIL_FUNC
:
2669 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2671 case GL_STENCIL_PASS_DEPTH_FAIL
:
2672 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2674 case GL_STENCIL_PASS_DEPTH_PASS
:
2675 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2677 case GL_STENCIL_REF
:
2678 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2680 case GL_STENCIL_TEST
:
2681 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2683 case GL_STENCIL_VALUE_MASK
:
2684 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2686 case GL_STENCIL_WRITEMASK
:
2687 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2690 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2692 case GL_SUBPIXEL_BITS
:
2693 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2696 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2699 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2702 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2704 case GL_TEXTURE_1D_ARRAY_EXT
:
2705 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2706 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
2708 case GL_TEXTURE_2D_ARRAY_EXT
:
2709 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2710 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
2712 case GL_TEXTURE_BINDING_1D
:
2713 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
2715 case GL_TEXTURE_BINDING_2D
:
2716 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2718 case GL_TEXTURE_BINDING_3D
:
2719 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
2721 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
2722 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2723 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1DArray
->Name
);
2725 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
2726 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2727 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2DArray
->Name
);
2729 case GL_TEXTURE_GEN_S
:
2730 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2732 case GL_TEXTURE_GEN_T
:
2733 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2735 case GL_TEXTURE_GEN_R
:
2736 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2738 case GL_TEXTURE_GEN_Q
:
2739 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2741 case GL_TEXTURE_MATRIX
:
2743 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2744 params
[0] = matrix
[0];
2745 params
[1] = matrix
[1];
2746 params
[2] = matrix
[2];
2747 params
[3] = matrix
[3];
2748 params
[4] = matrix
[4];
2749 params
[5] = matrix
[5];
2750 params
[6] = matrix
[6];
2751 params
[7] = matrix
[7];
2752 params
[8] = matrix
[8];
2753 params
[9] = matrix
[9];
2754 params
[10] = matrix
[10];
2755 params
[11] = matrix
[11];
2756 params
[12] = matrix
[12];
2757 params
[13] = matrix
[13];
2758 params
[14] = matrix
[14];
2759 params
[15] = matrix
[15];
2762 case GL_TEXTURE_STACK_DEPTH
:
2763 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2765 case GL_UNPACK_ALIGNMENT
:
2766 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2768 case GL_UNPACK_LSB_FIRST
:
2769 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2771 case GL_UNPACK_ROW_LENGTH
:
2772 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2774 case GL_UNPACK_SKIP_PIXELS
:
2775 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2777 case GL_UNPACK_SKIP_ROWS
:
2778 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2780 case GL_UNPACK_SWAP_BYTES
:
2781 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2783 case GL_UNPACK_SKIP_IMAGES_EXT
:
2784 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2786 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2787 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2789 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2790 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2793 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2794 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2795 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2796 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2799 params
[0] = ctx
->Pixel
.ZoomX
;
2802 params
[0] = ctx
->Pixel
.ZoomY
;
2804 case GL_VERTEX_ARRAY
:
2805 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
2807 case GL_VERTEX_ARRAY_SIZE
:
2808 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
2810 case GL_VERTEX_ARRAY_TYPE
:
2811 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
2813 case GL_VERTEX_ARRAY_STRIDE
:
2814 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
2816 case GL_VERTEX_ARRAY_COUNT_EXT
:
2817 params
[0] = (GLfloat
)(0);
2819 case GL_NORMAL_ARRAY
:
2820 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
2822 case GL_NORMAL_ARRAY_TYPE
:
2823 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Type
);
2825 case GL_NORMAL_ARRAY_STRIDE
:
2826 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
2828 case GL_NORMAL_ARRAY_COUNT_EXT
:
2829 params
[0] = (GLfloat
)(0);
2831 case GL_COLOR_ARRAY
:
2832 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
2834 case GL_COLOR_ARRAY_SIZE
:
2835 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Size
);
2837 case GL_COLOR_ARRAY_TYPE
:
2838 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Type
);
2840 case GL_COLOR_ARRAY_STRIDE
:
2841 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
2843 case GL_COLOR_ARRAY_COUNT_EXT
:
2844 params
[0] = (GLfloat
)(0);
2846 case GL_INDEX_ARRAY
:
2847 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
2849 case GL_INDEX_ARRAY_TYPE
:
2850 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Type
);
2852 case GL_INDEX_ARRAY_STRIDE
:
2853 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
2855 case GL_INDEX_ARRAY_COUNT_EXT
:
2856 params
[0] = (GLfloat
)(0);
2858 case GL_TEXTURE_COORD_ARRAY
:
2859 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2861 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2862 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2864 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2865 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2867 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2868 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2870 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2871 params
[0] = (GLfloat
)(0);
2873 case GL_EDGE_FLAG_ARRAY
:
2874 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
2876 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2877 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
2879 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2880 params
[0] = (GLfloat
)(0);
2882 case GL_MAX_TEXTURE_UNITS_ARB
:
2883 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2884 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2886 case GL_ACTIVE_TEXTURE_ARB
:
2887 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2888 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2890 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2891 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2892 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2894 case GL_TEXTURE_CUBE_MAP_ARB
:
2895 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2896 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2898 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2899 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2900 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
2902 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2903 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2904 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2906 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2907 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2909 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2910 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2912 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2915 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2917 for (i
= 0; i
< n
; i
++)
2918 params
[i
] = ENUM_TO_FLOAT(formats
[i
]);
2921 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2922 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2923 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2925 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2926 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2927 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2929 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2931 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2932 params
[0] = matrix
[0];
2933 params
[1] = matrix
[4];
2934 params
[2] = matrix
[8];
2935 params
[3] = matrix
[12];
2936 params
[4] = matrix
[1];
2937 params
[5] = matrix
[5];
2938 params
[6] = matrix
[9];
2939 params
[7] = matrix
[13];
2940 params
[8] = matrix
[2];
2941 params
[9] = matrix
[6];
2942 params
[10] = matrix
[10];
2943 params
[11] = matrix
[14];
2944 params
[12] = matrix
[3];
2945 params
[13] = matrix
[7];
2946 params
[14] = matrix
[11];
2947 params
[15] = matrix
[15];
2950 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2952 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2953 params
[0] = matrix
[0];
2954 params
[1] = matrix
[4];
2955 params
[2] = matrix
[8];
2956 params
[3] = matrix
[12];
2957 params
[4] = matrix
[1];
2958 params
[5] = matrix
[5];
2959 params
[6] = matrix
[9];
2960 params
[7] = matrix
[13];
2961 params
[8] = matrix
[2];
2962 params
[9] = matrix
[6];
2963 params
[10] = matrix
[10];
2964 params
[11] = matrix
[14];
2965 params
[12] = matrix
[3];
2966 params
[13] = matrix
[7];
2967 params
[14] = matrix
[11];
2968 params
[15] = matrix
[15];
2971 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2973 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2974 params
[0] = matrix
[0];
2975 params
[1] = matrix
[4];
2976 params
[2] = matrix
[8];
2977 params
[3] = matrix
[12];
2978 params
[4] = matrix
[1];
2979 params
[5] = matrix
[5];
2980 params
[6] = matrix
[9];
2981 params
[7] = matrix
[13];
2982 params
[8] = matrix
[2];
2983 params
[9] = matrix
[6];
2984 params
[10] = matrix
[10];
2985 params
[11] = matrix
[14];
2986 params
[12] = matrix
[3];
2987 params
[13] = matrix
[7];
2988 params
[14] = matrix
[11];
2989 params
[15] = matrix
[15];
2992 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2994 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2995 params
[0] = matrix
[0];
2996 params
[1] = matrix
[4];
2997 params
[2] = matrix
[8];
2998 params
[3] = matrix
[12];
2999 params
[4] = matrix
[1];
3000 params
[5] = matrix
[5];
3001 params
[6] = matrix
[9];
3002 params
[7] = matrix
[13];
3003 params
[8] = matrix
[2];
3004 params
[9] = matrix
[6];
3005 params
[10] = matrix
[10];
3006 params
[11] = matrix
[14];
3007 params
[12] = matrix
[3];
3008 params
[13] = matrix
[7];
3009 params
[14] = matrix
[11];
3010 params
[15] = matrix
[15];
3013 case GL_COLOR_MATRIX_SGI
:
3015 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3016 params
[0] = matrix
[0];
3017 params
[1] = matrix
[1];
3018 params
[2] = matrix
[2];
3019 params
[3] = matrix
[3];
3020 params
[4] = matrix
[4];
3021 params
[5] = matrix
[5];
3022 params
[6] = matrix
[6];
3023 params
[7] = matrix
[7];
3024 params
[8] = matrix
[8];
3025 params
[9] = matrix
[9];
3026 params
[10] = matrix
[10];
3027 params
[11] = matrix
[11];
3028 params
[12] = matrix
[12];
3029 params
[13] = matrix
[13];
3030 params
[14] = matrix
[14];
3031 params
[15] = matrix
[15];
3034 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3035 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3037 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3038 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3040 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3041 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3043 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3044 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3046 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3047 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3049 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3050 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3052 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3053 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3055 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3056 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3058 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3059 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3061 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3062 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3064 case GL_CONVOLUTION_1D_EXT
:
3065 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3066 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3068 case GL_CONVOLUTION_2D_EXT
:
3069 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3070 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3072 case GL_SEPARABLE_2D_EXT
:
3073 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3074 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3076 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3077 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3078 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3080 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3081 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3082 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3084 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3085 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3086 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3088 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3089 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3090 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3092 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3093 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3094 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3096 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3097 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3098 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3100 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3101 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3102 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3104 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3105 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3106 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3109 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3110 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3113 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3114 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3116 case GL_COLOR_TABLE_SGI
:
3117 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3118 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3120 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3121 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3122 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3124 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3125 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3126 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3128 case GL_TEXTURE_COLOR_TABLE_SGI
:
3129 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3130 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3132 case GL_COLOR_SUM_EXT
:
3133 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3134 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3136 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3137 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3139 FLUSH_CURRENT(ctx
, 0);
3140 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3141 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3142 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3143 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3146 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3147 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3148 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3150 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3151 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3152 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3154 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3155 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3156 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3158 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3159 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3160 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3162 case GL_CURRENT_FOG_COORDINATE_EXT
:
3163 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3165 FLUSH_CURRENT(ctx
, 0);
3166 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3169 case GL_FOG_COORDINATE_ARRAY_EXT
:
3170 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3171 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3173 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3174 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3175 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3177 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3178 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3179 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3181 case GL_FOG_COORDINATE_SOURCE_EXT
:
3182 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3183 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3185 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3186 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3187 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3189 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3190 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3191 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3193 case GL_MULTISAMPLE_ARB
:
3194 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3196 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3197 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3199 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3200 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3202 case GL_SAMPLE_COVERAGE_ARB
:
3203 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3205 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3206 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3208 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3209 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3211 case GL_SAMPLE_BUFFERS_ARB
:
3212 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3214 case GL_SAMPLES_ARB
:
3215 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3217 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3218 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3219 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3221 case GL_POINT_SPRITE_NV
:
3222 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3225 case GL_POINT_SPRITE_R_MODE_NV
:
3226 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3227 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3229 case GL_POINT_SPRITE_COORD_ORIGIN
:
3230 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3231 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3233 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3234 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3235 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3237 case GL_VERTEX_PROGRAM_BINDING_NV
:
3238 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3239 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3241 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3242 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3243 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3245 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3246 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3249 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3250 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3251 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3253 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3254 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3255 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3257 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3258 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3261 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3262 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3265 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3266 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3267 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3269 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3270 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3271 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3273 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3274 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3277 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3278 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3279 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3281 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3282 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3283 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3285 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3286 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3287 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3289 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3290 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3291 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3293 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3294 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3295 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3297 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3298 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3299 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3301 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3302 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3303 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3305 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3306 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3307 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3309 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3310 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3311 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3313 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3314 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3315 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3317 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3318 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3319 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3321 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3322 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3323 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3325 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3326 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3327 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3329 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3330 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3333 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3334 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3335 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3337 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3338 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3339 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3341 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3342 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3345 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3346 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3347 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3349 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3350 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3351 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3353 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3354 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3355 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3357 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3358 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3359 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3361 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3362 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3363 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3365 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3366 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3367 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3369 case GL_FRAGMENT_PROGRAM_NV
:
3370 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3371 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3373 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3374 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3375 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3377 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3378 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3379 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3381 case GL_TEXTURE_RECTANGLE_NV
:
3382 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3383 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3385 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3386 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3387 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3389 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3390 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3391 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3393 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3394 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3395 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3397 case GL_ACTIVE_STENCIL_FACE_EXT
:
3398 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3399 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3401 case GL_MAX_SHININESS_NV
:
3402 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3403 params
[0] = ctx
->Const
.MaxShininess
;
3405 case GL_MAX_SPOT_EXPONENT_NV
:
3406 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3407 params
[0] = ctx
->Const
.MaxSpotExponent
;
3409 case GL_ARRAY_BUFFER_BINDING_ARB
:
3410 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3412 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3413 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3415 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3416 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3418 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3419 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3421 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3422 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3424 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3425 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3427 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3428 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3430 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3431 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3433 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3434 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3436 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3437 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3439 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3440 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3441 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3443 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3444 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3445 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3447 case GL_VERTEX_PROGRAM_ARB
:
3448 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3449 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3451 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3452 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3453 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3455 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3456 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3457 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3459 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3460 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3461 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3463 case GL_MAX_PROGRAM_MATRICES_ARB
:
3464 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3465 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3467 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3468 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3469 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3471 case GL_CURRENT_MATRIX_ARB
:
3472 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3474 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3475 params
[0] = matrix
[0];
3476 params
[1] = matrix
[1];
3477 params
[2] = matrix
[2];
3478 params
[3] = matrix
[3];
3479 params
[4] = matrix
[4];
3480 params
[5] = matrix
[5];
3481 params
[6] = matrix
[6];
3482 params
[7] = matrix
[7];
3483 params
[8] = matrix
[8];
3484 params
[9] = matrix
[9];
3485 params
[10] = matrix
[10];
3486 params
[11] = matrix
[11];
3487 params
[12] = matrix
[12];
3488 params
[13] = matrix
[13];
3489 params
[14] = matrix
[14];
3490 params
[15] = matrix
[15];
3493 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3494 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3496 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3497 params
[0] = matrix
[0];
3498 params
[1] = matrix
[4];
3499 params
[2] = matrix
[8];
3500 params
[3] = matrix
[12];
3501 params
[4] = matrix
[1];
3502 params
[5] = matrix
[5];
3503 params
[6] = matrix
[9];
3504 params
[7] = matrix
[13];
3505 params
[8] = matrix
[2];
3506 params
[9] = matrix
[6];
3507 params
[10] = matrix
[10];
3508 params
[11] = matrix
[14];
3509 params
[12] = matrix
[3];
3510 params
[13] = matrix
[7];
3511 params
[14] = matrix
[11];
3512 params
[15] = matrix
[15];
3515 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3516 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3517 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3519 case GL_PROGRAM_ERROR_POSITION_ARB
:
3520 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3521 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3523 case GL_FRAGMENT_PROGRAM_ARB
:
3524 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3525 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3527 case GL_MAX_TEXTURE_COORDS_ARB
:
3528 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3529 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3531 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3532 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3533 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3535 case GL_DEPTH_BOUNDS_TEST_EXT
:
3536 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3537 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3539 case GL_DEPTH_BOUNDS_EXT
:
3540 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3541 params
[0] = ctx
->Depth
.BoundsMin
;
3542 params
[1] = ctx
->Depth
.BoundsMax
;
3544 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3545 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3546 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3548 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3549 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3550 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3552 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3553 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3554 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3556 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3557 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3558 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3560 case GL_MAX_DRAW_BUFFERS_ARB
:
3561 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3563 case GL_DRAW_BUFFER0_ARB
:
3564 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3566 case GL_DRAW_BUFFER1_ARB
:
3569 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3570 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3573 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3574 params
[0] = ENUM_TO_FLOAT(buffer
);
3577 case GL_DRAW_BUFFER2_ARB
:
3580 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3581 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3584 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3585 params
[0] = ENUM_TO_FLOAT(buffer
);
3588 case GL_DRAW_BUFFER3_ARB
:
3591 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3592 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3595 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3596 params
[0] = ENUM_TO_FLOAT(buffer
);
3599 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3600 CHECK_EXT1(OES_read_format
, "GetFloatv");
3601 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3603 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3604 CHECK_EXT1(OES_read_format
, "GetFloatv");
3605 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3607 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3608 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3609 params
[0] = (GLfloat
)(6);
3611 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3612 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3613 params
[0] = (GLfloat
)(8);
3615 case GL_NUM_PASSES_ATI
:
3616 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3617 params
[0] = (GLfloat
)(2);
3619 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3620 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3621 params
[0] = (GLfloat
)(8);
3623 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3624 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3625 params
[0] = (GLfloat
)(16);
3627 case GL_COLOR_ALPHA_PAIRING_ATI
:
3628 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3629 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3631 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3632 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3633 params
[0] = (GLfloat
)(3);
3635 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3636 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3637 params
[0] = (GLfloat
)(3);
3639 case GL_STENCIL_BACK_FUNC
:
3640 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3642 case GL_STENCIL_BACK_VALUE_MASK
:
3643 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3645 case GL_STENCIL_BACK_WRITEMASK
:
3646 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3648 case GL_STENCIL_BACK_REF
:
3649 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3651 case GL_STENCIL_BACK_FAIL
:
3652 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3654 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3655 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3657 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3658 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3660 case GL_FRAMEBUFFER_BINDING_EXT
:
3661 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3662 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3664 case GL_RENDERBUFFER_BINDING_EXT
:
3665 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3666 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3668 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3669 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3670 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3672 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3673 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3674 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3676 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3677 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3678 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3680 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3681 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3682 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3684 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3685 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3686 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3688 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3689 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3690 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3692 case GL_MAX_VARYING_FLOATS_ARB
:
3693 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3694 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3696 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3697 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3698 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3700 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3701 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3702 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3704 case GL_CURRENT_PROGRAM
:
3705 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3706 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3708 case GL_MAX_SAMPLES
:
3709 CHECK_EXT1(ARB_framebuffer_object
, "GetFloatv");
3710 params
[0] = (GLfloat
)(ctx
->Const
.MaxSamples
);
3713 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3718 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3720 GET_CURRENT_CONTEXT(ctx
);
3721 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3727 _mesa_update_state(ctx
);
3729 if (ctx
->Driver
.GetIntegerv
&&
3730 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3734 case GL_ACCUM_RED_BITS
:
3735 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3737 case GL_ACCUM_GREEN_BITS
:
3738 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3740 case GL_ACCUM_BLUE_BITS
:
3741 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3743 case GL_ACCUM_ALPHA_BITS
:
3744 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3746 case GL_ACCUM_CLEAR_VALUE
:
3747 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3748 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3749 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3750 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3753 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3756 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3758 case GL_ALPHA_SCALE
:
3759 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3762 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3764 case GL_ALPHA_TEST_FUNC
:
3765 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3767 case GL_ALPHA_TEST_REF
:
3768 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3770 case GL_ATTRIB_STACK_DEPTH
:
3771 params
[0] = ctx
->AttribStackDepth
;
3773 case GL_AUTO_NORMAL
:
3774 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3776 case GL_AUX_BUFFERS
:
3777 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3780 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3783 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3786 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3788 case GL_BLEND_SRC_RGB_EXT
:
3789 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3791 case GL_BLEND_DST_RGB_EXT
:
3792 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3794 case GL_BLEND_SRC_ALPHA_EXT
:
3795 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3797 case GL_BLEND_DST_ALPHA_EXT
:
3798 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3800 case GL_BLEND_EQUATION
:
3801 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3803 case GL_BLEND_EQUATION_ALPHA_EXT
:
3804 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3806 case GL_BLEND_COLOR_EXT
:
3807 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3808 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3809 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3810 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3813 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3816 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3819 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3821 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3822 params
[0] = ctx
->ClientAttribStackDepth
;
3824 case GL_CLIP_PLANE0
:
3825 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3827 case GL_CLIP_PLANE1
:
3828 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3830 case GL_CLIP_PLANE2
:
3831 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3833 case GL_CLIP_PLANE3
:
3834 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3836 case GL_CLIP_PLANE4
:
3837 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3839 case GL_CLIP_PLANE5
:
3840 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3842 case GL_COLOR_CLEAR_VALUE
:
3843 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3844 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3845 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3846 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3848 case GL_COLOR_MATERIAL
:
3849 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3851 case GL_COLOR_MATERIAL_FACE
:
3852 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3854 case GL_COLOR_MATERIAL_PARAMETER
:
3855 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3857 case GL_COLOR_WRITEMASK
:
3858 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3859 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3860 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3861 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3864 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3866 case GL_CULL_FACE_MODE
:
3867 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3869 case GL_CURRENT_COLOR
:
3871 FLUSH_CURRENT(ctx
, 0);
3872 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3873 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3874 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3875 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3878 case GL_CURRENT_INDEX
:
3880 FLUSH_CURRENT(ctx
, 0);
3881 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3884 case GL_CURRENT_NORMAL
:
3886 FLUSH_CURRENT(ctx
, 0);
3887 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3888 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3889 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3892 case GL_CURRENT_RASTER_COLOR
:
3893 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3894 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3895 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3896 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3898 case GL_CURRENT_RASTER_DISTANCE
:
3899 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3901 case GL_CURRENT_RASTER_INDEX
:
3902 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3904 case GL_CURRENT_RASTER_POSITION
:
3905 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3906 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3907 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3908 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3910 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
3911 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
3912 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
3913 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
3914 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
3916 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3918 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3919 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3920 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3921 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3922 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3925 case GL_CURRENT_RASTER_POSITION_VALID
:
3926 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3928 case GL_CURRENT_TEXTURE_COORDS
:
3930 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3931 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3932 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3933 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3934 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3938 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3941 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3943 case GL_DEPTH_CLEAR_VALUE
:
3944 params
[0] = FLOAT_TO_INT(((GLfloat
) ctx
->Depth
.Clear
));
3947 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3949 case GL_DEPTH_RANGE
:
3950 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3951 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3953 case GL_DEPTH_SCALE
:
3954 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3957 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3959 case GL_DEPTH_WRITEMASK
:
3960 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3963 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3965 case GL_DOUBLEBUFFER
:
3966 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
3968 case GL_DRAW_BUFFER
:
3969 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3973 FLUSH_CURRENT(ctx
, 0);
3974 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
3977 case GL_FEEDBACK_BUFFER_SIZE
:
3978 params
[0] = ctx
->Feedback
.BufferSize
;
3980 case GL_FEEDBACK_BUFFER_TYPE
:
3981 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
3984 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
3987 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
3988 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
3989 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
3990 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
3992 case GL_FOG_DENSITY
:
3993 params
[0] = IROUND(ctx
->Fog
.Density
);
3996 params
[0] = IROUND(ctx
->Fog
.End
);
3999 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4002 params
[0] = IROUND(ctx
->Fog
.Index
);
4005 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4008 params
[0] = IROUND(ctx
->Fog
.Start
);
4011 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4014 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4017 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4019 case GL_GREEN_SCALE
:
4020 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4023 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4025 case GL_INDEX_CLEAR_VALUE
:
4026 params
[0] = ctx
->Color
.ClearIndex
;
4029 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4031 case GL_INDEX_OFFSET
:
4032 params
[0] = ctx
->Pixel
.IndexOffset
;
4034 case GL_INDEX_SHIFT
:
4035 params
[0] = ctx
->Pixel
.IndexShift
;
4037 case GL_INDEX_WRITEMASK
:
4038 params
[0] = ctx
->Color
.IndexMask
;
4041 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4044 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4047 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4050 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4053 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4056 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4059 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4062 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4065 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4067 case GL_LIGHT_MODEL_AMBIENT
:
4068 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4069 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4070 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4071 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4073 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4074 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4076 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4077 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4079 case GL_LIGHT_MODEL_TWO_SIDE
:
4080 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4082 case GL_LINE_SMOOTH
:
4083 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4085 case GL_LINE_SMOOTH_HINT
:
4086 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4088 case GL_LINE_STIPPLE
:
4089 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4091 case GL_LINE_STIPPLE_PATTERN
:
4092 params
[0] = ctx
->Line
.StipplePattern
;
4094 case GL_LINE_STIPPLE_REPEAT
:
4095 params
[0] = ctx
->Line
.StippleFactor
;
4098 params
[0] = IROUND(ctx
->Line
.Width
);
4100 case GL_LINE_WIDTH_GRANULARITY
:
4101 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4103 case GL_LINE_WIDTH_RANGE
:
4104 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4105 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4107 case GL_ALIASED_LINE_WIDTH_RANGE
:
4108 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4109 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4112 params
[0] = ctx
->List
.ListBase
;
4115 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
4120 if (!ctx
->CompileFlag
)
4122 else if (ctx
->ExecuteFlag
)
4123 mode
= GL_COMPILE_AND_EXECUTE
;
4126 params
[0] = ENUM_TO_INT(mode
);
4129 case GL_INDEX_LOGIC_OP
:
4130 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4132 case GL_COLOR_LOGIC_OP
:
4133 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4135 case GL_LOGIC_OP_MODE
:
4136 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4138 case GL_MAP1_COLOR_4
:
4139 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4141 case GL_MAP1_GRID_DOMAIN
:
4142 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4143 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4145 case GL_MAP1_GRID_SEGMENTS
:
4146 params
[0] = ctx
->Eval
.MapGrid1un
;
4149 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4151 case GL_MAP1_NORMAL
:
4152 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4154 case GL_MAP1_TEXTURE_COORD_1
:
4155 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4157 case GL_MAP1_TEXTURE_COORD_2
:
4158 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4160 case GL_MAP1_TEXTURE_COORD_3
:
4161 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4163 case GL_MAP1_TEXTURE_COORD_4
:
4164 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4166 case GL_MAP1_VERTEX_3
:
4167 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4169 case GL_MAP1_VERTEX_4
:
4170 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4172 case GL_MAP2_COLOR_4
:
4173 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4175 case GL_MAP2_GRID_DOMAIN
:
4176 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4177 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4178 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4179 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4181 case GL_MAP2_GRID_SEGMENTS
:
4182 params
[0] = ctx
->Eval
.MapGrid2un
;
4183 params
[1] = ctx
->Eval
.MapGrid2vn
;
4186 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4188 case GL_MAP2_NORMAL
:
4189 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4191 case GL_MAP2_TEXTURE_COORD_1
:
4192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4194 case GL_MAP2_TEXTURE_COORD_2
:
4195 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4197 case GL_MAP2_TEXTURE_COORD_3
:
4198 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4200 case GL_MAP2_TEXTURE_COORD_4
:
4201 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4203 case GL_MAP2_VERTEX_3
:
4204 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4206 case GL_MAP2_VERTEX_4
:
4207 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4210 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4212 case GL_MAP_STENCIL
:
4213 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4215 case GL_MATRIX_MODE
:
4216 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4218 case GL_MAX_ATTRIB_STACK_DEPTH
:
4219 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4221 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4222 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4224 case GL_MAX_CLIP_PLANES
:
4225 params
[0] = ctx
->Const
.MaxClipPlanes
;
4227 case GL_MAX_ELEMENTS_VERTICES
:
4228 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4230 case GL_MAX_ELEMENTS_INDICES
:
4231 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4233 case GL_MAX_EVAL_ORDER
:
4234 params
[0] = MAX_EVAL_ORDER
;
4237 params
[0] = ctx
->Const
.MaxLights
;
4239 case GL_MAX_LIST_NESTING
:
4240 params
[0] = MAX_LIST_NESTING
;
4242 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4243 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4245 case GL_MAX_NAME_STACK_DEPTH
:
4246 params
[0] = MAX_NAME_STACK_DEPTH
;
4248 case GL_MAX_PIXEL_MAP_TABLE
:
4249 params
[0] = MAX_PIXEL_MAP_TABLE
;
4251 case GL_MAX_PROJECTION_STACK_DEPTH
:
4252 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4254 case GL_MAX_TEXTURE_SIZE
:
4255 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4257 case GL_MAX_3D_TEXTURE_SIZE
:
4258 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4260 case GL_MAX_TEXTURE_STACK_DEPTH
:
4261 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4263 case GL_MAX_VIEWPORT_DIMS
:
4264 params
[0] = ctx
->Const
.MaxViewportWidth
;
4265 params
[1] = ctx
->Const
.MaxViewportHeight
;
4267 case GL_MODELVIEW_MATRIX
:
4269 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4270 params
[0] = IROUND(matrix
[0]);
4271 params
[1] = IROUND(matrix
[1]);
4272 params
[2] = IROUND(matrix
[2]);
4273 params
[3] = IROUND(matrix
[3]);
4274 params
[4] = IROUND(matrix
[4]);
4275 params
[5] = IROUND(matrix
[5]);
4276 params
[6] = IROUND(matrix
[6]);
4277 params
[7] = IROUND(matrix
[7]);
4278 params
[8] = IROUND(matrix
[8]);
4279 params
[9] = IROUND(matrix
[9]);
4280 params
[10] = IROUND(matrix
[10]);
4281 params
[11] = IROUND(matrix
[11]);
4282 params
[12] = IROUND(matrix
[12]);
4283 params
[13] = IROUND(matrix
[13]);
4284 params
[14] = IROUND(matrix
[14]);
4285 params
[15] = IROUND(matrix
[15]);
4288 case GL_MODELVIEW_STACK_DEPTH
:
4289 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4291 case GL_NAME_STACK_DEPTH
:
4292 params
[0] = ctx
->Select
.NameStackDepth
;
4295 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4297 case GL_PACK_ALIGNMENT
:
4298 params
[0] = ctx
->Pack
.Alignment
;
4300 case GL_PACK_LSB_FIRST
:
4301 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4303 case GL_PACK_ROW_LENGTH
:
4304 params
[0] = ctx
->Pack
.RowLength
;
4306 case GL_PACK_SKIP_PIXELS
:
4307 params
[0] = ctx
->Pack
.SkipPixels
;
4309 case GL_PACK_SKIP_ROWS
:
4310 params
[0] = ctx
->Pack
.SkipRows
;
4312 case GL_PACK_SWAP_BYTES
:
4313 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4315 case GL_PACK_SKIP_IMAGES_EXT
:
4316 params
[0] = ctx
->Pack
.SkipImages
;
4318 case GL_PACK_IMAGE_HEIGHT_EXT
:
4319 params
[0] = ctx
->Pack
.ImageHeight
;
4321 case GL_PACK_INVERT_MESA
:
4322 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4324 case GL_PERSPECTIVE_CORRECTION_HINT
:
4325 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4327 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4328 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4330 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4331 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4333 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4334 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4336 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4337 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4339 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4340 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4342 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4343 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4345 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4346 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4348 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4349 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4351 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4352 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4354 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4355 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4358 params
[0] = IROUND(ctx
->Point
.Size
);
4360 case GL_POINT_SIZE_GRANULARITY
:
4361 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4363 case GL_POINT_SIZE_RANGE
:
4364 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4365 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4367 case GL_ALIASED_POINT_SIZE_RANGE
:
4368 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4369 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4371 case GL_POINT_SMOOTH
:
4372 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4374 case GL_POINT_SMOOTH_HINT
:
4375 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4377 case GL_POINT_SIZE_MIN_EXT
:
4378 params
[0] = IROUND(ctx
->Point
.MinSize
);
4380 case GL_POINT_SIZE_MAX_EXT
:
4381 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4383 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4384 params
[0] = IROUND(ctx
->Point
.Threshold
);
4386 case GL_DISTANCE_ATTENUATION_EXT
:
4387 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4388 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4389 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4391 case GL_POLYGON_MODE
:
4392 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4393 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4395 case GL_POLYGON_OFFSET_BIAS_EXT
:
4396 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4398 case GL_POLYGON_OFFSET_FACTOR
:
4399 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4401 case GL_POLYGON_OFFSET_UNITS
:
4402 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4404 case GL_POLYGON_OFFSET_POINT
:
4405 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4407 case GL_POLYGON_OFFSET_LINE
:
4408 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4410 case GL_POLYGON_OFFSET_FILL
:
4411 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4413 case GL_POLYGON_SMOOTH
:
4414 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4416 case GL_POLYGON_SMOOTH_HINT
:
4417 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4419 case GL_POLYGON_STIPPLE
:
4420 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4422 case GL_PROJECTION_MATRIX
:
4424 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4425 params
[0] = IROUND(matrix
[0]);
4426 params
[1] = IROUND(matrix
[1]);
4427 params
[2] = IROUND(matrix
[2]);
4428 params
[3] = IROUND(matrix
[3]);
4429 params
[4] = IROUND(matrix
[4]);
4430 params
[5] = IROUND(matrix
[5]);
4431 params
[6] = IROUND(matrix
[6]);
4432 params
[7] = IROUND(matrix
[7]);
4433 params
[8] = IROUND(matrix
[8]);
4434 params
[9] = IROUND(matrix
[9]);
4435 params
[10] = IROUND(matrix
[10]);
4436 params
[11] = IROUND(matrix
[11]);
4437 params
[12] = IROUND(matrix
[12]);
4438 params
[13] = IROUND(matrix
[13]);
4439 params
[14] = IROUND(matrix
[14]);
4440 params
[15] = IROUND(matrix
[15]);
4443 case GL_PROJECTION_STACK_DEPTH
:
4444 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4446 case GL_READ_BUFFER
:
4447 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4450 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4453 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4456 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4458 case GL_RENDER_MODE
:
4459 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4461 case GL_RESCALE_NORMAL
:
4462 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4465 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4467 case GL_SCISSOR_BOX
:
4468 params
[0] = ctx
->Scissor
.X
;
4469 params
[1] = ctx
->Scissor
.Y
;
4470 params
[2] = ctx
->Scissor
.Width
;
4471 params
[3] = ctx
->Scissor
.Height
;
4473 case GL_SCISSOR_TEST
:
4474 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4476 case GL_SELECTION_BUFFER_SIZE
:
4477 params
[0] = ctx
->Select
.BufferSize
;
4479 case GL_SHADE_MODEL
:
4480 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4482 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4483 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4485 case GL_STENCIL_BITS
:
4486 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4488 case GL_STENCIL_CLEAR_VALUE
:
4489 params
[0] = ctx
->Stencil
.Clear
;
4491 case GL_STENCIL_FAIL
:
4492 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4494 case GL_STENCIL_FUNC
:
4495 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4497 case GL_STENCIL_PASS_DEPTH_FAIL
:
4498 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4500 case GL_STENCIL_PASS_DEPTH_PASS
:
4501 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4503 case GL_STENCIL_REF
:
4504 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4506 case GL_STENCIL_TEST
:
4507 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4509 case GL_STENCIL_VALUE_MASK
:
4510 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4512 case GL_STENCIL_WRITEMASK
:
4513 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4516 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4518 case GL_SUBPIXEL_BITS
:
4519 params
[0] = ctx
->Const
.SubPixelBits
;
4522 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4525 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4528 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4530 case GL_TEXTURE_1D_ARRAY_EXT
:
4531 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4532 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4534 case GL_TEXTURE_2D_ARRAY_EXT
:
4535 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4536 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4538 case GL_TEXTURE_BINDING_1D
:
4539 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4541 case GL_TEXTURE_BINDING_2D
:
4542 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4544 case GL_TEXTURE_BINDING_3D
:
4545 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4547 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4548 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4549 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1DArray
->Name
;
4551 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4552 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4553 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2DArray
->Name
;
4555 case GL_TEXTURE_GEN_S
:
4556 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4558 case GL_TEXTURE_GEN_T
:
4559 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4561 case GL_TEXTURE_GEN_R
:
4562 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4564 case GL_TEXTURE_GEN_Q
:
4565 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4567 case GL_TEXTURE_MATRIX
:
4569 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4570 params
[0] = IROUND(matrix
[0]);
4571 params
[1] = IROUND(matrix
[1]);
4572 params
[2] = IROUND(matrix
[2]);
4573 params
[3] = IROUND(matrix
[3]);
4574 params
[4] = IROUND(matrix
[4]);
4575 params
[5] = IROUND(matrix
[5]);
4576 params
[6] = IROUND(matrix
[6]);
4577 params
[7] = IROUND(matrix
[7]);
4578 params
[8] = IROUND(matrix
[8]);
4579 params
[9] = IROUND(matrix
[9]);
4580 params
[10] = IROUND(matrix
[10]);
4581 params
[11] = IROUND(matrix
[11]);
4582 params
[12] = IROUND(matrix
[12]);
4583 params
[13] = IROUND(matrix
[13]);
4584 params
[14] = IROUND(matrix
[14]);
4585 params
[15] = IROUND(matrix
[15]);
4588 case GL_TEXTURE_STACK_DEPTH
:
4589 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4591 case GL_UNPACK_ALIGNMENT
:
4592 params
[0] = ctx
->Unpack
.Alignment
;
4594 case GL_UNPACK_LSB_FIRST
:
4595 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4597 case GL_UNPACK_ROW_LENGTH
:
4598 params
[0] = ctx
->Unpack
.RowLength
;
4600 case GL_UNPACK_SKIP_PIXELS
:
4601 params
[0] = ctx
->Unpack
.SkipPixels
;
4603 case GL_UNPACK_SKIP_ROWS
:
4604 params
[0] = ctx
->Unpack
.SkipRows
;
4606 case GL_UNPACK_SWAP_BYTES
:
4607 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4609 case GL_UNPACK_SKIP_IMAGES_EXT
:
4610 params
[0] = ctx
->Unpack
.SkipImages
;
4612 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4613 params
[0] = ctx
->Unpack
.ImageHeight
;
4615 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4616 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4619 params
[0] = ctx
->Viewport
.X
;
4620 params
[1] = ctx
->Viewport
.Y
;
4621 params
[2] = ctx
->Viewport
.Width
;
4622 params
[3] = ctx
->Viewport
.Height
;
4625 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4628 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4630 case GL_VERTEX_ARRAY
:
4631 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4633 case GL_VERTEX_ARRAY_SIZE
:
4634 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4636 case GL_VERTEX_ARRAY_TYPE
:
4637 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4639 case GL_VERTEX_ARRAY_STRIDE
:
4640 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4642 case GL_VERTEX_ARRAY_COUNT_EXT
:
4645 case GL_NORMAL_ARRAY
:
4646 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4648 case GL_NORMAL_ARRAY_TYPE
:
4649 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4651 case GL_NORMAL_ARRAY_STRIDE
:
4652 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4654 case GL_NORMAL_ARRAY_COUNT_EXT
:
4657 case GL_COLOR_ARRAY
:
4658 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4660 case GL_COLOR_ARRAY_SIZE
:
4661 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4663 case GL_COLOR_ARRAY_TYPE
:
4664 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4666 case GL_COLOR_ARRAY_STRIDE
:
4667 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4669 case GL_COLOR_ARRAY_COUNT_EXT
:
4672 case GL_INDEX_ARRAY
:
4673 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4675 case GL_INDEX_ARRAY_TYPE
:
4676 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4678 case GL_INDEX_ARRAY_STRIDE
:
4679 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4681 case GL_INDEX_ARRAY_COUNT_EXT
:
4684 case GL_TEXTURE_COORD_ARRAY
:
4685 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4687 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4688 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4690 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4691 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4693 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4694 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4696 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4699 case GL_EDGE_FLAG_ARRAY
:
4700 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4702 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4703 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4705 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4708 case GL_MAX_TEXTURE_UNITS_ARB
:
4709 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4710 params
[0] = ctx
->Const
.MaxTextureUnits
;
4712 case GL_ACTIVE_TEXTURE_ARB
:
4713 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4714 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4716 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4717 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4718 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4720 case GL_TEXTURE_CUBE_MAP_ARB
:
4721 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4722 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4724 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4725 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4726 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4728 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4729 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4730 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4732 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4733 params
[0] = ctx
->Hint
.TextureCompression
;
4735 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4736 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4738 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4741 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4743 for (i
= 0; i
< n
; i
++)
4744 params
[i
] = ENUM_TO_INT(formats
[i
]);
4747 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4748 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4749 params
[0] = ctx
->Array
.LockFirst
;
4751 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4752 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4753 params
[0] = ctx
->Array
.LockCount
;
4755 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4757 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4758 params
[0] = IROUND(matrix
[0]);
4759 params
[1] = IROUND(matrix
[4]);
4760 params
[2] = IROUND(matrix
[8]);
4761 params
[3] = IROUND(matrix
[12]);
4762 params
[4] = IROUND(matrix
[1]);
4763 params
[5] = IROUND(matrix
[5]);
4764 params
[6] = IROUND(matrix
[9]);
4765 params
[7] = IROUND(matrix
[13]);
4766 params
[8] = IROUND(matrix
[2]);
4767 params
[9] = IROUND(matrix
[6]);
4768 params
[10] = IROUND(matrix
[10]);
4769 params
[11] = IROUND(matrix
[14]);
4770 params
[12] = IROUND(matrix
[3]);
4771 params
[13] = IROUND(matrix
[7]);
4772 params
[14] = IROUND(matrix
[11]);
4773 params
[15] = IROUND(matrix
[15]);
4776 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4778 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4779 params
[0] = IROUND(matrix
[0]);
4780 params
[1] = IROUND(matrix
[4]);
4781 params
[2] = IROUND(matrix
[8]);
4782 params
[3] = IROUND(matrix
[12]);
4783 params
[4] = IROUND(matrix
[1]);
4784 params
[5] = IROUND(matrix
[5]);
4785 params
[6] = IROUND(matrix
[9]);
4786 params
[7] = IROUND(matrix
[13]);
4787 params
[8] = IROUND(matrix
[2]);
4788 params
[9] = IROUND(matrix
[6]);
4789 params
[10] = IROUND(matrix
[10]);
4790 params
[11] = IROUND(matrix
[14]);
4791 params
[12] = IROUND(matrix
[3]);
4792 params
[13] = IROUND(matrix
[7]);
4793 params
[14] = IROUND(matrix
[11]);
4794 params
[15] = IROUND(matrix
[15]);
4797 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4799 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4800 params
[0] = IROUND(matrix
[0]);
4801 params
[1] = IROUND(matrix
[4]);
4802 params
[2] = IROUND(matrix
[8]);
4803 params
[3] = IROUND(matrix
[12]);
4804 params
[4] = IROUND(matrix
[1]);
4805 params
[5] = IROUND(matrix
[5]);
4806 params
[6] = IROUND(matrix
[9]);
4807 params
[7] = IROUND(matrix
[13]);
4808 params
[8] = IROUND(matrix
[2]);
4809 params
[9] = IROUND(matrix
[6]);
4810 params
[10] = IROUND(matrix
[10]);
4811 params
[11] = IROUND(matrix
[14]);
4812 params
[12] = IROUND(matrix
[3]);
4813 params
[13] = IROUND(matrix
[7]);
4814 params
[14] = IROUND(matrix
[11]);
4815 params
[15] = IROUND(matrix
[15]);
4818 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4820 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4821 params
[0] = IROUND(matrix
[0]);
4822 params
[1] = IROUND(matrix
[4]);
4823 params
[2] = IROUND(matrix
[8]);
4824 params
[3] = IROUND(matrix
[12]);
4825 params
[4] = IROUND(matrix
[1]);
4826 params
[5] = IROUND(matrix
[5]);
4827 params
[6] = IROUND(matrix
[9]);
4828 params
[7] = IROUND(matrix
[13]);
4829 params
[8] = IROUND(matrix
[2]);
4830 params
[9] = IROUND(matrix
[6]);
4831 params
[10] = IROUND(matrix
[10]);
4832 params
[11] = IROUND(matrix
[14]);
4833 params
[12] = IROUND(matrix
[3]);
4834 params
[13] = IROUND(matrix
[7]);
4835 params
[14] = IROUND(matrix
[11]);
4836 params
[15] = IROUND(matrix
[15]);
4839 case GL_COLOR_MATRIX_SGI
:
4841 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4842 params
[0] = IROUND(matrix
[0]);
4843 params
[1] = IROUND(matrix
[1]);
4844 params
[2] = IROUND(matrix
[2]);
4845 params
[3] = IROUND(matrix
[3]);
4846 params
[4] = IROUND(matrix
[4]);
4847 params
[5] = IROUND(matrix
[5]);
4848 params
[6] = IROUND(matrix
[6]);
4849 params
[7] = IROUND(matrix
[7]);
4850 params
[8] = IROUND(matrix
[8]);
4851 params
[9] = IROUND(matrix
[9]);
4852 params
[10] = IROUND(matrix
[10]);
4853 params
[11] = IROUND(matrix
[11]);
4854 params
[12] = IROUND(matrix
[12]);
4855 params
[13] = IROUND(matrix
[13]);
4856 params
[14] = IROUND(matrix
[14]);
4857 params
[15] = IROUND(matrix
[15]);
4860 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4861 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4863 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4864 params
[0] = MAX_COLOR_STACK_DEPTH
;
4866 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4867 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4869 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4870 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4872 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4873 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4875 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4876 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4878 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4879 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4881 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4882 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4884 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4885 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4887 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4888 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4890 case GL_CONVOLUTION_1D_EXT
:
4891 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4892 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4894 case GL_CONVOLUTION_2D_EXT
:
4895 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4896 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4898 case GL_SEPARABLE_2D_EXT
:
4899 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4900 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4902 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4903 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4904 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4906 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4907 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4908 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4910 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4911 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4912 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4914 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4915 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4916 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4918 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4919 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4920 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4922 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4923 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4924 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4926 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4927 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4928 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4930 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4931 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4932 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4935 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4936 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4939 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4940 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4942 case GL_COLOR_TABLE_SGI
:
4943 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4944 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
4946 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4947 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4948 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
4950 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4951 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4952 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
4954 case GL_TEXTURE_COLOR_TABLE_SGI
:
4955 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
4956 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4958 case GL_COLOR_SUM_EXT
:
4959 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
4960 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4962 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4963 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4965 FLUSH_CURRENT(ctx
, 0);
4966 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4967 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4968 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4969 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4972 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4973 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4974 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
4976 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
4977 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4978 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
4980 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
4981 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4982 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
4984 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
4985 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4986 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
4988 case GL_CURRENT_FOG_COORDINATE_EXT
:
4989 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4991 FLUSH_CURRENT(ctx
, 0);
4992 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
4995 case GL_FOG_COORDINATE_ARRAY_EXT
:
4996 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4997 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
4999 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5000 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5001 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
5003 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5004 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5005 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
5007 case GL_FOG_COORDINATE_SOURCE_EXT
:
5008 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5009 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5011 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5012 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5013 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5015 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5016 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5017 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5019 case GL_MULTISAMPLE_ARB
:
5020 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5022 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5023 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5025 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5026 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5028 case GL_SAMPLE_COVERAGE_ARB
:
5029 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5031 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5032 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5034 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5035 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5037 case GL_SAMPLE_BUFFERS_ARB
:
5038 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5040 case GL_SAMPLES_ARB
:
5041 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5043 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5044 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5045 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5047 case GL_POINT_SPRITE_NV
:
5048 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5049 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5051 case GL_POINT_SPRITE_R_MODE_NV
:
5052 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5053 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5055 case GL_POINT_SPRITE_COORD_ORIGIN
:
5056 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5057 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5059 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5060 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5061 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5063 case GL_VERTEX_PROGRAM_BINDING_NV
:
5064 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5065 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5067 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5068 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5069 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5071 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5072 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5073 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5075 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5076 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5077 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5079 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5080 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5081 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5083 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5084 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5085 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5087 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5088 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5089 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5091 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5092 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5093 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5095 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5096 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5097 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5099 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5100 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5101 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5103 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5104 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5105 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5107 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5108 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5109 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5111 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5112 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5113 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5115 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5116 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5117 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5119 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5120 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5121 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5123 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5124 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5125 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5127 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5128 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5129 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5131 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5132 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5133 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5135 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5136 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5137 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5139 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5140 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5141 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5143 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5144 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5145 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5147 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5148 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5149 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5151 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5152 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5153 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5155 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5156 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5157 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5159 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5160 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5161 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5163 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5164 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5165 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5167 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5168 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5169 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5171 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5172 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5173 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5175 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5176 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5177 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5179 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5180 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5181 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5183 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5184 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5185 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5187 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5188 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5189 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5191 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5192 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5193 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5195 case GL_FRAGMENT_PROGRAM_NV
:
5196 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5197 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5199 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5200 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5201 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5203 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5204 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5205 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5207 case GL_TEXTURE_RECTANGLE_NV
:
5208 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5209 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5211 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5212 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5213 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5215 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5216 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5217 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5219 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5220 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5221 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5223 case GL_ACTIVE_STENCIL_FACE_EXT
:
5224 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5225 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5227 case GL_MAX_SHININESS_NV
:
5228 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5229 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5231 case GL_MAX_SPOT_EXPONENT_NV
:
5232 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5233 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5235 case GL_ARRAY_BUFFER_BINDING_ARB
:
5236 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5238 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5239 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5241 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5242 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5244 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5245 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5247 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5248 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5250 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5251 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5253 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5254 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5256 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5257 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5259 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5260 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5262 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5263 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5265 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5266 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5267 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5269 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5270 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5271 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5273 case GL_VERTEX_PROGRAM_ARB
:
5274 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5275 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5277 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5278 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5279 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5281 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5282 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5283 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5285 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5286 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5287 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5289 case GL_MAX_PROGRAM_MATRICES_ARB
:
5290 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5291 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5293 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5294 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5295 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5297 case GL_CURRENT_MATRIX_ARB
:
5298 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5300 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5301 params
[0] = IROUND(matrix
[0]);
5302 params
[1] = IROUND(matrix
[1]);
5303 params
[2] = IROUND(matrix
[2]);
5304 params
[3] = IROUND(matrix
[3]);
5305 params
[4] = IROUND(matrix
[4]);
5306 params
[5] = IROUND(matrix
[5]);
5307 params
[6] = IROUND(matrix
[6]);
5308 params
[7] = IROUND(matrix
[7]);
5309 params
[8] = IROUND(matrix
[8]);
5310 params
[9] = IROUND(matrix
[9]);
5311 params
[10] = IROUND(matrix
[10]);
5312 params
[11] = IROUND(matrix
[11]);
5313 params
[12] = IROUND(matrix
[12]);
5314 params
[13] = IROUND(matrix
[13]);
5315 params
[14] = IROUND(matrix
[14]);
5316 params
[15] = IROUND(matrix
[15]);
5319 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5320 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5322 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5323 params
[0] = IROUND(matrix
[0]);
5324 params
[1] = IROUND(matrix
[4]);
5325 params
[2] = IROUND(matrix
[8]);
5326 params
[3] = IROUND(matrix
[12]);
5327 params
[4] = IROUND(matrix
[1]);
5328 params
[5] = IROUND(matrix
[5]);
5329 params
[6] = IROUND(matrix
[9]);
5330 params
[7] = IROUND(matrix
[13]);
5331 params
[8] = IROUND(matrix
[2]);
5332 params
[9] = IROUND(matrix
[6]);
5333 params
[10] = IROUND(matrix
[10]);
5334 params
[11] = IROUND(matrix
[14]);
5335 params
[12] = IROUND(matrix
[3]);
5336 params
[13] = IROUND(matrix
[7]);
5337 params
[14] = IROUND(matrix
[11]);
5338 params
[15] = IROUND(matrix
[15]);
5341 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5342 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5343 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5345 case GL_PROGRAM_ERROR_POSITION_ARB
:
5346 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5347 params
[0] = ctx
->Program
.ErrorPos
;
5349 case GL_FRAGMENT_PROGRAM_ARB
:
5350 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5351 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5353 case GL_MAX_TEXTURE_COORDS_ARB
:
5354 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5355 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5357 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5358 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5359 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5361 case GL_DEPTH_BOUNDS_TEST_EXT
:
5362 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5363 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5365 case GL_DEPTH_BOUNDS_EXT
:
5366 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5367 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5368 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5370 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5371 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5372 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5374 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5375 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5376 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5378 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5379 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5380 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5382 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5383 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5384 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5386 case GL_MAX_DRAW_BUFFERS_ARB
:
5387 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5389 case GL_DRAW_BUFFER0_ARB
:
5390 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5392 case GL_DRAW_BUFFER1_ARB
:
5395 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5396 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5399 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5400 params
[0] = ENUM_TO_INT(buffer
);
5403 case GL_DRAW_BUFFER2_ARB
:
5406 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5407 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5410 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5411 params
[0] = ENUM_TO_INT(buffer
);
5414 case GL_DRAW_BUFFER3_ARB
:
5417 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5418 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5421 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5422 params
[0] = ENUM_TO_INT(buffer
);
5425 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5426 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5427 params
[0] = ctx
->Const
.ColorReadType
;
5429 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5430 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5431 params
[0] = ctx
->Const
.ColorReadFormat
;
5433 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5434 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5437 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5438 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5441 case GL_NUM_PASSES_ATI
:
5442 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5445 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5446 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5449 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5450 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5453 case GL_COLOR_ALPHA_PAIRING_ATI
:
5454 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5455 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5457 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5458 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5461 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5462 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5465 case GL_STENCIL_BACK_FUNC
:
5466 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5468 case GL_STENCIL_BACK_VALUE_MASK
:
5469 params
[0] = ctx
->Stencil
.ValueMask
[1];
5471 case GL_STENCIL_BACK_WRITEMASK
:
5472 params
[0] = ctx
->Stencil
.WriteMask
[1];
5474 case GL_STENCIL_BACK_REF
:
5475 params
[0] = ctx
->Stencil
.Ref
[1];
5477 case GL_STENCIL_BACK_FAIL
:
5478 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5480 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5481 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5483 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5484 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5486 case GL_FRAMEBUFFER_BINDING_EXT
:
5487 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5488 params
[0] = ctx
->DrawBuffer
->Name
;
5490 case GL_RENDERBUFFER_BINDING_EXT
:
5491 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5492 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5494 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5495 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5496 params
[0] = ctx
->Const
.MaxColorAttachments
;
5498 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5499 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5500 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5502 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5503 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5504 params
[0] = ctx
->ReadBuffer
->Name
;
5506 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5507 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5508 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5510 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5511 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5512 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5514 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5515 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5516 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5518 case GL_MAX_VARYING_FLOATS_ARB
:
5519 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5520 params
[0] = ctx
->Const
.MaxVarying
* 4;
5522 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5523 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5524 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5526 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5527 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5528 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5530 case GL_CURRENT_PROGRAM
:
5531 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5532 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5534 case GL_MAX_SAMPLES
:
5535 CHECK_EXT1(ARB_framebuffer_object
, "GetIntegerv");
5536 params
[0] = ctx
->Const
.MaxSamples
;
5539 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5545 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5547 const GLfloat magic
= -1234.5F
;
5554 /* Init temp array to magic numbers so we can figure out how many values
5555 * are returned by the GetFloatv() call.
5557 for (i
= 0; i
< 16; i
++)
5560 _mesa_GetFloatv(pname
, values
);
5562 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5563 params
[i
] = (GLdouble
) values
[i
];