3 *** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
9 #include "extensions.h"
14 #include "texcompress.h"
17 #define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
19 #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
21 #define ENUM_TO_BOOLEAN(E) ( (E) ? GL_TRUE : GL_FALSE )
22 #define ENUM_TO_INT(E) ( (GLint) (E) )
23 #define ENUM_TO_FLOAT(E) ( (GLfloat) (E) )
25 #define BOOLEAN_TO_INT(B) ( (GLint) (B) )
26 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
29 /* Check if named extension is enabled, if not generate error and return */
31 #define CHECK1(E1, str, PNAME) \
32 if (!ctx->Extensions.E1) { \
33 _mesa_error(ctx, GL_INVALID_VALUE, \
34 "glGet" str "v(0x%x)", (int) PNAME); \
38 #define CHECK2(E1, E2, str, PNAME) \
39 if (!ctx->Extensions.E1 && !ctx->Extensions.E2) { \
40 _mesa_error(ctx, GL_INVALID_VALUE, \
41 "glGet" str "v(0x%x)", (int) PNAME); \
45 #define CHECK_EXTENSION_B(EXTNAME, PNAME) \
46 CHECK1(EXTNAME, "Boolean", PNAME )
48 #define CHECK_EXTENSION_I(EXTNAME, PNAME) \
49 CHECK1(EXTNAME, "Integer", PNAME )
51 #define CHECK_EXTENSION_F(EXTNAME, PNAME) \
52 CHECK1(EXTNAME, "Float", PNAME )
59 pixel_texgen_mode(const GLcontext
*ctx
)
61 if (ctx
->Pixel
.FragmentRgbSource
== GL_CURRENT_RASTER_POSITION
) {
62 if (ctx
->Pixel
.FragmentAlphaSource
== GL_CURRENT_RASTER_POSITION
) {
70 if (ctx
->Pixel
.FragmentAlphaSource
== GL_CURRENT_RASTER_POSITION
) {
80 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
82 GET_CURRENT_CONTEXT(ctx
);
83 ASSERT_OUTSIDE_BEGIN_END(ctx
);
88 if (ctx
->Driver
.GetBooleanv
&&
89 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
93 case GL_ACCUM_RED_BITS
:
94 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.accumRedBits
);
96 case GL_ACCUM_GREEN_BITS
:
97 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.accumGreenBits
);
99 case GL_ACCUM_BLUE_BITS
:
100 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.accumBlueBits
);
102 case GL_ACCUM_ALPHA_BITS
:
103 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.accumAlphaBits
);
105 case GL_ACCUM_CLEAR_VALUE
:
106 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
107 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
108 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
109 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
112 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
115 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.alphaBits
);
118 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
121 params
[0] = ctx
->Color
.AlphaEnabled
;
123 case GL_ALPHA_TEST_FUNC
:
124 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
126 case GL_ALPHA_TEST_REF
:
127 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
129 case GL_ATTRIB_STACK_DEPTH
:
130 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
133 params
[0] = ctx
->Eval
.AutoNormal
;
136 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.numAuxBuffers
);
139 params
[0] = ctx
->Color
.BlendEnabled
;
142 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
145 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
147 case GL_BLEND_SRC_RGB_EXT
:
148 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
150 case GL_BLEND_DST_RGB_EXT
:
151 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
153 case GL_BLEND_SRC_ALPHA_EXT
:
154 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
156 case GL_BLEND_DST_ALPHA_EXT
:
157 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
159 case GL_BLEND_EQUATION
:
160 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
162 case GL_BLEND_EQUATION_ALPHA_EXT
:
163 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
165 case GL_BLEND_COLOR_EXT
:
166 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
167 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
168 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
169 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
172 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
175 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.blueBits
);
178 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
180 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
181 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
184 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
187 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
190 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
193 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
196 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
199 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
201 case GL_COLOR_CLEAR_VALUE
:
202 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
203 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
204 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
205 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
207 case GL_COLOR_MATERIAL
:
208 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
210 case GL_COLOR_MATERIAL_FACE
:
211 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
213 case GL_COLOR_MATERIAL_PARAMETER
:
214 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
216 case GL_COLOR_WRITEMASK
:
217 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
218 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
219 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
220 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
223 params
[0] = ctx
->Polygon
.CullFlag
;
225 case GL_CULL_FACE_MODE
:
226 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
228 case GL_CURRENT_COLOR
:
230 FLUSH_CURRENT(ctx
, 0);
231 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
232 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
233 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
234 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
237 case GL_CURRENT_INDEX
:
239 FLUSH_CURRENT(ctx
, 0);
240 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Index
);
243 case GL_CURRENT_NORMAL
:
245 FLUSH_CURRENT(ctx
, 0);
246 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
247 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
248 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
251 case GL_CURRENT_RASTER_COLOR
:
252 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
253 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
254 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
255 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
257 case GL_CURRENT_RASTER_DISTANCE
:
258 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
260 case GL_CURRENT_RASTER_INDEX
:
261 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterIndex
);
263 case GL_CURRENT_RASTER_POSITION
:
264 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
265 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
266 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
267 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
269 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
271 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
272 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
273 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
274 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
275 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
278 case GL_CURRENT_RASTER_POSITION_VALID
:
279 params
[0] = ctx
->Current
.RasterPosValid
;
281 case GL_CURRENT_TEXTURE_COORDS
:
283 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
284 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
285 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
286 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
287 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
291 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
294 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.depthBits
);
296 case GL_DEPTH_CLEAR_VALUE
:
297 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.Clear
);
300 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
303 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
304 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
307 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
310 params
[0] = ctx
->Depth
.Test
;
312 case GL_DEPTH_WRITEMASK
:
313 params
[0] = ctx
->Depth
.Mask
;
316 params
[0] = ctx
->Color
.DitherFlag
;
318 case GL_DOUBLEBUFFER
:
319 params
[0] = ctx
->Visual
.doubleBufferMode
;
322 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.DrawBuffer
[0]);
326 FLUSH_CURRENT(ctx
, 0);
327 params
[0] = ctx
->Current
.EdgeFlag
;
330 case GL_FEEDBACK_BUFFER_SIZE
:
331 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
333 case GL_FEEDBACK_BUFFER_TYPE
:
334 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
337 params
[0] = ctx
->Fog
.Enabled
;
340 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
341 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
342 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
343 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
346 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
349 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
352 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
355 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
358 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
361 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
364 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
367 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
370 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.greenBits
);
373 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
376 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.indexBits
);
378 case GL_INDEX_CLEAR_VALUE
:
379 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
382 params
[0] = !ctx
->Visual
.rgbMode
;
384 case GL_INDEX_OFFSET
:
385 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
388 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
390 case GL_INDEX_WRITEMASK
:
391 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
394 params
[0] = ctx
->Light
.Light
[0].Enabled
;
397 params
[0] = ctx
->Light
.Light
[1].Enabled
;
400 params
[0] = ctx
->Light
.Light
[2].Enabled
;
403 params
[0] = ctx
->Light
.Light
[3].Enabled
;
406 params
[0] = ctx
->Light
.Light
[4].Enabled
;
409 params
[0] = ctx
->Light
.Light
[5].Enabled
;
412 params
[0] = ctx
->Light
.Light
[6].Enabled
;
415 params
[0] = ctx
->Light
.Light
[7].Enabled
;
418 params
[0] = ctx
->Light
.Enabled
;
420 case GL_LIGHT_MODEL_AMBIENT
:
421 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
422 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
423 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
424 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
426 case GL_LIGHT_MODEL_COLOR_CONTROL
:
427 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
429 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
430 params
[0] = ctx
->Light
.Model
.LocalViewer
;
432 case GL_LIGHT_MODEL_TWO_SIDE
:
433 params
[0] = ctx
->Light
.Model
.TwoSide
;
436 params
[0] = ctx
->Line
.SmoothFlag
;
438 case GL_LINE_SMOOTH_HINT
:
439 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
441 case GL_LINE_STIPPLE
:
442 params
[0] = ctx
->Line
.StippleFlag
;
444 case GL_LINE_STIPPLE_PATTERN
:
445 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
447 case GL_LINE_STIPPLE_REPEAT
:
448 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
451 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
453 case GL_LINE_WIDTH_GRANULARITY
:
454 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
456 case GL_LINE_WIDTH_RANGE
:
457 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
458 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
460 case GL_ALIASED_LINE_WIDTH_RANGE
:
461 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
462 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
465 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
468 params
[0] = INT_TO_BOOLEAN(ctx
->ListState
.CurrentListNum
);
473 if (!ctx
->CompileFlag
)
475 else if (ctx
->ExecuteFlag
)
476 mode
= GL_COMPILE_AND_EXECUTE
;
479 params
[0] = ENUM_TO_BOOLEAN(mode
);
482 case GL_INDEX_LOGIC_OP
:
483 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
485 case GL_COLOR_LOGIC_OP
:
486 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
488 case GL_LOGIC_OP_MODE
:
489 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
491 case GL_MAP1_COLOR_4
:
492 params
[0] = ctx
->Eval
.Map1Color4
;
494 case GL_MAP1_GRID_DOMAIN
:
495 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
496 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
498 case GL_MAP1_GRID_SEGMENTS
:
499 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
502 params
[0] = ctx
->Eval
.Map1Index
;
505 params
[0] = ctx
->Eval
.Map1Normal
;
507 case GL_MAP1_TEXTURE_COORD_1
:
508 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
510 case GL_MAP1_TEXTURE_COORD_2
:
511 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
513 case GL_MAP1_TEXTURE_COORD_3
:
514 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
516 case GL_MAP1_TEXTURE_COORD_4
:
517 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
519 case GL_MAP1_VERTEX_3
:
520 params
[0] = ctx
->Eval
.Map1Vertex3
;
522 case GL_MAP1_VERTEX_4
:
523 params
[0] = ctx
->Eval
.Map1Vertex4
;
525 case GL_MAP2_COLOR_4
:
526 params
[0] = ctx
->Eval
.Map2Color4
;
528 case GL_MAP2_GRID_DOMAIN
:
529 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
530 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
531 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
532 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
534 case GL_MAP2_GRID_SEGMENTS
:
535 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
536 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
539 params
[0] = ctx
->Eval
.Map2Index
;
542 params
[0] = ctx
->Eval
.Map2Normal
;
544 case GL_MAP2_TEXTURE_COORD_1
:
545 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
547 case GL_MAP2_TEXTURE_COORD_2
:
548 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
550 case GL_MAP2_TEXTURE_COORD_3
:
551 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
553 case GL_MAP2_TEXTURE_COORD_4
:
554 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
556 case GL_MAP2_VERTEX_3
:
557 params
[0] = ctx
->Eval
.Map2Vertex3
;
559 case GL_MAP2_VERTEX_4
:
560 params
[0] = ctx
->Eval
.Map2Vertex4
;
563 params
[0] = ctx
->Pixel
.MapColorFlag
;
566 params
[0] = ctx
->Pixel
.MapStencilFlag
;
569 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
571 case GL_MAX_ATTRIB_STACK_DEPTH
:
572 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
574 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
575 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
577 case GL_MAX_CLIP_PLANES
:
578 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
580 case GL_MAX_ELEMENTS_VERTICES
:
581 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
583 case GL_MAX_ELEMENTS_INDICES
:
584 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
586 case GL_MAX_EVAL_ORDER
:
587 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
590 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
592 case GL_MAX_LIST_NESTING
:
593 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
595 case GL_MAX_MODELVIEW_STACK_DEPTH
:
596 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
598 case GL_MAX_NAME_STACK_DEPTH
:
599 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
601 case GL_MAX_PIXEL_MAP_TABLE
:
602 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
604 case GL_MAX_PROJECTION_STACK_DEPTH
:
605 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
607 case GL_MAX_TEXTURE_SIZE
:
608 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
610 case GL_MAX_3D_TEXTURE_SIZE
:
611 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
613 case GL_MAX_TEXTURE_STACK_DEPTH
:
614 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
616 case GL_MAX_VIEWPORT_DIMS
:
617 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
618 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
620 case GL_MODELVIEW_MATRIX
:
622 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
623 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
624 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
625 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
626 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
627 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
628 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
629 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
630 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
631 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
632 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
633 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
634 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
635 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
636 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
637 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
638 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
641 case GL_MODELVIEW_STACK_DEPTH
:
642 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
644 case GL_NAME_STACK_DEPTH
:
645 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
648 params
[0] = ctx
->Transform
.Normalize
;
650 case GL_PACK_ALIGNMENT
:
651 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
653 case GL_PACK_LSB_FIRST
:
654 params
[0] = ctx
->Pack
.LsbFirst
;
656 case GL_PACK_ROW_LENGTH
:
657 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
659 case GL_PACK_SKIP_PIXELS
:
660 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
662 case GL_PACK_SKIP_ROWS
:
663 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
665 case GL_PACK_SWAP_BYTES
:
666 params
[0] = ctx
->Pack
.SwapBytes
;
668 case GL_PACK_SKIP_IMAGES_EXT
:
669 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
671 case GL_PACK_IMAGE_HEIGHT_EXT
:
672 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
674 case GL_PACK_INVERT_MESA
:
675 params
[0] = ctx
->Pack
.Invert
;
677 case GL_PERSPECTIVE_CORRECTION_HINT
:
678 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
680 case GL_PIXEL_MAP_A_TO_A_SIZE
:
681 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapAtoAsize
);
683 case GL_PIXEL_MAP_B_TO_B_SIZE
:
684 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapBtoBsize
);
686 case GL_PIXEL_MAP_G_TO_G_SIZE
:
687 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapGtoGsize
);
689 case GL_PIXEL_MAP_I_TO_A_SIZE
:
690 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoAsize
);
692 case GL_PIXEL_MAP_I_TO_B_SIZE
:
693 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoBsize
);
695 case GL_PIXEL_MAP_I_TO_G_SIZE
:
696 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoGsize
);
698 case GL_PIXEL_MAP_I_TO_I_SIZE
:
699 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoIsize
);
701 case GL_PIXEL_MAP_I_TO_R_SIZE
:
702 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapItoRsize
);
704 case GL_PIXEL_MAP_R_TO_R_SIZE
:
705 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapRtoRsize
);
707 case GL_PIXEL_MAP_S_TO_S_SIZE
:
708 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.MapStoSsize
);
711 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
713 case GL_POINT_SIZE_GRANULARITY
:
714 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
716 case GL_POINT_SIZE_RANGE
:
717 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
718 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
720 case GL_ALIASED_POINT_SIZE_RANGE
:
721 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
722 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
724 case GL_POINT_SMOOTH
:
725 params
[0] = ctx
->Point
.SmoothFlag
;
727 case GL_POINT_SMOOTH_HINT
:
728 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
730 case GL_POINT_SIZE_MIN_EXT
:
731 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
733 case GL_POINT_SIZE_MAX_EXT
:
734 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
736 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
737 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
739 case GL_DISTANCE_ATTENUATION_EXT
:
740 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
741 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
742 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
744 case GL_POLYGON_MODE
:
745 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
746 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
748 case GL_POLYGON_OFFSET_BIAS_EXT
:
749 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
751 case GL_POLYGON_OFFSET_FACTOR
:
752 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
754 case GL_POLYGON_OFFSET_UNITS
:
755 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
757 case GL_POLYGON_SMOOTH
:
758 params
[0] = ctx
->Polygon
.SmoothFlag
;
760 case GL_POLYGON_SMOOTH_HINT
:
761 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
763 case GL_POLYGON_STIPPLE
:
764 params
[0] = ctx
->Polygon
.StippleFlag
;
766 case GL_PROJECTION_MATRIX
:
768 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
769 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
770 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
771 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
772 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
773 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
774 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
775 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
776 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
777 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
778 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
779 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
780 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
781 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
782 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
783 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
784 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
787 case GL_PROJECTION_STACK_DEPTH
:
788 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
791 params
[0] = ENUM_TO_BOOLEAN(ctx
->Pixel
.ReadBuffer
);
794 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
797 params
[0] = INT_TO_BOOLEAN( ctx
->Visual
.redBits
);
800 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
803 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
805 case GL_RESCALE_NORMAL
:
806 params
[0] = ctx
->Transform
.RescaleNormals
;
809 params
[0] = ctx
->Visual
.rgbMode
;
812 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
813 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
814 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
815 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
817 case GL_SCISSOR_TEST
:
818 params
[0] = ctx
->Scissor
.Enabled
;
820 case GL_SELECTION_BUFFER_SIZE
:
821 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
824 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
826 case GL_SHARED_TEXTURE_PALETTE_EXT
:
827 params
[0] = ctx
->Texture
.SharedPalette
;
829 case GL_STENCIL_BITS
:
830 params
[0] = INT_TO_BOOLEAN(ctx
->Visual
.stencilBits
);
832 case GL_STENCIL_CLEAR_VALUE
:
833 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
835 case GL_STENCIL_FAIL
:
836 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
838 case GL_STENCIL_FUNC
:
839 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
841 case GL_STENCIL_PASS_DEPTH_FAIL
:
842 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
844 case GL_STENCIL_PASS_DEPTH_PASS
:
845 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
848 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
850 case GL_STENCIL_TEST
:
851 params
[0] = ctx
->Stencil
.Enabled
;
853 case GL_STENCIL_VALUE_MASK
:
854 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
856 case GL_STENCIL_WRITEMASK
:
857 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
860 params
[0] = ctx
->Visual
.stereoMode
;
862 case GL_SUBPIXEL_BITS
:
863 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
866 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
869 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
872 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
874 case GL_TEXTURE_BINDING_1D
:
875 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
877 case GL_TEXTURE_BINDING_2D
:
878 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
880 case GL_TEXTURE_BINDING_3D
:
881 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
883 case GL_TEXTURE_ENV_COLOR
:
885 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
886 params
[0] = FLOAT_TO_BOOLEAN(color
[0]);
887 params
[1] = FLOAT_TO_BOOLEAN(color
[1]);
888 params
[2] = FLOAT_TO_BOOLEAN(color
[2]);
889 params
[3] = FLOAT_TO_BOOLEAN(color
[3]);
892 case GL_TEXTURE_ENV_MODE
:
893 params
[0] = ENUM_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
895 case GL_TEXTURE_GEN_S
:
896 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
898 case GL_TEXTURE_GEN_T
:
899 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
901 case GL_TEXTURE_GEN_R
:
902 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
904 case GL_TEXTURE_GEN_Q
:
905 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
907 case GL_TEXTURE_MATRIX
:
909 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
910 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
911 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
912 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
913 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
914 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
915 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
916 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
917 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
918 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
919 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
920 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
921 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
922 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
923 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
924 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
925 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
928 case GL_TEXTURE_STACK_DEPTH
:
929 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
931 case GL_UNPACK_ALIGNMENT
:
932 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
934 case GL_UNPACK_LSB_FIRST
:
935 params
[0] = ctx
->Unpack
.LsbFirst
;
937 case GL_UNPACK_ROW_LENGTH
:
938 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
940 case GL_UNPACK_SKIP_PIXELS
:
941 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
943 case GL_UNPACK_SKIP_ROWS
:
944 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
946 case GL_UNPACK_SWAP_BYTES
:
947 params
[0] = ctx
->Unpack
.SwapBytes
;
949 case GL_UNPACK_SKIP_IMAGES_EXT
:
950 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
952 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
953 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
955 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
956 params
[0] = ctx
->Unpack
.ClientStorage
;
959 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
960 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
961 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
962 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
965 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
968 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
970 case GL_VERTEX_ARRAY
:
971 params
[0] = ctx
->Array
.Vertex
.Enabled
;
973 case GL_VERTEX_ARRAY_SIZE
:
974 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.Size
);
976 case GL_VERTEX_ARRAY_TYPE
:
977 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Vertex
.Type
);
979 case GL_VERTEX_ARRAY_STRIDE
:
980 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.Stride
);
982 case GL_VERTEX_ARRAY_COUNT_EXT
:
983 params
[0] = INT_TO_BOOLEAN(0);
985 case GL_NORMAL_ARRAY
:
986 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Normal
.Enabled
);
988 case GL_NORMAL_ARRAY_TYPE
:
989 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Normal
.Type
);
991 case GL_NORMAL_ARRAY_STRIDE
:
992 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.Stride
);
994 case GL_NORMAL_ARRAY_COUNT_EXT
:
995 params
[0] = INT_TO_BOOLEAN(0);
998 params
[0] = ctx
->Array
.Color
.Enabled
;
1000 case GL_COLOR_ARRAY_SIZE
:
1001 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.Size
);
1003 case GL_COLOR_ARRAY_TYPE
:
1004 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Color
.Type
);
1006 case GL_COLOR_ARRAY_STRIDE
:
1007 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.Stride
);
1009 case GL_COLOR_ARRAY_COUNT_EXT
:
1010 params
[0] = INT_TO_BOOLEAN(0);
1012 case GL_INDEX_ARRAY
:
1013 params
[0] = ctx
->Array
.Index
.Enabled
;
1015 case GL_INDEX_ARRAY_TYPE
:
1016 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.Index
.Type
);
1018 case GL_INDEX_ARRAY_STRIDE
:
1019 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.Stride
);
1021 case GL_INDEX_ARRAY_COUNT_EXT
:
1022 params
[0] = INT_TO_BOOLEAN(0);
1024 case GL_TEXTURE_COORD_ARRAY
:
1025 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1027 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1028 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1030 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1031 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1033 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1034 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1036 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1037 params
[0] = INT_TO_BOOLEAN(0);
1039 case GL_EDGE_FLAG_ARRAY
:
1040 params
[0] = ctx
->Array
.EdgeFlag
.Enabled
;
1042 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1043 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.Stride
);
1045 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1046 params
[0] = INT_TO_BOOLEAN(0);
1048 case GL_MAX_TEXTURE_UNITS_ARB
:
1049 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1050 params
[0] = INT_TO_BOOLEAN(MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
));
1052 case GL_ACTIVE_TEXTURE_ARB
:
1053 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1054 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1056 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1057 CHECK_EXTENSION_B(ARB_multitexture
, pname
);
1058 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1060 case GL_TEXTURE_CUBE_MAP_ARB
:
1061 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1062 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1064 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1065 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1066 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
1068 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1069 CHECK_EXTENSION_B(ARB_texture_cube_map
, pname
);
1070 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1072 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1073 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1074 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1076 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1077 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1078 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
));
1080 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1081 CHECK_EXTENSION_B(ARB_texture_compression
, pname
);
1084 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
1085 for (i
= 0; i
< n
; i
++)
1086 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
1089 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1090 CHECK_EXTENSION_B(EXT_compiled_vertex_array
, pname
);
1091 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1093 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1094 CHECK_EXTENSION_B(EXT_compiled_vertex_array
, pname
);
1095 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1097 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1099 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1100 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1101 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1102 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1103 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1104 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1105 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1106 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1107 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1108 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1109 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1110 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1111 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1112 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1113 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1114 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1115 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1118 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1120 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1121 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1122 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1123 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1124 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1125 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1126 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1127 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1128 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1129 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1130 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1131 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1132 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1133 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1134 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1135 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1136 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1139 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1141 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1142 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1143 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1144 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1145 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1146 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1147 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1148 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1149 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1150 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1151 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1152 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1153 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1154 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1155 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1156 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1157 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1160 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1162 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1163 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1164 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1165 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1166 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1167 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1168 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1169 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1170 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1171 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1172 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1173 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1174 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1175 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1176 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1177 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1178 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1181 case GL_OCCLUSION_TEST_HP
:
1182 CHECK_EXTENSION_B(HP_occlusion_test
, pname
);
1183 params
[0] = ctx
->Depth
.OcclusionTest
;
1185 case GL_OCCLUSION_TEST_RESULT_HP
:
1186 CHECK_EXTENSION_B(HP_occlusion_test
, pname
);
1188 if (ctx
->Depth
.OcclusionTest
)
1189 params
[0] = ctx
->OcclusionResult
;
1191 params
[0] = ctx
->OcclusionResultSaved
;
1192 /* reset flag now */
1193 ctx
->OcclusionResult
= GL_FALSE
;
1194 ctx
->OcclusionResultSaved
= GL_FALSE
;
1198 case GL_PIXEL_TEXTURE_SGIS
:
1199 CHECK_EXTENSION_B(SGIS_pixel_texture
, pname
);
1200 params
[0] = ctx
->Pixel
.PixelTextureEnabled
;
1202 case GL_PIXEL_TEX_GEN_SGIX
:
1203 CHECK_EXTENSION_B(SGIX_pixel_texture
, pname
);
1204 params
[0] = ctx
->Pixel
.PixelTextureEnabled
;
1206 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
1207 CHECK_EXTENSION_B(SGIX_pixel_texture
, pname
);
1208 params
[0] = ENUM_TO_BOOLEAN(pixel_texgen_mode(ctx
));
1210 case GL_COLOR_MATRIX_SGI
:
1212 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1213 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1214 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1215 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1216 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1217 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1218 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1219 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1220 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1221 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1222 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1223 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1224 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1225 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1226 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1227 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1228 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1231 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1232 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1234 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1235 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1237 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1238 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1240 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1241 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1243 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1244 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1246 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1247 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1249 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1250 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1252 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1253 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1255 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1256 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1258 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1261 case GL_CONVOLUTION_1D_EXT
:
1262 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1263 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1265 case GL_CONVOLUTION_2D_EXT
:
1266 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1267 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1269 case GL_SEPARABLE_2D_EXT
:
1270 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1271 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1273 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1274 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1275 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1277 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1278 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1279 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1281 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1282 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1283 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1285 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1286 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1287 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1289 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1290 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1291 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1293 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1294 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1295 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1297 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1298 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1299 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1301 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1302 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1303 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1306 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1307 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1310 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1311 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1313 case GL_COLOR_TABLE_SGI
:
1314 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1315 params
[0] = ctx
->Pixel
.ColorTableEnabled
;
1317 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1318 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1319 params
[0] = ctx
->Pixel
.PostConvolutionColorTableEnabled
;
1321 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1322 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1323 params
[0] = ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
1325 case GL_TEXTURE_COLOR_TABLE_SGI
:
1326 CHECK_EXTENSION_B(SGI_texture_color_table
, pname
);
1327 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1329 case GL_COLOR_SUM_EXT
:
1330 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1331 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1333 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1334 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1336 FLUSH_CURRENT(ctx
, 0);
1337 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1338 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1339 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1340 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1343 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1344 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1345 params
[0] = ctx
->Array
.SecondaryColor
.Enabled
;
1347 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1348 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1349 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Type
);
1351 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1352 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1353 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Stride
);
1355 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1356 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1357 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Size
);
1359 case GL_CURRENT_FOG_COORDINATE_EXT
:
1360 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1362 FLUSH_CURRENT(ctx
, 0);
1363 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1366 case GL_FOG_COORDINATE_ARRAY_EXT
:
1367 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1368 params
[0] = ctx
->Array
.FogCoord
.Enabled
;
1370 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1371 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1372 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.FogCoord
.Type
);
1374 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1375 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1376 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.Stride
);
1378 case GL_FOG_COORDINATE_SOURCE_EXT
:
1379 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1380 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1382 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1383 CHECK_EXTENSION_B(EXT_texture_lod_bias
, pname
);
1384 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1386 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1387 CHECK_EXTENSION_B(EXT_texture_filter_anisotropic
, pname
);
1388 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1390 case GL_MULTISAMPLE_ARB
:
1391 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1392 params
[0] = ctx
->Multisample
.Enabled
;
1394 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1395 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1396 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1398 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1399 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1400 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1402 case GL_SAMPLE_COVERAGE_ARB
:
1403 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1404 params
[0] = ctx
->Multisample
.SampleCoverage
;
1406 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1407 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1408 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1410 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1411 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1412 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1414 case GL_SAMPLE_BUFFERS_ARB
:
1415 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1416 params
[0] = INT_TO_BOOLEAN(0);
1418 case GL_SAMPLES_ARB
:
1419 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1420 params
[0] = INT_TO_BOOLEAN(0);
1422 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1423 CHECK_EXTENSION_B(IBM_rasterpos_clip
, pname
);
1424 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1426 case GL_POINT_SPRITE_NV
:
1427 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1428 params
[0] = ctx
->Point
.PointSprite
;
1430 case GL_POINT_SPRITE_R_MODE_NV
:
1431 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1432 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1434 case GL_POINT_SPRITE_COORD_ORIGIN
:
1435 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1436 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1438 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1439 CHECK_EXTENSION_B(SGIS_generate_mipmap
, pname
);
1440 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1442 case GL_VERTEX_PROGRAM_NV
:
1443 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1444 params
[0] = ctx
->VertexProgram
.Enabled
;
1446 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
1447 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1448 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1450 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
1451 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1452 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1454 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
1455 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1456 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1458 case GL_MAX_TRACK_MATRICES_NV
:
1459 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1460 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1462 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
1463 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1464 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1466 case GL_CURRENT_MATRIX_NV
:
1467 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1469 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1470 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1471 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1472 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1473 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1474 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1475 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1476 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1477 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1478 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1479 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1480 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1481 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1482 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1483 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1484 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1485 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1488 case GL_VERTEX_PROGRAM_BINDING_NV
:
1489 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1490 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1492 case GL_PROGRAM_ERROR_POSITION_NV
:
1493 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1494 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1496 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1497 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1498 params
[0] = ctx
->Array
.VertexAttrib
[0].Enabled
;
1500 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1501 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1502 params
[0] = ctx
->Array
.VertexAttrib
[1].Enabled
;
1504 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1505 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1506 params
[0] = ctx
->Array
.VertexAttrib
[2].Enabled
;
1508 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1509 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1510 params
[0] = ctx
->Array
.VertexAttrib
[3].Enabled
;
1512 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1513 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1514 params
[0] = ctx
->Array
.VertexAttrib
[4].Enabled
;
1516 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1517 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1518 params
[0] = ctx
->Array
.VertexAttrib
[5].Enabled
;
1520 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1521 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1522 params
[0] = ctx
->Array
.VertexAttrib
[6].Enabled
;
1524 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1525 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1526 params
[0] = ctx
->Array
.VertexAttrib
[7].Enabled
;
1528 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1529 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1530 params
[0] = ctx
->Array
.VertexAttrib
[8].Enabled
;
1532 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1533 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1534 params
[0] = ctx
->Array
.VertexAttrib
[9].Enabled
;
1536 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1537 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1538 params
[0] = ctx
->Array
.VertexAttrib
[10].Enabled
;
1540 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1541 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1542 params
[0] = ctx
->Array
.VertexAttrib
[11].Enabled
;
1544 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1545 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1546 params
[0] = ctx
->Array
.VertexAttrib
[12].Enabled
;
1548 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1549 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1550 params
[0] = ctx
->Array
.VertexAttrib
[13].Enabled
;
1552 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1553 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1554 params
[0] = ctx
->Array
.VertexAttrib
[14].Enabled
;
1556 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1557 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1558 params
[0] = ctx
->Array
.VertexAttrib
[15].Enabled
;
1560 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1561 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1562 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1564 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1565 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1566 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1568 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1569 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1570 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1572 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1573 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1574 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1576 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1577 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1578 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1580 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1581 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1582 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1584 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1585 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1586 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1588 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1589 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1590 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1592 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1593 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1594 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1596 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1597 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1598 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1600 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1601 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1602 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1604 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1605 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1606 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1608 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1609 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1610 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1612 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1613 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1614 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1616 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1617 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1618 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1620 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1621 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1622 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1624 case GL_FRAGMENT_PROGRAM_NV
:
1625 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1626 params
[0] = ctx
->FragmentProgram
.Enabled
;
1628 case GL_MAX_TEXTURE_COORDS_NV
:
1629 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1630 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1632 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
1633 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1634 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1636 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1637 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1638 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
1640 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1641 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1642 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1644 case GL_TEXTURE_RECTANGLE_NV
:
1645 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1646 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1648 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1649 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1650 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
1652 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1653 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1654 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1656 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1657 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1658 params
[0] = ctx
->Stencil
.TestTwoSide
;
1660 case GL_ACTIVE_STENCIL_FACE_EXT
:
1661 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1662 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1664 case GL_MAX_SHININESS_NV
:
1665 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1666 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1668 case GL_MAX_SPOT_EXPONENT_NV
:
1669 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1670 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1672 case GL_ARRAY_BUFFER_BINDING_ARB
:
1673 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1674 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1676 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1677 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1678 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.BufferObj
->Name
);
1680 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1681 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1682 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.BufferObj
->Name
);
1684 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1685 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1686 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.BufferObj
->Name
);
1688 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1689 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1690 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.BufferObj
->Name
);
1692 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1693 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1694 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1696 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1697 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1698 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
1700 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1701 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1702 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
1704 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1705 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1706 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.BufferObj
->Name
);
1708 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1709 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1710 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1712 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1713 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1714 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1716 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1717 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1718 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1720 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1721 CHECK_EXTENSION_B(ARB_vertex_program
, pname
);
1722 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexProgramAttribs
);
1724 case GL_FRAGMENT_PROGRAM_ARB
:
1725 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1726 params
[0] = ctx
->FragmentProgram
.Enabled
;
1728 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1729 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1731 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1732 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1733 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1734 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1735 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1736 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1737 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1738 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1739 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1740 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1741 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1742 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1743 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1744 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1745 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1746 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1747 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1750 case GL_DEPTH_BOUNDS_TEST_EXT
:
1751 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1752 params
[0] = ctx
->Depth
.BoundsTest
;
1754 case GL_DEPTH_BOUNDS_EXT
:
1755 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1756 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1757 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1759 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1760 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1761 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1763 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1764 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1765 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1767 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1768 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1769 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1771 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1772 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1773 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1775 case GL_MAX_DRAW_BUFFERS_ARB
:
1776 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1777 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1779 case GL_DRAW_BUFFER0_ARB
:
1780 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1781 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.DrawBuffer
[0]);
1783 case GL_DRAW_BUFFER1_ARB
:
1784 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1787 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1788 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1791 buffer
= ctx
->Color
.DrawBuffer
[1];
1792 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1795 case GL_DRAW_BUFFER2_ARB
:
1796 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1799 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1800 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1803 buffer
= ctx
->Color
.DrawBuffer
[2];
1804 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1807 case GL_DRAW_BUFFER3_ARB
:
1808 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1811 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1812 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1815 buffer
= ctx
->Color
.DrawBuffer
[3];
1816 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1819 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1820 CHECK_EXTENSION_B(OES_read_format
, pname
);
1821 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1823 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1824 CHECK_EXTENSION_B(OES_read_format
, pname
);
1825 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1827 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1828 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1829 params
[0] = INT_TO_BOOLEAN(6);
1831 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1832 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1833 params
[0] = INT_TO_BOOLEAN(8);
1835 case GL_NUM_PASSES_ATI
:
1836 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1837 params
[0] = INT_TO_BOOLEAN(2);
1839 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1840 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1841 params
[0] = INT_TO_BOOLEAN(8);
1843 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1844 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1845 params
[0] = INT_TO_BOOLEAN(16);
1847 case GL_COLOR_ALPHA_PAIRING_ATI
:
1848 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1849 params
[0] = GL_TRUE
;
1851 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1852 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1853 params
[0] = INT_TO_BOOLEAN(3);
1855 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1856 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1857 params
[0] = INT_TO_BOOLEAN(3);
1859 case GL_STENCIL_BACK_FUNC
:
1860 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1862 case GL_STENCIL_BACK_VALUE_MASK
:
1863 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1865 case GL_STENCIL_BACK_REF
:
1866 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1868 case GL_STENCIL_BACK_FAIL
:
1869 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1871 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1872 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1874 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1875 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1877 case GL_FRAMEBUFFER_BINDING_EXT
:
1878 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1879 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentFramebuffer
? ctx
->CurrentFramebuffer
->Name
: 0);
1881 case GL_RENDERBUFFER_BINDING_EXT
:
1882 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1883 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1885 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1886 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1887 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1889 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1890 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1891 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1894 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1899 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1901 GET_CURRENT_CONTEXT(ctx
);
1902 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1907 if (ctx
->Driver
.GetFloatv
&&
1908 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1912 case GL_ACCUM_RED_BITS
:
1913 params
[0] = (GLfloat
)(ctx
->Visual
.accumRedBits
);
1915 case GL_ACCUM_GREEN_BITS
:
1916 params
[0] = (GLfloat
)(ctx
->Visual
.accumGreenBits
);
1918 case GL_ACCUM_BLUE_BITS
:
1919 params
[0] = (GLfloat
)(ctx
->Visual
.accumBlueBits
);
1921 case GL_ACCUM_ALPHA_BITS
:
1922 params
[0] = (GLfloat
)(ctx
->Visual
.accumAlphaBits
);
1924 case GL_ACCUM_CLEAR_VALUE
:
1925 params
[0] = ctx
->Accum
.ClearColor
[0];
1926 params
[1] = ctx
->Accum
.ClearColor
[1];
1927 params
[2] = ctx
->Accum
.ClearColor
[2];
1928 params
[3] = ctx
->Accum
.ClearColor
[3];
1931 params
[0] = ctx
->Pixel
.AlphaBias
;
1934 params
[0] = (GLfloat
)(ctx
->Visual
.alphaBits
);
1936 case GL_ALPHA_SCALE
:
1937 params
[0] = ctx
->Pixel
.AlphaScale
;
1940 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1942 case GL_ALPHA_TEST_FUNC
:
1943 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1945 case GL_ALPHA_TEST_REF
:
1946 params
[0] = ctx
->Color
.AlphaRef
;
1948 case GL_ATTRIB_STACK_DEPTH
:
1949 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1951 case GL_AUTO_NORMAL
:
1952 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1954 case GL_AUX_BUFFERS
:
1955 params
[0] = (GLfloat
)(ctx
->Visual
.numAuxBuffers
);
1958 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1961 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1964 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1966 case GL_BLEND_SRC_RGB_EXT
:
1967 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1969 case GL_BLEND_DST_RGB_EXT
:
1970 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1972 case GL_BLEND_SRC_ALPHA_EXT
:
1973 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1975 case GL_BLEND_DST_ALPHA_EXT
:
1976 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1978 case GL_BLEND_EQUATION
:
1979 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
1981 case GL_BLEND_EQUATION_ALPHA_EXT
:
1982 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
1984 case GL_BLEND_COLOR_EXT
:
1985 params
[0] = ctx
->Color
.BlendColor
[0];
1986 params
[1] = ctx
->Color
.BlendColor
[1];
1987 params
[2] = ctx
->Color
.BlendColor
[2];
1988 params
[3] = ctx
->Color
.BlendColor
[3];
1991 params
[0] = ctx
->Pixel
.BlueBias
;
1994 params
[0] = (GLfloat
)(ctx
->Visual
.blueBits
);
1997 params
[0] = ctx
->Pixel
.BlueScale
;
1999 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2000 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2002 case GL_CLIP_PLANE0
:
2003 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2005 case GL_CLIP_PLANE1
:
2006 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2008 case GL_CLIP_PLANE2
:
2009 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2011 case GL_CLIP_PLANE3
:
2012 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2014 case GL_CLIP_PLANE4
:
2015 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2017 case GL_CLIP_PLANE5
:
2018 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2020 case GL_COLOR_CLEAR_VALUE
:
2021 params
[0] = ctx
->Color
.ClearColor
[0];
2022 params
[1] = ctx
->Color
.ClearColor
[1];
2023 params
[2] = ctx
->Color
.ClearColor
[2];
2024 params
[3] = ctx
->Color
.ClearColor
[3];
2026 case GL_COLOR_MATERIAL
:
2027 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2029 case GL_COLOR_MATERIAL_FACE
:
2030 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2032 case GL_COLOR_MATERIAL_PARAMETER
:
2033 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2035 case GL_COLOR_WRITEMASK
:
2036 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2037 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2038 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2039 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2042 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2044 case GL_CULL_FACE_MODE
:
2045 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2047 case GL_CURRENT_COLOR
:
2049 FLUSH_CURRENT(ctx
, 0);
2050 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2051 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2052 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2053 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2056 case GL_CURRENT_INDEX
:
2058 FLUSH_CURRENT(ctx
, 0);
2059 params
[0] = ctx
->Current
.Index
;
2062 case GL_CURRENT_NORMAL
:
2064 FLUSH_CURRENT(ctx
, 0);
2065 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2066 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2067 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2070 case GL_CURRENT_RASTER_COLOR
:
2071 params
[0] = ctx
->Current
.RasterColor
[0];
2072 params
[1] = ctx
->Current
.RasterColor
[1];
2073 params
[2] = ctx
->Current
.RasterColor
[2];
2074 params
[3] = ctx
->Current
.RasterColor
[3];
2076 case GL_CURRENT_RASTER_DISTANCE
:
2077 params
[0] = ctx
->Current
.RasterDistance
;
2079 case GL_CURRENT_RASTER_INDEX
:
2080 params
[0] = ctx
->Current
.RasterIndex
;
2082 case GL_CURRENT_RASTER_POSITION
:
2083 params
[0] = ctx
->Current
.RasterPos
[0];
2084 params
[1] = ctx
->Current
.RasterPos
[1];
2085 params
[2] = ctx
->Current
.RasterPos
[2];
2086 params
[3] = ctx
->Current
.RasterPos
[3];
2088 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2090 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2091 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2092 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2093 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2094 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2097 case GL_CURRENT_RASTER_POSITION_VALID
:
2098 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2100 case GL_CURRENT_TEXTURE_COORDS
:
2102 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2103 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2104 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2105 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2106 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2110 params
[0] = ctx
->Pixel
.DepthBias
;
2113 params
[0] = (GLfloat
)(ctx
->Visual
.depthBits
);
2115 case GL_DEPTH_CLEAR_VALUE
:
2116 params
[0] = ctx
->Depth
.Clear
;
2119 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2121 case GL_DEPTH_RANGE
:
2122 params
[0] = ctx
->Viewport
.Near
;
2123 params
[1] = ctx
->Viewport
.Far
;
2125 case GL_DEPTH_SCALE
:
2126 params
[0] = ctx
->Pixel
.DepthScale
;
2129 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2131 case GL_DEPTH_WRITEMASK
:
2132 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2135 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2137 case GL_DOUBLEBUFFER
:
2138 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Visual
.doubleBufferMode
);
2140 case GL_DRAW_BUFFER
:
2141 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
2145 FLUSH_CURRENT(ctx
, 0);
2146 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.EdgeFlag
);
2149 case GL_FEEDBACK_BUFFER_SIZE
:
2150 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2152 case GL_FEEDBACK_BUFFER_TYPE
:
2153 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2156 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2159 params
[0] = ctx
->Fog
.Color
[0];
2160 params
[1] = ctx
->Fog
.Color
[1];
2161 params
[2] = ctx
->Fog
.Color
[2];
2162 params
[3] = ctx
->Fog
.Color
[3];
2164 case GL_FOG_DENSITY
:
2165 params
[0] = ctx
->Fog
.Density
;
2168 params
[0] = ctx
->Fog
.End
;
2171 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2174 params
[0] = ctx
->Fog
.Index
;
2177 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2180 params
[0] = ctx
->Fog
.Start
;
2183 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2186 params
[0] = ctx
->Pixel
.GreenBias
;
2189 params
[0] = (GLfloat
)(ctx
->Visual
.greenBits
);
2191 case GL_GREEN_SCALE
:
2192 params
[0] = ctx
->Pixel
.GreenScale
;
2195 params
[0] = (GLfloat
)(ctx
->Visual
.indexBits
);
2197 case GL_INDEX_CLEAR_VALUE
:
2198 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2201 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->Visual
.rgbMode
);
2203 case GL_INDEX_OFFSET
:
2204 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2206 case GL_INDEX_SHIFT
:
2207 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2209 case GL_INDEX_WRITEMASK
:
2210 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2213 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2216 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2219 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2222 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2225 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2228 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2231 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2234 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2237 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2239 case GL_LIGHT_MODEL_AMBIENT
:
2240 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2241 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2242 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2243 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2245 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2246 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2248 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2249 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2251 case GL_LIGHT_MODEL_TWO_SIDE
:
2252 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2254 case GL_LINE_SMOOTH
:
2255 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2257 case GL_LINE_SMOOTH_HINT
:
2258 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2260 case GL_LINE_STIPPLE
:
2261 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2263 case GL_LINE_STIPPLE_PATTERN
:
2264 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2266 case GL_LINE_STIPPLE_REPEAT
:
2267 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2270 params
[0] = ctx
->Line
.Width
;
2272 case GL_LINE_WIDTH_GRANULARITY
:
2273 params
[0] = ctx
->Const
.LineWidthGranularity
;
2275 case GL_LINE_WIDTH_RANGE
:
2276 params
[0] = ctx
->Const
.MinLineWidthAA
;
2277 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2279 case GL_ALIASED_LINE_WIDTH_RANGE
:
2280 params
[0] = ctx
->Const
.MinLineWidth
;
2281 params
[1] = ctx
->Const
.MaxLineWidth
;
2284 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2287 params
[0] = (GLfloat
)(ctx
->ListState
.CurrentListNum
);
2292 if (!ctx
->CompileFlag
)
2294 else if (ctx
->ExecuteFlag
)
2295 mode
= GL_COMPILE_AND_EXECUTE
;
2298 params
[0] = ENUM_TO_FLOAT(mode
);
2301 case GL_INDEX_LOGIC_OP
:
2302 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2304 case GL_COLOR_LOGIC_OP
:
2305 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2307 case GL_LOGIC_OP_MODE
:
2308 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2310 case GL_MAP1_COLOR_4
:
2311 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2313 case GL_MAP1_GRID_DOMAIN
:
2314 params
[0] = ctx
->Eval
.MapGrid1u1
;
2315 params
[1] = ctx
->Eval
.MapGrid1u2
;
2317 case GL_MAP1_GRID_SEGMENTS
:
2318 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2321 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2323 case GL_MAP1_NORMAL
:
2324 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2326 case GL_MAP1_TEXTURE_COORD_1
:
2327 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2329 case GL_MAP1_TEXTURE_COORD_2
:
2330 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2332 case GL_MAP1_TEXTURE_COORD_3
:
2333 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2335 case GL_MAP1_TEXTURE_COORD_4
:
2336 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2338 case GL_MAP1_VERTEX_3
:
2339 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2341 case GL_MAP1_VERTEX_4
:
2342 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2344 case GL_MAP2_COLOR_4
:
2345 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2347 case GL_MAP2_GRID_DOMAIN
:
2348 params
[0] = ctx
->Eval
.MapGrid2u1
;
2349 params
[1] = ctx
->Eval
.MapGrid2u2
;
2350 params
[2] = ctx
->Eval
.MapGrid2v1
;
2351 params
[3] = ctx
->Eval
.MapGrid2v2
;
2353 case GL_MAP2_GRID_SEGMENTS
:
2354 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2355 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2358 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2360 case GL_MAP2_NORMAL
:
2361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2363 case GL_MAP2_TEXTURE_COORD_1
:
2364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2366 case GL_MAP2_TEXTURE_COORD_2
:
2367 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2369 case GL_MAP2_TEXTURE_COORD_3
:
2370 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2372 case GL_MAP2_TEXTURE_COORD_4
:
2373 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2375 case GL_MAP2_VERTEX_3
:
2376 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2378 case GL_MAP2_VERTEX_4
:
2379 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2382 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2384 case GL_MAP_STENCIL
:
2385 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2387 case GL_MATRIX_MODE
:
2388 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2390 case GL_MAX_ATTRIB_STACK_DEPTH
:
2391 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2393 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2394 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2396 case GL_MAX_CLIP_PLANES
:
2397 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2399 case GL_MAX_ELEMENTS_VERTICES
:
2400 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2402 case GL_MAX_ELEMENTS_INDICES
:
2403 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2405 case GL_MAX_EVAL_ORDER
:
2406 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2409 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2411 case GL_MAX_LIST_NESTING
:
2412 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2414 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2415 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2417 case GL_MAX_NAME_STACK_DEPTH
:
2418 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2420 case GL_MAX_PIXEL_MAP_TABLE
:
2421 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2423 case GL_MAX_PROJECTION_STACK_DEPTH
:
2424 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2426 case GL_MAX_TEXTURE_SIZE
:
2427 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2429 case GL_MAX_3D_TEXTURE_SIZE
:
2430 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2432 case GL_MAX_TEXTURE_STACK_DEPTH
:
2433 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2435 case GL_MAX_VIEWPORT_DIMS
:
2436 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2437 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2439 case GL_MODELVIEW_MATRIX
:
2441 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2442 params
[0] = matrix
[0];
2443 params
[1] = matrix
[1];
2444 params
[2] = matrix
[2];
2445 params
[3] = matrix
[3];
2446 params
[4] = matrix
[4];
2447 params
[5] = matrix
[5];
2448 params
[6] = matrix
[6];
2449 params
[7] = matrix
[7];
2450 params
[8] = matrix
[8];
2451 params
[9] = matrix
[9];
2452 params
[10] = matrix
[10];
2453 params
[11] = matrix
[11];
2454 params
[12] = matrix
[12];
2455 params
[13] = matrix
[13];
2456 params
[14] = matrix
[14];
2457 params
[15] = matrix
[15];
2460 case GL_MODELVIEW_STACK_DEPTH
:
2461 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2463 case GL_NAME_STACK_DEPTH
:
2464 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2467 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2469 case GL_PACK_ALIGNMENT
:
2470 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2472 case GL_PACK_LSB_FIRST
:
2473 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2475 case GL_PACK_ROW_LENGTH
:
2476 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2478 case GL_PACK_SKIP_PIXELS
:
2479 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2481 case GL_PACK_SKIP_ROWS
:
2482 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2484 case GL_PACK_SWAP_BYTES
:
2485 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2487 case GL_PACK_SKIP_IMAGES_EXT
:
2488 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2490 case GL_PACK_IMAGE_HEIGHT_EXT
:
2491 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2493 case GL_PACK_INVERT_MESA
:
2494 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2496 case GL_PERSPECTIVE_CORRECTION_HINT
:
2497 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2499 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2500 params
[0] = (GLfloat
)(ctx
->Pixel
.MapAtoAsize
);
2502 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2503 params
[0] = (GLfloat
)(ctx
->Pixel
.MapBtoBsize
);
2505 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2506 params
[0] = (GLfloat
)(ctx
->Pixel
.MapGtoGsize
);
2508 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2509 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoAsize
);
2511 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2512 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoBsize
);
2514 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2515 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoGsize
);
2517 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2518 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoIsize
);
2520 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2521 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoRsize
);
2523 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2524 params
[0] = (GLfloat
)(ctx
->Pixel
.MapRtoRsize
);
2526 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2527 params
[0] = (GLfloat
)(ctx
->Pixel
.MapStoSsize
);
2530 params
[0] = ctx
->Point
.Size
;
2532 case GL_POINT_SIZE_GRANULARITY
:
2533 params
[0] = ctx
->Const
.PointSizeGranularity
;
2535 case GL_POINT_SIZE_RANGE
:
2536 params
[0] = ctx
->Const
.MinPointSizeAA
;
2537 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2539 case GL_ALIASED_POINT_SIZE_RANGE
:
2540 params
[0] = ctx
->Const
.MinPointSize
;
2541 params
[1] = ctx
->Const
.MaxPointSize
;
2543 case GL_POINT_SMOOTH
:
2544 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2546 case GL_POINT_SMOOTH_HINT
:
2547 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2549 case GL_POINT_SIZE_MIN_EXT
:
2550 params
[0] = ctx
->Point
.MinSize
;
2552 case GL_POINT_SIZE_MAX_EXT
:
2553 params
[0] = ctx
->Point
.MaxSize
;
2555 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2556 params
[0] = ctx
->Point
.Threshold
;
2558 case GL_DISTANCE_ATTENUATION_EXT
:
2559 params
[0] = ctx
->Point
.Params
[0];
2560 params
[1] = ctx
->Point
.Params
[1];
2561 params
[2] = ctx
->Point
.Params
[2];
2563 case GL_POLYGON_MODE
:
2564 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2565 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2567 case GL_POLYGON_OFFSET_BIAS_EXT
:
2568 params
[0] = ctx
->Polygon
.OffsetUnits
;
2570 case GL_POLYGON_OFFSET_FACTOR
:
2571 params
[0] = ctx
->Polygon
.OffsetFactor
;
2573 case GL_POLYGON_OFFSET_UNITS
:
2574 params
[0] = ctx
->Polygon
.OffsetUnits
;
2576 case GL_POLYGON_SMOOTH
:
2577 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2579 case GL_POLYGON_SMOOTH_HINT
:
2580 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2582 case GL_POLYGON_STIPPLE
:
2583 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2585 case GL_PROJECTION_MATRIX
:
2587 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2588 params
[0] = matrix
[0];
2589 params
[1] = matrix
[1];
2590 params
[2] = matrix
[2];
2591 params
[3] = matrix
[3];
2592 params
[4] = matrix
[4];
2593 params
[5] = matrix
[5];
2594 params
[6] = matrix
[6];
2595 params
[7] = matrix
[7];
2596 params
[8] = matrix
[8];
2597 params
[9] = matrix
[9];
2598 params
[10] = matrix
[10];
2599 params
[11] = matrix
[11];
2600 params
[12] = matrix
[12];
2601 params
[13] = matrix
[13];
2602 params
[14] = matrix
[14];
2603 params
[15] = matrix
[15];
2606 case GL_PROJECTION_STACK_DEPTH
:
2607 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2609 case GL_READ_BUFFER
:
2610 params
[0] = ENUM_TO_FLOAT(ctx
->Pixel
.ReadBuffer
);
2613 params
[0] = ctx
->Pixel
.RedBias
;
2616 params
[0] = (GLfloat
)( ctx
->Visual
.redBits
);
2619 params
[0] = ctx
->Pixel
.RedScale
;
2621 case GL_RENDER_MODE
:
2622 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2624 case GL_RESCALE_NORMAL
:
2625 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2628 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Visual
.rgbMode
);
2630 case GL_SCISSOR_BOX
:
2631 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2632 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2633 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2634 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2636 case GL_SCISSOR_TEST
:
2637 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2639 case GL_SELECTION_BUFFER_SIZE
:
2640 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2642 case GL_SHADE_MODEL
:
2643 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2645 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2646 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2648 case GL_STENCIL_BITS
:
2649 params
[0] = (GLfloat
)(ctx
->Visual
.stencilBits
);
2651 case GL_STENCIL_CLEAR_VALUE
:
2652 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2654 case GL_STENCIL_FAIL
:
2655 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2657 case GL_STENCIL_FUNC
:
2658 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2660 case GL_STENCIL_PASS_DEPTH_FAIL
:
2661 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2663 case GL_STENCIL_PASS_DEPTH_PASS
:
2664 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2666 case GL_STENCIL_REF
:
2667 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2669 case GL_STENCIL_TEST
:
2670 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2672 case GL_STENCIL_VALUE_MASK
:
2673 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2675 case GL_STENCIL_WRITEMASK
:
2676 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2679 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Visual
.stereoMode
);
2681 case GL_SUBPIXEL_BITS
:
2682 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2685 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2688 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2691 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2693 case GL_TEXTURE_BINDING_1D
:
2694 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
2696 case GL_TEXTURE_BINDING_2D
:
2697 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2699 case GL_TEXTURE_BINDING_3D
:
2700 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
2702 case GL_TEXTURE_ENV_COLOR
:
2704 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
2705 params
[0] = color
[0];
2706 params
[1] = color
[1];
2707 params
[2] = color
[2];
2708 params
[3] = color
[3];
2711 case GL_TEXTURE_ENV_MODE
:
2712 params
[0] = ENUM_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
2714 case GL_TEXTURE_GEN_S
:
2715 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2717 case GL_TEXTURE_GEN_T
:
2718 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2720 case GL_TEXTURE_GEN_R
:
2721 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2723 case GL_TEXTURE_GEN_Q
:
2724 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2726 case GL_TEXTURE_MATRIX
:
2728 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2729 params
[0] = matrix
[0];
2730 params
[1] = matrix
[1];
2731 params
[2] = matrix
[2];
2732 params
[3] = matrix
[3];
2733 params
[4] = matrix
[4];
2734 params
[5] = matrix
[5];
2735 params
[6] = matrix
[6];
2736 params
[7] = matrix
[7];
2737 params
[8] = matrix
[8];
2738 params
[9] = matrix
[9];
2739 params
[10] = matrix
[10];
2740 params
[11] = matrix
[11];
2741 params
[12] = matrix
[12];
2742 params
[13] = matrix
[13];
2743 params
[14] = matrix
[14];
2744 params
[15] = matrix
[15];
2747 case GL_TEXTURE_STACK_DEPTH
:
2748 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2750 case GL_UNPACK_ALIGNMENT
:
2751 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2753 case GL_UNPACK_LSB_FIRST
:
2754 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2756 case GL_UNPACK_ROW_LENGTH
:
2757 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2759 case GL_UNPACK_SKIP_PIXELS
:
2760 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2762 case GL_UNPACK_SKIP_ROWS
:
2763 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2765 case GL_UNPACK_SWAP_BYTES
:
2766 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2768 case GL_UNPACK_SKIP_IMAGES_EXT
:
2769 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2771 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2772 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2774 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2775 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2778 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2779 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2780 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2781 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2784 params
[0] = ctx
->Pixel
.ZoomX
;
2787 params
[0] = ctx
->Pixel
.ZoomY
;
2789 case GL_VERTEX_ARRAY
:
2790 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Vertex
.Enabled
);
2792 case GL_VERTEX_ARRAY_SIZE
:
2793 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Size
);
2795 case GL_VERTEX_ARRAY_TYPE
:
2796 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Vertex
.Type
);
2798 case GL_VERTEX_ARRAY_STRIDE
:
2799 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Stride
);
2801 case GL_VERTEX_ARRAY_COUNT_EXT
:
2802 params
[0] = (GLfloat
)(0);
2804 case GL_NORMAL_ARRAY
:
2805 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Enabled
);
2807 case GL_NORMAL_ARRAY_TYPE
:
2808 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Type
);
2810 case GL_NORMAL_ARRAY_STRIDE
:
2811 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.Stride
);
2813 case GL_NORMAL_ARRAY_COUNT_EXT
:
2814 params
[0] = (GLfloat
)(0);
2816 case GL_COLOR_ARRAY
:
2817 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Color
.Enabled
);
2819 case GL_COLOR_ARRAY_SIZE
:
2820 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Size
);
2822 case GL_COLOR_ARRAY_TYPE
:
2823 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Color
.Type
);
2825 case GL_COLOR_ARRAY_STRIDE
:
2826 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Stride
);
2828 case GL_COLOR_ARRAY_COUNT_EXT
:
2829 params
[0] = (GLfloat
)(0);
2831 case GL_INDEX_ARRAY
:
2832 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Index
.Enabled
);
2834 case GL_INDEX_ARRAY_TYPE
:
2835 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Index
.Type
);
2837 case GL_INDEX_ARRAY_STRIDE
:
2838 params
[0] = (GLfloat
)(ctx
->Array
.Index
.Stride
);
2840 case GL_INDEX_ARRAY_COUNT_EXT
:
2841 params
[0] = (GLfloat
)(0);
2843 case GL_TEXTURE_COORD_ARRAY
:
2844 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2846 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2847 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2849 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2850 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2852 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2853 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2855 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2856 params
[0] = (GLfloat
)(0);
2858 case GL_EDGE_FLAG_ARRAY
:
2859 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.EdgeFlag
.Enabled
);
2861 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2862 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.Stride
);
2864 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2865 params
[0] = (GLfloat
)(0);
2867 case GL_MAX_TEXTURE_UNITS_ARB
:
2868 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2869 params
[0] = (GLfloat
)(MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
));
2871 case GL_ACTIVE_TEXTURE_ARB
:
2872 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2873 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2875 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2876 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2877 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2879 case GL_TEXTURE_CUBE_MAP_ARB
:
2880 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2881 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2883 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2884 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2885 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
2887 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2888 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2889 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2891 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2892 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2893 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2895 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2896 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2897 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
));
2899 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2900 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2903 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
2904 for (i
= 0; i
< n
; i
++)
2905 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
2908 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2909 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2910 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2912 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2913 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2914 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2916 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2918 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2919 params
[0] = matrix
[0];
2920 params
[1] = matrix
[4];
2921 params
[2] = matrix
[8];
2922 params
[3] = matrix
[12];
2923 params
[4] = matrix
[1];
2924 params
[5] = matrix
[5];
2925 params
[6] = matrix
[9];
2926 params
[7] = matrix
[13];
2927 params
[8] = matrix
[2];
2928 params
[9] = matrix
[6];
2929 params
[10] = matrix
[10];
2930 params
[11] = matrix
[14];
2931 params
[12] = matrix
[3];
2932 params
[13] = matrix
[7];
2933 params
[14] = matrix
[11];
2934 params
[15] = matrix
[15];
2937 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2939 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2940 params
[0] = matrix
[0];
2941 params
[1] = matrix
[4];
2942 params
[2] = matrix
[8];
2943 params
[3] = matrix
[12];
2944 params
[4] = matrix
[1];
2945 params
[5] = matrix
[5];
2946 params
[6] = matrix
[9];
2947 params
[7] = matrix
[13];
2948 params
[8] = matrix
[2];
2949 params
[9] = matrix
[6];
2950 params
[10] = matrix
[10];
2951 params
[11] = matrix
[14];
2952 params
[12] = matrix
[3];
2953 params
[13] = matrix
[7];
2954 params
[14] = matrix
[11];
2955 params
[15] = matrix
[15];
2958 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2960 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2961 params
[0] = matrix
[0];
2962 params
[1] = matrix
[4];
2963 params
[2] = matrix
[8];
2964 params
[3] = matrix
[12];
2965 params
[4] = matrix
[1];
2966 params
[5] = matrix
[5];
2967 params
[6] = matrix
[9];
2968 params
[7] = matrix
[13];
2969 params
[8] = matrix
[2];
2970 params
[9] = matrix
[6];
2971 params
[10] = matrix
[10];
2972 params
[11] = matrix
[14];
2973 params
[12] = matrix
[3];
2974 params
[13] = matrix
[7];
2975 params
[14] = matrix
[11];
2976 params
[15] = matrix
[15];
2979 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2981 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2982 params
[0] = matrix
[0];
2983 params
[1] = matrix
[4];
2984 params
[2] = matrix
[8];
2985 params
[3] = matrix
[12];
2986 params
[4] = matrix
[1];
2987 params
[5] = matrix
[5];
2988 params
[6] = matrix
[9];
2989 params
[7] = matrix
[13];
2990 params
[8] = matrix
[2];
2991 params
[9] = matrix
[6];
2992 params
[10] = matrix
[10];
2993 params
[11] = matrix
[14];
2994 params
[12] = matrix
[3];
2995 params
[13] = matrix
[7];
2996 params
[14] = matrix
[11];
2997 params
[15] = matrix
[15];
3000 case GL_OCCLUSION_TEST_HP
:
3001 CHECK_EXTENSION_F(HP_occlusion_test
, pname
);
3002 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.OcclusionTest
);
3004 case GL_OCCLUSION_TEST_RESULT_HP
:
3005 CHECK_EXTENSION_F(HP_occlusion_test
, pname
);
3007 if (ctx
->Depth
.OcclusionTest
)
3008 params
[0] = ctx
->OcclusionResult
;
3010 params
[0] = ctx
->OcclusionResultSaved
;
3011 /* reset flag now */
3012 ctx
->OcclusionResult
= GL_FALSE
;
3013 ctx
->OcclusionResultSaved
= GL_FALSE
;
3017 case GL_PIXEL_TEXTURE_SGIS
:
3018 CHECK_EXTENSION_F(SGIS_pixel_texture
, pname
);
3019 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PixelTextureEnabled
);
3021 case GL_PIXEL_TEX_GEN_SGIX
:
3022 CHECK_EXTENSION_F(SGIX_pixel_texture
, pname
);
3023 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PixelTextureEnabled
);
3025 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
3026 CHECK_EXTENSION_F(SGIX_pixel_texture
, pname
);
3027 params
[0] = ENUM_TO_FLOAT(pixel_texgen_mode(ctx
));
3029 case GL_COLOR_MATRIX_SGI
:
3031 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3032 params
[0] = matrix
[0];
3033 params
[1] = matrix
[1];
3034 params
[2] = matrix
[2];
3035 params
[3] = matrix
[3];
3036 params
[4] = matrix
[4];
3037 params
[5] = matrix
[5];
3038 params
[6] = matrix
[6];
3039 params
[7] = matrix
[7];
3040 params
[8] = matrix
[8];
3041 params
[9] = matrix
[9];
3042 params
[10] = matrix
[10];
3043 params
[11] = matrix
[11];
3044 params
[12] = matrix
[12];
3045 params
[13] = matrix
[13];
3046 params
[14] = matrix
[14];
3047 params
[15] = matrix
[15];
3050 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3051 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3053 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3054 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3056 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3057 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3059 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3060 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3062 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3063 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3065 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3066 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3068 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3069 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3071 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3072 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3074 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3075 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3077 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3078 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3080 case GL_CONVOLUTION_1D_EXT
:
3081 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3082 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3084 case GL_CONVOLUTION_2D_EXT
:
3085 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3086 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3088 case GL_SEPARABLE_2D_EXT
:
3089 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3090 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3092 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3093 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3094 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3096 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3097 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3098 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3100 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3101 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3102 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3104 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3105 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3106 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3108 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3109 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3110 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3112 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3113 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3114 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3116 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3117 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3118 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3120 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3121 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3122 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3125 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3126 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3129 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3130 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3132 case GL_COLOR_TABLE_SGI
:
3133 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3134 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
);
3136 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3137 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3138 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
3140 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3141 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3142 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
3144 case GL_TEXTURE_COLOR_TABLE_SGI
:
3145 CHECK_EXTENSION_F(SGI_texture_color_table
, pname
);
3146 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3148 case GL_COLOR_SUM_EXT
:
3149 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3150 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3152 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3153 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3155 FLUSH_CURRENT(ctx
, 0);
3156 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3157 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3158 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3159 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3162 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3163 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3164 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.SecondaryColor
.Enabled
);
3166 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3167 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3168 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.SecondaryColor
.Type
);
3170 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3171 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3172 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Stride
);
3174 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3175 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3176 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Size
);
3178 case GL_CURRENT_FOG_COORDINATE_EXT
:
3179 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3181 FLUSH_CURRENT(ctx
, 0);
3182 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3185 case GL_FOG_COORDINATE_ARRAY_EXT
:
3186 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3187 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.FogCoord
.Enabled
);
3189 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3190 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3191 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.FogCoord
.Type
);
3193 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3194 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3195 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.Stride
);
3197 case GL_FOG_COORDINATE_SOURCE_EXT
:
3198 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3199 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3201 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3202 CHECK_EXTENSION_F(EXT_texture_lod_bias
, pname
);
3203 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3205 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3206 CHECK_EXTENSION_F(EXT_texture_filter_anisotropic
, pname
);
3207 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3209 case GL_MULTISAMPLE_ARB
:
3210 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3211 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3213 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3214 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3215 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3217 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3218 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3219 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3221 case GL_SAMPLE_COVERAGE_ARB
:
3222 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3225 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3226 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3227 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3229 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3230 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3231 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3233 case GL_SAMPLE_BUFFERS_ARB
:
3234 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3235 params
[0] = (GLfloat
)(0);
3237 case GL_SAMPLES_ARB
:
3238 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3239 params
[0] = (GLfloat
)(0);
3241 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3242 CHECK_EXTENSION_F(IBM_rasterpos_clip
, pname
);
3243 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3245 case GL_POINT_SPRITE_NV
:
3246 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3249 case GL_POINT_SPRITE_R_MODE_NV
:
3250 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3251 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3253 case GL_POINT_SPRITE_COORD_ORIGIN
:
3254 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3255 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3257 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3258 CHECK_EXTENSION_F(SGIS_generate_mipmap
, pname
);
3259 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3261 case GL_VERTEX_PROGRAM_NV
:
3262 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3265 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
3266 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3267 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3269 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
3270 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3271 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3273 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
3274 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3275 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3277 case GL_MAX_TRACK_MATRICES_NV
:
3278 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3279 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3281 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
3282 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3283 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3285 case GL_CURRENT_MATRIX_NV
:
3286 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3288 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3289 params
[0] = matrix
[0];
3290 params
[1] = matrix
[1];
3291 params
[2] = matrix
[2];
3292 params
[3] = matrix
[3];
3293 params
[4] = matrix
[4];
3294 params
[5] = matrix
[5];
3295 params
[6] = matrix
[6];
3296 params
[7] = matrix
[7];
3297 params
[8] = matrix
[8];
3298 params
[9] = matrix
[9];
3299 params
[10] = matrix
[10];
3300 params
[11] = matrix
[11];
3301 params
[12] = matrix
[12];
3302 params
[13] = matrix
[13];
3303 params
[14] = matrix
[14];
3304 params
[15] = matrix
[15];
3307 case GL_VERTEX_PROGRAM_BINDING_NV
:
3308 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3309 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3311 case GL_PROGRAM_ERROR_POSITION_NV
:
3312 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3313 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3315 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3316 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3317 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[0].Enabled
);
3319 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3320 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3321 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[1].Enabled
);
3323 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3324 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3325 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[2].Enabled
);
3327 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3328 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3329 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[3].Enabled
);
3331 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3332 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3333 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[4].Enabled
);
3335 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3336 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[5].Enabled
);
3339 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3340 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3341 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[6].Enabled
);
3343 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3344 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3345 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[7].Enabled
);
3347 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3348 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[8].Enabled
);
3351 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3352 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3353 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[9].Enabled
);
3355 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3356 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3357 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[10].Enabled
);
3359 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3360 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[11].Enabled
);
3363 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3364 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[12].Enabled
);
3367 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3368 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3369 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[13].Enabled
);
3371 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3372 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3373 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[14].Enabled
);
3375 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3376 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3377 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[15].Enabled
);
3379 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3380 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3381 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3383 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3384 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3385 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3387 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3388 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3391 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3392 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3393 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3395 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3396 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3397 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3399 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3400 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3401 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3403 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3404 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3405 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3407 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3408 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3409 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3411 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3412 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3413 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3415 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3416 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3417 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3419 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3420 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3421 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3423 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3424 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3425 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3427 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3428 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3429 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3431 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3432 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3433 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3435 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3436 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3437 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3439 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3440 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3441 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3443 case GL_FRAGMENT_PROGRAM_NV
:
3444 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3445 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3447 case GL_MAX_TEXTURE_COORDS_NV
:
3448 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3449 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3451 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
3452 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3453 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3455 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3456 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3457 params
[0] = (GLfloat
)(ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
3459 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3460 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3461 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3463 case GL_TEXTURE_RECTANGLE_NV
:
3464 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3465 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3467 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3468 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3469 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3471 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3472 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3473 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3475 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3476 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3477 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3479 case GL_ACTIVE_STENCIL_FACE_EXT
:
3480 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3481 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3483 case GL_MAX_SHININESS_NV
:
3484 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3485 params
[0] = ctx
->Const
.MaxShininess
;
3487 case GL_MAX_SPOT_EXPONENT_NV
:
3488 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3489 params
[0] = ctx
->Const
.MaxSpotExponent
;
3491 case GL_ARRAY_BUFFER_BINDING_ARB
:
3492 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3493 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3495 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3496 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3497 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.BufferObj
->Name
);
3499 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3500 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3501 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.BufferObj
->Name
);
3503 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3504 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3505 params
[0] = (GLfloat
)(ctx
->Array
.Color
.BufferObj
->Name
);
3507 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3508 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3509 params
[0] = (GLfloat
)(ctx
->Array
.Index
.BufferObj
->Name
);
3511 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3512 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3513 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3515 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3516 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3517 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
3519 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3520 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3521 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
3523 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3524 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3525 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.BufferObj
->Name
);
3527 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3528 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3529 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3531 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3532 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3533 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3535 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3536 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3537 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3539 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3540 CHECK_EXTENSION_F(ARB_vertex_program
, pname
);
3541 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexProgramAttribs
);
3543 case GL_FRAGMENT_PROGRAM_ARB
:
3544 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3545 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3547 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3548 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3550 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3551 params
[0] = matrix
[0];
3552 params
[1] = matrix
[4];
3553 params
[2] = matrix
[8];
3554 params
[3] = matrix
[12];
3555 params
[4] = matrix
[1];
3556 params
[5] = matrix
[5];
3557 params
[6] = matrix
[9];
3558 params
[7] = matrix
[13];
3559 params
[8] = matrix
[2];
3560 params
[9] = matrix
[6];
3561 params
[10] = matrix
[10];
3562 params
[11] = matrix
[14];
3563 params
[12] = matrix
[3];
3564 params
[13] = matrix
[7];
3565 params
[14] = matrix
[11];
3566 params
[15] = matrix
[15];
3569 case GL_DEPTH_BOUNDS_TEST_EXT
:
3570 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3571 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3573 case GL_DEPTH_BOUNDS_EXT
:
3574 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3575 params
[0] = ctx
->Depth
.BoundsMin
;
3576 params
[1] = ctx
->Depth
.BoundsMax
;
3578 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3579 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3580 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3582 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3583 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3584 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3586 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3587 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3588 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3590 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3591 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3592 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3594 case GL_MAX_DRAW_BUFFERS_ARB
:
3595 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3596 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3598 case GL_DRAW_BUFFER0_ARB
:
3599 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3600 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
3602 case GL_DRAW_BUFFER1_ARB
:
3603 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3606 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3607 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3610 buffer
= ctx
->Color
.DrawBuffer
[1];
3611 params
[0] = ENUM_TO_FLOAT(buffer
);
3614 case GL_DRAW_BUFFER2_ARB
:
3615 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3618 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3619 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3622 buffer
= ctx
->Color
.DrawBuffer
[2];
3623 params
[0] = ENUM_TO_FLOAT(buffer
);
3626 case GL_DRAW_BUFFER3_ARB
:
3627 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3630 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3631 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3634 buffer
= ctx
->Color
.DrawBuffer
[3];
3635 params
[0] = ENUM_TO_FLOAT(buffer
);
3638 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3639 CHECK_EXTENSION_F(OES_read_format
, pname
);
3640 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3642 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3643 CHECK_EXTENSION_F(OES_read_format
, pname
);
3644 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3646 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3647 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3648 params
[0] = (GLfloat
)(6);
3650 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3651 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3652 params
[0] = (GLfloat
)(8);
3654 case GL_NUM_PASSES_ATI
:
3655 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3656 params
[0] = (GLfloat
)(2);
3658 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3659 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3660 params
[0] = (GLfloat
)(8);
3662 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3663 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3664 params
[0] = (GLfloat
)(16);
3666 case GL_COLOR_ALPHA_PAIRING_ATI
:
3667 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3668 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3670 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3671 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3672 params
[0] = (GLfloat
)(3);
3674 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3675 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3676 params
[0] = (GLfloat
)(3);
3678 case GL_STENCIL_BACK_FUNC
:
3679 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3681 case GL_STENCIL_BACK_VALUE_MASK
:
3682 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3684 case GL_STENCIL_BACK_REF
:
3685 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3687 case GL_STENCIL_BACK_FAIL
:
3688 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3690 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3691 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3693 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3694 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3696 case GL_FRAMEBUFFER_BINDING_EXT
:
3697 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3698 params
[0] = (GLfloat
)(ctx
->CurrentFramebuffer
? ctx
->CurrentFramebuffer
->Name
: 0);
3700 case GL_RENDERBUFFER_BINDING_EXT
:
3701 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3702 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3704 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3705 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3706 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3708 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3709 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3710 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3713 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3718 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3720 GET_CURRENT_CONTEXT(ctx
);
3721 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3726 if (ctx
->Driver
.GetIntegerv
&&
3727 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3731 case GL_ACCUM_RED_BITS
:
3732 params
[0] = ctx
->Visual
.accumRedBits
;
3734 case GL_ACCUM_GREEN_BITS
:
3735 params
[0] = ctx
->Visual
.accumGreenBits
;
3737 case GL_ACCUM_BLUE_BITS
:
3738 params
[0] = ctx
->Visual
.accumBlueBits
;
3740 case GL_ACCUM_ALPHA_BITS
:
3741 params
[0] = ctx
->Visual
.accumAlphaBits
;
3743 case GL_ACCUM_CLEAR_VALUE
:
3744 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3745 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3746 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3747 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3750 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3753 params
[0] = ctx
->Visual
.alphaBits
;
3755 case GL_ALPHA_SCALE
:
3756 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3759 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3761 case GL_ALPHA_TEST_FUNC
:
3762 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3764 case GL_ALPHA_TEST_REF
:
3765 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3767 case GL_ATTRIB_STACK_DEPTH
:
3768 params
[0] = ctx
->AttribStackDepth
;
3770 case GL_AUTO_NORMAL
:
3771 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3773 case GL_AUX_BUFFERS
:
3774 params
[0] = ctx
->Visual
.numAuxBuffers
;
3777 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3780 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3783 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3785 case GL_BLEND_SRC_RGB_EXT
:
3786 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3788 case GL_BLEND_DST_RGB_EXT
:
3789 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3791 case GL_BLEND_SRC_ALPHA_EXT
:
3792 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3794 case GL_BLEND_DST_ALPHA_EXT
:
3795 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3797 case GL_BLEND_EQUATION
:
3798 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3800 case GL_BLEND_EQUATION_ALPHA_EXT
:
3801 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3803 case GL_BLEND_COLOR_EXT
:
3804 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3805 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3806 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3807 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3810 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3813 params
[0] = ctx
->Visual
.blueBits
;
3816 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3818 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3819 params
[0] = ctx
->ClientAttribStackDepth
;
3821 case GL_CLIP_PLANE0
:
3822 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3824 case GL_CLIP_PLANE1
:
3825 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3827 case GL_CLIP_PLANE2
:
3828 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3830 case GL_CLIP_PLANE3
:
3831 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3833 case GL_CLIP_PLANE4
:
3834 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3836 case GL_CLIP_PLANE5
:
3837 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3839 case GL_COLOR_CLEAR_VALUE
:
3840 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3841 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3842 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3843 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3845 case GL_COLOR_MATERIAL
:
3846 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3848 case GL_COLOR_MATERIAL_FACE
:
3849 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3851 case GL_COLOR_MATERIAL_PARAMETER
:
3852 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3854 case GL_COLOR_WRITEMASK
:
3855 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3856 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3857 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3858 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3861 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3863 case GL_CULL_FACE_MODE
:
3864 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3866 case GL_CURRENT_COLOR
:
3868 FLUSH_CURRENT(ctx
, 0);
3869 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3870 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3871 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3872 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3875 case GL_CURRENT_INDEX
:
3877 FLUSH_CURRENT(ctx
, 0);
3878 params
[0] = IROUND(ctx
->Current
.Index
);
3881 case GL_CURRENT_NORMAL
:
3883 FLUSH_CURRENT(ctx
, 0);
3884 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3885 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3886 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3889 case GL_CURRENT_RASTER_COLOR
:
3890 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3891 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3892 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3893 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3895 case GL_CURRENT_RASTER_DISTANCE
:
3896 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3898 case GL_CURRENT_RASTER_INDEX
:
3899 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3901 case GL_CURRENT_RASTER_POSITION
:
3902 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3903 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3904 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3905 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3907 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3909 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3910 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3911 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3912 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3913 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3916 case GL_CURRENT_RASTER_POSITION_VALID
:
3917 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3919 case GL_CURRENT_TEXTURE_COORDS
:
3921 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3922 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3923 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3924 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3925 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3929 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3932 params
[0] = ctx
->Visual
.depthBits
;
3934 case GL_DEPTH_CLEAR_VALUE
:
3935 params
[0] = IROUND(ctx
->Depth
.Clear
);
3938 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3940 case GL_DEPTH_RANGE
:
3941 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3942 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3944 case GL_DEPTH_SCALE
:
3945 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3948 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
3950 case GL_DEPTH_WRITEMASK
:
3951 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
3954 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
3956 case GL_DOUBLEBUFFER
:
3957 params
[0] = BOOLEAN_TO_INT(ctx
->Visual
.doubleBufferMode
);
3959 case GL_DRAW_BUFFER
:
3960 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
3964 FLUSH_CURRENT(ctx
, 0);
3965 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.EdgeFlag
);
3968 case GL_FEEDBACK_BUFFER_SIZE
:
3969 params
[0] = ctx
->Feedback
.BufferSize
;
3971 case GL_FEEDBACK_BUFFER_TYPE
:
3972 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
3975 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
3978 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
3979 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
3980 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
3981 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
3983 case GL_FOG_DENSITY
:
3984 params
[0] = IROUND(ctx
->Fog
.Density
);
3987 params
[0] = IROUND(ctx
->Fog
.End
);
3990 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
3993 params
[0] = IROUND(ctx
->Fog
.Index
);
3996 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
3999 params
[0] = IROUND(ctx
->Fog
.Start
);
4002 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4005 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4008 params
[0] = ctx
->Visual
.greenBits
;
4010 case GL_GREEN_SCALE
:
4011 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4014 params
[0] = ctx
->Visual
.indexBits
;
4016 case GL_INDEX_CLEAR_VALUE
:
4017 params
[0] = ctx
->Color
.ClearIndex
;
4020 params
[0] = BOOLEAN_TO_INT(!ctx
->Visual
.rgbMode
);
4022 case GL_INDEX_OFFSET
:
4023 params
[0] = ctx
->Pixel
.IndexOffset
;
4025 case GL_INDEX_SHIFT
:
4026 params
[0] = ctx
->Pixel
.IndexShift
;
4028 case GL_INDEX_WRITEMASK
:
4029 params
[0] = ctx
->Color
.IndexMask
;
4032 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4035 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4038 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4041 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4044 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4047 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4050 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4053 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4056 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4058 case GL_LIGHT_MODEL_AMBIENT
:
4059 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4060 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4061 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4062 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4064 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4065 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4067 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4068 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4070 case GL_LIGHT_MODEL_TWO_SIDE
:
4071 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4073 case GL_LINE_SMOOTH
:
4074 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4076 case GL_LINE_SMOOTH_HINT
:
4077 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4079 case GL_LINE_STIPPLE
:
4080 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4082 case GL_LINE_STIPPLE_PATTERN
:
4083 params
[0] = ctx
->Line
.StipplePattern
;
4085 case GL_LINE_STIPPLE_REPEAT
:
4086 params
[0] = ctx
->Line
.StippleFactor
;
4089 params
[0] = IROUND(ctx
->Line
.Width
);
4091 case GL_LINE_WIDTH_GRANULARITY
:
4092 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4094 case GL_LINE_WIDTH_RANGE
:
4095 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4096 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4098 case GL_ALIASED_LINE_WIDTH_RANGE
:
4099 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4100 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4103 params
[0] = ctx
->List
.ListBase
;
4106 params
[0] = ctx
->ListState
.CurrentListNum
;
4111 if (!ctx
->CompileFlag
)
4113 else if (ctx
->ExecuteFlag
)
4114 mode
= GL_COMPILE_AND_EXECUTE
;
4117 params
[0] = ENUM_TO_INT(mode
);
4120 case GL_INDEX_LOGIC_OP
:
4121 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4123 case GL_COLOR_LOGIC_OP
:
4124 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4126 case GL_LOGIC_OP_MODE
:
4127 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4129 case GL_MAP1_COLOR_4
:
4130 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4132 case GL_MAP1_GRID_DOMAIN
:
4133 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4134 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4136 case GL_MAP1_GRID_SEGMENTS
:
4137 params
[0] = ctx
->Eval
.MapGrid1un
;
4140 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4142 case GL_MAP1_NORMAL
:
4143 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4145 case GL_MAP1_TEXTURE_COORD_1
:
4146 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4148 case GL_MAP1_TEXTURE_COORD_2
:
4149 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4151 case GL_MAP1_TEXTURE_COORD_3
:
4152 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4154 case GL_MAP1_TEXTURE_COORD_4
:
4155 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4157 case GL_MAP1_VERTEX_3
:
4158 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4160 case GL_MAP1_VERTEX_4
:
4161 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4163 case GL_MAP2_COLOR_4
:
4164 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4166 case GL_MAP2_GRID_DOMAIN
:
4167 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4168 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4169 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4170 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4172 case GL_MAP2_GRID_SEGMENTS
:
4173 params
[0] = ctx
->Eval
.MapGrid2un
;
4174 params
[1] = ctx
->Eval
.MapGrid2vn
;
4177 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4179 case GL_MAP2_NORMAL
:
4180 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4182 case GL_MAP2_TEXTURE_COORD_1
:
4183 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4185 case GL_MAP2_TEXTURE_COORD_2
:
4186 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4188 case GL_MAP2_TEXTURE_COORD_3
:
4189 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4191 case GL_MAP2_TEXTURE_COORD_4
:
4192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4194 case GL_MAP2_VERTEX_3
:
4195 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4197 case GL_MAP2_VERTEX_4
:
4198 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4201 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4203 case GL_MAP_STENCIL
:
4204 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4206 case GL_MATRIX_MODE
:
4207 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4209 case GL_MAX_ATTRIB_STACK_DEPTH
:
4210 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4212 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4213 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4215 case GL_MAX_CLIP_PLANES
:
4216 params
[0] = ctx
->Const
.MaxClipPlanes
;
4218 case GL_MAX_ELEMENTS_VERTICES
:
4219 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4221 case GL_MAX_ELEMENTS_INDICES
:
4222 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4224 case GL_MAX_EVAL_ORDER
:
4225 params
[0] = MAX_EVAL_ORDER
;
4228 params
[0] = ctx
->Const
.MaxLights
;
4230 case GL_MAX_LIST_NESTING
:
4231 params
[0] = MAX_LIST_NESTING
;
4233 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4234 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4236 case GL_MAX_NAME_STACK_DEPTH
:
4237 params
[0] = MAX_NAME_STACK_DEPTH
;
4239 case GL_MAX_PIXEL_MAP_TABLE
:
4240 params
[0] = MAX_PIXEL_MAP_TABLE
;
4242 case GL_MAX_PROJECTION_STACK_DEPTH
:
4243 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4245 case GL_MAX_TEXTURE_SIZE
:
4246 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4248 case GL_MAX_3D_TEXTURE_SIZE
:
4249 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4251 case GL_MAX_TEXTURE_STACK_DEPTH
:
4252 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4254 case GL_MAX_VIEWPORT_DIMS
:
4255 params
[0] = ctx
->Const
.MaxViewportWidth
;
4256 params
[1] = ctx
->Const
.MaxViewportHeight
;
4258 case GL_MODELVIEW_MATRIX
:
4260 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4261 params
[0] = IROUND(matrix
[0]);
4262 params
[1] = IROUND(matrix
[1]);
4263 params
[2] = IROUND(matrix
[2]);
4264 params
[3] = IROUND(matrix
[3]);
4265 params
[4] = IROUND(matrix
[4]);
4266 params
[5] = IROUND(matrix
[5]);
4267 params
[6] = IROUND(matrix
[6]);
4268 params
[7] = IROUND(matrix
[7]);
4269 params
[8] = IROUND(matrix
[8]);
4270 params
[9] = IROUND(matrix
[9]);
4271 params
[10] = IROUND(matrix
[10]);
4272 params
[11] = IROUND(matrix
[11]);
4273 params
[12] = IROUND(matrix
[12]);
4274 params
[13] = IROUND(matrix
[13]);
4275 params
[14] = IROUND(matrix
[14]);
4276 params
[15] = IROUND(matrix
[15]);
4279 case GL_MODELVIEW_STACK_DEPTH
:
4280 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4282 case GL_NAME_STACK_DEPTH
:
4283 params
[0] = ctx
->Select
.NameStackDepth
;
4286 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4288 case GL_PACK_ALIGNMENT
:
4289 params
[0] = ctx
->Pack
.Alignment
;
4291 case GL_PACK_LSB_FIRST
:
4292 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4294 case GL_PACK_ROW_LENGTH
:
4295 params
[0] = ctx
->Pack
.RowLength
;
4297 case GL_PACK_SKIP_PIXELS
:
4298 params
[0] = ctx
->Pack
.SkipPixels
;
4300 case GL_PACK_SKIP_ROWS
:
4301 params
[0] = ctx
->Pack
.SkipRows
;
4303 case GL_PACK_SWAP_BYTES
:
4304 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4306 case GL_PACK_SKIP_IMAGES_EXT
:
4307 params
[0] = ctx
->Pack
.SkipImages
;
4309 case GL_PACK_IMAGE_HEIGHT_EXT
:
4310 params
[0] = ctx
->Pack
.ImageHeight
;
4312 case GL_PACK_INVERT_MESA
:
4313 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4315 case GL_PERSPECTIVE_CORRECTION_HINT
:
4316 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4318 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4319 params
[0] = ctx
->Pixel
.MapAtoAsize
;
4321 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4322 params
[0] = ctx
->Pixel
.MapBtoBsize
;
4324 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4325 params
[0] = ctx
->Pixel
.MapGtoGsize
;
4327 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4328 params
[0] = ctx
->Pixel
.MapItoAsize
;
4330 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4331 params
[0] = ctx
->Pixel
.MapItoBsize
;
4333 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4334 params
[0] = ctx
->Pixel
.MapItoGsize
;
4336 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4337 params
[0] = ctx
->Pixel
.MapItoIsize
;
4339 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4340 params
[0] = ctx
->Pixel
.MapItoRsize
;
4342 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4343 params
[0] = ctx
->Pixel
.MapRtoRsize
;
4345 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4346 params
[0] = ctx
->Pixel
.MapStoSsize
;
4349 params
[0] = IROUND(ctx
->Point
.Size
);
4351 case GL_POINT_SIZE_GRANULARITY
:
4352 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4354 case GL_POINT_SIZE_RANGE
:
4355 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4356 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4358 case GL_ALIASED_POINT_SIZE_RANGE
:
4359 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4360 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4362 case GL_POINT_SMOOTH
:
4363 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4365 case GL_POINT_SMOOTH_HINT
:
4366 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4368 case GL_POINT_SIZE_MIN_EXT
:
4369 params
[0] = IROUND(ctx
->Point
.MinSize
);
4371 case GL_POINT_SIZE_MAX_EXT
:
4372 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4374 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4375 params
[0] = IROUND(ctx
->Point
.Threshold
);
4377 case GL_DISTANCE_ATTENUATION_EXT
:
4378 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4379 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4380 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4382 case GL_POLYGON_MODE
:
4383 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4384 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4386 case GL_POLYGON_OFFSET_BIAS_EXT
:
4387 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4389 case GL_POLYGON_OFFSET_FACTOR
:
4390 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4392 case GL_POLYGON_OFFSET_UNITS
:
4393 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4395 case GL_POLYGON_SMOOTH
:
4396 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4398 case GL_POLYGON_SMOOTH_HINT
:
4399 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4401 case GL_POLYGON_STIPPLE
:
4402 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4404 case GL_PROJECTION_MATRIX
:
4406 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4407 params
[0] = IROUND(matrix
[0]);
4408 params
[1] = IROUND(matrix
[1]);
4409 params
[2] = IROUND(matrix
[2]);
4410 params
[3] = IROUND(matrix
[3]);
4411 params
[4] = IROUND(matrix
[4]);
4412 params
[5] = IROUND(matrix
[5]);
4413 params
[6] = IROUND(matrix
[6]);
4414 params
[7] = IROUND(matrix
[7]);
4415 params
[8] = IROUND(matrix
[8]);
4416 params
[9] = IROUND(matrix
[9]);
4417 params
[10] = IROUND(matrix
[10]);
4418 params
[11] = IROUND(matrix
[11]);
4419 params
[12] = IROUND(matrix
[12]);
4420 params
[13] = IROUND(matrix
[13]);
4421 params
[14] = IROUND(matrix
[14]);
4422 params
[15] = IROUND(matrix
[15]);
4425 case GL_PROJECTION_STACK_DEPTH
:
4426 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4428 case GL_READ_BUFFER
:
4429 params
[0] = ENUM_TO_INT(ctx
->Pixel
.ReadBuffer
);
4432 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4435 params
[0] = ctx
->Visual
.redBits
;
4438 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4440 case GL_RENDER_MODE
:
4441 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4443 case GL_RESCALE_NORMAL
:
4444 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4447 params
[0] = BOOLEAN_TO_INT(ctx
->Visual
.rgbMode
);
4449 case GL_SCISSOR_BOX
:
4450 params
[0] = ctx
->Scissor
.X
;
4451 params
[1] = ctx
->Scissor
.Y
;
4452 params
[2] = ctx
->Scissor
.Width
;
4453 params
[3] = ctx
->Scissor
.Height
;
4455 case GL_SCISSOR_TEST
:
4456 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4458 case GL_SELECTION_BUFFER_SIZE
:
4459 params
[0] = ctx
->Select
.BufferSize
;
4461 case GL_SHADE_MODEL
:
4462 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4464 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4465 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4467 case GL_STENCIL_BITS
:
4468 params
[0] = ctx
->Visual
.stencilBits
;
4470 case GL_STENCIL_CLEAR_VALUE
:
4471 params
[0] = ctx
->Stencil
.Clear
;
4473 case GL_STENCIL_FAIL
:
4474 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4476 case GL_STENCIL_FUNC
:
4477 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4479 case GL_STENCIL_PASS_DEPTH_FAIL
:
4480 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4482 case GL_STENCIL_PASS_DEPTH_PASS
:
4483 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4485 case GL_STENCIL_REF
:
4486 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4488 case GL_STENCIL_TEST
:
4489 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4491 case GL_STENCIL_VALUE_MASK
:
4492 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4494 case GL_STENCIL_WRITEMASK
:
4495 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4498 params
[0] = BOOLEAN_TO_INT(ctx
->Visual
.stereoMode
);
4500 case GL_SUBPIXEL_BITS
:
4501 params
[0] = ctx
->Const
.SubPixelBits
;
4504 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4507 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4510 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4512 case GL_TEXTURE_BINDING_1D
:
4513 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4515 case GL_TEXTURE_BINDING_2D
:
4516 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4518 case GL_TEXTURE_BINDING_3D
:
4519 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4521 case GL_TEXTURE_ENV_COLOR
:
4523 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
4524 params
[0] = FLOAT_TO_INT(color
[0]);
4525 params
[1] = FLOAT_TO_INT(color
[1]);
4526 params
[2] = FLOAT_TO_INT(color
[2]);
4527 params
[3] = FLOAT_TO_INT(color
[3]);
4530 case GL_TEXTURE_ENV_MODE
:
4531 params
[0] = ENUM_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
4533 case GL_TEXTURE_GEN_S
:
4534 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4536 case GL_TEXTURE_GEN_T
:
4537 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4539 case GL_TEXTURE_GEN_R
:
4540 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4542 case GL_TEXTURE_GEN_Q
:
4543 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4545 case GL_TEXTURE_MATRIX
:
4547 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4548 params
[0] = IROUND(matrix
[0]);
4549 params
[1] = IROUND(matrix
[1]);
4550 params
[2] = IROUND(matrix
[2]);
4551 params
[3] = IROUND(matrix
[3]);
4552 params
[4] = IROUND(matrix
[4]);
4553 params
[5] = IROUND(matrix
[5]);
4554 params
[6] = IROUND(matrix
[6]);
4555 params
[7] = IROUND(matrix
[7]);
4556 params
[8] = IROUND(matrix
[8]);
4557 params
[9] = IROUND(matrix
[9]);
4558 params
[10] = IROUND(matrix
[10]);
4559 params
[11] = IROUND(matrix
[11]);
4560 params
[12] = IROUND(matrix
[12]);
4561 params
[13] = IROUND(matrix
[13]);
4562 params
[14] = IROUND(matrix
[14]);
4563 params
[15] = IROUND(matrix
[15]);
4566 case GL_TEXTURE_STACK_DEPTH
:
4567 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4569 case GL_UNPACK_ALIGNMENT
:
4570 params
[0] = ctx
->Unpack
.Alignment
;
4572 case GL_UNPACK_LSB_FIRST
:
4573 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4575 case GL_UNPACK_ROW_LENGTH
:
4576 params
[0] = ctx
->Unpack
.RowLength
;
4578 case GL_UNPACK_SKIP_PIXELS
:
4579 params
[0] = ctx
->Unpack
.SkipPixels
;
4581 case GL_UNPACK_SKIP_ROWS
:
4582 params
[0] = ctx
->Unpack
.SkipRows
;
4584 case GL_UNPACK_SWAP_BYTES
:
4585 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4587 case GL_UNPACK_SKIP_IMAGES_EXT
:
4588 params
[0] = ctx
->Unpack
.SkipImages
;
4590 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4591 params
[0] = ctx
->Unpack
.ImageHeight
;
4593 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4594 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4597 params
[0] = ctx
->Viewport
.X
;
4598 params
[1] = ctx
->Viewport
.Y
;
4599 params
[2] = ctx
->Viewport
.Width
;
4600 params
[3] = ctx
->Viewport
.Height
;
4603 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4606 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4608 case GL_VERTEX_ARRAY
:
4609 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Vertex
.Enabled
);
4611 case GL_VERTEX_ARRAY_SIZE
:
4612 params
[0] = ctx
->Array
.Vertex
.Size
;
4614 case GL_VERTEX_ARRAY_TYPE
:
4615 params
[0] = ENUM_TO_INT(ctx
->Array
.Vertex
.Type
);
4617 case GL_VERTEX_ARRAY_STRIDE
:
4618 params
[0] = ctx
->Array
.Vertex
.Stride
;
4620 case GL_VERTEX_ARRAY_COUNT_EXT
:
4623 case GL_NORMAL_ARRAY
:
4624 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Enabled
);
4626 case GL_NORMAL_ARRAY_TYPE
:
4627 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Type
);
4629 case GL_NORMAL_ARRAY_STRIDE
:
4630 params
[0] = ctx
->Array
.Normal
.Stride
;
4632 case GL_NORMAL_ARRAY_COUNT_EXT
:
4635 case GL_COLOR_ARRAY
:
4636 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Color
.Enabled
);
4638 case GL_COLOR_ARRAY_SIZE
:
4639 params
[0] = ctx
->Array
.Color
.Size
;
4641 case GL_COLOR_ARRAY_TYPE
:
4642 params
[0] = ENUM_TO_INT(ctx
->Array
.Color
.Type
);
4644 case GL_COLOR_ARRAY_STRIDE
:
4645 params
[0] = ctx
->Array
.Color
.Stride
;
4647 case GL_COLOR_ARRAY_COUNT_EXT
:
4650 case GL_INDEX_ARRAY
:
4651 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Index
.Enabled
);
4653 case GL_INDEX_ARRAY_TYPE
:
4654 params
[0] = ENUM_TO_INT(ctx
->Array
.Index
.Type
);
4656 case GL_INDEX_ARRAY_STRIDE
:
4657 params
[0] = ctx
->Array
.Index
.Stride
;
4659 case GL_INDEX_ARRAY_COUNT_EXT
:
4662 case GL_TEXTURE_COORD_ARRAY
:
4663 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4665 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4666 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4668 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4669 params
[0] = ENUM_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4671 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4672 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4674 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4677 case GL_EDGE_FLAG_ARRAY
:
4678 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.EdgeFlag
.Enabled
);
4680 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4681 params
[0] = ctx
->Array
.EdgeFlag
.Stride
;
4683 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4686 case GL_MAX_TEXTURE_UNITS_ARB
:
4687 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4688 params
[0] = MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
);
4690 case GL_ACTIVE_TEXTURE_ARB
:
4691 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4692 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4694 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4695 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4696 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4698 case GL_TEXTURE_CUBE_MAP_ARB
:
4699 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4700 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4702 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4703 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4704 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4706 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4707 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4708 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4710 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4711 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4712 params
[0] = ctx
->Hint
.TextureCompression
;
4714 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4715 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4716 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
);
4718 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4719 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4722 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
4723 for (i
= 0; i
< n
; i
++)
4724 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
4727 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4728 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4729 params
[0] = ctx
->Array
.LockFirst
;
4731 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4732 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4733 params
[0] = ctx
->Array
.LockCount
;
4735 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4737 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.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_MODELVIEW_MATRIX_ARB
:
4758 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.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_PROJECTION_MATRIX_ARB
:
4779 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.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_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4800 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4801 params
[0] = IROUND(matrix
[0]);
4802 params
[1] = IROUND(matrix
[4]);
4803 params
[2] = IROUND(matrix
[8]);
4804 params
[3] = IROUND(matrix
[12]);
4805 params
[4] = IROUND(matrix
[1]);
4806 params
[5] = IROUND(matrix
[5]);
4807 params
[6] = IROUND(matrix
[9]);
4808 params
[7] = IROUND(matrix
[13]);
4809 params
[8] = IROUND(matrix
[2]);
4810 params
[9] = IROUND(matrix
[6]);
4811 params
[10] = IROUND(matrix
[10]);
4812 params
[11] = IROUND(matrix
[14]);
4813 params
[12] = IROUND(matrix
[3]);
4814 params
[13] = IROUND(matrix
[7]);
4815 params
[14] = IROUND(matrix
[11]);
4816 params
[15] = IROUND(matrix
[15]);
4819 case GL_OCCLUSION_TEST_HP
:
4820 CHECK_EXTENSION_I(HP_occlusion_test
, pname
);
4821 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.OcclusionTest
);
4823 case GL_OCCLUSION_TEST_RESULT_HP
:
4824 CHECK_EXTENSION_I(HP_occlusion_test
, pname
);
4826 if (ctx
->Depth
.OcclusionTest
)
4827 params
[0] = ctx
->OcclusionResult
;
4829 params
[0] = ctx
->OcclusionResultSaved
;
4830 /* reset flag now */
4831 ctx
->OcclusionResult
= GL_FALSE
;
4832 ctx
->OcclusionResultSaved
= GL_FALSE
;
4836 case GL_PIXEL_TEXTURE_SGIS
:
4837 CHECK_EXTENSION_I(SGIS_pixel_texture
, pname
);
4838 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PixelTextureEnabled
);
4840 case GL_PIXEL_TEX_GEN_SGIX
:
4841 CHECK_EXTENSION_I(SGIX_pixel_texture
, pname
);
4842 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PixelTextureEnabled
);
4844 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
4845 CHECK_EXTENSION_I(SGIX_pixel_texture
, pname
);
4846 params
[0] = ENUM_TO_INT(pixel_texgen_mode(ctx
));
4848 case GL_COLOR_MATRIX_SGI
:
4850 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4851 params
[0] = IROUND(matrix
[0]);
4852 params
[1] = IROUND(matrix
[1]);
4853 params
[2] = IROUND(matrix
[2]);
4854 params
[3] = IROUND(matrix
[3]);
4855 params
[4] = IROUND(matrix
[4]);
4856 params
[5] = IROUND(matrix
[5]);
4857 params
[6] = IROUND(matrix
[6]);
4858 params
[7] = IROUND(matrix
[7]);
4859 params
[8] = IROUND(matrix
[8]);
4860 params
[9] = IROUND(matrix
[9]);
4861 params
[10] = IROUND(matrix
[10]);
4862 params
[11] = IROUND(matrix
[11]);
4863 params
[12] = IROUND(matrix
[12]);
4864 params
[13] = IROUND(matrix
[13]);
4865 params
[14] = IROUND(matrix
[14]);
4866 params
[15] = IROUND(matrix
[15]);
4869 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4870 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4872 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4873 params
[0] = MAX_COLOR_STACK_DEPTH
;
4875 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4876 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4878 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4879 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4881 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4882 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4884 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4885 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4887 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4888 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4890 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4891 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4893 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4894 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4896 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4897 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4899 case GL_CONVOLUTION_1D_EXT
:
4900 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4901 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4903 case GL_CONVOLUTION_2D_EXT
:
4904 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4905 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4907 case GL_SEPARABLE_2D_EXT
:
4908 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4909 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4911 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4912 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4913 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4915 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4916 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4917 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4919 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4920 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4921 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4923 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4924 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4925 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4927 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4928 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4929 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4931 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4932 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4933 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4935 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4936 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4937 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4939 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4940 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4941 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4944 CHECK_EXTENSION_I(EXT_histogram
, pname
);
4945 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4948 CHECK_EXTENSION_I(EXT_histogram
, pname
);
4949 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
4951 case GL_COLOR_TABLE_SGI
:
4952 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4953 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
);
4955 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4956 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4957 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
4959 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4960 CHECK_EXTENSION_I(SGI_color_table
, pname
);
4961 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
4963 case GL_TEXTURE_COLOR_TABLE_SGI
:
4964 CHECK_EXTENSION_I(SGI_texture_color_table
, pname
);
4965 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
4967 case GL_COLOR_SUM_EXT
:
4968 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4969 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
4971 case GL_CURRENT_SECONDARY_COLOR_EXT
:
4972 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4974 FLUSH_CURRENT(ctx
, 0);
4975 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
4976 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
4977 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
4978 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
4981 case GL_SECONDARY_COLOR_ARRAY_EXT
:
4982 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4983 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.SecondaryColor
.Enabled
);
4985 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
4986 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4987 params
[0] = ENUM_TO_INT(ctx
->Array
.SecondaryColor
.Type
);
4989 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
4990 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4991 params
[0] = ctx
->Array
.SecondaryColor
.Stride
;
4993 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
4994 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
4995 params
[0] = ctx
->Array
.SecondaryColor
.Size
;
4997 case GL_CURRENT_FOG_COORDINATE_EXT
:
4998 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5000 FLUSH_CURRENT(ctx
, 0);
5001 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5004 case GL_FOG_COORDINATE_ARRAY_EXT
:
5005 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5006 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.FogCoord
.Enabled
);
5008 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5009 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5010 params
[0] = ENUM_TO_INT(ctx
->Array
.FogCoord
.Type
);
5012 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5013 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5014 params
[0] = ctx
->Array
.FogCoord
.Stride
;
5016 case GL_FOG_COORDINATE_SOURCE_EXT
:
5017 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5018 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5020 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5021 CHECK_EXTENSION_I(EXT_texture_lod_bias
, pname
);
5022 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5024 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5025 CHECK_EXTENSION_I(EXT_texture_filter_anisotropic
, pname
);
5026 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5028 case GL_MULTISAMPLE_ARB
:
5029 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5030 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5032 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5033 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5034 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5036 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5037 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5038 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5040 case GL_SAMPLE_COVERAGE_ARB
:
5041 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5042 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5044 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5045 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5046 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5048 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5049 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5050 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5052 case GL_SAMPLE_BUFFERS_ARB
:
5053 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5056 case GL_SAMPLES_ARB
:
5057 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5060 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5061 CHECK_EXTENSION_I(IBM_rasterpos_clip
, pname
);
5062 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5064 case GL_POINT_SPRITE_NV
:
5065 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5066 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5068 case GL_POINT_SPRITE_R_MODE_NV
:
5069 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5070 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5072 case GL_POINT_SPRITE_COORD_ORIGIN
:
5073 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5074 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5076 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5077 CHECK_EXTENSION_I(SGIS_generate_mipmap
, pname
);
5078 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5080 case GL_VERTEX_PROGRAM_NV
:
5081 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5082 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5084 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
5085 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5086 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5088 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
5089 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5090 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5092 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
5093 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5094 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5096 case GL_MAX_TRACK_MATRICES_NV
:
5097 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5098 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5100 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
5101 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5102 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5104 case GL_CURRENT_MATRIX_NV
:
5105 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5107 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5108 params
[0] = IROUND(matrix
[0]);
5109 params
[1] = IROUND(matrix
[1]);
5110 params
[2] = IROUND(matrix
[2]);
5111 params
[3] = IROUND(matrix
[3]);
5112 params
[4] = IROUND(matrix
[4]);
5113 params
[5] = IROUND(matrix
[5]);
5114 params
[6] = IROUND(matrix
[6]);
5115 params
[7] = IROUND(matrix
[7]);
5116 params
[8] = IROUND(matrix
[8]);
5117 params
[9] = IROUND(matrix
[9]);
5118 params
[10] = IROUND(matrix
[10]);
5119 params
[11] = IROUND(matrix
[11]);
5120 params
[12] = IROUND(matrix
[12]);
5121 params
[13] = IROUND(matrix
[13]);
5122 params
[14] = IROUND(matrix
[14]);
5123 params
[15] = IROUND(matrix
[15]);
5126 case GL_VERTEX_PROGRAM_BINDING_NV
:
5127 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5128 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5130 case GL_PROGRAM_ERROR_POSITION_NV
:
5131 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5132 params
[0] = ctx
->Program
.ErrorPos
;
5134 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5135 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5136 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[0].Enabled
);
5138 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5139 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5140 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[1].Enabled
);
5142 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5143 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5144 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[2].Enabled
);
5146 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5147 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5148 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[3].Enabled
);
5150 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5151 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5152 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[4].Enabled
);
5154 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5155 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5156 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[5].Enabled
);
5158 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5159 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5160 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[6].Enabled
);
5162 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5163 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5164 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[7].Enabled
);
5166 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5167 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5168 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[8].Enabled
);
5170 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5171 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5172 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[9].Enabled
);
5174 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5175 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5176 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[10].Enabled
);
5178 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5179 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5180 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[11].Enabled
);
5182 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5183 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5184 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[12].Enabled
);
5186 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5187 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5188 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[13].Enabled
);
5190 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5191 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5192 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[14].Enabled
);
5194 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5195 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5196 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[15].Enabled
);
5198 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5199 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5200 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5202 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5203 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5204 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5206 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5207 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5208 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5210 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5211 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5212 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5214 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5215 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5216 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5218 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5219 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5220 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5222 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5223 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5224 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5226 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5227 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5228 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5230 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5231 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5232 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5234 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5235 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5236 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5238 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5239 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5240 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5242 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5243 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5244 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5246 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5247 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5248 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5250 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5251 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5252 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5254 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5255 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5256 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5258 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5259 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5260 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5262 case GL_FRAGMENT_PROGRAM_NV
:
5263 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5264 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5266 case GL_MAX_TEXTURE_COORDS_NV
:
5267 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5268 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5270 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
5271 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5272 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5274 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5275 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5276 params
[0] = ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0;
5278 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5279 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5280 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5282 case GL_TEXTURE_RECTANGLE_NV
:
5283 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5284 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5286 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5287 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5288 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5290 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5291 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5292 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5294 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5295 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5296 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5298 case GL_ACTIVE_STENCIL_FACE_EXT
:
5299 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5300 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5302 case GL_MAX_SHININESS_NV
:
5303 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5304 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5306 case GL_MAX_SPOT_EXPONENT_NV
:
5307 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5308 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5310 case GL_ARRAY_BUFFER_BINDING_ARB
:
5311 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5312 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5314 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5315 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5316 params
[0] = ctx
->Array
.Vertex
.BufferObj
->Name
;
5318 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5319 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5320 params
[0] = ctx
->Array
.Normal
.BufferObj
->Name
;
5322 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5323 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5324 params
[0] = ctx
->Array
.Color
.BufferObj
->Name
;
5326 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5327 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5328 params
[0] = ctx
->Array
.Index
.BufferObj
->Name
;
5330 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5331 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5332 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5334 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5335 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5336 params
[0] = ctx
->Array
.EdgeFlag
.BufferObj
->Name
;
5338 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5339 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5340 params
[0] = ctx
->Array
.SecondaryColor
.BufferObj
->Name
;
5342 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5343 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5344 params
[0] = ctx
->Array
.FogCoord
.BufferObj
->Name
;
5346 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5347 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5348 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5350 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5351 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5352 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5354 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5355 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5356 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5358 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5359 CHECK_EXTENSION_I(ARB_vertex_program
, pname
);
5360 params
[0] = ctx
->Const
.MaxVertexProgramAttribs
;
5362 case GL_FRAGMENT_PROGRAM_ARB
:
5363 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5364 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5366 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5367 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5369 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5370 params
[0] = IROUND(matrix
[0]);
5371 params
[1] = IROUND(matrix
[4]);
5372 params
[2] = IROUND(matrix
[8]);
5373 params
[3] = IROUND(matrix
[12]);
5374 params
[4] = IROUND(matrix
[1]);
5375 params
[5] = IROUND(matrix
[5]);
5376 params
[6] = IROUND(matrix
[9]);
5377 params
[7] = IROUND(matrix
[13]);
5378 params
[8] = IROUND(matrix
[2]);
5379 params
[9] = IROUND(matrix
[6]);
5380 params
[10] = IROUND(matrix
[10]);
5381 params
[11] = IROUND(matrix
[14]);
5382 params
[12] = IROUND(matrix
[3]);
5383 params
[13] = IROUND(matrix
[7]);
5384 params
[14] = IROUND(matrix
[11]);
5385 params
[15] = IROUND(matrix
[15]);
5388 case GL_DEPTH_BOUNDS_TEST_EXT
:
5389 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5390 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5392 case GL_DEPTH_BOUNDS_EXT
:
5393 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5394 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5395 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5397 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5398 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5399 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5401 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5402 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5403 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5405 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5406 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5407 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5409 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5410 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5411 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5413 case GL_MAX_DRAW_BUFFERS_ARB
:
5414 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5415 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5417 case GL_DRAW_BUFFER0_ARB
:
5418 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5419 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
5421 case GL_DRAW_BUFFER1_ARB
:
5422 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5425 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5426 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5429 buffer
= ctx
->Color
.DrawBuffer
[1];
5430 params
[0] = ENUM_TO_INT(buffer
);
5433 case GL_DRAW_BUFFER2_ARB
:
5434 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5437 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5438 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5441 buffer
= ctx
->Color
.DrawBuffer
[2];
5442 params
[0] = ENUM_TO_INT(buffer
);
5445 case GL_DRAW_BUFFER3_ARB
:
5446 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5449 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5450 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5453 buffer
= ctx
->Color
.DrawBuffer
[3];
5454 params
[0] = ENUM_TO_INT(buffer
);
5457 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5458 CHECK_EXTENSION_I(OES_read_format
, pname
);
5459 params
[0] = ctx
->Const
.ColorReadType
;
5461 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5462 CHECK_EXTENSION_I(OES_read_format
, pname
);
5463 params
[0] = ctx
->Const
.ColorReadFormat
;
5465 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5466 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5469 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5470 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5473 case GL_NUM_PASSES_ATI
:
5474 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5477 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5478 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5481 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5482 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5485 case GL_COLOR_ALPHA_PAIRING_ATI
:
5486 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5487 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5489 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5490 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5493 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5494 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5497 case GL_STENCIL_BACK_FUNC
:
5498 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5500 case GL_STENCIL_BACK_VALUE_MASK
:
5501 params
[0] = ctx
->Stencil
.ValueMask
[1];
5503 case GL_STENCIL_BACK_REF
:
5504 params
[0] = ctx
->Stencil
.Ref
[1];
5506 case GL_STENCIL_BACK_FAIL
:
5507 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5509 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5510 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5512 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5513 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5515 case GL_FRAMEBUFFER_BINDING_EXT
:
5516 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5517 params
[0] = ctx
->CurrentFramebuffer
? ctx
->CurrentFramebuffer
->Name
: 0;
5519 case GL_RENDERBUFFER_BINDING_EXT
:
5520 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5521 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5523 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5524 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5525 params
[0] = ctx
->Const
.MaxColorAttachments
;
5527 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5528 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5529 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5532 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5538 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5540 const GLfloat magic
= -1234.5F
;
5547 /* Init temp array to magic numbers so we can figure out how many values
5548 * are returned by the GetFloatv() call.
5550 for (i
= 0; i
< 16; i
++)
5553 _mesa_GetFloatv(pname
, values
);
5555 for (i
= 0; values
[i
] != magic
&& i
< 16; i
++)
5556 params
[i
] = (GLdouble
) values
[i
];