3 *** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
9 #include "extensions.h"
15 #include "texcompress.h"
18 #define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
20 #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
22 #define ENUM_TO_BOOLEAN(E) ( (E) ? GL_TRUE : GL_FALSE )
23 #define ENUM_TO_INT(E) ( (GLint) (E) )
24 #define ENUM_TO_FLOAT(E) ( (GLfloat) (E) )
26 #define BOOLEAN_TO_INT(B) ( (GLint) (B) )
27 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
31 * Check if named extension is enabled, if not generate error and return.
33 #define CHECK_EXT1(EXT1, FUNC) \
34 if (!ctx->Extensions.EXT1) { \
35 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
40 * Check if either of two extensions is enabled.
42 #define CHECK_EXT2(EXT1, EXT2, FUNC) \
43 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \
44 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
49 * Check if either of three extensions is enabled.
51 #define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC) \
52 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
53 !ctx->Extensions.EXT3) { \
54 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
59 * Check if either of four extensions is enabled.
61 #define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \
62 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
63 !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \
64 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
70 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
72 GET_CURRENT_CONTEXT(ctx
);
73 ASSERT_OUTSIDE_BEGIN_END(ctx
);
79 _mesa_update_state(ctx
);
81 if (ctx
->Driver
.GetBooleanv
&&
82 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
86 case GL_ACCUM_RED_BITS
:
87 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumRedBits
);
89 case GL_ACCUM_GREEN_BITS
:
90 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
92 case GL_ACCUM_BLUE_BITS
:
93 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
95 case GL_ACCUM_ALPHA_BITS
:
96 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
98 case GL_ACCUM_CLEAR_VALUE
:
99 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
100 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
101 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
102 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
105 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
108 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.alphaBits
);
111 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
114 params
[0] = ctx
->Color
.AlphaEnabled
;
116 case GL_ALPHA_TEST_FUNC
:
117 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
119 case GL_ALPHA_TEST_REF
:
120 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
122 case GL_ATTRIB_STACK_DEPTH
:
123 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
126 params
[0] = ctx
->Eval
.AutoNormal
;
129 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
132 params
[0] = ctx
->Color
.BlendEnabled
;
135 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
138 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
140 case GL_BLEND_SRC_RGB_EXT
:
141 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
143 case GL_BLEND_DST_RGB_EXT
:
144 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
146 case GL_BLEND_SRC_ALPHA_EXT
:
147 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
149 case GL_BLEND_DST_ALPHA_EXT
:
150 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
152 case GL_BLEND_EQUATION
:
153 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
155 case GL_BLEND_EQUATION_ALPHA_EXT
:
156 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
158 case GL_BLEND_COLOR_EXT
:
159 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
160 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
161 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
162 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
165 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
168 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.blueBits
);
171 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
173 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
174 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
177 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
180 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
183 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
186 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
189 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
192 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
194 case GL_COLOR_CLEAR_VALUE
:
195 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
196 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
197 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
198 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
200 case GL_COLOR_MATERIAL
:
201 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
203 case GL_COLOR_MATERIAL_FACE
:
204 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
206 case GL_COLOR_MATERIAL_PARAMETER
:
207 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
209 case GL_COLOR_WRITEMASK
:
210 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
211 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
212 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
213 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
216 params
[0] = ctx
->Polygon
.CullFlag
;
218 case GL_CULL_FACE_MODE
:
219 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
221 case GL_CURRENT_COLOR
:
223 FLUSH_CURRENT(ctx
, 0);
224 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
225 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
226 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
227 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
230 case GL_CURRENT_INDEX
:
232 FLUSH_CURRENT(ctx
, 0);
233 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
236 case GL_CURRENT_NORMAL
:
238 FLUSH_CURRENT(ctx
, 0);
239 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
240 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
241 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
244 case GL_CURRENT_RASTER_COLOR
:
245 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
246 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
247 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
248 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
250 case GL_CURRENT_RASTER_DISTANCE
:
251 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
253 case GL_CURRENT_RASTER_INDEX
:
254 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterIndex
);
256 case GL_CURRENT_RASTER_POSITION
:
257 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
258 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
259 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
260 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
262 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
263 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[0]);
264 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[1]);
265 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[2]);
266 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[3]);
268 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
270 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
271 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
272 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
273 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
274 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
277 case GL_CURRENT_RASTER_POSITION_VALID
:
278 params
[0] = ctx
->Current
.RasterPosValid
;
280 case GL_CURRENT_TEXTURE_COORDS
:
282 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
283 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
284 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
285 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
286 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
290 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
293 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
295 case GL_DEPTH_CLEAR_VALUE
:
296 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.Clear
);
299 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
302 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
303 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
306 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
309 params
[0] = ctx
->Depth
.Test
;
311 case GL_DEPTH_WRITEMASK
:
312 params
[0] = ctx
->Depth
.Mask
;
315 params
[0] = ctx
->Color
.DitherFlag
;
317 case GL_DOUBLEBUFFER
:
318 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
321 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
325 FLUSH_CURRENT(ctx
, 0);
326 params
[0] = (ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0);
329 case GL_FEEDBACK_BUFFER_SIZE
:
330 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
332 case GL_FEEDBACK_BUFFER_TYPE
:
333 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
336 params
[0] = ctx
->Fog
.Enabled
;
339 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
340 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
341 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
342 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
345 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
348 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
351 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
354 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
357 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
360 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
363 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
366 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
369 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
372 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
375 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
377 case GL_INDEX_CLEAR_VALUE
:
378 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
381 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
383 case GL_INDEX_OFFSET
:
384 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
387 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
389 case GL_INDEX_WRITEMASK
:
390 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
393 params
[0] = ctx
->Light
.Light
[0].Enabled
;
396 params
[0] = ctx
->Light
.Light
[1].Enabled
;
399 params
[0] = ctx
->Light
.Light
[2].Enabled
;
402 params
[0] = ctx
->Light
.Light
[3].Enabled
;
405 params
[0] = ctx
->Light
.Light
[4].Enabled
;
408 params
[0] = ctx
->Light
.Light
[5].Enabled
;
411 params
[0] = ctx
->Light
.Light
[6].Enabled
;
414 params
[0] = ctx
->Light
.Light
[7].Enabled
;
417 params
[0] = ctx
->Light
.Enabled
;
419 case GL_LIGHT_MODEL_AMBIENT
:
420 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
421 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
422 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
423 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
425 case GL_LIGHT_MODEL_COLOR_CONTROL
:
426 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
428 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
429 params
[0] = ctx
->Light
.Model
.LocalViewer
;
431 case GL_LIGHT_MODEL_TWO_SIDE
:
432 params
[0] = ctx
->Light
.Model
.TwoSide
;
435 params
[0] = ctx
->Line
.SmoothFlag
;
437 case GL_LINE_SMOOTH_HINT
:
438 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
440 case GL_LINE_STIPPLE
:
441 params
[0] = ctx
->Line
.StippleFlag
;
443 case GL_LINE_STIPPLE_PATTERN
:
444 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
446 case GL_LINE_STIPPLE_REPEAT
:
447 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
450 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
452 case GL_LINE_WIDTH_GRANULARITY
:
453 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
455 case GL_LINE_WIDTH_RANGE
:
456 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
457 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
459 case GL_ALIASED_LINE_WIDTH_RANGE
:
460 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
461 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
464 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
467 params
[0] = INT_TO_BOOLEAN(ctx
->ListState
.CurrentListNum
);
472 if (!ctx
->CompileFlag
)
474 else if (ctx
->ExecuteFlag
)
475 mode
= GL_COMPILE_AND_EXECUTE
;
478 params
[0] = ENUM_TO_BOOLEAN(mode
);
481 case GL_INDEX_LOGIC_OP
:
482 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
484 case GL_COLOR_LOGIC_OP
:
485 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
487 case GL_LOGIC_OP_MODE
:
488 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
490 case GL_MAP1_COLOR_4
:
491 params
[0] = ctx
->Eval
.Map1Color4
;
493 case GL_MAP1_GRID_DOMAIN
:
494 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
495 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
497 case GL_MAP1_GRID_SEGMENTS
:
498 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
501 params
[0] = ctx
->Eval
.Map1Index
;
504 params
[0] = ctx
->Eval
.Map1Normal
;
506 case GL_MAP1_TEXTURE_COORD_1
:
507 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
509 case GL_MAP1_TEXTURE_COORD_2
:
510 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
512 case GL_MAP1_TEXTURE_COORD_3
:
513 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
515 case GL_MAP1_TEXTURE_COORD_4
:
516 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
518 case GL_MAP1_VERTEX_3
:
519 params
[0] = ctx
->Eval
.Map1Vertex3
;
521 case GL_MAP1_VERTEX_4
:
522 params
[0] = ctx
->Eval
.Map1Vertex4
;
524 case GL_MAP2_COLOR_4
:
525 params
[0] = ctx
->Eval
.Map2Color4
;
527 case GL_MAP2_GRID_DOMAIN
:
528 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
529 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
530 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
531 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
533 case GL_MAP2_GRID_SEGMENTS
:
534 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
535 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
538 params
[0] = ctx
->Eval
.Map2Index
;
541 params
[0] = ctx
->Eval
.Map2Normal
;
543 case GL_MAP2_TEXTURE_COORD_1
:
544 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
546 case GL_MAP2_TEXTURE_COORD_2
:
547 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
549 case GL_MAP2_TEXTURE_COORD_3
:
550 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
552 case GL_MAP2_TEXTURE_COORD_4
:
553 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
555 case GL_MAP2_VERTEX_3
:
556 params
[0] = ctx
->Eval
.Map2Vertex3
;
558 case GL_MAP2_VERTEX_4
:
559 params
[0] = ctx
->Eval
.Map2Vertex4
;
562 params
[0] = ctx
->Pixel
.MapColorFlag
;
565 params
[0] = ctx
->Pixel
.MapStencilFlag
;
568 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
570 case GL_MAX_ATTRIB_STACK_DEPTH
:
571 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
573 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
574 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
576 case GL_MAX_CLIP_PLANES
:
577 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
579 case GL_MAX_ELEMENTS_VERTICES
:
580 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
582 case GL_MAX_ELEMENTS_INDICES
:
583 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
585 case GL_MAX_EVAL_ORDER
:
586 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
589 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
591 case GL_MAX_LIST_NESTING
:
592 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
594 case GL_MAX_MODELVIEW_STACK_DEPTH
:
595 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
597 case GL_MAX_NAME_STACK_DEPTH
:
598 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
600 case GL_MAX_PIXEL_MAP_TABLE
:
601 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
603 case GL_MAX_PROJECTION_STACK_DEPTH
:
604 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
606 case GL_MAX_TEXTURE_SIZE
:
607 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
609 case GL_MAX_3D_TEXTURE_SIZE
:
610 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
612 case GL_MAX_TEXTURE_STACK_DEPTH
:
613 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
615 case GL_MAX_VIEWPORT_DIMS
:
616 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
617 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
619 case GL_MODELVIEW_MATRIX
:
621 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
622 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
623 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
624 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
625 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
626 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
627 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
628 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
629 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
630 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
631 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
632 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
633 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
634 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
635 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
636 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
637 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
640 case GL_MODELVIEW_STACK_DEPTH
:
641 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
643 case GL_NAME_STACK_DEPTH
:
644 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
647 params
[0] = ctx
->Transform
.Normalize
;
649 case GL_PACK_ALIGNMENT
:
650 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
652 case GL_PACK_LSB_FIRST
:
653 params
[0] = ctx
->Pack
.LsbFirst
;
655 case GL_PACK_ROW_LENGTH
:
656 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
658 case GL_PACK_SKIP_PIXELS
:
659 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
661 case GL_PACK_SKIP_ROWS
:
662 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
664 case GL_PACK_SWAP_BYTES
:
665 params
[0] = ctx
->Pack
.SwapBytes
;
667 case GL_PACK_SKIP_IMAGES_EXT
:
668 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
670 case GL_PACK_IMAGE_HEIGHT_EXT
:
671 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
673 case GL_PACK_INVERT_MESA
:
674 params
[0] = ctx
->Pack
.Invert
;
676 case GL_PERSPECTIVE_CORRECTION_HINT
:
677 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
679 case GL_PIXEL_MAP_A_TO_A_SIZE
:
680 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.AtoA
.Size
);
682 case GL_PIXEL_MAP_B_TO_B_SIZE
:
683 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.BtoB
.Size
);
685 case GL_PIXEL_MAP_G_TO_G_SIZE
:
686 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.GtoG
.Size
);
688 case GL_PIXEL_MAP_I_TO_A_SIZE
:
689 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoA
.Size
);
691 case GL_PIXEL_MAP_I_TO_B_SIZE
:
692 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoB
.Size
);
694 case GL_PIXEL_MAP_I_TO_G_SIZE
:
695 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoG
.Size
);
697 case GL_PIXEL_MAP_I_TO_I_SIZE
:
698 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoI
.Size
);
700 case GL_PIXEL_MAP_I_TO_R_SIZE
:
701 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoR
.Size
);
703 case GL_PIXEL_MAP_R_TO_R_SIZE
:
704 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.RtoR
.Size
);
706 case GL_PIXEL_MAP_S_TO_S_SIZE
:
707 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.StoS
.Size
);
710 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
712 case GL_POINT_SIZE_GRANULARITY
:
713 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
715 case GL_POINT_SIZE_RANGE
:
716 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
717 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
719 case GL_ALIASED_POINT_SIZE_RANGE
:
720 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
721 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
723 case GL_POINT_SMOOTH
:
724 params
[0] = ctx
->Point
.SmoothFlag
;
726 case GL_POINT_SMOOTH_HINT
:
727 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
729 case GL_POINT_SIZE_MIN_EXT
:
730 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
732 case GL_POINT_SIZE_MAX_EXT
:
733 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
735 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
736 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
738 case GL_DISTANCE_ATTENUATION_EXT
:
739 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
740 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
741 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
743 case GL_POLYGON_MODE
:
744 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
745 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
747 case GL_POLYGON_OFFSET_BIAS_EXT
:
748 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
750 case GL_POLYGON_OFFSET_FACTOR
:
751 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
753 case GL_POLYGON_OFFSET_UNITS
:
754 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
756 case GL_POLYGON_OFFSET_POINT
:
757 params
[0] = ctx
->Polygon
.OffsetPoint
;
759 case GL_POLYGON_OFFSET_LINE
:
760 params
[0] = ctx
->Polygon
.OffsetLine
;
762 case GL_POLYGON_OFFSET_FILL
:
763 params
[0] = ctx
->Polygon
.OffsetFill
;
765 case GL_POLYGON_SMOOTH
:
766 params
[0] = ctx
->Polygon
.SmoothFlag
;
768 case GL_POLYGON_SMOOTH_HINT
:
769 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
771 case GL_POLYGON_STIPPLE
:
772 params
[0] = ctx
->Polygon
.StippleFlag
;
774 case GL_PROJECTION_MATRIX
:
776 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
777 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
778 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
779 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
780 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
781 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
782 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
783 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
784 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
785 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
786 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
787 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
788 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
789 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
790 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
791 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
792 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
795 case GL_PROJECTION_STACK_DEPTH
:
796 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
799 params
[0] = ENUM_TO_BOOLEAN(ctx
->ReadBuffer
->ColorReadBuffer
);
802 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
805 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.redBits
);
808 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
811 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
813 case GL_RESCALE_NORMAL
:
814 params
[0] = ctx
->Transform
.RescaleNormals
;
817 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
820 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
821 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
822 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
823 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
825 case GL_SCISSOR_TEST
:
826 params
[0] = ctx
->Scissor
.Enabled
;
828 case GL_SELECTION_BUFFER_SIZE
:
829 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
832 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
834 case GL_SHARED_TEXTURE_PALETTE_EXT
:
835 params
[0] = ctx
->Texture
.SharedPalette
;
837 case GL_STENCIL_BITS
:
838 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
840 case GL_STENCIL_CLEAR_VALUE
:
841 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
843 case GL_STENCIL_FAIL
:
844 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
846 case GL_STENCIL_FUNC
:
847 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
849 case GL_STENCIL_PASS_DEPTH_FAIL
:
850 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
852 case GL_STENCIL_PASS_DEPTH_PASS
:
853 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
856 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
858 case GL_STENCIL_TEST
:
859 params
[0] = ctx
->Stencil
.Enabled
;
861 case GL_STENCIL_VALUE_MASK
:
862 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
864 case GL_STENCIL_WRITEMASK
:
865 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
868 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
870 case GL_SUBPIXEL_BITS
:
871 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
874 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
877 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
880 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
882 case GL_TEXTURE_1D_ARRAY_EXT
:
883 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
884 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
);
886 case GL_TEXTURE_2D_ARRAY_EXT
:
887 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
888 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
);
890 case GL_TEXTURE_BINDING_1D
:
891 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
893 case GL_TEXTURE_BINDING_2D
:
894 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
896 case GL_TEXTURE_BINDING_3D
:
897 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
899 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
900 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
901 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1DArray
->Name
);
903 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
904 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
905 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2DArray
->Name
);
907 case GL_TEXTURE_GEN_S
:
908 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
910 case GL_TEXTURE_GEN_T
:
911 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
913 case GL_TEXTURE_GEN_R
:
914 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
916 case GL_TEXTURE_GEN_Q
:
917 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
919 case GL_TEXTURE_MATRIX
:
921 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
922 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
923 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
924 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
925 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
926 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
927 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
928 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
929 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
930 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
931 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
932 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
933 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
934 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
935 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
936 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
937 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
940 case GL_TEXTURE_STACK_DEPTH
:
941 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
943 case GL_UNPACK_ALIGNMENT
:
944 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
946 case GL_UNPACK_LSB_FIRST
:
947 params
[0] = ctx
->Unpack
.LsbFirst
;
949 case GL_UNPACK_ROW_LENGTH
:
950 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
952 case GL_UNPACK_SKIP_PIXELS
:
953 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
955 case GL_UNPACK_SKIP_ROWS
:
956 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
958 case GL_UNPACK_SWAP_BYTES
:
959 params
[0] = ctx
->Unpack
.SwapBytes
;
961 case GL_UNPACK_SKIP_IMAGES_EXT
:
962 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
964 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
965 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
967 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
968 params
[0] = ctx
->Unpack
.ClientStorage
;
971 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
972 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
973 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
974 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
977 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
980 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
982 case GL_VERTEX_ARRAY
:
983 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Enabled
;
985 case GL_VERTEX_ARRAY_SIZE
:
986 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Size
);
988 case GL_VERTEX_ARRAY_TYPE
:
989 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Type
);
991 case GL_VERTEX_ARRAY_STRIDE
:
992 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
994 case GL_VERTEX_ARRAY_COUNT_EXT
:
995 params
[0] = INT_TO_BOOLEAN(0);
997 case GL_NORMAL_ARRAY
:
998 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
1000 case GL_NORMAL_ARRAY_TYPE
:
1001 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Type
);
1003 case GL_NORMAL_ARRAY_STRIDE
:
1004 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Stride
);
1006 case GL_NORMAL_ARRAY_COUNT_EXT
:
1007 params
[0] = INT_TO_BOOLEAN(0);
1009 case GL_COLOR_ARRAY
:
1010 params
[0] = ctx
->Array
.ArrayObj
->Color
.Enabled
;
1012 case GL_COLOR_ARRAY_SIZE
:
1013 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Size
);
1015 case GL_COLOR_ARRAY_TYPE
:
1016 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Type
);
1018 case GL_COLOR_ARRAY_STRIDE
:
1019 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Stride
);
1021 case GL_COLOR_ARRAY_COUNT_EXT
:
1022 params
[0] = INT_TO_BOOLEAN(0);
1024 case GL_INDEX_ARRAY
:
1025 params
[0] = ctx
->Array
.ArrayObj
->Index
.Enabled
;
1027 case GL_INDEX_ARRAY_TYPE
:
1028 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Type
);
1030 case GL_INDEX_ARRAY_STRIDE
:
1031 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Stride
);
1033 case GL_INDEX_ARRAY_COUNT_EXT
:
1034 params
[0] = INT_TO_BOOLEAN(0);
1036 case GL_TEXTURE_COORD_ARRAY
:
1037 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1039 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1040 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1042 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1043 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1045 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1046 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1048 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1049 params
[0] = INT_TO_BOOLEAN(0);
1051 case GL_EDGE_FLAG_ARRAY
:
1052 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
;
1054 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1055 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
1057 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1058 params
[0] = INT_TO_BOOLEAN(0);
1060 case GL_MAX_TEXTURE_UNITS_ARB
:
1061 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1062 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1064 case GL_ACTIVE_TEXTURE_ARB
:
1065 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1066 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1068 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1069 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1070 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1072 case GL_TEXTURE_CUBE_MAP_ARB
:
1073 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1074 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1076 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1077 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1078 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
1080 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1081 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1082 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1084 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1085 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1086 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1088 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1089 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1090 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1092 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1093 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1096 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1098 for (i
= 0; i
< n
; i
++)
1099 params
[i
] = ENUM_TO_INT(formats
[i
]);
1102 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1103 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1104 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1106 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1107 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1108 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1110 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1112 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1113 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1114 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1115 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1116 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1117 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1118 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1119 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1120 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1121 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1122 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1123 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1124 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1125 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1126 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1127 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1128 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1131 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1133 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1134 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1135 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1136 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1137 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1138 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1139 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1140 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1141 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1142 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1143 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1144 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1145 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1146 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1147 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1148 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1149 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1152 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1154 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1155 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1156 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1157 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1158 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1159 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1160 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1161 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1162 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1163 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1164 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1165 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1166 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1167 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1168 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1169 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1170 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1173 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1175 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1176 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1177 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1178 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1179 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1180 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1181 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1182 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1183 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1184 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1185 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1186 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1187 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1188 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1189 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1190 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1191 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1194 case GL_COLOR_MATRIX_SGI
:
1196 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1197 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1198 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1199 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1200 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1201 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1202 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1203 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1204 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1205 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1206 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1207 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1208 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1209 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1210 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1211 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1212 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1215 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1216 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1218 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1219 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1221 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1222 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1224 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1225 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1227 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1228 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1230 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1231 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1233 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1234 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1236 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1237 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1239 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1240 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1242 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1243 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1245 case GL_CONVOLUTION_1D_EXT
:
1246 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1247 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1249 case GL_CONVOLUTION_2D_EXT
:
1250 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1251 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1253 case GL_SEPARABLE_2D_EXT
:
1254 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1255 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1257 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1258 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1261 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1262 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1263 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1265 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1266 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1267 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1269 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1270 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1271 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1273 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1274 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1275 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1277 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1278 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1279 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1281 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1282 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1283 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1285 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1286 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1287 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1290 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1291 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1294 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1295 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1297 case GL_COLOR_TABLE_SGI
:
1298 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1299 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
];
1301 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1302 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1303 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
];
1305 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1306 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1307 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
];
1309 case GL_TEXTURE_COLOR_TABLE_SGI
:
1310 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1311 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1313 case GL_COLOR_SUM_EXT
:
1314 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1315 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1317 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1318 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1320 FLUSH_CURRENT(ctx
, 0);
1321 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1322 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1323 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1324 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1327 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1328 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1329 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
;
1331 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1332 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1333 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
1335 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1336 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1337 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
1339 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1340 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1341 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
1343 case GL_CURRENT_FOG_COORDINATE_EXT
:
1344 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1346 FLUSH_CURRENT(ctx
, 0);
1347 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1350 case GL_FOG_COORDINATE_ARRAY_EXT
:
1351 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1352 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Enabled
;
1354 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1355 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1356 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
1358 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1359 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1360 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
1362 case GL_FOG_COORDINATE_SOURCE_EXT
:
1363 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1364 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1366 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1367 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1368 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1370 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1371 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1372 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1374 case GL_MULTISAMPLE_ARB
:
1375 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1376 params
[0] = ctx
->Multisample
.Enabled
;
1378 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1379 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1380 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1382 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1383 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1384 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1386 case GL_SAMPLE_COVERAGE_ARB
:
1387 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1388 params
[0] = ctx
->Multisample
.SampleCoverage
;
1390 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1391 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1392 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1394 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1395 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1396 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1398 case GL_SAMPLE_BUFFERS_ARB
:
1399 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1400 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1402 case GL_SAMPLES_ARB
:
1403 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1404 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1406 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1407 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1408 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1410 case GL_POINT_SPRITE_NV
:
1411 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1412 params
[0] = ctx
->Point
.PointSprite
;
1414 case GL_POINT_SPRITE_R_MODE_NV
:
1415 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1416 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1418 case GL_POINT_SPRITE_COORD_ORIGIN
:
1419 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1420 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1422 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1423 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1424 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1426 case GL_VERTEX_PROGRAM_BINDING_NV
:
1427 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1428 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1430 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1431 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1432 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
;
1434 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1435 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1436 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
;
1438 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1439 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1440 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
;
1442 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1443 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1444 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
;
1446 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1447 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1448 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
;
1450 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1451 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1452 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
;
1454 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1455 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1456 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
;
1458 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1459 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1460 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
;
1462 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1463 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1464 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
;
1466 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1467 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1468 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
;
1470 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1471 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1472 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
;
1474 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1475 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1476 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
;
1478 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1479 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1480 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
;
1482 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1483 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1484 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
;
1486 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1487 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1488 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
;
1490 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1491 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1492 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
;
1494 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1495 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1496 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1498 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1499 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1500 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1502 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1503 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1504 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1506 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1507 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1508 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1510 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1511 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1512 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1514 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1515 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1516 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1518 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1519 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1520 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1522 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1523 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1524 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1526 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1527 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1528 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1530 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1531 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1532 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1534 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1535 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1536 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1538 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1539 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1540 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1542 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1543 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1544 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1546 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1547 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1548 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1550 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1551 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1552 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1554 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1555 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1556 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1558 case GL_FRAGMENT_PROGRAM_NV
:
1559 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1560 params
[0] = ctx
->FragmentProgram
.Enabled
;
1562 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1563 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1564 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1566 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1567 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1568 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1570 case GL_TEXTURE_RECTANGLE_NV
:
1571 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1572 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1574 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1575 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1576 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
1578 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1579 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1580 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1582 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1583 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1584 params
[0] = ctx
->Stencil
.TestTwoSide
;
1586 case GL_ACTIVE_STENCIL_FACE_EXT
:
1587 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1588 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1590 case GL_MAX_SHININESS_NV
:
1591 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1592 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1594 case GL_MAX_SPOT_EXPONENT_NV
:
1595 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1596 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1598 case GL_ARRAY_BUFFER_BINDING_ARB
:
1599 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1600 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1602 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1603 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1604 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
1606 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1607 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1608 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
1610 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1611 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1612 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
1614 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1615 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1616 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
1618 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1619 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1620 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1622 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1623 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1624 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
1626 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1627 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1628 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
1630 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1631 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1632 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
1634 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1635 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1636 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1638 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1639 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1640 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1642 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1643 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1644 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1646 case GL_VERTEX_PROGRAM_ARB
:
1647 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1648 params
[0] = ctx
->VertexProgram
.Enabled
;
1650 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1651 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1652 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1654 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1655 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1656 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1658 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1659 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1660 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1662 case GL_MAX_PROGRAM_MATRICES_ARB
:
1663 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1664 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1666 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1667 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1668 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1670 case GL_CURRENT_MATRIX_ARB
:
1671 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1673 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1674 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1675 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1676 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1677 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1678 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1679 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1680 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1681 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1682 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1683 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1684 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1685 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1686 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1687 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1688 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1689 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1692 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1693 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1695 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1696 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1697 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1698 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1699 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1700 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1701 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1702 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1703 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1704 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1705 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1706 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1707 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1708 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1709 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1710 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1711 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1714 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1715 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1716 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1718 case GL_PROGRAM_ERROR_POSITION_ARB
:
1719 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1720 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1722 case GL_FRAGMENT_PROGRAM_ARB
:
1723 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1724 params
[0] = ctx
->FragmentProgram
.Enabled
;
1726 case GL_MAX_TEXTURE_COORDS_ARB
:
1727 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1728 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1730 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1731 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1732 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1734 case GL_DEPTH_BOUNDS_TEST_EXT
:
1735 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1736 params
[0] = ctx
->Depth
.BoundsTest
;
1738 case GL_DEPTH_BOUNDS_EXT
:
1739 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1740 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1741 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1743 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1744 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1745 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1747 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1748 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1749 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1751 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1752 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1753 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1755 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1756 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1757 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1759 case GL_MAX_DRAW_BUFFERS_ARB
:
1760 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1761 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1763 case GL_DRAW_BUFFER0_ARB
:
1764 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1765 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1767 case GL_DRAW_BUFFER1_ARB
:
1768 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1771 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1772 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1775 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1776 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1779 case GL_DRAW_BUFFER2_ARB
:
1780 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1783 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1784 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1787 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1788 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1791 case GL_DRAW_BUFFER3_ARB
:
1792 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1795 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1796 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1799 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1800 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1803 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1804 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1805 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1807 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1808 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1809 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1811 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1812 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1813 params
[0] = INT_TO_BOOLEAN(6);
1815 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1816 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1817 params
[0] = INT_TO_BOOLEAN(8);
1819 case GL_NUM_PASSES_ATI
:
1820 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1821 params
[0] = INT_TO_BOOLEAN(2);
1823 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1824 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1825 params
[0] = INT_TO_BOOLEAN(8);
1827 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1828 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1829 params
[0] = INT_TO_BOOLEAN(16);
1831 case GL_COLOR_ALPHA_PAIRING_ATI
:
1832 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1833 params
[0] = GL_TRUE
;
1835 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1836 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1837 params
[0] = INT_TO_BOOLEAN(3);
1839 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1840 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1841 params
[0] = INT_TO_BOOLEAN(3);
1843 case GL_STENCIL_BACK_FUNC
:
1844 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1846 case GL_STENCIL_BACK_VALUE_MASK
:
1847 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1849 case GL_STENCIL_BACK_WRITEMASK
:
1850 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1852 case GL_STENCIL_BACK_REF
:
1853 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1855 case GL_STENCIL_BACK_FAIL
:
1856 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1858 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1859 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1861 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1862 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1864 case GL_FRAMEBUFFER_BINDING_EXT
:
1865 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1866 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1868 case GL_RENDERBUFFER_BINDING_EXT
:
1869 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1870 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1872 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1873 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1874 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1876 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1877 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1878 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1880 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1881 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1882 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1884 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1885 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1886 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1888 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1889 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1890 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1892 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1893 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1894 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1896 case GL_MAX_VARYING_FLOATS_ARB
:
1897 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1898 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1900 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1901 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1902 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1904 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1905 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1906 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1908 case GL_CURRENT_PROGRAM
:
1909 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1910 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1913 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1918 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1920 GET_CURRENT_CONTEXT(ctx
);
1921 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1927 _mesa_update_state(ctx
);
1929 if (ctx
->Driver
.GetFloatv
&&
1930 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1934 case GL_ACCUM_RED_BITS
:
1935 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1937 case GL_ACCUM_GREEN_BITS
:
1938 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1940 case GL_ACCUM_BLUE_BITS
:
1941 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1943 case GL_ACCUM_ALPHA_BITS
:
1944 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1946 case GL_ACCUM_CLEAR_VALUE
:
1947 params
[0] = ctx
->Accum
.ClearColor
[0];
1948 params
[1] = ctx
->Accum
.ClearColor
[1];
1949 params
[2] = ctx
->Accum
.ClearColor
[2];
1950 params
[3] = ctx
->Accum
.ClearColor
[3];
1953 params
[0] = ctx
->Pixel
.AlphaBias
;
1956 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1958 case GL_ALPHA_SCALE
:
1959 params
[0] = ctx
->Pixel
.AlphaScale
;
1962 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1964 case GL_ALPHA_TEST_FUNC
:
1965 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1967 case GL_ALPHA_TEST_REF
:
1968 params
[0] = ctx
->Color
.AlphaRef
;
1970 case GL_ATTRIB_STACK_DEPTH
:
1971 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1973 case GL_AUTO_NORMAL
:
1974 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1976 case GL_AUX_BUFFERS
:
1977 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1980 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1983 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1986 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1988 case GL_BLEND_SRC_RGB_EXT
:
1989 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1991 case GL_BLEND_DST_RGB_EXT
:
1992 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1994 case GL_BLEND_SRC_ALPHA_EXT
:
1995 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1997 case GL_BLEND_DST_ALPHA_EXT
:
1998 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
2000 case GL_BLEND_EQUATION
:
2001 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
2003 case GL_BLEND_EQUATION_ALPHA_EXT
:
2004 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
2006 case GL_BLEND_COLOR_EXT
:
2007 params
[0] = ctx
->Color
.BlendColor
[0];
2008 params
[1] = ctx
->Color
.BlendColor
[1];
2009 params
[2] = ctx
->Color
.BlendColor
[2];
2010 params
[3] = ctx
->Color
.BlendColor
[3];
2013 params
[0] = ctx
->Pixel
.BlueBias
;
2016 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
2019 params
[0] = ctx
->Pixel
.BlueScale
;
2021 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2022 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2024 case GL_CLIP_PLANE0
:
2025 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2027 case GL_CLIP_PLANE1
:
2028 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2030 case GL_CLIP_PLANE2
:
2031 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2033 case GL_CLIP_PLANE3
:
2034 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2036 case GL_CLIP_PLANE4
:
2037 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2039 case GL_CLIP_PLANE5
:
2040 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2042 case GL_COLOR_CLEAR_VALUE
:
2043 params
[0] = ctx
->Color
.ClearColor
[0];
2044 params
[1] = ctx
->Color
.ClearColor
[1];
2045 params
[2] = ctx
->Color
.ClearColor
[2];
2046 params
[3] = ctx
->Color
.ClearColor
[3];
2048 case GL_COLOR_MATERIAL
:
2049 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2051 case GL_COLOR_MATERIAL_FACE
:
2052 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2054 case GL_COLOR_MATERIAL_PARAMETER
:
2055 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2057 case GL_COLOR_WRITEMASK
:
2058 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2059 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2060 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2061 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2064 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2066 case GL_CULL_FACE_MODE
:
2067 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2069 case GL_CURRENT_COLOR
:
2071 FLUSH_CURRENT(ctx
, 0);
2072 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2073 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2074 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2075 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2078 case GL_CURRENT_INDEX
:
2080 FLUSH_CURRENT(ctx
, 0);
2081 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2084 case GL_CURRENT_NORMAL
:
2086 FLUSH_CURRENT(ctx
, 0);
2087 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2088 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2089 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2092 case GL_CURRENT_RASTER_COLOR
:
2093 params
[0] = ctx
->Current
.RasterColor
[0];
2094 params
[1] = ctx
->Current
.RasterColor
[1];
2095 params
[2] = ctx
->Current
.RasterColor
[2];
2096 params
[3] = ctx
->Current
.RasterColor
[3];
2098 case GL_CURRENT_RASTER_DISTANCE
:
2099 params
[0] = ctx
->Current
.RasterDistance
;
2101 case GL_CURRENT_RASTER_INDEX
:
2102 params
[0] = ctx
->Current
.RasterIndex
;
2104 case GL_CURRENT_RASTER_POSITION
:
2105 params
[0] = ctx
->Current
.RasterPos
[0];
2106 params
[1] = ctx
->Current
.RasterPos
[1];
2107 params
[2] = ctx
->Current
.RasterPos
[2];
2108 params
[3] = ctx
->Current
.RasterPos
[3];
2110 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2111 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2112 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2113 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2114 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2116 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2118 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2119 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2120 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2121 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2122 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2125 case GL_CURRENT_RASTER_POSITION_VALID
:
2126 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2128 case GL_CURRENT_TEXTURE_COORDS
:
2130 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
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] = 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
.CurrentListNum
);
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
].Current1D
->Name
);
2741 case GL_TEXTURE_BINDING_2D
:
2742 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2744 case GL_TEXTURE_BINDING_3D
:
2745 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->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
].Current1DArray
->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
].Current2DArray
->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
].CurrentCubeMap
->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 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2934 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2936 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2937 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2938 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2940 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2941 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2944 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2946 for (i
= 0; i
< n
; i
++)
2947 params
[i
] = ENUM_TO_INT(formats
[i
]);
2950 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2951 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2952 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2954 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2955 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2956 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2958 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2960 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2961 params
[0] = matrix
[0];
2962 params
[1] = matrix
[4];
2963 params
[2] = matrix
[8];
2964 params
[3] = matrix
[12];
2965 params
[4] = matrix
[1];
2966 params
[5] = matrix
[5];
2967 params
[6] = matrix
[9];
2968 params
[7] = matrix
[13];
2969 params
[8] = matrix
[2];
2970 params
[9] = matrix
[6];
2971 params
[10] = matrix
[10];
2972 params
[11] = matrix
[14];
2973 params
[12] = matrix
[3];
2974 params
[13] = matrix
[7];
2975 params
[14] = matrix
[11];
2976 params
[15] = matrix
[15];
2979 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2981 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2982 params
[0] = matrix
[0];
2983 params
[1] = matrix
[4];
2984 params
[2] = matrix
[8];
2985 params
[3] = matrix
[12];
2986 params
[4] = matrix
[1];
2987 params
[5] = matrix
[5];
2988 params
[6] = matrix
[9];
2989 params
[7] = matrix
[13];
2990 params
[8] = matrix
[2];
2991 params
[9] = matrix
[6];
2992 params
[10] = matrix
[10];
2993 params
[11] = matrix
[14];
2994 params
[12] = matrix
[3];
2995 params
[13] = matrix
[7];
2996 params
[14] = matrix
[11];
2997 params
[15] = matrix
[15];
3000 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
3002 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
3003 params
[0] = matrix
[0];
3004 params
[1] = matrix
[4];
3005 params
[2] = matrix
[8];
3006 params
[3] = matrix
[12];
3007 params
[4] = matrix
[1];
3008 params
[5] = matrix
[5];
3009 params
[6] = matrix
[9];
3010 params
[7] = matrix
[13];
3011 params
[8] = matrix
[2];
3012 params
[9] = matrix
[6];
3013 params
[10] = matrix
[10];
3014 params
[11] = matrix
[14];
3015 params
[12] = matrix
[3];
3016 params
[13] = matrix
[7];
3017 params
[14] = matrix
[11];
3018 params
[15] = matrix
[15];
3021 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
3023 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
3024 params
[0] = matrix
[0];
3025 params
[1] = matrix
[4];
3026 params
[2] = matrix
[8];
3027 params
[3] = matrix
[12];
3028 params
[4] = matrix
[1];
3029 params
[5] = matrix
[5];
3030 params
[6] = matrix
[9];
3031 params
[7] = matrix
[13];
3032 params
[8] = matrix
[2];
3033 params
[9] = matrix
[6];
3034 params
[10] = matrix
[10];
3035 params
[11] = matrix
[14];
3036 params
[12] = matrix
[3];
3037 params
[13] = matrix
[7];
3038 params
[14] = matrix
[11];
3039 params
[15] = matrix
[15];
3042 case GL_COLOR_MATRIX_SGI
:
3044 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3045 params
[0] = matrix
[0];
3046 params
[1] = matrix
[1];
3047 params
[2] = matrix
[2];
3048 params
[3] = matrix
[3];
3049 params
[4] = matrix
[4];
3050 params
[5] = matrix
[5];
3051 params
[6] = matrix
[6];
3052 params
[7] = matrix
[7];
3053 params
[8] = matrix
[8];
3054 params
[9] = matrix
[9];
3055 params
[10] = matrix
[10];
3056 params
[11] = matrix
[11];
3057 params
[12] = matrix
[12];
3058 params
[13] = matrix
[13];
3059 params
[14] = matrix
[14];
3060 params
[15] = matrix
[15];
3063 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3064 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3066 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3067 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3069 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3070 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3072 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3073 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3075 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3076 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3078 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3079 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3081 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3082 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3084 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3085 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3087 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3088 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3090 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3091 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3093 case GL_CONVOLUTION_1D_EXT
:
3094 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3095 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3097 case GL_CONVOLUTION_2D_EXT
:
3098 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3099 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3101 case GL_SEPARABLE_2D_EXT
:
3102 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3103 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3105 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3106 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3107 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3109 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3110 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3111 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3113 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3114 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3115 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3117 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3118 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3119 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3121 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3122 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3123 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3125 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3126 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3127 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3129 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3130 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3131 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3133 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3134 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3135 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3138 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3139 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3142 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3143 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3145 case GL_COLOR_TABLE_SGI
:
3146 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3147 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3149 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3150 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3151 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3153 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3154 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3155 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3157 case GL_TEXTURE_COLOR_TABLE_SGI
:
3158 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3159 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3161 case GL_COLOR_SUM_EXT
:
3162 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3163 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3165 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3166 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3168 FLUSH_CURRENT(ctx
, 0);
3169 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3170 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3171 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3172 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3175 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3176 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3177 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3179 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3180 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3181 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3183 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3184 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3185 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3187 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3188 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3189 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3191 case GL_CURRENT_FOG_COORDINATE_EXT
:
3192 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3194 FLUSH_CURRENT(ctx
, 0);
3195 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3198 case GL_FOG_COORDINATE_ARRAY_EXT
:
3199 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3200 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3202 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3203 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3204 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3206 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3207 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3208 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3210 case GL_FOG_COORDINATE_SOURCE_EXT
:
3211 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3212 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3214 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3215 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3216 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3218 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3219 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3220 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3222 case GL_MULTISAMPLE_ARB
:
3223 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3224 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3226 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3227 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3228 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3230 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3231 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3232 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3234 case GL_SAMPLE_COVERAGE_ARB
:
3235 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3236 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3238 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3239 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3240 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3242 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3243 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3244 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3246 case GL_SAMPLE_BUFFERS_ARB
:
3247 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3248 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3250 case GL_SAMPLES_ARB
:
3251 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3252 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3254 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3255 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3256 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3258 case GL_POINT_SPRITE_NV
:
3259 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3260 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3262 case GL_POINT_SPRITE_R_MODE_NV
:
3263 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3264 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3266 case GL_POINT_SPRITE_COORD_ORIGIN
:
3267 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3268 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3270 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3271 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3272 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3274 case GL_VERTEX_PROGRAM_BINDING_NV
:
3275 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3276 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3278 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3279 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3280 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3282 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3283 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3284 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3286 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3287 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3288 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3290 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3291 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3292 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3294 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3295 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3296 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3298 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3299 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3300 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3302 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3303 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3304 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3306 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3307 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3308 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3310 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3311 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3312 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3314 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3315 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3316 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3318 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3319 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3320 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3322 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3323 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3324 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3326 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3327 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3330 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3331 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3332 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3334 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3335 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3336 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3338 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3339 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3340 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3342 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3343 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3344 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3346 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3347 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3348 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3350 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3351 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3352 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3354 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3355 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3356 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3358 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3359 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3360 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3362 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3363 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3366 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3367 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3370 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3371 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3372 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3374 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3375 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3376 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3378 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3379 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3380 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3382 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3383 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3384 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3386 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3387 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3388 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3390 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3391 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3392 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3394 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3395 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3396 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3398 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3399 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3400 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3402 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3403 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3404 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3406 case GL_FRAGMENT_PROGRAM_NV
:
3407 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3408 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3410 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3411 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3412 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3414 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3415 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3416 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3418 case GL_TEXTURE_RECTANGLE_NV
:
3419 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3420 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3422 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3423 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3424 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3426 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3427 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3428 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3430 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3431 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3432 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3434 case GL_ACTIVE_STENCIL_FACE_EXT
:
3435 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3436 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3438 case GL_MAX_SHININESS_NV
:
3439 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3440 params
[0] = ctx
->Const
.MaxShininess
;
3442 case GL_MAX_SPOT_EXPONENT_NV
:
3443 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3444 params
[0] = ctx
->Const
.MaxSpotExponent
;
3446 case GL_ARRAY_BUFFER_BINDING_ARB
:
3447 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3448 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3450 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3451 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3452 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3454 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3455 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3456 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3458 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3459 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3460 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3462 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3463 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3464 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3466 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3467 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3468 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3470 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3471 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3472 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3474 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3475 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3476 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3478 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3479 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3480 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3482 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3483 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3484 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3486 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3487 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3488 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3490 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3491 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3492 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3494 case GL_VERTEX_PROGRAM_ARB
:
3495 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3496 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3498 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3499 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3500 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3502 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3503 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3504 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3506 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3507 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3508 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3510 case GL_MAX_PROGRAM_MATRICES_ARB
:
3511 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3512 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3514 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3515 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3516 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3518 case GL_CURRENT_MATRIX_ARB
:
3519 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3521 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3522 params
[0] = matrix
[0];
3523 params
[1] = matrix
[1];
3524 params
[2] = matrix
[2];
3525 params
[3] = matrix
[3];
3526 params
[4] = matrix
[4];
3527 params
[5] = matrix
[5];
3528 params
[6] = matrix
[6];
3529 params
[7] = matrix
[7];
3530 params
[8] = matrix
[8];
3531 params
[9] = matrix
[9];
3532 params
[10] = matrix
[10];
3533 params
[11] = matrix
[11];
3534 params
[12] = matrix
[12];
3535 params
[13] = matrix
[13];
3536 params
[14] = matrix
[14];
3537 params
[15] = matrix
[15];
3540 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3541 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3543 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3544 params
[0] = matrix
[0];
3545 params
[1] = matrix
[4];
3546 params
[2] = matrix
[8];
3547 params
[3] = matrix
[12];
3548 params
[4] = matrix
[1];
3549 params
[5] = matrix
[5];
3550 params
[6] = matrix
[9];
3551 params
[7] = matrix
[13];
3552 params
[8] = matrix
[2];
3553 params
[9] = matrix
[6];
3554 params
[10] = matrix
[10];
3555 params
[11] = matrix
[14];
3556 params
[12] = matrix
[3];
3557 params
[13] = matrix
[7];
3558 params
[14] = matrix
[11];
3559 params
[15] = matrix
[15];
3562 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3563 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3564 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3566 case GL_PROGRAM_ERROR_POSITION_ARB
:
3567 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3568 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3570 case GL_FRAGMENT_PROGRAM_ARB
:
3571 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3572 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3574 case GL_MAX_TEXTURE_COORDS_ARB
:
3575 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3576 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3578 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3579 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3580 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3582 case GL_DEPTH_BOUNDS_TEST_EXT
:
3583 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3584 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3586 case GL_DEPTH_BOUNDS_EXT
:
3587 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3588 params
[0] = ctx
->Depth
.BoundsMin
;
3589 params
[1] = ctx
->Depth
.BoundsMax
;
3591 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3592 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3593 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3595 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3596 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3597 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3599 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3600 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3601 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3603 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3604 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3605 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3607 case GL_MAX_DRAW_BUFFERS_ARB
:
3608 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3609 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3611 case GL_DRAW_BUFFER0_ARB
:
3612 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3613 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3615 case GL_DRAW_BUFFER1_ARB
:
3616 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3619 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3620 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3623 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3624 params
[0] = ENUM_TO_FLOAT(buffer
);
3627 case GL_DRAW_BUFFER2_ARB
:
3628 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3631 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3632 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3635 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3636 params
[0] = ENUM_TO_FLOAT(buffer
);
3639 case GL_DRAW_BUFFER3_ARB
:
3640 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3643 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3644 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3647 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3648 params
[0] = ENUM_TO_FLOAT(buffer
);
3651 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3652 CHECK_EXT1(OES_read_format
, "GetFloatv");
3653 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3655 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3656 CHECK_EXT1(OES_read_format
, "GetFloatv");
3657 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3659 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3660 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3661 params
[0] = (GLfloat
)(6);
3663 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3664 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3665 params
[0] = (GLfloat
)(8);
3667 case GL_NUM_PASSES_ATI
:
3668 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3669 params
[0] = (GLfloat
)(2);
3671 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3672 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3673 params
[0] = (GLfloat
)(8);
3675 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3676 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3677 params
[0] = (GLfloat
)(16);
3679 case GL_COLOR_ALPHA_PAIRING_ATI
:
3680 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3681 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3683 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3684 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3685 params
[0] = (GLfloat
)(3);
3687 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3688 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3689 params
[0] = (GLfloat
)(3);
3691 case GL_STENCIL_BACK_FUNC
:
3692 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3694 case GL_STENCIL_BACK_VALUE_MASK
:
3695 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3697 case GL_STENCIL_BACK_WRITEMASK
:
3698 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3700 case GL_STENCIL_BACK_REF
:
3701 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3703 case GL_STENCIL_BACK_FAIL
:
3704 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3706 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3707 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3709 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3710 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3712 case GL_FRAMEBUFFER_BINDING_EXT
:
3713 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3714 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3716 case GL_RENDERBUFFER_BINDING_EXT
:
3717 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3718 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3720 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3721 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3722 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3724 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3725 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3726 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3728 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3729 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3730 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3732 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3733 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3734 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3736 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3737 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3738 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3740 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3741 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3742 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3744 case GL_MAX_VARYING_FLOATS_ARB
:
3745 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3746 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3748 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3749 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3750 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3752 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3753 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3754 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3756 case GL_CURRENT_PROGRAM
:
3757 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3758 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3761 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3766 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3768 GET_CURRENT_CONTEXT(ctx
);
3769 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3775 _mesa_update_state(ctx
);
3777 if (ctx
->Driver
.GetIntegerv
&&
3778 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3782 case GL_ACCUM_RED_BITS
:
3783 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3785 case GL_ACCUM_GREEN_BITS
:
3786 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3788 case GL_ACCUM_BLUE_BITS
:
3789 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3791 case GL_ACCUM_ALPHA_BITS
:
3792 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3794 case GL_ACCUM_CLEAR_VALUE
:
3795 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3796 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3797 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3798 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3801 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3804 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3806 case GL_ALPHA_SCALE
:
3807 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3810 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3812 case GL_ALPHA_TEST_FUNC
:
3813 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3815 case GL_ALPHA_TEST_REF
:
3816 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3818 case GL_ATTRIB_STACK_DEPTH
:
3819 params
[0] = ctx
->AttribStackDepth
;
3821 case GL_AUTO_NORMAL
:
3822 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3824 case GL_AUX_BUFFERS
:
3825 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3828 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3831 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3834 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3836 case GL_BLEND_SRC_RGB_EXT
:
3837 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3839 case GL_BLEND_DST_RGB_EXT
:
3840 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3842 case GL_BLEND_SRC_ALPHA_EXT
:
3843 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3845 case GL_BLEND_DST_ALPHA_EXT
:
3846 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3848 case GL_BLEND_EQUATION
:
3849 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3851 case GL_BLEND_EQUATION_ALPHA_EXT
:
3852 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3854 case GL_BLEND_COLOR_EXT
:
3855 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3856 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3857 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3858 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3861 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3864 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3867 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3869 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3870 params
[0] = ctx
->ClientAttribStackDepth
;
3872 case GL_CLIP_PLANE0
:
3873 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3875 case GL_CLIP_PLANE1
:
3876 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3878 case GL_CLIP_PLANE2
:
3879 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3881 case GL_CLIP_PLANE3
:
3882 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3884 case GL_CLIP_PLANE4
:
3885 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3887 case GL_CLIP_PLANE5
:
3888 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3890 case GL_COLOR_CLEAR_VALUE
:
3891 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3892 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3893 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3894 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3896 case GL_COLOR_MATERIAL
:
3897 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3899 case GL_COLOR_MATERIAL_FACE
:
3900 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3902 case GL_COLOR_MATERIAL_PARAMETER
:
3903 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3905 case GL_COLOR_WRITEMASK
:
3906 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3907 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3908 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3909 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3912 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3914 case GL_CULL_FACE_MODE
:
3915 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3917 case GL_CURRENT_COLOR
:
3919 FLUSH_CURRENT(ctx
, 0);
3920 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3921 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3922 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3923 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3926 case GL_CURRENT_INDEX
:
3928 FLUSH_CURRENT(ctx
, 0);
3929 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3932 case GL_CURRENT_NORMAL
:
3934 FLUSH_CURRENT(ctx
, 0);
3935 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3936 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3937 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3940 case GL_CURRENT_RASTER_COLOR
:
3941 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3942 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3943 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3944 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3946 case GL_CURRENT_RASTER_DISTANCE
:
3947 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3949 case GL_CURRENT_RASTER_INDEX
:
3950 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3952 case GL_CURRENT_RASTER_POSITION
:
3953 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3954 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3955 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3956 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3958 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
3959 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
3960 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
3961 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
3962 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
3964 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3966 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3967 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3968 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3969 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3970 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3973 case GL_CURRENT_RASTER_POSITION_VALID
:
3974 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3976 case GL_CURRENT_TEXTURE_COORDS
:
3978 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3979 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3980 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3981 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3982 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3986 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3989 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3991 case GL_DEPTH_CLEAR_VALUE
:
3992 params
[0] = IROUND(ctx
->Depth
.Clear
);
3995 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3997 case GL_DEPTH_RANGE
:
3998 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3999 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
4001 case GL_DEPTH_SCALE
:
4002 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
4005 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
4007 case GL_DEPTH_WRITEMASK
:
4008 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
4011 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
4013 case GL_DOUBLEBUFFER
:
4014 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
4016 case GL_DRAW_BUFFER
:
4017 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
4021 FLUSH_CURRENT(ctx
, 0);
4022 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
4025 case GL_FEEDBACK_BUFFER_SIZE
:
4026 params
[0] = ctx
->Feedback
.BufferSize
;
4028 case GL_FEEDBACK_BUFFER_TYPE
:
4029 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
4032 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
4035 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
4036 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
4037 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
4038 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
4040 case GL_FOG_DENSITY
:
4041 params
[0] = IROUND(ctx
->Fog
.Density
);
4044 params
[0] = IROUND(ctx
->Fog
.End
);
4047 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4050 params
[0] = IROUND(ctx
->Fog
.Index
);
4053 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4056 params
[0] = IROUND(ctx
->Fog
.Start
);
4059 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4062 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4065 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4067 case GL_GREEN_SCALE
:
4068 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4071 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4073 case GL_INDEX_CLEAR_VALUE
:
4074 params
[0] = ctx
->Color
.ClearIndex
;
4077 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4079 case GL_INDEX_OFFSET
:
4080 params
[0] = ctx
->Pixel
.IndexOffset
;
4082 case GL_INDEX_SHIFT
:
4083 params
[0] = ctx
->Pixel
.IndexShift
;
4085 case GL_INDEX_WRITEMASK
:
4086 params
[0] = ctx
->Color
.IndexMask
;
4089 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4092 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4095 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4098 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4101 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4104 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4107 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4110 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4113 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4115 case GL_LIGHT_MODEL_AMBIENT
:
4116 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4117 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4118 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4119 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4121 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4122 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4124 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4125 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4127 case GL_LIGHT_MODEL_TWO_SIDE
:
4128 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4130 case GL_LINE_SMOOTH
:
4131 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4133 case GL_LINE_SMOOTH_HINT
:
4134 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4136 case GL_LINE_STIPPLE
:
4137 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4139 case GL_LINE_STIPPLE_PATTERN
:
4140 params
[0] = ctx
->Line
.StipplePattern
;
4142 case GL_LINE_STIPPLE_REPEAT
:
4143 params
[0] = ctx
->Line
.StippleFactor
;
4146 params
[0] = IROUND(ctx
->Line
.Width
);
4148 case GL_LINE_WIDTH_GRANULARITY
:
4149 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4151 case GL_LINE_WIDTH_RANGE
:
4152 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4153 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4155 case GL_ALIASED_LINE_WIDTH_RANGE
:
4156 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4157 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4160 params
[0] = ctx
->List
.ListBase
;
4163 params
[0] = ctx
->ListState
.CurrentListNum
;
4168 if (!ctx
->CompileFlag
)
4170 else if (ctx
->ExecuteFlag
)
4171 mode
= GL_COMPILE_AND_EXECUTE
;
4174 params
[0] = ENUM_TO_INT(mode
);
4177 case GL_INDEX_LOGIC_OP
:
4178 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4180 case GL_COLOR_LOGIC_OP
:
4181 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4183 case GL_LOGIC_OP_MODE
:
4184 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4186 case GL_MAP1_COLOR_4
:
4187 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4189 case GL_MAP1_GRID_DOMAIN
:
4190 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4191 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4193 case GL_MAP1_GRID_SEGMENTS
:
4194 params
[0] = ctx
->Eval
.MapGrid1un
;
4197 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4199 case GL_MAP1_NORMAL
:
4200 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4202 case GL_MAP1_TEXTURE_COORD_1
:
4203 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4205 case GL_MAP1_TEXTURE_COORD_2
:
4206 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4208 case GL_MAP1_TEXTURE_COORD_3
:
4209 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4211 case GL_MAP1_TEXTURE_COORD_4
:
4212 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4214 case GL_MAP1_VERTEX_3
:
4215 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4217 case GL_MAP1_VERTEX_4
:
4218 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4220 case GL_MAP2_COLOR_4
:
4221 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4223 case GL_MAP2_GRID_DOMAIN
:
4224 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4225 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4226 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4227 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4229 case GL_MAP2_GRID_SEGMENTS
:
4230 params
[0] = ctx
->Eval
.MapGrid2un
;
4231 params
[1] = ctx
->Eval
.MapGrid2vn
;
4234 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4236 case GL_MAP2_NORMAL
:
4237 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4239 case GL_MAP2_TEXTURE_COORD_1
:
4240 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4242 case GL_MAP2_TEXTURE_COORD_2
:
4243 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4245 case GL_MAP2_TEXTURE_COORD_3
:
4246 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4248 case GL_MAP2_TEXTURE_COORD_4
:
4249 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4251 case GL_MAP2_VERTEX_3
:
4252 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4254 case GL_MAP2_VERTEX_4
:
4255 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4258 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4260 case GL_MAP_STENCIL
:
4261 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4263 case GL_MATRIX_MODE
:
4264 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4266 case GL_MAX_ATTRIB_STACK_DEPTH
:
4267 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4269 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4270 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4272 case GL_MAX_CLIP_PLANES
:
4273 params
[0] = ctx
->Const
.MaxClipPlanes
;
4275 case GL_MAX_ELEMENTS_VERTICES
:
4276 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4278 case GL_MAX_ELEMENTS_INDICES
:
4279 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4281 case GL_MAX_EVAL_ORDER
:
4282 params
[0] = MAX_EVAL_ORDER
;
4285 params
[0] = ctx
->Const
.MaxLights
;
4287 case GL_MAX_LIST_NESTING
:
4288 params
[0] = MAX_LIST_NESTING
;
4290 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4291 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4293 case GL_MAX_NAME_STACK_DEPTH
:
4294 params
[0] = MAX_NAME_STACK_DEPTH
;
4296 case GL_MAX_PIXEL_MAP_TABLE
:
4297 params
[0] = MAX_PIXEL_MAP_TABLE
;
4299 case GL_MAX_PROJECTION_STACK_DEPTH
:
4300 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4302 case GL_MAX_TEXTURE_SIZE
:
4303 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4305 case GL_MAX_3D_TEXTURE_SIZE
:
4306 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4308 case GL_MAX_TEXTURE_STACK_DEPTH
:
4309 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4311 case GL_MAX_VIEWPORT_DIMS
:
4312 params
[0] = ctx
->Const
.MaxViewportWidth
;
4313 params
[1] = ctx
->Const
.MaxViewportHeight
;
4315 case GL_MODELVIEW_MATRIX
:
4317 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4318 params
[0] = IROUND(matrix
[0]);
4319 params
[1] = IROUND(matrix
[1]);
4320 params
[2] = IROUND(matrix
[2]);
4321 params
[3] = IROUND(matrix
[3]);
4322 params
[4] = IROUND(matrix
[4]);
4323 params
[5] = IROUND(matrix
[5]);
4324 params
[6] = IROUND(matrix
[6]);
4325 params
[7] = IROUND(matrix
[7]);
4326 params
[8] = IROUND(matrix
[8]);
4327 params
[9] = IROUND(matrix
[9]);
4328 params
[10] = IROUND(matrix
[10]);
4329 params
[11] = IROUND(matrix
[11]);
4330 params
[12] = IROUND(matrix
[12]);
4331 params
[13] = IROUND(matrix
[13]);
4332 params
[14] = IROUND(matrix
[14]);
4333 params
[15] = IROUND(matrix
[15]);
4336 case GL_MODELVIEW_STACK_DEPTH
:
4337 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4339 case GL_NAME_STACK_DEPTH
:
4340 params
[0] = ctx
->Select
.NameStackDepth
;
4343 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4345 case GL_PACK_ALIGNMENT
:
4346 params
[0] = ctx
->Pack
.Alignment
;
4348 case GL_PACK_LSB_FIRST
:
4349 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4351 case GL_PACK_ROW_LENGTH
:
4352 params
[0] = ctx
->Pack
.RowLength
;
4354 case GL_PACK_SKIP_PIXELS
:
4355 params
[0] = ctx
->Pack
.SkipPixels
;
4357 case GL_PACK_SKIP_ROWS
:
4358 params
[0] = ctx
->Pack
.SkipRows
;
4360 case GL_PACK_SWAP_BYTES
:
4361 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4363 case GL_PACK_SKIP_IMAGES_EXT
:
4364 params
[0] = ctx
->Pack
.SkipImages
;
4366 case GL_PACK_IMAGE_HEIGHT_EXT
:
4367 params
[0] = ctx
->Pack
.ImageHeight
;
4369 case GL_PACK_INVERT_MESA
:
4370 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4372 case GL_PERSPECTIVE_CORRECTION_HINT
:
4373 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4375 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4376 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4378 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4379 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4381 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4382 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4384 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4385 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4387 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4388 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4390 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4391 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4393 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4394 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4396 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4397 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4399 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4400 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4402 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4403 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4406 params
[0] = IROUND(ctx
->Point
.Size
);
4408 case GL_POINT_SIZE_GRANULARITY
:
4409 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4411 case GL_POINT_SIZE_RANGE
:
4412 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4413 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4415 case GL_ALIASED_POINT_SIZE_RANGE
:
4416 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4417 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4419 case GL_POINT_SMOOTH
:
4420 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4422 case GL_POINT_SMOOTH_HINT
:
4423 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4425 case GL_POINT_SIZE_MIN_EXT
:
4426 params
[0] = IROUND(ctx
->Point
.MinSize
);
4428 case GL_POINT_SIZE_MAX_EXT
:
4429 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4431 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4432 params
[0] = IROUND(ctx
->Point
.Threshold
);
4434 case GL_DISTANCE_ATTENUATION_EXT
:
4435 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4436 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4437 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4439 case GL_POLYGON_MODE
:
4440 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4441 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4443 case GL_POLYGON_OFFSET_BIAS_EXT
:
4444 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4446 case GL_POLYGON_OFFSET_FACTOR
:
4447 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4449 case GL_POLYGON_OFFSET_UNITS
:
4450 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4452 case GL_POLYGON_OFFSET_POINT
:
4453 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4455 case GL_POLYGON_OFFSET_LINE
:
4456 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4458 case GL_POLYGON_OFFSET_FILL
:
4459 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4461 case GL_POLYGON_SMOOTH
:
4462 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4464 case GL_POLYGON_SMOOTH_HINT
:
4465 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4467 case GL_POLYGON_STIPPLE
:
4468 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4470 case GL_PROJECTION_MATRIX
:
4472 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4473 params
[0] = IROUND(matrix
[0]);
4474 params
[1] = IROUND(matrix
[1]);
4475 params
[2] = IROUND(matrix
[2]);
4476 params
[3] = IROUND(matrix
[3]);
4477 params
[4] = IROUND(matrix
[4]);
4478 params
[5] = IROUND(matrix
[5]);
4479 params
[6] = IROUND(matrix
[6]);
4480 params
[7] = IROUND(matrix
[7]);
4481 params
[8] = IROUND(matrix
[8]);
4482 params
[9] = IROUND(matrix
[9]);
4483 params
[10] = IROUND(matrix
[10]);
4484 params
[11] = IROUND(matrix
[11]);
4485 params
[12] = IROUND(matrix
[12]);
4486 params
[13] = IROUND(matrix
[13]);
4487 params
[14] = IROUND(matrix
[14]);
4488 params
[15] = IROUND(matrix
[15]);
4491 case GL_PROJECTION_STACK_DEPTH
:
4492 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4494 case GL_READ_BUFFER
:
4495 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4498 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4501 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4504 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4506 case GL_RENDER_MODE
:
4507 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4509 case GL_RESCALE_NORMAL
:
4510 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4513 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4515 case GL_SCISSOR_BOX
:
4516 params
[0] = ctx
->Scissor
.X
;
4517 params
[1] = ctx
->Scissor
.Y
;
4518 params
[2] = ctx
->Scissor
.Width
;
4519 params
[3] = ctx
->Scissor
.Height
;
4521 case GL_SCISSOR_TEST
:
4522 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4524 case GL_SELECTION_BUFFER_SIZE
:
4525 params
[0] = ctx
->Select
.BufferSize
;
4527 case GL_SHADE_MODEL
:
4528 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4530 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4531 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4533 case GL_STENCIL_BITS
:
4534 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4536 case GL_STENCIL_CLEAR_VALUE
:
4537 params
[0] = ctx
->Stencil
.Clear
;
4539 case GL_STENCIL_FAIL
:
4540 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4542 case GL_STENCIL_FUNC
:
4543 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4545 case GL_STENCIL_PASS_DEPTH_FAIL
:
4546 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4548 case GL_STENCIL_PASS_DEPTH_PASS
:
4549 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4551 case GL_STENCIL_REF
:
4552 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4554 case GL_STENCIL_TEST
:
4555 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4557 case GL_STENCIL_VALUE_MASK
:
4558 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4560 case GL_STENCIL_WRITEMASK
:
4561 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4564 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4566 case GL_SUBPIXEL_BITS
:
4567 params
[0] = ctx
->Const
.SubPixelBits
;
4570 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4573 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4576 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4578 case GL_TEXTURE_1D_ARRAY_EXT
:
4579 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4580 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4582 case GL_TEXTURE_2D_ARRAY_EXT
:
4583 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4584 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4586 case GL_TEXTURE_BINDING_1D
:
4587 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4589 case GL_TEXTURE_BINDING_2D
:
4590 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4592 case GL_TEXTURE_BINDING_3D
:
4593 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4595 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4596 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4597 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1DArray
->Name
;
4599 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4600 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4601 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2DArray
->Name
;
4603 case GL_TEXTURE_GEN_S
:
4604 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4606 case GL_TEXTURE_GEN_T
:
4607 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4609 case GL_TEXTURE_GEN_R
:
4610 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4612 case GL_TEXTURE_GEN_Q
:
4613 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4615 case GL_TEXTURE_MATRIX
:
4617 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4618 params
[0] = IROUND(matrix
[0]);
4619 params
[1] = IROUND(matrix
[1]);
4620 params
[2] = IROUND(matrix
[2]);
4621 params
[3] = IROUND(matrix
[3]);
4622 params
[4] = IROUND(matrix
[4]);
4623 params
[5] = IROUND(matrix
[5]);
4624 params
[6] = IROUND(matrix
[6]);
4625 params
[7] = IROUND(matrix
[7]);
4626 params
[8] = IROUND(matrix
[8]);
4627 params
[9] = IROUND(matrix
[9]);
4628 params
[10] = IROUND(matrix
[10]);
4629 params
[11] = IROUND(matrix
[11]);
4630 params
[12] = IROUND(matrix
[12]);
4631 params
[13] = IROUND(matrix
[13]);
4632 params
[14] = IROUND(matrix
[14]);
4633 params
[15] = IROUND(matrix
[15]);
4636 case GL_TEXTURE_STACK_DEPTH
:
4637 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4639 case GL_UNPACK_ALIGNMENT
:
4640 params
[0] = ctx
->Unpack
.Alignment
;
4642 case GL_UNPACK_LSB_FIRST
:
4643 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4645 case GL_UNPACK_ROW_LENGTH
:
4646 params
[0] = ctx
->Unpack
.RowLength
;
4648 case GL_UNPACK_SKIP_PIXELS
:
4649 params
[0] = ctx
->Unpack
.SkipPixels
;
4651 case GL_UNPACK_SKIP_ROWS
:
4652 params
[0] = ctx
->Unpack
.SkipRows
;
4654 case GL_UNPACK_SWAP_BYTES
:
4655 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4657 case GL_UNPACK_SKIP_IMAGES_EXT
:
4658 params
[0] = ctx
->Unpack
.SkipImages
;
4660 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4661 params
[0] = ctx
->Unpack
.ImageHeight
;
4663 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4664 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4667 params
[0] = ctx
->Viewport
.X
;
4668 params
[1] = ctx
->Viewport
.Y
;
4669 params
[2] = ctx
->Viewport
.Width
;
4670 params
[3] = ctx
->Viewport
.Height
;
4673 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4676 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4678 case GL_VERTEX_ARRAY
:
4679 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4681 case GL_VERTEX_ARRAY_SIZE
:
4682 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4684 case GL_VERTEX_ARRAY_TYPE
:
4685 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4687 case GL_VERTEX_ARRAY_STRIDE
:
4688 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4690 case GL_VERTEX_ARRAY_COUNT_EXT
:
4693 case GL_NORMAL_ARRAY
:
4694 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4696 case GL_NORMAL_ARRAY_TYPE
:
4697 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4699 case GL_NORMAL_ARRAY_STRIDE
:
4700 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4702 case GL_NORMAL_ARRAY_COUNT_EXT
:
4705 case GL_COLOR_ARRAY
:
4706 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4708 case GL_COLOR_ARRAY_SIZE
:
4709 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4711 case GL_COLOR_ARRAY_TYPE
:
4712 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4714 case GL_COLOR_ARRAY_STRIDE
:
4715 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4717 case GL_COLOR_ARRAY_COUNT_EXT
:
4720 case GL_INDEX_ARRAY
:
4721 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4723 case GL_INDEX_ARRAY_TYPE
:
4724 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4726 case GL_INDEX_ARRAY_STRIDE
:
4727 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4729 case GL_INDEX_ARRAY_COUNT_EXT
:
4732 case GL_TEXTURE_COORD_ARRAY
:
4733 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4735 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4736 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4738 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4739 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4741 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4742 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4744 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4747 case GL_EDGE_FLAG_ARRAY
:
4748 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4750 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4751 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4753 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4756 case GL_MAX_TEXTURE_UNITS_ARB
:
4757 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4758 params
[0] = ctx
->Const
.MaxTextureUnits
;
4760 case GL_ACTIVE_TEXTURE_ARB
:
4761 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4762 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4764 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4765 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4766 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4768 case GL_TEXTURE_CUBE_MAP_ARB
:
4769 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4770 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4772 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4773 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4774 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4776 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4777 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4778 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4780 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4781 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4782 params
[0] = ctx
->Hint
.TextureCompression
;
4784 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4785 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4786 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4788 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4789 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4792 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4794 for (i
= 0; i
< n
; i
++)
4795 params
[i
] = ENUM_TO_INT(formats
[i
]);
4798 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4799 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4800 params
[0] = ctx
->Array
.LockFirst
;
4802 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4803 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4804 params
[0] = ctx
->Array
.LockCount
;
4806 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4808 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4809 params
[0] = IROUND(matrix
[0]);
4810 params
[1] = IROUND(matrix
[4]);
4811 params
[2] = IROUND(matrix
[8]);
4812 params
[3] = IROUND(matrix
[12]);
4813 params
[4] = IROUND(matrix
[1]);
4814 params
[5] = IROUND(matrix
[5]);
4815 params
[6] = IROUND(matrix
[9]);
4816 params
[7] = IROUND(matrix
[13]);
4817 params
[8] = IROUND(matrix
[2]);
4818 params
[9] = IROUND(matrix
[6]);
4819 params
[10] = IROUND(matrix
[10]);
4820 params
[11] = IROUND(matrix
[14]);
4821 params
[12] = IROUND(matrix
[3]);
4822 params
[13] = IROUND(matrix
[7]);
4823 params
[14] = IROUND(matrix
[11]);
4824 params
[15] = IROUND(matrix
[15]);
4827 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4829 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4830 params
[0] = IROUND(matrix
[0]);
4831 params
[1] = IROUND(matrix
[4]);
4832 params
[2] = IROUND(matrix
[8]);
4833 params
[3] = IROUND(matrix
[12]);
4834 params
[4] = IROUND(matrix
[1]);
4835 params
[5] = IROUND(matrix
[5]);
4836 params
[6] = IROUND(matrix
[9]);
4837 params
[7] = IROUND(matrix
[13]);
4838 params
[8] = IROUND(matrix
[2]);
4839 params
[9] = IROUND(matrix
[6]);
4840 params
[10] = IROUND(matrix
[10]);
4841 params
[11] = IROUND(matrix
[14]);
4842 params
[12] = IROUND(matrix
[3]);
4843 params
[13] = IROUND(matrix
[7]);
4844 params
[14] = IROUND(matrix
[11]);
4845 params
[15] = IROUND(matrix
[15]);
4848 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4850 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4851 params
[0] = IROUND(matrix
[0]);
4852 params
[1] = IROUND(matrix
[4]);
4853 params
[2] = IROUND(matrix
[8]);
4854 params
[3] = IROUND(matrix
[12]);
4855 params
[4] = IROUND(matrix
[1]);
4856 params
[5] = IROUND(matrix
[5]);
4857 params
[6] = IROUND(matrix
[9]);
4858 params
[7] = IROUND(matrix
[13]);
4859 params
[8] = IROUND(matrix
[2]);
4860 params
[9] = IROUND(matrix
[6]);
4861 params
[10] = IROUND(matrix
[10]);
4862 params
[11] = IROUND(matrix
[14]);
4863 params
[12] = IROUND(matrix
[3]);
4864 params
[13] = IROUND(matrix
[7]);
4865 params
[14] = IROUND(matrix
[11]);
4866 params
[15] = IROUND(matrix
[15]);
4869 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4871 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4872 params
[0] = IROUND(matrix
[0]);
4873 params
[1] = IROUND(matrix
[4]);
4874 params
[2] = IROUND(matrix
[8]);
4875 params
[3] = IROUND(matrix
[12]);
4876 params
[4] = IROUND(matrix
[1]);
4877 params
[5] = IROUND(matrix
[5]);
4878 params
[6] = IROUND(matrix
[9]);
4879 params
[7] = IROUND(matrix
[13]);
4880 params
[8] = IROUND(matrix
[2]);
4881 params
[9] = IROUND(matrix
[6]);
4882 params
[10] = IROUND(matrix
[10]);
4883 params
[11] = IROUND(matrix
[14]);
4884 params
[12] = IROUND(matrix
[3]);
4885 params
[13] = IROUND(matrix
[7]);
4886 params
[14] = IROUND(matrix
[11]);
4887 params
[15] = IROUND(matrix
[15]);
4890 case GL_COLOR_MATRIX_SGI
:
4892 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4893 params
[0] = IROUND(matrix
[0]);
4894 params
[1] = IROUND(matrix
[1]);
4895 params
[2] = IROUND(matrix
[2]);
4896 params
[3] = IROUND(matrix
[3]);
4897 params
[4] = IROUND(matrix
[4]);
4898 params
[5] = IROUND(matrix
[5]);
4899 params
[6] = IROUND(matrix
[6]);
4900 params
[7] = IROUND(matrix
[7]);
4901 params
[8] = IROUND(matrix
[8]);
4902 params
[9] = IROUND(matrix
[9]);
4903 params
[10] = IROUND(matrix
[10]);
4904 params
[11] = IROUND(matrix
[11]);
4905 params
[12] = IROUND(matrix
[12]);
4906 params
[13] = IROUND(matrix
[13]);
4907 params
[14] = IROUND(matrix
[14]);
4908 params
[15] = IROUND(matrix
[15]);
4911 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4912 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4914 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4915 params
[0] = MAX_COLOR_STACK_DEPTH
;
4917 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4918 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4920 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4921 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4923 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4924 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4926 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4927 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4929 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4930 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4932 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4933 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4935 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4936 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4938 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4939 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4941 case GL_CONVOLUTION_1D_EXT
:
4942 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4943 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4945 case GL_CONVOLUTION_2D_EXT
:
4946 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4947 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4949 case GL_SEPARABLE_2D_EXT
:
4950 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4951 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4953 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4954 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4955 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4957 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4958 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4959 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4961 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4962 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4963 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4965 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4966 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4967 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4969 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4970 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4971 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4973 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4974 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4975 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4977 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4978 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4979 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4981 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4982 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4983 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4986 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4987 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4990 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4991 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4993 case GL_COLOR_TABLE_SGI
:
4994 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4995 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
4997 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4998 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4999 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
5001 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
5002 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
5003 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
5005 case GL_TEXTURE_COLOR_TABLE_SGI
:
5006 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
5007 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
5009 case GL_COLOR_SUM_EXT
:
5010 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
5011 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
5013 case GL_CURRENT_SECONDARY_COLOR_EXT
:
5014 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5016 FLUSH_CURRENT(ctx
, 0);
5017 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
5018 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
5019 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
5020 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
5023 case GL_SECONDARY_COLOR_ARRAY_EXT
:
5024 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5025 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
5027 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
5028 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5029 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
5031 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
5032 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5033 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
5035 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
5036 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5037 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
5039 case GL_CURRENT_FOG_COORDINATE_EXT
:
5040 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5042 FLUSH_CURRENT(ctx
, 0);
5043 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5046 case GL_FOG_COORDINATE_ARRAY_EXT
:
5047 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5048 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
5050 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5051 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5052 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
5054 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5055 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5056 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
5058 case GL_FOG_COORDINATE_SOURCE_EXT
:
5059 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5060 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5062 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5063 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5064 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5066 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5067 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5068 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5070 case GL_MULTISAMPLE_ARB
:
5071 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5072 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5074 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5075 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5076 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5078 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5079 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5080 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5082 case GL_SAMPLE_COVERAGE_ARB
:
5083 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5084 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5086 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5087 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5088 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5090 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5091 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5092 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5094 case GL_SAMPLE_BUFFERS_ARB
:
5095 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5096 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5098 case GL_SAMPLES_ARB
:
5099 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5100 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5102 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5103 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5104 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5106 case GL_POINT_SPRITE_NV
:
5107 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5108 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5110 case GL_POINT_SPRITE_R_MODE_NV
:
5111 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5112 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5114 case GL_POINT_SPRITE_COORD_ORIGIN
:
5115 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5116 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5118 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5119 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5120 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5122 case GL_VERTEX_PROGRAM_BINDING_NV
:
5123 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5124 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5126 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5127 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5128 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5130 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5131 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5132 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5134 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5135 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5136 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5138 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5139 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5140 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5142 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5143 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5144 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5146 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5147 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5148 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5150 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5151 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5152 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5154 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5155 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5156 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5158 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5159 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5160 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5162 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5163 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5164 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5166 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5167 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5168 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5170 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5171 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5172 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5174 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5175 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5176 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5178 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5179 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5180 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5182 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5183 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5184 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5186 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5187 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5188 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5190 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5191 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5194 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5195 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5196 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5198 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5199 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5200 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5202 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5203 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5204 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5206 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5207 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5208 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5210 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5211 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5212 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5214 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5215 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5216 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5218 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5219 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5220 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5222 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5223 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5224 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5226 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5227 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5228 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5230 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5231 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5232 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5234 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5235 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5236 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5238 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5239 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5240 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5242 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5243 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5244 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5246 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5247 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5248 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5250 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5251 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5252 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5254 case GL_FRAGMENT_PROGRAM_NV
:
5255 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5256 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5258 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5259 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5260 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5262 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5263 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5264 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5266 case GL_TEXTURE_RECTANGLE_NV
:
5267 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5268 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5270 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5271 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5272 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5274 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5275 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5276 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5278 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5279 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5280 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5282 case GL_ACTIVE_STENCIL_FACE_EXT
:
5283 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5284 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5286 case GL_MAX_SHININESS_NV
:
5287 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5288 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5290 case GL_MAX_SPOT_EXPONENT_NV
:
5291 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5292 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5294 case GL_ARRAY_BUFFER_BINDING_ARB
:
5295 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5296 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5298 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5299 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5300 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5302 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5303 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5304 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5306 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5307 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5308 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5310 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5311 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5312 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5314 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5315 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5316 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5318 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5319 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5320 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5322 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5323 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5324 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5326 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5327 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5328 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5330 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5331 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5332 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5334 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5335 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5336 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5338 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5339 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5340 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5342 case GL_VERTEX_PROGRAM_ARB
:
5343 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5344 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5346 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5347 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5348 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5350 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5351 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5352 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5354 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5355 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5356 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5358 case GL_MAX_PROGRAM_MATRICES_ARB
:
5359 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5360 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5362 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5363 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5364 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5366 case GL_CURRENT_MATRIX_ARB
:
5367 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5369 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5370 params
[0] = IROUND(matrix
[0]);
5371 params
[1] = IROUND(matrix
[1]);
5372 params
[2] = IROUND(matrix
[2]);
5373 params
[3] = IROUND(matrix
[3]);
5374 params
[4] = IROUND(matrix
[4]);
5375 params
[5] = IROUND(matrix
[5]);
5376 params
[6] = IROUND(matrix
[6]);
5377 params
[7] = IROUND(matrix
[7]);
5378 params
[8] = IROUND(matrix
[8]);
5379 params
[9] = IROUND(matrix
[9]);
5380 params
[10] = IROUND(matrix
[10]);
5381 params
[11] = IROUND(matrix
[11]);
5382 params
[12] = IROUND(matrix
[12]);
5383 params
[13] = IROUND(matrix
[13]);
5384 params
[14] = IROUND(matrix
[14]);
5385 params
[15] = IROUND(matrix
[15]);
5388 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5389 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5391 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5392 params
[0] = IROUND(matrix
[0]);
5393 params
[1] = IROUND(matrix
[4]);
5394 params
[2] = IROUND(matrix
[8]);
5395 params
[3] = IROUND(matrix
[12]);
5396 params
[4] = IROUND(matrix
[1]);
5397 params
[5] = IROUND(matrix
[5]);
5398 params
[6] = IROUND(matrix
[9]);
5399 params
[7] = IROUND(matrix
[13]);
5400 params
[8] = IROUND(matrix
[2]);
5401 params
[9] = IROUND(matrix
[6]);
5402 params
[10] = IROUND(matrix
[10]);
5403 params
[11] = IROUND(matrix
[14]);
5404 params
[12] = IROUND(matrix
[3]);
5405 params
[13] = IROUND(matrix
[7]);
5406 params
[14] = IROUND(matrix
[11]);
5407 params
[15] = IROUND(matrix
[15]);
5410 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5411 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5412 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5414 case GL_PROGRAM_ERROR_POSITION_ARB
:
5415 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5416 params
[0] = ctx
->Program
.ErrorPos
;
5418 case GL_FRAGMENT_PROGRAM_ARB
:
5419 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5420 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5422 case GL_MAX_TEXTURE_COORDS_ARB
:
5423 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5424 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5426 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5427 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5428 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5430 case GL_DEPTH_BOUNDS_TEST_EXT
:
5431 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5432 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5434 case GL_DEPTH_BOUNDS_EXT
:
5435 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5436 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5437 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5439 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5440 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5441 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5443 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5444 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5445 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5447 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5448 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5449 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5451 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5452 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5453 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5455 case GL_MAX_DRAW_BUFFERS_ARB
:
5456 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5457 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5459 case GL_DRAW_BUFFER0_ARB
:
5460 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5461 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5463 case GL_DRAW_BUFFER1_ARB
:
5464 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5467 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5468 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5471 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5472 params
[0] = ENUM_TO_INT(buffer
);
5475 case GL_DRAW_BUFFER2_ARB
:
5476 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5479 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5480 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5483 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5484 params
[0] = ENUM_TO_INT(buffer
);
5487 case GL_DRAW_BUFFER3_ARB
:
5488 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5491 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5492 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5495 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5496 params
[0] = ENUM_TO_INT(buffer
);
5499 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5500 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5501 params
[0] = ctx
->Const
.ColorReadType
;
5503 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5504 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5505 params
[0] = ctx
->Const
.ColorReadFormat
;
5507 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5508 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5511 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5512 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5515 case GL_NUM_PASSES_ATI
:
5516 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5519 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5520 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5523 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5524 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5527 case GL_COLOR_ALPHA_PAIRING_ATI
:
5528 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5529 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5531 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5532 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5535 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5536 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5539 case GL_STENCIL_BACK_FUNC
:
5540 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5542 case GL_STENCIL_BACK_VALUE_MASK
:
5543 params
[0] = ctx
->Stencil
.ValueMask
[1];
5545 case GL_STENCIL_BACK_WRITEMASK
:
5546 params
[0] = ctx
->Stencil
.WriteMask
[1];
5548 case GL_STENCIL_BACK_REF
:
5549 params
[0] = ctx
->Stencil
.Ref
[1];
5551 case GL_STENCIL_BACK_FAIL
:
5552 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5554 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5555 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5557 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5558 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5560 case GL_FRAMEBUFFER_BINDING_EXT
:
5561 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5562 params
[0] = ctx
->DrawBuffer
->Name
;
5564 case GL_RENDERBUFFER_BINDING_EXT
:
5565 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5566 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5568 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5569 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5570 params
[0] = ctx
->Const
.MaxColorAttachments
;
5572 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5573 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5574 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5576 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5577 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5578 params
[0] = ctx
->ReadBuffer
->Name
;
5580 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5581 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5582 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5584 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5585 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5586 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5588 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5589 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5590 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5592 case GL_MAX_VARYING_FLOATS_ARB
:
5593 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5594 params
[0] = ctx
->Const
.MaxVarying
* 4;
5596 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5597 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5598 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5600 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5601 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5602 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5604 case GL_CURRENT_PROGRAM
:
5605 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5606 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5609 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5615 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5617 const GLfloat magic
= -1234.5F
;
5624 /* Init temp array to magic numbers so we can figure out how many values
5625 * are returned by the GetFloatv() call.
5627 for (i
= 0; i
< 16; i
++)
5630 _mesa_GetFloatv(pname
, values
);
5632 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5633 params
[i
] = (GLdouble
) values
[i
];