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
->DrawBuffer
->Visual
.accumRedBits
);
96 case GL_ACCUM_GREEN_BITS
:
97 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
99 case GL_ACCUM_BLUE_BITS
:
100 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
102 case GL_ACCUM_ALPHA_BITS
:
103 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->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
->DrawBuffer
->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
->DrawBuffer
->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
->DrawBuffer
->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
->DrawBuffer
->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
->DrawBuffer
->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
->DrawBuffer
->Visual
.greenBits
);
373 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
376 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
378 case GL_INDEX_CLEAR_VALUE
:
379 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
382 params
[0] = !ctx
->DrawBuffer
->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
->DrawBuffer
->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
->DrawBuffer
->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
->DrawBuffer
->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
->DrawBuffer
->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
);
1086 for (i
= 0; i
< n
; i
++)
1087 params
[i
] = ENUM_TO_INT(formats
[i
]);
1090 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1091 CHECK_EXTENSION_B(EXT_compiled_vertex_array
, pname
);
1092 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1094 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1095 CHECK_EXTENSION_B(EXT_compiled_vertex_array
, pname
);
1096 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1098 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1100 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1101 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1102 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1103 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1104 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1105 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1106 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1107 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1108 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1109 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1110 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1111 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1112 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1113 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1114 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1115 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1116 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1119 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1121 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1122 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1123 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1124 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1125 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1126 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1127 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1128 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1129 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1130 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1131 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1132 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1133 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1134 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1135 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1136 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1137 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1140 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1142 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1143 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1144 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1145 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1146 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1147 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1148 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1149 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1150 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1151 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1152 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1153 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1154 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1155 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1156 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1157 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1158 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1161 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1163 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1164 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1165 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1166 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1167 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1168 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1169 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1170 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1171 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1172 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1173 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1174 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1175 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1176 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1177 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1178 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1179 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1182 case GL_OCCLUSION_TEST_HP
:
1183 CHECK_EXTENSION_B(HP_occlusion_test
, pname
);
1184 params
[0] = ctx
->Depth
.OcclusionTest
;
1186 case GL_OCCLUSION_TEST_RESULT_HP
:
1187 CHECK_EXTENSION_B(HP_occlusion_test
, pname
);
1189 if (ctx
->Depth
.OcclusionTest
)
1190 params
[0] = ctx
->OcclusionResult
;
1192 params
[0] = ctx
->OcclusionResultSaved
;
1193 /* reset flag now */
1194 ctx
->OcclusionResult
= GL_FALSE
;
1195 ctx
->OcclusionResultSaved
= GL_FALSE
;
1199 case GL_PIXEL_TEXTURE_SGIS
:
1200 CHECK_EXTENSION_B(SGIS_pixel_texture
, pname
);
1201 params
[0] = ctx
->Pixel
.PixelTextureEnabled
;
1203 case GL_PIXEL_TEX_GEN_SGIX
:
1204 CHECK_EXTENSION_B(SGIX_pixel_texture
, pname
);
1205 params
[0] = ctx
->Pixel
.PixelTextureEnabled
;
1207 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
1208 CHECK_EXTENSION_B(SGIX_pixel_texture
, pname
);
1209 params
[0] = ENUM_TO_BOOLEAN(pixel_texgen_mode(ctx
));
1211 case GL_COLOR_MATRIX_SGI
:
1213 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1214 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1215 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1216 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1217 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1218 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1219 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1220 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1221 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1222 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1223 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1224 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1225 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1226 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1227 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1228 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1229 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1232 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1233 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1235 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1236 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1238 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1239 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1241 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1242 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1244 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1245 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1247 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1248 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1250 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1251 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1253 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1254 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1256 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1257 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1259 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1260 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1262 case GL_CONVOLUTION_1D_EXT
:
1263 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1264 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1266 case GL_CONVOLUTION_2D_EXT
:
1267 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1268 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1270 case GL_SEPARABLE_2D_EXT
:
1271 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1272 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1274 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1275 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1276 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1278 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1279 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1280 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1282 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1283 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1284 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1286 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1287 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1288 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1290 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1291 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1292 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1294 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1295 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1296 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1298 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1299 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1300 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1302 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1303 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1304 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1307 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1308 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1311 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1312 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1314 case GL_COLOR_TABLE_SGI
:
1315 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1316 params
[0] = ctx
->Pixel
.ColorTableEnabled
;
1318 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1319 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1320 params
[0] = ctx
->Pixel
.PostConvolutionColorTableEnabled
;
1322 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1323 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1324 params
[0] = ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
1326 case GL_TEXTURE_COLOR_TABLE_SGI
:
1327 CHECK_EXTENSION_B(SGI_texture_color_table
, pname
);
1328 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1330 case GL_COLOR_SUM_EXT
:
1331 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1332 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1334 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1335 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1337 FLUSH_CURRENT(ctx
, 0);
1338 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1339 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1340 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1341 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1344 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1345 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1346 params
[0] = ctx
->Array
.SecondaryColor
.Enabled
;
1348 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1349 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1350 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Type
);
1352 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1353 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1354 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Stride
);
1356 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1357 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1358 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Size
);
1360 case GL_CURRENT_FOG_COORDINATE_EXT
:
1361 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1363 FLUSH_CURRENT(ctx
, 0);
1364 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1367 case GL_FOG_COORDINATE_ARRAY_EXT
:
1368 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1369 params
[0] = ctx
->Array
.FogCoord
.Enabled
;
1371 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1372 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1373 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.FogCoord
.Type
);
1375 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1376 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1377 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.Stride
);
1379 case GL_FOG_COORDINATE_SOURCE_EXT
:
1380 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1381 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1383 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1384 CHECK_EXTENSION_B(EXT_texture_lod_bias
, pname
);
1385 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1387 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1388 CHECK_EXTENSION_B(EXT_texture_filter_anisotropic
, pname
);
1389 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1391 case GL_MULTISAMPLE_ARB
:
1392 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1393 params
[0] = ctx
->Multisample
.Enabled
;
1395 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1396 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1397 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1399 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1400 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1401 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1403 case GL_SAMPLE_COVERAGE_ARB
:
1404 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1405 params
[0] = ctx
->Multisample
.SampleCoverage
;
1407 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1408 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1409 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1411 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1412 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1413 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1415 case GL_SAMPLE_BUFFERS_ARB
:
1416 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1417 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1419 case GL_SAMPLES_ARB
:
1420 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1421 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1423 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1424 CHECK_EXTENSION_B(IBM_rasterpos_clip
, pname
);
1425 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1427 case GL_POINT_SPRITE_NV
:
1428 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1429 params
[0] = ctx
->Point
.PointSprite
;
1431 case GL_POINT_SPRITE_R_MODE_NV
:
1432 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1433 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1435 case GL_POINT_SPRITE_COORD_ORIGIN
:
1436 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1437 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1439 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1440 CHECK_EXTENSION_B(SGIS_generate_mipmap
, pname
);
1441 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1443 case GL_VERTEX_PROGRAM_NV
:
1444 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1445 params
[0] = ctx
->VertexProgram
.Enabled
;
1447 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
1448 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1449 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1451 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
1452 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1453 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1455 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
1456 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1457 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1459 case GL_MAX_TRACK_MATRICES_NV
:
1460 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1461 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1463 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
1464 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1465 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1467 case GL_CURRENT_MATRIX_NV
:
1468 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1470 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1471 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1472 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1473 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1474 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1475 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1476 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1477 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1478 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1479 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1480 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1481 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1482 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1483 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1484 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1485 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1486 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1489 case GL_VERTEX_PROGRAM_BINDING_NV
:
1490 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1491 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1493 case GL_PROGRAM_ERROR_POSITION_NV
:
1494 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1495 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1497 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1498 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1499 params
[0] = ctx
->Array
.VertexAttrib
[0].Enabled
;
1501 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1502 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1503 params
[0] = ctx
->Array
.VertexAttrib
[1].Enabled
;
1505 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1506 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1507 params
[0] = ctx
->Array
.VertexAttrib
[2].Enabled
;
1509 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1510 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1511 params
[0] = ctx
->Array
.VertexAttrib
[3].Enabled
;
1513 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1514 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1515 params
[0] = ctx
->Array
.VertexAttrib
[4].Enabled
;
1517 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1518 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1519 params
[0] = ctx
->Array
.VertexAttrib
[5].Enabled
;
1521 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1522 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1523 params
[0] = ctx
->Array
.VertexAttrib
[6].Enabled
;
1525 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1526 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1527 params
[0] = ctx
->Array
.VertexAttrib
[7].Enabled
;
1529 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1530 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1531 params
[0] = ctx
->Array
.VertexAttrib
[8].Enabled
;
1533 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1534 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1535 params
[0] = ctx
->Array
.VertexAttrib
[9].Enabled
;
1537 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1538 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1539 params
[0] = ctx
->Array
.VertexAttrib
[10].Enabled
;
1541 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1542 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1543 params
[0] = ctx
->Array
.VertexAttrib
[11].Enabled
;
1545 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1546 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1547 params
[0] = ctx
->Array
.VertexAttrib
[12].Enabled
;
1549 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1550 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1551 params
[0] = ctx
->Array
.VertexAttrib
[13].Enabled
;
1553 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1554 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1555 params
[0] = ctx
->Array
.VertexAttrib
[14].Enabled
;
1557 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1558 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1559 params
[0] = ctx
->Array
.VertexAttrib
[15].Enabled
;
1561 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1562 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1563 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1565 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1566 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1567 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1569 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1570 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1571 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1573 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1574 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1575 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1577 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1578 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1579 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1581 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1582 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1583 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1585 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1586 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1587 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1589 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1590 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1591 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1593 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1594 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1595 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1597 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1598 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1599 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1601 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1602 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1603 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1605 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1606 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1607 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1609 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1610 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1611 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1613 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1614 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1615 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1617 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1618 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1619 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1621 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1622 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1623 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1625 case GL_FRAGMENT_PROGRAM_NV
:
1626 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1627 params
[0] = ctx
->FragmentProgram
.Enabled
;
1629 case GL_MAX_TEXTURE_COORDS_NV
:
1630 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1631 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1633 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
1634 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1635 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1637 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1638 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1639 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1641 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1642 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1643 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1645 case GL_TEXTURE_RECTANGLE_NV
:
1646 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1647 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1649 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1650 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1651 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
1653 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1654 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1655 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1657 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1658 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1659 params
[0] = ctx
->Stencil
.TestTwoSide
;
1661 case GL_ACTIVE_STENCIL_FACE_EXT
:
1662 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1663 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1665 case GL_MAX_SHININESS_NV
:
1666 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1667 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1669 case GL_MAX_SPOT_EXPONENT_NV
:
1670 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1671 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1673 case GL_ARRAY_BUFFER_BINDING_ARB
:
1674 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1675 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1677 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1678 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1679 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.BufferObj
->Name
);
1681 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1682 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1683 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.BufferObj
->Name
);
1685 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1686 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1687 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.BufferObj
->Name
);
1689 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1690 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1691 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.BufferObj
->Name
);
1693 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1694 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1695 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1697 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1698 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1699 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
1701 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1702 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1703 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
1705 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1706 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1707 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.BufferObj
->Name
);
1709 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1710 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1711 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1713 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1714 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1715 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1717 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1718 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1719 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1721 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1722 CHECK_EXTENSION_B(ARB_vertex_program
, pname
);
1723 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexProgramAttribs
);
1725 case GL_FRAGMENT_PROGRAM_ARB
:
1726 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1727 params
[0] = ctx
->FragmentProgram
.Enabled
;
1729 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1730 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1732 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1733 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1734 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1735 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1736 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1737 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1738 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1739 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1740 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1741 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1742 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1743 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1744 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1745 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1746 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1747 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1748 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1751 case GL_DEPTH_BOUNDS_TEST_EXT
:
1752 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1753 params
[0] = ctx
->Depth
.BoundsTest
;
1755 case GL_DEPTH_BOUNDS_EXT
:
1756 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1757 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1758 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1760 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1761 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1762 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1764 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1765 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1766 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1768 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1769 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1770 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1772 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1773 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1774 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1776 case GL_MAX_DRAW_BUFFERS_ARB
:
1777 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1778 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1780 case GL_DRAW_BUFFER0_ARB
:
1781 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1782 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.DrawBuffer
[0]);
1784 case GL_DRAW_BUFFER1_ARB
:
1785 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1788 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1789 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1792 buffer
= ctx
->Color
.DrawBuffer
[1];
1793 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1796 case GL_DRAW_BUFFER2_ARB
:
1797 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1800 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1801 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1804 buffer
= ctx
->Color
.DrawBuffer
[2];
1805 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1808 case GL_DRAW_BUFFER3_ARB
:
1809 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1812 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1813 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1816 buffer
= ctx
->Color
.DrawBuffer
[3];
1817 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1820 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1821 CHECK_EXTENSION_B(OES_read_format
, pname
);
1822 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1824 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1825 CHECK_EXTENSION_B(OES_read_format
, pname
);
1826 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1828 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1829 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1830 params
[0] = INT_TO_BOOLEAN(6);
1832 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1833 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1834 params
[0] = INT_TO_BOOLEAN(8);
1836 case GL_NUM_PASSES_ATI
:
1837 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1838 params
[0] = INT_TO_BOOLEAN(2);
1840 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1841 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1842 params
[0] = INT_TO_BOOLEAN(8);
1844 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1845 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1846 params
[0] = INT_TO_BOOLEAN(16);
1848 case GL_COLOR_ALPHA_PAIRING_ATI
:
1849 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1850 params
[0] = GL_TRUE
;
1852 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1853 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1854 params
[0] = INT_TO_BOOLEAN(3);
1856 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1857 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1858 params
[0] = INT_TO_BOOLEAN(3);
1860 case GL_STENCIL_BACK_FUNC
:
1861 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1863 case GL_STENCIL_BACK_VALUE_MASK
:
1864 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1866 case GL_STENCIL_BACK_REF
:
1867 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1869 case GL_STENCIL_BACK_FAIL
:
1870 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1872 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1873 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1875 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1876 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1878 case GL_FRAMEBUFFER_BINDING_EXT
:
1879 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1880 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1882 case GL_RENDERBUFFER_BINDING_EXT
:
1883 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1884 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1886 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1887 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1888 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1890 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1891 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1892 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1894 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1895 CHECK_EXTENSION_B(ARB_fragment_shader
, pname
);
1896 params
[0] = INT_TO_BOOLEAN(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
1898 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1899 CHECK_EXTENSION_B(ARB_fragment_shader
, pname
);
1900 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1902 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1903 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1904 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_UNIFORM_COMPONENTS
);
1906 case GL_MAX_VARYING_FLOATS_ARB
:
1907 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1908 params
[0] = INT_TO_BOOLEAN(MAX_VARYING_FLOATS
);
1910 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1911 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1912 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
1914 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1915 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1916 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1919 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1924 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1926 GET_CURRENT_CONTEXT(ctx
);
1927 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1932 if (ctx
->Driver
.GetFloatv
&&
1933 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1937 case GL_ACCUM_RED_BITS
:
1938 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1940 case GL_ACCUM_GREEN_BITS
:
1941 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1943 case GL_ACCUM_BLUE_BITS
:
1944 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1946 case GL_ACCUM_ALPHA_BITS
:
1947 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1949 case GL_ACCUM_CLEAR_VALUE
:
1950 params
[0] = ctx
->Accum
.ClearColor
[0];
1951 params
[1] = ctx
->Accum
.ClearColor
[1];
1952 params
[2] = ctx
->Accum
.ClearColor
[2];
1953 params
[3] = ctx
->Accum
.ClearColor
[3];
1956 params
[0] = ctx
->Pixel
.AlphaBias
;
1959 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1961 case GL_ALPHA_SCALE
:
1962 params
[0] = ctx
->Pixel
.AlphaScale
;
1965 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1967 case GL_ALPHA_TEST_FUNC
:
1968 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1970 case GL_ALPHA_TEST_REF
:
1971 params
[0] = ctx
->Color
.AlphaRef
;
1973 case GL_ATTRIB_STACK_DEPTH
:
1974 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1976 case GL_AUTO_NORMAL
:
1977 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1979 case GL_AUX_BUFFERS
:
1980 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1983 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1986 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1989 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1991 case GL_BLEND_SRC_RGB_EXT
:
1992 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1994 case GL_BLEND_DST_RGB_EXT
:
1995 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1997 case GL_BLEND_SRC_ALPHA_EXT
:
1998 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
2000 case GL_BLEND_DST_ALPHA_EXT
:
2001 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
2003 case GL_BLEND_EQUATION
:
2004 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
2006 case GL_BLEND_EQUATION_ALPHA_EXT
:
2007 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
2009 case GL_BLEND_COLOR_EXT
:
2010 params
[0] = ctx
->Color
.BlendColor
[0];
2011 params
[1] = ctx
->Color
.BlendColor
[1];
2012 params
[2] = ctx
->Color
.BlendColor
[2];
2013 params
[3] = ctx
->Color
.BlendColor
[3];
2016 params
[0] = ctx
->Pixel
.BlueBias
;
2019 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
2022 params
[0] = ctx
->Pixel
.BlueScale
;
2024 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2025 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2027 case GL_CLIP_PLANE0
:
2028 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2030 case GL_CLIP_PLANE1
:
2031 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2033 case GL_CLIP_PLANE2
:
2034 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2036 case GL_CLIP_PLANE3
:
2037 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2039 case GL_CLIP_PLANE4
:
2040 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2042 case GL_CLIP_PLANE5
:
2043 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2045 case GL_COLOR_CLEAR_VALUE
:
2046 params
[0] = ctx
->Color
.ClearColor
[0];
2047 params
[1] = ctx
->Color
.ClearColor
[1];
2048 params
[2] = ctx
->Color
.ClearColor
[2];
2049 params
[3] = ctx
->Color
.ClearColor
[3];
2051 case GL_COLOR_MATERIAL
:
2052 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2054 case GL_COLOR_MATERIAL_FACE
:
2055 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2057 case GL_COLOR_MATERIAL_PARAMETER
:
2058 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2060 case GL_COLOR_WRITEMASK
:
2061 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2062 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2063 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2064 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2067 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2069 case GL_CULL_FACE_MODE
:
2070 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2072 case GL_CURRENT_COLOR
:
2074 FLUSH_CURRENT(ctx
, 0);
2075 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2076 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2077 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2078 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2081 case GL_CURRENT_INDEX
:
2083 FLUSH_CURRENT(ctx
, 0);
2084 params
[0] = ctx
->Current
.Index
;
2087 case GL_CURRENT_NORMAL
:
2089 FLUSH_CURRENT(ctx
, 0);
2090 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2091 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2092 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2095 case GL_CURRENT_RASTER_COLOR
:
2096 params
[0] = ctx
->Current
.RasterColor
[0];
2097 params
[1] = ctx
->Current
.RasterColor
[1];
2098 params
[2] = ctx
->Current
.RasterColor
[2];
2099 params
[3] = ctx
->Current
.RasterColor
[3];
2101 case GL_CURRENT_RASTER_DISTANCE
:
2102 params
[0] = ctx
->Current
.RasterDistance
;
2104 case GL_CURRENT_RASTER_INDEX
:
2105 params
[0] = ctx
->Current
.RasterIndex
;
2107 case GL_CURRENT_RASTER_POSITION
:
2108 params
[0] = ctx
->Current
.RasterPos
[0];
2109 params
[1] = ctx
->Current
.RasterPos
[1];
2110 params
[2] = ctx
->Current
.RasterPos
[2];
2111 params
[3] = ctx
->Current
.RasterPos
[3];
2113 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2115 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2116 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2117 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2118 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2119 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2122 case GL_CURRENT_RASTER_POSITION_VALID
:
2123 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2125 case GL_CURRENT_TEXTURE_COORDS
:
2127 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2128 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2129 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2130 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2131 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2135 params
[0] = ctx
->Pixel
.DepthBias
;
2138 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2140 case GL_DEPTH_CLEAR_VALUE
:
2141 params
[0] = ctx
->Depth
.Clear
;
2144 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2146 case GL_DEPTH_RANGE
:
2147 params
[0] = ctx
->Viewport
.Near
;
2148 params
[1] = ctx
->Viewport
.Far
;
2150 case GL_DEPTH_SCALE
:
2151 params
[0] = ctx
->Pixel
.DepthScale
;
2154 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2156 case GL_DEPTH_WRITEMASK
:
2157 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2160 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2162 case GL_DOUBLEBUFFER
:
2163 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2165 case GL_DRAW_BUFFER
:
2166 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
2170 FLUSH_CURRENT(ctx
, 0);
2171 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.EdgeFlag
);
2174 case GL_FEEDBACK_BUFFER_SIZE
:
2175 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2177 case GL_FEEDBACK_BUFFER_TYPE
:
2178 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2181 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2184 params
[0] = ctx
->Fog
.Color
[0];
2185 params
[1] = ctx
->Fog
.Color
[1];
2186 params
[2] = ctx
->Fog
.Color
[2];
2187 params
[3] = ctx
->Fog
.Color
[3];
2189 case GL_FOG_DENSITY
:
2190 params
[0] = ctx
->Fog
.Density
;
2193 params
[0] = ctx
->Fog
.End
;
2196 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2199 params
[0] = ctx
->Fog
.Index
;
2202 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2205 params
[0] = ctx
->Fog
.Start
;
2208 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2211 params
[0] = ctx
->Pixel
.GreenBias
;
2214 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2216 case GL_GREEN_SCALE
:
2217 params
[0] = ctx
->Pixel
.GreenScale
;
2220 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2222 case GL_INDEX_CLEAR_VALUE
:
2223 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2226 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2228 case GL_INDEX_OFFSET
:
2229 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2231 case GL_INDEX_SHIFT
:
2232 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2234 case GL_INDEX_WRITEMASK
:
2235 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2238 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2241 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2244 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2250 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2253 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2256 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2262 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2264 case GL_LIGHT_MODEL_AMBIENT
:
2265 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2266 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2267 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2268 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2270 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2271 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2273 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2274 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2276 case GL_LIGHT_MODEL_TWO_SIDE
:
2277 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2279 case GL_LINE_SMOOTH
:
2280 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2282 case GL_LINE_SMOOTH_HINT
:
2283 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2285 case GL_LINE_STIPPLE
:
2286 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2288 case GL_LINE_STIPPLE_PATTERN
:
2289 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2291 case GL_LINE_STIPPLE_REPEAT
:
2292 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2295 params
[0] = ctx
->Line
.Width
;
2297 case GL_LINE_WIDTH_GRANULARITY
:
2298 params
[0] = ctx
->Const
.LineWidthGranularity
;
2300 case GL_LINE_WIDTH_RANGE
:
2301 params
[0] = ctx
->Const
.MinLineWidthAA
;
2302 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2304 case GL_ALIASED_LINE_WIDTH_RANGE
:
2305 params
[0] = ctx
->Const
.MinLineWidth
;
2306 params
[1] = ctx
->Const
.MaxLineWidth
;
2309 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2312 params
[0] = (GLfloat
)(ctx
->ListState
.CurrentListNum
);
2317 if (!ctx
->CompileFlag
)
2319 else if (ctx
->ExecuteFlag
)
2320 mode
= GL_COMPILE_AND_EXECUTE
;
2323 params
[0] = ENUM_TO_FLOAT(mode
);
2326 case GL_INDEX_LOGIC_OP
:
2327 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2329 case GL_COLOR_LOGIC_OP
:
2330 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2332 case GL_LOGIC_OP_MODE
:
2333 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2335 case GL_MAP1_COLOR_4
:
2336 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2338 case GL_MAP1_GRID_DOMAIN
:
2339 params
[0] = ctx
->Eval
.MapGrid1u1
;
2340 params
[1] = ctx
->Eval
.MapGrid1u2
;
2342 case GL_MAP1_GRID_SEGMENTS
:
2343 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2346 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2348 case GL_MAP1_NORMAL
:
2349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2351 case GL_MAP1_TEXTURE_COORD_1
:
2352 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2354 case GL_MAP1_TEXTURE_COORD_2
:
2355 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2357 case GL_MAP1_TEXTURE_COORD_3
:
2358 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2360 case GL_MAP1_TEXTURE_COORD_4
:
2361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2363 case GL_MAP1_VERTEX_3
:
2364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2366 case GL_MAP1_VERTEX_4
:
2367 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2369 case GL_MAP2_COLOR_4
:
2370 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2372 case GL_MAP2_GRID_DOMAIN
:
2373 params
[0] = ctx
->Eval
.MapGrid2u1
;
2374 params
[1] = ctx
->Eval
.MapGrid2u2
;
2375 params
[2] = ctx
->Eval
.MapGrid2v1
;
2376 params
[3] = ctx
->Eval
.MapGrid2v2
;
2378 case GL_MAP2_GRID_SEGMENTS
:
2379 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2380 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2383 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2385 case GL_MAP2_NORMAL
:
2386 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2388 case GL_MAP2_TEXTURE_COORD_1
:
2389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2391 case GL_MAP2_TEXTURE_COORD_2
:
2392 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2394 case GL_MAP2_TEXTURE_COORD_3
:
2395 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2397 case GL_MAP2_TEXTURE_COORD_4
:
2398 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2400 case GL_MAP2_VERTEX_3
:
2401 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2403 case GL_MAP2_VERTEX_4
:
2404 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2407 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2409 case GL_MAP_STENCIL
:
2410 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2412 case GL_MATRIX_MODE
:
2413 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2415 case GL_MAX_ATTRIB_STACK_DEPTH
:
2416 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2418 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2419 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2421 case GL_MAX_CLIP_PLANES
:
2422 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2424 case GL_MAX_ELEMENTS_VERTICES
:
2425 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2427 case GL_MAX_ELEMENTS_INDICES
:
2428 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2430 case GL_MAX_EVAL_ORDER
:
2431 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2434 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2436 case GL_MAX_LIST_NESTING
:
2437 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2439 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2440 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2442 case GL_MAX_NAME_STACK_DEPTH
:
2443 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2445 case GL_MAX_PIXEL_MAP_TABLE
:
2446 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2448 case GL_MAX_PROJECTION_STACK_DEPTH
:
2449 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2451 case GL_MAX_TEXTURE_SIZE
:
2452 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2454 case GL_MAX_3D_TEXTURE_SIZE
:
2455 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2457 case GL_MAX_TEXTURE_STACK_DEPTH
:
2458 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2460 case GL_MAX_VIEWPORT_DIMS
:
2461 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2462 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2464 case GL_MODELVIEW_MATRIX
:
2466 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2467 params
[0] = matrix
[0];
2468 params
[1] = matrix
[1];
2469 params
[2] = matrix
[2];
2470 params
[3] = matrix
[3];
2471 params
[4] = matrix
[4];
2472 params
[5] = matrix
[5];
2473 params
[6] = matrix
[6];
2474 params
[7] = matrix
[7];
2475 params
[8] = matrix
[8];
2476 params
[9] = matrix
[9];
2477 params
[10] = matrix
[10];
2478 params
[11] = matrix
[11];
2479 params
[12] = matrix
[12];
2480 params
[13] = matrix
[13];
2481 params
[14] = matrix
[14];
2482 params
[15] = matrix
[15];
2485 case GL_MODELVIEW_STACK_DEPTH
:
2486 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2488 case GL_NAME_STACK_DEPTH
:
2489 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2492 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2494 case GL_PACK_ALIGNMENT
:
2495 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2497 case GL_PACK_LSB_FIRST
:
2498 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2500 case GL_PACK_ROW_LENGTH
:
2501 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2503 case GL_PACK_SKIP_PIXELS
:
2504 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2506 case GL_PACK_SKIP_ROWS
:
2507 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2509 case GL_PACK_SWAP_BYTES
:
2510 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2512 case GL_PACK_SKIP_IMAGES_EXT
:
2513 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2515 case GL_PACK_IMAGE_HEIGHT_EXT
:
2516 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2518 case GL_PACK_INVERT_MESA
:
2519 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2521 case GL_PERSPECTIVE_CORRECTION_HINT
:
2522 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2524 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2525 params
[0] = (GLfloat
)(ctx
->Pixel
.MapAtoAsize
);
2527 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2528 params
[0] = (GLfloat
)(ctx
->Pixel
.MapBtoBsize
);
2530 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2531 params
[0] = (GLfloat
)(ctx
->Pixel
.MapGtoGsize
);
2533 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2534 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoAsize
);
2536 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2537 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoBsize
);
2539 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2540 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoGsize
);
2542 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2543 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoIsize
);
2545 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2546 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoRsize
);
2548 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2549 params
[0] = (GLfloat
)(ctx
->Pixel
.MapRtoRsize
);
2551 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2552 params
[0] = (GLfloat
)(ctx
->Pixel
.MapStoSsize
);
2555 params
[0] = ctx
->Point
.Size
;
2557 case GL_POINT_SIZE_GRANULARITY
:
2558 params
[0] = ctx
->Const
.PointSizeGranularity
;
2560 case GL_POINT_SIZE_RANGE
:
2561 params
[0] = ctx
->Const
.MinPointSizeAA
;
2562 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2564 case GL_ALIASED_POINT_SIZE_RANGE
:
2565 params
[0] = ctx
->Const
.MinPointSize
;
2566 params
[1] = ctx
->Const
.MaxPointSize
;
2568 case GL_POINT_SMOOTH
:
2569 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2571 case GL_POINT_SMOOTH_HINT
:
2572 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2574 case GL_POINT_SIZE_MIN_EXT
:
2575 params
[0] = ctx
->Point
.MinSize
;
2577 case GL_POINT_SIZE_MAX_EXT
:
2578 params
[0] = ctx
->Point
.MaxSize
;
2580 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2581 params
[0] = ctx
->Point
.Threshold
;
2583 case GL_DISTANCE_ATTENUATION_EXT
:
2584 params
[0] = ctx
->Point
.Params
[0];
2585 params
[1] = ctx
->Point
.Params
[1];
2586 params
[2] = ctx
->Point
.Params
[2];
2588 case GL_POLYGON_MODE
:
2589 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2590 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2592 case GL_POLYGON_OFFSET_BIAS_EXT
:
2593 params
[0] = ctx
->Polygon
.OffsetUnits
;
2595 case GL_POLYGON_OFFSET_FACTOR
:
2596 params
[0] = ctx
->Polygon
.OffsetFactor
;
2598 case GL_POLYGON_OFFSET_UNITS
:
2599 params
[0] = ctx
->Polygon
.OffsetUnits
;
2601 case GL_POLYGON_SMOOTH
:
2602 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2604 case GL_POLYGON_SMOOTH_HINT
:
2605 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2607 case GL_POLYGON_STIPPLE
:
2608 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2610 case GL_PROJECTION_MATRIX
:
2612 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2613 params
[0] = matrix
[0];
2614 params
[1] = matrix
[1];
2615 params
[2] = matrix
[2];
2616 params
[3] = matrix
[3];
2617 params
[4] = matrix
[4];
2618 params
[5] = matrix
[5];
2619 params
[6] = matrix
[6];
2620 params
[7] = matrix
[7];
2621 params
[8] = matrix
[8];
2622 params
[9] = matrix
[9];
2623 params
[10] = matrix
[10];
2624 params
[11] = matrix
[11];
2625 params
[12] = matrix
[12];
2626 params
[13] = matrix
[13];
2627 params
[14] = matrix
[14];
2628 params
[15] = matrix
[15];
2631 case GL_PROJECTION_STACK_DEPTH
:
2632 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2634 case GL_READ_BUFFER
:
2635 params
[0] = ENUM_TO_FLOAT(ctx
->Pixel
.ReadBuffer
);
2638 params
[0] = ctx
->Pixel
.RedBias
;
2641 params
[0] = (GLfloat
)( ctx
->DrawBuffer
->Visual
.redBits
);
2644 params
[0] = ctx
->Pixel
.RedScale
;
2646 case GL_RENDER_MODE
:
2647 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2649 case GL_RESCALE_NORMAL
:
2650 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2653 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2655 case GL_SCISSOR_BOX
:
2656 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2657 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2658 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2659 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2661 case GL_SCISSOR_TEST
:
2662 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2664 case GL_SELECTION_BUFFER_SIZE
:
2665 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2667 case GL_SHADE_MODEL
:
2668 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2670 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2671 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2673 case GL_STENCIL_BITS
:
2674 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2676 case GL_STENCIL_CLEAR_VALUE
:
2677 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2679 case GL_STENCIL_FAIL
:
2680 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2682 case GL_STENCIL_FUNC
:
2683 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2685 case GL_STENCIL_PASS_DEPTH_FAIL
:
2686 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2688 case GL_STENCIL_PASS_DEPTH_PASS
:
2689 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2691 case GL_STENCIL_REF
:
2692 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2694 case GL_STENCIL_TEST
:
2695 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2697 case GL_STENCIL_VALUE_MASK
:
2698 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2700 case GL_STENCIL_WRITEMASK
:
2701 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2704 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2706 case GL_SUBPIXEL_BITS
:
2707 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2710 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2713 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2716 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2718 case GL_TEXTURE_BINDING_1D
:
2719 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
2721 case GL_TEXTURE_BINDING_2D
:
2722 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2724 case GL_TEXTURE_BINDING_3D
:
2725 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
2727 case GL_TEXTURE_ENV_COLOR
:
2729 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
2730 params
[0] = color
[0];
2731 params
[1] = color
[1];
2732 params
[2] = color
[2];
2733 params
[3] = color
[3];
2736 case GL_TEXTURE_ENV_MODE
:
2737 params
[0] = ENUM_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
2739 case GL_TEXTURE_GEN_S
:
2740 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2742 case GL_TEXTURE_GEN_T
:
2743 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2745 case GL_TEXTURE_GEN_R
:
2746 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2748 case GL_TEXTURE_GEN_Q
:
2749 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2751 case GL_TEXTURE_MATRIX
:
2753 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2754 params
[0] = matrix
[0];
2755 params
[1] = matrix
[1];
2756 params
[2] = matrix
[2];
2757 params
[3] = matrix
[3];
2758 params
[4] = matrix
[4];
2759 params
[5] = matrix
[5];
2760 params
[6] = matrix
[6];
2761 params
[7] = matrix
[7];
2762 params
[8] = matrix
[8];
2763 params
[9] = matrix
[9];
2764 params
[10] = matrix
[10];
2765 params
[11] = matrix
[11];
2766 params
[12] = matrix
[12];
2767 params
[13] = matrix
[13];
2768 params
[14] = matrix
[14];
2769 params
[15] = matrix
[15];
2772 case GL_TEXTURE_STACK_DEPTH
:
2773 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2775 case GL_UNPACK_ALIGNMENT
:
2776 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2778 case GL_UNPACK_LSB_FIRST
:
2779 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2781 case GL_UNPACK_ROW_LENGTH
:
2782 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2784 case GL_UNPACK_SKIP_PIXELS
:
2785 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2787 case GL_UNPACK_SKIP_ROWS
:
2788 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2790 case GL_UNPACK_SWAP_BYTES
:
2791 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2793 case GL_UNPACK_SKIP_IMAGES_EXT
:
2794 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2796 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2797 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2799 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2800 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2803 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2804 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2805 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2806 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2809 params
[0] = ctx
->Pixel
.ZoomX
;
2812 params
[0] = ctx
->Pixel
.ZoomY
;
2814 case GL_VERTEX_ARRAY
:
2815 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Vertex
.Enabled
);
2817 case GL_VERTEX_ARRAY_SIZE
:
2818 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Size
);
2820 case GL_VERTEX_ARRAY_TYPE
:
2821 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Vertex
.Type
);
2823 case GL_VERTEX_ARRAY_STRIDE
:
2824 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Stride
);
2826 case GL_VERTEX_ARRAY_COUNT_EXT
:
2827 params
[0] = (GLfloat
)(0);
2829 case GL_NORMAL_ARRAY
:
2830 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Enabled
);
2832 case GL_NORMAL_ARRAY_TYPE
:
2833 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Type
);
2835 case GL_NORMAL_ARRAY_STRIDE
:
2836 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.Stride
);
2838 case GL_NORMAL_ARRAY_COUNT_EXT
:
2839 params
[0] = (GLfloat
)(0);
2841 case GL_COLOR_ARRAY
:
2842 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Color
.Enabled
);
2844 case GL_COLOR_ARRAY_SIZE
:
2845 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Size
);
2847 case GL_COLOR_ARRAY_TYPE
:
2848 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Color
.Type
);
2850 case GL_COLOR_ARRAY_STRIDE
:
2851 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Stride
);
2853 case GL_COLOR_ARRAY_COUNT_EXT
:
2854 params
[0] = (GLfloat
)(0);
2856 case GL_INDEX_ARRAY
:
2857 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Index
.Enabled
);
2859 case GL_INDEX_ARRAY_TYPE
:
2860 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Index
.Type
);
2862 case GL_INDEX_ARRAY_STRIDE
:
2863 params
[0] = (GLfloat
)(ctx
->Array
.Index
.Stride
);
2865 case GL_INDEX_ARRAY_COUNT_EXT
:
2866 params
[0] = (GLfloat
)(0);
2868 case GL_TEXTURE_COORD_ARRAY
:
2869 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2871 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2872 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2874 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2875 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2877 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2878 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2880 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2881 params
[0] = (GLfloat
)(0);
2883 case GL_EDGE_FLAG_ARRAY
:
2884 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.EdgeFlag
.Enabled
);
2886 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2887 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.Stride
);
2889 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2890 params
[0] = (GLfloat
)(0);
2892 case GL_MAX_TEXTURE_UNITS_ARB
:
2893 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2894 params
[0] = (GLfloat
)(MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
));
2896 case GL_ACTIVE_TEXTURE_ARB
:
2897 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2898 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2900 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2901 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2902 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2904 case GL_TEXTURE_CUBE_MAP_ARB
:
2905 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2906 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2908 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2909 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2910 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
2912 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2913 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2914 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2916 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2917 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2918 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2920 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2921 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2922 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
));
2924 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2925 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2928 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
2930 for (i
= 0; i
< n
; i
++)
2931 params
[i
] = ENUM_TO_INT(formats
[i
]);
2934 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2935 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2936 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2938 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2939 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2940 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2942 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2944 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2945 params
[0] = matrix
[0];
2946 params
[1] = matrix
[4];
2947 params
[2] = matrix
[8];
2948 params
[3] = matrix
[12];
2949 params
[4] = matrix
[1];
2950 params
[5] = matrix
[5];
2951 params
[6] = matrix
[9];
2952 params
[7] = matrix
[13];
2953 params
[8] = matrix
[2];
2954 params
[9] = matrix
[6];
2955 params
[10] = matrix
[10];
2956 params
[11] = matrix
[14];
2957 params
[12] = matrix
[3];
2958 params
[13] = matrix
[7];
2959 params
[14] = matrix
[11];
2960 params
[15] = matrix
[15];
2963 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2965 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2966 params
[0] = matrix
[0];
2967 params
[1] = matrix
[4];
2968 params
[2] = matrix
[8];
2969 params
[3] = matrix
[12];
2970 params
[4] = matrix
[1];
2971 params
[5] = matrix
[5];
2972 params
[6] = matrix
[9];
2973 params
[7] = matrix
[13];
2974 params
[8] = matrix
[2];
2975 params
[9] = matrix
[6];
2976 params
[10] = matrix
[10];
2977 params
[11] = matrix
[14];
2978 params
[12] = matrix
[3];
2979 params
[13] = matrix
[7];
2980 params
[14] = matrix
[11];
2981 params
[15] = matrix
[15];
2984 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2986 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2987 params
[0] = matrix
[0];
2988 params
[1] = matrix
[4];
2989 params
[2] = matrix
[8];
2990 params
[3] = matrix
[12];
2991 params
[4] = matrix
[1];
2992 params
[5] = matrix
[5];
2993 params
[6] = matrix
[9];
2994 params
[7] = matrix
[13];
2995 params
[8] = matrix
[2];
2996 params
[9] = matrix
[6];
2997 params
[10] = matrix
[10];
2998 params
[11] = matrix
[14];
2999 params
[12] = matrix
[3];
3000 params
[13] = matrix
[7];
3001 params
[14] = matrix
[11];
3002 params
[15] = matrix
[15];
3005 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
3007 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
3008 params
[0] = matrix
[0];
3009 params
[1] = matrix
[4];
3010 params
[2] = matrix
[8];
3011 params
[3] = matrix
[12];
3012 params
[4] = matrix
[1];
3013 params
[5] = matrix
[5];
3014 params
[6] = matrix
[9];
3015 params
[7] = matrix
[13];
3016 params
[8] = matrix
[2];
3017 params
[9] = matrix
[6];
3018 params
[10] = matrix
[10];
3019 params
[11] = matrix
[14];
3020 params
[12] = matrix
[3];
3021 params
[13] = matrix
[7];
3022 params
[14] = matrix
[11];
3023 params
[15] = matrix
[15];
3026 case GL_OCCLUSION_TEST_HP
:
3027 CHECK_EXTENSION_F(HP_occlusion_test
, pname
);
3028 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.OcclusionTest
);
3030 case GL_OCCLUSION_TEST_RESULT_HP
:
3031 CHECK_EXTENSION_F(HP_occlusion_test
, pname
);
3033 if (ctx
->Depth
.OcclusionTest
)
3034 params
[0] = ctx
->OcclusionResult
;
3036 params
[0] = ctx
->OcclusionResultSaved
;
3037 /* reset flag now */
3038 ctx
->OcclusionResult
= GL_FALSE
;
3039 ctx
->OcclusionResultSaved
= GL_FALSE
;
3043 case GL_PIXEL_TEXTURE_SGIS
:
3044 CHECK_EXTENSION_F(SGIS_pixel_texture
, pname
);
3045 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PixelTextureEnabled
);
3047 case GL_PIXEL_TEX_GEN_SGIX
:
3048 CHECK_EXTENSION_F(SGIX_pixel_texture
, pname
);
3049 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PixelTextureEnabled
);
3051 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
3052 CHECK_EXTENSION_F(SGIX_pixel_texture
, pname
);
3053 params
[0] = ENUM_TO_FLOAT(pixel_texgen_mode(ctx
));
3055 case GL_COLOR_MATRIX_SGI
:
3057 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3058 params
[0] = matrix
[0];
3059 params
[1] = matrix
[1];
3060 params
[2] = matrix
[2];
3061 params
[3] = matrix
[3];
3062 params
[4] = matrix
[4];
3063 params
[5] = matrix
[5];
3064 params
[6] = matrix
[6];
3065 params
[7] = matrix
[7];
3066 params
[8] = matrix
[8];
3067 params
[9] = matrix
[9];
3068 params
[10] = matrix
[10];
3069 params
[11] = matrix
[11];
3070 params
[12] = matrix
[12];
3071 params
[13] = matrix
[13];
3072 params
[14] = matrix
[14];
3073 params
[15] = matrix
[15];
3076 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3077 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3079 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3080 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3082 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3083 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3085 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3086 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3088 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3089 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3091 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3092 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3094 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3095 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3097 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3098 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3100 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3101 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3103 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3104 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3106 case GL_CONVOLUTION_1D_EXT
:
3107 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3108 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3110 case GL_CONVOLUTION_2D_EXT
:
3111 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3112 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3114 case GL_SEPARABLE_2D_EXT
:
3115 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3116 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3118 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3119 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3120 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3122 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3123 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3124 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3126 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3127 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3128 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3130 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3131 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3132 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3134 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3135 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3136 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3138 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3139 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3140 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3142 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3143 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3144 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3146 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3147 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3148 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3151 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3152 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3155 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3156 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3158 case GL_COLOR_TABLE_SGI
:
3159 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3160 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
);
3162 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3163 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3164 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
3166 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3167 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3168 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
3170 case GL_TEXTURE_COLOR_TABLE_SGI
:
3171 CHECK_EXTENSION_F(SGI_texture_color_table
, pname
);
3172 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3174 case GL_COLOR_SUM_EXT
:
3175 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3176 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3178 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3179 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3181 FLUSH_CURRENT(ctx
, 0);
3182 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3183 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3184 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3185 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3188 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3189 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3190 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.SecondaryColor
.Enabled
);
3192 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3193 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3194 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.SecondaryColor
.Type
);
3196 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3197 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3198 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Stride
);
3200 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3201 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3202 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Size
);
3204 case GL_CURRENT_FOG_COORDINATE_EXT
:
3205 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3207 FLUSH_CURRENT(ctx
, 0);
3208 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3211 case GL_FOG_COORDINATE_ARRAY_EXT
:
3212 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3213 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.FogCoord
.Enabled
);
3215 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3216 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3217 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.FogCoord
.Type
);
3219 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3220 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3221 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.Stride
);
3223 case GL_FOG_COORDINATE_SOURCE_EXT
:
3224 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3225 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3227 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3228 CHECK_EXTENSION_F(EXT_texture_lod_bias
, pname
);
3229 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3231 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3232 CHECK_EXTENSION_F(EXT_texture_filter_anisotropic
, pname
);
3233 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3235 case GL_MULTISAMPLE_ARB
:
3236 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3237 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3239 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3240 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3241 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3243 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3244 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3245 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3247 case GL_SAMPLE_COVERAGE_ARB
:
3248 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3249 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3251 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3252 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3253 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3255 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3256 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3257 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3259 case GL_SAMPLE_BUFFERS_ARB
:
3260 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3261 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3263 case GL_SAMPLES_ARB
:
3264 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3265 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3267 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3268 CHECK_EXTENSION_F(IBM_rasterpos_clip
, pname
);
3269 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3271 case GL_POINT_SPRITE_NV
:
3272 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3273 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3275 case GL_POINT_SPRITE_R_MODE_NV
:
3276 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3277 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3279 case GL_POINT_SPRITE_COORD_ORIGIN
:
3280 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3281 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3283 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3284 CHECK_EXTENSION_F(SGIS_generate_mipmap
, pname
);
3285 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3287 case GL_VERTEX_PROGRAM_NV
:
3288 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3289 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3291 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
3292 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3293 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3295 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
3296 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3297 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3299 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
3300 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3301 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3303 case GL_MAX_TRACK_MATRICES_NV
:
3304 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3305 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3307 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
3308 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3309 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3311 case GL_CURRENT_MATRIX_NV
:
3312 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3314 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3315 params
[0] = matrix
[0];
3316 params
[1] = matrix
[1];
3317 params
[2] = matrix
[2];
3318 params
[3] = matrix
[3];
3319 params
[4] = matrix
[4];
3320 params
[5] = matrix
[5];
3321 params
[6] = matrix
[6];
3322 params
[7] = matrix
[7];
3323 params
[8] = matrix
[8];
3324 params
[9] = matrix
[9];
3325 params
[10] = matrix
[10];
3326 params
[11] = matrix
[11];
3327 params
[12] = matrix
[12];
3328 params
[13] = matrix
[13];
3329 params
[14] = matrix
[14];
3330 params
[15] = matrix
[15];
3333 case GL_VERTEX_PROGRAM_BINDING_NV
:
3334 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3335 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3337 case GL_PROGRAM_ERROR_POSITION_NV
:
3338 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3339 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3341 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3342 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3343 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[0].Enabled
);
3345 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3346 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3347 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[1].Enabled
);
3349 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3350 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3351 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[2].Enabled
);
3353 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3354 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3355 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[3].Enabled
);
3357 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3358 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3359 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[4].Enabled
);
3361 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3362 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3363 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[5].Enabled
);
3365 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3366 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3367 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[6].Enabled
);
3369 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3370 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3371 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[7].Enabled
);
3373 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3374 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3375 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[8].Enabled
);
3377 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3378 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3379 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[9].Enabled
);
3381 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3382 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3383 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[10].Enabled
);
3385 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3386 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3387 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[11].Enabled
);
3389 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3390 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3391 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[12].Enabled
);
3393 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3394 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3395 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[13].Enabled
);
3397 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3398 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3399 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[14].Enabled
);
3401 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3402 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3403 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[15].Enabled
);
3405 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3406 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3407 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3409 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3410 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3411 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3413 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3414 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3415 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3417 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3418 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3419 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3421 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3422 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3423 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3425 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3426 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3427 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3429 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3430 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3431 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3433 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3434 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3435 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3437 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3438 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3439 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3441 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3442 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3443 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3445 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3446 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3447 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3449 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3450 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3451 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3453 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3454 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3455 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3457 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3458 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3459 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3461 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3462 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3463 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3465 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3466 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3467 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3469 case GL_FRAGMENT_PROGRAM_NV
:
3470 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3471 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3473 case GL_MAX_TEXTURE_COORDS_NV
:
3474 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3475 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3477 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
3478 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3479 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3481 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3482 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3483 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3485 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3486 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3487 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3489 case GL_TEXTURE_RECTANGLE_NV
:
3490 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3491 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3493 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3494 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3495 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3497 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3498 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3499 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3501 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3502 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3503 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3505 case GL_ACTIVE_STENCIL_FACE_EXT
:
3506 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3507 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3509 case GL_MAX_SHININESS_NV
:
3510 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3511 params
[0] = ctx
->Const
.MaxShininess
;
3513 case GL_MAX_SPOT_EXPONENT_NV
:
3514 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3515 params
[0] = ctx
->Const
.MaxSpotExponent
;
3517 case GL_ARRAY_BUFFER_BINDING_ARB
:
3518 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3519 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3521 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3522 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3523 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.BufferObj
->Name
);
3525 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3526 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3527 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.BufferObj
->Name
);
3529 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3530 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3531 params
[0] = (GLfloat
)(ctx
->Array
.Color
.BufferObj
->Name
);
3533 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3534 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3535 params
[0] = (GLfloat
)(ctx
->Array
.Index
.BufferObj
->Name
);
3537 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3538 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3539 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3541 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3542 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3543 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
3545 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3546 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3547 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
3549 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3550 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3551 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.BufferObj
->Name
);
3553 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3554 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3555 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3557 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3558 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3559 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3561 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3562 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3563 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3565 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3566 CHECK_EXTENSION_F(ARB_vertex_program
, pname
);
3567 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexProgramAttribs
);
3569 case GL_FRAGMENT_PROGRAM_ARB
:
3570 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3571 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3573 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3574 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3576 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3577 params
[0] = matrix
[0];
3578 params
[1] = matrix
[4];
3579 params
[2] = matrix
[8];
3580 params
[3] = matrix
[12];
3581 params
[4] = matrix
[1];
3582 params
[5] = matrix
[5];
3583 params
[6] = matrix
[9];
3584 params
[7] = matrix
[13];
3585 params
[8] = matrix
[2];
3586 params
[9] = matrix
[6];
3587 params
[10] = matrix
[10];
3588 params
[11] = matrix
[14];
3589 params
[12] = matrix
[3];
3590 params
[13] = matrix
[7];
3591 params
[14] = matrix
[11];
3592 params
[15] = matrix
[15];
3595 case GL_DEPTH_BOUNDS_TEST_EXT
:
3596 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3597 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3599 case GL_DEPTH_BOUNDS_EXT
:
3600 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3601 params
[0] = ctx
->Depth
.BoundsMin
;
3602 params
[1] = ctx
->Depth
.BoundsMax
;
3604 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3605 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3606 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3608 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3609 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3610 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3612 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3613 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3614 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3616 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3617 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3618 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3620 case GL_MAX_DRAW_BUFFERS_ARB
:
3621 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3622 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3624 case GL_DRAW_BUFFER0_ARB
:
3625 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3626 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
3628 case GL_DRAW_BUFFER1_ARB
:
3629 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3632 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3633 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3636 buffer
= ctx
->Color
.DrawBuffer
[1];
3637 params
[0] = ENUM_TO_FLOAT(buffer
);
3640 case GL_DRAW_BUFFER2_ARB
:
3641 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3644 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3645 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3648 buffer
= ctx
->Color
.DrawBuffer
[2];
3649 params
[0] = ENUM_TO_FLOAT(buffer
);
3652 case GL_DRAW_BUFFER3_ARB
:
3653 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3656 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3657 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3660 buffer
= ctx
->Color
.DrawBuffer
[3];
3661 params
[0] = ENUM_TO_FLOAT(buffer
);
3664 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3665 CHECK_EXTENSION_F(OES_read_format
, pname
);
3666 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3668 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3669 CHECK_EXTENSION_F(OES_read_format
, pname
);
3670 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3672 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3673 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3674 params
[0] = (GLfloat
)(6);
3676 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3677 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3678 params
[0] = (GLfloat
)(8);
3680 case GL_NUM_PASSES_ATI
:
3681 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3682 params
[0] = (GLfloat
)(2);
3684 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3685 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3686 params
[0] = (GLfloat
)(8);
3688 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3689 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3690 params
[0] = (GLfloat
)(16);
3692 case GL_COLOR_ALPHA_PAIRING_ATI
:
3693 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3694 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3696 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3697 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3698 params
[0] = (GLfloat
)(3);
3700 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3701 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3702 params
[0] = (GLfloat
)(3);
3704 case GL_STENCIL_BACK_FUNC
:
3705 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3707 case GL_STENCIL_BACK_VALUE_MASK
:
3708 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3710 case GL_STENCIL_BACK_REF
:
3711 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3713 case GL_STENCIL_BACK_FAIL
:
3714 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3716 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3717 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3719 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3720 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3722 case GL_FRAMEBUFFER_BINDING_EXT
:
3723 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3724 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3726 case GL_RENDERBUFFER_BINDING_EXT
:
3727 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3728 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3730 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3731 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3732 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3734 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3735 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3736 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3738 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3739 CHECK_EXTENSION_F(ARB_fragment_shader
, pname
);
3740 params
[0] = (GLfloat
)(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
3742 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3743 CHECK_EXTENSION_F(ARB_fragment_shader
, pname
);
3744 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3746 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3747 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3748 params
[0] = (GLfloat
)(MAX_VERTEX_UNIFORM_COMPONENTS
);
3750 case GL_MAX_VARYING_FLOATS_ARB
:
3751 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3752 params
[0] = (GLfloat
)(MAX_VARYING_FLOATS
);
3754 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3755 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3756 params
[0] = (GLfloat
)(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
3758 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3759 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3760 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3763 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3768 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3770 GET_CURRENT_CONTEXT(ctx
);
3771 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3776 if (ctx
->Driver
.GetIntegerv
&&
3777 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3781 case GL_ACCUM_RED_BITS
:
3782 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3784 case GL_ACCUM_GREEN_BITS
:
3785 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3787 case GL_ACCUM_BLUE_BITS
:
3788 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3790 case GL_ACCUM_ALPHA_BITS
:
3791 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3793 case GL_ACCUM_CLEAR_VALUE
:
3794 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3795 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3796 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3797 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3800 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3803 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3805 case GL_ALPHA_SCALE
:
3806 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3809 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3811 case GL_ALPHA_TEST_FUNC
:
3812 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3814 case GL_ALPHA_TEST_REF
:
3815 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3817 case GL_ATTRIB_STACK_DEPTH
:
3818 params
[0] = ctx
->AttribStackDepth
;
3820 case GL_AUTO_NORMAL
:
3821 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3823 case GL_AUX_BUFFERS
:
3824 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3827 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3830 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3833 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3835 case GL_BLEND_SRC_RGB_EXT
:
3836 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3838 case GL_BLEND_DST_RGB_EXT
:
3839 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3841 case GL_BLEND_SRC_ALPHA_EXT
:
3842 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3844 case GL_BLEND_DST_ALPHA_EXT
:
3845 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3847 case GL_BLEND_EQUATION
:
3848 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3850 case GL_BLEND_EQUATION_ALPHA_EXT
:
3851 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3853 case GL_BLEND_COLOR_EXT
:
3854 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3855 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3856 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3857 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3860 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3863 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3866 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3868 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3869 params
[0] = ctx
->ClientAttribStackDepth
;
3871 case GL_CLIP_PLANE0
:
3872 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3874 case GL_CLIP_PLANE1
:
3875 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3877 case GL_CLIP_PLANE2
:
3878 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3880 case GL_CLIP_PLANE3
:
3881 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3883 case GL_CLIP_PLANE4
:
3884 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3886 case GL_CLIP_PLANE5
:
3887 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3889 case GL_COLOR_CLEAR_VALUE
:
3890 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3891 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3892 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3893 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3895 case GL_COLOR_MATERIAL
:
3896 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3898 case GL_COLOR_MATERIAL_FACE
:
3899 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3901 case GL_COLOR_MATERIAL_PARAMETER
:
3902 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3904 case GL_COLOR_WRITEMASK
:
3905 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3906 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3907 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3908 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3911 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3913 case GL_CULL_FACE_MODE
:
3914 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3916 case GL_CURRENT_COLOR
:
3918 FLUSH_CURRENT(ctx
, 0);
3919 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3920 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3921 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3922 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3925 case GL_CURRENT_INDEX
:
3927 FLUSH_CURRENT(ctx
, 0);
3928 params
[0] = IROUND(ctx
->Current
.Index
);
3931 case GL_CURRENT_NORMAL
:
3933 FLUSH_CURRENT(ctx
, 0);
3934 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3935 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3936 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3939 case GL_CURRENT_RASTER_COLOR
:
3940 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3941 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3942 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3943 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3945 case GL_CURRENT_RASTER_DISTANCE
:
3946 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3948 case GL_CURRENT_RASTER_INDEX
:
3949 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3951 case GL_CURRENT_RASTER_POSITION
:
3952 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3953 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3954 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3955 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3957 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3959 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3960 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3961 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3962 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3963 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3966 case GL_CURRENT_RASTER_POSITION_VALID
:
3967 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3969 case GL_CURRENT_TEXTURE_COORDS
:
3971 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3972 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3973 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3974 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3975 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3979 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3982 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3984 case GL_DEPTH_CLEAR_VALUE
:
3985 params
[0] = IROUND(ctx
->Depth
.Clear
);
3988 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3990 case GL_DEPTH_RANGE
:
3991 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3992 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3994 case GL_DEPTH_SCALE
:
3995 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
3998 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
4000 case GL_DEPTH_WRITEMASK
:
4001 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
4004 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
4006 case GL_DOUBLEBUFFER
:
4007 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
4009 case GL_DRAW_BUFFER
:
4010 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
4014 FLUSH_CURRENT(ctx
, 0);
4015 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.EdgeFlag
);
4018 case GL_FEEDBACK_BUFFER_SIZE
:
4019 params
[0] = ctx
->Feedback
.BufferSize
;
4021 case GL_FEEDBACK_BUFFER_TYPE
:
4022 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
4025 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
4028 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
4029 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
4030 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
4031 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
4033 case GL_FOG_DENSITY
:
4034 params
[0] = IROUND(ctx
->Fog
.Density
);
4037 params
[0] = IROUND(ctx
->Fog
.End
);
4040 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4043 params
[0] = IROUND(ctx
->Fog
.Index
);
4046 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4049 params
[0] = IROUND(ctx
->Fog
.Start
);
4052 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4055 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4058 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4060 case GL_GREEN_SCALE
:
4061 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4064 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4066 case GL_INDEX_CLEAR_VALUE
:
4067 params
[0] = ctx
->Color
.ClearIndex
;
4070 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4072 case GL_INDEX_OFFSET
:
4073 params
[0] = ctx
->Pixel
.IndexOffset
;
4075 case GL_INDEX_SHIFT
:
4076 params
[0] = ctx
->Pixel
.IndexShift
;
4078 case GL_INDEX_WRITEMASK
:
4079 params
[0] = ctx
->Color
.IndexMask
;
4082 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4085 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4088 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4091 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4094 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4097 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4100 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4103 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4106 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4108 case GL_LIGHT_MODEL_AMBIENT
:
4109 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4110 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4111 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4112 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4114 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4115 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4117 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4118 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4120 case GL_LIGHT_MODEL_TWO_SIDE
:
4121 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4123 case GL_LINE_SMOOTH
:
4124 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4126 case GL_LINE_SMOOTH_HINT
:
4127 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4129 case GL_LINE_STIPPLE
:
4130 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4132 case GL_LINE_STIPPLE_PATTERN
:
4133 params
[0] = ctx
->Line
.StipplePattern
;
4135 case GL_LINE_STIPPLE_REPEAT
:
4136 params
[0] = ctx
->Line
.StippleFactor
;
4139 params
[0] = IROUND(ctx
->Line
.Width
);
4141 case GL_LINE_WIDTH_GRANULARITY
:
4142 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4144 case GL_LINE_WIDTH_RANGE
:
4145 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4146 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4148 case GL_ALIASED_LINE_WIDTH_RANGE
:
4149 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4150 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4153 params
[0] = ctx
->List
.ListBase
;
4156 params
[0] = ctx
->ListState
.CurrentListNum
;
4161 if (!ctx
->CompileFlag
)
4163 else if (ctx
->ExecuteFlag
)
4164 mode
= GL_COMPILE_AND_EXECUTE
;
4167 params
[0] = ENUM_TO_INT(mode
);
4170 case GL_INDEX_LOGIC_OP
:
4171 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4173 case GL_COLOR_LOGIC_OP
:
4174 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4176 case GL_LOGIC_OP_MODE
:
4177 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4179 case GL_MAP1_COLOR_4
:
4180 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4182 case GL_MAP1_GRID_DOMAIN
:
4183 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4184 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4186 case GL_MAP1_GRID_SEGMENTS
:
4187 params
[0] = ctx
->Eval
.MapGrid1un
;
4190 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4192 case GL_MAP1_NORMAL
:
4193 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4195 case GL_MAP1_TEXTURE_COORD_1
:
4196 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4198 case GL_MAP1_TEXTURE_COORD_2
:
4199 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4201 case GL_MAP1_TEXTURE_COORD_3
:
4202 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4204 case GL_MAP1_TEXTURE_COORD_4
:
4205 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4207 case GL_MAP1_VERTEX_3
:
4208 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4210 case GL_MAP1_VERTEX_4
:
4211 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4213 case GL_MAP2_COLOR_4
:
4214 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4216 case GL_MAP2_GRID_DOMAIN
:
4217 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4218 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4219 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4220 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4222 case GL_MAP2_GRID_SEGMENTS
:
4223 params
[0] = ctx
->Eval
.MapGrid2un
;
4224 params
[1] = ctx
->Eval
.MapGrid2vn
;
4227 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4229 case GL_MAP2_NORMAL
:
4230 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4232 case GL_MAP2_TEXTURE_COORD_1
:
4233 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4235 case GL_MAP2_TEXTURE_COORD_2
:
4236 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4238 case GL_MAP2_TEXTURE_COORD_3
:
4239 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4241 case GL_MAP2_TEXTURE_COORD_4
:
4242 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4244 case GL_MAP2_VERTEX_3
:
4245 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4247 case GL_MAP2_VERTEX_4
:
4248 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4251 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4253 case GL_MAP_STENCIL
:
4254 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4256 case GL_MATRIX_MODE
:
4257 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4259 case GL_MAX_ATTRIB_STACK_DEPTH
:
4260 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4262 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4263 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4265 case GL_MAX_CLIP_PLANES
:
4266 params
[0] = ctx
->Const
.MaxClipPlanes
;
4268 case GL_MAX_ELEMENTS_VERTICES
:
4269 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4271 case GL_MAX_ELEMENTS_INDICES
:
4272 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4274 case GL_MAX_EVAL_ORDER
:
4275 params
[0] = MAX_EVAL_ORDER
;
4278 params
[0] = ctx
->Const
.MaxLights
;
4280 case GL_MAX_LIST_NESTING
:
4281 params
[0] = MAX_LIST_NESTING
;
4283 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4284 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4286 case GL_MAX_NAME_STACK_DEPTH
:
4287 params
[0] = MAX_NAME_STACK_DEPTH
;
4289 case GL_MAX_PIXEL_MAP_TABLE
:
4290 params
[0] = MAX_PIXEL_MAP_TABLE
;
4292 case GL_MAX_PROJECTION_STACK_DEPTH
:
4293 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4295 case GL_MAX_TEXTURE_SIZE
:
4296 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4298 case GL_MAX_3D_TEXTURE_SIZE
:
4299 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4301 case GL_MAX_TEXTURE_STACK_DEPTH
:
4302 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4304 case GL_MAX_VIEWPORT_DIMS
:
4305 params
[0] = ctx
->Const
.MaxViewportWidth
;
4306 params
[1] = ctx
->Const
.MaxViewportHeight
;
4308 case GL_MODELVIEW_MATRIX
:
4310 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4311 params
[0] = IROUND(matrix
[0]);
4312 params
[1] = IROUND(matrix
[1]);
4313 params
[2] = IROUND(matrix
[2]);
4314 params
[3] = IROUND(matrix
[3]);
4315 params
[4] = IROUND(matrix
[4]);
4316 params
[5] = IROUND(matrix
[5]);
4317 params
[6] = IROUND(matrix
[6]);
4318 params
[7] = IROUND(matrix
[7]);
4319 params
[8] = IROUND(matrix
[8]);
4320 params
[9] = IROUND(matrix
[9]);
4321 params
[10] = IROUND(matrix
[10]);
4322 params
[11] = IROUND(matrix
[11]);
4323 params
[12] = IROUND(matrix
[12]);
4324 params
[13] = IROUND(matrix
[13]);
4325 params
[14] = IROUND(matrix
[14]);
4326 params
[15] = IROUND(matrix
[15]);
4329 case GL_MODELVIEW_STACK_DEPTH
:
4330 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4332 case GL_NAME_STACK_DEPTH
:
4333 params
[0] = ctx
->Select
.NameStackDepth
;
4336 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4338 case GL_PACK_ALIGNMENT
:
4339 params
[0] = ctx
->Pack
.Alignment
;
4341 case GL_PACK_LSB_FIRST
:
4342 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4344 case GL_PACK_ROW_LENGTH
:
4345 params
[0] = ctx
->Pack
.RowLength
;
4347 case GL_PACK_SKIP_PIXELS
:
4348 params
[0] = ctx
->Pack
.SkipPixels
;
4350 case GL_PACK_SKIP_ROWS
:
4351 params
[0] = ctx
->Pack
.SkipRows
;
4353 case GL_PACK_SWAP_BYTES
:
4354 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4356 case GL_PACK_SKIP_IMAGES_EXT
:
4357 params
[0] = ctx
->Pack
.SkipImages
;
4359 case GL_PACK_IMAGE_HEIGHT_EXT
:
4360 params
[0] = ctx
->Pack
.ImageHeight
;
4362 case GL_PACK_INVERT_MESA
:
4363 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4365 case GL_PERSPECTIVE_CORRECTION_HINT
:
4366 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4368 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4369 params
[0] = ctx
->Pixel
.MapAtoAsize
;
4371 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4372 params
[0] = ctx
->Pixel
.MapBtoBsize
;
4374 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4375 params
[0] = ctx
->Pixel
.MapGtoGsize
;
4377 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4378 params
[0] = ctx
->Pixel
.MapItoAsize
;
4380 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4381 params
[0] = ctx
->Pixel
.MapItoBsize
;
4383 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4384 params
[0] = ctx
->Pixel
.MapItoGsize
;
4386 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4387 params
[0] = ctx
->Pixel
.MapItoIsize
;
4389 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4390 params
[0] = ctx
->Pixel
.MapItoRsize
;
4392 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4393 params
[0] = ctx
->Pixel
.MapRtoRsize
;
4395 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4396 params
[0] = ctx
->Pixel
.MapStoSsize
;
4399 params
[0] = IROUND(ctx
->Point
.Size
);
4401 case GL_POINT_SIZE_GRANULARITY
:
4402 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4404 case GL_POINT_SIZE_RANGE
:
4405 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4406 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4408 case GL_ALIASED_POINT_SIZE_RANGE
:
4409 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4410 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4412 case GL_POINT_SMOOTH
:
4413 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4415 case GL_POINT_SMOOTH_HINT
:
4416 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4418 case GL_POINT_SIZE_MIN_EXT
:
4419 params
[0] = IROUND(ctx
->Point
.MinSize
);
4421 case GL_POINT_SIZE_MAX_EXT
:
4422 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4424 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4425 params
[0] = IROUND(ctx
->Point
.Threshold
);
4427 case GL_DISTANCE_ATTENUATION_EXT
:
4428 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4429 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4430 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4432 case GL_POLYGON_MODE
:
4433 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4434 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4436 case GL_POLYGON_OFFSET_BIAS_EXT
:
4437 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4439 case GL_POLYGON_OFFSET_FACTOR
:
4440 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4442 case GL_POLYGON_OFFSET_UNITS
:
4443 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4445 case GL_POLYGON_SMOOTH
:
4446 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4448 case GL_POLYGON_SMOOTH_HINT
:
4449 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4451 case GL_POLYGON_STIPPLE
:
4452 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4454 case GL_PROJECTION_MATRIX
:
4456 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4457 params
[0] = IROUND(matrix
[0]);
4458 params
[1] = IROUND(matrix
[1]);
4459 params
[2] = IROUND(matrix
[2]);
4460 params
[3] = IROUND(matrix
[3]);
4461 params
[4] = IROUND(matrix
[4]);
4462 params
[5] = IROUND(matrix
[5]);
4463 params
[6] = IROUND(matrix
[6]);
4464 params
[7] = IROUND(matrix
[7]);
4465 params
[8] = IROUND(matrix
[8]);
4466 params
[9] = IROUND(matrix
[9]);
4467 params
[10] = IROUND(matrix
[10]);
4468 params
[11] = IROUND(matrix
[11]);
4469 params
[12] = IROUND(matrix
[12]);
4470 params
[13] = IROUND(matrix
[13]);
4471 params
[14] = IROUND(matrix
[14]);
4472 params
[15] = IROUND(matrix
[15]);
4475 case GL_PROJECTION_STACK_DEPTH
:
4476 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4478 case GL_READ_BUFFER
:
4479 params
[0] = ENUM_TO_INT(ctx
->Pixel
.ReadBuffer
);
4482 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4485 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4488 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4490 case GL_RENDER_MODE
:
4491 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4493 case GL_RESCALE_NORMAL
:
4494 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4497 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4499 case GL_SCISSOR_BOX
:
4500 params
[0] = ctx
->Scissor
.X
;
4501 params
[1] = ctx
->Scissor
.Y
;
4502 params
[2] = ctx
->Scissor
.Width
;
4503 params
[3] = ctx
->Scissor
.Height
;
4505 case GL_SCISSOR_TEST
:
4506 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4508 case GL_SELECTION_BUFFER_SIZE
:
4509 params
[0] = ctx
->Select
.BufferSize
;
4511 case GL_SHADE_MODEL
:
4512 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4514 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4515 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4517 case GL_STENCIL_BITS
:
4518 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4520 case GL_STENCIL_CLEAR_VALUE
:
4521 params
[0] = ctx
->Stencil
.Clear
;
4523 case GL_STENCIL_FAIL
:
4524 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4526 case GL_STENCIL_FUNC
:
4527 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4529 case GL_STENCIL_PASS_DEPTH_FAIL
:
4530 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4532 case GL_STENCIL_PASS_DEPTH_PASS
:
4533 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4535 case GL_STENCIL_REF
:
4536 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4538 case GL_STENCIL_TEST
:
4539 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4541 case GL_STENCIL_VALUE_MASK
:
4542 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4544 case GL_STENCIL_WRITEMASK
:
4545 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4548 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4550 case GL_SUBPIXEL_BITS
:
4551 params
[0] = ctx
->Const
.SubPixelBits
;
4554 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4557 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4560 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4562 case GL_TEXTURE_BINDING_1D
:
4563 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4565 case GL_TEXTURE_BINDING_2D
:
4566 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4568 case GL_TEXTURE_BINDING_3D
:
4569 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4571 case GL_TEXTURE_ENV_COLOR
:
4573 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
4574 params
[0] = FLOAT_TO_INT(color
[0]);
4575 params
[1] = FLOAT_TO_INT(color
[1]);
4576 params
[2] = FLOAT_TO_INT(color
[2]);
4577 params
[3] = FLOAT_TO_INT(color
[3]);
4580 case GL_TEXTURE_ENV_MODE
:
4581 params
[0] = ENUM_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
4583 case GL_TEXTURE_GEN_S
:
4584 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4586 case GL_TEXTURE_GEN_T
:
4587 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4589 case GL_TEXTURE_GEN_R
:
4590 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4592 case GL_TEXTURE_GEN_Q
:
4593 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4595 case GL_TEXTURE_MATRIX
:
4597 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4598 params
[0] = IROUND(matrix
[0]);
4599 params
[1] = IROUND(matrix
[1]);
4600 params
[2] = IROUND(matrix
[2]);
4601 params
[3] = IROUND(matrix
[3]);
4602 params
[4] = IROUND(matrix
[4]);
4603 params
[5] = IROUND(matrix
[5]);
4604 params
[6] = IROUND(matrix
[6]);
4605 params
[7] = IROUND(matrix
[7]);
4606 params
[8] = IROUND(matrix
[8]);
4607 params
[9] = IROUND(matrix
[9]);
4608 params
[10] = IROUND(matrix
[10]);
4609 params
[11] = IROUND(matrix
[11]);
4610 params
[12] = IROUND(matrix
[12]);
4611 params
[13] = IROUND(matrix
[13]);
4612 params
[14] = IROUND(matrix
[14]);
4613 params
[15] = IROUND(matrix
[15]);
4616 case GL_TEXTURE_STACK_DEPTH
:
4617 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4619 case GL_UNPACK_ALIGNMENT
:
4620 params
[0] = ctx
->Unpack
.Alignment
;
4622 case GL_UNPACK_LSB_FIRST
:
4623 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4625 case GL_UNPACK_ROW_LENGTH
:
4626 params
[0] = ctx
->Unpack
.RowLength
;
4628 case GL_UNPACK_SKIP_PIXELS
:
4629 params
[0] = ctx
->Unpack
.SkipPixels
;
4631 case GL_UNPACK_SKIP_ROWS
:
4632 params
[0] = ctx
->Unpack
.SkipRows
;
4634 case GL_UNPACK_SWAP_BYTES
:
4635 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4637 case GL_UNPACK_SKIP_IMAGES_EXT
:
4638 params
[0] = ctx
->Unpack
.SkipImages
;
4640 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4641 params
[0] = ctx
->Unpack
.ImageHeight
;
4643 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4644 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4647 params
[0] = ctx
->Viewport
.X
;
4648 params
[1] = ctx
->Viewport
.Y
;
4649 params
[2] = ctx
->Viewport
.Width
;
4650 params
[3] = ctx
->Viewport
.Height
;
4653 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4656 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4658 case GL_VERTEX_ARRAY
:
4659 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Vertex
.Enabled
);
4661 case GL_VERTEX_ARRAY_SIZE
:
4662 params
[0] = ctx
->Array
.Vertex
.Size
;
4664 case GL_VERTEX_ARRAY_TYPE
:
4665 params
[0] = ENUM_TO_INT(ctx
->Array
.Vertex
.Type
);
4667 case GL_VERTEX_ARRAY_STRIDE
:
4668 params
[0] = ctx
->Array
.Vertex
.Stride
;
4670 case GL_VERTEX_ARRAY_COUNT_EXT
:
4673 case GL_NORMAL_ARRAY
:
4674 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Enabled
);
4676 case GL_NORMAL_ARRAY_TYPE
:
4677 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Type
);
4679 case GL_NORMAL_ARRAY_STRIDE
:
4680 params
[0] = ctx
->Array
.Normal
.Stride
;
4682 case GL_NORMAL_ARRAY_COUNT_EXT
:
4685 case GL_COLOR_ARRAY
:
4686 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Color
.Enabled
);
4688 case GL_COLOR_ARRAY_SIZE
:
4689 params
[0] = ctx
->Array
.Color
.Size
;
4691 case GL_COLOR_ARRAY_TYPE
:
4692 params
[0] = ENUM_TO_INT(ctx
->Array
.Color
.Type
);
4694 case GL_COLOR_ARRAY_STRIDE
:
4695 params
[0] = ctx
->Array
.Color
.Stride
;
4697 case GL_COLOR_ARRAY_COUNT_EXT
:
4700 case GL_INDEX_ARRAY
:
4701 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Index
.Enabled
);
4703 case GL_INDEX_ARRAY_TYPE
:
4704 params
[0] = ENUM_TO_INT(ctx
->Array
.Index
.Type
);
4706 case GL_INDEX_ARRAY_STRIDE
:
4707 params
[0] = ctx
->Array
.Index
.Stride
;
4709 case GL_INDEX_ARRAY_COUNT_EXT
:
4712 case GL_TEXTURE_COORD_ARRAY
:
4713 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4715 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4716 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4718 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4719 params
[0] = ENUM_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4721 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4722 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4724 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4727 case GL_EDGE_FLAG_ARRAY
:
4728 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.EdgeFlag
.Enabled
);
4730 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4731 params
[0] = ctx
->Array
.EdgeFlag
.Stride
;
4733 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4736 case GL_MAX_TEXTURE_UNITS_ARB
:
4737 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4738 params
[0] = MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
);
4740 case GL_ACTIVE_TEXTURE_ARB
:
4741 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4742 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4744 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4745 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4746 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4748 case GL_TEXTURE_CUBE_MAP_ARB
:
4749 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4750 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4752 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4753 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4754 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4756 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4757 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4758 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4760 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4761 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4762 params
[0] = ctx
->Hint
.TextureCompression
;
4764 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4765 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4766 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
);
4768 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4769 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4772 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
4774 for (i
= 0; i
< n
; i
++)
4775 params
[i
] = ENUM_TO_INT(formats
[i
]);
4778 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4779 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4780 params
[0] = ctx
->Array
.LockFirst
;
4782 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4783 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4784 params
[0] = ctx
->Array
.LockCount
;
4786 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4788 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4789 params
[0] = IROUND(matrix
[0]);
4790 params
[1] = IROUND(matrix
[4]);
4791 params
[2] = IROUND(matrix
[8]);
4792 params
[3] = IROUND(matrix
[12]);
4793 params
[4] = IROUND(matrix
[1]);
4794 params
[5] = IROUND(matrix
[5]);
4795 params
[6] = IROUND(matrix
[9]);
4796 params
[7] = IROUND(matrix
[13]);
4797 params
[8] = IROUND(matrix
[2]);
4798 params
[9] = IROUND(matrix
[6]);
4799 params
[10] = IROUND(matrix
[10]);
4800 params
[11] = IROUND(matrix
[14]);
4801 params
[12] = IROUND(matrix
[3]);
4802 params
[13] = IROUND(matrix
[7]);
4803 params
[14] = IROUND(matrix
[11]);
4804 params
[15] = IROUND(matrix
[15]);
4807 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4809 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4810 params
[0] = IROUND(matrix
[0]);
4811 params
[1] = IROUND(matrix
[4]);
4812 params
[2] = IROUND(matrix
[8]);
4813 params
[3] = IROUND(matrix
[12]);
4814 params
[4] = IROUND(matrix
[1]);
4815 params
[5] = IROUND(matrix
[5]);
4816 params
[6] = IROUND(matrix
[9]);
4817 params
[7] = IROUND(matrix
[13]);
4818 params
[8] = IROUND(matrix
[2]);
4819 params
[9] = IROUND(matrix
[6]);
4820 params
[10] = IROUND(matrix
[10]);
4821 params
[11] = IROUND(matrix
[14]);
4822 params
[12] = IROUND(matrix
[3]);
4823 params
[13] = IROUND(matrix
[7]);
4824 params
[14] = IROUND(matrix
[11]);
4825 params
[15] = IROUND(matrix
[15]);
4828 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4830 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4831 params
[0] = IROUND(matrix
[0]);
4832 params
[1] = IROUND(matrix
[4]);
4833 params
[2] = IROUND(matrix
[8]);
4834 params
[3] = IROUND(matrix
[12]);
4835 params
[4] = IROUND(matrix
[1]);
4836 params
[5] = IROUND(matrix
[5]);
4837 params
[6] = IROUND(matrix
[9]);
4838 params
[7] = IROUND(matrix
[13]);
4839 params
[8] = IROUND(matrix
[2]);
4840 params
[9] = IROUND(matrix
[6]);
4841 params
[10] = IROUND(matrix
[10]);
4842 params
[11] = IROUND(matrix
[14]);
4843 params
[12] = IROUND(matrix
[3]);
4844 params
[13] = IROUND(matrix
[7]);
4845 params
[14] = IROUND(matrix
[11]);
4846 params
[15] = IROUND(matrix
[15]);
4849 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4851 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4852 params
[0] = IROUND(matrix
[0]);
4853 params
[1] = IROUND(matrix
[4]);
4854 params
[2] = IROUND(matrix
[8]);
4855 params
[3] = IROUND(matrix
[12]);
4856 params
[4] = IROUND(matrix
[1]);
4857 params
[5] = IROUND(matrix
[5]);
4858 params
[6] = IROUND(matrix
[9]);
4859 params
[7] = IROUND(matrix
[13]);
4860 params
[8] = IROUND(matrix
[2]);
4861 params
[9] = IROUND(matrix
[6]);
4862 params
[10] = IROUND(matrix
[10]);
4863 params
[11] = IROUND(matrix
[14]);
4864 params
[12] = IROUND(matrix
[3]);
4865 params
[13] = IROUND(matrix
[7]);
4866 params
[14] = IROUND(matrix
[11]);
4867 params
[15] = IROUND(matrix
[15]);
4870 case GL_OCCLUSION_TEST_HP
:
4871 CHECK_EXTENSION_I(HP_occlusion_test
, pname
);
4872 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.OcclusionTest
);
4874 case GL_OCCLUSION_TEST_RESULT_HP
:
4875 CHECK_EXTENSION_I(HP_occlusion_test
, pname
);
4877 if (ctx
->Depth
.OcclusionTest
)
4878 params
[0] = ctx
->OcclusionResult
;
4880 params
[0] = ctx
->OcclusionResultSaved
;
4881 /* reset flag now */
4882 ctx
->OcclusionResult
= GL_FALSE
;
4883 ctx
->OcclusionResultSaved
= GL_FALSE
;
4887 case GL_PIXEL_TEXTURE_SGIS
:
4888 CHECK_EXTENSION_I(SGIS_pixel_texture
, pname
);
4889 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PixelTextureEnabled
);
4891 case GL_PIXEL_TEX_GEN_SGIX
:
4892 CHECK_EXTENSION_I(SGIX_pixel_texture
, pname
);
4893 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PixelTextureEnabled
);
4895 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
4896 CHECK_EXTENSION_I(SGIX_pixel_texture
, pname
);
4897 params
[0] = ENUM_TO_INT(pixel_texgen_mode(ctx
));
4899 case GL_COLOR_MATRIX_SGI
:
4901 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4902 params
[0] = IROUND(matrix
[0]);
4903 params
[1] = IROUND(matrix
[1]);
4904 params
[2] = IROUND(matrix
[2]);
4905 params
[3] = IROUND(matrix
[3]);
4906 params
[4] = IROUND(matrix
[4]);
4907 params
[5] = IROUND(matrix
[5]);
4908 params
[6] = IROUND(matrix
[6]);
4909 params
[7] = IROUND(matrix
[7]);
4910 params
[8] = IROUND(matrix
[8]);
4911 params
[9] = IROUND(matrix
[9]);
4912 params
[10] = IROUND(matrix
[10]);
4913 params
[11] = IROUND(matrix
[11]);
4914 params
[12] = IROUND(matrix
[12]);
4915 params
[13] = IROUND(matrix
[13]);
4916 params
[14] = IROUND(matrix
[14]);
4917 params
[15] = IROUND(matrix
[15]);
4920 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4921 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4923 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4924 params
[0] = MAX_COLOR_STACK_DEPTH
;
4926 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4927 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4929 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4930 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4932 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4933 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4935 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4936 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4938 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4939 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4941 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4942 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4944 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4945 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4947 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4948 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4950 case GL_CONVOLUTION_1D_EXT
:
4951 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4952 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4954 case GL_CONVOLUTION_2D_EXT
:
4955 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4956 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4958 case GL_SEPARABLE_2D_EXT
:
4959 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4960 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4962 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4963 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4964 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4966 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4967 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4968 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4970 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4971 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4972 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4974 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4975 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4976 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4978 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4979 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4980 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4982 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4983 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4984 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4986 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4987 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4988 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4990 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4991 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4992 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4995 CHECK_EXTENSION_I(EXT_histogram
, pname
);
4996 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
4999 CHECK_EXTENSION_I(EXT_histogram
, pname
);
5000 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
5002 case GL_COLOR_TABLE_SGI
:
5003 CHECK_EXTENSION_I(SGI_color_table
, pname
);
5004 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
);
5006 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
5007 CHECK_EXTENSION_I(SGI_color_table
, pname
);
5008 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
5010 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
5011 CHECK_EXTENSION_I(SGI_color_table
, pname
);
5012 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
5014 case GL_TEXTURE_COLOR_TABLE_SGI
:
5015 CHECK_EXTENSION_I(SGI_texture_color_table
, pname
);
5016 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
5018 case GL_COLOR_SUM_EXT
:
5019 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5020 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
5022 case GL_CURRENT_SECONDARY_COLOR_EXT
:
5023 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5025 FLUSH_CURRENT(ctx
, 0);
5026 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
5027 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
5028 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
5029 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
5032 case GL_SECONDARY_COLOR_ARRAY_EXT
:
5033 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5034 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.SecondaryColor
.Enabled
);
5036 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
5037 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5038 params
[0] = ENUM_TO_INT(ctx
->Array
.SecondaryColor
.Type
);
5040 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
5041 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5042 params
[0] = ctx
->Array
.SecondaryColor
.Stride
;
5044 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
5045 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5046 params
[0] = ctx
->Array
.SecondaryColor
.Size
;
5048 case GL_CURRENT_FOG_COORDINATE_EXT
:
5049 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5051 FLUSH_CURRENT(ctx
, 0);
5052 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5055 case GL_FOG_COORDINATE_ARRAY_EXT
:
5056 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5057 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.FogCoord
.Enabled
);
5059 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5060 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5061 params
[0] = ENUM_TO_INT(ctx
->Array
.FogCoord
.Type
);
5063 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5064 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5065 params
[0] = ctx
->Array
.FogCoord
.Stride
;
5067 case GL_FOG_COORDINATE_SOURCE_EXT
:
5068 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5069 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5071 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5072 CHECK_EXTENSION_I(EXT_texture_lod_bias
, pname
);
5073 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5075 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5076 CHECK_EXTENSION_I(EXT_texture_filter_anisotropic
, pname
);
5077 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5079 case GL_MULTISAMPLE_ARB
:
5080 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5081 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5083 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5084 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5085 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5087 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5088 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5089 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5091 case GL_SAMPLE_COVERAGE_ARB
:
5092 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5093 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5095 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5096 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5097 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5099 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5100 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5101 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5103 case GL_SAMPLE_BUFFERS_ARB
:
5104 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5105 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5107 case GL_SAMPLES_ARB
:
5108 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5109 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5111 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5112 CHECK_EXTENSION_I(IBM_rasterpos_clip
, pname
);
5113 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5115 case GL_POINT_SPRITE_NV
:
5116 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5117 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5119 case GL_POINT_SPRITE_R_MODE_NV
:
5120 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5121 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5123 case GL_POINT_SPRITE_COORD_ORIGIN
:
5124 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5125 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5127 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5128 CHECK_EXTENSION_I(SGIS_generate_mipmap
, pname
);
5129 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5131 case GL_VERTEX_PROGRAM_NV
:
5132 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5133 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5135 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
5136 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5137 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5139 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
5140 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5141 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5143 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
5144 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5145 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5147 case GL_MAX_TRACK_MATRICES_NV
:
5148 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5149 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5151 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
5152 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5153 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5155 case GL_CURRENT_MATRIX_NV
:
5156 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5158 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5159 params
[0] = IROUND(matrix
[0]);
5160 params
[1] = IROUND(matrix
[1]);
5161 params
[2] = IROUND(matrix
[2]);
5162 params
[3] = IROUND(matrix
[3]);
5163 params
[4] = IROUND(matrix
[4]);
5164 params
[5] = IROUND(matrix
[5]);
5165 params
[6] = IROUND(matrix
[6]);
5166 params
[7] = IROUND(matrix
[7]);
5167 params
[8] = IROUND(matrix
[8]);
5168 params
[9] = IROUND(matrix
[9]);
5169 params
[10] = IROUND(matrix
[10]);
5170 params
[11] = IROUND(matrix
[11]);
5171 params
[12] = IROUND(matrix
[12]);
5172 params
[13] = IROUND(matrix
[13]);
5173 params
[14] = IROUND(matrix
[14]);
5174 params
[15] = IROUND(matrix
[15]);
5177 case GL_VERTEX_PROGRAM_BINDING_NV
:
5178 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5179 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5181 case GL_PROGRAM_ERROR_POSITION_NV
:
5182 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5183 params
[0] = ctx
->Program
.ErrorPos
;
5185 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5186 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5187 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[0].Enabled
);
5189 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5190 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5191 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[1].Enabled
);
5193 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5194 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5195 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[2].Enabled
);
5197 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5198 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5199 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[3].Enabled
);
5201 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5202 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5203 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[4].Enabled
);
5205 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5206 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5207 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[5].Enabled
);
5209 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5210 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5211 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[6].Enabled
);
5213 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5214 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5215 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[7].Enabled
);
5217 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5218 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5219 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[8].Enabled
);
5221 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5222 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5223 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[9].Enabled
);
5225 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5226 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5227 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[10].Enabled
);
5229 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5230 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5231 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[11].Enabled
);
5233 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5234 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5235 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[12].Enabled
);
5237 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5238 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5239 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[13].Enabled
);
5241 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5242 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5243 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[14].Enabled
);
5245 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5246 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5247 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[15].Enabled
);
5249 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5250 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5251 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5253 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5254 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5255 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5257 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5258 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5259 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5261 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5262 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5263 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5265 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5266 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5267 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5269 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5270 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5271 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5273 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5274 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5275 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5277 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5278 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5279 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5281 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5282 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5283 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5285 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5286 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5287 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5289 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5290 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5291 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5293 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5294 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5295 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5297 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5298 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5299 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5301 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5302 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5303 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5305 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5306 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5307 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5309 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5310 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5311 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5313 case GL_FRAGMENT_PROGRAM_NV
:
5314 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5315 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5317 case GL_MAX_TEXTURE_COORDS_NV
:
5318 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5319 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5321 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
5322 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5323 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5325 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5326 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5327 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5329 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5330 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5331 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5333 case GL_TEXTURE_RECTANGLE_NV
:
5334 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5335 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5337 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5338 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5339 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5341 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5342 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5343 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5345 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5346 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5347 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5349 case GL_ACTIVE_STENCIL_FACE_EXT
:
5350 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5351 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5353 case GL_MAX_SHININESS_NV
:
5354 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5355 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5357 case GL_MAX_SPOT_EXPONENT_NV
:
5358 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5359 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5361 case GL_ARRAY_BUFFER_BINDING_ARB
:
5362 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5363 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5365 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5366 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5367 params
[0] = ctx
->Array
.Vertex
.BufferObj
->Name
;
5369 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5370 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5371 params
[0] = ctx
->Array
.Normal
.BufferObj
->Name
;
5373 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5374 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5375 params
[0] = ctx
->Array
.Color
.BufferObj
->Name
;
5377 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5378 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5379 params
[0] = ctx
->Array
.Index
.BufferObj
->Name
;
5381 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5382 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5383 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5385 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5386 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5387 params
[0] = ctx
->Array
.EdgeFlag
.BufferObj
->Name
;
5389 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5390 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5391 params
[0] = ctx
->Array
.SecondaryColor
.BufferObj
->Name
;
5393 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5394 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5395 params
[0] = ctx
->Array
.FogCoord
.BufferObj
->Name
;
5397 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5398 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5399 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5401 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5402 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5403 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5405 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5406 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5407 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5409 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5410 CHECK_EXTENSION_I(ARB_vertex_program
, pname
);
5411 params
[0] = ctx
->Const
.MaxVertexProgramAttribs
;
5413 case GL_FRAGMENT_PROGRAM_ARB
:
5414 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5415 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5417 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5418 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5420 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5421 params
[0] = IROUND(matrix
[0]);
5422 params
[1] = IROUND(matrix
[4]);
5423 params
[2] = IROUND(matrix
[8]);
5424 params
[3] = IROUND(matrix
[12]);
5425 params
[4] = IROUND(matrix
[1]);
5426 params
[5] = IROUND(matrix
[5]);
5427 params
[6] = IROUND(matrix
[9]);
5428 params
[7] = IROUND(matrix
[13]);
5429 params
[8] = IROUND(matrix
[2]);
5430 params
[9] = IROUND(matrix
[6]);
5431 params
[10] = IROUND(matrix
[10]);
5432 params
[11] = IROUND(matrix
[14]);
5433 params
[12] = IROUND(matrix
[3]);
5434 params
[13] = IROUND(matrix
[7]);
5435 params
[14] = IROUND(matrix
[11]);
5436 params
[15] = IROUND(matrix
[15]);
5439 case GL_DEPTH_BOUNDS_TEST_EXT
:
5440 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5441 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5443 case GL_DEPTH_BOUNDS_EXT
:
5444 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5445 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5446 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5448 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5449 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5450 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5452 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5453 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5454 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5456 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5457 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5458 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5460 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5461 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5462 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5464 case GL_MAX_DRAW_BUFFERS_ARB
:
5465 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5466 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5468 case GL_DRAW_BUFFER0_ARB
:
5469 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5470 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
5472 case GL_DRAW_BUFFER1_ARB
:
5473 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5476 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5477 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5480 buffer
= ctx
->Color
.DrawBuffer
[1];
5481 params
[0] = ENUM_TO_INT(buffer
);
5484 case GL_DRAW_BUFFER2_ARB
:
5485 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5488 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5489 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5492 buffer
= ctx
->Color
.DrawBuffer
[2];
5493 params
[0] = ENUM_TO_INT(buffer
);
5496 case GL_DRAW_BUFFER3_ARB
:
5497 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5500 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5501 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5504 buffer
= ctx
->Color
.DrawBuffer
[3];
5505 params
[0] = ENUM_TO_INT(buffer
);
5508 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5509 CHECK_EXTENSION_I(OES_read_format
, pname
);
5510 params
[0] = ctx
->Const
.ColorReadType
;
5512 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5513 CHECK_EXTENSION_I(OES_read_format
, pname
);
5514 params
[0] = ctx
->Const
.ColorReadFormat
;
5516 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5517 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5520 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5521 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5524 case GL_NUM_PASSES_ATI
:
5525 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5528 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5529 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5532 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5533 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5536 case GL_COLOR_ALPHA_PAIRING_ATI
:
5537 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5538 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5540 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5541 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5544 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5545 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5548 case GL_STENCIL_BACK_FUNC
:
5549 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5551 case GL_STENCIL_BACK_VALUE_MASK
:
5552 params
[0] = ctx
->Stencil
.ValueMask
[1];
5554 case GL_STENCIL_BACK_REF
:
5555 params
[0] = ctx
->Stencil
.Ref
[1];
5557 case GL_STENCIL_BACK_FAIL
:
5558 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5560 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5561 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5563 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5564 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5566 case GL_FRAMEBUFFER_BINDING_EXT
:
5567 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5568 params
[0] = ctx
->DrawBuffer
->Name
;
5570 case GL_RENDERBUFFER_BINDING_EXT
:
5571 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5572 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5574 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5575 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5576 params
[0] = ctx
->Const
.MaxColorAttachments
;
5578 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5579 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5580 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5582 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5583 CHECK_EXTENSION_I(ARB_fragment_shader
, pname
);
5584 params
[0] = MAX_FRAGMENT_UNIFORM_COMPONENTS
;
5586 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5587 CHECK_EXTENSION_I(ARB_fragment_shader
, pname
);
5588 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5590 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5591 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5592 params
[0] = MAX_VERTEX_UNIFORM_COMPONENTS
;
5594 case GL_MAX_VARYING_FLOATS_ARB
:
5595 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5596 params
[0] = MAX_VARYING_FLOATS
;
5598 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5599 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5600 params
[0] = MAX_VERTEX_TEXTURE_IMAGE_UNITS
;
5602 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5603 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5604 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5607 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5613 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5615 const GLfloat magic
= -1234.5F
;
5622 /* Init temp array to magic numbers so we can figure out how many values
5623 * are returned by the GetFloatv() call.
5625 for (i
= 0; i
< 16; i
++)
5628 _mesa_GetFloatv(pname
, values
);
5630 for (i
= 0; values
[i
] != magic
&& i
< 16; i
++)
5631 params
[i
] = (GLdouble
) values
[i
];