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_TEXTURE_COORDS
:
264 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
265 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
266 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
267 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
268 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
271 case GL_CURRENT_RASTER_POSITION_VALID
:
272 params
[0] = ctx
->Current
.RasterPosValid
;
274 case GL_CURRENT_TEXTURE_COORDS
:
276 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
277 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
278 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
279 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
280 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
284 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
287 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
289 case GL_DEPTH_CLEAR_VALUE
:
290 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.Clear
);
293 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
296 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
297 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
300 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
303 params
[0] = ctx
->Depth
.Test
;
305 case GL_DEPTH_WRITEMASK
:
306 params
[0] = ctx
->Depth
.Mask
;
309 params
[0] = ctx
->Color
.DitherFlag
;
311 case GL_DOUBLEBUFFER
:
312 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
315 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
319 FLUSH_CURRENT(ctx
, 0);
320 params
[0] = ctx
->Current
.EdgeFlag
;
323 case GL_FEEDBACK_BUFFER_SIZE
:
324 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
326 case GL_FEEDBACK_BUFFER_TYPE
:
327 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
330 params
[0] = ctx
->Fog
.Enabled
;
333 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
334 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
335 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
336 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
339 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
342 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
345 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
348 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
351 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
354 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
357 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
360 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
363 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
366 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
369 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
371 case GL_INDEX_CLEAR_VALUE
:
372 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
375 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
377 case GL_INDEX_OFFSET
:
378 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
381 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
383 case GL_INDEX_WRITEMASK
:
384 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
387 params
[0] = ctx
->Light
.Light
[0].Enabled
;
390 params
[0] = ctx
->Light
.Light
[1].Enabled
;
393 params
[0] = ctx
->Light
.Light
[2].Enabled
;
396 params
[0] = ctx
->Light
.Light
[3].Enabled
;
399 params
[0] = ctx
->Light
.Light
[4].Enabled
;
402 params
[0] = ctx
->Light
.Light
[5].Enabled
;
405 params
[0] = ctx
->Light
.Light
[6].Enabled
;
408 params
[0] = ctx
->Light
.Light
[7].Enabled
;
411 params
[0] = ctx
->Light
.Enabled
;
413 case GL_LIGHT_MODEL_AMBIENT
:
414 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
415 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
416 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
417 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
419 case GL_LIGHT_MODEL_COLOR_CONTROL
:
420 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
422 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
423 params
[0] = ctx
->Light
.Model
.LocalViewer
;
425 case GL_LIGHT_MODEL_TWO_SIDE
:
426 params
[0] = ctx
->Light
.Model
.TwoSide
;
429 params
[0] = ctx
->Line
.SmoothFlag
;
431 case GL_LINE_SMOOTH_HINT
:
432 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
434 case GL_LINE_STIPPLE
:
435 params
[0] = ctx
->Line
.StippleFlag
;
437 case GL_LINE_STIPPLE_PATTERN
:
438 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
440 case GL_LINE_STIPPLE_REPEAT
:
441 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
444 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
446 case GL_LINE_WIDTH_GRANULARITY
:
447 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
449 case GL_LINE_WIDTH_RANGE
:
450 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
451 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
453 case GL_ALIASED_LINE_WIDTH_RANGE
:
454 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
455 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
458 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
461 params
[0] = INT_TO_BOOLEAN(ctx
->ListState
.CurrentListNum
);
466 if (!ctx
->CompileFlag
)
468 else if (ctx
->ExecuteFlag
)
469 mode
= GL_COMPILE_AND_EXECUTE
;
472 params
[0] = ENUM_TO_BOOLEAN(mode
);
475 case GL_INDEX_LOGIC_OP
:
476 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
478 case GL_COLOR_LOGIC_OP
:
479 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
481 case GL_LOGIC_OP_MODE
:
482 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
484 case GL_MAP1_COLOR_4
:
485 params
[0] = ctx
->Eval
.Map1Color4
;
487 case GL_MAP1_GRID_DOMAIN
:
488 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
489 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
491 case GL_MAP1_GRID_SEGMENTS
:
492 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
495 params
[0] = ctx
->Eval
.Map1Index
;
498 params
[0] = ctx
->Eval
.Map1Normal
;
500 case GL_MAP1_TEXTURE_COORD_1
:
501 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
503 case GL_MAP1_TEXTURE_COORD_2
:
504 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
506 case GL_MAP1_TEXTURE_COORD_3
:
507 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
509 case GL_MAP1_TEXTURE_COORD_4
:
510 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
512 case GL_MAP1_VERTEX_3
:
513 params
[0] = ctx
->Eval
.Map1Vertex3
;
515 case GL_MAP1_VERTEX_4
:
516 params
[0] = ctx
->Eval
.Map1Vertex4
;
518 case GL_MAP2_COLOR_4
:
519 params
[0] = ctx
->Eval
.Map2Color4
;
521 case GL_MAP2_GRID_DOMAIN
:
522 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
523 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
524 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
525 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
527 case GL_MAP2_GRID_SEGMENTS
:
528 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
529 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
532 params
[0] = ctx
->Eval
.Map2Index
;
535 params
[0] = ctx
->Eval
.Map2Normal
;
537 case GL_MAP2_TEXTURE_COORD_1
:
538 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
540 case GL_MAP2_TEXTURE_COORD_2
:
541 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
543 case GL_MAP2_TEXTURE_COORD_3
:
544 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
546 case GL_MAP2_TEXTURE_COORD_4
:
547 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
549 case GL_MAP2_VERTEX_3
:
550 params
[0] = ctx
->Eval
.Map2Vertex3
;
552 case GL_MAP2_VERTEX_4
:
553 params
[0] = ctx
->Eval
.Map2Vertex4
;
556 params
[0] = ctx
->Pixel
.MapColorFlag
;
559 params
[0] = ctx
->Pixel
.MapStencilFlag
;
562 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
564 case GL_MAX_ATTRIB_STACK_DEPTH
:
565 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
567 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
568 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
570 case GL_MAX_CLIP_PLANES
:
571 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
573 case GL_MAX_ELEMENTS_VERTICES
:
574 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
576 case GL_MAX_ELEMENTS_INDICES
:
577 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
579 case GL_MAX_EVAL_ORDER
:
580 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
583 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
585 case GL_MAX_LIST_NESTING
:
586 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
588 case GL_MAX_MODELVIEW_STACK_DEPTH
:
589 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
591 case GL_MAX_NAME_STACK_DEPTH
:
592 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
594 case GL_MAX_PIXEL_MAP_TABLE
:
595 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
597 case GL_MAX_PROJECTION_STACK_DEPTH
:
598 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
600 case GL_MAX_TEXTURE_SIZE
:
601 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
603 case GL_MAX_3D_TEXTURE_SIZE
:
604 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
606 case GL_MAX_TEXTURE_STACK_DEPTH
:
607 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
609 case GL_MAX_VIEWPORT_DIMS
:
610 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
611 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
613 case GL_MODELVIEW_MATRIX
:
615 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
616 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
617 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
618 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
619 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
620 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
621 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
622 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
623 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
624 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
625 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
626 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
627 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
628 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
629 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
630 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
631 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
634 case GL_MODELVIEW_STACK_DEPTH
:
635 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
637 case GL_NAME_STACK_DEPTH
:
638 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
641 params
[0] = ctx
->Transform
.Normalize
;
643 case GL_PACK_ALIGNMENT
:
644 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
646 case GL_PACK_LSB_FIRST
:
647 params
[0] = ctx
->Pack
.LsbFirst
;
649 case GL_PACK_ROW_LENGTH
:
650 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
652 case GL_PACK_SKIP_PIXELS
:
653 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
655 case GL_PACK_SKIP_ROWS
:
656 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
658 case GL_PACK_SWAP_BYTES
:
659 params
[0] = ctx
->Pack
.SwapBytes
;
661 case GL_PACK_SKIP_IMAGES_EXT
:
662 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
664 case GL_PACK_IMAGE_HEIGHT_EXT
:
665 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
667 case GL_PACK_INVERT_MESA
:
668 params
[0] = ctx
->Pack
.Invert
;
670 case GL_PERSPECTIVE_CORRECTION_HINT
:
671 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
673 case GL_PIXEL_MAP_A_TO_A_SIZE
:
674 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapAtoAsize
);
676 case GL_PIXEL_MAP_B_TO_B_SIZE
:
677 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapBtoBsize
);
679 case GL_PIXEL_MAP_G_TO_G_SIZE
:
680 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapGtoGsize
);
682 case GL_PIXEL_MAP_I_TO_A_SIZE
:
683 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoAsize
);
685 case GL_PIXEL_MAP_I_TO_B_SIZE
:
686 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoBsize
);
688 case GL_PIXEL_MAP_I_TO_G_SIZE
:
689 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoGsize
);
691 case GL_PIXEL_MAP_I_TO_I_SIZE
:
692 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoIsize
);
694 case GL_PIXEL_MAP_I_TO_R_SIZE
:
695 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoRsize
);
697 case GL_PIXEL_MAP_R_TO_R_SIZE
:
698 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapRtoRsize
);
700 case GL_PIXEL_MAP_S_TO_S_SIZE
:
701 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapStoSsize
);
704 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
706 case GL_POINT_SIZE_GRANULARITY
:
707 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
709 case GL_POINT_SIZE_RANGE
:
710 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
711 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
713 case GL_ALIASED_POINT_SIZE_RANGE
:
714 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
715 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
717 case GL_POINT_SMOOTH
:
718 params
[0] = ctx
->Point
.SmoothFlag
;
720 case GL_POINT_SMOOTH_HINT
:
721 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
723 case GL_POINT_SIZE_MIN_EXT
:
724 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
726 case GL_POINT_SIZE_MAX_EXT
:
727 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
729 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
730 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
732 case GL_DISTANCE_ATTENUATION_EXT
:
733 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
734 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
735 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
737 case GL_POLYGON_MODE
:
738 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
739 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
741 case GL_POLYGON_OFFSET_BIAS_EXT
:
742 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
744 case GL_POLYGON_OFFSET_FACTOR
:
745 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
747 case GL_POLYGON_OFFSET_UNITS
:
748 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
750 case GL_POLYGON_SMOOTH
:
751 params
[0] = ctx
->Polygon
.SmoothFlag
;
753 case GL_POLYGON_SMOOTH_HINT
:
754 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
756 case GL_POLYGON_STIPPLE
:
757 params
[0] = ctx
->Polygon
.StippleFlag
;
759 case GL_PROJECTION_MATRIX
:
761 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
762 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
763 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
764 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
765 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
766 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
767 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
768 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
769 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
770 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
771 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
772 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
773 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
774 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
775 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
776 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
777 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
780 case GL_PROJECTION_STACK_DEPTH
:
781 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
784 params
[0] = ENUM_TO_BOOLEAN(ctx
->ReadBuffer
->ColorReadBuffer
);
787 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
790 params
[0] = INT_TO_BOOLEAN( ctx
->DrawBuffer
->Visual
.redBits
);
793 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
796 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
798 case GL_RESCALE_NORMAL
:
799 params
[0] = ctx
->Transform
.RescaleNormals
;
802 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
805 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
806 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
807 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
808 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
810 case GL_SCISSOR_TEST
:
811 params
[0] = ctx
->Scissor
.Enabled
;
813 case GL_SELECTION_BUFFER_SIZE
:
814 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
817 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
819 case GL_SHARED_TEXTURE_PALETTE_EXT
:
820 params
[0] = ctx
->Texture
.SharedPalette
;
822 case GL_STENCIL_BITS
:
823 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
825 case GL_STENCIL_CLEAR_VALUE
:
826 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
828 case GL_STENCIL_FAIL
:
829 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
831 case GL_STENCIL_FUNC
:
832 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
834 case GL_STENCIL_PASS_DEPTH_FAIL
:
835 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
837 case GL_STENCIL_PASS_DEPTH_PASS
:
838 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
841 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
843 case GL_STENCIL_TEST
:
844 params
[0] = ctx
->Stencil
.Enabled
;
846 case GL_STENCIL_VALUE_MASK
:
847 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
849 case GL_STENCIL_WRITEMASK
:
850 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
853 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
855 case GL_SUBPIXEL_BITS
:
856 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
859 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
862 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
865 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
867 case GL_TEXTURE_BINDING_1D
:
868 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
870 case GL_TEXTURE_BINDING_2D
:
871 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
873 case GL_TEXTURE_BINDING_3D
:
874 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
876 case GL_TEXTURE_ENV_COLOR
:
878 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
879 params
[0] = FLOAT_TO_BOOLEAN(color
[0]);
880 params
[1] = FLOAT_TO_BOOLEAN(color
[1]);
881 params
[2] = FLOAT_TO_BOOLEAN(color
[2]);
882 params
[3] = FLOAT_TO_BOOLEAN(color
[3]);
885 case GL_TEXTURE_ENV_MODE
:
886 params
[0] = ENUM_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
888 case GL_TEXTURE_GEN_S
:
889 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
891 case GL_TEXTURE_GEN_T
:
892 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
894 case GL_TEXTURE_GEN_R
:
895 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
897 case GL_TEXTURE_GEN_Q
:
898 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
900 case GL_TEXTURE_MATRIX
:
902 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
903 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
904 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
905 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
906 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
907 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
908 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
909 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
910 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
911 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
912 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
913 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
914 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
915 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
916 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
917 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
918 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
921 case GL_TEXTURE_STACK_DEPTH
:
922 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
924 case GL_UNPACK_ALIGNMENT
:
925 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
927 case GL_UNPACK_LSB_FIRST
:
928 params
[0] = ctx
->Unpack
.LsbFirst
;
930 case GL_UNPACK_ROW_LENGTH
:
931 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
933 case GL_UNPACK_SKIP_PIXELS
:
934 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
936 case GL_UNPACK_SKIP_ROWS
:
937 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
939 case GL_UNPACK_SWAP_BYTES
:
940 params
[0] = ctx
->Unpack
.SwapBytes
;
942 case GL_UNPACK_SKIP_IMAGES_EXT
:
943 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
945 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
946 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
948 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
949 params
[0] = ctx
->Unpack
.ClientStorage
;
952 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
953 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
954 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
955 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
958 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
961 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
963 case GL_VERTEX_ARRAY
:
964 params
[0] = ctx
->Array
.Vertex
.Enabled
;
966 case GL_VERTEX_ARRAY_SIZE
:
967 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.Size
);
969 case GL_VERTEX_ARRAY_TYPE
:
970 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Vertex
.Type
);
972 case GL_VERTEX_ARRAY_STRIDE
:
973 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.Stride
);
975 case GL_VERTEX_ARRAY_COUNT_EXT
:
976 params
[0] = INT_TO_BOOLEAN(0);
978 case GL_NORMAL_ARRAY
:
979 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Normal
.Enabled
);
981 case GL_NORMAL_ARRAY_TYPE
:
982 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Normal
.Type
);
984 case GL_NORMAL_ARRAY_STRIDE
:
985 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.Stride
);
987 case GL_NORMAL_ARRAY_COUNT_EXT
:
988 params
[0] = INT_TO_BOOLEAN(0);
991 params
[0] = ctx
->Array
.Color
.Enabled
;
993 case GL_COLOR_ARRAY_SIZE
:
994 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.Size
);
996 case GL_COLOR_ARRAY_TYPE
:
997 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Color
.Type
);
999 case GL_COLOR_ARRAY_STRIDE
:
1000 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.Stride
);
1002 case GL_COLOR_ARRAY_COUNT_EXT
:
1003 params
[0] = INT_TO_BOOLEAN(0);
1005 case GL_INDEX_ARRAY
:
1006 params
[0] = ctx
->Array
.Index
.Enabled
;
1008 case GL_INDEX_ARRAY_TYPE
:
1009 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Index
.Type
);
1011 case GL_INDEX_ARRAY_STRIDE
:
1012 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.Stride
);
1014 case GL_INDEX_ARRAY_COUNT_EXT
:
1015 params
[0] = INT_TO_BOOLEAN(0);
1017 case GL_TEXTURE_COORD_ARRAY
:
1018 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1020 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1021 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1023 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1024 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1026 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1027 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1029 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1030 params
[0] = INT_TO_BOOLEAN(0);
1032 case GL_EDGE_FLAG_ARRAY
:
1033 params
[0] = ctx
->Array
.EdgeFlag
.Enabled
;
1035 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1036 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.Stride
);
1038 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1039 params
[0] = INT_TO_BOOLEAN(0);
1041 case GL_MAX_TEXTURE_UNITS_ARB
:
1042 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1043 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1045 case GL_ACTIVE_TEXTURE_ARB
:
1046 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1047 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1049 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1050 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1051 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1053 case GL_TEXTURE_CUBE_MAP_ARB
:
1054 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1055 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1057 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1058 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1059 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
1061 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1062 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1063 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1065 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1066 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1067 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1069 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1070 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1071 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1073 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1074 CHECK_EXT1(ARB_texture_compression
, "GetBooleanv");
1077 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1079 for (i
= 0; i
< n
; i
++)
1080 params
[i
] = ENUM_TO_INT(formats
[i
]);
1083 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1084 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1085 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1087 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1088 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1089 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1091 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1093 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1094 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1095 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1096 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1097 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1098 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1099 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1100 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1101 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1102 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1103 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1104 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1105 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1106 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1107 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1108 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1109 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1112 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1114 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1115 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1116 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1117 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1118 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1119 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1120 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1121 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1122 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1123 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1124 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1125 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1126 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1127 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1128 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1129 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1130 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1133 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1135 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1136 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1137 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1138 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1139 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1140 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1141 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1142 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1143 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1144 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1145 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1146 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1147 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1148 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1149 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1150 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1151 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1154 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1156 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1157 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1158 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1159 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1160 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1161 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1162 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1163 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1164 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1165 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1166 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1167 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1168 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1169 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1170 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1171 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1172 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1175 case GL_COLOR_MATRIX_SGI
:
1177 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1178 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1179 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1180 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1181 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1182 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1183 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1184 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1185 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1186 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1187 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1188 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1189 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1190 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1191 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1192 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1193 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1196 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1197 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1199 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1200 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1202 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1203 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1205 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1206 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1208 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1209 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1211 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1212 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1214 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1215 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1217 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1218 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1220 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1221 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1223 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1224 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1226 case GL_CONVOLUTION_1D_EXT
:
1227 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1228 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1230 case GL_CONVOLUTION_2D_EXT
:
1231 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1232 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1234 case GL_SEPARABLE_2D_EXT
:
1235 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1236 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1238 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1239 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1240 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1242 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1243 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1244 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1246 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1247 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1248 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1250 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1251 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1252 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1254 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1255 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1256 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1258 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1259 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1260 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1262 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1263 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1264 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1266 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1267 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1268 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1271 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1272 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1275 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1276 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1278 case GL_COLOR_TABLE_SGI
:
1279 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1280 params
[0] = ctx
->Pixel
.ColorTableEnabled
;
1282 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1283 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1284 params
[0] = ctx
->Pixel
.PostConvolutionColorTableEnabled
;
1286 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1287 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1288 params
[0] = ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
1290 case GL_TEXTURE_COLOR_TABLE_SGI
:
1291 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1292 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1294 case GL_COLOR_SUM_EXT
:
1295 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1296 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1298 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1299 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1301 FLUSH_CURRENT(ctx
, 0);
1302 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1303 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1304 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1305 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1308 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1309 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1310 params
[0] = ctx
->Array
.SecondaryColor
.Enabled
;
1312 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1313 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1314 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Type
);
1316 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1317 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1318 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Stride
);
1320 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1321 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1322 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Size
);
1324 case GL_CURRENT_FOG_COORDINATE_EXT
:
1325 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1327 FLUSH_CURRENT(ctx
, 0);
1328 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1331 case GL_FOG_COORDINATE_ARRAY_EXT
:
1332 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1333 params
[0] = ctx
->Array
.FogCoord
.Enabled
;
1335 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1336 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1337 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.FogCoord
.Type
);
1339 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1340 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1341 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.Stride
);
1343 case GL_FOG_COORDINATE_SOURCE_EXT
:
1344 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1345 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1347 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1348 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1349 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1351 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1352 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1353 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1355 case GL_MULTISAMPLE_ARB
:
1356 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1357 params
[0] = ctx
->Multisample
.Enabled
;
1359 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1360 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1361 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1363 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1364 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1365 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1367 case GL_SAMPLE_COVERAGE_ARB
:
1368 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1369 params
[0] = ctx
->Multisample
.SampleCoverage
;
1371 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1372 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1373 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1375 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1376 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1377 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1379 case GL_SAMPLE_BUFFERS_ARB
:
1380 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1381 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1383 case GL_SAMPLES_ARB
:
1384 CHECK_EXT1(ARB_multisample
, "GetBooleanv");
1385 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1387 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1388 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1389 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1391 case GL_POINT_SPRITE_NV
:
1392 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1393 params
[0] = ctx
->Point
.PointSprite
;
1395 case GL_POINT_SPRITE_R_MODE_NV
:
1396 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1397 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1399 case GL_POINT_SPRITE_COORD_ORIGIN
:
1400 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1401 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1403 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1404 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1405 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1407 case GL_VERTEX_PROGRAM_BINDING_NV
:
1408 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1409 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1411 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1412 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1413 params
[0] = ctx
->Array
.VertexAttrib
[0].Enabled
;
1415 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1416 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1417 params
[0] = ctx
->Array
.VertexAttrib
[1].Enabled
;
1419 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1420 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1421 params
[0] = ctx
->Array
.VertexAttrib
[2].Enabled
;
1423 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1424 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1425 params
[0] = ctx
->Array
.VertexAttrib
[3].Enabled
;
1427 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1428 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1429 params
[0] = ctx
->Array
.VertexAttrib
[4].Enabled
;
1431 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1432 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1433 params
[0] = ctx
->Array
.VertexAttrib
[5].Enabled
;
1435 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1436 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1437 params
[0] = ctx
->Array
.VertexAttrib
[6].Enabled
;
1439 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1440 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1441 params
[0] = ctx
->Array
.VertexAttrib
[7].Enabled
;
1443 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1444 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1445 params
[0] = ctx
->Array
.VertexAttrib
[8].Enabled
;
1447 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1448 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1449 params
[0] = ctx
->Array
.VertexAttrib
[9].Enabled
;
1451 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1452 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1453 params
[0] = ctx
->Array
.VertexAttrib
[10].Enabled
;
1455 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1456 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1457 params
[0] = ctx
->Array
.VertexAttrib
[11].Enabled
;
1459 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1460 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1461 params
[0] = ctx
->Array
.VertexAttrib
[12].Enabled
;
1463 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1464 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1465 params
[0] = ctx
->Array
.VertexAttrib
[13].Enabled
;
1467 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1468 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1469 params
[0] = ctx
->Array
.VertexAttrib
[14].Enabled
;
1471 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1472 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1473 params
[0] = ctx
->Array
.VertexAttrib
[15].Enabled
;
1475 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1476 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1477 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1479 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1480 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1481 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1483 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1484 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1485 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1487 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1488 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1489 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1491 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1492 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1493 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1495 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1496 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1497 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1499 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1500 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1501 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1503 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1504 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1505 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1507 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1508 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1509 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1511 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1512 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1513 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1515 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1516 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1517 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1519 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1520 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1521 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1523 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1524 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1525 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1527 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1528 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1529 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1531 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1532 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1533 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1535 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1536 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1537 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1539 case GL_FRAGMENT_PROGRAM_NV
:
1540 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1541 params
[0] = ctx
->FragmentProgram
.Enabled
;
1543 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1544 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1545 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1547 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1548 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1549 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1551 case GL_TEXTURE_RECTANGLE_NV
:
1552 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1553 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1555 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1556 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1557 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
1559 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1560 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1561 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1563 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1564 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1565 params
[0] = ctx
->Stencil
.TestTwoSide
;
1567 case GL_ACTIVE_STENCIL_FACE_EXT
:
1568 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1569 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1571 case GL_MAX_SHININESS_NV
:
1572 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1573 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1575 case GL_MAX_SPOT_EXPONENT_NV
:
1576 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1577 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1579 case GL_ARRAY_BUFFER_BINDING_ARB
:
1580 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1581 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1583 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1584 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1585 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.BufferObj
->Name
);
1587 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1588 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1589 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.BufferObj
->Name
);
1591 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1592 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1593 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.BufferObj
->Name
);
1595 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1596 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1597 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.BufferObj
->Name
);
1599 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1600 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1601 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1603 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1604 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1605 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
1607 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1608 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1609 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
1611 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1612 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1613 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.BufferObj
->Name
);
1615 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1616 CHECK_EXT1(ARB_vertex_buffer_object
, "GetBooleanv");
1617 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1619 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1620 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1621 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1623 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1624 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1625 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1627 case GL_VERTEX_PROGRAM_ARB
:
1628 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1629 params
[0] = ctx
->VertexProgram
.Enabled
;
1631 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1632 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1633 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1635 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1636 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1637 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1639 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1640 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1641 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1643 case GL_MAX_PROGRAM_MATRICES_ARB
:
1644 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1645 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1647 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1648 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1649 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1651 case GL_CURRENT_MATRIX_ARB
:
1652 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1654 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1655 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1656 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1657 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1658 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1659 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1660 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1661 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1662 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1663 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1664 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1665 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1666 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1667 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1668 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1669 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1670 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1673 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1674 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1676 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1677 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1678 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1679 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1680 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1681 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1682 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1683 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1684 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1685 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1686 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1687 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1688 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1689 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1690 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1691 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1692 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1695 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1696 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1697 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1699 case GL_PROGRAM_ERROR_POSITION_ARB
:
1700 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1701 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1703 case GL_FRAGMENT_PROGRAM_ARB
:
1704 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1705 params
[0] = ctx
->FragmentProgram
.Enabled
;
1707 case GL_MAX_TEXTURE_COORDS_ARB
:
1708 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1709 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1711 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1712 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1713 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1715 case GL_DEPTH_BOUNDS_TEST_EXT
:
1716 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1717 params
[0] = ctx
->Depth
.BoundsTest
;
1719 case GL_DEPTH_BOUNDS_EXT
:
1720 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1721 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1722 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1724 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1725 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1726 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1728 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1729 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1730 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1732 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1733 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1734 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1736 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1737 CHECK_EXT1(MESA_program_debug
, "GetBooleanv");
1738 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1740 case GL_MAX_DRAW_BUFFERS_ARB
:
1741 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1742 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1744 case GL_DRAW_BUFFER0_ARB
:
1745 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1746 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1748 case GL_DRAW_BUFFER1_ARB
:
1749 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1752 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1753 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1756 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1757 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1760 case GL_DRAW_BUFFER2_ARB
:
1761 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1764 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1765 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1768 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1769 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1772 case GL_DRAW_BUFFER3_ARB
:
1773 CHECK_EXT1(ARB_draw_buffers
, "GetBooleanv");
1776 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1777 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1780 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1781 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1784 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1785 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1786 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1788 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1789 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1790 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1792 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1793 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1794 params
[0] = INT_TO_BOOLEAN(6);
1796 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1797 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1798 params
[0] = INT_TO_BOOLEAN(8);
1800 case GL_NUM_PASSES_ATI
:
1801 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1802 params
[0] = INT_TO_BOOLEAN(2);
1804 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1805 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1806 params
[0] = INT_TO_BOOLEAN(8);
1808 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1809 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1810 params
[0] = INT_TO_BOOLEAN(16);
1812 case GL_COLOR_ALPHA_PAIRING_ATI
:
1813 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1814 params
[0] = GL_TRUE
;
1816 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1817 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1818 params
[0] = INT_TO_BOOLEAN(3);
1820 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1821 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1822 params
[0] = INT_TO_BOOLEAN(3);
1824 case GL_STENCIL_BACK_FUNC
:
1825 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1827 case GL_STENCIL_BACK_VALUE_MASK
:
1828 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1830 case GL_STENCIL_BACK_REF
:
1831 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1833 case GL_STENCIL_BACK_FAIL
:
1834 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1836 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1837 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1839 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1840 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1842 case GL_FRAMEBUFFER_BINDING_EXT
:
1843 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1844 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1846 case GL_RENDERBUFFER_BINDING_EXT
:
1847 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1848 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1850 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1851 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1852 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1854 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1855 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1856 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1858 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1859 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1860 params
[0] = INT_TO_BOOLEAN(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
1862 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1863 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1864 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1866 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1867 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1868 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_UNIFORM_COMPONENTS
);
1870 case GL_MAX_VARYING_FLOATS_ARB
:
1871 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1872 params
[0] = INT_TO_BOOLEAN(MAX_VARYING_FLOATS
);
1874 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1875 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1876 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
1878 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1879 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1880 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1883 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1888 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1890 GET_CURRENT_CONTEXT(ctx
);
1891 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1897 _mesa_update_state(ctx
);
1899 if (ctx
->Driver
.GetFloatv
&&
1900 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1904 case GL_ACCUM_RED_BITS
:
1905 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1907 case GL_ACCUM_GREEN_BITS
:
1908 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1910 case GL_ACCUM_BLUE_BITS
:
1911 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1913 case GL_ACCUM_ALPHA_BITS
:
1914 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1916 case GL_ACCUM_CLEAR_VALUE
:
1917 params
[0] = ctx
->Accum
.ClearColor
[0];
1918 params
[1] = ctx
->Accum
.ClearColor
[1];
1919 params
[2] = ctx
->Accum
.ClearColor
[2];
1920 params
[3] = ctx
->Accum
.ClearColor
[3];
1923 params
[0] = ctx
->Pixel
.AlphaBias
;
1926 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1928 case GL_ALPHA_SCALE
:
1929 params
[0] = ctx
->Pixel
.AlphaScale
;
1932 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1934 case GL_ALPHA_TEST_FUNC
:
1935 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1937 case GL_ALPHA_TEST_REF
:
1938 params
[0] = ctx
->Color
.AlphaRef
;
1940 case GL_ATTRIB_STACK_DEPTH
:
1941 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1943 case GL_AUTO_NORMAL
:
1944 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1946 case GL_AUX_BUFFERS
:
1947 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1950 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1953 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1956 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1958 case GL_BLEND_SRC_RGB_EXT
:
1959 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1961 case GL_BLEND_DST_RGB_EXT
:
1962 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1964 case GL_BLEND_SRC_ALPHA_EXT
:
1965 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1967 case GL_BLEND_DST_ALPHA_EXT
:
1968 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1970 case GL_BLEND_EQUATION
:
1971 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1973 case GL_BLEND_EQUATION_ALPHA_EXT
:
1974 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1976 case GL_BLEND_COLOR_EXT
:
1977 params
[0] = ctx
->Color
.BlendColor
[0];
1978 params
[1] = ctx
->Color
.BlendColor
[1];
1979 params
[2] = ctx
->Color
.BlendColor
[2];
1980 params
[3] = ctx
->Color
.BlendColor
[3];
1983 params
[0] = ctx
->Pixel
.BlueBias
;
1986 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
1989 params
[0] = ctx
->Pixel
.BlueScale
;
1991 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
1992 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
1994 case GL_CLIP_PLANE0
:
1995 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
1997 case GL_CLIP_PLANE1
:
1998 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2000 case GL_CLIP_PLANE2
:
2001 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2003 case GL_CLIP_PLANE3
:
2004 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2006 case GL_CLIP_PLANE4
:
2007 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2009 case GL_CLIP_PLANE5
:
2010 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2012 case GL_COLOR_CLEAR_VALUE
:
2013 params
[0] = ctx
->Color
.ClearColor
[0];
2014 params
[1] = ctx
->Color
.ClearColor
[1];
2015 params
[2] = ctx
->Color
.ClearColor
[2];
2016 params
[3] = ctx
->Color
.ClearColor
[3];
2018 case GL_COLOR_MATERIAL
:
2019 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2021 case GL_COLOR_MATERIAL_FACE
:
2022 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2024 case GL_COLOR_MATERIAL_PARAMETER
:
2025 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2027 case GL_COLOR_WRITEMASK
:
2028 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2029 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2030 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2031 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2034 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2036 case GL_CULL_FACE_MODE
:
2037 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2039 case GL_CURRENT_COLOR
:
2041 FLUSH_CURRENT(ctx
, 0);
2042 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2043 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2044 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2045 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2048 case GL_CURRENT_INDEX
:
2050 FLUSH_CURRENT(ctx
, 0);
2051 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2054 case GL_CURRENT_NORMAL
:
2056 FLUSH_CURRENT(ctx
, 0);
2057 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2058 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2059 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2062 case GL_CURRENT_RASTER_COLOR
:
2063 params
[0] = ctx
->Current
.RasterColor
[0];
2064 params
[1] = ctx
->Current
.RasterColor
[1];
2065 params
[2] = ctx
->Current
.RasterColor
[2];
2066 params
[3] = ctx
->Current
.RasterColor
[3];
2068 case GL_CURRENT_RASTER_DISTANCE
:
2069 params
[0] = ctx
->Current
.RasterDistance
;
2071 case GL_CURRENT_RASTER_INDEX
:
2072 params
[0] = ctx
->Current
.RasterIndex
;
2074 case GL_CURRENT_RASTER_POSITION
:
2075 params
[0] = ctx
->Current
.RasterPos
[0];
2076 params
[1] = ctx
->Current
.RasterPos
[1];
2077 params
[2] = ctx
->Current
.RasterPos
[2];
2078 params
[3] = ctx
->Current
.RasterPos
[3];
2080 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2082 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2083 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2084 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2085 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2086 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2089 case GL_CURRENT_RASTER_POSITION_VALID
:
2090 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2092 case GL_CURRENT_TEXTURE_COORDS
:
2094 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2095 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2096 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2097 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2098 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2102 params
[0] = ctx
->Pixel
.DepthBias
;
2105 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2107 case GL_DEPTH_CLEAR_VALUE
:
2108 params
[0] = ctx
->Depth
.Clear
;
2111 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2113 case GL_DEPTH_RANGE
:
2114 params
[0] = ctx
->Viewport
.Near
;
2115 params
[1] = ctx
->Viewport
.Far
;
2117 case GL_DEPTH_SCALE
:
2118 params
[0] = ctx
->Pixel
.DepthScale
;
2121 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2123 case GL_DEPTH_WRITEMASK
:
2124 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2127 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2129 case GL_DOUBLEBUFFER
:
2130 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2132 case GL_DRAW_BUFFER
:
2133 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2137 FLUSH_CURRENT(ctx
, 0);
2138 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.EdgeFlag
);
2141 case GL_FEEDBACK_BUFFER_SIZE
:
2142 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2144 case GL_FEEDBACK_BUFFER_TYPE
:
2145 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2148 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2151 params
[0] = ctx
->Fog
.Color
[0];
2152 params
[1] = ctx
->Fog
.Color
[1];
2153 params
[2] = ctx
->Fog
.Color
[2];
2154 params
[3] = ctx
->Fog
.Color
[3];
2156 case GL_FOG_DENSITY
:
2157 params
[0] = ctx
->Fog
.Density
;
2160 params
[0] = ctx
->Fog
.End
;
2163 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2166 params
[0] = ctx
->Fog
.Index
;
2169 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2172 params
[0] = ctx
->Fog
.Start
;
2175 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2178 params
[0] = ctx
->Pixel
.GreenBias
;
2181 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2183 case GL_GREEN_SCALE
:
2184 params
[0] = ctx
->Pixel
.GreenScale
;
2187 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2189 case GL_INDEX_CLEAR_VALUE
:
2190 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2193 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2195 case GL_INDEX_OFFSET
:
2196 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2198 case GL_INDEX_SHIFT
:
2199 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2201 case GL_INDEX_WRITEMASK
:
2202 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2205 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2208 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2211 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2214 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2217 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2220 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2226 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2229 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2231 case GL_LIGHT_MODEL_AMBIENT
:
2232 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2233 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2234 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2235 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2237 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2238 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2240 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2241 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2243 case GL_LIGHT_MODEL_TWO_SIDE
:
2244 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2246 case GL_LINE_SMOOTH
:
2247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2249 case GL_LINE_SMOOTH_HINT
:
2250 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2252 case GL_LINE_STIPPLE
:
2253 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2255 case GL_LINE_STIPPLE_PATTERN
:
2256 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2258 case GL_LINE_STIPPLE_REPEAT
:
2259 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2262 params
[0] = ctx
->Line
.Width
;
2264 case GL_LINE_WIDTH_GRANULARITY
:
2265 params
[0] = ctx
->Const
.LineWidthGranularity
;
2267 case GL_LINE_WIDTH_RANGE
:
2268 params
[0] = ctx
->Const
.MinLineWidthAA
;
2269 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2271 case GL_ALIASED_LINE_WIDTH_RANGE
:
2272 params
[0] = ctx
->Const
.MinLineWidth
;
2273 params
[1] = ctx
->Const
.MaxLineWidth
;
2276 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2279 params
[0] = (GLfloat
)(ctx
->ListState
.CurrentListNum
);
2284 if (!ctx
->CompileFlag
)
2286 else if (ctx
->ExecuteFlag
)
2287 mode
= GL_COMPILE_AND_EXECUTE
;
2290 params
[0] = ENUM_TO_FLOAT(mode
);
2293 case GL_INDEX_LOGIC_OP
:
2294 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2296 case GL_COLOR_LOGIC_OP
:
2297 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2299 case GL_LOGIC_OP_MODE
:
2300 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2302 case GL_MAP1_COLOR_4
:
2303 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2305 case GL_MAP1_GRID_DOMAIN
:
2306 params
[0] = ctx
->Eval
.MapGrid1u1
;
2307 params
[1] = ctx
->Eval
.MapGrid1u2
;
2309 case GL_MAP1_GRID_SEGMENTS
:
2310 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2313 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2315 case GL_MAP1_NORMAL
:
2316 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2318 case GL_MAP1_TEXTURE_COORD_1
:
2319 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2321 case GL_MAP1_TEXTURE_COORD_2
:
2322 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2324 case GL_MAP1_TEXTURE_COORD_3
:
2325 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2327 case GL_MAP1_TEXTURE_COORD_4
:
2328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2330 case GL_MAP1_VERTEX_3
:
2331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2333 case GL_MAP1_VERTEX_4
:
2334 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2336 case GL_MAP2_COLOR_4
:
2337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2339 case GL_MAP2_GRID_DOMAIN
:
2340 params
[0] = ctx
->Eval
.MapGrid2u1
;
2341 params
[1] = ctx
->Eval
.MapGrid2u2
;
2342 params
[2] = ctx
->Eval
.MapGrid2v1
;
2343 params
[3] = ctx
->Eval
.MapGrid2v2
;
2345 case GL_MAP2_GRID_SEGMENTS
:
2346 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2347 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2350 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2352 case GL_MAP2_NORMAL
:
2353 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2355 case GL_MAP2_TEXTURE_COORD_1
:
2356 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2358 case GL_MAP2_TEXTURE_COORD_2
:
2359 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2361 case GL_MAP2_TEXTURE_COORD_3
:
2362 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2364 case GL_MAP2_TEXTURE_COORD_4
:
2365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2367 case GL_MAP2_VERTEX_3
:
2368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2370 case GL_MAP2_VERTEX_4
:
2371 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2374 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2376 case GL_MAP_STENCIL
:
2377 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2379 case GL_MATRIX_MODE
:
2380 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2382 case GL_MAX_ATTRIB_STACK_DEPTH
:
2383 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2385 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2386 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2388 case GL_MAX_CLIP_PLANES
:
2389 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2391 case GL_MAX_ELEMENTS_VERTICES
:
2392 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2394 case GL_MAX_ELEMENTS_INDICES
:
2395 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2397 case GL_MAX_EVAL_ORDER
:
2398 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2401 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2403 case GL_MAX_LIST_NESTING
:
2404 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2406 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2407 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2409 case GL_MAX_NAME_STACK_DEPTH
:
2410 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2412 case GL_MAX_PIXEL_MAP_TABLE
:
2413 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2415 case GL_MAX_PROJECTION_STACK_DEPTH
:
2416 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2418 case GL_MAX_TEXTURE_SIZE
:
2419 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2421 case GL_MAX_3D_TEXTURE_SIZE
:
2422 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2424 case GL_MAX_TEXTURE_STACK_DEPTH
:
2425 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2427 case GL_MAX_VIEWPORT_DIMS
:
2428 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2429 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2431 case GL_MODELVIEW_MATRIX
:
2433 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2434 params
[0] = matrix
[0];
2435 params
[1] = matrix
[1];
2436 params
[2] = matrix
[2];
2437 params
[3] = matrix
[3];
2438 params
[4] = matrix
[4];
2439 params
[5] = matrix
[5];
2440 params
[6] = matrix
[6];
2441 params
[7] = matrix
[7];
2442 params
[8] = matrix
[8];
2443 params
[9] = matrix
[9];
2444 params
[10] = matrix
[10];
2445 params
[11] = matrix
[11];
2446 params
[12] = matrix
[12];
2447 params
[13] = matrix
[13];
2448 params
[14] = matrix
[14];
2449 params
[15] = matrix
[15];
2452 case GL_MODELVIEW_STACK_DEPTH
:
2453 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2455 case GL_NAME_STACK_DEPTH
:
2456 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2459 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2461 case GL_PACK_ALIGNMENT
:
2462 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2464 case GL_PACK_LSB_FIRST
:
2465 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2467 case GL_PACK_ROW_LENGTH
:
2468 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2470 case GL_PACK_SKIP_PIXELS
:
2471 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2473 case GL_PACK_SKIP_ROWS
:
2474 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2476 case GL_PACK_SWAP_BYTES
:
2477 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2479 case GL_PACK_SKIP_IMAGES_EXT
:
2480 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2482 case GL_PACK_IMAGE_HEIGHT_EXT
:
2483 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2485 case GL_PACK_INVERT_MESA
:
2486 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2488 case GL_PERSPECTIVE_CORRECTION_HINT
:
2489 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2491 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2492 params
[0] = (GLfloat
)(ctx
->Pixel
.MapAtoAsize
);
2494 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2495 params
[0] = (GLfloat
)(ctx
->Pixel
.MapBtoBsize
);
2497 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2498 params
[0] = (GLfloat
)(ctx
->Pixel
.MapGtoGsize
);
2500 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2501 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoAsize
);
2503 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2504 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoBsize
);
2506 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2507 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoGsize
);
2509 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2510 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoIsize
);
2512 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2513 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoRsize
);
2515 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2516 params
[0] = (GLfloat
)(ctx
->Pixel
.MapRtoRsize
);
2518 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2519 params
[0] = (GLfloat
)(ctx
->Pixel
.MapStoSsize
);
2522 params
[0] = ctx
->Point
.Size
;
2524 case GL_POINT_SIZE_GRANULARITY
:
2525 params
[0] = ctx
->Const
.PointSizeGranularity
;
2527 case GL_POINT_SIZE_RANGE
:
2528 params
[0] = ctx
->Const
.MinPointSizeAA
;
2529 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2531 case GL_ALIASED_POINT_SIZE_RANGE
:
2532 params
[0] = ctx
->Const
.MinPointSize
;
2533 params
[1] = ctx
->Const
.MaxPointSize
;
2535 case GL_POINT_SMOOTH
:
2536 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2538 case GL_POINT_SMOOTH_HINT
:
2539 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2541 case GL_POINT_SIZE_MIN_EXT
:
2542 params
[0] = ctx
->Point
.MinSize
;
2544 case GL_POINT_SIZE_MAX_EXT
:
2545 params
[0] = ctx
->Point
.MaxSize
;
2547 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2548 params
[0] = ctx
->Point
.Threshold
;
2550 case GL_DISTANCE_ATTENUATION_EXT
:
2551 params
[0] = ctx
->Point
.Params
[0];
2552 params
[1] = ctx
->Point
.Params
[1];
2553 params
[2] = ctx
->Point
.Params
[2];
2555 case GL_POLYGON_MODE
:
2556 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2557 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2559 case GL_POLYGON_OFFSET_BIAS_EXT
:
2560 params
[0] = ctx
->Polygon
.OffsetUnits
;
2562 case GL_POLYGON_OFFSET_FACTOR
:
2563 params
[0] = ctx
->Polygon
.OffsetFactor
;
2565 case GL_POLYGON_OFFSET_UNITS
:
2566 params
[0] = ctx
->Polygon
.OffsetUnits
;
2568 case GL_POLYGON_SMOOTH
:
2569 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2571 case GL_POLYGON_SMOOTH_HINT
:
2572 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2574 case GL_POLYGON_STIPPLE
:
2575 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2577 case GL_PROJECTION_MATRIX
:
2579 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2580 params
[0] = matrix
[0];
2581 params
[1] = matrix
[1];
2582 params
[2] = matrix
[2];
2583 params
[3] = matrix
[3];
2584 params
[4] = matrix
[4];
2585 params
[5] = matrix
[5];
2586 params
[6] = matrix
[6];
2587 params
[7] = matrix
[7];
2588 params
[8] = matrix
[8];
2589 params
[9] = matrix
[9];
2590 params
[10] = matrix
[10];
2591 params
[11] = matrix
[11];
2592 params
[12] = matrix
[12];
2593 params
[13] = matrix
[13];
2594 params
[14] = matrix
[14];
2595 params
[15] = matrix
[15];
2598 case GL_PROJECTION_STACK_DEPTH
:
2599 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2601 case GL_READ_BUFFER
:
2602 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2605 params
[0] = ctx
->Pixel
.RedBias
;
2608 params
[0] = (GLfloat
)( ctx
->DrawBuffer
->Visual
.redBits
);
2611 params
[0] = ctx
->Pixel
.RedScale
;
2613 case GL_RENDER_MODE
:
2614 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2616 case GL_RESCALE_NORMAL
:
2617 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2620 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2622 case GL_SCISSOR_BOX
:
2623 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2624 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2625 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2626 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2628 case GL_SCISSOR_TEST
:
2629 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2631 case GL_SELECTION_BUFFER_SIZE
:
2632 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2634 case GL_SHADE_MODEL
:
2635 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2637 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2638 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2640 case GL_STENCIL_BITS
:
2641 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2643 case GL_STENCIL_CLEAR_VALUE
:
2644 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2646 case GL_STENCIL_FAIL
:
2647 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2649 case GL_STENCIL_FUNC
:
2650 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2652 case GL_STENCIL_PASS_DEPTH_FAIL
:
2653 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2655 case GL_STENCIL_PASS_DEPTH_PASS
:
2656 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2658 case GL_STENCIL_REF
:
2659 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2661 case GL_STENCIL_TEST
:
2662 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2664 case GL_STENCIL_VALUE_MASK
:
2665 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2667 case GL_STENCIL_WRITEMASK
:
2668 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2671 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2673 case GL_SUBPIXEL_BITS
:
2674 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2677 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2680 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2683 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2685 case GL_TEXTURE_BINDING_1D
:
2686 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
2688 case GL_TEXTURE_BINDING_2D
:
2689 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2691 case GL_TEXTURE_BINDING_3D
:
2692 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
2694 case GL_TEXTURE_ENV_COLOR
:
2696 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
2697 params
[0] = color
[0];
2698 params
[1] = color
[1];
2699 params
[2] = color
[2];
2700 params
[3] = color
[3];
2703 case GL_TEXTURE_ENV_MODE
:
2704 params
[0] = ENUM_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
2706 case GL_TEXTURE_GEN_S
:
2707 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2709 case GL_TEXTURE_GEN_T
:
2710 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2712 case GL_TEXTURE_GEN_R
:
2713 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2715 case GL_TEXTURE_GEN_Q
:
2716 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2718 case GL_TEXTURE_MATRIX
:
2720 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2721 params
[0] = matrix
[0];
2722 params
[1] = matrix
[1];
2723 params
[2] = matrix
[2];
2724 params
[3] = matrix
[3];
2725 params
[4] = matrix
[4];
2726 params
[5] = matrix
[5];
2727 params
[6] = matrix
[6];
2728 params
[7] = matrix
[7];
2729 params
[8] = matrix
[8];
2730 params
[9] = matrix
[9];
2731 params
[10] = matrix
[10];
2732 params
[11] = matrix
[11];
2733 params
[12] = matrix
[12];
2734 params
[13] = matrix
[13];
2735 params
[14] = matrix
[14];
2736 params
[15] = matrix
[15];
2739 case GL_TEXTURE_STACK_DEPTH
:
2740 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2742 case GL_UNPACK_ALIGNMENT
:
2743 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2745 case GL_UNPACK_LSB_FIRST
:
2746 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2748 case GL_UNPACK_ROW_LENGTH
:
2749 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2751 case GL_UNPACK_SKIP_PIXELS
:
2752 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2754 case GL_UNPACK_SKIP_ROWS
:
2755 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2757 case GL_UNPACK_SWAP_BYTES
:
2758 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2760 case GL_UNPACK_SKIP_IMAGES_EXT
:
2761 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2763 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2764 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2766 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2767 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2770 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2771 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2772 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2773 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2776 params
[0] = ctx
->Pixel
.ZoomX
;
2779 params
[0] = ctx
->Pixel
.ZoomY
;
2781 case GL_VERTEX_ARRAY
:
2782 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Vertex
.Enabled
);
2784 case GL_VERTEX_ARRAY_SIZE
:
2785 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Size
);
2787 case GL_VERTEX_ARRAY_TYPE
:
2788 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Vertex
.Type
);
2790 case GL_VERTEX_ARRAY_STRIDE
:
2791 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Stride
);
2793 case GL_VERTEX_ARRAY_COUNT_EXT
:
2794 params
[0] = (GLfloat
)(0);
2796 case GL_NORMAL_ARRAY
:
2797 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Enabled
);
2799 case GL_NORMAL_ARRAY_TYPE
:
2800 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Type
);
2802 case GL_NORMAL_ARRAY_STRIDE
:
2803 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.Stride
);
2805 case GL_NORMAL_ARRAY_COUNT_EXT
:
2806 params
[0] = (GLfloat
)(0);
2808 case GL_COLOR_ARRAY
:
2809 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Color
.Enabled
);
2811 case GL_COLOR_ARRAY_SIZE
:
2812 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Size
);
2814 case GL_COLOR_ARRAY_TYPE
:
2815 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Color
.Type
);
2817 case GL_COLOR_ARRAY_STRIDE
:
2818 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Stride
);
2820 case GL_COLOR_ARRAY_COUNT_EXT
:
2821 params
[0] = (GLfloat
)(0);
2823 case GL_INDEX_ARRAY
:
2824 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Index
.Enabled
);
2826 case GL_INDEX_ARRAY_TYPE
:
2827 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Index
.Type
);
2829 case GL_INDEX_ARRAY_STRIDE
:
2830 params
[0] = (GLfloat
)(ctx
->Array
.Index
.Stride
);
2832 case GL_INDEX_ARRAY_COUNT_EXT
:
2833 params
[0] = (GLfloat
)(0);
2835 case GL_TEXTURE_COORD_ARRAY
:
2836 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2838 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2839 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2841 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2842 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2844 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2845 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2847 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2848 params
[0] = (GLfloat
)(0);
2850 case GL_EDGE_FLAG_ARRAY
:
2851 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.EdgeFlag
.Enabled
);
2853 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2854 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.Stride
);
2856 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2857 params
[0] = (GLfloat
)(0);
2859 case GL_MAX_TEXTURE_UNITS_ARB
:
2860 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2861 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2863 case GL_ACTIVE_TEXTURE_ARB
:
2864 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2865 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2867 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2868 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2869 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2871 case GL_TEXTURE_CUBE_MAP_ARB
:
2872 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2873 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2875 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2876 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2877 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
2879 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2880 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2881 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2883 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2884 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2885 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2887 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2888 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2889 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2891 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2892 CHECK_EXT1(ARB_texture_compression
, "GetFloatv");
2895 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2897 for (i
= 0; i
< n
; i
++)
2898 params
[i
] = ENUM_TO_INT(formats
[i
]);
2901 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2902 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2903 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2905 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2906 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2907 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2909 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2911 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2912 params
[0] = matrix
[0];
2913 params
[1] = matrix
[4];
2914 params
[2] = matrix
[8];
2915 params
[3] = matrix
[12];
2916 params
[4] = matrix
[1];
2917 params
[5] = matrix
[5];
2918 params
[6] = matrix
[9];
2919 params
[7] = matrix
[13];
2920 params
[8] = matrix
[2];
2921 params
[9] = matrix
[6];
2922 params
[10] = matrix
[10];
2923 params
[11] = matrix
[14];
2924 params
[12] = matrix
[3];
2925 params
[13] = matrix
[7];
2926 params
[14] = matrix
[11];
2927 params
[15] = matrix
[15];
2930 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2932 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2933 params
[0] = matrix
[0];
2934 params
[1] = matrix
[4];
2935 params
[2] = matrix
[8];
2936 params
[3] = matrix
[12];
2937 params
[4] = matrix
[1];
2938 params
[5] = matrix
[5];
2939 params
[6] = matrix
[9];
2940 params
[7] = matrix
[13];
2941 params
[8] = matrix
[2];
2942 params
[9] = matrix
[6];
2943 params
[10] = matrix
[10];
2944 params
[11] = matrix
[14];
2945 params
[12] = matrix
[3];
2946 params
[13] = matrix
[7];
2947 params
[14] = matrix
[11];
2948 params
[15] = matrix
[15];
2951 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2953 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2954 params
[0] = matrix
[0];
2955 params
[1] = matrix
[4];
2956 params
[2] = matrix
[8];
2957 params
[3] = matrix
[12];
2958 params
[4] = matrix
[1];
2959 params
[5] = matrix
[5];
2960 params
[6] = matrix
[9];
2961 params
[7] = matrix
[13];
2962 params
[8] = matrix
[2];
2963 params
[9] = matrix
[6];
2964 params
[10] = matrix
[10];
2965 params
[11] = matrix
[14];
2966 params
[12] = matrix
[3];
2967 params
[13] = matrix
[7];
2968 params
[14] = matrix
[11];
2969 params
[15] = matrix
[15];
2972 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2974 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2975 params
[0] = matrix
[0];
2976 params
[1] = matrix
[4];
2977 params
[2] = matrix
[8];
2978 params
[3] = matrix
[12];
2979 params
[4] = matrix
[1];
2980 params
[5] = matrix
[5];
2981 params
[6] = matrix
[9];
2982 params
[7] = matrix
[13];
2983 params
[8] = matrix
[2];
2984 params
[9] = matrix
[6];
2985 params
[10] = matrix
[10];
2986 params
[11] = matrix
[14];
2987 params
[12] = matrix
[3];
2988 params
[13] = matrix
[7];
2989 params
[14] = matrix
[11];
2990 params
[15] = matrix
[15];
2993 case GL_COLOR_MATRIX_SGI
:
2995 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2996 params
[0] = matrix
[0];
2997 params
[1] = matrix
[1];
2998 params
[2] = matrix
[2];
2999 params
[3] = matrix
[3];
3000 params
[4] = matrix
[4];
3001 params
[5] = matrix
[5];
3002 params
[6] = matrix
[6];
3003 params
[7] = matrix
[7];
3004 params
[8] = matrix
[8];
3005 params
[9] = matrix
[9];
3006 params
[10] = matrix
[10];
3007 params
[11] = matrix
[11];
3008 params
[12] = matrix
[12];
3009 params
[13] = matrix
[13];
3010 params
[14] = matrix
[14];
3011 params
[15] = matrix
[15];
3014 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3015 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3017 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3018 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3020 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3021 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3023 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3024 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3026 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3027 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3029 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3030 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3032 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3033 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3035 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3036 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3038 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3039 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3041 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3042 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3044 case GL_CONVOLUTION_1D_EXT
:
3045 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3046 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3048 case GL_CONVOLUTION_2D_EXT
:
3049 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3050 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3052 case GL_SEPARABLE_2D_EXT
:
3053 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3054 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3056 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3057 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3058 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3060 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3061 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3062 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3064 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3065 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3066 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3068 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3069 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3070 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3072 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3073 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3074 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3076 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3077 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3078 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3080 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3081 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3082 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3084 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3085 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3086 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3089 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3090 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3093 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3094 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3096 case GL_COLOR_TABLE_SGI
:
3097 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3098 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
);
3100 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3101 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3102 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
3104 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3105 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3106 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
3108 case GL_TEXTURE_COLOR_TABLE_SGI
:
3109 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3110 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3112 case GL_COLOR_SUM_EXT
:
3113 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3114 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3116 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3117 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3119 FLUSH_CURRENT(ctx
, 0);
3120 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3121 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3122 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3123 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3126 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3127 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3128 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.SecondaryColor
.Enabled
);
3130 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3131 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3132 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.SecondaryColor
.Type
);
3134 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3135 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3136 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Stride
);
3138 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3139 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3140 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Size
);
3142 case GL_CURRENT_FOG_COORDINATE_EXT
:
3143 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3145 FLUSH_CURRENT(ctx
, 0);
3146 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3149 case GL_FOG_COORDINATE_ARRAY_EXT
:
3150 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3151 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.FogCoord
.Enabled
);
3153 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3154 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3155 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.FogCoord
.Type
);
3157 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3158 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3159 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.Stride
);
3161 case GL_FOG_COORDINATE_SOURCE_EXT
:
3162 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3163 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3165 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3166 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3167 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3169 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3170 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3171 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3173 case GL_MULTISAMPLE_ARB
:
3174 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3175 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3177 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3178 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3179 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3181 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3182 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3183 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3185 case GL_SAMPLE_COVERAGE_ARB
:
3186 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3187 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3189 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3190 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3191 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3193 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3194 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3195 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3197 case GL_SAMPLE_BUFFERS_ARB
:
3198 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3199 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3201 case GL_SAMPLES_ARB
:
3202 CHECK_EXT1(ARB_multisample
, "GetFloatv");
3203 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3205 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3206 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3207 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3209 case GL_POINT_SPRITE_NV
:
3210 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3211 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3213 case GL_POINT_SPRITE_R_MODE_NV
:
3214 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3215 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3217 case GL_POINT_SPRITE_COORD_ORIGIN
:
3218 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3219 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3221 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3222 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3223 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3225 case GL_VERTEX_PROGRAM_BINDING_NV
:
3226 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3227 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3229 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3230 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3231 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[0].Enabled
);
3233 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3234 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3235 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[1].Enabled
);
3237 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3238 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3239 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[2].Enabled
);
3241 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3242 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3243 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[3].Enabled
);
3245 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3246 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[4].Enabled
);
3249 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3250 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3251 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[5].Enabled
);
3253 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3254 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3255 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[6].Enabled
);
3257 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3258 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[7].Enabled
);
3261 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3262 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[8].Enabled
);
3265 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3266 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3267 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[9].Enabled
);
3269 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3270 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3271 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[10].Enabled
);
3273 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3274 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[11].Enabled
);
3277 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3278 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3279 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[12].Enabled
);
3281 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3282 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3283 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[13].Enabled
);
3285 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3286 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3287 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[14].Enabled
);
3289 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3290 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3291 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[15].Enabled
);
3293 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3294 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3295 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3297 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3298 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3299 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3301 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3302 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3303 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3305 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3306 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3307 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3309 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3310 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3311 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3313 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3314 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3315 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3317 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3318 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3319 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3321 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3322 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3323 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3325 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3326 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3327 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3329 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3330 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3333 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3334 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3335 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3337 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3338 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3339 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3341 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3342 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3345 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3346 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3347 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3349 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3350 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3351 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3353 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3354 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3355 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3357 case GL_FRAGMENT_PROGRAM_NV
:
3358 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3359 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3361 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3362 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3363 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3365 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3366 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3367 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3369 case GL_TEXTURE_RECTANGLE_NV
:
3370 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3371 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3373 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3374 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3375 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3377 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3378 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3379 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3381 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3382 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3383 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3385 case GL_ACTIVE_STENCIL_FACE_EXT
:
3386 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3387 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3389 case GL_MAX_SHININESS_NV
:
3390 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3391 params
[0] = ctx
->Const
.MaxShininess
;
3393 case GL_MAX_SPOT_EXPONENT_NV
:
3394 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3395 params
[0] = ctx
->Const
.MaxSpotExponent
;
3397 case GL_ARRAY_BUFFER_BINDING_ARB
:
3398 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3399 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3401 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3402 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3403 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.BufferObj
->Name
);
3405 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3406 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3407 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.BufferObj
->Name
);
3409 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3410 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3411 params
[0] = (GLfloat
)(ctx
->Array
.Color
.BufferObj
->Name
);
3413 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3414 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3415 params
[0] = (GLfloat
)(ctx
->Array
.Index
.BufferObj
->Name
);
3417 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3418 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3419 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3421 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3422 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3423 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
3425 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3426 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3427 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
3429 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3430 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3431 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.BufferObj
->Name
);
3433 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3434 CHECK_EXT1(ARB_vertex_buffer_object
, "GetFloatv");
3435 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3437 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3438 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3439 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3441 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3442 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3443 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3445 case GL_VERTEX_PROGRAM_ARB
:
3446 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3447 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3449 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3450 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3451 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3453 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3454 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3455 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3457 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3458 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3459 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3461 case GL_MAX_PROGRAM_MATRICES_ARB
:
3462 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3463 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3465 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3466 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3467 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3469 case GL_CURRENT_MATRIX_ARB
:
3470 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3472 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3473 params
[0] = matrix
[0];
3474 params
[1] = matrix
[1];
3475 params
[2] = matrix
[2];
3476 params
[3] = matrix
[3];
3477 params
[4] = matrix
[4];
3478 params
[5] = matrix
[5];
3479 params
[6] = matrix
[6];
3480 params
[7] = matrix
[7];
3481 params
[8] = matrix
[8];
3482 params
[9] = matrix
[9];
3483 params
[10] = matrix
[10];
3484 params
[11] = matrix
[11];
3485 params
[12] = matrix
[12];
3486 params
[13] = matrix
[13];
3487 params
[14] = matrix
[14];
3488 params
[15] = matrix
[15];
3491 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3492 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3494 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3495 params
[0] = matrix
[0];
3496 params
[1] = matrix
[4];
3497 params
[2] = matrix
[8];
3498 params
[3] = matrix
[12];
3499 params
[4] = matrix
[1];
3500 params
[5] = matrix
[5];
3501 params
[6] = matrix
[9];
3502 params
[7] = matrix
[13];
3503 params
[8] = matrix
[2];
3504 params
[9] = matrix
[6];
3505 params
[10] = matrix
[10];
3506 params
[11] = matrix
[14];
3507 params
[12] = matrix
[3];
3508 params
[13] = matrix
[7];
3509 params
[14] = matrix
[11];
3510 params
[15] = matrix
[15];
3513 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3514 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3515 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3517 case GL_PROGRAM_ERROR_POSITION_ARB
:
3518 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3519 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3521 case GL_FRAGMENT_PROGRAM_ARB
:
3522 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3523 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3525 case GL_MAX_TEXTURE_COORDS_ARB
:
3526 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3527 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3529 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3530 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3531 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3533 case GL_DEPTH_BOUNDS_TEST_EXT
:
3534 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3535 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3537 case GL_DEPTH_BOUNDS_EXT
:
3538 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3539 params
[0] = ctx
->Depth
.BoundsMin
;
3540 params
[1] = ctx
->Depth
.BoundsMax
;
3542 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3543 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3544 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3546 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3547 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3548 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3550 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3551 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3552 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3554 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3555 CHECK_EXT1(MESA_program_debug
, "GetFloatv");
3556 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3558 case GL_MAX_DRAW_BUFFERS_ARB
:
3559 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3560 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3562 case GL_DRAW_BUFFER0_ARB
:
3563 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3564 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3566 case GL_DRAW_BUFFER1_ARB
:
3567 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3570 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3571 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3574 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3575 params
[0] = ENUM_TO_FLOAT(buffer
);
3578 case GL_DRAW_BUFFER2_ARB
:
3579 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3582 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3583 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3586 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3587 params
[0] = ENUM_TO_FLOAT(buffer
);
3590 case GL_DRAW_BUFFER3_ARB
:
3591 CHECK_EXT1(ARB_draw_buffers
, "GetFloatv");
3594 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3595 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3598 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3599 params
[0] = ENUM_TO_FLOAT(buffer
);
3602 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3603 CHECK_EXT1(OES_read_format
, "GetFloatv");
3604 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3606 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3607 CHECK_EXT1(OES_read_format
, "GetFloatv");
3608 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3610 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3611 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3612 params
[0] = (GLfloat
)(6);
3614 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3615 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3616 params
[0] = (GLfloat
)(8);
3618 case GL_NUM_PASSES_ATI
:
3619 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3620 params
[0] = (GLfloat
)(2);
3622 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3623 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3624 params
[0] = (GLfloat
)(8);
3626 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3627 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3628 params
[0] = (GLfloat
)(16);
3630 case GL_COLOR_ALPHA_PAIRING_ATI
:
3631 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3632 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3634 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3635 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3636 params
[0] = (GLfloat
)(3);
3638 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3639 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3640 params
[0] = (GLfloat
)(3);
3642 case GL_STENCIL_BACK_FUNC
:
3643 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3645 case GL_STENCIL_BACK_VALUE_MASK
:
3646 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3648 case GL_STENCIL_BACK_REF
:
3649 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3651 case GL_STENCIL_BACK_FAIL
:
3652 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3654 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3655 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3657 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3658 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3660 case GL_FRAMEBUFFER_BINDING_EXT
:
3661 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3662 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3664 case GL_RENDERBUFFER_BINDING_EXT
:
3665 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3666 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3668 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3669 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3670 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3672 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3673 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3674 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3676 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3677 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3678 params
[0] = (GLfloat
)(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
3680 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3681 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3682 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3684 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3685 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3686 params
[0] = (GLfloat
)(MAX_VERTEX_UNIFORM_COMPONENTS
);
3688 case GL_MAX_VARYING_FLOATS_ARB
:
3689 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3690 params
[0] = (GLfloat
)(MAX_VARYING_FLOATS
);
3692 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3693 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3694 params
[0] = (GLfloat
)(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
3696 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3697 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3698 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3701 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3706 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3708 GET_CURRENT_CONTEXT(ctx
);
3709 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3715 _mesa_update_state(ctx
);
3717 if (ctx
->Driver
.GetIntegerv
&&
3718 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3722 case GL_ACCUM_RED_BITS
:
3723 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3725 case GL_ACCUM_GREEN_BITS
:
3726 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3728 case GL_ACCUM_BLUE_BITS
:
3729 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3731 case GL_ACCUM_ALPHA_BITS
:
3732 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3734 case GL_ACCUM_CLEAR_VALUE
:
3735 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3736 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3737 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3738 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3741 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3744 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3746 case GL_ALPHA_SCALE
:
3747 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3750 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3752 case GL_ALPHA_TEST_FUNC
:
3753 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3755 case GL_ALPHA_TEST_REF
:
3756 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3758 case GL_ATTRIB_STACK_DEPTH
:
3759 params
[0] = ctx
->AttribStackDepth
;
3761 case GL_AUTO_NORMAL
:
3762 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3764 case GL_AUX_BUFFERS
:
3765 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3768 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3771 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3774 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3776 case GL_BLEND_SRC_RGB_EXT
:
3777 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3779 case GL_BLEND_DST_RGB_EXT
:
3780 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3782 case GL_BLEND_SRC_ALPHA_EXT
:
3783 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3785 case GL_BLEND_DST_ALPHA_EXT
:
3786 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3788 case GL_BLEND_EQUATION
:
3789 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3791 case GL_BLEND_EQUATION_ALPHA_EXT
:
3792 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3794 case GL_BLEND_COLOR_EXT
:
3795 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3796 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3797 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3798 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3801 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3804 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3807 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3809 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3810 params
[0] = ctx
->ClientAttribStackDepth
;
3812 case GL_CLIP_PLANE0
:
3813 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3815 case GL_CLIP_PLANE1
:
3816 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3818 case GL_CLIP_PLANE2
:
3819 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3821 case GL_CLIP_PLANE3
:
3822 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3824 case GL_CLIP_PLANE4
:
3825 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3827 case GL_CLIP_PLANE5
:
3828 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3830 case GL_COLOR_CLEAR_VALUE
:
3831 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3832 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3833 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3834 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3836 case GL_COLOR_MATERIAL
:
3837 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3839 case GL_COLOR_MATERIAL_FACE
:
3840 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3842 case GL_COLOR_MATERIAL_PARAMETER
:
3843 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3845 case GL_COLOR_WRITEMASK
:
3846 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3847 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3848 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3849 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3852 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3854 case GL_CULL_FACE_MODE
:
3855 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3857 case GL_CURRENT_COLOR
:
3859 FLUSH_CURRENT(ctx
, 0);
3860 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3861 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3862 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3863 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3866 case GL_CURRENT_INDEX
:
3868 FLUSH_CURRENT(ctx
, 0);
3869 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3872 case GL_CURRENT_NORMAL
:
3874 FLUSH_CURRENT(ctx
, 0);
3875 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3876 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3877 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3880 case GL_CURRENT_RASTER_COLOR
:
3881 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3882 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3883 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3884 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3886 case GL_CURRENT_RASTER_DISTANCE
:
3887 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3889 case GL_CURRENT_RASTER_INDEX
:
3890 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3892 case GL_CURRENT_RASTER_POSITION
:
3893 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3894 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3895 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3896 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3898 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3900 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3901 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3902 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3903 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3904 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3907 case GL_CURRENT_RASTER_POSITION_VALID
:
3908 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3910 case GL_CURRENT_TEXTURE_COORDS
:
3912 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3913 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3914 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3915 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3916 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3920 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3923 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3925 case GL_DEPTH_CLEAR_VALUE
:
3926 params
[0] = IROUND(ctx
->Depth
.Clear
);
3929 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3931 case GL_DEPTH_RANGE
:
3932 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3933 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3935 case GL_DEPTH_SCALE
:
3936 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3939 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3941 case GL_DEPTH_WRITEMASK
:
3942 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3945 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3947 case GL_DOUBLEBUFFER
:
3948 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
3950 case GL_DRAW_BUFFER
:
3951 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3955 FLUSH_CURRENT(ctx
, 0);
3956 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.EdgeFlag
);
3959 case GL_FEEDBACK_BUFFER_SIZE
:
3960 params
[0] = ctx
->Feedback
.BufferSize
;
3962 case GL_FEEDBACK_BUFFER_TYPE
:
3963 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
3966 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
3969 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
3970 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
3971 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
3972 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
3974 case GL_FOG_DENSITY
:
3975 params
[0] = IROUND(ctx
->Fog
.Density
);
3978 params
[0] = IROUND(ctx
->Fog
.End
);
3981 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
3984 params
[0] = IROUND(ctx
->Fog
.Index
);
3987 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
3990 params
[0] = IROUND(ctx
->Fog
.Start
);
3993 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
3996 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
3999 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4001 case GL_GREEN_SCALE
:
4002 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4005 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4007 case GL_INDEX_CLEAR_VALUE
:
4008 params
[0] = ctx
->Color
.ClearIndex
;
4011 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4013 case GL_INDEX_OFFSET
:
4014 params
[0] = ctx
->Pixel
.IndexOffset
;
4016 case GL_INDEX_SHIFT
:
4017 params
[0] = ctx
->Pixel
.IndexShift
;
4019 case GL_INDEX_WRITEMASK
:
4020 params
[0] = ctx
->Color
.IndexMask
;
4023 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4026 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4029 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4032 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4035 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4038 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4041 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4044 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4047 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4049 case GL_LIGHT_MODEL_AMBIENT
:
4050 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4051 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4052 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4053 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4055 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4056 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4058 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4059 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4061 case GL_LIGHT_MODEL_TWO_SIDE
:
4062 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4064 case GL_LINE_SMOOTH
:
4065 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4067 case GL_LINE_SMOOTH_HINT
:
4068 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4070 case GL_LINE_STIPPLE
:
4071 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4073 case GL_LINE_STIPPLE_PATTERN
:
4074 params
[0] = ctx
->Line
.StipplePattern
;
4076 case GL_LINE_STIPPLE_REPEAT
:
4077 params
[0] = ctx
->Line
.StippleFactor
;
4080 params
[0] = IROUND(ctx
->Line
.Width
);
4082 case GL_LINE_WIDTH_GRANULARITY
:
4083 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4085 case GL_LINE_WIDTH_RANGE
:
4086 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4087 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4089 case GL_ALIASED_LINE_WIDTH_RANGE
:
4090 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4091 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4094 params
[0] = ctx
->List
.ListBase
;
4097 params
[0] = ctx
->ListState
.CurrentListNum
;
4102 if (!ctx
->CompileFlag
)
4104 else if (ctx
->ExecuteFlag
)
4105 mode
= GL_COMPILE_AND_EXECUTE
;
4108 params
[0] = ENUM_TO_INT(mode
);
4111 case GL_INDEX_LOGIC_OP
:
4112 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4114 case GL_COLOR_LOGIC_OP
:
4115 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4117 case GL_LOGIC_OP_MODE
:
4118 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4120 case GL_MAP1_COLOR_4
:
4121 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4123 case GL_MAP1_GRID_DOMAIN
:
4124 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4125 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4127 case GL_MAP1_GRID_SEGMENTS
:
4128 params
[0] = ctx
->Eval
.MapGrid1un
;
4131 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4133 case GL_MAP1_NORMAL
:
4134 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4136 case GL_MAP1_TEXTURE_COORD_1
:
4137 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4139 case GL_MAP1_TEXTURE_COORD_2
:
4140 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4142 case GL_MAP1_TEXTURE_COORD_3
:
4143 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4145 case GL_MAP1_TEXTURE_COORD_4
:
4146 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4148 case GL_MAP1_VERTEX_3
:
4149 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4151 case GL_MAP1_VERTEX_4
:
4152 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4154 case GL_MAP2_COLOR_4
:
4155 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4157 case GL_MAP2_GRID_DOMAIN
:
4158 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4159 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4160 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4161 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4163 case GL_MAP2_GRID_SEGMENTS
:
4164 params
[0] = ctx
->Eval
.MapGrid2un
;
4165 params
[1] = ctx
->Eval
.MapGrid2vn
;
4168 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4170 case GL_MAP2_NORMAL
:
4171 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4173 case GL_MAP2_TEXTURE_COORD_1
:
4174 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4176 case GL_MAP2_TEXTURE_COORD_2
:
4177 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4179 case GL_MAP2_TEXTURE_COORD_3
:
4180 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4182 case GL_MAP2_TEXTURE_COORD_4
:
4183 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4185 case GL_MAP2_VERTEX_3
:
4186 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4188 case GL_MAP2_VERTEX_4
:
4189 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4192 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4194 case GL_MAP_STENCIL
:
4195 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4197 case GL_MATRIX_MODE
:
4198 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4200 case GL_MAX_ATTRIB_STACK_DEPTH
:
4201 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4203 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4204 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4206 case GL_MAX_CLIP_PLANES
:
4207 params
[0] = ctx
->Const
.MaxClipPlanes
;
4209 case GL_MAX_ELEMENTS_VERTICES
:
4210 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4212 case GL_MAX_ELEMENTS_INDICES
:
4213 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4215 case GL_MAX_EVAL_ORDER
:
4216 params
[0] = MAX_EVAL_ORDER
;
4219 params
[0] = ctx
->Const
.MaxLights
;
4221 case GL_MAX_LIST_NESTING
:
4222 params
[0] = MAX_LIST_NESTING
;
4224 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4225 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4227 case GL_MAX_NAME_STACK_DEPTH
:
4228 params
[0] = MAX_NAME_STACK_DEPTH
;
4230 case GL_MAX_PIXEL_MAP_TABLE
:
4231 params
[0] = MAX_PIXEL_MAP_TABLE
;
4233 case GL_MAX_PROJECTION_STACK_DEPTH
:
4234 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4236 case GL_MAX_TEXTURE_SIZE
:
4237 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4239 case GL_MAX_3D_TEXTURE_SIZE
:
4240 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4242 case GL_MAX_TEXTURE_STACK_DEPTH
:
4243 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4245 case GL_MAX_VIEWPORT_DIMS
:
4246 params
[0] = ctx
->Const
.MaxViewportWidth
;
4247 params
[1] = ctx
->Const
.MaxViewportHeight
;
4249 case GL_MODELVIEW_MATRIX
:
4251 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4252 params
[0] = IROUND(matrix
[0]);
4253 params
[1] = IROUND(matrix
[1]);
4254 params
[2] = IROUND(matrix
[2]);
4255 params
[3] = IROUND(matrix
[3]);
4256 params
[4] = IROUND(matrix
[4]);
4257 params
[5] = IROUND(matrix
[5]);
4258 params
[6] = IROUND(matrix
[6]);
4259 params
[7] = IROUND(matrix
[7]);
4260 params
[8] = IROUND(matrix
[8]);
4261 params
[9] = IROUND(matrix
[9]);
4262 params
[10] = IROUND(matrix
[10]);
4263 params
[11] = IROUND(matrix
[11]);
4264 params
[12] = IROUND(matrix
[12]);
4265 params
[13] = IROUND(matrix
[13]);
4266 params
[14] = IROUND(matrix
[14]);
4267 params
[15] = IROUND(matrix
[15]);
4270 case GL_MODELVIEW_STACK_DEPTH
:
4271 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4273 case GL_NAME_STACK_DEPTH
:
4274 params
[0] = ctx
->Select
.NameStackDepth
;
4277 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4279 case GL_PACK_ALIGNMENT
:
4280 params
[0] = ctx
->Pack
.Alignment
;
4282 case GL_PACK_LSB_FIRST
:
4283 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4285 case GL_PACK_ROW_LENGTH
:
4286 params
[0] = ctx
->Pack
.RowLength
;
4288 case GL_PACK_SKIP_PIXELS
:
4289 params
[0] = ctx
->Pack
.SkipPixels
;
4291 case GL_PACK_SKIP_ROWS
:
4292 params
[0] = ctx
->Pack
.SkipRows
;
4294 case GL_PACK_SWAP_BYTES
:
4295 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4297 case GL_PACK_SKIP_IMAGES_EXT
:
4298 params
[0] = ctx
->Pack
.SkipImages
;
4300 case GL_PACK_IMAGE_HEIGHT_EXT
:
4301 params
[0] = ctx
->Pack
.ImageHeight
;
4303 case GL_PACK_INVERT_MESA
:
4304 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4306 case GL_PERSPECTIVE_CORRECTION_HINT
:
4307 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4309 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4310 params
[0] = ctx
->Pixel
.MapAtoAsize
;
4312 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4313 params
[0] = ctx
->Pixel
.MapBtoBsize
;
4315 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4316 params
[0] = ctx
->Pixel
.MapGtoGsize
;
4318 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4319 params
[0] = ctx
->Pixel
.MapItoAsize
;
4321 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4322 params
[0] = ctx
->Pixel
.MapItoBsize
;
4324 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4325 params
[0] = ctx
->Pixel
.MapItoGsize
;
4327 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4328 params
[0] = ctx
->Pixel
.MapItoIsize
;
4330 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4331 params
[0] = ctx
->Pixel
.MapItoRsize
;
4333 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4334 params
[0] = ctx
->Pixel
.MapRtoRsize
;
4336 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4337 params
[0] = ctx
->Pixel
.MapStoSsize
;
4340 params
[0] = IROUND(ctx
->Point
.Size
);
4342 case GL_POINT_SIZE_GRANULARITY
:
4343 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4345 case GL_POINT_SIZE_RANGE
:
4346 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4347 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4349 case GL_ALIASED_POINT_SIZE_RANGE
:
4350 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4351 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4353 case GL_POINT_SMOOTH
:
4354 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4356 case GL_POINT_SMOOTH_HINT
:
4357 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4359 case GL_POINT_SIZE_MIN_EXT
:
4360 params
[0] = IROUND(ctx
->Point
.MinSize
);
4362 case GL_POINT_SIZE_MAX_EXT
:
4363 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4365 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4366 params
[0] = IROUND(ctx
->Point
.Threshold
);
4368 case GL_DISTANCE_ATTENUATION_EXT
:
4369 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4370 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4371 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4373 case GL_POLYGON_MODE
:
4374 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4375 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4377 case GL_POLYGON_OFFSET_BIAS_EXT
:
4378 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4380 case GL_POLYGON_OFFSET_FACTOR
:
4381 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4383 case GL_POLYGON_OFFSET_UNITS
:
4384 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4386 case GL_POLYGON_SMOOTH
:
4387 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4389 case GL_POLYGON_SMOOTH_HINT
:
4390 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4392 case GL_POLYGON_STIPPLE
:
4393 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4395 case GL_PROJECTION_MATRIX
:
4397 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4398 params
[0] = IROUND(matrix
[0]);
4399 params
[1] = IROUND(matrix
[1]);
4400 params
[2] = IROUND(matrix
[2]);
4401 params
[3] = IROUND(matrix
[3]);
4402 params
[4] = IROUND(matrix
[4]);
4403 params
[5] = IROUND(matrix
[5]);
4404 params
[6] = IROUND(matrix
[6]);
4405 params
[7] = IROUND(matrix
[7]);
4406 params
[8] = IROUND(matrix
[8]);
4407 params
[9] = IROUND(matrix
[9]);
4408 params
[10] = IROUND(matrix
[10]);
4409 params
[11] = IROUND(matrix
[11]);
4410 params
[12] = IROUND(matrix
[12]);
4411 params
[13] = IROUND(matrix
[13]);
4412 params
[14] = IROUND(matrix
[14]);
4413 params
[15] = IROUND(matrix
[15]);
4416 case GL_PROJECTION_STACK_DEPTH
:
4417 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4419 case GL_READ_BUFFER
:
4420 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4423 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4426 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4429 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4431 case GL_RENDER_MODE
:
4432 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4434 case GL_RESCALE_NORMAL
:
4435 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4438 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4440 case GL_SCISSOR_BOX
:
4441 params
[0] = ctx
->Scissor
.X
;
4442 params
[1] = ctx
->Scissor
.Y
;
4443 params
[2] = ctx
->Scissor
.Width
;
4444 params
[3] = ctx
->Scissor
.Height
;
4446 case GL_SCISSOR_TEST
:
4447 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4449 case GL_SELECTION_BUFFER_SIZE
:
4450 params
[0] = ctx
->Select
.BufferSize
;
4452 case GL_SHADE_MODEL
:
4453 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4455 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4456 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4458 case GL_STENCIL_BITS
:
4459 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4461 case GL_STENCIL_CLEAR_VALUE
:
4462 params
[0] = ctx
->Stencil
.Clear
;
4464 case GL_STENCIL_FAIL
:
4465 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4467 case GL_STENCIL_FUNC
:
4468 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4470 case GL_STENCIL_PASS_DEPTH_FAIL
:
4471 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4473 case GL_STENCIL_PASS_DEPTH_PASS
:
4474 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4476 case GL_STENCIL_REF
:
4477 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4479 case GL_STENCIL_TEST
:
4480 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4482 case GL_STENCIL_VALUE_MASK
:
4483 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4485 case GL_STENCIL_WRITEMASK
:
4486 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4489 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4491 case GL_SUBPIXEL_BITS
:
4492 params
[0] = ctx
->Const
.SubPixelBits
;
4495 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4498 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4501 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4503 case GL_TEXTURE_BINDING_1D
:
4504 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4506 case GL_TEXTURE_BINDING_2D
:
4507 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4509 case GL_TEXTURE_BINDING_3D
:
4510 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4512 case GL_TEXTURE_ENV_COLOR
:
4514 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
4515 params
[0] = FLOAT_TO_INT(color
[0]);
4516 params
[1] = FLOAT_TO_INT(color
[1]);
4517 params
[2] = FLOAT_TO_INT(color
[2]);
4518 params
[3] = FLOAT_TO_INT(color
[3]);
4521 case GL_TEXTURE_ENV_MODE
:
4522 params
[0] = ENUM_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
4524 case GL_TEXTURE_GEN_S
:
4525 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4527 case GL_TEXTURE_GEN_T
:
4528 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4530 case GL_TEXTURE_GEN_R
:
4531 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4533 case GL_TEXTURE_GEN_Q
:
4534 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4536 case GL_TEXTURE_MATRIX
:
4538 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4539 params
[0] = IROUND(matrix
[0]);
4540 params
[1] = IROUND(matrix
[1]);
4541 params
[2] = IROUND(matrix
[2]);
4542 params
[3] = IROUND(matrix
[3]);
4543 params
[4] = IROUND(matrix
[4]);
4544 params
[5] = IROUND(matrix
[5]);
4545 params
[6] = IROUND(matrix
[6]);
4546 params
[7] = IROUND(matrix
[7]);
4547 params
[8] = IROUND(matrix
[8]);
4548 params
[9] = IROUND(matrix
[9]);
4549 params
[10] = IROUND(matrix
[10]);
4550 params
[11] = IROUND(matrix
[11]);
4551 params
[12] = IROUND(matrix
[12]);
4552 params
[13] = IROUND(matrix
[13]);
4553 params
[14] = IROUND(matrix
[14]);
4554 params
[15] = IROUND(matrix
[15]);
4557 case GL_TEXTURE_STACK_DEPTH
:
4558 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4560 case GL_UNPACK_ALIGNMENT
:
4561 params
[0] = ctx
->Unpack
.Alignment
;
4563 case GL_UNPACK_LSB_FIRST
:
4564 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4566 case GL_UNPACK_ROW_LENGTH
:
4567 params
[0] = ctx
->Unpack
.RowLength
;
4569 case GL_UNPACK_SKIP_PIXELS
:
4570 params
[0] = ctx
->Unpack
.SkipPixels
;
4572 case GL_UNPACK_SKIP_ROWS
:
4573 params
[0] = ctx
->Unpack
.SkipRows
;
4575 case GL_UNPACK_SWAP_BYTES
:
4576 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4578 case GL_UNPACK_SKIP_IMAGES_EXT
:
4579 params
[0] = ctx
->Unpack
.SkipImages
;
4581 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4582 params
[0] = ctx
->Unpack
.ImageHeight
;
4584 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4585 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4588 params
[0] = ctx
->Viewport
.X
;
4589 params
[1] = ctx
->Viewport
.Y
;
4590 params
[2] = ctx
->Viewport
.Width
;
4591 params
[3] = ctx
->Viewport
.Height
;
4594 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4597 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4599 case GL_VERTEX_ARRAY
:
4600 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Vertex
.Enabled
);
4602 case GL_VERTEX_ARRAY_SIZE
:
4603 params
[0] = ctx
->Array
.Vertex
.Size
;
4605 case GL_VERTEX_ARRAY_TYPE
:
4606 params
[0] = ENUM_TO_INT(ctx
->Array
.Vertex
.Type
);
4608 case GL_VERTEX_ARRAY_STRIDE
:
4609 params
[0] = ctx
->Array
.Vertex
.Stride
;
4611 case GL_VERTEX_ARRAY_COUNT_EXT
:
4614 case GL_NORMAL_ARRAY
:
4615 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Enabled
);
4617 case GL_NORMAL_ARRAY_TYPE
:
4618 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Type
);
4620 case GL_NORMAL_ARRAY_STRIDE
:
4621 params
[0] = ctx
->Array
.Normal
.Stride
;
4623 case GL_NORMAL_ARRAY_COUNT_EXT
:
4626 case GL_COLOR_ARRAY
:
4627 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Color
.Enabled
);
4629 case GL_COLOR_ARRAY_SIZE
:
4630 params
[0] = ctx
->Array
.Color
.Size
;
4632 case GL_COLOR_ARRAY_TYPE
:
4633 params
[0] = ENUM_TO_INT(ctx
->Array
.Color
.Type
);
4635 case GL_COLOR_ARRAY_STRIDE
:
4636 params
[0] = ctx
->Array
.Color
.Stride
;
4638 case GL_COLOR_ARRAY_COUNT_EXT
:
4641 case GL_INDEX_ARRAY
:
4642 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Index
.Enabled
);
4644 case GL_INDEX_ARRAY_TYPE
:
4645 params
[0] = ENUM_TO_INT(ctx
->Array
.Index
.Type
);
4647 case GL_INDEX_ARRAY_STRIDE
:
4648 params
[0] = ctx
->Array
.Index
.Stride
;
4650 case GL_INDEX_ARRAY_COUNT_EXT
:
4653 case GL_TEXTURE_COORD_ARRAY
:
4654 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4656 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4657 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4659 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4660 params
[0] = ENUM_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4662 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4663 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4665 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4668 case GL_EDGE_FLAG_ARRAY
:
4669 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.EdgeFlag
.Enabled
);
4671 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4672 params
[0] = ctx
->Array
.EdgeFlag
.Stride
;
4674 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4677 case GL_MAX_TEXTURE_UNITS_ARB
:
4678 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4679 params
[0] = ctx
->Const
.MaxTextureUnits
;
4681 case GL_ACTIVE_TEXTURE_ARB
:
4682 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4683 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4685 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4686 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4687 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4689 case GL_TEXTURE_CUBE_MAP_ARB
:
4690 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4691 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4693 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4694 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4695 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4697 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4698 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4699 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4701 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4702 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4703 params
[0] = ctx
->Hint
.TextureCompression
;
4705 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4706 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4707 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4709 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4710 CHECK_EXT1(ARB_texture_compression
, "GetIntegerv");
4713 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4715 for (i
= 0; i
< n
; i
++)
4716 params
[i
] = ENUM_TO_INT(formats
[i
]);
4719 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4720 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4721 params
[0] = ctx
->Array
.LockFirst
;
4723 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4724 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4725 params
[0] = ctx
->Array
.LockCount
;
4727 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4729 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4730 params
[0] = IROUND(matrix
[0]);
4731 params
[1] = IROUND(matrix
[4]);
4732 params
[2] = IROUND(matrix
[8]);
4733 params
[3] = IROUND(matrix
[12]);
4734 params
[4] = IROUND(matrix
[1]);
4735 params
[5] = IROUND(matrix
[5]);
4736 params
[6] = IROUND(matrix
[9]);
4737 params
[7] = IROUND(matrix
[13]);
4738 params
[8] = IROUND(matrix
[2]);
4739 params
[9] = IROUND(matrix
[6]);
4740 params
[10] = IROUND(matrix
[10]);
4741 params
[11] = IROUND(matrix
[14]);
4742 params
[12] = IROUND(matrix
[3]);
4743 params
[13] = IROUND(matrix
[7]);
4744 params
[14] = IROUND(matrix
[11]);
4745 params
[15] = IROUND(matrix
[15]);
4748 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4750 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4751 params
[0] = IROUND(matrix
[0]);
4752 params
[1] = IROUND(matrix
[4]);
4753 params
[2] = IROUND(matrix
[8]);
4754 params
[3] = IROUND(matrix
[12]);
4755 params
[4] = IROUND(matrix
[1]);
4756 params
[5] = IROUND(matrix
[5]);
4757 params
[6] = IROUND(matrix
[9]);
4758 params
[7] = IROUND(matrix
[13]);
4759 params
[8] = IROUND(matrix
[2]);
4760 params
[9] = IROUND(matrix
[6]);
4761 params
[10] = IROUND(matrix
[10]);
4762 params
[11] = IROUND(matrix
[14]);
4763 params
[12] = IROUND(matrix
[3]);
4764 params
[13] = IROUND(matrix
[7]);
4765 params
[14] = IROUND(matrix
[11]);
4766 params
[15] = IROUND(matrix
[15]);
4769 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4771 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4772 params
[0] = IROUND(matrix
[0]);
4773 params
[1] = IROUND(matrix
[4]);
4774 params
[2] = IROUND(matrix
[8]);
4775 params
[3] = IROUND(matrix
[12]);
4776 params
[4] = IROUND(matrix
[1]);
4777 params
[5] = IROUND(matrix
[5]);
4778 params
[6] = IROUND(matrix
[9]);
4779 params
[7] = IROUND(matrix
[13]);
4780 params
[8] = IROUND(matrix
[2]);
4781 params
[9] = IROUND(matrix
[6]);
4782 params
[10] = IROUND(matrix
[10]);
4783 params
[11] = IROUND(matrix
[14]);
4784 params
[12] = IROUND(matrix
[3]);
4785 params
[13] = IROUND(matrix
[7]);
4786 params
[14] = IROUND(matrix
[11]);
4787 params
[15] = IROUND(matrix
[15]);
4790 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4792 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4793 params
[0] = IROUND(matrix
[0]);
4794 params
[1] = IROUND(matrix
[4]);
4795 params
[2] = IROUND(matrix
[8]);
4796 params
[3] = IROUND(matrix
[12]);
4797 params
[4] = IROUND(matrix
[1]);
4798 params
[5] = IROUND(matrix
[5]);
4799 params
[6] = IROUND(matrix
[9]);
4800 params
[7] = IROUND(matrix
[13]);
4801 params
[8] = IROUND(matrix
[2]);
4802 params
[9] = IROUND(matrix
[6]);
4803 params
[10] = IROUND(matrix
[10]);
4804 params
[11] = IROUND(matrix
[14]);
4805 params
[12] = IROUND(matrix
[3]);
4806 params
[13] = IROUND(matrix
[7]);
4807 params
[14] = IROUND(matrix
[11]);
4808 params
[15] = IROUND(matrix
[15]);
4811 case GL_COLOR_MATRIX_SGI
:
4813 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4814 params
[0] = IROUND(matrix
[0]);
4815 params
[1] = IROUND(matrix
[1]);
4816 params
[2] = IROUND(matrix
[2]);
4817 params
[3] = IROUND(matrix
[3]);
4818 params
[4] = IROUND(matrix
[4]);
4819 params
[5] = IROUND(matrix
[5]);
4820 params
[6] = IROUND(matrix
[6]);
4821 params
[7] = IROUND(matrix
[7]);
4822 params
[8] = IROUND(matrix
[8]);
4823 params
[9] = IROUND(matrix
[9]);
4824 params
[10] = IROUND(matrix
[10]);
4825 params
[11] = IROUND(matrix
[11]);
4826 params
[12] = IROUND(matrix
[12]);
4827 params
[13] = IROUND(matrix
[13]);
4828 params
[14] = IROUND(matrix
[14]);
4829 params
[15] = IROUND(matrix
[15]);
4832 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4833 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4835 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4836 params
[0] = MAX_COLOR_STACK_DEPTH
;
4838 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4839 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4841 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4842 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4844 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4845 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4847 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4848 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4850 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4851 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4853 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4854 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4856 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4857 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4859 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4860 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4862 case GL_CONVOLUTION_1D_EXT
:
4863 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4864 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4866 case GL_CONVOLUTION_2D_EXT
:
4867 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4868 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4870 case GL_SEPARABLE_2D_EXT
:
4871 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4872 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4874 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4875 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4876 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4878 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4879 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4880 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4882 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4883 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4884 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4886 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4887 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4888 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4890 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4891 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4892 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4894 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4895 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4896 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4898 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4899 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4900 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4902 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4903 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
4904 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4907 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4908 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4911 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
4912 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4914 case GL_COLOR_TABLE_SGI
:
4915 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4916 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
);
4918 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4919 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4920 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
4922 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4923 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
4924 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
4926 case GL_TEXTURE_COLOR_TABLE_SGI
:
4927 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
4928 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4930 case GL_COLOR_SUM_EXT
:
4931 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
4932 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4934 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4935 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4937 FLUSH_CURRENT(ctx
, 0);
4938 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4939 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4940 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4941 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4944 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4945 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4946 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.SecondaryColor
.Enabled
);
4948 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
4949 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4950 params
[0] = ENUM_TO_INT(ctx
->Array
.SecondaryColor
.Type
);
4952 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
4953 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4954 params
[0] = ctx
->Array
.SecondaryColor
.Stride
;
4956 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
4957 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
4958 params
[0] = ctx
->Array
.SecondaryColor
.Size
;
4960 case GL_CURRENT_FOG_COORDINATE_EXT
:
4961 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4963 FLUSH_CURRENT(ctx
, 0);
4964 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
4967 case GL_FOG_COORDINATE_ARRAY_EXT
:
4968 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4969 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.FogCoord
.Enabled
);
4971 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
4972 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4973 params
[0] = ENUM_TO_INT(ctx
->Array
.FogCoord
.Type
);
4975 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
4976 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4977 params
[0] = ctx
->Array
.FogCoord
.Stride
;
4979 case GL_FOG_COORDINATE_SOURCE_EXT
:
4980 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
4981 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
4983 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
4984 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
4985 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
4987 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
4988 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
4989 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
4991 case GL_MULTISAMPLE_ARB
:
4992 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
4993 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
4995 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
4996 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
4997 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
4999 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5000 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5001 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5003 case GL_SAMPLE_COVERAGE_ARB
:
5004 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5005 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5007 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5008 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5009 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5011 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5012 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5013 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5015 case GL_SAMPLE_BUFFERS_ARB
:
5016 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5017 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5019 case GL_SAMPLES_ARB
:
5020 CHECK_EXT1(ARB_multisample
, "GetIntegerv");
5021 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5023 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5024 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5025 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5027 case GL_POINT_SPRITE_NV
:
5028 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5029 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5031 case GL_POINT_SPRITE_R_MODE_NV
:
5032 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5033 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5035 case GL_POINT_SPRITE_COORD_ORIGIN
:
5036 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5037 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5039 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5040 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5041 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5043 case GL_VERTEX_PROGRAM_BINDING_NV
:
5044 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5045 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5047 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5048 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5049 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[0].Enabled
);
5051 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5052 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5053 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[1].Enabled
);
5055 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5056 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5057 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[2].Enabled
);
5059 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5060 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5061 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[3].Enabled
);
5063 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5064 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5065 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[4].Enabled
);
5067 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5068 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5069 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[5].Enabled
);
5071 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5072 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5073 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[6].Enabled
);
5075 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5076 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5077 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[7].Enabled
);
5079 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5080 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5081 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[8].Enabled
);
5083 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5084 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5085 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[9].Enabled
);
5087 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5088 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5089 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[10].Enabled
);
5091 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5092 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5093 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[11].Enabled
);
5095 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5096 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5097 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[12].Enabled
);
5099 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5100 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5101 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[13].Enabled
);
5103 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5104 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5105 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[14].Enabled
);
5107 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5108 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5109 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[15].Enabled
);
5111 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5112 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5113 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5115 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5116 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5117 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5119 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5120 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5121 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5123 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5124 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5125 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5127 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5128 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5129 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5131 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5132 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5133 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5135 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5136 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5137 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5139 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5140 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5141 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5143 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5144 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5145 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5147 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5148 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5149 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5151 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5152 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5153 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5155 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5156 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5157 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5159 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5160 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5161 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5163 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5164 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5165 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5167 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5168 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5169 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5171 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5172 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5173 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5175 case GL_FRAGMENT_PROGRAM_NV
:
5176 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5177 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5179 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5180 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5181 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5183 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5184 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5185 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5187 case GL_TEXTURE_RECTANGLE_NV
:
5188 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5189 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5191 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5192 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5193 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5195 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5196 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5197 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5199 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5200 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5201 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5203 case GL_ACTIVE_STENCIL_FACE_EXT
:
5204 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5205 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5207 case GL_MAX_SHININESS_NV
:
5208 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5209 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5211 case GL_MAX_SPOT_EXPONENT_NV
:
5212 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5213 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5215 case GL_ARRAY_BUFFER_BINDING_ARB
:
5216 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5217 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5219 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5220 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5221 params
[0] = ctx
->Array
.Vertex
.BufferObj
->Name
;
5223 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5224 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5225 params
[0] = ctx
->Array
.Normal
.BufferObj
->Name
;
5227 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5228 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5229 params
[0] = ctx
->Array
.Color
.BufferObj
->Name
;
5231 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5232 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5233 params
[0] = ctx
->Array
.Index
.BufferObj
->Name
;
5235 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5236 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5237 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5239 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5240 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5241 params
[0] = ctx
->Array
.EdgeFlag
.BufferObj
->Name
;
5243 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5244 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5245 params
[0] = ctx
->Array
.SecondaryColor
.BufferObj
->Name
;
5247 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5248 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5249 params
[0] = ctx
->Array
.FogCoord
.BufferObj
->Name
;
5251 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5252 CHECK_EXT1(ARB_vertex_buffer_object
, "GetIntegerv");
5253 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5255 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5256 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5257 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5259 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5260 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5261 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5263 case GL_VERTEX_PROGRAM_ARB
:
5264 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5265 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5267 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5268 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5269 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5271 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5272 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5273 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5275 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5276 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5277 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5279 case GL_MAX_PROGRAM_MATRICES_ARB
:
5280 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5281 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5283 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5284 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5285 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5287 case GL_CURRENT_MATRIX_ARB
:
5288 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5290 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5291 params
[0] = IROUND(matrix
[0]);
5292 params
[1] = IROUND(matrix
[1]);
5293 params
[2] = IROUND(matrix
[2]);
5294 params
[3] = IROUND(matrix
[3]);
5295 params
[4] = IROUND(matrix
[4]);
5296 params
[5] = IROUND(matrix
[5]);
5297 params
[6] = IROUND(matrix
[6]);
5298 params
[7] = IROUND(matrix
[7]);
5299 params
[8] = IROUND(matrix
[8]);
5300 params
[9] = IROUND(matrix
[9]);
5301 params
[10] = IROUND(matrix
[10]);
5302 params
[11] = IROUND(matrix
[11]);
5303 params
[12] = IROUND(matrix
[12]);
5304 params
[13] = IROUND(matrix
[13]);
5305 params
[14] = IROUND(matrix
[14]);
5306 params
[15] = IROUND(matrix
[15]);
5309 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5310 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5312 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5313 params
[0] = IROUND(matrix
[0]);
5314 params
[1] = IROUND(matrix
[4]);
5315 params
[2] = IROUND(matrix
[8]);
5316 params
[3] = IROUND(matrix
[12]);
5317 params
[4] = IROUND(matrix
[1]);
5318 params
[5] = IROUND(matrix
[5]);
5319 params
[6] = IROUND(matrix
[9]);
5320 params
[7] = IROUND(matrix
[13]);
5321 params
[8] = IROUND(matrix
[2]);
5322 params
[9] = IROUND(matrix
[6]);
5323 params
[10] = IROUND(matrix
[10]);
5324 params
[11] = IROUND(matrix
[14]);
5325 params
[12] = IROUND(matrix
[3]);
5326 params
[13] = IROUND(matrix
[7]);
5327 params
[14] = IROUND(matrix
[11]);
5328 params
[15] = IROUND(matrix
[15]);
5331 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5332 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5333 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5335 case GL_PROGRAM_ERROR_POSITION_ARB
:
5336 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5337 params
[0] = ctx
->Program
.ErrorPos
;
5339 case GL_FRAGMENT_PROGRAM_ARB
:
5340 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5341 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5343 case GL_MAX_TEXTURE_COORDS_ARB
:
5344 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5345 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5347 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5348 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5349 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5351 case GL_DEPTH_BOUNDS_TEST_EXT
:
5352 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5353 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5355 case GL_DEPTH_BOUNDS_EXT
:
5356 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5357 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5358 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5360 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5361 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5362 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5364 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5365 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5366 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5368 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5369 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5370 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5372 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5373 CHECK_EXT1(MESA_program_debug
, "GetIntegerv");
5374 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5376 case GL_MAX_DRAW_BUFFERS_ARB
:
5377 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5378 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5380 case GL_DRAW_BUFFER0_ARB
:
5381 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5382 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5384 case GL_DRAW_BUFFER1_ARB
:
5385 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5388 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5389 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5392 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5393 params
[0] = ENUM_TO_INT(buffer
);
5396 case GL_DRAW_BUFFER2_ARB
:
5397 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5400 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5401 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5404 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5405 params
[0] = ENUM_TO_INT(buffer
);
5408 case GL_DRAW_BUFFER3_ARB
:
5409 CHECK_EXT1(ARB_draw_buffers
, "GetIntegerv");
5412 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5413 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5416 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5417 params
[0] = ENUM_TO_INT(buffer
);
5420 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5421 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5422 params
[0] = ctx
->Const
.ColorReadType
;
5424 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5425 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5426 params
[0] = ctx
->Const
.ColorReadFormat
;
5428 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5429 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5432 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5433 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5436 case GL_NUM_PASSES_ATI
:
5437 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5440 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5441 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5444 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5445 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5448 case GL_COLOR_ALPHA_PAIRING_ATI
:
5449 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5450 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5452 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5453 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5456 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5457 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5460 case GL_STENCIL_BACK_FUNC
:
5461 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5463 case GL_STENCIL_BACK_VALUE_MASK
:
5464 params
[0] = ctx
->Stencil
.ValueMask
[1];
5466 case GL_STENCIL_BACK_REF
:
5467 params
[0] = ctx
->Stencil
.Ref
[1];
5469 case GL_STENCIL_BACK_FAIL
:
5470 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5472 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5473 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5475 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5476 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5478 case GL_FRAMEBUFFER_BINDING_EXT
:
5479 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5480 params
[0] = ctx
->DrawBuffer
->Name
;
5482 case GL_RENDERBUFFER_BINDING_EXT
:
5483 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5484 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5486 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5487 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5488 params
[0] = ctx
->Const
.MaxColorAttachments
;
5490 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5491 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5492 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5494 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5495 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5496 params
[0] = MAX_FRAGMENT_UNIFORM_COMPONENTS
;
5498 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5499 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5500 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5502 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5503 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5504 params
[0] = MAX_VERTEX_UNIFORM_COMPONENTS
;
5506 case GL_MAX_VARYING_FLOATS_ARB
:
5507 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5508 params
[0] = MAX_VARYING_FLOATS
;
5510 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5511 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5512 params
[0] = MAX_VERTEX_TEXTURE_IMAGE_UNITS
;
5514 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5515 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5516 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5519 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5525 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5527 const GLfloat magic
= -1234.5F
;
5534 /* Init temp array to magic numbers so we can figure out how many values
5535 * are returned by the GetFloatv() call.
5537 for (i
= 0; i
< 16; i
++)
5540 _mesa_GetFloatv(pname
, values
);
5542 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5543 params
[i
] = (GLdouble
) values
[i
];