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 INT64_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
23 #define INT64_TO_INT(I) ( (GLint)((I > INT_MAX) ? INT_MAX : ((I < INT_MIN) ? INT_MIN : (I))) )
25 #define BOOLEAN_TO_INT(B) ( (GLint) (B) )
26 #define BOOLEAN_TO_INT64(B) ( (GLint64) (B) )
27 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
29 #define ENUM_TO_INT64(E) ( (GLint64) (E) )
33 * Check if named extension is enabled, if not generate error and return.
35 #define CHECK_EXT1(EXT1, FUNC) \
36 if (!ctx->Extensions.EXT1) { \
37 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
42 * Check if either of two extensions is enabled.
44 #define CHECK_EXT2(EXT1, EXT2, FUNC) \
45 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \
46 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
51 * Check if either of three extensions is enabled.
53 #define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC) \
54 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
55 !ctx->Extensions.EXT3) { \
56 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
61 * Check if either of four extensions is enabled.
63 #define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \
64 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
65 !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \
66 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
72 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
74 GET_CURRENT_CONTEXT(ctx
);
75 ASSERT_OUTSIDE_BEGIN_END(ctx
);
81 _mesa_update_state(ctx
);
83 if (ctx
->Driver
.GetBooleanv
&&
84 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
88 case GL_ACCUM_RED_BITS
:
89 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumRedBits
);
91 case GL_ACCUM_GREEN_BITS
:
92 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
94 case GL_ACCUM_BLUE_BITS
:
95 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
97 case GL_ACCUM_ALPHA_BITS
:
98 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
100 case GL_ACCUM_CLEAR_VALUE
:
101 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
102 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
103 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
104 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
107 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
110 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.alphaBits
);
113 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
116 params
[0] = ctx
->Color
.AlphaEnabled
;
118 case GL_ALPHA_TEST_FUNC
:
119 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
121 case GL_ALPHA_TEST_REF
:
122 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
124 case GL_ATTRIB_STACK_DEPTH
:
125 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
128 params
[0] = ctx
->Eval
.AutoNormal
;
131 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
134 params
[0] = ctx
->Color
.BlendEnabled
;
137 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
140 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
142 case GL_BLEND_SRC_RGB_EXT
:
143 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
145 case GL_BLEND_DST_RGB_EXT
:
146 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
148 case GL_BLEND_SRC_ALPHA_EXT
:
149 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
151 case GL_BLEND_DST_ALPHA_EXT
:
152 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
154 case GL_BLEND_EQUATION
:
155 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
157 case GL_BLEND_EQUATION_ALPHA_EXT
:
158 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
160 case GL_BLEND_COLOR_EXT
:
161 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
162 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
163 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
164 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
167 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
170 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.blueBits
);
173 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
175 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
176 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
179 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
182 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
185 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
188 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
191 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
194 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
196 case GL_COLOR_CLEAR_VALUE
:
197 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
198 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
199 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
200 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
202 case GL_COLOR_MATERIAL
:
203 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
205 case GL_COLOR_MATERIAL_FACE
:
206 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
208 case GL_COLOR_MATERIAL_PARAMETER
:
209 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
211 case GL_COLOR_WRITEMASK
:
212 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
213 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
214 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
215 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
218 params
[0] = ctx
->Polygon
.CullFlag
;
220 case GL_CULL_FACE_MODE
:
221 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
223 case GL_CURRENT_COLOR
:
225 FLUSH_CURRENT(ctx
, 0);
226 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
227 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
228 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
229 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
232 case GL_CURRENT_INDEX
:
234 FLUSH_CURRENT(ctx
, 0);
235 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
238 case GL_CURRENT_NORMAL
:
240 FLUSH_CURRENT(ctx
, 0);
241 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
242 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
243 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
246 case GL_CURRENT_RASTER_COLOR
:
247 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
248 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
249 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
250 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
252 case GL_CURRENT_RASTER_DISTANCE
:
253 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
255 case GL_CURRENT_RASTER_INDEX
:
256 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterIndex
);
258 case GL_CURRENT_RASTER_POSITION
:
259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
260 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
261 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
262 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
264 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
265 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[0]);
266 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[1]);
267 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[2]);
268 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[3]);
270 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
272 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
273 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
274 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
275 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
276 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
279 case GL_CURRENT_RASTER_POSITION_VALID
:
280 params
[0] = ctx
->Current
.RasterPosValid
;
282 case GL_CURRENT_TEXTURE_COORDS
:
284 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
285 FLUSH_CURRENT(ctx
, 0);
286 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
287 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
288 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
289 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
293 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
296 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
298 case GL_DEPTH_CLEAR_VALUE
:
299 params
[0] = FLOAT_TO_BOOLEAN(((GLfloat
) ctx
->Depth
.Clear
));
302 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
305 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
306 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
309 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
312 params
[0] = ctx
->Depth
.Test
;
314 case GL_DEPTH_WRITEMASK
:
315 params
[0] = ctx
->Depth
.Mask
;
318 params
[0] = ctx
->Color
.DitherFlag
;
320 case GL_DOUBLEBUFFER
:
321 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
324 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
328 FLUSH_CURRENT(ctx
, 0);
329 params
[0] = (ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0);
332 case GL_FEEDBACK_BUFFER_SIZE
:
333 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
335 case GL_FEEDBACK_BUFFER_TYPE
:
336 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
339 params
[0] = ctx
->Fog
.Enabled
;
342 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
343 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
344 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
345 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
348 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
351 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
354 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
357 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
360 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
363 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
366 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
369 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
372 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
375 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
378 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
380 case GL_INDEX_CLEAR_VALUE
:
381 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
384 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
386 case GL_INDEX_OFFSET
:
387 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
390 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
392 case GL_INDEX_WRITEMASK
:
393 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
396 params
[0] = ctx
->Light
.Light
[0].Enabled
;
399 params
[0] = ctx
->Light
.Light
[1].Enabled
;
402 params
[0] = ctx
->Light
.Light
[2].Enabled
;
405 params
[0] = ctx
->Light
.Light
[3].Enabled
;
408 params
[0] = ctx
->Light
.Light
[4].Enabled
;
411 params
[0] = ctx
->Light
.Light
[5].Enabled
;
414 params
[0] = ctx
->Light
.Light
[6].Enabled
;
417 params
[0] = ctx
->Light
.Light
[7].Enabled
;
420 params
[0] = ctx
->Light
.Enabled
;
422 case GL_LIGHT_MODEL_AMBIENT
:
423 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
424 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
425 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
426 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
428 case GL_LIGHT_MODEL_COLOR_CONTROL
:
429 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
431 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
432 params
[0] = ctx
->Light
.Model
.LocalViewer
;
434 case GL_LIGHT_MODEL_TWO_SIDE
:
435 params
[0] = ctx
->Light
.Model
.TwoSide
;
438 params
[0] = ctx
->Line
.SmoothFlag
;
440 case GL_LINE_SMOOTH_HINT
:
441 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
443 case GL_LINE_STIPPLE
:
444 params
[0] = ctx
->Line
.StippleFlag
;
446 case GL_LINE_STIPPLE_PATTERN
:
447 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
449 case GL_LINE_STIPPLE_REPEAT
:
450 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
453 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
455 case GL_LINE_WIDTH_GRANULARITY
:
456 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
458 case GL_LINE_WIDTH_RANGE
:
459 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
460 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
462 case GL_ALIASED_LINE_WIDTH_RANGE
:
463 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
464 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
467 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
470 params
[0] = INT_TO_BOOLEAN((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
475 if (!ctx
->CompileFlag
)
477 else if (ctx
->ExecuteFlag
)
478 mode
= GL_COMPILE_AND_EXECUTE
;
481 params
[0] = ENUM_TO_BOOLEAN(mode
);
484 case GL_INDEX_LOGIC_OP
:
485 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
487 case GL_COLOR_LOGIC_OP
:
488 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
490 case GL_LOGIC_OP_MODE
:
491 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
493 case GL_MAP1_COLOR_4
:
494 params
[0] = ctx
->Eval
.Map1Color4
;
496 case GL_MAP1_GRID_DOMAIN
:
497 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
498 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
500 case GL_MAP1_GRID_SEGMENTS
:
501 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
504 params
[0] = ctx
->Eval
.Map1Index
;
507 params
[0] = ctx
->Eval
.Map1Normal
;
509 case GL_MAP1_TEXTURE_COORD_1
:
510 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
512 case GL_MAP1_TEXTURE_COORD_2
:
513 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
515 case GL_MAP1_TEXTURE_COORD_3
:
516 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
518 case GL_MAP1_TEXTURE_COORD_4
:
519 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
521 case GL_MAP1_VERTEX_3
:
522 params
[0] = ctx
->Eval
.Map1Vertex3
;
524 case GL_MAP1_VERTEX_4
:
525 params
[0] = ctx
->Eval
.Map1Vertex4
;
527 case GL_MAP2_COLOR_4
:
528 params
[0] = ctx
->Eval
.Map2Color4
;
530 case GL_MAP2_GRID_DOMAIN
:
531 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
532 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
533 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
534 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
536 case GL_MAP2_GRID_SEGMENTS
:
537 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
538 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
541 params
[0] = ctx
->Eval
.Map2Index
;
544 params
[0] = ctx
->Eval
.Map2Normal
;
546 case GL_MAP2_TEXTURE_COORD_1
:
547 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
549 case GL_MAP2_TEXTURE_COORD_2
:
550 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
552 case GL_MAP2_TEXTURE_COORD_3
:
553 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
555 case GL_MAP2_TEXTURE_COORD_4
:
556 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
558 case GL_MAP2_VERTEX_3
:
559 params
[0] = ctx
->Eval
.Map2Vertex3
;
561 case GL_MAP2_VERTEX_4
:
562 params
[0] = ctx
->Eval
.Map2Vertex4
;
565 params
[0] = ctx
->Pixel
.MapColorFlag
;
568 params
[0] = ctx
->Pixel
.MapStencilFlag
;
571 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
573 case GL_MAX_ATTRIB_STACK_DEPTH
:
574 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
576 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
577 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
579 case GL_MAX_CLIP_PLANES
:
580 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
582 case GL_MAX_ELEMENTS_VERTICES
:
583 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
585 case GL_MAX_ELEMENTS_INDICES
:
586 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
588 case GL_MAX_EVAL_ORDER
:
589 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
592 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
594 case GL_MAX_LIST_NESTING
:
595 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
597 case GL_MAX_MODELVIEW_STACK_DEPTH
:
598 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
600 case GL_MAX_NAME_STACK_DEPTH
:
601 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
603 case GL_MAX_PIXEL_MAP_TABLE
:
604 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
606 case GL_MAX_PROJECTION_STACK_DEPTH
:
607 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
609 case GL_MAX_TEXTURE_SIZE
:
610 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
612 case GL_MAX_3D_TEXTURE_SIZE
:
613 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
615 case GL_MAX_TEXTURE_STACK_DEPTH
:
616 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
618 case GL_MAX_VIEWPORT_DIMS
:
619 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
620 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
622 case GL_MODELVIEW_MATRIX
:
624 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
625 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
626 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
627 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
628 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
629 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
630 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
631 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
632 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
633 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
634 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
635 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
636 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
637 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
638 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
639 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
640 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
643 case GL_MODELVIEW_STACK_DEPTH
:
644 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
646 case GL_NAME_STACK_DEPTH
:
647 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
650 params
[0] = ctx
->Transform
.Normalize
;
652 case GL_PACK_ALIGNMENT
:
653 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
655 case GL_PACK_LSB_FIRST
:
656 params
[0] = ctx
->Pack
.LsbFirst
;
658 case GL_PACK_ROW_LENGTH
:
659 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
661 case GL_PACK_SKIP_PIXELS
:
662 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
664 case GL_PACK_SKIP_ROWS
:
665 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
667 case GL_PACK_SWAP_BYTES
:
668 params
[0] = ctx
->Pack
.SwapBytes
;
670 case GL_PACK_SKIP_IMAGES_EXT
:
671 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
673 case GL_PACK_IMAGE_HEIGHT_EXT
:
674 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
676 case GL_PACK_INVERT_MESA
:
677 params
[0] = ctx
->Pack
.Invert
;
679 case GL_PERSPECTIVE_CORRECTION_HINT
:
680 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
682 case GL_PIXEL_MAP_A_TO_A_SIZE
:
683 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.AtoA
.Size
);
685 case GL_PIXEL_MAP_B_TO_B_SIZE
:
686 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.BtoB
.Size
);
688 case GL_PIXEL_MAP_G_TO_G_SIZE
:
689 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.GtoG
.Size
);
691 case GL_PIXEL_MAP_I_TO_A_SIZE
:
692 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoA
.Size
);
694 case GL_PIXEL_MAP_I_TO_B_SIZE
:
695 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoB
.Size
);
697 case GL_PIXEL_MAP_I_TO_G_SIZE
:
698 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoG
.Size
);
700 case GL_PIXEL_MAP_I_TO_I_SIZE
:
701 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoI
.Size
);
703 case GL_PIXEL_MAP_I_TO_R_SIZE
:
704 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoR
.Size
);
706 case GL_PIXEL_MAP_R_TO_R_SIZE
:
707 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.RtoR
.Size
);
709 case GL_PIXEL_MAP_S_TO_S_SIZE
:
710 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.StoS
.Size
);
713 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
715 case GL_POINT_SIZE_GRANULARITY
:
716 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
718 case GL_POINT_SIZE_RANGE
:
719 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
720 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
722 case GL_ALIASED_POINT_SIZE_RANGE
:
723 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
724 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
726 case GL_POINT_SMOOTH
:
727 params
[0] = ctx
->Point
.SmoothFlag
;
729 case GL_POINT_SMOOTH_HINT
:
730 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
732 case GL_POINT_SIZE_MIN_EXT
:
733 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
735 case GL_POINT_SIZE_MAX_EXT
:
736 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
738 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
739 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
741 case GL_DISTANCE_ATTENUATION_EXT
:
742 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
743 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
744 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
746 case GL_POLYGON_MODE
:
747 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
748 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
750 case GL_POLYGON_OFFSET_BIAS_EXT
:
751 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
753 case GL_POLYGON_OFFSET_FACTOR
:
754 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
756 case GL_POLYGON_OFFSET_UNITS
:
757 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
759 case GL_POLYGON_OFFSET_POINT
:
760 params
[0] = ctx
->Polygon
.OffsetPoint
;
762 case GL_POLYGON_OFFSET_LINE
:
763 params
[0] = ctx
->Polygon
.OffsetLine
;
765 case GL_POLYGON_OFFSET_FILL
:
766 params
[0] = ctx
->Polygon
.OffsetFill
;
768 case GL_POLYGON_SMOOTH
:
769 params
[0] = ctx
->Polygon
.SmoothFlag
;
771 case GL_POLYGON_SMOOTH_HINT
:
772 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
774 case GL_POLYGON_STIPPLE
:
775 params
[0] = ctx
->Polygon
.StippleFlag
;
777 case GL_PROJECTION_MATRIX
:
779 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
780 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
781 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
782 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
783 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
784 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
785 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
786 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
787 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
788 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
789 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
790 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
791 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
792 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
793 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
794 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
795 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
798 case GL_PROJECTION_STACK_DEPTH
:
799 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
802 params
[0] = ENUM_TO_BOOLEAN(ctx
->ReadBuffer
->ColorReadBuffer
);
805 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
808 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.redBits
);
811 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
814 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
816 case GL_RESCALE_NORMAL
:
817 params
[0] = ctx
->Transform
.RescaleNormals
;
820 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
823 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
824 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
825 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
826 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
828 case GL_SCISSOR_TEST
:
829 params
[0] = ctx
->Scissor
.Enabled
;
831 case GL_SELECTION_BUFFER_SIZE
:
832 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
835 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
837 case GL_SHARED_TEXTURE_PALETTE_EXT
:
838 params
[0] = ctx
->Texture
.SharedPalette
;
840 case GL_STENCIL_BITS
:
841 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
843 case GL_STENCIL_CLEAR_VALUE
:
844 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
846 case GL_STENCIL_FAIL
:
847 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
849 case GL_STENCIL_FUNC
:
850 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
852 case GL_STENCIL_PASS_DEPTH_FAIL
:
853 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
855 case GL_STENCIL_PASS_DEPTH_PASS
:
856 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
859 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
861 case GL_STENCIL_TEST
:
862 params
[0] = ctx
->Stencil
.Enabled
;
864 case GL_STENCIL_VALUE_MASK
:
865 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
867 case GL_STENCIL_WRITEMASK
:
868 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
871 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
873 case GL_SUBPIXEL_BITS
:
874 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
877 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
880 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
883 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
885 case GL_TEXTURE_1D_ARRAY_EXT
:
886 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
887 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
);
889 case GL_TEXTURE_2D_ARRAY_EXT
:
890 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
891 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
);
893 case GL_TEXTURE_BINDING_1D
:
894 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
896 case GL_TEXTURE_BINDING_2D
:
897 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
899 case GL_TEXTURE_BINDING_3D
:
900 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
902 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
903 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
904 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
906 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
907 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
908 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
910 case GL_TEXTURE_GEN_S
:
911 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
913 case GL_TEXTURE_GEN_T
:
914 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
916 case GL_TEXTURE_GEN_R
:
917 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
919 case GL_TEXTURE_GEN_Q
:
920 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
922 case GL_TEXTURE_MATRIX
:
924 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
925 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
926 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
927 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
928 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
929 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
930 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
931 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
932 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
933 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
934 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
935 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
936 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
937 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
938 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
939 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
940 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
943 case GL_TEXTURE_STACK_DEPTH
:
944 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
946 case GL_UNPACK_ALIGNMENT
:
947 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
949 case GL_UNPACK_LSB_FIRST
:
950 params
[0] = ctx
->Unpack
.LsbFirst
;
952 case GL_UNPACK_ROW_LENGTH
:
953 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
955 case GL_UNPACK_SKIP_PIXELS
:
956 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
958 case GL_UNPACK_SKIP_ROWS
:
959 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
961 case GL_UNPACK_SWAP_BYTES
:
962 params
[0] = ctx
->Unpack
.SwapBytes
;
964 case GL_UNPACK_SKIP_IMAGES_EXT
:
965 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
967 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
968 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
970 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
971 params
[0] = ctx
->Unpack
.ClientStorage
;
974 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
975 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
976 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
977 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
980 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
983 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
985 case GL_VERTEX_ARRAY
:
986 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Enabled
;
988 case GL_VERTEX_ARRAY_SIZE
:
989 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Size
);
991 case GL_VERTEX_ARRAY_TYPE
:
992 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Type
);
994 case GL_VERTEX_ARRAY_STRIDE
:
995 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
997 case GL_VERTEX_ARRAY_COUNT_EXT
:
998 params
[0] = INT_TO_BOOLEAN(0);
1000 case GL_NORMAL_ARRAY
:
1001 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
1003 case GL_NORMAL_ARRAY_TYPE
:
1004 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Type
);
1006 case GL_NORMAL_ARRAY_STRIDE
:
1007 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Stride
);
1009 case GL_NORMAL_ARRAY_COUNT_EXT
:
1010 params
[0] = INT_TO_BOOLEAN(0);
1012 case GL_COLOR_ARRAY
:
1013 params
[0] = ctx
->Array
.ArrayObj
->Color
.Enabled
;
1015 case GL_COLOR_ARRAY_SIZE
:
1016 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Size
);
1018 case GL_COLOR_ARRAY_TYPE
:
1019 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Type
);
1021 case GL_COLOR_ARRAY_STRIDE
:
1022 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Stride
);
1024 case GL_COLOR_ARRAY_COUNT_EXT
:
1025 params
[0] = INT_TO_BOOLEAN(0);
1027 case GL_INDEX_ARRAY
:
1028 params
[0] = ctx
->Array
.ArrayObj
->Index
.Enabled
;
1030 case GL_INDEX_ARRAY_TYPE
:
1031 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Type
);
1033 case GL_INDEX_ARRAY_STRIDE
:
1034 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Stride
);
1036 case GL_INDEX_ARRAY_COUNT_EXT
:
1037 params
[0] = INT_TO_BOOLEAN(0);
1039 case GL_TEXTURE_COORD_ARRAY
:
1040 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1042 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1043 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1045 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1046 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1048 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1049 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1051 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1052 params
[0] = INT_TO_BOOLEAN(0);
1054 case GL_EDGE_FLAG_ARRAY
:
1055 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
;
1057 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1058 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
1060 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1061 params
[0] = INT_TO_BOOLEAN(0);
1063 case GL_MAX_TEXTURE_UNITS_ARB
:
1064 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1065 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1067 case GL_ACTIVE_TEXTURE_ARB
:
1068 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1069 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1071 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1072 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1073 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1075 case GL_TEXTURE_CUBE_MAP_ARB
:
1076 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1077 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1079 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1080 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1081 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
1083 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1084 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1085 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1087 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1088 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1090 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1091 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1093 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1096 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1098 for (i
= 0; i
< n
; i
++)
1099 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
1102 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1103 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1104 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1106 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1107 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1108 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1110 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1112 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1113 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1114 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1115 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1116 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1117 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1118 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1119 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1120 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1121 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1122 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1123 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1124 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1125 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1126 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1127 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1128 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1131 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1133 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1134 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1135 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1136 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1137 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1138 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1139 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1140 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1141 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1142 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1143 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1144 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1145 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1146 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1147 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1148 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1149 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1152 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1154 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1155 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1156 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1157 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1158 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1159 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1160 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1161 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1162 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1163 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1164 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1165 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1166 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1167 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1168 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1169 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1170 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1173 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1175 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1176 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1177 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1178 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1179 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1180 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1181 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1182 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1183 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1184 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1185 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1186 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1187 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1188 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1189 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1190 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1191 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1194 case GL_COLOR_MATRIX_SGI
:
1196 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1197 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1198 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1199 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1200 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1201 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1202 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1203 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1204 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1205 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1206 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1207 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1208 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1209 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1210 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1211 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1212 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1215 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1216 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1218 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1219 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1221 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1222 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1224 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1225 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1227 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1228 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1230 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1231 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1233 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1234 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1236 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1237 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1239 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1240 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1242 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1243 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1245 case GL_CONVOLUTION_1D_EXT
:
1246 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1247 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1249 case GL_CONVOLUTION_2D_EXT
:
1250 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1251 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1253 case GL_SEPARABLE_2D_EXT
:
1254 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1255 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1257 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1258 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1261 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1262 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1263 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1265 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1266 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1267 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1269 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1270 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1271 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1273 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1274 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1275 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1277 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1278 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1279 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1281 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1282 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1283 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1285 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1286 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1287 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1290 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1291 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1294 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1295 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1297 case GL_COLOR_TABLE_SGI
:
1298 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1299 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
];
1301 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1302 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1303 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
];
1305 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1306 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1307 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
];
1309 case GL_TEXTURE_COLOR_TABLE_SGI
:
1310 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1311 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1313 case GL_COLOR_SUM_EXT
:
1314 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1315 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1317 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1318 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1320 FLUSH_CURRENT(ctx
, 0);
1321 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1322 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1323 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1324 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1327 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1328 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1329 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
;
1331 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1332 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1333 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
1335 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1336 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1337 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
1339 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1340 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1341 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
1343 case GL_CURRENT_FOG_COORDINATE_EXT
:
1344 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1346 FLUSH_CURRENT(ctx
, 0);
1347 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1350 case GL_FOG_COORDINATE_ARRAY_EXT
:
1351 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1352 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Enabled
;
1354 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1355 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1356 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
1358 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1359 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1360 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
1362 case GL_FOG_COORDINATE_SOURCE_EXT
:
1363 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1364 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1366 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1367 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1368 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1370 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1371 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1372 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1374 case GL_MULTISAMPLE_ARB
:
1375 params
[0] = ctx
->Multisample
.Enabled
;
1377 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1378 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1380 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1381 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1383 case GL_SAMPLE_COVERAGE_ARB
:
1384 params
[0] = ctx
->Multisample
.SampleCoverage
;
1386 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1387 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1389 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1390 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1392 case GL_SAMPLE_BUFFERS_ARB
:
1393 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1395 case GL_SAMPLES_ARB
:
1396 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1398 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1399 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1400 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1402 case GL_POINT_SPRITE_NV
:
1403 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1404 params
[0] = ctx
->Point
.PointSprite
;
1406 case GL_POINT_SPRITE_R_MODE_NV
:
1407 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1408 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1410 case GL_POINT_SPRITE_COORD_ORIGIN
:
1411 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1412 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1414 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1415 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1416 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1418 case GL_VERTEX_PROGRAM_BINDING_NV
:
1419 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1420 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1422 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1423 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1424 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
;
1426 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1427 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1428 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
;
1430 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1431 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1432 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
;
1434 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1435 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1436 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
;
1438 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1439 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1440 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
;
1442 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1443 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1444 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
;
1446 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1447 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1448 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
;
1450 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1451 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1452 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
;
1454 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1455 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1456 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
;
1458 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1459 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1460 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
;
1462 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1463 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1464 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
;
1466 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1467 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1468 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
;
1470 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1471 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1472 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
;
1474 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1475 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1476 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
;
1478 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1479 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1480 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
;
1482 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1483 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1484 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
;
1486 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1487 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1488 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1490 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1491 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1492 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1494 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1495 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1496 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1498 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1499 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1500 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1502 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1503 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1504 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1506 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1507 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1508 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1510 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1511 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1512 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1514 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1515 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1516 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1518 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1519 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1520 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1522 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1523 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1524 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1526 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1527 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1528 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1530 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1531 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1532 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1534 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1535 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1536 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1538 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1539 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1540 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1542 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1543 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1544 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1546 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1547 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1548 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1550 case GL_FRAGMENT_PROGRAM_NV
:
1551 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1552 params
[0] = ctx
->FragmentProgram
.Enabled
;
1554 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1555 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1556 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1558 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1559 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1560 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1562 case GL_TEXTURE_RECTANGLE_NV
:
1563 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1564 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1566 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1567 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1568 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
1570 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1571 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1572 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1574 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1575 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1576 params
[0] = ctx
->Stencil
.TestTwoSide
;
1578 case GL_ACTIVE_STENCIL_FACE_EXT
:
1579 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1580 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1582 case GL_MAX_SHININESS_NV
:
1583 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1584 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1586 case GL_MAX_SPOT_EXPONENT_NV
:
1587 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1588 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1590 case GL_ARRAY_BUFFER_BINDING_ARB
:
1591 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1593 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1594 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
1596 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1597 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
1599 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1600 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
1602 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1603 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
1605 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1606 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1608 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1609 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
1611 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1612 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
1614 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1615 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
1617 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1618 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1620 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1621 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1622 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1624 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1625 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1626 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1628 case GL_VERTEX_PROGRAM_ARB
:
1629 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1630 params
[0] = ctx
->VertexProgram
.Enabled
;
1632 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1633 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1634 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1636 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1637 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1638 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1640 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1641 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1642 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1644 case GL_MAX_PROGRAM_MATRICES_ARB
:
1645 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1646 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1648 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1649 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1650 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1652 case GL_CURRENT_MATRIX_ARB
:
1653 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1655 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1656 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1657 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1658 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1659 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1660 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1661 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1662 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1663 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1664 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1665 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1666 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1667 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1668 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1669 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1670 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1671 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1674 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1675 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1677 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1678 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1679 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1680 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1681 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1682 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1683 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1684 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1685 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1686 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1687 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1688 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1689 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1690 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1691 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1692 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1693 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1696 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1697 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1698 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1700 case GL_PROGRAM_ERROR_POSITION_ARB
:
1701 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1702 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1704 case GL_FRAGMENT_PROGRAM_ARB
:
1705 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1706 params
[0] = ctx
->FragmentProgram
.Enabled
;
1708 case GL_MAX_TEXTURE_COORDS_ARB
:
1709 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1710 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1712 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1713 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1714 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1716 case GL_DEPTH_BOUNDS_TEST_EXT
:
1717 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1718 params
[0] = ctx
->Depth
.BoundsTest
;
1720 case GL_DEPTH_BOUNDS_EXT
:
1721 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1722 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1723 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1725 case GL_DEPTH_CLAMP
:
1726 CHECK_EXT1(ARB_depth_clamp
, "GetBooleanv");
1727 params
[0] = ctx
->Transform
.DepthClamp
;
1729 case GL_MAX_DRAW_BUFFERS_ARB
:
1730 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1732 case GL_DRAW_BUFFER0_ARB
:
1733 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1735 case GL_DRAW_BUFFER1_ARB
:
1738 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1739 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1742 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1743 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1746 case GL_DRAW_BUFFER2_ARB
:
1749 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1750 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1753 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1754 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1757 case GL_DRAW_BUFFER3_ARB
:
1760 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1761 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1764 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1765 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1768 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1769 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1770 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1772 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1773 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1774 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1776 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1777 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1778 params
[0] = INT_TO_BOOLEAN(6);
1780 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1781 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1782 params
[0] = INT_TO_BOOLEAN(8);
1784 case GL_NUM_PASSES_ATI
:
1785 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1786 params
[0] = INT_TO_BOOLEAN(2);
1788 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1789 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1790 params
[0] = INT_TO_BOOLEAN(8);
1792 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1793 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1794 params
[0] = INT_TO_BOOLEAN(16);
1796 case GL_COLOR_ALPHA_PAIRING_ATI
:
1797 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1798 params
[0] = GL_TRUE
;
1800 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1801 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1802 params
[0] = INT_TO_BOOLEAN(3);
1804 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1805 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1806 params
[0] = INT_TO_BOOLEAN(3);
1808 case GL_STENCIL_BACK_FUNC
:
1809 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1811 case GL_STENCIL_BACK_VALUE_MASK
:
1812 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1814 case GL_STENCIL_BACK_WRITEMASK
:
1815 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1817 case GL_STENCIL_BACK_REF
:
1818 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1820 case GL_STENCIL_BACK_FAIL
:
1821 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1823 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1824 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1826 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1827 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1829 case GL_FRAMEBUFFER_BINDING_EXT
:
1830 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1831 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1833 case GL_RENDERBUFFER_BINDING_EXT
:
1834 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1835 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1837 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1838 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1839 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1841 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1842 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1843 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1845 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1846 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1847 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1849 case GL_PROVOKING_VERTEX_EXT
:
1850 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1851 params
[0] = ctx
->Light
.ProvokingVertex
;
1853 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
1854 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1855 params
[0] = ctx
->Const
.QuadsFollowProvokingVertexConvention
;
1857 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1858 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1859 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1861 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1862 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1863 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1865 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1866 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1867 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1869 case GL_MAX_VARYING_FLOATS_ARB
:
1870 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1871 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1873 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1874 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1875 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1877 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1878 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1879 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1881 case GL_CURRENT_PROGRAM
:
1882 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1883 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1885 case GL_MAX_SAMPLES
:
1886 CHECK_EXT1(ARB_framebuffer_object
, "GetBooleanv");
1887 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxSamples
);
1889 case GL_VERTEX_ARRAY_BINDING_APPLE
:
1890 CHECK_EXT1(APPLE_vertex_array_object
, "GetBooleanv");
1891 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Name
);
1893 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
1894 CHECK_EXT1(ARB_seamless_cube_map
, "GetBooleanv");
1895 params
[0] = ctx
->Texture
.CubeMapSeamless
;
1897 case GL_MAX_SERVER_WAIT_TIMEOUT
:
1898 CHECK_EXT1(ARB_sync
, "GetBooleanv");
1899 params
[0] = INT64_TO_BOOLEAN(ctx
->Const
.MaxServerWaitTimeout
);
1902 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1907 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1909 GET_CURRENT_CONTEXT(ctx
);
1910 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1916 _mesa_update_state(ctx
);
1918 if (ctx
->Driver
.GetFloatv
&&
1919 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1923 case GL_ACCUM_RED_BITS
:
1924 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1926 case GL_ACCUM_GREEN_BITS
:
1927 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1929 case GL_ACCUM_BLUE_BITS
:
1930 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1932 case GL_ACCUM_ALPHA_BITS
:
1933 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1935 case GL_ACCUM_CLEAR_VALUE
:
1936 params
[0] = ctx
->Accum
.ClearColor
[0];
1937 params
[1] = ctx
->Accum
.ClearColor
[1];
1938 params
[2] = ctx
->Accum
.ClearColor
[2];
1939 params
[3] = ctx
->Accum
.ClearColor
[3];
1942 params
[0] = ctx
->Pixel
.AlphaBias
;
1945 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1947 case GL_ALPHA_SCALE
:
1948 params
[0] = ctx
->Pixel
.AlphaScale
;
1951 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1953 case GL_ALPHA_TEST_FUNC
:
1954 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1956 case GL_ALPHA_TEST_REF
:
1957 params
[0] = ctx
->Color
.AlphaRef
;
1959 case GL_ATTRIB_STACK_DEPTH
:
1960 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1962 case GL_AUTO_NORMAL
:
1963 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1965 case GL_AUX_BUFFERS
:
1966 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1969 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1972 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1975 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1977 case GL_BLEND_SRC_RGB_EXT
:
1978 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1980 case GL_BLEND_DST_RGB_EXT
:
1981 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1983 case GL_BLEND_SRC_ALPHA_EXT
:
1984 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1986 case GL_BLEND_DST_ALPHA_EXT
:
1987 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1989 case GL_BLEND_EQUATION
:
1990 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1992 case GL_BLEND_EQUATION_ALPHA_EXT
:
1993 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1995 case GL_BLEND_COLOR_EXT
:
1996 params
[0] = ctx
->Color
.BlendColor
[0];
1997 params
[1] = ctx
->Color
.BlendColor
[1];
1998 params
[2] = ctx
->Color
.BlendColor
[2];
1999 params
[3] = ctx
->Color
.BlendColor
[3];
2002 params
[0] = ctx
->Pixel
.BlueBias
;
2005 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
2008 params
[0] = ctx
->Pixel
.BlueScale
;
2010 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2011 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2013 case GL_CLIP_PLANE0
:
2014 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2016 case GL_CLIP_PLANE1
:
2017 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2019 case GL_CLIP_PLANE2
:
2020 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2022 case GL_CLIP_PLANE3
:
2023 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2025 case GL_CLIP_PLANE4
:
2026 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2028 case GL_CLIP_PLANE5
:
2029 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2031 case GL_COLOR_CLEAR_VALUE
:
2032 params
[0] = ctx
->Color
.ClearColor
[0];
2033 params
[1] = ctx
->Color
.ClearColor
[1];
2034 params
[2] = ctx
->Color
.ClearColor
[2];
2035 params
[3] = ctx
->Color
.ClearColor
[3];
2037 case GL_COLOR_MATERIAL
:
2038 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2040 case GL_COLOR_MATERIAL_FACE
:
2041 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2043 case GL_COLOR_MATERIAL_PARAMETER
:
2044 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2046 case GL_COLOR_WRITEMASK
:
2047 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2048 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2049 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2050 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2053 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2055 case GL_CULL_FACE_MODE
:
2056 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2058 case GL_CURRENT_COLOR
:
2060 FLUSH_CURRENT(ctx
, 0);
2061 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2062 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2063 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2064 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2067 case GL_CURRENT_INDEX
:
2069 FLUSH_CURRENT(ctx
, 0);
2070 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2073 case GL_CURRENT_NORMAL
:
2075 FLUSH_CURRENT(ctx
, 0);
2076 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2077 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2078 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2081 case GL_CURRENT_RASTER_COLOR
:
2082 params
[0] = ctx
->Current
.RasterColor
[0];
2083 params
[1] = ctx
->Current
.RasterColor
[1];
2084 params
[2] = ctx
->Current
.RasterColor
[2];
2085 params
[3] = ctx
->Current
.RasterColor
[3];
2087 case GL_CURRENT_RASTER_DISTANCE
:
2088 params
[0] = ctx
->Current
.RasterDistance
;
2090 case GL_CURRENT_RASTER_INDEX
:
2091 params
[0] = ctx
->Current
.RasterIndex
;
2093 case GL_CURRENT_RASTER_POSITION
:
2094 params
[0] = ctx
->Current
.RasterPos
[0];
2095 params
[1] = ctx
->Current
.RasterPos
[1];
2096 params
[2] = ctx
->Current
.RasterPos
[2];
2097 params
[3] = ctx
->Current
.RasterPos
[3];
2099 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2100 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2101 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2102 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2103 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2105 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2107 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2108 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2109 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2110 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2111 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2114 case GL_CURRENT_RASTER_POSITION_VALID
:
2115 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2117 case GL_CURRENT_TEXTURE_COORDS
:
2119 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2120 FLUSH_CURRENT(ctx
, 0);
2121 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2122 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2123 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2124 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2128 params
[0] = ctx
->Pixel
.DepthBias
;
2131 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2133 case GL_DEPTH_CLEAR_VALUE
:
2134 params
[0] = ((GLfloat
) ctx
->Depth
.Clear
);
2137 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2139 case GL_DEPTH_RANGE
:
2140 params
[0] = ctx
->Viewport
.Near
;
2141 params
[1] = ctx
->Viewport
.Far
;
2143 case GL_DEPTH_SCALE
:
2144 params
[0] = ctx
->Pixel
.DepthScale
;
2147 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2149 case GL_DEPTH_WRITEMASK
:
2150 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2153 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2155 case GL_DOUBLEBUFFER
:
2156 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2158 case GL_DRAW_BUFFER
:
2159 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2163 FLUSH_CURRENT(ctx
, 0);
2164 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
2167 case GL_FEEDBACK_BUFFER_SIZE
:
2168 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2170 case GL_FEEDBACK_BUFFER_TYPE
:
2171 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2174 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2177 params
[0] = ctx
->Fog
.Color
[0];
2178 params
[1] = ctx
->Fog
.Color
[1];
2179 params
[2] = ctx
->Fog
.Color
[2];
2180 params
[3] = ctx
->Fog
.Color
[3];
2182 case GL_FOG_DENSITY
:
2183 params
[0] = ctx
->Fog
.Density
;
2186 params
[0] = ctx
->Fog
.End
;
2189 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2192 params
[0] = ctx
->Fog
.Index
;
2195 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2198 params
[0] = ctx
->Fog
.Start
;
2201 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2204 params
[0] = ctx
->Pixel
.GreenBias
;
2207 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2209 case GL_GREEN_SCALE
:
2210 params
[0] = ctx
->Pixel
.GreenScale
;
2213 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2215 case GL_INDEX_CLEAR_VALUE
:
2216 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2219 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2221 case GL_INDEX_OFFSET
:
2222 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2224 case GL_INDEX_SHIFT
:
2225 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2227 case GL_INDEX_WRITEMASK
:
2228 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2231 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2234 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2237 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2240 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2243 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2246 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2249 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2252 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2255 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2257 case GL_LIGHT_MODEL_AMBIENT
:
2258 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2259 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2260 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2261 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2263 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2264 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2266 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2267 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2269 case GL_LIGHT_MODEL_TWO_SIDE
:
2270 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2272 case GL_LINE_SMOOTH
:
2273 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2275 case GL_LINE_SMOOTH_HINT
:
2276 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2278 case GL_LINE_STIPPLE
:
2279 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2281 case GL_LINE_STIPPLE_PATTERN
:
2282 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2284 case GL_LINE_STIPPLE_REPEAT
:
2285 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2288 params
[0] = ctx
->Line
.Width
;
2290 case GL_LINE_WIDTH_GRANULARITY
:
2291 params
[0] = ctx
->Const
.LineWidthGranularity
;
2293 case GL_LINE_WIDTH_RANGE
:
2294 params
[0] = ctx
->Const
.MinLineWidthAA
;
2295 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2297 case GL_ALIASED_LINE_WIDTH_RANGE
:
2298 params
[0] = ctx
->Const
.MinLineWidth
;
2299 params
[1] = ctx
->Const
.MaxLineWidth
;
2302 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2305 params
[0] = (GLfloat
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
2310 if (!ctx
->CompileFlag
)
2312 else if (ctx
->ExecuteFlag
)
2313 mode
= GL_COMPILE_AND_EXECUTE
;
2316 params
[0] = ENUM_TO_FLOAT(mode
);
2319 case GL_INDEX_LOGIC_OP
:
2320 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2322 case GL_COLOR_LOGIC_OP
:
2323 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2325 case GL_LOGIC_OP_MODE
:
2326 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2328 case GL_MAP1_COLOR_4
:
2329 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2331 case GL_MAP1_GRID_DOMAIN
:
2332 params
[0] = ctx
->Eval
.MapGrid1u1
;
2333 params
[1] = ctx
->Eval
.MapGrid1u2
;
2335 case GL_MAP1_GRID_SEGMENTS
:
2336 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2339 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2341 case GL_MAP1_NORMAL
:
2342 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2344 case GL_MAP1_TEXTURE_COORD_1
:
2345 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2347 case GL_MAP1_TEXTURE_COORD_2
:
2348 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2350 case GL_MAP1_TEXTURE_COORD_3
:
2351 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2353 case GL_MAP1_TEXTURE_COORD_4
:
2354 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2356 case GL_MAP1_VERTEX_3
:
2357 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2359 case GL_MAP1_VERTEX_4
:
2360 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2362 case GL_MAP2_COLOR_4
:
2363 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2365 case GL_MAP2_GRID_DOMAIN
:
2366 params
[0] = ctx
->Eval
.MapGrid2u1
;
2367 params
[1] = ctx
->Eval
.MapGrid2u2
;
2368 params
[2] = ctx
->Eval
.MapGrid2v1
;
2369 params
[3] = ctx
->Eval
.MapGrid2v2
;
2371 case GL_MAP2_GRID_SEGMENTS
:
2372 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2373 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2376 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2378 case GL_MAP2_NORMAL
:
2379 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2381 case GL_MAP2_TEXTURE_COORD_1
:
2382 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2384 case GL_MAP2_TEXTURE_COORD_2
:
2385 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2387 case GL_MAP2_TEXTURE_COORD_3
:
2388 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2390 case GL_MAP2_TEXTURE_COORD_4
:
2391 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2393 case GL_MAP2_VERTEX_3
:
2394 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2396 case GL_MAP2_VERTEX_4
:
2397 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2400 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2402 case GL_MAP_STENCIL
:
2403 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2405 case GL_MATRIX_MODE
:
2406 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2408 case GL_MAX_ATTRIB_STACK_DEPTH
:
2409 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2411 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2412 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2414 case GL_MAX_CLIP_PLANES
:
2415 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2417 case GL_MAX_ELEMENTS_VERTICES
:
2418 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2420 case GL_MAX_ELEMENTS_INDICES
:
2421 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2423 case GL_MAX_EVAL_ORDER
:
2424 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2427 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2429 case GL_MAX_LIST_NESTING
:
2430 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2432 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2433 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2435 case GL_MAX_NAME_STACK_DEPTH
:
2436 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2438 case GL_MAX_PIXEL_MAP_TABLE
:
2439 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2441 case GL_MAX_PROJECTION_STACK_DEPTH
:
2442 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2444 case GL_MAX_TEXTURE_SIZE
:
2445 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2447 case GL_MAX_3D_TEXTURE_SIZE
:
2448 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2450 case GL_MAX_TEXTURE_STACK_DEPTH
:
2451 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2453 case GL_MAX_VIEWPORT_DIMS
:
2454 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2455 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2457 case GL_MODELVIEW_MATRIX
:
2459 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2460 params
[0] = matrix
[0];
2461 params
[1] = matrix
[1];
2462 params
[2] = matrix
[2];
2463 params
[3] = matrix
[3];
2464 params
[4] = matrix
[4];
2465 params
[5] = matrix
[5];
2466 params
[6] = matrix
[6];
2467 params
[7] = matrix
[7];
2468 params
[8] = matrix
[8];
2469 params
[9] = matrix
[9];
2470 params
[10] = matrix
[10];
2471 params
[11] = matrix
[11];
2472 params
[12] = matrix
[12];
2473 params
[13] = matrix
[13];
2474 params
[14] = matrix
[14];
2475 params
[15] = matrix
[15];
2478 case GL_MODELVIEW_STACK_DEPTH
:
2479 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2481 case GL_NAME_STACK_DEPTH
:
2482 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2485 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2487 case GL_PACK_ALIGNMENT
:
2488 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2490 case GL_PACK_LSB_FIRST
:
2491 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2493 case GL_PACK_ROW_LENGTH
:
2494 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2496 case GL_PACK_SKIP_PIXELS
:
2497 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2499 case GL_PACK_SKIP_ROWS
:
2500 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2502 case GL_PACK_SWAP_BYTES
:
2503 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2505 case GL_PACK_SKIP_IMAGES_EXT
:
2506 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2508 case GL_PACK_IMAGE_HEIGHT_EXT
:
2509 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2511 case GL_PACK_INVERT_MESA
:
2512 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2514 case GL_PERSPECTIVE_CORRECTION_HINT
:
2515 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2517 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2518 params
[0] = (GLfloat
)(ctx
->PixelMaps
.AtoA
.Size
);
2520 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2521 params
[0] = (GLfloat
)(ctx
->PixelMaps
.BtoB
.Size
);
2523 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2524 params
[0] = (GLfloat
)(ctx
->PixelMaps
.GtoG
.Size
);
2526 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2527 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoA
.Size
);
2529 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2530 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoB
.Size
);
2532 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2533 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoG
.Size
);
2535 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2536 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoI
.Size
);
2538 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2539 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoR
.Size
);
2541 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2542 params
[0] = (GLfloat
)(ctx
->PixelMaps
.RtoR
.Size
);
2544 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2545 params
[0] = (GLfloat
)(ctx
->PixelMaps
.StoS
.Size
);
2548 params
[0] = ctx
->Point
.Size
;
2550 case GL_POINT_SIZE_GRANULARITY
:
2551 params
[0] = ctx
->Const
.PointSizeGranularity
;
2553 case GL_POINT_SIZE_RANGE
:
2554 params
[0] = ctx
->Const
.MinPointSizeAA
;
2555 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2557 case GL_ALIASED_POINT_SIZE_RANGE
:
2558 params
[0] = ctx
->Const
.MinPointSize
;
2559 params
[1] = ctx
->Const
.MaxPointSize
;
2561 case GL_POINT_SMOOTH
:
2562 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2564 case GL_POINT_SMOOTH_HINT
:
2565 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2567 case GL_POINT_SIZE_MIN_EXT
:
2568 params
[0] = ctx
->Point
.MinSize
;
2570 case GL_POINT_SIZE_MAX_EXT
:
2571 params
[0] = ctx
->Point
.MaxSize
;
2573 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2574 params
[0] = ctx
->Point
.Threshold
;
2576 case GL_DISTANCE_ATTENUATION_EXT
:
2577 params
[0] = ctx
->Point
.Params
[0];
2578 params
[1] = ctx
->Point
.Params
[1];
2579 params
[2] = ctx
->Point
.Params
[2];
2581 case GL_POLYGON_MODE
:
2582 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2583 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2585 case GL_POLYGON_OFFSET_BIAS_EXT
:
2586 params
[0] = ctx
->Polygon
.OffsetUnits
;
2588 case GL_POLYGON_OFFSET_FACTOR
:
2589 params
[0] = ctx
->Polygon
.OffsetFactor
;
2591 case GL_POLYGON_OFFSET_UNITS
:
2592 params
[0] = ctx
->Polygon
.OffsetUnits
;
2594 case GL_POLYGON_OFFSET_POINT
:
2595 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetPoint
);
2597 case GL_POLYGON_OFFSET_LINE
:
2598 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetLine
);
2600 case GL_POLYGON_OFFSET_FILL
:
2601 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetFill
);
2603 case GL_POLYGON_SMOOTH
:
2604 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2606 case GL_POLYGON_SMOOTH_HINT
:
2607 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2609 case GL_POLYGON_STIPPLE
:
2610 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2612 case GL_PROJECTION_MATRIX
:
2614 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2615 params
[0] = matrix
[0];
2616 params
[1] = matrix
[1];
2617 params
[2] = matrix
[2];
2618 params
[3] = matrix
[3];
2619 params
[4] = matrix
[4];
2620 params
[5] = matrix
[5];
2621 params
[6] = matrix
[6];
2622 params
[7] = matrix
[7];
2623 params
[8] = matrix
[8];
2624 params
[9] = matrix
[9];
2625 params
[10] = matrix
[10];
2626 params
[11] = matrix
[11];
2627 params
[12] = matrix
[12];
2628 params
[13] = matrix
[13];
2629 params
[14] = matrix
[14];
2630 params
[15] = matrix
[15];
2633 case GL_PROJECTION_STACK_DEPTH
:
2634 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2636 case GL_READ_BUFFER
:
2637 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2640 params
[0] = ctx
->Pixel
.RedBias
;
2643 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.redBits
);
2646 params
[0] = ctx
->Pixel
.RedScale
;
2648 case GL_RENDER_MODE
:
2649 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2651 case GL_RESCALE_NORMAL
:
2652 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2655 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2657 case GL_SCISSOR_BOX
:
2658 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2659 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2660 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2661 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2663 case GL_SCISSOR_TEST
:
2664 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2666 case GL_SELECTION_BUFFER_SIZE
:
2667 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2669 case GL_SHADE_MODEL
:
2670 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2672 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2673 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2675 case GL_STENCIL_BITS
:
2676 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2678 case GL_STENCIL_CLEAR_VALUE
:
2679 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2681 case GL_STENCIL_FAIL
:
2682 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2684 case GL_STENCIL_FUNC
:
2685 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2687 case GL_STENCIL_PASS_DEPTH_FAIL
:
2688 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2690 case GL_STENCIL_PASS_DEPTH_PASS
:
2691 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2693 case GL_STENCIL_REF
:
2694 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2696 case GL_STENCIL_TEST
:
2697 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2699 case GL_STENCIL_VALUE_MASK
:
2700 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2702 case GL_STENCIL_WRITEMASK
:
2703 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2706 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2708 case GL_SUBPIXEL_BITS
:
2709 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2712 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2715 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2718 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2720 case GL_TEXTURE_1D_ARRAY_EXT
:
2721 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2722 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
2724 case GL_TEXTURE_2D_ARRAY_EXT
:
2725 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2726 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
2728 case GL_TEXTURE_BINDING_1D
:
2729 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
2731 case GL_TEXTURE_BINDING_2D
:
2732 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
2734 case GL_TEXTURE_BINDING_3D
:
2735 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
2737 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
2738 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2739 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
2741 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
2742 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2743 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
2745 case GL_TEXTURE_GEN_S
:
2746 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2748 case GL_TEXTURE_GEN_T
:
2749 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2751 case GL_TEXTURE_GEN_R
:
2752 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2754 case GL_TEXTURE_GEN_Q
:
2755 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2757 case GL_TEXTURE_MATRIX
:
2759 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2760 params
[0] = matrix
[0];
2761 params
[1] = matrix
[1];
2762 params
[2] = matrix
[2];
2763 params
[3] = matrix
[3];
2764 params
[4] = matrix
[4];
2765 params
[5] = matrix
[5];
2766 params
[6] = matrix
[6];
2767 params
[7] = matrix
[7];
2768 params
[8] = matrix
[8];
2769 params
[9] = matrix
[9];
2770 params
[10] = matrix
[10];
2771 params
[11] = matrix
[11];
2772 params
[12] = matrix
[12];
2773 params
[13] = matrix
[13];
2774 params
[14] = matrix
[14];
2775 params
[15] = matrix
[15];
2778 case GL_TEXTURE_STACK_DEPTH
:
2779 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2781 case GL_UNPACK_ALIGNMENT
:
2782 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2784 case GL_UNPACK_LSB_FIRST
:
2785 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2787 case GL_UNPACK_ROW_LENGTH
:
2788 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2790 case GL_UNPACK_SKIP_PIXELS
:
2791 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2793 case GL_UNPACK_SKIP_ROWS
:
2794 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2796 case GL_UNPACK_SWAP_BYTES
:
2797 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2799 case GL_UNPACK_SKIP_IMAGES_EXT
:
2800 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2802 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2803 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2805 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2806 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2809 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2810 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2811 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2812 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2815 params
[0] = ctx
->Pixel
.ZoomX
;
2818 params
[0] = ctx
->Pixel
.ZoomY
;
2820 case GL_VERTEX_ARRAY
:
2821 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
2823 case GL_VERTEX_ARRAY_SIZE
:
2824 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
2826 case GL_VERTEX_ARRAY_TYPE
:
2827 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
2829 case GL_VERTEX_ARRAY_STRIDE
:
2830 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
2832 case GL_VERTEX_ARRAY_COUNT_EXT
:
2833 params
[0] = (GLfloat
)(0);
2835 case GL_NORMAL_ARRAY
:
2836 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
2838 case GL_NORMAL_ARRAY_TYPE
:
2839 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Type
);
2841 case GL_NORMAL_ARRAY_STRIDE
:
2842 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
2844 case GL_NORMAL_ARRAY_COUNT_EXT
:
2845 params
[0] = (GLfloat
)(0);
2847 case GL_COLOR_ARRAY
:
2848 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
2850 case GL_COLOR_ARRAY_SIZE
:
2851 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Size
);
2853 case GL_COLOR_ARRAY_TYPE
:
2854 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Type
);
2856 case GL_COLOR_ARRAY_STRIDE
:
2857 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
2859 case GL_COLOR_ARRAY_COUNT_EXT
:
2860 params
[0] = (GLfloat
)(0);
2862 case GL_INDEX_ARRAY
:
2863 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
2865 case GL_INDEX_ARRAY_TYPE
:
2866 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Type
);
2868 case GL_INDEX_ARRAY_STRIDE
:
2869 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
2871 case GL_INDEX_ARRAY_COUNT_EXT
:
2872 params
[0] = (GLfloat
)(0);
2874 case GL_TEXTURE_COORD_ARRAY
:
2875 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2877 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2878 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2880 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2881 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2883 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2884 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2886 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2887 params
[0] = (GLfloat
)(0);
2889 case GL_EDGE_FLAG_ARRAY
:
2890 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
2892 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2893 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
2895 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2896 params
[0] = (GLfloat
)(0);
2898 case GL_MAX_TEXTURE_UNITS_ARB
:
2899 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2900 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2902 case GL_ACTIVE_TEXTURE_ARB
:
2903 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2904 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2906 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2907 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2908 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2910 case GL_TEXTURE_CUBE_MAP_ARB
:
2911 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2912 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2914 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2915 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2916 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
2918 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2919 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2920 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2922 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2923 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2925 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2926 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2928 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2931 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2933 for (i
= 0; i
< n
; i
++)
2934 params
[i
] = ENUM_TO_FLOAT(formats
[i
]);
2937 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2938 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2939 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2941 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2942 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2943 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2945 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2947 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2948 params
[0] = matrix
[0];
2949 params
[1] = matrix
[4];
2950 params
[2] = matrix
[8];
2951 params
[3] = matrix
[12];
2952 params
[4] = matrix
[1];
2953 params
[5] = matrix
[5];
2954 params
[6] = matrix
[9];
2955 params
[7] = matrix
[13];
2956 params
[8] = matrix
[2];
2957 params
[9] = matrix
[6];
2958 params
[10] = matrix
[10];
2959 params
[11] = matrix
[14];
2960 params
[12] = matrix
[3];
2961 params
[13] = matrix
[7];
2962 params
[14] = matrix
[11];
2963 params
[15] = matrix
[15];
2966 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2968 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2969 params
[0] = matrix
[0];
2970 params
[1] = matrix
[4];
2971 params
[2] = matrix
[8];
2972 params
[3] = matrix
[12];
2973 params
[4] = matrix
[1];
2974 params
[5] = matrix
[5];
2975 params
[6] = matrix
[9];
2976 params
[7] = matrix
[13];
2977 params
[8] = matrix
[2];
2978 params
[9] = matrix
[6];
2979 params
[10] = matrix
[10];
2980 params
[11] = matrix
[14];
2981 params
[12] = matrix
[3];
2982 params
[13] = matrix
[7];
2983 params
[14] = matrix
[11];
2984 params
[15] = matrix
[15];
2987 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2989 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2990 params
[0] = matrix
[0];
2991 params
[1] = matrix
[4];
2992 params
[2] = matrix
[8];
2993 params
[3] = matrix
[12];
2994 params
[4] = matrix
[1];
2995 params
[5] = matrix
[5];
2996 params
[6] = matrix
[9];
2997 params
[7] = matrix
[13];
2998 params
[8] = matrix
[2];
2999 params
[9] = matrix
[6];
3000 params
[10] = matrix
[10];
3001 params
[11] = matrix
[14];
3002 params
[12] = matrix
[3];
3003 params
[13] = matrix
[7];
3004 params
[14] = matrix
[11];
3005 params
[15] = matrix
[15];
3008 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
3010 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
3011 params
[0] = matrix
[0];
3012 params
[1] = matrix
[4];
3013 params
[2] = matrix
[8];
3014 params
[3] = matrix
[12];
3015 params
[4] = matrix
[1];
3016 params
[5] = matrix
[5];
3017 params
[6] = matrix
[9];
3018 params
[7] = matrix
[13];
3019 params
[8] = matrix
[2];
3020 params
[9] = matrix
[6];
3021 params
[10] = matrix
[10];
3022 params
[11] = matrix
[14];
3023 params
[12] = matrix
[3];
3024 params
[13] = matrix
[7];
3025 params
[14] = matrix
[11];
3026 params
[15] = matrix
[15];
3029 case GL_COLOR_MATRIX_SGI
:
3031 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3032 params
[0] = matrix
[0];
3033 params
[1] = matrix
[1];
3034 params
[2] = matrix
[2];
3035 params
[3] = matrix
[3];
3036 params
[4] = matrix
[4];
3037 params
[5] = matrix
[5];
3038 params
[6] = matrix
[6];
3039 params
[7] = matrix
[7];
3040 params
[8] = matrix
[8];
3041 params
[9] = matrix
[9];
3042 params
[10] = matrix
[10];
3043 params
[11] = matrix
[11];
3044 params
[12] = matrix
[12];
3045 params
[13] = matrix
[13];
3046 params
[14] = matrix
[14];
3047 params
[15] = matrix
[15];
3050 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3051 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3053 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3054 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3056 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3057 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3059 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3060 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3062 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3063 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3065 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3066 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3068 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3069 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3071 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3072 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3074 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3075 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3077 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3078 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3080 case GL_CONVOLUTION_1D_EXT
:
3081 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3082 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3084 case GL_CONVOLUTION_2D_EXT
:
3085 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3086 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3088 case GL_SEPARABLE_2D_EXT
:
3089 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3090 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3092 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3093 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3094 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3096 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3097 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3098 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3100 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3101 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3102 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3104 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3105 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3106 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3108 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3109 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3110 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3112 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3113 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3114 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3116 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3117 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3118 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3120 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3121 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3122 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3125 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3126 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3129 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3130 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3132 case GL_COLOR_TABLE_SGI
:
3133 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3134 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3136 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3137 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3138 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3140 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3141 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3142 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3144 case GL_TEXTURE_COLOR_TABLE_SGI
:
3145 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3146 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3148 case GL_COLOR_SUM_EXT
:
3149 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3150 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3152 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3153 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3155 FLUSH_CURRENT(ctx
, 0);
3156 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3157 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3158 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3159 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3162 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3163 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3164 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3166 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3167 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3168 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3170 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3171 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3172 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3174 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3175 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3176 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3178 case GL_CURRENT_FOG_COORDINATE_EXT
:
3179 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3181 FLUSH_CURRENT(ctx
, 0);
3182 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3185 case GL_FOG_COORDINATE_ARRAY_EXT
:
3186 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3187 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3189 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3190 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3191 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3193 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3194 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3195 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3197 case GL_FOG_COORDINATE_SOURCE_EXT
:
3198 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3199 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3201 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3202 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3203 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3205 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3206 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3207 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3209 case GL_MULTISAMPLE_ARB
:
3210 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3212 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3213 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3215 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3216 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3218 case GL_SAMPLE_COVERAGE_ARB
:
3219 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3221 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3222 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3224 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3225 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3227 case GL_SAMPLE_BUFFERS_ARB
:
3228 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3230 case GL_SAMPLES_ARB
:
3231 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3233 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3234 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3235 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3237 case GL_POINT_SPRITE_NV
:
3238 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3239 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3241 case GL_POINT_SPRITE_R_MODE_NV
:
3242 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3243 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3245 case GL_POINT_SPRITE_COORD_ORIGIN
:
3246 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3247 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3249 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3250 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3251 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3253 case GL_VERTEX_PROGRAM_BINDING_NV
:
3254 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3255 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3257 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3258 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3261 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3262 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3265 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3266 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3267 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3269 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3270 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3271 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3273 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3274 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3277 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3278 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3279 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3281 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3282 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3283 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3285 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3286 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3287 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3289 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3290 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3291 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3293 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3294 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3295 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3297 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3298 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3299 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3301 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3302 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3303 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3305 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3306 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3307 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3309 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3310 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3311 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3313 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3314 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3315 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3317 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3318 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3319 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3321 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3322 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3323 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3325 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3326 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3327 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3329 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3330 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3333 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3334 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3335 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3337 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3338 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3339 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3341 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3342 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3345 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3346 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3347 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3349 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3350 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3351 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3353 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3354 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3355 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3357 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3358 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3359 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3361 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3362 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3363 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3365 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3366 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3367 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3369 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3370 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3371 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3373 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3374 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3375 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3377 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3378 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3379 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3381 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3382 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3383 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3385 case GL_FRAGMENT_PROGRAM_NV
:
3386 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3387 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3389 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3390 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3391 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3393 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3394 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3395 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3397 case GL_TEXTURE_RECTANGLE_NV
:
3398 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3399 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3401 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3402 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3403 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
3405 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3406 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3407 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3409 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3410 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3411 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3413 case GL_ACTIVE_STENCIL_FACE_EXT
:
3414 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3415 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3417 case GL_MAX_SHININESS_NV
:
3418 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3419 params
[0] = ctx
->Const
.MaxShininess
;
3421 case GL_MAX_SPOT_EXPONENT_NV
:
3422 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3423 params
[0] = ctx
->Const
.MaxSpotExponent
;
3425 case GL_ARRAY_BUFFER_BINDING_ARB
:
3426 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3428 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3429 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3431 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3432 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3434 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3435 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3437 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3438 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3440 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3441 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3443 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3444 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3446 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3447 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3449 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3450 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3452 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3453 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3455 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3456 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3457 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3459 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3460 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3461 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3463 case GL_VERTEX_PROGRAM_ARB
:
3464 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3465 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3467 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3468 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3469 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3471 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3472 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3473 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3475 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3476 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3477 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3479 case GL_MAX_PROGRAM_MATRICES_ARB
:
3480 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3481 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3483 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3484 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3485 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3487 case GL_CURRENT_MATRIX_ARB
:
3488 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3490 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3491 params
[0] = matrix
[0];
3492 params
[1] = matrix
[1];
3493 params
[2] = matrix
[2];
3494 params
[3] = matrix
[3];
3495 params
[4] = matrix
[4];
3496 params
[5] = matrix
[5];
3497 params
[6] = matrix
[6];
3498 params
[7] = matrix
[7];
3499 params
[8] = matrix
[8];
3500 params
[9] = matrix
[9];
3501 params
[10] = matrix
[10];
3502 params
[11] = matrix
[11];
3503 params
[12] = matrix
[12];
3504 params
[13] = matrix
[13];
3505 params
[14] = matrix
[14];
3506 params
[15] = matrix
[15];
3509 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3510 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3512 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3513 params
[0] = matrix
[0];
3514 params
[1] = matrix
[4];
3515 params
[2] = matrix
[8];
3516 params
[3] = matrix
[12];
3517 params
[4] = matrix
[1];
3518 params
[5] = matrix
[5];
3519 params
[6] = matrix
[9];
3520 params
[7] = matrix
[13];
3521 params
[8] = matrix
[2];
3522 params
[9] = matrix
[6];
3523 params
[10] = matrix
[10];
3524 params
[11] = matrix
[14];
3525 params
[12] = matrix
[3];
3526 params
[13] = matrix
[7];
3527 params
[14] = matrix
[11];
3528 params
[15] = matrix
[15];
3531 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3532 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3533 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3535 case GL_PROGRAM_ERROR_POSITION_ARB
:
3536 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3537 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3539 case GL_FRAGMENT_PROGRAM_ARB
:
3540 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3541 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3543 case GL_MAX_TEXTURE_COORDS_ARB
:
3544 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3545 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3547 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3548 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3549 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3551 case GL_DEPTH_BOUNDS_TEST_EXT
:
3552 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3553 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3555 case GL_DEPTH_BOUNDS_EXT
:
3556 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3557 params
[0] = ctx
->Depth
.BoundsMin
;
3558 params
[1] = ctx
->Depth
.BoundsMax
;
3560 case GL_DEPTH_CLAMP
:
3561 CHECK_EXT1(ARB_depth_clamp
, "GetFloatv");
3562 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.DepthClamp
);
3564 case GL_MAX_DRAW_BUFFERS_ARB
:
3565 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3567 case GL_DRAW_BUFFER0_ARB
:
3568 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3570 case GL_DRAW_BUFFER1_ARB
:
3573 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3574 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3577 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3578 params
[0] = ENUM_TO_FLOAT(buffer
);
3581 case GL_DRAW_BUFFER2_ARB
:
3584 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3585 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3588 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3589 params
[0] = ENUM_TO_FLOAT(buffer
);
3592 case GL_DRAW_BUFFER3_ARB
:
3595 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3596 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3599 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3600 params
[0] = ENUM_TO_FLOAT(buffer
);
3603 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3604 CHECK_EXT1(OES_read_format
, "GetFloatv");
3605 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3607 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3608 CHECK_EXT1(OES_read_format
, "GetFloatv");
3609 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3611 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3612 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3613 params
[0] = (GLfloat
)(6);
3615 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3616 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3617 params
[0] = (GLfloat
)(8);
3619 case GL_NUM_PASSES_ATI
:
3620 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3621 params
[0] = (GLfloat
)(2);
3623 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3624 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3625 params
[0] = (GLfloat
)(8);
3627 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3628 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3629 params
[0] = (GLfloat
)(16);
3631 case GL_COLOR_ALPHA_PAIRING_ATI
:
3632 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3633 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3635 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3636 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3637 params
[0] = (GLfloat
)(3);
3639 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3640 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3641 params
[0] = (GLfloat
)(3);
3643 case GL_STENCIL_BACK_FUNC
:
3644 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3646 case GL_STENCIL_BACK_VALUE_MASK
:
3647 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3649 case GL_STENCIL_BACK_WRITEMASK
:
3650 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3652 case GL_STENCIL_BACK_REF
:
3653 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3655 case GL_STENCIL_BACK_FAIL
:
3656 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3658 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3659 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3661 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3662 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3664 case GL_FRAMEBUFFER_BINDING_EXT
:
3665 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3666 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3668 case GL_RENDERBUFFER_BINDING_EXT
:
3669 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3670 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3672 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3673 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3674 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3676 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3677 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3678 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3680 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3681 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3682 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3684 case GL_PROVOKING_VERTEX_EXT
:
3685 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3686 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ProvokingVertex
);
3688 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
3689 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3690 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
3692 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3693 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3694 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3696 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3697 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3698 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3700 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3701 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3702 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3704 case GL_MAX_VARYING_FLOATS_ARB
:
3705 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3706 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3708 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3709 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3710 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3712 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3713 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3714 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3716 case GL_CURRENT_PROGRAM
:
3717 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3718 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3720 case GL_MAX_SAMPLES
:
3721 CHECK_EXT1(ARB_framebuffer_object
, "GetFloatv");
3722 params
[0] = (GLfloat
)(ctx
->Const
.MaxSamples
);
3724 case GL_VERTEX_ARRAY_BINDING_APPLE
:
3725 CHECK_EXT1(APPLE_vertex_array_object
, "GetFloatv");
3726 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Name
);
3728 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
3729 CHECK_EXT1(ARB_seamless_cube_map
, "GetFloatv");
3730 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.CubeMapSeamless
);
3732 case GL_MAX_SERVER_WAIT_TIMEOUT
:
3733 CHECK_EXT1(ARB_sync
, "GetFloatv");
3734 params
[0] = (GLfloat
)(ctx
->Const
.MaxServerWaitTimeout
);
3737 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3742 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3744 GET_CURRENT_CONTEXT(ctx
);
3745 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3751 _mesa_update_state(ctx
);
3753 if (ctx
->Driver
.GetIntegerv
&&
3754 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3758 case GL_ACCUM_RED_BITS
:
3759 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3761 case GL_ACCUM_GREEN_BITS
:
3762 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3764 case GL_ACCUM_BLUE_BITS
:
3765 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3767 case GL_ACCUM_ALPHA_BITS
:
3768 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3770 case GL_ACCUM_CLEAR_VALUE
:
3771 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3772 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3773 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3774 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3777 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3780 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3782 case GL_ALPHA_SCALE
:
3783 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3786 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3788 case GL_ALPHA_TEST_FUNC
:
3789 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3791 case GL_ALPHA_TEST_REF
:
3792 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3794 case GL_ATTRIB_STACK_DEPTH
:
3795 params
[0] = ctx
->AttribStackDepth
;
3797 case GL_AUTO_NORMAL
:
3798 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3800 case GL_AUX_BUFFERS
:
3801 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3804 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3807 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3810 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3812 case GL_BLEND_SRC_RGB_EXT
:
3813 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3815 case GL_BLEND_DST_RGB_EXT
:
3816 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3818 case GL_BLEND_SRC_ALPHA_EXT
:
3819 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3821 case GL_BLEND_DST_ALPHA_EXT
:
3822 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3824 case GL_BLEND_EQUATION
:
3825 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3827 case GL_BLEND_EQUATION_ALPHA_EXT
:
3828 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3830 case GL_BLEND_COLOR_EXT
:
3831 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3832 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3833 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3834 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3837 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3840 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3843 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3845 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3846 params
[0] = ctx
->ClientAttribStackDepth
;
3848 case GL_CLIP_PLANE0
:
3849 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3851 case GL_CLIP_PLANE1
:
3852 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3854 case GL_CLIP_PLANE2
:
3855 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3857 case GL_CLIP_PLANE3
:
3858 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3860 case GL_CLIP_PLANE4
:
3861 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3863 case GL_CLIP_PLANE5
:
3864 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3866 case GL_COLOR_CLEAR_VALUE
:
3867 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3868 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3869 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3870 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3872 case GL_COLOR_MATERIAL
:
3873 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3875 case GL_COLOR_MATERIAL_FACE
:
3876 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3878 case GL_COLOR_MATERIAL_PARAMETER
:
3879 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3881 case GL_COLOR_WRITEMASK
:
3882 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3883 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3884 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3885 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3888 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3890 case GL_CULL_FACE_MODE
:
3891 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3893 case GL_CURRENT_COLOR
:
3895 FLUSH_CURRENT(ctx
, 0);
3896 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3897 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3898 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3899 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3902 case GL_CURRENT_INDEX
:
3904 FLUSH_CURRENT(ctx
, 0);
3905 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3908 case GL_CURRENT_NORMAL
:
3910 FLUSH_CURRENT(ctx
, 0);
3911 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3912 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3913 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3916 case GL_CURRENT_RASTER_COLOR
:
3917 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3918 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3919 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3920 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3922 case GL_CURRENT_RASTER_DISTANCE
:
3923 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3925 case GL_CURRENT_RASTER_INDEX
:
3926 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3928 case GL_CURRENT_RASTER_POSITION
:
3929 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3930 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3931 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3932 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3934 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
3935 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
3936 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
3937 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
3938 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
3940 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3942 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3943 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3944 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3945 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3946 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3949 case GL_CURRENT_RASTER_POSITION_VALID
:
3950 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3952 case GL_CURRENT_TEXTURE_COORDS
:
3954 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3955 FLUSH_CURRENT(ctx
, 0);
3956 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3957 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3958 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3959 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3963 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3966 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3968 case GL_DEPTH_CLEAR_VALUE
:
3969 params
[0] = FLOAT_TO_INT(((GLfloat
) ctx
->Depth
.Clear
));
3972 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3974 case GL_DEPTH_RANGE
:
3975 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3976 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3978 case GL_DEPTH_SCALE
:
3979 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3982 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3984 case GL_DEPTH_WRITEMASK
:
3985 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3988 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3990 case GL_DOUBLEBUFFER
:
3991 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
3993 case GL_DRAW_BUFFER
:
3994 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3998 FLUSH_CURRENT(ctx
, 0);
3999 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
4002 case GL_FEEDBACK_BUFFER_SIZE
:
4003 params
[0] = ctx
->Feedback
.BufferSize
;
4005 case GL_FEEDBACK_BUFFER_TYPE
:
4006 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
4009 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
4012 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
4013 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
4014 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
4015 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
4017 case GL_FOG_DENSITY
:
4018 params
[0] = IROUND(ctx
->Fog
.Density
);
4021 params
[0] = IROUND(ctx
->Fog
.End
);
4024 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4027 params
[0] = IROUND(ctx
->Fog
.Index
);
4030 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4033 params
[0] = IROUND(ctx
->Fog
.Start
);
4036 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4039 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4042 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4044 case GL_GREEN_SCALE
:
4045 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4048 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4050 case GL_INDEX_CLEAR_VALUE
:
4051 params
[0] = ctx
->Color
.ClearIndex
;
4054 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4056 case GL_INDEX_OFFSET
:
4057 params
[0] = ctx
->Pixel
.IndexOffset
;
4059 case GL_INDEX_SHIFT
:
4060 params
[0] = ctx
->Pixel
.IndexShift
;
4062 case GL_INDEX_WRITEMASK
:
4063 params
[0] = ctx
->Color
.IndexMask
;
4066 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4069 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4072 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4075 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4078 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4081 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4084 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4087 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4090 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4092 case GL_LIGHT_MODEL_AMBIENT
:
4093 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4094 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4095 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4096 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4098 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4099 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4101 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4102 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4104 case GL_LIGHT_MODEL_TWO_SIDE
:
4105 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4107 case GL_LINE_SMOOTH
:
4108 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4110 case GL_LINE_SMOOTH_HINT
:
4111 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4113 case GL_LINE_STIPPLE
:
4114 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4116 case GL_LINE_STIPPLE_PATTERN
:
4117 params
[0] = ctx
->Line
.StipplePattern
;
4119 case GL_LINE_STIPPLE_REPEAT
:
4120 params
[0] = ctx
->Line
.StippleFactor
;
4123 params
[0] = IROUND(ctx
->Line
.Width
);
4125 case GL_LINE_WIDTH_GRANULARITY
:
4126 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4128 case GL_LINE_WIDTH_RANGE
:
4129 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4130 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4132 case GL_ALIASED_LINE_WIDTH_RANGE
:
4133 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4134 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4137 params
[0] = ctx
->List
.ListBase
;
4140 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
4145 if (!ctx
->CompileFlag
)
4147 else if (ctx
->ExecuteFlag
)
4148 mode
= GL_COMPILE_AND_EXECUTE
;
4151 params
[0] = ENUM_TO_INT(mode
);
4154 case GL_INDEX_LOGIC_OP
:
4155 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4157 case GL_COLOR_LOGIC_OP
:
4158 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4160 case GL_LOGIC_OP_MODE
:
4161 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4163 case GL_MAP1_COLOR_4
:
4164 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4166 case GL_MAP1_GRID_DOMAIN
:
4167 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4168 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4170 case GL_MAP1_GRID_SEGMENTS
:
4171 params
[0] = ctx
->Eval
.MapGrid1un
;
4174 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4176 case GL_MAP1_NORMAL
:
4177 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4179 case GL_MAP1_TEXTURE_COORD_1
:
4180 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4182 case GL_MAP1_TEXTURE_COORD_2
:
4183 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4185 case GL_MAP1_TEXTURE_COORD_3
:
4186 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4188 case GL_MAP1_TEXTURE_COORD_4
:
4189 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4191 case GL_MAP1_VERTEX_3
:
4192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4194 case GL_MAP1_VERTEX_4
:
4195 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4197 case GL_MAP2_COLOR_4
:
4198 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4200 case GL_MAP2_GRID_DOMAIN
:
4201 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4202 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4203 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4204 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4206 case GL_MAP2_GRID_SEGMENTS
:
4207 params
[0] = ctx
->Eval
.MapGrid2un
;
4208 params
[1] = ctx
->Eval
.MapGrid2vn
;
4211 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4213 case GL_MAP2_NORMAL
:
4214 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4216 case GL_MAP2_TEXTURE_COORD_1
:
4217 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4219 case GL_MAP2_TEXTURE_COORD_2
:
4220 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4222 case GL_MAP2_TEXTURE_COORD_3
:
4223 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4225 case GL_MAP2_TEXTURE_COORD_4
:
4226 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4228 case GL_MAP2_VERTEX_3
:
4229 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4231 case GL_MAP2_VERTEX_4
:
4232 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4235 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4237 case GL_MAP_STENCIL
:
4238 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4240 case GL_MATRIX_MODE
:
4241 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4243 case GL_MAX_ATTRIB_STACK_DEPTH
:
4244 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4246 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4247 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4249 case GL_MAX_CLIP_PLANES
:
4250 params
[0] = ctx
->Const
.MaxClipPlanes
;
4252 case GL_MAX_ELEMENTS_VERTICES
:
4253 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4255 case GL_MAX_ELEMENTS_INDICES
:
4256 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4258 case GL_MAX_EVAL_ORDER
:
4259 params
[0] = MAX_EVAL_ORDER
;
4262 params
[0] = ctx
->Const
.MaxLights
;
4264 case GL_MAX_LIST_NESTING
:
4265 params
[0] = MAX_LIST_NESTING
;
4267 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4268 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4270 case GL_MAX_NAME_STACK_DEPTH
:
4271 params
[0] = MAX_NAME_STACK_DEPTH
;
4273 case GL_MAX_PIXEL_MAP_TABLE
:
4274 params
[0] = MAX_PIXEL_MAP_TABLE
;
4276 case GL_MAX_PROJECTION_STACK_DEPTH
:
4277 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4279 case GL_MAX_TEXTURE_SIZE
:
4280 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4282 case GL_MAX_3D_TEXTURE_SIZE
:
4283 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4285 case GL_MAX_TEXTURE_STACK_DEPTH
:
4286 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4288 case GL_MAX_VIEWPORT_DIMS
:
4289 params
[0] = ctx
->Const
.MaxViewportWidth
;
4290 params
[1] = ctx
->Const
.MaxViewportHeight
;
4292 case GL_MODELVIEW_MATRIX
:
4294 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4295 params
[0] = IROUND(matrix
[0]);
4296 params
[1] = IROUND(matrix
[1]);
4297 params
[2] = IROUND(matrix
[2]);
4298 params
[3] = IROUND(matrix
[3]);
4299 params
[4] = IROUND(matrix
[4]);
4300 params
[5] = IROUND(matrix
[5]);
4301 params
[6] = IROUND(matrix
[6]);
4302 params
[7] = IROUND(matrix
[7]);
4303 params
[8] = IROUND(matrix
[8]);
4304 params
[9] = IROUND(matrix
[9]);
4305 params
[10] = IROUND(matrix
[10]);
4306 params
[11] = IROUND(matrix
[11]);
4307 params
[12] = IROUND(matrix
[12]);
4308 params
[13] = IROUND(matrix
[13]);
4309 params
[14] = IROUND(matrix
[14]);
4310 params
[15] = IROUND(matrix
[15]);
4313 case GL_MODELVIEW_STACK_DEPTH
:
4314 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4316 case GL_NAME_STACK_DEPTH
:
4317 params
[0] = ctx
->Select
.NameStackDepth
;
4320 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4322 case GL_PACK_ALIGNMENT
:
4323 params
[0] = ctx
->Pack
.Alignment
;
4325 case GL_PACK_LSB_FIRST
:
4326 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4328 case GL_PACK_ROW_LENGTH
:
4329 params
[0] = ctx
->Pack
.RowLength
;
4331 case GL_PACK_SKIP_PIXELS
:
4332 params
[0] = ctx
->Pack
.SkipPixels
;
4334 case GL_PACK_SKIP_ROWS
:
4335 params
[0] = ctx
->Pack
.SkipRows
;
4337 case GL_PACK_SWAP_BYTES
:
4338 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4340 case GL_PACK_SKIP_IMAGES_EXT
:
4341 params
[0] = ctx
->Pack
.SkipImages
;
4343 case GL_PACK_IMAGE_HEIGHT_EXT
:
4344 params
[0] = ctx
->Pack
.ImageHeight
;
4346 case GL_PACK_INVERT_MESA
:
4347 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4349 case GL_PERSPECTIVE_CORRECTION_HINT
:
4350 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4352 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4353 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4355 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4356 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4358 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4359 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4361 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4362 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4364 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4365 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4367 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4368 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4370 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4371 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4373 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4374 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4376 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4377 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4379 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4380 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4383 params
[0] = IROUND(ctx
->Point
.Size
);
4385 case GL_POINT_SIZE_GRANULARITY
:
4386 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4388 case GL_POINT_SIZE_RANGE
:
4389 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4390 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4392 case GL_ALIASED_POINT_SIZE_RANGE
:
4393 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4394 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4396 case GL_POINT_SMOOTH
:
4397 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4399 case GL_POINT_SMOOTH_HINT
:
4400 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4402 case GL_POINT_SIZE_MIN_EXT
:
4403 params
[0] = IROUND(ctx
->Point
.MinSize
);
4405 case GL_POINT_SIZE_MAX_EXT
:
4406 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4408 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4409 params
[0] = IROUND(ctx
->Point
.Threshold
);
4411 case GL_DISTANCE_ATTENUATION_EXT
:
4412 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4413 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4414 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4416 case GL_POLYGON_MODE
:
4417 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4418 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4420 case GL_POLYGON_OFFSET_BIAS_EXT
:
4421 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4423 case GL_POLYGON_OFFSET_FACTOR
:
4424 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4426 case GL_POLYGON_OFFSET_UNITS
:
4427 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4429 case GL_POLYGON_OFFSET_POINT
:
4430 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4432 case GL_POLYGON_OFFSET_LINE
:
4433 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4435 case GL_POLYGON_OFFSET_FILL
:
4436 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4438 case GL_POLYGON_SMOOTH
:
4439 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4441 case GL_POLYGON_SMOOTH_HINT
:
4442 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4444 case GL_POLYGON_STIPPLE
:
4445 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4447 case GL_PROJECTION_MATRIX
:
4449 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4450 params
[0] = IROUND(matrix
[0]);
4451 params
[1] = IROUND(matrix
[1]);
4452 params
[2] = IROUND(matrix
[2]);
4453 params
[3] = IROUND(matrix
[3]);
4454 params
[4] = IROUND(matrix
[4]);
4455 params
[5] = IROUND(matrix
[5]);
4456 params
[6] = IROUND(matrix
[6]);
4457 params
[7] = IROUND(matrix
[7]);
4458 params
[8] = IROUND(matrix
[8]);
4459 params
[9] = IROUND(matrix
[9]);
4460 params
[10] = IROUND(matrix
[10]);
4461 params
[11] = IROUND(matrix
[11]);
4462 params
[12] = IROUND(matrix
[12]);
4463 params
[13] = IROUND(matrix
[13]);
4464 params
[14] = IROUND(matrix
[14]);
4465 params
[15] = IROUND(matrix
[15]);
4468 case GL_PROJECTION_STACK_DEPTH
:
4469 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4471 case GL_READ_BUFFER
:
4472 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4475 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4478 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4481 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4483 case GL_RENDER_MODE
:
4484 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4486 case GL_RESCALE_NORMAL
:
4487 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4490 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4492 case GL_SCISSOR_BOX
:
4493 params
[0] = ctx
->Scissor
.X
;
4494 params
[1] = ctx
->Scissor
.Y
;
4495 params
[2] = ctx
->Scissor
.Width
;
4496 params
[3] = ctx
->Scissor
.Height
;
4498 case GL_SCISSOR_TEST
:
4499 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4501 case GL_SELECTION_BUFFER_SIZE
:
4502 params
[0] = ctx
->Select
.BufferSize
;
4504 case GL_SHADE_MODEL
:
4505 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4507 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4508 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4510 case GL_STENCIL_BITS
:
4511 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4513 case GL_STENCIL_CLEAR_VALUE
:
4514 params
[0] = ctx
->Stencil
.Clear
;
4516 case GL_STENCIL_FAIL
:
4517 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4519 case GL_STENCIL_FUNC
:
4520 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4522 case GL_STENCIL_PASS_DEPTH_FAIL
:
4523 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4525 case GL_STENCIL_PASS_DEPTH_PASS
:
4526 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4528 case GL_STENCIL_REF
:
4529 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4531 case GL_STENCIL_TEST
:
4532 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4534 case GL_STENCIL_VALUE_MASK
:
4535 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4537 case GL_STENCIL_WRITEMASK
:
4538 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4541 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4543 case GL_SUBPIXEL_BITS
:
4544 params
[0] = ctx
->Const
.SubPixelBits
;
4547 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4550 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4553 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4555 case GL_TEXTURE_1D_ARRAY_EXT
:
4556 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4557 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4559 case GL_TEXTURE_2D_ARRAY_EXT
:
4560 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4561 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4563 case GL_TEXTURE_BINDING_1D
:
4564 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
;
4566 case GL_TEXTURE_BINDING_2D
:
4567 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
;
4569 case GL_TEXTURE_BINDING_3D
:
4570 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
;
4572 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4573 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4574 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
;
4576 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4577 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4578 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
;
4580 case GL_TEXTURE_GEN_S
:
4581 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4583 case GL_TEXTURE_GEN_T
:
4584 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4586 case GL_TEXTURE_GEN_R
:
4587 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4589 case GL_TEXTURE_GEN_Q
:
4590 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4592 case GL_TEXTURE_MATRIX
:
4594 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4595 params
[0] = IROUND(matrix
[0]);
4596 params
[1] = IROUND(matrix
[1]);
4597 params
[2] = IROUND(matrix
[2]);
4598 params
[3] = IROUND(matrix
[3]);
4599 params
[4] = IROUND(matrix
[4]);
4600 params
[5] = IROUND(matrix
[5]);
4601 params
[6] = IROUND(matrix
[6]);
4602 params
[7] = IROUND(matrix
[7]);
4603 params
[8] = IROUND(matrix
[8]);
4604 params
[9] = IROUND(matrix
[9]);
4605 params
[10] = IROUND(matrix
[10]);
4606 params
[11] = IROUND(matrix
[11]);
4607 params
[12] = IROUND(matrix
[12]);
4608 params
[13] = IROUND(matrix
[13]);
4609 params
[14] = IROUND(matrix
[14]);
4610 params
[15] = IROUND(matrix
[15]);
4613 case GL_TEXTURE_STACK_DEPTH
:
4614 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4616 case GL_UNPACK_ALIGNMENT
:
4617 params
[0] = ctx
->Unpack
.Alignment
;
4619 case GL_UNPACK_LSB_FIRST
:
4620 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4622 case GL_UNPACK_ROW_LENGTH
:
4623 params
[0] = ctx
->Unpack
.RowLength
;
4625 case GL_UNPACK_SKIP_PIXELS
:
4626 params
[0] = ctx
->Unpack
.SkipPixels
;
4628 case GL_UNPACK_SKIP_ROWS
:
4629 params
[0] = ctx
->Unpack
.SkipRows
;
4631 case GL_UNPACK_SWAP_BYTES
:
4632 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4634 case GL_UNPACK_SKIP_IMAGES_EXT
:
4635 params
[0] = ctx
->Unpack
.SkipImages
;
4637 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4638 params
[0] = ctx
->Unpack
.ImageHeight
;
4640 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4641 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4644 params
[0] = ctx
->Viewport
.X
;
4645 params
[1] = ctx
->Viewport
.Y
;
4646 params
[2] = ctx
->Viewport
.Width
;
4647 params
[3] = ctx
->Viewport
.Height
;
4650 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4653 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4655 case GL_VERTEX_ARRAY
:
4656 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4658 case GL_VERTEX_ARRAY_SIZE
:
4659 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4661 case GL_VERTEX_ARRAY_TYPE
:
4662 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4664 case GL_VERTEX_ARRAY_STRIDE
:
4665 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4667 case GL_VERTEX_ARRAY_COUNT_EXT
:
4670 case GL_NORMAL_ARRAY
:
4671 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4673 case GL_NORMAL_ARRAY_TYPE
:
4674 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4676 case GL_NORMAL_ARRAY_STRIDE
:
4677 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4679 case GL_NORMAL_ARRAY_COUNT_EXT
:
4682 case GL_COLOR_ARRAY
:
4683 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4685 case GL_COLOR_ARRAY_SIZE
:
4686 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4688 case GL_COLOR_ARRAY_TYPE
:
4689 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4691 case GL_COLOR_ARRAY_STRIDE
:
4692 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4694 case GL_COLOR_ARRAY_COUNT_EXT
:
4697 case GL_INDEX_ARRAY
:
4698 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4700 case GL_INDEX_ARRAY_TYPE
:
4701 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4703 case GL_INDEX_ARRAY_STRIDE
:
4704 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4706 case GL_INDEX_ARRAY_COUNT_EXT
:
4709 case GL_TEXTURE_COORD_ARRAY
:
4710 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4712 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4713 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4715 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4716 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4718 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4719 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4721 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4724 case GL_EDGE_FLAG_ARRAY
:
4725 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4727 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4728 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4730 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4733 case GL_MAX_TEXTURE_UNITS_ARB
:
4734 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4735 params
[0] = ctx
->Const
.MaxTextureUnits
;
4737 case GL_ACTIVE_TEXTURE_ARB
:
4738 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4739 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4741 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4742 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4743 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4745 case GL_TEXTURE_CUBE_MAP_ARB
:
4746 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4747 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4749 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4750 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4751 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
;
4753 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4754 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4755 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4757 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4758 params
[0] = ctx
->Hint
.TextureCompression
;
4760 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4761 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4763 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4766 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4768 for (i
= 0; i
< n
; i
++)
4769 params
[i
] = ENUM_TO_INT(formats
[i
]);
4772 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4773 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4774 params
[0] = ctx
->Array
.LockFirst
;
4776 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4777 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4778 params
[0] = ctx
->Array
.LockCount
;
4780 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4782 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4783 params
[0] = IROUND(matrix
[0]);
4784 params
[1] = IROUND(matrix
[4]);
4785 params
[2] = IROUND(matrix
[8]);
4786 params
[3] = IROUND(matrix
[12]);
4787 params
[4] = IROUND(matrix
[1]);
4788 params
[5] = IROUND(matrix
[5]);
4789 params
[6] = IROUND(matrix
[9]);
4790 params
[7] = IROUND(matrix
[13]);
4791 params
[8] = IROUND(matrix
[2]);
4792 params
[9] = IROUND(matrix
[6]);
4793 params
[10] = IROUND(matrix
[10]);
4794 params
[11] = IROUND(matrix
[14]);
4795 params
[12] = IROUND(matrix
[3]);
4796 params
[13] = IROUND(matrix
[7]);
4797 params
[14] = IROUND(matrix
[11]);
4798 params
[15] = IROUND(matrix
[15]);
4801 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4803 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4804 params
[0] = IROUND(matrix
[0]);
4805 params
[1] = IROUND(matrix
[4]);
4806 params
[2] = IROUND(matrix
[8]);
4807 params
[3] = IROUND(matrix
[12]);
4808 params
[4] = IROUND(matrix
[1]);
4809 params
[5] = IROUND(matrix
[5]);
4810 params
[6] = IROUND(matrix
[9]);
4811 params
[7] = IROUND(matrix
[13]);
4812 params
[8] = IROUND(matrix
[2]);
4813 params
[9] = IROUND(matrix
[6]);
4814 params
[10] = IROUND(matrix
[10]);
4815 params
[11] = IROUND(matrix
[14]);
4816 params
[12] = IROUND(matrix
[3]);
4817 params
[13] = IROUND(matrix
[7]);
4818 params
[14] = IROUND(matrix
[11]);
4819 params
[15] = IROUND(matrix
[15]);
4822 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4824 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4825 params
[0] = IROUND(matrix
[0]);
4826 params
[1] = IROUND(matrix
[4]);
4827 params
[2] = IROUND(matrix
[8]);
4828 params
[3] = IROUND(matrix
[12]);
4829 params
[4] = IROUND(matrix
[1]);
4830 params
[5] = IROUND(matrix
[5]);
4831 params
[6] = IROUND(matrix
[9]);
4832 params
[7] = IROUND(matrix
[13]);
4833 params
[8] = IROUND(matrix
[2]);
4834 params
[9] = IROUND(matrix
[6]);
4835 params
[10] = IROUND(matrix
[10]);
4836 params
[11] = IROUND(matrix
[14]);
4837 params
[12] = IROUND(matrix
[3]);
4838 params
[13] = IROUND(matrix
[7]);
4839 params
[14] = IROUND(matrix
[11]);
4840 params
[15] = IROUND(matrix
[15]);
4843 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4845 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4846 params
[0] = IROUND(matrix
[0]);
4847 params
[1] = IROUND(matrix
[4]);
4848 params
[2] = IROUND(matrix
[8]);
4849 params
[3] = IROUND(matrix
[12]);
4850 params
[4] = IROUND(matrix
[1]);
4851 params
[5] = IROUND(matrix
[5]);
4852 params
[6] = IROUND(matrix
[9]);
4853 params
[7] = IROUND(matrix
[13]);
4854 params
[8] = IROUND(matrix
[2]);
4855 params
[9] = IROUND(matrix
[6]);
4856 params
[10] = IROUND(matrix
[10]);
4857 params
[11] = IROUND(matrix
[14]);
4858 params
[12] = IROUND(matrix
[3]);
4859 params
[13] = IROUND(matrix
[7]);
4860 params
[14] = IROUND(matrix
[11]);
4861 params
[15] = IROUND(matrix
[15]);
4864 case GL_COLOR_MATRIX_SGI
:
4866 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4867 params
[0] = IROUND(matrix
[0]);
4868 params
[1] = IROUND(matrix
[1]);
4869 params
[2] = IROUND(matrix
[2]);
4870 params
[3] = IROUND(matrix
[3]);
4871 params
[4] = IROUND(matrix
[4]);
4872 params
[5] = IROUND(matrix
[5]);
4873 params
[6] = IROUND(matrix
[6]);
4874 params
[7] = IROUND(matrix
[7]);
4875 params
[8] = IROUND(matrix
[8]);
4876 params
[9] = IROUND(matrix
[9]);
4877 params
[10] = IROUND(matrix
[10]);
4878 params
[11] = IROUND(matrix
[11]);
4879 params
[12] = IROUND(matrix
[12]);
4880 params
[13] = IROUND(matrix
[13]);
4881 params
[14] = IROUND(matrix
[14]);
4882 params
[15] = IROUND(matrix
[15]);
4885 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4886 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4888 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4889 params
[0] = MAX_COLOR_STACK_DEPTH
;
4891 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4892 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4894 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4895 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4897 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4898 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4900 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4901 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4903 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4904 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4906 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4907 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4909 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4910 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4912 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4913 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4915 case GL_CONVOLUTION_1D_EXT
:
4916 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4917 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4919 case GL_CONVOLUTION_2D_EXT
:
4920 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4921 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4923 case GL_SEPARABLE_2D_EXT
:
4924 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4925 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4927 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4928 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4929 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4931 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4932 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4933 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4935 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4936 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4937 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4939 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4940 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4941 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4943 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4944 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4945 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4947 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4948 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4949 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4951 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4952 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4953 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4955 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4956 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4957 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4960 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4961 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4964 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4965 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4967 case GL_COLOR_TABLE_SGI
:
4968 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4969 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
4971 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4972 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4973 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
4975 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4976 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4977 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
4979 case GL_TEXTURE_COLOR_TABLE_SGI
:
4980 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
4981 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4983 case GL_COLOR_SUM_EXT
:
4984 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
4985 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4987 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4988 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4990 FLUSH_CURRENT(ctx
, 0);
4991 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4992 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4993 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4994 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4997 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4998 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4999 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
5001 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
5002 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5003 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
5005 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
5006 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5007 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
5009 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
5010 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5011 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
5013 case GL_CURRENT_FOG_COORDINATE_EXT
:
5014 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5016 FLUSH_CURRENT(ctx
, 0);
5017 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5020 case GL_FOG_COORDINATE_ARRAY_EXT
:
5021 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5022 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
5024 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5025 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5026 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
5028 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5029 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5030 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
5032 case GL_FOG_COORDINATE_SOURCE_EXT
:
5033 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5034 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5036 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5037 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5038 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5040 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5041 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5042 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5044 case GL_MULTISAMPLE_ARB
:
5045 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5047 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5048 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5050 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5051 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5053 case GL_SAMPLE_COVERAGE_ARB
:
5054 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5056 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5057 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5059 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5060 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5062 case GL_SAMPLE_BUFFERS_ARB
:
5063 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5065 case GL_SAMPLES_ARB
:
5066 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5068 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5069 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5070 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5072 case GL_POINT_SPRITE_NV
:
5073 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5074 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5076 case GL_POINT_SPRITE_R_MODE_NV
:
5077 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5078 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5080 case GL_POINT_SPRITE_COORD_ORIGIN
:
5081 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5082 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5084 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5085 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5086 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5088 case GL_VERTEX_PROGRAM_BINDING_NV
:
5089 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5090 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5092 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5093 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5094 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5096 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5097 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5098 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5100 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5101 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5102 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5104 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5105 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5106 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5108 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5109 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5110 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5112 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5113 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5114 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5116 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5117 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5118 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5120 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5121 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5122 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5124 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5125 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5126 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5128 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5129 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5130 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5132 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5133 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5134 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5136 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5137 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5138 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5140 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5141 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5142 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5144 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5145 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5146 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5148 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5149 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5150 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5152 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5153 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5154 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5156 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5157 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5158 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5160 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5161 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5162 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5164 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5165 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5166 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5168 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5169 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5170 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5172 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5173 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5174 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5176 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5177 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5178 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5180 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5181 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5182 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5184 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5185 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5186 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5188 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5189 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5190 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5192 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5193 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5194 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5196 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5197 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5198 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5200 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5201 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5202 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5204 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5205 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5206 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5208 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5209 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5210 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5212 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5213 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5214 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5216 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5217 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5218 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5220 case GL_FRAGMENT_PROGRAM_NV
:
5221 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5222 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5224 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5225 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5226 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5228 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5229 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5230 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5232 case GL_TEXTURE_RECTANGLE_NV
:
5233 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5234 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5236 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5237 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5238 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
;
5240 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5241 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5242 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5244 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5245 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5246 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5248 case GL_ACTIVE_STENCIL_FACE_EXT
:
5249 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5250 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5252 case GL_MAX_SHININESS_NV
:
5253 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5254 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5256 case GL_MAX_SPOT_EXPONENT_NV
:
5257 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5258 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5260 case GL_ARRAY_BUFFER_BINDING_ARB
:
5261 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5263 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5264 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5266 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5267 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5269 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5270 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5272 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5273 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5275 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5276 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5278 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5279 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5281 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5282 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5284 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5285 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5287 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5288 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5290 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5291 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5292 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5294 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5295 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5296 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5298 case GL_VERTEX_PROGRAM_ARB
:
5299 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5300 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5302 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5303 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5304 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5306 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5307 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5308 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5310 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5311 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5312 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5314 case GL_MAX_PROGRAM_MATRICES_ARB
:
5315 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5316 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5318 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5319 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5320 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5322 case GL_CURRENT_MATRIX_ARB
:
5323 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5325 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5326 params
[0] = IROUND(matrix
[0]);
5327 params
[1] = IROUND(matrix
[1]);
5328 params
[2] = IROUND(matrix
[2]);
5329 params
[3] = IROUND(matrix
[3]);
5330 params
[4] = IROUND(matrix
[4]);
5331 params
[5] = IROUND(matrix
[5]);
5332 params
[6] = IROUND(matrix
[6]);
5333 params
[7] = IROUND(matrix
[7]);
5334 params
[8] = IROUND(matrix
[8]);
5335 params
[9] = IROUND(matrix
[9]);
5336 params
[10] = IROUND(matrix
[10]);
5337 params
[11] = IROUND(matrix
[11]);
5338 params
[12] = IROUND(matrix
[12]);
5339 params
[13] = IROUND(matrix
[13]);
5340 params
[14] = IROUND(matrix
[14]);
5341 params
[15] = IROUND(matrix
[15]);
5344 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5345 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5347 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5348 params
[0] = IROUND(matrix
[0]);
5349 params
[1] = IROUND(matrix
[4]);
5350 params
[2] = IROUND(matrix
[8]);
5351 params
[3] = IROUND(matrix
[12]);
5352 params
[4] = IROUND(matrix
[1]);
5353 params
[5] = IROUND(matrix
[5]);
5354 params
[6] = IROUND(matrix
[9]);
5355 params
[7] = IROUND(matrix
[13]);
5356 params
[8] = IROUND(matrix
[2]);
5357 params
[9] = IROUND(matrix
[6]);
5358 params
[10] = IROUND(matrix
[10]);
5359 params
[11] = IROUND(matrix
[14]);
5360 params
[12] = IROUND(matrix
[3]);
5361 params
[13] = IROUND(matrix
[7]);
5362 params
[14] = IROUND(matrix
[11]);
5363 params
[15] = IROUND(matrix
[15]);
5366 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5367 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5368 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5370 case GL_PROGRAM_ERROR_POSITION_ARB
:
5371 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5372 params
[0] = ctx
->Program
.ErrorPos
;
5374 case GL_FRAGMENT_PROGRAM_ARB
:
5375 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5376 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5378 case GL_MAX_TEXTURE_COORDS_ARB
:
5379 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5380 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5382 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5383 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5384 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5386 case GL_DEPTH_BOUNDS_TEST_EXT
:
5387 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5388 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5390 case GL_DEPTH_BOUNDS_EXT
:
5391 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5392 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5393 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5395 case GL_DEPTH_CLAMP
:
5396 CHECK_EXT1(ARB_depth_clamp
, "GetIntegerv");
5397 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.DepthClamp
);
5399 case GL_MAX_DRAW_BUFFERS_ARB
:
5400 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5402 case GL_DRAW_BUFFER0_ARB
:
5403 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5405 case GL_DRAW_BUFFER1_ARB
:
5408 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5409 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5412 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5413 params
[0] = ENUM_TO_INT(buffer
);
5416 case GL_DRAW_BUFFER2_ARB
:
5419 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5420 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5423 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5424 params
[0] = ENUM_TO_INT(buffer
);
5427 case GL_DRAW_BUFFER3_ARB
:
5430 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5431 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5434 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5435 params
[0] = ENUM_TO_INT(buffer
);
5438 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5439 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5440 params
[0] = ctx
->Const
.ColorReadType
;
5442 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5443 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5444 params
[0] = ctx
->Const
.ColorReadFormat
;
5446 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5447 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5450 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5451 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5454 case GL_NUM_PASSES_ATI
:
5455 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5458 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5459 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5462 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5463 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5466 case GL_COLOR_ALPHA_PAIRING_ATI
:
5467 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5468 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5470 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5471 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5474 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5475 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5478 case GL_STENCIL_BACK_FUNC
:
5479 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5481 case GL_STENCIL_BACK_VALUE_MASK
:
5482 params
[0] = ctx
->Stencil
.ValueMask
[1];
5484 case GL_STENCIL_BACK_WRITEMASK
:
5485 params
[0] = ctx
->Stencil
.WriteMask
[1];
5487 case GL_STENCIL_BACK_REF
:
5488 params
[0] = ctx
->Stencil
.Ref
[1];
5490 case GL_STENCIL_BACK_FAIL
:
5491 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5493 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5494 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5496 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5497 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5499 case GL_FRAMEBUFFER_BINDING_EXT
:
5500 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5501 params
[0] = ctx
->DrawBuffer
->Name
;
5503 case GL_RENDERBUFFER_BINDING_EXT
:
5504 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5505 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5507 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5508 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5509 params
[0] = ctx
->Const
.MaxColorAttachments
;
5511 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5512 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5513 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5515 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5516 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5517 params
[0] = ctx
->ReadBuffer
->Name
;
5519 case GL_PROVOKING_VERTEX_EXT
:
5520 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5521 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ProvokingVertex
);
5523 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
5524 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5525 params
[0] = BOOLEAN_TO_INT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
5527 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5528 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5529 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5531 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5532 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5533 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5535 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5536 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5537 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5539 case GL_MAX_VARYING_FLOATS_ARB
:
5540 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5541 params
[0] = ctx
->Const
.MaxVarying
* 4;
5543 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5544 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5545 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5547 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5548 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5549 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5551 case GL_CURRENT_PROGRAM
:
5552 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5553 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5555 case GL_MAX_SAMPLES
:
5556 CHECK_EXT1(ARB_framebuffer_object
, "GetIntegerv");
5557 params
[0] = ctx
->Const
.MaxSamples
;
5559 case GL_VERTEX_ARRAY_BINDING_APPLE
:
5560 CHECK_EXT1(APPLE_vertex_array_object
, "GetIntegerv");
5561 params
[0] = ctx
->Array
.ArrayObj
->Name
;
5563 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
5564 CHECK_EXT1(ARB_seamless_cube_map
, "GetIntegerv");
5565 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.CubeMapSeamless
);
5567 case GL_MAX_SERVER_WAIT_TIMEOUT
:
5568 CHECK_EXT1(ARB_sync
, "GetIntegerv");
5569 params
[0] = INT64_TO_INT(ctx
->Const
.MaxServerWaitTimeout
);
5572 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5576 #if FEATURE_ARB_sync
5578 _mesa_GetInteger64v( GLenum pname
, GLint64
*params
)
5580 GET_CURRENT_CONTEXT(ctx
);
5581 ASSERT_OUTSIDE_BEGIN_END(ctx
);
5587 _mesa_update_state(ctx
);
5589 if (ctx
->Driver
.GetInteger64v
&&
5590 ctx
->Driver
.GetInteger64v(ctx
, pname
, params
))
5594 case GL_ACCUM_RED_BITS
:
5595 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
5597 case GL_ACCUM_GREEN_BITS
:
5598 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
5600 case GL_ACCUM_BLUE_BITS
:
5601 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
5603 case GL_ACCUM_ALPHA_BITS
:
5604 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
5606 case GL_ACCUM_CLEAR_VALUE
:
5607 params
[0] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[0]);
5608 params
[1] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[1]);
5609 params
[2] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[2]);
5610 params
[3] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[3]);
5613 params
[0] = IROUND64(ctx
->Pixel
.AlphaBias
);
5616 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
5618 case GL_ALPHA_SCALE
:
5619 params
[0] = IROUND64(ctx
->Pixel
.AlphaScale
);
5622 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.AlphaEnabled
);
5624 case GL_ALPHA_TEST_FUNC
:
5625 params
[0] = ENUM_TO_INT64(ctx
->Color
.AlphaFunc
);
5627 case GL_ALPHA_TEST_REF
:
5628 params
[0] = FLOAT_TO_INT64(ctx
->Color
.AlphaRef
);
5630 case GL_ATTRIB_STACK_DEPTH
:
5631 params
[0] = ctx
->AttribStackDepth
;
5633 case GL_AUTO_NORMAL
:
5634 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.AutoNormal
);
5636 case GL_AUX_BUFFERS
:
5637 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
5640 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.BlendEnabled
);
5643 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstRGB
);
5646 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcRGB
);
5648 case GL_BLEND_SRC_RGB_EXT
:
5649 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcRGB
);
5651 case GL_BLEND_DST_RGB_EXT
:
5652 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstRGB
);
5654 case GL_BLEND_SRC_ALPHA_EXT
:
5655 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcA
);
5657 case GL_BLEND_DST_ALPHA_EXT
:
5658 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstA
);
5660 case GL_BLEND_EQUATION
:
5661 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendEquationRGB
);
5663 case GL_BLEND_EQUATION_ALPHA_EXT
:
5664 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendEquationA
);
5666 case GL_BLEND_COLOR_EXT
:
5667 params
[0] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[0]);
5668 params
[1] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[1]);
5669 params
[2] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[2]);
5670 params
[3] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[3]);
5673 params
[0] = IROUND64(ctx
->Pixel
.BlueBias
);
5676 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
5679 params
[0] = IROUND64(ctx
->Pixel
.BlueScale
);
5681 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
5682 params
[0] = ctx
->ClientAttribStackDepth
;
5684 case GL_CLIP_PLANE0
:
5685 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
5687 case GL_CLIP_PLANE1
:
5688 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
5690 case GL_CLIP_PLANE2
:
5691 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
5693 case GL_CLIP_PLANE3
:
5694 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
5696 case GL_CLIP_PLANE4
:
5697 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
5699 case GL_CLIP_PLANE5
:
5700 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
5702 case GL_COLOR_CLEAR_VALUE
:
5703 params
[0] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[0]);
5704 params
[1] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[1]);
5705 params
[2] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[2]);
5706 params
[3] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[3]);
5708 case GL_COLOR_MATERIAL
:
5709 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.ColorMaterialEnabled
);
5711 case GL_COLOR_MATERIAL_FACE
:
5712 params
[0] = ENUM_TO_INT64(ctx
->Light
.ColorMaterialFace
);
5714 case GL_COLOR_MATERIAL_PARAMETER
:
5715 params
[0] = ENUM_TO_INT64(ctx
->Light
.ColorMaterialMode
);
5717 case GL_COLOR_WRITEMASK
:
5718 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
5719 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
5720 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
5721 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
5724 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.CullFlag
);
5726 case GL_CULL_FACE_MODE
:
5727 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.CullFaceMode
);
5729 case GL_CURRENT_COLOR
:
5731 FLUSH_CURRENT(ctx
, 0);
5732 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
5733 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
5734 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
5735 params
[3] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
5738 case GL_CURRENT_INDEX
:
5740 FLUSH_CURRENT(ctx
, 0);
5741 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
5744 case GL_CURRENT_NORMAL
:
5746 FLUSH_CURRENT(ctx
, 0);
5747 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
5748 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
5749 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
5752 case GL_CURRENT_RASTER_COLOR
:
5753 params
[0] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[0]);
5754 params
[1] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[1]);
5755 params
[2] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[2]);
5756 params
[3] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[3]);
5758 case GL_CURRENT_RASTER_DISTANCE
:
5759 params
[0] = IROUND64(ctx
->Current
.RasterDistance
);
5761 case GL_CURRENT_RASTER_INDEX
:
5762 params
[0] = IROUND64(ctx
->Current
.RasterIndex
);
5764 case GL_CURRENT_RASTER_POSITION
:
5765 params
[0] = IROUND64(ctx
->Current
.RasterPos
[0]);
5766 params
[1] = IROUND64(ctx
->Current
.RasterPos
[1]);
5767 params
[2] = IROUND64(ctx
->Current
.RasterPos
[2]);
5768 params
[3] = IROUND64(ctx
->Current
.RasterPos
[3]);
5770 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
5771 params
[0] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[0]);
5772 params
[1] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[1]);
5773 params
[2] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[2]);
5774 params
[3] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[3]);
5776 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
5778 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
5779 params
[0] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
5780 params
[1] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
5781 params
[2] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
5782 params
[3] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
5785 case GL_CURRENT_RASTER_POSITION_VALID
:
5786 params
[0] = BOOLEAN_TO_INT64(ctx
->Current
.RasterPosValid
);
5788 case GL_CURRENT_TEXTURE_COORDS
:
5790 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
5791 FLUSH_CURRENT(ctx
, 0);
5792 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
5793 params
[1] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
5794 params
[2] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
5795 params
[3] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
5799 params
[0] = IROUND64(ctx
->Pixel
.DepthBias
);
5802 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
5804 case GL_DEPTH_CLEAR_VALUE
:
5805 params
[0] = FLOAT_TO_INT64(((GLfloat
) ctx
->Depth
.Clear
));
5808 params
[0] = ENUM_TO_INT64(ctx
->Depth
.Func
);
5810 case GL_DEPTH_RANGE
:
5811 params
[0] = FLOAT_TO_INT64(ctx
->Viewport
.Near
);
5812 params
[1] = FLOAT_TO_INT64(ctx
->Viewport
.Far
);
5814 case GL_DEPTH_SCALE
:
5815 params
[0] = IROUND64(ctx
->Pixel
.DepthScale
);
5818 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.Test
);
5820 case GL_DEPTH_WRITEMASK
:
5821 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.Mask
);
5824 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.DitherFlag
);
5826 case GL_DOUBLEBUFFER
:
5827 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
5829 case GL_DRAW_BUFFER
:
5830 params
[0] = ENUM_TO_INT64(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5834 FLUSH_CURRENT(ctx
, 0);
5835 params
[0] = BOOLEAN_TO_INT64((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
5838 case GL_FEEDBACK_BUFFER_SIZE
:
5839 params
[0] = ctx
->Feedback
.BufferSize
;
5841 case GL_FEEDBACK_BUFFER_TYPE
:
5842 params
[0] = ENUM_TO_INT64(ctx
->Feedback
.Type
);
5845 params
[0] = BOOLEAN_TO_INT64(ctx
->Fog
.Enabled
);
5848 params
[0] = FLOAT_TO_INT64(ctx
->Fog
.Color
[0]);
5849 params
[1] = FLOAT_TO_INT64(ctx
->Fog
.Color
[1]);
5850 params
[2] = FLOAT_TO_INT64(ctx
->Fog
.Color
[2]);
5851 params
[3] = FLOAT_TO_INT64(ctx
->Fog
.Color
[3]);
5853 case GL_FOG_DENSITY
:
5854 params
[0] = IROUND64(ctx
->Fog
.Density
);
5857 params
[0] = IROUND64(ctx
->Fog
.End
);
5860 params
[0] = ENUM_TO_INT64(ctx
->Hint
.Fog
);
5863 params
[0] = IROUND64(ctx
->Fog
.Index
);
5866 params
[0] = ENUM_TO_INT64(ctx
->Fog
.Mode
);
5869 params
[0] = IROUND64(ctx
->Fog
.Start
);
5872 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.FrontFace
);
5875 params
[0] = IROUND64(ctx
->Pixel
.GreenBias
);
5878 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
5880 case GL_GREEN_SCALE
:
5881 params
[0] = IROUND64(ctx
->Pixel
.GreenScale
);
5884 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
5886 case GL_INDEX_CLEAR_VALUE
:
5887 params
[0] = ctx
->Color
.ClearIndex
;
5890 params
[0] = BOOLEAN_TO_INT64(!ctx
->DrawBuffer
->Visual
.rgbMode
);
5892 case GL_INDEX_OFFSET
:
5893 params
[0] = ctx
->Pixel
.IndexOffset
;
5895 case GL_INDEX_SHIFT
:
5896 params
[0] = ctx
->Pixel
.IndexShift
;
5898 case GL_INDEX_WRITEMASK
:
5899 params
[0] = ctx
->Color
.IndexMask
;
5902 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[0].Enabled
);
5905 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[1].Enabled
);
5908 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[2].Enabled
);
5911 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[3].Enabled
);
5914 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[4].Enabled
);
5917 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[5].Enabled
);
5920 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[6].Enabled
);
5923 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[7].Enabled
);
5926 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Enabled
);
5928 case GL_LIGHT_MODEL_AMBIENT
:
5929 params
[0] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[0]);
5930 params
[1] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[1]);
5931 params
[2] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[2]);
5932 params
[3] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[3]);
5934 case GL_LIGHT_MODEL_COLOR_CONTROL
:
5935 params
[0] = ENUM_TO_INT64(ctx
->Light
.Model
.ColorControl
);
5937 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
5938 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Model
.LocalViewer
);
5940 case GL_LIGHT_MODEL_TWO_SIDE
:
5941 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Model
.TwoSide
);
5943 case GL_LINE_SMOOTH
:
5944 params
[0] = BOOLEAN_TO_INT64(ctx
->Line
.SmoothFlag
);
5946 case GL_LINE_SMOOTH_HINT
:
5947 params
[0] = ENUM_TO_INT64(ctx
->Hint
.LineSmooth
);
5949 case GL_LINE_STIPPLE
:
5950 params
[0] = BOOLEAN_TO_INT64(ctx
->Line
.StippleFlag
);
5952 case GL_LINE_STIPPLE_PATTERN
:
5953 params
[0] = ctx
->Line
.StipplePattern
;
5955 case GL_LINE_STIPPLE_REPEAT
:
5956 params
[0] = ctx
->Line
.StippleFactor
;
5959 params
[0] = IROUND64(ctx
->Line
.Width
);
5961 case GL_LINE_WIDTH_GRANULARITY
:
5962 params
[0] = IROUND64(ctx
->Const
.LineWidthGranularity
);
5964 case GL_LINE_WIDTH_RANGE
:
5965 params
[0] = IROUND64(ctx
->Const
.MinLineWidthAA
);
5966 params
[1] = IROUND64(ctx
->Const
.MaxLineWidthAA
);
5968 case GL_ALIASED_LINE_WIDTH_RANGE
:
5969 params
[0] = IROUND64(ctx
->Const
.MinLineWidth
);
5970 params
[1] = IROUND64(ctx
->Const
.MaxLineWidth
);
5973 params
[0] = ctx
->List
.ListBase
;
5976 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
5981 if (!ctx
->CompileFlag
)
5983 else if (ctx
->ExecuteFlag
)
5984 mode
= GL_COMPILE_AND_EXECUTE
;
5987 params
[0] = ENUM_TO_INT64(mode
);
5990 case GL_INDEX_LOGIC_OP
:
5991 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.IndexLogicOpEnabled
);
5993 case GL_COLOR_LOGIC_OP
:
5994 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.ColorLogicOpEnabled
);
5996 case GL_LOGIC_OP_MODE
:
5997 params
[0] = ENUM_TO_INT64(ctx
->Color
.LogicOp
);
5999 case GL_MAP1_COLOR_4
:
6000 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Color4
);
6002 case GL_MAP1_GRID_DOMAIN
:
6003 params
[0] = IROUND64(ctx
->Eval
.MapGrid1u1
);
6004 params
[1] = IROUND64(ctx
->Eval
.MapGrid1u2
);
6006 case GL_MAP1_GRID_SEGMENTS
:
6007 params
[0] = ctx
->Eval
.MapGrid1un
;
6010 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Index
);
6012 case GL_MAP1_NORMAL
:
6013 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Normal
);
6015 case GL_MAP1_TEXTURE_COORD_1
:
6016 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord1
);
6018 case GL_MAP1_TEXTURE_COORD_2
:
6019 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord2
);
6021 case GL_MAP1_TEXTURE_COORD_3
:
6022 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord3
);
6024 case GL_MAP1_TEXTURE_COORD_4
:
6025 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord4
);
6027 case GL_MAP1_VERTEX_3
:
6028 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Vertex3
);
6030 case GL_MAP1_VERTEX_4
:
6031 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Vertex4
);
6033 case GL_MAP2_COLOR_4
:
6034 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Color4
);
6036 case GL_MAP2_GRID_DOMAIN
:
6037 params
[0] = IROUND64(ctx
->Eval
.MapGrid2u1
);
6038 params
[1] = IROUND64(ctx
->Eval
.MapGrid2u2
);
6039 params
[2] = IROUND64(ctx
->Eval
.MapGrid2v1
);
6040 params
[3] = IROUND64(ctx
->Eval
.MapGrid2v2
);
6042 case GL_MAP2_GRID_SEGMENTS
:
6043 params
[0] = ctx
->Eval
.MapGrid2un
;
6044 params
[1] = ctx
->Eval
.MapGrid2vn
;
6047 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Index
);
6049 case GL_MAP2_NORMAL
:
6050 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Normal
);
6052 case GL_MAP2_TEXTURE_COORD_1
:
6053 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord1
);
6055 case GL_MAP2_TEXTURE_COORD_2
:
6056 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord2
);
6058 case GL_MAP2_TEXTURE_COORD_3
:
6059 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord3
);
6061 case GL_MAP2_TEXTURE_COORD_4
:
6062 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord4
);
6064 case GL_MAP2_VERTEX_3
:
6065 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Vertex3
);
6067 case GL_MAP2_VERTEX_4
:
6068 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Vertex4
);
6071 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MapColorFlag
);
6073 case GL_MAP_STENCIL
:
6074 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MapStencilFlag
);
6076 case GL_MATRIX_MODE
:
6077 params
[0] = ENUM_TO_INT64(ctx
->Transform
.MatrixMode
);
6079 case GL_MAX_ATTRIB_STACK_DEPTH
:
6080 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
6082 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
6083 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
6085 case GL_MAX_CLIP_PLANES
:
6086 params
[0] = ctx
->Const
.MaxClipPlanes
;
6088 case GL_MAX_ELEMENTS_VERTICES
:
6089 params
[0] = ctx
->Const
.MaxArrayLockSize
;
6091 case GL_MAX_ELEMENTS_INDICES
:
6092 params
[0] = ctx
->Const
.MaxArrayLockSize
;
6094 case GL_MAX_EVAL_ORDER
:
6095 params
[0] = MAX_EVAL_ORDER
;
6098 params
[0] = ctx
->Const
.MaxLights
;
6100 case GL_MAX_LIST_NESTING
:
6101 params
[0] = MAX_LIST_NESTING
;
6103 case GL_MAX_MODELVIEW_STACK_DEPTH
:
6104 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
6106 case GL_MAX_NAME_STACK_DEPTH
:
6107 params
[0] = MAX_NAME_STACK_DEPTH
;
6109 case GL_MAX_PIXEL_MAP_TABLE
:
6110 params
[0] = MAX_PIXEL_MAP_TABLE
;
6112 case GL_MAX_PROJECTION_STACK_DEPTH
:
6113 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
6115 case GL_MAX_TEXTURE_SIZE
:
6116 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
6118 case GL_MAX_3D_TEXTURE_SIZE
:
6119 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
6121 case GL_MAX_TEXTURE_STACK_DEPTH
:
6122 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
6124 case GL_MAX_VIEWPORT_DIMS
:
6125 params
[0] = ctx
->Const
.MaxViewportWidth
;
6126 params
[1] = ctx
->Const
.MaxViewportHeight
;
6128 case GL_MODELVIEW_MATRIX
:
6130 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
6131 params
[0] = IROUND64(matrix
[0]);
6132 params
[1] = IROUND64(matrix
[1]);
6133 params
[2] = IROUND64(matrix
[2]);
6134 params
[3] = IROUND64(matrix
[3]);
6135 params
[4] = IROUND64(matrix
[4]);
6136 params
[5] = IROUND64(matrix
[5]);
6137 params
[6] = IROUND64(matrix
[6]);
6138 params
[7] = IROUND64(matrix
[7]);
6139 params
[8] = IROUND64(matrix
[8]);
6140 params
[9] = IROUND64(matrix
[9]);
6141 params
[10] = IROUND64(matrix
[10]);
6142 params
[11] = IROUND64(matrix
[11]);
6143 params
[12] = IROUND64(matrix
[12]);
6144 params
[13] = IROUND64(matrix
[13]);
6145 params
[14] = IROUND64(matrix
[14]);
6146 params
[15] = IROUND64(matrix
[15]);
6149 case GL_MODELVIEW_STACK_DEPTH
:
6150 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
6152 case GL_NAME_STACK_DEPTH
:
6153 params
[0] = ctx
->Select
.NameStackDepth
;
6156 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.Normalize
);
6158 case GL_PACK_ALIGNMENT
:
6159 params
[0] = ctx
->Pack
.Alignment
;
6161 case GL_PACK_LSB_FIRST
:
6162 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.LsbFirst
);
6164 case GL_PACK_ROW_LENGTH
:
6165 params
[0] = ctx
->Pack
.RowLength
;
6167 case GL_PACK_SKIP_PIXELS
:
6168 params
[0] = ctx
->Pack
.SkipPixels
;
6170 case GL_PACK_SKIP_ROWS
:
6171 params
[0] = ctx
->Pack
.SkipRows
;
6173 case GL_PACK_SWAP_BYTES
:
6174 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.SwapBytes
);
6176 case GL_PACK_SKIP_IMAGES_EXT
:
6177 params
[0] = ctx
->Pack
.SkipImages
;
6179 case GL_PACK_IMAGE_HEIGHT_EXT
:
6180 params
[0] = ctx
->Pack
.ImageHeight
;
6182 case GL_PACK_INVERT_MESA
:
6183 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.Invert
);
6185 case GL_PERSPECTIVE_CORRECTION_HINT
:
6186 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PerspectiveCorrection
);
6188 case GL_PIXEL_MAP_A_TO_A_SIZE
:
6189 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
6191 case GL_PIXEL_MAP_B_TO_B_SIZE
:
6192 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
6194 case GL_PIXEL_MAP_G_TO_G_SIZE
:
6195 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
6197 case GL_PIXEL_MAP_I_TO_A_SIZE
:
6198 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
6200 case GL_PIXEL_MAP_I_TO_B_SIZE
:
6201 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
6203 case GL_PIXEL_MAP_I_TO_G_SIZE
:
6204 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
6206 case GL_PIXEL_MAP_I_TO_I_SIZE
:
6207 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
6209 case GL_PIXEL_MAP_I_TO_R_SIZE
:
6210 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
6212 case GL_PIXEL_MAP_R_TO_R_SIZE
:
6213 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
6215 case GL_PIXEL_MAP_S_TO_S_SIZE
:
6216 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
6219 params
[0] = IROUND64(ctx
->Point
.Size
);
6221 case GL_POINT_SIZE_GRANULARITY
:
6222 params
[0] = IROUND64(ctx
->Const
.PointSizeGranularity
);
6224 case GL_POINT_SIZE_RANGE
:
6225 params
[0] = IROUND64(ctx
->Const
.MinPointSizeAA
);
6226 params
[1] = IROUND64(ctx
->Const
.MaxPointSizeAA
);
6228 case GL_ALIASED_POINT_SIZE_RANGE
:
6229 params
[0] = IROUND64(ctx
->Const
.MinPointSize
);
6230 params
[1] = IROUND64(ctx
->Const
.MaxPointSize
);
6232 case GL_POINT_SMOOTH
:
6233 params
[0] = BOOLEAN_TO_INT64(ctx
->Point
.SmoothFlag
);
6235 case GL_POINT_SMOOTH_HINT
:
6236 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PointSmooth
);
6238 case GL_POINT_SIZE_MIN_EXT
:
6239 params
[0] = IROUND64(ctx
->Point
.MinSize
);
6241 case GL_POINT_SIZE_MAX_EXT
:
6242 params
[0] = IROUND64(ctx
->Point
.MaxSize
);
6244 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
6245 params
[0] = IROUND64(ctx
->Point
.Threshold
);
6247 case GL_DISTANCE_ATTENUATION_EXT
:
6248 params
[0] = IROUND64(ctx
->Point
.Params
[0]);
6249 params
[1] = IROUND64(ctx
->Point
.Params
[1]);
6250 params
[2] = IROUND64(ctx
->Point
.Params
[2]);
6252 case GL_POLYGON_MODE
:
6253 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.FrontMode
);
6254 params
[1] = ENUM_TO_INT64(ctx
->Polygon
.BackMode
);
6256 case GL_POLYGON_OFFSET_BIAS_EXT
:
6257 params
[0] = IROUND64(ctx
->Polygon
.OffsetUnits
);
6259 case GL_POLYGON_OFFSET_FACTOR
:
6260 params
[0] = IROUND64(ctx
->Polygon
.OffsetFactor
);
6262 case GL_POLYGON_OFFSET_UNITS
:
6263 params
[0] = IROUND64(ctx
->Polygon
.OffsetUnits
);
6265 case GL_POLYGON_OFFSET_POINT
:
6266 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetPoint
);
6268 case GL_POLYGON_OFFSET_LINE
:
6269 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetLine
);
6271 case GL_POLYGON_OFFSET_FILL
:
6272 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetFill
);
6274 case GL_POLYGON_SMOOTH
:
6275 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.SmoothFlag
);
6277 case GL_POLYGON_SMOOTH_HINT
:
6278 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PolygonSmooth
);
6280 case GL_POLYGON_STIPPLE
:
6281 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.StippleFlag
);
6283 case GL_PROJECTION_MATRIX
:
6285 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
6286 params
[0] = IROUND64(matrix
[0]);
6287 params
[1] = IROUND64(matrix
[1]);
6288 params
[2] = IROUND64(matrix
[2]);
6289 params
[3] = IROUND64(matrix
[3]);
6290 params
[4] = IROUND64(matrix
[4]);
6291 params
[5] = IROUND64(matrix
[5]);
6292 params
[6] = IROUND64(matrix
[6]);
6293 params
[7] = IROUND64(matrix
[7]);
6294 params
[8] = IROUND64(matrix
[8]);
6295 params
[9] = IROUND64(matrix
[9]);
6296 params
[10] = IROUND64(matrix
[10]);
6297 params
[11] = IROUND64(matrix
[11]);
6298 params
[12] = IROUND64(matrix
[12]);
6299 params
[13] = IROUND64(matrix
[13]);
6300 params
[14] = IROUND64(matrix
[14]);
6301 params
[15] = IROUND64(matrix
[15]);
6304 case GL_PROJECTION_STACK_DEPTH
:
6305 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
6307 case GL_READ_BUFFER
:
6308 params
[0] = ENUM_TO_INT64(ctx
->ReadBuffer
->ColorReadBuffer
);
6311 params
[0] = IROUND64(ctx
->Pixel
.RedBias
);
6314 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
6317 params
[0] = IROUND64(ctx
->Pixel
.RedScale
);
6319 case GL_RENDER_MODE
:
6320 params
[0] = ENUM_TO_INT64(ctx
->RenderMode
);
6322 case GL_RESCALE_NORMAL
:
6323 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.RescaleNormals
);
6326 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.rgbMode
);
6328 case GL_SCISSOR_BOX
:
6329 params
[0] = ctx
->Scissor
.X
;
6330 params
[1] = ctx
->Scissor
.Y
;
6331 params
[2] = ctx
->Scissor
.Width
;
6332 params
[3] = ctx
->Scissor
.Height
;
6334 case GL_SCISSOR_TEST
:
6335 params
[0] = BOOLEAN_TO_INT64(ctx
->Scissor
.Enabled
);
6337 case GL_SELECTION_BUFFER_SIZE
:
6338 params
[0] = ctx
->Select
.BufferSize
;
6340 case GL_SHADE_MODEL
:
6341 params
[0] = ENUM_TO_INT64(ctx
->Light
.ShadeModel
);
6343 case GL_SHARED_TEXTURE_PALETTE_EXT
:
6344 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.SharedPalette
);
6346 case GL_STENCIL_BITS
:
6347 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
6349 case GL_STENCIL_CLEAR_VALUE
:
6350 params
[0] = ctx
->Stencil
.Clear
;
6352 case GL_STENCIL_FAIL
:
6353 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
6355 case GL_STENCIL_FUNC
:
6356 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
6358 case GL_STENCIL_PASS_DEPTH_FAIL
:
6359 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
6361 case GL_STENCIL_PASS_DEPTH_PASS
:
6362 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
6364 case GL_STENCIL_REF
:
6365 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
6367 case GL_STENCIL_TEST
:
6368 params
[0] = BOOLEAN_TO_INT64(ctx
->Stencil
.Enabled
);
6370 case GL_STENCIL_VALUE_MASK
:
6371 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
6373 case GL_STENCIL_WRITEMASK
:
6374 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
6377 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.stereoMode
);
6379 case GL_SUBPIXEL_BITS
:
6380 params
[0] = ctx
->Const
.SubPixelBits
;
6383 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D
));
6386 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D
));
6389 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_3D
));
6391 case GL_TEXTURE_1D_ARRAY_EXT
:
6392 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6393 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
6395 case GL_TEXTURE_2D_ARRAY_EXT
:
6396 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6397 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
6399 case GL_TEXTURE_BINDING_1D
:
6400 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
;
6402 case GL_TEXTURE_BINDING_2D
:
6403 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
;
6405 case GL_TEXTURE_BINDING_3D
:
6406 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
;
6408 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
6409 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6410 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
;
6412 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
6413 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6414 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
;
6416 case GL_TEXTURE_GEN_S
:
6417 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
6419 case GL_TEXTURE_GEN_T
:
6420 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
6422 case GL_TEXTURE_GEN_R
:
6423 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
6425 case GL_TEXTURE_GEN_Q
:
6426 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
6428 case GL_TEXTURE_MATRIX
:
6430 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
6431 params
[0] = IROUND64(matrix
[0]);
6432 params
[1] = IROUND64(matrix
[1]);
6433 params
[2] = IROUND64(matrix
[2]);
6434 params
[3] = IROUND64(matrix
[3]);
6435 params
[4] = IROUND64(matrix
[4]);
6436 params
[5] = IROUND64(matrix
[5]);
6437 params
[6] = IROUND64(matrix
[6]);
6438 params
[7] = IROUND64(matrix
[7]);
6439 params
[8] = IROUND64(matrix
[8]);
6440 params
[9] = IROUND64(matrix
[9]);
6441 params
[10] = IROUND64(matrix
[10]);
6442 params
[11] = IROUND64(matrix
[11]);
6443 params
[12] = IROUND64(matrix
[12]);
6444 params
[13] = IROUND64(matrix
[13]);
6445 params
[14] = IROUND64(matrix
[14]);
6446 params
[15] = IROUND64(matrix
[15]);
6449 case GL_TEXTURE_STACK_DEPTH
:
6450 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
6452 case GL_UNPACK_ALIGNMENT
:
6453 params
[0] = ctx
->Unpack
.Alignment
;
6455 case GL_UNPACK_LSB_FIRST
:
6456 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.LsbFirst
);
6458 case GL_UNPACK_ROW_LENGTH
:
6459 params
[0] = ctx
->Unpack
.RowLength
;
6461 case GL_UNPACK_SKIP_PIXELS
:
6462 params
[0] = ctx
->Unpack
.SkipPixels
;
6464 case GL_UNPACK_SKIP_ROWS
:
6465 params
[0] = ctx
->Unpack
.SkipRows
;
6467 case GL_UNPACK_SWAP_BYTES
:
6468 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.SwapBytes
);
6470 case GL_UNPACK_SKIP_IMAGES_EXT
:
6471 params
[0] = ctx
->Unpack
.SkipImages
;
6473 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
6474 params
[0] = ctx
->Unpack
.ImageHeight
;
6476 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
6477 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.ClientStorage
);
6480 params
[0] = ctx
->Viewport
.X
;
6481 params
[1] = ctx
->Viewport
.Y
;
6482 params
[2] = ctx
->Viewport
.Width
;
6483 params
[3] = ctx
->Viewport
.Height
;
6486 params
[0] = IROUND64(ctx
->Pixel
.ZoomX
);
6489 params
[0] = IROUND64(ctx
->Pixel
.ZoomY
);
6491 case GL_VERTEX_ARRAY
:
6492 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
6494 case GL_VERTEX_ARRAY_SIZE
:
6495 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
6497 case GL_VERTEX_ARRAY_TYPE
:
6498 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Vertex
.Type
);
6500 case GL_VERTEX_ARRAY_STRIDE
:
6501 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
6503 case GL_VERTEX_ARRAY_COUNT_EXT
:
6506 case GL_NORMAL_ARRAY
:
6507 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
6509 case GL_NORMAL_ARRAY_TYPE
:
6510 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Normal
.Type
);
6512 case GL_NORMAL_ARRAY_STRIDE
:
6513 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
6515 case GL_NORMAL_ARRAY_COUNT_EXT
:
6518 case GL_COLOR_ARRAY
:
6519 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Color
.Enabled
);
6521 case GL_COLOR_ARRAY_SIZE
:
6522 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
6524 case GL_COLOR_ARRAY_TYPE
:
6525 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Color
.Type
);
6527 case GL_COLOR_ARRAY_STRIDE
:
6528 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
6530 case GL_COLOR_ARRAY_COUNT_EXT
:
6533 case GL_INDEX_ARRAY
:
6534 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Index
.Enabled
);
6536 case GL_INDEX_ARRAY_TYPE
:
6537 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Index
.Type
);
6539 case GL_INDEX_ARRAY_STRIDE
:
6540 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
6542 case GL_INDEX_ARRAY_COUNT_EXT
:
6545 case GL_TEXTURE_COORD_ARRAY
:
6546 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
6548 case GL_TEXTURE_COORD_ARRAY_SIZE
:
6549 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
6551 case GL_TEXTURE_COORD_ARRAY_TYPE
:
6552 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
6554 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
6555 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
6557 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
6560 case GL_EDGE_FLAG_ARRAY
:
6561 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
6563 case GL_EDGE_FLAG_ARRAY_STRIDE
:
6564 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
6566 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
6569 case GL_MAX_TEXTURE_UNITS_ARB
:
6570 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6571 params
[0] = ctx
->Const
.MaxTextureUnits
;
6573 case GL_ACTIVE_TEXTURE_ARB
:
6574 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6575 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
6577 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
6578 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6579 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
6581 case GL_TEXTURE_CUBE_MAP_ARB
:
6582 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6583 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
6585 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
6586 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6587 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
;
6589 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
6590 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6591 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
6593 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
6594 params
[0] = ctx
->Hint
.TextureCompression
;
6596 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
6597 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
6599 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
6602 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
6604 for (i
= 0; i
< n
; i
++)
6605 params
[i
] = ENUM_TO_INT64(formats
[i
]);
6608 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
6609 CHECK_EXT1(EXT_compiled_vertex_array
, "GetInteger64v");
6610 params
[0] = ctx
->Array
.LockFirst
;
6612 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
6613 CHECK_EXT1(EXT_compiled_vertex_array
, "GetInteger64v");
6614 params
[0] = ctx
->Array
.LockCount
;
6616 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
6618 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
6619 params
[0] = IROUND64(matrix
[0]);
6620 params
[1] = IROUND64(matrix
[4]);
6621 params
[2] = IROUND64(matrix
[8]);
6622 params
[3] = IROUND64(matrix
[12]);
6623 params
[4] = IROUND64(matrix
[1]);
6624 params
[5] = IROUND64(matrix
[5]);
6625 params
[6] = IROUND64(matrix
[9]);
6626 params
[7] = IROUND64(matrix
[13]);
6627 params
[8] = IROUND64(matrix
[2]);
6628 params
[9] = IROUND64(matrix
[6]);
6629 params
[10] = IROUND64(matrix
[10]);
6630 params
[11] = IROUND64(matrix
[14]);
6631 params
[12] = IROUND64(matrix
[3]);
6632 params
[13] = IROUND64(matrix
[7]);
6633 params
[14] = IROUND64(matrix
[11]);
6634 params
[15] = IROUND64(matrix
[15]);
6637 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
6639 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
6640 params
[0] = IROUND64(matrix
[0]);
6641 params
[1] = IROUND64(matrix
[4]);
6642 params
[2] = IROUND64(matrix
[8]);
6643 params
[3] = IROUND64(matrix
[12]);
6644 params
[4] = IROUND64(matrix
[1]);
6645 params
[5] = IROUND64(matrix
[5]);
6646 params
[6] = IROUND64(matrix
[9]);
6647 params
[7] = IROUND64(matrix
[13]);
6648 params
[8] = IROUND64(matrix
[2]);
6649 params
[9] = IROUND64(matrix
[6]);
6650 params
[10] = IROUND64(matrix
[10]);
6651 params
[11] = IROUND64(matrix
[14]);
6652 params
[12] = IROUND64(matrix
[3]);
6653 params
[13] = IROUND64(matrix
[7]);
6654 params
[14] = IROUND64(matrix
[11]);
6655 params
[15] = IROUND64(matrix
[15]);
6658 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
6660 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
6661 params
[0] = IROUND64(matrix
[0]);
6662 params
[1] = IROUND64(matrix
[4]);
6663 params
[2] = IROUND64(matrix
[8]);
6664 params
[3] = IROUND64(matrix
[12]);
6665 params
[4] = IROUND64(matrix
[1]);
6666 params
[5] = IROUND64(matrix
[5]);
6667 params
[6] = IROUND64(matrix
[9]);
6668 params
[7] = IROUND64(matrix
[13]);
6669 params
[8] = IROUND64(matrix
[2]);
6670 params
[9] = IROUND64(matrix
[6]);
6671 params
[10] = IROUND64(matrix
[10]);
6672 params
[11] = IROUND64(matrix
[14]);
6673 params
[12] = IROUND64(matrix
[3]);
6674 params
[13] = IROUND64(matrix
[7]);
6675 params
[14] = IROUND64(matrix
[11]);
6676 params
[15] = IROUND64(matrix
[15]);
6679 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
6681 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
6682 params
[0] = IROUND64(matrix
[0]);
6683 params
[1] = IROUND64(matrix
[4]);
6684 params
[2] = IROUND64(matrix
[8]);
6685 params
[3] = IROUND64(matrix
[12]);
6686 params
[4] = IROUND64(matrix
[1]);
6687 params
[5] = IROUND64(matrix
[5]);
6688 params
[6] = IROUND64(matrix
[9]);
6689 params
[7] = IROUND64(matrix
[13]);
6690 params
[8] = IROUND64(matrix
[2]);
6691 params
[9] = IROUND64(matrix
[6]);
6692 params
[10] = IROUND64(matrix
[10]);
6693 params
[11] = IROUND64(matrix
[14]);
6694 params
[12] = IROUND64(matrix
[3]);
6695 params
[13] = IROUND64(matrix
[7]);
6696 params
[14] = IROUND64(matrix
[11]);
6697 params
[15] = IROUND64(matrix
[15]);
6700 case GL_COLOR_MATRIX_SGI
:
6702 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
6703 params
[0] = IROUND64(matrix
[0]);
6704 params
[1] = IROUND64(matrix
[1]);
6705 params
[2] = IROUND64(matrix
[2]);
6706 params
[3] = IROUND64(matrix
[3]);
6707 params
[4] = IROUND64(matrix
[4]);
6708 params
[5] = IROUND64(matrix
[5]);
6709 params
[6] = IROUND64(matrix
[6]);
6710 params
[7] = IROUND64(matrix
[7]);
6711 params
[8] = IROUND64(matrix
[8]);
6712 params
[9] = IROUND64(matrix
[9]);
6713 params
[10] = IROUND64(matrix
[10]);
6714 params
[11] = IROUND64(matrix
[11]);
6715 params
[12] = IROUND64(matrix
[12]);
6716 params
[13] = IROUND64(matrix
[13]);
6717 params
[14] = IROUND64(matrix
[14]);
6718 params
[15] = IROUND64(matrix
[15]);
6721 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
6722 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
6724 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
6725 params
[0] = MAX_COLOR_STACK_DEPTH
;
6727 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
6728 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[0]);
6730 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
6731 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[1]);
6733 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
6734 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[2]);
6736 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
6737 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[3]);
6739 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
6740 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[0]);
6742 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
6743 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[1]);
6745 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
6746 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[2]);
6748 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
6749 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[3]);
6751 case GL_CONVOLUTION_1D_EXT
:
6752 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6753 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Convolution1DEnabled
);
6755 case GL_CONVOLUTION_2D_EXT
:
6756 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6757 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Convolution2DEnabled
);
6759 case GL_SEPARABLE_2D_EXT
:
6760 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6761 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Separable2DEnabled
);
6763 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
6764 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6765 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[0]);
6767 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
6768 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6769 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[1]);
6771 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
6772 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6773 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[2]);
6775 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
6776 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6777 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[3]);
6779 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
6780 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6781 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[0]);
6783 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
6784 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6785 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[1]);
6787 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
6788 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6789 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[2]);
6791 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
6792 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6793 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[3]);
6796 CHECK_EXT1(EXT_histogram
, "GetInteger64v");
6797 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.HistogramEnabled
);
6800 CHECK_EXT1(EXT_histogram
, "GetInteger64v");
6801 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MinMaxEnabled
);
6803 case GL_COLOR_TABLE_SGI
:
6804 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6805 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
6807 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
6808 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6809 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
6811 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
6812 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6813 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
6815 case GL_TEXTURE_COLOR_TABLE_SGI
:
6816 CHECK_EXT1(SGI_texture_color_table
, "GetInteger64v");
6817 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
6819 case GL_COLOR_SUM_EXT
:
6820 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetInteger64v");
6821 params
[0] = BOOLEAN_TO_INT64(ctx
->Fog
.ColorSumEnabled
);
6823 case GL_CURRENT_SECONDARY_COLOR_EXT
:
6824 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6826 FLUSH_CURRENT(ctx
, 0);
6827 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
6828 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
6829 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
6830 params
[3] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
6833 case GL_SECONDARY_COLOR_ARRAY_EXT
:
6834 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6835 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
6837 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
6838 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6839 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
6841 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
6842 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6843 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
6845 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
6846 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6847 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
6849 case GL_CURRENT_FOG_COORDINATE_EXT
:
6850 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6852 FLUSH_CURRENT(ctx
, 0);
6853 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
6856 case GL_FOG_COORDINATE_ARRAY_EXT
:
6857 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6858 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
6860 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
6861 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6862 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
6864 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
6865 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6866 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
6868 case GL_FOG_COORDINATE_SOURCE_EXT
:
6869 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6870 params
[0] = ENUM_TO_INT64(ctx
->Fog
.FogCoordinateSource
);
6872 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
6873 CHECK_EXT1(EXT_texture_lod_bias
, "GetInteger64v");
6874 params
[0] = IROUND64(ctx
->Const
.MaxTextureLodBias
);
6876 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
6877 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetInteger64v");
6878 params
[0] = IROUND64(ctx
->Const
.MaxTextureMaxAnisotropy
);
6880 case GL_MULTISAMPLE_ARB
:
6881 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.Enabled
);
6883 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
6884 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleAlphaToCoverage
);
6886 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
6887 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleAlphaToOne
);
6889 case GL_SAMPLE_COVERAGE_ARB
:
6890 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleCoverage
);
6892 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
6893 params
[0] = IROUND64(ctx
->Multisample
.SampleCoverageValue
);
6895 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
6896 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleCoverageInvert
);
6898 case GL_SAMPLE_BUFFERS_ARB
:
6899 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
6901 case GL_SAMPLES_ARB
:
6902 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
6904 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
6905 CHECK_EXT1(IBM_rasterpos_clip
, "GetInteger64v");
6906 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.RasterPositionUnclipped
);
6908 case GL_POINT_SPRITE_NV
:
6909 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetInteger64v");
6910 params
[0] = BOOLEAN_TO_INT64(ctx
->Point
.PointSprite
);
6912 case GL_POINT_SPRITE_R_MODE_NV
:
6913 CHECK_EXT1(NV_point_sprite
, "GetInteger64v");
6914 params
[0] = ENUM_TO_INT64(ctx
->Point
.SpriteRMode
);
6916 case GL_POINT_SPRITE_COORD_ORIGIN
:
6917 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetInteger64v");
6918 params
[0] = ENUM_TO_INT64(ctx
->Point
.SpriteOrigin
);
6920 case GL_GENERATE_MIPMAP_HINT_SGIS
:
6921 CHECK_EXT1(SGIS_generate_mipmap
, "GetInteger64v");
6922 params
[0] = ENUM_TO_INT64(ctx
->Hint
.GenerateMipmap
);
6924 case GL_VERTEX_PROGRAM_BINDING_NV
:
6925 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6926 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
6928 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
6929 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6930 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
6932 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
6933 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6934 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
6936 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
6937 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6938 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
6940 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
6941 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6942 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
6944 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
6945 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6946 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
6948 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
6949 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6950 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
6952 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
6953 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6954 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
6956 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
6957 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6958 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
6960 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
6961 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6962 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
6964 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
6965 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6966 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
6968 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
6969 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6970 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
6972 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
6973 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6974 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
6976 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
6977 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6978 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
6980 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
6981 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6982 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
6984 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
6985 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6986 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
6988 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
6989 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6990 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
6992 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
6993 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6994 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[0]);
6996 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
6997 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6998 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[1]);
7000 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
7001 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7002 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[2]);
7004 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
7005 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7006 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[3]);
7008 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
7009 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7010 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[4]);
7012 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
7013 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7014 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[5]);
7016 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
7017 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7018 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[6]);
7020 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
7021 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7022 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[7]);
7024 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
7025 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7026 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[8]);
7028 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
7029 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7030 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[9]);
7032 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
7033 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7034 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[10]);
7036 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
7037 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7038 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[11]);
7040 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
7041 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7042 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[12]);
7044 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
7045 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7046 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[13]);
7048 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
7049 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7050 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[14]);
7052 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
7053 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7054 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[15]);
7056 case GL_FRAGMENT_PROGRAM_NV
:
7057 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7058 params
[0] = BOOLEAN_TO_INT64(ctx
->FragmentProgram
.Enabled
);
7060 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
7061 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7062 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
7064 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
7065 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7066 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
7068 case GL_TEXTURE_RECTANGLE_NV
:
7069 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7070 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
7072 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
7073 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7074 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
;
7076 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
7077 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7078 params
[0] = ctx
->Const
.MaxTextureRectSize
;
7080 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
7081 CHECK_EXT1(EXT_stencil_two_side
, "GetInteger64v");
7082 params
[0] = BOOLEAN_TO_INT64(ctx
->Stencil
.TestTwoSide
);
7084 case GL_ACTIVE_STENCIL_FACE_EXT
:
7085 CHECK_EXT1(EXT_stencil_two_side
, "GetInteger64v");
7086 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
7088 case GL_MAX_SHININESS_NV
:
7089 CHECK_EXT1(NV_light_max_exponent
, "GetInteger64v");
7090 params
[0] = IROUND64(ctx
->Const
.MaxShininess
);
7092 case GL_MAX_SPOT_EXPONENT_NV
:
7093 CHECK_EXT1(NV_light_max_exponent
, "GetInteger64v");
7094 params
[0] = IROUND64(ctx
->Const
.MaxSpotExponent
);
7096 case GL_ARRAY_BUFFER_BINDING_ARB
:
7097 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
7099 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
7100 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
7102 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
7103 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
7105 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
7106 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
7108 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
7109 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
7111 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
7112 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
7114 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
7115 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
7117 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
7118 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
7120 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
7121 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
7123 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
7124 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
7126 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
7127 CHECK_EXT1(EXT_pixel_buffer_object
, "GetInteger64v");
7128 params
[0] = ctx
->Pack
.BufferObj
->Name
;
7130 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
7131 CHECK_EXT1(EXT_pixel_buffer_object
, "GetInteger64v");
7132 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
7134 case GL_VERTEX_PROGRAM_ARB
:
7135 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7136 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.Enabled
);
7138 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
7139 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7140 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.PointSizeEnabled
);
7142 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
7143 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7144 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.TwoSideEnabled
);
7146 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
7147 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7148 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
7150 case GL_MAX_PROGRAM_MATRICES_ARB
:
7151 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7152 params
[0] = ctx
->Const
.MaxProgramMatrices
;
7154 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
7155 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7156 params
[0] = BOOLEAN_TO_INT64(ctx
->CurrentStack
->Depth
+ 1);
7158 case GL_CURRENT_MATRIX_ARB
:
7159 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7161 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
7162 params
[0] = IROUND64(matrix
[0]);
7163 params
[1] = IROUND64(matrix
[1]);
7164 params
[2] = IROUND64(matrix
[2]);
7165 params
[3] = IROUND64(matrix
[3]);
7166 params
[4] = IROUND64(matrix
[4]);
7167 params
[5] = IROUND64(matrix
[5]);
7168 params
[6] = IROUND64(matrix
[6]);
7169 params
[7] = IROUND64(matrix
[7]);
7170 params
[8] = IROUND64(matrix
[8]);
7171 params
[9] = IROUND64(matrix
[9]);
7172 params
[10] = IROUND64(matrix
[10]);
7173 params
[11] = IROUND64(matrix
[11]);
7174 params
[12] = IROUND64(matrix
[12]);
7175 params
[13] = IROUND64(matrix
[13]);
7176 params
[14] = IROUND64(matrix
[14]);
7177 params
[15] = IROUND64(matrix
[15]);
7180 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
7181 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetInteger64v");
7183 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
7184 params
[0] = IROUND64(matrix
[0]);
7185 params
[1] = IROUND64(matrix
[4]);
7186 params
[2] = IROUND64(matrix
[8]);
7187 params
[3] = IROUND64(matrix
[12]);
7188 params
[4] = IROUND64(matrix
[1]);
7189 params
[5] = IROUND64(matrix
[5]);
7190 params
[6] = IROUND64(matrix
[9]);
7191 params
[7] = IROUND64(matrix
[13]);
7192 params
[8] = IROUND64(matrix
[2]);
7193 params
[9] = IROUND64(matrix
[6]);
7194 params
[10] = IROUND64(matrix
[10]);
7195 params
[11] = IROUND64(matrix
[14]);
7196 params
[12] = IROUND64(matrix
[3]);
7197 params
[13] = IROUND64(matrix
[7]);
7198 params
[14] = IROUND64(matrix
[11]);
7199 params
[15] = IROUND64(matrix
[15]);
7202 case GL_MAX_VERTEX_ATTRIBS_ARB
:
7203 CHECK_EXT1(ARB_vertex_program
, "GetInteger64v");
7204 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
7206 case GL_PROGRAM_ERROR_POSITION_ARB
:
7207 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetInteger64v");
7208 params
[0] = ctx
->Program
.ErrorPos
;
7210 case GL_FRAGMENT_PROGRAM_ARB
:
7211 CHECK_EXT1(ARB_fragment_program
, "GetInteger64v");
7212 params
[0] = BOOLEAN_TO_INT64(ctx
->FragmentProgram
.Enabled
);
7214 case GL_MAX_TEXTURE_COORDS_ARB
:
7215 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7216 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
7218 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
7219 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7220 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
7222 case GL_DEPTH_BOUNDS_TEST_EXT
:
7223 CHECK_EXT1(EXT_depth_bounds_test
, "GetInteger64v");
7224 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.BoundsTest
);
7226 case GL_DEPTH_BOUNDS_EXT
:
7227 CHECK_EXT1(EXT_depth_bounds_test
, "GetInteger64v");
7228 params
[0] = IROUND64(ctx
->Depth
.BoundsMin
);
7229 params
[1] = IROUND64(ctx
->Depth
.BoundsMax
);
7231 case GL_DEPTH_CLAMP
:
7232 CHECK_EXT1(ARB_depth_clamp
, "GetInteger64v");
7233 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.DepthClamp
);
7235 case GL_MAX_DRAW_BUFFERS_ARB
:
7236 params
[0] = ctx
->Const
.MaxDrawBuffers
;
7238 case GL_DRAW_BUFFER0_ARB
:
7239 params
[0] = ENUM_TO_INT64(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
7241 case GL_DRAW_BUFFER1_ARB
:
7244 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7245 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7248 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
7249 params
[0] = ENUM_TO_INT64(buffer
);
7252 case GL_DRAW_BUFFER2_ARB
:
7255 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7256 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7259 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
7260 params
[0] = ENUM_TO_INT64(buffer
);
7263 case GL_DRAW_BUFFER3_ARB
:
7266 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7267 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7270 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
7271 params
[0] = ENUM_TO_INT64(buffer
);
7274 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
7275 CHECK_EXT1(OES_read_format
, "GetInteger64v");
7276 params
[0] = ctx
->Const
.ColorReadType
;
7278 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
7279 CHECK_EXT1(OES_read_format
, "GetInteger64v");
7280 params
[0] = ctx
->Const
.ColorReadFormat
;
7282 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
7283 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7286 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
7287 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7290 case GL_NUM_PASSES_ATI
:
7291 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7294 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
7295 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7298 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
7299 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7302 case GL_COLOR_ALPHA_PAIRING_ATI
:
7303 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7304 params
[0] = BOOLEAN_TO_INT64(GL_TRUE
);
7306 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
7307 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7310 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
7311 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7314 case GL_STENCIL_BACK_FUNC
:
7315 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.Function
[1]);
7317 case GL_STENCIL_BACK_VALUE_MASK
:
7318 params
[0] = ctx
->Stencil
.ValueMask
[1];
7320 case GL_STENCIL_BACK_WRITEMASK
:
7321 params
[0] = ctx
->Stencil
.WriteMask
[1];
7323 case GL_STENCIL_BACK_REF
:
7324 params
[0] = ctx
->Stencil
.Ref
[1];
7326 case GL_STENCIL_BACK_FAIL
:
7327 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.FailFunc
[1]);
7329 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
7330 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZFailFunc
[1]);
7332 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
7333 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZPassFunc
[1]);
7335 case GL_FRAMEBUFFER_BINDING_EXT
:
7336 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7337 params
[0] = ctx
->DrawBuffer
->Name
;
7339 case GL_RENDERBUFFER_BINDING_EXT
:
7340 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7341 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
7343 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
7344 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7345 params
[0] = ctx
->Const
.MaxColorAttachments
;
7347 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
7348 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7349 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
7351 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
7352 CHECK_EXT1(EXT_framebuffer_blit
, "GetInteger64v");
7353 params
[0] = ctx
->ReadBuffer
->Name
;
7355 case GL_PROVOKING_VERTEX_EXT
:
7356 CHECK_EXT1(EXT_provoking_vertex
, "GetInteger64v");
7357 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.ProvokingVertex
);
7359 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
7360 CHECK_EXT1(EXT_provoking_vertex
, "GetInteger64v");
7361 params
[0] = BOOLEAN_TO_INT64(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
7363 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
7364 CHECK_EXT1(ARB_fragment_shader
, "GetInteger64v");
7365 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
7367 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
7368 CHECK_EXT1(ARB_fragment_shader
, "GetInteger64v");
7369 params
[0] = ENUM_TO_INT64(ctx
->Hint
.FragmentShaderDerivative
);
7371 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
7372 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7373 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
7375 case GL_MAX_VARYING_FLOATS_ARB
:
7376 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7377 params
[0] = ctx
->Const
.MaxVarying
* 4;
7379 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
7380 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7381 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
7383 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
7384 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7385 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
7387 case GL_CURRENT_PROGRAM
:
7388 CHECK_EXT1(ARB_shader_objects
, "GetInteger64v");
7389 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
7391 case GL_MAX_SAMPLES
:
7392 CHECK_EXT1(ARB_framebuffer_object
, "GetInteger64v");
7393 params
[0] = ctx
->Const
.MaxSamples
;
7395 case GL_VERTEX_ARRAY_BINDING_APPLE
:
7396 CHECK_EXT1(APPLE_vertex_array_object
, "GetInteger64v");
7397 params
[0] = ctx
->Array
.ArrayObj
->Name
;
7399 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
7400 CHECK_EXT1(ARB_seamless_cube_map
, "GetInteger64v");
7401 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.CubeMapSeamless
);
7403 case GL_MAX_SERVER_WAIT_TIMEOUT
:
7404 CHECK_EXT1(ARB_sync
, "GetInteger64v");
7405 params
[0] = ctx
->Const
.MaxServerWaitTimeout
;
7408 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetInteger64v(pname=0x%x)", pname
);
7411 #endif /* FEATURE_ARB_sync */
7415 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
7417 const GLfloat magic
= -1234.5F
;
7424 /* Init temp array to magic numbers so we can figure out how many values
7425 * are returned by the GetFloatv() call.
7427 for (i
= 0; i
< 16; i
++)
7430 _mesa_GetFloatv(pname
, values
);
7432 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
7433 params
[i
] = (GLdouble
) values
[i
];