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 )
30 /* Check if named extension is enabled, if not generate error and return */
32 #define CHECK1(E1, str, PNAME) \
33 if (!ctx->Extensions.E1) { \
34 _mesa_error(ctx, GL_INVALID_VALUE, \
35 "glGet" str "v(0x%x)", (int) PNAME); \
39 #define CHECK2(E1, E2, str, PNAME) \
40 if (!ctx->Extensions.E1 && !ctx->Extensions.E2) { \
41 _mesa_error(ctx, GL_INVALID_VALUE, \
42 "glGet" str "v(0x%x)", (int) PNAME); \
46 #define CHECK_EXTENSION_B(EXTNAME, PNAME) \
47 CHECK1(EXTNAME, "Boolean", PNAME )
49 #define CHECK_EXTENSION_I(EXTNAME, PNAME) \
50 CHECK1(EXTNAME, "Integer", PNAME )
52 #define CHECK_EXTENSION_F(EXTNAME, PNAME) \
53 CHECK1(EXTNAME, "Float", PNAME )
57 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
59 GET_CURRENT_CONTEXT(ctx
);
60 ASSERT_OUTSIDE_BEGIN_END(ctx
);
66 _mesa_update_state(ctx
);
68 if (ctx
->Driver
.GetBooleanv
&&
69 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
73 case GL_ACCUM_RED_BITS
:
74 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumRedBits
);
76 case GL_ACCUM_GREEN_BITS
:
77 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
79 case GL_ACCUM_BLUE_BITS
:
80 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
82 case GL_ACCUM_ALPHA_BITS
:
83 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
85 case GL_ACCUM_CLEAR_VALUE
:
86 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
87 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
88 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
89 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
92 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
95 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.alphaBits
);
98 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
101 params
[0] = ctx
->Color
.AlphaEnabled
;
103 case GL_ALPHA_TEST_FUNC
:
104 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
106 case GL_ALPHA_TEST_REF
:
107 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
109 case GL_ATTRIB_STACK_DEPTH
:
110 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
113 params
[0] = ctx
->Eval
.AutoNormal
;
116 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
119 params
[0] = ctx
->Color
.BlendEnabled
;
122 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
125 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
127 case GL_BLEND_SRC_RGB_EXT
:
128 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
130 case GL_BLEND_DST_RGB_EXT
:
131 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
133 case GL_BLEND_SRC_ALPHA_EXT
:
134 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
136 case GL_BLEND_DST_ALPHA_EXT
:
137 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
139 case GL_BLEND_EQUATION
:
140 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
142 case GL_BLEND_EQUATION_ALPHA_EXT
:
143 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
145 case GL_BLEND_COLOR_EXT
:
146 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
147 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
148 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
149 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
152 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
155 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.blueBits
);
158 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
160 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
161 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
164 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
167 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
170 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
173 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
176 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
179 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
181 case GL_COLOR_CLEAR_VALUE
:
182 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
183 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
184 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
185 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
187 case GL_COLOR_MATERIAL
:
188 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
190 case GL_COLOR_MATERIAL_FACE
:
191 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
193 case GL_COLOR_MATERIAL_PARAMETER
:
194 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
196 case GL_COLOR_WRITEMASK
:
197 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
198 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
199 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
200 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
203 params
[0] = ctx
->Polygon
.CullFlag
;
205 case GL_CULL_FACE_MODE
:
206 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
208 case GL_CURRENT_COLOR
:
210 FLUSH_CURRENT(ctx
, 0);
211 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
212 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
213 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
214 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
217 case GL_CURRENT_INDEX
:
219 FLUSH_CURRENT(ctx
, 0);
220 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Index
);
223 case GL_CURRENT_NORMAL
:
225 FLUSH_CURRENT(ctx
, 0);
226 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
227 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
228 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
231 case GL_CURRENT_RASTER_COLOR
:
232 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
233 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
234 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
235 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
237 case GL_CURRENT_RASTER_DISTANCE
:
238 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
240 case GL_CURRENT_RASTER_INDEX
:
241 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterIndex
);
243 case GL_CURRENT_RASTER_POSITION
:
244 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
245 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
246 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
247 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
249 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
251 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
252 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
253 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
254 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
255 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
258 case GL_CURRENT_RASTER_POSITION_VALID
:
259 params
[0] = ctx
->Current
.RasterPosValid
;
261 case GL_CURRENT_TEXTURE_COORDS
:
263 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
264 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
265 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
266 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
267 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
271 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
274 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
276 case GL_DEPTH_CLEAR_VALUE
:
277 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.Clear
);
280 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
283 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
284 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
287 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
290 params
[0] = ctx
->Depth
.Test
;
292 case GL_DEPTH_WRITEMASK
:
293 params
[0] = ctx
->Depth
.Mask
;
296 params
[0] = ctx
->Color
.DitherFlag
;
298 case GL_DOUBLEBUFFER
:
299 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
302 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.DrawBuffer
[0]);
306 FLUSH_CURRENT(ctx
, 0);
307 params
[0] = ctx
->Current
.EdgeFlag
;
310 case GL_FEEDBACK_BUFFER_SIZE
:
311 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
313 case GL_FEEDBACK_BUFFER_TYPE
:
314 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
317 params
[0] = ctx
->Fog
.Enabled
;
320 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
321 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
322 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
323 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
326 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
329 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
332 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
335 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
338 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
341 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
344 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
347 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
350 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
353 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
356 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
358 case GL_INDEX_CLEAR_VALUE
:
359 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
362 params
[0] = !ctx
->DrawBuffer
->Visual
.rgbMode
;
364 case GL_INDEX_OFFSET
:
365 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
368 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
370 case GL_INDEX_WRITEMASK
:
371 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
374 params
[0] = ctx
->Light
.Light
[0].Enabled
;
377 params
[0] = ctx
->Light
.Light
[1].Enabled
;
380 params
[0] = ctx
->Light
.Light
[2].Enabled
;
383 params
[0] = ctx
->Light
.Light
[3].Enabled
;
386 params
[0] = ctx
->Light
.Light
[4].Enabled
;
389 params
[0] = ctx
->Light
.Light
[5].Enabled
;
392 params
[0] = ctx
->Light
.Light
[6].Enabled
;
395 params
[0] = ctx
->Light
.Light
[7].Enabled
;
398 params
[0] = ctx
->Light
.Enabled
;
400 case GL_LIGHT_MODEL_AMBIENT
:
401 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
402 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
403 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
404 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
406 case GL_LIGHT_MODEL_COLOR_CONTROL
:
407 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
409 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
410 params
[0] = ctx
->Light
.Model
.LocalViewer
;
412 case GL_LIGHT_MODEL_TWO_SIDE
:
413 params
[0] = ctx
->Light
.Model
.TwoSide
;
416 params
[0] = ctx
->Line
.SmoothFlag
;
418 case GL_LINE_SMOOTH_HINT
:
419 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
421 case GL_LINE_STIPPLE
:
422 params
[0] = ctx
->Line
.StippleFlag
;
424 case GL_LINE_STIPPLE_PATTERN
:
425 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
427 case GL_LINE_STIPPLE_REPEAT
:
428 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
431 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
433 case GL_LINE_WIDTH_GRANULARITY
:
434 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
436 case GL_LINE_WIDTH_RANGE
:
437 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
438 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
440 case GL_ALIASED_LINE_WIDTH_RANGE
:
441 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
442 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
445 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
448 params
[0] = INT_TO_BOOLEAN(ctx
->ListState
.CurrentListNum
);
453 if (!ctx
->CompileFlag
)
455 else if (ctx
->ExecuteFlag
)
456 mode
= GL_COMPILE_AND_EXECUTE
;
459 params
[0] = ENUM_TO_BOOLEAN(mode
);
462 case GL_INDEX_LOGIC_OP
:
463 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
465 case GL_COLOR_LOGIC_OP
:
466 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
468 case GL_LOGIC_OP_MODE
:
469 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
471 case GL_MAP1_COLOR_4
:
472 params
[0] = ctx
->Eval
.Map1Color4
;
474 case GL_MAP1_GRID_DOMAIN
:
475 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
476 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
478 case GL_MAP1_GRID_SEGMENTS
:
479 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
482 params
[0] = ctx
->Eval
.Map1Index
;
485 params
[0] = ctx
->Eval
.Map1Normal
;
487 case GL_MAP1_TEXTURE_COORD_1
:
488 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
490 case GL_MAP1_TEXTURE_COORD_2
:
491 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
493 case GL_MAP1_TEXTURE_COORD_3
:
494 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
496 case GL_MAP1_TEXTURE_COORD_4
:
497 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
499 case GL_MAP1_VERTEX_3
:
500 params
[0] = ctx
->Eval
.Map1Vertex3
;
502 case GL_MAP1_VERTEX_4
:
503 params
[0] = ctx
->Eval
.Map1Vertex4
;
505 case GL_MAP2_COLOR_4
:
506 params
[0] = ctx
->Eval
.Map2Color4
;
508 case GL_MAP2_GRID_DOMAIN
:
509 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
510 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
511 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
512 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
514 case GL_MAP2_GRID_SEGMENTS
:
515 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
516 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
519 params
[0] = ctx
->Eval
.Map2Index
;
522 params
[0] = ctx
->Eval
.Map2Normal
;
524 case GL_MAP2_TEXTURE_COORD_1
:
525 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
527 case GL_MAP2_TEXTURE_COORD_2
:
528 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
530 case GL_MAP2_TEXTURE_COORD_3
:
531 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
533 case GL_MAP2_TEXTURE_COORD_4
:
534 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
536 case GL_MAP2_VERTEX_3
:
537 params
[0] = ctx
->Eval
.Map2Vertex3
;
539 case GL_MAP2_VERTEX_4
:
540 params
[0] = ctx
->Eval
.Map2Vertex4
;
543 params
[0] = ctx
->Pixel
.MapColorFlag
;
546 params
[0] = ctx
->Pixel
.MapStencilFlag
;
549 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
551 case GL_MAX_ATTRIB_STACK_DEPTH
:
552 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
554 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
555 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
557 case GL_MAX_CLIP_PLANES
:
558 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
560 case GL_MAX_ELEMENTS_VERTICES
:
561 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
563 case GL_MAX_ELEMENTS_INDICES
:
564 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
566 case GL_MAX_EVAL_ORDER
:
567 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
570 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
572 case GL_MAX_LIST_NESTING
:
573 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
575 case GL_MAX_MODELVIEW_STACK_DEPTH
:
576 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
578 case GL_MAX_NAME_STACK_DEPTH
:
579 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
581 case GL_MAX_PIXEL_MAP_TABLE
:
582 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
584 case GL_MAX_PROJECTION_STACK_DEPTH
:
585 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
587 case GL_MAX_TEXTURE_SIZE
:
588 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
590 case GL_MAX_3D_TEXTURE_SIZE
:
591 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
593 case GL_MAX_TEXTURE_STACK_DEPTH
:
594 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
596 case GL_MAX_VIEWPORT_DIMS
:
597 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
598 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
600 case GL_MODELVIEW_MATRIX
:
602 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
603 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
604 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
605 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
606 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
607 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
608 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
609 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
610 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
611 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
612 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
613 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
614 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
615 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
616 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
617 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
618 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
621 case GL_MODELVIEW_STACK_DEPTH
:
622 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
624 case GL_NAME_STACK_DEPTH
:
625 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
628 params
[0] = ctx
->Transform
.Normalize
;
630 case GL_PACK_ALIGNMENT
:
631 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
633 case GL_PACK_LSB_FIRST
:
634 params
[0] = ctx
->Pack
.LsbFirst
;
636 case GL_PACK_ROW_LENGTH
:
637 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
639 case GL_PACK_SKIP_PIXELS
:
640 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
642 case GL_PACK_SKIP_ROWS
:
643 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
645 case GL_PACK_SWAP_BYTES
:
646 params
[0] = ctx
->Pack
.SwapBytes
;
648 case GL_PACK_SKIP_IMAGES_EXT
:
649 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
651 case GL_PACK_IMAGE_HEIGHT_EXT
:
652 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
654 case GL_PACK_INVERT_MESA
:
655 params
[0] = ctx
->Pack
.Invert
;
657 case GL_PERSPECTIVE_CORRECTION_HINT
:
658 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
660 case GL_PIXEL_MAP_A_TO_A_SIZE
:
661 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapAtoAsize
);
663 case GL_PIXEL_MAP_B_TO_B_SIZE
:
664 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapBtoBsize
);
666 case GL_PIXEL_MAP_G_TO_G_SIZE
:
667 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapGtoGsize
);
669 case GL_PIXEL_MAP_I_TO_A_SIZE
:
670 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoAsize
);
672 case GL_PIXEL_MAP_I_TO_B_SIZE
:
673 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoBsize
);
675 case GL_PIXEL_MAP_I_TO_G_SIZE
:
676 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoGsize
);
678 case GL_PIXEL_MAP_I_TO_I_SIZE
:
679 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoIsize
);
681 case GL_PIXEL_MAP_I_TO_R_SIZE
:
682 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoRsize
);
684 case GL_PIXEL_MAP_R_TO_R_SIZE
:
685 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapRtoRsize
);
687 case GL_PIXEL_MAP_S_TO_S_SIZE
:
688 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapStoSsize
);
691 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
693 case GL_POINT_SIZE_GRANULARITY
:
694 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
696 case GL_POINT_SIZE_RANGE
:
697 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
698 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
700 case GL_ALIASED_POINT_SIZE_RANGE
:
701 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
702 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
704 case GL_POINT_SMOOTH
:
705 params
[0] = ctx
->Point
.SmoothFlag
;
707 case GL_POINT_SMOOTH_HINT
:
708 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
710 case GL_POINT_SIZE_MIN_EXT
:
711 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
713 case GL_POINT_SIZE_MAX_EXT
:
714 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
716 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
717 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
719 case GL_DISTANCE_ATTENUATION_EXT
:
720 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
721 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
722 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
724 case GL_POLYGON_MODE
:
725 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
726 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
728 case GL_POLYGON_OFFSET_BIAS_EXT
:
729 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
731 case GL_POLYGON_OFFSET_FACTOR
:
732 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
734 case GL_POLYGON_OFFSET_UNITS
:
735 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
737 case GL_POLYGON_SMOOTH
:
738 params
[0] = ctx
->Polygon
.SmoothFlag
;
740 case GL_POLYGON_SMOOTH_HINT
:
741 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
743 case GL_POLYGON_STIPPLE
:
744 params
[0] = ctx
->Polygon
.StippleFlag
;
746 case GL_PROJECTION_MATRIX
:
748 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
749 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
750 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
751 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
752 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
753 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
754 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
755 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
756 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
757 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
758 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
759 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
760 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
761 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
762 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
763 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
764 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
767 case GL_PROJECTION_STACK_DEPTH
:
768 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
771 params
[0] = ENUM_TO_BOOLEAN(ctx
->Pixel
.ReadBuffer
);
774 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
777 params
[0] = INT_TO_BOOLEAN( ctx
->DrawBuffer
->Visual
.redBits
);
780 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
783 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
785 case GL_RESCALE_NORMAL
:
786 params
[0] = ctx
->Transform
.RescaleNormals
;
789 params
[0] = ctx
->DrawBuffer
->Visual
.rgbMode
;
792 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
793 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
794 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
795 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
797 case GL_SCISSOR_TEST
:
798 params
[0] = ctx
->Scissor
.Enabled
;
800 case GL_SELECTION_BUFFER_SIZE
:
801 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
804 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
806 case GL_SHARED_TEXTURE_PALETTE_EXT
:
807 params
[0] = ctx
->Texture
.SharedPalette
;
809 case GL_STENCIL_BITS
:
810 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
812 case GL_STENCIL_CLEAR_VALUE
:
813 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
815 case GL_STENCIL_FAIL
:
816 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
818 case GL_STENCIL_FUNC
:
819 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
821 case GL_STENCIL_PASS_DEPTH_FAIL
:
822 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
824 case GL_STENCIL_PASS_DEPTH_PASS
:
825 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
828 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
830 case GL_STENCIL_TEST
:
831 params
[0] = ctx
->Stencil
.Enabled
;
833 case GL_STENCIL_VALUE_MASK
:
834 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
836 case GL_STENCIL_WRITEMASK
:
837 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
840 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
842 case GL_SUBPIXEL_BITS
:
843 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
846 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
849 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
852 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
854 case GL_TEXTURE_BINDING_1D
:
855 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
857 case GL_TEXTURE_BINDING_2D
:
858 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
860 case GL_TEXTURE_BINDING_3D
:
861 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
863 case GL_TEXTURE_ENV_COLOR
:
865 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
866 params
[0] = FLOAT_TO_BOOLEAN(color
[0]);
867 params
[1] = FLOAT_TO_BOOLEAN(color
[1]);
868 params
[2] = FLOAT_TO_BOOLEAN(color
[2]);
869 params
[3] = FLOAT_TO_BOOLEAN(color
[3]);
872 case GL_TEXTURE_ENV_MODE
:
873 params
[0] = ENUM_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
875 case GL_TEXTURE_GEN_S
:
876 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
878 case GL_TEXTURE_GEN_T
:
879 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
881 case GL_TEXTURE_GEN_R
:
882 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
884 case GL_TEXTURE_GEN_Q
:
885 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
887 case GL_TEXTURE_MATRIX
:
889 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
890 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
891 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
892 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
893 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
894 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
895 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
896 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
897 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
898 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
899 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
900 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
901 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
902 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
903 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
904 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
905 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
908 case GL_TEXTURE_STACK_DEPTH
:
909 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
911 case GL_UNPACK_ALIGNMENT
:
912 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
914 case GL_UNPACK_LSB_FIRST
:
915 params
[0] = ctx
->Unpack
.LsbFirst
;
917 case GL_UNPACK_ROW_LENGTH
:
918 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
920 case GL_UNPACK_SKIP_PIXELS
:
921 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
923 case GL_UNPACK_SKIP_ROWS
:
924 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
926 case GL_UNPACK_SWAP_BYTES
:
927 params
[0] = ctx
->Unpack
.SwapBytes
;
929 case GL_UNPACK_SKIP_IMAGES_EXT
:
930 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
932 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
933 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
935 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
936 params
[0] = ctx
->Unpack
.ClientStorage
;
939 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
940 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
941 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
942 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
945 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
948 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
950 case GL_VERTEX_ARRAY
:
951 params
[0] = ctx
->Array
.Vertex
.Enabled
;
953 case GL_VERTEX_ARRAY_SIZE
:
954 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.Size
);
956 case GL_VERTEX_ARRAY_TYPE
:
957 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Vertex
.Type
);
959 case GL_VERTEX_ARRAY_STRIDE
:
960 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.Stride
);
962 case GL_VERTEX_ARRAY_COUNT_EXT
:
963 params
[0] = INT_TO_BOOLEAN(0);
965 case GL_NORMAL_ARRAY
:
966 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Normal
.Enabled
);
968 case GL_NORMAL_ARRAY_TYPE
:
969 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Normal
.Type
);
971 case GL_NORMAL_ARRAY_STRIDE
:
972 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.Stride
);
974 case GL_NORMAL_ARRAY_COUNT_EXT
:
975 params
[0] = INT_TO_BOOLEAN(0);
978 params
[0] = ctx
->Array
.Color
.Enabled
;
980 case GL_COLOR_ARRAY_SIZE
:
981 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.Size
);
983 case GL_COLOR_ARRAY_TYPE
:
984 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Color
.Type
);
986 case GL_COLOR_ARRAY_STRIDE
:
987 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.Stride
);
989 case GL_COLOR_ARRAY_COUNT_EXT
:
990 params
[0] = INT_TO_BOOLEAN(0);
993 params
[0] = ctx
->Array
.Index
.Enabled
;
995 case GL_INDEX_ARRAY_TYPE
:
996 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Index
.Type
);
998 case GL_INDEX_ARRAY_STRIDE
:
999 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.Stride
);
1001 case GL_INDEX_ARRAY_COUNT_EXT
:
1002 params
[0] = INT_TO_BOOLEAN(0);
1004 case GL_TEXTURE_COORD_ARRAY
:
1005 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1007 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1008 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1010 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1011 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1013 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1014 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1016 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1017 params
[0] = INT_TO_BOOLEAN(0);
1019 case GL_EDGE_FLAG_ARRAY
:
1020 params
[0] = ctx
->Array
.EdgeFlag
.Enabled
;
1022 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1023 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.Stride
);
1025 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1026 params
[0] = INT_TO_BOOLEAN(0);
1028 case GL_MAX_TEXTURE_UNITS_ARB
:
1029 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1030 params
[0] = INT_TO_BOOLEAN(MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
));
1032 case GL_ACTIVE_TEXTURE_ARB
:
1033 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1034 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1036 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1037 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1038 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1040 case GL_TEXTURE_CUBE_MAP_ARB
:
1041 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1042 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1044 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1045 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1046 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
1048 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1049 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1050 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1052 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1053 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1054 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1056 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1057 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1058 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
));
1060 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1061 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1064 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
1066 for (i
= 0; i
< n
; i
++)
1067 params
[i
] = ENUM_TO_INT(formats
[i
]);
1070 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1071 CHECK_EXTENSION_B(EXT_compiled_vertex_array
, pname
);
1072 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1074 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1075 CHECK_EXTENSION_B(EXT_compiled_vertex_array
, pname
);
1076 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1078 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1080 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1081 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1082 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1083 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1084 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1085 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1086 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1087 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1088 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1089 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1090 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1091 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1092 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1093 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1094 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1095 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1096 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1099 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1101 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1102 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1103 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1104 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1105 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1106 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1107 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1108 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1109 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1110 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1111 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1112 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1113 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1114 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1115 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1116 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1117 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1120 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1122 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1123 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1124 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1125 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1126 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1127 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1128 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1129 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1130 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1131 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1132 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1133 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1134 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1135 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1136 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1137 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1138 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1141 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1143 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1144 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1145 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1146 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1147 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1148 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1149 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1150 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1151 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1152 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1153 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1154 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1155 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1156 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1157 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1158 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1159 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1162 case GL_COLOR_MATRIX_SGI
:
1164 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1165 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1166 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1167 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1168 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1169 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1170 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1171 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1172 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1173 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1174 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1175 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1176 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1177 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1178 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1179 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1180 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1183 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1184 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1186 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1187 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1189 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1190 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1192 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1193 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1195 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1196 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1198 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1199 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1201 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1202 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1204 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1205 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1207 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1208 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1210 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1211 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1213 case GL_CONVOLUTION_1D_EXT
:
1214 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1215 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1217 case GL_CONVOLUTION_2D_EXT
:
1218 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1219 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1221 case GL_SEPARABLE_2D_EXT
:
1222 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1223 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1225 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1226 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1227 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1229 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1230 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1231 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1233 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1234 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1235 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1237 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1238 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1239 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1241 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1242 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1243 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1245 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1246 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1247 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1249 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1250 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1251 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1253 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1254 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1255 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1258 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1259 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1262 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1263 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1265 case GL_COLOR_TABLE_SGI
:
1266 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1267 params
[0] = ctx
->Pixel
.ColorTableEnabled
;
1269 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1270 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1271 params
[0] = ctx
->Pixel
.PostConvolutionColorTableEnabled
;
1273 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1274 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1275 params
[0] = ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
1277 case GL_TEXTURE_COLOR_TABLE_SGI
:
1278 CHECK_EXTENSION_B(SGI_texture_color_table
, pname
);
1279 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1281 case GL_COLOR_SUM_EXT
:
1282 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1283 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1285 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1286 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1288 FLUSH_CURRENT(ctx
, 0);
1289 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1290 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1291 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1292 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1295 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1296 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1297 params
[0] = ctx
->Array
.SecondaryColor
.Enabled
;
1299 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1300 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1301 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Type
);
1303 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1304 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1305 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Stride
);
1307 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1308 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1309 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Size
);
1311 case GL_CURRENT_FOG_COORDINATE_EXT
:
1312 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1314 FLUSH_CURRENT(ctx
, 0);
1315 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1318 case GL_FOG_COORDINATE_ARRAY_EXT
:
1319 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1320 params
[0] = ctx
->Array
.FogCoord
.Enabled
;
1322 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1323 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1324 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.FogCoord
.Type
);
1326 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1327 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1328 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.Stride
);
1330 case GL_FOG_COORDINATE_SOURCE_EXT
:
1331 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1332 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1334 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1335 CHECK_EXTENSION_B(EXT_texture_lod_bias
, pname
);
1336 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1338 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1339 CHECK_EXTENSION_B(EXT_texture_filter_anisotropic
, pname
);
1340 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1342 case GL_MULTISAMPLE_ARB
:
1343 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1344 params
[0] = ctx
->Multisample
.Enabled
;
1346 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1347 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1348 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1350 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1351 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1352 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1354 case GL_SAMPLE_COVERAGE_ARB
:
1355 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1356 params
[0] = ctx
->Multisample
.SampleCoverage
;
1358 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1359 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1360 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1362 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1363 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1364 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1366 case GL_SAMPLE_BUFFERS_ARB
:
1367 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1368 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1370 case GL_SAMPLES_ARB
:
1371 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1372 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1374 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1375 CHECK_EXTENSION_B(IBM_rasterpos_clip
, pname
);
1376 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1378 case GL_POINT_SPRITE_NV
:
1379 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1380 params
[0] = ctx
->Point
.PointSprite
;
1382 case GL_POINT_SPRITE_R_MODE_NV
:
1383 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1384 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1386 case GL_POINT_SPRITE_COORD_ORIGIN
:
1387 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1388 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1390 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1391 CHECK_EXTENSION_B(SGIS_generate_mipmap
, pname
);
1392 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1394 case GL_VERTEX_PROGRAM_NV
:
1395 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1396 params
[0] = ctx
->VertexProgram
.Enabled
;
1398 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
1399 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1400 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1402 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
1403 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1404 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1406 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
1407 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1408 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1410 case GL_MAX_TRACK_MATRICES_NV
:
1411 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1412 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1414 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
1415 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1416 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1418 case GL_CURRENT_MATRIX_NV
:
1419 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1421 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1422 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1423 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1424 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1425 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1426 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1427 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1428 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1429 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1430 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1431 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1432 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1433 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1434 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1435 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1436 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1437 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1440 case GL_VERTEX_PROGRAM_BINDING_NV
:
1441 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1442 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1444 case GL_PROGRAM_ERROR_POSITION_NV
:
1445 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1446 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1448 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1449 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1450 params
[0] = ctx
->Array
.VertexAttrib
[0].Enabled
;
1452 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1453 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1454 params
[0] = ctx
->Array
.VertexAttrib
[1].Enabled
;
1456 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1457 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1458 params
[0] = ctx
->Array
.VertexAttrib
[2].Enabled
;
1460 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1461 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1462 params
[0] = ctx
->Array
.VertexAttrib
[3].Enabled
;
1464 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1465 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1466 params
[0] = ctx
->Array
.VertexAttrib
[4].Enabled
;
1468 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1469 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1470 params
[0] = ctx
->Array
.VertexAttrib
[5].Enabled
;
1472 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1473 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1474 params
[0] = ctx
->Array
.VertexAttrib
[6].Enabled
;
1476 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1477 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1478 params
[0] = ctx
->Array
.VertexAttrib
[7].Enabled
;
1480 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1481 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1482 params
[0] = ctx
->Array
.VertexAttrib
[8].Enabled
;
1484 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1485 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1486 params
[0] = ctx
->Array
.VertexAttrib
[9].Enabled
;
1488 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1489 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1490 params
[0] = ctx
->Array
.VertexAttrib
[10].Enabled
;
1492 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1493 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1494 params
[0] = ctx
->Array
.VertexAttrib
[11].Enabled
;
1496 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1497 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1498 params
[0] = ctx
->Array
.VertexAttrib
[12].Enabled
;
1500 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1501 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1502 params
[0] = ctx
->Array
.VertexAttrib
[13].Enabled
;
1504 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1505 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1506 params
[0] = ctx
->Array
.VertexAttrib
[14].Enabled
;
1508 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1509 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1510 params
[0] = ctx
->Array
.VertexAttrib
[15].Enabled
;
1512 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1513 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1514 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1516 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1517 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1518 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1520 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1521 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1522 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1524 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1525 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1526 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1528 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1529 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1530 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1532 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1533 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1534 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1536 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1537 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1538 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1540 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1541 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1542 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1544 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1545 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1546 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1548 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1549 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1550 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1552 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1553 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1554 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1556 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1557 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1558 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1560 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1561 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1562 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1564 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1565 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1566 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1568 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1569 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1570 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1572 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1573 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1574 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1576 case GL_FRAGMENT_PROGRAM_NV
:
1577 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1578 params
[0] = ctx
->FragmentProgram
.Enabled
;
1580 case GL_MAX_TEXTURE_COORDS_NV
:
1581 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1582 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1584 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
1585 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1586 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1588 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1589 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1590 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1592 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1593 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1594 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1596 case GL_TEXTURE_RECTANGLE_NV
:
1597 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1598 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1600 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1601 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1602 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
1604 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1605 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1606 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1608 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1609 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1610 params
[0] = ctx
->Stencil
.TestTwoSide
;
1612 case GL_ACTIVE_STENCIL_FACE_EXT
:
1613 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1614 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1616 case GL_MAX_SHININESS_NV
:
1617 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1618 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1620 case GL_MAX_SPOT_EXPONENT_NV
:
1621 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1622 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1624 case GL_ARRAY_BUFFER_BINDING_ARB
:
1625 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1626 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1628 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1629 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1630 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.BufferObj
->Name
);
1632 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1633 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1634 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.BufferObj
->Name
);
1636 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1637 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1638 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.BufferObj
->Name
);
1640 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1641 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1642 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.BufferObj
->Name
);
1644 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1645 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1646 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1648 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1649 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1650 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
1652 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1653 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1654 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
1656 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1657 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1658 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.BufferObj
->Name
);
1660 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1661 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1662 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1664 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1665 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1666 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1668 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1669 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1670 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1672 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1673 CHECK_EXTENSION_B(ARB_vertex_program
, pname
);
1674 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1676 case GL_FRAGMENT_PROGRAM_ARB
:
1677 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1678 params
[0] = ctx
->FragmentProgram
.Enabled
;
1680 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1681 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1683 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1684 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1685 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1686 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1687 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1688 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1689 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1690 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1691 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1692 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1693 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1694 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1695 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1696 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1697 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1698 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1699 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1702 case GL_DEPTH_BOUNDS_TEST_EXT
:
1703 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1704 params
[0] = ctx
->Depth
.BoundsTest
;
1706 case GL_DEPTH_BOUNDS_EXT
:
1707 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1708 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1709 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1711 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1712 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1713 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1715 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1716 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1717 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1719 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1720 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1721 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1723 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1724 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1725 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1727 case GL_MAX_DRAW_BUFFERS_ARB
:
1728 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1729 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1731 case GL_DRAW_BUFFER0_ARB
:
1732 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1733 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.DrawBuffer
[0]);
1735 case GL_DRAW_BUFFER1_ARB
:
1736 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1739 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1740 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1743 buffer
= ctx
->Color
.DrawBuffer
[1];
1744 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1747 case GL_DRAW_BUFFER2_ARB
:
1748 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1751 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1752 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1755 buffer
= ctx
->Color
.DrawBuffer
[2];
1756 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1759 case GL_DRAW_BUFFER3_ARB
:
1760 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1763 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1764 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1767 buffer
= ctx
->Color
.DrawBuffer
[3];
1768 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1771 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1772 CHECK_EXTENSION_B(OES_read_format
, pname
);
1773 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1775 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1776 CHECK_EXTENSION_B(OES_read_format
, pname
);
1777 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1779 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1780 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1781 params
[0] = INT_TO_BOOLEAN(6);
1783 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1784 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1785 params
[0] = INT_TO_BOOLEAN(8);
1787 case GL_NUM_PASSES_ATI
:
1788 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1789 params
[0] = INT_TO_BOOLEAN(2);
1791 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1792 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1793 params
[0] = INT_TO_BOOLEAN(8);
1795 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1796 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1797 params
[0] = INT_TO_BOOLEAN(16);
1799 case GL_COLOR_ALPHA_PAIRING_ATI
:
1800 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1801 params
[0] = GL_TRUE
;
1803 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1804 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1805 params
[0] = INT_TO_BOOLEAN(3);
1807 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1808 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1809 params
[0] = INT_TO_BOOLEAN(3);
1811 case GL_STENCIL_BACK_FUNC
:
1812 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1814 case GL_STENCIL_BACK_VALUE_MASK
:
1815 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1817 case GL_STENCIL_BACK_REF
:
1818 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1820 case GL_STENCIL_BACK_FAIL
:
1821 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1823 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1824 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1826 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1827 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1829 case GL_FRAMEBUFFER_BINDING_EXT
:
1830 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1831 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1833 case GL_RENDERBUFFER_BINDING_EXT
:
1834 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1835 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1837 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1838 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1839 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1841 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1842 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1843 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1845 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1846 CHECK_EXTENSION_B(ARB_fragment_shader
, pname
);
1847 params
[0] = INT_TO_BOOLEAN(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
1849 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1850 CHECK_EXTENSION_B(ARB_fragment_shader
, pname
);
1851 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1853 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1854 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1855 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_UNIFORM_COMPONENTS
);
1857 case GL_MAX_VARYING_FLOATS_ARB
:
1858 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1859 params
[0] = INT_TO_BOOLEAN(MAX_VARYING_FLOATS
);
1861 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1862 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1863 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
1865 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1866 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1867 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1870 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1875 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1877 GET_CURRENT_CONTEXT(ctx
);
1878 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1884 _mesa_update_state(ctx
);
1886 if (ctx
->Driver
.GetFloatv
&&
1887 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1891 case GL_ACCUM_RED_BITS
:
1892 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1894 case GL_ACCUM_GREEN_BITS
:
1895 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1897 case GL_ACCUM_BLUE_BITS
:
1898 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1900 case GL_ACCUM_ALPHA_BITS
:
1901 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1903 case GL_ACCUM_CLEAR_VALUE
:
1904 params
[0] = ctx
->Accum
.ClearColor
[0];
1905 params
[1] = ctx
->Accum
.ClearColor
[1];
1906 params
[2] = ctx
->Accum
.ClearColor
[2];
1907 params
[3] = ctx
->Accum
.ClearColor
[3];
1910 params
[0] = ctx
->Pixel
.AlphaBias
;
1913 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1915 case GL_ALPHA_SCALE
:
1916 params
[0] = ctx
->Pixel
.AlphaScale
;
1919 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1921 case GL_ALPHA_TEST_FUNC
:
1922 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1924 case GL_ALPHA_TEST_REF
:
1925 params
[0] = ctx
->Color
.AlphaRef
;
1927 case GL_ATTRIB_STACK_DEPTH
:
1928 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1930 case GL_AUTO_NORMAL
:
1931 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1933 case GL_AUX_BUFFERS
:
1934 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1937 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1940 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1943 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1945 case GL_BLEND_SRC_RGB_EXT
:
1946 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1948 case GL_BLEND_DST_RGB_EXT
:
1949 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1951 case GL_BLEND_SRC_ALPHA_EXT
:
1952 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1954 case GL_BLEND_DST_ALPHA_EXT
:
1955 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1957 case GL_BLEND_EQUATION
:
1958 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1960 case GL_BLEND_EQUATION_ALPHA_EXT
:
1961 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1963 case GL_BLEND_COLOR_EXT
:
1964 params
[0] = ctx
->Color
.BlendColor
[0];
1965 params
[1] = ctx
->Color
.BlendColor
[1];
1966 params
[2] = ctx
->Color
.BlendColor
[2];
1967 params
[3] = ctx
->Color
.BlendColor
[3];
1970 params
[0] = ctx
->Pixel
.BlueBias
;
1973 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
1976 params
[0] = ctx
->Pixel
.BlueScale
;
1978 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
1979 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
1981 case GL_CLIP_PLANE0
:
1982 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
1984 case GL_CLIP_PLANE1
:
1985 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
1987 case GL_CLIP_PLANE2
:
1988 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
1990 case GL_CLIP_PLANE3
:
1991 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
1993 case GL_CLIP_PLANE4
:
1994 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
1996 case GL_CLIP_PLANE5
:
1997 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
1999 case GL_COLOR_CLEAR_VALUE
:
2000 params
[0] = ctx
->Color
.ClearColor
[0];
2001 params
[1] = ctx
->Color
.ClearColor
[1];
2002 params
[2] = ctx
->Color
.ClearColor
[2];
2003 params
[3] = ctx
->Color
.ClearColor
[3];
2005 case GL_COLOR_MATERIAL
:
2006 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2008 case GL_COLOR_MATERIAL_FACE
:
2009 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2011 case GL_COLOR_MATERIAL_PARAMETER
:
2012 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2014 case GL_COLOR_WRITEMASK
:
2015 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2016 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2017 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2018 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2021 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2023 case GL_CULL_FACE_MODE
:
2024 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2026 case GL_CURRENT_COLOR
:
2028 FLUSH_CURRENT(ctx
, 0);
2029 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2030 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2031 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2032 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2035 case GL_CURRENT_INDEX
:
2037 FLUSH_CURRENT(ctx
, 0);
2038 params
[0] = ctx
->Current
.Index
;
2041 case GL_CURRENT_NORMAL
:
2043 FLUSH_CURRENT(ctx
, 0);
2044 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2045 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2046 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2049 case GL_CURRENT_RASTER_COLOR
:
2050 params
[0] = ctx
->Current
.RasterColor
[0];
2051 params
[1] = ctx
->Current
.RasterColor
[1];
2052 params
[2] = ctx
->Current
.RasterColor
[2];
2053 params
[3] = ctx
->Current
.RasterColor
[3];
2055 case GL_CURRENT_RASTER_DISTANCE
:
2056 params
[0] = ctx
->Current
.RasterDistance
;
2058 case GL_CURRENT_RASTER_INDEX
:
2059 params
[0] = ctx
->Current
.RasterIndex
;
2061 case GL_CURRENT_RASTER_POSITION
:
2062 params
[0] = ctx
->Current
.RasterPos
[0];
2063 params
[1] = ctx
->Current
.RasterPos
[1];
2064 params
[2] = ctx
->Current
.RasterPos
[2];
2065 params
[3] = ctx
->Current
.RasterPos
[3];
2067 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2069 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2070 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2071 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2072 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2073 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2076 case GL_CURRENT_RASTER_POSITION_VALID
:
2077 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2079 case GL_CURRENT_TEXTURE_COORDS
:
2081 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2082 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2083 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2084 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2085 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2089 params
[0] = ctx
->Pixel
.DepthBias
;
2092 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2094 case GL_DEPTH_CLEAR_VALUE
:
2095 params
[0] = ctx
->Depth
.Clear
;
2098 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2100 case GL_DEPTH_RANGE
:
2101 params
[0] = ctx
->Viewport
.Near
;
2102 params
[1] = ctx
->Viewport
.Far
;
2104 case GL_DEPTH_SCALE
:
2105 params
[0] = ctx
->Pixel
.DepthScale
;
2108 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2110 case GL_DEPTH_WRITEMASK
:
2111 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2114 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2116 case GL_DOUBLEBUFFER
:
2117 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2119 case GL_DRAW_BUFFER
:
2120 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
2124 FLUSH_CURRENT(ctx
, 0);
2125 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.EdgeFlag
);
2128 case GL_FEEDBACK_BUFFER_SIZE
:
2129 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2131 case GL_FEEDBACK_BUFFER_TYPE
:
2132 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2135 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2138 params
[0] = ctx
->Fog
.Color
[0];
2139 params
[1] = ctx
->Fog
.Color
[1];
2140 params
[2] = ctx
->Fog
.Color
[2];
2141 params
[3] = ctx
->Fog
.Color
[3];
2143 case GL_FOG_DENSITY
:
2144 params
[0] = ctx
->Fog
.Density
;
2147 params
[0] = ctx
->Fog
.End
;
2150 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2153 params
[0] = ctx
->Fog
.Index
;
2156 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2159 params
[0] = ctx
->Fog
.Start
;
2162 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2165 params
[0] = ctx
->Pixel
.GreenBias
;
2168 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2170 case GL_GREEN_SCALE
:
2171 params
[0] = ctx
->Pixel
.GreenScale
;
2174 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2176 case GL_INDEX_CLEAR_VALUE
:
2177 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2180 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2182 case GL_INDEX_OFFSET
:
2183 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2185 case GL_INDEX_SHIFT
:
2186 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2188 case GL_INDEX_WRITEMASK
:
2189 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2192 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2195 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2198 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2201 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2204 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2207 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2210 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2213 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2216 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2218 case GL_LIGHT_MODEL_AMBIENT
:
2219 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2220 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2221 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2222 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2224 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2225 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2227 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2228 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2230 case GL_LIGHT_MODEL_TWO_SIDE
:
2231 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2233 case GL_LINE_SMOOTH
:
2234 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2236 case GL_LINE_SMOOTH_HINT
:
2237 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2239 case GL_LINE_STIPPLE
:
2240 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2242 case GL_LINE_STIPPLE_PATTERN
:
2243 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2245 case GL_LINE_STIPPLE_REPEAT
:
2246 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2249 params
[0] = ctx
->Line
.Width
;
2251 case GL_LINE_WIDTH_GRANULARITY
:
2252 params
[0] = ctx
->Const
.LineWidthGranularity
;
2254 case GL_LINE_WIDTH_RANGE
:
2255 params
[0] = ctx
->Const
.MinLineWidthAA
;
2256 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2258 case GL_ALIASED_LINE_WIDTH_RANGE
:
2259 params
[0] = ctx
->Const
.MinLineWidth
;
2260 params
[1] = ctx
->Const
.MaxLineWidth
;
2263 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2266 params
[0] = (GLfloat
)(ctx
->ListState
.CurrentListNum
);
2271 if (!ctx
->CompileFlag
)
2273 else if (ctx
->ExecuteFlag
)
2274 mode
= GL_COMPILE_AND_EXECUTE
;
2277 params
[0] = ENUM_TO_FLOAT(mode
);
2280 case GL_INDEX_LOGIC_OP
:
2281 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2283 case GL_COLOR_LOGIC_OP
:
2284 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2286 case GL_LOGIC_OP_MODE
:
2287 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2289 case GL_MAP1_COLOR_4
:
2290 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2292 case GL_MAP1_GRID_DOMAIN
:
2293 params
[0] = ctx
->Eval
.MapGrid1u1
;
2294 params
[1] = ctx
->Eval
.MapGrid1u2
;
2296 case GL_MAP1_GRID_SEGMENTS
:
2297 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2300 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2302 case GL_MAP1_NORMAL
:
2303 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2305 case GL_MAP1_TEXTURE_COORD_1
:
2306 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2308 case GL_MAP1_TEXTURE_COORD_2
:
2309 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2311 case GL_MAP1_TEXTURE_COORD_3
:
2312 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2314 case GL_MAP1_TEXTURE_COORD_4
:
2315 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2317 case GL_MAP1_VERTEX_3
:
2318 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2320 case GL_MAP1_VERTEX_4
:
2321 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2323 case GL_MAP2_COLOR_4
:
2324 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2326 case GL_MAP2_GRID_DOMAIN
:
2327 params
[0] = ctx
->Eval
.MapGrid2u1
;
2328 params
[1] = ctx
->Eval
.MapGrid2u2
;
2329 params
[2] = ctx
->Eval
.MapGrid2v1
;
2330 params
[3] = ctx
->Eval
.MapGrid2v2
;
2332 case GL_MAP2_GRID_SEGMENTS
:
2333 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2334 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2339 case GL_MAP2_NORMAL
:
2340 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2342 case GL_MAP2_TEXTURE_COORD_1
:
2343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2345 case GL_MAP2_TEXTURE_COORD_2
:
2346 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2348 case GL_MAP2_TEXTURE_COORD_3
:
2349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2351 case GL_MAP2_TEXTURE_COORD_4
:
2352 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2354 case GL_MAP2_VERTEX_3
:
2355 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2357 case GL_MAP2_VERTEX_4
:
2358 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2363 case GL_MAP_STENCIL
:
2364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2366 case GL_MATRIX_MODE
:
2367 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2369 case GL_MAX_ATTRIB_STACK_DEPTH
:
2370 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2372 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2373 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2375 case GL_MAX_CLIP_PLANES
:
2376 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2378 case GL_MAX_ELEMENTS_VERTICES
:
2379 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2381 case GL_MAX_ELEMENTS_INDICES
:
2382 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2384 case GL_MAX_EVAL_ORDER
:
2385 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2388 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2390 case GL_MAX_LIST_NESTING
:
2391 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2393 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2394 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2396 case GL_MAX_NAME_STACK_DEPTH
:
2397 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2399 case GL_MAX_PIXEL_MAP_TABLE
:
2400 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2402 case GL_MAX_PROJECTION_STACK_DEPTH
:
2403 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2405 case GL_MAX_TEXTURE_SIZE
:
2406 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2408 case GL_MAX_3D_TEXTURE_SIZE
:
2409 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2411 case GL_MAX_TEXTURE_STACK_DEPTH
:
2412 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2414 case GL_MAX_VIEWPORT_DIMS
:
2415 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2416 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2418 case GL_MODELVIEW_MATRIX
:
2420 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2421 params
[0] = matrix
[0];
2422 params
[1] = matrix
[1];
2423 params
[2] = matrix
[2];
2424 params
[3] = matrix
[3];
2425 params
[4] = matrix
[4];
2426 params
[5] = matrix
[5];
2427 params
[6] = matrix
[6];
2428 params
[7] = matrix
[7];
2429 params
[8] = matrix
[8];
2430 params
[9] = matrix
[9];
2431 params
[10] = matrix
[10];
2432 params
[11] = matrix
[11];
2433 params
[12] = matrix
[12];
2434 params
[13] = matrix
[13];
2435 params
[14] = matrix
[14];
2436 params
[15] = matrix
[15];
2439 case GL_MODELVIEW_STACK_DEPTH
:
2440 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2442 case GL_NAME_STACK_DEPTH
:
2443 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2446 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2448 case GL_PACK_ALIGNMENT
:
2449 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2451 case GL_PACK_LSB_FIRST
:
2452 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2454 case GL_PACK_ROW_LENGTH
:
2455 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2457 case GL_PACK_SKIP_PIXELS
:
2458 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2460 case GL_PACK_SKIP_ROWS
:
2461 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2463 case GL_PACK_SWAP_BYTES
:
2464 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2466 case GL_PACK_SKIP_IMAGES_EXT
:
2467 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2469 case GL_PACK_IMAGE_HEIGHT_EXT
:
2470 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2472 case GL_PACK_INVERT_MESA
:
2473 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2475 case GL_PERSPECTIVE_CORRECTION_HINT
:
2476 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2478 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2479 params
[0] = (GLfloat
)(ctx
->Pixel
.MapAtoAsize
);
2481 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2482 params
[0] = (GLfloat
)(ctx
->Pixel
.MapBtoBsize
);
2484 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2485 params
[0] = (GLfloat
)(ctx
->Pixel
.MapGtoGsize
);
2487 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2488 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoAsize
);
2490 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2491 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoBsize
);
2493 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2494 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoGsize
);
2496 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2497 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoIsize
);
2499 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2500 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoRsize
);
2502 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2503 params
[0] = (GLfloat
)(ctx
->Pixel
.MapRtoRsize
);
2505 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2506 params
[0] = (GLfloat
)(ctx
->Pixel
.MapStoSsize
);
2509 params
[0] = ctx
->Point
.Size
;
2511 case GL_POINT_SIZE_GRANULARITY
:
2512 params
[0] = ctx
->Const
.PointSizeGranularity
;
2514 case GL_POINT_SIZE_RANGE
:
2515 params
[0] = ctx
->Const
.MinPointSizeAA
;
2516 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2518 case GL_ALIASED_POINT_SIZE_RANGE
:
2519 params
[0] = ctx
->Const
.MinPointSize
;
2520 params
[1] = ctx
->Const
.MaxPointSize
;
2522 case GL_POINT_SMOOTH
:
2523 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2525 case GL_POINT_SMOOTH_HINT
:
2526 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2528 case GL_POINT_SIZE_MIN_EXT
:
2529 params
[0] = ctx
->Point
.MinSize
;
2531 case GL_POINT_SIZE_MAX_EXT
:
2532 params
[0] = ctx
->Point
.MaxSize
;
2534 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2535 params
[0] = ctx
->Point
.Threshold
;
2537 case GL_DISTANCE_ATTENUATION_EXT
:
2538 params
[0] = ctx
->Point
.Params
[0];
2539 params
[1] = ctx
->Point
.Params
[1];
2540 params
[2] = ctx
->Point
.Params
[2];
2542 case GL_POLYGON_MODE
:
2543 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2544 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2546 case GL_POLYGON_OFFSET_BIAS_EXT
:
2547 params
[0] = ctx
->Polygon
.OffsetUnits
;
2549 case GL_POLYGON_OFFSET_FACTOR
:
2550 params
[0] = ctx
->Polygon
.OffsetFactor
;
2552 case GL_POLYGON_OFFSET_UNITS
:
2553 params
[0] = ctx
->Polygon
.OffsetUnits
;
2555 case GL_POLYGON_SMOOTH
:
2556 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2558 case GL_POLYGON_SMOOTH_HINT
:
2559 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2561 case GL_POLYGON_STIPPLE
:
2562 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2564 case GL_PROJECTION_MATRIX
:
2566 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2567 params
[0] = matrix
[0];
2568 params
[1] = matrix
[1];
2569 params
[2] = matrix
[2];
2570 params
[3] = matrix
[3];
2571 params
[4] = matrix
[4];
2572 params
[5] = matrix
[5];
2573 params
[6] = matrix
[6];
2574 params
[7] = matrix
[7];
2575 params
[8] = matrix
[8];
2576 params
[9] = matrix
[9];
2577 params
[10] = matrix
[10];
2578 params
[11] = matrix
[11];
2579 params
[12] = matrix
[12];
2580 params
[13] = matrix
[13];
2581 params
[14] = matrix
[14];
2582 params
[15] = matrix
[15];
2585 case GL_PROJECTION_STACK_DEPTH
:
2586 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2588 case GL_READ_BUFFER
:
2589 params
[0] = ENUM_TO_FLOAT(ctx
->Pixel
.ReadBuffer
);
2592 params
[0] = ctx
->Pixel
.RedBias
;
2595 params
[0] = (GLfloat
)( ctx
->DrawBuffer
->Visual
.redBits
);
2598 params
[0] = ctx
->Pixel
.RedScale
;
2600 case GL_RENDER_MODE
:
2601 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2603 case GL_RESCALE_NORMAL
:
2604 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2607 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2609 case GL_SCISSOR_BOX
:
2610 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2611 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2612 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2613 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2615 case GL_SCISSOR_TEST
:
2616 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2618 case GL_SELECTION_BUFFER_SIZE
:
2619 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2621 case GL_SHADE_MODEL
:
2622 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2624 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2625 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2627 case GL_STENCIL_BITS
:
2628 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2630 case GL_STENCIL_CLEAR_VALUE
:
2631 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2633 case GL_STENCIL_FAIL
:
2634 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2636 case GL_STENCIL_FUNC
:
2637 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2639 case GL_STENCIL_PASS_DEPTH_FAIL
:
2640 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2642 case GL_STENCIL_PASS_DEPTH_PASS
:
2643 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2645 case GL_STENCIL_REF
:
2646 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2648 case GL_STENCIL_TEST
:
2649 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2651 case GL_STENCIL_VALUE_MASK
:
2652 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2654 case GL_STENCIL_WRITEMASK
:
2655 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2658 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2660 case GL_SUBPIXEL_BITS
:
2661 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2664 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2667 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2670 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2672 case GL_TEXTURE_BINDING_1D
:
2673 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
2675 case GL_TEXTURE_BINDING_2D
:
2676 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2678 case GL_TEXTURE_BINDING_3D
:
2679 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
2681 case GL_TEXTURE_ENV_COLOR
:
2683 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
2684 params
[0] = color
[0];
2685 params
[1] = color
[1];
2686 params
[2] = color
[2];
2687 params
[3] = color
[3];
2690 case GL_TEXTURE_ENV_MODE
:
2691 params
[0] = ENUM_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
2693 case GL_TEXTURE_GEN_S
:
2694 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2696 case GL_TEXTURE_GEN_T
:
2697 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2699 case GL_TEXTURE_GEN_R
:
2700 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2702 case GL_TEXTURE_GEN_Q
:
2703 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2705 case GL_TEXTURE_MATRIX
:
2707 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2708 params
[0] = matrix
[0];
2709 params
[1] = matrix
[1];
2710 params
[2] = matrix
[2];
2711 params
[3] = matrix
[3];
2712 params
[4] = matrix
[4];
2713 params
[5] = matrix
[5];
2714 params
[6] = matrix
[6];
2715 params
[7] = matrix
[7];
2716 params
[8] = matrix
[8];
2717 params
[9] = matrix
[9];
2718 params
[10] = matrix
[10];
2719 params
[11] = matrix
[11];
2720 params
[12] = matrix
[12];
2721 params
[13] = matrix
[13];
2722 params
[14] = matrix
[14];
2723 params
[15] = matrix
[15];
2726 case GL_TEXTURE_STACK_DEPTH
:
2727 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2729 case GL_UNPACK_ALIGNMENT
:
2730 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2732 case GL_UNPACK_LSB_FIRST
:
2733 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2735 case GL_UNPACK_ROW_LENGTH
:
2736 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2738 case GL_UNPACK_SKIP_PIXELS
:
2739 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2741 case GL_UNPACK_SKIP_ROWS
:
2742 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2744 case GL_UNPACK_SWAP_BYTES
:
2745 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2747 case GL_UNPACK_SKIP_IMAGES_EXT
:
2748 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2750 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2751 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2753 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2754 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2757 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2758 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2759 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2760 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2763 params
[0] = ctx
->Pixel
.ZoomX
;
2766 params
[0] = ctx
->Pixel
.ZoomY
;
2768 case GL_VERTEX_ARRAY
:
2769 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Vertex
.Enabled
);
2771 case GL_VERTEX_ARRAY_SIZE
:
2772 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Size
);
2774 case GL_VERTEX_ARRAY_TYPE
:
2775 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Vertex
.Type
);
2777 case GL_VERTEX_ARRAY_STRIDE
:
2778 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Stride
);
2780 case GL_VERTEX_ARRAY_COUNT_EXT
:
2781 params
[0] = (GLfloat
)(0);
2783 case GL_NORMAL_ARRAY
:
2784 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Enabled
);
2786 case GL_NORMAL_ARRAY_TYPE
:
2787 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Type
);
2789 case GL_NORMAL_ARRAY_STRIDE
:
2790 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.Stride
);
2792 case GL_NORMAL_ARRAY_COUNT_EXT
:
2793 params
[0] = (GLfloat
)(0);
2795 case GL_COLOR_ARRAY
:
2796 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Color
.Enabled
);
2798 case GL_COLOR_ARRAY_SIZE
:
2799 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Size
);
2801 case GL_COLOR_ARRAY_TYPE
:
2802 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Color
.Type
);
2804 case GL_COLOR_ARRAY_STRIDE
:
2805 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Stride
);
2807 case GL_COLOR_ARRAY_COUNT_EXT
:
2808 params
[0] = (GLfloat
)(0);
2810 case GL_INDEX_ARRAY
:
2811 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Index
.Enabled
);
2813 case GL_INDEX_ARRAY_TYPE
:
2814 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Index
.Type
);
2816 case GL_INDEX_ARRAY_STRIDE
:
2817 params
[0] = (GLfloat
)(ctx
->Array
.Index
.Stride
);
2819 case GL_INDEX_ARRAY_COUNT_EXT
:
2820 params
[0] = (GLfloat
)(0);
2822 case GL_TEXTURE_COORD_ARRAY
:
2823 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2825 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2826 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2828 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2829 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2831 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2832 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2834 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2835 params
[0] = (GLfloat
)(0);
2837 case GL_EDGE_FLAG_ARRAY
:
2838 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.EdgeFlag
.Enabled
);
2840 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2841 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.Stride
);
2843 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2844 params
[0] = (GLfloat
)(0);
2846 case GL_MAX_TEXTURE_UNITS_ARB
:
2847 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2848 params
[0] = (GLfloat
)(MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
));
2850 case GL_ACTIVE_TEXTURE_ARB
:
2851 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2852 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2854 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2855 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2856 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2858 case GL_TEXTURE_CUBE_MAP_ARB
:
2859 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2860 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2862 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2863 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2864 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
2866 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2867 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2868 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2870 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2871 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2872 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2874 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2875 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2876 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
));
2878 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2879 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2882 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
2884 for (i
= 0; i
< n
; i
++)
2885 params
[i
] = ENUM_TO_INT(formats
[i
]);
2888 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2889 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2890 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2892 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2893 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2894 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2896 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2898 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2899 params
[0] = matrix
[0];
2900 params
[1] = matrix
[4];
2901 params
[2] = matrix
[8];
2902 params
[3] = matrix
[12];
2903 params
[4] = matrix
[1];
2904 params
[5] = matrix
[5];
2905 params
[6] = matrix
[9];
2906 params
[7] = matrix
[13];
2907 params
[8] = matrix
[2];
2908 params
[9] = matrix
[6];
2909 params
[10] = matrix
[10];
2910 params
[11] = matrix
[14];
2911 params
[12] = matrix
[3];
2912 params
[13] = matrix
[7];
2913 params
[14] = matrix
[11];
2914 params
[15] = matrix
[15];
2917 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2919 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2920 params
[0] = matrix
[0];
2921 params
[1] = matrix
[4];
2922 params
[2] = matrix
[8];
2923 params
[3] = matrix
[12];
2924 params
[4] = matrix
[1];
2925 params
[5] = matrix
[5];
2926 params
[6] = matrix
[9];
2927 params
[7] = matrix
[13];
2928 params
[8] = matrix
[2];
2929 params
[9] = matrix
[6];
2930 params
[10] = matrix
[10];
2931 params
[11] = matrix
[14];
2932 params
[12] = matrix
[3];
2933 params
[13] = matrix
[7];
2934 params
[14] = matrix
[11];
2935 params
[15] = matrix
[15];
2938 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2940 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2941 params
[0] = matrix
[0];
2942 params
[1] = matrix
[4];
2943 params
[2] = matrix
[8];
2944 params
[3] = matrix
[12];
2945 params
[4] = matrix
[1];
2946 params
[5] = matrix
[5];
2947 params
[6] = matrix
[9];
2948 params
[7] = matrix
[13];
2949 params
[8] = matrix
[2];
2950 params
[9] = matrix
[6];
2951 params
[10] = matrix
[10];
2952 params
[11] = matrix
[14];
2953 params
[12] = matrix
[3];
2954 params
[13] = matrix
[7];
2955 params
[14] = matrix
[11];
2956 params
[15] = matrix
[15];
2959 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2961 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2962 params
[0] = matrix
[0];
2963 params
[1] = matrix
[4];
2964 params
[2] = matrix
[8];
2965 params
[3] = matrix
[12];
2966 params
[4] = matrix
[1];
2967 params
[5] = matrix
[5];
2968 params
[6] = matrix
[9];
2969 params
[7] = matrix
[13];
2970 params
[8] = matrix
[2];
2971 params
[9] = matrix
[6];
2972 params
[10] = matrix
[10];
2973 params
[11] = matrix
[14];
2974 params
[12] = matrix
[3];
2975 params
[13] = matrix
[7];
2976 params
[14] = matrix
[11];
2977 params
[15] = matrix
[15];
2980 case GL_COLOR_MATRIX_SGI
:
2982 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2983 params
[0] = matrix
[0];
2984 params
[1] = matrix
[1];
2985 params
[2] = matrix
[2];
2986 params
[3] = matrix
[3];
2987 params
[4] = matrix
[4];
2988 params
[5] = matrix
[5];
2989 params
[6] = matrix
[6];
2990 params
[7] = matrix
[7];
2991 params
[8] = matrix
[8];
2992 params
[9] = matrix
[9];
2993 params
[10] = matrix
[10];
2994 params
[11] = matrix
[11];
2995 params
[12] = matrix
[12];
2996 params
[13] = matrix
[13];
2997 params
[14] = matrix
[14];
2998 params
[15] = matrix
[15];
3001 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3002 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3004 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3005 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3007 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3008 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3010 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3011 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3013 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3014 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3016 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3017 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3019 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3020 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3022 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3023 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3025 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3026 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3028 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3029 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3031 case GL_CONVOLUTION_1D_EXT
:
3032 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3033 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3035 case GL_CONVOLUTION_2D_EXT
:
3036 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3037 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3039 case GL_SEPARABLE_2D_EXT
:
3040 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3041 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3043 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3044 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3045 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3047 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3048 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3049 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3051 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3052 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3053 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3055 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3056 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3057 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3059 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3060 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3061 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3063 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3064 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3065 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3067 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3068 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3069 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3071 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3072 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3073 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3076 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3077 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3080 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3081 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3083 case GL_COLOR_TABLE_SGI
:
3084 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3085 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
);
3087 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3088 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3089 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
3091 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3092 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3093 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
3095 case GL_TEXTURE_COLOR_TABLE_SGI
:
3096 CHECK_EXTENSION_F(SGI_texture_color_table
, pname
);
3097 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3099 case GL_COLOR_SUM_EXT
:
3100 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3101 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3103 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3104 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3106 FLUSH_CURRENT(ctx
, 0);
3107 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3108 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3109 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3110 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3113 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3114 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3115 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.SecondaryColor
.Enabled
);
3117 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3118 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3119 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.SecondaryColor
.Type
);
3121 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3122 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3123 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Stride
);
3125 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3126 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3127 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Size
);
3129 case GL_CURRENT_FOG_COORDINATE_EXT
:
3130 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3132 FLUSH_CURRENT(ctx
, 0);
3133 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3136 case GL_FOG_COORDINATE_ARRAY_EXT
:
3137 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3138 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.FogCoord
.Enabled
);
3140 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3141 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3142 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.FogCoord
.Type
);
3144 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3145 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3146 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.Stride
);
3148 case GL_FOG_COORDINATE_SOURCE_EXT
:
3149 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3150 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3152 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3153 CHECK_EXTENSION_F(EXT_texture_lod_bias
, pname
);
3154 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3156 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3157 CHECK_EXTENSION_F(EXT_texture_filter_anisotropic
, pname
);
3158 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3160 case GL_MULTISAMPLE_ARB
:
3161 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3162 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3164 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3165 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3166 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3168 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3169 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3170 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3172 case GL_SAMPLE_COVERAGE_ARB
:
3173 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3174 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3176 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3177 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3178 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3180 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3181 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3182 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3184 case GL_SAMPLE_BUFFERS_ARB
:
3185 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3186 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3188 case GL_SAMPLES_ARB
:
3189 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3190 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3192 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3193 CHECK_EXTENSION_F(IBM_rasterpos_clip
, pname
);
3194 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3196 case GL_POINT_SPRITE_NV
:
3197 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3198 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3200 case GL_POINT_SPRITE_R_MODE_NV
:
3201 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3202 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3204 case GL_POINT_SPRITE_COORD_ORIGIN
:
3205 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3206 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3208 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3209 CHECK_EXTENSION_F(SGIS_generate_mipmap
, pname
);
3210 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3212 case GL_VERTEX_PROGRAM_NV
:
3213 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3214 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3216 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
3217 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3218 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3220 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
3221 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3222 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3224 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
3225 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3226 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3228 case GL_MAX_TRACK_MATRICES_NV
:
3229 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3230 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3232 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
3233 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3234 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3236 case GL_CURRENT_MATRIX_NV
:
3237 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3239 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3240 params
[0] = matrix
[0];
3241 params
[1] = matrix
[1];
3242 params
[2] = matrix
[2];
3243 params
[3] = matrix
[3];
3244 params
[4] = matrix
[4];
3245 params
[5] = matrix
[5];
3246 params
[6] = matrix
[6];
3247 params
[7] = matrix
[7];
3248 params
[8] = matrix
[8];
3249 params
[9] = matrix
[9];
3250 params
[10] = matrix
[10];
3251 params
[11] = matrix
[11];
3252 params
[12] = matrix
[12];
3253 params
[13] = matrix
[13];
3254 params
[14] = matrix
[14];
3255 params
[15] = matrix
[15];
3258 case GL_VERTEX_PROGRAM_BINDING_NV
:
3259 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3260 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3262 case GL_PROGRAM_ERROR_POSITION_NV
:
3263 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3264 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3266 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3267 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3268 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[0].Enabled
);
3270 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3271 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3272 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[1].Enabled
);
3274 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3275 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3276 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[2].Enabled
);
3278 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3279 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3280 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[3].Enabled
);
3282 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3283 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3284 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[4].Enabled
);
3286 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3287 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3288 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[5].Enabled
);
3290 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3291 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3292 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[6].Enabled
);
3294 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3295 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3296 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[7].Enabled
);
3298 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3299 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3300 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[8].Enabled
);
3302 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3303 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3304 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[9].Enabled
);
3306 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3307 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3308 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[10].Enabled
);
3310 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3311 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3312 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[11].Enabled
);
3314 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3315 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3316 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[12].Enabled
);
3318 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3319 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3320 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[13].Enabled
);
3322 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3323 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3324 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[14].Enabled
);
3326 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3327 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[15].Enabled
);
3330 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3331 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3332 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3334 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3335 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3336 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3338 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3339 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3340 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3342 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3343 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3344 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3346 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3347 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3348 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3350 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3351 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3352 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3354 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3355 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3356 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3358 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3359 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3360 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3362 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3363 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3366 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3367 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3370 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3371 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3372 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3374 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3375 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3376 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3378 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3379 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3380 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3382 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3383 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3384 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3386 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3387 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3388 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3390 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3391 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3392 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3394 case GL_FRAGMENT_PROGRAM_NV
:
3395 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3396 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3398 case GL_MAX_TEXTURE_COORDS_NV
:
3399 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3400 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3402 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
3403 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3404 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3406 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3407 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3408 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3410 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3411 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3412 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3414 case GL_TEXTURE_RECTANGLE_NV
:
3415 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3416 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3418 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3419 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3420 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3422 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3423 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3424 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3426 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3427 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3428 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3430 case GL_ACTIVE_STENCIL_FACE_EXT
:
3431 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3432 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3434 case GL_MAX_SHININESS_NV
:
3435 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3436 params
[0] = ctx
->Const
.MaxShininess
;
3438 case GL_MAX_SPOT_EXPONENT_NV
:
3439 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3440 params
[0] = ctx
->Const
.MaxSpotExponent
;
3442 case GL_ARRAY_BUFFER_BINDING_ARB
:
3443 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3444 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3446 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3447 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3448 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.BufferObj
->Name
);
3450 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3451 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3452 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.BufferObj
->Name
);
3454 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3455 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3456 params
[0] = (GLfloat
)(ctx
->Array
.Color
.BufferObj
->Name
);
3458 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3459 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3460 params
[0] = (GLfloat
)(ctx
->Array
.Index
.BufferObj
->Name
);
3462 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3463 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3464 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3466 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3467 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3468 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
3470 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3471 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3472 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
3474 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3475 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3476 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.BufferObj
->Name
);
3478 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3479 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3480 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3482 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3483 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3484 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3486 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3487 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3488 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3490 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3491 CHECK_EXTENSION_F(ARB_vertex_program
, pname
);
3492 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3494 case GL_FRAGMENT_PROGRAM_ARB
:
3495 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3496 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3498 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3499 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3501 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3502 params
[0] = matrix
[0];
3503 params
[1] = matrix
[4];
3504 params
[2] = matrix
[8];
3505 params
[3] = matrix
[12];
3506 params
[4] = matrix
[1];
3507 params
[5] = matrix
[5];
3508 params
[6] = matrix
[9];
3509 params
[7] = matrix
[13];
3510 params
[8] = matrix
[2];
3511 params
[9] = matrix
[6];
3512 params
[10] = matrix
[10];
3513 params
[11] = matrix
[14];
3514 params
[12] = matrix
[3];
3515 params
[13] = matrix
[7];
3516 params
[14] = matrix
[11];
3517 params
[15] = matrix
[15];
3520 case GL_DEPTH_BOUNDS_TEST_EXT
:
3521 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3522 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3524 case GL_DEPTH_BOUNDS_EXT
:
3525 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3526 params
[0] = ctx
->Depth
.BoundsMin
;
3527 params
[1] = ctx
->Depth
.BoundsMax
;
3529 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3530 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3531 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3533 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3534 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3535 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3537 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3538 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3539 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3541 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3542 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3543 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3545 case GL_MAX_DRAW_BUFFERS_ARB
:
3546 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3547 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3549 case GL_DRAW_BUFFER0_ARB
:
3550 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3551 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
3553 case GL_DRAW_BUFFER1_ARB
:
3554 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3557 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3558 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3561 buffer
= ctx
->Color
.DrawBuffer
[1];
3562 params
[0] = ENUM_TO_FLOAT(buffer
);
3565 case GL_DRAW_BUFFER2_ARB
:
3566 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3569 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3570 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3573 buffer
= ctx
->Color
.DrawBuffer
[2];
3574 params
[0] = ENUM_TO_FLOAT(buffer
);
3577 case GL_DRAW_BUFFER3_ARB
:
3578 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3581 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3582 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3585 buffer
= ctx
->Color
.DrawBuffer
[3];
3586 params
[0] = ENUM_TO_FLOAT(buffer
);
3589 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3590 CHECK_EXTENSION_F(OES_read_format
, pname
);
3591 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3593 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3594 CHECK_EXTENSION_F(OES_read_format
, pname
);
3595 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3597 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3598 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3599 params
[0] = (GLfloat
)(6);
3601 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3602 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3603 params
[0] = (GLfloat
)(8);
3605 case GL_NUM_PASSES_ATI
:
3606 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3607 params
[0] = (GLfloat
)(2);
3609 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3610 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3611 params
[0] = (GLfloat
)(8);
3613 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3614 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3615 params
[0] = (GLfloat
)(16);
3617 case GL_COLOR_ALPHA_PAIRING_ATI
:
3618 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3619 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3621 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3622 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3623 params
[0] = (GLfloat
)(3);
3625 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3626 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3627 params
[0] = (GLfloat
)(3);
3629 case GL_STENCIL_BACK_FUNC
:
3630 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3632 case GL_STENCIL_BACK_VALUE_MASK
:
3633 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3635 case GL_STENCIL_BACK_REF
:
3636 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3638 case GL_STENCIL_BACK_FAIL
:
3639 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3641 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3642 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3644 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3645 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3647 case GL_FRAMEBUFFER_BINDING_EXT
:
3648 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3649 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3651 case GL_RENDERBUFFER_BINDING_EXT
:
3652 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3653 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3655 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3656 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3657 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3659 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3660 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3661 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3663 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3664 CHECK_EXTENSION_F(ARB_fragment_shader
, pname
);
3665 params
[0] = (GLfloat
)(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
3667 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3668 CHECK_EXTENSION_F(ARB_fragment_shader
, pname
);
3669 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3671 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3672 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3673 params
[0] = (GLfloat
)(MAX_VERTEX_UNIFORM_COMPONENTS
);
3675 case GL_MAX_VARYING_FLOATS_ARB
:
3676 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3677 params
[0] = (GLfloat
)(MAX_VARYING_FLOATS
);
3679 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3680 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3681 params
[0] = (GLfloat
)(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
3683 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3684 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3685 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3688 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3693 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3695 GET_CURRENT_CONTEXT(ctx
);
3696 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3702 _mesa_update_state(ctx
);
3704 if (ctx
->Driver
.GetIntegerv
&&
3705 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3709 case GL_ACCUM_RED_BITS
:
3710 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3712 case GL_ACCUM_GREEN_BITS
:
3713 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3715 case GL_ACCUM_BLUE_BITS
:
3716 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3718 case GL_ACCUM_ALPHA_BITS
:
3719 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3721 case GL_ACCUM_CLEAR_VALUE
:
3722 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3723 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3724 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3725 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3728 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3731 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3733 case GL_ALPHA_SCALE
:
3734 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3737 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3739 case GL_ALPHA_TEST_FUNC
:
3740 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3742 case GL_ALPHA_TEST_REF
:
3743 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3745 case GL_ATTRIB_STACK_DEPTH
:
3746 params
[0] = ctx
->AttribStackDepth
;
3748 case GL_AUTO_NORMAL
:
3749 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3751 case GL_AUX_BUFFERS
:
3752 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3755 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3758 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3761 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3763 case GL_BLEND_SRC_RGB_EXT
:
3764 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3766 case GL_BLEND_DST_RGB_EXT
:
3767 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3769 case GL_BLEND_SRC_ALPHA_EXT
:
3770 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3772 case GL_BLEND_DST_ALPHA_EXT
:
3773 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3775 case GL_BLEND_EQUATION
:
3776 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3778 case GL_BLEND_EQUATION_ALPHA_EXT
:
3779 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3781 case GL_BLEND_COLOR_EXT
:
3782 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3783 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3784 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3785 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3788 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3791 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3794 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3796 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3797 params
[0] = ctx
->ClientAttribStackDepth
;
3799 case GL_CLIP_PLANE0
:
3800 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3802 case GL_CLIP_PLANE1
:
3803 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3805 case GL_CLIP_PLANE2
:
3806 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3808 case GL_CLIP_PLANE3
:
3809 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3811 case GL_CLIP_PLANE4
:
3812 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3814 case GL_CLIP_PLANE5
:
3815 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3817 case GL_COLOR_CLEAR_VALUE
:
3818 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3819 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3820 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3821 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3823 case GL_COLOR_MATERIAL
:
3824 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3826 case GL_COLOR_MATERIAL_FACE
:
3827 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3829 case GL_COLOR_MATERIAL_PARAMETER
:
3830 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3832 case GL_COLOR_WRITEMASK
:
3833 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3834 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3835 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3836 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3839 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3841 case GL_CULL_FACE_MODE
:
3842 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3844 case GL_CURRENT_COLOR
:
3846 FLUSH_CURRENT(ctx
, 0);
3847 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3848 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3849 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3850 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3853 case GL_CURRENT_INDEX
:
3855 FLUSH_CURRENT(ctx
, 0);
3856 params
[0] = IROUND(ctx
->Current
.Index
);
3859 case GL_CURRENT_NORMAL
:
3861 FLUSH_CURRENT(ctx
, 0);
3862 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3863 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3864 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3867 case GL_CURRENT_RASTER_COLOR
:
3868 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3869 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3870 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3871 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3873 case GL_CURRENT_RASTER_DISTANCE
:
3874 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3876 case GL_CURRENT_RASTER_INDEX
:
3877 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3879 case GL_CURRENT_RASTER_POSITION
:
3880 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3881 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3882 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3883 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3885 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3887 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3888 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3889 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3890 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3891 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3894 case GL_CURRENT_RASTER_POSITION_VALID
:
3895 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3897 case GL_CURRENT_TEXTURE_COORDS
:
3899 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3900 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3901 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3902 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3903 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3907 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3910 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3912 case GL_DEPTH_CLEAR_VALUE
:
3913 params
[0] = IROUND(ctx
->Depth
.Clear
);
3916 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3918 case GL_DEPTH_RANGE
:
3919 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3920 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3922 case GL_DEPTH_SCALE
:
3923 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3926 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3928 case GL_DEPTH_WRITEMASK
:
3929 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3932 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3934 case GL_DOUBLEBUFFER
:
3935 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
3937 case GL_DRAW_BUFFER
:
3938 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
3942 FLUSH_CURRENT(ctx
, 0);
3943 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.EdgeFlag
);
3946 case GL_FEEDBACK_BUFFER_SIZE
:
3947 params
[0] = ctx
->Feedback
.BufferSize
;
3949 case GL_FEEDBACK_BUFFER_TYPE
:
3950 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
3953 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
3956 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
3957 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
3958 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
3959 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
3961 case GL_FOG_DENSITY
:
3962 params
[0] = IROUND(ctx
->Fog
.Density
);
3965 params
[0] = IROUND(ctx
->Fog
.End
);
3968 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
3971 params
[0] = IROUND(ctx
->Fog
.Index
);
3974 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
3977 params
[0] = IROUND(ctx
->Fog
.Start
);
3980 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
3983 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
3986 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
3988 case GL_GREEN_SCALE
:
3989 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
3992 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
3994 case GL_INDEX_CLEAR_VALUE
:
3995 params
[0] = ctx
->Color
.ClearIndex
;
3998 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4000 case GL_INDEX_OFFSET
:
4001 params
[0] = ctx
->Pixel
.IndexOffset
;
4003 case GL_INDEX_SHIFT
:
4004 params
[0] = ctx
->Pixel
.IndexShift
;
4006 case GL_INDEX_WRITEMASK
:
4007 params
[0] = ctx
->Color
.IndexMask
;
4010 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4013 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4016 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4019 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4022 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4025 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4028 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4031 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4034 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4036 case GL_LIGHT_MODEL_AMBIENT
:
4037 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4038 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4039 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4040 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4042 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4043 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4045 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4046 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4048 case GL_LIGHT_MODEL_TWO_SIDE
:
4049 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4051 case GL_LINE_SMOOTH
:
4052 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4054 case GL_LINE_SMOOTH_HINT
:
4055 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4057 case GL_LINE_STIPPLE
:
4058 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4060 case GL_LINE_STIPPLE_PATTERN
:
4061 params
[0] = ctx
->Line
.StipplePattern
;
4063 case GL_LINE_STIPPLE_REPEAT
:
4064 params
[0] = ctx
->Line
.StippleFactor
;
4067 params
[0] = IROUND(ctx
->Line
.Width
);
4069 case GL_LINE_WIDTH_GRANULARITY
:
4070 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4072 case GL_LINE_WIDTH_RANGE
:
4073 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4074 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4076 case GL_ALIASED_LINE_WIDTH_RANGE
:
4077 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4078 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4081 params
[0] = ctx
->List
.ListBase
;
4084 params
[0] = ctx
->ListState
.CurrentListNum
;
4089 if (!ctx
->CompileFlag
)
4091 else if (ctx
->ExecuteFlag
)
4092 mode
= GL_COMPILE_AND_EXECUTE
;
4095 params
[0] = ENUM_TO_INT(mode
);
4098 case GL_INDEX_LOGIC_OP
:
4099 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4101 case GL_COLOR_LOGIC_OP
:
4102 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4104 case GL_LOGIC_OP_MODE
:
4105 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4107 case GL_MAP1_COLOR_4
:
4108 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4110 case GL_MAP1_GRID_DOMAIN
:
4111 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4112 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4114 case GL_MAP1_GRID_SEGMENTS
:
4115 params
[0] = ctx
->Eval
.MapGrid1un
;
4118 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4120 case GL_MAP1_NORMAL
:
4121 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4123 case GL_MAP1_TEXTURE_COORD_1
:
4124 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4126 case GL_MAP1_TEXTURE_COORD_2
:
4127 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4129 case GL_MAP1_TEXTURE_COORD_3
:
4130 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4132 case GL_MAP1_TEXTURE_COORD_4
:
4133 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4135 case GL_MAP1_VERTEX_3
:
4136 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4138 case GL_MAP1_VERTEX_4
:
4139 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4141 case GL_MAP2_COLOR_4
:
4142 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4144 case GL_MAP2_GRID_DOMAIN
:
4145 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4146 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4147 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4148 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4150 case GL_MAP2_GRID_SEGMENTS
:
4151 params
[0] = ctx
->Eval
.MapGrid2un
;
4152 params
[1] = ctx
->Eval
.MapGrid2vn
;
4155 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4157 case GL_MAP2_NORMAL
:
4158 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4160 case GL_MAP2_TEXTURE_COORD_1
:
4161 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4163 case GL_MAP2_TEXTURE_COORD_2
:
4164 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4166 case GL_MAP2_TEXTURE_COORD_3
:
4167 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4169 case GL_MAP2_TEXTURE_COORD_4
:
4170 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4172 case GL_MAP2_VERTEX_3
:
4173 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4175 case GL_MAP2_VERTEX_4
:
4176 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4179 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4181 case GL_MAP_STENCIL
:
4182 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4184 case GL_MATRIX_MODE
:
4185 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4187 case GL_MAX_ATTRIB_STACK_DEPTH
:
4188 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4190 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4191 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4193 case GL_MAX_CLIP_PLANES
:
4194 params
[0] = ctx
->Const
.MaxClipPlanes
;
4196 case GL_MAX_ELEMENTS_VERTICES
:
4197 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4199 case GL_MAX_ELEMENTS_INDICES
:
4200 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4202 case GL_MAX_EVAL_ORDER
:
4203 params
[0] = MAX_EVAL_ORDER
;
4206 params
[0] = ctx
->Const
.MaxLights
;
4208 case GL_MAX_LIST_NESTING
:
4209 params
[0] = MAX_LIST_NESTING
;
4211 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4212 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4214 case GL_MAX_NAME_STACK_DEPTH
:
4215 params
[0] = MAX_NAME_STACK_DEPTH
;
4217 case GL_MAX_PIXEL_MAP_TABLE
:
4218 params
[0] = MAX_PIXEL_MAP_TABLE
;
4220 case GL_MAX_PROJECTION_STACK_DEPTH
:
4221 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4223 case GL_MAX_TEXTURE_SIZE
:
4224 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4226 case GL_MAX_3D_TEXTURE_SIZE
:
4227 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4229 case GL_MAX_TEXTURE_STACK_DEPTH
:
4230 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4232 case GL_MAX_VIEWPORT_DIMS
:
4233 params
[0] = ctx
->Const
.MaxViewportWidth
;
4234 params
[1] = ctx
->Const
.MaxViewportHeight
;
4236 case GL_MODELVIEW_MATRIX
:
4238 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4239 params
[0] = IROUND(matrix
[0]);
4240 params
[1] = IROUND(matrix
[1]);
4241 params
[2] = IROUND(matrix
[2]);
4242 params
[3] = IROUND(matrix
[3]);
4243 params
[4] = IROUND(matrix
[4]);
4244 params
[5] = IROUND(matrix
[5]);
4245 params
[6] = IROUND(matrix
[6]);
4246 params
[7] = IROUND(matrix
[7]);
4247 params
[8] = IROUND(matrix
[8]);
4248 params
[9] = IROUND(matrix
[9]);
4249 params
[10] = IROUND(matrix
[10]);
4250 params
[11] = IROUND(matrix
[11]);
4251 params
[12] = IROUND(matrix
[12]);
4252 params
[13] = IROUND(matrix
[13]);
4253 params
[14] = IROUND(matrix
[14]);
4254 params
[15] = IROUND(matrix
[15]);
4257 case GL_MODELVIEW_STACK_DEPTH
:
4258 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4260 case GL_NAME_STACK_DEPTH
:
4261 params
[0] = ctx
->Select
.NameStackDepth
;
4264 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4266 case GL_PACK_ALIGNMENT
:
4267 params
[0] = ctx
->Pack
.Alignment
;
4269 case GL_PACK_LSB_FIRST
:
4270 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4272 case GL_PACK_ROW_LENGTH
:
4273 params
[0] = ctx
->Pack
.RowLength
;
4275 case GL_PACK_SKIP_PIXELS
:
4276 params
[0] = ctx
->Pack
.SkipPixels
;
4278 case GL_PACK_SKIP_ROWS
:
4279 params
[0] = ctx
->Pack
.SkipRows
;
4281 case GL_PACK_SWAP_BYTES
:
4282 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4284 case GL_PACK_SKIP_IMAGES_EXT
:
4285 params
[0] = ctx
->Pack
.SkipImages
;
4287 case GL_PACK_IMAGE_HEIGHT_EXT
:
4288 params
[0] = ctx
->Pack
.ImageHeight
;
4290 case GL_PACK_INVERT_MESA
:
4291 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4293 case GL_PERSPECTIVE_CORRECTION_HINT
:
4294 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4296 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4297 params
[0] = ctx
->Pixel
.MapAtoAsize
;
4299 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4300 params
[0] = ctx
->Pixel
.MapBtoBsize
;
4302 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4303 params
[0] = ctx
->Pixel
.MapGtoGsize
;
4305 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4306 params
[0] = ctx
->Pixel
.MapItoAsize
;
4308 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4309 params
[0] = ctx
->Pixel
.MapItoBsize
;
4311 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4312 params
[0] = ctx
->Pixel
.MapItoGsize
;
4314 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4315 params
[0] = ctx
->Pixel
.MapItoIsize
;
4317 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4318 params
[0] = ctx
->Pixel
.MapItoRsize
;
4320 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4321 params
[0] = ctx
->Pixel
.MapRtoRsize
;
4323 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4324 params
[0] = ctx
->Pixel
.MapStoSsize
;
4327 params
[0] = IROUND(ctx
->Point
.Size
);
4329 case GL_POINT_SIZE_GRANULARITY
:
4330 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4332 case GL_POINT_SIZE_RANGE
:
4333 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4334 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4336 case GL_ALIASED_POINT_SIZE_RANGE
:
4337 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4338 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4340 case GL_POINT_SMOOTH
:
4341 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4343 case GL_POINT_SMOOTH_HINT
:
4344 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4346 case GL_POINT_SIZE_MIN_EXT
:
4347 params
[0] = IROUND(ctx
->Point
.MinSize
);
4349 case GL_POINT_SIZE_MAX_EXT
:
4350 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4352 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4353 params
[0] = IROUND(ctx
->Point
.Threshold
);
4355 case GL_DISTANCE_ATTENUATION_EXT
:
4356 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4357 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4358 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4360 case GL_POLYGON_MODE
:
4361 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4362 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4364 case GL_POLYGON_OFFSET_BIAS_EXT
:
4365 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4367 case GL_POLYGON_OFFSET_FACTOR
:
4368 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4370 case GL_POLYGON_OFFSET_UNITS
:
4371 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4373 case GL_POLYGON_SMOOTH
:
4374 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4376 case GL_POLYGON_SMOOTH_HINT
:
4377 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4379 case GL_POLYGON_STIPPLE
:
4380 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4382 case GL_PROJECTION_MATRIX
:
4384 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4385 params
[0] = IROUND(matrix
[0]);
4386 params
[1] = IROUND(matrix
[1]);
4387 params
[2] = IROUND(matrix
[2]);
4388 params
[3] = IROUND(matrix
[3]);
4389 params
[4] = IROUND(matrix
[4]);
4390 params
[5] = IROUND(matrix
[5]);
4391 params
[6] = IROUND(matrix
[6]);
4392 params
[7] = IROUND(matrix
[7]);
4393 params
[8] = IROUND(matrix
[8]);
4394 params
[9] = IROUND(matrix
[9]);
4395 params
[10] = IROUND(matrix
[10]);
4396 params
[11] = IROUND(matrix
[11]);
4397 params
[12] = IROUND(matrix
[12]);
4398 params
[13] = IROUND(matrix
[13]);
4399 params
[14] = IROUND(matrix
[14]);
4400 params
[15] = IROUND(matrix
[15]);
4403 case GL_PROJECTION_STACK_DEPTH
:
4404 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4406 case GL_READ_BUFFER
:
4407 params
[0] = ENUM_TO_INT(ctx
->Pixel
.ReadBuffer
);
4410 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4413 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4416 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4418 case GL_RENDER_MODE
:
4419 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4421 case GL_RESCALE_NORMAL
:
4422 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4425 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4427 case GL_SCISSOR_BOX
:
4428 params
[0] = ctx
->Scissor
.X
;
4429 params
[1] = ctx
->Scissor
.Y
;
4430 params
[2] = ctx
->Scissor
.Width
;
4431 params
[3] = ctx
->Scissor
.Height
;
4433 case GL_SCISSOR_TEST
:
4434 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4436 case GL_SELECTION_BUFFER_SIZE
:
4437 params
[0] = ctx
->Select
.BufferSize
;
4439 case GL_SHADE_MODEL
:
4440 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4442 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4443 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4445 case GL_STENCIL_BITS
:
4446 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4448 case GL_STENCIL_CLEAR_VALUE
:
4449 params
[0] = ctx
->Stencil
.Clear
;
4451 case GL_STENCIL_FAIL
:
4452 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4454 case GL_STENCIL_FUNC
:
4455 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4457 case GL_STENCIL_PASS_DEPTH_FAIL
:
4458 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4460 case GL_STENCIL_PASS_DEPTH_PASS
:
4461 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4463 case GL_STENCIL_REF
:
4464 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4466 case GL_STENCIL_TEST
:
4467 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4469 case GL_STENCIL_VALUE_MASK
:
4470 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4472 case GL_STENCIL_WRITEMASK
:
4473 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4476 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4478 case GL_SUBPIXEL_BITS
:
4479 params
[0] = ctx
->Const
.SubPixelBits
;
4482 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4485 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4488 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4490 case GL_TEXTURE_BINDING_1D
:
4491 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4493 case GL_TEXTURE_BINDING_2D
:
4494 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4496 case GL_TEXTURE_BINDING_3D
:
4497 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4499 case GL_TEXTURE_ENV_COLOR
:
4501 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
4502 params
[0] = FLOAT_TO_INT(color
[0]);
4503 params
[1] = FLOAT_TO_INT(color
[1]);
4504 params
[2] = FLOAT_TO_INT(color
[2]);
4505 params
[3] = FLOAT_TO_INT(color
[3]);
4508 case GL_TEXTURE_ENV_MODE
:
4509 params
[0] = ENUM_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
4511 case GL_TEXTURE_GEN_S
:
4512 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4514 case GL_TEXTURE_GEN_T
:
4515 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4517 case GL_TEXTURE_GEN_R
:
4518 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4520 case GL_TEXTURE_GEN_Q
:
4521 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4523 case GL_TEXTURE_MATRIX
:
4525 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4526 params
[0] = IROUND(matrix
[0]);
4527 params
[1] = IROUND(matrix
[1]);
4528 params
[2] = IROUND(matrix
[2]);
4529 params
[3] = IROUND(matrix
[3]);
4530 params
[4] = IROUND(matrix
[4]);
4531 params
[5] = IROUND(matrix
[5]);
4532 params
[6] = IROUND(matrix
[6]);
4533 params
[7] = IROUND(matrix
[7]);
4534 params
[8] = IROUND(matrix
[8]);
4535 params
[9] = IROUND(matrix
[9]);
4536 params
[10] = IROUND(matrix
[10]);
4537 params
[11] = IROUND(matrix
[11]);
4538 params
[12] = IROUND(matrix
[12]);
4539 params
[13] = IROUND(matrix
[13]);
4540 params
[14] = IROUND(matrix
[14]);
4541 params
[15] = IROUND(matrix
[15]);
4544 case GL_TEXTURE_STACK_DEPTH
:
4545 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4547 case GL_UNPACK_ALIGNMENT
:
4548 params
[0] = ctx
->Unpack
.Alignment
;
4550 case GL_UNPACK_LSB_FIRST
:
4551 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4553 case GL_UNPACK_ROW_LENGTH
:
4554 params
[0] = ctx
->Unpack
.RowLength
;
4556 case GL_UNPACK_SKIP_PIXELS
:
4557 params
[0] = ctx
->Unpack
.SkipPixels
;
4559 case GL_UNPACK_SKIP_ROWS
:
4560 params
[0] = ctx
->Unpack
.SkipRows
;
4562 case GL_UNPACK_SWAP_BYTES
:
4563 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4565 case GL_UNPACK_SKIP_IMAGES_EXT
:
4566 params
[0] = ctx
->Unpack
.SkipImages
;
4568 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4569 params
[0] = ctx
->Unpack
.ImageHeight
;
4571 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4572 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4575 params
[0] = ctx
->Viewport
.X
;
4576 params
[1] = ctx
->Viewport
.Y
;
4577 params
[2] = ctx
->Viewport
.Width
;
4578 params
[3] = ctx
->Viewport
.Height
;
4581 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4584 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4586 case GL_VERTEX_ARRAY
:
4587 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Vertex
.Enabled
);
4589 case GL_VERTEX_ARRAY_SIZE
:
4590 params
[0] = ctx
->Array
.Vertex
.Size
;
4592 case GL_VERTEX_ARRAY_TYPE
:
4593 params
[0] = ENUM_TO_INT(ctx
->Array
.Vertex
.Type
);
4595 case GL_VERTEX_ARRAY_STRIDE
:
4596 params
[0] = ctx
->Array
.Vertex
.Stride
;
4598 case GL_VERTEX_ARRAY_COUNT_EXT
:
4601 case GL_NORMAL_ARRAY
:
4602 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Enabled
);
4604 case GL_NORMAL_ARRAY_TYPE
:
4605 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Type
);
4607 case GL_NORMAL_ARRAY_STRIDE
:
4608 params
[0] = ctx
->Array
.Normal
.Stride
;
4610 case GL_NORMAL_ARRAY_COUNT_EXT
:
4613 case GL_COLOR_ARRAY
:
4614 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Color
.Enabled
);
4616 case GL_COLOR_ARRAY_SIZE
:
4617 params
[0] = ctx
->Array
.Color
.Size
;
4619 case GL_COLOR_ARRAY_TYPE
:
4620 params
[0] = ENUM_TO_INT(ctx
->Array
.Color
.Type
);
4622 case GL_COLOR_ARRAY_STRIDE
:
4623 params
[0] = ctx
->Array
.Color
.Stride
;
4625 case GL_COLOR_ARRAY_COUNT_EXT
:
4628 case GL_INDEX_ARRAY
:
4629 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Index
.Enabled
);
4631 case GL_INDEX_ARRAY_TYPE
:
4632 params
[0] = ENUM_TO_INT(ctx
->Array
.Index
.Type
);
4634 case GL_INDEX_ARRAY_STRIDE
:
4635 params
[0] = ctx
->Array
.Index
.Stride
;
4637 case GL_INDEX_ARRAY_COUNT_EXT
:
4640 case GL_TEXTURE_COORD_ARRAY
:
4641 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4643 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4644 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4646 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4647 params
[0] = ENUM_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4649 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4650 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4652 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4655 case GL_EDGE_FLAG_ARRAY
:
4656 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.EdgeFlag
.Enabled
);
4658 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4659 params
[0] = ctx
->Array
.EdgeFlag
.Stride
;
4661 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4664 case GL_MAX_TEXTURE_UNITS_ARB
:
4665 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4666 params
[0] = MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
);
4668 case GL_ACTIVE_TEXTURE_ARB
:
4669 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4670 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4672 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4673 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4674 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4676 case GL_TEXTURE_CUBE_MAP_ARB
:
4677 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4678 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4680 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4681 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4682 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4684 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4685 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4686 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4688 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4689 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4690 params
[0] = ctx
->Hint
.TextureCompression
;
4692 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4693 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4694 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
);
4696 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4697 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4700 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
4702 for (i
= 0; i
< n
; i
++)
4703 params
[i
] = ENUM_TO_INT(formats
[i
]);
4706 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4707 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4708 params
[0] = ctx
->Array
.LockFirst
;
4710 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4711 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4712 params
[0] = ctx
->Array
.LockCount
;
4714 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4716 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4717 params
[0] = IROUND(matrix
[0]);
4718 params
[1] = IROUND(matrix
[4]);
4719 params
[2] = IROUND(matrix
[8]);
4720 params
[3] = IROUND(matrix
[12]);
4721 params
[4] = IROUND(matrix
[1]);
4722 params
[5] = IROUND(matrix
[5]);
4723 params
[6] = IROUND(matrix
[9]);
4724 params
[7] = IROUND(matrix
[13]);
4725 params
[8] = IROUND(matrix
[2]);
4726 params
[9] = IROUND(matrix
[6]);
4727 params
[10] = IROUND(matrix
[10]);
4728 params
[11] = IROUND(matrix
[14]);
4729 params
[12] = IROUND(matrix
[3]);
4730 params
[13] = IROUND(matrix
[7]);
4731 params
[14] = IROUND(matrix
[11]);
4732 params
[15] = IROUND(matrix
[15]);
4735 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4737 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4738 params
[0] = IROUND(matrix
[0]);
4739 params
[1] = IROUND(matrix
[4]);
4740 params
[2] = IROUND(matrix
[8]);
4741 params
[3] = IROUND(matrix
[12]);
4742 params
[4] = IROUND(matrix
[1]);
4743 params
[5] = IROUND(matrix
[5]);
4744 params
[6] = IROUND(matrix
[9]);
4745 params
[7] = IROUND(matrix
[13]);
4746 params
[8] = IROUND(matrix
[2]);
4747 params
[9] = IROUND(matrix
[6]);
4748 params
[10] = IROUND(matrix
[10]);
4749 params
[11] = IROUND(matrix
[14]);
4750 params
[12] = IROUND(matrix
[3]);
4751 params
[13] = IROUND(matrix
[7]);
4752 params
[14] = IROUND(matrix
[11]);
4753 params
[15] = IROUND(matrix
[15]);
4756 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4758 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4759 params
[0] = IROUND(matrix
[0]);
4760 params
[1] = IROUND(matrix
[4]);
4761 params
[2] = IROUND(matrix
[8]);
4762 params
[3] = IROUND(matrix
[12]);
4763 params
[4] = IROUND(matrix
[1]);
4764 params
[5] = IROUND(matrix
[5]);
4765 params
[6] = IROUND(matrix
[9]);
4766 params
[7] = IROUND(matrix
[13]);
4767 params
[8] = IROUND(matrix
[2]);
4768 params
[9] = IROUND(matrix
[6]);
4769 params
[10] = IROUND(matrix
[10]);
4770 params
[11] = IROUND(matrix
[14]);
4771 params
[12] = IROUND(matrix
[3]);
4772 params
[13] = IROUND(matrix
[7]);
4773 params
[14] = IROUND(matrix
[11]);
4774 params
[15] = IROUND(matrix
[15]);
4777 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4779 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4780 params
[0] = IROUND(matrix
[0]);
4781 params
[1] = IROUND(matrix
[4]);
4782 params
[2] = IROUND(matrix
[8]);
4783 params
[3] = IROUND(matrix
[12]);
4784 params
[4] = IROUND(matrix
[1]);
4785 params
[5] = IROUND(matrix
[5]);
4786 params
[6] = IROUND(matrix
[9]);
4787 params
[7] = IROUND(matrix
[13]);
4788 params
[8] = IROUND(matrix
[2]);
4789 params
[9] = IROUND(matrix
[6]);
4790 params
[10] = IROUND(matrix
[10]);
4791 params
[11] = IROUND(matrix
[14]);
4792 params
[12] = IROUND(matrix
[3]);
4793 params
[13] = IROUND(matrix
[7]);
4794 params
[14] = IROUND(matrix
[11]);
4795 params
[15] = IROUND(matrix
[15]);
4798 case GL_COLOR_MATRIX_SGI
:
4800 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4801 params
[0] = IROUND(matrix
[0]);
4802 params
[1] = IROUND(matrix
[1]);
4803 params
[2] = IROUND(matrix
[2]);
4804 params
[3] = IROUND(matrix
[3]);
4805 params
[4] = IROUND(matrix
[4]);
4806 params
[5] = IROUND(matrix
[5]);
4807 params
[6] = IROUND(matrix
[6]);
4808 params
[7] = IROUND(matrix
[7]);
4809 params
[8] = IROUND(matrix
[8]);
4810 params
[9] = IROUND(matrix
[9]);
4811 params
[10] = IROUND(matrix
[10]);
4812 params
[11] = IROUND(matrix
[11]);
4813 params
[12] = IROUND(matrix
[12]);
4814 params
[13] = IROUND(matrix
[13]);
4815 params
[14] = IROUND(matrix
[14]);
4816 params
[15] = IROUND(matrix
[15]);
4819 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4820 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4822 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4823 params
[0] = MAX_COLOR_STACK_DEPTH
;
4825 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4826 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4828 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4829 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4831 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4832 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4834 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4835 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4837 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4838 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4840 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4841 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4843 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4844 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4846 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4847 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4849 case GL_CONVOLUTION_1D_EXT
:
4850 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4851 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4853 case GL_CONVOLUTION_2D_EXT
:
4854 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4855 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4857 case GL_SEPARABLE_2D_EXT
:
4858 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4859 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4861 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4862 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4863 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4865 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4866 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4867 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4869 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4870 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4871 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4873 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4874 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4875 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4877 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4878 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4879 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4881 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4882 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4883 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4885 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4886 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4887 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4889 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4890 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4891 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4894 CHECK_EXTENSION_I(EXT_histogram
, pname
);
4895 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4898 CHECK_EXTENSION_I(EXT_histogram
, pname
);
4899 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4901 case GL_COLOR_TABLE_SGI
:
4902 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4903 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
);
4905 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4906 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4907 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
4909 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4910 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4911 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
4913 case GL_TEXTURE_COLOR_TABLE_SGI
:
4914 CHECK_EXTENSION_I(SGI_texture_color_table
, pname
);
4915 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4917 case GL_COLOR_SUM_EXT
:
4918 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4919 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4921 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4922 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4924 FLUSH_CURRENT(ctx
, 0);
4925 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4926 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4927 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4928 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4931 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4932 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4933 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.SecondaryColor
.Enabled
);
4935 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
4936 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4937 params
[0] = ENUM_TO_INT(ctx
->Array
.SecondaryColor
.Type
);
4939 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
4940 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4941 params
[0] = ctx
->Array
.SecondaryColor
.Stride
;
4943 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
4944 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4945 params
[0] = ctx
->Array
.SecondaryColor
.Size
;
4947 case GL_CURRENT_FOG_COORDINATE_EXT
:
4948 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
4950 FLUSH_CURRENT(ctx
, 0);
4951 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
4954 case GL_FOG_COORDINATE_ARRAY_EXT
:
4955 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
4956 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.FogCoord
.Enabled
);
4958 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
4959 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
4960 params
[0] = ENUM_TO_INT(ctx
->Array
.FogCoord
.Type
);
4962 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
4963 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
4964 params
[0] = ctx
->Array
.FogCoord
.Stride
;
4966 case GL_FOG_COORDINATE_SOURCE_EXT
:
4967 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
4968 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
4970 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
4971 CHECK_EXTENSION_I(EXT_texture_lod_bias
, pname
);
4972 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
4974 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
4975 CHECK_EXTENSION_I(EXT_texture_filter_anisotropic
, pname
);
4976 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
4978 case GL_MULTISAMPLE_ARB
:
4979 CHECK_EXTENSION_I(ARB_multisample
, pname
);
4980 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
4982 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
4983 CHECK_EXTENSION_I(ARB_multisample
, pname
);
4984 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
4986 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
4987 CHECK_EXTENSION_I(ARB_multisample
, pname
);
4988 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
4990 case GL_SAMPLE_COVERAGE_ARB
:
4991 CHECK_EXTENSION_I(ARB_multisample
, pname
);
4992 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
4994 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
4995 CHECK_EXTENSION_I(ARB_multisample
, pname
);
4996 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
4998 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
4999 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5000 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5002 case GL_SAMPLE_BUFFERS_ARB
:
5003 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5004 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5006 case GL_SAMPLES_ARB
:
5007 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5008 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5010 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5011 CHECK_EXTENSION_I(IBM_rasterpos_clip
, pname
);
5012 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5014 case GL_POINT_SPRITE_NV
:
5015 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5016 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5018 case GL_POINT_SPRITE_R_MODE_NV
:
5019 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5020 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5022 case GL_POINT_SPRITE_COORD_ORIGIN
:
5023 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5024 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5026 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5027 CHECK_EXTENSION_I(SGIS_generate_mipmap
, pname
);
5028 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5030 case GL_VERTEX_PROGRAM_NV
:
5031 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5032 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5034 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
5035 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5036 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5038 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
5039 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5040 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5042 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
5043 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5044 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5046 case GL_MAX_TRACK_MATRICES_NV
:
5047 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5048 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5050 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
5051 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5052 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5054 case GL_CURRENT_MATRIX_NV
:
5055 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5057 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5058 params
[0] = IROUND(matrix
[0]);
5059 params
[1] = IROUND(matrix
[1]);
5060 params
[2] = IROUND(matrix
[2]);
5061 params
[3] = IROUND(matrix
[3]);
5062 params
[4] = IROUND(matrix
[4]);
5063 params
[5] = IROUND(matrix
[5]);
5064 params
[6] = IROUND(matrix
[6]);
5065 params
[7] = IROUND(matrix
[7]);
5066 params
[8] = IROUND(matrix
[8]);
5067 params
[9] = IROUND(matrix
[9]);
5068 params
[10] = IROUND(matrix
[10]);
5069 params
[11] = IROUND(matrix
[11]);
5070 params
[12] = IROUND(matrix
[12]);
5071 params
[13] = IROUND(matrix
[13]);
5072 params
[14] = IROUND(matrix
[14]);
5073 params
[15] = IROUND(matrix
[15]);
5076 case GL_VERTEX_PROGRAM_BINDING_NV
:
5077 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5078 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5080 case GL_PROGRAM_ERROR_POSITION_NV
:
5081 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5082 params
[0] = ctx
->Program
.ErrorPos
;
5084 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5085 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5086 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[0].Enabled
);
5088 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5089 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5090 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[1].Enabled
);
5092 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5093 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5094 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[2].Enabled
);
5096 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5097 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5098 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[3].Enabled
);
5100 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5101 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5102 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[4].Enabled
);
5104 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5105 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5106 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[5].Enabled
);
5108 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5109 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5110 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[6].Enabled
);
5112 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5113 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5114 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[7].Enabled
);
5116 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5117 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5118 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[8].Enabled
);
5120 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5121 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5122 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[9].Enabled
);
5124 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5125 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5126 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[10].Enabled
);
5128 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5129 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5130 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[11].Enabled
);
5132 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5133 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5134 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[12].Enabled
);
5136 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5137 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5138 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[13].Enabled
);
5140 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5141 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5142 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[14].Enabled
);
5144 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5145 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5146 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[15].Enabled
);
5148 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5149 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5150 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5152 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5153 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5154 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5156 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5157 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5158 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5160 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5161 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5162 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5164 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5165 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5166 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5168 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5169 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5170 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5172 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5173 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5174 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5176 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5177 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5178 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5180 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5181 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5182 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5184 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5185 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5186 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5188 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5189 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5190 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5192 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5193 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5194 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5196 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5197 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5198 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5200 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5201 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5202 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5204 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5205 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5206 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5208 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5209 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5210 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5212 case GL_FRAGMENT_PROGRAM_NV
:
5213 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5214 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5216 case GL_MAX_TEXTURE_COORDS_NV
:
5217 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5218 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5220 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
5221 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5222 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5224 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5225 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5226 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5228 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5229 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5230 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5232 case GL_TEXTURE_RECTANGLE_NV
:
5233 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5234 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5236 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5237 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5238 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5240 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5241 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5242 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5244 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5245 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5246 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5248 case GL_ACTIVE_STENCIL_FACE_EXT
:
5249 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5250 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5252 case GL_MAX_SHININESS_NV
:
5253 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5254 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5256 case GL_MAX_SPOT_EXPONENT_NV
:
5257 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5258 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5260 case GL_ARRAY_BUFFER_BINDING_ARB
:
5261 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5262 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5264 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5265 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5266 params
[0] = ctx
->Array
.Vertex
.BufferObj
->Name
;
5268 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5269 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5270 params
[0] = ctx
->Array
.Normal
.BufferObj
->Name
;
5272 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5273 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5274 params
[0] = ctx
->Array
.Color
.BufferObj
->Name
;
5276 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5277 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5278 params
[0] = ctx
->Array
.Index
.BufferObj
->Name
;
5280 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5281 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5282 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5284 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5285 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5286 params
[0] = ctx
->Array
.EdgeFlag
.BufferObj
->Name
;
5288 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5289 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5290 params
[0] = ctx
->Array
.SecondaryColor
.BufferObj
->Name
;
5292 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5293 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5294 params
[0] = ctx
->Array
.FogCoord
.BufferObj
->Name
;
5296 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5297 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5298 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5300 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5301 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5302 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5304 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5305 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5306 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5308 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5309 CHECK_EXTENSION_I(ARB_vertex_program
, pname
);
5310 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5312 case GL_FRAGMENT_PROGRAM_ARB
:
5313 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5314 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5316 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5317 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5319 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5320 params
[0] = IROUND(matrix
[0]);
5321 params
[1] = IROUND(matrix
[4]);
5322 params
[2] = IROUND(matrix
[8]);
5323 params
[3] = IROUND(matrix
[12]);
5324 params
[4] = IROUND(matrix
[1]);
5325 params
[5] = IROUND(matrix
[5]);
5326 params
[6] = IROUND(matrix
[9]);
5327 params
[7] = IROUND(matrix
[13]);
5328 params
[8] = IROUND(matrix
[2]);
5329 params
[9] = IROUND(matrix
[6]);
5330 params
[10] = IROUND(matrix
[10]);
5331 params
[11] = IROUND(matrix
[14]);
5332 params
[12] = IROUND(matrix
[3]);
5333 params
[13] = IROUND(matrix
[7]);
5334 params
[14] = IROUND(matrix
[11]);
5335 params
[15] = IROUND(matrix
[15]);
5338 case GL_DEPTH_BOUNDS_TEST_EXT
:
5339 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5340 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5342 case GL_DEPTH_BOUNDS_EXT
:
5343 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5344 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5345 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5347 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5348 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5349 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5351 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5352 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5353 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5355 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5356 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5357 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5359 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5360 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5361 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5363 case GL_MAX_DRAW_BUFFERS_ARB
:
5364 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5365 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5367 case GL_DRAW_BUFFER0_ARB
:
5368 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5369 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
5371 case GL_DRAW_BUFFER1_ARB
:
5372 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5375 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5376 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5379 buffer
= ctx
->Color
.DrawBuffer
[1];
5380 params
[0] = ENUM_TO_INT(buffer
);
5383 case GL_DRAW_BUFFER2_ARB
:
5384 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5387 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5388 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5391 buffer
= ctx
->Color
.DrawBuffer
[2];
5392 params
[0] = ENUM_TO_INT(buffer
);
5395 case GL_DRAW_BUFFER3_ARB
:
5396 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5399 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5400 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5403 buffer
= ctx
->Color
.DrawBuffer
[3];
5404 params
[0] = ENUM_TO_INT(buffer
);
5407 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5408 CHECK_EXTENSION_I(OES_read_format
, pname
);
5409 params
[0] = ctx
->Const
.ColorReadType
;
5411 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5412 CHECK_EXTENSION_I(OES_read_format
, pname
);
5413 params
[0] = ctx
->Const
.ColorReadFormat
;
5415 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5416 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5419 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5420 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5423 case GL_NUM_PASSES_ATI
:
5424 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5427 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5428 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5431 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5432 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5435 case GL_COLOR_ALPHA_PAIRING_ATI
:
5436 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5437 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5439 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5440 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5443 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5444 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5447 case GL_STENCIL_BACK_FUNC
:
5448 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5450 case GL_STENCIL_BACK_VALUE_MASK
:
5451 params
[0] = ctx
->Stencil
.ValueMask
[1];
5453 case GL_STENCIL_BACK_REF
:
5454 params
[0] = ctx
->Stencil
.Ref
[1];
5456 case GL_STENCIL_BACK_FAIL
:
5457 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5459 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5460 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5462 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5463 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5465 case GL_FRAMEBUFFER_BINDING_EXT
:
5466 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5467 params
[0] = ctx
->DrawBuffer
->Name
;
5469 case GL_RENDERBUFFER_BINDING_EXT
:
5470 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5471 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5473 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5474 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5475 params
[0] = ctx
->Const
.MaxColorAttachments
;
5477 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5478 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5479 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5481 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5482 CHECK_EXTENSION_I(ARB_fragment_shader
, pname
);
5483 params
[0] = MAX_FRAGMENT_UNIFORM_COMPONENTS
;
5485 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5486 CHECK_EXTENSION_I(ARB_fragment_shader
, pname
);
5487 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5489 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5490 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5491 params
[0] = MAX_VERTEX_UNIFORM_COMPONENTS
;
5493 case GL_MAX_VARYING_FLOATS_ARB
:
5494 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5495 params
[0] = MAX_VARYING_FLOATS
;
5497 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5498 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5499 params
[0] = MAX_VERTEX_TEXTURE_IMAGE_UNITS
;
5501 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5502 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5503 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5506 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5512 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5514 const GLfloat magic
= -1234.5F
;
5521 /* Init temp array to magic numbers so we can figure out how many values
5522 * are returned by the GetFloatv() call.
5524 for (i
= 0; i
< 16; i
++)
5527 _mesa_GetFloatv(pname
, values
);
5529 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5530 params
[i
] = (GLdouble
) values
[i
];