3 *** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
9 #include "extensions.h"
14 #include "texcompress.h"
15 #include "framebuffer.h"
18 #define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
20 #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
22 #define INT64_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
23 #define INT64_TO_INT(I) ( (GLint)((I > INT_MAX) ? INT_MAX : ((I < INT_MIN) ? INT_MIN : (I))) )
25 #define BOOLEAN_TO_INT(B) ( (GLint) (B) )
26 #define BOOLEAN_TO_INT64(B) ( (GLint64) (B) )
27 #define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
29 #define ENUM_TO_INT64(E) ( (GLint64) (E) )
33 * Check if named extension is enabled, if not generate error and return.
35 #define CHECK_EXT1(EXT1, FUNC) \
36 if (!ctx->Extensions.EXT1) { \
37 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
42 * Check if either of two extensions is enabled.
44 #define CHECK_EXT2(EXT1, EXT2, FUNC) \
45 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \
46 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
51 * Check if either of three extensions is enabled.
53 #define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC) \
54 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
55 !ctx->Extensions.EXT3) { \
56 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
61 * Check if either of four extensions is enabled.
63 #define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \
64 if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \
65 !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \
66 _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \
72 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
74 GET_CURRENT_CONTEXT(ctx
);
75 ASSERT_OUTSIDE_BEGIN_END(ctx
);
81 _mesa_update_state(ctx
);
83 if (ctx
->Driver
.GetBooleanv
&&
84 ctx
->Driver
.GetBooleanv(ctx
, pname
, params
))
88 case GL_ACCUM_RED_BITS
:
89 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumRedBits
);
91 case GL_ACCUM_GREEN_BITS
:
92 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
94 case GL_ACCUM_BLUE_BITS
:
95 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
97 case GL_ACCUM_ALPHA_BITS
:
98 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
100 case GL_ACCUM_CLEAR_VALUE
:
101 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[0]);
102 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[1]);
103 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[2]);
104 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Accum
.ClearColor
[3]);
107 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaBias
);
110 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.alphaBits
);
113 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.AlphaScale
);
116 params
[0] = ctx
->Color
.AlphaEnabled
;
118 case GL_ALPHA_TEST_FUNC
:
119 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.AlphaFunc
);
121 case GL_ALPHA_TEST_REF
:
122 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.AlphaRef
);
124 case GL_ATTRIB_STACK_DEPTH
:
125 params
[0] = INT_TO_BOOLEAN(ctx
->AttribStackDepth
);
128 params
[0] = ctx
->Eval
.AutoNormal
;
131 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
134 params
[0] = (ctx
->Color
.BlendEnabled
& 1);
137 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
140 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
142 case GL_BLEND_SRC_RGB_EXT
:
143 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcRGB
);
145 case GL_BLEND_DST_RGB_EXT
:
146 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstRGB
);
148 case GL_BLEND_SRC_ALPHA_EXT
:
149 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendSrcA
);
151 case GL_BLEND_DST_ALPHA_EXT
:
152 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendDstA
);
154 case GL_BLEND_EQUATION
:
155 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationRGB
);
157 case GL_BLEND_EQUATION_ALPHA_EXT
:
158 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.BlendEquationA
);
160 case GL_BLEND_COLOR_EXT
:
161 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[0]);
162 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[1]);
163 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[2]);
164 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.BlendColor
[3]);
167 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueBias
);
170 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.blueBits
);
173 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.BlueScale
);
175 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
176 params
[0] = INT_TO_BOOLEAN(ctx
->ClientAttribStackDepth
);
179 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1;
182 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1;
185 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1;
188 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1;
191 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1;
194 params
[0] = (ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1;
196 case GL_COLOR_CLEAR_VALUE
:
197 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[0]);
198 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[1]);
199 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[2]);
200 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Color
.ClearColor
[3]);
202 case GL_COLOR_MATERIAL
:
203 params
[0] = ctx
->Light
.ColorMaterialEnabled
;
205 case GL_COLOR_MATERIAL_FACE
:
206 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialFace
);
208 case GL_COLOR_MATERIAL_PARAMETER
:
209 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ColorMaterialMode
);
211 case GL_COLOR_WRITEMASK
:
212 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[0][RCOMP
] ? 1 : 0);
213 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[0][GCOMP
] ? 1 : 0);
214 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[0][BCOMP
] ? 1 : 0);
215 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[0][ACOMP
] ? 1 : 0);
218 params
[0] = ctx
->Polygon
.CullFlag
;
220 case GL_CULL_FACE_MODE
:
221 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.CullFaceMode
);
223 case GL_CURRENT_COLOR
:
225 FLUSH_CURRENT(ctx
, 0);
226 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
227 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
228 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
229 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
232 case GL_CURRENT_INDEX
:
234 FLUSH_CURRENT(ctx
, 0);
235 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
238 case GL_CURRENT_NORMAL
:
240 FLUSH_CURRENT(ctx
, 0);
241 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
242 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
243 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
246 case GL_CURRENT_RASTER_COLOR
:
247 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[0]);
248 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[1]);
249 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[2]);
250 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterColor
[3]);
252 case GL_CURRENT_RASTER_DISTANCE
:
253 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterDistance
);
255 case GL_CURRENT_RASTER_INDEX
:
256 params
[0] = FLOAT_TO_BOOLEAN(1.0);
258 case GL_CURRENT_RASTER_POSITION
:
259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[0]);
260 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[1]);
261 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[2]);
262 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterPos
[3]);
264 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
265 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[0]);
266 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[1]);
267 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[2]);
268 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterSecondaryColor
[3]);
270 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
272 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
273 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
274 _mesa_error(ctx
, GL_INVALID_OPERATION
,
275 "glGet(raster tex coords, unit %u)", unit
);
278 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[unit
][0]);
279 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[unit
][1]);
280 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[unit
][2]);
281 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.RasterTexCoords
[unit
][3]);
284 case GL_CURRENT_RASTER_POSITION_VALID
:
285 params
[0] = ctx
->Current
.RasterPosValid
;
287 case GL_CURRENT_TEXTURE_COORDS
:
289 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
290 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
291 _mesa_error(ctx
, GL_INVALID_OPERATION
,
292 "glGet(current tex coords, unit %u)", unit
);
295 FLUSH_CURRENT(ctx
, 0);
296 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][0]);
297 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][1]);
298 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][2]);
299 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][3]);
303 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthBias
);
306 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.depthBits
);
308 case GL_DEPTH_CLEAR_VALUE
:
309 params
[0] = FLOAT_TO_BOOLEAN(((GLfloat
) ctx
->Depth
.Clear
));
312 params
[0] = ENUM_TO_BOOLEAN(ctx
->Depth
.Func
);
315 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Near
);
316 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Viewport
.Far
);
319 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.DepthScale
);
322 params
[0] = ctx
->Depth
.Test
;
324 case GL_DEPTH_WRITEMASK
:
325 params
[0] = ctx
->Depth
.Mask
;
328 params
[0] = ctx
->Color
.DitherFlag
;
330 case GL_DOUBLEBUFFER
:
331 params
[0] = ctx
->DrawBuffer
->Visual
.doubleBufferMode
;
334 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
338 FLUSH_CURRENT(ctx
, 0);
339 params
[0] = (ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0);
342 case GL_FEEDBACK_BUFFER_SIZE
:
343 params
[0] = INT_TO_BOOLEAN(ctx
->Feedback
.BufferSize
);
345 case GL_FEEDBACK_BUFFER_TYPE
:
346 params
[0] = ENUM_TO_BOOLEAN(ctx
->Feedback
.Type
);
349 params
[0] = ctx
->Fog
.Enabled
;
352 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[0]);
353 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[1]);
354 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[2]);
355 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Color
[3]);
358 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Density
);
361 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.End
);
364 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.Fog
);
367 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Index
);
370 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.Mode
);
373 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Fog
.Start
);
376 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontFace
);
379 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenBias
);
382 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.greenBits
);
385 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.GreenScale
);
388 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.indexBits
);
390 case GL_INDEX_CLEAR_VALUE
:
391 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ClearIndex
);
394 params
[0] = GL_FALSE
;
396 case GL_INDEX_OFFSET
:
397 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexOffset
);
400 params
[0] = INT_TO_BOOLEAN(ctx
->Pixel
.IndexShift
);
402 case GL_INDEX_WRITEMASK
:
403 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.IndexMask
);
406 params
[0] = ctx
->Light
.Light
[0].Enabled
;
409 params
[0] = ctx
->Light
.Light
[1].Enabled
;
412 params
[0] = ctx
->Light
.Light
[2].Enabled
;
415 params
[0] = ctx
->Light
.Light
[3].Enabled
;
418 params
[0] = ctx
->Light
.Light
[4].Enabled
;
421 params
[0] = ctx
->Light
.Light
[5].Enabled
;
424 params
[0] = ctx
->Light
.Light
[6].Enabled
;
427 params
[0] = ctx
->Light
.Light
[7].Enabled
;
430 params
[0] = ctx
->Light
.Enabled
;
432 case GL_LIGHT_MODEL_AMBIENT
:
433 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[0]);
434 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[1]);
435 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[2]);
436 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Light
.Model
.Ambient
[3]);
438 case GL_LIGHT_MODEL_COLOR_CONTROL
:
439 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.Model
.ColorControl
);
441 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
442 params
[0] = ctx
->Light
.Model
.LocalViewer
;
444 case GL_LIGHT_MODEL_TWO_SIDE
:
445 params
[0] = ctx
->Light
.Model
.TwoSide
;
448 params
[0] = ctx
->Line
.SmoothFlag
;
450 case GL_LINE_SMOOTH_HINT
:
451 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.LineSmooth
);
453 case GL_LINE_STIPPLE
:
454 params
[0] = ctx
->Line
.StippleFlag
;
456 case GL_LINE_STIPPLE_PATTERN
:
457 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StipplePattern
);
459 case GL_LINE_STIPPLE_REPEAT
:
460 params
[0] = INT_TO_BOOLEAN(ctx
->Line
.StippleFactor
);
463 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Line
.Width
);
465 case GL_LINE_WIDTH_GRANULARITY
:
466 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.LineWidthGranularity
);
468 case GL_LINE_WIDTH_RANGE
:
469 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidthAA
);
470 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidthAA
);
472 case GL_ALIASED_LINE_WIDTH_RANGE
:
473 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinLineWidth
);
474 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxLineWidth
);
477 params
[0] = INT_TO_BOOLEAN(ctx
->List
.ListBase
);
480 params
[0] = INT_TO_BOOLEAN((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
485 if (!ctx
->CompileFlag
)
487 else if (ctx
->ExecuteFlag
)
488 mode
= GL_COMPILE_AND_EXECUTE
;
491 params
[0] = ENUM_TO_BOOLEAN(mode
);
494 case GL_INDEX_LOGIC_OP
:
495 params
[0] = ctx
->Color
.IndexLogicOpEnabled
;
497 case GL_COLOR_LOGIC_OP
:
498 params
[0] = ctx
->Color
.ColorLogicOpEnabled
;
500 case GL_LOGIC_OP_MODE
:
501 params
[0] = ENUM_TO_BOOLEAN(ctx
->Color
.LogicOp
);
503 case GL_MAP1_COLOR_4
:
504 params
[0] = ctx
->Eval
.Map1Color4
;
506 case GL_MAP1_GRID_DOMAIN
:
507 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u1
);
508 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid1u2
);
510 case GL_MAP1_GRID_SEGMENTS
:
511 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid1un
);
514 params
[0] = ctx
->Eval
.Map1Index
;
517 params
[0] = ctx
->Eval
.Map1Normal
;
519 case GL_MAP1_TEXTURE_COORD_1
:
520 params
[0] = ctx
->Eval
.Map1TextureCoord1
;
522 case GL_MAP1_TEXTURE_COORD_2
:
523 params
[0] = ctx
->Eval
.Map1TextureCoord2
;
525 case GL_MAP1_TEXTURE_COORD_3
:
526 params
[0] = ctx
->Eval
.Map1TextureCoord3
;
528 case GL_MAP1_TEXTURE_COORD_4
:
529 params
[0] = ctx
->Eval
.Map1TextureCoord4
;
531 case GL_MAP1_VERTEX_3
:
532 params
[0] = ctx
->Eval
.Map1Vertex3
;
534 case GL_MAP1_VERTEX_4
:
535 params
[0] = ctx
->Eval
.Map1Vertex4
;
537 case GL_MAP2_COLOR_4
:
538 params
[0] = ctx
->Eval
.Map2Color4
;
540 case GL_MAP2_GRID_DOMAIN
:
541 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u1
);
542 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2u2
);
543 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v1
);
544 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Eval
.MapGrid2v2
);
546 case GL_MAP2_GRID_SEGMENTS
:
547 params
[0] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2un
);
548 params
[1] = INT_TO_BOOLEAN(ctx
->Eval
.MapGrid2vn
);
551 params
[0] = ctx
->Eval
.Map2Index
;
554 params
[0] = ctx
->Eval
.Map2Normal
;
556 case GL_MAP2_TEXTURE_COORD_1
:
557 params
[0] = ctx
->Eval
.Map2TextureCoord1
;
559 case GL_MAP2_TEXTURE_COORD_2
:
560 params
[0] = ctx
->Eval
.Map2TextureCoord2
;
562 case GL_MAP2_TEXTURE_COORD_3
:
563 params
[0] = ctx
->Eval
.Map2TextureCoord3
;
565 case GL_MAP2_TEXTURE_COORD_4
:
566 params
[0] = ctx
->Eval
.Map2TextureCoord4
;
568 case GL_MAP2_VERTEX_3
:
569 params
[0] = ctx
->Eval
.Map2Vertex3
;
571 case GL_MAP2_VERTEX_4
:
572 params
[0] = ctx
->Eval
.Map2Vertex4
;
575 params
[0] = ctx
->Pixel
.MapColorFlag
;
578 params
[0] = ctx
->Pixel
.MapStencilFlag
;
581 params
[0] = ENUM_TO_BOOLEAN(ctx
->Transform
.MatrixMode
);
583 case GL_MAX_ATTRIB_STACK_DEPTH
:
584 params
[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH
);
586 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
587 params
[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
589 case GL_MAX_CLIP_PLANES
:
590 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxClipPlanes
);
592 case GL_MAX_ELEMENTS_VERTICES
:
593 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
595 case GL_MAX_ELEMENTS_INDICES
:
596 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxArrayLockSize
);
598 case GL_MAX_EVAL_ORDER
:
599 params
[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER
);
602 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxLights
);
604 case GL_MAX_LIST_NESTING
:
605 params
[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING
);
607 case GL_MAX_MODELVIEW_STACK_DEPTH
:
608 params
[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH
);
610 case GL_MAX_NAME_STACK_DEPTH
:
611 params
[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH
);
613 case GL_MAX_PIXEL_MAP_TABLE
:
614 params
[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE
);
616 case GL_MAX_PROJECTION_STACK_DEPTH
:
617 params
[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH
);
619 case GL_MAX_TEXTURE_SIZE
:
620 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.MaxTextureLevels
- 1));
622 case GL_MAX_3D_TEXTURE_SIZE
:
623 params
[0] = INT_TO_BOOLEAN(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
625 case GL_MAX_TEXTURE_STACK_DEPTH
:
626 params
[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH
);
628 case GL_MAX_VIEWPORT_DIMS
:
629 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportWidth
);
630 params
[1] = INT_TO_BOOLEAN(ctx
->Const
.MaxViewportHeight
);
632 case GL_MODELVIEW_MATRIX
:
634 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
635 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
636 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
637 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
638 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
639 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
640 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
641 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
642 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
643 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
644 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
645 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
646 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
647 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
648 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
649 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
650 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
653 case GL_MODELVIEW_STACK_DEPTH
:
654 params
[0] = INT_TO_BOOLEAN(ctx
->ModelviewMatrixStack
.Depth
+ 1);
656 case GL_NAME_STACK_DEPTH
:
657 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.NameStackDepth
);
660 params
[0] = ctx
->Transform
.Normalize
;
662 case GL_PACK_ALIGNMENT
:
663 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.Alignment
);
665 case GL_PACK_LSB_FIRST
:
666 params
[0] = ctx
->Pack
.LsbFirst
;
668 case GL_PACK_ROW_LENGTH
:
669 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.RowLength
);
671 case GL_PACK_SKIP_PIXELS
:
672 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipPixels
);
674 case GL_PACK_SKIP_ROWS
:
675 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipRows
);
677 case GL_PACK_SWAP_BYTES
:
678 params
[0] = ctx
->Pack
.SwapBytes
;
680 case GL_PACK_SKIP_IMAGES_EXT
:
681 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.SkipImages
);
683 case GL_PACK_IMAGE_HEIGHT_EXT
:
684 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.ImageHeight
);
686 case GL_PACK_INVERT_MESA
:
687 params
[0] = ctx
->Pack
.Invert
;
689 case GL_PERSPECTIVE_CORRECTION_HINT
:
690 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PerspectiveCorrection
);
692 case GL_PIXEL_MAP_A_TO_A_SIZE
:
693 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.AtoA
.Size
);
695 case GL_PIXEL_MAP_B_TO_B_SIZE
:
696 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.BtoB
.Size
);
698 case GL_PIXEL_MAP_G_TO_G_SIZE
:
699 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.GtoG
.Size
);
701 case GL_PIXEL_MAP_I_TO_A_SIZE
:
702 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoA
.Size
);
704 case GL_PIXEL_MAP_I_TO_B_SIZE
:
705 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoB
.Size
);
707 case GL_PIXEL_MAP_I_TO_G_SIZE
:
708 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoG
.Size
);
710 case GL_PIXEL_MAP_I_TO_I_SIZE
:
711 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoI
.Size
);
713 case GL_PIXEL_MAP_I_TO_R_SIZE
:
714 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.ItoR
.Size
);
716 case GL_PIXEL_MAP_R_TO_R_SIZE
:
717 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.RtoR
.Size
);
719 case GL_PIXEL_MAP_S_TO_S_SIZE
:
720 params
[0] = INT_TO_BOOLEAN(ctx
->PixelMaps
.StoS
.Size
);
723 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Size
);
725 case GL_POINT_SIZE_GRANULARITY
:
726 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.PointSizeGranularity
);
728 case GL_POINT_SIZE_RANGE
:
729 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSizeAA
);
730 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSizeAA
);
732 case GL_ALIASED_POINT_SIZE_RANGE
:
733 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MinPointSize
);
734 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxPointSize
);
736 case GL_POINT_SMOOTH
:
737 params
[0] = ctx
->Point
.SmoothFlag
;
739 case GL_POINT_SMOOTH_HINT
:
740 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PointSmooth
);
742 case GL_POINT_SIZE_MIN_EXT
:
743 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MinSize
);
745 case GL_POINT_SIZE_MAX_EXT
:
746 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.MaxSize
);
748 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
749 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Threshold
);
751 case GL_DISTANCE_ATTENUATION_EXT
:
752 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[0]);
753 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[1]);
754 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Point
.Params
[2]);
756 case GL_POLYGON_MODE
:
757 params
[0] = ENUM_TO_BOOLEAN(ctx
->Polygon
.FrontMode
);
758 params
[1] = ENUM_TO_BOOLEAN(ctx
->Polygon
.BackMode
);
760 case GL_POLYGON_OFFSET_BIAS_EXT
:
761 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
763 case GL_POLYGON_OFFSET_FACTOR
:
764 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetFactor
);
766 case GL_POLYGON_OFFSET_UNITS
:
767 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Polygon
.OffsetUnits
);
769 case GL_POLYGON_OFFSET_POINT
:
770 params
[0] = ctx
->Polygon
.OffsetPoint
;
772 case GL_POLYGON_OFFSET_LINE
:
773 params
[0] = ctx
->Polygon
.OffsetLine
;
775 case GL_POLYGON_OFFSET_FILL
:
776 params
[0] = ctx
->Polygon
.OffsetFill
;
778 case GL_POLYGON_SMOOTH
:
779 params
[0] = ctx
->Polygon
.SmoothFlag
;
781 case GL_POLYGON_SMOOTH_HINT
:
782 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.PolygonSmooth
);
784 case GL_POLYGON_STIPPLE
:
785 params
[0] = ctx
->Polygon
.StippleFlag
;
787 case GL_PROJECTION_MATRIX
:
789 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
790 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
791 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
792 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
793 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
794 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
795 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
796 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
797 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
798 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
799 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
800 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
801 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
802 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
803 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
804 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
805 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
808 case GL_PROJECTION_STACK_DEPTH
:
809 params
[0] = INT_TO_BOOLEAN(ctx
->ProjectionMatrixStack
.Depth
+ 1);
812 params
[0] = ENUM_TO_BOOLEAN(ctx
->ReadBuffer
->ColorReadBuffer
);
815 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedBias
);
818 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.redBits
);
821 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.RedScale
);
824 params
[0] = ENUM_TO_BOOLEAN(ctx
->RenderMode
);
826 case GL_RESCALE_NORMAL
:
827 params
[0] = ctx
->Transform
.RescaleNormals
;
833 params
[0] = INT_TO_BOOLEAN(ctx
->Scissor
.X
);
834 params
[1] = INT_TO_BOOLEAN(ctx
->Scissor
.Y
);
835 params
[2] = INT_TO_BOOLEAN(ctx
->Scissor
.Width
);
836 params
[3] = INT_TO_BOOLEAN(ctx
->Scissor
.Height
);
838 case GL_SCISSOR_TEST
:
839 params
[0] = ctx
->Scissor
.Enabled
;
841 case GL_SELECTION_BUFFER_SIZE
:
842 params
[0] = INT_TO_BOOLEAN(ctx
->Select
.BufferSize
);
845 params
[0] = ENUM_TO_BOOLEAN(ctx
->Light
.ShadeModel
);
847 case GL_SHARED_TEXTURE_PALETTE_EXT
:
848 params
[0] = ctx
->Texture
.SharedPalette
;
850 case GL_STENCIL_BITS
:
851 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.stencilBits
);
853 case GL_STENCIL_CLEAR_VALUE
:
854 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Clear
);
856 case GL_STENCIL_FAIL
:
857 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
859 case GL_STENCIL_FUNC
:
860 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
862 case GL_STENCIL_PASS_DEPTH_FAIL
:
863 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
865 case GL_STENCIL_PASS_DEPTH_PASS
:
866 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
869 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
871 case GL_STENCIL_TEST
:
872 params
[0] = ctx
->Stencil
.Enabled
;
874 case GL_STENCIL_VALUE_MASK
:
875 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
877 case GL_STENCIL_WRITEMASK
:
878 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
881 params
[0] = ctx
->DrawBuffer
->Visual
.stereoMode
;
883 case GL_SUBPIXEL_BITS
:
884 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.SubPixelBits
);
887 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D
);
890 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D
);
893 params
[0] = _mesa_IsEnabled(GL_TEXTURE_3D
);
895 case GL_TEXTURE_1D_ARRAY_EXT
:
896 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
897 params
[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
);
899 case GL_TEXTURE_2D_ARRAY_EXT
:
900 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
901 params
[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
);
903 case GL_TEXTURE_BINDING_1D
:
904 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
906 case GL_TEXTURE_BINDING_2D
:
907 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
909 case GL_TEXTURE_BINDING_3D
:
910 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
912 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
913 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
914 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
916 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
917 CHECK_EXT1(MESA_texture_array
, "GetBooleanv");
918 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
920 case GL_TEXTURE_GEN_S
:
921 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0);
923 case GL_TEXTURE_GEN_T
:
924 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0);
926 case GL_TEXTURE_GEN_R
:
927 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0);
929 case GL_TEXTURE_GEN_Q
:
930 params
[0] = ((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0);
932 case GL_TEXTURE_MATRIX
:
934 const GLfloat
*matrix
;
935 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
936 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
937 _mesa_error(ctx
, GL_INVALID_OPERATION
, "glGet(texture matrix %u)",
941 matrix
= ctx
->TextureMatrixStack
[unit
].Top
->m
;
942 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
943 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
944 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
945 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
946 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
947 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
948 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
949 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
950 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
951 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
952 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
953 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
954 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
955 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
956 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
957 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
960 case GL_TEXTURE_STACK_DEPTH
:
962 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
963 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
964 _mesa_error(ctx
, GL_INVALID_OPERATION
,
965 "glGet(texture stack depth, unit %u)", unit
);
968 params
[0] = INT_TO_BOOLEAN(ctx
->TextureMatrixStack
[unit
].Depth
+ 1);
971 case GL_UNPACK_ALIGNMENT
:
972 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.Alignment
);
974 case GL_UNPACK_LSB_FIRST
:
975 params
[0] = ctx
->Unpack
.LsbFirst
;
977 case GL_UNPACK_ROW_LENGTH
:
978 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.RowLength
);
980 case GL_UNPACK_SKIP_PIXELS
:
981 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipPixels
);
983 case GL_UNPACK_SKIP_ROWS
:
984 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipRows
);
986 case GL_UNPACK_SWAP_BYTES
:
987 params
[0] = ctx
->Unpack
.SwapBytes
;
989 case GL_UNPACK_SKIP_IMAGES_EXT
:
990 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.SkipImages
);
992 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
993 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.ImageHeight
);
995 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
996 params
[0] = ctx
->Unpack
.ClientStorage
;
999 params
[0] = INT_TO_BOOLEAN(ctx
->Viewport
.X
);
1000 params
[1] = INT_TO_BOOLEAN(ctx
->Viewport
.Y
);
1001 params
[2] = INT_TO_BOOLEAN(ctx
->Viewport
.Width
);
1002 params
[3] = INT_TO_BOOLEAN(ctx
->Viewport
.Height
);
1005 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomX
);
1008 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.ZoomY
);
1010 case GL_VERTEX_ARRAY
:
1011 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Enabled
;
1013 case GL_VERTEX_ARRAY_SIZE
:
1014 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Size
);
1016 case GL_VERTEX_ARRAY_TYPE
:
1017 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Type
);
1019 case GL_VERTEX_ARRAY_STRIDE
:
1020 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
1022 case GL_VERTEX_ARRAY_COUNT_EXT
:
1023 params
[0] = INT_TO_BOOLEAN(0);
1025 case GL_NORMAL_ARRAY
:
1026 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
1028 case GL_NORMAL_ARRAY_TYPE
:
1029 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Type
);
1031 case GL_NORMAL_ARRAY_STRIDE
:
1032 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.Stride
);
1034 case GL_NORMAL_ARRAY_COUNT_EXT
:
1035 params
[0] = INT_TO_BOOLEAN(0);
1037 case GL_COLOR_ARRAY
:
1038 params
[0] = ctx
->Array
.ArrayObj
->Color
.Enabled
;
1040 case GL_COLOR_ARRAY_SIZE
:
1041 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Size
);
1043 case GL_COLOR_ARRAY_TYPE
:
1044 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Type
);
1046 case GL_COLOR_ARRAY_STRIDE
:
1047 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.Stride
);
1049 case GL_COLOR_ARRAY_COUNT_EXT
:
1050 params
[0] = INT_TO_BOOLEAN(0);
1052 case GL_INDEX_ARRAY
:
1053 params
[0] = ctx
->Array
.ArrayObj
->Index
.Enabled
;
1055 case GL_INDEX_ARRAY_TYPE
:
1056 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Type
);
1058 case GL_INDEX_ARRAY_STRIDE
:
1059 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.Stride
);
1061 case GL_INDEX_ARRAY_COUNT_EXT
:
1062 params
[0] = INT_TO_BOOLEAN(0);
1064 case GL_TEXTURE_COORD_ARRAY
:
1065 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
;
1067 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1068 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
1070 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1071 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
1073 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1074 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
1076 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1077 params
[0] = INT_TO_BOOLEAN(0);
1079 case GL_EDGE_FLAG_ARRAY
:
1080 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
;
1082 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1083 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
1085 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1086 params
[0] = INT_TO_BOOLEAN(0);
1088 case GL_MAX_TEXTURE_UNITS_ARB
:
1089 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1090 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureUnits
);
1092 case GL_ACTIVE_TEXTURE_ARB
:
1093 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1094 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1096 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1097 CHECK_EXT1(ARB_multitexture
, "GetBooleanv");
1098 params
[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1100 case GL_TEXTURE_CUBE_MAP_ARB
:
1101 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1102 params
[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
);
1104 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
1105 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1106 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
1108 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
1109 CHECK_EXT1(ARB_texture_cube_map
, "GetBooleanv");
1110 params
[0] = INT_TO_BOOLEAN((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
1112 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
1113 params
[0] = INT_TO_BOOLEAN(ctx
->Hint
.TextureCompression
);
1115 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
1116 params
[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
1118 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
1121 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
1123 for (i
= 0; i
< n
; i
++)
1124 params
[i
] = ENUM_TO_BOOLEAN(formats
[i
]);
1127 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1128 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1129 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockFirst
);
1131 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1132 CHECK_EXT1(EXT_compiled_vertex_array
, "GetBooleanv");
1133 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.LockCount
);
1135 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1137 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1138 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1139 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1140 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1141 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1142 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1143 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1144 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1145 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1146 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1147 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1148 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1149 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1150 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1151 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1152 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1153 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1156 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1158 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
1159 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1160 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1161 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1162 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1163 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1164 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1165 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1166 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1167 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1168 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1169 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1170 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1171 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1172 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1173 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1174 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1177 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1179 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
1180 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1181 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1182 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1183 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1184 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1185 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1186 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1187 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1188 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1189 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1190 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1191 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1192 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1193 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1194 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1195 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1198 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1200 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
1201 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1202 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1203 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1204 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1205 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1206 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1207 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1208 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1209 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1210 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1211 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1212 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1213 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1214 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1215 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1216 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1219 case GL_COLOR_MATRIX_SGI
:
1221 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
1222 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1223 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1224 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1225 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1226 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1227 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1228 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1229 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1230 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1231 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1232 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1233 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1234 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1235 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1236 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1237 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1240 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1241 params
[0] = INT_TO_BOOLEAN(ctx
->ColorMatrixStack
.Depth
+ 1);
1243 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1244 params
[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH
);
1246 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1247 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[0]);
1249 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1250 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[1]);
1252 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1253 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[2]);
1255 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1256 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixScale
[3]);
1258 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1259 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[0]);
1261 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1262 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[1]);
1264 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1265 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[2]);
1267 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1268 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostColorMatrixBias
[3]);
1270 case GL_CONVOLUTION_1D_EXT
:
1271 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1272 params
[0] = ctx
->Pixel
.Convolution1DEnabled
;
1274 case GL_CONVOLUTION_2D_EXT
:
1275 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1276 params
[0] = ctx
->Pixel
.Convolution2DEnabled
;
1278 case GL_SEPARABLE_2D_EXT
:
1279 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1280 params
[0] = ctx
->Pixel
.Separable2DEnabled
;
1282 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1283 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1284 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[0]);
1286 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1287 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1288 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[1]);
1290 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1291 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1292 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[2]);
1294 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1295 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1296 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionScale
[3]);
1298 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1299 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1300 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[0]);
1302 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1303 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1304 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[1]);
1306 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1307 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1308 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[2]);
1310 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1311 CHECK_EXT1(EXT_convolution
, "GetBooleanv");
1312 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Pixel
.PostConvolutionBias
[3]);
1315 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1316 params
[0] = ctx
->Pixel
.HistogramEnabled
;
1319 CHECK_EXT1(EXT_histogram
, "GetBooleanv");
1320 params
[0] = ctx
->Pixel
.MinMaxEnabled
;
1322 case GL_COLOR_TABLE_SGI
:
1323 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1324 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
];
1326 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1327 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1328 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
];
1330 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1331 CHECK_EXT1(SGI_color_table
, "GetBooleanv");
1332 params
[0] = ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
];
1334 case GL_TEXTURE_COLOR_TABLE_SGI
:
1335 CHECK_EXT1(SGI_texture_color_table
, "GetBooleanv");
1336 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
;
1338 case GL_COLOR_SUM_EXT
:
1339 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetBooleanv");
1340 params
[0] = ctx
->Fog
.ColorSumEnabled
;
1342 case GL_CURRENT_SECONDARY_COLOR_EXT
:
1343 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1345 FLUSH_CURRENT(ctx
, 0);
1346 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
1347 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
1348 params
[2] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
1349 params
[3] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
1352 case GL_SECONDARY_COLOR_ARRAY_EXT
:
1353 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1354 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
;
1356 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
1357 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1358 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
1360 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
1361 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1362 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
1364 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
1365 CHECK_EXT1(EXT_secondary_color
, "GetBooleanv");
1366 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
1368 case GL_CURRENT_FOG_COORDINATE_EXT
:
1369 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1371 FLUSH_CURRENT(ctx
, 0);
1372 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
1375 case GL_FOG_COORDINATE_ARRAY_EXT
:
1376 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1377 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Enabled
;
1379 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
1380 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1381 params
[0] = ENUM_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
1383 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
1384 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1385 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
1387 case GL_FOG_COORDINATE_SOURCE_EXT
:
1388 CHECK_EXT1(EXT_fog_coord
, "GetBooleanv");
1389 params
[0] = ENUM_TO_BOOLEAN(ctx
->Fog
.FogCoordinateSource
);
1391 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
1392 CHECK_EXT1(EXT_texture_lod_bias
, "GetBooleanv");
1393 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureLodBias
);
1395 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
1396 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetBooleanv");
1397 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxTextureMaxAnisotropy
);
1399 case GL_MULTISAMPLE_ARB
:
1400 params
[0] = ctx
->Multisample
.Enabled
;
1402 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
1403 params
[0] = ctx
->Multisample
.SampleAlphaToCoverage
;
1405 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
1406 params
[0] = ctx
->Multisample
.SampleAlphaToOne
;
1408 case GL_SAMPLE_COVERAGE_ARB
:
1409 params
[0] = ctx
->Multisample
.SampleCoverage
;
1411 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
1412 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Multisample
.SampleCoverageValue
);
1414 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
1415 params
[0] = ctx
->Multisample
.SampleCoverageInvert
;
1417 case GL_SAMPLE_BUFFERS_ARB
:
1418 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
1420 case GL_SAMPLES_ARB
:
1421 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Visual
.samples
);
1423 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
1424 CHECK_EXT1(IBM_rasterpos_clip
, "GetBooleanv");
1425 params
[0] = ctx
->Transform
.RasterPositionUnclipped
;
1427 case GL_POINT_SPRITE_NV
:
1428 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1429 params
[0] = ctx
->Point
.PointSprite
;
1431 case GL_POINT_SPRITE_R_MODE_NV
:
1432 CHECK_EXT1(NV_point_sprite
, "GetBooleanv");
1433 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteRMode
);
1435 case GL_POINT_SPRITE_COORD_ORIGIN
:
1436 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetBooleanv");
1437 params
[0] = ENUM_TO_BOOLEAN(ctx
->Point
.SpriteOrigin
);
1439 case GL_GENERATE_MIPMAP_HINT_SGIS
:
1440 CHECK_EXT1(SGIS_generate_mipmap
, "GetBooleanv");
1441 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.GenerateMipmap
);
1443 case GL_VERTEX_PROGRAM_BINDING_NV
:
1444 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1445 params
[0] = INT_TO_BOOLEAN((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
1447 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
1448 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1449 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
;
1451 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
1452 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1453 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
;
1455 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
1456 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1457 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
;
1459 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
1460 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1461 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
;
1463 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
1464 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1465 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
;
1467 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
1468 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1469 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
;
1471 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
1472 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1473 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
;
1475 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
1476 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1477 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
;
1479 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
1480 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1481 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
;
1483 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
1484 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1485 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
;
1487 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
1488 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1489 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
;
1491 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
1492 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1493 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
;
1495 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
1496 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1497 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
;
1499 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
1500 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1501 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
;
1503 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
1504 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1505 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
;
1507 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
1508 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1509 params
[0] = ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
;
1511 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
1512 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1513 params
[0] = ctx
->Eval
.Map1Attrib
[0];
1515 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
1516 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1517 params
[0] = ctx
->Eval
.Map1Attrib
[1];
1519 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
1520 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1521 params
[0] = ctx
->Eval
.Map1Attrib
[2];
1523 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
1524 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1525 params
[0] = ctx
->Eval
.Map1Attrib
[3];
1527 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
1528 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1529 params
[0] = ctx
->Eval
.Map1Attrib
[4];
1531 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
1532 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1533 params
[0] = ctx
->Eval
.Map1Attrib
[5];
1535 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
1536 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1537 params
[0] = ctx
->Eval
.Map1Attrib
[6];
1539 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
1540 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1541 params
[0] = ctx
->Eval
.Map1Attrib
[7];
1543 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
1544 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1545 params
[0] = ctx
->Eval
.Map1Attrib
[8];
1547 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
1548 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1549 params
[0] = ctx
->Eval
.Map1Attrib
[9];
1551 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
1552 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1553 params
[0] = ctx
->Eval
.Map1Attrib
[10];
1555 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
1556 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1557 params
[0] = ctx
->Eval
.Map1Attrib
[11];
1559 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
1560 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1561 params
[0] = ctx
->Eval
.Map1Attrib
[12];
1563 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
1564 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1565 params
[0] = ctx
->Eval
.Map1Attrib
[13];
1567 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
1568 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1569 params
[0] = ctx
->Eval
.Map1Attrib
[14];
1571 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
1572 CHECK_EXT1(NV_vertex_program
, "GetBooleanv");
1573 params
[0] = ctx
->Eval
.Map1Attrib
[15];
1575 case GL_FRAGMENT_PROGRAM_NV
:
1576 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1577 params
[0] = ctx
->FragmentProgram
.Enabled
;
1579 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
1580 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1581 params
[0] = INT_TO_BOOLEAN(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
1583 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
1584 CHECK_EXT1(NV_fragment_program
, "GetBooleanv");
1585 params
[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
1587 case GL_TEXTURE_RECTANGLE_NV
:
1588 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1589 params
[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
);
1591 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
1592 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1593 params
[0] = INT_TO_BOOLEAN(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
1595 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
1596 CHECK_EXT1(NV_texture_rectangle
, "GetBooleanv");
1597 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureRectSize
);
1599 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
1600 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1601 params
[0] = ctx
->Stencil
.TestTwoSide
;
1603 case GL_ACTIVE_STENCIL_FACE_EXT
:
1604 CHECK_EXT1(EXT_stencil_two_side
, "GetBooleanv");
1605 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
1607 case GL_MAX_SHININESS_NV
:
1608 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1609 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxShininess
);
1611 case GL_MAX_SPOT_EXPONENT_NV
:
1612 CHECK_EXT1(NV_light_max_exponent
, "GetBooleanv");
1613 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Const
.MaxSpotExponent
);
1615 case GL_ARRAY_BUFFER_BINDING_ARB
:
1616 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayBufferObj
->Name
);
1618 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
1619 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
1621 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
1622 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
1624 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1625 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
1627 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
1628 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
1630 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
1631 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
1633 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
1634 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
1636 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
1637 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
1639 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
1640 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
1642 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
1643 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ElementArrayBufferObj
->Name
);
1645 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
1646 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1647 params
[0] = INT_TO_BOOLEAN(ctx
->Pack
.BufferObj
->Name
);
1649 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
1650 CHECK_EXT1(EXT_pixel_buffer_object
, "GetBooleanv");
1651 params
[0] = INT_TO_BOOLEAN(ctx
->Unpack
.BufferObj
->Name
);
1653 case GL_VERTEX_PROGRAM_ARB
:
1654 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1655 params
[0] = ctx
->VertexProgram
.Enabled
;
1657 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
1658 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1659 params
[0] = ctx
->VertexProgram
.PointSizeEnabled
;
1661 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
1662 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetBooleanv");
1663 params
[0] = ctx
->VertexProgram
.TwoSideEnabled
;
1665 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
1666 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1667 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrixStackDepth
);
1669 case GL_MAX_PROGRAM_MATRICES_ARB
:
1670 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1671 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxProgramMatrices
);
1673 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
1674 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetBooleanv");
1675 params
[0] = ctx
->CurrentStack
->Depth
+ 1;
1677 case GL_CURRENT_MATRIX_ARB
:
1678 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1680 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1681 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1682 params
[1] = FLOAT_TO_BOOLEAN(matrix
[1]);
1683 params
[2] = FLOAT_TO_BOOLEAN(matrix
[2]);
1684 params
[3] = FLOAT_TO_BOOLEAN(matrix
[3]);
1685 params
[4] = FLOAT_TO_BOOLEAN(matrix
[4]);
1686 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1687 params
[6] = FLOAT_TO_BOOLEAN(matrix
[6]);
1688 params
[7] = FLOAT_TO_BOOLEAN(matrix
[7]);
1689 params
[8] = FLOAT_TO_BOOLEAN(matrix
[8]);
1690 params
[9] = FLOAT_TO_BOOLEAN(matrix
[9]);
1691 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1692 params
[11] = FLOAT_TO_BOOLEAN(matrix
[11]);
1693 params
[12] = FLOAT_TO_BOOLEAN(matrix
[12]);
1694 params
[13] = FLOAT_TO_BOOLEAN(matrix
[13]);
1695 params
[14] = FLOAT_TO_BOOLEAN(matrix
[14]);
1696 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1699 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
1700 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetBooleanv");
1702 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
1703 params
[0] = FLOAT_TO_BOOLEAN(matrix
[0]);
1704 params
[1] = FLOAT_TO_BOOLEAN(matrix
[4]);
1705 params
[2] = FLOAT_TO_BOOLEAN(matrix
[8]);
1706 params
[3] = FLOAT_TO_BOOLEAN(matrix
[12]);
1707 params
[4] = FLOAT_TO_BOOLEAN(matrix
[1]);
1708 params
[5] = FLOAT_TO_BOOLEAN(matrix
[5]);
1709 params
[6] = FLOAT_TO_BOOLEAN(matrix
[9]);
1710 params
[7] = FLOAT_TO_BOOLEAN(matrix
[13]);
1711 params
[8] = FLOAT_TO_BOOLEAN(matrix
[2]);
1712 params
[9] = FLOAT_TO_BOOLEAN(matrix
[6]);
1713 params
[10] = FLOAT_TO_BOOLEAN(matrix
[10]);
1714 params
[11] = FLOAT_TO_BOOLEAN(matrix
[14]);
1715 params
[12] = FLOAT_TO_BOOLEAN(matrix
[3]);
1716 params
[13] = FLOAT_TO_BOOLEAN(matrix
[7]);
1717 params
[14] = FLOAT_TO_BOOLEAN(matrix
[11]);
1718 params
[15] = FLOAT_TO_BOOLEAN(matrix
[15]);
1721 case GL_MAX_VERTEX_ATTRIBS_ARB
:
1722 CHECK_EXT1(ARB_vertex_program
, "GetBooleanv");
1723 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxAttribs
);
1725 case GL_PROGRAM_ERROR_POSITION_ARB
:
1726 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetBooleanv");
1727 params
[0] = INT_TO_BOOLEAN(ctx
->Program
.ErrorPos
);
1729 case GL_FRAGMENT_PROGRAM_ARB
:
1730 CHECK_EXT1(ARB_fragment_program
, "GetBooleanv");
1731 params
[0] = ctx
->FragmentProgram
.Enabled
;
1733 case GL_MAX_TEXTURE_COORDS_ARB
:
1734 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1735 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureCoordUnits
);
1737 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
1738 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetBooleanv");
1739 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxTextureImageUnits
);
1741 case GL_DEPTH_BOUNDS_TEST_EXT
:
1742 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1743 params
[0] = ctx
->Depth
.BoundsTest
;
1745 case GL_DEPTH_BOUNDS_EXT
:
1746 CHECK_EXT1(EXT_depth_bounds_test
, "GetBooleanv");
1747 params
[0] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMin
);
1748 params
[1] = FLOAT_TO_BOOLEAN(ctx
->Depth
.BoundsMax
);
1750 case GL_DEPTH_CLAMP
:
1751 CHECK_EXT1(ARB_depth_clamp
, "GetBooleanv");
1752 params
[0] = ctx
->Transform
.DepthClamp
;
1754 case GL_MAX_DRAW_BUFFERS_ARB
:
1755 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxDrawBuffers
);
1757 case GL_DRAW_BUFFER0_ARB
:
1758 params
[0] = ENUM_TO_BOOLEAN(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
1760 case GL_DRAW_BUFFER1_ARB
:
1763 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1764 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1767 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
1768 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1771 case GL_DRAW_BUFFER2_ARB
:
1774 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1775 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1778 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
1779 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1782 case GL_DRAW_BUFFER3_ARB
:
1785 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
1786 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
1789 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
1790 params
[0] = ENUM_TO_BOOLEAN(buffer
);
1793 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
1794 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1795 params
[0] = INT_TO_BOOLEAN(_mesa_get_color_read_type(ctx
));
1797 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
1798 CHECK_EXT1(OES_read_format
, "GetBooleanv");
1799 params
[0] = INT_TO_BOOLEAN(_mesa_get_color_read_format(ctx
));
1801 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
1802 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1803 params
[0] = INT_TO_BOOLEAN(6);
1805 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
1806 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1807 params
[0] = INT_TO_BOOLEAN(8);
1809 case GL_NUM_PASSES_ATI
:
1810 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1811 params
[0] = INT_TO_BOOLEAN(2);
1813 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
1814 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1815 params
[0] = INT_TO_BOOLEAN(8);
1817 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
1818 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1819 params
[0] = INT_TO_BOOLEAN(16);
1821 case GL_COLOR_ALPHA_PAIRING_ATI
:
1822 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1823 params
[0] = GL_TRUE
;
1825 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
1826 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1827 params
[0] = INT_TO_BOOLEAN(3);
1829 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
1830 CHECK_EXT1(ATI_fragment_shader
, "GetBooleanv");
1831 params
[0] = INT_TO_BOOLEAN(3);
1833 case GL_STENCIL_BACK_FUNC
:
1834 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.Function
[1]);
1836 case GL_STENCIL_BACK_VALUE_MASK
:
1837 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.ValueMask
[1]);
1839 case GL_STENCIL_BACK_WRITEMASK
:
1840 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.WriteMask
[1]);
1842 case GL_STENCIL_BACK_REF
:
1843 params
[0] = INT_TO_BOOLEAN(ctx
->Stencil
.Ref
[1]);
1845 case GL_STENCIL_BACK_FAIL
:
1846 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.FailFunc
[1]);
1848 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
1849 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZFailFunc
[1]);
1851 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
1852 params
[0] = ENUM_TO_BOOLEAN(ctx
->Stencil
.ZPassFunc
[1]);
1854 case GL_FRAMEBUFFER_BINDING_EXT
:
1855 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1856 params
[0] = INT_TO_BOOLEAN(ctx
->DrawBuffer
->Name
);
1858 case GL_RENDERBUFFER_BINDING_EXT
:
1859 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1860 params
[0] = INT_TO_BOOLEAN(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
1862 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
1863 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1864 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxColorAttachments
);
1866 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
1867 CHECK_EXT1(EXT_framebuffer_object
, "GetBooleanv");
1868 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxRenderbufferSize
);
1870 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
1871 CHECK_EXT1(EXT_framebuffer_blit
, "GetBooleanv");
1872 params
[0] = INT_TO_BOOLEAN(ctx
->ReadBuffer
->Name
);
1874 case GL_PROVOKING_VERTEX_EXT
:
1875 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1876 params
[0] = ctx
->Light
.ProvokingVertex
;
1878 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
1879 CHECK_EXT1(EXT_provoking_vertex
, "GetBooleanv");
1880 params
[0] = ctx
->Const
.QuadsFollowProvokingVertexConvention
;
1882 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
1883 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1884 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
1886 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
1887 CHECK_EXT1(ARB_fragment_shader
, "GetBooleanv");
1888 params
[0] = ENUM_TO_BOOLEAN(ctx
->Hint
.FragmentShaderDerivative
);
1890 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
1891 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1892 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
1894 case GL_MAX_VARYING_FLOATS_ARB
:
1895 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1896 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVarying
* 4);
1898 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
1899 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1900 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxVertexTextureImageUnits
);
1902 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
1903 CHECK_EXT1(ARB_vertex_shader
, "GetBooleanv");
1904 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxCombinedTextureImageUnits
);
1906 case GL_CURRENT_PROGRAM
:
1907 CHECK_EXT1(ARB_shader_objects
, "GetBooleanv");
1908 params
[0] = INT_TO_BOOLEAN(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
1910 case GL_MAX_SAMPLES
:
1911 CHECK_EXT1(ARB_framebuffer_object
, "GetBooleanv");
1912 params
[0] = INT_TO_BOOLEAN(ctx
->Const
.MaxSamples
);
1914 case GL_VERTEX_ARRAY_BINDING_APPLE
:
1915 CHECK_EXT1(APPLE_vertex_array_object
, "GetBooleanv");
1916 params
[0] = INT_TO_BOOLEAN(ctx
->Array
.ArrayObj
->Name
);
1918 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
1919 CHECK_EXT1(ARB_seamless_cube_map
, "GetBooleanv");
1920 params
[0] = ctx
->Texture
.CubeMapSeamless
;
1922 case GL_MAX_SERVER_WAIT_TIMEOUT
:
1923 CHECK_EXT1(ARB_sync
, "GetBooleanv");
1924 params
[0] = INT64_TO_BOOLEAN(ctx
->Const
.MaxServerWaitTimeout
);
1926 case GL_NUM_EXTENSIONS
:
1927 params
[0] = INT_TO_BOOLEAN(_mesa_get_extension_count(ctx
));
1929 case GL_MAJOR_VERSION
:
1930 params
[0] = INT_TO_BOOLEAN(ctx
->VersionMajor
);
1932 case GL_MINOR_VERSION
:
1933 params
[0] = INT_TO_BOOLEAN(ctx
->VersionMinor
);
1936 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanv(pname=0x%x)", pname
);
1941 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1943 GET_CURRENT_CONTEXT(ctx
);
1944 ASSERT_OUTSIDE_BEGIN_END(ctx
);
1950 _mesa_update_state(ctx
);
1952 if (ctx
->Driver
.GetFloatv
&&
1953 ctx
->Driver
.GetFloatv(ctx
, pname
, params
))
1957 case GL_ACCUM_RED_BITS
:
1958 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
1960 case GL_ACCUM_GREEN_BITS
:
1961 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
1963 case GL_ACCUM_BLUE_BITS
:
1964 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
1966 case GL_ACCUM_ALPHA_BITS
:
1967 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
1969 case GL_ACCUM_CLEAR_VALUE
:
1970 params
[0] = ctx
->Accum
.ClearColor
[0];
1971 params
[1] = ctx
->Accum
.ClearColor
[1];
1972 params
[2] = ctx
->Accum
.ClearColor
[2];
1973 params
[3] = ctx
->Accum
.ClearColor
[3];
1976 params
[0] = ctx
->Pixel
.AlphaBias
;
1979 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
1981 case GL_ALPHA_SCALE
:
1982 params
[0] = ctx
->Pixel
.AlphaScale
;
1985 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.AlphaEnabled
);
1987 case GL_ALPHA_TEST_FUNC
:
1988 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1990 case GL_ALPHA_TEST_REF
:
1991 params
[0] = ctx
->Color
.AlphaRef
;
1993 case GL_ATTRIB_STACK_DEPTH
:
1994 params
[0] = (GLfloat
)(ctx
->AttribStackDepth
);
1996 case GL_AUTO_NORMAL
:
1997 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.AutoNormal
);
1999 case GL_AUX_BUFFERS
:
2000 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
2003 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Color
.BlendEnabled
& 1));
2006 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
2009 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
2011 case GL_BLEND_SRC_RGB_EXT
:
2012 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
2014 case GL_BLEND_DST_RGB_EXT
:
2015 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
2017 case GL_BLEND_SRC_ALPHA_EXT
:
2018 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
2020 case GL_BLEND_DST_ALPHA_EXT
:
2021 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
2023 case GL_BLEND_EQUATION
:
2024 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationRGB
);
2026 case GL_BLEND_EQUATION_ALPHA_EXT
:
2027 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.BlendEquationA
);
2029 case GL_BLEND_COLOR_EXT
:
2030 params
[0] = ctx
->Color
.BlendColor
[0];
2031 params
[1] = ctx
->Color
.BlendColor
[1];
2032 params
[2] = ctx
->Color
.BlendColor
[2];
2033 params
[3] = ctx
->Color
.BlendColor
[3];
2036 params
[0] = ctx
->Pixel
.BlueBias
;
2039 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.blueBits
);
2042 params
[0] = ctx
->Pixel
.BlueScale
;
2044 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2045 params
[0] = (GLfloat
)(ctx
->ClientAttribStackDepth
);
2047 case GL_CLIP_PLANE0
:
2048 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
2050 case GL_CLIP_PLANE1
:
2051 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
2053 case GL_CLIP_PLANE2
:
2054 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
2056 case GL_CLIP_PLANE3
:
2057 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
2059 case GL_CLIP_PLANE4
:
2060 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
2062 case GL_CLIP_PLANE5
:
2063 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
2065 case GL_COLOR_CLEAR_VALUE
:
2066 params
[0] = ctx
->Color
.ClearColor
[0];
2067 params
[1] = ctx
->Color
.ClearColor
[1];
2068 params
[2] = ctx
->Color
.ClearColor
[2];
2069 params
[3] = ctx
->Color
.ClearColor
[3];
2071 case GL_COLOR_MATERIAL
:
2072 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ColorMaterialEnabled
);
2074 case GL_COLOR_MATERIAL_FACE
:
2075 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2077 case GL_COLOR_MATERIAL_PARAMETER
:
2078 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2080 case GL_COLOR_WRITEMASK
:
2081 params
[0] = (GLfloat
)(ctx
->Color
.ColorMask
[0][RCOMP
] ? 1 : 0);
2082 params
[1] = (GLfloat
)(ctx
->Color
.ColorMask
[0][GCOMP
] ? 1 : 0);
2083 params
[2] = (GLfloat
)(ctx
->Color
.ColorMask
[0][BCOMP
] ? 1 : 0);
2084 params
[3] = (GLfloat
)(ctx
->Color
.ColorMask
[0][ACOMP
] ? 1 : 0);
2087 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.CullFlag
);
2089 case GL_CULL_FACE_MODE
:
2090 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2092 case GL_CURRENT_COLOR
:
2094 FLUSH_CURRENT(ctx
, 0);
2095 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0];
2096 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1];
2097 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2];
2098 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3];
2101 case GL_CURRENT_INDEX
:
2103 FLUSH_CURRENT(ctx
, 0);
2104 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0];
2107 case GL_CURRENT_NORMAL
:
2109 FLUSH_CURRENT(ctx
, 0);
2110 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0];
2111 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1];
2112 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2];
2115 case GL_CURRENT_RASTER_COLOR
:
2116 params
[0] = ctx
->Current
.RasterColor
[0];
2117 params
[1] = ctx
->Current
.RasterColor
[1];
2118 params
[2] = ctx
->Current
.RasterColor
[2];
2119 params
[3] = ctx
->Current
.RasterColor
[3];
2121 case GL_CURRENT_RASTER_DISTANCE
:
2122 params
[0] = ctx
->Current
.RasterDistance
;
2124 case GL_CURRENT_RASTER_INDEX
:
2127 case GL_CURRENT_RASTER_POSITION
:
2128 params
[0] = ctx
->Current
.RasterPos
[0];
2129 params
[1] = ctx
->Current
.RasterPos
[1];
2130 params
[2] = ctx
->Current
.RasterPos
[2];
2131 params
[3] = ctx
->Current
.RasterPos
[3];
2133 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
2134 params
[0] = ctx
->Current
.RasterSecondaryColor
[0];
2135 params
[1] = ctx
->Current
.RasterSecondaryColor
[1];
2136 params
[2] = ctx
->Current
.RasterSecondaryColor
[2];
2137 params
[3] = ctx
->Current
.RasterSecondaryColor
[3];
2139 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2141 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
2142 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
2143 _mesa_error(ctx
, GL_INVALID_OPERATION
,
2144 "glGet(raster tex coords, unit %u)", unit
);
2147 params
[0] = ctx
->Current
.RasterTexCoords
[unit
][0];
2148 params
[1] = ctx
->Current
.RasterTexCoords
[unit
][1];
2149 params
[2] = ctx
->Current
.RasterTexCoords
[unit
][2];
2150 params
[3] = ctx
->Current
.RasterTexCoords
[unit
][3];
2153 case GL_CURRENT_RASTER_POSITION_VALID
:
2154 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Current
.RasterPosValid
);
2156 case GL_CURRENT_TEXTURE_COORDS
:
2158 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
2159 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
2160 _mesa_error(ctx
, GL_INVALID_OPERATION
,
2161 "glGet(current tex coords, unit %u)", unit
);
2164 FLUSH_CURRENT(ctx
, 0);
2165 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][0];
2166 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][1];
2167 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][2];
2168 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][3];
2172 params
[0] = ctx
->Pixel
.DepthBias
;
2175 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.depthBits
);
2177 case GL_DEPTH_CLEAR_VALUE
:
2178 params
[0] = ((GLfloat
) ctx
->Depth
.Clear
);
2181 params
[0] = ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2183 case GL_DEPTH_RANGE
:
2184 params
[0] = ctx
->Viewport
.Near
;
2185 params
[1] = ctx
->Viewport
.Far
;
2187 case GL_DEPTH_SCALE
:
2188 params
[0] = ctx
->Pixel
.DepthScale
;
2191 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Test
);
2193 case GL_DEPTH_WRITEMASK
:
2194 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.Mask
);
2197 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.DitherFlag
);
2199 case GL_DOUBLEBUFFER
:
2200 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
2202 case GL_DRAW_BUFFER
:
2203 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
2207 FLUSH_CURRENT(ctx
, 0);
2208 params
[0] = BOOLEAN_TO_FLOAT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
2211 case GL_FEEDBACK_BUFFER_SIZE
:
2212 params
[0] = (GLfloat
)(ctx
->Feedback
.BufferSize
);
2214 case GL_FEEDBACK_BUFFER_TYPE
:
2215 params
[0] = ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2218 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.Enabled
);
2221 params
[0] = ctx
->Fog
.Color
[0];
2222 params
[1] = ctx
->Fog
.Color
[1];
2223 params
[2] = ctx
->Fog
.Color
[2];
2224 params
[3] = ctx
->Fog
.Color
[3];
2226 case GL_FOG_DENSITY
:
2227 params
[0] = ctx
->Fog
.Density
;
2230 params
[0] = ctx
->Fog
.End
;
2233 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2236 params
[0] = ctx
->Fog
.Index
;
2239 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2242 params
[0] = ctx
->Fog
.Start
;
2245 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2248 params
[0] = ctx
->Pixel
.GreenBias
;
2251 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.greenBits
);
2253 case GL_GREEN_SCALE
:
2254 params
[0] = ctx
->Pixel
.GreenScale
;
2257 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.indexBits
);
2259 case GL_INDEX_CLEAR_VALUE
:
2260 params
[0] = (GLfloat
)(ctx
->Color
.ClearIndex
);
2263 params
[0] = BOOLEAN_TO_FLOAT(GL_FALSE
);
2265 case GL_INDEX_OFFSET
:
2266 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexOffset
);
2268 case GL_INDEX_SHIFT
:
2269 params
[0] = (GLfloat
)(ctx
->Pixel
.IndexShift
);
2271 case GL_INDEX_WRITEMASK
:
2272 params
[0] = (GLfloat
)(ctx
->Color
.IndexMask
);
2275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[0].Enabled
);
2278 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[1].Enabled
);
2281 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[2].Enabled
);
2284 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[3].Enabled
);
2287 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[4].Enabled
);
2290 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[5].Enabled
);
2293 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[6].Enabled
);
2296 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Light
[7].Enabled
);
2299 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Enabled
);
2301 case GL_LIGHT_MODEL_AMBIENT
:
2302 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2303 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2304 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2305 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2307 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2308 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2310 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2311 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.LocalViewer
);
2313 case GL_LIGHT_MODEL_TWO_SIDE
:
2314 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.Model
.TwoSide
);
2316 case GL_LINE_SMOOTH
:
2317 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.SmoothFlag
);
2319 case GL_LINE_SMOOTH_HINT
:
2320 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2322 case GL_LINE_STIPPLE
:
2323 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Line
.StippleFlag
);
2325 case GL_LINE_STIPPLE_PATTERN
:
2326 params
[0] = (GLfloat
)(ctx
->Line
.StipplePattern
);
2328 case GL_LINE_STIPPLE_REPEAT
:
2329 params
[0] = (GLfloat
)(ctx
->Line
.StippleFactor
);
2332 params
[0] = ctx
->Line
.Width
;
2334 case GL_LINE_WIDTH_GRANULARITY
:
2335 params
[0] = ctx
->Const
.LineWidthGranularity
;
2337 case GL_LINE_WIDTH_RANGE
:
2338 params
[0] = ctx
->Const
.MinLineWidthAA
;
2339 params
[1] = ctx
->Const
.MaxLineWidthAA
;
2341 case GL_ALIASED_LINE_WIDTH_RANGE
:
2342 params
[0] = ctx
->Const
.MinLineWidth
;
2343 params
[1] = ctx
->Const
.MaxLineWidth
;
2346 params
[0] = (GLfloat
)(ctx
->List
.ListBase
);
2349 params
[0] = (GLfloat
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
2354 if (!ctx
->CompileFlag
)
2356 else if (ctx
->ExecuteFlag
)
2357 mode
= GL_COMPILE_AND_EXECUTE
;
2360 params
[0] = ENUM_TO_FLOAT(mode
);
2363 case GL_INDEX_LOGIC_OP
:
2364 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.IndexLogicOpEnabled
);
2366 case GL_COLOR_LOGIC_OP
:
2367 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Color
.ColorLogicOpEnabled
);
2369 case GL_LOGIC_OP_MODE
:
2370 params
[0] = ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2372 case GL_MAP1_COLOR_4
:
2373 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Color4
);
2375 case GL_MAP1_GRID_DOMAIN
:
2376 params
[0] = ctx
->Eval
.MapGrid1u1
;
2377 params
[1] = ctx
->Eval
.MapGrid1u2
;
2379 case GL_MAP1_GRID_SEGMENTS
:
2380 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid1un
);
2383 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Index
);
2385 case GL_MAP1_NORMAL
:
2386 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Normal
);
2388 case GL_MAP1_TEXTURE_COORD_1
:
2389 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord1
);
2391 case GL_MAP1_TEXTURE_COORD_2
:
2392 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord2
);
2394 case GL_MAP1_TEXTURE_COORD_3
:
2395 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord3
);
2397 case GL_MAP1_TEXTURE_COORD_4
:
2398 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1TextureCoord4
);
2400 case GL_MAP1_VERTEX_3
:
2401 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex3
);
2403 case GL_MAP1_VERTEX_4
:
2404 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Vertex4
);
2406 case GL_MAP2_COLOR_4
:
2407 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Color4
);
2409 case GL_MAP2_GRID_DOMAIN
:
2410 params
[0] = ctx
->Eval
.MapGrid2u1
;
2411 params
[1] = ctx
->Eval
.MapGrid2u2
;
2412 params
[2] = ctx
->Eval
.MapGrid2v1
;
2413 params
[3] = ctx
->Eval
.MapGrid2v2
;
2415 case GL_MAP2_GRID_SEGMENTS
:
2416 params
[0] = (GLfloat
)(ctx
->Eval
.MapGrid2un
);
2417 params
[1] = (GLfloat
)(ctx
->Eval
.MapGrid2vn
);
2420 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Index
);
2422 case GL_MAP2_NORMAL
:
2423 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Normal
);
2425 case GL_MAP2_TEXTURE_COORD_1
:
2426 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord1
);
2428 case GL_MAP2_TEXTURE_COORD_2
:
2429 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord2
);
2431 case GL_MAP2_TEXTURE_COORD_3
:
2432 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord3
);
2434 case GL_MAP2_TEXTURE_COORD_4
:
2435 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2TextureCoord4
);
2437 case GL_MAP2_VERTEX_3
:
2438 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex3
);
2440 case GL_MAP2_VERTEX_4
:
2441 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map2Vertex4
);
2444 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapColorFlag
);
2446 case GL_MAP_STENCIL
:
2447 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MapStencilFlag
);
2449 case GL_MATRIX_MODE
:
2450 params
[0] = ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2452 case GL_MAX_ATTRIB_STACK_DEPTH
:
2453 params
[0] = (GLfloat
)(MAX_ATTRIB_STACK_DEPTH
);
2455 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2456 params
[0] = (GLfloat
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
2458 case GL_MAX_CLIP_PLANES
:
2459 params
[0] = (GLfloat
)(ctx
->Const
.MaxClipPlanes
);
2461 case GL_MAX_ELEMENTS_VERTICES
:
2462 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2464 case GL_MAX_ELEMENTS_INDICES
:
2465 params
[0] = (GLfloat
)(ctx
->Const
.MaxArrayLockSize
);
2467 case GL_MAX_EVAL_ORDER
:
2468 params
[0] = (GLfloat
)(MAX_EVAL_ORDER
);
2471 params
[0] = (GLfloat
)(ctx
->Const
.MaxLights
);
2473 case GL_MAX_LIST_NESTING
:
2474 params
[0] = (GLfloat
)(MAX_LIST_NESTING
);
2476 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2477 params
[0] = (GLfloat
)(MAX_MODELVIEW_STACK_DEPTH
);
2479 case GL_MAX_NAME_STACK_DEPTH
:
2480 params
[0] = (GLfloat
)(MAX_NAME_STACK_DEPTH
);
2482 case GL_MAX_PIXEL_MAP_TABLE
:
2483 params
[0] = (GLfloat
)(MAX_PIXEL_MAP_TABLE
);
2485 case GL_MAX_PROJECTION_STACK_DEPTH
:
2486 params
[0] = (GLfloat
)(MAX_PROJECTION_STACK_DEPTH
);
2488 case GL_MAX_TEXTURE_SIZE
:
2489 params
[0] = (GLfloat
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
2491 case GL_MAX_3D_TEXTURE_SIZE
:
2492 params
[0] = (GLfloat
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
2494 case GL_MAX_TEXTURE_STACK_DEPTH
:
2495 params
[0] = (GLfloat
)(MAX_TEXTURE_STACK_DEPTH
);
2497 case GL_MAX_VIEWPORT_DIMS
:
2498 params
[0] = (GLfloat
)(ctx
->Const
.MaxViewportWidth
);
2499 params
[1] = (GLfloat
)(ctx
->Const
.MaxViewportHeight
);
2501 case GL_MODELVIEW_MATRIX
:
2503 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
2504 params
[0] = matrix
[0];
2505 params
[1] = matrix
[1];
2506 params
[2] = matrix
[2];
2507 params
[3] = matrix
[3];
2508 params
[4] = matrix
[4];
2509 params
[5] = matrix
[5];
2510 params
[6] = matrix
[6];
2511 params
[7] = matrix
[7];
2512 params
[8] = matrix
[8];
2513 params
[9] = matrix
[9];
2514 params
[10] = matrix
[10];
2515 params
[11] = matrix
[11];
2516 params
[12] = matrix
[12];
2517 params
[13] = matrix
[13];
2518 params
[14] = matrix
[14];
2519 params
[15] = matrix
[15];
2522 case GL_MODELVIEW_STACK_DEPTH
:
2523 params
[0] = (GLfloat
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
2525 case GL_NAME_STACK_DEPTH
:
2526 params
[0] = (GLfloat
)(ctx
->Select
.NameStackDepth
);
2529 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.Normalize
);
2531 case GL_PACK_ALIGNMENT
:
2532 params
[0] = (GLfloat
)(ctx
->Pack
.Alignment
);
2534 case GL_PACK_LSB_FIRST
:
2535 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.LsbFirst
);
2537 case GL_PACK_ROW_LENGTH
:
2538 params
[0] = (GLfloat
)(ctx
->Pack
.RowLength
);
2540 case GL_PACK_SKIP_PIXELS
:
2541 params
[0] = (GLfloat
)(ctx
->Pack
.SkipPixels
);
2543 case GL_PACK_SKIP_ROWS
:
2544 params
[0] = (GLfloat
)(ctx
->Pack
.SkipRows
);
2546 case GL_PACK_SWAP_BYTES
:
2547 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.SwapBytes
);
2549 case GL_PACK_SKIP_IMAGES_EXT
:
2550 params
[0] = (GLfloat
)(ctx
->Pack
.SkipImages
);
2552 case GL_PACK_IMAGE_HEIGHT_EXT
:
2553 params
[0] = (GLfloat
)(ctx
->Pack
.ImageHeight
);
2555 case GL_PACK_INVERT_MESA
:
2556 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pack
.Invert
);
2558 case GL_PERSPECTIVE_CORRECTION_HINT
:
2559 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2561 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2562 params
[0] = (GLfloat
)(ctx
->PixelMaps
.AtoA
.Size
);
2564 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2565 params
[0] = (GLfloat
)(ctx
->PixelMaps
.BtoB
.Size
);
2567 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2568 params
[0] = (GLfloat
)(ctx
->PixelMaps
.GtoG
.Size
);
2570 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2571 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoA
.Size
);
2573 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2574 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoB
.Size
);
2576 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2577 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoG
.Size
);
2579 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2580 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoI
.Size
);
2582 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2583 params
[0] = (GLfloat
)(ctx
->PixelMaps
.ItoR
.Size
);
2585 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2586 params
[0] = (GLfloat
)(ctx
->PixelMaps
.RtoR
.Size
);
2588 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2589 params
[0] = (GLfloat
)(ctx
->PixelMaps
.StoS
.Size
);
2592 params
[0] = ctx
->Point
.Size
;
2594 case GL_POINT_SIZE_GRANULARITY
:
2595 params
[0] = ctx
->Const
.PointSizeGranularity
;
2597 case GL_POINT_SIZE_RANGE
:
2598 params
[0] = ctx
->Const
.MinPointSizeAA
;
2599 params
[1] = ctx
->Const
.MaxPointSizeAA
;
2601 case GL_ALIASED_POINT_SIZE_RANGE
:
2602 params
[0] = ctx
->Const
.MinPointSize
;
2603 params
[1] = ctx
->Const
.MaxPointSize
;
2605 case GL_POINT_SMOOTH
:
2606 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.SmoothFlag
);
2608 case GL_POINT_SMOOTH_HINT
:
2609 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2611 case GL_POINT_SIZE_MIN_EXT
:
2612 params
[0] = ctx
->Point
.MinSize
;
2614 case GL_POINT_SIZE_MAX_EXT
:
2615 params
[0] = ctx
->Point
.MaxSize
;
2617 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2618 params
[0] = ctx
->Point
.Threshold
;
2620 case GL_DISTANCE_ATTENUATION_EXT
:
2621 params
[0] = ctx
->Point
.Params
[0];
2622 params
[1] = ctx
->Point
.Params
[1];
2623 params
[2] = ctx
->Point
.Params
[2];
2625 case GL_POLYGON_MODE
:
2626 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2627 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2629 case GL_POLYGON_OFFSET_BIAS_EXT
:
2630 params
[0] = ctx
->Polygon
.OffsetUnits
;
2632 case GL_POLYGON_OFFSET_FACTOR
:
2633 params
[0] = ctx
->Polygon
.OffsetFactor
;
2635 case GL_POLYGON_OFFSET_UNITS
:
2636 params
[0] = ctx
->Polygon
.OffsetUnits
;
2638 case GL_POLYGON_OFFSET_POINT
:
2639 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetPoint
);
2641 case GL_POLYGON_OFFSET_LINE
:
2642 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetLine
);
2644 case GL_POLYGON_OFFSET_FILL
:
2645 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.OffsetFill
);
2647 case GL_POLYGON_SMOOTH
:
2648 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.SmoothFlag
);
2650 case GL_POLYGON_SMOOTH_HINT
:
2651 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2653 case GL_POLYGON_STIPPLE
:
2654 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Polygon
.StippleFlag
);
2656 case GL_PROJECTION_MATRIX
:
2658 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
2659 params
[0] = matrix
[0];
2660 params
[1] = matrix
[1];
2661 params
[2] = matrix
[2];
2662 params
[3] = matrix
[3];
2663 params
[4] = matrix
[4];
2664 params
[5] = matrix
[5];
2665 params
[6] = matrix
[6];
2666 params
[7] = matrix
[7];
2667 params
[8] = matrix
[8];
2668 params
[9] = matrix
[9];
2669 params
[10] = matrix
[10];
2670 params
[11] = matrix
[11];
2671 params
[12] = matrix
[12];
2672 params
[13] = matrix
[13];
2673 params
[14] = matrix
[14];
2674 params
[15] = matrix
[15];
2677 case GL_PROJECTION_STACK_DEPTH
:
2678 params
[0] = (GLfloat
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
2680 case GL_READ_BUFFER
:
2681 params
[0] = ENUM_TO_FLOAT(ctx
->ReadBuffer
->ColorReadBuffer
);
2684 params
[0] = ctx
->Pixel
.RedBias
;
2687 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.redBits
);
2690 params
[0] = ctx
->Pixel
.RedScale
;
2692 case GL_RENDER_MODE
:
2693 params
[0] = ENUM_TO_FLOAT(ctx
->RenderMode
);
2695 case GL_RESCALE_NORMAL
:
2696 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RescaleNormals
);
2699 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
2701 case GL_SCISSOR_BOX
:
2702 params
[0] = (GLfloat
)(ctx
->Scissor
.X
);
2703 params
[1] = (GLfloat
)(ctx
->Scissor
.Y
);
2704 params
[2] = (GLfloat
)(ctx
->Scissor
.Width
);
2705 params
[3] = (GLfloat
)(ctx
->Scissor
.Height
);
2707 case GL_SCISSOR_TEST
:
2708 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Scissor
.Enabled
);
2710 case GL_SELECTION_BUFFER_SIZE
:
2711 params
[0] = (GLfloat
)(ctx
->Select
.BufferSize
);
2713 case GL_SHADE_MODEL
:
2714 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2716 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2717 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.SharedPalette
);
2719 case GL_STENCIL_BITS
:
2720 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
2722 case GL_STENCIL_CLEAR_VALUE
:
2723 params
[0] = (GLfloat
)(ctx
->Stencil
.Clear
);
2725 case GL_STENCIL_FAIL
:
2726 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
2728 case GL_STENCIL_FUNC
:
2729 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
2731 case GL_STENCIL_PASS_DEPTH_FAIL
:
2732 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
2734 case GL_STENCIL_PASS_DEPTH_PASS
:
2735 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
2737 case GL_STENCIL_REF
:
2738 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
2740 case GL_STENCIL_TEST
:
2741 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.Enabled
);
2743 case GL_STENCIL_VALUE_MASK
:
2744 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
2746 case GL_STENCIL_WRITEMASK
:
2747 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
2750 params
[0] = BOOLEAN_TO_FLOAT(ctx
->DrawBuffer
->Visual
.stereoMode
);
2752 case GL_SUBPIXEL_BITS
:
2753 params
[0] = (GLfloat
)(ctx
->Const
.SubPixelBits
);
2756 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D
));
2759 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D
));
2762 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D
));
2764 case GL_TEXTURE_1D_ARRAY_EXT
:
2765 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2766 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
2768 case GL_TEXTURE_2D_ARRAY_EXT
:
2769 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2770 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
2772 case GL_TEXTURE_BINDING_1D
:
2773 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
2775 case GL_TEXTURE_BINDING_2D
:
2776 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
2778 case GL_TEXTURE_BINDING_3D
:
2779 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
2781 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
2782 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2783 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
2785 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
2786 CHECK_EXT1(MESA_texture_array
, "GetFloatv");
2787 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
2789 case GL_TEXTURE_GEN_S
:
2790 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
2792 case GL_TEXTURE_GEN_T
:
2793 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
2795 case GL_TEXTURE_GEN_R
:
2796 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
2798 case GL_TEXTURE_GEN_Q
:
2799 params
[0] = BOOLEAN_TO_FLOAT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
2801 case GL_TEXTURE_MATRIX
:
2803 const GLfloat
*matrix
;
2804 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
2805 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
2806 _mesa_error(ctx
, GL_INVALID_OPERATION
, "glGet(texture matrix %u)",
2810 matrix
= ctx
->TextureMatrixStack
[unit
].Top
->m
;
2811 params
[0] = matrix
[0];
2812 params
[1] = matrix
[1];
2813 params
[2] = matrix
[2];
2814 params
[3] = matrix
[3];
2815 params
[4] = matrix
[4];
2816 params
[5] = matrix
[5];
2817 params
[6] = matrix
[6];
2818 params
[7] = matrix
[7];
2819 params
[8] = matrix
[8];
2820 params
[9] = matrix
[9];
2821 params
[10] = matrix
[10];
2822 params
[11] = matrix
[11];
2823 params
[12] = matrix
[12];
2824 params
[13] = matrix
[13];
2825 params
[14] = matrix
[14];
2826 params
[15] = matrix
[15];
2829 case GL_TEXTURE_STACK_DEPTH
:
2831 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
2832 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
2833 _mesa_error(ctx
, GL_INVALID_OPERATION
,
2834 "glGet(texture stack depth, unit %u)", unit
);
2837 params
[0] = (GLfloat
)(ctx
->TextureMatrixStack
[unit
].Depth
+ 1);
2840 case GL_UNPACK_ALIGNMENT
:
2841 params
[0] = (GLfloat
)(ctx
->Unpack
.Alignment
);
2843 case GL_UNPACK_LSB_FIRST
:
2844 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.LsbFirst
);
2846 case GL_UNPACK_ROW_LENGTH
:
2847 params
[0] = (GLfloat
)(ctx
->Unpack
.RowLength
);
2849 case GL_UNPACK_SKIP_PIXELS
:
2850 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipPixels
);
2852 case GL_UNPACK_SKIP_ROWS
:
2853 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipRows
);
2855 case GL_UNPACK_SWAP_BYTES
:
2856 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.SwapBytes
);
2858 case GL_UNPACK_SKIP_IMAGES_EXT
:
2859 params
[0] = (GLfloat
)(ctx
->Unpack
.SkipImages
);
2861 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2862 params
[0] = (GLfloat
)(ctx
->Unpack
.ImageHeight
);
2864 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
2865 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Unpack
.ClientStorage
);
2868 params
[0] = (GLfloat
)(ctx
->Viewport
.X
);
2869 params
[1] = (GLfloat
)(ctx
->Viewport
.Y
);
2870 params
[2] = (GLfloat
)(ctx
->Viewport
.Width
);
2871 params
[3] = (GLfloat
)(ctx
->Viewport
.Height
);
2874 params
[0] = ctx
->Pixel
.ZoomX
;
2877 params
[0] = ctx
->Pixel
.ZoomY
;
2879 case GL_VERTEX_ARRAY
:
2880 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
2882 case GL_VERTEX_ARRAY_SIZE
:
2883 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
2885 case GL_VERTEX_ARRAY_TYPE
:
2886 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
2888 case GL_VERTEX_ARRAY_STRIDE
:
2889 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
2891 case GL_VERTEX_ARRAY_COUNT_EXT
:
2892 params
[0] = (GLfloat
)(0);
2894 case GL_NORMAL_ARRAY
:
2895 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
2897 case GL_NORMAL_ARRAY_TYPE
:
2898 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Normal
.Type
);
2900 case GL_NORMAL_ARRAY_STRIDE
:
2901 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
2903 case GL_NORMAL_ARRAY_COUNT_EXT
:
2904 params
[0] = (GLfloat
)(0);
2906 case GL_COLOR_ARRAY
:
2907 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
2909 case GL_COLOR_ARRAY_SIZE
:
2910 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Size
);
2912 case GL_COLOR_ARRAY_TYPE
:
2913 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Color
.Type
);
2915 case GL_COLOR_ARRAY_STRIDE
:
2916 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
2918 case GL_COLOR_ARRAY_COUNT_EXT
:
2919 params
[0] = (GLfloat
)(0);
2921 case GL_INDEX_ARRAY
:
2922 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
2924 case GL_INDEX_ARRAY_TYPE
:
2925 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->Index
.Type
);
2927 case GL_INDEX_ARRAY_STRIDE
:
2928 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
2930 case GL_INDEX_ARRAY_COUNT_EXT
:
2931 params
[0] = (GLfloat
)(0);
2933 case GL_TEXTURE_COORD_ARRAY
:
2934 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
2936 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2937 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
2939 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2940 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
2942 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2943 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
2945 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2946 params
[0] = (GLfloat
)(0);
2948 case GL_EDGE_FLAG_ARRAY
:
2949 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
2951 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2952 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
2954 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2955 params
[0] = (GLfloat
)(0);
2957 case GL_MAX_TEXTURE_UNITS_ARB
:
2958 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2959 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureUnits
);
2961 case GL_ACTIVE_TEXTURE_ARB
:
2962 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2963 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2965 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2966 CHECK_EXT1(ARB_multitexture
, "GetFloatv");
2967 params
[0] = (GLfloat
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2969 case GL_TEXTURE_CUBE_MAP_ARB
:
2970 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2971 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
2973 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
2974 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2975 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
2977 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
2978 CHECK_EXT1(ARB_texture_cube_map
, "GetFloatv");
2979 params
[0] = (GLfloat
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
2981 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
2982 params
[0] = (GLfloat
)(ctx
->Hint
.TextureCompression
);
2984 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
2985 params
[0] = (GLfloat
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
2987 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
2990 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
2992 for (i
= 0; i
< n
; i
++)
2993 params
[i
] = ENUM_TO_FLOAT(formats
[i
]);
2996 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2997 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
2998 params
[0] = (GLfloat
)(ctx
->Array
.LockFirst
);
3000 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
3001 CHECK_EXT1(EXT_compiled_vertex_array
, "GetFloatv");
3002 params
[0] = (GLfloat
)(ctx
->Array
.LockCount
);
3004 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
3006 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3007 params
[0] = matrix
[0];
3008 params
[1] = matrix
[4];
3009 params
[2] = matrix
[8];
3010 params
[3] = matrix
[12];
3011 params
[4] = matrix
[1];
3012 params
[5] = matrix
[5];
3013 params
[6] = matrix
[9];
3014 params
[7] = matrix
[13];
3015 params
[8] = matrix
[2];
3016 params
[9] = matrix
[6];
3017 params
[10] = matrix
[10];
3018 params
[11] = matrix
[14];
3019 params
[12] = matrix
[3];
3020 params
[13] = matrix
[7];
3021 params
[14] = matrix
[11];
3022 params
[15] = matrix
[15];
3025 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
3027 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
3028 params
[0] = matrix
[0];
3029 params
[1] = matrix
[4];
3030 params
[2] = matrix
[8];
3031 params
[3] = matrix
[12];
3032 params
[4] = matrix
[1];
3033 params
[5] = matrix
[5];
3034 params
[6] = matrix
[9];
3035 params
[7] = matrix
[13];
3036 params
[8] = matrix
[2];
3037 params
[9] = matrix
[6];
3038 params
[10] = matrix
[10];
3039 params
[11] = matrix
[14];
3040 params
[12] = matrix
[3];
3041 params
[13] = matrix
[7];
3042 params
[14] = matrix
[11];
3043 params
[15] = matrix
[15];
3046 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
3048 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
3049 params
[0] = matrix
[0];
3050 params
[1] = matrix
[4];
3051 params
[2] = matrix
[8];
3052 params
[3] = matrix
[12];
3053 params
[4] = matrix
[1];
3054 params
[5] = matrix
[5];
3055 params
[6] = matrix
[9];
3056 params
[7] = matrix
[13];
3057 params
[8] = matrix
[2];
3058 params
[9] = matrix
[6];
3059 params
[10] = matrix
[10];
3060 params
[11] = matrix
[14];
3061 params
[12] = matrix
[3];
3062 params
[13] = matrix
[7];
3063 params
[14] = matrix
[11];
3064 params
[15] = matrix
[15];
3067 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
3069 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
3070 params
[0] = matrix
[0];
3071 params
[1] = matrix
[4];
3072 params
[2] = matrix
[8];
3073 params
[3] = matrix
[12];
3074 params
[4] = matrix
[1];
3075 params
[5] = matrix
[5];
3076 params
[6] = matrix
[9];
3077 params
[7] = matrix
[13];
3078 params
[8] = matrix
[2];
3079 params
[9] = matrix
[6];
3080 params
[10] = matrix
[10];
3081 params
[11] = matrix
[14];
3082 params
[12] = matrix
[3];
3083 params
[13] = matrix
[7];
3084 params
[14] = matrix
[11];
3085 params
[15] = matrix
[15];
3088 case GL_COLOR_MATRIX_SGI
:
3090 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
3091 params
[0] = matrix
[0];
3092 params
[1] = matrix
[1];
3093 params
[2] = matrix
[2];
3094 params
[3] = matrix
[3];
3095 params
[4] = matrix
[4];
3096 params
[5] = matrix
[5];
3097 params
[6] = matrix
[6];
3098 params
[7] = matrix
[7];
3099 params
[8] = matrix
[8];
3100 params
[9] = matrix
[9];
3101 params
[10] = matrix
[10];
3102 params
[11] = matrix
[11];
3103 params
[12] = matrix
[12];
3104 params
[13] = matrix
[13];
3105 params
[14] = matrix
[14];
3106 params
[15] = matrix
[15];
3109 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3110 params
[0] = (GLfloat
)(ctx
->ColorMatrixStack
.Depth
+ 1);
3112 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3113 params
[0] = (GLfloat
)(MAX_COLOR_STACK_DEPTH
);
3115 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3116 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[0];
3118 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3119 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[1];
3121 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3122 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[2];
3124 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3125 params
[0] = ctx
->Pixel
.PostColorMatrixScale
[3];
3127 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3128 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[0];
3130 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3131 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[1];
3133 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3134 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[2];
3136 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3137 params
[0] = ctx
->Pixel
.PostColorMatrixBias
[3];
3139 case GL_CONVOLUTION_1D_EXT
:
3140 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3141 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution1DEnabled
);
3143 case GL_CONVOLUTION_2D_EXT
:
3144 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3145 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Convolution2DEnabled
);
3147 case GL_SEPARABLE_2D_EXT
:
3148 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3149 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.Separable2DEnabled
);
3151 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3152 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3153 params
[0] = ctx
->Pixel
.PostConvolutionScale
[0];
3155 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3156 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3157 params
[0] = ctx
->Pixel
.PostConvolutionScale
[1];
3159 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3160 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3161 params
[0] = ctx
->Pixel
.PostConvolutionScale
[2];
3163 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3164 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3165 params
[0] = ctx
->Pixel
.PostConvolutionScale
[3];
3167 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3168 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3169 params
[0] = ctx
->Pixel
.PostConvolutionBias
[0];
3171 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3172 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3173 params
[0] = ctx
->Pixel
.PostConvolutionBias
[1];
3175 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3176 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3177 params
[0] = ctx
->Pixel
.PostConvolutionBias
[2];
3179 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3180 CHECK_EXT1(EXT_convolution
, "GetFloatv");
3181 params
[0] = ctx
->Pixel
.PostConvolutionBias
[3];
3184 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3185 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.HistogramEnabled
);
3188 CHECK_EXT1(EXT_histogram
, "GetFloatv");
3189 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.MinMaxEnabled
);
3191 case GL_COLOR_TABLE_SGI
:
3192 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3193 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
3195 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3196 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3197 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
3199 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3200 CHECK_EXT1(SGI_color_table
, "GetFloatv");
3201 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
3203 case GL_TEXTURE_COLOR_TABLE_SGI
:
3204 CHECK_EXT1(SGI_texture_color_table
, "GetFloatv");
3205 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
3207 case GL_COLOR_SUM_EXT
:
3208 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetFloatv");
3209 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Fog
.ColorSumEnabled
);
3211 case GL_CURRENT_SECONDARY_COLOR_EXT
:
3212 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3214 FLUSH_CURRENT(ctx
, 0);
3215 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0];
3216 params
[1] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1];
3217 params
[2] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2];
3218 params
[3] = ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3];
3221 case GL_SECONDARY_COLOR_ARRAY_EXT
:
3222 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3223 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
3225 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
3226 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3227 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
3229 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
3230 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3231 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
3233 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
3234 CHECK_EXT1(EXT_secondary_color
, "GetFloatv");
3235 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
3237 case GL_CURRENT_FOG_COORDINATE_EXT
:
3238 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3240 FLUSH_CURRENT(ctx
, 0);
3241 params
[0] = ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0];
3244 case GL_FOG_COORDINATE_ARRAY_EXT
:
3245 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3246 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
3248 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
3249 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3250 params
[0] = ENUM_TO_FLOAT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
3252 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
3253 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3254 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
3256 case GL_FOG_COORDINATE_SOURCE_EXT
:
3257 CHECK_EXT1(EXT_fog_coord
, "GetFloatv");
3258 params
[0] = ENUM_TO_FLOAT(ctx
->Fog
.FogCoordinateSource
);
3260 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
3261 CHECK_EXT1(EXT_texture_lod_bias
, "GetFloatv");
3262 params
[0] = ctx
->Const
.MaxTextureLodBias
;
3264 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
3265 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetFloatv");
3266 params
[0] = ctx
->Const
.MaxTextureMaxAnisotropy
;
3268 case GL_MULTISAMPLE_ARB
:
3269 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.Enabled
);
3271 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
3272 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToCoverage
);
3274 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
3275 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleAlphaToOne
);
3277 case GL_SAMPLE_COVERAGE_ARB
:
3278 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverage
);
3280 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
3281 params
[0] = ctx
->Multisample
.SampleCoverageValue
;
3283 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
3284 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Multisample
.SampleCoverageInvert
);
3286 case GL_SAMPLE_BUFFERS_ARB
:
3287 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
3289 case GL_SAMPLES_ARB
:
3290 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Visual
.samples
);
3292 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
3293 CHECK_EXT1(IBM_rasterpos_clip
, "GetFloatv");
3294 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.RasterPositionUnclipped
);
3296 case GL_POINT_SPRITE_NV
:
3297 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3298 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Point
.PointSprite
);
3300 case GL_POINT_SPRITE_R_MODE_NV
:
3301 CHECK_EXT1(NV_point_sprite
, "GetFloatv");
3302 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteRMode
);
3304 case GL_POINT_SPRITE_COORD_ORIGIN
:
3305 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetFloatv");
3306 params
[0] = ENUM_TO_FLOAT(ctx
->Point
.SpriteOrigin
);
3308 case GL_GENERATE_MIPMAP_HINT_SGIS
:
3309 CHECK_EXT1(SGIS_generate_mipmap
, "GetFloatv");
3310 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.GenerateMipmap
);
3312 case GL_VERTEX_PROGRAM_BINDING_NV
:
3313 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3314 params
[0] = (GLfloat
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
3316 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
3317 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3318 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
3320 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
3321 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3322 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
3324 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
3325 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3326 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
3328 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
3329 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3330 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
3332 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
3333 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3334 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
3336 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
3337 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3338 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
3340 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
3341 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3342 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
3344 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
3345 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3346 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
3348 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
3349 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3350 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
3352 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
3353 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3354 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
3356 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
3357 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3358 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
3360 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
3361 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3362 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
3364 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
3365 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3366 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
3368 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
3369 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3370 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
3372 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
3373 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3374 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
3376 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
3377 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3378 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
3380 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
3381 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3382 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[0]);
3384 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
3385 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3386 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[1]);
3388 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
3389 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3390 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[2]);
3392 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
3393 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3394 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[3]);
3396 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
3397 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3398 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[4]);
3400 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
3401 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3402 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[5]);
3404 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
3405 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3406 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[6]);
3408 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
3409 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3410 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[7]);
3412 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
3413 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3414 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[8]);
3416 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
3417 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3418 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[9]);
3420 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
3421 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3422 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[10]);
3424 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
3425 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3426 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[11]);
3428 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
3429 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3430 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[12]);
3432 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
3433 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3434 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[13]);
3436 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
3437 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3438 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[14]);
3440 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
3441 CHECK_EXT1(NV_vertex_program
, "GetFloatv");
3442 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Eval
.Map1Attrib
[15]);
3444 case GL_FRAGMENT_PROGRAM_NV
:
3445 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3446 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3448 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
3449 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3450 params
[0] = (GLfloat
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
3452 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
3453 CHECK_EXT1(NV_fragment_program
, "GetFloatv");
3454 params
[0] = (GLfloat
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
3456 case GL_TEXTURE_RECTANGLE_NV
:
3457 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3458 params
[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
3460 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
3461 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3462 params
[0] = (GLfloat
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
3464 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
3465 CHECK_EXT1(NV_texture_rectangle
, "GetFloatv");
3466 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureRectSize
);
3468 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
3469 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3470 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Stencil
.TestTwoSide
);
3472 case GL_ACTIVE_STENCIL_FACE_EXT
:
3473 CHECK_EXT1(EXT_stencil_two_side
, "GetFloatv");
3474 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
3476 case GL_MAX_SHININESS_NV
:
3477 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3478 params
[0] = ctx
->Const
.MaxShininess
;
3480 case GL_MAX_SPOT_EXPONENT_NV
:
3481 CHECK_EXT1(NV_light_max_exponent
, "GetFloatv");
3482 params
[0] = ctx
->Const
.MaxSpotExponent
;
3484 case GL_ARRAY_BUFFER_BINDING_ARB
:
3485 params
[0] = (GLfloat
)(ctx
->Array
.ArrayBufferObj
->Name
);
3487 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
3488 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
3490 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
3491 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
3493 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3494 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
3496 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
3497 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
3499 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
3500 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
3502 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
3503 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
3505 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
3506 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
3508 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
3509 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
3511 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
3512 params
[0] = (GLfloat
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
3514 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
3515 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3516 params
[0] = (GLfloat
)(ctx
->Pack
.BufferObj
->Name
);
3518 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
3519 CHECK_EXT1(EXT_pixel_buffer_object
, "GetFloatv");
3520 params
[0] = (GLfloat
)(ctx
->Unpack
.BufferObj
->Name
);
3522 case GL_VERTEX_PROGRAM_ARB
:
3523 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3524 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.Enabled
);
3526 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
3527 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3528 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.PointSizeEnabled
);
3530 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
3531 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetFloatv");
3532 params
[0] = BOOLEAN_TO_FLOAT(ctx
->VertexProgram
.TwoSideEnabled
);
3534 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
3535 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3536 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
3538 case GL_MAX_PROGRAM_MATRICES_ARB
:
3539 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3540 params
[0] = (GLfloat
)(ctx
->Const
.MaxProgramMatrices
);
3542 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
3543 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetFloatv");
3544 params
[0] = BOOLEAN_TO_FLOAT(ctx
->CurrentStack
->Depth
+ 1);
3546 case GL_CURRENT_MATRIX_ARB
:
3547 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3549 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3550 params
[0] = matrix
[0];
3551 params
[1] = matrix
[1];
3552 params
[2] = matrix
[2];
3553 params
[3] = matrix
[3];
3554 params
[4] = matrix
[4];
3555 params
[5] = matrix
[5];
3556 params
[6] = matrix
[6];
3557 params
[7] = matrix
[7];
3558 params
[8] = matrix
[8];
3559 params
[9] = matrix
[9];
3560 params
[10] = matrix
[10];
3561 params
[11] = matrix
[11];
3562 params
[12] = matrix
[12];
3563 params
[13] = matrix
[13];
3564 params
[14] = matrix
[14];
3565 params
[15] = matrix
[15];
3568 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
3569 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetFloatv");
3571 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
3572 params
[0] = matrix
[0];
3573 params
[1] = matrix
[4];
3574 params
[2] = matrix
[8];
3575 params
[3] = matrix
[12];
3576 params
[4] = matrix
[1];
3577 params
[5] = matrix
[5];
3578 params
[6] = matrix
[9];
3579 params
[7] = matrix
[13];
3580 params
[8] = matrix
[2];
3581 params
[9] = matrix
[6];
3582 params
[10] = matrix
[10];
3583 params
[11] = matrix
[14];
3584 params
[12] = matrix
[3];
3585 params
[13] = matrix
[7];
3586 params
[14] = matrix
[11];
3587 params
[15] = matrix
[15];
3590 case GL_MAX_VERTEX_ATTRIBS_ARB
:
3591 CHECK_EXT1(ARB_vertex_program
, "GetFloatv");
3592 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
3594 case GL_PROGRAM_ERROR_POSITION_ARB
:
3595 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetFloatv");
3596 params
[0] = (GLfloat
)(ctx
->Program
.ErrorPos
);
3598 case GL_FRAGMENT_PROGRAM_ARB
:
3599 CHECK_EXT1(ARB_fragment_program
, "GetFloatv");
3600 params
[0] = BOOLEAN_TO_FLOAT(ctx
->FragmentProgram
.Enabled
);
3602 case GL_MAX_TEXTURE_COORDS_ARB
:
3603 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3604 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureCoordUnits
);
3606 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
3607 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetFloatv");
3608 params
[0] = (GLfloat
)(ctx
->Const
.MaxTextureImageUnits
);
3610 case GL_DEPTH_BOUNDS_TEST_EXT
:
3611 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3612 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Depth
.BoundsTest
);
3614 case GL_DEPTH_BOUNDS_EXT
:
3615 CHECK_EXT1(EXT_depth_bounds_test
, "GetFloatv");
3616 params
[0] = ctx
->Depth
.BoundsMin
;
3617 params
[1] = ctx
->Depth
.BoundsMax
;
3619 case GL_DEPTH_CLAMP
:
3620 CHECK_EXT1(ARB_depth_clamp
, "GetFloatv");
3621 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Transform
.DepthClamp
);
3623 case GL_MAX_DRAW_BUFFERS_ARB
:
3624 params
[0] = (GLfloat
)(ctx
->Const
.MaxDrawBuffers
);
3626 case GL_DRAW_BUFFER0_ARB
:
3627 params
[0] = ENUM_TO_FLOAT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
3629 case GL_DRAW_BUFFER1_ARB
:
3632 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3633 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3636 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
3637 params
[0] = ENUM_TO_FLOAT(buffer
);
3640 case GL_DRAW_BUFFER2_ARB
:
3643 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3644 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3647 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
3648 params
[0] = ENUM_TO_FLOAT(buffer
);
3651 case GL_DRAW_BUFFER3_ARB
:
3654 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
3655 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
3658 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
3659 params
[0] = ENUM_TO_FLOAT(buffer
);
3662 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
3663 CHECK_EXT1(OES_read_format
, "GetFloatv");
3664 params
[0] = (GLfloat
)(_mesa_get_color_read_type(ctx
));
3666 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
3667 CHECK_EXT1(OES_read_format
, "GetFloatv");
3668 params
[0] = (GLfloat
)(_mesa_get_color_read_format(ctx
));
3670 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
3671 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3672 params
[0] = (GLfloat
)(6);
3674 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
3675 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3676 params
[0] = (GLfloat
)(8);
3678 case GL_NUM_PASSES_ATI
:
3679 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3680 params
[0] = (GLfloat
)(2);
3682 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
3683 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3684 params
[0] = (GLfloat
)(8);
3686 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
3687 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3688 params
[0] = (GLfloat
)(16);
3690 case GL_COLOR_ALPHA_PAIRING_ATI
:
3691 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3692 params
[0] = BOOLEAN_TO_FLOAT(GL_TRUE
);
3694 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
3695 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3696 params
[0] = (GLfloat
)(3);
3698 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
3699 CHECK_EXT1(ATI_fragment_shader
, "GetFloatv");
3700 params
[0] = (GLfloat
)(3);
3702 case GL_STENCIL_BACK_FUNC
:
3703 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.Function
[1]);
3705 case GL_STENCIL_BACK_VALUE_MASK
:
3706 params
[0] = (GLfloat
)(ctx
->Stencil
.ValueMask
[1]);
3708 case GL_STENCIL_BACK_WRITEMASK
:
3709 params
[0] = (GLfloat
)(ctx
->Stencil
.WriteMask
[1]);
3711 case GL_STENCIL_BACK_REF
:
3712 params
[0] = (GLfloat
)(ctx
->Stencil
.Ref
[1]);
3714 case GL_STENCIL_BACK_FAIL
:
3715 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
[1]);
3717 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
3718 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
[1]);
3720 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
3721 params
[0] = ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
[1]);
3723 case GL_FRAMEBUFFER_BINDING_EXT
:
3724 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3725 params
[0] = (GLfloat
)(ctx
->DrawBuffer
->Name
);
3727 case GL_RENDERBUFFER_BINDING_EXT
:
3728 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3729 params
[0] = (GLfloat
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
3731 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
3732 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3733 params
[0] = (GLfloat
)(ctx
->Const
.MaxColorAttachments
);
3735 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
3736 CHECK_EXT1(EXT_framebuffer_object
, "GetFloatv");
3737 params
[0] = (GLfloat
)(ctx
->Const
.MaxRenderbufferSize
);
3739 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
3740 CHECK_EXT1(EXT_framebuffer_blit
, "GetFloatv");
3741 params
[0] = (GLfloat
)(ctx
->ReadBuffer
->Name
);
3743 case GL_PROVOKING_VERTEX_EXT
:
3744 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3745 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Light
.ProvokingVertex
);
3747 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
3748 CHECK_EXT1(EXT_provoking_vertex
, "GetFloatv");
3749 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
3751 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
3752 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3753 params
[0] = (GLfloat
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
3755 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
3756 CHECK_EXT1(ARB_fragment_shader
, "GetFloatv");
3757 params
[0] = ENUM_TO_FLOAT(ctx
->Hint
.FragmentShaderDerivative
);
3759 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
3760 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3761 params
[0] = (GLfloat
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
3763 case GL_MAX_VARYING_FLOATS_ARB
:
3764 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3765 params
[0] = (GLfloat
)(ctx
->Const
.MaxVarying
* 4);
3767 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
3768 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3769 params
[0] = (GLfloat
)(ctx
->Const
.MaxVertexTextureImageUnits
);
3771 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
3772 CHECK_EXT1(ARB_vertex_shader
, "GetFloatv");
3773 params
[0] = (GLfloat
)(ctx
->Const
.MaxCombinedTextureImageUnits
);
3775 case GL_CURRENT_PROGRAM
:
3776 CHECK_EXT1(ARB_shader_objects
, "GetFloatv");
3777 params
[0] = (GLfloat
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
3779 case GL_MAX_SAMPLES
:
3780 CHECK_EXT1(ARB_framebuffer_object
, "GetFloatv");
3781 params
[0] = (GLfloat
)(ctx
->Const
.MaxSamples
);
3783 case GL_VERTEX_ARRAY_BINDING_APPLE
:
3784 CHECK_EXT1(APPLE_vertex_array_object
, "GetFloatv");
3785 params
[0] = (GLfloat
)(ctx
->Array
.ArrayObj
->Name
);
3787 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
3788 CHECK_EXT1(ARB_seamless_cube_map
, "GetFloatv");
3789 params
[0] = BOOLEAN_TO_FLOAT(ctx
->Texture
.CubeMapSeamless
);
3791 case GL_MAX_SERVER_WAIT_TIMEOUT
:
3792 CHECK_EXT1(ARB_sync
, "GetFloatv");
3793 params
[0] = (GLfloat
)(ctx
->Const
.MaxServerWaitTimeout
);
3795 case GL_NUM_EXTENSIONS
:
3796 params
[0] = (GLfloat
)(_mesa_get_extension_count(ctx
));
3798 case GL_MAJOR_VERSION
:
3799 params
[0] = (GLfloat
)(ctx
->VersionMajor
);
3801 case GL_MINOR_VERSION
:
3802 params
[0] = (GLfloat
)(ctx
->VersionMinor
);
3805 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetFloatv(pname=0x%x)", pname
);
3810 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3812 GET_CURRENT_CONTEXT(ctx
);
3813 ASSERT_OUTSIDE_BEGIN_END(ctx
);
3819 _mesa_update_state(ctx
);
3821 if (ctx
->Driver
.GetIntegerv
&&
3822 ctx
->Driver
.GetIntegerv(ctx
, pname
, params
))
3826 case GL_ACCUM_RED_BITS
:
3827 params
[0] = ctx
->DrawBuffer
->Visual
.accumRedBits
;
3829 case GL_ACCUM_GREEN_BITS
:
3830 params
[0] = ctx
->DrawBuffer
->Visual
.accumGreenBits
;
3832 case GL_ACCUM_BLUE_BITS
:
3833 params
[0] = ctx
->DrawBuffer
->Visual
.accumBlueBits
;
3835 case GL_ACCUM_ALPHA_BITS
:
3836 params
[0] = ctx
->DrawBuffer
->Visual
.accumAlphaBits
;
3838 case GL_ACCUM_CLEAR_VALUE
:
3839 params
[0] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[0]);
3840 params
[1] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[1]);
3841 params
[2] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[2]);
3842 params
[3] = FLOAT_TO_INT(ctx
->Accum
.ClearColor
[3]);
3845 params
[0] = IROUND(ctx
->Pixel
.AlphaBias
);
3848 params
[0] = ctx
->DrawBuffer
->Visual
.alphaBits
;
3850 case GL_ALPHA_SCALE
:
3851 params
[0] = IROUND(ctx
->Pixel
.AlphaScale
);
3854 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.AlphaEnabled
);
3856 case GL_ALPHA_TEST_FUNC
:
3857 params
[0] = ENUM_TO_INT(ctx
->Color
.AlphaFunc
);
3859 case GL_ALPHA_TEST_REF
:
3860 params
[0] = FLOAT_TO_INT(ctx
->Color
.AlphaRef
);
3862 case GL_ATTRIB_STACK_DEPTH
:
3863 params
[0] = ctx
->AttribStackDepth
;
3865 case GL_AUTO_NORMAL
:
3866 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.AutoNormal
);
3868 case GL_AUX_BUFFERS
:
3869 params
[0] = ctx
->DrawBuffer
->Visual
.numAuxBuffers
;
3872 params
[0] = BOOLEAN_TO_INT((ctx
->Color
.BlendEnabled
& 1));
3875 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3878 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3880 case GL_BLEND_SRC_RGB_EXT
:
3881 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcRGB
);
3883 case GL_BLEND_DST_RGB_EXT
:
3884 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstRGB
);
3886 case GL_BLEND_SRC_ALPHA_EXT
:
3887 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendSrcA
);
3889 case GL_BLEND_DST_ALPHA_EXT
:
3890 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendDstA
);
3892 case GL_BLEND_EQUATION
:
3893 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationRGB
);
3895 case GL_BLEND_EQUATION_ALPHA_EXT
:
3896 params
[0] = ENUM_TO_INT(ctx
->Color
.BlendEquationA
);
3898 case GL_BLEND_COLOR_EXT
:
3899 params
[0] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[0]);
3900 params
[1] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[1]);
3901 params
[2] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[2]);
3902 params
[3] = FLOAT_TO_INT(ctx
->Color
.BlendColor
[3]);
3905 params
[0] = IROUND(ctx
->Pixel
.BlueBias
);
3908 params
[0] = ctx
->DrawBuffer
->Visual
.blueBits
;
3911 params
[0] = IROUND(ctx
->Pixel
.BlueScale
);
3913 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3914 params
[0] = ctx
->ClientAttribStackDepth
;
3916 case GL_CLIP_PLANE0
:
3917 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
3919 case GL_CLIP_PLANE1
:
3920 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
3922 case GL_CLIP_PLANE2
:
3923 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
3925 case GL_CLIP_PLANE3
:
3926 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
3928 case GL_CLIP_PLANE4
:
3929 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
3931 case GL_CLIP_PLANE5
:
3932 params
[0] = BOOLEAN_TO_INT((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
3934 case GL_COLOR_CLEAR_VALUE
:
3935 params
[0] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[0]);
3936 params
[1] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[1]);
3937 params
[2] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[2]);
3938 params
[3] = FLOAT_TO_INT(ctx
->Color
.ClearColor
[3]);
3940 case GL_COLOR_MATERIAL
:
3941 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ColorMaterialEnabled
);
3943 case GL_COLOR_MATERIAL_FACE
:
3944 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialFace
);
3946 case GL_COLOR_MATERIAL_PARAMETER
:
3947 params
[0] = ENUM_TO_INT(ctx
->Light
.ColorMaterialMode
);
3949 case GL_COLOR_WRITEMASK
:
3950 params
[0] = ctx
->Color
.ColorMask
[0][RCOMP
] ? 1 : 0;
3951 params
[1] = ctx
->Color
.ColorMask
[0][GCOMP
] ? 1 : 0;
3952 params
[2] = ctx
->Color
.ColorMask
[0][BCOMP
] ? 1 : 0;
3953 params
[3] = ctx
->Color
.ColorMask
[0][ACOMP
] ? 1 : 0;
3956 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.CullFlag
);
3958 case GL_CULL_FACE_MODE
:
3959 params
[0] = ENUM_TO_INT(ctx
->Polygon
.CullFaceMode
);
3961 case GL_CURRENT_COLOR
:
3963 FLUSH_CURRENT(ctx
, 0);
3964 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
3965 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
3966 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
3967 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
3970 case GL_CURRENT_INDEX
:
3972 FLUSH_CURRENT(ctx
, 0);
3973 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
3976 case GL_CURRENT_NORMAL
:
3978 FLUSH_CURRENT(ctx
, 0);
3979 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
3980 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
3981 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
3984 case GL_CURRENT_RASTER_COLOR
:
3985 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[0]);
3986 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[1]);
3987 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[2]);
3988 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterColor
[3]);
3990 case GL_CURRENT_RASTER_DISTANCE
:
3991 params
[0] = IROUND(ctx
->Current
.RasterDistance
);
3993 case GL_CURRENT_RASTER_INDEX
:
3994 params
[0] = IROUND(1.0);
3996 case GL_CURRENT_RASTER_POSITION
:
3997 params
[0] = IROUND(ctx
->Current
.RasterPos
[0]);
3998 params
[1] = IROUND(ctx
->Current
.RasterPos
[1]);
3999 params
[2] = IROUND(ctx
->Current
.RasterPos
[2]);
4000 params
[3] = IROUND(ctx
->Current
.RasterPos
[3]);
4002 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
4003 params
[0] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[0]);
4004 params
[1] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[1]);
4005 params
[2] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[2]);
4006 params
[3] = FLOAT_TO_INT(ctx
->Current
.RasterSecondaryColor
[3]);
4008 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
4010 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
4011 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
4012 _mesa_error(ctx
, GL_INVALID_OPERATION
,
4013 "glGet(raster tex coords, unit %u)", unit
);
4016 params
[0] = IROUND(ctx
->Current
.RasterTexCoords
[unit
][0]);
4017 params
[1] = IROUND(ctx
->Current
.RasterTexCoords
[unit
][1]);
4018 params
[2] = IROUND(ctx
->Current
.RasterTexCoords
[unit
][2]);
4019 params
[3] = IROUND(ctx
->Current
.RasterTexCoords
[unit
][3]);
4022 case GL_CURRENT_RASTER_POSITION_VALID
:
4023 params
[0] = BOOLEAN_TO_INT(ctx
->Current
.RasterPosValid
);
4025 case GL_CURRENT_TEXTURE_COORDS
:
4027 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
4028 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
4029 _mesa_error(ctx
, GL_INVALID_OPERATION
,
4030 "glGet(current tex coords, unit %u)", unit
);
4033 FLUSH_CURRENT(ctx
, 0);
4034 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][0]);
4035 params
[1] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][1]);
4036 params
[2] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][2]);
4037 params
[3] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][3]);
4041 params
[0] = IROUND(ctx
->Pixel
.DepthBias
);
4044 params
[0] = ctx
->DrawBuffer
->Visual
.depthBits
;
4046 case GL_DEPTH_CLEAR_VALUE
:
4047 params
[0] = FLOAT_TO_INT(((GLfloat
) ctx
->Depth
.Clear
));
4050 params
[0] = ENUM_TO_INT(ctx
->Depth
.Func
);
4052 case GL_DEPTH_RANGE
:
4053 params
[0] = FLOAT_TO_INT(ctx
->Viewport
.Near
);
4054 params
[1] = FLOAT_TO_INT(ctx
->Viewport
.Far
);
4056 case GL_DEPTH_SCALE
:
4057 params
[0] = IROUND(ctx
->Pixel
.DepthScale
);
4060 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Test
);
4062 case GL_DEPTH_WRITEMASK
:
4063 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.Mask
);
4066 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.DitherFlag
);
4068 case GL_DOUBLEBUFFER
:
4069 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
4071 case GL_DRAW_BUFFER
:
4072 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
4076 FLUSH_CURRENT(ctx
, 0);
4077 params
[0] = BOOLEAN_TO_INT((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
4080 case GL_FEEDBACK_BUFFER_SIZE
:
4081 params
[0] = ctx
->Feedback
.BufferSize
;
4083 case GL_FEEDBACK_BUFFER_TYPE
:
4084 params
[0] = ENUM_TO_INT(ctx
->Feedback
.Type
);
4087 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.Enabled
);
4090 params
[0] = FLOAT_TO_INT(ctx
->Fog
.Color
[0]);
4091 params
[1] = FLOAT_TO_INT(ctx
->Fog
.Color
[1]);
4092 params
[2] = FLOAT_TO_INT(ctx
->Fog
.Color
[2]);
4093 params
[3] = FLOAT_TO_INT(ctx
->Fog
.Color
[3]);
4095 case GL_FOG_DENSITY
:
4096 params
[0] = IROUND(ctx
->Fog
.Density
);
4099 params
[0] = IROUND(ctx
->Fog
.End
);
4102 params
[0] = ENUM_TO_INT(ctx
->Hint
.Fog
);
4105 params
[0] = IROUND(ctx
->Fog
.Index
);
4108 params
[0] = ENUM_TO_INT(ctx
->Fog
.Mode
);
4111 params
[0] = IROUND(ctx
->Fog
.Start
);
4114 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontFace
);
4117 params
[0] = IROUND(ctx
->Pixel
.GreenBias
);
4120 params
[0] = ctx
->DrawBuffer
->Visual
.greenBits
;
4122 case GL_GREEN_SCALE
:
4123 params
[0] = IROUND(ctx
->Pixel
.GreenScale
);
4126 params
[0] = ctx
->DrawBuffer
->Visual
.indexBits
;
4128 case GL_INDEX_CLEAR_VALUE
:
4129 params
[0] = ctx
->Color
.ClearIndex
;
4132 params
[0] = BOOLEAN_TO_INT(GL_FALSE
);
4134 case GL_INDEX_OFFSET
:
4135 params
[0] = ctx
->Pixel
.IndexOffset
;
4137 case GL_INDEX_SHIFT
:
4138 params
[0] = ctx
->Pixel
.IndexShift
;
4140 case GL_INDEX_WRITEMASK
:
4141 params
[0] = ctx
->Color
.IndexMask
;
4144 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[0].Enabled
);
4147 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[1].Enabled
);
4150 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[2].Enabled
);
4153 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[3].Enabled
);
4156 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[4].Enabled
);
4159 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[5].Enabled
);
4162 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[6].Enabled
);
4165 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Light
[7].Enabled
);
4168 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Enabled
);
4170 case GL_LIGHT_MODEL_AMBIENT
:
4171 params
[0] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[0]);
4172 params
[1] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[1]);
4173 params
[2] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[2]);
4174 params
[3] = FLOAT_TO_INT(ctx
->Light
.Model
.Ambient
[3]);
4176 case GL_LIGHT_MODEL_COLOR_CONTROL
:
4177 params
[0] = ENUM_TO_INT(ctx
->Light
.Model
.ColorControl
);
4179 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
4180 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.LocalViewer
);
4182 case GL_LIGHT_MODEL_TWO_SIDE
:
4183 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.Model
.TwoSide
);
4185 case GL_LINE_SMOOTH
:
4186 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.SmoothFlag
);
4188 case GL_LINE_SMOOTH_HINT
:
4189 params
[0] = ENUM_TO_INT(ctx
->Hint
.LineSmooth
);
4191 case GL_LINE_STIPPLE
:
4192 params
[0] = BOOLEAN_TO_INT(ctx
->Line
.StippleFlag
);
4194 case GL_LINE_STIPPLE_PATTERN
:
4195 params
[0] = ctx
->Line
.StipplePattern
;
4197 case GL_LINE_STIPPLE_REPEAT
:
4198 params
[0] = ctx
->Line
.StippleFactor
;
4201 params
[0] = IROUND(ctx
->Line
.Width
);
4203 case GL_LINE_WIDTH_GRANULARITY
:
4204 params
[0] = IROUND(ctx
->Const
.LineWidthGranularity
);
4206 case GL_LINE_WIDTH_RANGE
:
4207 params
[0] = IROUND(ctx
->Const
.MinLineWidthAA
);
4208 params
[1] = IROUND(ctx
->Const
.MaxLineWidthAA
);
4210 case GL_ALIASED_LINE_WIDTH_RANGE
:
4211 params
[0] = IROUND(ctx
->Const
.MinLineWidth
);
4212 params
[1] = IROUND(ctx
->Const
.MaxLineWidth
);
4215 params
[0] = ctx
->List
.ListBase
;
4218 params
[0] = (ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0);
4223 if (!ctx
->CompileFlag
)
4225 else if (ctx
->ExecuteFlag
)
4226 mode
= GL_COMPILE_AND_EXECUTE
;
4229 params
[0] = ENUM_TO_INT(mode
);
4232 case GL_INDEX_LOGIC_OP
:
4233 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.IndexLogicOpEnabled
);
4235 case GL_COLOR_LOGIC_OP
:
4236 params
[0] = BOOLEAN_TO_INT(ctx
->Color
.ColorLogicOpEnabled
);
4238 case GL_LOGIC_OP_MODE
:
4239 params
[0] = ENUM_TO_INT(ctx
->Color
.LogicOp
);
4241 case GL_MAP1_COLOR_4
:
4242 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Color4
);
4244 case GL_MAP1_GRID_DOMAIN
:
4245 params
[0] = IROUND(ctx
->Eval
.MapGrid1u1
);
4246 params
[1] = IROUND(ctx
->Eval
.MapGrid1u2
);
4248 case GL_MAP1_GRID_SEGMENTS
:
4249 params
[0] = ctx
->Eval
.MapGrid1un
;
4252 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Index
);
4254 case GL_MAP1_NORMAL
:
4255 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Normal
);
4257 case GL_MAP1_TEXTURE_COORD_1
:
4258 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord1
);
4260 case GL_MAP1_TEXTURE_COORD_2
:
4261 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord2
);
4263 case GL_MAP1_TEXTURE_COORD_3
:
4264 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord3
);
4266 case GL_MAP1_TEXTURE_COORD_4
:
4267 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1TextureCoord4
);
4269 case GL_MAP1_VERTEX_3
:
4270 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex3
);
4272 case GL_MAP1_VERTEX_4
:
4273 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Vertex4
);
4275 case GL_MAP2_COLOR_4
:
4276 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Color4
);
4278 case GL_MAP2_GRID_DOMAIN
:
4279 params
[0] = IROUND(ctx
->Eval
.MapGrid2u1
);
4280 params
[1] = IROUND(ctx
->Eval
.MapGrid2u2
);
4281 params
[2] = IROUND(ctx
->Eval
.MapGrid2v1
);
4282 params
[3] = IROUND(ctx
->Eval
.MapGrid2v2
);
4284 case GL_MAP2_GRID_SEGMENTS
:
4285 params
[0] = ctx
->Eval
.MapGrid2un
;
4286 params
[1] = ctx
->Eval
.MapGrid2vn
;
4289 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Index
);
4291 case GL_MAP2_NORMAL
:
4292 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Normal
);
4294 case GL_MAP2_TEXTURE_COORD_1
:
4295 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord1
);
4297 case GL_MAP2_TEXTURE_COORD_2
:
4298 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord2
);
4300 case GL_MAP2_TEXTURE_COORD_3
:
4301 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord3
);
4303 case GL_MAP2_TEXTURE_COORD_4
:
4304 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2TextureCoord4
);
4306 case GL_MAP2_VERTEX_3
:
4307 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex3
);
4309 case GL_MAP2_VERTEX_4
:
4310 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map2Vertex4
);
4313 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapColorFlag
);
4315 case GL_MAP_STENCIL
:
4316 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MapStencilFlag
);
4318 case GL_MATRIX_MODE
:
4319 params
[0] = ENUM_TO_INT(ctx
->Transform
.MatrixMode
);
4321 case GL_MAX_ATTRIB_STACK_DEPTH
:
4322 params
[0] = MAX_ATTRIB_STACK_DEPTH
;
4324 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
4325 params
[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH
;
4327 case GL_MAX_CLIP_PLANES
:
4328 params
[0] = ctx
->Const
.MaxClipPlanes
;
4330 case GL_MAX_ELEMENTS_VERTICES
:
4331 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4333 case GL_MAX_ELEMENTS_INDICES
:
4334 params
[0] = ctx
->Const
.MaxArrayLockSize
;
4336 case GL_MAX_EVAL_ORDER
:
4337 params
[0] = MAX_EVAL_ORDER
;
4340 params
[0] = ctx
->Const
.MaxLights
;
4342 case GL_MAX_LIST_NESTING
:
4343 params
[0] = MAX_LIST_NESTING
;
4345 case GL_MAX_MODELVIEW_STACK_DEPTH
:
4346 params
[0] = MAX_MODELVIEW_STACK_DEPTH
;
4348 case GL_MAX_NAME_STACK_DEPTH
:
4349 params
[0] = MAX_NAME_STACK_DEPTH
;
4351 case GL_MAX_PIXEL_MAP_TABLE
:
4352 params
[0] = MAX_PIXEL_MAP_TABLE
;
4354 case GL_MAX_PROJECTION_STACK_DEPTH
:
4355 params
[0] = MAX_PROJECTION_STACK_DEPTH
;
4357 case GL_MAX_TEXTURE_SIZE
:
4358 params
[0] = 1 << (ctx
->Const
.MaxTextureLevels
- 1);
4360 case GL_MAX_3D_TEXTURE_SIZE
:
4361 params
[0] = 1 << (ctx
->Const
.Max3DTextureLevels
- 1);
4363 case GL_MAX_TEXTURE_STACK_DEPTH
:
4364 params
[0] = MAX_TEXTURE_STACK_DEPTH
;
4366 case GL_MAX_VIEWPORT_DIMS
:
4367 params
[0] = ctx
->Const
.MaxViewportWidth
;
4368 params
[1] = ctx
->Const
.MaxViewportHeight
;
4370 case GL_MODELVIEW_MATRIX
:
4372 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4373 params
[0] = IROUND(matrix
[0]);
4374 params
[1] = IROUND(matrix
[1]);
4375 params
[2] = IROUND(matrix
[2]);
4376 params
[3] = IROUND(matrix
[3]);
4377 params
[4] = IROUND(matrix
[4]);
4378 params
[5] = IROUND(matrix
[5]);
4379 params
[6] = IROUND(matrix
[6]);
4380 params
[7] = IROUND(matrix
[7]);
4381 params
[8] = IROUND(matrix
[8]);
4382 params
[9] = IROUND(matrix
[9]);
4383 params
[10] = IROUND(matrix
[10]);
4384 params
[11] = IROUND(matrix
[11]);
4385 params
[12] = IROUND(matrix
[12]);
4386 params
[13] = IROUND(matrix
[13]);
4387 params
[14] = IROUND(matrix
[14]);
4388 params
[15] = IROUND(matrix
[15]);
4391 case GL_MODELVIEW_STACK_DEPTH
:
4392 params
[0] = ctx
->ModelviewMatrixStack
.Depth
+ 1;
4394 case GL_NAME_STACK_DEPTH
:
4395 params
[0] = ctx
->Select
.NameStackDepth
;
4398 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.Normalize
);
4400 case GL_PACK_ALIGNMENT
:
4401 params
[0] = ctx
->Pack
.Alignment
;
4403 case GL_PACK_LSB_FIRST
:
4404 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.LsbFirst
);
4406 case GL_PACK_ROW_LENGTH
:
4407 params
[0] = ctx
->Pack
.RowLength
;
4409 case GL_PACK_SKIP_PIXELS
:
4410 params
[0] = ctx
->Pack
.SkipPixels
;
4412 case GL_PACK_SKIP_ROWS
:
4413 params
[0] = ctx
->Pack
.SkipRows
;
4415 case GL_PACK_SWAP_BYTES
:
4416 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.SwapBytes
);
4418 case GL_PACK_SKIP_IMAGES_EXT
:
4419 params
[0] = ctx
->Pack
.SkipImages
;
4421 case GL_PACK_IMAGE_HEIGHT_EXT
:
4422 params
[0] = ctx
->Pack
.ImageHeight
;
4424 case GL_PACK_INVERT_MESA
:
4425 params
[0] = BOOLEAN_TO_INT(ctx
->Pack
.Invert
);
4427 case GL_PERSPECTIVE_CORRECTION_HINT
:
4428 params
[0] = ENUM_TO_INT(ctx
->Hint
.PerspectiveCorrection
);
4430 case GL_PIXEL_MAP_A_TO_A_SIZE
:
4431 params
[0] = ctx
->PixelMaps
.AtoA
.Size
;
4433 case GL_PIXEL_MAP_B_TO_B_SIZE
:
4434 params
[0] = ctx
->PixelMaps
.BtoB
.Size
;
4436 case GL_PIXEL_MAP_G_TO_G_SIZE
:
4437 params
[0] = ctx
->PixelMaps
.GtoG
.Size
;
4439 case GL_PIXEL_MAP_I_TO_A_SIZE
:
4440 params
[0] = ctx
->PixelMaps
.ItoA
.Size
;
4442 case GL_PIXEL_MAP_I_TO_B_SIZE
:
4443 params
[0] = ctx
->PixelMaps
.ItoB
.Size
;
4445 case GL_PIXEL_MAP_I_TO_G_SIZE
:
4446 params
[0] = ctx
->PixelMaps
.ItoG
.Size
;
4448 case GL_PIXEL_MAP_I_TO_I_SIZE
:
4449 params
[0] = ctx
->PixelMaps
.ItoI
.Size
;
4451 case GL_PIXEL_MAP_I_TO_R_SIZE
:
4452 params
[0] = ctx
->PixelMaps
.ItoR
.Size
;
4454 case GL_PIXEL_MAP_R_TO_R_SIZE
:
4455 params
[0] = ctx
->PixelMaps
.RtoR
.Size
;
4457 case GL_PIXEL_MAP_S_TO_S_SIZE
:
4458 params
[0] = ctx
->PixelMaps
.StoS
.Size
;
4461 params
[0] = IROUND(ctx
->Point
.Size
);
4463 case GL_POINT_SIZE_GRANULARITY
:
4464 params
[0] = IROUND(ctx
->Const
.PointSizeGranularity
);
4466 case GL_POINT_SIZE_RANGE
:
4467 params
[0] = IROUND(ctx
->Const
.MinPointSizeAA
);
4468 params
[1] = IROUND(ctx
->Const
.MaxPointSizeAA
);
4470 case GL_ALIASED_POINT_SIZE_RANGE
:
4471 params
[0] = IROUND(ctx
->Const
.MinPointSize
);
4472 params
[1] = IROUND(ctx
->Const
.MaxPointSize
);
4474 case GL_POINT_SMOOTH
:
4475 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.SmoothFlag
);
4477 case GL_POINT_SMOOTH_HINT
:
4478 params
[0] = ENUM_TO_INT(ctx
->Hint
.PointSmooth
);
4480 case GL_POINT_SIZE_MIN_EXT
:
4481 params
[0] = IROUND(ctx
->Point
.MinSize
);
4483 case GL_POINT_SIZE_MAX_EXT
:
4484 params
[0] = IROUND(ctx
->Point
.MaxSize
);
4486 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
4487 params
[0] = IROUND(ctx
->Point
.Threshold
);
4489 case GL_DISTANCE_ATTENUATION_EXT
:
4490 params
[0] = IROUND(ctx
->Point
.Params
[0]);
4491 params
[1] = IROUND(ctx
->Point
.Params
[1]);
4492 params
[2] = IROUND(ctx
->Point
.Params
[2]);
4494 case GL_POLYGON_MODE
:
4495 params
[0] = ENUM_TO_INT(ctx
->Polygon
.FrontMode
);
4496 params
[1] = ENUM_TO_INT(ctx
->Polygon
.BackMode
);
4498 case GL_POLYGON_OFFSET_BIAS_EXT
:
4499 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4501 case GL_POLYGON_OFFSET_FACTOR
:
4502 params
[0] = IROUND(ctx
->Polygon
.OffsetFactor
);
4504 case GL_POLYGON_OFFSET_UNITS
:
4505 params
[0] = IROUND(ctx
->Polygon
.OffsetUnits
);
4507 case GL_POLYGON_OFFSET_POINT
:
4508 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetPoint
);
4510 case GL_POLYGON_OFFSET_LINE
:
4511 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetLine
);
4513 case GL_POLYGON_OFFSET_FILL
:
4514 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.OffsetFill
);
4516 case GL_POLYGON_SMOOTH
:
4517 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.SmoothFlag
);
4519 case GL_POLYGON_SMOOTH_HINT
:
4520 params
[0] = ENUM_TO_INT(ctx
->Hint
.PolygonSmooth
);
4522 case GL_POLYGON_STIPPLE
:
4523 params
[0] = BOOLEAN_TO_INT(ctx
->Polygon
.StippleFlag
);
4525 case GL_PROJECTION_MATRIX
:
4527 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4528 params
[0] = IROUND(matrix
[0]);
4529 params
[1] = IROUND(matrix
[1]);
4530 params
[2] = IROUND(matrix
[2]);
4531 params
[3] = IROUND(matrix
[3]);
4532 params
[4] = IROUND(matrix
[4]);
4533 params
[5] = IROUND(matrix
[5]);
4534 params
[6] = IROUND(matrix
[6]);
4535 params
[7] = IROUND(matrix
[7]);
4536 params
[8] = IROUND(matrix
[8]);
4537 params
[9] = IROUND(matrix
[9]);
4538 params
[10] = IROUND(matrix
[10]);
4539 params
[11] = IROUND(matrix
[11]);
4540 params
[12] = IROUND(matrix
[12]);
4541 params
[13] = IROUND(matrix
[13]);
4542 params
[14] = IROUND(matrix
[14]);
4543 params
[15] = IROUND(matrix
[15]);
4546 case GL_PROJECTION_STACK_DEPTH
:
4547 params
[0] = ctx
->ProjectionMatrixStack
.Depth
+ 1;
4549 case GL_READ_BUFFER
:
4550 params
[0] = ENUM_TO_INT(ctx
->ReadBuffer
->ColorReadBuffer
);
4553 params
[0] = IROUND(ctx
->Pixel
.RedBias
);
4556 params
[0] = ctx
->DrawBuffer
->Visual
.redBits
;
4559 params
[0] = IROUND(ctx
->Pixel
.RedScale
);
4561 case GL_RENDER_MODE
:
4562 params
[0] = ENUM_TO_INT(ctx
->RenderMode
);
4564 case GL_RESCALE_NORMAL
:
4565 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RescaleNormals
);
4568 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
4570 case GL_SCISSOR_BOX
:
4571 params
[0] = ctx
->Scissor
.X
;
4572 params
[1] = ctx
->Scissor
.Y
;
4573 params
[2] = ctx
->Scissor
.Width
;
4574 params
[3] = ctx
->Scissor
.Height
;
4576 case GL_SCISSOR_TEST
:
4577 params
[0] = BOOLEAN_TO_INT(ctx
->Scissor
.Enabled
);
4579 case GL_SELECTION_BUFFER_SIZE
:
4580 params
[0] = ctx
->Select
.BufferSize
;
4582 case GL_SHADE_MODEL
:
4583 params
[0] = ENUM_TO_INT(ctx
->Light
.ShadeModel
);
4585 case GL_SHARED_TEXTURE_PALETTE_EXT
:
4586 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.SharedPalette
);
4588 case GL_STENCIL_BITS
:
4589 params
[0] = ctx
->DrawBuffer
->Visual
.stencilBits
;
4591 case GL_STENCIL_CLEAR_VALUE
:
4592 params
[0] = ctx
->Stencil
.Clear
;
4594 case GL_STENCIL_FAIL
:
4595 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
4597 case GL_STENCIL_FUNC
:
4598 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
4600 case GL_STENCIL_PASS_DEPTH_FAIL
:
4601 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
4603 case GL_STENCIL_PASS_DEPTH_PASS
:
4604 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
4606 case GL_STENCIL_REF
:
4607 params
[0] = ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
];
4609 case GL_STENCIL_TEST
:
4610 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.Enabled
);
4612 case GL_STENCIL_VALUE_MASK
:
4613 params
[0] = ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
];
4615 case GL_STENCIL_WRITEMASK
:
4616 params
[0] = ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
];
4619 params
[0] = BOOLEAN_TO_INT(ctx
->DrawBuffer
->Visual
.stereoMode
);
4621 case GL_SUBPIXEL_BITS
:
4622 params
[0] = ctx
->Const
.SubPixelBits
;
4625 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D
));
4628 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D
));
4631 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D
));
4633 case GL_TEXTURE_1D_ARRAY_EXT
:
4634 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4635 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
4637 case GL_TEXTURE_2D_ARRAY_EXT
:
4638 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4639 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
4641 case GL_TEXTURE_BINDING_1D
:
4642 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
;
4644 case GL_TEXTURE_BINDING_2D
:
4645 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
;
4647 case GL_TEXTURE_BINDING_3D
:
4648 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
;
4650 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
4651 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4652 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
;
4654 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
4655 CHECK_EXT1(MESA_texture_array
, "GetIntegerv");
4656 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
;
4658 case GL_TEXTURE_GEN_S
:
4659 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
4661 case GL_TEXTURE_GEN_T
:
4662 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
4664 case GL_TEXTURE_GEN_R
:
4665 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
4667 case GL_TEXTURE_GEN_Q
:
4668 params
[0] = BOOLEAN_TO_INT(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
4670 case GL_TEXTURE_MATRIX
:
4672 const GLfloat
*matrix
;
4673 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
4674 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
4675 _mesa_error(ctx
, GL_INVALID_OPERATION
, "glGet(texture matrix %u)",
4679 matrix
= ctx
->TextureMatrixStack
[unit
].Top
->m
;
4680 params
[0] = IROUND(matrix
[0]);
4681 params
[1] = IROUND(matrix
[1]);
4682 params
[2] = IROUND(matrix
[2]);
4683 params
[3] = IROUND(matrix
[3]);
4684 params
[4] = IROUND(matrix
[4]);
4685 params
[5] = IROUND(matrix
[5]);
4686 params
[6] = IROUND(matrix
[6]);
4687 params
[7] = IROUND(matrix
[7]);
4688 params
[8] = IROUND(matrix
[8]);
4689 params
[9] = IROUND(matrix
[9]);
4690 params
[10] = IROUND(matrix
[10]);
4691 params
[11] = IROUND(matrix
[11]);
4692 params
[12] = IROUND(matrix
[12]);
4693 params
[13] = IROUND(matrix
[13]);
4694 params
[14] = IROUND(matrix
[14]);
4695 params
[15] = IROUND(matrix
[15]);
4698 case GL_TEXTURE_STACK_DEPTH
:
4700 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
4701 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
4702 _mesa_error(ctx
, GL_INVALID_OPERATION
,
4703 "glGet(texture stack depth, unit %u)", unit
);
4706 params
[0] = ctx
->TextureMatrixStack
[unit
].Depth
+ 1;
4709 case GL_UNPACK_ALIGNMENT
:
4710 params
[0] = ctx
->Unpack
.Alignment
;
4712 case GL_UNPACK_LSB_FIRST
:
4713 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.LsbFirst
);
4715 case GL_UNPACK_ROW_LENGTH
:
4716 params
[0] = ctx
->Unpack
.RowLength
;
4718 case GL_UNPACK_SKIP_PIXELS
:
4719 params
[0] = ctx
->Unpack
.SkipPixels
;
4721 case GL_UNPACK_SKIP_ROWS
:
4722 params
[0] = ctx
->Unpack
.SkipRows
;
4724 case GL_UNPACK_SWAP_BYTES
:
4725 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.SwapBytes
);
4727 case GL_UNPACK_SKIP_IMAGES_EXT
:
4728 params
[0] = ctx
->Unpack
.SkipImages
;
4730 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4731 params
[0] = ctx
->Unpack
.ImageHeight
;
4733 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
4734 params
[0] = BOOLEAN_TO_INT(ctx
->Unpack
.ClientStorage
);
4737 params
[0] = ctx
->Viewport
.X
;
4738 params
[1] = ctx
->Viewport
.Y
;
4739 params
[2] = ctx
->Viewport
.Width
;
4740 params
[3] = ctx
->Viewport
.Height
;
4743 params
[0] = IROUND(ctx
->Pixel
.ZoomX
);
4746 params
[0] = IROUND(ctx
->Pixel
.ZoomY
);
4748 case GL_VERTEX_ARRAY
:
4749 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
4751 case GL_VERTEX_ARRAY_SIZE
:
4752 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Size
;
4754 case GL_VERTEX_ARRAY_TYPE
:
4755 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Vertex
.Type
);
4757 case GL_VERTEX_ARRAY_STRIDE
:
4758 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.Stride
;
4760 case GL_VERTEX_ARRAY_COUNT_EXT
:
4763 case GL_NORMAL_ARRAY
:
4764 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
4766 case GL_NORMAL_ARRAY_TYPE
:
4767 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Normal
.Type
);
4769 case GL_NORMAL_ARRAY_STRIDE
:
4770 params
[0] = ctx
->Array
.ArrayObj
->Normal
.Stride
;
4772 case GL_NORMAL_ARRAY_COUNT_EXT
:
4775 case GL_COLOR_ARRAY
:
4776 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Color
.Enabled
);
4778 case GL_COLOR_ARRAY_SIZE
:
4779 params
[0] = ctx
->Array
.ArrayObj
->Color
.Size
;
4781 case GL_COLOR_ARRAY_TYPE
:
4782 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Color
.Type
);
4784 case GL_COLOR_ARRAY_STRIDE
:
4785 params
[0] = ctx
->Array
.ArrayObj
->Color
.Stride
;
4787 case GL_COLOR_ARRAY_COUNT_EXT
:
4790 case GL_INDEX_ARRAY
:
4791 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->Index
.Enabled
);
4793 case GL_INDEX_ARRAY_TYPE
:
4794 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->Index
.Type
);
4796 case GL_INDEX_ARRAY_STRIDE
:
4797 params
[0] = ctx
->Array
.ArrayObj
->Index
.Stride
;
4799 case GL_INDEX_ARRAY_COUNT_EXT
:
4802 case GL_TEXTURE_COORD_ARRAY
:
4803 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
4805 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4806 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
;
4808 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4809 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
4811 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4812 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
;
4814 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4817 case GL_EDGE_FLAG_ARRAY
:
4818 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
4820 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4821 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
;
4823 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4826 case GL_MAX_TEXTURE_UNITS_ARB
:
4827 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4828 params
[0] = ctx
->Const
.MaxTextureUnits
;
4830 case GL_ACTIVE_TEXTURE_ARB
:
4831 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4832 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4834 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4835 CHECK_EXT1(ARB_multitexture
, "GetIntegerv");
4836 params
[0] = GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4838 case GL_TEXTURE_CUBE_MAP_ARB
:
4839 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4840 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
4842 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
4843 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4844 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
;
4846 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
4847 CHECK_EXT1(ARB_texture_cube_map
, "GetIntegerv");
4848 params
[0] = (1 << (ctx
->Const
.MaxCubeTextureLevels
- 1));
4850 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
4851 params
[0] = ctx
->Hint
.TextureCompression
;
4853 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
4854 params
[0] = _mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
);
4856 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
4859 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
4861 for (i
= 0; i
< n
; i
++)
4862 params
[i
] = ENUM_TO_INT(formats
[i
]);
4865 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4866 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4867 params
[0] = ctx
->Array
.LockFirst
;
4869 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4870 CHECK_EXT1(EXT_compiled_vertex_array
, "GetIntegerv");
4871 params
[0] = ctx
->Array
.LockCount
;
4873 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4875 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4876 params
[0] = IROUND(matrix
[0]);
4877 params
[1] = IROUND(matrix
[4]);
4878 params
[2] = IROUND(matrix
[8]);
4879 params
[3] = IROUND(matrix
[12]);
4880 params
[4] = IROUND(matrix
[1]);
4881 params
[5] = IROUND(matrix
[5]);
4882 params
[6] = IROUND(matrix
[9]);
4883 params
[7] = IROUND(matrix
[13]);
4884 params
[8] = IROUND(matrix
[2]);
4885 params
[9] = IROUND(matrix
[6]);
4886 params
[10] = IROUND(matrix
[10]);
4887 params
[11] = IROUND(matrix
[14]);
4888 params
[12] = IROUND(matrix
[3]);
4889 params
[13] = IROUND(matrix
[7]);
4890 params
[14] = IROUND(matrix
[11]);
4891 params
[15] = IROUND(matrix
[15]);
4894 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4896 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
4897 params
[0] = IROUND(matrix
[0]);
4898 params
[1] = IROUND(matrix
[4]);
4899 params
[2] = IROUND(matrix
[8]);
4900 params
[3] = IROUND(matrix
[12]);
4901 params
[4] = IROUND(matrix
[1]);
4902 params
[5] = IROUND(matrix
[5]);
4903 params
[6] = IROUND(matrix
[9]);
4904 params
[7] = IROUND(matrix
[13]);
4905 params
[8] = IROUND(matrix
[2]);
4906 params
[9] = IROUND(matrix
[6]);
4907 params
[10] = IROUND(matrix
[10]);
4908 params
[11] = IROUND(matrix
[14]);
4909 params
[12] = IROUND(matrix
[3]);
4910 params
[13] = IROUND(matrix
[7]);
4911 params
[14] = IROUND(matrix
[11]);
4912 params
[15] = IROUND(matrix
[15]);
4915 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4917 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
4918 params
[0] = IROUND(matrix
[0]);
4919 params
[1] = IROUND(matrix
[4]);
4920 params
[2] = IROUND(matrix
[8]);
4921 params
[3] = IROUND(matrix
[12]);
4922 params
[4] = IROUND(matrix
[1]);
4923 params
[5] = IROUND(matrix
[5]);
4924 params
[6] = IROUND(matrix
[9]);
4925 params
[7] = IROUND(matrix
[13]);
4926 params
[8] = IROUND(matrix
[2]);
4927 params
[9] = IROUND(matrix
[6]);
4928 params
[10] = IROUND(matrix
[10]);
4929 params
[11] = IROUND(matrix
[14]);
4930 params
[12] = IROUND(matrix
[3]);
4931 params
[13] = IROUND(matrix
[7]);
4932 params
[14] = IROUND(matrix
[11]);
4933 params
[15] = IROUND(matrix
[15]);
4936 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4938 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
4939 params
[0] = IROUND(matrix
[0]);
4940 params
[1] = IROUND(matrix
[4]);
4941 params
[2] = IROUND(matrix
[8]);
4942 params
[3] = IROUND(matrix
[12]);
4943 params
[4] = IROUND(matrix
[1]);
4944 params
[5] = IROUND(matrix
[5]);
4945 params
[6] = IROUND(matrix
[9]);
4946 params
[7] = IROUND(matrix
[13]);
4947 params
[8] = IROUND(matrix
[2]);
4948 params
[9] = IROUND(matrix
[6]);
4949 params
[10] = IROUND(matrix
[10]);
4950 params
[11] = IROUND(matrix
[14]);
4951 params
[12] = IROUND(matrix
[3]);
4952 params
[13] = IROUND(matrix
[7]);
4953 params
[14] = IROUND(matrix
[11]);
4954 params
[15] = IROUND(matrix
[15]);
4957 case GL_COLOR_MATRIX_SGI
:
4959 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
4960 params
[0] = IROUND(matrix
[0]);
4961 params
[1] = IROUND(matrix
[1]);
4962 params
[2] = IROUND(matrix
[2]);
4963 params
[3] = IROUND(matrix
[3]);
4964 params
[4] = IROUND(matrix
[4]);
4965 params
[5] = IROUND(matrix
[5]);
4966 params
[6] = IROUND(matrix
[6]);
4967 params
[7] = IROUND(matrix
[7]);
4968 params
[8] = IROUND(matrix
[8]);
4969 params
[9] = IROUND(matrix
[9]);
4970 params
[10] = IROUND(matrix
[10]);
4971 params
[11] = IROUND(matrix
[11]);
4972 params
[12] = IROUND(matrix
[12]);
4973 params
[13] = IROUND(matrix
[13]);
4974 params
[14] = IROUND(matrix
[14]);
4975 params
[15] = IROUND(matrix
[15]);
4978 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4979 params
[0] = ctx
->ColorMatrixStack
.Depth
+ 1;
4981 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4982 params
[0] = MAX_COLOR_STACK_DEPTH
;
4984 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4985 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[0]);
4987 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4988 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[1]);
4990 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4991 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[2]);
4993 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4994 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixScale
[3]);
4996 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4997 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[0]);
4999 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
5000 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[1]);
5002 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
5003 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[2]);
5005 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
5006 params
[0] = IROUND(ctx
->Pixel
.PostColorMatrixBias
[3]);
5008 case GL_CONVOLUTION_1D_EXT
:
5009 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5010 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution1DEnabled
);
5012 case GL_CONVOLUTION_2D_EXT
:
5013 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5014 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Convolution2DEnabled
);
5016 case GL_SEPARABLE_2D_EXT
:
5017 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5018 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.Separable2DEnabled
);
5020 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
5021 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5022 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[0]);
5024 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
5025 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5026 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[1]);
5028 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
5029 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5030 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[2]);
5032 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
5033 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5034 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionScale
[3]);
5036 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
5037 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5038 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[0]);
5040 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
5041 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5042 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[1]);
5044 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
5045 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5046 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[2]);
5048 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
5049 CHECK_EXT1(EXT_convolution
, "GetIntegerv");
5050 params
[0] = IROUND(ctx
->Pixel
.PostConvolutionBias
[3]);
5053 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
5054 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.HistogramEnabled
);
5057 CHECK_EXT1(EXT_histogram
, "GetIntegerv");
5058 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.MinMaxEnabled
);
5060 case GL_COLOR_TABLE_SGI
:
5061 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
5062 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
5064 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
5065 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
5066 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
5068 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
5069 CHECK_EXT1(SGI_color_table
, "GetIntegerv");
5070 params
[0] = BOOLEAN_TO_INT(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
5072 case GL_TEXTURE_COLOR_TABLE_SGI
:
5073 CHECK_EXT1(SGI_texture_color_table
, "GetIntegerv");
5074 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
5076 case GL_COLOR_SUM_EXT
:
5077 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetIntegerv");
5078 params
[0] = BOOLEAN_TO_INT(ctx
->Fog
.ColorSumEnabled
);
5080 case GL_CURRENT_SECONDARY_COLOR_EXT
:
5081 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5083 FLUSH_CURRENT(ctx
, 0);
5084 params
[0] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
5085 params
[1] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
5086 params
[2] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
5087 params
[3] = FLOAT_TO_INT(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
5090 case GL_SECONDARY_COLOR_ARRAY_EXT
:
5091 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5092 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
5094 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
5095 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5096 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
5098 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
5099 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5100 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
;
5102 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
5103 CHECK_EXT1(EXT_secondary_color
, "GetIntegerv");
5104 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.Size
;
5106 case GL_CURRENT_FOG_COORDINATE_EXT
:
5107 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5109 FLUSH_CURRENT(ctx
, 0);
5110 params
[0] = IROUND(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
5113 case GL_FOG_COORDINATE_ARRAY_EXT
:
5114 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5115 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
5117 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
5118 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5119 params
[0] = ENUM_TO_INT(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
5121 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
5122 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5123 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.Stride
;
5125 case GL_FOG_COORDINATE_SOURCE_EXT
:
5126 CHECK_EXT1(EXT_fog_coord
, "GetIntegerv");
5127 params
[0] = ENUM_TO_INT(ctx
->Fog
.FogCoordinateSource
);
5129 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
5130 CHECK_EXT1(EXT_texture_lod_bias
, "GetIntegerv");
5131 params
[0] = IROUND(ctx
->Const
.MaxTextureLodBias
);
5133 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
5134 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetIntegerv");
5135 params
[0] = IROUND(ctx
->Const
.MaxTextureMaxAnisotropy
);
5137 case GL_MULTISAMPLE_ARB
:
5138 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.Enabled
);
5140 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
5141 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToCoverage
);
5143 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
5144 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleAlphaToOne
);
5146 case GL_SAMPLE_COVERAGE_ARB
:
5147 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverage
);
5149 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
5150 params
[0] = IROUND(ctx
->Multisample
.SampleCoverageValue
);
5152 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
5153 params
[0] = BOOLEAN_TO_INT(ctx
->Multisample
.SampleCoverageInvert
);
5155 case GL_SAMPLE_BUFFERS_ARB
:
5156 params
[0] = ctx
->DrawBuffer
->Visual
.sampleBuffers
;
5158 case GL_SAMPLES_ARB
:
5159 params
[0] = ctx
->DrawBuffer
->Visual
.samples
;
5161 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
5162 CHECK_EXT1(IBM_rasterpos_clip
, "GetIntegerv");
5163 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.RasterPositionUnclipped
);
5165 case GL_POINT_SPRITE_NV
:
5166 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5167 params
[0] = BOOLEAN_TO_INT(ctx
->Point
.PointSprite
);
5169 case GL_POINT_SPRITE_R_MODE_NV
:
5170 CHECK_EXT1(NV_point_sprite
, "GetIntegerv");
5171 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteRMode
);
5173 case GL_POINT_SPRITE_COORD_ORIGIN
:
5174 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetIntegerv");
5175 params
[0] = ENUM_TO_INT(ctx
->Point
.SpriteOrigin
);
5177 case GL_GENERATE_MIPMAP_HINT_SGIS
:
5178 CHECK_EXT1(SGIS_generate_mipmap
, "GetIntegerv");
5179 params
[0] = ENUM_TO_INT(ctx
->Hint
.GenerateMipmap
);
5181 case GL_VERTEX_PROGRAM_BINDING_NV
:
5182 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5183 params
[0] = (ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0);
5185 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
5186 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5187 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
5189 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
5190 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5191 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
5193 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
5194 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5195 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
5197 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
5198 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5199 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
5201 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
5202 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5203 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
5205 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
5206 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5207 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
5209 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
5210 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5211 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
5213 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
5214 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5215 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
5217 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
5218 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5219 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
5221 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
5222 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5223 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
5225 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
5226 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5227 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
5229 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
5230 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5231 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
5233 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
5234 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5235 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
5237 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
5238 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5239 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
5241 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
5242 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5243 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
5245 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
5246 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5247 params
[0] = BOOLEAN_TO_INT(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
5249 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
5250 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5251 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[0]);
5253 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
5254 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5255 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[1]);
5257 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
5258 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5259 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[2]);
5261 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
5262 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5263 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[3]);
5265 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
5266 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5267 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[4]);
5269 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
5270 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5271 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[5]);
5273 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
5274 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5275 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[6]);
5277 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
5278 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5279 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[7]);
5281 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
5282 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5283 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[8]);
5285 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
5286 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5287 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[9]);
5289 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
5290 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5291 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[10]);
5293 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
5294 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5295 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[11]);
5297 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
5298 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5299 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[12]);
5301 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
5302 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5303 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[13]);
5305 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
5306 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5307 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[14]);
5309 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
5310 CHECK_EXT1(NV_vertex_program
, "GetIntegerv");
5311 params
[0] = BOOLEAN_TO_INT(ctx
->Eval
.Map1Attrib
[15]);
5313 case GL_FRAGMENT_PROGRAM_NV
:
5314 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5315 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5317 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
5318 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5319 params
[0] = ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0;
5321 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
5322 CHECK_EXT1(NV_fragment_program
, "GetIntegerv");
5323 params
[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS
;
5325 case GL_TEXTURE_RECTANGLE_NV
:
5326 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5327 params
[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
5329 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
5330 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5331 params
[0] = ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
;
5333 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
5334 CHECK_EXT1(NV_texture_rectangle
, "GetIntegerv");
5335 params
[0] = ctx
->Const
.MaxTextureRectSize
;
5337 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
5338 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5339 params
[0] = BOOLEAN_TO_INT(ctx
->Stencil
.TestTwoSide
);
5341 case GL_ACTIVE_STENCIL_FACE_EXT
:
5342 CHECK_EXT1(EXT_stencil_two_side
, "GetIntegerv");
5343 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
5345 case GL_MAX_SHININESS_NV
:
5346 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5347 params
[0] = IROUND(ctx
->Const
.MaxShininess
);
5349 case GL_MAX_SPOT_EXPONENT_NV
:
5350 CHECK_EXT1(NV_light_max_exponent
, "GetIntegerv");
5351 params
[0] = IROUND(ctx
->Const
.MaxSpotExponent
);
5353 case GL_ARRAY_BUFFER_BINDING_ARB
:
5354 params
[0] = ctx
->Array
.ArrayBufferObj
->Name
;
5356 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
5357 params
[0] = ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
;
5359 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
5360 params
[0] = ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
;
5362 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5363 params
[0] = ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
;
5365 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
5366 params
[0] = ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
;
5368 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
5369 params
[0] = ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
;
5371 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
5372 params
[0] = ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
;
5374 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
5375 params
[0] = ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
;
5377 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
5378 params
[0] = ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
;
5380 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
5381 params
[0] = ctx
->Array
.ElementArrayBufferObj
->Name
;
5383 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
5384 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5385 params
[0] = ctx
->Pack
.BufferObj
->Name
;
5387 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
5388 CHECK_EXT1(EXT_pixel_buffer_object
, "GetIntegerv");
5389 params
[0] = ctx
->Unpack
.BufferObj
->Name
;
5391 case GL_VERTEX_PROGRAM_ARB
:
5392 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5393 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.Enabled
);
5395 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
5396 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5397 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.PointSizeEnabled
);
5399 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
5400 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetIntegerv");
5401 params
[0] = BOOLEAN_TO_INT(ctx
->VertexProgram
.TwoSideEnabled
);
5403 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
5404 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5405 params
[0] = ctx
->Const
.MaxProgramMatrixStackDepth
;
5407 case GL_MAX_PROGRAM_MATRICES_ARB
:
5408 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5409 params
[0] = ctx
->Const
.MaxProgramMatrices
;
5411 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
5412 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetIntegerv");
5413 params
[0] = BOOLEAN_TO_INT(ctx
->CurrentStack
->Depth
+ 1);
5415 case GL_CURRENT_MATRIX_ARB
:
5416 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5418 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5419 params
[0] = IROUND(matrix
[0]);
5420 params
[1] = IROUND(matrix
[1]);
5421 params
[2] = IROUND(matrix
[2]);
5422 params
[3] = IROUND(matrix
[3]);
5423 params
[4] = IROUND(matrix
[4]);
5424 params
[5] = IROUND(matrix
[5]);
5425 params
[6] = IROUND(matrix
[6]);
5426 params
[7] = IROUND(matrix
[7]);
5427 params
[8] = IROUND(matrix
[8]);
5428 params
[9] = IROUND(matrix
[9]);
5429 params
[10] = IROUND(matrix
[10]);
5430 params
[11] = IROUND(matrix
[11]);
5431 params
[12] = IROUND(matrix
[12]);
5432 params
[13] = IROUND(matrix
[13]);
5433 params
[14] = IROUND(matrix
[14]);
5434 params
[15] = IROUND(matrix
[15]);
5437 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
5438 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetIntegerv");
5440 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
5441 params
[0] = IROUND(matrix
[0]);
5442 params
[1] = IROUND(matrix
[4]);
5443 params
[2] = IROUND(matrix
[8]);
5444 params
[3] = IROUND(matrix
[12]);
5445 params
[4] = IROUND(matrix
[1]);
5446 params
[5] = IROUND(matrix
[5]);
5447 params
[6] = IROUND(matrix
[9]);
5448 params
[7] = IROUND(matrix
[13]);
5449 params
[8] = IROUND(matrix
[2]);
5450 params
[9] = IROUND(matrix
[6]);
5451 params
[10] = IROUND(matrix
[10]);
5452 params
[11] = IROUND(matrix
[14]);
5453 params
[12] = IROUND(matrix
[3]);
5454 params
[13] = IROUND(matrix
[7]);
5455 params
[14] = IROUND(matrix
[11]);
5456 params
[15] = IROUND(matrix
[15]);
5459 case GL_MAX_VERTEX_ATTRIBS_ARB
:
5460 CHECK_EXT1(ARB_vertex_program
, "GetIntegerv");
5461 params
[0] = ctx
->Const
.VertexProgram
.MaxAttribs
;
5463 case GL_PROGRAM_ERROR_POSITION_ARB
:
5464 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetIntegerv");
5465 params
[0] = ctx
->Program
.ErrorPos
;
5467 case GL_FRAGMENT_PROGRAM_ARB
:
5468 CHECK_EXT1(ARB_fragment_program
, "GetIntegerv");
5469 params
[0] = BOOLEAN_TO_INT(ctx
->FragmentProgram
.Enabled
);
5471 case GL_MAX_TEXTURE_COORDS_ARB
:
5472 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5473 params
[0] = ctx
->Const
.MaxTextureCoordUnits
;
5475 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
5476 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetIntegerv");
5477 params
[0] = ctx
->Const
.MaxTextureImageUnits
;
5479 case GL_DEPTH_BOUNDS_TEST_EXT
:
5480 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5481 params
[0] = BOOLEAN_TO_INT(ctx
->Depth
.BoundsTest
);
5483 case GL_DEPTH_BOUNDS_EXT
:
5484 CHECK_EXT1(EXT_depth_bounds_test
, "GetIntegerv");
5485 params
[0] = IROUND(ctx
->Depth
.BoundsMin
);
5486 params
[1] = IROUND(ctx
->Depth
.BoundsMax
);
5488 case GL_DEPTH_CLAMP
:
5489 CHECK_EXT1(ARB_depth_clamp
, "GetIntegerv");
5490 params
[0] = BOOLEAN_TO_INT(ctx
->Transform
.DepthClamp
);
5492 case GL_MAX_DRAW_BUFFERS_ARB
:
5493 params
[0] = ctx
->Const
.MaxDrawBuffers
;
5495 case GL_DRAW_BUFFER0_ARB
:
5496 params
[0] = ENUM_TO_INT(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5498 case GL_DRAW_BUFFER1_ARB
:
5501 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5502 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5505 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
5506 params
[0] = ENUM_TO_INT(buffer
);
5509 case GL_DRAW_BUFFER2_ARB
:
5512 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5513 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5516 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
5517 params
[0] = ENUM_TO_INT(buffer
);
5520 case GL_DRAW_BUFFER3_ARB
:
5523 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
5524 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
5527 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
5528 params
[0] = ENUM_TO_INT(buffer
);
5531 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
5532 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5533 params
[0] = _mesa_get_color_read_type(ctx
);
5535 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
5536 CHECK_EXT1(OES_read_format
, "GetIntegerv");
5537 params
[0] = _mesa_get_color_read_format(ctx
);
5539 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
5540 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5543 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
5544 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5547 case GL_NUM_PASSES_ATI
:
5548 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5551 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
5552 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5555 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
5556 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5559 case GL_COLOR_ALPHA_PAIRING_ATI
:
5560 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5561 params
[0] = BOOLEAN_TO_INT(GL_TRUE
);
5563 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
5564 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5567 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
5568 CHECK_EXT1(ATI_fragment_shader
, "GetIntegerv");
5571 case GL_STENCIL_BACK_FUNC
:
5572 params
[0] = ENUM_TO_INT(ctx
->Stencil
.Function
[1]);
5574 case GL_STENCIL_BACK_VALUE_MASK
:
5575 params
[0] = ctx
->Stencil
.ValueMask
[1];
5577 case GL_STENCIL_BACK_WRITEMASK
:
5578 params
[0] = ctx
->Stencil
.WriteMask
[1];
5580 case GL_STENCIL_BACK_REF
:
5581 params
[0] = ctx
->Stencil
.Ref
[1];
5583 case GL_STENCIL_BACK_FAIL
:
5584 params
[0] = ENUM_TO_INT(ctx
->Stencil
.FailFunc
[1]);
5586 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
5587 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZFailFunc
[1]);
5589 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
5590 params
[0] = ENUM_TO_INT(ctx
->Stencil
.ZPassFunc
[1]);
5592 case GL_FRAMEBUFFER_BINDING_EXT
:
5593 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5594 params
[0] = ctx
->DrawBuffer
->Name
;
5596 case GL_RENDERBUFFER_BINDING_EXT
:
5597 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5598 params
[0] = ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0;
5600 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
5601 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5602 params
[0] = ctx
->Const
.MaxColorAttachments
;
5604 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
5605 CHECK_EXT1(EXT_framebuffer_object
, "GetIntegerv");
5606 params
[0] = ctx
->Const
.MaxRenderbufferSize
;
5608 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
5609 CHECK_EXT1(EXT_framebuffer_blit
, "GetIntegerv");
5610 params
[0] = ctx
->ReadBuffer
->Name
;
5612 case GL_PROVOKING_VERTEX_EXT
:
5613 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5614 params
[0] = BOOLEAN_TO_INT(ctx
->Light
.ProvokingVertex
);
5616 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
5617 CHECK_EXT1(EXT_provoking_vertex
, "GetIntegerv");
5618 params
[0] = BOOLEAN_TO_INT(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
5620 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
5621 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5622 params
[0] = ctx
->Const
.FragmentProgram
.MaxUniformComponents
;
5624 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
5625 CHECK_EXT1(ARB_fragment_shader
, "GetIntegerv");
5626 params
[0] = ENUM_TO_INT(ctx
->Hint
.FragmentShaderDerivative
);
5628 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
5629 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5630 params
[0] = ctx
->Const
.VertexProgram
.MaxUniformComponents
;
5632 case GL_MAX_VARYING_FLOATS_ARB
:
5633 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5634 params
[0] = ctx
->Const
.MaxVarying
* 4;
5636 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
5637 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5638 params
[0] = ctx
->Const
.MaxVertexTextureImageUnits
;
5640 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
5641 CHECK_EXT1(ARB_vertex_shader
, "GetIntegerv");
5642 params
[0] = ctx
->Const
.MaxCombinedTextureImageUnits
;
5644 case GL_CURRENT_PROGRAM
:
5645 CHECK_EXT1(ARB_shader_objects
, "GetIntegerv");
5646 params
[0] = ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0;
5648 case GL_MAX_SAMPLES
:
5649 CHECK_EXT1(ARB_framebuffer_object
, "GetIntegerv");
5650 params
[0] = ctx
->Const
.MaxSamples
;
5652 case GL_VERTEX_ARRAY_BINDING_APPLE
:
5653 CHECK_EXT1(APPLE_vertex_array_object
, "GetIntegerv");
5654 params
[0] = ctx
->Array
.ArrayObj
->Name
;
5656 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
5657 CHECK_EXT1(ARB_seamless_cube_map
, "GetIntegerv");
5658 params
[0] = BOOLEAN_TO_INT(ctx
->Texture
.CubeMapSeamless
);
5660 case GL_MAX_SERVER_WAIT_TIMEOUT
:
5661 CHECK_EXT1(ARB_sync
, "GetIntegerv");
5662 params
[0] = INT64_TO_INT(ctx
->Const
.MaxServerWaitTimeout
);
5664 case GL_NUM_EXTENSIONS
:
5665 params
[0] = _mesa_get_extension_count(ctx
);
5667 case GL_MAJOR_VERSION
:
5668 params
[0] = ctx
->VersionMajor
;
5670 case GL_MINOR_VERSION
:
5671 params
[0] = ctx
->VersionMinor
;
5674 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerv(pname=0x%x)", pname
);
5678 #if FEATURE_ARB_sync
5680 _mesa_GetInteger64v( GLenum pname
, GLint64
*params
)
5682 GET_CURRENT_CONTEXT(ctx
);
5683 ASSERT_OUTSIDE_BEGIN_END(ctx
);
5689 _mesa_update_state(ctx
);
5691 if (ctx
->Driver
.GetInteger64v
&&
5692 ctx
->Driver
.GetInteger64v(ctx
, pname
, params
))
5696 case GL_ACCUM_RED_BITS
:
5697 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.accumRedBits
);
5699 case GL_ACCUM_GREEN_BITS
:
5700 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.accumGreenBits
);
5702 case GL_ACCUM_BLUE_BITS
:
5703 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.accumBlueBits
);
5705 case GL_ACCUM_ALPHA_BITS
:
5706 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.accumAlphaBits
);
5708 case GL_ACCUM_CLEAR_VALUE
:
5709 params
[0] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[0]);
5710 params
[1] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[1]);
5711 params
[2] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[2]);
5712 params
[3] = FLOAT_TO_INT64(ctx
->Accum
.ClearColor
[3]);
5715 params
[0] = IROUND64(ctx
->Pixel
.AlphaBias
);
5718 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.alphaBits
);
5720 case GL_ALPHA_SCALE
:
5721 params
[0] = IROUND64(ctx
->Pixel
.AlphaScale
);
5724 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.AlphaEnabled
);
5726 case GL_ALPHA_TEST_FUNC
:
5727 params
[0] = ENUM_TO_INT64(ctx
->Color
.AlphaFunc
);
5729 case GL_ALPHA_TEST_REF
:
5730 params
[0] = FLOAT_TO_INT64(ctx
->Color
.AlphaRef
);
5732 case GL_ATTRIB_STACK_DEPTH
:
5733 params
[0] = (GLint64
)(ctx
->AttribStackDepth
);
5735 case GL_AUTO_NORMAL
:
5736 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.AutoNormal
);
5738 case GL_AUX_BUFFERS
:
5739 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.numAuxBuffers
);
5742 params
[0] = BOOLEAN_TO_INT64((ctx
->Color
.BlendEnabled
& 1));
5745 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstRGB
);
5748 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcRGB
);
5750 case GL_BLEND_SRC_RGB_EXT
:
5751 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcRGB
);
5753 case GL_BLEND_DST_RGB_EXT
:
5754 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstRGB
);
5756 case GL_BLEND_SRC_ALPHA_EXT
:
5757 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendSrcA
);
5759 case GL_BLEND_DST_ALPHA_EXT
:
5760 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendDstA
);
5762 case GL_BLEND_EQUATION
:
5763 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendEquationRGB
);
5765 case GL_BLEND_EQUATION_ALPHA_EXT
:
5766 params
[0] = ENUM_TO_INT64(ctx
->Color
.BlendEquationA
);
5768 case GL_BLEND_COLOR_EXT
:
5769 params
[0] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[0]);
5770 params
[1] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[1]);
5771 params
[2] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[2]);
5772 params
[3] = FLOAT_TO_INT64(ctx
->Color
.BlendColor
[3]);
5775 params
[0] = IROUND64(ctx
->Pixel
.BlueBias
);
5778 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.blueBits
);
5781 params
[0] = IROUND64(ctx
->Pixel
.BlueScale
);
5783 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
5784 params
[0] = (GLint64
)(ctx
->ClientAttribStackDepth
);
5786 case GL_CLIP_PLANE0
:
5787 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 0) & 1);
5789 case GL_CLIP_PLANE1
:
5790 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 1) & 1);
5792 case GL_CLIP_PLANE2
:
5793 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 2) & 1);
5795 case GL_CLIP_PLANE3
:
5796 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 3) & 1);
5798 case GL_CLIP_PLANE4
:
5799 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 4) & 1);
5801 case GL_CLIP_PLANE5
:
5802 params
[0] = BOOLEAN_TO_INT64((ctx
->Transform
.ClipPlanesEnabled
>> 5) & 1);
5804 case GL_COLOR_CLEAR_VALUE
:
5805 params
[0] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[0]);
5806 params
[1] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[1]);
5807 params
[2] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[2]);
5808 params
[3] = FLOAT_TO_INT64(ctx
->Color
.ClearColor
[3]);
5810 case GL_COLOR_MATERIAL
:
5811 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.ColorMaterialEnabled
);
5813 case GL_COLOR_MATERIAL_FACE
:
5814 params
[0] = ENUM_TO_INT64(ctx
->Light
.ColorMaterialFace
);
5816 case GL_COLOR_MATERIAL_PARAMETER
:
5817 params
[0] = ENUM_TO_INT64(ctx
->Light
.ColorMaterialMode
);
5819 case GL_COLOR_WRITEMASK
:
5820 params
[0] = (GLint64
)(ctx
->Color
.ColorMask
[0][RCOMP
] ? 1 : 0);
5821 params
[1] = (GLint64
)(ctx
->Color
.ColorMask
[0][GCOMP
] ? 1 : 0);
5822 params
[2] = (GLint64
)(ctx
->Color
.ColorMask
[0][BCOMP
] ? 1 : 0);
5823 params
[3] = (GLint64
)(ctx
->Color
.ColorMask
[0][ACOMP
] ? 1 : 0);
5826 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.CullFlag
);
5828 case GL_CULL_FACE_MODE
:
5829 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.CullFaceMode
);
5831 case GL_CURRENT_COLOR
:
5833 FLUSH_CURRENT(ctx
, 0);
5834 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][0]);
5835 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][1]);
5836 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][2]);
5837 params
[3] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR0
][3]);
5840 case GL_CURRENT_INDEX
:
5842 FLUSH_CURRENT(ctx
, 0);
5843 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR_INDEX
][0]);
5846 case GL_CURRENT_NORMAL
:
5848 FLUSH_CURRENT(ctx
, 0);
5849 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][0]);
5850 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][1]);
5851 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_NORMAL
][2]);
5854 case GL_CURRENT_RASTER_COLOR
:
5855 params
[0] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[0]);
5856 params
[1] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[1]);
5857 params
[2] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[2]);
5858 params
[3] = FLOAT_TO_INT64(ctx
->Current
.RasterColor
[3]);
5860 case GL_CURRENT_RASTER_DISTANCE
:
5861 params
[0] = IROUND64(ctx
->Current
.RasterDistance
);
5863 case GL_CURRENT_RASTER_INDEX
:
5864 params
[0] = IROUND64(1.0);
5866 case GL_CURRENT_RASTER_POSITION
:
5867 params
[0] = IROUND64(ctx
->Current
.RasterPos
[0]);
5868 params
[1] = IROUND64(ctx
->Current
.RasterPos
[1]);
5869 params
[2] = IROUND64(ctx
->Current
.RasterPos
[2]);
5870 params
[3] = IROUND64(ctx
->Current
.RasterPos
[3]);
5872 case GL_CURRENT_RASTER_SECONDARY_COLOR
:
5873 params
[0] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[0]);
5874 params
[1] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[1]);
5875 params
[2] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[2]);
5876 params
[3] = FLOAT_TO_INT64(ctx
->Current
.RasterSecondaryColor
[3]);
5878 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
5880 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
5881 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
5882 _mesa_error(ctx
, GL_INVALID_OPERATION
,
5883 "glGet(raster tex coords, unit %u)", unit
);
5886 params
[0] = IROUND64(ctx
->Current
.RasterTexCoords
[unit
][0]);
5887 params
[1] = IROUND64(ctx
->Current
.RasterTexCoords
[unit
][1]);
5888 params
[2] = IROUND64(ctx
->Current
.RasterTexCoords
[unit
][2]);
5889 params
[3] = IROUND64(ctx
->Current
.RasterTexCoords
[unit
][3]);
5892 case GL_CURRENT_RASTER_POSITION_VALID
:
5893 params
[0] = BOOLEAN_TO_INT64(ctx
->Current
.RasterPosValid
);
5895 case GL_CURRENT_TEXTURE_COORDS
:
5897 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
5898 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
5899 _mesa_error(ctx
, GL_INVALID_OPERATION
,
5900 "glGet(current tex coords, unit %u)", unit
);
5903 FLUSH_CURRENT(ctx
, 0);
5904 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][0]);
5905 params
[1] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][1]);
5906 params
[2] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][2]);
5907 params
[3] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_TEX0
+ unit
][3]);
5911 params
[0] = IROUND64(ctx
->Pixel
.DepthBias
);
5914 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.depthBits
);
5916 case GL_DEPTH_CLEAR_VALUE
:
5917 params
[0] = FLOAT_TO_INT64(((GLfloat
) ctx
->Depth
.Clear
));
5920 params
[0] = ENUM_TO_INT64(ctx
->Depth
.Func
);
5922 case GL_DEPTH_RANGE
:
5923 params
[0] = FLOAT_TO_INT64(ctx
->Viewport
.Near
);
5924 params
[1] = FLOAT_TO_INT64(ctx
->Viewport
.Far
);
5926 case GL_DEPTH_SCALE
:
5927 params
[0] = IROUND64(ctx
->Pixel
.DepthScale
);
5930 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.Test
);
5932 case GL_DEPTH_WRITEMASK
:
5933 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.Mask
);
5936 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.DitherFlag
);
5938 case GL_DOUBLEBUFFER
:
5939 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.doubleBufferMode
);
5941 case GL_DRAW_BUFFER
:
5942 params
[0] = ENUM_TO_INT64(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
5946 FLUSH_CURRENT(ctx
, 0);
5947 params
[0] = BOOLEAN_TO_INT64((ctx
->Current
.Attrib
[VERT_ATTRIB_EDGEFLAG
][0] == 1.0));
5950 case GL_FEEDBACK_BUFFER_SIZE
:
5951 params
[0] = (GLint64
)(ctx
->Feedback
.BufferSize
);
5953 case GL_FEEDBACK_BUFFER_TYPE
:
5954 params
[0] = ENUM_TO_INT64(ctx
->Feedback
.Type
);
5957 params
[0] = BOOLEAN_TO_INT64(ctx
->Fog
.Enabled
);
5960 params
[0] = FLOAT_TO_INT64(ctx
->Fog
.Color
[0]);
5961 params
[1] = FLOAT_TO_INT64(ctx
->Fog
.Color
[1]);
5962 params
[2] = FLOAT_TO_INT64(ctx
->Fog
.Color
[2]);
5963 params
[3] = FLOAT_TO_INT64(ctx
->Fog
.Color
[3]);
5965 case GL_FOG_DENSITY
:
5966 params
[0] = IROUND64(ctx
->Fog
.Density
);
5969 params
[0] = IROUND64(ctx
->Fog
.End
);
5972 params
[0] = ENUM_TO_INT64(ctx
->Hint
.Fog
);
5975 params
[0] = IROUND64(ctx
->Fog
.Index
);
5978 params
[0] = ENUM_TO_INT64(ctx
->Fog
.Mode
);
5981 params
[0] = IROUND64(ctx
->Fog
.Start
);
5984 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.FrontFace
);
5987 params
[0] = IROUND64(ctx
->Pixel
.GreenBias
);
5990 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.greenBits
);
5992 case GL_GREEN_SCALE
:
5993 params
[0] = IROUND64(ctx
->Pixel
.GreenScale
);
5996 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.indexBits
);
5998 case GL_INDEX_CLEAR_VALUE
:
5999 params
[0] = (GLint64
)(ctx
->Color
.ClearIndex
);
6002 params
[0] = BOOLEAN_TO_INT64(GL_FALSE
);
6004 case GL_INDEX_OFFSET
:
6005 params
[0] = (GLint64
)(ctx
->Pixel
.IndexOffset
);
6007 case GL_INDEX_SHIFT
:
6008 params
[0] = (GLint64
)(ctx
->Pixel
.IndexShift
);
6010 case GL_INDEX_WRITEMASK
:
6011 params
[0] = (GLint64
)(ctx
->Color
.IndexMask
);
6014 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[0].Enabled
);
6017 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[1].Enabled
);
6020 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[2].Enabled
);
6023 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[3].Enabled
);
6026 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[4].Enabled
);
6029 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[5].Enabled
);
6032 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[6].Enabled
);
6035 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Light
[7].Enabled
);
6038 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Enabled
);
6040 case GL_LIGHT_MODEL_AMBIENT
:
6041 params
[0] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[0]);
6042 params
[1] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[1]);
6043 params
[2] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[2]);
6044 params
[3] = FLOAT_TO_INT64(ctx
->Light
.Model
.Ambient
[3]);
6046 case GL_LIGHT_MODEL_COLOR_CONTROL
:
6047 params
[0] = ENUM_TO_INT64(ctx
->Light
.Model
.ColorControl
);
6049 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
6050 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Model
.LocalViewer
);
6052 case GL_LIGHT_MODEL_TWO_SIDE
:
6053 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.Model
.TwoSide
);
6055 case GL_LINE_SMOOTH
:
6056 params
[0] = BOOLEAN_TO_INT64(ctx
->Line
.SmoothFlag
);
6058 case GL_LINE_SMOOTH_HINT
:
6059 params
[0] = ENUM_TO_INT64(ctx
->Hint
.LineSmooth
);
6061 case GL_LINE_STIPPLE
:
6062 params
[0] = BOOLEAN_TO_INT64(ctx
->Line
.StippleFlag
);
6064 case GL_LINE_STIPPLE_PATTERN
:
6065 params
[0] = (GLint64
)(ctx
->Line
.StipplePattern
);
6067 case GL_LINE_STIPPLE_REPEAT
:
6068 params
[0] = (GLint64
)(ctx
->Line
.StippleFactor
);
6071 params
[0] = IROUND64(ctx
->Line
.Width
);
6073 case GL_LINE_WIDTH_GRANULARITY
:
6074 params
[0] = IROUND64(ctx
->Const
.LineWidthGranularity
);
6076 case GL_LINE_WIDTH_RANGE
:
6077 params
[0] = IROUND64(ctx
->Const
.MinLineWidthAA
);
6078 params
[1] = IROUND64(ctx
->Const
.MaxLineWidthAA
);
6080 case GL_ALIASED_LINE_WIDTH_RANGE
:
6081 params
[0] = IROUND64(ctx
->Const
.MinLineWidth
);
6082 params
[1] = IROUND64(ctx
->Const
.MaxLineWidth
);
6085 params
[0] = (GLint64
)(ctx
->List
.ListBase
);
6088 params
[0] = (GLint64
)((ctx
->ListState
.CurrentList
? ctx
->ListState
.CurrentList
->Name
: 0));
6093 if (!ctx
->CompileFlag
)
6095 else if (ctx
->ExecuteFlag
)
6096 mode
= GL_COMPILE_AND_EXECUTE
;
6099 params
[0] = ENUM_TO_INT64(mode
);
6102 case GL_INDEX_LOGIC_OP
:
6103 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.IndexLogicOpEnabled
);
6105 case GL_COLOR_LOGIC_OP
:
6106 params
[0] = BOOLEAN_TO_INT64(ctx
->Color
.ColorLogicOpEnabled
);
6108 case GL_LOGIC_OP_MODE
:
6109 params
[0] = ENUM_TO_INT64(ctx
->Color
.LogicOp
);
6111 case GL_MAP1_COLOR_4
:
6112 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Color4
);
6114 case GL_MAP1_GRID_DOMAIN
:
6115 params
[0] = IROUND64(ctx
->Eval
.MapGrid1u1
);
6116 params
[1] = IROUND64(ctx
->Eval
.MapGrid1u2
);
6118 case GL_MAP1_GRID_SEGMENTS
:
6119 params
[0] = (GLint64
)(ctx
->Eval
.MapGrid1un
);
6122 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Index
);
6124 case GL_MAP1_NORMAL
:
6125 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Normal
);
6127 case GL_MAP1_TEXTURE_COORD_1
:
6128 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord1
);
6130 case GL_MAP1_TEXTURE_COORD_2
:
6131 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord2
);
6133 case GL_MAP1_TEXTURE_COORD_3
:
6134 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord3
);
6136 case GL_MAP1_TEXTURE_COORD_4
:
6137 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1TextureCoord4
);
6139 case GL_MAP1_VERTEX_3
:
6140 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Vertex3
);
6142 case GL_MAP1_VERTEX_4
:
6143 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Vertex4
);
6145 case GL_MAP2_COLOR_4
:
6146 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Color4
);
6148 case GL_MAP2_GRID_DOMAIN
:
6149 params
[0] = IROUND64(ctx
->Eval
.MapGrid2u1
);
6150 params
[1] = IROUND64(ctx
->Eval
.MapGrid2u2
);
6151 params
[2] = IROUND64(ctx
->Eval
.MapGrid2v1
);
6152 params
[3] = IROUND64(ctx
->Eval
.MapGrid2v2
);
6154 case GL_MAP2_GRID_SEGMENTS
:
6155 params
[0] = (GLint64
)(ctx
->Eval
.MapGrid2un
);
6156 params
[1] = (GLint64
)(ctx
->Eval
.MapGrid2vn
);
6159 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Index
);
6161 case GL_MAP2_NORMAL
:
6162 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Normal
);
6164 case GL_MAP2_TEXTURE_COORD_1
:
6165 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord1
);
6167 case GL_MAP2_TEXTURE_COORD_2
:
6168 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord2
);
6170 case GL_MAP2_TEXTURE_COORD_3
:
6171 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord3
);
6173 case GL_MAP2_TEXTURE_COORD_4
:
6174 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2TextureCoord4
);
6176 case GL_MAP2_VERTEX_3
:
6177 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Vertex3
);
6179 case GL_MAP2_VERTEX_4
:
6180 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map2Vertex4
);
6183 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MapColorFlag
);
6185 case GL_MAP_STENCIL
:
6186 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MapStencilFlag
);
6188 case GL_MATRIX_MODE
:
6189 params
[0] = ENUM_TO_INT64(ctx
->Transform
.MatrixMode
);
6191 case GL_MAX_ATTRIB_STACK_DEPTH
:
6192 params
[0] = (GLint64
)(MAX_ATTRIB_STACK_DEPTH
);
6194 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
6195 params
[0] = (GLint64
)(MAX_CLIENT_ATTRIB_STACK_DEPTH
);
6197 case GL_MAX_CLIP_PLANES
:
6198 params
[0] = (GLint64
)(ctx
->Const
.MaxClipPlanes
);
6200 case GL_MAX_ELEMENTS_VERTICES
:
6201 params
[0] = (GLint64
)(ctx
->Const
.MaxArrayLockSize
);
6203 case GL_MAX_ELEMENTS_INDICES
:
6204 params
[0] = (GLint64
)(ctx
->Const
.MaxArrayLockSize
);
6206 case GL_MAX_EVAL_ORDER
:
6207 params
[0] = (GLint64
)(MAX_EVAL_ORDER
);
6210 params
[0] = (GLint64
)(ctx
->Const
.MaxLights
);
6212 case GL_MAX_LIST_NESTING
:
6213 params
[0] = (GLint64
)(MAX_LIST_NESTING
);
6215 case GL_MAX_MODELVIEW_STACK_DEPTH
:
6216 params
[0] = (GLint64
)(MAX_MODELVIEW_STACK_DEPTH
);
6218 case GL_MAX_NAME_STACK_DEPTH
:
6219 params
[0] = (GLint64
)(MAX_NAME_STACK_DEPTH
);
6221 case GL_MAX_PIXEL_MAP_TABLE
:
6222 params
[0] = (GLint64
)(MAX_PIXEL_MAP_TABLE
);
6224 case GL_MAX_PROJECTION_STACK_DEPTH
:
6225 params
[0] = (GLint64
)(MAX_PROJECTION_STACK_DEPTH
);
6227 case GL_MAX_TEXTURE_SIZE
:
6228 params
[0] = (GLint64
)(1 << (ctx
->Const
.MaxTextureLevels
- 1));
6230 case GL_MAX_3D_TEXTURE_SIZE
:
6231 params
[0] = (GLint64
)(1 << (ctx
->Const
.Max3DTextureLevels
- 1));
6233 case GL_MAX_TEXTURE_STACK_DEPTH
:
6234 params
[0] = (GLint64
)(MAX_TEXTURE_STACK_DEPTH
);
6236 case GL_MAX_VIEWPORT_DIMS
:
6237 params
[0] = (GLint64
)(ctx
->Const
.MaxViewportWidth
);
6238 params
[1] = (GLint64
)(ctx
->Const
.MaxViewportHeight
);
6240 case GL_MODELVIEW_MATRIX
:
6242 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
6243 params
[0] = IROUND64(matrix
[0]);
6244 params
[1] = IROUND64(matrix
[1]);
6245 params
[2] = IROUND64(matrix
[2]);
6246 params
[3] = IROUND64(matrix
[3]);
6247 params
[4] = IROUND64(matrix
[4]);
6248 params
[5] = IROUND64(matrix
[5]);
6249 params
[6] = IROUND64(matrix
[6]);
6250 params
[7] = IROUND64(matrix
[7]);
6251 params
[8] = IROUND64(matrix
[8]);
6252 params
[9] = IROUND64(matrix
[9]);
6253 params
[10] = IROUND64(matrix
[10]);
6254 params
[11] = IROUND64(matrix
[11]);
6255 params
[12] = IROUND64(matrix
[12]);
6256 params
[13] = IROUND64(matrix
[13]);
6257 params
[14] = IROUND64(matrix
[14]);
6258 params
[15] = IROUND64(matrix
[15]);
6261 case GL_MODELVIEW_STACK_DEPTH
:
6262 params
[0] = (GLint64
)(ctx
->ModelviewMatrixStack
.Depth
+ 1);
6264 case GL_NAME_STACK_DEPTH
:
6265 params
[0] = (GLint64
)(ctx
->Select
.NameStackDepth
);
6268 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.Normalize
);
6270 case GL_PACK_ALIGNMENT
:
6271 params
[0] = (GLint64
)(ctx
->Pack
.Alignment
);
6273 case GL_PACK_LSB_FIRST
:
6274 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.LsbFirst
);
6276 case GL_PACK_ROW_LENGTH
:
6277 params
[0] = (GLint64
)(ctx
->Pack
.RowLength
);
6279 case GL_PACK_SKIP_PIXELS
:
6280 params
[0] = (GLint64
)(ctx
->Pack
.SkipPixels
);
6282 case GL_PACK_SKIP_ROWS
:
6283 params
[0] = (GLint64
)(ctx
->Pack
.SkipRows
);
6285 case GL_PACK_SWAP_BYTES
:
6286 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.SwapBytes
);
6288 case GL_PACK_SKIP_IMAGES_EXT
:
6289 params
[0] = (GLint64
)(ctx
->Pack
.SkipImages
);
6291 case GL_PACK_IMAGE_HEIGHT_EXT
:
6292 params
[0] = (GLint64
)(ctx
->Pack
.ImageHeight
);
6294 case GL_PACK_INVERT_MESA
:
6295 params
[0] = BOOLEAN_TO_INT64(ctx
->Pack
.Invert
);
6297 case GL_PERSPECTIVE_CORRECTION_HINT
:
6298 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PerspectiveCorrection
);
6300 case GL_PIXEL_MAP_A_TO_A_SIZE
:
6301 params
[0] = (GLint64
)(ctx
->PixelMaps
.AtoA
.Size
);
6303 case GL_PIXEL_MAP_B_TO_B_SIZE
:
6304 params
[0] = (GLint64
)(ctx
->PixelMaps
.BtoB
.Size
);
6306 case GL_PIXEL_MAP_G_TO_G_SIZE
:
6307 params
[0] = (GLint64
)(ctx
->PixelMaps
.GtoG
.Size
);
6309 case GL_PIXEL_MAP_I_TO_A_SIZE
:
6310 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoA
.Size
);
6312 case GL_PIXEL_MAP_I_TO_B_SIZE
:
6313 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoB
.Size
);
6315 case GL_PIXEL_MAP_I_TO_G_SIZE
:
6316 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoG
.Size
);
6318 case GL_PIXEL_MAP_I_TO_I_SIZE
:
6319 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoI
.Size
);
6321 case GL_PIXEL_MAP_I_TO_R_SIZE
:
6322 params
[0] = (GLint64
)(ctx
->PixelMaps
.ItoR
.Size
);
6324 case GL_PIXEL_MAP_R_TO_R_SIZE
:
6325 params
[0] = (GLint64
)(ctx
->PixelMaps
.RtoR
.Size
);
6327 case GL_PIXEL_MAP_S_TO_S_SIZE
:
6328 params
[0] = (GLint64
)(ctx
->PixelMaps
.StoS
.Size
);
6331 params
[0] = IROUND64(ctx
->Point
.Size
);
6333 case GL_POINT_SIZE_GRANULARITY
:
6334 params
[0] = IROUND64(ctx
->Const
.PointSizeGranularity
);
6336 case GL_POINT_SIZE_RANGE
:
6337 params
[0] = IROUND64(ctx
->Const
.MinPointSizeAA
);
6338 params
[1] = IROUND64(ctx
->Const
.MaxPointSizeAA
);
6340 case GL_ALIASED_POINT_SIZE_RANGE
:
6341 params
[0] = IROUND64(ctx
->Const
.MinPointSize
);
6342 params
[1] = IROUND64(ctx
->Const
.MaxPointSize
);
6344 case GL_POINT_SMOOTH
:
6345 params
[0] = BOOLEAN_TO_INT64(ctx
->Point
.SmoothFlag
);
6347 case GL_POINT_SMOOTH_HINT
:
6348 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PointSmooth
);
6350 case GL_POINT_SIZE_MIN_EXT
:
6351 params
[0] = IROUND64(ctx
->Point
.MinSize
);
6353 case GL_POINT_SIZE_MAX_EXT
:
6354 params
[0] = IROUND64(ctx
->Point
.MaxSize
);
6356 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
6357 params
[0] = IROUND64(ctx
->Point
.Threshold
);
6359 case GL_DISTANCE_ATTENUATION_EXT
:
6360 params
[0] = IROUND64(ctx
->Point
.Params
[0]);
6361 params
[1] = IROUND64(ctx
->Point
.Params
[1]);
6362 params
[2] = IROUND64(ctx
->Point
.Params
[2]);
6364 case GL_POLYGON_MODE
:
6365 params
[0] = ENUM_TO_INT64(ctx
->Polygon
.FrontMode
);
6366 params
[1] = ENUM_TO_INT64(ctx
->Polygon
.BackMode
);
6368 case GL_POLYGON_OFFSET_BIAS_EXT
:
6369 params
[0] = IROUND64(ctx
->Polygon
.OffsetUnits
);
6371 case GL_POLYGON_OFFSET_FACTOR
:
6372 params
[0] = IROUND64(ctx
->Polygon
.OffsetFactor
);
6374 case GL_POLYGON_OFFSET_UNITS
:
6375 params
[0] = IROUND64(ctx
->Polygon
.OffsetUnits
);
6377 case GL_POLYGON_OFFSET_POINT
:
6378 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetPoint
);
6380 case GL_POLYGON_OFFSET_LINE
:
6381 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetLine
);
6383 case GL_POLYGON_OFFSET_FILL
:
6384 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.OffsetFill
);
6386 case GL_POLYGON_SMOOTH
:
6387 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.SmoothFlag
);
6389 case GL_POLYGON_SMOOTH_HINT
:
6390 params
[0] = ENUM_TO_INT64(ctx
->Hint
.PolygonSmooth
);
6392 case GL_POLYGON_STIPPLE
:
6393 params
[0] = BOOLEAN_TO_INT64(ctx
->Polygon
.StippleFlag
);
6395 case GL_PROJECTION_MATRIX
:
6397 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
6398 params
[0] = IROUND64(matrix
[0]);
6399 params
[1] = IROUND64(matrix
[1]);
6400 params
[2] = IROUND64(matrix
[2]);
6401 params
[3] = IROUND64(matrix
[3]);
6402 params
[4] = IROUND64(matrix
[4]);
6403 params
[5] = IROUND64(matrix
[5]);
6404 params
[6] = IROUND64(matrix
[6]);
6405 params
[7] = IROUND64(matrix
[7]);
6406 params
[8] = IROUND64(matrix
[8]);
6407 params
[9] = IROUND64(matrix
[9]);
6408 params
[10] = IROUND64(matrix
[10]);
6409 params
[11] = IROUND64(matrix
[11]);
6410 params
[12] = IROUND64(matrix
[12]);
6411 params
[13] = IROUND64(matrix
[13]);
6412 params
[14] = IROUND64(matrix
[14]);
6413 params
[15] = IROUND64(matrix
[15]);
6416 case GL_PROJECTION_STACK_DEPTH
:
6417 params
[0] = (GLint64
)(ctx
->ProjectionMatrixStack
.Depth
+ 1);
6419 case GL_READ_BUFFER
:
6420 params
[0] = ENUM_TO_INT64(ctx
->ReadBuffer
->ColorReadBuffer
);
6423 params
[0] = IROUND64(ctx
->Pixel
.RedBias
);
6426 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.redBits
);
6429 params
[0] = IROUND64(ctx
->Pixel
.RedScale
);
6431 case GL_RENDER_MODE
:
6432 params
[0] = ENUM_TO_INT64(ctx
->RenderMode
);
6434 case GL_RESCALE_NORMAL
:
6435 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.RescaleNormals
);
6438 params
[0] = BOOLEAN_TO_INT64(GL_TRUE
);
6440 case GL_SCISSOR_BOX
:
6441 params
[0] = (GLint64
)(ctx
->Scissor
.X
);
6442 params
[1] = (GLint64
)(ctx
->Scissor
.Y
);
6443 params
[2] = (GLint64
)(ctx
->Scissor
.Width
);
6444 params
[3] = (GLint64
)(ctx
->Scissor
.Height
);
6446 case GL_SCISSOR_TEST
:
6447 params
[0] = BOOLEAN_TO_INT64(ctx
->Scissor
.Enabled
);
6449 case GL_SELECTION_BUFFER_SIZE
:
6450 params
[0] = (GLint64
)(ctx
->Select
.BufferSize
);
6452 case GL_SHADE_MODEL
:
6453 params
[0] = ENUM_TO_INT64(ctx
->Light
.ShadeModel
);
6455 case GL_SHARED_TEXTURE_PALETTE_EXT
:
6456 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.SharedPalette
);
6458 case GL_STENCIL_BITS
:
6459 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.stencilBits
);
6461 case GL_STENCIL_CLEAR_VALUE
:
6462 params
[0] = (GLint64
)(ctx
->Stencil
.Clear
);
6464 case GL_STENCIL_FAIL
:
6465 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.FailFunc
[ctx
->Stencil
.ActiveFace
]);
6467 case GL_STENCIL_FUNC
:
6468 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.Function
[ctx
->Stencil
.ActiveFace
]);
6470 case GL_STENCIL_PASS_DEPTH_FAIL
:
6471 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZFailFunc
[ctx
->Stencil
.ActiveFace
]);
6473 case GL_STENCIL_PASS_DEPTH_PASS
:
6474 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZPassFunc
[ctx
->Stencil
.ActiveFace
]);
6476 case GL_STENCIL_REF
:
6477 params
[0] = (GLint64
)(ctx
->Stencil
.Ref
[ctx
->Stencil
.ActiveFace
]);
6479 case GL_STENCIL_TEST
:
6480 params
[0] = BOOLEAN_TO_INT64(ctx
->Stencil
.Enabled
);
6482 case GL_STENCIL_VALUE_MASK
:
6483 params
[0] = (GLint64
)(ctx
->Stencil
.ValueMask
[ctx
->Stencil
.ActiveFace
]);
6485 case GL_STENCIL_WRITEMASK
:
6486 params
[0] = (GLint64
)(ctx
->Stencil
.WriteMask
[ctx
->Stencil
.ActiveFace
]);
6489 params
[0] = BOOLEAN_TO_INT64(ctx
->DrawBuffer
->Visual
.stereoMode
);
6491 case GL_SUBPIXEL_BITS
:
6492 params
[0] = (GLint64
)(ctx
->Const
.SubPixelBits
);
6495 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D
));
6498 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D
));
6501 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_3D
));
6503 case GL_TEXTURE_1D_ARRAY_EXT
:
6504 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6505 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT
));
6507 case GL_TEXTURE_2D_ARRAY_EXT
:
6508 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6509 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT
));
6511 case GL_TEXTURE_BINDING_1D
:
6512 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_INDEX
]->Name
);
6514 case GL_TEXTURE_BINDING_2D
:
6515 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_INDEX
]->Name
);
6517 case GL_TEXTURE_BINDING_3D
:
6518 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_3D_INDEX
]->Name
);
6520 case GL_TEXTURE_BINDING_1D_ARRAY_EXT
:
6521 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6522 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_1D_ARRAY_INDEX
]->Name
);
6524 case GL_TEXTURE_BINDING_2D_ARRAY_EXT
:
6525 CHECK_EXT1(MESA_texture_array
, "GetInteger64v");
6526 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_2D_ARRAY_INDEX
]->Name
);
6528 case GL_TEXTURE_GEN_S
:
6529 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& S_BIT
) ? 1 : 0));
6531 case GL_TEXTURE_GEN_T
:
6532 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& T_BIT
) ? 1 : 0));
6534 case GL_TEXTURE_GEN_R
:
6535 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& R_BIT
) ? 1 : 0));
6537 case GL_TEXTURE_GEN_Q
:
6538 params
[0] = BOOLEAN_TO_INT64(((ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].TexGenEnabled
& Q_BIT
) ? 1 : 0));
6540 case GL_TEXTURE_MATRIX
:
6542 const GLfloat
*matrix
;
6543 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
6544 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
6545 _mesa_error(ctx
, GL_INVALID_OPERATION
, "glGet(texture matrix %u)",
6549 matrix
= ctx
->TextureMatrixStack
[unit
].Top
->m
;
6550 params
[0] = IROUND64(matrix
[0]);
6551 params
[1] = IROUND64(matrix
[1]);
6552 params
[2] = IROUND64(matrix
[2]);
6553 params
[3] = IROUND64(matrix
[3]);
6554 params
[4] = IROUND64(matrix
[4]);
6555 params
[5] = IROUND64(matrix
[5]);
6556 params
[6] = IROUND64(matrix
[6]);
6557 params
[7] = IROUND64(matrix
[7]);
6558 params
[8] = IROUND64(matrix
[8]);
6559 params
[9] = IROUND64(matrix
[9]);
6560 params
[10] = IROUND64(matrix
[10]);
6561 params
[11] = IROUND64(matrix
[11]);
6562 params
[12] = IROUND64(matrix
[12]);
6563 params
[13] = IROUND64(matrix
[13]);
6564 params
[14] = IROUND64(matrix
[14]);
6565 params
[15] = IROUND64(matrix
[15]);
6568 case GL_TEXTURE_STACK_DEPTH
:
6570 const GLuint unit
= ctx
->Texture
.CurrentUnit
;
6571 if (unit
>= ctx
->Const
.MaxTextureCoordUnits
) {
6572 _mesa_error(ctx
, GL_INVALID_OPERATION
,
6573 "glGet(texture stack depth, unit %u)", unit
);
6576 params
[0] = (GLint64
)(ctx
->TextureMatrixStack
[unit
].Depth
+ 1);
6579 case GL_UNPACK_ALIGNMENT
:
6580 params
[0] = (GLint64
)(ctx
->Unpack
.Alignment
);
6582 case GL_UNPACK_LSB_FIRST
:
6583 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.LsbFirst
);
6585 case GL_UNPACK_ROW_LENGTH
:
6586 params
[0] = (GLint64
)(ctx
->Unpack
.RowLength
);
6588 case GL_UNPACK_SKIP_PIXELS
:
6589 params
[0] = (GLint64
)(ctx
->Unpack
.SkipPixels
);
6591 case GL_UNPACK_SKIP_ROWS
:
6592 params
[0] = (GLint64
)(ctx
->Unpack
.SkipRows
);
6594 case GL_UNPACK_SWAP_BYTES
:
6595 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.SwapBytes
);
6597 case GL_UNPACK_SKIP_IMAGES_EXT
:
6598 params
[0] = (GLint64
)(ctx
->Unpack
.SkipImages
);
6600 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
6601 params
[0] = (GLint64
)(ctx
->Unpack
.ImageHeight
);
6603 case GL_UNPACK_CLIENT_STORAGE_APPLE
:
6604 params
[0] = BOOLEAN_TO_INT64(ctx
->Unpack
.ClientStorage
);
6607 params
[0] = (GLint64
)(ctx
->Viewport
.X
);
6608 params
[1] = (GLint64
)(ctx
->Viewport
.Y
);
6609 params
[2] = (GLint64
)(ctx
->Viewport
.Width
);
6610 params
[3] = (GLint64
)(ctx
->Viewport
.Height
);
6613 params
[0] = IROUND64(ctx
->Pixel
.ZoomX
);
6616 params
[0] = IROUND64(ctx
->Pixel
.ZoomY
);
6618 case GL_VERTEX_ARRAY
:
6619 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Vertex
.Enabled
);
6621 case GL_VERTEX_ARRAY_SIZE
:
6622 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Vertex
.Size
);
6624 case GL_VERTEX_ARRAY_TYPE
:
6625 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Vertex
.Type
);
6627 case GL_VERTEX_ARRAY_STRIDE
:
6628 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Vertex
.Stride
);
6630 case GL_VERTEX_ARRAY_COUNT_EXT
:
6631 params
[0] = (GLint64
)(0);
6633 case GL_NORMAL_ARRAY
:
6634 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Normal
.Enabled
);
6636 case GL_NORMAL_ARRAY_TYPE
:
6637 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Normal
.Type
);
6639 case GL_NORMAL_ARRAY_STRIDE
:
6640 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Normal
.Stride
);
6642 case GL_NORMAL_ARRAY_COUNT_EXT
:
6643 params
[0] = (GLint64
)(0);
6645 case GL_COLOR_ARRAY
:
6646 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Color
.Enabled
);
6648 case GL_COLOR_ARRAY_SIZE
:
6649 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Color
.Size
);
6651 case GL_COLOR_ARRAY_TYPE
:
6652 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Color
.Type
);
6654 case GL_COLOR_ARRAY_STRIDE
:
6655 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Color
.Stride
);
6657 case GL_COLOR_ARRAY_COUNT_EXT
:
6658 params
[0] = (GLint64
)(0);
6660 case GL_INDEX_ARRAY
:
6661 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->Index
.Enabled
);
6663 case GL_INDEX_ARRAY_TYPE
:
6664 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->Index
.Type
);
6666 case GL_INDEX_ARRAY_STRIDE
:
6667 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Index
.Stride
);
6669 case GL_INDEX_ARRAY_COUNT_EXT
:
6670 params
[0] = (GLint64
)(0);
6672 case GL_TEXTURE_COORD_ARRAY
:
6673 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Enabled
);
6675 case GL_TEXTURE_COORD_ARRAY_SIZE
:
6676 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Size
);
6678 case GL_TEXTURE_COORD_ARRAY_TYPE
:
6679 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Type
);
6681 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
6682 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].Stride
);
6684 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
6685 params
[0] = (GLint64
)(0);
6687 case GL_EDGE_FLAG_ARRAY
:
6688 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->EdgeFlag
.Enabled
);
6690 case GL_EDGE_FLAG_ARRAY_STRIDE
:
6691 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->EdgeFlag
.Stride
);
6693 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
6694 params
[0] = (GLint64
)(0);
6696 case GL_MAX_TEXTURE_UNITS_ARB
:
6697 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6698 params
[0] = (GLint64
)(ctx
->Const
.MaxTextureUnits
);
6700 case GL_ACTIVE_TEXTURE_ARB
:
6701 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6702 params
[0] = (GLint64
)(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
6704 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
6705 CHECK_EXT1(ARB_multitexture
, "GetInteger64v");
6706 params
[0] = (GLint64
)(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
6708 case GL_TEXTURE_CUBE_MAP_ARB
:
6709 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6710 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB
));
6712 case GL_TEXTURE_BINDING_CUBE_MAP_ARB
:
6713 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6714 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_CUBE_INDEX
]->Name
);
6716 case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
:
6717 CHECK_EXT1(ARB_texture_cube_map
, "GetInteger64v");
6718 params
[0] = (GLint64
)((1 << (ctx
->Const
.MaxCubeTextureLevels
- 1)));
6720 case GL_TEXTURE_COMPRESSION_HINT_ARB
:
6721 params
[0] = (GLint64
)(ctx
->Hint
.TextureCompression
);
6723 case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
:
6724 params
[0] = (GLint64
)(_mesa_get_compressed_formats(ctx
, NULL
, GL_FALSE
));
6726 case GL_COMPRESSED_TEXTURE_FORMATS_ARB
:
6729 GLuint i
, n
= _mesa_get_compressed_formats(ctx
, formats
, GL_FALSE
);
6731 for (i
= 0; i
< n
; i
++)
6732 params
[i
] = ENUM_TO_INT64(formats
[i
]);
6735 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
6736 CHECK_EXT1(EXT_compiled_vertex_array
, "GetInteger64v");
6737 params
[0] = (GLint64
)(ctx
->Array
.LockFirst
);
6739 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
6740 CHECK_EXT1(EXT_compiled_vertex_array
, "GetInteger64v");
6741 params
[0] = (GLint64
)(ctx
->Array
.LockCount
);
6743 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
6745 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
6746 params
[0] = IROUND64(matrix
[0]);
6747 params
[1] = IROUND64(matrix
[4]);
6748 params
[2] = IROUND64(matrix
[8]);
6749 params
[3] = IROUND64(matrix
[12]);
6750 params
[4] = IROUND64(matrix
[1]);
6751 params
[5] = IROUND64(matrix
[5]);
6752 params
[6] = IROUND64(matrix
[9]);
6753 params
[7] = IROUND64(matrix
[13]);
6754 params
[8] = IROUND64(matrix
[2]);
6755 params
[9] = IROUND64(matrix
[6]);
6756 params
[10] = IROUND64(matrix
[10]);
6757 params
[11] = IROUND64(matrix
[14]);
6758 params
[12] = IROUND64(matrix
[3]);
6759 params
[13] = IROUND64(matrix
[7]);
6760 params
[14] = IROUND64(matrix
[11]);
6761 params
[15] = IROUND64(matrix
[15]);
6764 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
6766 const GLfloat
*matrix
= ctx
->ModelviewMatrixStack
.Top
->m
;
6767 params
[0] = IROUND64(matrix
[0]);
6768 params
[1] = IROUND64(matrix
[4]);
6769 params
[2] = IROUND64(matrix
[8]);
6770 params
[3] = IROUND64(matrix
[12]);
6771 params
[4] = IROUND64(matrix
[1]);
6772 params
[5] = IROUND64(matrix
[5]);
6773 params
[6] = IROUND64(matrix
[9]);
6774 params
[7] = IROUND64(matrix
[13]);
6775 params
[8] = IROUND64(matrix
[2]);
6776 params
[9] = IROUND64(matrix
[6]);
6777 params
[10] = IROUND64(matrix
[10]);
6778 params
[11] = IROUND64(matrix
[14]);
6779 params
[12] = IROUND64(matrix
[3]);
6780 params
[13] = IROUND64(matrix
[7]);
6781 params
[14] = IROUND64(matrix
[11]);
6782 params
[15] = IROUND64(matrix
[15]);
6785 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
6787 const GLfloat
*matrix
= ctx
->ProjectionMatrixStack
.Top
->m
;
6788 params
[0] = IROUND64(matrix
[0]);
6789 params
[1] = IROUND64(matrix
[4]);
6790 params
[2] = IROUND64(matrix
[8]);
6791 params
[3] = IROUND64(matrix
[12]);
6792 params
[4] = IROUND64(matrix
[1]);
6793 params
[5] = IROUND64(matrix
[5]);
6794 params
[6] = IROUND64(matrix
[9]);
6795 params
[7] = IROUND64(matrix
[13]);
6796 params
[8] = IROUND64(matrix
[2]);
6797 params
[9] = IROUND64(matrix
[6]);
6798 params
[10] = IROUND64(matrix
[10]);
6799 params
[11] = IROUND64(matrix
[14]);
6800 params
[12] = IROUND64(matrix
[3]);
6801 params
[13] = IROUND64(matrix
[7]);
6802 params
[14] = IROUND64(matrix
[11]);
6803 params
[15] = IROUND64(matrix
[15]);
6806 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
6808 const GLfloat
*matrix
= ctx
->TextureMatrixStack
[ctx
->Texture
.CurrentUnit
].Top
->m
;
6809 params
[0] = IROUND64(matrix
[0]);
6810 params
[1] = IROUND64(matrix
[4]);
6811 params
[2] = IROUND64(matrix
[8]);
6812 params
[3] = IROUND64(matrix
[12]);
6813 params
[4] = IROUND64(matrix
[1]);
6814 params
[5] = IROUND64(matrix
[5]);
6815 params
[6] = IROUND64(matrix
[9]);
6816 params
[7] = IROUND64(matrix
[13]);
6817 params
[8] = IROUND64(matrix
[2]);
6818 params
[9] = IROUND64(matrix
[6]);
6819 params
[10] = IROUND64(matrix
[10]);
6820 params
[11] = IROUND64(matrix
[14]);
6821 params
[12] = IROUND64(matrix
[3]);
6822 params
[13] = IROUND64(matrix
[7]);
6823 params
[14] = IROUND64(matrix
[11]);
6824 params
[15] = IROUND64(matrix
[15]);
6827 case GL_COLOR_MATRIX_SGI
:
6829 const GLfloat
*matrix
= ctx
->ColorMatrixStack
.Top
->m
;
6830 params
[0] = IROUND64(matrix
[0]);
6831 params
[1] = IROUND64(matrix
[1]);
6832 params
[2] = IROUND64(matrix
[2]);
6833 params
[3] = IROUND64(matrix
[3]);
6834 params
[4] = IROUND64(matrix
[4]);
6835 params
[5] = IROUND64(matrix
[5]);
6836 params
[6] = IROUND64(matrix
[6]);
6837 params
[7] = IROUND64(matrix
[7]);
6838 params
[8] = IROUND64(matrix
[8]);
6839 params
[9] = IROUND64(matrix
[9]);
6840 params
[10] = IROUND64(matrix
[10]);
6841 params
[11] = IROUND64(matrix
[11]);
6842 params
[12] = IROUND64(matrix
[12]);
6843 params
[13] = IROUND64(matrix
[13]);
6844 params
[14] = IROUND64(matrix
[14]);
6845 params
[15] = IROUND64(matrix
[15]);
6848 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
6849 params
[0] = (GLint64
)(ctx
->ColorMatrixStack
.Depth
+ 1);
6851 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
6852 params
[0] = (GLint64
)(MAX_COLOR_STACK_DEPTH
);
6854 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
6855 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[0]);
6857 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
6858 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[1]);
6860 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
6861 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[2]);
6863 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
6864 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixScale
[3]);
6866 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
6867 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[0]);
6869 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
6870 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[1]);
6872 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
6873 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[2]);
6875 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
6876 params
[0] = IROUND64(ctx
->Pixel
.PostColorMatrixBias
[3]);
6878 case GL_CONVOLUTION_1D_EXT
:
6879 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6880 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Convolution1DEnabled
);
6882 case GL_CONVOLUTION_2D_EXT
:
6883 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6884 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Convolution2DEnabled
);
6886 case GL_SEPARABLE_2D_EXT
:
6887 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6888 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.Separable2DEnabled
);
6890 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
6891 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6892 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[0]);
6894 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
6895 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6896 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[1]);
6898 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
6899 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6900 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[2]);
6902 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
6903 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6904 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionScale
[3]);
6906 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
6907 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6908 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[0]);
6910 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
6911 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6912 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[1]);
6914 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
6915 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6916 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[2]);
6918 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
6919 CHECK_EXT1(EXT_convolution
, "GetInteger64v");
6920 params
[0] = IROUND64(ctx
->Pixel
.PostConvolutionBias
[3]);
6923 CHECK_EXT1(EXT_histogram
, "GetInteger64v");
6924 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.HistogramEnabled
);
6927 CHECK_EXT1(EXT_histogram
, "GetInteger64v");
6928 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.MinMaxEnabled
);
6930 case GL_COLOR_TABLE_SGI
:
6931 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6932 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_PRECONVOLUTION
]);
6934 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
6935 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6936 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCONVOLUTION
]);
6938 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
6939 CHECK_EXT1(SGI_color_table
, "GetInteger64v");
6940 params
[0] = BOOLEAN_TO_INT64(ctx
->Pixel
.ColorTableEnabled
[COLORTABLE_POSTCOLORMATRIX
]);
6942 case GL_TEXTURE_COLOR_TABLE_SGI
:
6943 CHECK_EXT1(SGI_texture_color_table
, "GetInteger64v");
6944 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].ColorTableEnabled
);
6946 case GL_COLOR_SUM_EXT
:
6947 CHECK_EXT2(EXT_secondary_color
, ARB_vertex_program
, "GetInteger64v");
6948 params
[0] = BOOLEAN_TO_INT64(ctx
->Fog
.ColorSumEnabled
);
6950 case GL_CURRENT_SECONDARY_COLOR_EXT
:
6951 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6953 FLUSH_CURRENT(ctx
, 0);
6954 params
[0] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][0]);
6955 params
[1] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][1]);
6956 params
[2] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][2]);
6957 params
[3] = FLOAT_TO_INT64(ctx
->Current
.Attrib
[VERT_ATTRIB_COLOR1
][3]);
6960 case GL_SECONDARY_COLOR_ARRAY_EXT
:
6961 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6962 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->SecondaryColor
.Enabled
);
6964 case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
:
6965 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6966 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->SecondaryColor
.Type
);
6968 case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
:
6969 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6970 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Stride
);
6972 case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
:
6973 CHECK_EXT1(EXT_secondary_color
, "GetInteger64v");
6974 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->SecondaryColor
.Size
);
6976 case GL_CURRENT_FOG_COORDINATE_EXT
:
6977 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6979 FLUSH_CURRENT(ctx
, 0);
6980 params
[0] = IROUND64(ctx
->Current
.Attrib
[VERT_ATTRIB_FOG
][0]);
6983 case GL_FOG_COORDINATE_ARRAY_EXT
:
6984 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6985 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->FogCoord
.Enabled
);
6987 case GL_FOG_COORDINATE_ARRAY_TYPE_EXT
:
6988 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6989 params
[0] = ENUM_TO_INT64(ctx
->Array
.ArrayObj
->FogCoord
.Type
);
6991 case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
:
6992 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6993 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->FogCoord
.Stride
);
6995 case GL_FOG_COORDINATE_SOURCE_EXT
:
6996 CHECK_EXT1(EXT_fog_coord
, "GetInteger64v");
6997 params
[0] = ENUM_TO_INT64(ctx
->Fog
.FogCoordinateSource
);
6999 case GL_MAX_TEXTURE_LOD_BIAS_EXT
:
7000 CHECK_EXT1(EXT_texture_lod_bias
, "GetInteger64v");
7001 params
[0] = IROUND64(ctx
->Const
.MaxTextureLodBias
);
7003 case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
:
7004 CHECK_EXT1(EXT_texture_filter_anisotropic
, "GetInteger64v");
7005 params
[0] = IROUND64(ctx
->Const
.MaxTextureMaxAnisotropy
);
7007 case GL_MULTISAMPLE_ARB
:
7008 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.Enabled
);
7010 case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
:
7011 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleAlphaToCoverage
);
7013 case GL_SAMPLE_ALPHA_TO_ONE_ARB
:
7014 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleAlphaToOne
);
7016 case GL_SAMPLE_COVERAGE_ARB
:
7017 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleCoverage
);
7019 case GL_SAMPLE_COVERAGE_VALUE_ARB
:
7020 params
[0] = IROUND64(ctx
->Multisample
.SampleCoverageValue
);
7022 case GL_SAMPLE_COVERAGE_INVERT_ARB
:
7023 params
[0] = BOOLEAN_TO_INT64(ctx
->Multisample
.SampleCoverageInvert
);
7025 case GL_SAMPLE_BUFFERS_ARB
:
7026 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.sampleBuffers
);
7028 case GL_SAMPLES_ARB
:
7029 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Visual
.samples
);
7031 case GL_RASTER_POSITION_UNCLIPPED_IBM
:
7032 CHECK_EXT1(IBM_rasterpos_clip
, "GetInteger64v");
7033 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.RasterPositionUnclipped
);
7035 case GL_POINT_SPRITE_NV
:
7036 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetInteger64v");
7037 params
[0] = BOOLEAN_TO_INT64(ctx
->Point
.PointSprite
);
7039 case GL_POINT_SPRITE_R_MODE_NV
:
7040 CHECK_EXT1(NV_point_sprite
, "GetInteger64v");
7041 params
[0] = ENUM_TO_INT64(ctx
->Point
.SpriteRMode
);
7043 case GL_POINT_SPRITE_COORD_ORIGIN
:
7044 CHECK_EXT2(NV_point_sprite
, ARB_point_sprite
, "GetInteger64v");
7045 params
[0] = ENUM_TO_INT64(ctx
->Point
.SpriteOrigin
);
7047 case GL_GENERATE_MIPMAP_HINT_SGIS
:
7048 CHECK_EXT1(SGIS_generate_mipmap
, "GetInteger64v");
7049 params
[0] = ENUM_TO_INT64(ctx
->Hint
.GenerateMipmap
);
7051 case GL_VERTEX_PROGRAM_BINDING_NV
:
7052 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7053 params
[0] = (GLint64
)((ctx
->VertexProgram
.Current
? ctx
->VertexProgram
.Current
->Base
.Id
: 0));
7055 case GL_VERTEX_ATTRIB_ARRAY0_NV
:
7056 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7057 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[0].Enabled
);
7059 case GL_VERTEX_ATTRIB_ARRAY1_NV
:
7060 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7061 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[1].Enabled
);
7063 case GL_VERTEX_ATTRIB_ARRAY2_NV
:
7064 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7065 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[2].Enabled
);
7067 case GL_VERTEX_ATTRIB_ARRAY3_NV
:
7068 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7069 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[3].Enabled
);
7071 case GL_VERTEX_ATTRIB_ARRAY4_NV
:
7072 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7073 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[4].Enabled
);
7075 case GL_VERTEX_ATTRIB_ARRAY5_NV
:
7076 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7077 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[5].Enabled
);
7079 case GL_VERTEX_ATTRIB_ARRAY6_NV
:
7080 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7081 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[6].Enabled
);
7083 case GL_VERTEX_ATTRIB_ARRAY7_NV
:
7084 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7085 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[7].Enabled
);
7087 case GL_VERTEX_ATTRIB_ARRAY8_NV
:
7088 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7089 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[8].Enabled
);
7091 case GL_VERTEX_ATTRIB_ARRAY9_NV
:
7092 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7093 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[9].Enabled
);
7095 case GL_VERTEX_ATTRIB_ARRAY10_NV
:
7096 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7097 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[10].Enabled
);
7099 case GL_VERTEX_ATTRIB_ARRAY11_NV
:
7100 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7101 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[11].Enabled
);
7103 case GL_VERTEX_ATTRIB_ARRAY12_NV
:
7104 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7105 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[12].Enabled
);
7107 case GL_VERTEX_ATTRIB_ARRAY13_NV
:
7108 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7109 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[13].Enabled
);
7111 case GL_VERTEX_ATTRIB_ARRAY14_NV
:
7112 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7113 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[14].Enabled
);
7115 case GL_VERTEX_ATTRIB_ARRAY15_NV
:
7116 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7117 params
[0] = BOOLEAN_TO_INT64(ctx
->Array
.ArrayObj
->VertexAttrib
[15].Enabled
);
7119 case GL_MAP1_VERTEX_ATTRIB0_4_NV
:
7120 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7121 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[0]);
7123 case GL_MAP1_VERTEX_ATTRIB1_4_NV
:
7124 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7125 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[1]);
7127 case GL_MAP1_VERTEX_ATTRIB2_4_NV
:
7128 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7129 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[2]);
7131 case GL_MAP1_VERTEX_ATTRIB3_4_NV
:
7132 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7133 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[3]);
7135 case GL_MAP1_VERTEX_ATTRIB4_4_NV
:
7136 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7137 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[4]);
7139 case GL_MAP1_VERTEX_ATTRIB5_4_NV
:
7140 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7141 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[5]);
7143 case GL_MAP1_VERTEX_ATTRIB6_4_NV
:
7144 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7145 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[6]);
7147 case GL_MAP1_VERTEX_ATTRIB7_4_NV
:
7148 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7149 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[7]);
7151 case GL_MAP1_VERTEX_ATTRIB8_4_NV
:
7152 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7153 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[8]);
7155 case GL_MAP1_VERTEX_ATTRIB9_4_NV
:
7156 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7157 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[9]);
7159 case GL_MAP1_VERTEX_ATTRIB10_4_NV
:
7160 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7161 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[10]);
7163 case GL_MAP1_VERTEX_ATTRIB11_4_NV
:
7164 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7165 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[11]);
7167 case GL_MAP1_VERTEX_ATTRIB12_4_NV
:
7168 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7169 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[12]);
7171 case GL_MAP1_VERTEX_ATTRIB13_4_NV
:
7172 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7173 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[13]);
7175 case GL_MAP1_VERTEX_ATTRIB14_4_NV
:
7176 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7177 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[14]);
7179 case GL_MAP1_VERTEX_ATTRIB15_4_NV
:
7180 CHECK_EXT1(NV_vertex_program
, "GetInteger64v");
7181 params
[0] = BOOLEAN_TO_INT64(ctx
->Eval
.Map1Attrib
[15]);
7183 case GL_FRAGMENT_PROGRAM_NV
:
7184 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7185 params
[0] = BOOLEAN_TO_INT64(ctx
->FragmentProgram
.Enabled
);
7187 case GL_FRAGMENT_PROGRAM_BINDING_NV
:
7188 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7189 params
[0] = (GLint64
)(ctx
->FragmentProgram
.Current
? ctx
->FragmentProgram
.Current
->Base
.Id
: 0);
7191 case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
:
7192 CHECK_EXT1(NV_fragment_program
, "GetInteger64v");
7193 params
[0] = (GLint64
)(MAX_NV_FRAGMENT_PROGRAM_PARAMS
);
7195 case GL_TEXTURE_RECTANGLE_NV
:
7196 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7197 params
[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV
));
7199 case GL_TEXTURE_BINDING_RECTANGLE_NV
:
7200 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7201 params
[0] = (GLint64
)(ctx
->Texture
.Unit
[ctx
->Texture
.CurrentUnit
].CurrentTex
[TEXTURE_RECT_INDEX
]->Name
);
7203 case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
:
7204 CHECK_EXT1(NV_texture_rectangle
, "GetInteger64v");
7205 params
[0] = (GLint64
)(ctx
->Const
.MaxTextureRectSize
);
7207 case GL_STENCIL_TEST_TWO_SIDE_EXT
:
7208 CHECK_EXT1(EXT_stencil_two_side
, "GetInteger64v");
7209 params
[0] = BOOLEAN_TO_INT64(ctx
->Stencil
.TestTwoSide
);
7211 case GL_ACTIVE_STENCIL_FACE_EXT
:
7212 CHECK_EXT1(EXT_stencil_two_side
, "GetInteger64v");
7213 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ActiveFace
? GL_BACK
: GL_FRONT
);
7215 case GL_MAX_SHININESS_NV
:
7216 CHECK_EXT1(NV_light_max_exponent
, "GetInteger64v");
7217 params
[0] = IROUND64(ctx
->Const
.MaxShininess
);
7219 case GL_MAX_SPOT_EXPONENT_NV
:
7220 CHECK_EXT1(NV_light_max_exponent
, "GetInteger64v");
7221 params
[0] = IROUND64(ctx
->Const
.MaxSpotExponent
);
7223 case GL_ARRAY_BUFFER_BINDING_ARB
:
7224 params
[0] = (GLint64
)(ctx
->Array
.ArrayBufferObj
->Name
);
7226 case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
:
7227 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Vertex
.BufferObj
->Name
);
7229 case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
:
7230 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Normal
.BufferObj
->Name
);
7232 case GL_COLOR_ARRAY_BUFFER_BINDING_ARB
:
7233 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Color
.BufferObj
->Name
);
7235 case GL_INDEX_ARRAY_BUFFER_BINDING_ARB
:
7236 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Index
.BufferObj
->Name
);
7238 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
:
7239 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->TexCoord
[ctx
->Array
.ActiveTexture
].BufferObj
->Name
);
7241 case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
:
7242 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->EdgeFlag
.BufferObj
->Name
);
7244 case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
:
7245 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->SecondaryColor
.BufferObj
->Name
);
7247 case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
:
7248 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->FogCoord
.BufferObj
->Name
);
7250 case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
:
7251 params
[0] = (GLint64
)(ctx
->Array
.ElementArrayBufferObj
->Name
);
7253 case GL_PIXEL_PACK_BUFFER_BINDING_EXT
:
7254 CHECK_EXT1(EXT_pixel_buffer_object
, "GetInteger64v");
7255 params
[0] = (GLint64
)(ctx
->Pack
.BufferObj
->Name
);
7257 case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
:
7258 CHECK_EXT1(EXT_pixel_buffer_object
, "GetInteger64v");
7259 params
[0] = (GLint64
)(ctx
->Unpack
.BufferObj
->Name
);
7261 case GL_VERTEX_PROGRAM_ARB
:
7262 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7263 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.Enabled
);
7265 case GL_VERTEX_PROGRAM_POINT_SIZE_ARB
:
7266 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7267 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.PointSizeEnabled
);
7269 case GL_VERTEX_PROGRAM_TWO_SIDE_ARB
:
7270 CHECK_EXT2(ARB_vertex_program
, NV_vertex_program
, "GetInteger64v");
7271 params
[0] = BOOLEAN_TO_INT64(ctx
->VertexProgram
.TwoSideEnabled
);
7273 case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
:
7274 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7275 params
[0] = (GLint64
)(ctx
->Const
.MaxProgramMatrixStackDepth
);
7277 case GL_MAX_PROGRAM_MATRICES_ARB
:
7278 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7279 params
[0] = (GLint64
)(ctx
->Const
.MaxProgramMatrices
);
7281 case GL_CURRENT_MATRIX_STACK_DEPTH_ARB
:
7282 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_vertex_program
, "GetInteger64v");
7283 params
[0] = BOOLEAN_TO_INT64(ctx
->CurrentStack
->Depth
+ 1);
7285 case GL_CURRENT_MATRIX_ARB
:
7286 CHECK_EXT3(ARB_vertex_program
, ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7288 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
7289 params
[0] = IROUND64(matrix
[0]);
7290 params
[1] = IROUND64(matrix
[1]);
7291 params
[2] = IROUND64(matrix
[2]);
7292 params
[3] = IROUND64(matrix
[3]);
7293 params
[4] = IROUND64(matrix
[4]);
7294 params
[5] = IROUND64(matrix
[5]);
7295 params
[6] = IROUND64(matrix
[6]);
7296 params
[7] = IROUND64(matrix
[7]);
7297 params
[8] = IROUND64(matrix
[8]);
7298 params
[9] = IROUND64(matrix
[9]);
7299 params
[10] = IROUND64(matrix
[10]);
7300 params
[11] = IROUND64(matrix
[11]);
7301 params
[12] = IROUND64(matrix
[12]);
7302 params
[13] = IROUND64(matrix
[13]);
7303 params
[14] = IROUND64(matrix
[14]);
7304 params
[15] = IROUND64(matrix
[15]);
7307 case GL_TRANSPOSE_CURRENT_MATRIX_ARB
:
7308 CHECK_EXT2(ARB_vertex_program
, ARB_fragment_program
, "GetInteger64v");
7310 const GLfloat
*matrix
= ctx
->CurrentStack
->Top
->m
;
7311 params
[0] = IROUND64(matrix
[0]);
7312 params
[1] = IROUND64(matrix
[4]);
7313 params
[2] = IROUND64(matrix
[8]);
7314 params
[3] = IROUND64(matrix
[12]);
7315 params
[4] = IROUND64(matrix
[1]);
7316 params
[5] = IROUND64(matrix
[5]);
7317 params
[6] = IROUND64(matrix
[9]);
7318 params
[7] = IROUND64(matrix
[13]);
7319 params
[8] = IROUND64(matrix
[2]);
7320 params
[9] = IROUND64(matrix
[6]);
7321 params
[10] = IROUND64(matrix
[10]);
7322 params
[11] = IROUND64(matrix
[14]);
7323 params
[12] = IROUND64(matrix
[3]);
7324 params
[13] = IROUND64(matrix
[7]);
7325 params
[14] = IROUND64(matrix
[11]);
7326 params
[15] = IROUND64(matrix
[15]);
7329 case GL_MAX_VERTEX_ATTRIBS_ARB
:
7330 CHECK_EXT1(ARB_vertex_program
, "GetInteger64v");
7331 params
[0] = (GLint64
)(ctx
->Const
.VertexProgram
.MaxAttribs
);
7333 case GL_PROGRAM_ERROR_POSITION_ARB
:
7334 CHECK_EXT4(NV_vertex_program
, ARB_vertex_program
, NV_fragment_program
, ARB_fragment_program
, "GetInteger64v");
7335 params
[0] = (GLint64
)(ctx
->Program
.ErrorPos
);
7337 case GL_FRAGMENT_PROGRAM_ARB
:
7338 CHECK_EXT1(ARB_fragment_program
, "GetInteger64v");
7339 params
[0] = BOOLEAN_TO_INT64(ctx
->FragmentProgram
.Enabled
);
7341 case GL_MAX_TEXTURE_COORDS_ARB
:
7342 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7343 params
[0] = (GLint64
)(ctx
->Const
.MaxTextureCoordUnits
);
7345 case GL_MAX_TEXTURE_IMAGE_UNITS_ARB
:
7346 CHECK_EXT2(ARB_fragment_program
, NV_fragment_program
, "GetInteger64v");
7347 params
[0] = (GLint64
)(ctx
->Const
.MaxTextureImageUnits
);
7349 case GL_DEPTH_BOUNDS_TEST_EXT
:
7350 CHECK_EXT1(EXT_depth_bounds_test
, "GetInteger64v");
7351 params
[0] = BOOLEAN_TO_INT64(ctx
->Depth
.BoundsTest
);
7353 case GL_DEPTH_BOUNDS_EXT
:
7354 CHECK_EXT1(EXT_depth_bounds_test
, "GetInteger64v");
7355 params
[0] = IROUND64(ctx
->Depth
.BoundsMin
);
7356 params
[1] = IROUND64(ctx
->Depth
.BoundsMax
);
7358 case GL_DEPTH_CLAMP
:
7359 CHECK_EXT1(ARB_depth_clamp
, "GetInteger64v");
7360 params
[0] = BOOLEAN_TO_INT64(ctx
->Transform
.DepthClamp
);
7362 case GL_MAX_DRAW_BUFFERS_ARB
:
7363 params
[0] = (GLint64
)(ctx
->Const
.MaxDrawBuffers
);
7365 case GL_DRAW_BUFFER0_ARB
:
7366 params
[0] = ENUM_TO_INT64(ctx
->DrawBuffer
->ColorDrawBuffer
[0]);
7368 case GL_DRAW_BUFFER1_ARB
:
7371 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7372 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7375 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[1];
7376 params
[0] = ENUM_TO_INT64(buffer
);
7379 case GL_DRAW_BUFFER2_ARB
:
7382 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7383 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7386 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[2];
7387 params
[0] = ENUM_TO_INT64(buffer
);
7390 case GL_DRAW_BUFFER3_ARB
:
7393 if (pname
- GL_DRAW_BUFFER0_ARB
>= ctx
->Const
.MaxDrawBuffers
) {
7394 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGet(GL_DRAW_BUFFERx_ARB)");
7397 buffer
= ctx
->DrawBuffer
->ColorDrawBuffer
[3];
7398 params
[0] = ENUM_TO_INT64(buffer
);
7401 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
:
7402 CHECK_EXT1(OES_read_format
, "GetInteger64v");
7403 params
[0] = (GLint64
)(_mesa_get_color_read_type(ctx
));
7405 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
:
7406 CHECK_EXT1(OES_read_format
, "GetInteger64v");
7407 params
[0] = (GLint64
)(_mesa_get_color_read_format(ctx
));
7409 case GL_NUM_FRAGMENT_REGISTERS_ATI
:
7410 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7411 params
[0] = (GLint64
)(6);
7413 case GL_NUM_FRAGMENT_CONSTANTS_ATI
:
7414 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7415 params
[0] = (GLint64
)(8);
7417 case GL_NUM_PASSES_ATI
:
7418 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7419 params
[0] = (GLint64
)(2);
7421 case GL_NUM_INSTRUCTIONS_PER_PASS_ATI
:
7422 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7423 params
[0] = (GLint64
)(8);
7425 case GL_NUM_INSTRUCTIONS_TOTAL_ATI
:
7426 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7427 params
[0] = (GLint64
)(16);
7429 case GL_COLOR_ALPHA_PAIRING_ATI
:
7430 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7431 params
[0] = BOOLEAN_TO_INT64(GL_TRUE
);
7433 case GL_NUM_LOOPBACK_COMPONENTS_ATI
:
7434 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7435 params
[0] = (GLint64
)(3);
7437 case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
:
7438 CHECK_EXT1(ATI_fragment_shader
, "GetInteger64v");
7439 params
[0] = (GLint64
)(3);
7441 case GL_STENCIL_BACK_FUNC
:
7442 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.Function
[1]);
7444 case GL_STENCIL_BACK_VALUE_MASK
:
7445 params
[0] = (GLint64
)(ctx
->Stencil
.ValueMask
[1]);
7447 case GL_STENCIL_BACK_WRITEMASK
:
7448 params
[0] = (GLint64
)(ctx
->Stencil
.WriteMask
[1]);
7450 case GL_STENCIL_BACK_REF
:
7451 params
[0] = (GLint64
)(ctx
->Stencil
.Ref
[1]);
7453 case GL_STENCIL_BACK_FAIL
:
7454 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.FailFunc
[1]);
7456 case GL_STENCIL_BACK_PASS_DEPTH_FAIL
:
7457 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZFailFunc
[1]);
7459 case GL_STENCIL_BACK_PASS_DEPTH_PASS
:
7460 params
[0] = ENUM_TO_INT64(ctx
->Stencil
.ZPassFunc
[1]);
7462 case GL_FRAMEBUFFER_BINDING_EXT
:
7463 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7464 params
[0] = (GLint64
)(ctx
->DrawBuffer
->Name
);
7466 case GL_RENDERBUFFER_BINDING_EXT
:
7467 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7468 params
[0] = (GLint64
)(ctx
->CurrentRenderbuffer
? ctx
->CurrentRenderbuffer
->Name
: 0);
7470 case GL_MAX_COLOR_ATTACHMENTS_EXT
:
7471 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7472 params
[0] = (GLint64
)(ctx
->Const
.MaxColorAttachments
);
7474 case GL_MAX_RENDERBUFFER_SIZE_EXT
:
7475 CHECK_EXT1(EXT_framebuffer_object
, "GetInteger64v");
7476 params
[0] = (GLint64
)(ctx
->Const
.MaxRenderbufferSize
);
7478 case GL_READ_FRAMEBUFFER_BINDING_EXT
:
7479 CHECK_EXT1(EXT_framebuffer_blit
, "GetInteger64v");
7480 params
[0] = (GLint64
)(ctx
->ReadBuffer
->Name
);
7482 case GL_PROVOKING_VERTEX_EXT
:
7483 CHECK_EXT1(EXT_provoking_vertex
, "GetInteger64v");
7484 params
[0] = BOOLEAN_TO_INT64(ctx
->Light
.ProvokingVertex
);
7486 case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
:
7487 CHECK_EXT1(EXT_provoking_vertex
, "GetInteger64v");
7488 params
[0] = BOOLEAN_TO_INT64(ctx
->Const
.QuadsFollowProvokingVertexConvention
);
7490 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
:
7491 CHECK_EXT1(ARB_fragment_shader
, "GetInteger64v");
7492 params
[0] = (GLint64
)(ctx
->Const
.FragmentProgram
.MaxUniformComponents
);
7494 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
:
7495 CHECK_EXT1(ARB_fragment_shader
, "GetInteger64v");
7496 params
[0] = ENUM_TO_INT64(ctx
->Hint
.FragmentShaderDerivative
);
7498 case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
:
7499 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7500 params
[0] = (GLint64
)(ctx
->Const
.VertexProgram
.MaxUniformComponents
);
7502 case GL_MAX_VARYING_FLOATS_ARB
:
7503 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7504 params
[0] = (GLint64
)(ctx
->Const
.MaxVarying
* 4);
7506 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
:
7507 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7508 params
[0] = (GLint64
)(ctx
->Const
.MaxVertexTextureImageUnits
);
7510 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
:
7511 CHECK_EXT1(ARB_vertex_shader
, "GetInteger64v");
7512 params
[0] = (GLint64
)(ctx
->Const
.MaxCombinedTextureImageUnits
);
7514 case GL_CURRENT_PROGRAM
:
7515 CHECK_EXT1(ARB_shader_objects
, "GetInteger64v");
7516 params
[0] = (GLint64
)(ctx
->Shader
.CurrentProgram
? ctx
->Shader
.CurrentProgram
->Name
: 0);
7518 case GL_MAX_SAMPLES
:
7519 CHECK_EXT1(ARB_framebuffer_object
, "GetInteger64v");
7520 params
[0] = (GLint64
)(ctx
->Const
.MaxSamples
);
7522 case GL_VERTEX_ARRAY_BINDING_APPLE
:
7523 CHECK_EXT1(APPLE_vertex_array_object
, "GetInteger64v");
7524 params
[0] = (GLint64
)(ctx
->Array
.ArrayObj
->Name
);
7526 case GL_TEXTURE_CUBE_MAP_SEAMLESS
:
7527 CHECK_EXT1(ARB_seamless_cube_map
, "GetInteger64v");
7528 params
[0] = BOOLEAN_TO_INT64(ctx
->Texture
.CubeMapSeamless
);
7530 case GL_MAX_SERVER_WAIT_TIMEOUT
:
7531 CHECK_EXT1(ARB_sync
, "GetInteger64v");
7532 params
[0] = ctx
->Const
.MaxServerWaitTimeout
;
7534 case GL_NUM_EXTENSIONS
:
7535 params
[0] = (GLint64
)(_mesa_get_extension_count(ctx
));
7537 case GL_MAJOR_VERSION
:
7538 params
[0] = (GLint64
)(ctx
->VersionMajor
);
7540 case GL_MINOR_VERSION
:
7541 params
[0] = (GLint64
)(ctx
->VersionMinor
);
7544 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetInteger64v(pname=0x%x)", pname
);
7547 #endif /* FEATURE_ARB_sync */
7551 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
7553 const GLfloat magic
= -1234.5F
;
7560 /* Init temp array to magic numbers so we can figure out how many values
7561 * are returned by the GetFloatv() call.
7563 for (i
= 0; i
< 16; i
++)
7566 _mesa_GetFloatv(pname
, values
);
7568 for (i
= 0; i
< 16 && values
[i
] != magic
; i
++)
7569 params
[i
] = (GLdouble
) values
[i
];
7573 _mesa_GetBooleanIndexedv( GLenum pname
, GLuint index
, GLboolean
*params
)
7575 GET_CURRENT_CONTEXT(ctx
);
7576 ASSERT_OUTSIDE_BEGIN_END(ctx
);
7582 _mesa_update_state(ctx
);
7586 CHECK_EXT1(EXT_draw_buffers2
, "GetBooleanIndexedv");
7587 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7588 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetBooleanIndexedv(index=%u), index", pname
);
7590 params
[0] = INT_TO_BOOLEAN(((ctx
->Color
.BlendEnabled
>> index
) & 1));
7592 case GL_COLOR_WRITEMASK
:
7593 CHECK_EXT1(EXT_draw_buffers2
, "GetBooleanIndexedv");
7594 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7595 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetBooleanIndexedv(index=%u), index", pname
);
7597 params
[0] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[index
][RCOMP
] ? 1 : 0);
7598 params
[1] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[index
][GCOMP
] ? 1 : 0);
7599 params
[2] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[index
][BCOMP
] ? 1 : 0);
7600 params
[3] = INT_TO_BOOLEAN(ctx
->Color
.ColorMask
[index
][ACOMP
] ? 1 : 0);
7603 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetBooleanIndexedv(pname=0x%x)", pname
);
7608 _mesa_GetIntegerIndexedv( GLenum pname
, GLuint index
, GLint
*params
)
7610 GET_CURRENT_CONTEXT(ctx
);
7611 ASSERT_OUTSIDE_BEGIN_END(ctx
);
7617 _mesa_update_state(ctx
);
7621 CHECK_EXT1(EXT_draw_buffers2
, "GetIntegerIndexedv");
7622 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7623 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetIntegerIndexedv(index=%u), index", pname
);
7625 params
[0] = ((ctx
->Color
.BlendEnabled
>> index
) & 1);
7627 case GL_COLOR_WRITEMASK
:
7628 CHECK_EXT1(EXT_draw_buffers2
, "GetIntegerIndexedv");
7629 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7630 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetIntegerIndexedv(index=%u), index", pname
);
7632 params
[0] = ctx
->Color
.ColorMask
[index
][RCOMP
] ? 1 : 0;
7633 params
[1] = ctx
->Color
.ColorMask
[index
][GCOMP
] ? 1 : 0;
7634 params
[2] = ctx
->Color
.ColorMask
[index
][BCOMP
] ? 1 : 0;
7635 params
[3] = ctx
->Color
.ColorMask
[index
][ACOMP
] ? 1 : 0;
7638 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetIntegerIndexedv(pname=0x%x)", pname
);
7642 #if FEATURE_ARB_sync
7644 _mesa_GetInteger64Indexedv( GLenum pname
, GLuint index
, GLint64
*params
)
7646 GET_CURRENT_CONTEXT(ctx
);
7647 ASSERT_OUTSIDE_BEGIN_END(ctx
);
7653 _mesa_update_state(ctx
);
7657 CHECK_EXT1(EXT_draw_buffers2
, "GetInteger64Indexedv");
7658 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7659 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetInteger64Indexedv(index=%u), index", pname
);
7661 params
[0] = (GLint64
)(((ctx
->Color
.BlendEnabled
>> index
) & 1));
7663 case GL_COLOR_WRITEMASK
:
7664 CHECK_EXT1(EXT_draw_buffers2
, "GetInteger64Indexedv");
7665 if (index
>= ctx
->Const
.MaxDrawBuffers
) {
7666 _mesa_error(ctx
, GL_INVALID_VALUE
, "glGetInteger64Indexedv(index=%u), index", pname
);
7668 params
[0] = (GLint64
)(ctx
->Color
.ColorMask
[index
][RCOMP
] ? 1 : 0);
7669 params
[1] = (GLint64
)(ctx
->Color
.ColorMask
[index
][GCOMP
] ? 1 : 0);
7670 params
[2] = (GLint64
)(ctx
->Color
.ColorMask
[index
][BCOMP
] ? 1 : 0);
7671 params
[3] = (GLint64
)(ctx
->Color
.ColorMask
[index
][ACOMP
] ? 1 : 0);
7674 _mesa_error(ctx
, GL_INVALID_ENUM
, "glGetInteger64Indexedv(pname=0x%x)", pname
);
7677 #endif /* FEATURE_ARB_sync */