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 FLUSH_VERTICES(ctx
, _NEW_DEPTH
);
1190 if (ctx
->Depth
.OcclusionTest
)
1191 params
[0] = ctx
->OcclusionResult
;
1193 params
[0] = ctx
->OcclusionResultSaved
;
1194 /* reset flag now */
1195 ctx
->OcclusionResult
= GL_FALSE
;
1196 ctx
->OcclusionResultSaved
= GL_FALSE
;
1200 case GL_PIXEL_TEXTURE_SGIS
:
1201 CHECK_EXTENSION_B(SGIS_pixel_texture
, pname
);
1202 params
[0] = ctx
->Pixel
.PixelTextureEnabled
;
1204 case GL_PIXEL_TEX_GEN_SGIX
:
1205 CHECK_EXTENSION_B(SGIX_pixel_texture
, pname
);
1206 params
[0] = ctx
->Pixel
.PixelTextureEnabled
;
1208 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
1209 CHECK_EXTENSION_B(SGIX_pixel_texture
, pname
);
1210 params
[0] = ENUM_TO_BOOLEAN(pixel_texgen_mode(ctx
));
1212 case GL_COLOR_MATRIX_SGI
:
1214 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1215 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1216 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1217 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1218 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1219 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1220 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1221 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1222 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1223 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1224 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1225 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1226 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1227 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1228 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1229 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1230 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1233 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1234 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1236 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1237 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1239 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1240 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1242 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1243 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1245 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1246 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1248 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1249 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1251 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1252 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1254 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1255 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1257 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1258 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1260 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1261 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1263 case GL_CONVOLUTION_1D_EXT
:
1264 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1265 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1267 case GL_CONVOLUTION_2D_EXT
:
1268 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1269 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1271 case GL_SEPARABLE_2D_EXT
:
1272 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1273 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1275 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1276 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1277 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1279 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1280 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1281 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1283 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1284 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1285 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1287 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1288 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1289 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1291 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1292 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1293 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1295 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1296 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1297 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1299 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1300 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1301 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1303 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1304 CHECK_EXTENSION_B(EXT_convolution
, pname
);
1305 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1308 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1309 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1312 CHECK_EXTENSION_B(EXT_histogram
, pname
);
1313 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1315 case GL_COLOR_TABLE_SGI
:
1316 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1317 params
[0] = ctx
->Pixel
.ColorTableEnabled
;
1319 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1320 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1321 params
[0] = ctx
->Pixel
.PostConvolutionColorTableEnabled
;
1323 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1324 CHECK_EXTENSION_B(SGI_color_table
, pname
);
1325 params
[0] = ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
1327 case GL_TEXTURE_COLOR_TABLE_SGI
:
1328 CHECK_EXTENSION_B(SGI_texture_color_table
, pname
);
1329 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1331 case GL_COLOR_SUM_EXT
:
1332 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1333 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1335 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1336 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1338 FLUSH_CURRENT(ctx
, 0);
1339 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1340 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1341 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1342 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1345 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1346 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1347 params
[0] = ctx
->Array
.SecondaryColor
.Enabled
;
1349 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1350 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1351 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Type
);
1353 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1354 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1355 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Stride
);
1357 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1358 CHECK_EXTENSION_B(EXT_secondary_color
, pname
);
1359 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.Size
);
1361 case GL_CURRENT_FOG_COORDINATE_EXT
:
1362 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1364 FLUSH_CURRENT(ctx
, 0);
1365 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1368 case GL_FOG_COORDINATE_ARRAY_EXT
:
1369 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1370 params
[0] = ctx
->Array
.FogCoord
.Enabled
;
1372 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1373 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1374 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.FogCoord
.Type
);
1376 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1377 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1378 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.Stride
);
1380 case GL_FOG_COORDINATE_SOURCE_EXT
:
1381 CHECK_EXTENSION_B(EXT_fog_coord
, pname
);
1382 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1384 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1385 CHECK_EXTENSION_B(EXT_texture_lod_bias
, pname
);
1386 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1388 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1389 CHECK_EXTENSION_B(EXT_texture_filter_anisotropic
, pname
);
1390 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1392 case GL_MULTISAMPLE_ARB
:
1393 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1394 params
[0] = ctx
->Multisample
.Enabled
;
1396 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1397 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1398 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1400 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1401 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1402 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1404 case GL_SAMPLE_COVERAGE_ARB
:
1405 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1406 params
[0] = ctx
->Multisample
.SampleCoverage
;
1408 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1409 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1410 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1412 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1413 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1414 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1416 case GL_SAMPLE_BUFFERS_ARB
:
1417 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1418 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1420 case GL_SAMPLES_ARB
:
1421 CHECK_EXTENSION_B(ARB_multisample
, pname
);
1422 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1424 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1425 CHECK_EXTENSION_B(IBM_rasterpos_clip
, pname
);
1426 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1428 case GL_POINT_SPRITE_NV
:
1429 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1430 params
[0] = ctx
->Point
.PointSprite
;
1432 case GL_POINT_SPRITE_R_MODE_NV
:
1433 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1434 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1436 case GL_POINT_SPRITE_COORD_ORIGIN
:
1437 CHECK_EXTENSION_B(NV_point_sprite
, pname
);
1438 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1440 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1441 CHECK_EXTENSION_B(SGIS_generate_mipmap
, pname
);
1442 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1444 case GL_VERTEX_PROGRAM_NV
:
1445 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1446 params
[0] = ctx
->VertexProgram
.Enabled
;
1448 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
1449 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1450 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1452 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
1453 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1454 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1456 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
1457 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1458 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1460 case GL_MAX_TRACK_MATRICES_NV
:
1461 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1462 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1464 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
1465 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1466 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1468 case GL_CURRENT_MATRIX_NV
:
1469 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1471 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1472 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1473 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1474 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1475 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1476 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1477 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1478 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1479 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1480 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1481 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1482 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1483 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1484 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1485 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1486 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1487 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1490 case GL_VERTEX_PROGRAM_BINDING_NV
:
1491 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1492 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1494 case GL_PROGRAM_ERROR_POSITION_NV
:
1495 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1496 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1498 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1499 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1500 params
[0] = ctx
->Array
.VertexAttrib
[0].Enabled
;
1502 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1503 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1504 params
[0] = ctx
->Array
.VertexAttrib
[1].Enabled
;
1506 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1507 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1508 params
[0] = ctx
->Array
.VertexAttrib
[2].Enabled
;
1510 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1511 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1512 params
[0] = ctx
->Array
.VertexAttrib
[3].Enabled
;
1514 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1515 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1516 params
[0] = ctx
->Array
.VertexAttrib
[4].Enabled
;
1518 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1519 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1520 params
[0] = ctx
->Array
.VertexAttrib
[5].Enabled
;
1522 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1523 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1524 params
[0] = ctx
->Array
.VertexAttrib
[6].Enabled
;
1526 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1527 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1528 params
[0] = ctx
->Array
.VertexAttrib
[7].Enabled
;
1530 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1531 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1532 params
[0] = ctx
->Array
.VertexAttrib
[8].Enabled
;
1534 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1535 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1536 params
[0] = ctx
->Array
.VertexAttrib
[9].Enabled
;
1538 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1539 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1540 params
[0] = ctx
->Array
.VertexAttrib
[10].Enabled
;
1542 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1543 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1544 params
[0] = ctx
->Array
.VertexAttrib
[11].Enabled
;
1546 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1547 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1548 params
[0] = ctx
->Array
.VertexAttrib
[12].Enabled
;
1550 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1551 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1552 params
[0] = ctx
->Array
.VertexAttrib
[13].Enabled
;
1554 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1555 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1556 params
[0] = ctx
->Array
.VertexAttrib
[14].Enabled
;
1558 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1559 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1560 params
[0] = ctx
->Array
.VertexAttrib
[15].Enabled
;
1562 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1563 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1564 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1566 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1567 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1568 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1570 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1571 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1572 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1574 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1575 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1576 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1578 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1579 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1580 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1582 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1583 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1584 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1586 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1587 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1588 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1590 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1591 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1592 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1594 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1595 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1596 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1598 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1599 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1600 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1602 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1603 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1604 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1606 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1607 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1608 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1610 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1611 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1612 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1614 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1615 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1616 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1618 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1619 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1620 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1622 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1623 CHECK_EXTENSION_B(NV_vertex_program
, pname
);
1624 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1626 case GL_FRAGMENT_PROGRAM_NV
:
1627 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1628 params
[0] = ctx
->FragmentProgram
.Enabled
;
1630 case GL_MAX_TEXTURE_COORDS_NV
:
1631 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1632 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1634 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
1635 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1636 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1638 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1639 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1640 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1642 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1643 CHECK_EXTENSION_B(NV_fragment_program
, pname
);
1644 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1646 case GL_TEXTURE_RECTANGLE_NV
:
1647 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1648 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1650 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1651 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1652 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
1654 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1655 CHECK_EXTENSION_B(NV_texture_rectangle
, pname
);
1656 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1658 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1659 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1660 params
[0] = ctx
->Stencil
.TestTwoSide
;
1662 case GL_ACTIVE_STENCIL_FACE_EXT
:
1663 CHECK_EXTENSION_B(EXT_stencil_two_side
, pname
);
1664 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1666 case GL_MAX_SHININESS_NV
:
1667 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1668 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1670 case GL_MAX_SPOT_EXPONENT_NV
:
1671 CHECK_EXTENSION_B(NV_light_max_exponent
, pname
);
1672 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1674 case GL_ARRAY_BUFFER_BINDING_ARB
:
1675 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1676 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1678 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1679 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1680 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Vertex
.BufferObj
->Name
);
1682 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1683 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1684 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Normal
.BufferObj
->Name
);
1686 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1687 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1688 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Color
.BufferObj
->Name
);
1690 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1691 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1692 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.Index
.BufferObj
->Name
);
1694 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1695 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1696 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1698 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1699 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1700 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
1702 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1703 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1704 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
1706 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1707 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1708 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.FogCoord
.BufferObj
->Name
);
1710 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1711 CHECK_EXTENSION_B(ARB_vertex_buffer_object
, pname
);
1712 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1714 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1715 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1716 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1718 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1719 CHECK_EXTENSION_B(EXT_pixel_buffer_object
, pname
);
1720 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1722 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1723 CHECK_EXTENSION_B(ARB_vertex_program
, pname
);
1724 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexProgramAttribs
);
1726 case GL_FRAGMENT_PROGRAM_ARB
:
1727 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1728 params
[0] = ctx
->FragmentProgram
.Enabled
;
1730 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1731 CHECK_EXTENSION_B(ARB_fragment_program
, pname
);
1733 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1734 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1735 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1736 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1737 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1738 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1739 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1740 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1741 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1742 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1743 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1744 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1745 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1746 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1747 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1748 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1749 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1752 case GL_DEPTH_BOUNDS_TEST_EXT
:
1753 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1754 params
[0] = ctx
->Depth
.BoundsTest
;
1756 case GL_DEPTH_BOUNDS_EXT
:
1757 CHECK_EXTENSION_B(EXT_depth_bounds_test
, pname
);
1758 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1759 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1761 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
1762 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1763 params
[0] = ctx
->FragmentProgram
.CallbackEnabled
;
1765 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
1766 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1767 params
[0] = ctx
->VertexProgram
.CallbackEnabled
;
1769 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
1770 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1771 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.CurrentPosition
);
1773 case GL_VERTEX_PROGRAM_POSITION_MESA
:
1774 CHECK_EXTENSION_B(MESA_program_debug
, pname
);
1775 params
[0] = INT_TO_BOOLEAN(ctx
->VertexProgram
.CurrentPosition
);
1777 case GL_MAX_DRAW_BUFFERS_ARB
:
1778 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1779 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1781 case GL_DRAW_BUFFER0_ARB
:
1782 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1783 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.DrawBuffer
[0]);
1785 case GL_DRAW_BUFFER1_ARB
:
1786 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1789 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1790 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1793 buffer
= ctx
->Color
.DrawBuffer
[1];
1794 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1797 case GL_DRAW_BUFFER2_ARB
:
1798 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1801 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1802 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1805 buffer
= ctx
->Color
.DrawBuffer
[2];
1806 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1809 case GL_DRAW_BUFFER3_ARB
:
1810 CHECK_EXTENSION_B(ARB_draw_buffers
, pname
);
1813 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1814 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1817 buffer
= ctx
->Color
.DrawBuffer
[3];
1818 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1821 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1822 CHECK_EXTENSION_B(OES_read_format
, pname
);
1823 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadType
);
1825 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1826 CHECK_EXTENSION_B(OES_read_format
, pname
);
1827 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.ColorReadFormat
);
1829 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1830 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1831 params
[0] = INT_TO_BOOLEAN(6);
1833 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1834 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1835 params
[0] = INT_TO_BOOLEAN(8);
1837 case GL_NUM_PASSES_ATI
:
1838 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1839 params
[0] = INT_TO_BOOLEAN(2);
1841 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1842 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1843 params
[0] = INT_TO_BOOLEAN(8);
1845 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1846 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1847 params
[0] = INT_TO_BOOLEAN(16);
1849 case GL_COLOR_ALPHA_PAIRING_ATI
:
1850 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1851 params
[0] = GL_TRUE
;
1853 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1854 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1855 params
[0] = INT_TO_BOOLEAN(3);
1857 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1858 CHECK_EXTENSION_B(ATI_fragment_shader
, pname
);
1859 params
[0] = INT_TO_BOOLEAN(3);
1861 case GL_STENCIL_BACK_FUNC
:
1862 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1864 case GL_STENCIL_BACK_VALUE_MASK
:
1865 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1867 case GL_STENCIL_BACK_REF
:
1868 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1870 case GL_STENCIL_BACK_FAIL
:
1871 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1873 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1874 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1876 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1877 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1879 case GL_FRAMEBUFFER_BINDING_EXT
:
1880 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1881 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1883 case GL_RENDERBUFFER_BINDING_EXT
:
1884 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1885 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1887 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1888 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1889 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1891 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1892 CHECK_EXTENSION_B(EXT_framebuffer_object
, pname
);
1893 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1895 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1896 CHECK_EXTENSION_B(ARB_fragment_shader
, pname
);
1897 params
[0] = INT_TO_BOOLEAN(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
1899 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1900 CHECK_EXTENSION_B(ARB_fragment_shader
, pname
);
1901 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1903 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1904 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1905 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_UNIFORM_COMPONENTS
);
1907 case GL_MAX_VARYING_FLOATS_ARB
:
1908 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1909 params
[0] = INT_TO_BOOLEAN(MAX_VARYING_FLOATS
);
1911 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1912 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1913 params
[0] = INT_TO_BOOLEAN(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
1915 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1916 CHECK_EXTENSION_B(ARB_vertex_shader
, pname
);
1917 params
[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
1920 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1925 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1927 GET_CURRENT_CONTEXT(ctx
);
1928 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1933 if (ctx
->Driver
.GetFloatv
&&
1934 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1938 case GL_ACCUM_RED_BITS
:
1939 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1941 case GL_ACCUM_GREEN_BITS
:
1942 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1944 case GL_ACCUM_BLUE_BITS
:
1945 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1947 case GL_ACCUM_ALPHA_BITS
:
1948 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1950 case GL_ACCUM_CLEAR_VALUE
:
1951 params
[0] = ctx
->Accum
.ClearColor
[0];
1952 params
[1] = ctx
->Accum
.ClearColor
[1];
1953 params
[2] = ctx
->Accum
.ClearColor
[2];
1954 params
[3] = ctx
->Accum
.ClearColor
[3];
1957 params
[0] = ctx
->Pixel
.AlphaBias
;
1960 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1962 case GL_ALPHA_SCALE
:
1963 params
[0] = ctx
->Pixel
.AlphaScale
;
1966 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1968 case GL_ALPHA_TEST_FUNC
:
1969 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1971 case GL_ALPHA_TEST_REF
:
1972 params
[0] = ctx
->Color
.AlphaRef
;
1974 case GL_ATTRIB_STACK_DEPTH
:
1975 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1977 case GL_AUTO_NORMAL
:
1978 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1980 case GL_AUX_BUFFERS
:
1981 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
1984 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.BlendEnabled
);
1987 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1990 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1992 case GL_BLEND_SRC_RGB_EXT
:
1993 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1995 case GL_BLEND_DST_RGB_EXT
:
1996 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1998 case GL_BLEND_SRC_ALPHA_EXT
:
1999 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
2001 case GL_BLEND_DST_ALPHA_EXT
:
2002 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
2004 case GL_BLEND_EQUATION
:
2005 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
2007 case GL_BLEND_EQUATION_ALPHA_EXT
:
2008 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
2010 case GL_BLEND_COLOR_EXT
:
2011 params
[0] = ctx
->Color
.BlendColor
[0];
2012 params
[1] = ctx
->Color
.BlendColor
[1];
2013 params
[2] = ctx
->Color
.BlendColor
[2];
2014 params
[3] = ctx
->Color
.BlendColor
[3];
2017 params
[0] = ctx
->Pixel
.BlueBias
;
2020 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
2023 params
[0] = ctx
->Pixel
.BlueScale
;
2025 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2026 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2028 case GL_CLIP_PLANE0
:
2029 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2031 case GL_CLIP_PLANE1
:
2032 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2034 case GL_CLIP_PLANE2
:
2035 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2037 case GL_CLIP_PLANE3
:
2038 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2040 case GL_CLIP_PLANE4
:
2041 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2043 case GL_CLIP_PLANE5
:
2044 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2046 case GL_COLOR_CLEAR_VALUE
:
2047 params
[0] = ctx
->Color
.ClearColor
[0];
2048 params
[1] = ctx
->Color
.ClearColor
[1];
2049 params
[2] = ctx
->Color
.ClearColor
[2];
2050 params
[3] = ctx
->Color
.ClearColor
[3];
2052 case GL_COLOR_MATERIAL
:
2053 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2055 case GL_COLOR_MATERIAL_FACE
:
2056 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2058 case GL_COLOR_MATERIAL_PARAMETER
:
2059 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2061 case GL_COLOR_WRITEMASK
:
2062 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0);
2063 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0);
2064 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0);
2065 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0);
2068 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2070 case GL_CULL_FACE_MODE
:
2071 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2073 case GL_CURRENT_COLOR
:
2075 FLUSH_CURRENT(ctx
, 0);
2076 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2077 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2078 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2079 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2082 case GL_CURRENT_INDEX
:
2084 FLUSH_CURRENT(ctx
, 0);
2085 params
[0] = ctx
->Current
.Index
;
2088 case GL_CURRENT_NORMAL
:
2090 FLUSH_CURRENT(ctx
, 0);
2091 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2092 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2093 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2096 case GL_CURRENT_RASTER_COLOR
:
2097 params
[0] = ctx
->Current
.RasterColor
[0];
2098 params
[1] = ctx
->Current
.RasterColor
[1];
2099 params
[2] = ctx
->Current
.RasterColor
[2];
2100 params
[3] = ctx
->Current
.RasterColor
[3];
2102 case GL_CURRENT_RASTER_DISTANCE
:
2103 params
[0] = ctx
->Current
.RasterDistance
;
2105 case GL_CURRENT_RASTER_INDEX
:
2106 params
[0] = ctx
->Current
.RasterIndex
;
2108 case GL_CURRENT_RASTER_POSITION
:
2109 params
[0] = ctx
->Current
.RasterPos
[0];
2110 params
[1] = ctx
->Current
.RasterPos
[1];
2111 params
[2] = ctx
->Current
.RasterPos
[2];
2112 params
[3] = ctx
->Current
.RasterPos
[3];
2114 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2116 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2117 params
[0] = ctx
->Current
.RasterTexCoords
[texUnit
][0];
2118 params
[1] = ctx
->Current
.RasterTexCoords
[texUnit
][1];
2119 params
[2] = ctx
->Current
.RasterTexCoords
[texUnit
][2];
2120 params
[3] = ctx
->Current
.RasterTexCoords
[texUnit
][3];
2123 case GL_CURRENT_RASTER_POSITION_VALID
:
2124 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2126 case GL_CURRENT_TEXTURE_COORDS
:
2128 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2129 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0];
2130 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1];
2131 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2];
2132 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3];
2136 params
[0] = ctx
->Pixel
.DepthBias
;
2139 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2141 case GL_DEPTH_CLEAR_VALUE
:
2142 params
[0] = ctx
->Depth
.Clear
;
2145 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2147 case GL_DEPTH_RANGE
:
2148 params
[0] = ctx
->Viewport
.Near
;
2149 params
[1] = ctx
->Viewport
.Far
;
2151 case GL_DEPTH_SCALE
:
2152 params
[0] = ctx
->Pixel
.DepthScale
;
2155 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2157 case GL_DEPTH_WRITEMASK
:
2158 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2161 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2163 case GL_DOUBLEBUFFER
:
2164 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2166 case GL_DRAW_BUFFER
:
2167 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
2171 FLUSH_CURRENT(ctx
, 0);
2172 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.EdgeFlag
);
2175 case GL_FEEDBACK_BUFFER_SIZE
:
2176 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2178 case GL_FEEDBACK_BUFFER_TYPE
:
2179 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2182 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2185 params
[0] = ctx
->Fog
.Color
[0];
2186 params
[1] = ctx
->Fog
.Color
[1];
2187 params
[2] = ctx
->Fog
.Color
[2];
2188 params
[3] = ctx
->Fog
.Color
[3];
2190 case GL_FOG_DENSITY
:
2191 params
[0] = ctx
->Fog
.Density
;
2194 params
[0] = ctx
->Fog
.End
;
2197 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2200 params
[0] = ctx
->Fog
.Index
;
2203 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2206 params
[0] = ctx
->Fog
.Start
;
2209 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2212 params
[0] = ctx
->Pixel
.GreenBias
;
2215 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2217 case GL_GREEN_SCALE
:
2218 params
[0] = ctx
->Pixel
.GreenScale
;
2221 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2223 case GL_INDEX_CLEAR_VALUE
:
2224 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2227 params
[0] = BOOLEAN_TO_FLOAT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
2229 case GL_INDEX_OFFSET
:
2230 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2232 case GL_INDEX_SHIFT
:
2233 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2235 case GL_INDEX_WRITEMASK
:
2236 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2239 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2242 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2245 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2248 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2251 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2254 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2257 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2260 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2263 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2265 case GL_LIGHT_MODEL_AMBIENT
:
2266 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2267 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2268 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2269 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2271 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2272 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2274 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2277 case GL_LIGHT_MODEL_TWO_SIDE
:
2278 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2280 case GL_LINE_SMOOTH
:
2281 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2283 case GL_LINE_SMOOTH_HINT
:
2284 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2286 case GL_LINE_STIPPLE
:
2287 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2289 case GL_LINE_STIPPLE_PATTERN
:
2290 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2292 case GL_LINE_STIPPLE_REPEAT
:
2293 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2296 params
[0] = ctx
->Line
.Width
;
2298 case GL_LINE_WIDTH_GRANULARITY
:
2299 params
[0] = ctx
->Const
.LineWidthGranularity
;
2301 case GL_LINE_WIDTH_RANGE
:
2302 params
[0] = ctx
->Const
.MinLineWidthAA
;
2303 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2305 case GL_ALIASED_LINE_WIDTH_RANGE
:
2306 params
[0] = ctx
->Const
.MinLineWidth
;
2307 params
[1] = ctx
->Const
.MaxLineWidth
;
2310 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2313 params
[0] = (GLfloat
)(ctx
->ListState
.CurrentListNum
);
2318 if (!ctx
->CompileFlag
)
2320 else if (ctx
->ExecuteFlag
)
2321 mode
= GL_COMPILE_AND_EXECUTE
;
2324 params
[0] = ENUM_TO_FLOAT(mode
);
2327 case GL_INDEX_LOGIC_OP
:
2328 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2330 case GL_COLOR_LOGIC_OP
:
2331 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2333 case GL_LOGIC_OP_MODE
:
2334 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2336 case GL_MAP1_COLOR_4
:
2337 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2339 case GL_MAP1_GRID_DOMAIN
:
2340 params
[0] = ctx
->Eval
.MapGrid1u1
;
2341 params
[1] = ctx
->Eval
.MapGrid1u2
;
2343 case GL_MAP1_GRID_SEGMENTS
:
2344 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2347 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2349 case GL_MAP1_NORMAL
:
2350 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2352 case GL_MAP1_TEXTURE_COORD_1
:
2353 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2355 case GL_MAP1_TEXTURE_COORD_2
:
2356 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2358 case GL_MAP1_TEXTURE_COORD_3
:
2359 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2361 case GL_MAP1_TEXTURE_COORD_4
:
2362 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2364 case GL_MAP1_VERTEX_3
:
2365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2367 case GL_MAP1_VERTEX_4
:
2368 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2370 case GL_MAP2_COLOR_4
:
2371 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2373 case GL_MAP2_GRID_DOMAIN
:
2374 params
[0] = ctx
->Eval
.MapGrid2u1
;
2375 params
[1] = ctx
->Eval
.MapGrid2u2
;
2376 params
[2] = ctx
->Eval
.MapGrid2v1
;
2377 params
[3] = ctx
->Eval
.MapGrid2v2
;
2379 case GL_MAP2_GRID_SEGMENTS
:
2380 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2381 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2384 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2386 case GL_MAP2_NORMAL
:
2387 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2389 case GL_MAP2_TEXTURE_COORD_1
:
2390 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2392 case GL_MAP2_TEXTURE_COORD_2
:
2393 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2395 case GL_MAP2_TEXTURE_COORD_3
:
2396 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2398 case GL_MAP2_TEXTURE_COORD_4
:
2399 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2401 case GL_MAP2_VERTEX_3
:
2402 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2404 case GL_MAP2_VERTEX_4
:
2405 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2408 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2410 case GL_MAP_STENCIL
:
2411 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2413 case GL_MATRIX_MODE
:
2414 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2416 case GL_MAX_ATTRIB_STACK_DEPTH
:
2417 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2419 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2420 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2422 case GL_MAX_CLIP_PLANES
:
2423 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2425 case GL_MAX_ELEMENTS_VERTICES
:
2426 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2428 case GL_MAX_ELEMENTS_INDICES
:
2429 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2431 case GL_MAX_EVAL_ORDER
:
2432 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2435 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2437 case GL_MAX_LIST_NESTING
:
2438 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2440 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2441 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2443 case GL_MAX_NAME_STACK_DEPTH
:
2444 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2446 case GL_MAX_PIXEL_MAP_TABLE
:
2447 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2449 case GL_MAX_PROJECTION_STACK_DEPTH
:
2450 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2452 case GL_MAX_TEXTURE_SIZE
:
2453 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2455 case GL_MAX_3D_TEXTURE_SIZE
:
2456 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2458 case GL_MAX_TEXTURE_STACK_DEPTH
:
2459 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2461 case GL_MAX_VIEWPORT_DIMS
:
2462 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2463 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2465 case GL_MODELVIEW_MATRIX
:
2467 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2468 params
[0] = matrix
[0];
2469 params
[1] = matrix
[1];
2470 params
[2] = matrix
[2];
2471 params
[3] = matrix
[3];
2472 params
[4] = matrix
[4];
2473 params
[5] = matrix
[5];
2474 params
[6] = matrix
[6];
2475 params
[7] = matrix
[7];
2476 params
[8] = matrix
[8];
2477 params
[9] = matrix
[9];
2478 params
[10] = matrix
[10];
2479 params
[11] = matrix
[11];
2480 params
[12] = matrix
[12];
2481 params
[13] = matrix
[13];
2482 params
[14] = matrix
[14];
2483 params
[15] = matrix
[15];
2486 case GL_MODELVIEW_STACK_DEPTH
:
2487 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2489 case GL_NAME_STACK_DEPTH
:
2490 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2493 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2495 case GL_PACK_ALIGNMENT
:
2496 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2498 case GL_PACK_LSB_FIRST
:
2499 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2501 case GL_PACK_ROW_LENGTH
:
2502 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2504 case GL_PACK_SKIP_PIXELS
:
2505 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2507 case GL_PACK_SKIP_ROWS
:
2508 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2510 case GL_PACK_SWAP_BYTES
:
2511 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2513 case GL_PACK_SKIP_IMAGES_EXT
:
2514 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2516 case GL_PACK_IMAGE_HEIGHT_EXT
:
2517 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2519 case GL_PACK_INVERT_MESA
:
2520 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2522 case GL_PERSPECTIVE_CORRECTION_HINT
:
2523 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2525 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2526 params
[0] = (GLfloat
)(ctx
->Pixel
.MapAtoAsize
);
2528 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2529 params
[0] = (GLfloat
)(ctx
->Pixel
.MapBtoBsize
);
2531 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2532 params
[0] = (GLfloat
)(ctx
->Pixel
.MapGtoGsize
);
2534 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2535 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoAsize
);
2537 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2538 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoBsize
);
2540 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2541 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoGsize
);
2543 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2544 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoIsize
);
2546 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2547 params
[0] = (GLfloat
)(ctx
->Pixel
.MapItoRsize
);
2549 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2550 params
[0] = (GLfloat
)(ctx
->Pixel
.MapRtoRsize
);
2552 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2553 params
[0] = (GLfloat
)(ctx
->Pixel
.MapStoSsize
);
2556 params
[0] = ctx
->Point
.Size
;
2558 case GL_POINT_SIZE_GRANULARITY
:
2559 params
[0] = ctx
->Const
.PointSizeGranularity
;
2561 case GL_POINT_SIZE_RANGE
:
2562 params
[0] = ctx
->Const
.MinPointSizeAA
;
2563 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2565 case GL_ALIASED_POINT_SIZE_RANGE
:
2566 params
[0] = ctx
->Const
.MinPointSize
;
2567 params
[1] = ctx
->Const
.MaxPointSize
;
2569 case GL_POINT_SMOOTH
:
2570 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2572 case GL_POINT_SMOOTH_HINT
:
2573 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2575 case GL_POINT_SIZE_MIN_EXT
:
2576 params
[0] = ctx
->Point
.MinSize
;
2578 case GL_POINT_SIZE_MAX_EXT
:
2579 params
[0] = ctx
->Point
.MaxSize
;
2581 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2582 params
[0] = ctx
->Point
.Threshold
;
2584 case GL_DISTANCE_ATTENUATION_EXT
:
2585 params
[0] = ctx
->Point
.Params
[0];
2586 params
[1] = ctx
->Point
.Params
[1];
2587 params
[2] = ctx
->Point
.Params
[2];
2589 case GL_POLYGON_MODE
:
2590 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2591 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2593 case GL_POLYGON_OFFSET_BIAS_EXT
:
2594 params
[0] = ctx
->Polygon
.OffsetUnits
;
2596 case GL_POLYGON_OFFSET_FACTOR
:
2597 params
[0] = ctx
->Polygon
.OffsetFactor
;
2599 case GL_POLYGON_OFFSET_UNITS
:
2600 params
[0] = ctx
->Polygon
.OffsetUnits
;
2602 case GL_POLYGON_SMOOTH
:
2603 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2605 case GL_POLYGON_SMOOTH_HINT
:
2606 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2608 case GL_POLYGON_STIPPLE
:
2609 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2611 case GL_PROJECTION_MATRIX
:
2613 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2614 params
[0] = matrix
[0];
2615 params
[1] = matrix
[1];
2616 params
[2] = matrix
[2];
2617 params
[3] = matrix
[3];
2618 params
[4] = matrix
[4];
2619 params
[5] = matrix
[5];
2620 params
[6] = matrix
[6];
2621 params
[7] = matrix
[7];
2622 params
[8] = matrix
[8];
2623 params
[9] = matrix
[9];
2624 params
[10] = matrix
[10];
2625 params
[11] = matrix
[11];
2626 params
[12] = matrix
[12];
2627 params
[13] = matrix
[13];
2628 params
[14] = matrix
[14];
2629 params
[15] = matrix
[15];
2632 case GL_PROJECTION_STACK_DEPTH
:
2633 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2635 case GL_READ_BUFFER
:
2636 params
[0] = ENUM_TO_FLOAT(ctx
->Pixel
.ReadBuffer
);
2639 params
[0] = ctx
->Pixel
.RedBias
;
2642 params
[0] = (GLfloat
)( ctx
->DrawBuffer
->Visual
.redBits
);
2645 params
[0] = ctx
->Pixel
.RedScale
;
2647 case GL_RENDER_MODE
:
2648 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2650 case GL_RESCALE_NORMAL
:
2651 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2654 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.rgbMode
);
2656 case GL_SCISSOR_BOX
:
2657 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2658 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2659 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2660 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2662 case GL_SCISSOR_TEST
:
2663 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2665 case GL_SELECTION_BUFFER_SIZE
:
2666 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2668 case GL_SHADE_MODEL
:
2669 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2671 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2672 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2674 case GL_STENCIL_BITS
:
2675 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2677 case GL_STENCIL_CLEAR_VALUE
:
2678 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2680 case GL_STENCIL_FAIL
:
2681 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2683 case GL_STENCIL_FUNC
:
2684 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2686 case GL_STENCIL_PASS_DEPTH_FAIL
:
2687 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2689 case GL_STENCIL_PASS_DEPTH_PASS
:
2690 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2692 case GL_STENCIL_REF
:
2693 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2695 case GL_STENCIL_TEST
:
2696 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2698 case GL_STENCIL_VALUE_MASK
:
2699 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2701 case GL_STENCIL_WRITEMASK
:
2702 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2705 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2707 case GL_SUBPIXEL_BITS
:
2708 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2711 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2714 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2717 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2719 case GL_TEXTURE_BINDING_1D
:
2720 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
);
2722 case GL_TEXTURE_BINDING_2D
:
2723 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
);
2725 case GL_TEXTURE_BINDING_3D
:
2726 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
);
2728 case GL_TEXTURE_ENV_COLOR
:
2730 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
2731 params
[0] = color
[0];
2732 params
[1] = color
[1];
2733 params
[2] = color
[2];
2734 params
[3] = color
[3];
2737 case GL_TEXTURE_ENV_MODE
:
2738 params
[0] = ENUM_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
2740 case GL_TEXTURE_GEN_S
:
2741 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2743 case GL_TEXTURE_GEN_T
:
2744 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2746 case GL_TEXTURE_GEN_R
:
2747 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2749 case GL_TEXTURE_GEN_Q
:
2750 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2752 case GL_TEXTURE_MATRIX
:
2754 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
2755 params
[0] = matrix
[0];
2756 params
[1] = matrix
[1];
2757 params
[2] = matrix
[2];
2758 params
[3] = matrix
[3];
2759 params
[4] = matrix
[4];
2760 params
[5] = matrix
[5];
2761 params
[6] = matrix
[6];
2762 params
[7] = matrix
[7];
2763 params
[8] = matrix
[8];
2764 params
[9] = matrix
[9];
2765 params
[10] = matrix
[10];
2766 params
[11] = matrix
[11];
2767 params
[12] = matrix
[12];
2768 params
[13] = matrix
[13];
2769 params
[14] = matrix
[14];
2770 params
[15] = matrix
[15];
2773 case GL_TEXTURE_STACK_DEPTH
:
2774 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1);
2776 case GL_UNPACK_ALIGNMENT
:
2777 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2779 case GL_UNPACK_LSB_FIRST
:
2780 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2782 case GL_UNPACK_ROW_LENGTH
:
2783 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2785 case GL_UNPACK_SKIP_PIXELS
:
2786 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2788 case GL_UNPACK_SKIP_ROWS
:
2789 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2791 case GL_UNPACK_SWAP_BYTES
:
2792 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2794 case GL_UNPACK_SKIP_IMAGES_EXT
:
2795 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2797 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2798 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2800 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2801 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2804 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2805 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2806 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2807 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2810 params
[0] = ctx
->Pixel
.ZoomX
;
2813 params
[0] = ctx
->Pixel
.ZoomY
;
2815 case GL_VERTEX_ARRAY
:
2816 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Vertex
.Enabled
);
2818 case GL_VERTEX_ARRAY_SIZE
:
2819 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Size
);
2821 case GL_VERTEX_ARRAY_TYPE
:
2822 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Vertex
.Type
);
2824 case GL_VERTEX_ARRAY_STRIDE
:
2825 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.Stride
);
2827 case GL_VERTEX_ARRAY_COUNT_EXT
:
2828 params
[0] = (GLfloat
)(0);
2830 case GL_NORMAL_ARRAY
:
2831 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Enabled
);
2833 case GL_NORMAL_ARRAY_TYPE
:
2834 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Normal
.Type
);
2836 case GL_NORMAL_ARRAY_STRIDE
:
2837 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.Stride
);
2839 case GL_NORMAL_ARRAY_COUNT_EXT
:
2840 params
[0] = (GLfloat
)(0);
2842 case GL_COLOR_ARRAY
:
2843 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Color
.Enabled
);
2845 case GL_COLOR_ARRAY_SIZE
:
2846 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Size
);
2848 case GL_COLOR_ARRAY_TYPE
:
2849 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Color
.Type
);
2851 case GL_COLOR_ARRAY_STRIDE
:
2852 params
[0] = (GLfloat
)(ctx
->Array
.Color
.Stride
);
2854 case GL_COLOR_ARRAY_COUNT_EXT
:
2855 params
[0] = (GLfloat
)(0);
2857 case GL_INDEX_ARRAY
:
2858 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.Index
.Enabled
);
2860 case GL_INDEX_ARRAY_TYPE
:
2861 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.Index
.Type
);
2863 case GL_INDEX_ARRAY_STRIDE
:
2864 params
[0] = (GLfloat
)(ctx
->Array
.Index
.Stride
);
2866 case GL_INDEX_ARRAY_COUNT_EXT
:
2867 params
[0] = (GLfloat
)(0);
2869 case GL_TEXTURE_COORD_ARRAY
:
2870 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2872 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2873 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2875 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2876 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2878 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2879 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2881 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2882 params
[0] = (GLfloat
)(0);
2884 case GL_EDGE_FLAG_ARRAY
:
2885 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.EdgeFlag
.Enabled
);
2887 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2888 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.Stride
);
2890 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2891 params
[0] = (GLfloat
)(0);
2893 case GL_MAX_TEXTURE_UNITS_ARB
:
2894 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2895 params
[0] = (GLfloat
)(MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
));
2897 case GL_ACTIVE_TEXTURE_ARB
:
2898 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2899 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2901 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2902 CHECK_EXTENSION_F(ARB_multitexture
, pname
);
2903 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2905 case GL_TEXTURE_CUBE_MAP_ARB
:
2906 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2907 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2909 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2910 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2911 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
);
2913 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2914 CHECK_EXTENSION_F(ARB_texture_cube_map
, pname
);
2915 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2917 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2918 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2919 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2921 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2922 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2923 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
));
2925 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2926 CHECK_EXTENSION_F(ARB_texture_compression
, pname
);
2929 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
2931 for (i
= 0; i
< n
; i
++)
2932 params
[i
] = ENUM_TO_INT(formats
[i
]);
2935 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2936 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2937 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
2939 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2940 CHECK_EXTENSION_F(EXT_compiled_vertex_array
, pname
);
2941 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
2943 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2945 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
2946 params
[0] = matrix
[0];
2947 params
[1] = matrix
[4];
2948 params
[2] = matrix
[8];
2949 params
[3] = matrix
[12];
2950 params
[4] = matrix
[1];
2951 params
[5] = matrix
[5];
2952 params
[6] = matrix
[9];
2953 params
[7] = matrix
[13];
2954 params
[8] = matrix
[2];
2955 params
[9] = matrix
[6];
2956 params
[10] = matrix
[10];
2957 params
[11] = matrix
[14];
2958 params
[12] = matrix
[3];
2959 params
[13] = matrix
[7];
2960 params
[14] = matrix
[11];
2961 params
[15] = matrix
[15];
2964 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2966 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2967 params
[0] = matrix
[0];
2968 params
[1] = matrix
[4];
2969 params
[2] = matrix
[8];
2970 params
[3] = matrix
[12];
2971 params
[4] = matrix
[1];
2972 params
[5] = matrix
[5];
2973 params
[6] = matrix
[9];
2974 params
[7] = matrix
[13];
2975 params
[8] = matrix
[2];
2976 params
[9] = matrix
[6];
2977 params
[10] = matrix
[10];
2978 params
[11] = matrix
[14];
2979 params
[12] = matrix
[3];
2980 params
[13] = matrix
[7];
2981 params
[14] = matrix
[11];
2982 params
[15] = matrix
[15];
2985 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2987 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2988 params
[0] = matrix
[0];
2989 params
[1] = matrix
[4];
2990 params
[2] = matrix
[8];
2991 params
[3] = matrix
[12];
2992 params
[4] = matrix
[1];
2993 params
[5] = matrix
[5];
2994 params
[6] = matrix
[9];
2995 params
[7] = matrix
[13];
2996 params
[8] = matrix
[2];
2997 params
[9] = matrix
[6];
2998 params
[10] = matrix
[10];
2999 params
[11] = matrix
[14];
3000 params
[12] = matrix
[3];
3001 params
[13] = matrix
[7];
3002 params
[14] = matrix
[11];
3003 params
[15] = matrix
[15];
3006 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
3008 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
3009 params
[0] = matrix
[0];
3010 params
[1] = matrix
[4];
3011 params
[2] = matrix
[8];
3012 params
[3] = matrix
[12];
3013 params
[4] = matrix
[1];
3014 params
[5] = matrix
[5];
3015 params
[6] = matrix
[9];
3016 params
[7] = matrix
[13];
3017 params
[8] = matrix
[2];
3018 params
[9] = matrix
[6];
3019 params
[10] = matrix
[10];
3020 params
[11] = matrix
[14];
3021 params
[12] = matrix
[3];
3022 params
[13] = matrix
[7];
3023 params
[14] = matrix
[11];
3024 params
[15] = matrix
[15];
3027 case GL_OCCLUSION_TEST_HP
:
3028 CHECK_EXTENSION_F(HP_occlusion_test
, pname
);
3029 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.OcclusionTest
);
3031 case GL_OCCLUSION_TEST_RESULT_HP
:
3032 CHECK_EXTENSION_F(HP_occlusion_test
, pname
);
3034 FLUSH_VERTICES(ctx
, _NEW_DEPTH
);
3035 if (ctx
->Depth
.OcclusionTest
)
3036 params
[0] = ctx
->OcclusionResult
;
3038 params
[0] = ctx
->OcclusionResultSaved
;
3039 /* reset flag now */
3040 ctx
->OcclusionResult
= GL_FALSE
;
3041 ctx
->OcclusionResultSaved
= GL_FALSE
;
3045 case GL_PIXEL_TEXTURE_SGIS
:
3046 CHECK_EXTENSION_F(SGIS_pixel_texture
, pname
);
3047 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PixelTextureEnabled
);
3049 case GL_PIXEL_TEX_GEN_SGIX
:
3050 CHECK_EXTENSION_F(SGIX_pixel_texture
, pname
);
3051 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PixelTextureEnabled
);
3053 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
3054 CHECK_EXTENSION_F(SGIX_pixel_texture
, pname
);
3055 params
[0] = ENUM_TO_FLOAT(pixel_texgen_mode(ctx
));
3057 case GL_COLOR_MATRIX_SGI
:
3059 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3060 params
[0] = matrix
[0];
3061 params
[1] = matrix
[1];
3062 params
[2] = matrix
[2];
3063 params
[3] = matrix
[3];
3064 params
[4] = matrix
[4];
3065 params
[5] = matrix
[5];
3066 params
[6] = matrix
[6];
3067 params
[7] = matrix
[7];
3068 params
[8] = matrix
[8];
3069 params
[9] = matrix
[9];
3070 params
[10] = matrix
[10];
3071 params
[11] = matrix
[11];
3072 params
[12] = matrix
[12];
3073 params
[13] = matrix
[13];
3074 params
[14] = matrix
[14];
3075 params
[15] = matrix
[15];
3078 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3079 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3081 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3082 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3084 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3085 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3087 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3088 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3090 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3091 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3093 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3094 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3096 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3097 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3099 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3100 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3102 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3103 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3105 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3106 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3108 case GL_CONVOLUTION_1D_EXT
:
3109 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3110 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3112 case GL_CONVOLUTION_2D_EXT
:
3113 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3114 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3116 case GL_SEPARABLE_2D_EXT
:
3117 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3118 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3120 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3121 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3122 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3124 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3125 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3126 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3128 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3129 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3130 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3132 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3133 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3134 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3136 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3137 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3138 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3140 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3141 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3142 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3144 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3145 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3146 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3148 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3149 CHECK_EXTENSION_F(EXT_convolution
, pname
);
3150 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3153 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3154 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3157 CHECK_EXTENSION_F(EXT_histogram
, pname
);
3158 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3160 case GL_COLOR_TABLE_SGI
:
3161 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3162 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
);
3164 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3165 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3166 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
3168 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3169 CHECK_EXTENSION_F(SGI_color_table
, pname
);
3170 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
3172 case GL_TEXTURE_COLOR_TABLE_SGI
:
3173 CHECK_EXTENSION_F(SGI_texture_color_table
, pname
);
3174 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3176 case GL_COLOR_SUM_EXT
:
3177 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3178 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3180 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3181 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3183 FLUSH_CURRENT(ctx
, 0);
3184 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3185 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3186 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3187 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3190 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3191 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3192 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.SecondaryColor
.Enabled
);
3194 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3195 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3196 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.SecondaryColor
.Type
);
3198 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3199 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3200 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Stride
);
3202 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3203 CHECK_EXTENSION_F(EXT_secondary_color
, pname
);
3204 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.Size
);
3206 case GL_CURRENT_FOG_COORDINATE_EXT
:
3207 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3209 FLUSH_CURRENT(ctx
, 0);
3210 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3213 case GL_FOG_COORDINATE_ARRAY_EXT
:
3214 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3215 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.FogCoord
.Enabled
);
3217 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3218 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3219 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.FogCoord
.Type
);
3221 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3222 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3223 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.Stride
);
3225 case GL_FOG_COORDINATE_SOURCE_EXT
:
3226 CHECK_EXTENSION_F(EXT_fog_coord
, pname
);
3227 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3229 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3230 CHECK_EXTENSION_F(EXT_texture_lod_bias
, pname
);
3231 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3233 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3234 CHECK_EXTENSION_F(EXT_texture_filter_anisotropic
, pname
);
3235 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3237 case GL_MULTISAMPLE_ARB
:
3238 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3239 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3241 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3242 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3243 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3245 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3246 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3247 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3249 case GL_SAMPLE_COVERAGE_ARB
:
3250 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3251 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3253 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3254 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3255 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3257 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3258 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3259 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3261 case GL_SAMPLE_BUFFERS_ARB
:
3262 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3263 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3265 case GL_SAMPLES_ARB
:
3266 CHECK_EXTENSION_F(ARB_multisample
, pname
);
3267 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3269 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3270 CHECK_EXTENSION_F(IBM_rasterpos_clip
, pname
);
3271 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3273 case GL_POINT_SPRITE_NV
:
3274 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3277 case GL_POINT_SPRITE_R_MODE_NV
:
3278 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3279 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3281 case GL_POINT_SPRITE_COORD_ORIGIN
:
3282 CHECK_EXTENSION_F(NV_point_sprite
, pname
);
3283 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3285 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3286 CHECK_EXTENSION_F(SGIS_generate_mipmap
, pname
);
3287 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3289 case GL_VERTEX_PROGRAM_NV
:
3290 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3291 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3293 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
3294 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3295 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3297 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
3298 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3299 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3301 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
3302 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3303 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3305 case GL_MAX_TRACK_MATRICES_NV
:
3306 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3307 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3309 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
3310 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3311 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3313 case GL_CURRENT_MATRIX_NV
:
3314 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3316 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3317 params
[0] = matrix
[0];
3318 params
[1] = matrix
[1];
3319 params
[2] = matrix
[2];
3320 params
[3] = matrix
[3];
3321 params
[4] = matrix
[4];
3322 params
[5] = matrix
[5];
3323 params
[6] = matrix
[6];
3324 params
[7] = matrix
[7];
3325 params
[8] = matrix
[8];
3326 params
[9] = matrix
[9];
3327 params
[10] = matrix
[10];
3328 params
[11] = matrix
[11];
3329 params
[12] = matrix
[12];
3330 params
[13] = matrix
[13];
3331 params
[14] = matrix
[14];
3332 params
[15] = matrix
[15];
3335 case GL_VERTEX_PROGRAM_BINDING_NV
:
3336 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3337 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3339 case GL_PROGRAM_ERROR_POSITION_NV
:
3340 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3341 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3343 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3344 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3345 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[0].Enabled
);
3347 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3348 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3349 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[1].Enabled
);
3351 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3352 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3353 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[2].Enabled
);
3355 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3356 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3357 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[3].Enabled
);
3359 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3360 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3361 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[4].Enabled
);
3363 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3364 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3365 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[5].Enabled
);
3367 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3368 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3369 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[6].Enabled
);
3371 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3372 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3373 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[7].Enabled
);
3375 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3376 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3377 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[8].Enabled
);
3379 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3380 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3381 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[9].Enabled
);
3383 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3384 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3385 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[10].Enabled
);
3387 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3388 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[11].Enabled
);
3391 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3392 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3393 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[12].Enabled
);
3395 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3396 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3397 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[13].Enabled
);
3399 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3400 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3401 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[14].Enabled
);
3403 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3404 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3405 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.VertexAttrib
[15].Enabled
);
3407 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3408 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3409 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3411 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3412 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3413 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3415 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3416 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3417 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3419 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3420 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3421 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3423 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3424 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3425 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3427 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3428 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3429 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3431 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3432 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3433 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3435 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3436 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3437 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3439 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3440 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3441 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3443 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3444 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3445 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3447 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3448 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3449 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3451 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3452 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3453 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3455 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3456 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3457 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3459 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3460 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3461 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3463 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3464 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3465 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3467 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3468 CHECK_EXTENSION_F(NV_vertex_program
, pname
);
3469 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3471 case GL_FRAGMENT_PROGRAM_NV
:
3472 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3473 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3475 case GL_MAX_TEXTURE_COORDS_NV
:
3476 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3477 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3479 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
3480 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3481 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3483 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3484 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3485 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3487 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3488 CHECK_EXTENSION_F(NV_fragment_program
, pname
);
3489 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3491 case GL_TEXTURE_RECTANGLE_NV
:
3492 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3493 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3495 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3496 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3497 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
);
3499 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3500 CHECK_EXTENSION_F(NV_texture_rectangle
, pname
);
3501 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3503 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3504 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3505 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3507 case GL_ACTIVE_STENCIL_FACE_EXT
:
3508 CHECK_EXTENSION_F(EXT_stencil_two_side
, pname
);
3509 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3511 case GL_MAX_SHININESS_NV
:
3512 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3513 params
[0] = ctx
->Const
.MaxShininess
;
3515 case GL_MAX_SPOT_EXPONENT_NV
:
3516 CHECK_EXTENSION_F(NV_light_max_exponent
, pname
);
3517 params
[0] = ctx
->Const
.MaxSpotExponent
;
3519 case GL_ARRAY_BUFFER_BINDING_ARB
:
3520 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3521 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3523 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3524 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3525 params
[0] = (GLfloat
)(ctx
->Array
.Vertex
.BufferObj
->Name
);
3527 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3528 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3529 params
[0] = (GLfloat
)(ctx
->Array
.Normal
.BufferObj
->Name
);
3531 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3532 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3533 params
[0] = (GLfloat
)(ctx
->Array
.Color
.BufferObj
->Name
);
3535 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3536 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3537 params
[0] = (GLfloat
)(ctx
->Array
.Index
.BufferObj
->Name
);
3539 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3540 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3541 params
[0] = (GLfloat
)(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3543 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3544 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3545 params
[0] = (GLfloat
)(ctx
->Array
.EdgeFlag
.BufferObj
->Name
);
3547 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3548 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3549 params
[0] = (GLfloat
)(ctx
->Array
.SecondaryColor
.BufferObj
->Name
);
3551 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3552 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3553 params
[0] = (GLfloat
)(ctx
->Array
.FogCoord
.BufferObj
->Name
);
3555 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3556 CHECK_EXTENSION_F(ARB_vertex_buffer_object
, pname
);
3557 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3559 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3560 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3561 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3563 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3564 CHECK_EXTENSION_F(EXT_pixel_buffer_object
, pname
);
3565 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3567 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3568 CHECK_EXTENSION_F(ARB_vertex_program
, pname
);
3569 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexProgramAttribs
);
3571 case GL_FRAGMENT_PROGRAM_ARB
:
3572 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3573 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3575 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3576 CHECK_EXTENSION_F(ARB_fragment_program
, pname
);
3578 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3579 params
[0] = matrix
[0];
3580 params
[1] = matrix
[4];
3581 params
[2] = matrix
[8];
3582 params
[3] = matrix
[12];
3583 params
[4] = matrix
[1];
3584 params
[5] = matrix
[5];
3585 params
[6] = matrix
[9];
3586 params
[7] = matrix
[13];
3587 params
[8] = matrix
[2];
3588 params
[9] = matrix
[6];
3589 params
[10] = matrix
[10];
3590 params
[11] = matrix
[14];
3591 params
[12] = matrix
[3];
3592 params
[13] = matrix
[7];
3593 params
[14] = matrix
[11];
3594 params
[15] = matrix
[15];
3597 case GL_DEPTH_BOUNDS_TEST_EXT
:
3598 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3599 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3601 case GL_DEPTH_BOUNDS_EXT
:
3602 CHECK_EXTENSION_F(EXT_depth_bounds_test
, pname
);
3603 params
[0] = ctx
->Depth
.BoundsMin
;
3604 params
[1] = ctx
->Depth
.BoundsMax
;
3606 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
3607 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3608 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.CallbackEnabled
);
3610 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
3611 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3612 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.CallbackEnabled
);
3614 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
3615 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3616 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.CurrentPosition
);
3618 case GL_VERTEX_PROGRAM_POSITION_MESA
:
3619 CHECK_EXTENSION_F(MESA_program_debug
, pname
);
3620 params
[0] = (GLfloat
)(ctx
->VertexProgram
.CurrentPosition
);
3622 case GL_MAX_DRAW_BUFFERS_ARB
:
3623 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3624 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3626 case GL_DRAW_BUFFER0_ARB
:
3627 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3628 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
[0]);
3630 case GL_DRAW_BUFFER1_ARB
:
3631 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3634 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3635 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3638 buffer
= ctx
->Color
.DrawBuffer
[1];
3639 params
[0] = ENUM_TO_FLOAT(buffer
);
3642 case GL_DRAW_BUFFER2_ARB
:
3643 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3646 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3647 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3650 buffer
= ctx
->Color
.DrawBuffer
[2];
3651 params
[0] = ENUM_TO_FLOAT(buffer
);
3654 case GL_DRAW_BUFFER3_ARB
:
3655 CHECK_EXTENSION_F(ARB_draw_buffers
, pname
);
3658 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3659 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3662 buffer
= ctx
->Color
.DrawBuffer
[3];
3663 params
[0] = ENUM_TO_FLOAT(buffer
);
3666 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3667 CHECK_EXTENSION_F(OES_read_format
, pname
);
3668 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadType
);
3670 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3671 CHECK_EXTENSION_F(OES_read_format
, pname
);
3672 params
[0] = (GLfloat
)(ctx
->Const
.ColorReadFormat
);
3674 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3675 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3676 params
[0] = (GLfloat
)(6);
3678 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3679 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3680 params
[0] = (GLfloat
)(8);
3682 case GL_NUM_PASSES_ATI
:
3683 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3684 params
[0] = (GLfloat
)(2);
3686 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3687 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3688 params
[0] = (GLfloat
)(8);
3690 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3691 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3692 params
[0] = (GLfloat
)(16);
3694 case GL_COLOR_ALPHA_PAIRING_ATI
:
3695 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3696 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3698 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3699 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3700 params
[0] = (GLfloat
)(3);
3702 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3703 CHECK_EXTENSION_F(ATI_fragment_shader
, pname
);
3704 params
[0] = (GLfloat
)(3);
3706 case GL_STENCIL_BACK_FUNC
:
3707 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3709 case GL_STENCIL_BACK_VALUE_MASK
:
3710 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3712 case GL_STENCIL_BACK_REF
:
3713 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3715 case GL_STENCIL_BACK_FAIL
:
3716 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3718 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3719 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3721 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3722 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3724 case GL_FRAMEBUFFER_BINDING_EXT
:
3725 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3726 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3728 case GL_RENDERBUFFER_BINDING_EXT
:
3729 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3730 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3732 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3733 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3734 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3736 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3737 CHECK_EXTENSION_F(EXT_framebuffer_object
, pname
);
3738 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3740 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3741 CHECK_EXTENSION_F(ARB_fragment_shader
, pname
);
3742 params
[0] = (GLfloat
)(MAX_FRAGMENT_UNIFORM_COMPONENTS
);
3744 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3745 CHECK_EXTENSION_F(ARB_fragment_shader
, pname
);
3746 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3748 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3749 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3750 params
[0] = (GLfloat
)(MAX_VERTEX_UNIFORM_COMPONENTS
);
3752 case GL_MAX_VARYING_FLOATS_ARB
:
3753 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3754 params
[0] = (GLfloat
)(MAX_VARYING_FLOATS
);
3756 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3757 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3758 params
[0] = (GLfloat
)(MAX_VERTEX_TEXTURE_IMAGE_UNITS
);
3760 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3761 CHECK_EXTENSION_F(ARB_vertex_shader
, pname
);
3762 params
[0] = (GLfloat
)(MAX_COMBINED_TEXTURE_IMAGE_UNITS
);
3765 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3770 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3772 GET_CURRENT_CONTEXT(ctx
);
3773 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3778 if (ctx
->Driver
.GetIntegerv
&&
3779 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3783 case GL_ACCUM_RED_BITS
:
3784 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3786 case GL_ACCUM_GREEN_BITS
:
3787 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3789 case GL_ACCUM_BLUE_BITS
:
3790 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3792 case GL_ACCUM_ALPHA_BITS
:
3793 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3795 case GL_ACCUM_CLEAR_VALUE
:
3796 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3797 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3798 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3799 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3802 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3805 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3807 case GL_ALPHA_SCALE
:
3808 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3811 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3813 case GL_ALPHA_TEST_FUNC
:
3814 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3816 case GL_ALPHA_TEST_REF
:
3817 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3819 case GL_ATTRIB_STACK_DEPTH
:
3820 params
[0] = ctx
->AttribStackDepth
;
3822 case GL_AUTO_NORMAL
:
3823 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3825 case GL_AUX_BUFFERS
:
3826 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3829 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.BlendEnabled
);
3832 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3835 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3837 case GL_BLEND_SRC_RGB_EXT
:
3838 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3840 case GL_BLEND_DST_RGB_EXT
:
3841 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3843 case GL_BLEND_SRC_ALPHA_EXT
:
3844 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3846 case GL_BLEND_DST_ALPHA_EXT
:
3847 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3849 case GL_BLEND_EQUATION
:
3850 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3852 case GL_BLEND_EQUATION_ALPHA_EXT
:
3853 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3855 case GL_BLEND_COLOR_EXT
:
3856 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3857 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3858 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3859 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3862 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3865 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3868 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3870 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3871 params
[0] = ctx
->ClientAttribStackDepth
;
3873 case GL_CLIP_PLANE0
:
3874 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3876 case GL_CLIP_PLANE1
:
3877 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3879 case GL_CLIP_PLANE2
:
3880 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3882 case GL_CLIP_PLANE3
:
3883 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3885 case GL_CLIP_PLANE4
:
3886 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3888 case GL_CLIP_PLANE5
:
3889 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3891 case GL_COLOR_CLEAR_VALUE
:
3892 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3893 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3894 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3895 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3897 case GL_COLOR_MATERIAL
:
3898 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3900 case GL_COLOR_MATERIAL_FACE
:
3901 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3903 case GL_COLOR_MATERIAL_PARAMETER
:
3904 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3906 case GL_COLOR_WRITEMASK
:
3907 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3908 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3909 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3910 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3913 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3915 case GL_CULL_FACE_MODE
:
3916 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3918 case GL_CURRENT_COLOR
:
3920 FLUSH_CURRENT(ctx
, 0);
3921 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3922 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3923 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3924 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3927 case GL_CURRENT_INDEX
:
3929 FLUSH_CURRENT(ctx
, 0);
3930 params
[0] = IROUND(ctx
->Current
.Index
);
3933 case GL_CURRENT_NORMAL
:
3935 FLUSH_CURRENT(ctx
, 0);
3936 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3937 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3938 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3941 case GL_CURRENT_RASTER_COLOR
:
3942 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3943 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3944 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3945 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3947 case GL_CURRENT_RASTER_DISTANCE
:
3948 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3950 case GL_CURRENT_RASTER_INDEX
:
3951 params
[0] = IROUND(ctx
->Current
.RasterIndex
);
3953 case GL_CURRENT_RASTER_POSITION
:
3954 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3955 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3956 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
3957 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
3959 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3961 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3962 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][0]);
3963 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][1]);
3964 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][2]);
3965 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[texUnit
][3]);
3968 case GL_CURRENT_RASTER_POSITION_VALID
:
3969 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
3971 case GL_CURRENT_TEXTURE_COORDS
:
3973 const GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3974 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][0]);
3975 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][1]);
3976 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][2]);
3977 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ texUnit
][3]);
3981 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
3984 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
3986 case GL_DEPTH_CLEAR_VALUE
:
3987 params
[0] = IROUND(ctx
->Depth
.Clear
);
3990 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
3992 case GL_DEPTH_RANGE
:
3993 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
3994 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
3996 case GL_DEPTH_SCALE
:
3997 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
4000 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
4002 case GL_DEPTH_WRITEMASK
:
4003 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
4006 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
4008 case GL_DOUBLEBUFFER
:
4009 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
4011 case GL_DRAW_BUFFER
:
4012 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
4016 FLUSH_CURRENT(ctx
, 0);
4017 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.EdgeFlag
);
4020 case GL_FEEDBACK_BUFFER_SIZE
:
4021 params
[0] = ctx
->Feedback
.BufferSize
;
4023 case GL_FEEDBACK_BUFFER_TYPE
:
4024 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
4027 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
4030 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
4031 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
4032 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
4033 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
4035 case GL_FOG_DENSITY
:
4036 params
[0] = IROUND(ctx
->Fog
.Density
);
4039 params
[0] = IROUND(ctx
->Fog
.End
);
4042 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4045 params
[0] = IROUND(ctx
->Fog
.Index
);
4048 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4051 params
[0] = IROUND(ctx
->Fog
.Start
);
4054 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4057 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4060 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4062 case GL_GREEN_SCALE
:
4063 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4066 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4068 case GL_INDEX_CLEAR_VALUE
:
4069 params
[0] = ctx
->Color
.ClearIndex
;
4072 params
[0] = BOOLEAN_TO_INT(!ctx
->DrawBuffer
->Visual
.rgbMode
);
4074 case GL_INDEX_OFFSET
:
4075 params
[0] = ctx
->Pixel
.IndexOffset
;
4077 case GL_INDEX_SHIFT
:
4078 params
[0] = ctx
->Pixel
.IndexShift
;
4080 case GL_INDEX_WRITEMASK
:
4081 params
[0] = ctx
->Color
.IndexMask
;
4084 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4087 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4090 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4093 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4096 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4099 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4102 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4105 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4108 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4110 case GL_LIGHT_MODEL_AMBIENT
:
4111 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4112 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4113 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4114 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4116 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4117 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4119 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4120 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4122 case GL_LIGHT_MODEL_TWO_SIDE
:
4123 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4125 case GL_LINE_SMOOTH
:
4126 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4128 case GL_LINE_SMOOTH_HINT
:
4129 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4131 case GL_LINE_STIPPLE
:
4132 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4134 case GL_LINE_STIPPLE_PATTERN
:
4135 params
[0] = ctx
->Line
.StipplePattern
;
4137 case GL_LINE_STIPPLE_REPEAT
:
4138 params
[0] = ctx
->Line
.StippleFactor
;
4141 params
[0] = IROUND(ctx
->Line
.Width
);
4143 case GL_LINE_WIDTH_GRANULARITY
:
4144 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4146 case GL_LINE_WIDTH_RANGE
:
4147 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4148 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4150 case GL_ALIASED_LINE_WIDTH_RANGE
:
4151 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4152 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4155 params
[0] = ctx
->List
.ListBase
;
4158 params
[0] = ctx
->ListState
.CurrentListNum
;
4163 if (!ctx
->CompileFlag
)
4165 else if (ctx
->ExecuteFlag
)
4166 mode
= GL_COMPILE_AND_EXECUTE
;
4169 params
[0] = ENUM_TO_INT(mode
);
4172 case GL_INDEX_LOGIC_OP
:
4173 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4175 case GL_COLOR_LOGIC_OP
:
4176 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4178 case GL_LOGIC_OP_MODE
:
4179 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4181 case GL_MAP1_COLOR_4
:
4182 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4184 case GL_MAP1_GRID_DOMAIN
:
4185 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4186 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4188 case GL_MAP1_GRID_SEGMENTS
:
4189 params
[0] = ctx
->Eval
.MapGrid1un
;
4192 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4194 case GL_MAP1_NORMAL
:
4195 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4197 case GL_MAP1_TEXTURE_COORD_1
:
4198 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4200 case GL_MAP1_TEXTURE_COORD_2
:
4201 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4203 case GL_MAP1_TEXTURE_COORD_3
:
4204 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4206 case GL_MAP1_TEXTURE_COORD_4
:
4207 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4209 case GL_MAP1_VERTEX_3
:
4210 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4212 case GL_MAP1_VERTEX_4
:
4213 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4215 case GL_MAP2_COLOR_4
:
4216 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4218 case GL_MAP2_GRID_DOMAIN
:
4219 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4220 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4221 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4222 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4224 case GL_MAP2_GRID_SEGMENTS
:
4225 params
[0] = ctx
->Eval
.MapGrid2un
;
4226 params
[1] = ctx
->Eval
.MapGrid2vn
;
4229 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4231 case GL_MAP2_NORMAL
:
4232 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4234 case GL_MAP2_TEXTURE_COORD_1
:
4235 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4237 case GL_MAP2_TEXTURE_COORD_2
:
4238 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4240 case GL_MAP2_TEXTURE_COORD_3
:
4241 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4243 case GL_MAP2_TEXTURE_COORD_4
:
4244 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4246 case GL_MAP2_VERTEX_3
:
4247 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4249 case GL_MAP2_VERTEX_4
:
4250 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4253 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4255 case GL_MAP_STENCIL
:
4256 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4258 case GL_MATRIX_MODE
:
4259 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4261 case GL_MAX_ATTRIB_STACK_DEPTH
:
4262 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4264 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4265 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4267 case GL_MAX_CLIP_PLANES
:
4268 params
[0] = ctx
->Const
.MaxClipPlanes
;
4270 case GL_MAX_ELEMENTS_VERTICES
:
4271 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4273 case GL_MAX_ELEMENTS_INDICES
:
4274 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4276 case GL_MAX_EVAL_ORDER
:
4277 params
[0] = MAX_EVAL_ORDER
;
4280 params
[0] = ctx
->Const
.MaxLights
;
4282 case GL_MAX_LIST_NESTING
:
4283 params
[0] = MAX_LIST_NESTING
;
4285 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4286 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4288 case GL_MAX_NAME_STACK_DEPTH
:
4289 params
[0] = MAX_NAME_STACK_DEPTH
;
4291 case GL_MAX_PIXEL_MAP_TABLE
:
4292 params
[0] = MAX_PIXEL_MAP_TABLE
;
4294 case GL_MAX_PROJECTION_STACK_DEPTH
:
4295 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4297 case GL_MAX_TEXTURE_SIZE
:
4298 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4300 case GL_MAX_3D_TEXTURE_SIZE
:
4301 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4303 case GL_MAX_TEXTURE_STACK_DEPTH
:
4304 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4306 case GL_MAX_VIEWPORT_DIMS
:
4307 params
[0] = ctx
->Const
.MaxViewportWidth
;
4308 params
[1] = ctx
->Const
.MaxViewportHeight
;
4310 case GL_MODELVIEW_MATRIX
:
4312 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4313 params
[0] = IROUND(matrix
[0]);
4314 params
[1] = IROUND(matrix
[1]);
4315 params
[2] = IROUND(matrix
[2]);
4316 params
[3] = IROUND(matrix
[3]);
4317 params
[4] = IROUND(matrix
[4]);
4318 params
[5] = IROUND(matrix
[5]);
4319 params
[6] = IROUND(matrix
[6]);
4320 params
[7] = IROUND(matrix
[7]);
4321 params
[8] = IROUND(matrix
[8]);
4322 params
[9] = IROUND(matrix
[9]);
4323 params
[10] = IROUND(matrix
[10]);
4324 params
[11] = IROUND(matrix
[11]);
4325 params
[12] = IROUND(matrix
[12]);
4326 params
[13] = IROUND(matrix
[13]);
4327 params
[14] = IROUND(matrix
[14]);
4328 params
[15] = IROUND(matrix
[15]);
4331 case GL_MODELVIEW_STACK_DEPTH
:
4332 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4334 case GL_NAME_STACK_DEPTH
:
4335 params
[0] = ctx
->Select
.NameStackDepth
;
4338 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4340 case GL_PACK_ALIGNMENT
:
4341 params
[0] = ctx
->Pack
.Alignment
;
4343 case GL_PACK_LSB_FIRST
:
4344 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4346 case GL_PACK_ROW_LENGTH
:
4347 params
[0] = ctx
->Pack
.RowLength
;
4349 case GL_PACK_SKIP_PIXELS
:
4350 params
[0] = ctx
->Pack
.SkipPixels
;
4352 case GL_PACK_SKIP_ROWS
:
4353 params
[0] = ctx
->Pack
.SkipRows
;
4355 case GL_PACK_SWAP_BYTES
:
4356 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4358 case GL_PACK_SKIP_IMAGES_EXT
:
4359 params
[0] = ctx
->Pack
.SkipImages
;
4361 case GL_PACK_IMAGE_HEIGHT_EXT
:
4362 params
[0] = ctx
->Pack
.ImageHeight
;
4364 case GL_PACK_INVERT_MESA
:
4365 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4367 case GL_PERSPECTIVE_CORRECTION_HINT
:
4368 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4370 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4371 params
[0] = ctx
->Pixel
.MapAtoAsize
;
4373 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4374 params
[0] = ctx
->Pixel
.MapBtoBsize
;
4376 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4377 params
[0] = ctx
->Pixel
.MapGtoGsize
;
4379 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4380 params
[0] = ctx
->Pixel
.MapItoAsize
;
4382 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4383 params
[0] = ctx
->Pixel
.MapItoBsize
;
4385 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4386 params
[0] = ctx
->Pixel
.MapItoGsize
;
4388 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4389 params
[0] = ctx
->Pixel
.MapItoIsize
;
4391 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4392 params
[0] = ctx
->Pixel
.MapItoRsize
;
4394 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4395 params
[0] = ctx
->Pixel
.MapRtoRsize
;
4397 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4398 params
[0] = ctx
->Pixel
.MapStoSsize
;
4401 params
[0] = IROUND(ctx
->Point
.Size
);
4403 case GL_POINT_SIZE_GRANULARITY
:
4404 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4406 case GL_POINT_SIZE_RANGE
:
4407 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4408 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4410 case GL_ALIASED_POINT_SIZE_RANGE
:
4411 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4412 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4414 case GL_POINT_SMOOTH
:
4415 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4417 case GL_POINT_SMOOTH_HINT
:
4418 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4420 case GL_POINT_SIZE_MIN_EXT
:
4421 params
[0] = IROUND(ctx
->Point
.MinSize
);
4423 case GL_POINT_SIZE_MAX_EXT
:
4424 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4426 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4427 params
[0] = IROUND(ctx
->Point
.Threshold
);
4429 case GL_DISTANCE_ATTENUATION_EXT
:
4430 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4431 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4432 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4434 case GL_POLYGON_MODE
:
4435 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4436 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4438 case GL_POLYGON_OFFSET_BIAS_EXT
:
4439 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4441 case GL_POLYGON_OFFSET_FACTOR
:
4442 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4444 case GL_POLYGON_OFFSET_UNITS
:
4445 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4447 case GL_POLYGON_SMOOTH
:
4448 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4450 case GL_POLYGON_SMOOTH_HINT
:
4451 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4453 case GL_POLYGON_STIPPLE
:
4454 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4456 case GL_PROJECTION_MATRIX
:
4458 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4459 params
[0] = IROUND(matrix
[0]);
4460 params
[1] = IROUND(matrix
[1]);
4461 params
[2] = IROUND(matrix
[2]);
4462 params
[3] = IROUND(matrix
[3]);
4463 params
[4] = IROUND(matrix
[4]);
4464 params
[5] = IROUND(matrix
[5]);
4465 params
[6] = IROUND(matrix
[6]);
4466 params
[7] = IROUND(matrix
[7]);
4467 params
[8] = IROUND(matrix
[8]);
4468 params
[9] = IROUND(matrix
[9]);
4469 params
[10] = IROUND(matrix
[10]);
4470 params
[11] = IROUND(matrix
[11]);
4471 params
[12] = IROUND(matrix
[12]);
4472 params
[13] = IROUND(matrix
[13]);
4473 params
[14] = IROUND(matrix
[14]);
4474 params
[15] = IROUND(matrix
[15]);
4477 case GL_PROJECTION_STACK_DEPTH
:
4478 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4480 case GL_READ_BUFFER
:
4481 params
[0] = ENUM_TO_INT(ctx
->Pixel
.ReadBuffer
);
4484 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4487 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4490 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4492 case GL_RENDER_MODE
:
4493 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4495 case GL_RESCALE_NORMAL
:
4496 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4499 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.rgbMode
);
4501 case GL_SCISSOR_BOX
:
4502 params
[0] = ctx
->Scissor
.X
;
4503 params
[1] = ctx
->Scissor
.Y
;
4504 params
[2] = ctx
->Scissor
.Width
;
4505 params
[3] = ctx
->Scissor
.Height
;
4507 case GL_SCISSOR_TEST
:
4508 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4510 case GL_SELECTION_BUFFER_SIZE
:
4511 params
[0] = ctx
->Select
.BufferSize
;
4513 case GL_SHADE_MODEL
:
4514 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4516 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4517 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4519 case GL_STENCIL_BITS
:
4520 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4522 case GL_STENCIL_CLEAR_VALUE
:
4523 params
[0] = ctx
->Stencil
.Clear
;
4525 case GL_STENCIL_FAIL
:
4526 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4528 case GL_STENCIL_FUNC
:
4529 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4531 case GL_STENCIL_PASS_DEPTH_FAIL
:
4532 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4534 case GL_STENCIL_PASS_DEPTH_PASS
:
4535 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4537 case GL_STENCIL_REF
:
4538 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4540 case GL_STENCIL_TEST
:
4541 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4543 case GL_STENCIL_VALUE_MASK
:
4544 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4546 case GL_STENCIL_WRITEMASK
:
4547 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4550 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4552 case GL_SUBPIXEL_BITS
:
4553 params
[0] = ctx
->Const
.SubPixelBits
;
4556 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4559 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4562 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4564 case GL_TEXTURE_BINDING_1D
:
4565 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current1D
->Name
;
4567 case GL_TEXTURE_BINDING_2D
:
4568 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current2D
->Name
;
4570 case GL_TEXTURE_BINDING_3D
:
4571 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].Current3D
->Name
;
4573 case GL_TEXTURE_ENV_COLOR
:
4575 const GLfloat
*color
= ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvColor
;
4576 params
[0] = FLOAT_TO_INT(color
[0]);
4577 params
[1] = FLOAT_TO_INT(color
[1]);
4578 params
[2] = FLOAT_TO_INT(color
[2]);
4579 params
[3] = FLOAT_TO_INT(color
[3]);
4582 case GL_TEXTURE_ENV_MODE
:
4583 params
[0] = ENUM_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].EnvMode
);
4585 case GL_TEXTURE_GEN_S
:
4586 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4588 case GL_TEXTURE_GEN_T
:
4589 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4591 case GL_TEXTURE_GEN_R
:
4592 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4594 case GL_TEXTURE_GEN_Q
:
4595 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4597 case GL_TEXTURE_MATRIX
:
4599 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4600 params
[0] = IROUND(matrix
[0]);
4601 params
[1] = IROUND(matrix
[1]);
4602 params
[2] = IROUND(matrix
[2]);
4603 params
[3] = IROUND(matrix
[3]);
4604 params
[4] = IROUND(matrix
[4]);
4605 params
[5] = IROUND(matrix
[5]);
4606 params
[6] = IROUND(matrix
[6]);
4607 params
[7] = IROUND(matrix
[7]);
4608 params
[8] = IROUND(matrix
[8]);
4609 params
[9] = IROUND(matrix
[9]);
4610 params
[10] = IROUND(matrix
[10]);
4611 params
[11] = IROUND(matrix
[11]);
4612 params
[12] = IROUND(matrix
[12]);
4613 params
[13] = IROUND(matrix
[13]);
4614 params
[14] = IROUND(matrix
[14]);
4615 params
[15] = IROUND(matrix
[15]);
4618 case GL_TEXTURE_STACK_DEPTH
:
4619 params
[0] = ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Depth
+ 1;
4621 case GL_UNPACK_ALIGNMENT
:
4622 params
[0] = ctx
->Unpack
.Alignment
;
4624 case GL_UNPACK_LSB_FIRST
:
4625 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4627 case GL_UNPACK_ROW_LENGTH
:
4628 params
[0] = ctx
->Unpack
.RowLength
;
4630 case GL_UNPACK_SKIP_PIXELS
:
4631 params
[0] = ctx
->Unpack
.SkipPixels
;
4633 case GL_UNPACK_SKIP_ROWS
:
4634 params
[0] = ctx
->Unpack
.SkipRows
;
4636 case GL_UNPACK_SWAP_BYTES
:
4637 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4639 case GL_UNPACK_SKIP_IMAGES_EXT
:
4640 params
[0] = ctx
->Unpack
.SkipImages
;
4642 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4643 params
[0] = ctx
->Unpack
.ImageHeight
;
4645 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4646 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4649 params
[0] = ctx
->Viewport
.X
;
4650 params
[1] = ctx
->Viewport
.Y
;
4651 params
[2] = ctx
->Viewport
.Width
;
4652 params
[3] = ctx
->Viewport
.Height
;
4655 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4658 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4660 case GL_VERTEX_ARRAY
:
4661 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Vertex
.Enabled
);
4663 case GL_VERTEX_ARRAY_SIZE
:
4664 params
[0] = ctx
->Array
.Vertex
.Size
;
4666 case GL_VERTEX_ARRAY_TYPE
:
4667 params
[0] = ENUM_TO_INT(ctx
->Array
.Vertex
.Type
);
4669 case GL_VERTEX_ARRAY_STRIDE
:
4670 params
[0] = ctx
->Array
.Vertex
.Stride
;
4672 case GL_VERTEX_ARRAY_COUNT_EXT
:
4675 case GL_NORMAL_ARRAY
:
4676 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Enabled
);
4678 case GL_NORMAL_ARRAY_TYPE
:
4679 params
[0] = ENUM_TO_INT(ctx
->Array
.Normal
.Type
);
4681 case GL_NORMAL_ARRAY_STRIDE
:
4682 params
[0] = ctx
->Array
.Normal
.Stride
;
4684 case GL_NORMAL_ARRAY_COUNT_EXT
:
4687 case GL_COLOR_ARRAY
:
4688 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Color
.Enabled
);
4690 case GL_COLOR_ARRAY_SIZE
:
4691 params
[0] = ctx
->Array
.Color
.Size
;
4693 case GL_COLOR_ARRAY_TYPE
:
4694 params
[0] = ENUM_TO_INT(ctx
->Array
.Color
.Type
);
4696 case GL_COLOR_ARRAY_STRIDE
:
4697 params
[0] = ctx
->Array
.Color
.Stride
;
4699 case GL_COLOR_ARRAY_COUNT_EXT
:
4702 case GL_INDEX_ARRAY
:
4703 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.Index
.Enabled
);
4705 case GL_INDEX_ARRAY_TYPE
:
4706 params
[0] = ENUM_TO_INT(ctx
->Array
.Index
.Type
);
4708 case GL_INDEX_ARRAY_STRIDE
:
4709 params
[0] = ctx
->Array
.Index
.Stride
;
4711 case GL_INDEX_ARRAY_COUNT_EXT
:
4714 case GL_TEXTURE_COORD_ARRAY
:
4715 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4717 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4718 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4720 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4721 params
[0] = ENUM_TO_INT(ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4723 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4724 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4726 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4729 case GL_EDGE_FLAG_ARRAY
:
4730 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.EdgeFlag
.Enabled
);
4732 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4733 params
[0] = ctx
->Array
.EdgeFlag
.Stride
;
4735 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4738 case GL_MAX_TEXTURE_UNITS_ARB
:
4739 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4740 params
[0] = MIN2(ctx
->Const
.MaxTextureImageUnits
, ctx
->Const
.MaxTextureCoordUnits
);
4742 case GL_ACTIVE_TEXTURE_ARB
:
4743 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4744 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4746 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4747 CHECK_EXTENSION_I(ARB_multitexture
, pname
);
4748 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4750 case GL_TEXTURE_CUBE_MAP_ARB
:
4751 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4752 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4754 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4755 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4756 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentCubeMap
->Name
;
4758 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4759 CHECK_EXTENSION_I(ARB_texture_cube_map
, pname
);
4760 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4762 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4763 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4764 params
[0] = ctx
->Hint
.TextureCompression
;
4766 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4767 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4768 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
);
4770 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4771 CHECK_EXTENSION_I(ARB_texture_compression
, pname
);
4774 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
);
4776 for (i
= 0; i
< n
; i
++)
4777 params
[i
] = ENUM_TO_INT(formats
[i
]);
4780 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4781 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4782 params
[0] = ctx
->Array
.LockFirst
;
4784 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4785 CHECK_EXTENSION_I(EXT_compiled_vertex_array
, pname
);
4786 params
[0] = ctx
->Array
.LockCount
;
4788 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4790 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4791 params
[0] = IROUND(matrix
[0]);
4792 params
[1] = IROUND(matrix
[4]);
4793 params
[2] = IROUND(matrix
[8]);
4794 params
[3] = IROUND(matrix
[12]);
4795 params
[4] = IROUND(matrix
[1]);
4796 params
[5] = IROUND(matrix
[5]);
4797 params
[6] = IROUND(matrix
[9]);
4798 params
[7] = IROUND(matrix
[13]);
4799 params
[8] = IROUND(matrix
[2]);
4800 params
[9] = IROUND(matrix
[6]);
4801 params
[10] = IROUND(matrix
[10]);
4802 params
[11] = IROUND(matrix
[14]);
4803 params
[12] = IROUND(matrix
[3]);
4804 params
[13] = IROUND(matrix
[7]);
4805 params
[14] = IROUND(matrix
[11]);
4806 params
[15] = IROUND(matrix
[15]);
4809 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4811 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4812 params
[0] = IROUND(matrix
[0]);
4813 params
[1] = IROUND(matrix
[4]);
4814 params
[2] = IROUND(matrix
[8]);
4815 params
[3] = IROUND(matrix
[12]);
4816 params
[4] = IROUND(matrix
[1]);
4817 params
[5] = IROUND(matrix
[5]);
4818 params
[6] = IROUND(matrix
[9]);
4819 params
[7] = IROUND(matrix
[13]);
4820 params
[8] = IROUND(matrix
[2]);
4821 params
[9] = IROUND(matrix
[6]);
4822 params
[10] = IROUND(matrix
[10]);
4823 params
[11] = IROUND(matrix
[14]);
4824 params
[12] = IROUND(matrix
[3]);
4825 params
[13] = IROUND(matrix
[7]);
4826 params
[14] = IROUND(matrix
[11]);
4827 params
[15] = IROUND(matrix
[15]);
4830 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4832 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4833 params
[0] = IROUND(matrix
[0]);
4834 params
[1] = IROUND(matrix
[4]);
4835 params
[2] = IROUND(matrix
[8]);
4836 params
[3] = IROUND(matrix
[12]);
4837 params
[4] = IROUND(matrix
[1]);
4838 params
[5] = IROUND(matrix
[5]);
4839 params
[6] = IROUND(matrix
[9]);
4840 params
[7] = IROUND(matrix
[13]);
4841 params
[8] = IROUND(matrix
[2]);
4842 params
[9] = IROUND(matrix
[6]);
4843 params
[10] = IROUND(matrix
[10]);
4844 params
[11] = IROUND(matrix
[14]);
4845 params
[12] = IROUND(matrix
[3]);
4846 params
[13] = IROUND(matrix
[7]);
4847 params
[14] = IROUND(matrix
[11]);
4848 params
[15] = IROUND(matrix
[15]);
4851 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4853 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4854 params
[0] = IROUND(matrix
[0]);
4855 params
[1] = IROUND(matrix
[4]);
4856 params
[2] = IROUND(matrix
[8]);
4857 params
[3] = IROUND(matrix
[12]);
4858 params
[4] = IROUND(matrix
[1]);
4859 params
[5] = IROUND(matrix
[5]);
4860 params
[6] = IROUND(matrix
[9]);
4861 params
[7] = IROUND(matrix
[13]);
4862 params
[8] = IROUND(matrix
[2]);
4863 params
[9] = IROUND(matrix
[6]);
4864 params
[10] = IROUND(matrix
[10]);
4865 params
[11] = IROUND(matrix
[14]);
4866 params
[12] = IROUND(matrix
[3]);
4867 params
[13] = IROUND(matrix
[7]);
4868 params
[14] = IROUND(matrix
[11]);
4869 params
[15] = IROUND(matrix
[15]);
4872 case GL_OCCLUSION_TEST_HP
:
4873 CHECK_EXTENSION_I(HP_occlusion_test
, pname
);
4874 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.OcclusionTest
);
4876 case GL_OCCLUSION_TEST_RESULT_HP
:
4877 CHECK_EXTENSION_I(HP_occlusion_test
, pname
);
4879 FLUSH_VERTICES(ctx
, _NEW_DEPTH
);
4880 if (ctx
->Depth
.OcclusionTest
)
4881 params
[0] = ctx
->OcclusionResult
;
4883 params
[0] = ctx
->OcclusionResultSaved
;
4884 /* reset flag now */
4885 ctx
->OcclusionResult
= GL_FALSE
;
4886 ctx
->OcclusionResultSaved
= GL_FALSE
;
4890 case GL_PIXEL_TEXTURE_SGIS
:
4891 CHECK_EXTENSION_I(SGIS_pixel_texture
, pname
);
4892 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PixelTextureEnabled
);
4894 case GL_PIXEL_TEX_GEN_SGIX
:
4895 CHECK_EXTENSION_I(SGIX_pixel_texture
, pname
);
4896 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PixelTextureEnabled
);
4898 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
4899 CHECK_EXTENSION_I(SGIX_pixel_texture
, pname
);
4900 params
[0] = ENUM_TO_INT(pixel_texgen_mode(ctx
));
4902 case GL_COLOR_MATRIX_SGI
:
4904 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4905 params
[0] = IROUND(matrix
[0]);
4906 params
[1] = IROUND(matrix
[1]);
4907 params
[2] = IROUND(matrix
[2]);
4908 params
[3] = IROUND(matrix
[3]);
4909 params
[4] = IROUND(matrix
[4]);
4910 params
[5] = IROUND(matrix
[5]);
4911 params
[6] = IROUND(matrix
[6]);
4912 params
[7] = IROUND(matrix
[7]);
4913 params
[8] = IROUND(matrix
[8]);
4914 params
[9] = IROUND(matrix
[9]);
4915 params
[10] = IROUND(matrix
[10]);
4916 params
[11] = IROUND(matrix
[11]);
4917 params
[12] = IROUND(matrix
[12]);
4918 params
[13] = IROUND(matrix
[13]);
4919 params
[14] = IROUND(matrix
[14]);
4920 params
[15] = IROUND(matrix
[15]);
4923 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4924 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4926 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4927 params
[0] = MAX_COLOR_STACK_DEPTH
;
4929 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4930 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4932 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4933 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4935 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4936 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4938 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4939 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4941 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4942 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4944 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4945 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
4947 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4948 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
4950 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4951 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
4953 case GL_CONVOLUTION_1D_EXT
:
4954 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4955 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
4957 case GL_CONVOLUTION_2D_EXT
:
4958 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4959 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
4961 case GL_SEPARABLE_2D_EXT
:
4962 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4963 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
4965 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4966 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4967 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
4969 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4970 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4971 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
4973 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4974 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4975 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
4977 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4978 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4979 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
4981 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4982 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4983 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
4985 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4986 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4987 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
4989 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4990 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4991 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
4993 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4994 CHECK_EXTENSION_I(EXT_convolution
, pname
);
4995 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
4998 CHECK_EXTENSION_I(EXT_histogram
, pname
);
4999 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
5002 CHECK_EXTENSION_I(EXT_histogram
, pname
);
5003 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
5005 case GL_COLOR_TABLE_SGI
:
5006 CHECK_EXTENSION_I(SGI_color_table
, pname
);
5007 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
);
5009 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
5010 CHECK_EXTENSION_I(SGI_color_table
, pname
);
5011 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostConvolutionColorTableEnabled
);
5013 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
5014 CHECK_EXTENSION_I(SGI_color_table
, pname
);
5015 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.PostColorMatrixColorTableEnabled
);
5017 case GL_TEXTURE_COLOR_TABLE_SGI
:
5018 CHECK_EXTENSION_I(SGI_texture_color_table
, pname
);
5019 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
5021 case GL_COLOR_SUM_EXT
:
5022 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5023 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
5025 case GL_CURRENT_SECONDARY_COLOR_EXT
:
5026 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5028 FLUSH_CURRENT(ctx
, 0);
5029 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
5030 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
5031 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
5032 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
5035 case GL_SECONDARY_COLOR_ARRAY_EXT
:
5036 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5037 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.SecondaryColor
.Enabled
);
5039 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
5040 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5041 params
[0] = ENUM_TO_INT(ctx
->Array
.SecondaryColor
.Type
);
5043 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
5044 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5045 params
[0] = ctx
->Array
.SecondaryColor
.Stride
;
5047 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
5048 CHECK_EXTENSION_I(EXT_secondary_color
, pname
);
5049 params
[0] = ctx
->Array
.SecondaryColor
.Size
;
5051 case GL_CURRENT_FOG_COORDINATE_EXT
:
5052 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5054 FLUSH_CURRENT(ctx
, 0);
5055 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5058 case GL_FOG_COORDINATE_ARRAY_EXT
:
5059 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5060 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.FogCoord
.Enabled
);
5062 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5063 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5064 params
[0] = ENUM_TO_INT(ctx
->Array
.FogCoord
.Type
);
5066 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5067 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5068 params
[0] = ctx
->Array
.FogCoord
.Stride
;
5070 case GL_FOG_COORDINATE_SOURCE_EXT
:
5071 CHECK_EXTENSION_I(EXT_fog_coord
, pname
);
5072 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5074 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5075 CHECK_EXTENSION_I(EXT_texture_lod_bias
, pname
);
5076 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5078 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5079 CHECK_EXTENSION_I(EXT_texture_filter_anisotropic
, pname
);
5080 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5082 case GL_MULTISAMPLE_ARB
:
5083 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5084 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5086 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5087 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5088 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5090 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5091 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5092 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5094 case GL_SAMPLE_COVERAGE_ARB
:
5095 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5096 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5098 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5099 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5100 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5102 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5103 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5104 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5106 case GL_SAMPLE_BUFFERS_ARB
:
5107 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5108 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5110 case GL_SAMPLES_ARB
:
5111 CHECK_EXTENSION_I(ARB_multisample
, pname
);
5112 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5114 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5115 CHECK_EXTENSION_I(IBM_rasterpos_clip
, pname
);
5116 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5118 case GL_POINT_SPRITE_NV
:
5119 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5120 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5122 case GL_POINT_SPRITE_R_MODE_NV
:
5123 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5124 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5126 case GL_POINT_SPRITE_COORD_ORIGIN
:
5127 CHECK_EXTENSION_I(NV_point_sprite
, pname
);
5128 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5130 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5131 CHECK_EXTENSION_I(SGIS_generate_mipmap
, pname
);
5132 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5134 case GL_VERTEX_PROGRAM_NV
:
5135 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5136 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5138 case GL_VERTEX_PROGRAM_POINT_SIZE_NV
:
5139 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5140 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5142 case GL_VERTEX_PROGRAM_TWO_SIDE_NV
:
5143 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5144 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5146 case GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
:
5147 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5148 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5150 case GL_MAX_TRACK_MATRICES_NV
:
5151 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5152 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5154 case GL_CURRENT_MATRIX_STACK_DEPTH_NV
:
5155 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5156 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5158 case GL_CURRENT_MATRIX_NV
:
5159 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5161 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5162 params
[0] = IROUND(matrix
[0]);
5163 params
[1] = IROUND(matrix
[1]);
5164 params
[2] = IROUND(matrix
[2]);
5165 params
[3] = IROUND(matrix
[3]);
5166 params
[4] = IROUND(matrix
[4]);
5167 params
[5] = IROUND(matrix
[5]);
5168 params
[6] = IROUND(matrix
[6]);
5169 params
[7] = IROUND(matrix
[7]);
5170 params
[8] = IROUND(matrix
[8]);
5171 params
[9] = IROUND(matrix
[9]);
5172 params
[10] = IROUND(matrix
[10]);
5173 params
[11] = IROUND(matrix
[11]);
5174 params
[12] = IROUND(matrix
[12]);
5175 params
[13] = IROUND(matrix
[13]);
5176 params
[14] = IROUND(matrix
[14]);
5177 params
[15] = IROUND(matrix
[15]);
5180 case GL_VERTEX_PROGRAM_BINDING_NV
:
5181 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5182 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5184 case GL_PROGRAM_ERROR_POSITION_NV
:
5185 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5186 params
[0] = ctx
->Program
.ErrorPos
;
5188 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5189 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5190 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[0].Enabled
);
5192 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5193 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5194 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[1].Enabled
);
5196 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5197 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5198 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[2].Enabled
);
5200 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5201 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5202 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[3].Enabled
);
5204 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5205 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5206 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[4].Enabled
);
5208 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5209 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5210 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[5].Enabled
);
5212 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5213 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5214 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[6].Enabled
);
5216 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5217 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5218 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[7].Enabled
);
5220 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5221 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5222 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[8].Enabled
);
5224 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5225 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5226 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[9].Enabled
);
5228 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5229 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5230 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[10].Enabled
);
5232 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5233 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5234 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[11].Enabled
);
5236 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5237 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5238 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[12].Enabled
);
5240 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5241 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5242 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[13].Enabled
);
5244 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5245 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5246 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[14].Enabled
);
5248 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5249 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5250 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.VertexAttrib
[15].Enabled
);
5252 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5253 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5254 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5256 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5257 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5258 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5260 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5261 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5262 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5264 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5265 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5266 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5268 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5269 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5270 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5272 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5273 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5274 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5276 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5277 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5278 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5280 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5281 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5282 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5284 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5285 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5286 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5288 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5289 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5290 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5292 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5293 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5294 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5296 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5297 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5298 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5300 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5301 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5302 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5304 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5305 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5306 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5308 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5309 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5310 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5312 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5313 CHECK_EXTENSION_I(NV_vertex_program
, pname
);
5314 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5316 case GL_FRAGMENT_PROGRAM_NV
:
5317 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5318 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5320 case GL_MAX_TEXTURE_COORDS_NV
:
5321 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5322 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5324 case GL_MAX_TEXTURE_IMAGE_UNITS_NV
:
5325 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5326 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5328 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5329 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5330 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5332 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5333 CHECK_EXTENSION_I(NV_fragment_program
, pname
);
5334 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5336 case GL_TEXTURE_RECTANGLE_NV
:
5337 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5338 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5340 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5341 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5342 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentRect
->Name
;
5344 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5345 CHECK_EXTENSION_I(NV_texture_rectangle
, pname
);
5346 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5348 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5349 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5350 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5352 case GL_ACTIVE_STENCIL_FACE_EXT
:
5353 CHECK_EXTENSION_I(EXT_stencil_two_side
, pname
);
5354 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5356 case GL_MAX_SHININESS_NV
:
5357 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5358 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5360 case GL_MAX_SPOT_EXPONENT_NV
:
5361 CHECK_EXTENSION_I(NV_light_max_exponent
, pname
);
5362 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5364 case GL_ARRAY_BUFFER_BINDING_ARB
:
5365 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5366 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5368 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5369 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5370 params
[0] = ctx
->Array
.Vertex
.BufferObj
->Name
;
5372 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5373 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5374 params
[0] = ctx
->Array
.Normal
.BufferObj
->Name
;
5376 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5377 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5378 params
[0] = ctx
->Array
.Color
.BufferObj
->Name
;
5380 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5381 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5382 params
[0] = ctx
->Array
.Index
.BufferObj
->Name
;
5384 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5385 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5386 params
[0] = ctx
->Array
.TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5388 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5389 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5390 params
[0] = ctx
->Array
.EdgeFlag
.BufferObj
->Name
;
5392 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5393 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5394 params
[0] = ctx
->Array
.SecondaryColor
.BufferObj
->Name
;
5396 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5397 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5398 params
[0] = ctx
->Array
.FogCoord
.BufferObj
->Name
;
5400 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5401 CHECK_EXTENSION_I(ARB_vertex_buffer_object
, pname
);
5402 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5404 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5405 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5406 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5408 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5409 CHECK_EXTENSION_I(EXT_pixel_buffer_object
, pname
);
5410 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5412 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5413 CHECK_EXTENSION_I(ARB_vertex_program
, pname
);
5414 params
[0] = ctx
->Const
.MaxVertexProgramAttribs
;
5416 case GL_FRAGMENT_PROGRAM_ARB
:
5417 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5418 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5420 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5421 CHECK_EXTENSION_I(ARB_fragment_program
, pname
);
5423 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5424 params
[0] = IROUND(matrix
[0]);
5425 params
[1] = IROUND(matrix
[4]);
5426 params
[2] = IROUND(matrix
[8]);
5427 params
[3] = IROUND(matrix
[12]);
5428 params
[4] = IROUND(matrix
[1]);
5429 params
[5] = IROUND(matrix
[5]);
5430 params
[6] = IROUND(matrix
[9]);
5431 params
[7] = IROUND(matrix
[13]);
5432 params
[8] = IROUND(matrix
[2]);
5433 params
[9] = IROUND(matrix
[6]);
5434 params
[10] = IROUND(matrix
[10]);
5435 params
[11] = IROUND(matrix
[14]);
5436 params
[12] = IROUND(matrix
[3]);
5437 params
[13] = IROUND(matrix
[7]);
5438 params
[14] = IROUND(matrix
[11]);
5439 params
[15] = IROUND(matrix
[15]);
5442 case GL_DEPTH_BOUNDS_TEST_EXT
:
5443 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5444 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5446 case GL_DEPTH_BOUNDS_EXT
:
5447 CHECK_EXTENSION_I(EXT_depth_bounds_test
, pname
);
5448 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5449 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5451 case GL_FRAGMENT_PROGRAM_CALLBACK_MESA
:
5452 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5453 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.CallbackEnabled
);
5455 case GL_VERTEX_PROGRAM_CALLBACK_MESA
:
5456 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5457 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.CallbackEnabled
);
5459 case GL_FRAGMENT_PROGRAM_POSITION_MESA
:
5460 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5461 params
[0] = ctx
->FragmentProgram
.CurrentPosition
;
5463 case GL_VERTEX_PROGRAM_POSITION_MESA
:
5464 CHECK_EXTENSION_I(MESA_program_debug
, pname
);
5465 params
[0] = ctx
->VertexProgram
.CurrentPosition
;
5467 case GL_MAX_DRAW_BUFFERS_ARB
:
5468 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5469 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5471 case GL_DRAW_BUFFER0_ARB
:
5472 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5473 params
[0] = ENUM_TO_INT(ctx
->Color
.DrawBuffer
[0]);
5475 case GL_DRAW_BUFFER1_ARB
:
5476 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5479 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5480 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5483 buffer
= ctx
->Color
.DrawBuffer
[1];
5484 params
[0] = ENUM_TO_INT(buffer
);
5487 case GL_DRAW_BUFFER2_ARB
:
5488 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5491 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5492 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5495 buffer
= ctx
->Color
.DrawBuffer
[2];
5496 params
[0] = ENUM_TO_INT(buffer
);
5499 case GL_DRAW_BUFFER3_ARB
:
5500 CHECK_EXTENSION_I(ARB_draw_buffers
, pname
);
5503 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5504 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5507 buffer
= ctx
->Color
.DrawBuffer
[3];
5508 params
[0] = ENUM_TO_INT(buffer
);
5511 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5512 CHECK_EXTENSION_I(OES_read_format
, pname
);
5513 params
[0] = ctx
->Const
.ColorReadType
;
5515 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5516 CHECK_EXTENSION_I(OES_read_format
, pname
);
5517 params
[0] = ctx
->Const
.ColorReadFormat
;
5519 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5520 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5523 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5524 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5527 case GL_NUM_PASSES_ATI
:
5528 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5531 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5532 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5535 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5536 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5539 case GL_COLOR_ALPHA_PAIRING_ATI
:
5540 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5541 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5543 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5544 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5547 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5548 CHECK_EXTENSION_I(ATI_fragment_shader
, pname
);
5551 case GL_STENCIL_BACK_FUNC
:
5552 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5554 case GL_STENCIL_BACK_VALUE_MASK
:
5555 params
[0] = ctx
->Stencil
.ValueMask
[1];
5557 case GL_STENCIL_BACK_REF
:
5558 params
[0] = ctx
->Stencil
.Ref
[1];
5560 case GL_STENCIL_BACK_FAIL
:
5561 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5563 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5564 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5566 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5567 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5569 case GL_FRAMEBUFFER_BINDING_EXT
:
5570 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5571 params
[0] = ctx
->DrawBuffer
->Name
;
5573 case GL_RENDERBUFFER_BINDING_EXT
:
5574 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5575 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5577 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5578 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5579 params
[0] = ctx
->Const
.MaxColorAttachments
;
5581 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5582 CHECK_EXTENSION_I(EXT_framebuffer_object
, pname
);
5583 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5585 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5586 CHECK_EXTENSION_I(ARB_fragment_shader
, pname
);
5587 params
[0] = MAX_FRAGMENT_UNIFORM_COMPONENTS
;
5589 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5590 CHECK_EXTENSION_I(ARB_fragment_shader
, pname
);
5591 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5593 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5594 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5595 params
[0] = MAX_VERTEX_UNIFORM_COMPONENTS
;
5597 case GL_MAX_VARYING_FLOATS_ARB
:
5598 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5599 params
[0] = MAX_VARYING_FLOATS
;
5601 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5602 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5603 params
[0] = MAX_VERTEX_TEXTURE_IMAGE_UNITS
;
5605 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5606 CHECK_EXTENSION_I(ARB_vertex_shader
, pname
);
5607 params
[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS
;
5610 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5616 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
5618 const GLfloat magic
= -1234.5F
;
5625 /* Init temp array to magic numbers so we can figure out how many values
5626 * are returned by the GetFloatv() call.
5628 for (i
= 0; i
< 16; i
++)
5631 _mesa_GetFloatv(pname
, values
);
5633 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
5634 params
[i
] = (GLdouble
) values
[i
];