1 /* $Id: get.c,v 1.6 1999/11/11 01:22:26 brianp Exp $ */
4 * Mesa 3-D graphics library
7 * Copyright (C) 1999 Brian Paul All Rights Reserved.
9 * Permission is hereby granted, free of charge, to any person obtaining a
10 * copy of this software and associated documentation files (the "Software"),
11 * to deal in the Software without restriction, including without limitation
12 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
13 * and/or sell copies of the Software, and to permit persons to whom the
14 * Software is furnished to do so, subject to the following conditions:
16 * The above copyright notice and this permission notice shall be included
17 * in all copies or substantial portions of the Software.
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
23 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35 #include "extensions.h"
45 #define FLOAT_TO_BOOL(X) ( (X)==0.0F ? GL_FALSE : GL_TRUE )
46 #define INT_TO_BOOL(I) ( (I)==0 ? GL_FALSE : GL_TRUE )
47 #define ENUM_TO_BOOL(E) ( (E)==0 ? GL_FALSE : GL_TRUE )
50 /* Needed for an Amiga compiler */
51 #define ENUM_TO_FLOAT(X) ((GLfloat)(GLint)(X))
52 #define ENUM_TO_DOUBLE(X) ((GLdouble)(GLint)(X))
54 /* all other compilers */
55 #define ENUM_TO_FLOAT(X) ((GLfloat)(X))
56 #define ENUM_TO_DOUBLE(X) ((GLdouble)(X))
62 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
64 GET_CURRENT_CONTEXT(ctx
);
66 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
67 GLuint texTransformUnit
= ctx
->Texture
.CurrentTransformUnit
;
68 const struct gl_texture_unit
*textureUnit
= &ctx
->Texture
.Unit
[texUnit
];
70 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx
, "glGetBooleanv");
72 if (MESA_VERBOSE
& VERBOSE_API
)
73 fprintf(stderr
, "glGetBooleanv %s\n", gl_lookup_enum_by_nr(pname
));
76 case GL_ACCUM_RED_BITS
:
77 case GL_ACCUM_GREEN_BITS
:
78 case GL_ACCUM_BLUE_BITS
:
79 case GL_ACCUM_ALPHA_BITS
:
80 *params
= INT_TO_BOOL(ctx
->Visual
->AccumBits
);
82 case GL_ACCUM_CLEAR_VALUE
:
83 params
[0] = FLOAT_TO_BOOL(ctx
->Accum
.ClearColor
[0]);
84 params
[1] = FLOAT_TO_BOOL(ctx
->Accum
.ClearColor
[1]);
85 params
[2] = FLOAT_TO_BOOL(ctx
->Accum
.ClearColor
[2]);
86 params
[3] = FLOAT_TO_BOOL(ctx
->Accum
.ClearColor
[3]);
89 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.AlphaBias
);
92 *params
= INT_TO_BOOL(ctx
->Visual
->AlphaBits
);
95 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.AlphaScale
);
98 *params
= ctx
->Color
.AlphaEnabled
;
100 case GL_ALPHA_TEST_FUNC
:
101 *params
= ENUM_TO_BOOL(ctx
->Color
.AlphaFunc
);
103 case GL_ALPHA_TEST_REF
:
104 *params
= FLOAT_TO_BOOL((GLfloat
) ctx
->Color
.AlphaRef
/ 255.0);
106 case GL_ATTRIB_STACK_DEPTH
:
107 *params
= INT_TO_BOOL(ctx
->AttribStackDepth
);
110 *params
= ctx
->Eval
.AutoNormal
;
113 *params
= (NUM_AUX_BUFFERS
) ? GL_TRUE
: GL_FALSE
;
116 *params
= ctx
->Color
.BlendEnabled
;
119 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendDstRGB
);
122 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendSrcRGB
);
124 case GL_BLEND_SRC_RGB_INGR
:
125 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendSrcRGB
);
127 case GL_BLEND_DST_RGB_INGR
:
128 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendDstRGB
);
130 case GL_BLEND_SRC_ALPHA_INGR
:
131 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendSrcA
);
133 case GL_BLEND_DST_ALPHA_INGR
:
134 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendDstA
);
136 case GL_BLEND_EQUATION_EXT
:
137 *params
= ENUM_TO_BOOL( ctx
->Color
.BlendEquation
);
139 case GL_BLEND_COLOR_EXT
:
140 params
[0] = FLOAT_TO_BOOL( ctx
->Color
.BlendColor
[0] );
141 params
[1] = FLOAT_TO_BOOL( ctx
->Color
.BlendColor
[1] );
142 params
[2] = FLOAT_TO_BOOL( ctx
->Color
.BlendColor
[2] );
143 params
[3] = FLOAT_TO_BOOL( ctx
->Color
.BlendColor
[3] );
146 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.BlueBias
);
149 *params
= INT_TO_BOOL( ctx
->Visual
->BlueBits
);
152 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.BlueScale
);
154 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
155 *params
= INT_TO_BOOL(ctx
->ClientAttribStackDepth
);
163 *params
= ctx
->Transform
.ClipEnabled
[pname
-GL_CLIP_PLANE0
];
165 case GL_COLOR_CLEAR_VALUE
:
166 params
[0] = FLOAT_TO_BOOL(ctx
->Color
.ClearColor
[0]);
167 params
[1] = FLOAT_TO_BOOL(ctx
->Color
.ClearColor
[1]);
168 params
[2] = FLOAT_TO_BOOL(ctx
->Color
.ClearColor
[2]);
169 params
[3] = FLOAT_TO_BOOL(ctx
->Color
.ClearColor
[3]);
171 case GL_COLOR_MATERIAL
:
172 *params
= ctx
->Light
.ColorMaterialEnabled
;
174 case GL_COLOR_MATERIAL_FACE
:
175 *params
= ENUM_TO_BOOL(ctx
->Light
.ColorMaterialFace
);
177 case GL_COLOR_MATERIAL_PARAMETER
:
178 *params
= ENUM_TO_BOOL(ctx
->Light
.ColorMaterialMode
);
180 case GL_COLOR_WRITEMASK
:
181 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? GL_TRUE
: GL_FALSE
;
182 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? GL_TRUE
: GL_FALSE
;
183 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? GL_TRUE
: GL_FALSE
;
184 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? GL_TRUE
: GL_FALSE
;
187 *params
= ctx
->Polygon
.CullFlag
;
189 case GL_CULL_FACE_MODE
:
190 *params
= ENUM_TO_BOOL(ctx
->Polygon
.CullFaceMode
);
192 case GL_CURRENT_COLOR
:
193 params
[0] = INT_TO_BOOL(ctx
->Current
.ByteColor
[0]);
194 params
[1] = INT_TO_BOOL(ctx
->Current
.ByteColor
[1]);
195 params
[2] = INT_TO_BOOL(ctx
->Current
.ByteColor
[2]);
196 params
[3] = INT_TO_BOOL(ctx
->Current
.ByteColor
[3]);
198 case GL_CURRENT_INDEX
:
199 *params
= INT_TO_BOOL(ctx
->Current
.Index
);
201 case GL_CURRENT_NORMAL
:
202 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.Normal
[0]);
203 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.Normal
[1]);
204 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.Normal
[2]);
206 case GL_CURRENT_RASTER_COLOR
:
207 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.RasterColor
[0]);
208 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.RasterColor
[1]);
209 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.RasterColor
[2]);
210 params
[3] = FLOAT_TO_BOOL(ctx
->Current
.RasterColor
[3]);
212 case GL_CURRENT_RASTER_DISTANCE
:
213 *params
= FLOAT_TO_BOOL(ctx
->Current
.RasterDistance
);
215 case GL_CURRENT_RASTER_INDEX
:
216 *params
= FLOAT_TO_BOOL(ctx
->Current
.RasterIndex
);
218 case GL_CURRENT_RASTER_POSITION
:
219 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.RasterPos
[0]);
220 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.RasterPos
[1]);
221 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.RasterPos
[2]);
222 params
[3] = FLOAT_TO_BOOL(ctx
->Current
.RasterPos
[3]);
224 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
225 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][0]);
226 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][1]);
227 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][2]);
228 params
[3] = FLOAT_TO_BOOL(ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][3]);
230 case GL_CURRENT_RASTER_POSITION_VALID
:
231 *params
= ctx
->Current
.RasterPosValid
;
233 case GL_CURRENT_TEXTURE_COORDS
:
234 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.Texcoord
[texTransformUnit
][0]);
235 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.Texcoord
[texTransformUnit
][1]);
236 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.Texcoord
[texTransformUnit
][2]);
237 params
[3] = FLOAT_TO_BOOL(ctx
->Current
.Texcoord
[texTransformUnit
][3]);
240 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.DepthBias
);
243 *params
= INT_TO_BOOL(ctx
->Visual
->DepthBits
);
245 case GL_DEPTH_CLEAR_VALUE
:
246 *params
= FLOAT_TO_BOOL(ctx
->Depth
.Clear
);
249 *params
= ENUM_TO_BOOL(ctx
->Depth
.Func
);
252 params
[0] = FLOAT_TO_BOOL(ctx
->Viewport
.Near
);
253 params
[1] = FLOAT_TO_BOOL(ctx
->Viewport
.Far
);
256 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.DepthScale
);
259 *params
= ctx
->Depth
.Test
;
261 case GL_DEPTH_WRITEMASK
:
262 *params
= ctx
->Depth
.Mask
;
265 *params
= ctx
->Color
.DitherFlag
;
267 case GL_DOUBLEBUFFER
:
268 *params
= ctx
->Visual
->DBflag
;
271 *params
= ENUM_TO_BOOL(ctx
->Color
.DrawBuffer
);
274 *params
= ctx
->Current
.EdgeFlag
;
276 case GL_FEEDBACK_BUFFER_SIZE
:
277 /* TODO: is this right? Or, return number of entries in buffer? */
278 *params
= INT_TO_BOOL(ctx
->Feedback
.BufferSize
);
280 case GL_FEEDBACK_BUFFER_TYPE
:
281 *params
= INT_TO_BOOL(ctx
->Feedback
.Type
);
284 *params
= ctx
->Fog
.Enabled
;
287 params
[0] = FLOAT_TO_BOOL(ctx
->Fog
.Color
[0]);
288 params
[1] = FLOAT_TO_BOOL(ctx
->Fog
.Color
[1]);
289 params
[2] = FLOAT_TO_BOOL(ctx
->Fog
.Color
[2]);
290 params
[3] = FLOAT_TO_BOOL(ctx
->Fog
.Color
[3]);
293 *params
= FLOAT_TO_BOOL(ctx
->Fog
.Density
);
296 *params
= FLOAT_TO_BOOL(ctx
->Fog
.End
);
299 *params
= ENUM_TO_BOOL(ctx
->Hint
.Fog
);
302 *params
= FLOAT_TO_BOOL(ctx
->Fog
.Index
);
305 *params
= ENUM_TO_BOOL(ctx
->Fog
.Mode
);
308 *params
= FLOAT_TO_BOOL(ctx
->Fog
.End
);
311 *params
= ENUM_TO_BOOL(ctx
->Polygon
.FrontFace
);
314 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.GreenBias
);
317 *params
= INT_TO_BOOL( ctx
->Visual
->GreenBits
);
320 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.GreenScale
);
323 *params
= INT_TO_BOOL( ctx
->Visual
->IndexBits
);
325 case GL_INDEX_CLEAR_VALUE
:
326 *params
= INT_TO_BOOL(ctx
->Color
.ClearIndex
);
329 *params
= ctx
->Visual
->RGBAflag
? GL_FALSE
: GL_TRUE
;
331 case GL_INDEX_OFFSET
:
332 *params
= INT_TO_BOOL(ctx
->Pixel
.IndexOffset
);
335 *params
= INT_TO_BOOL(ctx
->Pixel
.IndexShift
);
337 case GL_INDEX_WRITEMASK
:
338 *params
= INT_TO_BOOL(ctx
->Color
.IndexMask
);
348 *params
= ctx
->Light
.Light
[pname
-GL_LIGHT0
].Enabled
;
351 *params
= ctx
->Light
.Enabled
;
353 case GL_LIGHT_MODEL_AMBIENT
:
354 params
[0] = FLOAT_TO_BOOL(ctx
->Light
.Model
.Ambient
[0]);
355 params
[1] = FLOAT_TO_BOOL(ctx
->Light
.Model
.Ambient
[1]);
356 params
[2] = FLOAT_TO_BOOL(ctx
->Light
.Model
.Ambient
[2]);
357 params
[3] = FLOAT_TO_BOOL(ctx
->Light
.Model
.Ambient
[3]);
359 case GL_LIGHT_MODEL_COLOR_CONTROL
:
360 params
[0] = ENUM_TO_BOOL(ctx
->Light
.Model
.ColorControl
);
362 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
363 *params
= ctx
->Light
.Model
.LocalViewer
;
365 case GL_LIGHT_MODEL_TWO_SIDE
:
366 *params
= ctx
->Light
.Model
.TwoSide
;
369 *params
= ctx
->Line
.SmoothFlag
;
371 case GL_LINE_SMOOTH_HINT
:
372 *params
= ENUM_TO_BOOL(ctx
->Hint
.LineSmooth
);
374 case GL_LINE_STIPPLE
:
375 *params
= ctx
->Line
.StippleFlag
;
377 case GL_LINE_STIPPLE_PATTERN
:
378 *params
= INT_TO_BOOL(ctx
->Line
.StipplePattern
);
380 case GL_LINE_STIPPLE_REPEAT
:
381 *params
= INT_TO_BOOL(ctx
->Line
.StippleFactor
);
384 *params
= FLOAT_TO_BOOL(ctx
->Line
.Width
);
386 case GL_LINE_WIDTH_GRANULARITY
:
387 *params
= FLOAT_TO_BOOL(LINE_WIDTH_GRANULARITY
);
389 case GL_LINE_WIDTH_RANGE
:
390 params
[0] = FLOAT_TO_BOOL(MIN_LINE_WIDTH
);
391 params
[1] = FLOAT_TO_BOOL(MAX_LINE_WIDTH
);
394 *params
= INT_TO_BOOL(ctx
->List
.ListBase
);
397 *params
= INT_TO_BOOL( ctx
->CurrentListNum
);
400 *params
= ENUM_TO_BOOL( ctx
->ExecuteFlag
401 ? GL_COMPILE_AND_EXECUTE
: GL_COMPILE
);
403 case GL_INDEX_LOGIC_OP
:
404 *params
= ctx
->Color
.IndexLogicOpEnabled
;
406 case GL_COLOR_LOGIC_OP
:
407 *params
= ctx
->Color
.ColorLogicOpEnabled
;
409 case GL_LOGIC_OP_MODE
:
410 *params
= ENUM_TO_BOOL(ctx
->Color
.LogicOp
);
412 case GL_MAP1_COLOR_4
:
413 *params
= ctx
->Eval
.Map1Color4
;
415 case GL_MAP1_GRID_DOMAIN
:
416 params
[0] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid1u1
);
417 params
[1] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid1u2
);
419 case GL_MAP1_GRID_SEGMENTS
:
420 *params
= INT_TO_BOOL(ctx
->Eval
.MapGrid1un
);
423 *params
= ctx
->Eval
.Map1Index
;
426 *params
= ctx
->Eval
.Map1Normal
;
428 case GL_MAP1_TEXTURE_COORD_1
:
429 *params
= ctx
->Eval
.Map1TextureCoord1
;
431 case GL_MAP1_TEXTURE_COORD_2
:
432 *params
= ctx
->Eval
.Map1TextureCoord2
;
434 case GL_MAP1_TEXTURE_COORD_3
:
435 *params
= ctx
->Eval
.Map1TextureCoord3
;
437 case GL_MAP1_TEXTURE_COORD_4
:
438 *params
= ctx
->Eval
.Map1TextureCoord4
;
440 case GL_MAP1_VERTEX_3
:
441 *params
= ctx
->Eval
.Map1Vertex3
;
443 case GL_MAP1_VERTEX_4
:
444 *params
= ctx
->Eval
.Map1Vertex4
;
446 case GL_MAP2_COLOR_4
:
447 *params
= ctx
->Eval
.Map2Color4
;
449 case GL_MAP2_GRID_DOMAIN
:
450 params
[0] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid2u1
);
451 params
[1] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid2u2
);
452 params
[2] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid2v1
);
453 params
[3] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid2v2
);
455 case GL_MAP2_GRID_SEGMENTS
:
456 params
[0] = INT_TO_BOOL(ctx
->Eval
.MapGrid2un
);
457 params
[1] = INT_TO_BOOL(ctx
->Eval
.MapGrid2vn
);
460 *params
= ctx
->Eval
.Map2Index
;
463 *params
= ctx
->Eval
.Map2Normal
;
465 case GL_MAP2_TEXTURE_COORD_1
:
466 *params
= ctx
->Eval
.Map2TextureCoord1
;
468 case GL_MAP2_TEXTURE_COORD_2
:
469 *params
= ctx
->Eval
.Map2TextureCoord2
;
471 case GL_MAP2_TEXTURE_COORD_3
:
472 *params
= ctx
->Eval
.Map2TextureCoord3
;
474 case GL_MAP2_TEXTURE_COORD_4
:
475 *params
= ctx
->Eval
.Map2TextureCoord4
;
477 case GL_MAP2_VERTEX_3
:
478 *params
= ctx
->Eval
.Map2Vertex3
;
480 case GL_MAP2_VERTEX_4
:
481 *params
= ctx
->Eval
.Map2Vertex4
;
484 *params
= ctx
->Pixel
.MapColorFlag
;
487 *params
= ctx
->Pixel
.MapStencilFlag
;
490 *params
= ENUM_TO_BOOL( ctx
->Transform
.MatrixMode
);
492 case GL_MAX_ATTRIB_STACK_DEPTH
:
493 *params
= INT_TO_BOOL(MAX_ATTRIB_STACK_DEPTH
);
495 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
496 *params
= INT_TO_BOOL( MAX_CLIENT_ATTRIB_STACK_DEPTH
);
498 case GL_MAX_CLIP_PLANES
:
499 *params
= INT_TO_BOOL(MAX_CLIP_PLANES
);
501 case GL_MAX_ELEMENTS_VERTICES
: /* GL_VERSION_1_2 */
502 *params
= INT_TO_BOOL(VB_MAX
);
504 case GL_MAX_ELEMENTS_INDICES
: /* GL_VERSION_1_2 */
505 *params
= INT_TO_BOOL(VB_MAX
);
507 case GL_MAX_EVAL_ORDER
:
508 *params
= INT_TO_BOOL(MAX_EVAL_ORDER
);
511 *params
= INT_TO_BOOL(MAX_LIGHTS
);
513 case GL_MAX_LIST_NESTING
:
514 *params
= INT_TO_BOOL(MAX_LIST_NESTING
);
516 case GL_MAX_MODELVIEW_STACK_DEPTH
:
517 *params
= INT_TO_BOOL(MAX_MODELVIEW_STACK_DEPTH
);
519 case GL_MAX_NAME_STACK_DEPTH
:
520 *params
= INT_TO_BOOL(MAX_NAME_STACK_DEPTH
);
522 case GL_MAX_PIXEL_MAP_TABLE
:
523 *params
= INT_TO_BOOL(MAX_PIXEL_MAP_TABLE
);
525 case GL_MAX_PROJECTION_STACK_DEPTH
:
526 *params
= INT_TO_BOOL(MAX_PROJECTION_STACK_DEPTH
);
528 case GL_MAX_TEXTURE_SIZE
:
529 case GL_MAX_3D_TEXTURE_SIZE
:
530 *params
= INT_TO_BOOL(ctx
->Const
.MaxTextureSize
);
532 case GL_MAX_TEXTURE_STACK_DEPTH
:
533 *params
= INT_TO_BOOL(MAX_TEXTURE_STACK_DEPTH
);
535 case GL_MAX_VIEWPORT_DIMS
:
536 params
[0] = INT_TO_BOOL(MAX_WIDTH
);
537 params
[1] = INT_TO_BOOL(MAX_HEIGHT
);
539 case GL_MODELVIEW_MATRIX
:
541 params
[i
] = FLOAT_TO_BOOL(ctx
->ModelView
.m
[i
]);
544 case GL_MODELVIEW_STACK_DEPTH
:
545 *params
= INT_TO_BOOL(ctx
->ModelViewStackDepth
+ 1);
547 case GL_NAME_STACK_DEPTH
:
548 *params
= INT_TO_BOOL(ctx
->Select
.NameStackDepth
);
551 *params
= ctx
->Transform
.Normalize
;
553 case GL_PACK_ALIGNMENT
:
554 *params
= INT_TO_BOOL(ctx
->Pack
.Alignment
);
556 case GL_PACK_LSB_FIRST
:
557 *params
= ctx
->Pack
.LsbFirst
;
559 case GL_PACK_ROW_LENGTH
:
560 *params
= INT_TO_BOOL(ctx
->Pack
.RowLength
);
562 case GL_PACK_SKIP_PIXELS
:
563 *params
= INT_TO_BOOL(ctx
->Pack
.SkipPixels
);
565 case GL_PACK_SKIP_ROWS
:
566 *params
= INT_TO_BOOL(ctx
->Pack
.SkipRows
);
568 case GL_PACK_SWAP_BYTES
:
569 *params
= ctx
->Pack
.SwapBytes
;
571 case GL_PACK_SKIP_IMAGES_EXT
:
572 *params
= ctx
->Pack
.SkipImages
;
574 case GL_PACK_IMAGE_HEIGHT_EXT
:
575 *params
= ctx
->Pack
.ImageHeight
;
577 case GL_PERSPECTIVE_CORRECTION_HINT
:
578 *params
= ENUM_TO_BOOL(ctx
->Hint
.PerspectiveCorrection
);
580 case GL_PIXEL_MAP_A_TO_A_SIZE
:
581 *params
= INT_TO_BOOL(ctx
->Pixel
.MapAtoAsize
);
583 case GL_PIXEL_MAP_B_TO_B_SIZE
:
584 *params
= INT_TO_BOOL(ctx
->Pixel
.MapBtoBsize
);
586 case GL_PIXEL_MAP_G_TO_G_SIZE
:
587 *params
= INT_TO_BOOL(ctx
->Pixel
.MapGtoGsize
);
589 case GL_PIXEL_MAP_I_TO_A_SIZE
:
590 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoAsize
);
592 case GL_PIXEL_MAP_I_TO_B_SIZE
:
593 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoBsize
);
595 case GL_PIXEL_MAP_I_TO_G_SIZE
:
596 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoGsize
);
598 case GL_PIXEL_MAP_I_TO_I_SIZE
:
599 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoIsize
);
601 case GL_PIXEL_MAP_I_TO_R_SIZE
:
602 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoRsize
);
604 case GL_PIXEL_MAP_R_TO_R_SIZE
:
605 *params
= INT_TO_BOOL(ctx
->Pixel
.MapRtoRsize
);
607 case GL_PIXEL_MAP_S_TO_S_SIZE
:
608 *params
= INT_TO_BOOL(ctx
->Pixel
.MapStoSsize
);
611 *params
= FLOAT_TO_BOOL(ctx
->Point
.Size
);
613 case GL_POINT_SIZE_GRANULARITY
:
614 *params
= FLOAT_TO_BOOL(POINT_SIZE_GRANULARITY
);
616 case GL_POINT_SIZE_RANGE
:
617 params
[0] = FLOAT_TO_BOOL(MIN_POINT_SIZE
);
618 params
[1] = FLOAT_TO_BOOL(MAX_POINT_SIZE
);
620 case GL_POINT_SMOOTH
:
621 *params
= ctx
->Point
.SmoothFlag
;
623 case GL_POINT_SMOOTH_HINT
:
624 *params
= ENUM_TO_BOOL(ctx
->Hint
.PointSmooth
);
626 case GL_POINT_SIZE_MIN_EXT
:
627 *params
= FLOAT_TO_BOOL(ctx
->Point
.MinSize
);
629 case GL_POINT_SIZE_MAX_EXT
:
630 *params
= FLOAT_TO_BOOL(ctx
->Point
.MaxSize
);
632 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
633 *params
= FLOAT_TO_BOOL(ctx
->Point
.Threshold
);
635 case GL_DISTANCE_ATTENUATION_EXT
:
636 params
[0] = FLOAT_TO_BOOL(ctx
->Point
.Params
[0]);
637 params
[1] = FLOAT_TO_BOOL(ctx
->Point
.Params
[1]);
638 params
[2] = FLOAT_TO_BOOL(ctx
->Point
.Params
[2]);
640 case GL_POLYGON_MODE
:
641 params
[0] = ENUM_TO_BOOL(ctx
->Polygon
.FrontMode
);
642 params
[1] = ENUM_TO_BOOL(ctx
->Polygon
.BackMode
);
644 #ifdef GL_EXT_polygon_offset
645 case GL_POLYGON_OFFSET_BIAS_EXT
:
646 *params
= FLOAT_TO_BOOL( ctx
->Polygon
.OffsetUnits
);
649 case GL_POLYGON_OFFSET_FACTOR
:
650 *params
= FLOAT_TO_BOOL( ctx
->Polygon
.OffsetFactor
);
652 case GL_POLYGON_OFFSET_UNITS
:
653 *params
= FLOAT_TO_BOOL( ctx
->Polygon
.OffsetUnits
);
655 case GL_POLYGON_SMOOTH
:
656 *params
= ctx
->Polygon
.SmoothFlag
;
658 case GL_POLYGON_SMOOTH_HINT
:
659 *params
= ENUM_TO_BOOL(ctx
->Hint
.PolygonSmooth
);
661 case GL_POLYGON_STIPPLE
:
662 *params
= ctx
->Polygon
.StippleFlag
;
664 case GL_PROJECTION_MATRIX
:
666 params
[i
] = FLOAT_TO_BOOL(ctx
->ProjectionMatrix
.m
[i
]);
669 case GL_PROJECTION_STACK_DEPTH
:
670 *params
= INT_TO_BOOL(ctx
->ProjectionStackDepth
+ 1);
673 *params
= ENUM_TO_BOOL(ctx
->Pixel
.ReadBuffer
);
676 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.RedBias
);
679 *params
= INT_TO_BOOL( ctx
->Visual
->RedBits
);
682 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.RedScale
);
685 *params
= ENUM_TO_BOOL(ctx
->RenderMode
);
688 *params
= ctx
->Visual
->RGBAflag
;
691 params
[0] = INT_TO_BOOL(ctx
->Scissor
.X
);
692 params
[1] = INT_TO_BOOL(ctx
->Scissor
.Y
);
693 params
[2] = INT_TO_BOOL(ctx
->Scissor
.Width
);
694 params
[3] = INT_TO_BOOL(ctx
->Scissor
.Height
);
696 case GL_SCISSOR_TEST
:
697 *params
= ctx
->Scissor
.Enabled
;
699 case GL_SELECTION_BUFFER_SIZE
:
700 *params
= INT_TO_BOOL(ctx
->Select
.BufferSize
);
703 *params
= ENUM_TO_BOOL(ctx
->Light
.ShadeModel
);
705 case GL_SHARED_TEXTURE_PALETTE_EXT
:
706 *params
= ctx
->Texture
.SharedPalette
;
708 case GL_STENCIL_BITS
:
709 *params
= INT_TO_BOOL(ctx
->Visual
->StencilBits
);
711 case GL_STENCIL_CLEAR_VALUE
:
712 *params
= INT_TO_BOOL(ctx
->Stencil
.Clear
);
714 case GL_STENCIL_FAIL
:
715 *params
= ENUM_TO_BOOL(ctx
->Stencil
.FailFunc
);
717 case GL_STENCIL_FUNC
:
718 *params
= ENUM_TO_BOOL(ctx
->Stencil
.Function
);
720 case GL_STENCIL_PASS_DEPTH_FAIL
:
721 *params
= ENUM_TO_BOOL(ctx
->Stencil
.ZFailFunc
);
723 case GL_STENCIL_PASS_DEPTH_PASS
:
724 *params
= ENUM_TO_BOOL(ctx
->Stencil
.ZPassFunc
);
727 *params
= INT_TO_BOOL(ctx
->Stencil
.Ref
);
729 case GL_STENCIL_TEST
:
730 *params
= ctx
->Stencil
.Enabled
;
732 case GL_STENCIL_VALUE_MASK
:
733 *params
= INT_TO_BOOL(ctx
->Stencil
.ValueMask
);
735 case GL_STENCIL_WRITEMASK
:
736 *params
= INT_TO_BOOL(ctx
->Stencil
.WriteMask
);
739 *params
= ctx
->Visual
->StereoFlag
;
741 case GL_SUBPIXEL_BITS
:
742 *params
= INT_TO_BOOL(0); /* TODO */
745 *params
= _mesa_IsEnabled(GL_TEXTURE_1D
);
748 *params
= _mesa_IsEnabled(GL_TEXTURE_2D
);
751 *params
= _mesa_IsEnabled(GL_TEXTURE_3D
);
753 case GL_TEXTURE_BINDING_1D
:
754 *params
= INT_TO_BOOL(textureUnit
->CurrentD
[1]->Name
);
756 case GL_TEXTURE_BINDING_2D
:
757 *params
= INT_TO_BOOL(textureUnit
->CurrentD
[2]->Name
);
759 case GL_TEXTURE_BINDING_3D
:
760 *params
= INT_TO_BOOL(textureUnit
->CurrentD
[3]->Name
);
762 case GL_TEXTURE_ENV_COLOR
:
764 params
[0] = FLOAT_TO_BOOL(textureUnit
->EnvColor
[0]);
765 params
[1] = FLOAT_TO_BOOL(textureUnit
->EnvColor
[1]);
766 params
[2] = FLOAT_TO_BOOL(textureUnit
->EnvColor
[2]);
767 params
[3] = FLOAT_TO_BOOL(textureUnit
->EnvColor
[3]);
770 case GL_TEXTURE_ENV_MODE
:
771 *params
= ENUM_TO_BOOL(textureUnit
->EnvMode
);
773 case GL_TEXTURE_GEN_S
:
774 *params
= (textureUnit
->TexGenEnabled
& S_BIT
) ? GL_TRUE
: GL_FALSE
;
776 case GL_TEXTURE_GEN_T
:
777 *params
= (textureUnit
->TexGenEnabled
& T_BIT
) ? GL_TRUE
: GL_FALSE
;
779 case GL_TEXTURE_GEN_R
:
780 *params
= (textureUnit
->TexGenEnabled
& R_BIT
) ? GL_TRUE
: GL_FALSE
;
782 case GL_TEXTURE_GEN_Q
:
783 *params
= (textureUnit
->TexGenEnabled
& Q_BIT
) ? GL_TRUE
: GL_FALSE
;
785 case GL_TEXTURE_MATRIX
:
788 FLOAT_TO_BOOL(ctx
->TextureMatrix
[texTransformUnit
].m
[i
]);
791 case GL_TEXTURE_STACK_DEPTH
:
792 *params
= INT_TO_BOOL(ctx
->TextureStackDepth
[texTransformUnit
] + 1);
794 case GL_UNPACK_ALIGNMENT
:
795 *params
= INT_TO_BOOL(ctx
->Unpack
.Alignment
);
797 case GL_UNPACK_LSB_FIRST
:
798 *params
= ctx
->Unpack
.LsbFirst
;
800 case GL_UNPACK_ROW_LENGTH
:
801 *params
= INT_TO_BOOL(ctx
->Unpack
.RowLength
);
803 case GL_UNPACK_SKIP_PIXELS
:
804 *params
= INT_TO_BOOL(ctx
->Unpack
.SkipPixels
);
806 case GL_UNPACK_SKIP_ROWS
:
807 *params
= INT_TO_BOOL(ctx
->Unpack
.SkipRows
);
809 case GL_UNPACK_SWAP_BYTES
:
810 *params
= ctx
->Unpack
.SwapBytes
;
812 case GL_UNPACK_SKIP_IMAGES_EXT
:
813 *params
= ctx
->Unpack
.SkipImages
;
815 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
816 *params
= ctx
->Unpack
.ImageHeight
;
819 params
[0] = INT_TO_BOOL(ctx
->Viewport
.X
);
820 params
[1] = INT_TO_BOOL(ctx
->Viewport
.Y
);
821 params
[2] = INT_TO_BOOL(ctx
->Viewport
.Width
);
822 params
[3] = INT_TO_BOOL(ctx
->Viewport
.Height
);
825 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.ZoomX
);
828 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.ZoomY
);
830 case GL_VERTEX_ARRAY
:
831 *params
= ctx
->Array
.Vertex
.Enabled
;
833 case GL_VERTEX_ARRAY_SIZE
:
834 *params
= INT_TO_BOOL(ctx
->Array
.Vertex
.Size
);
836 case GL_VERTEX_ARRAY_TYPE
:
837 *params
= ENUM_TO_BOOL(ctx
->Array
.Vertex
.Type
);
839 case GL_VERTEX_ARRAY_STRIDE
:
840 *params
= INT_TO_BOOL(ctx
->Array
.Vertex
.Stride
);
842 case GL_VERTEX_ARRAY_COUNT_EXT
:
843 *params
= INT_TO_BOOL(0);
845 case GL_NORMAL_ARRAY
:
846 *params
= ctx
->Array
.Normal
.Enabled
;
848 case GL_NORMAL_ARRAY_TYPE
:
849 *params
= ENUM_TO_BOOL(ctx
->Array
.Normal
.Type
);
851 case GL_NORMAL_ARRAY_STRIDE
:
852 *params
= INT_TO_BOOL(ctx
->Array
.Normal
.Stride
);
854 case GL_NORMAL_ARRAY_COUNT_EXT
:
855 *params
= INT_TO_BOOL(0);
858 *params
= ctx
->Array
.Color
.Enabled
;
860 case GL_COLOR_ARRAY_SIZE
:
861 *params
= INT_TO_BOOL(ctx
->Array
.Color
.Size
);
863 case GL_COLOR_ARRAY_TYPE
:
864 *params
= ENUM_TO_BOOL(ctx
->Array
.Color
.Type
);
866 case GL_COLOR_ARRAY_STRIDE
:
867 *params
= INT_TO_BOOL(ctx
->Array
.Color
.Stride
);
869 case GL_COLOR_ARRAY_COUNT_EXT
:
870 *params
= INT_TO_BOOL(0);
873 *params
= ctx
->Array
.Index
.Enabled
;
875 case GL_INDEX_ARRAY_TYPE
:
876 *params
= ENUM_TO_BOOL(ctx
->Array
.Index
.Type
);
878 case GL_INDEX_ARRAY_STRIDE
:
879 *params
= INT_TO_BOOL(ctx
->Array
.Index
.Stride
);
881 case GL_INDEX_ARRAY_COUNT_EXT
:
882 *params
= INT_TO_BOOL(0);
884 case GL_TEXTURE_COORD_ARRAY
:
885 *params
= ctx
->Array
.TexCoord
[texUnit
].Enabled
;
887 case GL_TEXTURE_COORD_ARRAY_SIZE
:
888 *params
= INT_TO_BOOL(ctx
->Array
.TexCoord
[texUnit
].Size
);
890 case GL_TEXTURE_COORD_ARRAY_TYPE
:
891 *params
= ENUM_TO_BOOL(ctx
->Array
.TexCoord
[texUnit
].Type
);
893 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
894 *params
= INT_TO_BOOL(ctx
->Array
.TexCoord
[texUnit
].Stride
);
896 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
897 *params
= INT_TO_BOOL(0);
899 case GL_EDGE_FLAG_ARRAY
:
900 *params
= ctx
->Array
.EdgeFlag
.Enabled
;
902 case GL_EDGE_FLAG_ARRAY_STRIDE
:
903 *params
= INT_TO_BOOL(ctx
->Array
.EdgeFlag
.Stride
);
906 case GL_MAX_TEXTURE_UNITS_ARB
:
907 *params
= ctx
->Const
.MaxTextureUnits
;
909 case GL_ACTIVE_TEXTURE_ARB
:
910 *params
= INT_TO_BOOL(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
912 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
913 *params
= INT_TO_BOOL(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
917 /* GL_PGI_misc_hints */
918 case GL_STRICT_DEPTHFUNC_HINT_PGI
:
919 *params
= ENUM_TO_BOOL(GL_NICEST
);
921 case GL_STRICT_LIGHTING_HINT_PGI
:
922 *params
= ENUM_TO_BOOL(ctx
->Hint
.StrictLighting
);
924 case GL_STRICT_SCISSOR_HINT_PGI
:
925 case GL_FULL_STIPPLE_HINT_PGI
:
926 *params
= ENUM_TO_BOOL(GL_TRUE
);
928 case GL_CONSERVE_MEMORY_HINT_PGI
:
929 *params
= ENUM_TO_BOOL(GL_FALSE
);
931 case GL_ALWAYS_FAST_HINT_PGI
:
932 *params
= (GLboolean
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
933 ctx
->Hint
.AllowDrawSpn
== GL_FALSE
&&
934 ctx
->Hint
.AllowDrawMem
== GL_FALSE
);
936 case GL_ALWAYS_SOFT_HINT_PGI
:
937 *params
= (GLboolean
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
938 ctx
->Hint
.AllowDrawSpn
== GL_TRUE
&&
939 ctx
->Hint
.AllowDrawMem
== GL_TRUE
);
941 case GL_ALLOW_DRAW_OBJ_HINT_PGI
:
942 *params
= (GLboolean
) GL_TRUE
;
944 case GL_ALLOW_DRAW_WIN_HINT_PGI
:
945 *params
= (GLboolean
) ctx
->Hint
.AllowDrawWin
;
947 case GL_ALLOW_DRAW_SPN_HINT_PGI
:
948 *params
= (GLboolean
) ctx
->Hint
.AllowDrawSpn
;
950 case GL_ALLOW_DRAW_MEM_HINT_PGI
:
951 *params
= (GLboolean
) ctx
->Hint
.AllowDrawMem
;
953 case GL_CLIP_NEAR_HINT_PGI
:
954 case GL_CLIP_FAR_HINT_PGI
:
955 *params
= ENUM_TO_BOOL(GL_TRUE
);
957 case GL_WIDE_LINE_HINT_PGI
:
958 *params
= ENUM_TO_BOOL(GL_DONT_CARE
);
960 case GL_BACK_NORMALS_HINT_PGI
:
961 *params
= ENUM_TO_BOOL(GL_TRUE
);
963 case GL_NATIVE_GRAPHICS_HANDLE_PGI
:
967 printf("invalid enum: %x\n", pname
);
968 gl_error( ctx
, GL_INVALID_ENUM
, "glGetBooleanv" );
976 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
978 GET_CURRENT_CONTEXT(ctx
);
980 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
981 GLuint texTransformUnit
= ctx
->Texture
.CurrentTransformUnit
;
982 const struct gl_texture_unit
*textureUnit
= &ctx
->Texture
.Unit
[texUnit
];
984 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx
, "glGetDoublev");
986 if (MESA_VERBOSE
& VERBOSE_API
)
987 fprintf(stderr
, "glGetDoublev %s\n", gl_lookup_enum_by_nr(pname
));
990 case GL_ACCUM_RED_BITS
:
991 case GL_ACCUM_GREEN_BITS
:
992 case GL_ACCUM_BLUE_BITS
:
993 case GL_ACCUM_ALPHA_BITS
:
994 *params
= (GLdouble
) ctx
->Visual
->AccumBits
;
996 case GL_ACCUM_CLEAR_VALUE
:
997 params
[0] = (GLdouble
) ctx
->Accum
.ClearColor
[0];
998 params
[1] = (GLdouble
) ctx
->Accum
.ClearColor
[1];
999 params
[2] = (GLdouble
) ctx
->Accum
.ClearColor
[2];
1000 params
[3] = (GLdouble
) ctx
->Accum
.ClearColor
[3];
1003 *params
= (GLdouble
) ctx
->Pixel
.AlphaBias
;
1006 *params
= (GLdouble
) ctx
->Visual
->AlphaBits
;
1008 case GL_ALPHA_SCALE
:
1009 *params
= (GLdouble
) ctx
->Pixel
.AlphaScale
;
1012 *params
= (GLdouble
) ctx
->Color
.AlphaEnabled
;
1014 case GL_ALPHA_TEST_FUNC
:
1015 *params
= ENUM_TO_DOUBLE(ctx
->Color
.AlphaFunc
);
1017 case GL_ALPHA_TEST_REF
:
1018 *params
= (GLdouble
) ctx
->Color
.AlphaRef
/ 255.0;
1020 case GL_ATTRIB_STACK_DEPTH
:
1021 *params
= (GLdouble
) (ctx
->AttribStackDepth
);
1023 case GL_AUTO_NORMAL
:
1024 *params
= (GLdouble
) ctx
->Eval
.AutoNormal
;
1026 case GL_AUX_BUFFERS
:
1027 *params
= (GLdouble
) NUM_AUX_BUFFERS
;
1030 *params
= (GLdouble
) ctx
->Color
.BlendEnabled
;
1033 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendDstRGB
);
1036 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendSrcRGB
);
1038 case GL_BLEND_SRC_RGB_INGR
:
1039 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendSrcRGB
);
1041 case GL_BLEND_DST_RGB_INGR
:
1042 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendDstRGB
);
1044 case GL_BLEND_SRC_ALPHA_INGR
:
1045 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendSrcA
);
1047 case GL_BLEND_DST_ALPHA_INGR
:
1048 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendDstA
);
1050 case GL_BLEND_EQUATION_EXT
:
1051 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendEquation
);
1053 case GL_BLEND_COLOR_EXT
:
1054 params
[0] = (GLdouble
) ctx
->Color
.BlendColor
[0];
1055 params
[1] = (GLdouble
) ctx
->Color
.BlendColor
[1];
1056 params
[2] = (GLdouble
) ctx
->Color
.BlendColor
[2];
1057 params
[3] = (GLdouble
) ctx
->Color
.BlendColor
[3];
1060 *params
= (GLdouble
) ctx
->Pixel
.BlueBias
;
1063 *params
= (GLdouble
) ctx
->Visual
->BlueBits
;
1066 *params
= (GLdouble
) ctx
->Pixel
.BlueScale
;
1068 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
1069 *params
= (GLdouble
) (ctx
->ClientAttribStackDepth
);
1071 case GL_CLIP_PLANE0
:
1072 case GL_CLIP_PLANE1
:
1073 case GL_CLIP_PLANE2
:
1074 case GL_CLIP_PLANE3
:
1075 case GL_CLIP_PLANE4
:
1076 case GL_CLIP_PLANE5
:
1077 *params
= (GLdouble
) ctx
->Transform
.ClipEnabled
[pname
-GL_CLIP_PLANE0
];
1079 case GL_COLOR_CLEAR_VALUE
:
1080 params
[0] = (GLdouble
) ctx
->Color
.ClearColor
[0];
1081 params
[1] = (GLdouble
) ctx
->Color
.ClearColor
[1];
1082 params
[2] = (GLdouble
) ctx
->Color
.ClearColor
[2];
1083 params
[3] = (GLdouble
) ctx
->Color
.ClearColor
[3];
1085 case GL_COLOR_MATERIAL
:
1086 *params
= (GLdouble
) ctx
->Light
.ColorMaterialEnabled
;
1088 case GL_COLOR_MATERIAL_FACE
:
1089 *params
= ENUM_TO_DOUBLE(ctx
->Light
.ColorMaterialFace
);
1091 case GL_COLOR_MATERIAL_PARAMETER
:
1092 *params
= ENUM_TO_DOUBLE(ctx
->Light
.ColorMaterialMode
);
1094 case GL_COLOR_WRITEMASK
:
1095 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1.0 : 0.0;
1096 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1.0 : 0.0;
1097 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1.0 : 0.0;
1098 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1.0 : 0.0;
1101 *params
= (GLdouble
) ctx
->Polygon
.CullFlag
;
1103 case GL_CULL_FACE_MODE
:
1104 *params
= ENUM_TO_DOUBLE(ctx
->Polygon
.CullFaceMode
);
1106 case GL_CURRENT_COLOR
:
1107 params
[0] = UBYTE_COLOR_TO_FLOAT_COLOR(ctx
->Current
.ByteColor
[0]);
1108 params
[1] = UBYTE_COLOR_TO_FLOAT_COLOR(ctx
->Current
.ByteColor
[1]);
1109 params
[2] = UBYTE_COLOR_TO_FLOAT_COLOR(ctx
->Current
.ByteColor
[2]);
1110 params
[3] = UBYTE_COLOR_TO_FLOAT_COLOR(ctx
->Current
.ByteColor
[3]);
1112 case GL_CURRENT_INDEX
:
1113 *params
= (GLdouble
) ctx
->Current
.Index
;
1115 case GL_CURRENT_NORMAL
:
1116 params
[0] = (GLdouble
) ctx
->Current
.Normal
[0];
1117 params
[1] = (GLdouble
) ctx
->Current
.Normal
[1];
1118 params
[2] = (GLdouble
) ctx
->Current
.Normal
[2];
1120 case GL_CURRENT_RASTER_COLOR
:
1121 params
[0] = (GLdouble
) ctx
->Current
.RasterColor
[0];
1122 params
[1] = (GLdouble
) ctx
->Current
.RasterColor
[1];
1123 params
[2] = (GLdouble
) ctx
->Current
.RasterColor
[2];
1124 params
[3] = (GLdouble
) ctx
->Current
.RasterColor
[3];
1126 case GL_CURRENT_RASTER_DISTANCE
:
1127 params
[0] = (GLdouble
) ctx
->Current
.RasterDistance
;
1129 case GL_CURRENT_RASTER_INDEX
:
1130 *params
= (GLdouble
) ctx
->Current
.RasterIndex
;
1132 case GL_CURRENT_RASTER_POSITION
:
1133 params
[0] = (GLdouble
) ctx
->Current
.RasterPos
[0];
1134 params
[1] = (GLdouble
) ctx
->Current
.RasterPos
[1];
1135 params
[2] = (GLdouble
) ctx
->Current
.RasterPos
[2];
1136 params
[3] = (GLdouble
) ctx
->Current
.RasterPos
[3];
1138 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
1139 params
[0] = (GLdouble
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][0];
1140 params
[1] = (GLdouble
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][1];
1141 params
[2] = (GLdouble
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][2];
1142 params
[3] = (GLdouble
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][3];
1144 case GL_CURRENT_RASTER_POSITION_VALID
:
1145 *params
= (GLdouble
) ctx
->Current
.RasterPosValid
;
1147 case GL_CURRENT_TEXTURE_COORDS
:
1148 params
[0] = (GLdouble
) ctx
->Current
.Texcoord
[texTransformUnit
][0];
1149 params
[1] = (GLdouble
) ctx
->Current
.Texcoord
[texTransformUnit
][1];
1150 params
[2] = (GLdouble
) ctx
->Current
.Texcoord
[texTransformUnit
][2];
1151 params
[3] = (GLdouble
) ctx
->Current
.Texcoord
[texTransformUnit
][3];
1154 *params
= (GLdouble
) ctx
->Pixel
.DepthBias
;
1157 *params
= (GLdouble
) ctx
->Visual
->DepthBits
;
1159 case GL_DEPTH_CLEAR_VALUE
:
1160 *params
= (GLdouble
) ctx
->Depth
.Clear
;
1163 *params
= ENUM_TO_DOUBLE(ctx
->Depth
.Func
);
1165 case GL_DEPTH_RANGE
:
1166 params
[0] = (GLdouble
) ctx
->Viewport
.Near
;
1167 params
[1] = (GLdouble
) ctx
->Viewport
.Far
;
1169 case GL_DEPTH_SCALE
:
1170 *params
= (GLdouble
) ctx
->Pixel
.DepthScale
;
1173 *params
= (GLdouble
) ctx
->Depth
.Test
;
1175 case GL_DEPTH_WRITEMASK
:
1176 *params
= (GLdouble
) ctx
->Depth
.Mask
;
1179 *params
= (GLdouble
) ctx
->Color
.DitherFlag
;
1181 case GL_DOUBLEBUFFER
:
1182 *params
= (GLdouble
) ctx
->Visual
->DBflag
;
1184 case GL_DRAW_BUFFER
:
1185 *params
= ENUM_TO_DOUBLE(ctx
->Color
.DrawBuffer
);
1188 *params
= (GLdouble
) ctx
->Current
.EdgeFlag
;
1190 case GL_FEEDBACK_BUFFER_SIZE
:
1191 /* TODO: is this right? Or, return number of entries in buffer? */
1192 *params
= (GLdouble
) ctx
->Feedback
.BufferSize
;
1194 case GL_FEEDBACK_BUFFER_TYPE
:
1195 *params
= ENUM_TO_DOUBLE(ctx
->Feedback
.Type
);
1198 *params
= (GLdouble
) ctx
->Fog
.Enabled
;
1201 params
[0] = (GLdouble
) ctx
->Fog
.Color
[0];
1202 params
[1] = (GLdouble
) ctx
->Fog
.Color
[1];
1203 params
[2] = (GLdouble
) ctx
->Fog
.Color
[2];
1204 params
[3] = (GLdouble
) ctx
->Fog
.Color
[3];
1206 case GL_FOG_DENSITY
:
1207 *params
= (GLdouble
) ctx
->Fog
.Density
;
1210 *params
= (GLdouble
) ctx
->Fog
.End
;
1213 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.Fog
);
1216 *params
= (GLdouble
) ctx
->Fog
.Index
;
1219 *params
= ENUM_TO_DOUBLE(ctx
->Fog
.Mode
);
1222 *params
= (GLdouble
) ctx
->Fog
.Start
;
1225 *params
= ENUM_TO_DOUBLE(ctx
->Polygon
.FrontFace
);
1228 *params
= (GLdouble
) ctx
->Pixel
.GreenBias
;
1231 *params
= (GLdouble
) ctx
->Visual
->GreenBits
;
1233 case GL_GREEN_SCALE
:
1234 *params
= (GLdouble
) ctx
->Pixel
.GreenScale
;
1237 *params
= (GLdouble
) ctx
->Visual
->IndexBits
;
1239 case GL_INDEX_CLEAR_VALUE
:
1240 *params
= (GLdouble
) ctx
->Color
.ClearIndex
;
1243 *params
= ctx
->Visual
->RGBAflag
? 0.0 : 1.0;
1245 case GL_INDEX_OFFSET
:
1246 *params
= (GLdouble
) ctx
->Pixel
.IndexOffset
;
1248 case GL_INDEX_SHIFT
:
1249 *params
= (GLdouble
) ctx
->Pixel
.IndexShift
;
1251 case GL_INDEX_WRITEMASK
:
1252 *params
= (GLdouble
) ctx
->Color
.IndexMask
;
1262 *params
= (GLdouble
) ctx
->Light
.Light
[pname
-GL_LIGHT0
].Enabled
;
1265 *params
= (GLdouble
) ctx
->Light
.Enabled
;
1267 case GL_LIGHT_MODEL_AMBIENT
:
1268 params
[0] = (GLdouble
) ctx
->Light
.Model
.Ambient
[0];
1269 params
[1] = (GLdouble
) ctx
->Light
.Model
.Ambient
[1];
1270 params
[2] = (GLdouble
) ctx
->Light
.Model
.Ambient
[2];
1271 params
[3] = (GLdouble
) ctx
->Light
.Model
.Ambient
[3];
1273 case GL_LIGHT_MODEL_COLOR_CONTROL
:
1274 params
[0] = (GLdouble
) ctx
->Light
.Model
.ColorControl
;
1276 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
1277 *params
= (GLdouble
) ctx
->Light
.Model
.LocalViewer
;
1279 case GL_LIGHT_MODEL_TWO_SIDE
:
1280 *params
= (GLdouble
) ctx
->Light
.Model
.TwoSide
;
1282 case GL_LINE_SMOOTH
:
1283 *params
= (GLdouble
) ctx
->Line
.SmoothFlag
;
1285 case GL_LINE_SMOOTH_HINT
:
1286 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.LineSmooth
);
1288 case GL_LINE_STIPPLE
:
1289 *params
= (GLdouble
) ctx
->Line
.StippleFlag
;
1291 case GL_LINE_STIPPLE_PATTERN
:
1292 *params
= (GLdouble
) ctx
->Line
.StipplePattern
;
1294 case GL_LINE_STIPPLE_REPEAT
:
1295 *params
= (GLdouble
) ctx
->Line
.StippleFactor
;
1298 *params
= (GLdouble
) ctx
->Line
.Width
;
1300 case GL_LINE_WIDTH_GRANULARITY
:
1301 *params
= (GLdouble
) LINE_WIDTH_GRANULARITY
;
1303 case GL_LINE_WIDTH_RANGE
:
1304 params
[0] = (GLdouble
) MIN_LINE_WIDTH
;
1305 params
[1] = (GLdouble
) MAX_LINE_WIDTH
;
1308 *params
= (GLdouble
) ctx
->List
.ListBase
;
1311 *params
= (GLdouble
) ctx
->CurrentListNum
;
1314 *params
= ctx
->ExecuteFlag
? ENUM_TO_DOUBLE(GL_COMPILE_AND_EXECUTE
)
1315 : ENUM_TO_DOUBLE(GL_COMPILE
);
1317 case GL_INDEX_LOGIC_OP
:
1318 *params
= (GLdouble
) ctx
->Color
.IndexLogicOpEnabled
;
1320 case GL_COLOR_LOGIC_OP
:
1321 *params
= (GLdouble
) ctx
->Color
.ColorLogicOpEnabled
;
1323 case GL_LOGIC_OP_MODE
:
1324 *params
= ENUM_TO_DOUBLE(ctx
->Color
.LogicOp
);
1326 case GL_MAP1_COLOR_4
:
1327 *params
= (GLdouble
) ctx
->Eval
.Map1Color4
;
1329 case GL_MAP1_GRID_DOMAIN
:
1330 params
[0] = (GLdouble
) ctx
->Eval
.MapGrid1u1
;
1331 params
[1] = (GLdouble
) ctx
->Eval
.MapGrid1u2
;
1333 case GL_MAP1_GRID_SEGMENTS
:
1334 *params
= (GLdouble
) ctx
->Eval
.MapGrid1un
;
1337 *params
= (GLdouble
) ctx
->Eval
.Map1Index
;
1339 case GL_MAP1_NORMAL
:
1340 *params
= (GLdouble
) ctx
->Eval
.Map1Normal
;
1342 case GL_MAP1_TEXTURE_COORD_1
:
1343 *params
= (GLdouble
) ctx
->Eval
.Map1TextureCoord1
;
1345 case GL_MAP1_TEXTURE_COORD_2
:
1346 *params
= (GLdouble
) ctx
->Eval
.Map1TextureCoord2
;
1348 case GL_MAP1_TEXTURE_COORD_3
:
1349 *params
= (GLdouble
) ctx
->Eval
.Map1TextureCoord3
;
1351 case GL_MAP1_TEXTURE_COORD_4
:
1352 *params
= (GLdouble
) ctx
->Eval
.Map1TextureCoord4
;
1354 case GL_MAP1_VERTEX_3
:
1355 *params
= (GLdouble
) ctx
->Eval
.Map1Vertex3
;
1357 case GL_MAP1_VERTEX_4
:
1358 *params
= (GLdouble
) ctx
->Eval
.Map1Vertex4
;
1360 case GL_MAP2_COLOR_4
:
1361 *params
= (GLdouble
) ctx
->Eval
.Map2Color4
;
1363 case GL_MAP2_GRID_DOMAIN
:
1364 params
[0] = (GLdouble
) ctx
->Eval
.MapGrid2u1
;
1365 params
[1] = (GLdouble
) ctx
->Eval
.MapGrid2u2
;
1366 params
[2] = (GLdouble
) ctx
->Eval
.MapGrid2v1
;
1367 params
[3] = (GLdouble
) ctx
->Eval
.MapGrid2v2
;
1369 case GL_MAP2_GRID_SEGMENTS
:
1370 params
[0] = (GLdouble
) ctx
->Eval
.MapGrid2un
;
1371 params
[1] = (GLdouble
) ctx
->Eval
.MapGrid2vn
;
1374 *params
= (GLdouble
) ctx
->Eval
.Map2Index
;
1376 case GL_MAP2_NORMAL
:
1377 *params
= (GLdouble
) ctx
->Eval
.Map2Normal
;
1379 case GL_MAP2_TEXTURE_COORD_1
:
1380 *params
= (GLdouble
) ctx
->Eval
.Map2TextureCoord1
;
1382 case GL_MAP2_TEXTURE_COORD_2
:
1383 *params
= (GLdouble
) ctx
->Eval
.Map2TextureCoord2
;
1385 case GL_MAP2_TEXTURE_COORD_3
:
1386 *params
= (GLdouble
) ctx
->Eval
.Map2TextureCoord3
;
1388 case GL_MAP2_TEXTURE_COORD_4
:
1389 *params
= (GLdouble
) ctx
->Eval
.Map2TextureCoord4
;
1391 case GL_MAP2_VERTEX_3
:
1392 *params
= (GLdouble
) ctx
->Eval
.Map2Vertex3
;
1394 case GL_MAP2_VERTEX_4
:
1395 *params
= (GLdouble
) ctx
->Eval
.Map2Vertex4
;
1398 *params
= (GLdouble
) ctx
->Pixel
.MapColorFlag
;
1400 case GL_MAP_STENCIL
:
1401 *params
= (GLdouble
) ctx
->Pixel
.MapStencilFlag
;
1403 case GL_MATRIX_MODE
:
1404 *params
= ENUM_TO_DOUBLE(ctx
->Transform
.MatrixMode
);
1406 case GL_MAX_ATTRIB_STACK_DEPTH
:
1407 *params
= (GLdouble
) MAX_ATTRIB_STACK_DEPTH
;
1409 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
1410 *params
= (GLdouble
) MAX_CLIENT_ATTRIB_STACK_DEPTH
;
1412 case GL_MAX_CLIP_PLANES
:
1413 *params
= (GLdouble
) MAX_CLIP_PLANES
;
1415 case GL_MAX_ELEMENTS_VERTICES
: /* GL_VERSION_1_2 */
1416 *params
= (GLdouble
) VB_MAX
;
1418 case GL_MAX_ELEMENTS_INDICES
: /* GL_VERSION_1_2 */
1419 *params
= (GLdouble
) VB_MAX
;
1421 case GL_MAX_EVAL_ORDER
:
1422 *params
= (GLdouble
) MAX_EVAL_ORDER
;
1425 *params
= (GLdouble
) MAX_LIGHTS
;
1427 case GL_MAX_LIST_NESTING
:
1428 *params
= (GLdouble
) MAX_LIST_NESTING
;
1430 case GL_MAX_MODELVIEW_STACK_DEPTH
:
1431 *params
= (GLdouble
) MAX_MODELVIEW_STACK_DEPTH
;
1433 case GL_MAX_NAME_STACK_DEPTH
:
1434 *params
= (GLdouble
) MAX_NAME_STACK_DEPTH
;
1436 case GL_MAX_PIXEL_MAP_TABLE
:
1437 *params
= (GLdouble
) MAX_PIXEL_MAP_TABLE
;
1439 case GL_MAX_PROJECTION_STACK_DEPTH
:
1440 *params
= (GLdouble
) MAX_PROJECTION_STACK_DEPTH
;
1442 case GL_MAX_TEXTURE_SIZE
:
1443 case GL_MAX_3D_TEXTURE_SIZE
:
1444 *params
= (GLdouble
) ctx
->Const
.MaxTextureSize
;
1446 case GL_MAX_TEXTURE_STACK_DEPTH
:
1447 *params
= (GLdouble
) MAX_TEXTURE_STACK_DEPTH
;
1449 case GL_MAX_VIEWPORT_DIMS
:
1450 params
[0] = (GLdouble
) MAX_WIDTH
;
1451 params
[1] = (GLdouble
) MAX_HEIGHT
;
1453 case GL_MODELVIEW_MATRIX
:
1454 for (i
=0;i
<16;i
++) {
1455 params
[i
] = (GLdouble
) ctx
->ModelView
.m
[i
];
1458 case GL_MODELVIEW_STACK_DEPTH
:
1459 *params
= (GLdouble
) (ctx
->ModelViewStackDepth
+ 1);
1461 case GL_NAME_STACK_DEPTH
:
1462 *params
= (GLdouble
) ctx
->Select
.NameStackDepth
;
1465 *params
= (GLdouble
) ctx
->Transform
.Normalize
;
1467 case GL_PACK_ALIGNMENT
:
1468 *params
= (GLdouble
) ctx
->Pack
.Alignment
;
1470 case GL_PACK_LSB_FIRST
:
1471 *params
= (GLdouble
) ctx
->Pack
.LsbFirst
;
1473 case GL_PACK_ROW_LENGTH
:
1474 *params
= (GLdouble
) ctx
->Pack
.RowLength
;
1476 case GL_PACK_SKIP_PIXELS
:
1477 *params
= (GLdouble
) ctx
->Pack
.SkipPixels
;
1479 case GL_PACK_SKIP_ROWS
:
1480 *params
= (GLdouble
) ctx
->Pack
.SkipRows
;
1482 case GL_PACK_SWAP_BYTES
:
1483 *params
= (GLdouble
) ctx
->Pack
.SwapBytes
;
1485 case GL_PACK_SKIP_IMAGES_EXT
:
1486 *params
= (GLdouble
) ctx
->Pack
.SkipImages
;
1488 case GL_PACK_IMAGE_HEIGHT_EXT
:
1489 *params
= (GLdouble
) ctx
->Pack
.ImageHeight
;
1491 case GL_PERSPECTIVE_CORRECTION_HINT
:
1492 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.PerspectiveCorrection
);
1494 case GL_PIXEL_MAP_A_TO_A_SIZE
:
1495 *params
= (GLdouble
) ctx
->Pixel
.MapAtoAsize
;
1497 case GL_PIXEL_MAP_B_TO_B_SIZE
:
1498 *params
= (GLdouble
) ctx
->Pixel
.MapBtoBsize
;
1500 case GL_PIXEL_MAP_G_TO_G_SIZE
:
1501 *params
= (GLdouble
) ctx
->Pixel
.MapGtoGsize
;
1503 case GL_PIXEL_MAP_I_TO_A_SIZE
:
1504 *params
= (GLdouble
) ctx
->Pixel
.MapItoAsize
;
1506 case GL_PIXEL_MAP_I_TO_B_SIZE
:
1507 *params
= (GLdouble
) ctx
->Pixel
.MapItoBsize
;
1509 case GL_PIXEL_MAP_I_TO_G_SIZE
:
1510 *params
= (GLdouble
) ctx
->Pixel
.MapItoGsize
;
1512 case GL_PIXEL_MAP_I_TO_I_SIZE
:
1513 *params
= (GLdouble
) ctx
->Pixel
.MapItoIsize
;
1515 case GL_PIXEL_MAP_I_TO_R_SIZE
:
1516 *params
= (GLdouble
) ctx
->Pixel
.MapItoRsize
;
1518 case GL_PIXEL_MAP_R_TO_R_SIZE
:
1519 *params
= (GLdouble
) ctx
->Pixel
.MapRtoRsize
;
1521 case GL_PIXEL_MAP_S_TO_S_SIZE
:
1522 *params
= (GLdouble
) ctx
->Pixel
.MapStoSsize
;
1525 *params
= (GLdouble
) ctx
->Point
.Size
;
1527 case GL_POINT_SIZE_GRANULARITY
:
1528 *params
= (GLdouble
) POINT_SIZE_GRANULARITY
;
1530 case GL_POINT_SIZE_RANGE
:
1531 params
[0] = (GLdouble
) MIN_POINT_SIZE
;
1532 params
[1] = (GLdouble
) MAX_POINT_SIZE
;
1534 case GL_POINT_SMOOTH
:
1535 *params
= (GLdouble
) ctx
->Point
.SmoothFlag
;
1537 case GL_POINT_SMOOTH_HINT
:
1538 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.PointSmooth
);
1540 case GL_POINT_SIZE_MIN_EXT
:
1541 *params
= (GLdouble
) (ctx
->Point
.MinSize
);
1543 case GL_POINT_SIZE_MAX_EXT
:
1544 *params
= (GLdouble
) (ctx
->Point
.MaxSize
);
1546 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
1547 *params
= (GLdouble
) (ctx
->Point
.Threshold
);
1549 case GL_DISTANCE_ATTENUATION_EXT
:
1550 params
[0] = (GLdouble
) (ctx
->Point
.Params
[0]);
1551 params
[1] = (GLdouble
) (ctx
->Point
.Params
[1]);
1552 params
[2] = (GLdouble
) (ctx
->Point
.Params
[2]);
1554 case GL_POLYGON_MODE
:
1555 params
[0] = ENUM_TO_DOUBLE(ctx
->Polygon
.FrontMode
);
1556 params
[1] = ENUM_TO_DOUBLE(ctx
->Polygon
.BackMode
);
1558 #ifdef GL_EXT_polygon_offset
1559 case GL_POLYGON_OFFSET_BIAS_EXT
:
1560 *params
= (GLdouble
) ctx
->Polygon
.OffsetUnits
;
1563 case GL_POLYGON_OFFSET_FACTOR
:
1564 *params
= (GLdouble
) ctx
->Polygon
.OffsetFactor
;
1566 case GL_POLYGON_OFFSET_UNITS
:
1567 *params
= (GLdouble
) ctx
->Polygon
.OffsetUnits
;
1569 case GL_POLYGON_SMOOTH
:
1570 *params
= (GLdouble
) ctx
->Polygon
.SmoothFlag
;
1572 case GL_POLYGON_SMOOTH_HINT
:
1573 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.PolygonSmooth
);
1575 case GL_POLYGON_STIPPLE
:
1576 *params
= (GLdouble
) ctx
->Polygon
.StippleFlag
;
1578 case GL_PROJECTION_MATRIX
:
1579 for (i
=0;i
<16;i
++) {
1580 params
[i
] = (GLdouble
) ctx
->ProjectionMatrix
.m
[i
];
1583 case GL_PROJECTION_STACK_DEPTH
:
1584 *params
= (GLdouble
) (ctx
->ProjectionStackDepth
+ 1);
1586 case GL_READ_BUFFER
:
1587 *params
= ENUM_TO_DOUBLE(ctx
->Pixel
.ReadBuffer
);
1590 *params
= (GLdouble
) ctx
->Pixel
.RedBias
;
1593 *params
= (GLdouble
) ctx
->Visual
->RedBits
;
1596 *params
= (GLdouble
) ctx
->Pixel
.RedScale
;
1598 case GL_RENDER_MODE
:
1599 *params
= ENUM_TO_DOUBLE(ctx
->RenderMode
);
1602 *params
= (GLdouble
) ctx
->Visual
->RGBAflag
;
1604 case GL_SCISSOR_BOX
:
1605 params
[0] = (GLdouble
) ctx
->Scissor
.X
;
1606 params
[1] = (GLdouble
) ctx
->Scissor
.Y
;
1607 params
[2] = (GLdouble
) ctx
->Scissor
.Width
;
1608 params
[3] = (GLdouble
) ctx
->Scissor
.Height
;
1610 case GL_SCISSOR_TEST
:
1611 *params
= (GLdouble
) ctx
->Scissor
.Enabled
;
1613 case GL_SELECTION_BUFFER_SIZE
:
1614 *params
= (GLdouble
) ctx
->Select
.BufferSize
;
1616 case GL_SHADE_MODEL
:
1617 *params
= ENUM_TO_DOUBLE(ctx
->Light
.ShadeModel
);
1619 case GL_SHARED_TEXTURE_PALETTE_EXT
:
1620 *params
= (GLdouble
) ctx
->Texture
.SharedPalette
;
1622 case GL_STENCIL_BITS
:
1623 *params
= (GLdouble
) ctx
->Visual
->StencilBits
;
1625 case GL_STENCIL_CLEAR_VALUE
:
1626 *params
= (GLdouble
) ctx
->Stencil
.Clear
;
1628 case GL_STENCIL_FAIL
:
1629 *params
= ENUM_TO_DOUBLE(ctx
->Stencil
.FailFunc
);
1631 case GL_STENCIL_FUNC
:
1632 *params
= ENUM_TO_DOUBLE(ctx
->Stencil
.Function
);
1634 case GL_STENCIL_PASS_DEPTH_FAIL
:
1635 *params
= ENUM_TO_DOUBLE(ctx
->Stencil
.ZFailFunc
);
1637 case GL_STENCIL_PASS_DEPTH_PASS
:
1638 *params
= ENUM_TO_DOUBLE(ctx
->Stencil
.ZPassFunc
);
1640 case GL_STENCIL_REF
:
1641 *params
= (GLdouble
) ctx
->Stencil
.Ref
;
1643 case GL_STENCIL_TEST
:
1644 *params
= (GLdouble
) ctx
->Stencil
.Enabled
;
1646 case GL_STENCIL_VALUE_MASK
:
1647 *params
= (GLdouble
) ctx
->Stencil
.ValueMask
;
1649 case GL_STENCIL_WRITEMASK
:
1650 *params
= (GLdouble
) ctx
->Stencil
.WriteMask
;
1653 *params
= (GLdouble
) ctx
->Visual
->StereoFlag
;
1655 case GL_SUBPIXEL_BITS
:
1656 *params
= 0.0; /* TODO */
1659 *params
= _mesa_IsEnabled(GL_TEXTURE_1D
) ? 1.0 : 0.0;
1662 *params
= _mesa_IsEnabled(GL_TEXTURE_2D
) ? 1.0 : 0.0;
1665 *params
= _mesa_IsEnabled(GL_TEXTURE_3D
) ? 1.0 : 0.0;
1667 case GL_TEXTURE_BINDING_1D
:
1668 *params
= (GLdouble
) textureUnit
->CurrentD
[1]->Name
;
1670 case GL_TEXTURE_BINDING_2D
:
1671 *params
= (GLdouble
) textureUnit
->CurrentD
[2]->Name
;
1673 case GL_TEXTURE_BINDING_3D
:
1674 *params
= (GLdouble
) textureUnit
->CurrentD
[3]->Name
;
1676 case GL_TEXTURE_ENV_COLOR
:
1677 params
[0] = (GLdouble
) textureUnit
->EnvColor
[0];
1678 params
[1] = (GLdouble
) textureUnit
->EnvColor
[1];
1679 params
[2] = (GLdouble
) textureUnit
->EnvColor
[2];
1680 params
[3] = (GLdouble
) textureUnit
->EnvColor
[3];
1682 case GL_TEXTURE_ENV_MODE
:
1683 *params
= ENUM_TO_DOUBLE(textureUnit
->EnvMode
);
1685 case GL_TEXTURE_GEN_S
:
1686 *params
= (textureUnit
->TexGenEnabled
& S_BIT
) ? 1.0 : 0.0;
1688 case GL_TEXTURE_GEN_T
:
1689 *params
= (textureUnit
->TexGenEnabled
& T_BIT
) ? 1.0 : 0.0;
1691 case GL_TEXTURE_GEN_R
:
1692 *params
= (textureUnit
->TexGenEnabled
& R_BIT
) ? 1.0 : 0.0;
1694 case GL_TEXTURE_GEN_Q
:
1695 *params
= (textureUnit
->TexGenEnabled
& Q_BIT
) ? 1.0 : 0.0;
1697 case GL_TEXTURE_MATRIX
:
1698 for (i
=0;i
<16;i
++) {
1699 params
[i
] = (GLdouble
) ctx
->TextureMatrix
[texTransformUnit
].m
[i
];
1702 case GL_TEXTURE_STACK_DEPTH
:
1703 *params
= (GLdouble
) (ctx
->TextureStackDepth
[texTransformUnit
] + 1);
1705 case GL_UNPACK_ALIGNMENT
:
1706 *params
= (GLdouble
) ctx
->Unpack
.Alignment
;
1708 case GL_UNPACK_LSB_FIRST
:
1709 *params
= (GLdouble
) ctx
->Unpack
.LsbFirst
;
1711 case GL_UNPACK_ROW_LENGTH
:
1712 *params
= (GLdouble
) ctx
->Unpack
.RowLength
;
1714 case GL_UNPACK_SKIP_PIXELS
:
1715 *params
= (GLdouble
) ctx
->Unpack
.SkipPixels
;
1717 case GL_UNPACK_SKIP_ROWS
:
1718 *params
= (GLdouble
) ctx
->Unpack
.SkipRows
;
1720 case GL_UNPACK_SWAP_BYTES
:
1721 *params
= (GLdouble
) ctx
->Unpack
.SwapBytes
;
1723 case GL_UNPACK_SKIP_IMAGES_EXT
:
1724 *params
= (GLdouble
) ctx
->Unpack
.SkipImages
;
1726 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
1727 *params
= (GLdouble
) ctx
->Unpack
.ImageHeight
;
1730 params
[0] = (GLdouble
) ctx
->Viewport
.X
;
1731 params
[1] = (GLdouble
) ctx
->Viewport
.Y
;
1732 params
[2] = (GLdouble
) ctx
->Viewport
.Width
;
1733 params
[3] = (GLdouble
) ctx
->Viewport
.Height
;
1736 *params
= (GLdouble
) ctx
->Pixel
.ZoomX
;
1739 *params
= (GLdouble
) ctx
->Pixel
.ZoomY
;
1741 case GL_VERTEX_ARRAY
:
1742 *params
= (GLdouble
) ctx
->Array
.Vertex
.Enabled
;
1744 case GL_VERTEX_ARRAY_SIZE
:
1745 *params
= (GLdouble
) ctx
->Array
.Vertex
.Size
;
1747 case GL_VERTEX_ARRAY_TYPE
:
1748 *params
= ENUM_TO_DOUBLE(ctx
->Array
.Vertex
.Type
);
1750 case GL_VERTEX_ARRAY_STRIDE
:
1751 *params
= (GLdouble
) ctx
->Array
.Vertex
.Stride
;
1753 case GL_VERTEX_ARRAY_COUNT_EXT
:
1756 case GL_NORMAL_ARRAY
:
1757 *params
= (GLdouble
) ctx
->Array
.Normal
.Enabled
;
1759 case GL_NORMAL_ARRAY_TYPE
:
1760 *params
= ENUM_TO_DOUBLE(ctx
->Array
.Normal
.Type
);
1762 case GL_NORMAL_ARRAY_STRIDE
:
1763 *params
= (GLdouble
) ctx
->Array
.Normal
.Stride
;
1765 case GL_NORMAL_ARRAY_COUNT_EXT
:
1768 case GL_COLOR_ARRAY
:
1769 *params
= (GLdouble
) ctx
->Array
.Color
.Enabled
;
1771 case GL_COLOR_ARRAY_SIZE
:
1772 *params
= (GLdouble
) ctx
->Array
.Color
.Size
;
1774 case GL_COLOR_ARRAY_TYPE
:
1775 *params
= ENUM_TO_DOUBLE(ctx
->Array
.Color
.Type
);
1777 case GL_COLOR_ARRAY_STRIDE
:
1778 *params
= (GLdouble
) ctx
->Array
.Color
.Stride
;
1780 case GL_COLOR_ARRAY_COUNT_EXT
:
1783 case GL_INDEX_ARRAY
:
1784 *params
= (GLdouble
) ctx
->Array
.Index
.Enabled
;
1786 case GL_INDEX_ARRAY_TYPE
:
1787 *params
= ENUM_TO_DOUBLE(ctx
->Array
.Index
.Type
);
1789 case GL_INDEX_ARRAY_STRIDE
:
1790 *params
= (GLdouble
) ctx
->Array
.Index
.Stride
;
1792 case GL_INDEX_ARRAY_COUNT_EXT
:
1795 case GL_TEXTURE_COORD_ARRAY
:
1796 *params
= (GLdouble
) ctx
->Array
.TexCoord
[texUnit
].Enabled
;
1798 case GL_TEXTURE_COORD_ARRAY_SIZE
:
1799 *params
= (GLdouble
) ctx
->Array
.TexCoord
[texUnit
].Size
;
1801 case GL_TEXTURE_COORD_ARRAY_TYPE
:
1802 *params
= ENUM_TO_DOUBLE(ctx
->Array
.TexCoord
[texUnit
].Type
);
1804 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
1805 *params
= (GLdouble
) ctx
->Array
.TexCoord
[texUnit
].Stride
;
1807 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
1810 case GL_EDGE_FLAG_ARRAY
:
1811 *params
= (GLdouble
) ctx
->Array
.EdgeFlag
.Enabled
;
1813 case GL_EDGE_FLAG_ARRAY_STRIDE
:
1814 *params
= (GLdouble
) ctx
->Array
.EdgeFlag
.Stride
;
1816 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
1820 case GL_MAX_TEXTURE_UNITS_ARB
:
1821 *params
= (GLdouble
) ctx
->Const
.MaxTextureUnits
;
1823 case GL_ACTIVE_TEXTURE_ARB
:
1824 *params
= (GLdouble
) (GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
1826 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
1827 *params
= (GLdouble
) (GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
1831 /* GL_PGI_misc_hints */
1832 case GL_STRICT_DEPTHFUNC_HINT_PGI
:
1833 *params
= ENUM_TO_DOUBLE(GL_NICEST
);
1835 case GL_STRICT_LIGHTING_HINT_PGI
:
1836 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.StrictLighting
);
1838 case GL_STRICT_SCISSOR_HINT_PGI
:
1839 case GL_FULL_STIPPLE_HINT_PGI
:
1840 *params
= ENUM_TO_DOUBLE(GL_TRUE
);
1842 case GL_CONSERVE_MEMORY_HINT_PGI
:
1843 *params
= ENUM_TO_DOUBLE(GL_FALSE
);
1845 case GL_ALWAYS_FAST_HINT_PGI
:
1846 *params
= (GLdouble
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
1847 ctx
->Hint
.AllowDrawSpn
== GL_FALSE
&&
1848 ctx
->Hint
.AllowDrawMem
== GL_FALSE
);
1850 case GL_ALWAYS_SOFT_HINT_PGI
:
1851 *params
= (GLdouble
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
1852 ctx
->Hint
.AllowDrawSpn
== GL_TRUE
&&
1853 ctx
->Hint
.AllowDrawMem
== GL_TRUE
);
1855 case GL_ALLOW_DRAW_OBJ_HINT_PGI
:
1856 *params
= (GLdouble
) GL_TRUE
;
1858 case GL_ALLOW_DRAW_WIN_HINT_PGI
:
1859 *params
= (GLdouble
) ctx
->Hint
.AllowDrawWin
;
1861 case GL_ALLOW_DRAW_SPN_HINT_PGI
:
1862 *params
= (GLdouble
) ctx
->Hint
.AllowDrawSpn
;
1864 case GL_ALLOW_DRAW_MEM_HINT_PGI
:
1865 *params
= (GLdouble
) ctx
->Hint
.AllowDrawMem
;
1867 case GL_CLIP_NEAR_HINT_PGI
:
1868 case GL_CLIP_FAR_HINT_PGI
:
1869 *params
= ENUM_TO_DOUBLE(GL_TRUE
);
1871 case GL_WIDE_LINE_HINT_PGI
:
1872 *params
= ENUM_TO_DOUBLE(GL_DONT_CARE
);
1874 case GL_BACK_NORMALS_HINT_PGI
:
1875 *params
= ENUM_TO_DOUBLE(GL_TRUE
);
1877 case GL_NATIVE_GRAPHICS_HANDLE_PGI
:
1884 printf("invalid enum: %x\n", pname
);
1885 gl_error( ctx
, GL_INVALID_ENUM
, "glGetDoublev" );
1893 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
1895 GET_CURRENT_CONTEXT(ctx
);
1897 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
1898 GLuint texTransformUnit
= ctx
->Texture
.CurrentTransformUnit
;
1899 const struct gl_texture_unit
*textureUnit
= &ctx
->Texture
.Unit
[texUnit
];
1901 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx
, "glGetFloatv");
1903 if (MESA_VERBOSE
& VERBOSE_API
)
1904 fprintf(stderr
, "glGetFloatv %s\n", gl_lookup_enum_by_nr(pname
));
1907 case GL_ACCUM_RED_BITS
:
1908 case GL_ACCUM_GREEN_BITS
:
1909 case GL_ACCUM_BLUE_BITS
:
1910 case GL_ACCUM_ALPHA_BITS
:
1911 *params
= (GLfloat
) ctx
->Visual
->AccumBits
;
1913 case GL_ACCUM_CLEAR_VALUE
:
1914 params
[0] = ctx
->Accum
.ClearColor
[0];
1915 params
[1] = ctx
->Accum
.ClearColor
[1];
1916 params
[2] = ctx
->Accum
.ClearColor
[2];
1917 params
[3] = ctx
->Accum
.ClearColor
[3];
1920 *params
= ctx
->Pixel
.AlphaBias
;
1923 *params
= (GLfloat
) ctx
->Visual
->AlphaBits
;
1925 case GL_ALPHA_SCALE
:
1926 *params
= ctx
->Pixel
.AlphaScale
;
1929 *params
= (GLfloat
) ctx
->Color
.AlphaEnabled
;
1931 case GL_ALPHA_TEST_FUNC
:
1932 *params
= ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
1934 case GL_ALPHA_TEST_REF
:
1935 *params
= (GLfloat
) ctx
->Color
.AlphaRef
/ 255.0;
1937 case GL_ATTRIB_STACK_DEPTH
:
1938 *params
= (GLfloat
) (ctx
->AttribStackDepth
);
1940 case GL_AUTO_NORMAL
:
1941 *params
= (GLfloat
) ctx
->Eval
.AutoNormal
;
1943 case GL_AUX_BUFFERS
:
1944 *params
= (GLfloat
) NUM_AUX_BUFFERS
;
1947 *params
= (GLfloat
) ctx
->Color
.BlendEnabled
;
1950 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1953 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1955 case GL_BLEND_SRC_RGB_INGR
:
1956 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
1958 case GL_BLEND_DST_RGB_INGR
:
1959 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
1961 case GL_BLEND_SRC_ALPHA_INGR
:
1962 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
1964 case GL_BLEND_DST_ALPHA_INGR
:
1965 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
1967 case GL_BLEND_EQUATION_EXT
:
1968 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendEquation
);
1970 case GL_BLEND_COLOR_EXT
:
1971 params
[0] = ctx
->Color
.BlendColor
[0];
1972 params
[1] = ctx
->Color
.BlendColor
[1];
1973 params
[2] = ctx
->Color
.BlendColor
[2];
1974 params
[3] = ctx
->Color
.BlendColor
[3];
1977 *params
= ctx
->Pixel
.BlueBias
;
1980 *params
= (GLfloat
) ctx
->Visual
->BlueBits
;
1983 *params
= ctx
->Pixel
.BlueScale
;
1985 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
1986 *params
= (GLfloat
) (ctx
->ClientAttribStackDepth
);
1988 case GL_CLIP_PLANE0
:
1989 case GL_CLIP_PLANE1
:
1990 case GL_CLIP_PLANE2
:
1991 case GL_CLIP_PLANE3
:
1992 case GL_CLIP_PLANE4
:
1993 case GL_CLIP_PLANE5
:
1994 *params
= (GLfloat
) ctx
->Transform
.ClipEnabled
[pname
-GL_CLIP_PLANE0
];
1996 case GL_COLOR_CLEAR_VALUE
:
1997 params
[0] = (GLfloat
) ctx
->Color
.ClearColor
[0];
1998 params
[1] = (GLfloat
) ctx
->Color
.ClearColor
[1];
1999 params
[2] = (GLfloat
) ctx
->Color
.ClearColor
[2];
2000 params
[3] = (GLfloat
) ctx
->Color
.ClearColor
[3];
2002 case GL_COLOR_MATERIAL
:
2003 *params
= (GLfloat
) ctx
->Light
.ColorMaterialEnabled
;
2005 case GL_COLOR_MATERIAL_FACE
:
2006 *params
= ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2008 case GL_COLOR_MATERIAL_PARAMETER
:
2009 *params
= ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2011 case GL_COLOR_WRITEMASK
:
2012 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1.0F
: 0.0F
;
2013 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1.0F
: 0.0F
;
2014 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1.0F
: 0.0F
;
2015 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1.0F
: 0.0F
;
2018 *params
= (GLfloat
) ctx
->Polygon
.CullFlag
;
2020 case GL_CULL_FACE_MODE
:
2021 *params
= ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2023 case GL_CURRENT_COLOR
:
2024 UBYTE_RGBA_TO_FLOAT_RGBA(params
, ctx
->Current
.ByteColor
);
2026 case GL_CURRENT_INDEX
:
2027 *params
= (GLfloat
) ctx
->Current
.Index
;
2029 case GL_CURRENT_NORMAL
:
2030 params
[0] = ctx
->Current
.Normal
[0];
2031 params
[1] = ctx
->Current
.Normal
[1];
2032 params
[2] = ctx
->Current
.Normal
[2];
2034 case GL_CURRENT_RASTER_COLOR
:
2035 params
[0] = ctx
->Current
.RasterColor
[0];
2036 params
[1] = ctx
->Current
.RasterColor
[1];
2037 params
[2] = ctx
->Current
.RasterColor
[2];
2038 params
[3] = ctx
->Current
.RasterColor
[3];
2040 case GL_CURRENT_RASTER_DISTANCE
:
2041 params
[0] = ctx
->Current
.RasterDistance
;
2043 case GL_CURRENT_RASTER_INDEX
:
2044 *params
= (GLfloat
) ctx
->Current
.RasterIndex
;
2046 case GL_CURRENT_RASTER_POSITION
:
2047 params
[0] = ctx
->Current
.RasterPos
[0];
2048 params
[1] = ctx
->Current
.RasterPos
[1];
2049 params
[2] = ctx
->Current
.RasterPos
[2];
2050 params
[3] = ctx
->Current
.RasterPos
[3];
2052 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2053 params
[0] = ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][0];
2054 params
[1] = ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][1];
2055 params
[2] = ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][2];
2056 params
[3] = ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][3];
2058 case GL_CURRENT_RASTER_POSITION_VALID
:
2059 *params
= (GLfloat
) ctx
->Current
.RasterPosValid
;
2061 case GL_CURRENT_TEXTURE_COORDS
:
2062 params
[0] = (GLfloat
) ctx
->Current
.Texcoord
[texTransformUnit
][0];
2063 params
[1] = (GLfloat
) ctx
->Current
.Texcoord
[texTransformUnit
][1];
2064 params
[2] = (GLfloat
) ctx
->Current
.Texcoord
[texTransformUnit
][2];
2065 params
[3] = (GLfloat
) ctx
->Current
.Texcoord
[texTransformUnit
][3];
2068 *params
= (GLfloat
) ctx
->Pixel
.DepthBias
;
2071 *params
= (GLfloat
) ctx
->Visual
->DepthBits
;
2073 case GL_DEPTH_CLEAR_VALUE
:
2074 *params
= (GLfloat
) ctx
->Depth
.Clear
;
2077 *params
= ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2079 case GL_DEPTH_RANGE
:
2080 params
[0] = (GLfloat
) ctx
->Viewport
.Near
;
2081 params
[1] = (GLfloat
) ctx
->Viewport
.Far
;
2083 case GL_DEPTH_SCALE
:
2084 *params
= (GLfloat
) ctx
->Pixel
.DepthScale
;
2087 *params
= (GLfloat
) ctx
->Depth
.Test
;
2089 case GL_DEPTH_WRITEMASK
:
2090 *params
= (GLfloat
) ctx
->Depth
.Mask
;
2093 *params
= (GLfloat
) ctx
->Color
.DitherFlag
;
2095 case GL_DOUBLEBUFFER
:
2096 *params
= (GLfloat
) ctx
->Visual
->DBflag
;
2098 case GL_DRAW_BUFFER
:
2099 *params
= ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
);
2102 *params
= (GLfloat
) ctx
->Current
.EdgeFlag
;
2104 case GL_FEEDBACK_BUFFER_SIZE
:
2105 /* TODO: is this right? Or, return number of entries in buffer? */
2106 *params
= (GLfloat
) ctx
->Feedback
.BufferSize
;
2108 case GL_FEEDBACK_BUFFER_TYPE
:
2109 *params
= ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2112 *params
= (GLfloat
) ctx
->Fog
.Enabled
;
2115 params
[0] = ctx
->Fog
.Color
[0];
2116 params
[1] = ctx
->Fog
.Color
[1];
2117 params
[2] = ctx
->Fog
.Color
[2];
2118 params
[3] = ctx
->Fog
.Color
[3];
2120 case GL_FOG_DENSITY
:
2121 *params
= ctx
->Fog
.Density
;
2124 *params
= ctx
->Fog
.End
;
2127 *params
= ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2130 *params
= ctx
->Fog
.Index
;
2133 *params
= ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2136 *params
= ctx
->Fog
.Start
;
2139 *params
= ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2142 *params
= (GLfloat
) ctx
->Pixel
.GreenBias
;
2145 *params
= (GLfloat
) ctx
->Visual
->GreenBits
;
2147 case GL_GREEN_SCALE
:
2148 *params
= (GLfloat
) ctx
->Pixel
.GreenScale
;
2151 *params
= (GLfloat
) ctx
->Visual
->IndexBits
;
2153 case GL_INDEX_CLEAR_VALUE
:
2154 *params
= (GLfloat
) ctx
->Color
.ClearIndex
;
2157 *params
= ctx
->Visual
->RGBAflag
? 0.0F
: 1.0F
;
2159 case GL_INDEX_OFFSET
:
2160 *params
= (GLfloat
) ctx
->Pixel
.IndexOffset
;
2162 case GL_INDEX_SHIFT
:
2163 *params
= (GLfloat
) ctx
->Pixel
.IndexShift
;
2165 case GL_INDEX_WRITEMASK
:
2166 *params
= (GLfloat
) ctx
->Color
.IndexMask
;
2176 *params
= (GLfloat
) ctx
->Light
.Light
[pname
-GL_LIGHT0
].Enabled
;
2179 *params
= (GLfloat
) ctx
->Light
.Enabled
;
2181 case GL_LIGHT_MODEL_AMBIENT
:
2182 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2183 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2184 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2185 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2187 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2188 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2190 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2191 *params
= (GLfloat
) ctx
->Light
.Model
.LocalViewer
;
2193 case GL_LIGHT_MODEL_TWO_SIDE
:
2194 *params
= (GLfloat
) ctx
->Light
.Model
.TwoSide
;
2196 case GL_LINE_SMOOTH
:
2197 *params
= (GLfloat
) ctx
->Line
.SmoothFlag
;
2199 case GL_LINE_SMOOTH_HINT
:
2200 *params
= ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2202 case GL_LINE_STIPPLE
:
2203 *params
= (GLfloat
) ctx
->Line
.StippleFlag
;
2205 case GL_LINE_STIPPLE_PATTERN
:
2206 *params
= (GLfloat
) ctx
->Line
.StipplePattern
;
2208 case GL_LINE_STIPPLE_REPEAT
:
2209 *params
= (GLfloat
) ctx
->Line
.StippleFactor
;
2212 *params
= (GLfloat
) ctx
->Line
.Width
;
2214 case GL_LINE_WIDTH_GRANULARITY
:
2215 *params
= (GLfloat
) LINE_WIDTH_GRANULARITY
;
2217 case GL_LINE_WIDTH_RANGE
:
2218 params
[0] = (GLfloat
) MIN_LINE_WIDTH
;
2219 params
[1] = (GLfloat
) MAX_LINE_WIDTH
;
2222 *params
= (GLfloat
) ctx
->List
.ListBase
;
2225 *params
= (GLfloat
) ctx
->CurrentListNum
;
2228 *params
= ctx
->ExecuteFlag
? ENUM_TO_FLOAT(GL_COMPILE_AND_EXECUTE
)
2229 : ENUM_TO_FLOAT(GL_COMPILE
);
2231 case GL_INDEX_LOGIC_OP
:
2232 *params
= (GLfloat
) ctx
->Color
.IndexLogicOpEnabled
;
2234 case GL_COLOR_LOGIC_OP
:
2235 *params
= (GLfloat
) ctx
->Color
.ColorLogicOpEnabled
;
2237 case GL_LOGIC_OP_MODE
:
2238 *params
= ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2240 case GL_MAP1_COLOR_4
:
2241 *params
= (GLfloat
) ctx
->Eval
.Map1Color4
;
2243 case GL_MAP1_GRID_DOMAIN
:
2244 params
[0] = ctx
->Eval
.MapGrid1u1
;
2245 params
[1] = ctx
->Eval
.MapGrid1u2
;
2247 case GL_MAP1_GRID_SEGMENTS
:
2248 *params
= (GLfloat
) ctx
->Eval
.MapGrid1un
;
2251 *params
= (GLfloat
) ctx
->Eval
.Map1Index
;
2253 case GL_MAP1_NORMAL
:
2254 *params
= (GLfloat
) ctx
->Eval
.Map1Normal
;
2256 case GL_MAP1_TEXTURE_COORD_1
:
2257 *params
= (GLfloat
) ctx
->Eval
.Map1TextureCoord1
;
2259 case GL_MAP1_TEXTURE_COORD_2
:
2260 *params
= (GLfloat
) ctx
->Eval
.Map1TextureCoord2
;
2262 case GL_MAP1_TEXTURE_COORD_3
:
2263 *params
= (GLfloat
) ctx
->Eval
.Map1TextureCoord3
;
2265 case GL_MAP1_TEXTURE_COORD_4
:
2266 *params
= (GLfloat
) ctx
->Eval
.Map1TextureCoord4
;
2268 case GL_MAP1_VERTEX_3
:
2269 *params
= (GLfloat
) ctx
->Eval
.Map1Vertex3
;
2271 case GL_MAP1_VERTEX_4
:
2272 *params
= (GLfloat
) ctx
->Eval
.Map1Vertex4
;
2274 case GL_MAP2_COLOR_4
:
2275 *params
= (GLfloat
) ctx
->Eval
.Map2Color4
;
2277 case GL_MAP2_GRID_DOMAIN
:
2278 params
[0] = ctx
->Eval
.MapGrid2u1
;
2279 params
[1] = ctx
->Eval
.MapGrid2u2
;
2280 params
[2] = ctx
->Eval
.MapGrid2v1
;
2281 params
[3] = ctx
->Eval
.MapGrid2v2
;
2283 case GL_MAP2_GRID_SEGMENTS
:
2284 params
[0] = (GLfloat
) ctx
->Eval
.MapGrid2un
;
2285 params
[1] = (GLfloat
) ctx
->Eval
.MapGrid2vn
;
2288 *params
= (GLfloat
) ctx
->Eval
.Map2Index
;
2290 case GL_MAP2_NORMAL
:
2291 *params
= (GLfloat
) ctx
->Eval
.Map2Normal
;
2293 case GL_MAP2_TEXTURE_COORD_1
:
2294 *params
= ctx
->Eval
.Map2TextureCoord1
;
2296 case GL_MAP2_TEXTURE_COORD_2
:
2297 *params
= ctx
->Eval
.Map2TextureCoord2
;
2299 case GL_MAP2_TEXTURE_COORD_3
:
2300 *params
= ctx
->Eval
.Map2TextureCoord3
;
2302 case GL_MAP2_TEXTURE_COORD_4
:
2303 *params
= ctx
->Eval
.Map2TextureCoord4
;
2305 case GL_MAP2_VERTEX_3
:
2306 *params
= (GLfloat
) ctx
->Eval
.Map2Vertex3
;
2308 case GL_MAP2_VERTEX_4
:
2309 *params
= (GLfloat
) ctx
->Eval
.Map2Vertex4
;
2312 *params
= (GLfloat
) ctx
->Pixel
.MapColorFlag
;
2314 case GL_MAP_STENCIL
:
2315 *params
= (GLfloat
) ctx
->Pixel
.MapStencilFlag
;
2317 case GL_MATRIX_MODE
:
2318 *params
= ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2320 case GL_MAX_ATTRIB_STACK_DEPTH
:
2321 *params
= (GLfloat
) MAX_ATTRIB_STACK_DEPTH
;
2323 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2324 *params
= (GLfloat
) MAX_CLIENT_ATTRIB_STACK_DEPTH
;
2326 case GL_MAX_CLIP_PLANES
:
2327 *params
= (GLfloat
) MAX_CLIP_PLANES
;
2329 case GL_MAX_ELEMENTS_VERTICES
: /* GL_VERSION_1_2 */
2330 *params
= (GLfloat
) VB_MAX
;
2332 case GL_MAX_ELEMENTS_INDICES
: /* GL_VERSION_1_2 */
2333 *params
= (GLfloat
) VB_MAX
;
2335 case GL_MAX_EVAL_ORDER
:
2336 *params
= (GLfloat
) MAX_EVAL_ORDER
;
2339 *params
= (GLfloat
) MAX_LIGHTS
;
2341 case GL_MAX_LIST_NESTING
:
2342 *params
= (GLfloat
) MAX_LIST_NESTING
;
2344 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2345 *params
= (GLfloat
) MAX_MODELVIEW_STACK_DEPTH
;
2347 case GL_MAX_NAME_STACK_DEPTH
:
2348 *params
= (GLfloat
) MAX_NAME_STACK_DEPTH
;
2350 case GL_MAX_PIXEL_MAP_TABLE
:
2351 *params
= (GLfloat
) MAX_PIXEL_MAP_TABLE
;
2353 case GL_MAX_PROJECTION_STACK_DEPTH
:
2354 *params
= (GLfloat
) MAX_PROJECTION_STACK_DEPTH
;
2356 case GL_MAX_TEXTURE_SIZE
:
2357 case GL_MAX_3D_TEXTURE_SIZE
:
2358 *params
= (GLfloat
) ctx
->Const
.MaxTextureSize
;
2360 case GL_MAX_TEXTURE_STACK_DEPTH
:
2361 *params
= (GLfloat
) MAX_TEXTURE_STACK_DEPTH
;
2363 case GL_MAX_VIEWPORT_DIMS
:
2364 params
[0] = (GLfloat
) MAX_WIDTH
;
2365 params
[1] = (GLfloat
) MAX_HEIGHT
;
2367 case GL_MODELVIEW_MATRIX
:
2368 for (i
=0;i
<16;i
++) {
2369 params
[i
] = ctx
->ModelView
.m
[i
];
2372 case GL_MODELVIEW_STACK_DEPTH
:
2373 *params
= (GLfloat
) (ctx
->ModelViewStackDepth
+ 1);
2375 case GL_NAME_STACK_DEPTH
:
2376 *params
= (GLfloat
) ctx
->Select
.NameStackDepth
;
2379 *params
= (GLfloat
) ctx
->Transform
.Normalize
;
2381 case GL_PACK_ALIGNMENT
:
2382 *params
= (GLfloat
) ctx
->Pack
.Alignment
;
2384 case GL_PACK_LSB_FIRST
:
2385 *params
= (GLfloat
) ctx
->Pack
.LsbFirst
;
2387 case GL_PACK_ROW_LENGTH
:
2388 *params
= (GLfloat
) ctx
->Pack
.RowLength
;
2390 case GL_PACK_SKIP_PIXELS
:
2391 *params
= (GLfloat
) ctx
->Pack
.SkipPixels
;
2393 case GL_PACK_SKIP_ROWS
:
2394 *params
= (GLfloat
) ctx
->Pack
.SkipRows
;
2396 case GL_PACK_SWAP_BYTES
:
2397 *params
= (GLfloat
) ctx
->Pack
.SwapBytes
;
2399 case GL_PACK_SKIP_IMAGES_EXT
:
2400 *params
= (GLfloat
) ctx
->Pack
.SkipImages
;
2402 case GL_PACK_IMAGE_HEIGHT_EXT
:
2403 *params
= (GLfloat
) ctx
->Pack
.ImageHeight
;
2405 case GL_PERSPECTIVE_CORRECTION_HINT
:
2406 *params
= ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2408 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2409 *params
= (GLfloat
) ctx
->Pixel
.MapAtoAsize
;
2411 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2412 *params
= (GLfloat
) ctx
->Pixel
.MapBtoBsize
;
2414 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2415 *params
= (GLfloat
) ctx
->Pixel
.MapGtoGsize
;
2417 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2418 *params
= (GLfloat
) ctx
->Pixel
.MapItoAsize
;
2420 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2421 *params
= (GLfloat
) ctx
->Pixel
.MapItoBsize
;
2423 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2424 *params
= (GLfloat
) ctx
->Pixel
.MapItoGsize
;
2426 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2427 *params
= (GLfloat
) ctx
->Pixel
.MapItoIsize
;
2429 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2430 *params
= (GLfloat
) ctx
->Pixel
.MapItoRsize
;
2432 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2433 *params
= (GLfloat
) ctx
->Pixel
.MapRtoRsize
;
2435 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2436 *params
= (GLfloat
) ctx
->Pixel
.MapStoSsize
;
2439 *params
= (GLfloat
) ctx
->Point
.Size
;
2441 case GL_POINT_SIZE_GRANULARITY
:
2442 *params
= (GLfloat
) POINT_SIZE_GRANULARITY
;
2444 case GL_POINT_SIZE_RANGE
:
2445 params
[0] = (GLfloat
) MIN_POINT_SIZE
;
2446 params
[1] = (GLfloat
) MAX_POINT_SIZE
;
2448 case GL_POINT_SMOOTH
:
2449 *params
= (GLfloat
) ctx
->Point
.SmoothFlag
;
2451 case GL_POINT_SMOOTH_HINT
:
2452 *params
= ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2454 case GL_POINT_SIZE_MIN_EXT
:
2455 *params
= (GLfloat
) (ctx
->Point
.MinSize
);
2457 case GL_POINT_SIZE_MAX_EXT
:
2458 *params
= (GLfloat
) (ctx
->Point
.MaxSize
);
2460 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2461 *params
= (GLfloat
) (ctx
->Point
.Threshold
);
2463 case GL_DISTANCE_ATTENUATION_EXT
:
2464 params
[0] = (GLfloat
) (ctx
->Point
.Params
[0]);
2465 params
[1] = (GLfloat
) (ctx
->Point
.Params
[1]);
2466 params
[2] = (GLfloat
) (ctx
->Point
.Params
[2]);
2468 case GL_POLYGON_MODE
:
2469 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2470 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2472 #ifdef GL_EXT_polygon_offset
2473 case GL_POLYGON_OFFSET_BIAS_EXT
:
2474 *params
= ctx
->Polygon
.OffsetUnits
;
2477 case GL_POLYGON_OFFSET_FACTOR
:
2478 *params
= ctx
->Polygon
.OffsetFactor
;
2480 case GL_POLYGON_OFFSET_UNITS
:
2481 *params
= ctx
->Polygon
.OffsetUnits
;
2483 case GL_POLYGON_SMOOTH
:
2484 *params
= (GLfloat
) ctx
->Polygon
.SmoothFlag
;
2486 case GL_POLYGON_SMOOTH_HINT
:
2487 *params
= ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2489 case GL_POLYGON_STIPPLE
:
2490 *params
= (GLfloat
) ctx
->Polygon
.StippleFlag
;
2492 case GL_PROJECTION_MATRIX
:
2493 for (i
=0;i
<16;i
++) {
2494 params
[i
] = ctx
->ProjectionMatrix
.m
[i
];
2497 case GL_PROJECTION_STACK_DEPTH
:
2498 *params
= (GLfloat
) (ctx
->ProjectionStackDepth
+ 1);
2500 case GL_READ_BUFFER
:
2501 *params
= ENUM_TO_FLOAT(ctx
->Pixel
.ReadBuffer
);
2504 *params
= ctx
->Pixel
.RedBias
;
2507 *params
= (GLfloat
) ctx
->Visual
->RedBits
;
2510 *params
= ctx
->Pixel
.RedScale
;
2512 case GL_RENDER_MODE
:
2513 *params
= ENUM_TO_FLOAT(ctx
->RenderMode
);
2516 *params
= (GLfloat
) ctx
->Visual
->RGBAflag
;
2518 case GL_SCISSOR_BOX
:
2519 params
[0] = (GLfloat
) ctx
->Scissor
.X
;
2520 params
[1] = (GLfloat
) ctx
->Scissor
.Y
;
2521 params
[2] = (GLfloat
) ctx
->Scissor
.Width
;
2522 params
[3] = (GLfloat
) ctx
->Scissor
.Height
;
2524 case GL_SCISSOR_TEST
:
2525 *params
= (GLfloat
) ctx
->Scissor
.Enabled
;
2527 case GL_SELECTION_BUFFER_SIZE
:
2528 *params
= (GLfloat
) ctx
->Select
.BufferSize
;
2530 case GL_SHADE_MODEL
:
2531 *params
= ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2533 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2534 *params
= (GLfloat
) ctx
->Texture
.SharedPalette
;
2536 case GL_STENCIL_BITS
:
2537 *params
= (GLfloat
) ctx
->Visual
->StencilBits
;
2539 case GL_STENCIL_CLEAR_VALUE
:
2540 *params
= (GLfloat
) ctx
->Stencil
.Clear
;
2542 case GL_STENCIL_FAIL
:
2543 *params
= ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
);
2545 case GL_STENCIL_FUNC
:
2546 *params
= ENUM_TO_FLOAT(ctx
->Stencil
.Function
);
2548 case GL_STENCIL_PASS_DEPTH_FAIL
:
2549 *params
= ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
);
2551 case GL_STENCIL_PASS_DEPTH_PASS
:
2552 *params
= ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
);
2554 case GL_STENCIL_REF
:
2555 *params
= (GLfloat
) ctx
->Stencil
.Ref
;
2557 case GL_STENCIL_TEST
:
2558 *params
= (GLfloat
) ctx
->Stencil
.Enabled
;
2560 case GL_STENCIL_VALUE_MASK
:
2561 *params
= (GLfloat
) ctx
->Stencil
.ValueMask
;
2563 case GL_STENCIL_WRITEMASK
:
2564 *params
= (GLfloat
) ctx
->Stencil
.WriteMask
;
2567 *params
= (GLfloat
) ctx
->Visual
->StereoFlag
;
2569 case GL_SUBPIXEL_BITS
:
2570 *params
= 0.0F
; /* TODO */
2573 *params
= _mesa_IsEnabled(GL_TEXTURE_1D
) ? 1.0 : 0.0;
2576 *params
= _mesa_IsEnabled(GL_TEXTURE_2D
) ? 1.0 : 0.0;
2579 *params
= _mesa_IsEnabled(GL_TEXTURE_3D
) ? 1.0 : 0.0;
2581 case GL_TEXTURE_BINDING_1D
:
2582 *params
= (GLfloat
) textureUnit
->CurrentD
[1]->Name
;
2584 case GL_TEXTURE_BINDING_2D
:
2585 *params
= (GLfloat
) textureUnit
->CurrentD
[2]->Name
;
2587 case GL_TEXTURE_BINDING_3D
:
2588 *params
= (GLfloat
) textureUnit
->CurrentD
[2]->Name
;
2590 case GL_TEXTURE_ENV_COLOR
:
2591 params
[0] = textureUnit
->EnvColor
[0];
2592 params
[1] = textureUnit
->EnvColor
[1];
2593 params
[2] = textureUnit
->EnvColor
[2];
2594 params
[3] = textureUnit
->EnvColor
[3];
2596 case GL_TEXTURE_ENV_MODE
:
2597 *params
= ENUM_TO_FLOAT(textureUnit
->EnvMode
);
2599 case GL_TEXTURE_GEN_S
:
2600 *params
= (textureUnit
->TexGenEnabled
& S_BIT
) ? 1.0 : 0.0;
2602 case GL_TEXTURE_GEN_T
:
2603 *params
= (textureUnit
->TexGenEnabled
& T_BIT
) ? 1.0 : 0.0;
2605 case GL_TEXTURE_GEN_R
:
2606 *params
= (textureUnit
->TexGenEnabled
& R_BIT
) ? 1.0 : 0.0;
2608 case GL_TEXTURE_GEN_Q
:
2609 *params
= (textureUnit
->TexGenEnabled
& Q_BIT
) ? 1.0 : 0.0;
2611 case GL_TEXTURE_MATRIX
:
2612 for (i
=0;i
<16;i
++) {
2613 params
[i
] = ctx
->TextureMatrix
[texTransformUnit
].m
[i
];
2616 case GL_TEXTURE_STACK_DEPTH
:
2617 *params
= (GLfloat
) (ctx
->TextureStackDepth
[texTransformUnit
] + 1);
2619 case GL_UNPACK_ALIGNMENT
:
2620 *params
= (GLfloat
) ctx
->Unpack
.Alignment
;
2622 case GL_UNPACK_LSB_FIRST
:
2623 *params
= (GLfloat
) ctx
->Unpack
.LsbFirst
;
2625 case GL_UNPACK_ROW_LENGTH
:
2626 *params
= (GLfloat
) ctx
->Unpack
.RowLength
;
2628 case GL_UNPACK_SKIP_PIXELS
:
2629 *params
= (GLfloat
) ctx
->Unpack
.SkipPixels
;
2631 case GL_UNPACK_SKIP_ROWS
:
2632 *params
= (GLfloat
) ctx
->Unpack
.SkipRows
;
2634 case GL_UNPACK_SWAP_BYTES
:
2635 *params
= (GLfloat
) ctx
->Unpack
.SwapBytes
;
2637 case GL_UNPACK_SKIP_IMAGES_EXT
:
2638 *params
= (GLfloat
) ctx
->Unpack
.SkipImages
;
2640 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
2641 *params
= (GLfloat
) ctx
->Unpack
.ImageHeight
;
2644 params
[0] = (GLfloat
) ctx
->Viewport
.X
;
2645 params
[1] = (GLfloat
) ctx
->Viewport
.Y
;
2646 params
[2] = (GLfloat
) ctx
->Viewport
.Width
;
2647 params
[3] = (GLfloat
) ctx
->Viewport
.Height
;
2650 *params
= (GLfloat
) ctx
->Pixel
.ZoomX
;
2653 *params
= (GLfloat
) ctx
->Pixel
.ZoomY
;
2655 case GL_VERTEX_ARRAY
:
2656 *params
= (GLfloat
) ctx
->Array
.Vertex
.Enabled
;
2658 case GL_VERTEX_ARRAY_SIZE
:
2659 *params
= (GLfloat
) ctx
->Array
.Vertex
.Size
;
2661 case GL_VERTEX_ARRAY_TYPE
:
2662 *params
= ENUM_TO_FLOAT(ctx
->Array
.Vertex
.Type
);
2664 case GL_VERTEX_ARRAY_STRIDE
:
2665 *params
= (GLfloat
) ctx
->Array
.Vertex
.Stride
;
2667 case GL_VERTEX_ARRAY_COUNT_EXT
:
2670 case GL_NORMAL_ARRAY
:
2671 *params
= (GLfloat
) ctx
->Array
.Normal
.Enabled
;
2673 case GL_NORMAL_ARRAY_TYPE
:
2674 *params
= ENUM_TO_FLOAT(ctx
->Array
.Normal
.Type
);
2676 case GL_NORMAL_ARRAY_STRIDE
:
2677 *params
= (GLfloat
) ctx
->Array
.Normal
.Stride
;
2679 case GL_NORMAL_ARRAY_COUNT_EXT
:
2682 case GL_COLOR_ARRAY
:
2683 *params
= (GLfloat
) ctx
->Array
.Color
.Enabled
;
2685 case GL_COLOR_ARRAY_SIZE
:
2686 *params
= (GLfloat
) ctx
->Array
.Color
.Size
;
2688 case GL_COLOR_ARRAY_TYPE
:
2689 *params
= ENUM_TO_FLOAT(ctx
->Array
.Color
.Type
);
2691 case GL_COLOR_ARRAY_STRIDE
:
2692 *params
= (GLfloat
) ctx
->Array
.Color
.Stride
;
2694 case GL_COLOR_ARRAY_COUNT_EXT
:
2697 case GL_INDEX_ARRAY
:
2698 *params
= (GLfloat
) ctx
->Array
.Index
.Enabled
;
2700 case GL_INDEX_ARRAY_TYPE
:
2701 *params
= ENUM_TO_FLOAT(ctx
->Array
.Index
.Type
);
2703 case GL_INDEX_ARRAY_STRIDE
:
2704 *params
= (GLfloat
) ctx
->Array
.Index
.Stride
;
2706 case GL_INDEX_ARRAY_COUNT_EXT
:
2709 case GL_TEXTURE_COORD_ARRAY
:
2710 *params
= (GLfloat
) ctx
->Array
.TexCoord
[texUnit
].Enabled
;
2712 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2713 *params
= (GLfloat
) ctx
->Array
.TexCoord
[texUnit
].Size
;
2715 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2716 *params
= ENUM_TO_FLOAT(ctx
->Array
.TexCoord
[texUnit
].Type
);
2718 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2719 *params
= (GLfloat
) ctx
->Array
.TexCoord
[texUnit
].Stride
;
2721 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2724 case GL_EDGE_FLAG_ARRAY
:
2725 *params
= (GLfloat
) ctx
->Array
.EdgeFlag
.Enabled
;
2727 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2728 *params
= (GLfloat
) ctx
->Array
.EdgeFlag
.Stride
;
2730 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2734 case GL_MAX_TEXTURE_UNITS_ARB
:
2735 *params
= (GLfloat
) ctx
->Const
.MaxTextureUnits
;
2737 case GL_ACTIVE_TEXTURE_ARB
:
2738 *params
= (GLfloat
) (GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2740 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2741 *params
= (GLfloat
) (GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2744 /* GL_PGI_misc_hints */
2745 case GL_STRICT_DEPTHFUNC_HINT_PGI
:
2746 *params
= ENUM_TO_FLOAT(GL_NICEST
);
2748 case GL_STRICT_LIGHTING_HINT_PGI
:
2749 *params
= ENUM_TO_FLOAT(ctx
->Hint
.StrictLighting
);
2751 case GL_STRICT_SCISSOR_HINT_PGI
:
2752 case GL_FULL_STIPPLE_HINT_PGI
:
2753 *params
= ENUM_TO_FLOAT(GL_TRUE
);
2755 case GL_CONSERVE_MEMORY_HINT_PGI
:
2756 *params
= ENUM_TO_FLOAT(GL_FALSE
);
2758 case GL_ALWAYS_FAST_HINT_PGI
:
2759 *params
= (GLfloat
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
2760 ctx
->Hint
.AllowDrawSpn
== GL_FALSE
&&
2761 ctx
->Hint
.AllowDrawMem
== GL_FALSE
);
2763 case GL_ALWAYS_SOFT_HINT_PGI
:
2764 *params
= (GLfloat
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
2765 ctx
->Hint
.AllowDrawSpn
== GL_TRUE
&&
2766 ctx
->Hint
.AllowDrawMem
== GL_TRUE
);
2768 case GL_ALLOW_DRAW_OBJ_HINT_PGI
:
2769 *params
= (GLfloat
) GL_TRUE
;
2771 case GL_ALLOW_DRAW_WIN_HINT_PGI
:
2772 *params
= (GLfloat
) ctx
->Hint
.AllowDrawWin
;
2774 case GL_ALLOW_DRAW_SPN_HINT_PGI
:
2775 *params
= (GLfloat
) ctx
->Hint
.AllowDrawSpn
;
2777 case GL_ALLOW_DRAW_MEM_HINT_PGI
:
2778 *params
= (GLfloat
) ctx
->Hint
.AllowDrawMem
;
2780 case GL_CLIP_NEAR_HINT_PGI
:
2781 case GL_CLIP_FAR_HINT_PGI
:
2782 *params
= ENUM_TO_FLOAT(GL_TRUE
);
2784 case GL_WIDE_LINE_HINT_PGI
:
2785 *params
= ENUM_TO_FLOAT(GL_DONT_CARE
);
2787 case GL_BACK_NORMALS_HINT_PGI
:
2788 *params
= ENUM_TO_FLOAT(GL_TRUE
);
2790 case GL_NATIVE_GRAPHICS_HANDLE_PGI
:
2795 printf("invalid enum: %x\n", pname
);
2796 gl_error( ctx
, GL_INVALID_ENUM
, "glGetFloatv" );
2804 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
2806 GET_CURRENT_CONTEXT(ctx
);
2808 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2809 GLuint texTransformUnit
= ctx
->Texture
.CurrentTransformUnit
;
2810 const struct gl_texture_unit
*textureUnit
= &ctx
->Texture
.Unit
[texUnit
];
2812 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx
, "glGetIntegerv");
2814 if (MESA_VERBOSE
& VERBOSE_API
)
2815 fprintf(stderr
, "glGetIntegerv %s\n", gl_lookup_enum_by_nr(pname
));
2818 case GL_ACCUM_RED_BITS
:
2819 case GL_ACCUM_GREEN_BITS
:
2820 case GL_ACCUM_BLUE_BITS
:
2821 case GL_ACCUM_ALPHA_BITS
:
2822 *params
= (GLint
) ctx
->Visual
->AccumBits
;
2824 case GL_ACCUM_CLEAR_VALUE
:
2825 params
[0] = FLOAT_TO_INT( ctx
->Accum
.ClearColor
[0] );
2826 params
[1] = FLOAT_TO_INT( ctx
->Accum
.ClearColor
[1] );
2827 params
[2] = FLOAT_TO_INT( ctx
->Accum
.ClearColor
[2] );
2828 params
[3] = FLOAT_TO_INT( ctx
->Accum
.ClearColor
[3] );
2831 *params
= (GLint
) ctx
->Pixel
.AlphaBias
;
2834 *params
= ctx
->Visual
->AlphaBits
;
2836 case GL_ALPHA_SCALE
:
2837 *params
= (GLint
) ctx
->Pixel
.AlphaScale
;
2840 *params
= (GLint
) ctx
->Color
.AlphaEnabled
;
2842 case GL_ALPHA_TEST_REF
:
2843 *params
= FLOAT_TO_INT( (GLfloat
) ctx
->Color
.AlphaRef
/ 255.0 );
2845 case GL_ALPHA_TEST_FUNC
:
2846 *params
= (GLint
) ctx
->Color
.AlphaFunc
;
2848 case GL_ATTRIB_STACK_DEPTH
:
2849 *params
= (GLint
) (ctx
->AttribStackDepth
);
2851 case GL_AUTO_NORMAL
:
2852 *params
= (GLint
) ctx
->Eval
.AutoNormal
;
2854 case GL_AUX_BUFFERS
:
2855 *params
= (GLint
) NUM_AUX_BUFFERS
;
2858 *params
= (GLint
) ctx
->Color
.BlendEnabled
;
2861 *params
= (GLint
) ctx
->Color
.BlendDstRGB
;
2864 *params
= (GLint
) ctx
->Color
.BlendSrcRGB
;
2866 case GL_BLEND_SRC_RGB_INGR
:
2867 *params
= (GLint
) ctx
->Color
.BlendSrcRGB
;
2869 case GL_BLEND_DST_RGB_INGR
:
2870 *params
= (GLint
) ctx
->Color
.BlendDstRGB
;
2872 case GL_BLEND_SRC_ALPHA_INGR
:
2873 *params
= (GLint
) ctx
->Color
.BlendSrcA
;
2875 case GL_BLEND_DST_ALPHA_INGR
:
2876 *params
= (GLint
) ctx
->Color
.BlendDstA
;
2878 case GL_BLEND_EQUATION_EXT
:
2879 *params
= (GLint
) ctx
->Color
.BlendEquation
;
2881 case GL_BLEND_COLOR_EXT
:
2882 params
[0] = FLOAT_TO_INT( ctx
->Color
.BlendColor
[0] );
2883 params
[1] = FLOAT_TO_INT( ctx
->Color
.BlendColor
[1] );
2884 params
[2] = FLOAT_TO_INT( ctx
->Color
.BlendColor
[2] );
2885 params
[3] = FLOAT_TO_INT( ctx
->Color
.BlendColor
[3] );
2888 *params
= (GLint
) ctx
->Pixel
.BlueBias
;
2891 *params
= (GLint
) ctx
->Visual
->BlueBits
;
2894 *params
= (GLint
) ctx
->Pixel
.BlueScale
;
2896 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2897 *params
= (GLint
) (ctx
->ClientAttribStackDepth
);
2899 case GL_CLIP_PLANE0
:
2900 case GL_CLIP_PLANE1
:
2901 case GL_CLIP_PLANE2
:
2902 case GL_CLIP_PLANE3
:
2903 case GL_CLIP_PLANE4
:
2904 case GL_CLIP_PLANE5
:
2905 i
= (GLint
) (pname
- GL_CLIP_PLANE0
);
2906 *params
= (GLint
) ctx
->Transform
.ClipEnabled
[i
];
2908 case GL_COLOR_CLEAR_VALUE
:
2909 params
[0] = FLOAT_TO_INT( ctx
->Color
.ClearColor
[0] );
2910 params
[1] = FLOAT_TO_INT( ctx
->Color
.ClearColor
[1] );
2911 params
[2] = FLOAT_TO_INT( ctx
->Color
.ClearColor
[2] );
2912 params
[3] = FLOAT_TO_INT( ctx
->Color
.ClearColor
[3] );
2914 case GL_COLOR_MATERIAL
:
2915 *params
= (GLint
) ctx
->Light
.ColorMaterialEnabled
;
2917 case GL_COLOR_MATERIAL_FACE
:
2918 *params
= (GLint
) ctx
->Light
.ColorMaterialFace
;
2920 case GL_COLOR_MATERIAL_PARAMETER
:
2921 *params
= (GLint
) ctx
->Light
.ColorMaterialMode
;
2923 case GL_COLOR_WRITEMASK
:
2924 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
2925 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
2926 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
2927 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
2930 *params
= (GLint
) ctx
->Polygon
.CullFlag
;
2932 case GL_CULL_FACE_MODE
:
2933 *params
= (GLint
) ctx
->Polygon
.CullFaceMode
;
2935 case GL_CURRENT_COLOR
:
2936 params
[0] = FLOAT_TO_INT( UBYTE_COLOR_TO_FLOAT_COLOR( ctx
->Current
.ByteColor
[0] ) );
2937 params
[1] = FLOAT_TO_INT( UBYTE_COLOR_TO_FLOAT_COLOR( ctx
->Current
.ByteColor
[1] ) );
2938 params
[2] = FLOAT_TO_INT( UBYTE_COLOR_TO_FLOAT_COLOR( ctx
->Current
.ByteColor
[2] ) );
2939 params
[3] = FLOAT_TO_INT( UBYTE_COLOR_TO_FLOAT_COLOR( ctx
->Current
.ByteColor
[3] ) );
2941 case GL_CURRENT_INDEX
:
2942 *params
= (GLint
) ctx
->Current
.Index
;
2944 case GL_CURRENT_NORMAL
:
2945 params
[0] = FLOAT_TO_INT( ctx
->Current
.Normal
[0] );
2946 params
[1] = FLOAT_TO_INT( ctx
->Current
.Normal
[1] );
2947 params
[2] = FLOAT_TO_INT( ctx
->Current
.Normal
[2] );
2949 case GL_CURRENT_RASTER_COLOR
:
2950 params
[0] = FLOAT_TO_INT( ctx
->Current
.RasterColor
[0] );
2951 params
[1] = FLOAT_TO_INT( ctx
->Current
.RasterColor
[1] );
2952 params
[2] = FLOAT_TO_INT( ctx
->Current
.RasterColor
[2] );
2953 params
[3] = FLOAT_TO_INT( ctx
->Current
.RasterColor
[3] );
2955 case GL_CURRENT_RASTER_DISTANCE
:
2956 params
[0] = (GLint
) ctx
->Current
.RasterDistance
;
2958 case GL_CURRENT_RASTER_INDEX
:
2959 *params
= (GLint
) ctx
->Current
.RasterIndex
;
2961 case GL_CURRENT_RASTER_POSITION
:
2962 params
[0] = (GLint
) ctx
->Current
.RasterPos
[0];
2963 params
[1] = (GLint
) ctx
->Current
.RasterPos
[1];
2964 params
[2] = (GLint
) ctx
->Current
.RasterPos
[2];
2965 params
[3] = (GLint
) ctx
->Current
.RasterPos
[3];
2967 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2968 params
[0] = (GLint
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][0];
2969 params
[1] = (GLint
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][1];
2970 params
[2] = (GLint
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][2];
2971 params
[3] = (GLint
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][3];
2973 case GL_CURRENT_RASTER_POSITION_VALID
:
2974 *params
= (GLint
) ctx
->Current
.RasterPosValid
;
2976 case GL_CURRENT_TEXTURE_COORDS
:
2977 params
[0] = (GLint
) ctx
->Current
.Texcoord
[texTransformUnit
][0];
2978 params
[1] = (GLint
) ctx
->Current
.Texcoord
[texTransformUnit
][1];
2979 params
[2] = (GLint
) ctx
->Current
.Texcoord
[texTransformUnit
][2];
2980 params
[3] = (GLint
) ctx
->Current
.Texcoord
[texTransformUnit
][3];
2983 *params
= (GLint
) ctx
->Pixel
.DepthBias
;
2986 *params
= ctx
->Visual
->DepthBits
;
2988 case GL_DEPTH_CLEAR_VALUE
:
2989 *params
= (GLint
) ctx
->Depth
.Clear
;
2992 *params
= (GLint
) ctx
->Depth
.Func
;
2994 case GL_DEPTH_RANGE
:
2995 params
[0] = (GLint
) ctx
->Viewport
.Near
;
2996 params
[1] = (GLint
) ctx
->Viewport
.Far
;
2998 case GL_DEPTH_SCALE
:
2999 *params
= (GLint
) ctx
->Pixel
.DepthScale
;
3002 *params
= (GLint
) ctx
->Depth
.Test
;
3004 case GL_DEPTH_WRITEMASK
:
3005 *params
= (GLint
) ctx
->Depth
.Mask
;
3008 *params
= (GLint
) ctx
->Color
.DitherFlag
;
3010 case GL_DOUBLEBUFFER
:
3011 *params
= (GLint
) ctx
->Visual
->DBflag
;
3013 case GL_DRAW_BUFFER
:
3014 *params
= (GLint
) ctx
->Color
.DrawBuffer
;
3017 *params
= (GLint
) ctx
->Current
.EdgeFlag
;
3019 case GL_FEEDBACK_BUFFER_SIZE
:
3020 /* TODO: is this right? Or, return number of entries in buffer? */
3021 *params
= ctx
->Feedback
.BufferSize
;
3023 case GL_FEEDBACK_BUFFER_TYPE
:
3024 *params
= ctx
->Feedback
.Type
;
3027 *params
= (GLint
) ctx
->Fog
.Enabled
;
3030 params
[0] = FLOAT_TO_INT( ctx
->Fog
.Color
[0] );
3031 params
[1] = FLOAT_TO_INT( ctx
->Fog
.Color
[1] );
3032 params
[2] = FLOAT_TO_INT( ctx
->Fog
.Color
[2] );
3033 params
[3] = FLOAT_TO_INT( ctx
->Fog
.Color
[3] );
3035 case GL_FOG_DENSITY
:
3036 *params
= (GLint
) ctx
->Fog
.Density
;
3039 *params
= (GLint
) ctx
->Fog
.End
;
3042 *params
= (GLint
) ctx
->Hint
.Fog
;
3045 *params
= (GLint
) ctx
->Fog
.Index
;
3048 *params
= (GLint
) ctx
->Fog
.Mode
;
3051 *params
= (GLint
) ctx
->Fog
.Start
;
3054 *params
= (GLint
) ctx
->Polygon
.FrontFace
;
3057 *params
= (GLint
) ctx
->Pixel
.GreenBias
;
3060 *params
= (GLint
) ctx
->Visual
->GreenBits
;
3062 case GL_GREEN_SCALE
:
3063 *params
= (GLint
) ctx
->Pixel
.GreenScale
;
3066 *params
= (GLint
) ctx
->Visual
->IndexBits
;
3068 case GL_INDEX_CLEAR_VALUE
:
3069 *params
= (GLint
) ctx
->Color
.ClearIndex
;
3072 *params
= ctx
->Visual
->RGBAflag
? 0 : 1;
3074 case GL_INDEX_OFFSET
:
3075 *params
= ctx
->Pixel
.IndexOffset
;
3077 case GL_INDEX_SHIFT
:
3078 *params
= ctx
->Pixel
.IndexShift
;
3080 case GL_INDEX_WRITEMASK
:
3081 *params
= (GLint
) ctx
->Color
.IndexMask
;
3091 *params
= (GLint
) ctx
->Light
.Light
[pname
-GL_LIGHT0
].Enabled
;
3094 *params
= (GLint
) ctx
->Light
.Enabled
;
3096 case GL_LIGHT_MODEL_AMBIENT
:
3097 params
[0] = FLOAT_TO_INT( ctx
->Light
.Model
.Ambient
[0] );
3098 params
[1] = FLOAT_TO_INT( ctx
->Light
.Model
.Ambient
[1] );
3099 params
[2] = FLOAT_TO_INT( ctx
->Light
.Model
.Ambient
[2] );
3100 params
[3] = FLOAT_TO_INT( ctx
->Light
.Model
.Ambient
[3] );
3102 case GL_LIGHT_MODEL_COLOR_CONTROL
:
3103 params
[0] = (GLint
) ctx
->Light
.Model
.ColorControl
;
3105 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
3106 *params
= (GLint
) ctx
->Light
.Model
.LocalViewer
;
3108 case GL_LIGHT_MODEL_TWO_SIDE
:
3109 *params
= (GLint
) ctx
->Light
.Model
.TwoSide
;
3111 case GL_LINE_SMOOTH
:
3112 *params
= (GLint
) ctx
->Line
.SmoothFlag
;
3114 case GL_LINE_SMOOTH_HINT
:
3115 *params
= (GLint
) ctx
->Hint
.LineSmooth
;
3117 case GL_LINE_STIPPLE
:
3118 *params
= (GLint
) ctx
->Line
.StippleFlag
;
3120 case GL_LINE_STIPPLE_PATTERN
:
3121 *params
= (GLint
) ctx
->Line
.StipplePattern
;
3123 case GL_LINE_STIPPLE_REPEAT
:
3124 *params
= (GLint
) ctx
->Line
.StippleFactor
;
3127 *params
= (GLint
) ctx
->Line
.Width
;
3129 case GL_LINE_WIDTH_GRANULARITY
:
3130 *params
= (GLint
) LINE_WIDTH_GRANULARITY
;
3132 case GL_LINE_WIDTH_RANGE
:
3133 params
[0] = (GLint
) MIN_LINE_WIDTH
;
3134 params
[1] = (GLint
) MAX_LINE_WIDTH
;
3137 *params
= (GLint
) ctx
->List
.ListBase
;
3140 *params
= (GLint
) ctx
->CurrentListNum
;
3143 *params
= ctx
->ExecuteFlag
? (GLint
) GL_COMPILE_AND_EXECUTE
3144 : (GLint
) GL_COMPILE
;
3146 case GL_INDEX_LOGIC_OP
:
3147 *params
= (GLint
) ctx
->Color
.IndexLogicOpEnabled
;
3149 case GL_COLOR_LOGIC_OP
:
3150 *params
= (GLint
) ctx
->Color
.ColorLogicOpEnabled
;
3152 case GL_LOGIC_OP_MODE
:
3153 *params
= (GLint
) ctx
->Color
.LogicOp
;
3155 case GL_MAP1_COLOR_4
:
3156 *params
= (GLint
) ctx
->Eval
.Map1Color4
;
3158 case GL_MAP1_GRID_DOMAIN
:
3159 params
[0] = (GLint
) ctx
->Eval
.MapGrid1u1
;
3160 params
[1] = (GLint
) ctx
->Eval
.MapGrid1u2
;
3162 case GL_MAP1_GRID_SEGMENTS
:
3163 *params
= (GLint
) ctx
->Eval
.MapGrid1un
;
3166 *params
= (GLint
) ctx
->Eval
.Map1Index
;
3168 case GL_MAP1_NORMAL
:
3169 *params
= (GLint
) ctx
->Eval
.Map1Normal
;
3171 case GL_MAP1_TEXTURE_COORD_1
:
3172 *params
= (GLint
) ctx
->Eval
.Map1TextureCoord1
;
3174 case GL_MAP1_TEXTURE_COORD_2
:
3175 *params
= (GLint
) ctx
->Eval
.Map1TextureCoord2
;
3177 case GL_MAP1_TEXTURE_COORD_3
:
3178 *params
= (GLint
) ctx
->Eval
.Map1TextureCoord3
;
3180 case GL_MAP1_TEXTURE_COORD_4
:
3181 *params
= (GLint
) ctx
->Eval
.Map1TextureCoord4
;
3183 case GL_MAP1_VERTEX_3
:
3184 *params
= (GLint
) ctx
->Eval
.Map1Vertex3
;
3186 case GL_MAP1_VERTEX_4
:
3187 *params
= (GLint
) ctx
->Eval
.Map1Vertex4
;
3189 case GL_MAP2_COLOR_4
:
3190 *params
= (GLint
) ctx
->Eval
.Map2Color4
;
3192 case GL_MAP2_GRID_DOMAIN
:
3193 params
[0] = (GLint
) ctx
->Eval
.MapGrid2u1
;
3194 params
[1] = (GLint
) ctx
->Eval
.MapGrid2u2
;
3195 params
[2] = (GLint
) ctx
->Eval
.MapGrid2v1
;
3196 params
[3] = (GLint
) ctx
->Eval
.MapGrid2v2
;
3198 case GL_MAP2_GRID_SEGMENTS
:
3199 params
[0] = (GLint
) ctx
->Eval
.MapGrid2un
;
3200 params
[1] = (GLint
) ctx
->Eval
.MapGrid2vn
;
3203 *params
= (GLint
) ctx
->Eval
.Map2Index
;
3205 case GL_MAP2_NORMAL
:
3206 *params
= (GLint
) ctx
->Eval
.Map2Normal
;
3208 case GL_MAP2_TEXTURE_COORD_1
:
3209 *params
= (GLint
) ctx
->Eval
.Map2TextureCoord1
;
3211 case GL_MAP2_TEXTURE_COORD_2
:
3212 *params
= (GLint
) ctx
->Eval
.Map2TextureCoord2
;
3214 case GL_MAP2_TEXTURE_COORD_3
:
3215 *params
= (GLint
) ctx
->Eval
.Map2TextureCoord3
;
3217 case GL_MAP2_TEXTURE_COORD_4
:
3218 *params
= (GLint
) ctx
->Eval
.Map2TextureCoord4
;
3220 case GL_MAP2_VERTEX_3
:
3221 *params
= (GLint
) ctx
->Eval
.Map2Vertex3
;
3223 case GL_MAP2_VERTEX_4
:
3224 *params
= (GLint
) ctx
->Eval
.Map2Vertex4
;
3227 *params
= (GLint
) ctx
->Pixel
.MapColorFlag
;
3229 case GL_MAP_STENCIL
:
3230 *params
= (GLint
) ctx
->Pixel
.MapStencilFlag
;
3232 case GL_MATRIX_MODE
:
3233 *params
= (GLint
) ctx
->Transform
.MatrixMode
;
3235 case GL_MAX_ATTRIB_STACK_DEPTH
:
3236 *params
= (GLint
) MAX_ATTRIB_STACK_DEPTH
;
3238 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
3239 *params
= (GLint
) MAX_CLIENT_ATTRIB_STACK_DEPTH
;
3241 case GL_MAX_CLIP_PLANES
:
3242 *params
= (GLint
) MAX_CLIP_PLANES
;
3244 case GL_MAX_ELEMENTS_VERTICES
: /* GL_VERSION_1_2 */
3247 case GL_MAX_ELEMENTS_INDICES
: /* GL_VERSION_1_2 */
3250 case GL_MAX_EVAL_ORDER
:
3251 *params
= (GLint
) MAX_EVAL_ORDER
;
3254 *params
= (GLint
) MAX_LIGHTS
;
3256 case GL_MAX_LIST_NESTING
:
3257 *params
= (GLint
) MAX_LIST_NESTING
;
3259 case GL_MAX_MODELVIEW_STACK_DEPTH
:
3260 *params
= (GLint
) MAX_MODELVIEW_STACK_DEPTH
;
3262 case GL_MAX_NAME_STACK_DEPTH
:
3263 *params
= (GLint
) MAX_NAME_STACK_DEPTH
;
3265 case GL_MAX_PIXEL_MAP_TABLE
:
3266 *params
= (GLint
) MAX_PIXEL_MAP_TABLE
;
3268 case GL_MAX_PROJECTION_STACK_DEPTH
:
3269 *params
= (GLint
) MAX_PROJECTION_STACK_DEPTH
;
3271 case GL_MAX_TEXTURE_SIZE
:
3272 case GL_MAX_3D_TEXTURE_SIZE
:
3273 *params
= ctx
->Const
.MaxTextureSize
;
3275 case GL_MAX_TEXTURE_STACK_DEPTH
:
3276 *params
= (GLint
) MAX_TEXTURE_STACK_DEPTH
;
3278 case GL_MAX_VIEWPORT_DIMS
:
3279 params
[0] = (GLint
) MAX_WIDTH
;
3280 params
[1] = (GLint
) MAX_HEIGHT
;
3282 case GL_MODELVIEW_MATRIX
:
3283 for (i
=0;i
<16;i
++) {
3284 params
[i
] = (GLint
) ctx
->ModelView
.m
[i
];
3287 case GL_MODELVIEW_STACK_DEPTH
:
3288 *params
= (GLint
) (ctx
->ModelViewStackDepth
+ 1);
3290 case GL_NAME_STACK_DEPTH
:
3291 *params
= (GLint
) ctx
->Select
.NameStackDepth
;
3294 *params
= (GLint
) ctx
->Transform
.Normalize
;
3296 case GL_PACK_ALIGNMENT
:
3297 *params
= ctx
->Pack
.Alignment
;
3299 case GL_PACK_LSB_FIRST
:
3300 *params
= (GLint
) ctx
->Pack
.LsbFirst
;
3302 case GL_PACK_ROW_LENGTH
:
3303 *params
= ctx
->Pack
.RowLength
;
3305 case GL_PACK_SKIP_PIXELS
:
3306 *params
= ctx
->Pack
.SkipPixels
;
3308 case GL_PACK_SKIP_ROWS
:
3309 *params
= ctx
->Pack
.SkipRows
;
3311 case GL_PACK_SWAP_BYTES
:
3312 *params
= (GLint
) ctx
->Pack
.SwapBytes
;
3314 case GL_PACK_SKIP_IMAGES_EXT
:
3315 *params
= ctx
->Pack
.SkipImages
;
3317 case GL_PACK_IMAGE_HEIGHT_EXT
:
3318 *params
= ctx
->Pack
.ImageHeight
;
3320 case GL_PERSPECTIVE_CORRECTION_HINT
:
3321 *params
= (GLint
) ctx
->Hint
.PerspectiveCorrection
;
3323 case GL_PIXEL_MAP_A_TO_A_SIZE
:
3324 *params
= ctx
->Pixel
.MapAtoAsize
;
3326 case GL_PIXEL_MAP_B_TO_B_SIZE
:
3327 *params
= ctx
->Pixel
.MapBtoBsize
;
3329 case GL_PIXEL_MAP_G_TO_G_SIZE
:
3330 *params
= ctx
->Pixel
.MapGtoGsize
;
3332 case GL_PIXEL_MAP_I_TO_A_SIZE
:
3333 *params
= ctx
->Pixel
.MapItoAsize
;
3335 case GL_PIXEL_MAP_I_TO_B_SIZE
:
3336 *params
= ctx
->Pixel
.MapItoBsize
;
3338 case GL_PIXEL_MAP_I_TO_G_SIZE
:
3339 *params
= ctx
->Pixel
.MapItoGsize
;
3341 case GL_PIXEL_MAP_I_TO_I_SIZE
:
3342 *params
= ctx
->Pixel
.MapItoIsize
;
3344 case GL_PIXEL_MAP_I_TO_R_SIZE
:
3345 *params
= ctx
->Pixel
.MapItoRsize
;
3347 case GL_PIXEL_MAP_R_TO_R_SIZE
:
3348 *params
= ctx
->Pixel
.MapRtoRsize
;
3350 case GL_PIXEL_MAP_S_TO_S_SIZE
:
3351 *params
= ctx
->Pixel
.MapStoSsize
;
3354 *params
= (GLint
) ctx
->Point
.Size
;
3356 case GL_POINT_SIZE_GRANULARITY
:
3357 *params
= (GLint
) POINT_SIZE_GRANULARITY
;
3359 case GL_POINT_SIZE_RANGE
:
3360 params
[0] = (GLint
) MIN_POINT_SIZE
;
3361 params
[1] = (GLint
) MAX_POINT_SIZE
;
3363 case GL_POINT_SMOOTH
:
3364 *params
= (GLint
) ctx
->Point
.SmoothFlag
;
3366 case GL_POINT_SMOOTH_HINT
:
3367 *params
= (GLint
) ctx
->Hint
.PointSmooth
;
3369 case GL_POINT_SIZE_MIN_EXT
:
3370 *params
= (GLint
) (ctx
->Point
.MinSize
);
3372 case GL_POINT_SIZE_MAX_EXT
:
3373 *params
= (GLint
) (ctx
->Point
.MaxSize
);
3375 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
3376 *params
= (GLint
) (ctx
->Point
.Threshold
);
3378 case GL_DISTANCE_ATTENUATION_EXT
:
3379 params
[0] = (GLint
) (ctx
->Point
.Params
[0]);
3380 params
[1] = (GLint
) (ctx
->Point
.Params
[1]);
3381 params
[2] = (GLint
) (ctx
->Point
.Params
[2]);
3383 case GL_POLYGON_MODE
:
3384 params
[0] = (GLint
) ctx
->Polygon
.FrontMode
;
3385 params
[1] = (GLint
) ctx
->Polygon
.BackMode
;
3387 #ifdef GL_EXT_polygon_offset
3388 case GL_POLYGON_OFFSET_BIAS_EXT
:
3389 *params
= (GLint
) ctx
->Polygon
.OffsetUnits
;
3392 case GL_POLYGON_OFFSET_FACTOR
:
3393 *params
= (GLint
) ctx
->Polygon
.OffsetFactor
;
3395 case GL_POLYGON_OFFSET_UNITS
:
3396 *params
= (GLint
) ctx
->Polygon
.OffsetUnits
;
3398 case GL_POLYGON_SMOOTH
:
3399 *params
= (GLint
) ctx
->Polygon
.SmoothFlag
;
3401 case GL_POLYGON_SMOOTH_HINT
:
3402 *params
= (GLint
) ctx
->Hint
.PolygonSmooth
;
3404 case GL_POLYGON_STIPPLE
:
3405 *params
= (GLint
) ctx
->Polygon
.StippleFlag
;
3407 case GL_PROJECTION_MATRIX
:
3408 for (i
=0;i
<16;i
++) {
3409 params
[i
] = (GLint
) ctx
->ProjectionMatrix
.m
[i
];
3412 case GL_PROJECTION_STACK_DEPTH
:
3413 *params
= (GLint
) (ctx
->ProjectionStackDepth
+ 1);
3415 case GL_READ_BUFFER
:
3416 *params
= (GLint
) ctx
->Pixel
.ReadBuffer
;
3419 *params
= (GLint
) ctx
->Pixel
.RedBias
;
3422 *params
= (GLint
) ctx
->Visual
->RedBits
;
3425 *params
= (GLint
) ctx
->Pixel
.RedScale
;
3427 case GL_RENDER_MODE
:
3428 *params
= (GLint
) ctx
->RenderMode
;
3431 *params
= (GLint
) ctx
->Visual
->RGBAflag
;
3433 case GL_SCISSOR_BOX
:
3434 params
[0] = (GLint
) ctx
->Scissor
.X
;
3435 params
[1] = (GLint
) ctx
->Scissor
.Y
;
3436 params
[2] = (GLint
) ctx
->Scissor
.Width
;
3437 params
[3] = (GLint
) ctx
->Scissor
.Height
;
3439 case GL_SCISSOR_TEST
:
3440 *params
= (GLint
) ctx
->Scissor
.Enabled
;
3442 case GL_SELECTION_BUFFER_SIZE
:
3443 *params
= (GLint
) ctx
->Select
.BufferSize
;
3445 case GL_SHADE_MODEL
:
3446 *params
= (GLint
) ctx
->Light
.ShadeModel
;
3448 case GL_SHARED_TEXTURE_PALETTE_EXT
:
3449 *params
= (GLint
) ctx
->Texture
.SharedPalette
;
3451 case GL_STENCIL_BITS
:
3452 *params
= ctx
->Visual
->StencilBits
;
3454 case GL_STENCIL_CLEAR_VALUE
:
3455 *params
= (GLint
) ctx
->Stencil
.Clear
;
3457 case GL_STENCIL_FAIL
:
3458 *params
= (GLint
) ctx
->Stencil
.FailFunc
;
3460 case GL_STENCIL_FUNC
:
3461 *params
= (GLint
) ctx
->Stencil
.Function
;
3463 case GL_STENCIL_PASS_DEPTH_FAIL
:
3464 *params
= (GLint
) ctx
->Stencil
.ZFailFunc
;
3466 case GL_STENCIL_PASS_DEPTH_PASS
:
3467 *params
= (GLint
) ctx
->Stencil
.ZPassFunc
;
3469 case GL_STENCIL_REF
:
3470 *params
= (GLint
) ctx
->Stencil
.Ref
;
3472 case GL_STENCIL_TEST
:
3473 *params
= (GLint
) ctx
->Stencil
.Enabled
;
3475 case GL_STENCIL_VALUE_MASK
:
3476 *params
= (GLint
) ctx
->Stencil
.ValueMask
;
3478 case GL_STENCIL_WRITEMASK
:
3479 *params
= (GLint
) ctx
->Stencil
.WriteMask
;
3482 *params
= (GLint
) ctx
->Visual
->StereoFlag
;
3484 case GL_SUBPIXEL_BITS
:
3485 *params
= 0; /* TODO */
3488 *params
= _mesa_IsEnabled(GL_TEXTURE_1D
) ? 1 : 0;
3491 *params
= _mesa_IsEnabled(GL_TEXTURE_2D
) ? 1 : 0;
3494 *params
= _mesa_IsEnabled(GL_TEXTURE_3D
) ? 1 : 0;
3496 case GL_TEXTURE_BINDING_1D
:
3497 *params
= textureUnit
->CurrentD
[1]->Name
;
3499 case GL_TEXTURE_BINDING_2D
:
3500 *params
= textureUnit
->CurrentD
[2]->Name
;
3502 case GL_TEXTURE_BINDING_3D
:
3503 *params
= textureUnit
->CurrentD
[3]->Name
;
3505 case GL_TEXTURE_ENV_COLOR
:
3506 params
[0] = FLOAT_TO_INT( textureUnit
->EnvColor
[0] );
3507 params
[1] = FLOAT_TO_INT( textureUnit
->EnvColor
[1] );
3508 params
[2] = FLOAT_TO_INT( textureUnit
->EnvColor
[2] );
3509 params
[3] = FLOAT_TO_INT( textureUnit
->EnvColor
[3] );
3511 case GL_TEXTURE_ENV_MODE
:
3512 *params
= (GLint
) textureUnit
->EnvMode
;
3514 case GL_TEXTURE_GEN_S
:
3515 *params
= (textureUnit
->TexGenEnabled
& S_BIT
) ? 1 : 0;
3517 case GL_TEXTURE_GEN_T
:
3518 *params
= (textureUnit
->TexGenEnabled
& T_BIT
) ? 1 : 0;
3520 case GL_TEXTURE_GEN_R
:
3521 *params
= (textureUnit
->TexGenEnabled
& R_BIT
) ? 1 : 0;
3523 case GL_TEXTURE_GEN_Q
:
3524 *params
= (textureUnit
->TexGenEnabled
& Q_BIT
) ? 1 : 0;
3526 case GL_TEXTURE_MATRIX
:
3527 for (i
=0;i
<16;i
++) {
3528 params
[i
] = (GLint
) ctx
->TextureMatrix
[texTransformUnit
].m
[i
];
3531 case GL_TEXTURE_STACK_DEPTH
:
3532 *params
= (GLint
) (ctx
->TextureStackDepth
[texTransformUnit
] + 1);
3534 case GL_UNPACK_ALIGNMENT
:
3535 *params
= ctx
->Unpack
.Alignment
;
3537 case GL_UNPACK_LSB_FIRST
:
3538 *params
= (GLint
) ctx
->Unpack
.LsbFirst
;
3540 case GL_UNPACK_ROW_LENGTH
:
3541 *params
= ctx
->Unpack
.RowLength
;
3543 case GL_UNPACK_SKIP_PIXELS
:
3544 *params
= ctx
->Unpack
.SkipPixels
;
3546 case GL_UNPACK_SKIP_ROWS
:
3547 *params
= ctx
->Unpack
.SkipRows
;
3549 case GL_UNPACK_SWAP_BYTES
:
3550 *params
= (GLint
) ctx
->Unpack
.SwapBytes
;
3552 case GL_UNPACK_SKIP_IMAGES_EXT
:
3553 *params
= ctx
->Unpack
.SkipImages
;
3555 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
3556 *params
= ctx
->Unpack
.ImageHeight
;
3559 params
[0] = (GLint
) ctx
->Viewport
.X
;
3560 params
[1] = (GLint
) ctx
->Viewport
.Y
;
3561 params
[2] = (GLint
) ctx
->Viewport
.Width
;
3562 params
[3] = (GLint
) ctx
->Viewport
.Height
;
3565 *params
= (GLint
) ctx
->Pixel
.ZoomX
;
3568 *params
= (GLint
) ctx
->Pixel
.ZoomY
;
3570 case GL_VERTEX_ARRAY
:
3571 *params
= (GLint
) ctx
->Array
.Vertex
.Enabled
;
3573 case GL_VERTEX_ARRAY_SIZE
:
3574 *params
= ctx
->Array
.Vertex
.Size
;
3576 case GL_VERTEX_ARRAY_TYPE
:
3577 *params
= ctx
->Array
.Vertex
.Type
;
3579 case GL_VERTEX_ARRAY_STRIDE
:
3580 *params
= ctx
->Array
.Vertex
.Stride
;
3582 case GL_VERTEX_ARRAY_COUNT_EXT
:
3585 case GL_NORMAL_ARRAY
:
3586 *params
= (GLint
) ctx
->Array
.Normal
.Enabled
;
3588 case GL_NORMAL_ARRAY_TYPE
:
3589 *params
= ctx
->Array
.Normal
.Type
;
3591 case GL_NORMAL_ARRAY_STRIDE
:
3592 *params
= ctx
->Array
.Normal
.Stride
;
3594 case GL_NORMAL_ARRAY_COUNT_EXT
:
3597 case GL_COLOR_ARRAY
:
3598 *params
= (GLint
) ctx
->Array
.Color
.Enabled
;
3600 case GL_COLOR_ARRAY_SIZE
:
3601 *params
= ctx
->Array
.Color
.Size
;
3603 case GL_COLOR_ARRAY_TYPE
:
3604 *params
= ctx
->Array
.Color
.Type
;
3606 case GL_COLOR_ARRAY_STRIDE
:
3607 *params
= ctx
->Array
.Color
.Stride
;
3609 case GL_COLOR_ARRAY_COUNT_EXT
:
3612 case GL_INDEX_ARRAY
:
3613 *params
= (GLint
) ctx
->Array
.Index
.Enabled
;
3615 case GL_INDEX_ARRAY_TYPE
:
3616 *params
= ctx
->Array
.Index
.Type
;
3618 case GL_INDEX_ARRAY_STRIDE
:
3619 *params
= ctx
->Array
.Index
.Stride
;
3621 case GL_INDEX_ARRAY_COUNT_EXT
:
3624 case GL_TEXTURE_COORD_ARRAY
:
3625 *params
= (GLint
) ctx
->Array
.TexCoord
[texUnit
].Enabled
;
3627 case GL_TEXTURE_COORD_ARRAY_SIZE
:
3628 *params
= ctx
->Array
.TexCoord
[texUnit
].Size
;
3630 case GL_TEXTURE_COORD_ARRAY_TYPE
:
3631 *params
= ctx
->Array
.TexCoord
[texUnit
].Type
;
3633 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
3634 *params
= ctx
->Array
.TexCoord
[texUnit
].Stride
;
3636 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
3639 case GL_EDGE_FLAG_ARRAY
:
3640 *params
= (GLint
) ctx
->Array
.EdgeFlag
.Enabled
;
3642 case GL_EDGE_FLAG_ARRAY_STRIDE
:
3643 *params
= ctx
->Array
.EdgeFlag
.Stride
;
3645 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
3649 case GL_MAX_TEXTURE_UNITS_ARB
:
3650 *params
= ctx
->Const
.MaxTextureUnits
;
3652 case GL_ACTIVE_TEXTURE_ARB
:
3653 *params
= GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
3655 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
3656 *params
= GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
3660 /* GL_PGI_misc_hints */
3661 case GL_STRICT_DEPTHFUNC_HINT_PGI
:
3662 *params
= (GL_NICEST
);
3664 case GL_STRICT_LIGHTING_HINT_PGI
:
3665 *params
= (ctx
->Hint
.StrictLighting
);
3667 case GL_STRICT_SCISSOR_HINT_PGI
:
3668 case GL_FULL_STIPPLE_HINT_PGI
:
3669 *params
= (GL_TRUE
);
3671 case GL_CONSERVE_MEMORY_HINT_PGI
:
3672 *params
= (GL_FALSE
);
3674 case GL_ALWAYS_FAST_HINT_PGI
:
3675 *params
= (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
3676 ctx
->Hint
.AllowDrawSpn
== GL_FALSE
&&
3677 ctx
->Hint
.AllowDrawMem
== GL_FALSE
);
3679 case GL_ALWAYS_SOFT_HINT_PGI
:
3680 *params
= (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
3681 ctx
->Hint
.AllowDrawSpn
== GL_TRUE
&&
3682 ctx
->Hint
.AllowDrawMem
== GL_TRUE
);
3684 case GL_ALLOW_DRAW_OBJ_HINT_PGI
:
3687 case GL_ALLOW_DRAW_WIN_HINT_PGI
:
3688 *params
= ctx
->Hint
.AllowDrawWin
;
3690 case GL_ALLOW_DRAW_SPN_HINT_PGI
:
3691 *params
= ctx
->Hint
.AllowDrawSpn
;
3693 case GL_ALLOW_DRAW_MEM_HINT_PGI
:
3694 *params
= ctx
->Hint
.AllowDrawMem
;
3696 case GL_CLIP_NEAR_HINT_PGI
:
3697 case GL_CLIP_FAR_HINT_PGI
:
3700 case GL_WIDE_LINE_HINT_PGI
:
3701 *params
= GL_DONT_CARE
;
3703 case GL_BACK_NORMALS_HINT_PGI
:
3704 *params
= (GL_TRUE
);
3706 case GL_NATIVE_GRAPHICS_HANDLE_PGI
:
3710 /* GL_EXT_compiled_vertex_array
3712 case GL_ARRAY_ELEMENT_LOCK_FIRST_SGI
:
3713 *params
= ctx
->Array
.LockFirst
;
3716 case GL_ARRAY_ELEMENT_LOCK_COUNT_SGI
:
3717 *params
= ctx
->Array
.LockCount
;
3721 printf("invalid enum: %x\n", pname
);
3722 gl_error( ctx
, GL_INVALID_ENUM
, "glGetIntegerv" );
3729 _mesa_GetPointerv( GLenum pname
, GLvoid
**params
)
3731 GET_CURRENT_CONTEXT(ctx
);
3732 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3733 /*GLuint texTransformUnit = ctx->Texture.CurrentTransformUnit;*/
3735 if (MESA_VERBOSE
& VERBOSE_API
)
3736 fprintf(stderr
, "glGetPointerv %s\n", gl_lookup_enum_by_nr(pname
));
3739 case GL_VERTEX_ARRAY_POINTER
:
3740 *params
= ctx
->Array
.Vertex
.Ptr
;
3742 case GL_NORMAL_ARRAY_POINTER
:
3743 *params
= ctx
->Array
.Normal
.Ptr
;
3745 case GL_COLOR_ARRAY_POINTER
:
3746 *params
= ctx
->Array
.Color
.Ptr
;
3748 case GL_INDEX_ARRAY_POINTER
:
3749 *params
= ctx
->Array
.Index
.Ptr
;
3751 case GL_TEXTURE_COORD_ARRAY_POINTER
:
3752 *params
= ctx
->Array
.TexCoord
[texUnit
].Ptr
;
3754 case GL_EDGE_FLAG_ARRAY_POINTER
:
3755 *params
= ctx
->Array
.EdgeFlag
.Ptr
;
3757 case GL_FEEDBACK_BUFFER_POINTER
:
3758 *params
= ctx
->Feedback
.Buffer
;
3760 case GL_SELECTION_BUFFER_POINTER
:
3761 *params
= ctx
->Select
.Buffer
;
3764 gl_error( ctx
, GL_INVALID_ENUM
, "glGetPointerv" );
3772 _mesa_GetString( GLenum name
)
3774 GET_CURRENT_CONTEXT(ctx
);
3775 static char result
[1000];
3776 static char *vendor
= "Brian Paul";
3777 static char *version
= "1.2 Mesa 3.3 beta";
3779 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx
, "glGetString", 0);
3781 /* First see if device driver can satisfy this call */
3786 if (ctx
->Driver
.GetString
) {
3787 const GLubyte
*str
= (*ctx
->Driver
.GetString
)(ctx
, name
);
3792 /* Extensions always handled by extensions.c */
3794 return (GLubyte
*) gl_extensions_get_string( ctx
);
3796 gl_error( ctx
, GL_INVALID_ENUM
, "glGetString" );
3797 return (GLubyte
*) 0;
3800 /* If we get here, device driver didn't return a string */
3803 return (GLubyte
*) vendor
;
3805 strcpy(result
, "Mesa");
3806 if (ctx
->Driver
.RendererString
) {
3807 strcat(result
, " ");
3808 strcat(result
, (*ctx
->Driver
.RendererString
)());
3810 return (GLubyte
*) result
;
3812 return (GLubyte
*) version
;
3821 * Execute a glGetError command
3824 _mesa_GetError( void )
3826 GET_CURRENT_CONTEXT(ctx
);
3828 GLenum e
= ctx
->ErrorValue
;
3830 ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL( ctx
, "glGetError", (GLenum
) 0);
3832 if (MESA_VERBOSE
& VERBOSE_API
)
3833 fprintf(stderr
, "glGetError <-- %s\n", gl_lookup_enum_by_nr(e
));
3835 ctx
->ErrorValue
= (GLenum
) GL_NO_ERROR
;