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_INT64(B) ( (GLint64) (B) )
24 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
26 #define ENUM_TO_INT64(E) ( (GLint64) (E) )
30 * Check if named extension is enabled, if not generate error and return.
32 #define CHECK_EXT1(EXT1, FUNC) \
33 if (!ctx->Extensions.EXT1) { \
34 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
39 * Check if either of two extensions is enabled.
41 #define CHECK_EXT2(EXT1, EXT2, FUNC) \
42 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \
43 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
48 * Check if either of three extensions is enabled.
50 #define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC) \
51 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
52 !ctx->Extensions.EXT3) { \
53 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
58 * Check if either of four extensions is enabled.
60 #define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \
61 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
62 !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \
63 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
69 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
71 GET_CURRENT_CONTEXT(ctx
);
72 ASSERT_OUTSIDE_BEGIN_END(ctx
);
78 _mesa_update_state(ctx
);
80 if (ctx
->Driver
.GetBooleanv
&&
81 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
85 case GL_ACCUM_RED_BITS
:
86 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumRedBits
);
88 case GL_ACCUM_GREEN_BITS
:
89 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
91 case GL_ACCUM_BLUE_BITS
:
92 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
94 case GL_ACCUM_ALPHA_BITS
:
95 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
97 case GL_ACCUM_CLEAR_VALUE
:
98 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
99 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
100 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
101 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
104 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
107 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.alphaBits
);
110 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
113 params
[0] = ctx
->Color
.AlphaEnabled
;
115 case GL_ALPHA_TEST_FUNC
:
116 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
118 case GL_ALPHA_TEST_REF
:
119 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
121 case GL_ATTRIB_STACK_DEPTH
:
122 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
125 params
[0] = ctx
->Eval
.AutoNormal
;
128 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
131 params
[0] = ctx
->Color
.BlendEnabled
;
134 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
137 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
139 case GL_BLEND_SRC_RGB_EXT
:
140 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
142 case GL_BLEND_DST_RGB_EXT
:
143 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
145 case GL_BLEND_SRC_ALPHA_EXT
:
146 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
148 case GL_BLEND_DST_ALPHA_EXT
:
149 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
151 case GL_BLEND_EQUATION
:
152 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
154 case GL_BLEND_EQUATION_ALPHA_EXT
:
155 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
157 case GL_BLEND_COLOR_EXT
:
158 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
159 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
160 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
161 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
164 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
167 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.blueBits
);
170 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
172 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
173 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
176 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
179 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
182 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
185 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
188 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
191 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
193 case GL_COLOR_CLEAR_VALUE
:
194 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
195 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
196 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
197 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
199 case GL_COLOR_MATERIAL
:
200 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
202 case GL_COLOR_MATERIAL_FACE
:
203 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
205 case GL_COLOR_MATERIAL_PARAMETER
:
206 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
208 case GL_COLOR_WRITEMASK
:
209 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
210 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
211 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
212 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
215 params
[0] = ctx
->Polygon
.CullFlag
;
217 case GL_CULL_FACE_MODE
:
218 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
220 case GL_CURRENT_COLOR
:
222 FLUSH_CURRENT(ctx
, 0);
223 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
224 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
225 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
226 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
229 case GL_CURRENT_INDEX
:
231 FLUSH_CURRENT(ctx
, 0);
232 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
235 case GL_CURRENT_NORMAL
:
237 FLUSH_CURRENT(ctx
, 0);
238 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
239 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
240 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
243 case GL_CURRENT_RASTER_COLOR
:
244 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
245 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
246 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
247 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
249 case GL_CURRENT_RASTER_DISTANCE
:
250 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
252 case GL_CURRENT_RASTER_INDEX
:
253 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterIndex
);
255 case GL_CURRENT_RASTER_POSITION
:
256 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
257 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
258 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
259 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
261 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
262 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[0]);
263 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[1]);
264 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[2]);
265 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[3]);
267 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
269 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
270 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
271 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
272 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
273 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
276 case GL_CURRENT_RASTER_POSITION_VALID
:
277 params
[0] = ctx
->Current
.RasterPosValid
;
279 case GL_CURRENT_TEXTURE_COORDS
:
281 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
282 FLUSH_CURRENT(ctx
, 0);
283 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
284 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
285 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
286 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
290 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
293 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
295 case GL_DEPTH_CLEAR_VALUE
:
296 params
[0] = FLOAT_TO_BOOLEAN(((GLfloat
) ctx
->Depth
.Clear
));
299 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
302 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
303 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
306 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
309 params
[0] = ctx
->Depth
.Test
;
311 case GL_DEPTH_WRITEMASK
:
312 params
[0] = ctx
->Depth
.Mask
;
315 params
[0] = ctx
->Color
.DitherFlag
;
317 case GL_DOUBLEBUFFER
:
318 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
321 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
325 FLUSH_CURRENT(ctx
, 0);
326 params
[0] = (ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0);
329 case GL_FEEDBACK_BUFFER_SIZE
:
330 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
332 case GL_FEEDBACK_BUFFER_TYPE
:
333 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
336 params
[0] = ctx
->Fog
.Enabled
;
339 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
340 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
341 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
342 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
345 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
348 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
351 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
354 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
357 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
360 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
363 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
366 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
369 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
372 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
375 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
377 case GL_INDEX_CLEAR_VALUE
:
378 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
381 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
383 case GL_INDEX_OFFSET
:
384 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
387 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
389 case GL_INDEX_WRITEMASK
:
390 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
393 params
[0] = ctx
->Light
.Light
[0].Enabled
;
396 params
[0] = ctx
->Light
.Light
[1].Enabled
;
399 params
[0] = ctx
->Light
.Light
[2].Enabled
;
402 params
[0] = ctx
->Light
.Light
[3].Enabled
;
405 params
[0] = ctx
->Light
.Light
[4].Enabled
;
408 params
[0] = ctx
->Light
.Light
[5].Enabled
;
411 params
[0] = ctx
->Light
.Light
[6].Enabled
;
414 params
[0] = ctx
->Light
.Light
[7].Enabled
;
417 params
[0] = ctx
->Light
.Enabled
;
419 case GL_LIGHT_MODEL_AMBIENT
:
420 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
421 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
422 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
423 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
425 case GL_LIGHT_MODEL_COLOR_CONTROL
:
426 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
428 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
429 params
[0] = ctx
->Light
.Model
.LocalViewer
;
431 case GL_LIGHT_MODEL_TWO_SIDE
:
432 params
[0] = ctx
->Light
.Model
.TwoSide
;
435 params
[0] = ctx
->Line
.SmoothFlag
;
437 case GL_LINE_SMOOTH_HINT
:
438 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
440 case GL_LINE_STIPPLE
:
441 params
[0] = ctx
->Line
.StippleFlag
;
443 case GL_LINE_STIPPLE_PATTERN
:
444 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
446 case GL_LINE_STIPPLE_REPEAT
:
447 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
450 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
452 case GL_LINE_WIDTH_GRANULARITY
:
453 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
455 case GL_LINE_WIDTH_RANGE
:
456 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
457 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
459 case GL_ALIASED_LINE_WIDTH_RANGE
:
460 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
461 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
464 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
467 params
[0] = INT_TO_BOOLEAN((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
472 if (!ctx
->CompileFlag
)
474 else if (ctx
->ExecuteFlag
)
475 mode
= GL_COMPILE_AND_EXECUTE
;
478 params
[0] = ENUM_TO_BOOLEAN(mode
);
481 case GL_INDEX_LOGIC_OP
:
482 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
484 case GL_COLOR_LOGIC_OP
:
485 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
487 case GL_LOGIC_OP_MODE
:
488 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
490 case GL_MAP1_COLOR_4
:
491 params
[0] = ctx
->Eval
.Map1Color4
;
493 case GL_MAP1_GRID_DOMAIN
:
494 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
495 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
497 case GL_MAP1_GRID_SEGMENTS
:
498 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
501 params
[0] = ctx
->Eval
.Map1Index
;
504 params
[0] = ctx
->Eval
.Map1Normal
;
506 case GL_MAP1_TEXTURE_COORD_1
:
507 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
509 case GL_MAP1_TEXTURE_COORD_2
:
510 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
512 case GL_MAP1_TEXTURE_COORD_3
:
513 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
515 case GL_MAP1_TEXTURE_COORD_4
:
516 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
518 case GL_MAP1_VERTEX_3
:
519 params
[0] = ctx
->Eval
.Map1Vertex3
;
521 case GL_MAP1_VERTEX_4
:
522 params
[0] = ctx
->Eval
.Map1Vertex4
;
524 case GL_MAP2_COLOR_4
:
525 params
[0] = ctx
->Eval
.Map2Color4
;
527 case GL_MAP2_GRID_DOMAIN
:
528 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
529 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
530 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
531 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
533 case GL_MAP2_GRID_SEGMENTS
:
534 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
535 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
538 params
[0] = ctx
->Eval
.Map2Index
;
541 params
[0] = ctx
->Eval
.Map2Normal
;
543 case GL_MAP2_TEXTURE_COORD_1
:
544 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
546 case GL_MAP2_TEXTURE_COORD_2
:
547 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
549 case GL_MAP2_TEXTURE_COORD_3
:
550 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
552 case GL_MAP2_TEXTURE_COORD_4
:
553 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
555 case GL_MAP2_VERTEX_3
:
556 params
[0] = ctx
->Eval
.Map2Vertex3
;
558 case GL_MAP2_VERTEX_4
:
559 params
[0] = ctx
->Eval
.Map2Vertex4
;
562 params
[0] = ctx
->Pixel
.MapColorFlag
;
565 params
[0] = ctx
->Pixel
.MapStencilFlag
;
568 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
570 case GL_MAX_ATTRIB_STACK_DEPTH
:
571 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
573 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
574 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
576 case GL_MAX_CLIP_PLANES
:
577 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
579 case GL_MAX_ELEMENTS_VERTICES
:
580 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
582 case GL_MAX_ELEMENTS_INDICES
:
583 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
585 case GL_MAX_EVAL_ORDER
:
586 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
589 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
591 case GL_MAX_LIST_NESTING
:
592 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
594 case GL_MAX_MODELVIEW_STACK_DEPTH
:
595 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
597 case GL_MAX_NAME_STACK_DEPTH
:
598 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
600 case GL_MAX_PIXEL_MAP_TABLE
:
601 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
603 case GL_MAX_PROJECTION_STACK_DEPTH
:
604 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
606 case GL_MAX_TEXTURE_SIZE
:
607 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
609 case GL_MAX_3D_TEXTURE_SIZE
:
610 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
612 case GL_MAX_TEXTURE_STACK_DEPTH
:
613 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
615 case GL_MAX_VIEWPORT_DIMS
:
616 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
617 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
619 case GL_MODELVIEW_MATRIX
:
621 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
622 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
623 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
624 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
625 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
626 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
627 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
628 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
629 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
630 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
631 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
632 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
633 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
634 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
635 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
636 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
637 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
640 case GL_MODELVIEW_STACK_DEPTH
:
641 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
643 case GL_NAME_STACK_DEPTH
:
644 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
647 params
[0] = ctx
->Transform
.Normalize
;
649 case GL_PACK_ALIGNMENT
:
650 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
652 case GL_PACK_LSB_FIRST
:
653 params
[0] = ctx
->Pack
.LsbFirst
;
655 case GL_PACK_ROW_LENGTH
:
656 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
658 case GL_PACK_SKIP_PIXELS
:
659 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
661 case GL_PACK_SKIP_ROWS
:
662 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
664 case GL_PACK_SWAP_BYTES
:
665 params
[0] = ctx
->Pack
.SwapBytes
;
667 case GL_PACK_SKIP_IMAGES_EXT
:
668 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
670 case GL_PACK_IMAGE_HEIGHT_EXT
:
671 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
673 case GL_PACK_INVERT_MESA
:
674 params
[0] = ctx
->Pack
.Invert
;
676 case GL_PERSPECTIVE_CORRECTION_HINT
:
677 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
679 case GL_PIXEL_MAP_A_TO_A_SIZE
:
680 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.AtoA
.Size
);
682 case GL_PIXEL_MAP_B_TO_B_SIZE
:
683 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.BtoB
.Size
);
685 case GL_PIXEL_MAP_G_TO_G_SIZE
:
686 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.GtoG
.Size
);
688 case GL_PIXEL_MAP_I_TO_A_SIZE
:
689 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoA
.Size
);
691 case GL_PIXEL_MAP_I_TO_B_SIZE
:
692 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoB
.Size
);
694 case GL_PIXEL_MAP_I_TO_G_SIZE
:
695 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoG
.Size
);
697 case GL_PIXEL_MAP_I_TO_I_SIZE
:
698 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoI
.Size
);
700 case GL_PIXEL_MAP_I_TO_R_SIZE
:
701 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoR
.Size
);
703 case GL_PIXEL_MAP_R_TO_R_SIZE
:
704 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.RtoR
.Size
);
706 case GL_PIXEL_MAP_S_TO_S_SIZE
:
707 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.StoS
.Size
);
710 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
712 case GL_POINT_SIZE_GRANULARITY
:
713 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
715 case GL_POINT_SIZE_RANGE
:
716 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
717 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
719 case GL_ALIASED_POINT_SIZE_RANGE
:
720 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
721 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
723 case GL_POINT_SMOOTH
:
724 params
[0] = ctx
->Point
.SmoothFlag
;
726 case GL_POINT_SMOOTH_HINT
:
727 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
729 case GL_POINT_SIZE_MIN_EXT
:
730 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
732 case GL_POINT_SIZE_MAX_EXT
:
733 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
735 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
736 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
738 case GL_DISTANCE_ATTENUATION_EXT
:
739 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
740 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
741 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
743 case GL_POLYGON_MODE
:
744 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
745 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
747 case GL_POLYGON_OFFSET_BIAS_EXT
:
748 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
750 case GL_POLYGON_OFFSET_FACTOR
:
751 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
753 case GL_POLYGON_OFFSET_UNITS
:
754 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
756 case GL_POLYGON_OFFSET_POINT
:
757 params
[0] = ctx
->Polygon
.OffsetPoint
;
759 case GL_POLYGON_OFFSET_LINE
:
760 params
[0] = ctx
->Polygon
.OffsetLine
;
762 case GL_POLYGON_OFFSET_FILL
:
763 params
[0] = ctx
->Polygon
.OffsetFill
;
765 case GL_POLYGON_SMOOTH
:
766 params
[0] = ctx
->Polygon
.SmoothFlag
;
768 case GL_POLYGON_SMOOTH_HINT
:
769 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
771 case GL_POLYGON_STIPPLE
:
772 params
[0] = ctx
->Polygon
.StippleFlag
;
774 case GL_PROJECTION_MATRIX
:
776 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
777 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
778 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
779 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
780 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
781 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
782 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
783 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
784 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
785 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
786 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
787 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
788 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
789 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
790 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
791 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
792 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
795 case GL_PROJECTION_STACK_DEPTH
:
796 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
799 params
[0] = ENUM_TO_BOOLEAN(ctx
->ReadBuffer
->ColorReadBuffer
);
802 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
805 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.redBits
);
808 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
811 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
813 case GL_RESCALE_NORMAL
:
814 params
[0] = ctx
->Transform
.RescaleNormals
;
817 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
820 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
821 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
822 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
823 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
825 case GL_SCISSOR_TEST
:
826 params
[0] = ctx
->Scissor
.Enabled
;
828 case GL_SELECTION_BUFFER_SIZE
:
829 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
832 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
834 case GL_SHARED_TEXTURE_PALETTE_EXT
:
835 params
[0] = ctx
->Texture
.SharedPalette
;
837 case GL_STENCIL_BITS
:
838 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
840 case GL_STENCIL_CLEAR_VALUE
:
841 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
843 case GL_STENCIL_FAIL
:
844 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
846 case GL_STENCIL_FUNC
:
847 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
849 case GL_STENCIL_PASS_DEPTH_FAIL
:
850 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
852 case GL_STENCIL_PASS_DEPTH_PASS
:
853 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
856 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
858 case GL_STENCIL_TEST
:
859 params
[0] = ctx
->Stencil
.Enabled
;
861 case GL_STENCIL_VALUE_MASK
:
862 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
864 case GL_STENCIL_WRITEMASK
:
865 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
868 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
870 case GL_SUBPIXEL_BITS
:
871 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
874 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
877 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
880 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
882 case GL_TEXTURE_1D_ARRAY_EXT
:
883 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
884 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
);
886 case GL_TEXTURE_2D_ARRAY_EXT
:
887 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
888 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
);
890 case GL_TEXTURE_BINDING_1D
:
891 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
893 case GL_TEXTURE_BINDING_2D
:
894 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
896 case GL_TEXTURE_BINDING_3D
:
897 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
899 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
900 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
901 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
903 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
904 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
905 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
907 case GL_TEXTURE_GEN_S
:
908 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
910 case GL_TEXTURE_GEN_T
:
911 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
913 case GL_TEXTURE_GEN_R
:
914 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
916 case GL_TEXTURE_GEN_Q
:
917 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
919 case GL_TEXTURE_MATRIX
:
921 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
922 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
923 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
924 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
925 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
926 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
927 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
928 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
929 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
930 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
931 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
932 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
933 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
934 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
935 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
936 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
937 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
940 case GL_TEXTURE_STACK_DEPTH
:
941 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
943 case GL_UNPACK_ALIGNMENT
:
944 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
946 case GL_UNPACK_LSB_FIRST
:
947 params
[0] = ctx
->Unpack
.LsbFirst
;
949 case GL_UNPACK_ROW_LENGTH
:
950 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
952 case GL_UNPACK_SKIP_PIXELS
:
953 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
955 case GL_UNPACK_SKIP_ROWS
:
956 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
958 case GL_UNPACK_SWAP_BYTES
:
959 params
[0] = ctx
->Unpack
.SwapBytes
;
961 case GL_UNPACK_SKIP_IMAGES_EXT
:
962 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
964 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
965 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
967 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
968 params
[0] = ctx
->Unpack
.ClientStorage
;
971 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
972 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
973 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
974 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
977 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
980 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
982 case GL_VERTEX_ARRAY
:
983 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Enabled
;
985 case GL_VERTEX_ARRAY_SIZE
:
986 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Size
);
988 case GL_VERTEX_ARRAY_TYPE
:
989 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Type
);
991 case GL_VERTEX_ARRAY_STRIDE
:
992 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
994 case GL_VERTEX_ARRAY_COUNT_EXT
:
995 params
[0] = INT_TO_BOOLEAN(0);
997 case GL_NORMAL_ARRAY
:
998 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
1000 case GL_NORMAL_ARRAY_TYPE
:
1001 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Type
);
1003 case GL_NORMAL_ARRAY_STRIDE
:
1004 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Stride
);
1006 case GL_NORMAL_ARRAY_COUNT_EXT
:
1007 params
[0] = INT_TO_BOOLEAN(0);
1009 case GL_COLOR_ARRAY
:
1010 params
[0] = ctx
->Array
.ArrayObj
->Color
.Enabled
;
1012 case GL_COLOR_ARRAY_SIZE
:
1013 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Size
);
1015 case GL_COLOR_ARRAY_TYPE
:
1016 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Type
);
1018 case GL_COLOR_ARRAY_STRIDE
:
1019 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Stride
);
1021 case GL_COLOR_ARRAY_COUNT_EXT
:
1022 params
[0] = INT_TO_BOOLEAN(0);
1024 case GL_INDEX_ARRAY
:
1025 params
[0] = ctx
->Array
.ArrayObj
->Index
.Enabled
;
1027 case GL_INDEX_ARRAY_TYPE
:
1028 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Type
);
1030 case GL_INDEX_ARRAY_STRIDE
:
1031 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Stride
);
1033 case GL_INDEX_ARRAY_COUNT_EXT
:
1034 params
[0] = INT_TO_BOOLEAN(0);
1036 case GL_TEXTURE_COORD_ARRAY
:
1037 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1039 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1040 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1042 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1043 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1045 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1046 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1048 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1049 params
[0] = INT_TO_BOOLEAN(0);
1051 case GL_EDGE_FLAG_ARRAY
:
1052 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
;
1054 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1055 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
1057 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1058 params
[0] = INT_TO_BOOLEAN(0);
1060 case GL_MAX_TEXTURE_UNITS_ARB
:
1061 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1062 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1064 case GL_ACTIVE_TEXTURE_ARB
:
1065 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1066 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1068 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1069 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1070 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1072 case GL_TEXTURE_CUBE_MAP_ARB
:
1073 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1074 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1076 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1077 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1078 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
1080 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1081 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1082 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1084 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1085 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1087 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1088 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1090 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1093 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1095 for (i
= 0; i
< n
; i
++)
1096 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
1099 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1100 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1101 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1103 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1104 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1105 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1107 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1109 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1110 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1111 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1112 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1113 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1114 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1115 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1116 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1117 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1118 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1119 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1120 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1121 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1122 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1123 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1124 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1125 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1128 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1130 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1131 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1132 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1133 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1134 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1135 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1136 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1137 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1138 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1139 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1140 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1141 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1142 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1143 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1144 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1145 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1146 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1149 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1151 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1152 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1153 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1154 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1155 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1156 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1157 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1158 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1159 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1160 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1161 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1162 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1163 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1164 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1165 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1166 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1167 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1170 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1172 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1173 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1174 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1175 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1176 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1177 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1178 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1179 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1180 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1181 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1182 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1183 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1184 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1185 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1186 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1187 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1188 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1191 case GL_COLOR_MATRIX_SGI
:
1193 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1194 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1195 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1196 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1197 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1198 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1199 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1200 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1201 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1202 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1203 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1204 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1205 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1206 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1207 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1208 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1209 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1212 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1213 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1215 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1216 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1218 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1219 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1221 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1222 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1224 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1225 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1227 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1228 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1230 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1231 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1233 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1234 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1236 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1237 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1239 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1240 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1242 case GL_CONVOLUTION_1D_EXT
:
1243 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1244 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1246 case GL_CONVOLUTION_2D_EXT
:
1247 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1248 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1250 case GL_SEPARABLE_2D_EXT
:
1251 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1252 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1254 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1255 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1256 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1258 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1259 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1260 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1262 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1263 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1264 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1266 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1267 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1268 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1270 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1271 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1272 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1274 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1275 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1276 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1278 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1279 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1280 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1282 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1283 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1284 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1287 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1288 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1291 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1292 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1294 case GL_COLOR_TABLE_SGI
:
1295 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1296 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
];
1298 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1299 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1300 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
];
1302 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1303 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1304 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
];
1306 case GL_TEXTURE_COLOR_TABLE_SGI
:
1307 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1308 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1310 case GL_COLOR_SUM_EXT
:
1311 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1312 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1314 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1315 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1317 FLUSH_CURRENT(ctx
, 0);
1318 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1319 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1320 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1321 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1324 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1325 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1326 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
;
1328 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1329 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1330 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
1332 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1333 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1334 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
1336 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1337 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1338 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
1340 case GL_CURRENT_FOG_COORDINATE_EXT
:
1341 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1343 FLUSH_CURRENT(ctx
, 0);
1344 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1347 case GL_FOG_COORDINATE_ARRAY_EXT
:
1348 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1349 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Enabled
;
1351 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1352 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1353 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
1355 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1356 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1357 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
1359 case GL_FOG_COORDINATE_SOURCE_EXT
:
1360 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1361 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1363 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1364 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1365 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1367 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1368 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1369 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1371 case GL_MULTISAMPLE_ARB
:
1372 params
[0] = ctx
->Multisample
.Enabled
;
1374 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1375 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1377 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1378 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1380 case GL_SAMPLE_COVERAGE_ARB
:
1381 params
[0] = ctx
->Multisample
.SampleCoverage
;
1383 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1384 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1386 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1387 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1389 case GL_SAMPLE_BUFFERS_ARB
:
1390 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1392 case GL_SAMPLES_ARB
:
1393 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1395 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1396 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1397 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1399 case GL_POINT_SPRITE_NV
:
1400 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1401 params
[0] = ctx
->Point
.PointSprite
;
1403 case GL_POINT_SPRITE_R_MODE_NV
:
1404 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1405 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1407 case GL_POINT_SPRITE_COORD_ORIGIN
:
1408 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1409 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1411 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1412 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1413 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1415 case GL_VERTEX_PROGRAM_BINDING_NV
:
1416 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1417 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1419 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1420 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1421 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
;
1423 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1424 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1425 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
;
1427 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1428 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1429 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
;
1431 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1432 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1433 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
;
1435 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1436 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1437 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
;
1439 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1440 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1441 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
;
1443 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1444 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1445 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
;
1447 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1448 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1449 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
;
1451 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1452 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1453 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
;
1455 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1456 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1457 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
;
1459 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1460 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1461 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
;
1463 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1464 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1465 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
;
1467 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1468 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1469 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
;
1471 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1472 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1473 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
;
1475 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1476 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1477 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
;
1479 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1480 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1481 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
;
1483 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1484 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1485 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1487 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1488 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1489 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1491 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1492 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1493 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1495 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1496 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1497 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1499 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1500 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1501 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1503 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1504 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1505 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1507 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1508 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1509 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1511 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1512 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1513 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1515 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1516 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1517 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1519 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1520 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1521 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1523 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1524 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1525 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1527 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1528 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1529 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1531 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1532 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1533 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1535 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1536 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1537 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1539 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1540 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1541 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1543 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1544 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1545 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1547 case GL_FRAGMENT_PROGRAM_NV
:
1548 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1549 params
[0] = ctx
->FragmentProgram
.Enabled
;
1551 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1552 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1553 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1555 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1556 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1557 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1559 case GL_TEXTURE_RECTANGLE_NV
:
1560 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1561 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1563 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1564 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1565 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
1567 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1568 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1569 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1571 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1572 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1573 params
[0] = ctx
->Stencil
.TestTwoSide
;
1575 case GL_ACTIVE_STENCIL_FACE_EXT
:
1576 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1577 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1579 case GL_MAX_SHININESS_NV
:
1580 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1581 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1583 case GL_MAX_SPOT_EXPONENT_NV
:
1584 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1585 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1587 case GL_ARRAY_BUFFER_BINDING_ARB
:
1588 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1590 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1591 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
1593 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1594 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
1596 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1597 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
1599 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1600 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
1602 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1603 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1605 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1606 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
1608 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1609 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
1611 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1612 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
1614 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1615 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1617 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1618 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1619 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1621 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1622 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1623 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1625 case GL_VERTEX_PROGRAM_ARB
:
1626 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1627 params
[0] = ctx
->VertexProgram
.Enabled
;
1629 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1630 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1631 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1633 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1634 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1635 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1637 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1638 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1639 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1641 case GL_MAX_PROGRAM_MATRICES_ARB
:
1642 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1643 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1645 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1646 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1647 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1649 case GL_CURRENT_MATRIX_ARB
:
1650 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1652 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1653 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1654 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1655 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1656 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1657 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1658 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1659 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1660 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1661 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1662 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1663 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1664 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1665 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1666 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1667 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1668 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1671 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1672 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1674 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1675 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1676 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1677 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1678 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1679 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1680 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1681 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1682 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1683 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1684 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1685 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1686 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1687 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1688 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1689 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1690 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1693 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1694 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1695 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1697 case GL_PROGRAM_ERROR_POSITION_ARB
:
1698 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1699 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1701 case GL_FRAGMENT_PROGRAM_ARB
:
1702 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1703 params
[0] = ctx
->FragmentProgram
.Enabled
;
1705 case GL_MAX_TEXTURE_COORDS_ARB
:
1706 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1707 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1709 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1710 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1711 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1713 case GL_DEPTH_BOUNDS_TEST_EXT
:
1714 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1715 params
[0] = ctx
->Depth
.BoundsTest
;
1717 case GL_DEPTH_BOUNDS_EXT
:
1718 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1719 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1720 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1722 case GL_MAX_DRAW_BUFFERS_ARB
:
1723 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1725 case GL_DRAW_BUFFER0_ARB
:
1726 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1728 case GL_DRAW_BUFFER1_ARB
:
1731 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1732 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1735 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1736 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1739 case GL_DRAW_BUFFER2_ARB
:
1742 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1743 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1746 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1747 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1750 case GL_DRAW_BUFFER3_ARB
:
1753 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1754 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1757 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1758 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1761 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1762 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1763 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1765 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1766 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1767 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1769 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1770 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1771 params
[0] = INT_TO_BOOLEAN(6);
1773 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1774 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1775 params
[0] = INT_TO_BOOLEAN(8);
1777 case GL_NUM_PASSES_ATI
:
1778 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1779 params
[0] = INT_TO_BOOLEAN(2);
1781 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1782 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1783 params
[0] = INT_TO_BOOLEAN(8);
1785 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1786 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1787 params
[0] = INT_TO_BOOLEAN(16);
1789 case GL_COLOR_ALPHA_PAIRING_ATI
:
1790 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1791 params
[0] = GL_TRUE
;
1793 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1794 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1795 params
[0] = INT_TO_BOOLEAN(3);
1797 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1798 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1799 params
[0] = INT_TO_BOOLEAN(3);
1801 case GL_STENCIL_BACK_FUNC
:
1802 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1804 case GL_STENCIL_BACK_VALUE_MASK
:
1805 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1807 case GL_STENCIL_BACK_WRITEMASK
:
1808 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1810 case GL_STENCIL_BACK_REF
:
1811 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1813 case GL_STENCIL_BACK_FAIL
:
1814 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1816 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1817 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1819 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1820 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1822 case GL_FRAMEBUFFER_BINDING_EXT
:
1823 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1824 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1826 case GL_RENDERBUFFER_BINDING_EXT
:
1827 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1828 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1830 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1831 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1832 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1834 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1835 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1836 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1838 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1839 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1840 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1842 case GL_PROVOKING_VERTEX_EXT
:
1843 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1844 params
[0] = ctx
->Light
.ProvokingVertex
;
1846 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
1847 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1848 params
[0] = ctx
->Const
.QuadsFollowProvokingVertexConvention
;
1850 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1851 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1852 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1854 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1855 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1856 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1858 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1859 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1860 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1862 case GL_MAX_VARYING_FLOATS_ARB
:
1863 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1864 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1866 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1867 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1868 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1870 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1871 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1872 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1874 case GL_CURRENT_PROGRAM
:
1875 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1876 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1878 case GL_MAX_SAMPLES
:
1879 CHECK_EXT1(ARB_framebuffer_object
, "GetBooleanv");
1880 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxSamples
);
1882 case GL_VERTEX_ARRAY_BINDING_APPLE
:
1883 CHECK_EXT1(APPLE_vertex_array_object
, "GetBooleanv");
1884 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Name
);
1886 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
1887 CHECK_EXT1(ARB_seamless_cube_map
, "GetBooleanv");
1888 params
[0] = ctx
->Texture
.CubeMapSeamless
;
1891 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1896 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1898 GET_CURRENT_CONTEXT(ctx
);
1899 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1905 _mesa_update_state(ctx
);
1907 if (ctx
->Driver
.GetFloatv
&&
1908 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1912 case GL_ACCUM_RED_BITS
:
1913 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1915 case GL_ACCUM_GREEN_BITS
:
1916 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1918 case GL_ACCUM_BLUE_BITS
:
1919 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1921 case GL_ACCUM_ALPHA_BITS
:
1922 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1924 case GL_ACCUM_CLEAR_VALUE
:
1925 params
[0] = ctx
->Accum
.ClearColor
[0];
1926 params
[1] = ctx
->Accum
.ClearColor
[1];
1927 params
[2] = ctx
->Accum
.ClearColor
[2];
1928 params
[3] = ctx
->Accum
.ClearColor
[3];
1931 params
[0] = ctx
->Pixel
.AlphaBias
;
1934 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1936 case GL_ALPHA_SCALE
:
1937 params
[0] = ctx
->Pixel
.AlphaScale
;
1940 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1942 case GL_ALPHA_TEST_FUNC
:
1943 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1945 case GL_ALPHA_TEST_REF
:
1946 params
[0] = ctx
->Color
.AlphaRef
;
1948 case GL_ATTRIB_STACK_DEPTH
:
1949 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1951 case GL_AUTO_NORMAL
:
1952 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1954 case GL_AUX_BUFFERS
:
1955 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1958 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1961 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1964 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1966 case GL_BLEND_SRC_RGB_EXT
:
1967 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1969 case GL_BLEND_DST_RGB_EXT
:
1970 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1972 case GL_BLEND_SRC_ALPHA_EXT
:
1973 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1975 case GL_BLEND_DST_ALPHA_EXT
:
1976 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1978 case GL_BLEND_EQUATION
:
1979 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1981 case GL_BLEND_EQUATION_ALPHA_EXT
:
1982 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1984 case GL_BLEND_COLOR_EXT
:
1985 params
[0] = ctx
->Color
.BlendColor
[0];
1986 params
[1] = ctx
->Color
.BlendColor
[1];
1987 params
[2] = ctx
->Color
.BlendColor
[2];
1988 params
[3] = ctx
->Color
.BlendColor
[3];
1991 params
[0] = ctx
->Pixel
.BlueBias
;
1994 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
1997 params
[0] = ctx
->Pixel
.BlueScale
;
1999 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2000 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2002 case GL_CLIP_PLANE0
:
2003 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2005 case GL_CLIP_PLANE1
:
2006 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2008 case GL_CLIP_PLANE2
:
2009 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2011 case GL_CLIP_PLANE3
:
2012 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2014 case GL_CLIP_PLANE4
:
2015 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2017 case GL_CLIP_PLANE5
:
2018 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2020 case GL_COLOR_CLEAR_VALUE
:
2021 params
[0] = ctx
->Color
.ClearColor
[0];
2022 params
[1] = ctx
->Color
.ClearColor
[1];
2023 params
[2] = ctx
->Color
.ClearColor
[2];
2024 params
[3] = ctx
->Color
.ClearColor
[3];
2026 case GL_COLOR_MATERIAL
:
2027 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2029 case GL_COLOR_MATERIAL_FACE
:
2030 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2032 case GL_COLOR_MATERIAL_PARAMETER
:
2033 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2035 case GL_COLOR_WRITEMASK
:
2036 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2037 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2038 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2039 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2042 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2044 case GL_CULL_FACE_MODE
:
2045 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2047 case GL_CURRENT_COLOR
:
2049 FLUSH_CURRENT(ctx
, 0);
2050 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2051 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2052 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2053 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2056 case GL_CURRENT_INDEX
:
2058 FLUSH_CURRENT(ctx
, 0);
2059 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2062 case GL_CURRENT_NORMAL
:
2064 FLUSH_CURRENT(ctx
, 0);
2065 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2066 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2067 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2070 case GL_CURRENT_RASTER_COLOR
:
2071 params
[0] = ctx
->Current
.RasterColor
[0];
2072 params
[1] = ctx
->Current
.RasterColor
[1];
2073 params
[2] = ctx
->Current
.RasterColor
[2];
2074 params
[3] = ctx
->Current
.RasterColor
[3];
2076 case GL_CURRENT_RASTER_DISTANCE
:
2077 params
[0] = ctx
->Current
.RasterDistance
;
2079 case GL_CURRENT_RASTER_INDEX
:
2080 params
[0] = ctx
->Current
.RasterIndex
;
2082 case GL_CURRENT_RASTER_POSITION
:
2083 params
[0] = ctx
->Current
.RasterPos
[0];
2084 params
[1] = ctx
->Current
.RasterPos
[1];
2085 params
[2] = ctx
->Current
.RasterPos
[2];
2086 params
[3] = ctx
->Current
.RasterPos
[3];
2088 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2089 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2090 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2091 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2092 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2094 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2096 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2097 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2098 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2099 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2100 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2103 case GL_CURRENT_RASTER_POSITION_VALID
:
2104 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2106 case GL_CURRENT_TEXTURE_COORDS
:
2108 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2109 FLUSH_CURRENT(ctx
, 0);
2110 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2111 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2112 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2113 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2117 params
[0] = ctx
->Pixel
.DepthBias
;
2120 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2122 case GL_DEPTH_CLEAR_VALUE
:
2123 params
[0] = ((GLfloat
) ctx
->Depth
.Clear
);
2126 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2128 case GL_DEPTH_RANGE
:
2129 params
[0] = ctx
->Viewport
.Near
;
2130 params
[1] = ctx
->Viewport
.Far
;
2132 case GL_DEPTH_SCALE
:
2133 params
[0] = ctx
->Pixel
.DepthScale
;
2136 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2138 case GL_DEPTH_WRITEMASK
:
2139 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2142 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2144 case GL_DOUBLEBUFFER
:
2145 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2147 case GL_DRAW_BUFFER
:
2148 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2152 FLUSH_CURRENT(ctx
, 0);
2153 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
2156 case GL_FEEDBACK_BUFFER_SIZE
:
2157 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2159 case GL_FEEDBACK_BUFFER_TYPE
:
2160 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2163 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2166 params
[0] = ctx
->Fog
.Color
[0];
2167 params
[1] = ctx
->Fog
.Color
[1];
2168 params
[2] = ctx
->Fog
.Color
[2];
2169 params
[3] = ctx
->Fog
.Color
[3];
2171 case GL_FOG_DENSITY
:
2172 params
[0] = ctx
->Fog
.Density
;
2175 params
[0] = ctx
->Fog
.End
;
2178 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2181 params
[0] = ctx
->Fog
.Index
;
2184 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2187 params
[0] = ctx
->Fog
.Start
;
2190 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2193 params
[0] = ctx
->Pixel
.GreenBias
;
2196 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2198 case GL_GREEN_SCALE
:
2199 params
[0] = ctx
->Pixel
.GreenScale
;
2202 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2204 case GL_INDEX_CLEAR_VALUE
:
2205 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2208 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2210 case GL_INDEX_OFFSET
:
2211 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2213 case GL_INDEX_SHIFT
:
2214 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2216 case GL_INDEX_WRITEMASK
:
2217 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2220 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2226 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2229 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2232 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2235 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2238 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2241 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2244 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2246 case GL_LIGHT_MODEL_AMBIENT
:
2247 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2248 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2249 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2250 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2252 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2253 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2255 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2256 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2258 case GL_LIGHT_MODEL_TWO_SIDE
:
2259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2261 case GL_LINE_SMOOTH
:
2262 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2264 case GL_LINE_SMOOTH_HINT
:
2265 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2267 case GL_LINE_STIPPLE
:
2268 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2270 case GL_LINE_STIPPLE_PATTERN
:
2271 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2273 case GL_LINE_STIPPLE_REPEAT
:
2274 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2277 params
[0] = ctx
->Line
.Width
;
2279 case GL_LINE_WIDTH_GRANULARITY
:
2280 params
[0] = ctx
->Const
.LineWidthGranularity
;
2282 case GL_LINE_WIDTH_RANGE
:
2283 params
[0] = ctx
->Const
.MinLineWidthAA
;
2284 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2286 case GL_ALIASED_LINE_WIDTH_RANGE
:
2287 params
[0] = ctx
->Const
.MinLineWidth
;
2288 params
[1] = ctx
->Const
.MaxLineWidth
;
2291 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2294 params
[0] = (GLfloat
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
2299 if (!ctx
->CompileFlag
)
2301 else if (ctx
->ExecuteFlag
)
2302 mode
= GL_COMPILE_AND_EXECUTE
;
2305 params
[0] = ENUM_TO_FLOAT(mode
);
2308 case GL_INDEX_LOGIC_OP
:
2309 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2311 case GL_COLOR_LOGIC_OP
:
2312 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2314 case GL_LOGIC_OP_MODE
:
2315 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2317 case GL_MAP1_COLOR_4
:
2318 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2320 case GL_MAP1_GRID_DOMAIN
:
2321 params
[0] = ctx
->Eval
.MapGrid1u1
;
2322 params
[1] = ctx
->Eval
.MapGrid1u2
;
2324 case GL_MAP1_GRID_SEGMENTS
:
2325 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2330 case GL_MAP1_NORMAL
:
2331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2333 case GL_MAP1_TEXTURE_COORD_1
:
2334 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2336 case GL_MAP1_TEXTURE_COORD_2
:
2337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2339 case GL_MAP1_TEXTURE_COORD_3
:
2340 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2342 case GL_MAP1_TEXTURE_COORD_4
:
2343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2345 case GL_MAP1_VERTEX_3
:
2346 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2348 case GL_MAP1_VERTEX_4
:
2349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2351 case GL_MAP2_COLOR_4
:
2352 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2354 case GL_MAP2_GRID_DOMAIN
:
2355 params
[0] = ctx
->Eval
.MapGrid2u1
;
2356 params
[1] = ctx
->Eval
.MapGrid2u2
;
2357 params
[2] = ctx
->Eval
.MapGrid2v1
;
2358 params
[3] = ctx
->Eval
.MapGrid2v2
;
2360 case GL_MAP2_GRID_SEGMENTS
:
2361 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2362 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2367 case GL_MAP2_NORMAL
:
2368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2370 case GL_MAP2_TEXTURE_COORD_1
:
2371 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2373 case GL_MAP2_TEXTURE_COORD_2
:
2374 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2376 case GL_MAP2_TEXTURE_COORD_3
:
2377 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2379 case GL_MAP2_TEXTURE_COORD_4
:
2380 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2382 case GL_MAP2_VERTEX_3
:
2383 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2385 case GL_MAP2_VERTEX_4
:
2386 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2391 case GL_MAP_STENCIL
:
2392 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2394 case GL_MATRIX_MODE
:
2395 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2397 case GL_MAX_ATTRIB_STACK_DEPTH
:
2398 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2400 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2401 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2403 case GL_MAX_CLIP_PLANES
:
2404 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2406 case GL_MAX_ELEMENTS_VERTICES
:
2407 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2409 case GL_MAX_ELEMENTS_INDICES
:
2410 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2412 case GL_MAX_EVAL_ORDER
:
2413 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2416 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2418 case GL_MAX_LIST_NESTING
:
2419 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2421 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2422 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2424 case GL_MAX_NAME_STACK_DEPTH
:
2425 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2427 case GL_MAX_PIXEL_MAP_TABLE
:
2428 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2430 case GL_MAX_PROJECTION_STACK_DEPTH
:
2431 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2433 case GL_MAX_TEXTURE_SIZE
:
2434 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2436 case GL_MAX_3D_TEXTURE_SIZE
:
2437 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2439 case GL_MAX_TEXTURE_STACK_DEPTH
:
2440 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2442 case GL_MAX_VIEWPORT_DIMS
:
2443 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2444 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2446 case GL_MODELVIEW_MATRIX
:
2448 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2449 params
[0] = matrix
[0];
2450 params
[1] = matrix
[1];
2451 params
[2] = matrix
[2];
2452 params
[3] = matrix
[3];
2453 params
[4] = matrix
[4];
2454 params
[5] = matrix
[5];
2455 params
[6] = matrix
[6];
2456 params
[7] = matrix
[7];
2457 params
[8] = matrix
[8];
2458 params
[9] = matrix
[9];
2459 params
[10] = matrix
[10];
2460 params
[11] = matrix
[11];
2461 params
[12] = matrix
[12];
2462 params
[13] = matrix
[13];
2463 params
[14] = matrix
[14];
2464 params
[15] = matrix
[15];
2467 case GL_MODELVIEW_STACK_DEPTH
:
2468 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2470 case GL_NAME_STACK_DEPTH
:
2471 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2474 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2476 case GL_PACK_ALIGNMENT
:
2477 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2479 case GL_PACK_LSB_FIRST
:
2480 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2482 case GL_PACK_ROW_LENGTH
:
2483 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2485 case GL_PACK_SKIP_PIXELS
:
2486 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2488 case GL_PACK_SKIP_ROWS
:
2489 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2491 case GL_PACK_SWAP_BYTES
:
2492 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2494 case GL_PACK_SKIP_IMAGES_EXT
:
2495 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2497 case GL_PACK_IMAGE_HEIGHT_EXT
:
2498 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2500 case GL_PACK_INVERT_MESA
:
2501 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2503 case GL_PERSPECTIVE_CORRECTION_HINT
:
2504 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2506 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2507 params
[0] = (GLfloat
)(ctx
->PixelMaps
.AtoA
.Size
);
2509 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2510 params
[0] = (GLfloat
)(ctx
->PixelMaps
.BtoB
.Size
);
2512 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2513 params
[0] = (GLfloat
)(ctx
->PixelMaps
.GtoG
.Size
);
2515 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2516 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoA
.Size
);
2518 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2519 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoB
.Size
);
2521 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2522 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoG
.Size
);
2524 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2525 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoI
.Size
);
2527 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2528 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoR
.Size
);
2530 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2531 params
[0] = (GLfloat
)(ctx
->PixelMaps
.RtoR
.Size
);
2533 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2534 params
[0] = (GLfloat
)(ctx
->PixelMaps
.StoS
.Size
);
2537 params
[0] = ctx
->Point
.Size
;
2539 case GL_POINT_SIZE_GRANULARITY
:
2540 params
[0] = ctx
->Const
.PointSizeGranularity
;
2542 case GL_POINT_SIZE_RANGE
:
2543 params
[0] = ctx
->Const
.MinPointSizeAA
;
2544 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2546 case GL_ALIASED_POINT_SIZE_RANGE
:
2547 params
[0] = ctx
->Const
.MinPointSize
;
2548 params
[1] = ctx
->Const
.MaxPointSize
;
2550 case GL_POINT_SMOOTH
:
2551 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2553 case GL_POINT_SMOOTH_HINT
:
2554 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2556 case GL_POINT_SIZE_MIN_EXT
:
2557 params
[0] = ctx
->Point
.MinSize
;
2559 case GL_POINT_SIZE_MAX_EXT
:
2560 params
[0] = ctx
->Point
.MaxSize
;
2562 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2563 params
[0] = ctx
->Point
.Threshold
;
2565 case GL_DISTANCE_ATTENUATION_EXT
:
2566 params
[0] = ctx
->Point
.Params
[0];
2567 params
[1] = ctx
->Point
.Params
[1];
2568 params
[2] = ctx
->Point
.Params
[2];
2570 case GL_POLYGON_MODE
:
2571 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2572 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2574 case GL_POLYGON_OFFSET_BIAS_EXT
:
2575 params
[0] = ctx
->Polygon
.OffsetUnits
;
2577 case GL_POLYGON_OFFSET_FACTOR
:
2578 params
[0] = ctx
->Polygon
.OffsetFactor
;
2580 case GL_POLYGON_OFFSET_UNITS
:
2581 params
[0] = ctx
->Polygon
.OffsetUnits
;
2583 case GL_POLYGON_OFFSET_POINT
:
2584 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetPoint
);
2586 case GL_POLYGON_OFFSET_LINE
:
2587 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetLine
);
2589 case GL_POLYGON_OFFSET_FILL
:
2590 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetFill
);
2592 case GL_POLYGON_SMOOTH
:
2593 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2595 case GL_POLYGON_SMOOTH_HINT
:
2596 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2598 case GL_POLYGON_STIPPLE
:
2599 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2601 case GL_PROJECTION_MATRIX
:
2603 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2604 params
[0] = matrix
[0];
2605 params
[1] = matrix
[1];
2606 params
[2] = matrix
[2];
2607 params
[3] = matrix
[3];
2608 params
[4] = matrix
[4];
2609 params
[5] = matrix
[5];
2610 params
[6] = matrix
[6];
2611 params
[7] = matrix
[7];
2612 params
[8] = matrix
[8];
2613 params
[9] = matrix
[9];
2614 params
[10] = matrix
[10];
2615 params
[11] = matrix
[11];
2616 params
[12] = matrix
[12];
2617 params
[13] = matrix
[13];
2618 params
[14] = matrix
[14];
2619 params
[15] = matrix
[15];
2622 case GL_PROJECTION_STACK_DEPTH
:
2623 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2625 case GL_READ_BUFFER
:
2626 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2629 params
[0] = ctx
->Pixel
.RedBias
;
2632 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.redBits
);
2635 params
[0] = ctx
->Pixel
.RedScale
;
2637 case GL_RENDER_MODE
:
2638 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2640 case GL_RESCALE_NORMAL
:
2641 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2644 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2646 case GL_SCISSOR_BOX
:
2647 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2648 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2649 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2650 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2652 case GL_SCISSOR_TEST
:
2653 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2655 case GL_SELECTION_BUFFER_SIZE
:
2656 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2658 case GL_SHADE_MODEL
:
2659 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2661 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2662 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2664 case GL_STENCIL_BITS
:
2665 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2667 case GL_STENCIL_CLEAR_VALUE
:
2668 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2670 case GL_STENCIL_FAIL
:
2671 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2673 case GL_STENCIL_FUNC
:
2674 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2676 case GL_STENCIL_PASS_DEPTH_FAIL
:
2677 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2679 case GL_STENCIL_PASS_DEPTH_PASS
:
2680 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2682 case GL_STENCIL_REF
:
2683 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2685 case GL_STENCIL_TEST
:
2686 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2688 case GL_STENCIL_VALUE_MASK
:
2689 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2691 case GL_STENCIL_WRITEMASK
:
2692 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2695 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2697 case GL_SUBPIXEL_BITS
:
2698 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2701 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2704 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2707 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2709 case GL_TEXTURE_1D_ARRAY_EXT
:
2710 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2711 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
2713 case GL_TEXTURE_2D_ARRAY_EXT
:
2714 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2715 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
2717 case GL_TEXTURE_BINDING_1D
:
2718 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
2720 case GL_TEXTURE_BINDING_2D
:
2721 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
2723 case GL_TEXTURE_BINDING_3D
:
2724 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
2726 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
2727 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2728 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
2730 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
2731 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2732 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
2734 case GL_TEXTURE_GEN_S
:
2735 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2737 case GL_TEXTURE_GEN_T
:
2738 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2740 case GL_TEXTURE_GEN_R
:
2741 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2743 case GL_TEXTURE_GEN_Q
:
2744 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2746 case GL_TEXTURE_MATRIX
:
2748 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2749 params
[0] = matrix
[0];
2750 params
[1] = matrix
[1];
2751 params
[2] = matrix
[2];
2752 params
[3] = matrix
[3];
2753 params
[4] = matrix
[4];
2754 params
[5] = matrix
[5];
2755 params
[6] = matrix
[6];
2756 params
[7] = matrix
[7];
2757 params
[8] = matrix
[8];
2758 params
[9] = matrix
[9];
2759 params
[10] = matrix
[10];
2760 params
[11] = matrix
[11];
2761 params
[12] = matrix
[12];
2762 params
[13] = matrix
[13];
2763 params
[14] = matrix
[14];
2764 params
[15] = matrix
[15];
2767 case GL_TEXTURE_STACK_DEPTH
:
2768 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2770 case GL_UNPACK_ALIGNMENT
:
2771 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2773 case GL_UNPACK_LSB_FIRST
:
2774 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2776 case GL_UNPACK_ROW_LENGTH
:
2777 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2779 case GL_UNPACK_SKIP_PIXELS
:
2780 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2782 case GL_UNPACK_SKIP_ROWS
:
2783 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2785 case GL_UNPACK_SWAP_BYTES
:
2786 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2788 case GL_UNPACK_SKIP_IMAGES_EXT
:
2789 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2791 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2792 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2794 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2795 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2798 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2799 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2800 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2801 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2804 params
[0] = ctx
->Pixel
.ZoomX
;
2807 params
[0] = ctx
->Pixel
.ZoomY
;
2809 case GL_VERTEX_ARRAY
:
2810 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
2812 case GL_VERTEX_ARRAY_SIZE
:
2813 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
2815 case GL_VERTEX_ARRAY_TYPE
:
2816 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
2818 case GL_VERTEX_ARRAY_STRIDE
:
2819 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
2821 case GL_VERTEX_ARRAY_COUNT_EXT
:
2822 params
[0] = (GLfloat
)(0);
2824 case GL_NORMAL_ARRAY
:
2825 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
2827 case GL_NORMAL_ARRAY_TYPE
:
2828 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Type
);
2830 case GL_NORMAL_ARRAY_STRIDE
:
2831 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
2833 case GL_NORMAL_ARRAY_COUNT_EXT
:
2834 params
[0] = (GLfloat
)(0);
2836 case GL_COLOR_ARRAY
:
2837 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
2839 case GL_COLOR_ARRAY_SIZE
:
2840 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Size
);
2842 case GL_COLOR_ARRAY_TYPE
:
2843 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Type
);
2845 case GL_COLOR_ARRAY_STRIDE
:
2846 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
2848 case GL_COLOR_ARRAY_COUNT_EXT
:
2849 params
[0] = (GLfloat
)(0);
2851 case GL_INDEX_ARRAY
:
2852 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
2854 case GL_INDEX_ARRAY_TYPE
:
2855 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Type
);
2857 case GL_INDEX_ARRAY_STRIDE
:
2858 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
2860 case GL_INDEX_ARRAY_COUNT_EXT
:
2861 params
[0] = (GLfloat
)(0);
2863 case GL_TEXTURE_COORD_ARRAY
:
2864 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2866 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2867 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2869 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2870 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2872 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2873 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2875 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2876 params
[0] = (GLfloat
)(0);
2878 case GL_EDGE_FLAG_ARRAY
:
2879 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
2881 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2882 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
2884 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2885 params
[0] = (GLfloat
)(0);
2887 case GL_MAX_TEXTURE_UNITS_ARB
:
2888 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2889 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2891 case GL_ACTIVE_TEXTURE_ARB
:
2892 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2893 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2895 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2896 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2897 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2899 case GL_TEXTURE_CUBE_MAP_ARB
:
2900 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2901 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2903 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2904 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2905 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
2907 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2908 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2909 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2911 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2912 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2914 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2915 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2917 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2920 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2922 for (i
= 0; i
< n
; i
++)
2923 params
[i
] = ENUM_TO_FLOAT(formats
[i
]);
2926 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2927 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2928 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2930 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2931 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2932 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2934 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2936 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2937 params
[0] = matrix
[0];
2938 params
[1] = matrix
[4];
2939 params
[2] = matrix
[8];
2940 params
[3] = matrix
[12];
2941 params
[4] = matrix
[1];
2942 params
[5] = matrix
[5];
2943 params
[6] = matrix
[9];
2944 params
[7] = matrix
[13];
2945 params
[8] = matrix
[2];
2946 params
[9] = matrix
[6];
2947 params
[10] = matrix
[10];
2948 params
[11] = matrix
[14];
2949 params
[12] = matrix
[3];
2950 params
[13] = matrix
[7];
2951 params
[14] = matrix
[11];
2952 params
[15] = matrix
[15];
2955 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2957 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2958 params
[0] = matrix
[0];
2959 params
[1] = matrix
[4];
2960 params
[2] = matrix
[8];
2961 params
[3] = matrix
[12];
2962 params
[4] = matrix
[1];
2963 params
[5] = matrix
[5];
2964 params
[6] = matrix
[9];
2965 params
[7] = matrix
[13];
2966 params
[8] = matrix
[2];
2967 params
[9] = matrix
[6];
2968 params
[10] = matrix
[10];
2969 params
[11] = matrix
[14];
2970 params
[12] = matrix
[3];
2971 params
[13] = matrix
[7];
2972 params
[14] = matrix
[11];
2973 params
[15] = matrix
[15];
2976 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2978 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2979 params
[0] = matrix
[0];
2980 params
[1] = matrix
[4];
2981 params
[2] = matrix
[8];
2982 params
[3] = matrix
[12];
2983 params
[4] = matrix
[1];
2984 params
[5] = matrix
[5];
2985 params
[6] = matrix
[9];
2986 params
[7] = matrix
[13];
2987 params
[8] = matrix
[2];
2988 params
[9] = matrix
[6];
2989 params
[10] = matrix
[10];
2990 params
[11] = matrix
[14];
2991 params
[12] = matrix
[3];
2992 params
[13] = matrix
[7];
2993 params
[14] = matrix
[11];
2994 params
[15] = matrix
[15];
2997 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2999 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
3000 params
[0] = matrix
[0];
3001 params
[1] = matrix
[4];
3002 params
[2] = matrix
[8];
3003 params
[3] = matrix
[12];
3004 params
[4] = matrix
[1];
3005 params
[5] = matrix
[5];
3006 params
[6] = matrix
[9];
3007 params
[7] = matrix
[13];
3008 params
[8] = matrix
[2];
3009 params
[9] = matrix
[6];
3010 params
[10] = matrix
[10];
3011 params
[11] = matrix
[14];
3012 params
[12] = matrix
[3];
3013 params
[13] = matrix
[7];
3014 params
[14] = matrix
[11];
3015 params
[15] = matrix
[15];
3018 case GL_COLOR_MATRIX_SGI
:
3020 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3021 params
[0] = matrix
[0];
3022 params
[1] = matrix
[1];
3023 params
[2] = matrix
[2];
3024 params
[3] = matrix
[3];
3025 params
[4] = matrix
[4];
3026 params
[5] = matrix
[5];
3027 params
[6] = matrix
[6];
3028 params
[7] = matrix
[7];
3029 params
[8] = matrix
[8];
3030 params
[9] = matrix
[9];
3031 params
[10] = matrix
[10];
3032 params
[11] = matrix
[11];
3033 params
[12] = matrix
[12];
3034 params
[13] = matrix
[13];
3035 params
[14] = matrix
[14];
3036 params
[15] = matrix
[15];
3039 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3040 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3042 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3043 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3045 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3046 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3048 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3049 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3051 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3052 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3054 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3055 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3057 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3058 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3060 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3061 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3063 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3064 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3066 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3067 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3069 case GL_CONVOLUTION_1D_EXT
:
3070 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3071 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3073 case GL_CONVOLUTION_2D_EXT
:
3074 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3075 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3077 case GL_SEPARABLE_2D_EXT
:
3078 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3079 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3081 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3082 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3083 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3085 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3086 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3087 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3089 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3090 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3091 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3093 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3094 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3095 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3097 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3098 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3099 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3101 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3102 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3103 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3105 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3106 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3107 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3109 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3110 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3111 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3114 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3115 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3118 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3119 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3121 case GL_COLOR_TABLE_SGI
:
3122 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3123 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3125 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3126 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3127 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3129 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3130 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3131 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3133 case GL_TEXTURE_COLOR_TABLE_SGI
:
3134 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3135 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3137 case GL_COLOR_SUM_EXT
:
3138 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3139 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3141 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3142 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3144 FLUSH_CURRENT(ctx
, 0);
3145 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3146 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3147 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3148 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3151 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3152 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3153 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3155 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3156 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3157 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3159 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3160 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3161 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3163 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3164 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3165 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3167 case GL_CURRENT_FOG_COORDINATE_EXT
:
3168 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3170 FLUSH_CURRENT(ctx
, 0);
3171 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3174 case GL_FOG_COORDINATE_ARRAY_EXT
:
3175 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3176 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3178 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3179 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3180 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3182 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3183 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3184 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3186 case GL_FOG_COORDINATE_SOURCE_EXT
:
3187 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3188 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3190 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3191 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3192 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3194 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3195 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3196 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3198 case GL_MULTISAMPLE_ARB
:
3199 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3201 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3202 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3204 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3205 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3207 case GL_SAMPLE_COVERAGE_ARB
:
3208 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3210 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3211 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3213 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3214 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3216 case GL_SAMPLE_BUFFERS_ARB
:
3217 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3219 case GL_SAMPLES_ARB
:
3220 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3222 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3223 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3224 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3226 case GL_POINT_SPRITE_NV
:
3227 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3228 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3230 case GL_POINT_SPRITE_R_MODE_NV
:
3231 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3232 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3234 case GL_POINT_SPRITE_COORD_ORIGIN
:
3235 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3236 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3238 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3239 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3240 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3242 case GL_VERTEX_PROGRAM_BINDING_NV
:
3243 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3244 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3246 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3247 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3248 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3250 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3251 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3252 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3254 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3255 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3256 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3258 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3259 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3260 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3262 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3263 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3264 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3266 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3267 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3268 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3270 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3271 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3272 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3274 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3275 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3276 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3278 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3279 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3280 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3282 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3283 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3284 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3286 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3287 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3288 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3290 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3291 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3292 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3294 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3295 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3296 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3298 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3299 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3300 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3302 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3303 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3304 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3306 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3307 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3308 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3310 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3311 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3312 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3314 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3315 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3316 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3318 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3319 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3320 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3322 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3323 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3324 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3326 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3327 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3330 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3331 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3332 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3334 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3335 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3336 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3338 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3339 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3340 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3342 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3343 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3344 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3346 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3347 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3348 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3350 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3351 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3352 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3354 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3355 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3356 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3358 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3359 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3360 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3362 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3363 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3366 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3367 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3370 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3371 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3372 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3374 case GL_FRAGMENT_PROGRAM_NV
:
3375 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3376 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3378 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3379 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3380 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3382 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3383 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3384 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3386 case GL_TEXTURE_RECTANGLE_NV
:
3387 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3388 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3390 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3391 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3392 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
3394 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3395 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3396 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3398 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3399 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3400 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3402 case GL_ACTIVE_STENCIL_FACE_EXT
:
3403 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3404 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3406 case GL_MAX_SHININESS_NV
:
3407 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3408 params
[0] = ctx
->Const
.MaxShininess
;
3410 case GL_MAX_SPOT_EXPONENT_NV
:
3411 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3412 params
[0] = ctx
->Const
.MaxSpotExponent
;
3414 case GL_ARRAY_BUFFER_BINDING_ARB
:
3415 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3417 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3418 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3420 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3421 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3423 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3424 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3426 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3427 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3429 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3430 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3432 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3433 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3435 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3436 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3438 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3439 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3441 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3442 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3444 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3445 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3446 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3448 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3449 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3450 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3452 case GL_VERTEX_PROGRAM_ARB
:
3453 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3454 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3456 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3457 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3458 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3460 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3461 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3462 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3464 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3465 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3466 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3468 case GL_MAX_PROGRAM_MATRICES_ARB
:
3469 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3470 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3472 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3473 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3474 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3476 case GL_CURRENT_MATRIX_ARB
:
3477 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3479 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3480 params
[0] = matrix
[0];
3481 params
[1] = matrix
[1];
3482 params
[2] = matrix
[2];
3483 params
[3] = matrix
[3];
3484 params
[4] = matrix
[4];
3485 params
[5] = matrix
[5];
3486 params
[6] = matrix
[6];
3487 params
[7] = matrix
[7];
3488 params
[8] = matrix
[8];
3489 params
[9] = matrix
[9];
3490 params
[10] = matrix
[10];
3491 params
[11] = matrix
[11];
3492 params
[12] = matrix
[12];
3493 params
[13] = matrix
[13];
3494 params
[14] = matrix
[14];
3495 params
[15] = matrix
[15];
3498 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3499 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3501 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3502 params
[0] = matrix
[0];
3503 params
[1] = matrix
[4];
3504 params
[2] = matrix
[8];
3505 params
[3] = matrix
[12];
3506 params
[4] = matrix
[1];
3507 params
[5] = matrix
[5];
3508 params
[6] = matrix
[9];
3509 params
[7] = matrix
[13];
3510 params
[8] = matrix
[2];
3511 params
[9] = matrix
[6];
3512 params
[10] = matrix
[10];
3513 params
[11] = matrix
[14];
3514 params
[12] = matrix
[3];
3515 params
[13] = matrix
[7];
3516 params
[14] = matrix
[11];
3517 params
[15] = matrix
[15];
3520 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3521 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3522 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3524 case GL_PROGRAM_ERROR_POSITION_ARB
:
3525 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3526 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3528 case GL_FRAGMENT_PROGRAM_ARB
:
3529 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3530 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3532 case GL_MAX_TEXTURE_COORDS_ARB
:
3533 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3534 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3536 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3537 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3538 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3540 case GL_DEPTH_BOUNDS_TEST_EXT
:
3541 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3542 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3544 case GL_DEPTH_BOUNDS_EXT
:
3545 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3546 params
[0] = ctx
->Depth
.BoundsMin
;
3547 params
[1] = ctx
->Depth
.BoundsMax
;
3549 case GL_MAX_DRAW_BUFFERS_ARB
:
3550 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3552 case GL_DRAW_BUFFER0_ARB
:
3553 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3555 case GL_DRAW_BUFFER1_ARB
:
3558 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3559 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3562 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3563 params
[0] = ENUM_TO_FLOAT(buffer
);
3566 case GL_DRAW_BUFFER2_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
[2];
3574 params
[0] = ENUM_TO_FLOAT(buffer
);
3577 case GL_DRAW_BUFFER3_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
[3];
3585 params
[0] = ENUM_TO_FLOAT(buffer
);
3588 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3589 CHECK_EXT1(OES_read_format
, "GetFloatv");
3590 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3592 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3593 CHECK_EXT1(OES_read_format
, "GetFloatv");
3594 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3596 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3597 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3598 params
[0] = (GLfloat
)(6);
3600 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3601 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3602 params
[0] = (GLfloat
)(8);
3604 case GL_NUM_PASSES_ATI
:
3605 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3606 params
[0] = (GLfloat
)(2);
3608 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3609 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3610 params
[0] = (GLfloat
)(8);
3612 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3613 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3614 params
[0] = (GLfloat
)(16);
3616 case GL_COLOR_ALPHA_PAIRING_ATI
:
3617 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3618 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3620 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3621 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3622 params
[0] = (GLfloat
)(3);
3624 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3625 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3626 params
[0] = (GLfloat
)(3);
3628 case GL_STENCIL_BACK_FUNC
:
3629 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3631 case GL_STENCIL_BACK_VALUE_MASK
:
3632 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3634 case GL_STENCIL_BACK_WRITEMASK
:
3635 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3637 case GL_STENCIL_BACK_REF
:
3638 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3640 case GL_STENCIL_BACK_FAIL
:
3641 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3643 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3644 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3646 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3647 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3649 case GL_FRAMEBUFFER_BINDING_EXT
:
3650 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3651 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3653 case GL_RENDERBUFFER_BINDING_EXT
:
3654 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3655 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3657 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3658 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3659 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3661 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3662 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3663 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3665 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3666 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3667 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3669 case GL_PROVOKING_VERTEX_EXT
:
3670 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3671 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ProvokingVertex
);
3673 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
3674 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3675 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
3677 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3678 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3679 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3681 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3682 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3683 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3685 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3686 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3687 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3689 case GL_MAX_VARYING_FLOATS_ARB
:
3690 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3691 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3693 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3694 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3695 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3697 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3698 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3699 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3701 case GL_CURRENT_PROGRAM
:
3702 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3703 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3705 case GL_MAX_SAMPLES
:
3706 CHECK_EXT1(ARB_framebuffer_object
, "GetFloatv");
3707 params
[0] = (GLfloat
)(ctx
->Const
.MaxSamples
);
3709 case GL_VERTEX_ARRAY_BINDING_APPLE
:
3710 CHECK_EXT1(APPLE_vertex_array_object
, "GetFloatv");
3711 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Name
);
3713 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
3714 CHECK_EXT1(ARB_seamless_cube_map
, "GetFloatv");
3715 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.CubeMapSeamless
);
3718 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3723 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3725 GET_CURRENT_CONTEXT(ctx
);
3726 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3732 _mesa_update_state(ctx
);
3734 if (ctx
->Driver
.GetIntegerv
&&
3735 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3739 case GL_ACCUM_RED_BITS
:
3740 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3742 case GL_ACCUM_GREEN_BITS
:
3743 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3745 case GL_ACCUM_BLUE_BITS
:
3746 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3748 case GL_ACCUM_ALPHA_BITS
:
3749 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3751 case GL_ACCUM_CLEAR_VALUE
:
3752 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3753 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3754 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3755 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3758 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3761 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3763 case GL_ALPHA_SCALE
:
3764 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3767 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3769 case GL_ALPHA_TEST_FUNC
:
3770 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3772 case GL_ALPHA_TEST_REF
:
3773 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3775 case GL_ATTRIB_STACK_DEPTH
:
3776 params
[0] = ctx
->AttribStackDepth
;
3778 case GL_AUTO_NORMAL
:
3779 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3781 case GL_AUX_BUFFERS
:
3782 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3785 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3788 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3791 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3793 case GL_BLEND_SRC_RGB_EXT
:
3794 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3796 case GL_BLEND_DST_RGB_EXT
:
3797 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3799 case GL_BLEND_SRC_ALPHA_EXT
:
3800 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3802 case GL_BLEND_DST_ALPHA_EXT
:
3803 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3805 case GL_BLEND_EQUATION
:
3806 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3808 case GL_BLEND_EQUATION_ALPHA_EXT
:
3809 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3811 case GL_BLEND_COLOR_EXT
:
3812 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3813 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3814 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3815 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3818 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3821 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3824 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3826 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3827 params
[0] = ctx
->ClientAttribStackDepth
;
3829 case GL_CLIP_PLANE0
:
3830 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3832 case GL_CLIP_PLANE1
:
3833 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3835 case GL_CLIP_PLANE2
:
3836 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3838 case GL_CLIP_PLANE3
:
3839 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3841 case GL_CLIP_PLANE4
:
3842 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3844 case GL_CLIP_PLANE5
:
3845 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3847 case GL_COLOR_CLEAR_VALUE
:
3848 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3849 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3850 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3851 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3853 case GL_COLOR_MATERIAL
:
3854 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3856 case GL_COLOR_MATERIAL_FACE
:
3857 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3859 case GL_COLOR_MATERIAL_PARAMETER
:
3860 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3862 case GL_COLOR_WRITEMASK
:
3863 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3864 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3865 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3866 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3869 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3871 case GL_CULL_FACE_MODE
:
3872 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3874 case GL_CURRENT_COLOR
:
3876 FLUSH_CURRENT(ctx
, 0);
3877 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3878 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3879 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3880 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3883 case GL_CURRENT_INDEX
:
3885 FLUSH_CURRENT(ctx
, 0);
3886 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3889 case GL_CURRENT_NORMAL
:
3891 FLUSH_CURRENT(ctx
, 0);
3892 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3893 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3894 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3897 case GL_CURRENT_RASTER_COLOR
:
3898 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3899 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3900 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3901 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3903 case GL_CURRENT_RASTER_DISTANCE
:
3904 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3906 case GL_CURRENT_RASTER_INDEX
:
3907 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3909 case GL_CURRENT_RASTER_POSITION
:
3910 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3911 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3912 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3913 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3915 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
3916 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
3917 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
3918 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
3919 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
3921 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3923 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3924 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3925 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3926 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3927 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3930 case GL_CURRENT_RASTER_POSITION_VALID
:
3931 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3933 case GL_CURRENT_TEXTURE_COORDS
:
3935 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3936 FLUSH_CURRENT(ctx
, 0);
3937 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3938 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3939 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3940 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3944 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3947 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3949 case GL_DEPTH_CLEAR_VALUE
:
3950 params
[0] = FLOAT_TO_INT(((GLfloat
) ctx
->Depth
.Clear
));
3953 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3955 case GL_DEPTH_RANGE
:
3956 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3957 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3959 case GL_DEPTH_SCALE
:
3960 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3963 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3965 case GL_DEPTH_WRITEMASK
:
3966 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3969 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3971 case GL_DOUBLEBUFFER
:
3972 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
3974 case GL_DRAW_BUFFER
:
3975 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3979 FLUSH_CURRENT(ctx
, 0);
3980 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
3983 case GL_FEEDBACK_BUFFER_SIZE
:
3984 params
[0] = ctx
->Feedback
.BufferSize
;
3986 case GL_FEEDBACK_BUFFER_TYPE
:
3987 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
3990 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
3993 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
3994 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
3995 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
3996 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
3998 case GL_FOG_DENSITY
:
3999 params
[0] = IROUND(ctx
->Fog
.Density
);
4002 params
[0] = IROUND(ctx
->Fog
.End
);
4005 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4008 params
[0] = IROUND(ctx
->Fog
.Index
);
4011 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4014 params
[0] = IROUND(ctx
->Fog
.Start
);
4017 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4020 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4023 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4025 case GL_GREEN_SCALE
:
4026 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4029 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4031 case GL_INDEX_CLEAR_VALUE
:
4032 params
[0] = ctx
->Color
.ClearIndex
;
4035 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4037 case GL_INDEX_OFFSET
:
4038 params
[0] = ctx
->Pixel
.IndexOffset
;
4040 case GL_INDEX_SHIFT
:
4041 params
[0] = ctx
->Pixel
.IndexShift
;
4043 case GL_INDEX_WRITEMASK
:
4044 params
[0] = ctx
->Color
.IndexMask
;
4047 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4050 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4053 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4056 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4059 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4062 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4065 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4068 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4071 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4073 case GL_LIGHT_MODEL_AMBIENT
:
4074 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4075 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4076 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4077 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4079 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4080 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4082 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4083 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4085 case GL_LIGHT_MODEL_TWO_SIDE
:
4086 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4088 case GL_LINE_SMOOTH
:
4089 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4091 case GL_LINE_SMOOTH_HINT
:
4092 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4094 case GL_LINE_STIPPLE
:
4095 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4097 case GL_LINE_STIPPLE_PATTERN
:
4098 params
[0] = ctx
->Line
.StipplePattern
;
4100 case GL_LINE_STIPPLE_REPEAT
:
4101 params
[0] = ctx
->Line
.StippleFactor
;
4104 params
[0] = IROUND(ctx
->Line
.Width
);
4106 case GL_LINE_WIDTH_GRANULARITY
:
4107 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4109 case GL_LINE_WIDTH_RANGE
:
4110 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4111 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4113 case GL_ALIASED_LINE_WIDTH_RANGE
:
4114 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4115 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4118 params
[0] = ctx
->List
.ListBase
;
4121 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
4126 if (!ctx
->CompileFlag
)
4128 else if (ctx
->ExecuteFlag
)
4129 mode
= GL_COMPILE_AND_EXECUTE
;
4132 params
[0] = ENUM_TO_INT(mode
);
4135 case GL_INDEX_LOGIC_OP
:
4136 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4138 case GL_COLOR_LOGIC_OP
:
4139 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4141 case GL_LOGIC_OP_MODE
:
4142 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4144 case GL_MAP1_COLOR_4
:
4145 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4147 case GL_MAP1_GRID_DOMAIN
:
4148 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4149 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4151 case GL_MAP1_GRID_SEGMENTS
:
4152 params
[0] = ctx
->Eval
.MapGrid1un
;
4155 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4157 case GL_MAP1_NORMAL
:
4158 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4160 case GL_MAP1_TEXTURE_COORD_1
:
4161 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4163 case GL_MAP1_TEXTURE_COORD_2
:
4164 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4166 case GL_MAP1_TEXTURE_COORD_3
:
4167 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4169 case GL_MAP1_TEXTURE_COORD_4
:
4170 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4172 case GL_MAP1_VERTEX_3
:
4173 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4175 case GL_MAP1_VERTEX_4
:
4176 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4178 case GL_MAP2_COLOR_4
:
4179 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4181 case GL_MAP2_GRID_DOMAIN
:
4182 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4183 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4184 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4185 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4187 case GL_MAP2_GRID_SEGMENTS
:
4188 params
[0] = ctx
->Eval
.MapGrid2un
;
4189 params
[1] = ctx
->Eval
.MapGrid2vn
;
4192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4194 case GL_MAP2_NORMAL
:
4195 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4197 case GL_MAP2_TEXTURE_COORD_1
:
4198 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4200 case GL_MAP2_TEXTURE_COORD_2
:
4201 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4203 case GL_MAP2_TEXTURE_COORD_3
:
4204 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4206 case GL_MAP2_TEXTURE_COORD_4
:
4207 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4209 case GL_MAP2_VERTEX_3
:
4210 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4212 case GL_MAP2_VERTEX_4
:
4213 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4216 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4218 case GL_MAP_STENCIL
:
4219 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4221 case GL_MATRIX_MODE
:
4222 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4224 case GL_MAX_ATTRIB_STACK_DEPTH
:
4225 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4227 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4228 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4230 case GL_MAX_CLIP_PLANES
:
4231 params
[0] = ctx
->Const
.MaxClipPlanes
;
4233 case GL_MAX_ELEMENTS_VERTICES
:
4234 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4236 case GL_MAX_ELEMENTS_INDICES
:
4237 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4239 case GL_MAX_EVAL_ORDER
:
4240 params
[0] = MAX_EVAL_ORDER
;
4243 params
[0] = ctx
->Const
.MaxLights
;
4245 case GL_MAX_LIST_NESTING
:
4246 params
[0] = MAX_LIST_NESTING
;
4248 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4249 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4251 case GL_MAX_NAME_STACK_DEPTH
:
4252 params
[0] = MAX_NAME_STACK_DEPTH
;
4254 case GL_MAX_PIXEL_MAP_TABLE
:
4255 params
[0] = MAX_PIXEL_MAP_TABLE
;
4257 case GL_MAX_PROJECTION_STACK_DEPTH
:
4258 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4260 case GL_MAX_TEXTURE_SIZE
:
4261 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4263 case GL_MAX_3D_TEXTURE_SIZE
:
4264 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4266 case GL_MAX_TEXTURE_STACK_DEPTH
:
4267 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4269 case GL_MAX_VIEWPORT_DIMS
:
4270 params
[0] = ctx
->Const
.MaxViewportWidth
;
4271 params
[1] = ctx
->Const
.MaxViewportHeight
;
4273 case GL_MODELVIEW_MATRIX
:
4275 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4276 params
[0] = IROUND(matrix
[0]);
4277 params
[1] = IROUND(matrix
[1]);
4278 params
[2] = IROUND(matrix
[2]);
4279 params
[3] = IROUND(matrix
[3]);
4280 params
[4] = IROUND(matrix
[4]);
4281 params
[5] = IROUND(matrix
[5]);
4282 params
[6] = IROUND(matrix
[6]);
4283 params
[7] = IROUND(matrix
[7]);
4284 params
[8] = IROUND(matrix
[8]);
4285 params
[9] = IROUND(matrix
[9]);
4286 params
[10] = IROUND(matrix
[10]);
4287 params
[11] = IROUND(matrix
[11]);
4288 params
[12] = IROUND(matrix
[12]);
4289 params
[13] = IROUND(matrix
[13]);
4290 params
[14] = IROUND(matrix
[14]);
4291 params
[15] = IROUND(matrix
[15]);
4294 case GL_MODELVIEW_STACK_DEPTH
:
4295 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4297 case GL_NAME_STACK_DEPTH
:
4298 params
[0] = ctx
->Select
.NameStackDepth
;
4301 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4303 case GL_PACK_ALIGNMENT
:
4304 params
[0] = ctx
->Pack
.Alignment
;
4306 case GL_PACK_LSB_FIRST
:
4307 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4309 case GL_PACK_ROW_LENGTH
:
4310 params
[0] = ctx
->Pack
.RowLength
;
4312 case GL_PACK_SKIP_PIXELS
:
4313 params
[0] = ctx
->Pack
.SkipPixels
;
4315 case GL_PACK_SKIP_ROWS
:
4316 params
[0] = ctx
->Pack
.SkipRows
;
4318 case GL_PACK_SWAP_BYTES
:
4319 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4321 case GL_PACK_SKIP_IMAGES_EXT
:
4322 params
[0] = ctx
->Pack
.SkipImages
;
4324 case GL_PACK_IMAGE_HEIGHT_EXT
:
4325 params
[0] = ctx
->Pack
.ImageHeight
;
4327 case GL_PACK_INVERT_MESA
:
4328 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4330 case GL_PERSPECTIVE_CORRECTION_HINT
:
4331 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4333 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4334 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4336 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4337 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4339 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4340 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4342 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4343 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4345 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4346 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4348 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4349 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4351 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4352 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4354 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4355 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4357 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4358 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4360 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4361 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4364 params
[0] = IROUND(ctx
->Point
.Size
);
4366 case GL_POINT_SIZE_GRANULARITY
:
4367 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4369 case GL_POINT_SIZE_RANGE
:
4370 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4371 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4373 case GL_ALIASED_POINT_SIZE_RANGE
:
4374 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4375 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4377 case GL_POINT_SMOOTH
:
4378 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4380 case GL_POINT_SMOOTH_HINT
:
4381 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4383 case GL_POINT_SIZE_MIN_EXT
:
4384 params
[0] = IROUND(ctx
->Point
.MinSize
);
4386 case GL_POINT_SIZE_MAX_EXT
:
4387 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4389 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4390 params
[0] = IROUND(ctx
->Point
.Threshold
);
4392 case GL_DISTANCE_ATTENUATION_EXT
:
4393 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4394 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4395 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4397 case GL_POLYGON_MODE
:
4398 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4399 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4401 case GL_POLYGON_OFFSET_BIAS_EXT
:
4402 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4404 case GL_POLYGON_OFFSET_FACTOR
:
4405 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4407 case GL_POLYGON_OFFSET_UNITS
:
4408 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4410 case GL_POLYGON_OFFSET_POINT
:
4411 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4413 case GL_POLYGON_OFFSET_LINE
:
4414 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4416 case GL_POLYGON_OFFSET_FILL
:
4417 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4419 case GL_POLYGON_SMOOTH
:
4420 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4422 case GL_POLYGON_SMOOTH_HINT
:
4423 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4425 case GL_POLYGON_STIPPLE
:
4426 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4428 case GL_PROJECTION_MATRIX
:
4430 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4431 params
[0] = IROUND(matrix
[0]);
4432 params
[1] = IROUND(matrix
[1]);
4433 params
[2] = IROUND(matrix
[2]);
4434 params
[3] = IROUND(matrix
[3]);
4435 params
[4] = IROUND(matrix
[4]);
4436 params
[5] = IROUND(matrix
[5]);
4437 params
[6] = IROUND(matrix
[6]);
4438 params
[7] = IROUND(matrix
[7]);
4439 params
[8] = IROUND(matrix
[8]);
4440 params
[9] = IROUND(matrix
[9]);
4441 params
[10] = IROUND(matrix
[10]);
4442 params
[11] = IROUND(matrix
[11]);
4443 params
[12] = IROUND(matrix
[12]);
4444 params
[13] = IROUND(matrix
[13]);
4445 params
[14] = IROUND(matrix
[14]);
4446 params
[15] = IROUND(matrix
[15]);
4449 case GL_PROJECTION_STACK_DEPTH
:
4450 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4452 case GL_READ_BUFFER
:
4453 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4456 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4459 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4462 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4464 case GL_RENDER_MODE
:
4465 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4467 case GL_RESCALE_NORMAL
:
4468 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4471 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4473 case GL_SCISSOR_BOX
:
4474 params
[0] = ctx
->Scissor
.X
;
4475 params
[1] = ctx
->Scissor
.Y
;
4476 params
[2] = ctx
->Scissor
.Width
;
4477 params
[3] = ctx
->Scissor
.Height
;
4479 case GL_SCISSOR_TEST
:
4480 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4482 case GL_SELECTION_BUFFER_SIZE
:
4483 params
[0] = ctx
->Select
.BufferSize
;
4485 case GL_SHADE_MODEL
:
4486 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4488 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4489 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4491 case GL_STENCIL_BITS
:
4492 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4494 case GL_STENCIL_CLEAR_VALUE
:
4495 params
[0] = ctx
->Stencil
.Clear
;
4497 case GL_STENCIL_FAIL
:
4498 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4500 case GL_STENCIL_FUNC
:
4501 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4503 case GL_STENCIL_PASS_DEPTH_FAIL
:
4504 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4506 case GL_STENCIL_PASS_DEPTH_PASS
:
4507 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4509 case GL_STENCIL_REF
:
4510 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4512 case GL_STENCIL_TEST
:
4513 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4515 case GL_STENCIL_VALUE_MASK
:
4516 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4518 case GL_STENCIL_WRITEMASK
:
4519 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4522 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4524 case GL_SUBPIXEL_BITS
:
4525 params
[0] = ctx
->Const
.SubPixelBits
;
4528 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4531 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4534 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4536 case GL_TEXTURE_1D_ARRAY_EXT
:
4537 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4538 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4540 case GL_TEXTURE_2D_ARRAY_EXT
:
4541 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4542 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4544 case GL_TEXTURE_BINDING_1D
:
4545 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
;
4547 case GL_TEXTURE_BINDING_2D
:
4548 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
;
4550 case GL_TEXTURE_BINDING_3D
:
4551 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
;
4553 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4554 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4555 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
;
4557 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4558 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4559 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
;
4561 case GL_TEXTURE_GEN_S
:
4562 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4564 case GL_TEXTURE_GEN_T
:
4565 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4567 case GL_TEXTURE_GEN_R
:
4568 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4570 case GL_TEXTURE_GEN_Q
:
4571 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4573 case GL_TEXTURE_MATRIX
:
4575 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4576 params
[0] = IROUND(matrix
[0]);
4577 params
[1] = IROUND(matrix
[1]);
4578 params
[2] = IROUND(matrix
[2]);
4579 params
[3] = IROUND(matrix
[3]);
4580 params
[4] = IROUND(matrix
[4]);
4581 params
[5] = IROUND(matrix
[5]);
4582 params
[6] = IROUND(matrix
[6]);
4583 params
[7] = IROUND(matrix
[7]);
4584 params
[8] = IROUND(matrix
[8]);
4585 params
[9] = IROUND(matrix
[9]);
4586 params
[10] = IROUND(matrix
[10]);
4587 params
[11] = IROUND(matrix
[11]);
4588 params
[12] = IROUND(matrix
[12]);
4589 params
[13] = IROUND(matrix
[13]);
4590 params
[14] = IROUND(matrix
[14]);
4591 params
[15] = IROUND(matrix
[15]);
4594 case GL_TEXTURE_STACK_DEPTH
:
4595 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4597 case GL_UNPACK_ALIGNMENT
:
4598 params
[0] = ctx
->Unpack
.Alignment
;
4600 case GL_UNPACK_LSB_FIRST
:
4601 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4603 case GL_UNPACK_ROW_LENGTH
:
4604 params
[0] = ctx
->Unpack
.RowLength
;
4606 case GL_UNPACK_SKIP_PIXELS
:
4607 params
[0] = ctx
->Unpack
.SkipPixels
;
4609 case GL_UNPACK_SKIP_ROWS
:
4610 params
[0] = ctx
->Unpack
.SkipRows
;
4612 case GL_UNPACK_SWAP_BYTES
:
4613 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4615 case GL_UNPACK_SKIP_IMAGES_EXT
:
4616 params
[0] = ctx
->Unpack
.SkipImages
;
4618 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4619 params
[0] = ctx
->Unpack
.ImageHeight
;
4621 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4622 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4625 params
[0] = ctx
->Viewport
.X
;
4626 params
[1] = ctx
->Viewport
.Y
;
4627 params
[2] = ctx
->Viewport
.Width
;
4628 params
[3] = ctx
->Viewport
.Height
;
4631 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4634 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4636 case GL_VERTEX_ARRAY
:
4637 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4639 case GL_VERTEX_ARRAY_SIZE
:
4640 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4642 case GL_VERTEX_ARRAY_TYPE
:
4643 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4645 case GL_VERTEX_ARRAY_STRIDE
:
4646 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4648 case GL_VERTEX_ARRAY_COUNT_EXT
:
4651 case GL_NORMAL_ARRAY
:
4652 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4654 case GL_NORMAL_ARRAY_TYPE
:
4655 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4657 case GL_NORMAL_ARRAY_STRIDE
:
4658 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4660 case GL_NORMAL_ARRAY_COUNT_EXT
:
4663 case GL_COLOR_ARRAY
:
4664 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4666 case GL_COLOR_ARRAY_SIZE
:
4667 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4669 case GL_COLOR_ARRAY_TYPE
:
4670 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4672 case GL_COLOR_ARRAY_STRIDE
:
4673 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4675 case GL_COLOR_ARRAY_COUNT_EXT
:
4678 case GL_INDEX_ARRAY
:
4679 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4681 case GL_INDEX_ARRAY_TYPE
:
4682 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4684 case GL_INDEX_ARRAY_STRIDE
:
4685 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4687 case GL_INDEX_ARRAY_COUNT_EXT
:
4690 case GL_TEXTURE_COORD_ARRAY
:
4691 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4693 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4694 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4696 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4697 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4699 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4700 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4702 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4705 case GL_EDGE_FLAG_ARRAY
:
4706 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4708 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4709 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4711 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4714 case GL_MAX_TEXTURE_UNITS_ARB
:
4715 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4716 params
[0] = ctx
->Const
.MaxTextureUnits
;
4718 case GL_ACTIVE_TEXTURE_ARB
:
4719 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4720 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4722 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4723 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4724 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4726 case GL_TEXTURE_CUBE_MAP_ARB
:
4727 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4728 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4730 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4731 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4732 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
;
4734 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4735 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4736 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4738 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4739 params
[0] = ctx
->Hint
.TextureCompression
;
4741 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4742 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4744 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4747 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4749 for (i
= 0; i
< n
; i
++)
4750 params
[i
] = ENUM_TO_INT(formats
[i
]);
4753 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4754 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4755 params
[0] = ctx
->Array
.LockFirst
;
4757 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4758 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4759 params
[0] = ctx
->Array
.LockCount
;
4761 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4763 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4764 params
[0] = IROUND(matrix
[0]);
4765 params
[1] = IROUND(matrix
[4]);
4766 params
[2] = IROUND(matrix
[8]);
4767 params
[3] = IROUND(matrix
[12]);
4768 params
[4] = IROUND(matrix
[1]);
4769 params
[5] = IROUND(matrix
[5]);
4770 params
[6] = IROUND(matrix
[9]);
4771 params
[7] = IROUND(matrix
[13]);
4772 params
[8] = IROUND(matrix
[2]);
4773 params
[9] = IROUND(matrix
[6]);
4774 params
[10] = IROUND(matrix
[10]);
4775 params
[11] = IROUND(matrix
[14]);
4776 params
[12] = IROUND(matrix
[3]);
4777 params
[13] = IROUND(matrix
[7]);
4778 params
[14] = IROUND(matrix
[11]);
4779 params
[15] = IROUND(matrix
[15]);
4782 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4784 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4785 params
[0] = IROUND(matrix
[0]);
4786 params
[1] = IROUND(matrix
[4]);
4787 params
[2] = IROUND(matrix
[8]);
4788 params
[3] = IROUND(matrix
[12]);
4789 params
[4] = IROUND(matrix
[1]);
4790 params
[5] = IROUND(matrix
[5]);
4791 params
[6] = IROUND(matrix
[9]);
4792 params
[7] = IROUND(matrix
[13]);
4793 params
[8] = IROUND(matrix
[2]);
4794 params
[9] = IROUND(matrix
[6]);
4795 params
[10] = IROUND(matrix
[10]);
4796 params
[11] = IROUND(matrix
[14]);
4797 params
[12] = IROUND(matrix
[3]);
4798 params
[13] = IROUND(matrix
[7]);
4799 params
[14] = IROUND(matrix
[11]);
4800 params
[15] = IROUND(matrix
[15]);
4803 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4805 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4806 params
[0] = IROUND(matrix
[0]);
4807 params
[1] = IROUND(matrix
[4]);
4808 params
[2] = IROUND(matrix
[8]);
4809 params
[3] = IROUND(matrix
[12]);
4810 params
[4] = IROUND(matrix
[1]);
4811 params
[5] = IROUND(matrix
[5]);
4812 params
[6] = IROUND(matrix
[9]);
4813 params
[7] = IROUND(matrix
[13]);
4814 params
[8] = IROUND(matrix
[2]);
4815 params
[9] = IROUND(matrix
[6]);
4816 params
[10] = IROUND(matrix
[10]);
4817 params
[11] = IROUND(matrix
[14]);
4818 params
[12] = IROUND(matrix
[3]);
4819 params
[13] = IROUND(matrix
[7]);
4820 params
[14] = IROUND(matrix
[11]);
4821 params
[15] = IROUND(matrix
[15]);
4824 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4826 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4827 params
[0] = IROUND(matrix
[0]);
4828 params
[1] = IROUND(matrix
[4]);
4829 params
[2] = IROUND(matrix
[8]);
4830 params
[3] = IROUND(matrix
[12]);
4831 params
[4] = IROUND(matrix
[1]);
4832 params
[5] = IROUND(matrix
[5]);
4833 params
[6] = IROUND(matrix
[9]);
4834 params
[7] = IROUND(matrix
[13]);
4835 params
[8] = IROUND(matrix
[2]);
4836 params
[9] = IROUND(matrix
[6]);
4837 params
[10] = IROUND(matrix
[10]);
4838 params
[11] = IROUND(matrix
[14]);
4839 params
[12] = IROUND(matrix
[3]);
4840 params
[13] = IROUND(matrix
[7]);
4841 params
[14] = IROUND(matrix
[11]);
4842 params
[15] = IROUND(matrix
[15]);
4845 case GL_COLOR_MATRIX_SGI
:
4847 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4848 params
[0] = IROUND(matrix
[0]);
4849 params
[1] = IROUND(matrix
[1]);
4850 params
[2] = IROUND(matrix
[2]);
4851 params
[3] = IROUND(matrix
[3]);
4852 params
[4] = IROUND(matrix
[4]);
4853 params
[5] = IROUND(matrix
[5]);
4854 params
[6] = IROUND(matrix
[6]);
4855 params
[7] = IROUND(matrix
[7]);
4856 params
[8] = IROUND(matrix
[8]);
4857 params
[9] = IROUND(matrix
[9]);
4858 params
[10] = IROUND(matrix
[10]);
4859 params
[11] = IROUND(matrix
[11]);
4860 params
[12] = IROUND(matrix
[12]);
4861 params
[13] = IROUND(matrix
[13]);
4862 params
[14] = IROUND(matrix
[14]);
4863 params
[15] = IROUND(matrix
[15]);
4866 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4867 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4869 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4870 params
[0] = MAX_COLOR_STACK_DEPTH
;
4872 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4873 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4875 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4876 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4878 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4879 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4881 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4882 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4884 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4885 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4887 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4888 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4890 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4891 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4893 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4894 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4896 case GL_CONVOLUTION_1D_EXT
:
4897 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4898 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4900 case GL_CONVOLUTION_2D_EXT
:
4901 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4902 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4904 case GL_SEPARABLE_2D_EXT
:
4905 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4906 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4908 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4909 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4910 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4912 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4913 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4914 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4916 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4917 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4918 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4920 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4921 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4922 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4924 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4925 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4926 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4928 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4929 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4930 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4932 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4933 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4934 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4936 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4937 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4938 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4941 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4942 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4945 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4946 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4948 case GL_COLOR_TABLE_SGI
:
4949 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4950 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
4952 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4953 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4954 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
4956 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4957 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4958 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
4960 case GL_TEXTURE_COLOR_TABLE_SGI
:
4961 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
4962 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4964 case GL_COLOR_SUM_EXT
:
4965 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
4966 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4968 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4969 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4971 FLUSH_CURRENT(ctx
, 0);
4972 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4973 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4974 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4975 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4978 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4979 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4980 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
4982 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
4983 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4984 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
4986 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
4987 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4988 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
4990 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
4991 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4992 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
4994 case GL_CURRENT_FOG_COORDINATE_EXT
:
4995 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4997 FLUSH_CURRENT(ctx
, 0);
4998 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5001 case GL_FOG_COORDINATE_ARRAY_EXT
:
5002 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5003 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
5005 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5006 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5007 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
5009 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5010 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5011 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
5013 case GL_FOG_COORDINATE_SOURCE_EXT
:
5014 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5015 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5017 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5018 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5019 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5021 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5022 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5023 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5025 case GL_MULTISAMPLE_ARB
:
5026 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5028 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5029 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5031 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5032 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5034 case GL_SAMPLE_COVERAGE_ARB
:
5035 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5037 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5038 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5040 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5041 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5043 case GL_SAMPLE_BUFFERS_ARB
:
5044 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5046 case GL_SAMPLES_ARB
:
5047 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5049 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5050 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5051 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5053 case GL_POINT_SPRITE_NV
:
5054 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5055 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5057 case GL_POINT_SPRITE_R_MODE_NV
:
5058 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5059 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5061 case GL_POINT_SPRITE_COORD_ORIGIN
:
5062 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5063 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5065 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5066 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5067 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5069 case GL_VERTEX_PROGRAM_BINDING_NV
:
5070 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5071 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5073 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5074 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5075 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5077 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5078 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5079 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5081 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5082 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5083 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5085 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5086 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5087 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5089 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5090 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5091 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5093 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5094 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5095 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5097 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5098 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5099 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5101 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5102 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5103 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5105 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5106 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5107 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5109 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5110 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5111 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5113 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5114 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5115 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5117 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5118 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5119 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5121 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5122 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5123 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5125 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5126 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5127 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5129 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5130 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5131 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5133 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5134 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5135 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5137 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5138 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5139 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5141 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5142 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5143 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5145 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5146 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5147 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5149 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5150 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5151 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5153 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5154 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5155 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5157 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5158 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5159 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5161 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5162 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5163 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5165 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5166 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5167 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5169 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5170 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5171 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5173 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5174 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5175 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5177 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5178 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5179 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5181 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5182 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5183 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5185 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5186 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5187 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5189 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5190 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5191 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5193 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5194 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5195 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5197 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5198 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5199 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5201 case GL_FRAGMENT_PROGRAM_NV
:
5202 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5203 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5205 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5206 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5207 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5209 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5210 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5211 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5213 case GL_TEXTURE_RECTANGLE_NV
:
5214 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5215 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5217 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5218 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5219 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
;
5221 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5222 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5223 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5225 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5226 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5227 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5229 case GL_ACTIVE_STENCIL_FACE_EXT
:
5230 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5231 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5233 case GL_MAX_SHININESS_NV
:
5234 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5235 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5237 case GL_MAX_SPOT_EXPONENT_NV
:
5238 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5239 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5241 case GL_ARRAY_BUFFER_BINDING_ARB
:
5242 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5244 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5245 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5247 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5248 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5250 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5251 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5253 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5254 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5256 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5257 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5259 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5260 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5262 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5263 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5265 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5266 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5268 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5269 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5271 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5272 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5273 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5275 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5276 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5277 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5279 case GL_VERTEX_PROGRAM_ARB
:
5280 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5281 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5283 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5284 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5285 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5287 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5288 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5289 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5291 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5292 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5293 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5295 case GL_MAX_PROGRAM_MATRICES_ARB
:
5296 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5297 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5299 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5300 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5301 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5303 case GL_CURRENT_MATRIX_ARB
:
5304 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5306 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5307 params
[0] = IROUND(matrix
[0]);
5308 params
[1] = IROUND(matrix
[1]);
5309 params
[2] = IROUND(matrix
[2]);
5310 params
[3] = IROUND(matrix
[3]);
5311 params
[4] = IROUND(matrix
[4]);
5312 params
[5] = IROUND(matrix
[5]);
5313 params
[6] = IROUND(matrix
[6]);
5314 params
[7] = IROUND(matrix
[7]);
5315 params
[8] = IROUND(matrix
[8]);
5316 params
[9] = IROUND(matrix
[9]);
5317 params
[10] = IROUND(matrix
[10]);
5318 params
[11] = IROUND(matrix
[11]);
5319 params
[12] = IROUND(matrix
[12]);
5320 params
[13] = IROUND(matrix
[13]);
5321 params
[14] = IROUND(matrix
[14]);
5322 params
[15] = IROUND(matrix
[15]);
5325 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5326 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5328 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5329 params
[0] = IROUND(matrix
[0]);
5330 params
[1] = IROUND(matrix
[4]);
5331 params
[2] = IROUND(matrix
[8]);
5332 params
[3] = IROUND(matrix
[12]);
5333 params
[4] = IROUND(matrix
[1]);
5334 params
[5] = IROUND(matrix
[5]);
5335 params
[6] = IROUND(matrix
[9]);
5336 params
[7] = IROUND(matrix
[13]);
5337 params
[8] = IROUND(matrix
[2]);
5338 params
[9] = IROUND(matrix
[6]);
5339 params
[10] = IROUND(matrix
[10]);
5340 params
[11] = IROUND(matrix
[14]);
5341 params
[12] = IROUND(matrix
[3]);
5342 params
[13] = IROUND(matrix
[7]);
5343 params
[14] = IROUND(matrix
[11]);
5344 params
[15] = IROUND(matrix
[15]);
5347 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5348 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5349 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5351 case GL_PROGRAM_ERROR_POSITION_ARB
:
5352 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5353 params
[0] = ctx
->Program
.ErrorPos
;
5355 case GL_FRAGMENT_PROGRAM_ARB
:
5356 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5357 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5359 case GL_MAX_TEXTURE_COORDS_ARB
:
5360 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5361 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5363 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5364 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5365 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5367 case GL_DEPTH_BOUNDS_TEST_EXT
:
5368 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5369 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5371 case GL_DEPTH_BOUNDS_EXT
:
5372 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5373 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5374 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5376 case GL_MAX_DRAW_BUFFERS_ARB
:
5377 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5379 case GL_DRAW_BUFFER0_ARB
:
5380 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5382 case GL_DRAW_BUFFER1_ARB
:
5385 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5386 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5389 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5390 params
[0] = ENUM_TO_INT(buffer
);
5393 case GL_DRAW_BUFFER2_ARB
:
5396 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5397 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5400 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5401 params
[0] = ENUM_TO_INT(buffer
);
5404 case GL_DRAW_BUFFER3_ARB
:
5407 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5408 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5411 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5412 params
[0] = ENUM_TO_INT(buffer
);
5415 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5416 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5417 params
[0] = ctx
->Const
.ColorReadType
;
5419 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5420 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5421 params
[0] = ctx
->Const
.ColorReadFormat
;
5423 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5424 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5427 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5428 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5431 case GL_NUM_PASSES_ATI
:
5432 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5435 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5436 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5439 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5440 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5443 case GL_COLOR_ALPHA_PAIRING_ATI
:
5444 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5445 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5447 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5448 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5451 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5452 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5455 case GL_STENCIL_BACK_FUNC
:
5456 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5458 case GL_STENCIL_BACK_VALUE_MASK
:
5459 params
[0] = ctx
->Stencil
.ValueMask
[1];
5461 case GL_STENCIL_BACK_WRITEMASK
:
5462 params
[0] = ctx
->Stencil
.WriteMask
[1];
5464 case GL_STENCIL_BACK_REF
:
5465 params
[0] = ctx
->Stencil
.Ref
[1];
5467 case GL_STENCIL_BACK_FAIL
:
5468 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5470 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5471 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5473 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5474 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5476 case GL_FRAMEBUFFER_BINDING_EXT
:
5477 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5478 params
[0] = ctx
->DrawBuffer
->Name
;
5480 case GL_RENDERBUFFER_BINDING_EXT
:
5481 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5482 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5484 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5485 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5486 params
[0] = ctx
->Const
.MaxColorAttachments
;
5488 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5489 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5490 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5492 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5493 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5494 params
[0] = ctx
->ReadBuffer
->Name
;
5496 case GL_PROVOKING_VERTEX_EXT
:
5497 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5498 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ProvokingVertex
);
5500 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
5501 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5502 params
[0] = BOOLEAN_TO_INT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
5504 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5505 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5506 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5508 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5509 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5510 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5512 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5513 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5514 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5516 case GL_MAX_VARYING_FLOATS_ARB
:
5517 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5518 params
[0] = ctx
->Const
.MaxVarying
* 4;
5520 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5521 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5522 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5524 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5525 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5526 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5528 case GL_CURRENT_PROGRAM
:
5529 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5530 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5532 case GL_MAX_SAMPLES
:
5533 CHECK_EXT1(ARB_framebuffer_object
, "GetIntegerv");
5534 params
[0] = ctx
->Const
.MaxSamples
;
5536 case GL_VERTEX_ARRAY_BINDING_APPLE
:
5537 CHECK_EXT1(APPLE_vertex_array_object
, "GetIntegerv");
5538 params
[0] = ctx
->Array
.ArrayObj
->Name
;
5540 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
5541 CHECK_EXT1(ARB_seamless_cube_map
, "GetIntegerv");
5542 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.CubeMapSeamless
);
5545 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5549 #if FEATURE_ARB_sync
5551 _mesa_GetInteger64v( GLenum pname
, GLint64
*params
)
5553 GET_CURRENT_CONTEXT(ctx
);
5554 ASSERT_OUTSIDE_BEGIN_END(ctx
);
5560 _mesa_update_state(ctx
);
5562 if (ctx
->Driver
.GetInteger64v
&&
5563 ctx
->Driver
.GetInteger64v(ctx
, pname
, params
))
5567 case GL_ACCUM_RED_BITS
:
5568 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
5570 case GL_ACCUM_GREEN_BITS
:
5571 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
5573 case GL_ACCUM_BLUE_BITS
:
5574 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
5576 case GL_ACCUM_ALPHA_BITS
:
5577 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
5579 case GL_ACCUM_CLEAR_VALUE
:
5580 params
[0] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[0]);
5581 params
[1] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[1]);
5582 params
[2] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[2]);
5583 params
[3] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[3]);
5586 params
[0] = IROUND64(ctx
->Pixel
.AlphaBias
);
5589 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
5591 case GL_ALPHA_SCALE
:
5592 params
[0] = IROUND64(ctx
->Pixel
.AlphaScale
);
5595 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.AlphaEnabled
);
5597 case GL_ALPHA_TEST_FUNC
:
5598 params
[0] = ENUM_TO_INT64(ctx
->Color
.AlphaFunc
);
5600 case GL_ALPHA_TEST_REF
:
5601 params
[0] = FLOAT_TO_INT64(ctx
->Color
.AlphaRef
);
5603 case GL_ATTRIB_STACK_DEPTH
:
5604 params
[0] = ctx
->AttribStackDepth
;
5606 case GL_AUTO_NORMAL
:
5607 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.AutoNormal
);
5609 case GL_AUX_BUFFERS
:
5610 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
5613 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.BlendEnabled
);
5616 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstRGB
);
5619 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcRGB
);
5621 case GL_BLEND_SRC_RGB_EXT
:
5622 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcRGB
);
5624 case GL_BLEND_DST_RGB_EXT
:
5625 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstRGB
);
5627 case GL_BLEND_SRC_ALPHA_EXT
:
5628 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcA
);
5630 case GL_BLEND_DST_ALPHA_EXT
:
5631 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstA
);
5633 case GL_BLEND_EQUATION
:
5634 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendEquationRGB
);
5636 case GL_BLEND_EQUATION_ALPHA_EXT
:
5637 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendEquationA
);
5639 case GL_BLEND_COLOR_EXT
:
5640 params
[0] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[0]);
5641 params
[1] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[1]);
5642 params
[2] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[2]);
5643 params
[3] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[3]);
5646 params
[0] = IROUND64(ctx
->Pixel
.BlueBias
);
5649 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
5652 params
[0] = IROUND64(ctx
->Pixel
.BlueScale
);
5654 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
5655 params
[0] = ctx
->ClientAttribStackDepth
;
5657 case GL_CLIP_PLANE0
:
5658 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
5660 case GL_CLIP_PLANE1
:
5661 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
5663 case GL_CLIP_PLANE2
:
5664 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
5666 case GL_CLIP_PLANE3
:
5667 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
5669 case GL_CLIP_PLANE4
:
5670 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
5672 case GL_CLIP_PLANE5
:
5673 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
5675 case GL_COLOR_CLEAR_VALUE
:
5676 params
[0] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[0]);
5677 params
[1] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[1]);
5678 params
[2] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[2]);
5679 params
[3] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[3]);
5681 case GL_COLOR_MATERIAL
:
5682 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.ColorMaterialEnabled
);
5684 case GL_COLOR_MATERIAL_FACE
:
5685 params
[0] = ENUM_TO_INT64(ctx
->Light
.ColorMaterialFace
);
5687 case GL_COLOR_MATERIAL_PARAMETER
:
5688 params
[0] = ENUM_TO_INT64(ctx
->Light
.ColorMaterialMode
);
5690 case GL_COLOR_WRITEMASK
:
5691 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
5692 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
5693 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
5694 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
5697 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.CullFlag
);
5699 case GL_CULL_FACE_MODE
:
5700 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.CullFaceMode
);
5702 case GL_CURRENT_COLOR
:
5704 FLUSH_CURRENT(ctx
, 0);
5705 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
5706 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
5707 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
5708 params
[3] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
5711 case GL_CURRENT_INDEX
:
5713 FLUSH_CURRENT(ctx
, 0);
5714 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
5717 case GL_CURRENT_NORMAL
:
5719 FLUSH_CURRENT(ctx
, 0);
5720 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
5721 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
5722 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
5725 case GL_CURRENT_RASTER_COLOR
:
5726 params
[0] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[0]);
5727 params
[1] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[1]);
5728 params
[2] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[2]);
5729 params
[3] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[3]);
5731 case GL_CURRENT_RASTER_DISTANCE
:
5732 params
[0] = IROUND64(ctx
->Current
.RasterDistance
);
5734 case GL_CURRENT_RASTER_INDEX
:
5735 params
[0] = IROUND64(ctx
->Current
.RasterIndex
);
5737 case GL_CURRENT_RASTER_POSITION
:
5738 params
[0] = IROUND64(ctx
->Current
.RasterPos
[0]);
5739 params
[1] = IROUND64(ctx
->Current
.RasterPos
[1]);
5740 params
[2] = IROUND64(ctx
->Current
.RasterPos
[2]);
5741 params
[3] = IROUND64(ctx
->Current
.RasterPos
[3]);
5743 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
5744 params
[0] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[0]);
5745 params
[1] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[1]);
5746 params
[2] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[2]);
5747 params
[3] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[3]);
5749 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
5751 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
5752 params
[0] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
5753 params
[1] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
5754 params
[2] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
5755 params
[3] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
5758 case GL_CURRENT_RASTER_POSITION_VALID
:
5759 params
[0] = BOOLEAN_TO_INT64(ctx
->Current
.RasterPosValid
);
5761 case GL_CURRENT_TEXTURE_COORDS
:
5763 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
5764 FLUSH_CURRENT(ctx
, 0);
5765 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
5766 params
[1] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
5767 params
[2] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
5768 params
[3] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
5772 params
[0] = IROUND64(ctx
->Pixel
.DepthBias
);
5775 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
5777 case GL_DEPTH_CLEAR_VALUE
:
5778 params
[0] = FLOAT_TO_INT64(((GLfloat
) ctx
->Depth
.Clear
));
5781 params
[0] = ENUM_TO_INT64(ctx
->Depth
.Func
);
5783 case GL_DEPTH_RANGE
:
5784 params
[0] = FLOAT_TO_INT64(ctx
->Viewport
.Near
);
5785 params
[1] = FLOAT_TO_INT64(ctx
->Viewport
.Far
);
5787 case GL_DEPTH_SCALE
:
5788 params
[0] = IROUND64(ctx
->Pixel
.DepthScale
);
5791 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.Test
);
5793 case GL_DEPTH_WRITEMASK
:
5794 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.Mask
);
5797 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.DitherFlag
);
5799 case GL_DOUBLEBUFFER
:
5800 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
5802 case GL_DRAW_BUFFER
:
5803 params
[0] = ENUM_TO_INT64(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5807 FLUSH_CURRENT(ctx
, 0);
5808 params
[0] = BOOLEAN_TO_INT64((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
5811 case GL_FEEDBACK_BUFFER_SIZE
:
5812 params
[0] = ctx
->Feedback
.BufferSize
;
5814 case GL_FEEDBACK_BUFFER_TYPE
:
5815 params
[0] = ENUM_TO_INT64(ctx
->Feedback
.Type
);
5818 params
[0] = BOOLEAN_TO_INT64(ctx
->Fog
.Enabled
);
5821 params
[0] = FLOAT_TO_INT64(ctx
->Fog
.Color
[0]);
5822 params
[1] = FLOAT_TO_INT64(ctx
->Fog
.Color
[1]);
5823 params
[2] = FLOAT_TO_INT64(ctx
->Fog
.Color
[2]);
5824 params
[3] = FLOAT_TO_INT64(ctx
->Fog
.Color
[3]);
5826 case GL_FOG_DENSITY
:
5827 params
[0] = IROUND64(ctx
->Fog
.Density
);
5830 params
[0] = IROUND64(ctx
->Fog
.End
);
5833 params
[0] = ENUM_TO_INT64(ctx
->Hint
.Fog
);
5836 params
[0] = IROUND64(ctx
->Fog
.Index
);
5839 params
[0] = ENUM_TO_INT64(ctx
->Fog
.Mode
);
5842 params
[0] = IROUND64(ctx
->Fog
.Start
);
5845 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.FrontFace
);
5848 params
[0] = IROUND64(ctx
->Pixel
.GreenBias
);
5851 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
5853 case GL_GREEN_SCALE
:
5854 params
[0] = IROUND64(ctx
->Pixel
.GreenScale
);
5857 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
5859 case GL_INDEX_CLEAR_VALUE
:
5860 params
[0] = ctx
->Color
.ClearIndex
;
5863 params
[0] = BOOLEAN_TO_INT64(!ctx
->DrawBuffer
->Visual
.rgbMode
);
5865 case GL_INDEX_OFFSET
:
5866 params
[0] = ctx
->Pixel
.IndexOffset
;
5868 case GL_INDEX_SHIFT
:
5869 params
[0] = ctx
->Pixel
.IndexShift
;
5871 case GL_INDEX_WRITEMASK
:
5872 params
[0] = ctx
->Color
.IndexMask
;
5875 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[0].Enabled
);
5878 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[1].Enabled
);
5881 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[2].Enabled
);
5884 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[3].Enabled
);
5887 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[4].Enabled
);
5890 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[5].Enabled
);
5893 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[6].Enabled
);
5896 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[7].Enabled
);
5899 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Enabled
);
5901 case GL_LIGHT_MODEL_AMBIENT
:
5902 params
[0] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[0]);
5903 params
[1] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[1]);
5904 params
[2] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[2]);
5905 params
[3] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[3]);
5907 case GL_LIGHT_MODEL_COLOR_CONTROL
:
5908 params
[0] = ENUM_TO_INT64(ctx
->Light
.Model
.ColorControl
);
5910 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
5911 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Model
.LocalViewer
);
5913 case GL_LIGHT_MODEL_TWO_SIDE
:
5914 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Model
.TwoSide
);
5916 case GL_LINE_SMOOTH
:
5917 params
[0] = BOOLEAN_TO_INT64(ctx
->Line
.SmoothFlag
);
5919 case GL_LINE_SMOOTH_HINT
:
5920 params
[0] = ENUM_TO_INT64(ctx
->Hint
.LineSmooth
);
5922 case GL_LINE_STIPPLE
:
5923 params
[0] = BOOLEAN_TO_INT64(ctx
->Line
.StippleFlag
);
5925 case GL_LINE_STIPPLE_PATTERN
:
5926 params
[0] = ctx
->Line
.StipplePattern
;
5928 case GL_LINE_STIPPLE_REPEAT
:
5929 params
[0] = ctx
->Line
.StippleFactor
;
5932 params
[0] = IROUND64(ctx
->Line
.Width
);
5934 case GL_LINE_WIDTH_GRANULARITY
:
5935 params
[0] = IROUND64(ctx
->Const
.LineWidthGranularity
);
5937 case GL_LINE_WIDTH_RANGE
:
5938 params
[0] = IROUND64(ctx
->Const
.MinLineWidthAA
);
5939 params
[1] = IROUND64(ctx
->Const
.MaxLineWidthAA
);
5941 case GL_ALIASED_LINE_WIDTH_RANGE
:
5942 params
[0] = IROUND64(ctx
->Const
.MinLineWidth
);
5943 params
[1] = IROUND64(ctx
->Const
.MaxLineWidth
);
5946 params
[0] = ctx
->List
.ListBase
;
5949 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
5954 if (!ctx
->CompileFlag
)
5956 else if (ctx
->ExecuteFlag
)
5957 mode
= GL_COMPILE_AND_EXECUTE
;
5960 params
[0] = ENUM_TO_INT64(mode
);
5963 case GL_INDEX_LOGIC_OP
:
5964 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.IndexLogicOpEnabled
);
5966 case GL_COLOR_LOGIC_OP
:
5967 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.ColorLogicOpEnabled
);
5969 case GL_LOGIC_OP_MODE
:
5970 params
[0] = ENUM_TO_INT64(ctx
->Color
.LogicOp
);
5972 case GL_MAP1_COLOR_4
:
5973 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Color4
);
5975 case GL_MAP1_GRID_DOMAIN
:
5976 params
[0] = IROUND64(ctx
->Eval
.MapGrid1u1
);
5977 params
[1] = IROUND64(ctx
->Eval
.MapGrid1u2
);
5979 case GL_MAP1_GRID_SEGMENTS
:
5980 params
[0] = ctx
->Eval
.MapGrid1un
;
5983 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Index
);
5985 case GL_MAP1_NORMAL
:
5986 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Normal
);
5988 case GL_MAP1_TEXTURE_COORD_1
:
5989 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord1
);
5991 case GL_MAP1_TEXTURE_COORD_2
:
5992 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord2
);
5994 case GL_MAP1_TEXTURE_COORD_3
:
5995 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord3
);
5997 case GL_MAP1_TEXTURE_COORD_4
:
5998 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord4
);
6000 case GL_MAP1_VERTEX_3
:
6001 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Vertex3
);
6003 case GL_MAP1_VERTEX_4
:
6004 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Vertex4
);
6006 case GL_MAP2_COLOR_4
:
6007 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Color4
);
6009 case GL_MAP2_GRID_DOMAIN
:
6010 params
[0] = IROUND64(ctx
->Eval
.MapGrid2u1
);
6011 params
[1] = IROUND64(ctx
->Eval
.MapGrid2u2
);
6012 params
[2] = IROUND64(ctx
->Eval
.MapGrid2v1
);
6013 params
[3] = IROUND64(ctx
->Eval
.MapGrid2v2
);
6015 case GL_MAP2_GRID_SEGMENTS
:
6016 params
[0] = ctx
->Eval
.MapGrid2un
;
6017 params
[1] = ctx
->Eval
.MapGrid2vn
;
6020 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Index
);
6022 case GL_MAP2_NORMAL
:
6023 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Normal
);
6025 case GL_MAP2_TEXTURE_COORD_1
:
6026 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord1
);
6028 case GL_MAP2_TEXTURE_COORD_2
:
6029 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord2
);
6031 case GL_MAP2_TEXTURE_COORD_3
:
6032 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord3
);
6034 case GL_MAP2_TEXTURE_COORD_4
:
6035 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord4
);
6037 case GL_MAP2_VERTEX_3
:
6038 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Vertex3
);
6040 case GL_MAP2_VERTEX_4
:
6041 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Vertex4
);
6044 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MapColorFlag
);
6046 case GL_MAP_STENCIL
:
6047 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MapStencilFlag
);
6049 case GL_MATRIX_MODE
:
6050 params
[0] = ENUM_TO_INT64(ctx
->Transform
.MatrixMode
);
6052 case GL_MAX_ATTRIB_STACK_DEPTH
:
6053 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
6055 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
6056 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
6058 case GL_MAX_CLIP_PLANES
:
6059 params
[0] = ctx
->Const
.MaxClipPlanes
;
6061 case GL_MAX_ELEMENTS_VERTICES
:
6062 params
[0] = ctx
->Const
.MaxArrayLockSize
;
6064 case GL_MAX_ELEMENTS_INDICES
:
6065 params
[0] = ctx
->Const
.MaxArrayLockSize
;
6067 case GL_MAX_EVAL_ORDER
:
6068 params
[0] = MAX_EVAL_ORDER
;
6071 params
[0] = ctx
->Const
.MaxLights
;
6073 case GL_MAX_LIST_NESTING
:
6074 params
[0] = MAX_LIST_NESTING
;
6076 case GL_MAX_MODELVIEW_STACK_DEPTH
:
6077 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
6079 case GL_MAX_NAME_STACK_DEPTH
:
6080 params
[0] = MAX_NAME_STACK_DEPTH
;
6082 case GL_MAX_PIXEL_MAP_TABLE
:
6083 params
[0] = MAX_PIXEL_MAP_TABLE
;
6085 case GL_MAX_PROJECTION_STACK_DEPTH
:
6086 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
6088 case GL_MAX_TEXTURE_SIZE
:
6089 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
6091 case GL_MAX_3D_TEXTURE_SIZE
:
6092 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
6094 case GL_MAX_TEXTURE_STACK_DEPTH
:
6095 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
6097 case GL_MAX_VIEWPORT_DIMS
:
6098 params
[0] = ctx
->Const
.MaxViewportWidth
;
6099 params
[1] = ctx
->Const
.MaxViewportHeight
;
6101 case GL_MODELVIEW_MATRIX
:
6103 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
6104 params
[0] = IROUND64(matrix
[0]);
6105 params
[1] = IROUND64(matrix
[1]);
6106 params
[2] = IROUND64(matrix
[2]);
6107 params
[3] = IROUND64(matrix
[3]);
6108 params
[4] = IROUND64(matrix
[4]);
6109 params
[5] = IROUND64(matrix
[5]);
6110 params
[6] = IROUND64(matrix
[6]);
6111 params
[7] = IROUND64(matrix
[7]);
6112 params
[8] = IROUND64(matrix
[8]);
6113 params
[9] = IROUND64(matrix
[9]);
6114 params
[10] = IROUND64(matrix
[10]);
6115 params
[11] = IROUND64(matrix
[11]);
6116 params
[12] = IROUND64(matrix
[12]);
6117 params
[13] = IROUND64(matrix
[13]);
6118 params
[14] = IROUND64(matrix
[14]);
6119 params
[15] = IROUND64(matrix
[15]);
6122 case GL_MODELVIEW_STACK_DEPTH
:
6123 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
6125 case GL_NAME_STACK_DEPTH
:
6126 params
[0] = ctx
->Select
.NameStackDepth
;
6129 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.Normalize
);
6131 case GL_PACK_ALIGNMENT
:
6132 params
[0] = ctx
->Pack
.Alignment
;
6134 case GL_PACK_LSB_FIRST
:
6135 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.LsbFirst
);
6137 case GL_PACK_ROW_LENGTH
:
6138 params
[0] = ctx
->Pack
.RowLength
;
6140 case GL_PACK_SKIP_PIXELS
:
6141 params
[0] = ctx
->Pack
.SkipPixels
;
6143 case GL_PACK_SKIP_ROWS
:
6144 params
[0] = ctx
->Pack
.SkipRows
;
6146 case GL_PACK_SWAP_BYTES
:
6147 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.SwapBytes
);
6149 case GL_PACK_SKIP_IMAGES_EXT
:
6150 params
[0] = ctx
->Pack
.SkipImages
;
6152 case GL_PACK_IMAGE_HEIGHT_EXT
:
6153 params
[0] = ctx
->Pack
.ImageHeight
;
6155 case GL_PACK_INVERT_MESA
:
6156 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.Invert
);
6158 case GL_PERSPECTIVE_CORRECTION_HINT
:
6159 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PerspectiveCorrection
);
6161 case GL_PIXEL_MAP_A_TO_A_SIZE
:
6162 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
6164 case GL_PIXEL_MAP_B_TO_B_SIZE
:
6165 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
6167 case GL_PIXEL_MAP_G_TO_G_SIZE
:
6168 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
6170 case GL_PIXEL_MAP_I_TO_A_SIZE
:
6171 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
6173 case GL_PIXEL_MAP_I_TO_B_SIZE
:
6174 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
6176 case GL_PIXEL_MAP_I_TO_G_SIZE
:
6177 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
6179 case GL_PIXEL_MAP_I_TO_I_SIZE
:
6180 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
6182 case GL_PIXEL_MAP_I_TO_R_SIZE
:
6183 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
6185 case GL_PIXEL_MAP_R_TO_R_SIZE
:
6186 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
6188 case GL_PIXEL_MAP_S_TO_S_SIZE
:
6189 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
6192 params
[0] = IROUND64(ctx
->Point
.Size
);
6194 case GL_POINT_SIZE_GRANULARITY
:
6195 params
[0] = IROUND64(ctx
->Const
.PointSizeGranularity
);
6197 case GL_POINT_SIZE_RANGE
:
6198 params
[0] = IROUND64(ctx
->Const
.MinPointSizeAA
);
6199 params
[1] = IROUND64(ctx
->Const
.MaxPointSizeAA
);
6201 case GL_ALIASED_POINT_SIZE_RANGE
:
6202 params
[0] = IROUND64(ctx
->Const
.MinPointSize
);
6203 params
[1] = IROUND64(ctx
->Const
.MaxPointSize
);
6205 case GL_POINT_SMOOTH
:
6206 params
[0] = BOOLEAN_TO_INT64(ctx
->Point
.SmoothFlag
);
6208 case GL_POINT_SMOOTH_HINT
:
6209 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PointSmooth
);
6211 case GL_POINT_SIZE_MIN_EXT
:
6212 params
[0] = IROUND64(ctx
->Point
.MinSize
);
6214 case GL_POINT_SIZE_MAX_EXT
:
6215 params
[0] = IROUND64(ctx
->Point
.MaxSize
);
6217 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
6218 params
[0] = IROUND64(ctx
->Point
.Threshold
);
6220 case GL_DISTANCE_ATTENUATION_EXT
:
6221 params
[0] = IROUND64(ctx
->Point
.Params
[0]);
6222 params
[1] = IROUND64(ctx
->Point
.Params
[1]);
6223 params
[2] = IROUND64(ctx
->Point
.Params
[2]);
6225 case GL_POLYGON_MODE
:
6226 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.FrontMode
);
6227 params
[1] = ENUM_TO_INT64(ctx
->Polygon
.BackMode
);
6229 case GL_POLYGON_OFFSET_BIAS_EXT
:
6230 params
[0] = IROUND64(ctx
->Polygon
.OffsetUnits
);
6232 case GL_POLYGON_OFFSET_FACTOR
:
6233 params
[0] = IROUND64(ctx
->Polygon
.OffsetFactor
);
6235 case GL_POLYGON_OFFSET_UNITS
:
6236 params
[0] = IROUND64(ctx
->Polygon
.OffsetUnits
);
6238 case GL_POLYGON_OFFSET_POINT
:
6239 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetPoint
);
6241 case GL_POLYGON_OFFSET_LINE
:
6242 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetLine
);
6244 case GL_POLYGON_OFFSET_FILL
:
6245 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetFill
);
6247 case GL_POLYGON_SMOOTH
:
6248 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.SmoothFlag
);
6250 case GL_POLYGON_SMOOTH_HINT
:
6251 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PolygonSmooth
);
6253 case GL_POLYGON_STIPPLE
:
6254 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.StippleFlag
);
6256 case GL_PROJECTION_MATRIX
:
6258 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
6259 params
[0] = IROUND64(matrix
[0]);
6260 params
[1] = IROUND64(matrix
[1]);
6261 params
[2] = IROUND64(matrix
[2]);
6262 params
[3] = IROUND64(matrix
[3]);
6263 params
[4] = IROUND64(matrix
[4]);
6264 params
[5] = IROUND64(matrix
[5]);
6265 params
[6] = IROUND64(matrix
[6]);
6266 params
[7] = IROUND64(matrix
[7]);
6267 params
[8] = IROUND64(matrix
[8]);
6268 params
[9] = IROUND64(matrix
[9]);
6269 params
[10] = IROUND64(matrix
[10]);
6270 params
[11] = IROUND64(matrix
[11]);
6271 params
[12] = IROUND64(matrix
[12]);
6272 params
[13] = IROUND64(matrix
[13]);
6273 params
[14] = IROUND64(matrix
[14]);
6274 params
[15] = IROUND64(matrix
[15]);
6277 case GL_PROJECTION_STACK_DEPTH
:
6278 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
6280 case GL_READ_BUFFER
:
6281 params
[0] = ENUM_TO_INT64(ctx
->ReadBuffer
->ColorReadBuffer
);
6284 params
[0] = IROUND64(ctx
->Pixel
.RedBias
);
6287 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
6290 params
[0] = IROUND64(ctx
->Pixel
.RedScale
);
6292 case GL_RENDER_MODE
:
6293 params
[0] = ENUM_TO_INT64(ctx
->RenderMode
);
6295 case GL_RESCALE_NORMAL
:
6296 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.RescaleNormals
);
6299 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.rgbMode
);
6301 case GL_SCISSOR_BOX
:
6302 params
[0] = ctx
->Scissor
.X
;
6303 params
[1] = ctx
->Scissor
.Y
;
6304 params
[2] = ctx
->Scissor
.Width
;
6305 params
[3] = ctx
->Scissor
.Height
;
6307 case GL_SCISSOR_TEST
:
6308 params
[0] = BOOLEAN_TO_INT64(ctx
->Scissor
.Enabled
);
6310 case GL_SELECTION_BUFFER_SIZE
:
6311 params
[0] = ctx
->Select
.BufferSize
;
6313 case GL_SHADE_MODEL
:
6314 params
[0] = ENUM_TO_INT64(ctx
->Light
.ShadeModel
);
6316 case GL_SHARED_TEXTURE_PALETTE_EXT
:
6317 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.SharedPalette
);
6319 case GL_STENCIL_BITS
:
6320 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
6322 case GL_STENCIL_CLEAR_VALUE
:
6323 params
[0] = ctx
->Stencil
.Clear
;
6325 case GL_STENCIL_FAIL
:
6326 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
6328 case GL_STENCIL_FUNC
:
6329 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
6331 case GL_STENCIL_PASS_DEPTH_FAIL
:
6332 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
6334 case GL_STENCIL_PASS_DEPTH_PASS
:
6335 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
6337 case GL_STENCIL_REF
:
6338 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
6340 case GL_STENCIL_TEST
:
6341 params
[0] = BOOLEAN_TO_INT64(ctx
->Stencil
.Enabled
);
6343 case GL_STENCIL_VALUE_MASK
:
6344 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
6346 case GL_STENCIL_WRITEMASK
:
6347 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
6350 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.stereoMode
);
6352 case GL_SUBPIXEL_BITS
:
6353 params
[0] = ctx
->Const
.SubPixelBits
;
6356 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D
));
6359 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D
));
6362 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_3D
));
6364 case GL_TEXTURE_1D_ARRAY_EXT
:
6365 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6366 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
6368 case GL_TEXTURE_2D_ARRAY_EXT
:
6369 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6370 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
6372 case GL_TEXTURE_BINDING_1D
:
6373 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
;
6375 case GL_TEXTURE_BINDING_2D
:
6376 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
;
6378 case GL_TEXTURE_BINDING_3D
:
6379 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
;
6381 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
6382 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6383 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
;
6385 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
6386 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6387 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
;
6389 case GL_TEXTURE_GEN_S
:
6390 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
6392 case GL_TEXTURE_GEN_T
:
6393 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
6395 case GL_TEXTURE_GEN_R
:
6396 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
6398 case GL_TEXTURE_GEN_Q
:
6399 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
6401 case GL_TEXTURE_MATRIX
:
6403 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
6404 params
[0] = IROUND64(matrix
[0]);
6405 params
[1] = IROUND64(matrix
[1]);
6406 params
[2] = IROUND64(matrix
[2]);
6407 params
[3] = IROUND64(matrix
[3]);
6408 params
[4] = IROUND64(matrix
[4]);
6409 params
[5] = IROUND64(matrix
[5]);
6410 params
[6] = IROUND64(matrix
[6]);
6411 params
[7] = IROUND64(matrix
[7]);
6412 params
[8] = IROUND64(matrix
[8]);
6413 params
[9] = IROUND64(matrix
[9]);
6414 params
[10] = IROUND64(matrix
[10]);
6415 params
[11] = IROUND64(matrix
[11]);
6416 params
[12] = IROUND64(matrix
[12]);
6417 params
[13] = IROUND64(matrix
[13]);
6418 params
[14] = IROUND64(matrix
[14]);
6419 params
[15] = IROUND64(matrix
[15]);
6422 case GL_TEXTURE_STACK_DEPTH
:
6423 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
6425 case GL_UNPACK_ALIGNMENT
:
6426 params
[0] = ctx
->Unpack
.Alignment
;
6428 case GL_UNPACK_LSB_FIRST
:
6429 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.LsbFirst
);
6431 case GL_UNPACK_ROW_LENGTH
:
6432 params
[0] = ctx
->Unpack
.RowLength
;
6434 case GL_UNPACK_SKIP_PIXELS
:
6435 params
[0] = ctx
->Unpack
.SkipPixels
;
6437 case GL_UNPACK_SKIP_ROWS
:
6438 params
[0] = ctx
->Unpack
.SkipRows
;
6440 case GL_UNPACK_SWAP_BYTES
:
6441 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.SwapBytes
);
6443 case GL_UNPACK_SKIP_IMAGES_EXT
:
6444 params
[0] = ctx
->Unpack
.SkipImages
;
6446 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
6447 params
[0] = ctx
->Unpack
.ImageHeight
;
6449 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
6450 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.ClientStorage
);
6453 params
[0] = ctx
->Viewport
.X
;
6454 params
[1] = ctx
->Viewport
.Y
;
6455 params
[2] = ctx
->Viewport
.Width
;
6456 params
[3] = ctx
->Viewport
.Height
;
6459 params
[0] = IROUND64(ctx
->Pixel
.ZoomX
);
6462 params
[0] = IROUND64(ctx
->Pixel
.ZoomY
);
6464 case GL_VERTEX_ARRAY
:
6465 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
6467 case GL_VERTEX_ARRAY_SIZE
:
6468 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
6470 case GL_VERTEX_ARRAY_TYPE
:
6471 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Vertex
.Type
);
6473 case GL_VERTEX_ARRAY_STRIDE
:
6474 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
6476 case GL_VERTEX_ARRAY_COUNT_EXT
:
6479 case GL_NORMAL_ARRAY
:
6480 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
6482 case GL_NORMAL_ARRAY_TYPE
:
6483 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Normal
.Type
);
6485 case GL_NORMAL_ARRAY_STRIDE
:
6486 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
6488 case GL_NORMAL_ARRAY_COUNT_EXT
:
6491 case GL_COLOR_ARRAY
:
6492 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Color
.Enabled
);
6494 case GL_COLOR_ARRAY_SIZE
:
6495 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
6497 case GL_COLOR_ARRAY_TYPE
:
6498 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Color
.Type
);
6500 case GL_COLOR_ARRAY_STRIDE
:
6501 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
6503 case GL_COLOR_ARRAY_COUNT_EXT
:
6506 case GL_INDEX_ARRAY
:
6507 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Index
.Enabled
);
6509 case GL_INDEX_ARRAY_TYPE
:
6510 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Index
.Type
);
6512 case GL_INDEX_ARRAY_STRIDE
:
6513 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
6515 case GL_INDEX_ARRAY_COUNT_EXT
:
6518 case GL_TEXTURE_COORD_ARRAY
:
6519 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
6521 case GL_TEXTURE_COORD_ARRAY_SIZE
:
6522 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
6524 case GL_TEXTURE_COORD_ARRAY_TYPE
:
6525 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
6527 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
6528 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
6530 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
6533 case GL_EDGE_FLAG_ARRAY
:
6534 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
6536 case GL_EDGE_FLAG_ARRAY_STRIDE
:
6537 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
6539 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
6542 case GL_MAX_TEXTURE_UNITS_ARB
:
6543 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6544 params
[0] = ctx
->Const
.MaxTextureUnits
;
6546 case GL_ACTIVE_TEXTURE_ARB
:
6547 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6548 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
6550 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
6551 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6552 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
6554 case GL_TEXTURE_CUBE_MAP_ARB
:
6555 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6556 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
6558 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
6559 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6560 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
;
6562 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
6563 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6564 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
6566 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
6567 params
[0] = ctx
->Hint
.TextureCompression
;
6569 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
6570 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
6572 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
6575 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
6577 for (i
= 0; i
< n
; i
++)
6578 params
[i
] = ENUM_TO_INT64(formats
[i
]);
6581 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
6582 CHECK_EXT1(EXT_compiled_vertex_array
, "GetInteger64v");
6583 params
[0] = ctx
->Array
.LockFirst
;
6585 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
6586 CHECK_EXT1(EXT_compiled_vertex_array
, "GetInteger64v");
6587 params
[0] = ctx
->Array
.LockCount
;
6589 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
6591 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
6592 params
[0] = IROUND64(matrix
[0]);
6593 params
[1] = IROUND64(matrix
[4]);
6594 params
[2] = IROUND64(matrix
[8]);
6595 params
[3] = IROUND64(matrix
[12]);
6596 params
[4] = IROUND64(matrix
[1]);
6597 params
[5] = IROUND64(matrix
[5]);
6598 params
[6] = IROUND64(matrix
[9]);
6599 params
[7] = IROUND64(matrix
[13]);
6600 params
[8] = IROUND64(matrix
[2]);
6601 params
[9] = IROUND64(matrix
[6]);
6602 params
[10] = IROUND64(matrix
[10]);
6603 params
[11] = IROUND64(matrix
[14]);
6604 params
[12] = IROUND64(matrix
[3]);
6605 params
[13] = IROUND64(matrix
[7]);
6606 params
[14] = IROUND64(matrix
[11]);
6607 params
[15] = IROUND64(matrix
[15]);
6610 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
6612 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
6613 params
[0] = IROUND64(matrix
[0]);
6614 params
[1] = IROUND64(matrix
[4]);
6615 params
[2] = IROUND64(matrix
[8]);
6616 params
[3] = IROUND64(matrix
[12]);
6617 params
[4] = IROUND64(matrix
[1]);
6618 params
[5] = IROUND64(matrix
[5]);
6619 params
[6] = IROUND64(matrix
[9]);
6620 params
[7] = IROUND64(matrix
[13]);
6621 params
[8] = IROUND64(matrix
[2]);
6622 params
[9] = IROUND64(matrix
[6]);
6623 params
[10] = IROUND64(matrix
[10]);
6624 params
[11] = IROUND64(matrix
[14]);
6625 params
[12] = IROUND64(matrix
[3]);
6626 params
[13] = IROUND64(matrix
[7]);
6627 params
[14] = IROUND64(matrix
[11]);
6628 params
[15] = IROUND64(matrix
[15]);
6631 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
6633 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
6634 params
[0] = IROUND64(matrix
[0]);
6635 params
[1] = IROUND64(matrix
[4]);
6636 params
[2] = IROUND64(matrix
[8]);
6637 params
[3] = IROUND64(matrix
[12]);
6638 params
[4] = IROUND64(matrix
[1]);
6639 params
[5] = IROUND64(matrix
[5]);
6640 params
[6] = IROUND64(matrix
[9]);
6641 params
[7] = IROUND64(matrix
[13]);
6642 params
[8] = IROUND64(matrix
[2]);
6643 params
[9] = IROUND64(matrix
[6]);
6644 params
[10] = IROUND64(matrix
[10]);
6645 params
[11] = IROUND64(matrix
[14]);
6646 params
[12] = IROUND64(matrix
[3]);
6647 params
[13] = IROUND64(matrix
[7]);
6648 params
[14] = IROUND64(matrix
[11]);
6649 params
[15] = IROUND64(matrix
[15]);
6652 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
6654 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
6655 params
[0] = IROUND64(matrix
[0]);
6656 params
[1] = IROUND64(matrix
[4]);
6657 params
[2] = IROUND64(matrix
[8]);
6658 params
[3] = IROUND64(matrix
[12]);
6659 params
[4] = IROUND64(matrix
[1]);
6660 params
[5] = IROUND64(matrix
[5]);
6661 params
[6] = IROUND64(matrix
[9]);
6662 params
[7] = IROUND64(matrix
[13]);
6663 params
[8] = IROUND64(matrix
[2]);
6664 params
[9] = IROUND64(matrix
[6]);
6665 params
[10] = IROUND64(matrix
[10]);
6666 params
[11] = IROUND64(matrix
[14]);
6667 params
[12] = IROUND64(matrix
[3]);
6668 params
[13] = IROUND64(matrix
[7]);
6669 params
[14] = IROUND64(matrix
[11]);
6670 params
[15] = IROUND64(matrix
[15]);
6673 case GL_COLOR_MATRIX_SGI
:
6675 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
6676 params
[0] = IROUND64(matrix
[0]);
6677 params
[1] = IROUND64(matrix
[1]);
6678 params
[2] = IROUND64(matrix
[2]);
6679 params
[3] = IROUND64(matrix
[3]);
6680 params
[4] = IROUND64(matrix
[4]);
6681 params
[5] = IROUND64(matrix
[5]);
6682 params
[6] = IROUND64(matrix
[6]);
6683 params
[7] = IROUND64(matrix
[7]);
6684 params
[8] = IROUND64(matrix
[8]);
6685 params
[9] = IROUND64(matrix
[9]);
6686 params
[10] = IROUND64(matrix
[10]);
6687 params
[11] = IROUND64(matrix
[11]);
6688 params
[12] = IROUND64(matrix
[12]);
6689 params
[13] = IROUND64(matrix
[13]);
6690 params
[14] = IROUND64(matrix
[14]);
6691 params
[15] = IROUND64(matrix
[15]);
6694 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
6695 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
6697 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
6698 params
[0] = MAX_COLOR_STACK_DEPTH
;
6700 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
6701 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[0]);
6703 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
6704 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[1]);
6706 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
6707 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[2]);
6709 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
6710 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[3]);
6712 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
6713 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[0]);
6715 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
6716 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[1]);
6718 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
6719 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[2]);
6721 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
6722 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[3]);
6724 case GL_CONVOLUTION_1D_EXT
:
6725 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6726 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Convolution1DEnabled
);
6728 case GL_CONVOLUTION_2D_EXT
:
6729 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6730 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Convolution2DEnabled
);
6732 case GL_SEPARABLE_2D_EXT
:
6733 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6734 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Separable2DEnabled
);
6736 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
6737 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6738 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[0]);
6740 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
6741 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6742 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[1]);
6744 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
6745 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6746 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[2]);
6748 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
6749 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6750 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[3]);
6752 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
6753 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6754 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[0]);
6756 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
6757 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6758 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[1]);
6760 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
6761 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6762 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[2]);
6764 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
6765 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6766 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[3]);
6769 CHECK_EXT1(EXT_histogram
, "GetInteger64v");
6770 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.HistogramEnabled
);
6773 CHECK_EXT1(EXT_histogram
, "GetInteger64v");
6774 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MinMaxEnabled
);
6776 case GL_COLOR_TABLE_SGI
:
6777 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6778 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
6780 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
6781 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6782 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
6784 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
6785 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6786 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
6788 case GL_TEXTURE_COLOR_TABLE_SGI
:
6789 CHECK_EXT1(SGI_texture_color_table
, "GetInteger64v");
6790 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
6792 case GL_COLOR_SUM_EXT
:
6793 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetInteger64v");
6794 params
[0] = BOOLEAN_TO_INT64(ctx
->Fog
.ColorSumEnabled
);
6796 case GL_CURRENT_SECONDARY_COLOR_EXT
:
6797 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6799 FLUSH_CURRENT(ctx
, 0);
6800 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
6801 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
6802 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
6803 params
[3] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
6806 case GL_SECONDARY_COLOR_ARRAY_EXT
:
6807 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6808 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
6810 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
6811 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6812 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
6814 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
6815 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6816 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
6818 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
6819 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6820 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
6822 case GL_CURRENT_FOG_COORDINATE_EXT
:
6823 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6825 FLUSH_CURRENT(ctx
, 0);
6826 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
6829 case GL_FOG_COORDINATE_ARRAY_EXT
:
6830 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6831 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
6833 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
6834 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6835 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
6837 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
6838 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6839 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
6841 case GL_FOG_COORDINATE_SOURCE_EXT
:
6842 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6843 params
[0] = ENUM_TO_INT64(ctx
->Fog
.FogCoordinateSource
);
6845 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
6846 CHECK_EXT1(EXT_texture_lod_bias
, "GetInteger64v");
6847 params
[0] = IROUND64(ctx
->Const
.MaxTextureLodBias
);
6849 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
6850 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetInteger64v");
6851 params
[0] = IROUND64(ctx
->Const
.MaxTextureMaxAnisotropy
);
6853 case GL_MULTISAMPLE_ARB
:
6854 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.Enabled
);
6856 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
6857 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleAlphaToCoverage
);
6859 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
6860 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleAlphaToOne
);
6862 case GL_SAMPLE_COVERAGE_ARB
:
6863 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleCoverage
);
6865 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
6866 params
[0] = IROUND64(ctx
->Multisample
.SampleCoverageValue
);
6868 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
6869 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleCoverageInvert
);
6871 case GL_SAMPLE_BUFFERS_ARB
:
6872 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
6874 case GL_SAMPLES_ARB
:
6875 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
6877 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
6878 CHECK_EXT1(IBM_rasterpos_clip
, "GetInteger64v");
6879 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.RasterPositionUnclipped
);
6881 case GL_POINT_SPRITE_NV
:
6882 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetInteger64v");
6883 params
[0] = BOOLEAN_TO_INT64(ctx
->Point
.PointSprite
);
6885 case GL_POINT_SPRITE_R_MODE_NV
:
6886 CHECK_EXT1(NV_point_sprite
, "GetInteger64v");
6887 params
[0] = ENUM_TO_INT64(ctx
->Point
.SpriteRMode
);
6889 case GL_POINT_SPRITE_COORD_ORIGIN
:
6890 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetInteger64v");
6891 params
[0] = ENUM_TO_INT64(ctx
->Point
.SpriteOrigin
);
6893 case GL_GENERATE_MIPMAP_HINT_SGIS
:
6894 CHECK_EXT1(SGIS_generate_mipmap
, "GetInteger64v");
6895 params
[0] = ENUM_TO_INT64(ctx
->Hint
.GenerateMipmap
);
6897 case GL_VERTEX_PROGRAM_BINDING_NV
:
6898 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6899 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
6901 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
6902 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6903 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
6905 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
6906 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6907 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
6909 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
6910 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6911 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
6913 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
6914 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6915 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
6917 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
6918 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6919 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
6921 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
6922 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6923 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
6925 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
6926 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6927 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
6929 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
6930 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6931 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
6933 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
6934 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6935 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
6937 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
6938 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6939 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
6941 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
6942 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6943 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
6945 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
6946 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6947 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
6949 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
6950 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6951 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
6953 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
6954 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6955 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
6957 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
6958 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6959 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
6961 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
6962 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6963 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
6965 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
6966 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6967 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[0]);
6969 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
6970 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6971 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[1]);
6973 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
6974 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6975 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[2]);
6977 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
6978 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6979 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[3]);
6981 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
6982 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6983 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[4]);
6985 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
6986 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6987 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[5]);
6989 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
6990 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6991 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[6]);
6993 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
6994 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6995 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[7]);
6997 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
6998 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6999 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[8]);
7001 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
7002 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7003 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[9]);
7005 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
7006 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7007 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[10]);
7009 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
7010 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7011 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[11]);
7013 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
7014 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7015 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[12]);
7017 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
7018 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7019 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[13]);
7021 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
7022 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7023 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[14]);
7025 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
7026 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7027 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[15]);
7029 case GL_FRAGMENT_PROGRAM_NV
:
7030 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7031 params
[0] = BOOLEAN_TO_INT64(ctx
->FragmentProgram
.Enabled
);
7033 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
7034 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7035 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
7037 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
7038 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7039 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
7041 case GL_TEXTURE_RECTANGLE_NV
:
7042 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7043 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
7045 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
7046 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7047 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
;
7049 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
7050 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7051 params
[0] = ctx
->Const
.MaxTextureRectSize
;
7053 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
7054 CHECK_EXT1(EXT_stencil_two_side
, "GetInteger64v");
7055 params
[0] = BOOLEAN_TO_INT64(ctx
->Stencil
.TestTwoSide
);
7057 case GL_ACTIVE_STENCIL_FACE_EXT
:
7058 CHECK_EXT1(EXT_stencil_two_side
, "GetInteger64v");
7059 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
7061 case GL_MAX_SHININESS_NV
:
7062 CHECK_EXT1(NV_light_max_exponent
, "GetInteger64v");
7063 params
[0] = IROUND64(ctx
->Const
.MaxShininess
);
7065 case GL_MAX_SPOT_EXPONENT_NV
:
7066 CHECK_EXT1(NV_light_max_exponent
, "GetInteger64v");
7067 params
[0] = IROUND64(ctx
->Const
.MaxSpotExponent
);
7069 case GL_ARRAY_BUFFER_BINDING_ARB
:
7070 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
7072 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
7073 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
7075 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
7076 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
7078 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
7079 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
7081 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
7082 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
7084 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
7085 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
7087 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
7088 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
7090 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
7091 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
7093 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
7094 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
7096 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
7097 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
7099 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
7100 CHECK_EXT1(EXT_pixel_buffer_object
, "GetInteger64v");
7101 params
[0] = ctx
->Pack
.BufferObj
->Name
;
7103 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
7104 CHECK_EXT1(EXT_pixel_buffer_object
, "GetInteger64v");
7105 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
7107 case GL_VERTEX_PROGRAM_ARB
:
7108 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7109 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.Enabled
);
7111 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
7112 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7113 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.PointSizeEnabled
);
7115 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
7116 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7117 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.TwoSideEnabled
);
7119 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
7120 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7121 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
7123 case GL_MAX_PROGRAM_MATRICES_ARB
:
7124 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7125 params
[0] = ctx
->Const
.MaxProgramMatrices
;
7127 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
7128 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7129 params
[0] = BOOLEAN_TO_INT64(ctx
->CurrentStack
->Depth
+ 1);
7131 case GL_CURRENT_MATRIX_ARB
:
7132 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7134 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
7135 params
[0] = IROUND64(matrix
[0]);
7136 params
[1] = IROUND64(matrix
[1]);
7137 params
[2] = IROUND64(matrix
[2]);
7138 params
[3] = IROUND64(matrix
[3]);
7139 params
[4] = IROUND64(matrix
[4]);
7140 params
[5] = IROUND64(matrix
[5]);
7141 params
[6] = IROUND64(matrix
[6]);
7142 params
[7] = IROUND64(matrix
[7]);
7143 params
[8] = IROUND64(matrix
[8]);
7144 params
[9] = IROUND64(matrix
[9]);
7145 params
[10] = IROUND64(matrix
[10]);
7146 params
[11] = IROUND64(matrix
[11]);
7147 params
[12] = IROUND64(matrix
[12]);
7148 params
[13] = IROUND64(matrix
[13]);
7149 params
[14] = IROUND64(matrix
[14]);
7150 params
[15] = IROUND64(matrix
[15]);
7153 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
7154 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetInteger64v");
7156 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
7157 params
[0] = IROUND64(matrix
[0]);
7158 params
[1] = IROUND64(matrix
[4]);
7159 params
[2] = IROUND64(matrix
[8]);
7160 params
[3] = IROUND64(matrix
[12]);
7161 params
[4] = IROUND64(matrix
[1]);
7162 params
[5] = IROUND64(matrix
[5]);
7163 params
[6] = IROUND64(matrix
[9]);
7164 params
[7] = IROUND64(matrix
[13]);
7165 params
[8] = IROUND64(matrix
[2]);
7166 params
[9] = IROUND64(matrix
[6]);
7167 params
[10] = IROUND64(matrix
[10]);
7168 params
[11] = IROUND64(matrix
[14]);
7169 params
[12] = IROUND64(matrix
[3]);
7170 params
[13] = IROUND64(matrix
[7]);
7171 params
[14] = IROUND64(matrix
[11]);
7172 params
[15] = IROUND64(matrix
[15]);
7175 case GL_MAX_VERTEX_ATTRIBS_ARB
:
7176 CHECK_EXT1(ARB_vertex_program
, "GetInteger64v");
7177 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
7179 case GL_PROGRAM_ERROR_POSITION_ARB
:
7180 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetInteger64v");
7181 params
[0] = ctx
->Program
.ErrorPos
;
7183 case GL_FRAGMENT_PROGRAM_ARB
:
7184 CHECK_EXT1(ARB_fragment_program
, "GetInteger64v");
7185 params
[0] = BOOLEAN_TO_INT64(ctx
->FragmentProgram
.Enabled
);
7187 case GL_MAX_TEXTURE_COORDS_ARB
:
7188 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7189 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
7191 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
7192 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7193 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
7195 case GL_DEPTH_BOUNDS_TEST_EXT
:
7196 CHECK_EXT1(EXT_depth_bounds_test
, "GetInteger64v");
7197 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.BoundsTest
);
7199 case GL_DEPTH_BOUNDS_EXT
:
7200 CHECK_EXT1(EXT_depth_bounds_test
, "GetInteger64v");
7201 params
[0] = IROUND64(ctx
->Depth
.BoundsMin
);
7202 params
[1] = IROUND64(ctx
->Depth
.BoundsMax
);
7204 case GL_MAX_DRAW_BUFFERS_ARB
:
7205 params
[0] = ctx
->Const
.MaxDrawBuffers
;
7207 case GL_DRAW_BUFFER0_ARB
:
7208 params
[0] = ENUM_TO_INT64(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
7210 case GL_DRAW_BUFFER1_ARB
:
7213 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7214 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7217 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
7218 params
[0] = ENUM_TO_INT64(buffer
);
7221 case GL_DRAW_BUFFER2_ARB
:
7224 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7225 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7228 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
7229 params
[0] = ENUM_TO_INT64(buffer
);
7232 case GL_DRAW_BUFFER3_ARB
:
7235 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7236 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7239 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
7240 params
[0] = ENUM_TO_INT64(buffer
);
7243 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
7244 CHECK_EXT1(OES_read_format
, "GetInteger64v");
7245 params
[0] = ctx
->Const
.ColorReadType
;
7247 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
7248 CHECK_EXT1(OES_read_format
, "GetInteger64v");
7249 params
[0] = ctx
->Const
.ColorReadFormat
;
7251 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
7252 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7255 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
7256 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7259 case GL_NUM_PASSES_ATI
:
7260 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7263 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
7264 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7267 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
7268 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7271 case GL_COLOR_ALPHA_PAIRING_ATI
:
7272 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7273 params
[0] = BOOLEAN_TO_INT64(GL_TRUE
);
7275 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
7276 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7279 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
7280 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7283 case GL_STENCIL_BACK_FUNC
:
7284 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.Function
[1]);
7286 case GL_STENCIL_BACK_VALUE_MASK
:
7287 params
[0] = ctx
->Stencil
.ValueMask
[1];
7289 case GL_STENCIL_BACK_WRITEMASK
:
7290 params
[0] = ctx
->Stencil
.WriteMask
[1];
7292 case GL_STENCIL_BACK_REF
:
7293 params
[0] = ctx
->Stencil
.Ref
[1];
7295 case GL_STENCIL_BACK_FAIL
:
7296 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.FailFunc
[1]);
7298 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
7299 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZFailFunc
[1]);
7301 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
7302 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZPassFunc
[1]);
7304 case GL_FRAMEBUFFER_BINDING_EXT
:
7305 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7306 params
[0] = ctx
->DrawBuffer
->Name
;
7308 case GL_RENDERBUFFER_BINDING_EXT
:
7309 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7310 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
7312 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
7313 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7314 params
[0] = ctx
->Const
.MaxColorAttachments
;
7316 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
7317 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7318 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
7320 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
7321 CHECK_EXT1(EXT_framebuffer_blit
, "GetInteger64v");
7322 params
[0] = ctx
->ReadBuffer
->Name
;
7324 case GL_PROVOKING_VERTEX_EXT
:
7325 CHECK_EXT1(EXT_provoking_vertex
, "GetInteger64v");
7326 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.ProvokingVertex
);
7328 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
7329 CHECK_EXT1(EXT_provoking_vertex
, "GetInteger64v");
7330 params
[0] = BOOLEAN_TO_INT64(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
7332 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
7333 CHECK_EXT1(ARB_fragment_shader
, "GetInteger64v");
7334 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
7336 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
7337 CHECK_EXT1(ARB_fragment_shader
, "GetInteger64v");
7338 params
[0] = ENUM_TO_INT64(ctx
->Hint
.FragmentShaderDerivative
);
7340 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
7341 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7342 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
7344 case GL_MAX_VARYING_FLOATS_ARB
:
7345 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7346 params
[0] = ctx
->Const
.MaxVarying
* 4;
7348 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
7349 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7350 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
7352 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
7353 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7354 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
7356 case GL_CURRENT_PROGRAM
:
7357 CHECK_EXT1(ARB_shader_objects
, "GetInteger64v");
7358 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
7360 case GL_MAX_SAMPLES
:
7361 CHECK_EXT1(ARB_framebuffer_object
, "GetInteger64v");
7362 params
[0] = ctx
->Const
.MaxSamples
;
7364 case GL_VERTEX_ARRAY_BINDING_APPLE
:
7365 CHECK_EXT1(APPLE_vertex_array_object
, "GetInteger64v");
7366 params
[0] = ctx
->Array
.ArrayObj
->Name
;
7368 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
7369 CHECK_EXT1(ARB_seamless_cube_map
, "GetInteger64v");
7370 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.CubeMapSeamless
);
7373 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetInteger64v(pname=0x%x)", pname
);
7376 #endif /* FEATURE_ARB_sync */
7380 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
7382 const GLfloat magic
= -1234.5F
;
7389 /* Init temp array to magic numbers so we can figure out how many values
7390 * are returned by the GetFloatv() call.
7392 for (i
= 0; i
< 16; i
++)
7395 _mesa_GetFloatv(pname
, values
);
7397 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
7398 params
[i
] = (GLdouble
) values
[i
];