3 *** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
9 #include "extensions.h"
15 #include "texcompress.h"
16 #include "framebuffer.h"
19 #define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
21 #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
23 #define INT64_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
24 #define INT64_TO_INT(I) ( (GLint)((I > INT_MAX) ? INT_MAX : ((I < INT_MIN) ? INT_MIN : (I))) )
26 #define BOOLEAN_TO_INT(B) ( (GLint) (B) )
27 #define BOOLEAN_TO_INT64(B) ( (GLint64) (B) )
28 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
30 #define ENUM_TO_INT64(E) ( (GLint64) (E) )
34 * Check if named extension is enabled, if not generate error and return.
36 #define CHECK_EXT1(EXT1, FUNC) \
37 if (!ctx->Extensions.EXT1) { \
38 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
43 * Check if either of two extensions is enabled.
45 #define CHECK_EXT2(EXT1, EXT2, FUNC) \
46 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \
47 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
52 * Check if either of three extensions is enabled.
54 #define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC) \
55 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
56 !ctx->Extensions.EXT3) { \
57 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
62 * Check if either of four extensions is enabled.
64 #define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \
65 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
66 !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \
67 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
73 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
75 GET_CURRENT_CONTEXT(ctx
);
76 ASSERT_OUTSIDE_BEGIN_END(ctx
);
82 _mesa_update_state(ctx
);
84 if (ctx
->Driver
.GetBooleanv
&&
85 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
89 case GL_ACCUM_RED_BITS
:
90 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumRedBits
);
92 case GL_ACCUM_GREEN_BITS
:
93 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
95 case GL_ACCUM_BLUE_BITS
:
96 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
98 case GL_ACCUM_ALPHA_BITS
:
99 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
101 case GL_ACCUM_CLEAR_VALUE
:
102 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
103 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
104 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
105 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
108 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
111 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.alphaBits
);
114 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
117 params
[0] = ctx
->Color
.AlphaEnabled
;
119 case GL_ALPHA_TEST_FUNC
:
120 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
122 case GL_ALPHA_TEST_REF
:
123 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
125 case GL_ATTRIB_STACK_DEPTH
:
126 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
129 params
[0] = ctx
->Eval
.AutoNormal
;
132 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
135 params
[0] = (ctx
->Color
.BlendEnabled
& 1);
138 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
141 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
143 case GL_BLEND_SRC_RGB_EXT
:
144 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
146 case GL_BLEND_DST_RGB_EXT
:
147 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
149 case GL_BLEND_SRC_ALPHA_EXT
:
150 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
152 case GL_BLEND_DST_ALPHA_EXT
:
153 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
155 case GL_BLEND_EQUATION
:
156 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
158 case GL_BLEND_EQUATION_ALPHA_EXT
:
159 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
161 case GL_BLEND_COLOR_EXT
:
162 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
163 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
164 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
165 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
168 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
171 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.blueBits
);
174 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
176 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
177 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
180 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
183 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
186 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
189 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
192 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
195 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
197 case GL_COLOR_CLEAR_VALUE
:
198 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
199 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
200 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
201 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
203 case GL_COLOR_MATERIAL
:
204 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
206 case GL_COLOR_MATERIAL_FACE
:
207 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
209 case GL_COLOR_MATERIAL_PARAMETER
:
210 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
212 case GL_COLOR_WRITEMASK
:
213 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[0][RCOMP
] ? 1 : 0);
214 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[0][GCOMP
] ? 1 : 0);
215 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[0][BCOMP
] ? 1 : 0);
216 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[0][ACOMP
] ? 1 : 0);
219 params
[0] = ctx
->Polygon
.CullFlag
;
221 case GL_CULL_FACE_MODE
:
222 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
224 case GL_CURRENT_COLOR
:
226 FLUSH_CURRENT(ctx
, 0);
227 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
228 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
229 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
230 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
233 case GL_CURRENT_INDEX
:
235 FLUSH_CURRENT(ctx
, 0);
236 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
239 case GL_CURRENT_NORMAL
:
241 FLUSH_CURRENT(ctx
, 0);
242 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
243 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
244 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
247 case GL_CURRENT_RASTER_COLOR
:
248 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
249 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
250 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
251 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
253 case GL_CURRENT_RASTER_DISTANCE
:
254 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
256 case GL_CURRENT_RASTER_INDEX
:
257 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterIndex
);
259 case GL_CURRENT_RASTER_POSITION
:
260 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
261 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
262 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
263 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
265 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
266 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[0]);
267 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[1]);
268 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[2]);
269 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[3]);
271 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
273 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
274 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
275 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
276 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
277 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
280 case GL_CURRENT_RASTER_POSITION_VALID
:
281 params
[0] = ctx
->Current
.RasterPosValid
;
283 case GL_CURRENT_TEXTURE_COORDS
:
285 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
286 FLUSH_CURRENT(ctx
, 0);
287 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
288 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
289 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
290 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
294 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
297 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
299 case GL_DEPTH_CLEAR_VALUE
:
300 params
[0] = FLOAT_TO_BOOLEAN(((GLfloat
) ctx
->Depth
.Clear
));
303 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
306 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
307 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
310 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
313 params
[0] = ctx
->Depth
.Test
;
315 case GL_DEPTH_WRITEMASK
:
316 params
[0] = ctx
->Depth
.Mask
;
319 params
[0] = ctx
->Color
.DitherFlag
;
321 case GL_DOUBLEBUFFER
:
322 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
325 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
329 FLUSH_CURRENT(ctx
, 0);
330 params
[0] = (ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0);
333 case GL_FEEDBACK_BUFFER_SIZE
:
334 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
336 case GL_FEEDBACK_BUFFER_TYPE
:
337 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
340 params
[0] = ctx
->Fog
.Enabled
;
343 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
344 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
345 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
346 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
349 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
352 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
355 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
358 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
361 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
364 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
367 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
370 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
373 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
376 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
379 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
381 case GL_INDEX_CLEAR_VALUE
:
382 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
385 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
387 case GL_INDEX_OFFSET
:
388 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
391 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
393 case GL_INDEX_WRITEMASK
:
394 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
397 params
[0] = ctx
->Light
.Light
[0].Enabled
;
400 params
[0] = ctx
->Light
.Light
[1].Enabled
;
403 params
[0] = ctx
->Light
.Light
[2].Enabled
;
406 params
[0] = ctx
->Light
.Light
[3].Enabled
;
409 params
[0] = ctx
->Light
.Light
[4].Enabled
;
412 params
[0] = ctx
->Light
.Light
[5].Enabled
;
415 params
[0] = ctx
->Light
.Light
[6].Enabled
;
418 params
[0] = ctx
->Light
.Light
[7].Enabled
;
421 params
[0] = ctx
->Light
.Enabled
;
423 case GL_LIGHT_MODEL_AMBIENT
:
424 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
425 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
426 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
427 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
429 case GL_LIGHT_MODEL_COLOR_CONTROL
:
430 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
432 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
433 params
[0] = ctx
->Light
.Model
.LocalViewer
;
435 case GL_LIGHT_MODEL_TWO_SIDE
:
436 params
[0] = ctx
->Light
.Model
.TwoSide
;
439 params
[0] = ctx
->Line
.SmoothFlag
;
441 case GL_LINE_SMOOTH_HINT
:
442 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
444 case GL_LINE_STIPPLE
:
445 params
[0] = ctx
->Line
.StippleFlag
;
447 case GL_LINE_STIPPLE_PATTERN
:
448 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
450 case GL_LINE_STIPPLE_REPEAT
:
451 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
454 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
456 case GL_LINE_WIDTH_GRANULARITY
:
457 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
459 case GL_LINE_WIDTH_RANGE
:
460 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
461 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
463 case GL_ALIASED_LINE_WIDTH_RANGE
:
464 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
465 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
468 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
471 params
[0] = INT_TO_BOOLEAN((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
476 if (!ctx
->CompileFlag
)
478 else if (ctx
->ExecuteFlag
)
479 mode
= GL_COMPILE_AND_EXECUTE
;
482 params
[0] = ENUM_TO_BOOLEAN(mode
);
485 case GL_INDEX_LOGIC_OP
:
486 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
488 case GL_COLOR_LOGIC_OP
:
489 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
491 case GL_LOGIC_OP_MODE
:
492 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
494 case GL_MAP1_COLOR_4
:
495 params
[0] = ctx
->Eval
.Map1Color4
;
497 case GL_MAP1_GRID_DOMAIN
:
498 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
499 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
501 case GL_MAP1_GRID_SEGMENTS
:
502 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
505 params
[0] = ctx
->Eval
.Map1Index
;
508 params
[0] = ctx
->Eval
.Map1Normal
;
510 case GL_MAP1_TEXTURE_COORD_1
:
511 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
513 case GL_MAP1_TEXTURE_COORD_2
:
514 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
516 case GL_MAP1_TEXTURE_COORD_3
:
517 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
519 case GL_MAP1_TEXTURE_COORD_4
:
520 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
522 case GL_MAP1_VERTEX_3
:
523 params
[0] = ctx
->Eval
.Map1Vertex3
;
525 case GL_MAP1_VERTEX_4
:
526 params
[0] = ctx
->Eval
.Map1Vertex4
;
528 case GL_MAP2_COLOR_4
:
529 params
[0] = ctx
->Eval
.Map2Color4
;
531 case GL_MAP2_GRID_DOMAIN
:
532 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
533 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
534 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
535 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
537 case GL_MAP2_GRID_SEGMENTS
:
538 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
539 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
542 params
[0] = ctx
->Eval
.Map2Index
;
545 params
[0] = ctx
->Eval
.Map2Normal
;
547 case GL_MAP2_TEXTURE_COORD_1
:
548 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
550 case GL_MAP2_TEXTURE_COORD_2
:
551 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
553 case GL_MAP2_TEXTURE_COORD_3
:
554 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
556 case GL_MAP2_TEXTURE_COORD_4
:
557 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
559 case GL_MAP2_VERTEX_3
:
560 params
[0] = ctx
->Eval
.Map2Vertex3
;
562 case GL_MAP2_VERTEX_4
:
563 params
[0] = ctx
->Eval
.Map2Vertex4
;
566 params
[0] = ctx
->Pixel
.MapColorFlag
;
569 params
[0] = ctx
->Pixel
.MapStencilFlag
;
572 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
574 case GL_MAX_ATTRIB_STACK_DEPTH
:
575 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
577 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
578 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
580 case GL_MAX_CLIP_PLANES
:
581 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
583 case GL_MAX_ELEMENTS_VERTICES
:
584 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
586 case GL_MAX_ELEMENTS_INDICES
:
587 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
589 case GL_MAX_EVAL_ORDER
:
590 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
593 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
595 case GL_MAX_LIST_NESTING
:
596 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
598 case GL_MAX_MODELVIEW_STACK_DEPTH
:
599 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
601 case GL_MAX_NAME_STACK_DEPTH
:
602 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
604 case GL_MAX_PIXEL_MAP_TABLE
:
605 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
607 case GL_MAX_PROJECTION_STACK_DEPTH
:
608 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
610 case GL_MAX_TEXTURE_SIZE
:
611 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
613 case GL_MAX_3D_TEXTURE_SIZE
:
614 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
616 case GL_MAX_TEXTURE_STACK_DEPTH
:
617 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
619 case GL_MAX_VIEWPORT_DIMS
:
620 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
621 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
623 case GL_MODELVIEW_MATRIX
:
625 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
626 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
627 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
628 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
629 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
630 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
631 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
632 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
633 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
634 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
635 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
636 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
637 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
638 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
639 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
640 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
641 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
644 case GL_MODELVIEW_STACK_DEPTH
:
645 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
647 case GL_NAME_STACK_DEPTH
:
648 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
651 params
[0] = ctx
->Transform
.Normalize
;
653 case GL_PACK_ALIGNMENT
:
654 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
656 case GL_PACK_LSB_FIRST
:
657 params
[0] = ctx
->Pack
.LsbFirst
;
659 case GL_PACK_ROW_LENGTH
:
660 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
662 case GL_PACK_SKIP_PIXELS
:
663 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
665 case GL_PACK_SKIP_ROWS
:
666 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
668 case GL_PACK_SWAP_BYTES
:
669 params
[0] = ctx
->Pack
.SwapBytes
;
671 case GL_PACK_SKIP_IMAGES_EXT
:
672 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
674 case GL_PACK_IMAGE_HEIGHT_EXT
:
675 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
677 case GL_PACK_INVERT_MESA
:
678 params
[0] = ctx
->Pack
.Invert
;
680 case GL_PERSPECTIVE_CORRECTION_HINT
:
681 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
683 case GL_PIXEL_MAP_A_TO_A_SIZE
:
684 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.AtoA
.Size
);
686 case GL_PIXEL_MAP_B_TO_B_SIZE
:
687 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.BtoB
.Size
);
689 case GL_PIXEL_MAP_G_TO_G_SIZE
:
690 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.GtoG
.Size
);
692 case GL_PIXEL_MAP_I_TO_A_SIZE
:
693 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoA
.Size
);
695 case GL_PIXEL_MAP_I_TO_B_SIZE
:
696 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoB
.Size
);
698 case GL_PIXEL_MAP_I_TO_G_SIZE
:
699 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoG
.Size
);
701 case GL_PIXEL_MAP_I_TO_I_SIZE
:
702 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoI
.Size
);
704 case GL_PIXEL_MAP_I_TO_R_SIZE
:
705 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoR
.Size
);
707 case GL_PIXEL_MAP_R_TO_R_SIZE
:
708 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.RtoR
.Size
);
710 case GL_PIXEL_MAP_S_TO_S_SIZE
:
711 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.StoS
.Size
);
714 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
716 case GL_POINT_SIZE_GRANULARITY
:
717 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
719 case GL_POINT_SIZE_RANGE
:
720 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
721 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
723 case GL_ALIASED_POINT_SIZE_RANGE
:
724 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
725 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
727 case GL_POINT_SMOOTH
:
728 params
[0] = ctx
->Point
.SmoothFlag
;
730 case GL_POINT_SMOOTH_HINT
:
731 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
733 case GL_POINT_SIZE_MIN_EXT
:
734 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
736 case GL_POINT_SIZE_MAX_EXT
:
737 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
739 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
740 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
742 case GL_DISTANCE_ATTENUATION_EXT
:
743 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
744 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
745 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
747 case GL_POLYGON_MODE
:
748 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
749 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
751 case GL_POLYGON_OFFSET_BIAS_EXT
:
752 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
754 case GL_POLYGON_OFFSET_FACTOR
:
755 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
757 case GL_POLYGON_OFFSET_UNITS
:
758 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
760 case GL_POLYGON_OFFSET_POINT
:
761 params
[0] = ctx
->Polygon
.OffsetPoint
;
763 case GL_POLYGON_OFFSET_LINE
:
764 params
[0] = ctx
->Polygon
.OffsetLine
;
766 case GL_POLYGON_OFFSET_FILL
:
767 params
[0] = ctx
->Polygon
.OffsetFill
;
769 case GL_POLYGON_SMOOTH
:
770 params
[0] = ctx
->Polygon
.SmoothFlag
;
772 case GL_POLYGON_SMOOTH_HINT
:
773 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
775 case GL_POLYGON_STIPPLE
:
776 params
[0] = ctx
->Polygon
.StippleFlag
;
778 case GL_PROJECTION_MATRIX
:
780 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
781 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
782 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
783 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
784 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
785 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
786 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
787 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
788 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
789 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
790 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
791 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
792 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
793 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
794 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
795 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
796 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
799 case GL_PROJECTION_STACK_DEPTH
:
800 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
803 params
[0] = ENUM_TO_BOOLEAN(ctx
->ReadBuffer
->ColorReadBuffer
);
806 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
809 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.redBits
);
812 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
815 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
817 case GL_RESCALE_NORMAL
:
818 params
[0] = ctx
->Transform
.RescaleNormals
;
821 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
824 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
825 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
826 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
827 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
829 case GL_SCISSOR_TEST
:
830 params
[0] = ctx
->Scissor
.Enabled
;
832 case GL_SELECTION_BUFFER_SIZE
:
833 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
836 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
838 case GL_SHARED_TEXTURE_PALETTE_EXT
:
839 params
[0] = ctx
->Texture
.SharedPalette
;
841 case GL_STENCIL_BITS
:
842 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
844 case GL_STENCIL_CLEAR_VALUE
:
845 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
847 case GL_STENCIL_FAIL
:
848 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
850 case GL_STENCIL_FUNC
:
851 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
853 case GL_STENCIL_PASS_DEPTH_FAIL
:
854 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
856 case GL_STENCIL_PASS_DEPTH_PASS
:
857 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
860 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
862 case GL_STENCIL_TEST
:
863 params
[0] = ctx
->Stencil
.Enabled
;
865 case GL_STENCIL_VALUE_MASK
:
866 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
868 case GL_STENCIL_WRITEMASK
:
869 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
872 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
874 case GL_SUBPIXEL_BITS
:
875 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
878 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
881 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
884 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
886 case GL_TEXTURE_1D_ARRAY_EXT
:
887 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
888 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
);
890 case GL_TEXTURE_2D_ARRAY_EXT
:
891 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
892 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
);
894 case GL_TEXTURE_BINDING_1D
:
895 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
897 case GL_TEXTURE_BINDING_2D
:
898 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
900 case GL_TEXTURE_BINDING_3D
:
901 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
903 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
904 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
905 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
907 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
908 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
909 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
911 case GL_TEXTURE_GEN_S
:
912 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
914 case GL_TEXTURE_GEN_T
:
915 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
917 case GL_TEXTURE_GEN_R
:
918 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
920 case GL_TEXTURE_GEN_Q
:
921 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
923 case GL_TEXTURE_MATRIX
:
925 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
926 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
927 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
928 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
929 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
930 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
931 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
932 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
933 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
934 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
935 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
936 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
937 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
938 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
939 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
940 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
941 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
944 case GL_TEXTURE_STACK_DEPTH
:
945 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
947 case GL_UNPACK_ALIGNMENT
:
948 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
950 case GL_UNPACK_LSB_FIRST
:
951 params
[0] = ctx
->Unpack
.LsbFirst
;
953 case GL_UNPACK_ROW_LENGTH
:
954 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
956 case GL_UNPACK_SKIP_PIXELS
:
957 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
959 case GL_UNPACK_SKIP_ROWS
:
960 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
962 case GL_UNPACK_SWAP_BYTES
:
963 params
[0] = ctx
->Unpack
.SwapBytes
;
965 case GL_UNPACK_SKIP_IMAGES_EXT
:
966 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
968 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
969 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
971 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
972 params
[0] = ctx
->Unpack
.ClientStorage
;
975 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
976 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
977 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
978 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
981 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
984 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
986 case GL_VERTEX_ARRAY
:
987 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Enabled
;
989 case GL_VERTEX_ARRAY_SIZE
:
990 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Size
);
992 case GL_VERTEX_ARRAY_TYPE
:
993 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Type
);
995 case GL_VERTEX_ARRAY_STRIDE
:
996 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
998 case GL_VERTEX_ARRAY_COUNT_EXT
:
999 params
[0] = INT_TO_BOOLEAN(0);
1001 case GL_NORMAL_ARRAY
:
1002 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
1004 case GL_NORMAL_ARRAY_TYPE
:
1005 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Type
);
1007 case GL_NORMAL_ARRAY_STRIDE
:
1008 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Stride
);
1010 case GL_NORMAL_ARRAY_COUNT_EXT
:
1011 params
[0] = INT_TO_BOOLEAN(0);
1013 case GL_COLOR_ARRAY
:
1014 params
[0] = ctx
->Array
.ArrayObj
->Color
.Enabled
;
1016 case GL_COLOR_ARRAY_SIZE
:
1017 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Size
);
1019 case GL_COLOR_ARRAY_TYPE
:
1020 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Type
);
1022 case GL_COLOR_ARRAY_STRIDE
:
1023 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Stride
);
1025 case GL_COLOR_ARRAY_COUNT_EXT
:
1026 params
[0] = INT_TO_BOOLEAN(0);
1028 case GL_INDEX_ARRAY
:
1029 params
[0] = ctx
->Array
.ArrayObj
->Index
.Enabled
;
1031 case GL_INDEX_ARRAY_TYPE
:
1032 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Type
);
1034 case GL_INDEX_ARRAY_STRIDE
:
1035 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Stride
);
1037 case GL_INDEX_ARRAY_COUNT_EXT
:
1038 params
[0] = INT_TO_BOOLEAN(0);
1040 case GL_TEXTURE_COORD_ARRAY
:
1041 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1043 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1044 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1046 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1047 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1049 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1050 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1052 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1053 params
[0] = INT_TO_BOOLEAN(0);
1055 case GL_EDGE_FLAG_ARRAY
:
1056 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
;
1058 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1059 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
1061 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1062 params
[0] = INT_TO_BOOLEAN(0);
1064 case GL_MAX_TEXTURE_UNITS_ARB
:
1065 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1066 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1068 case GL_ACTIVE_TEXTURE_ARB
:
1069 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1070 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1072 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1073 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1074 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1076 case GL_TEXTURE_CUBE_MAP_ARB
:
1077 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1078 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1080 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1081 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1082 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
1084 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1085 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1086 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1088 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1089 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1091 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1092 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1094 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1097 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1099 for (i
= 0; i
< n
; i
++)
1100 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
1103 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1104 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1105 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1107 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1108 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1109 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1111 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1113 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1114 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1115 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1116 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1117 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1118 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1119 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1120 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1121 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1122 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1123 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1124 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1125 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1126 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1127 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1128 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1129 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1132 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1134 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1135 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1136 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1137 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1138 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1139 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1140 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1141 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1142 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1143 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1144 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1145 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1146 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1147 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1148 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1149 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1150 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1153 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1155 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1156 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1157 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1158 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1159 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1160 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1161 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1162 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1163 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1164 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1165 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1166 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1167 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1168 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1169 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1170 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1171 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1174 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1176 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1177 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1178 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1179 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1180 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1181 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1182 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1183 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1184 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1185 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1186 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1187 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1188 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1189 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1190 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1191 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1192 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1195 case GL_COLOR_MATRIX_SGI
:
1197 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1198 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1199 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1200 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1201 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1202 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1203 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1204 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1205 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1206 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1207 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1208 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1209 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1210 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1211 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1212 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1213 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1216 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1217 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1219 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1220 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1222 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1223 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1225 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1226 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1228 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1229 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1231 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1232 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1234 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1235 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1237 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1238 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1240 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1241 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1243 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1244 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1246 case GL_CONVOLUTION_1D_EXT
:
1247 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1248 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1250 case GL_CONVOLUTION_2D_EXT
:
1251 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1252 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1254 case GL_SEPARABLE_2D_EXT
:
1255 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1256 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1258 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1259 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1260 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1262 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1263 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1264 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1266 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1267 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1268 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1270 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1271 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1272 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1274 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1275 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1276 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1278 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1279 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1280 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1282 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1283 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1284 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1286 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1287 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1288 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1291 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1292 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1295 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1296 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1298 case GL_COLOR_TABLE_SGI
:
1299 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1300 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
];
1302 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1303 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1304 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
];
1306 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1307 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1308 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
];
1310 case GL_TEXTURE_COLOR_TABLE_SGI
:
1311 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1312 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1314 case GL_COLOR_SUM_EXT
:
1315 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1316 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1318 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1319 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1321 FLUSH_CURRENT(ctx
, 0);
1322 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1323 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1324 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1325 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1328 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1329 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1330 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
;
1332 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1333 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1334 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
1336 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1337 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1338 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
1340 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1341 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1342 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
1344 case GL_CURRENT_FOG_COORDINATE_EXT
:
1345 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1347 FLUSH_CURRENT(ctx
, 0);
1348 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1351 case GL_FOG_COORDINATE_ARRAY_EXT
:
1352 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1353 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Enabled
;
1355 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1356 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1357 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
1359 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1360 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1361 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
1363 case GL_FOG_COORDINATE_SOURCE_EXT
:
1364 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1365 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1367 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1368 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1369 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1371 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1372 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1373 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1375 case GL_MULTISAMPLE_ARB
:
1376 params
[0] = ctx
->Multisample
.Enabled
;
1378 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1379 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1381 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1382 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1384 case GL_SAMPLE_COVERAGE_ARB
:
1385 params
[0] = ctx
->Multisample
.SampleCoverage
;
1387 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1388 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1390 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1391 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1393 case GL_SAMPLE_BUFFERS_ARB
:
1394 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1396 case GL_SAMPLES_ARB
:
1397 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1399 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1400 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1401 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1403 case GL_POINT_SPRITE_NV
:
1404 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1405 params
[0] = ctx
->Point
.PointSprite
;
1407 case GL_POINT_SPRITE_R_MODE_NV
:
1408 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1409 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1411 case GL_POINT_SPRITE_COORD_ORIGIN
:
1412 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1413 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1415 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1416 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1417 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1419 case GL_VERTEX_PROGRAM_BINDING_NV
:
1420 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1421 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1423 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1424 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1425 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
;
1427 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1428 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1429 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
;
1431 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1432 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1433 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
;
1435 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1436 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1437 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
;
1439 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1440 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1441 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
;
1443 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1444 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1445 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
;
1447 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1448 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1449 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
;
1451 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1452 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1453 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
;
1455 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1456 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1457 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
;
1459 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1460 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1461 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
;
1463 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1464 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1465 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
;
1467 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1468 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1469 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
;
1471 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1472 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1473 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
;
1475 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1476 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1477 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
;
1479 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1480 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1481 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
;
1483 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1484 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1485 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
;
1487 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1488 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1489 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1491 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1492 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1493 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1495 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1496 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1497 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1499 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1500 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1501 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1503 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1504 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1505 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1507 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1508 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1509 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1511 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1512 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1513 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1515 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1516 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1517 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1519 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1520 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1521 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1523 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1524 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1525 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1527 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1528 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1529 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1531 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1532 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1533 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1535 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1536 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1537 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1539 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1540 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1541 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1543 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1544 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1545 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1547 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1548 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1549 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1551 case GL_FRAGMENT_PROGRAM_NV
:
1552 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1553 params
[0] = ctx
->FragmentProgram
.Enabled
;
1555 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1556 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1557 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1559 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1560 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1561 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1563 case GL_TEXTURE_RECTANGLE_NV
:
1564 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1565 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1567 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1568 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1569 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
1571 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1572 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1573 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1575 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1576 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1577 params
[0] = ctx
->Stencil
.TestTwoSide
;
1579 case GL_ACTIVE_STENCIL_FACE_EXT
:
1580 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1581 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1583 case GL_MAX_SHININESS_NV
:
1584 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1585 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1587 case GL_MAX_SPOT_EXPONENT_NV
:
1588 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1589 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1591 case GL_ARRAY_BUFFER_BINDING_ARB
:
1592 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1594 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1595 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
1597 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1598 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
1600 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1601 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
1603 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1604 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
1606 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1607 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1609 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1610 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
1612 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1613 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
1615 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1616 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
1618 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1619 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1621 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1622 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1623 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1625 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1626 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1627 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1629 case GL_VERTEX_PROGRAM_ARB
:
1630 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1631 params
[0] = ctx
->VertexProgram
.Enabled
;
1633 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1634 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1635 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1637 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1638 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1639 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1641 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1642 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1643 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1645 case GL_MAX_PROGRAM_MATRICES_ARB
:
1646 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1647 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1649 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1650 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1651 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1653 case GL_CURRENT_MATRIX_ARB
:
1654 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1656 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1657 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1658 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1659 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1660 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1661 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1662 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1663 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1664 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1665 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1666 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1667 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1668 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1669 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1670 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1671 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1672 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1675 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1676 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1678 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1679 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1680 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1681 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1682 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1683 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1684 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1685 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1686 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1687 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1688 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1689 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1690 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1691 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1692 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1693 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1694 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1697 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1698 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1699 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1701 case GL_PROGRAM_ERROR_POSITION_ARB
:
1702 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1703 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1705 case GL_FRAGMENT_PROGRAM_ARB
:
1706 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1707 params
[0] = ctx
->FragmentProgram
.Enabled
;
1709 case GL_MAX_TEXTURE_COORDS_ARB
:
1710 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1711 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1713 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1714 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1715 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1717 case GL_DEPTH_BOUNDS_TEST_EXT
:
1718 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1719 params
[0] = ctx
->Depth
.BoundsTest
;
1721 case GL_DEPTH_BOUNDS_EXT
:
1722 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1723 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1724 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1726 case GL_DEPTH_CLAMP
:
1727 CHECK_EXT1(ARB_depth_clamp
, "GetBooleanv");
1728 params
[0] = ctx
->Transform
.DepthClamp
;
1730 case GL_MAX_DRAW_BUFFERS_ARB
:
1731 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1733 case GL_DRAW_BUFFER0_ARB
:
1734 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1736 case GL_DRAW_BUFFER1_ARB
:
1739 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1740 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1743 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1744 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1747 case GL_DRAW_BUFFER2_ARB
:
1750 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1751 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1754 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1755 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1758 case GL_DRAW_BUFFER3_ARB
:
1761 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1762 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1765 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1766 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1769 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1770 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1771 params
[0] = INT_TO_BOOLEAN(_mesa_get_color_read_type(ctx
));
1773 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1774 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1775 params
[0] = INT_TO_BOOLEAN(_mesa_get_color_read_format(ctx
));
1777 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1778 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1779 params
[0] = INT_TO_BOOLEAN(6);
1781 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1782 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1783 params
[0] = INT_TO_BOOLEAN(8);
1785 case GL_NUM_PASSES_ATI
:
1786 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1787 params
[0] = INT_TO_BOOLEAN(2);
1789 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1790 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1791 params
[0] = INT_TO_BOOLEAN(8);
1793 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1794 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1795 params
[0] = INT_TO_BOOLEAN(16);
1797 case GL_COLOR_ALPHA_PAIRING_ATI
:
1798 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1799 params
[0] = GL_TRUE
;
1801 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1802 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1803 params
[0] = INT_TO_BOOLEAN(3);
1805 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1806 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1807 params
[0] = INT_TO_BOOLEAN(3);
1809 case GL_STENCIL_BACK_FUNC
:
1810 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1812 case GL_STENCIL_BACK_VALUE_MASK
:
1813 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1815 case GL_STENCIL_BACK_WRITEMASK
:
1816 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1818 case GL_STENCIL_BACK_REF
:
1819 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1821 case GL_STENCIL_BACK_FAIL
:
1822 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1824 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1825 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1827 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1828 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1830 case GL_FRAMEBUFFER_BINDING_EXT
:
1831 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1832 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1834 case GL_RENDERBUFFER_BINDING_EXT
:
1835 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1836 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1838 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1839 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1840 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1842 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1843 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1844 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1846 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1847 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1848 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1850 case GL_PROVOKING_VERTEX_EXT
:
1851 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1852 params
[0] = ctx
->Light
.ProvokingVertex
;
1854 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
1855 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1856 params
[0] = ctx
->Const
.QuadsFollowProvokingVertexConvention
;
1858 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1859 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1860 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1862 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1863 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1864 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1866 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1867 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1868 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1870 case GL_MAX_VARYING_FLOATS_ARB
:
1871 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1872 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1874 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1875 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1876 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1878 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1879 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1880 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxCombinedTextureImageUnits
);
1882 case GL_CURRENT_PROGRAM
:
1883 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1884 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1886 case GL_MAX_SAMPLES
:
1887 CHECK_EXT1(ARB_framebuffer_object
, "GetBooleanv");
1888 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxSamples
);
1890 case GL_VERTEX_ARRAY_BINDING_APPLE
:
1891 CHECK_EXT1(APPLE_vertex_array_object
, "GetBooleanv");
1892 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Name
);
1894 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
1895 CHECK_EXT1(ARB_seamless_cube_map
, "GetBooleanv");
1896 params
[0] = ctx
->Texture
.CubeMapSeamless
;
1898 case GL_MAX_SERVER_WAIT_TIMEOUT
:
1899 CHECK_EXT1(ARB_sync
, "GetBooleanv");
1900 params
[0] = INT64_TO_BOOLEAN(ctx
->Const
.MaxServerWaitTimeout
);
1902 case GL_NUM_EXTENSIONS
:
1903 params
[0] = INT_TO_BOOLEAN(_mesa_get_extension_count(ctx
));
1905 case GL_MAJOR_VERSION
:
1906 params
[0] = INT_TO_BOOLEAN(ctx
->VersionMajor
);
1908 case GL_MINOR_VERSION
:
1909 params
[0] = INT_TO_BOOLEAN(ctx
->VersionMinor
);
1912 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1917 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1919 GET_CURRENT_CONTEXT(ctx
);
1920 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1926 _mesa_update_state(ctx
);
1928 if (ctx
->Driver
.GetFloatv
&&
1929 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1933 case GL_ACCUM_RED_BITS
:
1934 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1936 case GL_ACCUM_GREEN_BITS
:
1937 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1939 case GL_ACCUM_BLUE_BITS
:
1940 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1942 case GL_ACCUM_ALPHA_BITS
:
1943 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1945 case GL_ACCUM_CLEAR_VALUE
:
1946 params
[0] = ctx
->Accum
.ClearColor
[0];
1947 params
[1] = ctx
->Accum
.ClearColor
[1];
1948 params
[2] = ctx
->Accum
.ClearColor
[2];
1949 params
[3] = ctx
->Accum
.ClearColor
[3];
1952 params
[0] = ctx
->Pixel
.AlphaBias
;
1955 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1957 case GL_ALPHA_SCALE
:
1958 params
[0] = ctx
->Pixel
.AlphaScale
;
1961 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1963 case GL_ALPHA_TEST_FUNC
:
1964 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1966 case GL_ALPHA_TEST_REF
:
1967 params
[0] = ctx
->Color
.AlphaRef
;
1969 case GL_ATTRIB_STACK_DEPTH
:
1970 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1972 case GL_AUTO_NORMAL
:
1973 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1975 case GL_AUX_BUFFERS
:
1976 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1979 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Color
.BlendEnabled
& 1));
1982 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1985 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1987 case GL_BLEND_SRC_RGB_EXT
:
1988 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1990 case GL_BLEND_DST_RGB_EXT
:
1991 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1993 case GL_BLEND_SRC_ALPHA_EXT
:
1994 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1996 case GL_BLEND_DST_ALPHA_EXT
:
1997 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1999 case GL_BLEND_EQUATION
:
2000 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
2002 case GL_BLEND_EQUATION_ALPHA_EXT
:
2003 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
2005 case GL_BLEND_COLOR_EXT
:
2006 params
[0] = ctx
->Color
.BlendColor
[0];
2007 params
[1] = ctx
->Color
.BlendColor
[1];
2008 params
[2] = ctx
->Color
.BlendColor
[2];
2009 params
[3] = ctx
->Color
.BlendColor
[3];
2012 params
[0] = ctx
->Pixel
.BlueBias
;
2015 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
2018 params
[0] = ctx
->Pixel
.BlueScale
;
2020 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2021 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2023 case GL_CLIP_PLANE0
:
2024 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2026 case GL_CLIP_PLANE1
:
2027 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2029 case GL_CLIP_PLANE2
:
2030 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2032 case GL_CLIP_PLANE3
:
2033 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2035 case GL_CLIP_PLANE4
:
2036 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2038 case GL_CLIP_PLANE5
:
2039 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2041 case GL_COLOR_CLEAR_VALUE
:
2042 params
[0] = ctx
->Color
.ClearColor
[0];
2043 params
[1] = ctx
->Color
.ClearColor
[1];
2044 params
[2] = ctx
->Color
.ClearColor
[2];
2045 params
[3] = ctx
->Color
.ClearColor
[3];
2047 case GL_COLOR_MATERIAL
:
2048 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2050 case GL_COLOR_MATERIAL_FACE
:
2051 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2053 case GL_COLOR_MATERIAL_PARAMETER
:
2054 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2056 case GL_COLOR_WRITEMASK
:
2057 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[0][RCOMP
] ? 1 : 0);
2058 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[0][GCOMP
] ? 1 : 0);
2059 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[0][BCOMP
] ? 1 : 0);
2060 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[0][ACOMP
] ? 1 : 0);
2063 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2065 case GL_CULL_FACE_MODE
:
2066 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2068 case GL_CURRENT_COLOR
:
2070 FLUSH_CURRENT(ctx
, 0);
2071 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2072 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2073 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2074 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2077 case GL_CURRENT_INDEX
:
2079 FLUSH_CURRENT(ctx
, 0);
2080 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2083 case GL_CURRENT_NORMAL
:
2085 FLUSH_CURRENT(ctx
, 0);
2086 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2087 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2088 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2091 case GL_CURRENT_RASTER_COLOR
:
2092 params
[0] = ctx
->Current
.RasterColor
[0];
2093 params
[1] = ctx
->Current
.RasterColor
[1];
2094 params
[2] = ctx
->Current
.RasterColor
[2];
2095 params
[3] = ctx
->Current
.RasterColor
[3];
2097 case GL_CURRENT_RASTER_DISTANCE
:
2098 params
[0] = ctx
->Current
.RasterDistance
;
2100 case GL_CURRENT_RASTER_INDEX
:
2101 params
[0] = ctx
->Current
.RasterIndex
;
2103 case GL_CURRENT_RASTER_POSITION
:
2104 params
[0] = ctx
->Current
.RasterPos
[0];
2105 params
[1] = ctx
->Current
.RasterPos
[1];
2106 params
[2] = ctx
->Current
.RasterPos
[2];
2107 params
[3] = ctx
->Current
.RasterPos
[3];
2109 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2110 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2111 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2112 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2113 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2115 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2117 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2118 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2119 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2120 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2121 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2124 case GL_CURRENT_RASTER_POSITION_VALID
:
2125 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2127 case GL_CURRENT_TEXTURE_COORDS
:
2129 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2130 FLUSH_CURRENT(ctx
, 0);
2131 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2132 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2133 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2134 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2138 params
[0] = ctx
->Pixel
.DepthBias
;
2141 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2143 case GL_DEPTH_CLEAR_VALUE
:
2144 params
[0] = ((GLfloat
) ctx
->Depth
.Clear
);
2147 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2149 case GL_DEPTH_RANGE
:
2150 params
[0] = ctx
->Viewport
.Near
;
2151 params
[1] = ctx
->Viewport
.Far
;
2153 case GL_DEPTH_SCALE
:
2154 params
[0] = ctx
->Pixel
.DepthScale
;
2157 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2159 case GL_DEPTH_WRITEMASK
:
2160 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2163 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2165 case GL_DOUBLEBUFFER
:
2166 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2168 case GL_DRAW_BUFFER
:
2169 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2173 FLUSH_CURRENT(ctx
, 0);
2174 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
2177 case GL_FEEDBACK_BUFFER_SIZE
:
2178 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2180 case GL_FEEDBACK_BUFFER_TYPE
:
2181 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2184 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2187 params
[0] = ctx
->Fog
.Color
[0];
2188 params
[1] = ctx
->Fog
.Color
[1];
2189 params
[2] = ctx
->Fog
.Color
[2];
2190 params
[3] = ctx
->Fog
.Color
[3];
2192 case GL_FOG_DENSITY
:
2193 params
[0] = ctx
->Fog
.Density
;
2196 params
[0] = ctx
->Fog
.End
;
2199 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2202 params
[0] = ctx
->Fog
.Index
;
2205 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2208 params
[0] = ctx
->Fog
.Start
;
2211 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2214 params
[0] = ctx
->Pixel
.GreenBias
;
2217 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2219 case GL_GREEN_SCALE
:
2220 params
[0] = ctx
->Pixel
.GreenScale
;
2223 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2225 case GL_INDEX_CLEAR_VALUE
:
2226 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2229 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2231 case GL_INDEX_OFFSET
:
2232 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2234 case GL_INDEX_SHIFT
:
2235 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2237 case GL_INDEX_WRITEMASK
:
2238 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2241 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2244 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2250 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2253 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2256 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2262 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2265 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2267 case GL_LIGHT_MODEL_AMBIENT
:
2268 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2269 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2270 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2271 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2273 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2274 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2276 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2277 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2279 case GL_LIGHT_MODEL_TWO_SIDE
:
2280 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2282 case GL_LINE_SMOOTH
:
2283 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2285 case GL_LINE_SMOOTH_HINT
:
2286 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2288 case GL_LINE_STIPPLE
:
2289 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2291 case GL_LINE_STIPPLE_PATTERN
:
2292 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2294 case GL_LINE_STIPPLE_REPEAT
:
2295 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2298 params
[0] = ctx
->Line
.Width
;
2300 case GL_LINE_WIDTH_GRANULARITY
:
2301 params
[0] = ctx
->Const
.LineWidthGranularity
;
2303 case GL_LINE_WIDTH_RANGE
:
2304 params
[0] = ctx
->Const
.MinLineWidthAA
;
2305 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2307 case GL_ALIASED_LINE_WIDTH_RANGE
:
2308 params
[0] = ctx
->Const
.MinLineWidth
;
2309 params
[1] = ctx
->Const
.MaxLineWidth
;
2312 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2315 params
[0] = (GLfloat
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
2320 if (!ctx
->CompileFlag
)
2322 else if (ctx
->ExecuteFlag
)
2323 mode
= GL_COMPILE_AND_EXECUTE
;
2326 params
[0] = ENUM_TO_FLOAT(mode
);
2329 case GL_INDEX_LOGIC_OP
:
2330 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2332 case GL_COLOR_LOGIC_OP
:
2333 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2335 case GL_LOGIC_OP_MODE
:
2336 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2338 case GL_MAP1_COLOR_4
:
2339 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2341 case GL_MAP1_GRID_DOMAIN
:
2342 params
[0] = ctx
->Eval
.MapGrid1u1
;
2343 params
[1] = ctx
->Eval
.MapGrid1u2
;
2345 case GL_MAP1_GRID_SEGMENTS
:
2346 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2351 case GL_MAP1_NORMAL
:
2352 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2354 case GL_MAP1_TEXTURE_COORD_1
:
2355 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2357 case GL_MAP1_TEXTURE_COORD_2
:
2358 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2360 case GL_MAP1_TEXTURE_COORD_3
:
2361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2363 case GL_MAP1_TEXTURE_COORD_4
:
2364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2366 case GL_MAP1_VERTEX_3
:
2367 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2369 case GL_MAP1_VERTEX_4
:
2370 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2372 case GL_MAP2_COLOR_4
:
2373 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2375 case GL_MAP2_GRID_DOMAIN
:
2376 params
[0] = ctx
->Eval
.MapGrid2u1
;
2377 params
[1] = ctx
->Eval
.MapGrid2u2
;
2378 params
[2] = ctx
->Eval
.MapGrid2v1
;
2379 params
[3] = ctx
->Eval
.MapGrid2v2
;
2381 case GL_MAP2_GRID_SEGMENTS
:
2382 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2383 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2386 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2388 case GL_MAP2_NORMAL
:
2389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2391 case GL_MAP2_TEXTURE_COORD_1
:
2392 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2394 case GL_MAP2_TEXTURE_COORD_2
:
2395 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2397 case GL_MAP2_TEXTURE_COORD_3
:
2398 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2400 case GL_MAP2_TEXTURE_COORD_4
:
2401 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2403 case GL_MAP2_VERTEX_3
:
2404 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2406 case GL_MAP2_VERTEX_4
:
2407 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2410 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2412 case GL_MAP_STENCIL
:
2413 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2415 case GL_MATRIX_MODE
:
2416 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2418 case GL_MAX_ATTRIB_STACK_DEPTH
:
2419 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2421 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2422 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2424 case GL_MAX_CLIP_PLANES
:
2425 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2427 case GL_MAX_ELEMENTS_VERTICES
:
2428 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2430 case GL_MAX_ELEMENTS_INDICES
:
2431 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2433 case GL_MAX_EVAL_ORDER
:
2434 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2437 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2439 case GL_MAX_LIST_NESTING
:
2440 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2442 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2443 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2445 case GL_MAX_NAME_STACK_DEPTH
:
2446 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2448 case GL_MAX_PIXEL_MAP_TABLE
:
2449 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2451 case GL_MAX_PROJECTION_STACK_DEPTH
:
2452 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2454 case GL_MAX_TEXTURE_SIZE
:
2455 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2457 case GL_MAX_3D_TEXTURE_SIZE
:
2458 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2460 case GL_MAX_TEXTURE_STACK_DEPTH
:
2461 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2463 case GL_MAX_VIEWPORT_DIMS
:
2464 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2465 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2467 case GL_MODELVIEW_MATRIX
:
2469 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2470 params
[0] = matrix
[0];
2471 params
[1] = matrix
[1];
2472 params
[2] = matrix
[2];
2473 params
[3] = matrix
[3];
2474 params
[4] = matrix
[4];
2475 params
[5] = matrix
[5];
2476 params
[6] = matrix
[6];
2477 params
[7] = matrix
[7];
2478 params
[8] = matrix
[8];
2479 params
[9] = matrix
[9];
2480 params
[10] = matrix
[10];
2481 params
[11] = matrix
[11];
2482 params
[12] = matrix
[12];
2483 params
[13] = matrix
[13];
2484 params
[14] = matrix
[14];
2485 params
[15] = matrix
[15];
2488 case GL_MODELVIEW_STACK_DEPTH
:
2489 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2491 case GL_NAME_STACK_DEPTH
:
2492 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2495 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2497 case GL_PACK_ALIGNMENT
:
2498 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2500 case GL_PACK_LSB_FIRST
:
2501 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2503 case GL_PACK_ROW_LENGTH
:
2504 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2506 case GL_PACK_SKIP_PIXELS
:
2507 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2509 case GL_PACK_SKIP_ROWS
:
2510 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2512 case GL_PACK_SWAP_BYTES
:
2513 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2515 case GL_PACK_SKIP_IMAGES_EXT
:
2516 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2518 case GL_PACK_IMAGE_HEIGHT_EXT
:
2519 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2521 case GL_PACK_INVERT_MESA
:
2522 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2524 case GL_PERSPECTIVE_CORRECTION_HINT
:
2525 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2527 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2528 params
[0] = (GLfloat
)(ctx
->PixelMaps
.AtoA
.Size
);
2530 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2531 params
[0] = (GLfloat
)(ctx
->PixelMaps
.BtoB
.Size
);
2533 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2534 params
[0] = (GLfloat
)(ctx
->PixelMaps
.GtoG
.Size
);
2536 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2537 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoA
.Size
);
2539 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2540 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoB
.Size
);
2542 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2543 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoG
.Size
);
2545 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2546 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoI
.Size
);
2548 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2549 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoR
.Size
);
2551 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2552 params
[0] = (GLfloat
)(ctx
->PixelMaps
.RtoR
.Size
);
2554 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2555 params
[0] = (GLfloat
)(ctx
->PixelMaps
.StoS
.Size
);
2558 params
[0] = ctx
->Point
.Size
;
2560 case GL_POINT_SIZE_GRANULARITY
:
2561 params
[0] = ctx
->Const
.PointSizeGranularity
;
2563 case GL_POINT_SIZE_RANGE
:
2564 params
[0] = ctx
->Const
.MinPointSizeAA
;
2565 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2567 case GL_ALIASED_POINT_SIZE_RANGE
:
2568 params
[0] = ctx
->Const
.MinPointSize
;
2569 params
[1] = ctx
->Const
.MaxPointSize
;
2571 case GL_POINT_SMOOTH
:
2572 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2574 case GL_POINT_SMOOTH_HINT
:
2575 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2577 case GL_POINT_SIZE_MIN_EXT
:
2578 params
[0] = ctx
->Point
.MinSize
;
2580 case GL_POINT_SIZE_MAX_EXT
:
2581 params
[0] = ctx
->Point
.MaxSize
;
2583 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2584 params
[0] = ctx
->Point
.Threshold
;
2586 case GL_DISTANCE_ATTENUATION_EXT
:
2587 params
[0] = ctx
->Point
.Params
[0];
2588 params
[1] = ctx
->Point
.Params
[1];
2589 params
[2] = ctx
->Point
.Params
[2];
2591 case GL_POLYGON_MODE
:
2592 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2593 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2595 case GL_POLYGON_OFFSET_BIAS_EXT
:
2596 params
[0] = ctx
->Polygon
.OffsetUnits
;
2598 case GL_POLYGON_OFFSET_FACTOR
:
2599 params
[0] = ctx
->Polygon
.OffsetFactor
;
2601 case GL_POLYGON_OFFSET_UNITS
:
2602 params
[0] = ctx
->Polygon
.OffsetUnits
;
2604 case GL_POLYGON_OFFSET_POINT
:
2605 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetPoint
);
2607 case GL_POLYGON_OFFSET_LINE
:
2608 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetLine
);
2610 case GL_POLYGON_OFFSET_FILL
:
2611 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetFill
);
2613 case GL_POLYGON_SMOOTH
:
2614 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2616 case GL_POLYGON_SMOOTH_HINT
:
2617 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2619 case GL_POLYGON_STIPPLE
:
2620 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2622 case GL_PROJECTION_MATRIX
:
2624 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2625 params
[0] = matrix
[0];
2626 params
[1] = matrix
[1];
2627 params
[2] = matrix
[2];
2628 params
[3] = matrix
[3];
2629 params
[4] = matrix
[4];
2630 params
[5] = matrix
[5];
2631 params
[6] = matrix
[6];
2632 params
[7] = matrix
[7];
2633 params
[8] = matrix
[8];
2634 params
[9] = matrix
[9];
2635 params
[10] = matrix
[10];
2636 params
[11] = matrix
[11];
2637 params
[12] = matrix
[12];
2638 params
[13] = matrix
[13];
2639 params
[14] = matrix
[14];
2640 params
[15] = matrix
[15];
2643 case GL_PROJECTION_STACK_DEPTH
:
2644 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2646 case GL_READ_BUFFER
:
2647 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2650 params
[0] = ctx
->Pixel
.RedBias
;
2653 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.redBits
);
2656 params
[0] = ctx
->Pixel
.RedScale
;
2658 case GL_RENDER_MODE
:
2659 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2661 case GL_RESCALE_NORMAL
:
2662 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2665 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2667 case GL_SCISSOR_BOX
:
2668 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2669 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2670 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2671 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2673 case GL_SCISSOR_TEST
:
2674 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2676 case GL_SELECTION_BUFFER_SIZE
:
2677 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2679 case GL_SHADE_MODEL
:
2680 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2682 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2683 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2685 case GL_STENCIL_BITS
:
2686 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2688 case GL_STENCIL_CLEAR_VALUE
:
2689 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2691 case GL_STENCIL_FAIL
:
2692 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2694 case GL_STENCIL_FUNC
:
2695 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2697 case GL_STENCIL_PASS_DEPTH_FAIL
:
2698 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2700 case GL_STENCIL_PASS_DEPTH_PASS
:
2701 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2703 case GL_STENCIL_REF
:
2704 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2706 case GL_STENCIL_TEST
:
2707 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2709 case GL_STENCIL_VALUE_MASK
:
2710 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2712 case GL_STENCIL_WRITEMASK
:
2713 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2716 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2718 case GL_SUBPIXEL_BITS
:
2719 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2722 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2725 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2728 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2730 case GL_TEXTURE_1D_ARRAY_EXT
:
2731 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2732 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
2734 case GL_TEXTURE_2D_ARRAY_EXT
:
2735 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2736 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
2738 case GL_TEXTURE_BINDING_1D
:
2739 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
2741 case GL_TEXTURE_BINDING_2D
:
2742 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
2744 case GL_TEXTURE_BINDING_3D
:
2745 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
2747 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
2748 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2749 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
2751 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
2752 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2753 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
2755 case GL_TEXTURE_GEN_S
:
2756 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2758 case GL_TEXTURE_GEN_T
:
2759 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2761 case GL_TEXTURE_GEN_R
:
2762 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2764 case GL_TEXTURE_GEN_Q
:
2765 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2767 case GL_TEXTURE_MATRIX
:
2769 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2770 params
[0] = matrix
[0];
2771 params
[1] = matrix
[1];
2772 params
[2] = matrix
[2];
2773 params
[3] = matrix
[3];
2774 params
[4] = matrix
[4];
2775 params
[5] = matrix
[5];
2776 params
[6] = matrix
[6];
2777 params
[7] = matrix
[7];
2778 params
[8] = matrix
[8];
2779 params
[9] = matrix
[9];
2780 params
[10] = matrix
[10];
2781 params
[11] = matrix
[11];
2782 params
[12] = matrix
[12];
2783 params
[13] = matrix
[13];
2784 params
[14] = matrix
[14];
2785 params
[15] = matrix
[15];
2788 case GL_TEXTURE_STACK_DEPTH
:
2789 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2791 case GL_UNPACK_ALIGNMENT
:
2792 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2794 case GL_UNPACK_LSB_FIRST
:
2795 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2797 case GL_UNPACK_ROW_LENGTH
:
2798 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2800 case GL_UNPACK_SKIP_PIXELS
:
2801 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2803 case GL_UNPACK_SKIP_ROWS
:
2804 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2806 case GL_UNPACK_SWAP_BYTES
:
2807 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2809 case GL_UNPACK_SKIP_IMAGES_EXT
:
2810 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2812 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2813 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2815 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2816 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2819 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2820 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2821 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2822 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2825 params
[0] = ctx
->Pixel
.ZoomX
;
2828 params
[0] = ctx
->Pixel
.ZoomY
;
2830 case GL_VERTEX_ARRAY
:
2831 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
2833 case GL_VERTEX_ARRAY_SIZE
:
2834 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
2836 case GL_VERTEX_ARRAY_TYPE
:
2837 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
2839 case GL_VERTEX_ARRAY_STRIDE
:
2840 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
2842 case GL_VERTEX_ARRAY_COUNT_EXT
:
2843 params
[0] = (GLfloat
)(0);
2845 case GL_NORMAL_ARRAY
:
2846 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
2848 case GL_NORMAL_ARRAY_TYPE
:
2849 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Type
);
2851 case GL_NORMAL_ARRAY_STRIDE
:
2852 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
2854 case GL_NORMAL_ARRAY_COUNT_EXT
:
2855 params
[0] = (GLfloat
)(0);
2857 case GL_COLOR_ARRAY
:
2858 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
2860 case GL_COLOR_ARRAY_SIZE
:
2861 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Size
);
2863 case GL_COLOR_ARRAY_TYPE
:
2864 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Type
);
2866 case GL_COLOR_ARRAY_STRIDE
:
2867 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
2869 case GL_COLOR_ARRAY_COUNT_EXT
:
2870 params
[0] = (GLfloat
)(0);
2872 case GL_INDEX_ARRAY
:
2873 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
2875 case GL_INDEX_ARRAY_TYPE
:
2876 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Type
);
2878 case GL_INDEX_ARRAY_STRIDE
:
2879 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
2881 case GL_INDEX_ARRAY_COUNT_EXT
:
2882 params
[0] = (GLfloat
)(0);
2884 case GL_TEXTURE_COORD_ARRAY
:
2885 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2887 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2888 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2890 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2891 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2893 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2894 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2896 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2897 params
[0] = (GLfloat
)(0);
2899 case GL_EDGE_FLAG_ARRAY
:
2900 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
2902 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2903 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
2905 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2906 params
[0] = (GLfloat
)(0);
2908 case GL_MAX_TEXTURE_UNITS_ARB
:
2909 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2910 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2912 case GL_ACTIVE_TEXTURE_ARB
:
2913 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2914 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2916 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2917 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2918 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2920 case GL_TEXTURE_CUBE_MAP_ARB
:
2921 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2922 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2924 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2925 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2926 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
2928 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2929 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2930 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2932 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2933 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2935 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2936 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2938 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2941 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2943 for (i
= 0; i
< n
; i
++)
2944 params
[i
] = ENUM_TO_FLOAT(formats
[i
]);
2947 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2948 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2949 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2951 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2952 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2953 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2955 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2957 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2958 params
[0] = matrix
[0];
2959 params
[1] = matrix
[4];
2960 params
[2] = matrix
[8];
2961 params
[3] = matrix
[12];
2962 params
[4] = matrix
[1];
2963 params
[5] = matrix
[5];
2964 params
[6] = matrix
[9];
2965 params
[7] = matrix
[13];
2966 params
[8] = matrix
[2];
2967 params
[9] = matrix
[6];
2968 params
[10] = matrix
[10];
2969 params
[11] = matrix
[14];
2970 params
[12] = matrix
[3];
2971 params
[13] = matrix
[7];
2972 params
[14] = matrix
[11];
2973 params
[15] = matrix
[15];
2976 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2978 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2979 params
[0] = matrix
[0];
2980 params
[1] = matrix
[4];
2981 params
[2] = matrix
[8];
2982 params
[3] = matrix
[12];
2983 params
[4] = matrix
[1];
2984 params
[5] = matrix
[5];
2985 params
[6] = matrix
[9];
2986 params
[7] = matrix
[13];
2987 params
[8] = matrix
[2];
2988 params
[9] = matrix
[6];
2989 params
[10] = matrix
[10];
2990 params
[11] = matrix
[14];
2991 params
[12] = matrix
[3];
2992 params
[13] = matrix
[7];
2993 params
[14] = matrix
[11];
2994 params
[15] = matrix
[15];
2997 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2999 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
3000 params
[0] = matrix
[0];
3001 params
[1] = matrix
[4];
3002 params
[2] = matrix
[8];
3003 params
[3] = matrix
[12];
3004 params
[4] = matrix
[1];
3005 params
[5] = matrix
[5];
3006 params
[6] = matrix
[9];
3007 params
[7] = matrix
[13];
3008 params
[8] = matrix
[2];
3009 params
[9] = matrix
[6];
3010 params
[10] = matrix
[10];
3011 params
[11] = matrix
[14];
3012 params
[12] = matrix
[3];
3013 params
[13] = matrix
[7];
3014 params
[14] = matrix
[11];
3015 params
[15] = matrix
[15];
3018 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
3020 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
3021 params
[0] = matrix
[0];
3022 params
[1] = matrix
[4];
3023 params
[2] = matrix
[8];
3024 params
[3] = matrix
[12];
3025 params
[4] = matrix
[1];
3026 params
[5] = matrix
[5];
3027 params
[6] = matrix
[9];
3028 params
[7] = matrix
[13];
3029 params
[8] = matrix
[2];
3030 params
[9] = matrix
[6];
3031 params
[10] = matrix
[10];
3032 params
[11] = matrix
[14];
3033 params
[12] = matrix
[3];
3034 params
[13] = matrix
[7];
3035 params
[14] = matrix
[11];
3036 params
[15] = matrix
[15];
3039 case GL_COLOR_MATRIX_SGI
:
3041 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3042 params
[0] = matrix
[0];
3043 params
[1] = matrix
[1];
3044 params
[2] = matrix
[2];
3045 params
[3] = matrix
[3];
3046 params
[4] = matrix
[4];
3047 params
[5] = matrix
[5];
3048 params
[6] = matrix
[6];
3049 params
[7] = matrix
[7];
3050 params
[8] = matrix
[8];
3051 params
[9] = matrix
[9];
3052 params
[10] = matrix
[10];
3053 params
[11] = matrix
[11];
3054 params
[12] = matrix
[12];
3055 params
[13] = matrix
[13];
3056 params
[14] = matrix
[14];
3057 params
[15] = matrix
[15];
3060 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3061 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3063 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3064 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3066 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3067 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3069 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3070 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3072 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3073 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3075 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3076 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3078 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3079 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3081 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3082 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3084 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3085 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3087 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3088 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3090 case GL_CONVOLUTION_1D_EXT
:
3091 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3092 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3094 case GL_CONVOLUTION_2D_EXT
:
3095 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3096 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3098 case GL_SEPARABLE_2D_EXT
:
3099 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3100 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3102 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3103 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3104 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3106 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3107 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3108 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3110 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3111 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3112 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3114 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3115 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3116 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3118 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3119 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3120 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3122 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3123 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3124 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3126 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3127 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3128 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3130 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3131 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3132 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3135 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3136 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3139 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3140 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3142 case GL_COLOR_TABLE_SGI
:
3143 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3144 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3146 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3147 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3148 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3150 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3151 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3152 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3154 case GL_TEXTURE_COLOR_TABLE_SGI
:
3155 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3156 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3158 case GL_COLOR_SUM_EXT
:
3159 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3160 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3162 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3163 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3165 FLUSH_CURRENT(ctx
, 0);
3166 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3167 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3168 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3169 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3172 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3173 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3174 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3176 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3177 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3178 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3180 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3181 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3182 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3184 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3185 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3186 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3188 case GL_CURRENT_FOG_COORDINATE_EXT
:
3189 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3191 FLUSH_CURRENT(ctx
, 0);
3192 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3195 case GL_FOG_COORDINATE_ARRAY_EXT
:
3196 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3197 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3199 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3200 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3201 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3203 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3204 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3205 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3207 case GL_FOG_COORDINATE_SOURCE_EXT
:
3208 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3209 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3211 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3212 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3213 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3215 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3216 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3217 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3219 case GL_MULTISAMPLE_ARB
:
3220 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3222 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3225 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3226 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3228 case GL_SAMPLE_COVERAGE_ARB
:
3229 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3231 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3232 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3234 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3235 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3237 case GL_SAMPLE_BUFFERS_ARB
:
3238 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3240 case GL_SAMPLES_ARB
:
3241 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3243 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3244 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3245 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3247 case GL_POINT_SPRITE_NV
:
3248 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3249 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3251 case GL_POINT_SPRITE_R_MODE_NV
:
3252 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3253 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3255 case GL_POINT_SPRITE_COORD_ORIGIN
:
3256 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3257 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3259 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3260 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3261 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3263 case GL_VERTEX_PROGRAM_BINDING_NV
:
3264 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3265 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3267 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3268 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3269 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3271 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3272 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3273 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3275 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3276 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3277 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3279 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3280 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3281 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3283 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3284 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3285 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3287 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3288 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3289 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3291 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3292 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3293 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3295 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3296 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3297 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3299 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3300 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3301 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3303 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3304 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3305 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3307 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3308 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3309 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3311 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3312 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3313 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3315 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3316 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3317 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3319 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3320 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3321 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3323 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3324 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3325 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3327 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3328 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3329 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3331 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3332 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3333 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3335 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3336 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3339 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3340 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3341 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3343 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3344 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3345 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3347 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3348 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3351 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3352 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3353 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3355 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3356 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3357 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3359 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3360 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3363 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3364 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3367 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3368 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3369 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3371 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3372 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3373 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3375 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3376 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3377 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3379 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3380 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3381 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3383 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3384 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3385 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3387 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3388 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3391 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3392 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3393 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3395 case GL_FRAGMENT_PROGRAM_NV
:
3396 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3397 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3399 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3400 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3401 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3403 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3404 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3405 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3407 case GL_TEXTURE_RECTANGLE_NV
:
3408 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3409 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3411 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3412 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3413 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
3415 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3416 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3417 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3419 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3420 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3421 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3423 case GL_ACTIVE_STENCIL_FACE_EXT
:
3424 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3425 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3427 case GL_MAX_SHININESS_NV
:
3428 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3429 params
[0] = ctx
->Const
.MaxShininess
;
3431 case GL_MAX_SPOT_EXPONENT_NV
:
3432 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3433 params
[0] = ctx
->Const
.MaxSpotExponent
;
3435 case GL_ARRAY_BUFFER_BINDING_ARB
:
3436 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3438 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3439 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3441 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3442 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3444 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3445 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3447 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3448 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3450 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3451 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3453 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3454 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3456 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3457 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3459 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3460 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3462 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3463 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3465 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3466 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3467 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3469 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3470 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3471 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3473 case GL_VERTEX_PROGRAM_ARB
:
3474 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3475 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3477 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3478 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3479 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3481 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3482 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3483 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3485 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3486 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3487 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3489 case GL_MAX_PROGRAM_MATRICES_ARB
:
3490 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3491 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3493 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3494 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3495 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3497 case GL_CURRENT_MATRIX_ARB
:
3498 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3500 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3501 params
[0] = matrix
[0];
3502 params
[1] = matrix
[1];
3503 params
[2] = matrix
[2];
3504 params
[3] = matrix
[3];
3505 params
[4] = matrix
[4];
3506 params
[5] = matrix
[5];
3507 params
[6] = matrix
[6];
3508 params
[7] = matrix
[7];
3509 params
[8] = matrix
[8];
3510 params
[9] = matrix
[9];
3511 params
[10] = matrix
[10];
3512 params
[11] = matrix
[11];
3513 params
[12] = matrix
[12];
3514 params
[13] = matrix
[13];
3515 params
[14] = matrix
[14];
3516 params
[15] = matrix
[15];
3519 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3520 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3522 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3523 params
[0] = matrix
[0];
3524 params
[1] = matrix
[4];
3525 params
[2] = matrix
[8];
3526 params
[3] = matrix
[12];
3527 params
[4] = matrix
[1];
3528 params
[5] = matrix
[5];
3529 params
[6] = matrix
[9];
3530 params
[7] = matrix
[13];
3531 params
[8] = matrix
[2];
3532 params
[9] = matrix
[6];
3533 params
[10] = matrix
[10];
3534 params
[11] = matrix
[14];
3535 params
[12] = matrix
[3];
3536 params
[13] = matrix
[7];
3537 params
[14] = matrix
[11];
3538 params
[15] = matrix
[15];
3541 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3542 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3543 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3545 case GL_PROGRAM_ERROR_POSITION_ARB
:
3546 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3547 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3549 case GL_FRAGMENT_PROGRAM_ARB
:
3550 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3551 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3553 case GL_MAX_TEXTURE_COORDS_ARB
:
3554 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3555 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3557 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3558 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3559 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3561 case GL_DEPTH_BOUNDS_TEST_EXT
:
3562 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3563 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3565 case GL_DEPTH_BOUNDS_EXT
:
3566 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3567 params
[0] = ctx
->Depth
.BoundsMin
;
3568 params
[1] = ctx
->Depth
.BoundsMax
;
3570 case GL_DEPTH_CLAMP
:
3571 CHECK_EXT1(ARB_depth_clamp
, "GetFloatv");
3572 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.DepthClamp
);
3574 case GL_MAX_DRAW_BUFFERS_ARB
:
3575 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3577 case GL_DRAW_BUFFER0_ARB
:
3578 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3580 case GL_DRAW_BUFFER1_ARB
:
3583 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3584 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3587 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3588 params
[0] = ENUM_TO_FLOAT(buffer
);
3591 case GL_DRAW_BUFFER2_ARB
:
3594 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3595 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3598 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3599 params
[0] = ENUM_TO_FLOAT(buffer
);
3602 case GL_DRAW_BUFFER3_ARB
:
3605 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3606 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3609 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3610 params
[0] = ENUM_TO_FLOAT(buffer
);
3613 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3614 CHECK_EXT1(OES_read_format
, "GetFloatv");
3615 params
[0] = (GLfloat
)(_mesa_get_color_read_type(ctx
));
3617 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3618 CHECK_EXT1(OES_read_format
, "GetFloatv");
3619 params
[0] = (GLfloat
)(_mesa_get_color_read_format(ctx
));
3621 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3622 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3623 params
[0] = (GLfloat
)(6);
3625 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3626 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3627 params
[0] = (GLfloat
)(8);
3629 case GL_NUM_PASSES_ATI
:
3630 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3631 params
[0] = (GLfloat
)(2);
3633 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3634 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3635 params
[0] = (GLfloat
)(8);
3637 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3638 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3639 params
[0] = (GLfloat
)(16);
3641 case GL_COLOR_ALPHA_PAIRING_ATI
:
3642 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3643 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3645 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3646 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3647 params
[0] = (GLfloat
)(3);
3649 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3650 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3651 params
[0] = (GLfloat
)(3);
3653 case GL_STENCIL_BACK_FUNC
:
3654 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3656 case GL_STENCIL_BACK_VALUE_MASK
:
3657 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3659 case GL_STENCIL_BACK_WRITEMASK
:
3660 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3662 case GL_STENCIL_BACK_REF
:
3663 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3665 case GL_STENCIL_BACK_FAIL
:
3666 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3668 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3669 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3671 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3672 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3674 case GL_FRAMEBUFFER_BINDING_EXT
:
3675 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3676 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3678 case GL_RENDERBUFFER_BINDING_EXT
:
3679 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3680 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3682 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3683 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3684 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3686 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3687 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3688 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3690 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3691 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3692 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3694 case GL_PROVOKING_VERTEX_EXT
:
3695 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3696 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ProvokingVertex
);
3698 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
3699 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3700 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
3702 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3703 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3704 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3706 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3707 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3708 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3710 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3711 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3712 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3714 case GL_MAX_VARYING_FLOATS_ARB
:
3715 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3716 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3718 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3719 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3720 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3722 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3723 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3724 params
[0] = (GLfloat
)(ctx
->Const
.MaxCombinedTextureImageUnits
);
3726 case GL_CURRENT_PROGRAM
:
3727 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3728 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3730 case GL_MAX_SAMPLES
:
3731 CHECK_EXT1(ARB_framebuffer_object
, "GetFloatv");
3732 params
[0] = (GLfloat
)(ctx
->Const
.MaxSamples
);
3734 case GL_VERTEX_ARRAY_BINDING_APPLE
:
3735 CHECK_EXT1(APPLE_vertex_array_object
, "GetFloatv");
3736 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Name
);
3738 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
3739 CHECK_EXT1(ARB_seamless_cube_map
, "GetFloatv");
3740 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.CubeMapSeamless
);
3742 case GL_MAX_SERVER_WAIT_TIMEOUT
:
3743 CHECK_EXT1(ARB_sync
, "GetFloatv");
3744 params
[0] = (GLfloat
)(ctx
->Const
.MaxServerWaitTimeout
);
3746 case GL_NUM_EXTENSIONS
:
3747 params
[0] = (GLfloat
)(_mesa_get_extension_count(ctx
));
3749 case GL_MAJOR_VERSION
:
3750 params
[0] = (GLfloat
)(ctx
->VersionMajor
);
3752 case GL_MINOR_VERSION
:
3753 params
[0] = (GLfloat
)(ctx
->VersionMinor
);
3756 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3761 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3763 GET_CURRENT_CONTEXT(ctx
);
3764 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3770 _mesa_update_state(ctx
);
3772 if (ctx
->Driver
.GetIntegerv
&&
3773 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3777 case GL_ACCUM_RED_BITS
:
3778 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3780 case GL_ACCUM_GREEN_BITS
:
3781 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3783 case GL_ACCUM_BLUE_BITS
:
3784 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3786 case GL_ACCUM_ALPHA_BITS
:
3787 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3789 case GL_ACCUM_CLEAR_VALUE
:
3790 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3791 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3792 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3793 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3796 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3799 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3801 case GL_ALPHA_SCALE
:
3802 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3805 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3807 case GL_ALPHA_TEST_FUNC
:
3808 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3810 case GL_ALPHA_TEST_REF
:
3811 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3813 case GL_ATTRIB_STACK_DEPTH
:
3814 params
[0] = ctx
->AttribStackDepth
;
3816 case GL_AUTO_NORMAL
:
3817 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3819 case GL_AUX_BUFFERS
:
3820 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3823 params
[0] = BOOLEAN_TO_INT((ctx
->Color
.BlendEnabled
& 1));
3826 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3829 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3831 case GL_BLEND_SRC_RGB_EXT
:
3832 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3834 case GL_BLEND_DST_RGB_EXT
:
3835 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3837 case GL_BLEND_SRC_ALPHA_EXT
:
3838 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3840 case GL_BLEND_DST_ALPHA_EXT
:
3841 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3843 case GL_BLEND_EQUATION
:
3844 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3846 case GL_BLEND_EQUATION_ALPHA_EXT
:
3847 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3849 case GL_BLEND_COLOR_EXT
:
3850 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3851 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3852 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3853 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3856 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3859 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3862 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3864 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3865 params
[0] = ctx
->ClientAttribStackDepth
;
3867 case GL_CLIP_PLANE0
:
3868 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3870 case GL_CLIP_PLANE1
:
3871 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3873 case GL_CLIP_PLANE2
:
3874 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3876 case GL_CLIP_PLANE3
:
3877 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3879 case GL_CLIP_PLANE4
:
3880 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3882 case GL_CLIP_PLANE5
:
3883 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3885 case GL_COLOR_CLEAR_VALUE
:
3886 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3887 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3888 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3889 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3891 case GL_COLOR_MATERIAL
:
3892 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3894 case GL_COLOR_MATERIAL_FACE
:
3895 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3897 case GL_COLOR_MATERIAL_PARAMETER
:
3898 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3900 case GL_COLOR_WRITEMASK
:
3901 params
[0] = ctx
->Color
.ColorMask
[0][RCOMP
] ? 1 : 0;
3902 params
[1] = ctx
->Color
.ColorMask
[0][GCOMP
] ? 1 : 0;
3903 params
[2] = ctx
->Color
.ColorMask
[0][BCOMP
] ? 1 : 0;
3904 params
[3] = ctx
->Color
.ColorMask
[0][ACOMP
] ? 1 : 0;
3907 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3909 case GL_CULL_FACE_MODE
:
3910 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3912 case GL_CURRENT_COLOR
:
3914 FLUSH_CURRENT(ctx
, 0);
3915 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3916 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3917 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3918 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3921 case GL_CURRENT_INDEX
:
3923 FLUSH_CURRENT(ctx
, 0);
3924 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3927 case GL_CURRENT_NORMAL
:
3929 FLUSH_CURRENT(ctx
, 0);
3930 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3931 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3932 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3935 case GL_CURRENT_RASTER_COLOR
:
3936 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3937 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3938 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3939 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3941 case GL_CURRENT_RASTER_DISTANCE
:
3942 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3944 case GL_CURRENT_RASTER_INDEX
:
3945 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3947 case GL_CURRENT_RASTER_POSITION
:
3948 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3949 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3950 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3951 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3953 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
3954 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
3955 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
3956 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
3957 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
3959 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3961 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3962 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3963 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3964 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3965 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3968 case GL_CURRENT_RASTER_POSITION_VALID
:
3969 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3971 case GL_CURRENT_TEXTURE_COORDS
:
3973 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3974 FLUSH_CURRENT(ctx
, 0);
3975 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3976 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3977 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3978 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3982 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3985 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3987 case GL_DEPTH_CLEAR_VALUE
:
3988 params
[0] = FLOAT_TO_INT(((GLfloat
) ctx
->Depth
.Clear
));
3991 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3993 case GL_DEPTH_RANGE
:
3994 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3995 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3997 case GL_DEPTH_SCALE
:
3998 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
4001 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
4003 case GL_DEPTH_WRITEMASK
:
4004 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
4007 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
4009 case GL_DOUBLEBUFFER
:
4010 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
4012 case GL_DRAW_BUFFER
:
4013 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
4017 FLUSH_CURRENT(ctx
, 0);
4018 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
4021 case GL_FEEDBACK_BUFFER_SIZE
:
4022 params
[0] = ctx
->Feedback
.BufferSize
;
4024 case GL_FEEDBACK_BUFFER_TYPE
:
4025 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
4028 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
4031 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
4032 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
4033 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
4034 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
4036 case GL_FOG_DENSITY
:
4037 params
[0] = IROUND(ctx
->Fog
.Density
);
4040 params
[0] = IROUND(ctx
->Fog
.End
);
4043 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4046 params
[0] = IROUND(ctx
->Fog
.Index
);
4049 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4052 params
[0] = IROUND(ctx
->Fog
.Start
);
4055 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4058 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4061 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4063 case GL_GREEN_SCALE
:
4064 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4067 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4069 case GL_INDEX_CLEAR_VALUE
:
4070 params
[0] = ctx
->Color
.ClearIndex
;
4073 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4075 case GL_INDEX_OFFSET
:
4076 params
[0] = ctx
->Pixel
.IndexOffset
;
4078 case GL_INDEX_SHIFT
:
4079 params
[0] = ctx
->Pixel
.IndexShift
;
4081 case GL_INDEX_WRITEMASK
:
4082 params
[0] = ctx
->Color
.IndexMask
;
4085 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4088 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4091 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4094 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4097 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4100 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4103 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4106 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4109 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4111 case GL_LIGHT_MODEL_AMBIENT
:
4112 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4113 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4114 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4115 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4117 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4118 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4120 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4121 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4123 case GL_LIGHT_MODEL_TWO_SIDE
:
4124 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4126 case GL_LINE_SMOOTH
:
4127 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4129 case GL_LINE_SMOOTH_HINT
:
4130 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4132 case GL_LINE_STIPPLE
:
4133 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4135 case GL_LINE_STIPPLE_PATTERN
:
4136 params
[0] = ctx
->Line
.StipplePattern
;
4138 case GL_LINE_STIPPLE_REPEAT
:
4139 params
[0] = ctx
->Line
.StippleFactor
;
4142 params
[0] = IROUND(ctx
->Line
.Width
);
4144 case GL_LINE_WIDTH_GRANULARITY
:
4145 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4147 case GL_LINE_WIDTH_RANGE
:
4148 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4149 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4151 case GL_ALIASED_LINE_WIDTH_RANGE
:
4152 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4153 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4156 params
[0] = ctx
->List
.ListBase
;
4159 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
4164 if (!ctx
->CompileFlag
)
4166 else if (ctx
->ExecuteFlag
)
4167 mode
= GL_COMPILE_AND_EXECUTE
;
4170 params
[0] = ENUM_TO_INT(mode
);
4173 case GL_INDEX_LOGIC_OP
:
4174 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4176 case GL_COLOR_LOGIC_OP
:
4177 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4179 case GL_LOGIC_OP_MODE
:
4180 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4182 case GL_MAP1_COLOR_4
:
4183 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4185 case GL_MAP1_GRID_DOMAIN
:
4186 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4187 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4189 case GL_MAP1_GRID_SEGMENTS
:
4190 params
[0] = ctx
->Eval
.MapGrid1un
;
4193 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4195 case GL_MAP1_NORMAL
:
4196 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4198 case GL_MAP1_TEXTURE_COORD_1
:
4199 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4201 case GL_MAP1_TEXTURE_COORD_2
:
4202 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4204 case GL_MAP1_TEXTURE_COORD_3
:
4205 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4207 case GL_MAP1_TEXTURE_COORD_4
:
4208 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4210 case GL_MAP1_VERTEX_3
:
4211 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4213 case GL_MAP1_VERTEX_4
:
4214 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4216 case GL_MAP2_COLOR_4
:
4217 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4219 case GL_MAP2_GRID_DOMAIN
:
4220 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4221 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4222 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4223 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4225 case GL_MAP2_GRID_SEGMENTS
:
4226 params
[0] = ctx
->Eval
.MapGrid2un
;
4227 params
[1] = ctx
->Eval
.MapGrid2vn
;
4230 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4232 case GL_MAP2_NORMAL
:
4233 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4235 case GL_MAP2_TEXTURE_COORD_1
:
4236 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4238 case GL_MAP2_TEXTURE_COORD_2
:
4239 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4241 case GL_MAP2_TEXTURE_COORD_3
:
4242 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4244 case GL_MAP2_TEXTURE_COORD_4
:
4245 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4247 case GL_MAP2_VERTEX_3
:
4248 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4250 case GL_MAP2_VERTEX_4
:
4251 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4254 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4256 case GL_MAP_STENCIL
:
4257 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4259 case GL_MATRIX_MODE
:
4260 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4262 case GL_MAX_ATTRIB_STACK_DEPTH
:
4263 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4265 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4266 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4268 case GL_MAX_CLIP_PLANES
:
4269 params
[0] = ctx
->Const
.MaxClipPlanes
;
4271 case GL_MAX_ELEMENTS_VERTICES
:
4272 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4274 case GL_MAX_ELEMENTS_INDICES
:
4275 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4277 case GL_MAX_EVAL_ORDER
:
4278 params
[0] = MAX_EVAL_ORDER
;
4281 params
[0] = ctx
->Const
.MaxLights
;
4283 case GL_MAX_LIST_NESTING
:
4284 params
[0] = MAX_LIST_NESTING
;
4286 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4287 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4289 case GL_MAX_NAME_STACK_DEPTH
:
4290 params
[0] = MAX_NAME_STACK_DEPTH
;
4292 case GL_MAX_PIXEL_MAP_TABLE
:
4293 params
[0] = MAX_PIXEL_MAP_TABLE
;
4295 case GL_MAX_PROJECTION_STACK_DEPTH
:
4296 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4298 case GL_MAX_TEXTURE_SIZE
:
4299 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4301 case GL_MAX_3D_TEXTURE_SIZE
:
4302 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4304 case GL_MAX_TEXTURE_STACK_DEPTH
:
4305 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4307 case GL_MAX_VIEWPORT_DIMS
:
4308 params
[0] = ctx
->Const
.MaxViewportWidth
;
4309 params
[1] = ctx
->Const
.MaxViewportHeight
;
4311 case GL_MODELVIEW_MATRIX
:
4313 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4314 params
[0] = IROUND(matrix
[0]);
4315 params
[1] = IROUND(matrix
[1]);
4316 params
[2] = IROUND(matrix
[2]);
4317 params
[3] = IROUND(matrix
[3]);
4318 params
[4] = IROUND(matrix
[4]);
4319 params
[5] = IROUND(matrix
[5]);
4320 params
[6] = IROUND(matrix
[6]);
4321 params
[7] = IROUND(matrix
[7]);
4322 params
[8] = IROUND(matrix
[8]);
4323 params
[9] = IROUND(matrix
[9]);
4324 params
[10] = IROUND(matrix
[10]);
4325 params
[11] = IROUND(matrix
[11]);
4326 params
[12] = IROUND(matrix
[12]);
4327 params
[13] = IROUND(matrix
[13]);
4328 params
[14] = IROUND(matrix
[14]);
4329 params
[15] = IROUND(matrix
[15]);
4332 case GL_MODELVIEW_STACK_DEPTH
:
4333 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4335 case GL_NAME_STACK_DEPTH
:
4336 params
[0] = ctx
->Select
.NameStackDepth
;
4339 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4341 case GL_PACK_ALIGNMENT
:
4342 params
[0] = ctx
->Pack
.Alignment
;
4344 case GL_PACK_LSB_FIRST
:
4345 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4347 case GL_PACK_ROW_LENGTH
:
4348 params
[0] = ctx
->Pack
.RowLength
;
4350 case GL_PACK_SKIP_PIXELS
:
4351 params
[0] = ctx
->Pack
.SkipPixels
;
4353 case GL_PACK_SKIP_ROWS
:
4354 params
[0] = ctx
->Pack
.SkipRows
;
4356 case GL_PACK_SWAP_BYTES
:
4357 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4359 case GL_PACK_SKIP_IMAGES_EXT
:
4360 params
[0] = ctx
->Pack
.SkipImages
;
4362 case GL_PACK_IMAGE_HEIGHT_EXT
:
4363 params
[0] = ctx
->Pack
.ImageHeight
;
4365 case GL_PACK_INVERT_MESA
:
4366 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4368 case GL_PERSPECTIVE_CORRECTION_HINT
:
4369 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4371 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4372 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4374 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4375 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4377 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4378 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4380 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4381 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4383 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4384 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4386 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4387 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4389 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4390 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4392 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4393 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4395 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4396 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4398 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4399 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4402 params
[0] = IROUND(ctx
->Point
.Size
);
4404 case GL_POINT_SIZE_GRANULARITY
:
4405 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4407 case GL_POINT_SIZE_RANGE
:
4408 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4409 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4411 case GL_ALIASED_POINT_SIZE_RANGE
:
4412 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4413 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4415 case GL_POINT_SMOOTH
:
4416 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4418 case GL_POINT_SMOOTH_HINT
:
4419 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4421 case GL_POINT_SIZE_MIN_EXT
:
4422 params
[0] = IROUND(ctx
->Point
.MinSize
);
4424 case GL_POINT_SIZE_MAX_EXT
:
4425 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4427 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4428 params
[0] = IROUND(ctx
->Point
.Threshold
);
4430 case GL_DISTANCE_ATTENUATION_EXT
:
4431 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4432 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4433 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4435 case GL_POLYGON_MODE
:
4436 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4437 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4439 case GL_POLYGON_OFFSET_BIAS_EXT
:
4440 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4442 case GL_POLYGON_OFFSET_FACTOR
:
4443 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4445 case GL_POLYGON_OFFSET_UNITS
:
4446 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4448 case GL_POLYGON_OFFSET_POINT
:
4449 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4451 case GL_POLYGON_OFFSET_LINE
:
4452 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4454 case GL_POLYGON_OFFSET_FILL
:
4455 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4457 case GL_POLYGON_SMOOTH
:
4458 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4460 case GL_POLYGON_SMOOTH_HINT
:
4461 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4463 case GL_POLYGON_STIPPLE
:
4464 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4466 case GL_PROJECTION_MATRIX
:
4468 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4469 params
[0] = IROUND(matrix
[0]);
4470 params
[1] = IROUND(matrix
[1]);
4471 params
[2] = IROUND(matrix
[2]);
4472 params
[3] = IROUND(matrix
[3]);
4473 params
[4] = IROUND(matrix
[4]);
4474 params
[5] = IROUND(matrix
[5]);
4475 params
[6] = IROUND(matrix
[6]);
4476 params
[7] = IROUND(matrix
[7]);
4477 params
[8] = IROUND(matrix
[8]);
4478 params
[9] = IROUND(matrix
[9]);
4479 params
[10] = IROUND(matrix
[10]);
4480 params
[11] = IROUND(matrix
[11]);
4481 params
[12] = IROUND(matrix
[12]);
4482 params
[13] = IROUND(matrix
[13]);
4483 params
[14] = IROUND(matrix
[14]);
4484 params
[15] = IROUND(matrix
[15]);
4487 case GL_PROJECTION_STACK_DEPTH
:
4488 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4490 case GL_READ_BUFFER
:
4491 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4494 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4497 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4500 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4502 case GL_RENDER_MODE
:
4503 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4505 case GL_RESCALE_NORMAL
:
4506 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4509 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4511 case GL_SCISSOR_BOX
:
4512 params
[0] = ctx
->Scissor
.X
;
4513 params
[1] = ctx
->Scissor
.Y
;
4514 params
[2] = ctx
->Scissor
.Width
;
4515 params
[3] = ctx
->Scissor
.Height
;
4517 case GL_SCISSOR_TEST
:
4518 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4520 case GL_SELECTION_BUFFER_SIZE
:
4521 params
[0] = ctx
->Select
.BufferSize
;
4523 case GL_SHADE_MODEL
:
4524 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4526 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4527 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4529 case GL_STENCIL_BITS
:
4530 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4532 case GL_STENCIL_CLEAR_VALUE
:
4533 params
[0] = ctx
->Stencil
.Clear
;
4535 case GL_STENCIL_FAIL
:
4536 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4538 case GL_STENCIL_FUNC
:
4539 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4541 case GL_STENCIL_PASS_DEPTH_FAIL
:
4542 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4544 case GL_STENCIL_PASS_DEPTH_PASS
:
4545 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4547 case GL_STENCIL_REF
:
4548 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4550 case GL_STENCIL_TEST
:
4551 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4553 case GL_STENCIL_VALUE_MASK
:
4554 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4556 case GL_STENCIL_WRITEMASK
:
4557 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4560 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4562 case GL_SUBPIXEL_BITS
:
4563 params
[0] = ctx
->Const
.SubPixelBits
;
4566 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4569 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4572 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4574 case GL_TEXTURE_1D_ARRAY_EXT
:
4575 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4576 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4578 case GL_TEXTURE_2D_ARRAY_EXT
:
4579 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4580 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4582 case GL_TEXTURE_BINDING_1D
:
4583 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
;
4585 case GL_TEXTURE_BINDING_2D
:
4586 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
;
4588 case GL_TEXTURE_BINDING_3D
:
4589 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
;
4591 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4592 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4593 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
;
4595 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4596 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4597 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
;
4599 case GL_TEXTURE_GEN_S
:
4600 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4602 case GL_TEXTURE_GEN_T
:
4603 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4605 case GL_TEXTURE_GEN_R
:
4606 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4608 case GL_TEXTURE_GEN_Q
:
4609 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4611 case GL_TEXTURE_MATRIX
:
4613 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4614 params
[0] = IROUND(matrix
[0]);
4615 params
[1] = IROUND(matrix
[1]);
4616 params
[2] = IROUND(matrix
[2]);
4617 params
[3] = IROUND(matrix
[3]);
4618 params
[4] = IROUND(matrix
[4]);
4619 params
[5] = IROUND(matrix
[5]);
4620 params
[6] = IROUND(matrix
[6]);
4621 params
[7] = IROUND(matrix
[7]);
4622 params
[8] = IROUND(matrix
[8]);
4623 params
[9] = IROUND(matrix
[9]);
4624 params
[10] = IROUND(matrix
[10]);
4625 params
[11] = IROUND(matrix
[11]);
4626 params
[12] = IROUND(matrix
[12]);
4627 params
[13] = IROUND(matrix
[13]);
4628 params
[14] = IROUND(matrix
[14]);
4629 params
[15] = IROUND(matrix
[15]);
4632 case GL_TEXTURE_STACK_DEPTH
:
4633 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4635 case GL_UNPACK_ALIGNMENT
:
4636 params
[0] = ctx
->Unpack
.Alignment
;
4638 case GL_UNPACK_LSB_FIRST
:
4639 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4641 case GL_UNPACK_ROW_LENGTH
:
4642 params
[0] = ctx
->Unpack
.RowLength
;
4644 case GL_UNPACK_SKIP_PIXELS
:
4645 params
[0] = ctx
->Unpack
.SkipPixels
;
4647 case GL_UNPACK_SKIP_ROWS
:
4648 params
[0] = ctx
->Unpack
.SkipRows
;
4650 case GL_UNPACK_SWAP_BYTES
:
4651 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4653 case GL_UNPACK_SKIP_IMAGES_EXT
:
4654 params
[0] = ctx
->Unpack
.SkipImages
;
4656 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4657 params
[0] = ctx
->Unpack
.ImageHeight
;
4659 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4660 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4663 params
[0] = ctx
->Viewport
.X
;
4664 params
[1] = ctx
->Viewport
.Y
;
4665 params
[2] = ctx
->Viewport
.Width
;
4666 params
[3] = ctx
->Viewport
.Height
;
4669 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4672 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4674 case GL_VERTEX_ARRAY
:
4675 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4677 case GL_VERTEX_ARRAY_SIZE
:
4678 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4680 case GL_VERTEX_ARRAY_TYPE
:
4681 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4683 case GL_VERTEX_ARRAY_STRIDE
:
4684 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4686 case GL_VERTEX_ARRAY_COUNT_EXT
:
4689 case GL_NORMAL_ARRAY
:
4690 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4692 case GL_NORMAL_ARRAY_TYPE
:
4693 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4695 case GL_NORMAL_ARRAY_STRIDE
:
4696 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4698 case GL_NORMAL_ARRAY_COUNT_EXT
:
4701 case GL_COLOR_ARRAY
:
4702 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4704 case GL_COLOR_ARRAY_SIZE
:
4705 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4707 case GL_COLOR_ARRAY_TYPE
:
4708 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4710 case GL_COLOR_ARRAY_STRIDE
:
4711 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4713 case GL_COLOR_ARRAY_COUNT_EXT
:
4716 case GL_INDEX_ARRAY
:
4717 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4719 case GL_INDEX_ARRAY_TYPE
:
4720 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4722 case GL_INDEX_ARRAY_STRIDE
:
4723 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4725 case GL_INDEX_ARRAY_COUNT_EXT
:
4728 case GL_TEXTURE_COORD_ARRAY
:
4729 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4731 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4732 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4734 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4735 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4737 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4738 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4740 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4743 case GL_EDGE_FLAG_ARRAY
:
4744 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4746 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4747 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4749 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4752 case GL_MAX_TEXTURE_UNITS_ARB
:
4753 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4754 params
[0] = ctx
->Const
.MaxTextureUnits
;
4756 case GL_ACTIVE_TEXTURE_ARB
:
4757 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4758 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4760 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4761 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4762 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4764 case GL_TEXTURE_CUBE_MAP_ARB
:
4765 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4766 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4768 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4769 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4770 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
;
4772 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4773 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4774 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4776 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4777 params
[0] = ctx
->Hint
.TextureCompression
;
4779 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4780 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4782 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4785 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4787 for (i
= 0; i
< n
; i
++)
4788 params
[i
] = ENUM_TO_INT(formats
[i
]);
4791 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4792 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4793 params
[0] = ctx
->Array
.LockFirst
;
4795 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4796 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4797 params
[0] = ctx
->Array
.LockCount
;
4799 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4801 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4802 params
[0] = IROUND(matrix
[0]);
4803 params
[1] = IROUND(matrix
[4]);
4804 params
[2] = IROUND(matrix
[8]);
4805 params
[3] = IROUND(matrix
[12]);
4806 params
[4] = IROUND(matrix
[1]);
4807 params
[5] = IROUND(matrix
[5]);
4808 params
[6] = IROUND(matrix
[9]);
4809 params
[7] = IROUND(matrix
[13]);
4810 params
[8] = IROUND(matrix
[2]);
4811 params
[9] = IROUND(matrix
[6]);
4812 params
[10] = IROUND(matrix
[10]);
4813 params
[11] = IROUND(matrix
[14]);
4814 params
[12] = IROUND(matrix
[3]);
4815 params
[13] = IROUND(matrix
[7]);
4816 params
[14] = IROUND(matrix
[11]);
4817 params
[15] = IROUND(matrix
[15]);
4820 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4822 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4823 params
[0] = IROUND(matrix
[0]);
4824 params
[1] = IROUND(matrix
[4]);
4825 params
[2] = IROUND(matrix
[8]);
4826 params
[3] = IROUND(matrix
[12]);
4827 params
[4] = IROUND(matrix
[1]);
4828 params
[5] = IROUND(matrix
[5]);
4829 params
[6] = IROUND(matrix
[9]);
4830 params
[7] = IROUND(matrix
[13]);
4831 params
[8] = IROUND(matrix
[2]);
4832 params
[9] = IROUND(matrix
[6]);
4833 params
[10] = IROUND(matrix
[10]);
4834 params
[11] = IROUND(matrix
[14]);
4835 params
[12] = IROUND(matrix
[3]);
4836 params
[13] = IROUND(matrix
[7]);
4837 params
[14] = IROUND(matrix
[11]);
4838 params
[15] = IROUND(matrix
[15]);
4841 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4843 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4844 params
[0] = IROUND(matrix
[0]);
4845 params
[1] = IROUND(matrix
[4]);
4846 params
[2] = IROUND(matrix
[8]);
4847 params
[3] = IROUND(matrix
[12]);
4848 params
[4] = IROUND(matrix
[1]);
4849 params
[5] = IROUND(matrix
[5]);
4850 params
[6] = IROUND(matrix
[9]);
4851 params
[7] = IROUND(matrix
[13]);
4852 params
[8] = IROUND(matrix
[2]);
4853 params
[9] = IROUND(matrix
[6]);
4854 params
[10] = IROUND(matrix
[10]);
4855 params
[11] = IROUND(matrix
[14]);
4856 params
[12] = IROUND(matrix
[3]);
4857 params
[13] = IROUND(matrix
[7]);
4858 params
[14] = IROUND(matrix
[11]);
4859 params
[15] = IROUND(matrix
[15]);
4862 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4864 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4865 params
[0] = IROUND(matrix
[0]);
4866 params
[1] = IROUND(matrix
[4]);
4867 params
[2] = IROUND(matrix
[8]);
4868 params
[3] = IROUND(matrix
[12]);
4869 params
[4] = IROUND(matrix
[1]);
4870 params
[5] = IROUND(matrix
[5]);
4871 params
[6] = IROUND(matrix
[9]);
4872 params
[7] = IROUND(matrix
[13]);
4873 params
[8] = IROUND(matrix
[2]);
4874 params
[9] = IROUND(matrix
[6]);
4875 params
[10] = IROUND(matrix
[10]);
4876 params
[11] = IROUND(matrix
[14]);
4877 params
[12] = IROUND(matrix
[3]);
4878 params
[13] = IROUND(matrix
[7]);
4879 params
[14] = IROUND(matrix
[11]);
4880 params
[15] = IROUND(matrix
[15]);
4883 case GL_COLOR_MATRIX_SGI
:
4885 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4886 params
[0] = IROUND(matrix
[0]);
4887 params
[1] = IROUND(matrix
[1]);
4888 params
[2] = IROUND(matrix
[2]);
4889 params
[3] = IROUND(matrix
[3]);
4890 params
[4] = IROUND(matrix
[4]);
4891 params
[5] = IROUND(matrix
[5]);
4892 params
[6] = IROUND(matrix
[6]);
4893 params
[7] = IROUND(matrix
[7]);
4894 params
[8] = IROUND(matrix
[8]);
4895 params
[9] = IROUND(matrix
[9]);
4896 params
[10] = IROUND(matrix
[10]);
4897 params
[11] = IROUND(matrix
[11]);
4898 params
[12] = IROUND(matrix
[12]);
4899 params
[13] = IROUND(matrix
[13]);
4900 params
[14] = IROUND(matrix
[14]);
4901 params
[15] = IROUND(matrix
[15]);
4904 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4905 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4907 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4908 params
[0] = MAX_COLOR_STACK_DEPTH
;
4910 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4911 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4913 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4914 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4916 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4917 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4919 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4920 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4922 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4923 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4925 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4926 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4928 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4929 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4931 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4932 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4934 case GL_CONVOLUTION_1D_EXT
:
4935 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4936 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4938 case GL_CONVOLUTION_2D_EXT
:
4939 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4940 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4942 case GL_SEPARABLE_2D_EXT
:
4943 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4944 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4946 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4947 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4948 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4950 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4951 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4952 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4954 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4955 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4956 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4958 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4959 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4960 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4962 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4963 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4964 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4966 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4967 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4968 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4970 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4971 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4972 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4974 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4975 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4976 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4979 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4980 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4983 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4984 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4986 case GL_COLOR_TABLE_SGI
:
4987 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4988 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
4990 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4991 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4992 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
4994 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4995 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4996 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
4998 case GL_TEXTURE_COLOR_TABLE_SGI
:
4999 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
5000 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
5002 case GL_COLOR_SUM_EXT
:
5003 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
5004 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
5006 case GL_CURRENT_SECONDARY_COLOR_EXT
:
5007 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5009 FLUSH_CURRENT(ctx
, 0);
5010 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
5011 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
5012 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
5013 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
5016 case GL_SECONDARY_COLOR_ARRAY_EXT
:
5017 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5018 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
5020 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
5021 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5022 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
5024 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
5025 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5026 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
5028 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
5029 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5030 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
5032 case GL_CURRENT_FOG_COORDINATE_EXT
:
5033 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5035 FLUSH_CURRENT(ctx
, 0);
5036 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5039 case GL_FOG_COORDINATE_ARRAY_EXT
:
5040 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5041 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
5043 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5044 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5045 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
5047 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5048 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5049 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
5051 case GL_FOG_COORDINATE_SOURCE_EXT
:
5052 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5053 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5055 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5056 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5057 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5059 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5060 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5061 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5063 case GL_MULTISAMPLE_ARB
:
5064 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5066 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5067 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5069 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5070 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5072 case GL_SAMPLE_COVERAGE_ARB
:
5073 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5075 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5076 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5078 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5079 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5081 case GL_SAMPLE_BUFFERS_ARB
:
5082 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5084 case GL_SAMPLES_ARB
:
5085 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5087 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5088 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5089 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5091 case GL_POINT_SPRITE_NV
:
5092 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5093 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5095 case GL_POINT_SPRITE_R_MODE_NV
:
5096 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5097 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5099 case GL_POINT_SPRITE_COORD_ORIGIN
:
5100 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5101 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5103 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5104 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5105 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5107 case GL_VERTEX_PROGRAM_BINDING_NV
:
5108 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5109 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5111 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5112 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5113 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5115 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5116 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5117 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5119 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5120 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5121 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5123 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5124 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5125 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5127 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5128 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5129 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5131 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5132 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5133 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5135 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5136 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5137 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5139 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5140 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5141 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5143 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5144 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5145 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5147 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5148 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5149 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5151 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5152 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5153 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5155 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5156 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5157 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5159 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5160 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5161 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5163 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5164 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5165 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5167 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5168 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5169 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5171 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5172 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5173 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5175 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5176 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5177 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5179 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5180 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5181 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5183 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5184 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5185 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5187 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5188 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5189 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5191 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5192 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5193 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5195 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5196 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5197 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5199 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5200 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5201 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5203 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5204 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5205 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5207 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5208 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5209 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5211 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5212 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5213 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5215 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5216 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5217 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5219 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5220 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5221 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5223 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5224 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5225 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5227 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5228 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5229 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5231 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5232 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5233 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5235 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5236 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5237 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5239 case GL_FRAGMENT_PROGRAM_NV
:
5240 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5241 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5243 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5244 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5245 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5247 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5248 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5249 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5251 case GL_TEXTURE_RECTANGLE_NV
:
5252 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5253 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5255 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5256 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5257 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
;
5259 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5260 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5261 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5263 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5264 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5265 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5267 case GL_ACTIVE_STENCIL_FACE_EXT
:
5268 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5269 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5271 case GL_MAX_SHININESS_NV
:
5272 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5273 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5275 case GL_MAX_SPOT_EXPONENT_NV
:
5276 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5277 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5279 case GL_ARRAY_BUFFER_BINDING_ARB
:
5280 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5282 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5283 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5285 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5286 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5288 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5289 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5291 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5292 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5294 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5295 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5297 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5298 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5300 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5301 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5303 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5304 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5306 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5307 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5309 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5310 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5311 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5313 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5314 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5315 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5317 case GL_VERTEX_PROGRAM_ARB
:
5318 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5319 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5321 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5322 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5323 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5325 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5326 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5327 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5329 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5330 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5331 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5333 case GL_MAX_PROGRAM_MATRICES_ARB
:
5334 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5335 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5337 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5338 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5339 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5341 case GL_CURRENT_MATRIX_ARB
:
5342 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5344 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5345 params
[0] = IROUND(matrix
[0]);
5346 params
[1] = IROUND(matrix
[1]);
5347 params
[2] = IROUND(matrix
[2]);
5348 params
[3] = IROUND(matrix
[3]);
5349 params
[4] = IROUND(matrix
[4]);
5350 params
[5] = IROUND(matrix
[5]);
5351 params
[6] = IROUND(matrix
[6]);
5352 params
[7] = IROUND(matrix
[7]);
5353 params
[8] = IROUND(matrix
[8]);
5354 params
[9] = IROUND(matrix
[9]);
5355 params
[10] = IROUND(matrix
[10]);
5356 params
[11] = IROUND(matrix
[11]);
5357 params
[12] = IROUND(matrix
[12]);
5358 params
[13] = IROUND(matrix
[13]);
5359 params
[14] = IROUND(matrix
[14]);
5360 params
[15] = IROUND(matrix
[15]);
5363 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5364 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5366 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5367 params
[0] = IROUND(matrix
[0]);
5368 params
[1] = IROUND(matrix
[4]);
5369 params
[2] = IROUND(matrix
[8]);
5370 params
[3] = IROUND(matrix
[12]);
5371 params
[4] = IROUND(matrix
[1]);
5372 params
[5] = IROUND(matrix
[5]);
5373 params
[6] = IROUND(matrix
[9]);
5374 params
[7] = IROUND(matrix
[13]);
5375 params
[8] = IROUND(matrix
[2]);
5376 params
[9] = IROUND(matrix
[6]);
5377 params
[10] = IROUND(matrix
[10]);
5378 params
[11] = IROUND(matrix
[14]);
5379 params
[12] = IROUND(matrix
[3]);
5380 params
[13] = IROUND(matrix
[7]);
5381 params
[14] = IROUND(matrix
[11]);
5382 params
[15] = IROUND(matrix
[15]);
5385 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5386 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5387 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5389 case GL_PROGRAM_ERROR_POSITION_ARB
:
5390 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5391 params
[0] = ctx
->Program
.ErrorPos
;
5393 case GL_FRAGMENT_PROGRAM_ARB
:
5394 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5395 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5397 case GL_MAX_TEXTURE_COORDS_ARB
:
5398 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5399 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5401 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5402 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5403 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5405 case GL_DEPTH_BOUNDS_TEST_EXT
:
5406 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5407 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5409 case GL_DEPTH_BOUNDS_EXT
:
5410 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5411 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5412 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5414 case GL_DEPTH_CLAMP
:
5415 CHECK_EXT1(ARB_depth_clamp
, "GetIntegerv");
5416 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.DepthClamp
);
5418 case GL_MAX_DRAW_BUFFERS_ARB
:
5419 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5421 case GL_DRAW_BUFFER0_ARB
:
5422 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5424 case GL_DRAW_BUFFER1_ARB
:
5427 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5428 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5431 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5432 params
[0] = ENUM_TO_INT(buffer
);
5435 case GL_DRAW_BUFFER2_ARB
:
5438 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5439 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5442 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5443 params
[0] = ENUM_TO_INT(buffer
);
5446 case GL_DRAW_BUFFER3_ARB
:
5449 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5450 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5453 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5454 params
[0] = ENUM_TO_INT(buffer
);
5457 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5458 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5459 params
[0] = _mesa_get_color_read_type(ctx
);
5461 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5462 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5463 params
[0] = _mesa_get_color_read_format(ctx
);
5465 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5466 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5469 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5470 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5473 case GL_NUM_PASSES_ATI
:
5474 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5477 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5478 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5481 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5482 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5485 case GL_COLOR_ALPHA_PAIRING_ATI
:
5486 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5487 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5489 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5490 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5493 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5494 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5497 case GL_STENCIL_BACK_FUNC
:
5498 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5500 case GL_STENCIL_BACK_VALUE_MASK
:
5501 params
[0] = ctx
->Stencil
.ValueMask
[1];
5503 case GL_STENCIL_BACK_WRITEMASK
:
5504 params
[0] = ctx
->Stencil
.WriteMask
[1];
5506 case GL_STENCIL_BACK_REF
:
5507 params
[0] = ctx
->Stencil
.Ref
[1];
5509 case GL_STENCIL_BACK_FAIL
:
5510 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5512 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5513 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5515 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5516 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5518 case GL_FRAMEBUFFER_BINDING_EXT
:
5519 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5520 params
[0] = ctx
->DrawBuffer
->Name
;
5522 case GL_RENDERBUFFER_BINDING_EXT
:
5523 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5524 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5526 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5527 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5528 params
[0] = ctx
->Const
.MaxColorAttachments
;
5530 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5531 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5532 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5534 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5535 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5536 params
[0] = ctx
->ReadBuffer
->Name
;
5538 case GL_PROVOKING_VERTEX_EXT
:
5539 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5540 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ProvokingVertex
);
5542 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
5543 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5544 params
[0] = BOOLEAN_TO_INT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
5546 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5547 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5548 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5550 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5551 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5552 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5554 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5555 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5556 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5558 case GL_MAX_VARYING_FLOATS_ARB
:
5559 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5560 params
[0] = ctx
->Const
.MaxVarying
* 4;
5562 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5563 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5564 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5566 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5567 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5568 params
[0] = ctx
->Const
.MaxCombinedTextureImageUnits
;
5570 case GL_CURRENT_PROGRAM
:
5571 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5572 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5574 case GL_MAX_SAMPLES
:
5575 CHECK_EXT1(ARB_framebuffer_object
, "GetIntegerv");
5576 params
[0] = ctx
->Const
.MaxSamples
;
5578 case GL_VERTEX_ARRAY_BINDING_APPLE
:
5579 CHECK_EXT1(APPLE_vertex_array_object
, "GetIntegerv");
5580 params
[0] = ctx
->Array
.ArrayObj
->Name
;
5582 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
5583 CHECK_EXT1(ARB_seamless_cube_map
, "GetIntegerv");
5584 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.CubeMapSeamless
);
5586 case GL_MAX_SERVER_WAIT_TIMEOUT
:
5587 CHECK_EXT1(ARB_sync
, "GetIntegerv");
5588 params
[0] = INT64_TO_INT(ctx
->Const
.MaxServerWaitTimeout
);
5590 case GL_NUM_EXTENSIONS
:
5591 params
[0] = _mesa_get_extension_count(ctx
);
5593 case GL_MAJOR_VERSION
:
5594 params
[0] = ctx
->VersionMajor
;
5596 case GL_MINOR_VERSION
:
5597 params
[0] = ctx
->VersionMinor
;
5600 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5604 #if FEATURE_ARB_sync
5606 _mesa_GetInteger64v( GLenum pname
, GLint64
*params
)
5608 GET_CURRENT_CONTEXT(ctx
);
5609 ASSERT_OUTSIDE_BEGIN_END(ctx
);
5615 _mesa_update_state(ctx
);
5617 if (ctx
->Driver
.GetInteger64v
&&
5618 ctx
->Driver
.GetInteger64v(ctx
, pname
, params
))
5622 case GL_ACCUM_RED_BITS
:
5623 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
5625 case GL_ACCUM_GREEN_BITS
:
5626 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
5628 case GL_ACCUM_BLUE_BITS
:
5629 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
5631 case GL_ACCUM_ALPHA_BITS
:
5632 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
5634 case GL_ACCUM_CLEAR_VALUE
:
5635 params
[0] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[0]);
5636 params
[1] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[1]);
5637 params
[2] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[2]);
5638 params
[3] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[3]);
5641 params
[0] = IROUND64(ctx
->Pixel
.AlphaBias
);
5644 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
5646 case GL_ALPHA_SCALE
:
5647 params
[0] = IROUND64(ctx
->Pixel
.AlphaScale
);
5650 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.AlphaEnabled
);
5652 case GL_ALPHA_TEST_FUNC
:
5653 params
[0] = ENUM_TO_INT64(ctx
->Color
.AlphaFunc
);
5655 case GL_ALPHA_TEST_REF
:
5656 params
[0] = FLOAT_TO_INT64(ctx
->Color
.AlphaRef
);
5658 case GL_ATTRIB_STACK_DEPTH
:
5659 params
[0] = (GLint64
)(ctx
->AttribStackDepth
);
5661 case GL_AUTO_NORMAL
:
5662 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.AutoNormal
);
5664 case GL_AUX_BUFFERS
:
5665 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
5668 params
[0] = BOOLEAN_TO_INT64((ctx
->Color
.BlendEnabled
& 1));
5671 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstRGB
);
5674 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcRGB
);
5676 case GL_BLEND_SRC_RGB_EXT
:
5677 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcRGB
);
5679 case GL_BLEND_DST_RGB_EXT
:
5680 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstRGB
);
5682 case GL_BLEND_SRC_ALPHA_EXT
:
5683 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcA
);
5685 case GL_BLEND_DST_ALPHA_EXT
:
5686 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstA
);
5688 case GL_BLEND_EQUATION
:
5689 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendEquationRGB
);
5691 case GL_BLEND_EQUATION_ALPHA_EXT
:
5692 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendEquationA
);
5694 case GL_BLEND_COLOR_EXT
:
5695 params
[0] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[0]);
5696 params
[1] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[1]);
5697 params
[2] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[2]);
5698 params
[3] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[3]);
5701 params
[0] = IROUND64(ctx
->Pixel
.BlueBias
);
5704 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.blueBits
);
5707 params
[0] = IROUND64(ctx
->Pixel
.BlueScale
);
5709 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
5710 params
[0] = (GLint64
)(ctx
->ClientAttribStackDepth
);
5712 case GL_CLIP_PLANE0
:
5713 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
5715 case GL_CLIP_PLANE1
:
5716 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
5718 case GL_CLIP_PLANE2
:
5719 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
5721 case GL_CLIP_PLANE3
:
5722 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
5724 case GL_CLIP_PLANE4
:
5725 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
5727 case GL_CLIP_PLANE5
:
5728 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
5730 case GL_COLOR_CLEAR_VALUE
:
5731 params
[0] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[0]);
5732 params
[1] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[1]);
5733 params
[2] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[2]);
5734 params
[3] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[3]);
5736 case GL_COLOR_MATERIAL
:
5737 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.ColorMaterialEnabled
);
5739 case GL_COLOR_MATERIAL_FACE
:
5740 params
[0] = ENUM_TO_INT64(ctx
->Light
.ColorMaterialFace
);
5742 case GL_COLOR_MATERIAL_PARAMETER
:
5743 params
[0] = ENUM_TO_INT64(ctx
->Light
.ColorMaterialMode
);
5745 case GL_COLOR_WRITEMASK
:
5746 params
[0] = (GLint64
)(ctx
->Color
.ColorMask
[0][RCOMP
] ? 1 : 0);
5747 params
[1] = (GLint64
)(ctx
->Color
.ColorMask
[0][GCOMP
] ? 1 : 0);
5748 params
[2] = (GLint64
)(ctx
->Color
.ColorMask
[0][BCOMP
] ? 1 : 0);
5749 params
[3] = (GLint64
)(ctx
->Color
.ColorMask
[0][ACOMP
] ? 1 : 0);
5752 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.CullFlag
);
5754 case GL_CULL_FACE_MODE
:
5755 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.CullFaceMode
);
5757 case GL_CURRENT_COLOR
:
5759 FLUSH_CURRENT(ctx
, 0);
5760 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
5761 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
5762 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
5763 params
[3] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
5766 case GL_CURRENT_INDEX
:
5768 FLUSH_CURRENT(ctx
, 0);
5769 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
5772 case GL_CURRENT_NORMAL
:
5774 FLUSH_CURRENT(ctx
, 0);
5775 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
5776 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
5777 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
5780 case GL_CURRENT_RASTER_COLOR
:
5781 params
[0] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[0]);
5782 params
[1] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[1]);
5783 params
[2] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[2]);
5784 params
[3] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[3]);
5786 case GL_CURRENT_RASTER_DISTANCE
:
5787 params
[0] = IROUND64(ctx
->Current
.RasterDistance
);
5789 case GL_CURRENT_RASTER_INDEX
:
5790 params
[0] = IROUND64(ctx
->Current
.RasterIndex
);
5792 case GL_CURRENT_RASTER_POSITION
:
5793 params
[0] = IROUND64(ctx
->Current
.RasterPos
[0]);
5794 params
[1] = IROUND64(ctx
->Current
.RasterPos
[1]);
5795 params
[2] = IROUND64(ctx
->Current
.RasterPos
[2]);
5796 params
[3] = IROUND64(ctx
->Current
.RasterPos
[3]);
5798 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
5799 params
[0] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[0]);
5800 params
[1] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[1]);
5801 params
[2] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[2]);
5802 params
[3] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[3]);
5804 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
5806 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
5807 params
[0] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
5808 params
[1] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
5809 params
[2] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
5810 params
[3] = IROUND64(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
5813 case GL_CURRENT_RASTER_POSITION_VALID
:
5814 params
[0] = BOOLEAN_TO_INT64(ctx
->Current
.RasterPosValid
);
5816 case GL_CURRENT_TEXTURE_COORDS
:
5818 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
5819 FLUSH_CURRENT(ctx
, 0);
5820 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
5821 params
[1] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
5822 params
[2] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
5823 params
[3] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
5827 params
[0] = IROUND64(ctx
->Pixel
.DepthBias
);
5830 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.depthBits
);
5832 case GL_DEPTH_CLEAR_VALUE
:
5833 params
[0] = FLOAT_TO_INT64(((GLfloat
) ctx
->Depth
.Clear
));
5836 params
[0] = ENUM_TO_INT64(ctx
->Depth
.Func
);
5838 case GL_DEPTH_RANGE
:
5839 params
[0] = FLOAT_TO_INT64(ctx
->Viewport
.Near
);
5840 params
[1] = FLOAT_TO_INT64(ctx
->Viewport
.Far
);
5842 case GL_DEPTH_SCALE
:
5843 params
[0] = IROUND64(ctx
->Pixel
.DepthScale
);
5846 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.Test
);
5848 case GL_DEPTH_WRITEMASK
:
5849 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.Mask
);
5852 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.DitherFlag
);
5854 case GL_DOUBLEBUFFER
:
5855 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
5857 case GL_DRAW_BUFFER
:
5858 params
[0] = ENUM_TO_INT64(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5862 FLUSH_CURRENT(ctx
, 0);
5863 params
[0] = BOOLEAN_TO_INT64((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
5866 case GL_FEEDBACK_BUFFER_SIZE
:
5867 params
[0] = (GLint64
)(ctx
->Feedback
.BufferSize
);
5869 case GL_FEEDBACK_BUFFER_TYPE
:
5870 params
[0] = ENUM_TO_INT64(ctx
->Feedback
.Type
);
5873 params
[0] = BOOLEAN_TO_INT64(ctx
->Fog
.Enabled
);
5876 params
[0] = FLOAT_TO_INT64(ctx
->Fog
.Color
[0]);
5877 params
[1] = FLOAT_TO_INT64(ctx
->Fog
.Color
[1]);
5878 params
[2] = FLOAT_TO_INT64(ctx
->Fog
.Color
[2]);
5879 params
[3] = FLOAT_TO_INT64(ctx
->Fog
.Color
[3]);
5881 case GL_FOG_DENSITY
:
5882 params
[0] = IROUND64(ctx
->Fog
.Density
);
5885 params
[0] = IROUND64(ctx
->Fog
.End
);
5888 params
[0] = ENUM_TO_INT64(ctx
->Hint
.Fog
);
5891 params
[0] = IROUND64(ctx
->Fog
.Index
);
5894 params
[0] = ENUM_TO_INT64(ctx
->Fog
.Mode
);
5897 params
[0] = IROUND64(ctx
->Fog
.Start
);
5900 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.FrontFace
);
5903 params
[0] = IROUND64(ctx
->Pixel
.GreenBias
);
5906 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.greenBits
);
5908 case GL_GREEN_SCALE
:
5909 params
[0] = IROUND64(ctx
->Pixel
.GreenScale
);
5912 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.indexBits
);
5914 case GL_INDEX_CLEAR_VALUE
:
5915 params
[0] = (GLint64
)(ctx
->Color
.ClearIndex
);
5918 params
[0] = BOOLEAN_TO_INT64(!ctx
->DrawBuffer
->Visual
.rgbMode
);
5920 case GL_INDEX_OFFSET
:
5921 params
[0] = (GLint64
)(ctx
->Pixel
.IndexOffset
);
5923 case GL_INDEX_SHIFT
:
5924 params
[0] = (GLint64
)(ctx
->Pixel
.IndexShift
);
5926 case GL_INDEX_WRITEMASK
:
5927 params
[0] = (GLint64
)(ctx
->Color
.IndexMask
);
5930 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[0].Enabled
);
5933 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[1].Enabled
);
5936 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[2].Enabled
);
5939 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[3].Enabled
);
5942 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[4].Enabled
);
5945 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[5].Enabled
);
5948 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[6].Enabled
);
5951 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[7].Enabled
);
5954 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Enabled
);
5956 case GL_LIGHT_MODEL_AMBIENT
:
5957 params
[0] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[0]);
5958 params
[1] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[1]);
5959 params
[2] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[2]);
5960 params
[3] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[3]);
5962 case GL_LIGHT_MODEL_COLOR_CONTROL
:
5963 params
[0] = ENUM_TO_INT64(ctx
->Light
.Model
.ColorControl
);
5965 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
5966 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Model
.LocalViewer
);
5968 case GL_LIGHT_MODEL_TWO_SIDE
:
5969 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Model
.TwoSide
);
5971 case GL_LINE_SMOOTH
:
5972 params
[0] = BOOLEAN_TO_INT64(ctx
->Line
.SmoothFlag
);
5974 case GL_LINE_SMOOTH_HINT
:
5975 params
[0] = ENUM_TO_INT64(ctx
->Hint
.LineSmooth
);
5977 case GL_LINE_STIPPLE
:
5978 params
[0] = BOOLEAN_TO_INT64(ctx
->Line
.StippleFlag
);
5980 case GL_LINE_STIPPLE_PATTERN
:
5981 params
[0] = (GLint64
)(ctx
->Line
.StipplePattern
);
5983 case GL_LINE_STIPPLE_REPEAT
:
5984 params
[0] = (GLint64
)(ctx
->Line
.StippleFactor
);
5987 params
[0] = IROUND64(ctx
->Line
.Width
);
5989 case GL_LINE_WIDTH_GRANULARITY
:
5990 params
[0] = IROUND64(ctx
->Const
.LineWidthGranularity
);
5992 case GL_LINE_WIDTH_RANGE
:
5993 params
[0] = IROUND64(ctx
->Const
.MinLineWidthAA
);
5994 params
[1] = IROUND64(ctx
->Const
.MaxLineWidthAA
);
5996 case GL_ALIASED_LINE_WIDTH_RANGE
:
5997 params
[0] = IROUND64(ctx
->Const
.MinLineWidth
);
5998 params
[1] = IROUND64(ctx
->Const
.MaxLineWidth
);
6001 params
[0] = (GLint64
)(ctx
->List
.ListBase
);
6004 params
[0] = (GLint64
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
6009 if (!ctx
->CompileFlag
)
6011 else if (ctx
->ExecuteFlag
)
6012 mode
= GL_COMPILE_AND_EXECUTE
;
6015 params
[0] = ENUM_TO_INT64(mode
);
6018 case GL_INDEX_LOGIC_OP
:
6019 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.IndexLogicOpEnabled
);
6021 case GL_COLOR_LOGIC_OP
:
6022 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.ColorLogicOpEnabled
);
6024 case GL_LOGIC_OP_MODE
:
6025 params
[0] = ENUM_TO_INT64(ctx
->Color
.LogicOp
);
6027 case GL_MAP1_COLOR_4
:
6028 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Color4
);
6030 case GL_MAP1_GRID_DOMAIN
:
6031 params
[0] = IROUND64(ctx
->Eval
.MapGrid1u1
);
6032 params
[1] = IROUND64(ctx
->Eval
.MapGrid1u2
);
6034 case GL_MAP1_GRID_SEGMENTS
:
6035 params
[0] = (GLint64
)(ctx
->Eval
.MapGrid1un
);
6038 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Index
);
6040 case GL_MAP1_NORMAL
:
6041 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Normal
);
6043 case GL_MAP1_TEXTURE_COORD_1
:
6044 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord1
);
6046 case GL_MAP1_TEXTURE_COORD_2
:
6047 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord2
);
6049 case GL_MAP1_TEXTURE_COORD_3
:
6050 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord3
);
6052 case GL_MAP1_TEXTURE_COORD_4
:
6053 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord4
);
6055 case GL_MAP1_VERTEX_3
:
6056 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Vertex3
);
6058 case GL_MAP1_VERTEX_4
:
6059 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Vertex4
);
6061 case GL_MAP2_COLOR_4
:
6062 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Color4
);
6064 case GL_MAP2_GRID_DOMAIN
:
6065 params
[0] = IROUND64(ctx
->Eval
.MapGrid2u1
);
6066 params
[1] = IROUND64(ctx
->Eval
.MapGrid2u2
);
6067 params
[2] = IROUND64(ctx
->Eval
.MapGrid2v1
);
6068 params
[3] = IROUND64(ctx
->Eval
.MapGrid2v2
);
6070 case GL_MAP2_GRID_SEGMENTS
:
6071 params
[0] = (GLint64
)(ctx
->Eval
.MapGrid2un
);
6072 params
[1] = (GLint64
)(ctx
->Eval
.MapGrid2vn
);
6075 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Index
);
6077 case GL_MAP2_NORMAL
:
6078 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Normal
);
6080 case GL_MAP2_TEXTURE_COORD_1
:
6081 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord1
);
6083 case GL_MAP2_TEXTURE_COORD_2
:
6084 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord2
);
6086 case GL_MAP2_TEXTURE_COORD_3
:
6087 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord3
);
6089 case GL_MAP2_TEXTURE_COORD_4
:
6090 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord4
);
6092 case GL_MAP2_VERTEX_3
:
6093 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Vertex3
);
6095 case GL_MAP2_VERTEX_4
:
6096 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Vertex4
);
6099 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MapColorFlag
);
6101 case GL_MAP_STENCIL
:
6102 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MapStencilFlag
);
6104 case GL_MATRIX_MODE
:
6105 params
[0] = ENUM_TO_INT64(ctx
->Transform
.MatrixMode
);
6107 case GL_MAX_ATTRIB_STACK_DEPTH
:
6108 params
[0] = (GLint64
)(MAX_ATTRIB_STACK_DEPTH
);
6110 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
6111 params
[0] = (GLint64
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
6113 case GL_MAX_CLIP_PLANES
:
6114 params
[0] = (GLint64
)(ctx
->Const
.MaxClipPlanes
);
6116 case GL_MAX_ELEMENTS_VERTICES
:
6117 params
[0] = (GLint64
)(ctx
->Const
.MaxArrayLockSize
);
6119 case GL_MAX_ELEMENTS_INDICES
:
6120 params
[0] = (GLint64
)(ctx
->Const
.MaxArrayLockSize
);
6122 case GL_MAX_EVAL_ORDER
:
6123 params
[0] = (GLint64
)(MAX_EVAL_ORDER
);
6126 params
[0] = (GLint64
)(ctx
->Const
.MaxLights
);
6128 case GL_MAX_LIST_NESTING
:
6129 params
[0] = (GLint64
)(MAX_LIST_NESTING
);
6131 case GL_MAX_MODELVIEW_STACK_DEPTH
:
6132 params
[0] = (GLint64
)(MAX_MODELVIEW_STACK_DEPTH
);
6134 case GL_MAX_NAME_STACK_DEPTH
:
6135 params
[0] = (GLint64
)(MAX_NAME_STACK_DEPTH
);
6137 case GL_MAX_PIXEL_MAP_TABLE
:
6138 params
[0] = (GLint64
)(MAX_PIXEL_MAP_TABLE
);
6140 case GL_MAX_PROJECTION_STACK_DEPTH
:
6141 params
[0] = (GLint64
)(MAX_PROJECTION_STACK_DEPTH
);
6143 case GL_MAX_TEXTURE_SIZE
:
6144 params
[0] = (GLint64
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
6146 case GL_MAX_3D_TEXTURE_SIZE
:
6147 params
[0] = (GLint64
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
6149 case GL_MAX_TEXTURE_STACK_DEPTH
:
6150 params
[0] = (GLint64
)(MAX_TEXTURE_STACK_DEPTH
);
6152 case GL_MAX_VIEWPORT_DIMS
:
6153 params
[0] = (GLint64
)(ctx
->Const
.MaxViewportWidth
);
6154 params
[1] = (GLint64
)(ctx
->Const
.MaxViewportHeight
);
6156 case GL_MODELVIEW_MATRIX
:
6158 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
6159 params
[0] = IROUND64(matrix
[0]);
6160 params
[1] = IROUND64(matrix
[1]);
6161 params
[2] = IROUND64(matrix
[2]);
6162 params
[3] = IROUND64(matrix
[3]);
6163 params
[4] = IROUND64(matrix
[4]);
6164 params
[5] = IROUND64(matrix
[5]);
6165 params
[6] = IROUND64(matrix
[6]);
6166 params
[7] = IROUND64(matrix
[7]);
6167 params
[8] = IROUND64(matrix
[8]);
6168 params
[9] = IROUND64(matrix
[9]);
6169 params
[10] = IROUND64(matrix
[10]);
6170 params
[11] = IROUND64(matrix
[11]);
6171 params
[12] = IROUND64(matrix
[12]);
6172 params
[13] = IROUND64(matrix
[13]);
6173 params
[14] = IROUND64(matrix
[14]);
6174 params
[15] = IROUND64(matrix
[15]);
6177 case GL_MODELVIEW_STACK_DEPTH
:
6178 params
[0] = (GLint64
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
6180 case GL_NAME_STACK_DEPTH
:
6181 params
[0] = (GLint64
)(ctx
->Select
.NameStackDepth
);
6184 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.Normalize
);
6186 case GL_PACK_ALIGNMENT
:
6187 params
[0] = (GLint64
)(ctx
->Pack
.Alignment
);
6189 case GL_PACK_LSB_FIRST
:
6190 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.LsbFirst
);
6192 case GL_PACK_ROW_LENGTH
:
6193 params
[0] = (GLint64
)(ctx
->Pack
.RowLength
);
6195 case GL_PACK_SKIP_PIXELS
:
6196 params
[0] = (GLint64
)(ctx
->Pack
.SkipPixels
);
6198 case GL_PACK_SKIP_ROWS
:
6199 params
[0] = (GLint64
)(ctx
->Pack
.SkipRows
);
6201 case GL_PACK_SWAP_BYTES
:
6202 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.SwapBytes
);
6204 case GL_PACK_SKIP_IMAGES_EXT
:
6205 params
[0] = (GLint64
)(ctx
->Pack
.SkipImages
);
6207 case GL_PACK_IMAGE_HEIGHT_EXT
:
6208 params
[0] = (GLint64
)(ctx
->Pack
.ImageHeight
);
6210 case GL_PACK_INVERT_MESA
:
6211 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.Invert
);
6213 case GL_PERSPECTIVE_CORRECTION_HINT
:
6214 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PerspectiveCorrection
);
6216 case GL_PIXEL_MAP_A_TO_A_SIZE
:
6217 params
[0] = (GLint64
)(ctx
->PixelMaps
.AtoA
.Size
);
6219 case GL_PIXEL_MAP_B_TO_B_SIZE
:
6220 params
[0] = (GLint64
)(ctx
->PixelMaps
.BtoB
.Size
);
6222 case GL_PIXEL_MAP_G_TO_G_SIZE
:
6223 params
[0] = (GLint64
)(ctx
->PixelMaps
.GtoG
.Size
);
6225 case GL_PIXEL_MAP_I_TO_A_SIZE
:
6226 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoA
.Size
);
6228 case GL_PIXEL_MAP_I_TO_B_SIZE
:
6229 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoB
.Size
);
6231 case GL_PIXEL_MAP_I_TO_G_SIZE
:
6232 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoG
.Size
);
6234 case GL_PIXEL_MAP_I_TO_I_SIZE
:
6235 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoI
.Size
);
6237 case GL_PIXEL_MAP_I_TO_R_SIZE
:
6238 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoR
.Size
);
6240 case GL_PIXEL_MAP_R_TO_R_SIZE
:
6241 params
[0] = (GLint64
)(ctx
->PixelMaps
.RtoR
.Size
);
6243 case GL_PIXEL_MAP_S_TO_S_SIZE
:
6244 params
[0] = (GLint64
)(ctx
->PixelMaps
.StoS
.Size
);
6247 params
[0] = IROUND64(ctx
->Point
.Size
);
6249 case GL_POINT_SIZE_GRANULARITY
:
6250 params
[0] = IROUND64(ctx
->Const
.PointSizeGranularity
);
6252 case GL_POINT_SIZE_RANGE
:
6253 params
[0] = IROUND64(ctx
->Const
.MinPointSizeAA
);
6254 params
[1] = IROUND64(ctx
->Const
.MaxPointSizeAA
);
6256 case GL_ALIASED_POINT_SIZE_RANGE
:
6257 params
[0] = IROUND64(ctx
->Const
.MinPointSize
);
6258 params
[1] = IROUND64(ctx
->Const
.MaxPointSize
);
6260 case GL_POINT_SMOOTH
:
6261 params
[0] = BOOLEAN_TO_INT64(ctx
->Point
.SmoothFlag
);
6263 case GL_POINT_SMOOTH_HINT
:
6264 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PointSmooth
);
6266 case GL_POINT_SIZE_MIN_EXT
:
6267 params
[0] = IROUND64(ctx
->Point
.MinSize
);
6269 case GL_POINT_SIZE_MAX_EXT
:
6270 params
[0] = IROUND64(ctx
->Point
.MaxSize
);
6272 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
6273 params
[0] = IROUND64(ctx
->Point
.Threshold
);
6275 case GL_DISTANCE_ATTENUATION_EXT
:
6276 params
[0] = IROUND64(ctx
->Point
.Params
[0]);
6277 params
[1] = IROUND64(ctx
->Point
.Params
[1]);
6278 params
[2] = IROUND64(ctx
->Point
.Params
[2]);
6280 case GL_POLYGON_MODE
:
6281 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.FrontMode
);
6282 params
[1] = ENUM_TO_INT64(ctx
->Polygon
.BackMode
);
6284 case GL_POLYGON_OFFSET_BIAS_EXT
:
6285 params
[0] = IROUND64(ctx
->Polygon
.OffsetUnits
);
6287 case GL_POLYGON_OFFSET_FACTOR
:
6288 params
[0] = IROUND64(ctx
->Polygon
.OffsetFactor
);
6290 case GL_POLYGON_OFFSET_UNITS
:
6291 params
[0] = IROUND64(ctx
->Polygon
.OffsetUnits
);
6293 case GL_POLYGON_OFFSET_POINT
:
6294 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetPoint
);
6296 case GL_POLYGON_OFFSET_LINE
:
6297 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetLine
);
6299 case GL_POLYGON_OFFSET_FILL
:
6300 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetFill
);
6302 case GL_POLYGON_SMOOTH
:
6303 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.SmoothFlag
);
6305 case GL_POLYGON_SMOOTH_HINT
:
6306 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PolygonSmooth
);
6308 case GL_POLYGON_STIPPLE
:
6309 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.StippleFlag
);
6311 case GL_PROJECTION_MATRIX
:
6313 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
6314 params
[0] = IROUND64(matrix
[0]);
6315 params
[1] = IROUND64(matrix
[1]);
6316 params
[2] = IROUND64(matrix
[2]);
6317 params
[3] = IROUND64(matrix
[3]);
6318 params
[4] = IROUND64(matrix
[4]);
6319 params
[5] = IROUND64(matrix
[5]);
6320 params
[6] = IROUND64(matrix
[6]);
6321 params
[7] = IROUND64(matrix
[7]);
6322 params
[8] = IROUND64(matrix
[8]);
6323 params
[9] = IROUND64(matrix
[9]);
6324 params
[10] = IROUND64(matrix
[10]);
6325 params
[11] = IROUND64(matrix
[11]);
6326 params
[12] = IROUND64(matrix
[12]);
6327 params
[13] = IROUND64(matrix
[13]);
6328 params
[14] = IROUND64(matrix
[14]);
6329 params
[15] = IROUND64(matrix
[15]);
6332 case GL_PROJECTION_STACK_DEPTH
:
6333 params
[0] = (GLint64
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
6335 case GL_READ_BUFFER
:
6336 params
[0] = ENUM_TO_INT64(ctx
->ReadBuffer
->ColorReadBuffer
);
6339 params
[0] = IROUND64(ctx
->Pixel
.RedBias
);
6342 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.redBits
);
6345 params
[0] = IROUND64(ctx
->Pixel
.RedScale
);
6347 case GL_RENDER_MODE
:
6348 params
[0] = ENUM_TO_INT64(ctx
->RenderMode
);
6350 case GL_RESCALE_NORMAL
:
6351 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.RescaleNormals
);
6354 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.rgbMode
);
6356 case GL_SCISSOR_BOX
:
6357 params
[0] = (GLint64
)(ctx
->Scissor
.X
);
6358 params
[1] = (GLint64
)(ctx
->Scissor
.Y
);
6359 params
[2] = (GLint64
)(ctx
->Scissor
.Width
);
6360 params
[3] = (GLint64
)(ctx
->Scissor
.Height
);
6362 case GL_SCISSOR_TEST
:
6363 params
[0] = BOOLEAN_TO_INT64(ctx
->Scissor
.Enabled
);
6365 case GL_SELECTION_BUFFER_SIZE
:
6366 params
[0] = (GLint64
)(ctx
->Select
.BufferSize
);
6368 case GL_SHADE_MODEL
:
6369 params
[0] = ENUM_TO_INT64(ctx
->Light
.ShadeModel
);
6371 case GL_SHARED_TEXTURE_PALETTE_EXT
:
6372 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.SharedPalette
);
6374 case GL_STENCIL_BITS
:
6375 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
6377 case GL_STENCIL_CLEAR_VALUE
:
6378 params
[0] = (GLint64
)(ctx
->Stencil
.Clear
);
6380 case GL_STENCIL_FAIL
:
6381 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
6383 case GL_STENCIL_FUNC
:
6384 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
6386 case GL_STENCIL_PASS_DEPTH_FAIL
:
6387 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
6389 case GL_STENCIL_PASS_DEPTH_PASS
:
6390 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
6392 case GL_STENCIL_REF
:
6393 params
[0] = (GLint64
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
6395 case GL_STENCIL_TEST
:
6396 params
[0] = BOOLEAN_TO_INT64(ctx
->Stencil
.Enabled
);
6398 case GL_STENCIL_VALUE_MASK
:
6399 params
[0] = (GLint64
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
6401 case GL_STENCIL_WRITEMASK
:
6402 params
[0] = (GLint64
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
6405 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.stereoMode
);
6407 case GL_SUBPIXEL_BITS
:
6408 params
[0] = (GLint64
)(ctx
->Const
.SubPixelBits
);
6411 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D
));
6414 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D
));
6417 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_3D
));
6419 case GL_TEXTURE_1D_ARRAY_EXT
:
6420 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6421 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
6423 case GL_TEXTURE_2D_ARRAY_EXT
:
6424 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6425 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
6427 case GL_TEXTURE_BINDING_1D
:
6428 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
6430 case GL_TEXTURE_BINDING_2D
:
6431 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
6433 case GL_TEXTURE_BINDING_3D
:
6434 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
6436 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
6437 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6438 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
6440 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
6441 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6442 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
6444 case GL_TEXTURE_GEN_S
:
6445 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
6447 case GL_TEXTURE_GEN_T
:
6448 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
6450 case GL_TEXTURE_GEN_R
:
6451 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
6453 case GL_TEXTURE_GEN_Q
:
6454 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
6456 case GL_TEXTURE_MATRIX
:
6458 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
6459 params
[0] = IROUND64(matrix
[0]);
6460 params
[1] = IROUND64(matrix
[1]);
6461 params
[2] = IROUND64(matrix
[2]);
6462 params
[3] = IROUND64(matrix
[3]);
6463 params
[4] = IROUND64(matrix
[4]);
6464 params
[5] = IROUND64(matrix
[5]);
6465 params
[6] = IROUND64(matrix
[6]);
6466 params
[7] = IROUND64(matrix
[7]);
6467 params
[8] = IROUND64(matrix
[8]);
6468 params
[9] = IROUND64(matrix
[9]);
6469 params
[10] = IROUND64(matrix
[10]);
6470 params
[11] = IROUND64(matrix
[11]);
6471 params
[12] = IROUND64(matrix
[12]);
6472 params
[13] = IROUND64(matrix
[13]);
6473 params
[14] = IROUND64(matrix
[14]);
6474 params
[15] = IROUND64(matrix
[15]);
6477 case GL_TEXTURE_STACK_DEPTH
:
6478 params
[0] = (GLint64
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
6480 case GL_UNPACK_ALIGNMENT
:
6481 params
[0] = (GLint64
)(ctx
->Unpack
.Alignment
);
6483 case GL_UNPACK_LSB_FIRST
:
6484 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.LsbFirst
);
6486 case GL_UNPACK_ROW_LENGTH
:
6487 params
[0] = (GLint64
)(ctx
->Unpack
.RowLength
);
6489 case GL_UNPACK_SKIP_PIXELS
:
6490 params
[0] = (GLint64
)(ctx
->Unpack
.SkipPixels
);
6492 case GL_UNPACK_SKIP_ROWS
:
6493 params
[0] = (GLint64
)(ctx
->Unpack
.SkipRows
);
6495 case GL_UNPACK_SWAP_BYTES
:
6496 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.SwapBytes
);
6498 case GL_UNPACK_SKIP_IMAGES_EXT
:
6499 params
[0] = (GLint64
)(ctx
->Unpack
.SkipImages
);
6501 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
6502 params
[0] = (GLint64
)(ctx
->Unpack
.ImageHeight
);
6504 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
6505 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.ClientStorage
);
6508 params
[0] = (GLint64
)(ctx
->Viewport
.X
);
6509 params
[1] = (GLint64
)(ctx
->Viewport
.Y
);
6510 params
[2] = (GLint64
)(ctx
->Viewport
.Width
);
6511 params
[3] = (GLint64
)(ctx
->Viewport
.Height
);
6514 params
[0] = IROUND64(ctx
->Pixel
.ZoomX
);
6517 params
[0] = IROUND64(ctx
->Pixel
.ZoomY
);
6519 case GL_VERTEX_ARRAY
:
6520 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
6522 case GL_VERTEX_ARRAY_SIZE
:
6523 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
6525 case GL_VERTEX_ARRAY_TYPE
:
6526 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Vertex
.Type
);
6528 case GL_VERTEX_ARRAY_STRIDE
:
6529 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
6531 case GL_VERTEX_ARRAY_COUNT_EXT
:
6532 params
[0] = (GLint64
)(0);
6534 case GL_NORMAL_ARRAY
:
6535 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
6537 case GL_NORMAL_ARRAY_TYPE
:
6538 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Normal
.Type
);
6540 case GL_NORMAL_ARRAY_STRIDE
:
6541 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
6543 case GL_NORMAL_ARRAY_COUNT_EXT
:
6544 params
[0] = (GLint64
)(0);
6546 case GL_COLOR_ARRAY
:
6547 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Color
.Enabled
);
6549 case GL_COLOR_ARRAY_SIZE
:
6550 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Color
.Size
);
6552 case GL_COLOR_ARRAY_TYPE
:
6553 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Color
.Type
);
6555 case GL_COLOR_ARRAY_STRIDE
:
6556 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
6558 case GL_COLOR_ARRAY_COUNT_EXT
:
6559 params
[0] = (GLint64
)(0);
6561 case GL_INDEX_ARRAY
:
6562 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Index
.Enabled
);
6564 case GL_INDEX_ARRAY_TYPE
:
6565 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Index
.Type
);
6567 case GL_INDEX_ARRAY_STRIDE
:
6568 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
6570 case GL_INDEX_ARRAY_COUNT_EXT
:
6571 params
[0] = (GLint64
)(0);
6573 case GL_TEXTURE_COORD_ARRAY
:
6574 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
6576 case GL_TEXTURE_COORD_ARRAY_SIZE
:
6577 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
6579 case GL_TEXTURE_COORD_ARRAY_TYPE
:
6580 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
6582 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
6583 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
6585 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
6586 params
[0] = (GLint64
)(0);
6588 case GL_EDGE_FLAG_ARRAY
:
6589 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
6591 case GL_EDGE_FLAG_ARRAY_STRIDE
:
6592 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
6594 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
6595 params
[0] = (GLint64
)(0);
6597 case GL_MAX_TEXTURE_UNITS_ARB
:
6598 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6599 params
[0] = (GLint64
)(ctx
->Const
.MaxTextureUnits
);
6601 case GL_ACTIVE_TEXTURE_ARB
:
6602 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6603 params
[0] = (GLint64
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
6605 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
6606 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6607 params
[0] = (GLint64
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
6609 case GL_TEXTURE_CUBE_MAP_ARB
:
6610 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6611 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
6613 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
6614 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6615 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
6617 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
6618 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6619 params
[0] = (GLint64
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
6621 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
6622 params
[0] = (GLint64
)(ctx
->Hint
.TextureCompression
);
6624 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
6625 params
[0] = (GLint64
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
6627 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
6630 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
6632 for (i
= 0; i
< n
; i
++)
6633 params
[i
] = ENUM_TO_INT64(formats
[i
]);
6636 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
6637 CHECK_EXT1(EXT_compiled_vertex_array
, "GetInteger64v");
6638 params
[0] = (GLint64
)(ctx
->Array
.LockFirst
);
6640 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
6641 CHECK_EXT1(EXT_compiled_vertex_array
, "GetInteger64v");
6642 params
[0] = (GLint64
)(ctx
->Array
.LockCount
);
6644 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
6646 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
6647 params
[0] = IROUND64(matrix
[0]);
6648 params
[1] = IROUND64(matrix
[4]);
6649 params
[2] = IROUND64(matrix
[8]);
6650 params
[3] = IROUND64(matrix
[12]);
6651 params
[4] = IROUND64(matrix
[1]);
6652 params
[5] = IROUND64(matrix
[5]);
6653 params
[6] = IROUND64(matrix
[9]);
6654 params
[7] = IROUND64(matrix
[13]);
6655 params
[8] = IROUND64(matrix
[2]);
6656 params
[9] = IROUND64(matrix
[6]);
6657 params
[10] = IROUND64(matrix
[10]);
6658 params
[11] = IROUND64(matrix
[14]);
6659 params
[12] = IROUND64(matrix
[3]);
6660 params
[13] = IROUND64(matrix
[7]);
6661 params
[14] = IROUND64(matrix
[11]);
6662 params
[15] = IROUND64(matrix
[15]);
6665 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
6667 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
6668 params
[0] = IROUND64(matrix
[0]);
6669 params
[1] = IROUND64(matrix
[4]);
6670 params
[2] = IROUND64(matrix
[8]);
6671 params
[3] = IROUND64(matrix
[12]);
6672 params
[4] = IROUND64(matrix
[1]);
6673 params
[5] = IROUND64(matrix
[5]);
6674 params
[6] = IROUND64(matrix
[9]);
6675 params
[7] = IROUND64(matrix
[13]);
6676 params
[8] = IROUND64(matrix
[2]);
6677 params
[9] = IROUND64(matrix
[6]);
6678 params
[10] = IROUND64(matrix
[10]);
6679 params
[11] = IROUND64(matrix
[14]);
6680 params
[12] = IROUND64(matrix
[3]);
6681 params
[13] = IROUND64(matrix
[7]);
6682 params
[14] = IROUND64(matrix
[11]);
6683 params
[15] = IROUND64(matrix
[15]);
6686 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
6688 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
6689 params
[0] = IROUND64(matrix
[0]);
6690 params
[1] = IROUND64(matrix
[4]);
6691 params
[2] = IROUND64(matrix
[8]);
6692 params
[3] = IROUND64(matrix
[12]);
6693 params
[4] = IROUND64(matrix
[1]);
6694 params
[5] = IROUND64(matrix
[5]);
6695 params
[6] = IROUND64(matrix
[9]);
6696 params
[7] = IROUND64(matrix
[13]);
6697 params
[8] = IROUND64(matrix
[2]);
6698 params
[9] = IROUND64(matrix
[6]);
6699 params
[10] = IROUND64(matrix
[10]);
6700 params
[11] = IROUND64(matrix
[14]);
6701 params
[12] = IROUND64(matrix
[3]);
6702 params
[13] = IROUND64(matrix
[7]);
6703 params
[14] = IROUND64(matrix
[11]);
6704 params
[15] = IROUND64(matrix
[15]);
6707 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
6709 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
6710 params
[0] = IROUND64(matrix
[0]);
6711 params
[1] = IROUND64(matrix
[4]);
6712 params
[2] = IROUND64(matrix
[8]);
6713 params
[3] = IROUND64(matrix
[12]);
6714 params
[4] = IROUND64(matrix
[1]);
6715 params
[5] = IROUND64(matrix
[5]);
6716 params
[6] = IROUND64(matrix
[9]);
6717 params
[7] = IROUND64(matrix
[13]);
6718 params
[8] = IROUND64(matrix
[2]);
6719 params
[9] = IROUND64(matrix
[6]);
6720 params
[10] = IROUND64(matrix
[10]);
6721 params
[11] = IROUND64(matrix
[14]);
6722 params
[12] = IROUND64(matrix
[3]);
6723 params
[13] = IROUND64(matrix
[7]);
6724 params
[14] = IROUND64(matrix
[11]);
6725 params
[15] = IROUND64(matrix
[15]);
6728 case GL_COLOR_MATRIX_SGI
:
6730 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
6731 params
[0] = IROUND64(matrix
[0]);
6732 params
[1] = IROUND64(matrix
[1]);
6733 params
[2] = IROUND64(matrix
[2]);
6734 params
[3] = IROUND64(matrix
[3]);
6735 params
[4] = IROUND64(matrix
[4]);
6736 params
[5] = IROUND64(matrix
[5]);
6737 params
[6] = IROUND64(matrix
[6]);
6738 params
[7] = IROUND64(matrix
[7]);
6739 params
[8] = IROUND64(matrix
[8]);
6740 params
[9] = IROUND64(matrix
[9]);
6741 params
[10] = IROUND64(matrix
[10]);
6742 params
[11] = IROUND64(matrix
[11]);
6743 params
[12] = IROUND64(matrix
[12]);
6744 params
[13] = IROUND64(matrix
[13]);
6745 params
[14] = IROUND64(matrix
[14]);
6746 params
[15] = IROUND64(matrix
[15]);
6749 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
6750 params
[0] = (GLint64
)(ctx
->ColorMatrixStack
.Depth
+ 1);
6752 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
6753 params
[0] = (GLint64
)(MAX_COLOR_STACK_DEPTH
);
6755 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
6756 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[0]);
6758 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
6759 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[1]);
6761 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
6762 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[2]);
6764 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
6765 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[3]);
6767 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
6768 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[0]);
6770 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
6771 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[1]);
6773 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
6774 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[2]);
6776 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
6777 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[3]);
6779 case GL_CONVOLUTION_1D_EXT
:
6780 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6781 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Convolution1DEnabled
);
6783 case GL_CONVOLUTION_2D_EXT
:
6784 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6785 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Convolution2DEnabled
);
6787 case GL_SEPARABLE_2D_EXT
:
6788 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6789 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Separable2DEnabled
);
6791 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
6792 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6793 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[0]);
6795 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
6796 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6797 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[1]);
6799 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
6800 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6801 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[2]);
6803 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
6804 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6805 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[3]);
6807 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
6808 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6809 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[0]);
6811 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
6812 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6813 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[1]);
6815 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
6816 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6817 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[2]);
6819 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
6820 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6821 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[3]);
6824 CHECK_EXT1(EXT_histogram
, "GetInteger64v");
6825 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.HistogramEnabled
);
6828 CHECK_EXT1(EXT_histogram
, "GetInteger64v");
6829 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MinMaxEnabled
);
6831 case GL_COLOR_TABLE_SGI
:
6832 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6833 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
6835 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
6836 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6837 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
6839 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
6840 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6841 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
6843 case GL_TEXTURE_COLOR_TABLE_SGI
:
6844 CHECK_EXT1(SGI_texture_color_table
, "GetInteger64v");
6845 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
6847 case GL_COLOR_SUM_EXT
:
6848 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetInteger64v");
6849 params
[0] = BOOLEAN_TO_INT64(ctx
->Fog
.ColorSumEnabled
);
6851 case GL_CURRENT_SECONDARY_COLOR_EXT
:
6852 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6854 FLUSH_CURRENT(ctx
, 0);
6855 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
6856 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
6857 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
6858 params
[3] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
6861 case GL_SECONDARY_COLOR_ARRAY_EXT
:
6862 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6863 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
6865 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
6866 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6867 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
6869 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
6870 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6871 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
6873 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
6874 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6875 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
6877 case GL_CURRENT_FOG_COORDINATE_EXT
:
6878 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6880 FLUSH_CURRENT(ctx
, 0);
6881 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
6884 case GL_FOG_COORDINATE_ARRAY_EXT
:
6885 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6886 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
6888 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
6889 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6890 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
6892 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
6893 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6894 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
6896 case GL_FOG_COORDINATE_SOURCE_EXT
:
6897 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6898 params
[0] = ENUM_TO_INT64(ctx
->Fog
.FogCoordinateSource
);
6900 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
6901 CHECK_EXT1(EXT_texture_lod_bias
, "GetInteger64v");
6902 params
[0] = IROUND64(ctx
->Const
.MaxTextureLodBias
);
6904 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
6905 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetInteger64v");
6906 params
[0] = IROUND64(ctx
->Const
.MaxTextureMaxAnisotropy
);
6908 case GL_MULTISAMPLE_ARB
:
6909 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.Enabled
);
6911 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
6912 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleAlphaToCoverage
);
6914 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
6915 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleAlphaToOne
);
6917 case GL_SAMPLE_COVERAGE_ARB
:
6918 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleCoverage
);
6920 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
6921 params
[0] = IROUND64(ctx
->Multisample
.SampleCoverageValue
);
6923 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
6924 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleCoverageInvert
);
6926 case GL_SAMPLE_BUFFERS_ARB
:
6927 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
6929 case GL_SAMPLES_ARB
:
6930 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.samples
);
6932 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
6933 CHECK_EXT1(IBM_rasterpos_clip
, "GetInteger64v");
6934 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.RasterPositionUnclipped
);
6936 case GL_POINT_SPRITE_NV
:
6937 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetInteger64v");
6938 params
[0] = BOOLEAN_TO_INT64(ctx
->Point
.PointSprite
);
6940 case GL_POINT_SPRITE_R_MODE_NV
:
6941 CHECK_EXT1(NV_point_sprite
, "GetInteger64v");
6942 params
[0] = ENUM_TO_INT64(ctx
->Point
.SpriteRMode
);
6944 case GL_POINT_SPRITE_COORD_ORIGIN
:
6945 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetInteger64v");
6946 params
[0] = ENUM_TO_INT64(ctx
->Point
.SpriteOrigin
);
6948 case GL_GENERATE_MIPMAP_HINT_SGIS
:
6949 CHECK_EXT1(SGIS_generate_mipmap
, "GetInteger64v");
6950 params
[0] = ENUM_TO_INT64(ctx
->Hint
.GenerateMipmap
);
6952 case GL_VERTEX_PROGRAM_BINDING_NV
:
6953 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6954 params
[0] = (GLint64
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
6956 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
6957 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6958 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
6960 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
6961 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6962 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
6964 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
6965 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6966 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
6968 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
6969 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6970 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
6972 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
6973 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6974 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
6976 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
6977 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6978 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
6980 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
6981 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6982 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
6984 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
6985 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6986 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
6988 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
6989 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6990 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
6992 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
6993 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6994 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
6996 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
6997 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
6998 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
7000 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
7001 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7002 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
7004 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
7005 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7006 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
7008 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
7009 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7010 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
7012 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
7013 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7014 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
7016 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
7017 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7018 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
7020 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
7021 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7022 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[0]);
7024 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
7025 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7026 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[1]);
7028 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
7029 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7030 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[2]);
7032 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
7033 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7034 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[3]);
7036 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
7037 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7038 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[4]);
7040 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
7041 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7042 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[5]);
7044 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
7045 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7046 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[6]);
7048 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
7049 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7050 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[7]);
7052 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
7053 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7054 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[8]);
7056 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
7057 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7058 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[9]);
7060 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
7061 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7062 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[10]);
7064 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
7065 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7066 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[11]);
7068 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
7069 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7070 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[12]);
7072 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
7073 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7074 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[13]);
7076 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
7077 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7078 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[14]);
7080 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
7081 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7082 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[15]);
7084 case GL_FRAGMENT_PROGRAM_NV
:
7085 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7086 params
[0] = BOOLEAN_TO_INT64(ctx
->FragmentProgram
.Enabled
);
7088 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
7089 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7090 params
[0] = (GLint64
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
7092 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
7093 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7094 params
[0] = (GLint64
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
7096 case GL_TEXTURE_RECTANGLE_NV
:
7097 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7098 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
7100 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
7101 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7102 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
7104 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
7105 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7106 params
[0] = (GLint64
)(ctx
->Const
.MaxTextureRectSize
);
7108 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
7109 CHECK_EXT1(EXT_stencil_two_side
, "GetInteger64v");
7110 params
[0] = BOOLEAN_TO_INT64(ctx
->Stencil
.TestTwoSide
);
7112 case GL_ACTIVE_STENCIL_FACE_EXT
:
7113 CHECK_EXT1(EXT_stencil_two_side
, "GetInteger64v");
7114 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
7116 case GL_MAX_SHININESS_NV
:
7117 CHECK_EXT1(NV_light_max_exponent
, "GetInteger64v");
7118 params
[0] = IROUND64(ctx
->Const
.MaxShininess
);
7120 case GL_MAX_SPOT_EXPONENT_NV
:
7121 CHECK_EXT1(NV_light_max_exponent
, "GetInteger64v");
7122 params
[0] = IROUND64(ctx
->Const
.MaxSpotExponent
);
7124 case GL_ARRAY_BUFFER_BINDING_ARB
:
7125 params
[0] = (GLint64
)(ctx
->Array
.ArrayBufferObj
->Name
);
7127 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
7128 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
7130 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
7131 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
7133 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
7134 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
7136 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
7137 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
7139 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
7140 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
7142 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
7143 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
7145 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
7146 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
7148 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
7149 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
7151 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
7152 params
[0] = (GLint64
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
7154 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
7155 CHECK_EXT1(EXT_pixel_buffer_object
, "GetInteger64v");
7156 params
[0] = (GLint64
)(ctx
->Pack
.BufferObj
->Name
);
7158 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
7159 CHECK_EXT1(EXT_pixel_buffer_object
, "GetInteger64v");
7160 params
[0] = (GLint64
)(ctx
->Unpack
.BufferObj
->Name
);
7162 case GL_VERTEX_PROGRAM_ARB
:
7163 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7164 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.Enabled
);
7166 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
7167 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7168 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.PointSizeEnabled
);
7170 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
7171 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7172 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.TwoSideEnabled
);
7174 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
7175 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7176 params
[0] = (GLint64
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
7178 case GL_MAX_PROGRAM_MATRICES_ARB
:
7179 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7180 params
[0] = (GLint64
)(ctx
->Const
.MaxProgramMatrices
);
7182 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
7183 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7184 params
[0] = BOOLEAN_TO_INT64(ctx
->CurrentStack
->Depth
+ 1);
7186 case GL_CURRENT_MATRIX_ARB
:
7187 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7189 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
7190 params
[0] = IROUND64(matrix
[0]);
7191 params
[1] = IROUND64(matrix
[1]);
7192 params
[2] = IROUND64(matrix
[2]);
7193 params
[3] = IROUND64(matrix
[3]);
7194 params
[4] = IROUND64(matrix
[4]);
7195 params
[5] = IROUND64(matrix
[5]);
7196 params
[6] = IROUND64(matrix
[6]);
7197 params
[7] = IROUND64(matrix
[7]);
7198 params
[8] = IROUND64(matrix
[8]);
7199 params
[9] = IROUND64(matrix
[9]);
7200 params
[10] = IROUND64(matrix
[10]);
7201 params
[11] = IROUND64(matrix
[11]);
7202 params
[12] = IROUND64(matrix
[12]);
7203 params
[13] = IROUND64(matrix
[13]);
7204 params
[14] = IROUND64(matrix
[14]);
7205 params
[15] = IROUND64(matrix
[15]);
7208 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
7209 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetInteger64v");
7211 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
7212 params
[0] = IROUND64(matrix
[0]);
7213 params
[1] = IROUND64(matrix
[4]);
7214 params
[2] = IROUND64(matrix
[8]);
7215 params
[3] = IROUND64(matrix
[12]);
7216 params
[4] = IROUND64(matrix
[1]);
7217 params
[5] = IROUND64(matrix
[5]);
7218 params
[6] = IROUND64(matrix
[9]);
7219 params
[7] = IROUND64(matrix
[13]);
7220 params
[8] = IROUND64(matrix
[2]);
7221 params
[9] = IROUND64(matrix
[6]);
7222 params
[10] = IROUND64(matrix
[10]);
7223 params
[11] = IROUND64(matrix
[14]);
7224 params
[12] = IROUND64(matrix
[3]);
7225 params
[13] = IROUND64(matrix
[7]);
7226 params
[14] = IROUND64(matrix
[11]);
7227 params
[15] = IROUND64(matrix
[15]);
7230 case GL_MAX_VERTEX_ATTRIBS_ARB
:
7231 CHECK_EXT1(ARB_vertex_program
, "GetInteger64v");
7232 params
[0] = (GLint64
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
7234 case GL_PROGRAM_ERROR_POSITION_ARB
:
7235 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetInteger64v");
7236 params
[0] = (GLint64
)(ctx
->Program
.ErrorPos
);
7238 case GL_FRAGMENT_PROGRAM_ARB
:
7239 CHECK_EXT1(ARB_fragment_program
, "GetInteger64v");
7240 params
[0] = BOOLEAN_TO_INT64(ctx
->FragmentProgram
.Enabled
);
7242 case GL_MAX_TEXTURE_COORDS_ARB
:
7243 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7244 params
[0] = (GLint64
)(ctx
->Const
.MaxTextureCoordUnits
);
7246 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
7247 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7248 params
[0] = (GLint64
)(ctx
->Const
.MaxTextureImageUnits
);
7250 case GL_DEPTH_BOUNDS_TEST_EXT
:
7251 CHECK_EXT1(EXT_depth_bounds_test
, "GetInteger64v");
7252 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.BoundsTest
);
7254 case GL_DEPTH_BOUNDS_EXT
:
7255 CHECK_EXT1(EXT_depth_bounds_test
, "GetInteger64v");
7256 params
[0] = IROUND64(ctx
->Depth
.BoundsMin
);
7257 params
[1] = IROUND64(ctx
->Depth
.BoundsMax
);
7259 case GL_DEPTH_CLAMP
:
7260 CHECK_EXT1(ARB_depth_clamp
, "GetInteger64v");
7261 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.DepthClamp
);
7263 case GL_MAX_DRAW_BUFFERS_ARB
:
7264 params
[0] = (GLint64
)(ctx
->Const
.MaxDrawBuffers
);
7266 case GL_DRAW_BUFFER0_ARB
:
7267 params
[0] = ENUM_TO_INT64(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
7269 case GL_DRAW_BUFFER1_ARB
:
7272 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7273 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7276 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
7277 params
[0] = ENUM_TO_INT64(buffer
);
7280 case GL_DRAW_BUFFER2_ARB
:
7283 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7284 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7287 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
7288 params
[0] = ENUM_TO_INT64(buffer
);
7291 case GL_DRAW_BUFFER3_ARB
:
7294 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7295 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7298 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
7299 params
[0] = ENUM_TO_INT64(buffer
);
7302 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
7303 CHECK_EXT1(OES_read_format
, "GetInteger64v");
7304 params
[0] = (GLint64
)(_mesa_get_color_read_type(ctx
));
7306 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
7307 CHECK_EXT1(OES_read_format
, "GetInteger64v");
7308 params
[0] = (GLint64
)(_mesa_get_color_read_format(ctx
));
7310 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
7311 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7312 params
[0] = (GLint64
)(6);
7314 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
7315 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7316 params
[0] = (GLint64
)(8);
7318 case GL_NUM_PASSES_ATI
:
7319 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7320 params
[0] = (GLint64
)(2);
7322 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
7323 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7324 params
[0] = (GLint64
)(8);
7326 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
7327 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7328 params
[0] = (GLint64
)(16);
7330 case GL_COLOR_ALPHA_PAIRING_ATI
:
7331 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7332 params
[0] = BOOLEAN_TO_INT64(GL_TRUE
);
7334 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
7335 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7336 params
[0] = (GLint64
)(3);
7338 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
7339 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7340 params
[0] = (GLint64
)(3);
7342 case GL_STENCIL_BACK_FUNC
:
7343 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.Function
[1]);
7345 case GL_STENCIL_BACK_VALUE_MASK
:
7346 params
[0] = (GLint64
)(ctx
->Stencil
.ValueMask
[1]);
7348 case GL_STENCIL_BACK_WRITEMASK
:
7349 params
[0] = (GLint64
)(ctx
->Stencil
.WriteMask
[1]);
7351 case GL_STENCIL_BACK_REF
:
7352 params
[0] = (GLint64
)(ctx
->Stencil
.Ref
[1]);
7354 case GL_STENCIL_BACK_FAIL
:
7355 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.FailFunc
[1]);
7357 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
7358 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZFailFunc
[1]);
7360 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
7361 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZPassFunc
[1]);
7363 case GL_FRAMEBUFFER_BINDING_EXT
:
7364 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7365 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Name
);
7367 case GL_RENDERBUFFER_BINDING_EXT
:
7368 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7369 params
[0] = (GLint64
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
7371 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
7372 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7373 params
[0] = (GLint64
)(ctx
->Const
.MaxColorAttachments
);
7375 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
7376 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7377 params
[0] = (GLint64
)(ctx
->Const
.MaxRenderbufferSize
);
7379 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
7380 CHECK_EXT1(EXT_framebuffer_blit
, "GetInteger64v");
7381 params
[0] = (GLint64
)(ctx
->ReadBuffer
->Name
);
7383 case GL_PROVOKING_VERTEX_EXT
:
7384 CHECK_EXT1(EXT_provoking_vertex
, "GetInteger64v");
7385 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.ProvokingVertex
);
7387 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
7388 CHECK_EXT1(EXT_provoking_vertex
, "GetInteger64v");
7389 params
[0] = BOOLEAN_TO_INT64(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
7391 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
7392 CHECK_EXT1(ARB_fragment_shader
, "GetInteger64v");
7393 params
[0] = (GLint64
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
7395 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
7396 CHECK_EXT1(ARB_fragment_shader
, "GetInteger64v");
7397 params
[0] = ENUM_TO_INT64(ctx
->Hint
.FragmentShaderDerivative
);
7399 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
7400 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7401 params
[0] = (GLint64
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
7403 case GL_MAX_VARYING_FLOATS_ARB
:
7404 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7405 params
[0] = (GLint64
)(ctx
->Const
.MaxVarying
* 4);
7407 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
7408 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7409 params
[0] = (GLint64
)(ctx
->Const
.MaxVertexTextureImageUnits
);
7411 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
7412 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7413 params
[0] = (GLint64
)(ctx
->Const
.MaxCombinedTextureImageUnits
);
7415 case GL_CURRENT_PROGRAM
:
7416 CHECK_EXT1(ARB_shader_objects
, "GetInteger64v");
7417 params
[0] = (GLint64
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
7419 case GL_MAX_SAMPLES
:
7420 CHECK_EXT1(ARB_framebuffer_object
, "GetInteger64v");
7421 params
[0] = (GLint64
)(ctx
->Const
.MaxSamples
);
7423 case GL_VERTEX_ARRAY_BINDING_APPLE
:
7424 CHECK_EXT1(APPLE_vertex_array_object
, "GetInteger64v");
7425 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Name
);
7427 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
7428 CHECK_EXT1(ARB_seamless_cube_map
, "GetInteger64v");
7429 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.CubeMapSeamless
);
7431 case GL_MAX_SERVER_WAIT_TIMEOUT
:
7432 CHECK_EXT1(ARB_sync
, "GetInteger64v");
7433 params
[0] = ctx
->Const
.MaxServerWaitTimeout
;
7435 case GL_NUM_EXTENSIONS
:
7436 params
[0] = (GLint64
)(_mesa_get_extension_count(ctx
));
7438 case GL_MAJOR_VERSION
:
7439 params
[0] = (GLint64
)(ctx
->VersionMajor
);
7441 case GL_MINOR_VERSION
:
7442 params
[0] = (GLint64
)(ctx
->VersionMinor
);
7445 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetInteger64v(pname=0x%x)", pname
);
7448 #endif /* FEATURE_ARB_sync */
7452 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
7454 const GLfloat magic
= -1234.5F
;
7461 /* Init temp array to magic numbers so we can figure out how many values
7462 * are returned by the GetFloatv() call.
7464 for (i
= 0; i
< 16; i
++)
7467 _mesa_GetFloatv(pname
, values
);
7469 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
7470 params
[i
] = (GLdouble
) values
[i
];
7474 _mesa_GetBooleanIndexedv( GLenum pname
, GLuint index
, GLboolean
*params
)
7476 GET_CURRENT_CONTEXT(ctx
);
7477 ASSERT_OUTSIDE_BEGIN_END(ctx
);
7483 _mesa_update_state(ctx
);
7487 CHECK_EXT1(EXT_draw_buffers2
, "GetBooleanIndexedv");
7488 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7489 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetBooleanIndexedv(index=%u), index", pname
);
7491 params
[0] = INT_TO_BOOLEAN(((ctx
->Color
.BlendEnabled
>> index
) & 1));
7493 case GL_COLOR_WRITEMASK
:
7494 CHECK_EXT1(EXT_draw_buffers2
, "GetBooleanIndexedv");
7495 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7496 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetBooleanIndexedv(index=%u), index", pname
);
7498 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[index
][RCOMP
] ? 1 : 0);
7499 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[index
][GCOMP
] ? 1 : 0);
7500 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[index
][BCOMP
] ? 1 : 0);
7501 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[index
][ACOMP
] ? 1 : 0);
7504 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanIndexedv(pname=0x%x)", pname
);
7509 _mesa_GetIntegerIndexedv( GLenum pname
, GLuint index
, GLint
*params
)
7511 GET_CURRENT_CONTEXT(ctx
);
7512 ASSERT_OUTSIDE_BEGIN_END(ctx
);
7518 _mesa_update_state(ctx
);
7522 CHECK_EXT1(EXT_draw_buffers2
, "GetIntegerIndexedv");
7523 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7524 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetIntegerIndexedv(index=%u), index", pname
);
7526 params
[0] = ((ctx
->Color
.BlendEnabled
>> index
) & 1);
7528 case GL_COLOR_WRITEMASK
:
7529 CHECK_EXT1(EXT_draw_buffers2
, "GetIntegerIndexedv");
7530 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7531 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetIntegerIndexedv(index=%u), index", pname
);
7533 params
[0] = ctx
->Color
.ColorMask
[index
][RCOMP
] ? 1 : 0;
7534 params
[1] = ctx
->Color
.ColorMask
[index
][GCOMP
] ? 1 : 0;
7535 params
[2] = ctx
->Color
.ColorMask
[index
][BCOMP
] ? 1 : 0;
7536 params
[3] = ctx
->Color
.ColorMask
[index
][ACOMP
] ? 1 : 0;
7539 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerIndexedv(pname=0x%x)", pname
);
7543 #if FEATURE_ARB_sync
7545 _mesa_GetInteger64Indexedv( GLenum pname
, GLuint index
, GLint64
*params
)
7547 GET_CURRENT_CONTEXT(ctx
);
7548 ASSERT_OUTSIDE_BEGIN_END(ctx
);
7554 _mesa_update_state(ctx
);
7558 CHECK_EXT1(EXT_draw_buffers2
, "GetInteger64Indexedv");
7559 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7560 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetInteger64Indexedv(index=%u), index", pname
);
7562 params
[0] = (GLint64
)(((ctx
->Color
.BlendEnabled
>> index
) & 1));
7564 case GL_COLOR_WRITEMASK
:
7565 CHECK_EXT1(EXT_draw_buffers2
, "GetInteger64Indexedv");
7566 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7567 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetInteger64Indexedv(index=%u), index", pname
);
7569 params
[0] = (GLint64
)(ctx
->Color
.ColorMask
[index
][RCOMP
] ? 1 : 0);
7570 params
[1] = (GLint64
)(ctx
->Color
.ColorMask
[index
][GCOMP
] ? 1 : 0);
7571 params
[2] = (GLint64
)(ctx
->Color
.ColorMask
[index
][BCOMP
] ? 1 : 0);
7572 params
[3] = (GLint64
)(ctx
->Color
.ColorMask
[index
][ACOMP
] ? 1 : 0);
7575 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetInteger64Indexedv(pname=0x%x)", pname
);
7578 #endif /* FEATURE_ARB_sync */