1 /* $Id: get.c,v 1.25 2000/05/07 23:18:54 brianp Exp $ */
4 * Mesa 3-D graphics library
7 * Copyright (C) 1999-2000 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"
46 #define FLOAT_TO_BOOL(X) ( (X)==0.0F ? GL_FALSE : GL_TRUE )
47 #define INT_TO_BOOL(I) ( (I)==0 ? GL_FALSE : GL_TRUE )
48 #define ENUM_TO_BOOL(E) ( (E)==0 ? GL_FALSE : GL_TRUE )
51 /* Needed for an Amiga compiler */
52 #define ENUM_TO_FLOAT(X) ((GLfloat)(GLint)(X))
53 #define ENUM_TO_DOUBLE(X) ((GLdouble)(GLint)(X))
55 /* all other compilers */
56 #define ENUM_TO_FLOAT(X) ((GLfloat)(X))
57 #define ENUM_TO_DOUBLE(X) ((GLdouble)(X))
62 pixel_texgen_mode(const GLcontext
*ctx
)
64 if (ctx
->Pixel
.FragmentRgbSource
== GL_CURRENT_RASTER_POSITION
) {
65 if (ctx
->Pixel
.FragmentAlphaSource
== GL_CURRENT_RASTER_POSITION
) {
73 if (ctx
->Pixel
.FragmentAlphaSource
== GL_CURRENT_RASTER_POSITION
) {
85 _mesa_GetBooleanv( GLenum pname
, GLboolean
*params
)
87 GET_CURRENT_CONTEXT(ctx
);
89 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
90 GLuint texTransformUnit
= ctx
->Texture
.CurrentTransformUnit
;
91 const struct gl_texture_unit
*textureUnit
= &ctx
->Texture
.Unit
[texUnit
];
93 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx
, "glGetBooleanv");
95 if (MESA_VERBOSE
& VERBOSE_API
)
96 fprintf(stderr
, "glGetBooleanv %s\n", gl_lookup_enum_by_nr(pname
));
99 case GL_ACCUM_RED_BITS
:
100 *params
= INT_TO_BOOL(ctx
->Visual
->AccumRedBits
);
102 case GL_ACCUM_GREEN_BITS
:
103 *params
= INT_TO_BOOL(ctx
->Visual
->AccumGreenBits
);
105 case GL_ACCUM_BLUE_BITS
:
106 *params
= INT_TO_BOOL(ctx
->Visual
->AccumBlueBits
);
108 case GL_ACCUM_ALPHA_BITS
:
109 *params
= INT_TO_BOOL(ctx
->Visual
->AccumAlphaBits
);
111 case GL_ACCUM_CLEAR_VALUE
:
112 params
[0] = FLOAT_TO_BOOL(ctx
->Accum
.ClearColor
[0]);
113 params
[1] = FLOAT_TO_BOOL(ctx
->Accum
.ClearColor
[1]);
114 params
[2] = FLOAT_TO_BOOL(ctx
->Accum
.ClearColor
[2]);
115 params
[3] = FLOAT_TO_BOOL(ctx
->Accum
.ClearColor
[3]);
118 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.AlphaBias
);
121 *params
= INT_TO_BOOL(ctx
->Visual
->AlphaBits
);
124 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.AlphaScale
);
127 *params
= ctx
->Color
.AlphaEnabled
;
129 case GL_ALPHA_TEST_FUNC
:
130 *params
= ENUM_TO_BOOL(ctx
->Color
.AlphaFunc
);
132 case GL_ALPHA_TEST_REF
:
133 *params
= FLOAT_TO_BOOL((GLfloat
) ctx
->Color
.AlphaRef
/ 255.0);
135 case GL_ATTRIB_STACK_DEPTH
:
136 *params
= INT_TO_BOOL(ctx
->AttribStackDepth
);
139 *params
= ctx
->Eval
.AutoNormal
;
142 *params
= (ctx
->Const
.NumAuxBuffers
) ? GL_TRUE
: GL_FALSE
;
145 *params
= ctx
->Color
.BlendEnabled
;
148 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendDstRGB
);
151 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendSrcRGB
);
153 case GL_BLEND_SRC_RGB_EXT
:
154 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendSrcRGB
);
156 case GL_BLEND_DST_RGB_EXT
:
157 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendDstRGB
);
159 case GL_BLEND_SRC_ALPHA_EXT
:
160 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendSrcA
);
162 case GL_BLEND_DST_ALPHA_EXT
:
163 *params
= ENUM_TO_BOOL(ctx
->Color
.BlendDstA
);
165 case GL_BLEND_EQUATION_EXT
:
166 *params
= ENUM_TO_BOOL( ctx
->Color
.BlendEquation
);
168 case GL_BLEND_COLOR_EXT
:
169 params
[0] = FLOAT_TO_BOOL( ctx
->Color
.BlendColor
[0] );
170 params
[1] = FLOAT_TO_BOOL( ctx
->Color
.BlendColor
[1] );
171 params
[2] = FLOAT_TO_BOOL( ctx
->Color
.BlendColor
[2] );
172 params
[3] = FLOAT_TO_BOOL( ctx
->Color
.BlendColor
[3] );
175 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.BlueBias
);
178 *params
= INT_TO_BOOL( ctx
->Visual
->BlueBits
);
181 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.BlueScale
);
183 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
184 *params
= INT_TO_BOOL(ctx
->ClientAttribStackDepth
);
192 *params
= ctx
->Transform
.ClipEnabled
[pname
-GL_CLIP_PLANE0
];
194 case GL_COLOR_CLEAR_VALUE
:
195 params
[0] = FLOAT_TO_BOOL(ctx
->Color
.ClearColor
[0]);
196 params
[1] = FLOAT_TO_BOOL(ctx
->Color
.ClearColor
[1]);
197 params
[2] = FLOAT_TO_BOOL(ctx
->Color
.ClearColor
[2]);
198 params
[3] = FLOAT_TO_BOOL(ctx
->Color
.ClearColor
[3]);
200 case GL_COLOR_MATERIAL
:
201 *params
= ctx
->Light
.ColorMaterialEnabled
;
203 case GL_COLOR_MATERIAL_FACE
:
204 *params
= ENUM_TO_BOOL(ctx
->Light
.ColorMaterialFace
);
206 case GL_COLOR_MATERIAL_PARAMETER
:
207 *params
= ENUM_TO_BOOL(ctx
->Light
.ColorMaterialMode
);
209 case GL_COLOR_WRITEMASK
:
210 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? GL_TRUE
: GL_FALSE
;
211 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? GL_TRUE
: GL_FALSE
;
212 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? GL_TRUE
: GL_FALSE
;
213 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? GL_TRUE
: GL_FALSE
;
216 *params
= ctx
->Polygon
.CullFlag
;
218 case GL_CULL_FACE_MODE
:
219 *params
= ENUM_TO_BOOL(ctx
->Polygon
.CullFaceMode
);
221 case GL_CURRENT_COLOR
:
222 params
[0] = INT_TO_BOOL(ctx
->Current
.ByteColor
[0]);
223 params
[1] = INT_TO_BOOL(ctx
->Current
.ByteColor
[1]);
224 params
[2] = INT_TO_BOOL(ctx
->Current
.ByteColor
[2]);
225 params
[3] = INT_TO_BOOL(ctx
->Current
.ByteColor
[3]);
227 case GL_CURRENT_INDEX
:
228 *params
= INT_TO_BOOL(ctx
->Current
.Index
);
230 case GL_CURRENT_NORMAL
:
231 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.Normal
[0]);
232 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.Normal
[1]);
233 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.Normal
[2]);
235 case GL_CURRENT_RASTER_COLOR
:
236 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.RasterColor
[0]);
237 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.RasterColor
[1]);
238 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.RasterColor
[2]);
239 params
[3] = FLOAT_TO_BOOL(ctx
->Current
.RasterColor
[3]);
241 case GL_CURRENT_RASTER_DISTANCE
:
242 *params
= FLOAT_TO_BOOL(ctx
->Current
.RasterDistance
);
244 case GL_CURRENT_RASTER_INDEX
:
245 *params
= FLOAT_TO_BOOL(ctx
->Current
.RasterIndex
);
247 case GL_CURRENT_RASTER_POSITION
:
248 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.RasterPos
[0]);
249 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.RasterPos
[1]);
250 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.RasterPos
[2]);
251 params
[3] = FLOAT_TO_BOOL(ctx
->Current
.RasterPos
[3]);
253 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
254 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][0]);
255 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][1]);
256 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][2]);
257 params
[3] = FLOAT_TO_BOOL(ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][3]);
259 case GL_CURRENT_RASTER_POSITION_VALID
:
260 *params
= ctx
->Current
.RasterPosValid
;
262 case GL_CURRENT_TEXTURE_COORDS
:
263 params
[0] = FLOAT_TO_BOOL(ctx
->Current
.Texcoord
[texTransformUnit
][0]);
264 params
[1] = FLOAT_TO_BOOL(ctx
->Current
.Texcoord
[texTransformUnit
][1]);
265 params
[2] = FLOAT_TO_BOOL(ctx
->Current
.Texcoord
[texTransformUnit
][2]);
266 params
[3] = FLOAT_TO_BOOL(ctx
->Current
.Texcoord
[texTransformUnit
][3]);
269 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.DepthBias
);
272 *params
= INT_TO_BOOL(ctx
->Visual
->DepthBits
);
274 case GL_DEPTH_CLEAR_VALUE
:
275 *params
= FLOAT_TO_BOOL(ctx
->Depth
.Clear
);
278 *params
= ENUM_TO_BOOL(ctx
->Depth
.Func
);
281 params
[0] = FLOAT_TO_BOOL(ctx
->Viewport
.Near
);
282 params
[1] = FLOAT_TO_BOOL(ctx
->Viewport
.Far
);
285 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.DepthScale
);
288 *params
= ctx
->Depth
.Test
;
290 case GL_DEPTH_WRITEMASK
:
291 *params
= ctx
->Depth
.Mask
;
294 *params
= ctx
->Color
.DitherFlag
;
296 case GL_DOUBLEBUFFER
:
297 *params
= ctx
->Visual
->DBflag
;
300 *params
= ENUM_TO_BOOL(ctx
->Color
.DrawBuffer
);
303 *params
= ctx
->Current
.EdgeFlag
;
305 case GL_FEEDBACK_BUFFER_SIZE
:
306 *params
= INT_TO_BOOL(ctx
->Feedback
.BufferSize
);
308 case GL_FEEDBACK_BUFFER_TYPE
:
309 *params
= INT_TO_BOOL(ctx
->Feedback
.Type
);
312 *params
= ctx
->Fog
.Enabled
;
315 params
[0] = FLOAT_TO_BOOL(ctx
->Fog
.Color
[0]);
316 params
[1] = FLOAT_TO_BOOL(ctx
->Fog
.Color
[1]);
317 params
[2] = FLOAT_TO_BOOL(ctx
->Fog
.Color
[2]);
318 params
[3] = FLOAT_TO_BOOL(ctx
->Fog
.Color
[3]);
321 *params
= FLOAT_TO_BOOL(ctx
->Fog
.Density
);
324 *params
= FLOAT_TO_BOOL(ctx
->Fog
.End
);
327 *params
= ENUM_TO_BOOL(ctx
->Hint
.Fog
);
330 *params
= FLOAT_TO_BOOL(ctx
->Fog
.Index
);
333 *params
= ENUM_TO_BOOL(ctx
->Fog
.Mode
);
336 *params
= FLOAT_TO_BOOL(ctx
->Fog
.End
);
339 *params
= ENUM_TO_BOOL(ctx
->Polygon
.FrontFace
);
342 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.GreenBias
);
345 *params
= INT_TO_BOOL( ctx
->Visual
->GreenBits
);
348 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.GreenScale
);
351 *params
= ctx
->Pixel
.HistogramEnabled
;
354 *params
= INT_TO_BOOL( ctx
->Visual
->IndexBits
);
356 case GL_INDEX_CLEAR_VALUE
:
357 *params
= INT_TO_BOOL(ctx
->Color
.ClearIndex
);
360 *params
= ctx
->Visual
->RGBAflag
? GL_FALSE
: GL_TRUE
;
362 case GL_INDEX_OFFSET
:
363 *params
= INT_TO_BOOL(ctx
->Pixel
.IndexOffset
);
366 *params
= INT_TO_BOOL(ctx
->Pixel
.IndexShift
);
368 case GL_INDEX_WRITEMASK
:
369 *params
= INT_TO_BOOL(ctx
->Color
.IndexMask
);
379 *params
= ctx
->Light
.Light
[pname
-GL_LIGHT0
].Enabled
;
382 *params
= ctx
->Light
.Enabled
;
384 case GL_LIGHT_MODEL_AMBIENT
:
385 params
[0] = FLOAT_TO_BOOL(ctx
->Light
.Model
.Ambient
[0]);
386 params
[1] = FLOAT_TO_BOOL(ctx
->Light
.Model
.Ambient
[1]);
387 params
[2] = FLOAT_TO_BOOL(ctx
->Light
.Model
.Ambient
[2]);
388 params
[3] = FLOAT_TO_BOOL(ctx
->Light
.Model
.Ambient
[3]);
390 case GL_LIGHT_MODEL_COLOR_CONTROL
:
391 params
[0] = ENUM_TO_BOOL(ctx
->Light
.Model
.ColorControl
);
393 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
394 *params
= ctx
->Light
.Model
.LocalViewer
;
396 case GL_LIGHT_MODEL_TWO_SIDE
:
397 *params
= ctx
->Light
.Model
.TwoSide
;
400 *params
= ctx
->Line
.SmoothFlag
;
402 case GL_LINE_SMOOTH_HINT
:
403 *params
= ENUM_TO_BOOL(ctx
->Hint
.LineSmooth
);
405 case GL_LINE_STIPPLE
:
406 *params
= ctx
->Line
.StippleFlag
;
408 case GL_LINE_STIPPLE_PATTERN
:
409 *params
= INT_TO_BOOL(ctx
->Line
.StipplePattern
);
411 case GL_LINE_STIPPLE_REPEAT
:
412 *params
= INT_TO_BOOL(ctx
->Line
.StippleFactor
);
415 *params
= FLOAT_TO_BOOL(ctx
->Line
.Width
);
417 case GL_LINE_WIDTH_GRANULARITY
:
418 *params
= FLOAT_TO_BOOL(ctx
->Const
.LineWidthGranularity
);
420 case GL_LINE_WIDTH_RANGE
:
421 params
[0] = FLOAT_TO_BOOL(ctx
->Const
.MinLineWidthAA
);
422 params
[1] = FLOAT_TO_BOOL(ctx
->Const
.MaxLineWidthAA
);
424 case GL_ALIASED_LINE_WIDTH_RANGE
:
425 params
[0] = FLOAT_TO_BOOL(ctx
->Const
.MinLineWidth
);
426 params
[1] = FLOAT_TO_BOOL(ctx
->Const
.MaxLineWidth
);
429 *params
= INT_TO_BOOL(ctx
->List
.ListBase
);
432 *params
= INT_TO_BOOL( ctx
->CurrentListNum
);
435 *params
= ENUM_TO_BOOL( ctx
->ExecuteFlag
436 ? GL_COMPILE_AND_EXECUTE
: GL_COMPILE
);
438 case GL_INDEX_LOGIC_OP
:
439 *params
= ctx
->Color
.IndexLogicOpEnabled
;
441 case GL_COLOR_LOGIC_OP
:
442 *params
= ctx
->Color
.ColorLogicOpEnabled
;
444 case GL_LOGIC_OP_MODE
:
445 *params
= ENUM_TO_BOOL(ctx
->Color
.LogicOp
);
447 case GL_MAP1_COLOR_4
:
448 *params
= ctx
->Eval
.Map1Color4
;
450 case GL_MAP1_GRID_DOMAIN
:
451 params
[0] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid1u1
);
452 params
[1] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid1u2
);
454 case GL_MAP1_GRID_SEGMENTS
:
455 *params
= INT_TO_BOOL(ctx
->Eval
.MapGrid1un
);
458 *params
= ctx
->Eval
.Map1Index
;
461 *params
= ctx
->Eval
.Map1Normal
;
463 case GL_MAP1_TEXTURE_COORD_1
:
464 *params
= ctx
->Eval
.Map1TextureCoord1
;
466 case GL_MAP1_TEXTURE_COORD_2
:
467 *params
= ctx
->Eval
.Map1TextureCoord2
;
469 case GL_MAP1_TEXTURE_COORD_3
:
470 *params
= ctx
->Eval
.Map1TextureCoord3
;
472 case GL_MAP1_TEXTURE_COORD_4
:
473 *params
= ctx
->Eval
.Map1TextureCoord4
;
475 case GL_MAP1_VERTEX_3
:
476 *params
= ctx
->Eval
.Map1Vertex3
;
478 case GL_MAP1_VERTEX_4
:
479 *params
= ctx
->Eval
.Map1Vertex4
;
481 case GL_MAP2_COLOR_4
:
482 *params
= ctx
->Eval
.Map2Color4
;
484 case GL_MAP2_GRID_DOMAIN
:
485 params
[0] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid2u1
);
486 params
[1] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid2u2
);
487 params
[2] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid2v1
);
488 params
[3] = FLOAT_TO_BOOL(ctx
->Eval
.MapGrid2v2
);
490 case GL_MAP2_GRID_SEGMENTS
:
491 params
[0] = INT_TO_BOOL(ctx
->Eval
.MapGrid2un
);
492 params
[1] = INT_TO_BOOL(ctx
->Eval
.MapGrid2vn
);
495 *params
= ctx
->Eval
.Map2Index
;
498 *params
= ctx
->Eval
.Map2Normal
;
500 case GL_MAP2_TEXTURE_COORD_1
:
501 *params
= ctx
->Eval
.Map2TextureCoord1
;
503 case GL_MAP2_TEXTURE_COORD_2
:
504 *params
= ctx
->Eval
.Map2TextureCoord2
;
506 case GL_MAP2_TEXTURE_COORD_3
:
507 *params
= ctx
->Eval
.Map2TextureCoord3
;
509 case GL_MAP2_TEXTURE_COORD_4
:
510 *params
= ctx
->Eval
.Map2TextureCoord4
;
512 case GL_MAP2_VERTEX_3
:
513 *params
= ctx
->Eval
.Map2Vertex3
;
515 case GL_MAP2_VERTEX_4
:
516 *params
= ctx
->Eval
.Map2Vertex4
;
519 *params
= ctx
->Pixel
.MapColorFlag
;
522 *params
= ctx
->Pixel
.MapStencilFlag
;
525 *params
= ENUM_TO_BOOL( ctx
->Transform
.MatrixMode
);
527 case GL_MAX_ATTRIB_STACK_DEPTH
:
528 *params
= INT_TO_BOOL(MAX_ATTRIB_STACK_DEPTH
);
530 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
531 *params
= INT_TO_BOOL( MAX_CLIENT_ATTRIB_STACK_DEPTH
);
533 case GL_MAX_CLIP_PLANES
:
534 *params
= INT_TO_BOOL(MAX_CLIP_PLANES
);
536 case GL_MAX_ELEMENTS_VERTICES
: /* GL_VERSION_1_2 */
537 *params
= INT_TO_BOOL(VB_MAX
);
539 case GL_MAX_ELEMENTS_INDICES
: /* GL_VERSION_1_2 */
540 *params
= INT_TO_BOOL(VB_MAX
);
542 case GL_MAX_EVAL_ORDER
:
543 *params
= INT_TO_BOOL(MAX_EVAL_ORDER
);
546 *params
= INT_TO_BOOL(MAX_LIGHTS
);
548 case GL_MAX_LIST_NESTING
:
549 *params
= INT_TO_BOOL(MAX_LIST_NESTING
);
551 case GL_MAX_MODELVIEW_STACK_DEPTH
:
552 *params
= INT_TO_BOOL(MAX_MODELVIEW_STACK_DEPTH
);
554 case GL_MAX_NAME_STACK_DEPTH
:
555 *params
= INT_TO_BOOL(MAX_NAME_STACK_DEPTH
);
557 case GL_MAX_PIXEL_MAP_TABLE
:
558 *params
= INT_TO_BOOL(MAX_PIXEL_MAP_TABLE
);
560 case GL_MAX_PROJECTION_STACK_DEPTH
:
561 *params
= INT_TO_BOOL(MAX_PROJECTION_STACK_DEPTH
);
563 case GL_MAX_TEXTURE_SIZE
:
564 case GL_MAX_3D_TEXTURE_SIZE
:
565 *params
= INT_TO_BOOL(ctx
->Const
.MaxTextureSize
);
567 case GL_MAX_TEXTURE_STACK_DEPTH
:
568 *params
= INT_TO_BOOL(MAX_TEXTURE_STACK_DEPTH
);
570 case GL_MAX_VIEWPORT_DIMS
:
571 params
[0] = INT_TO_BOOL(MAX_WIDTH
);
572 params
[1] = INT_TO_BOOL(MAX_HEIGHT
);
575 *params
= ctx
->Pixel
.MinMaxEnabled
;
577 case GL_MODELVIEW_MATRIX
:
579 params
[i
] = FLOAT_TO_BOOL(ctx
->ModelView
.m
[i
]);
582 case GL_MODELVIEW_STACK_DEPTH
:
583 *params
= INT_TO_BOOL(ctx
->ModelViewStackDepth
+ 1);
585 case GL_NAME_STACK_DEPTH
:
586 *params
= INT_TO_BOOL(ctx
->Select
.NameStackDepth
);
589 *params
= ctx
->Transform
.Normalize
;
591 case GL_PACK_ALIGNMENT
:
592 *params
= INT_TO_BOOL(ctx
->Pack
.Alignment
);
594 case GL_PACK_LSB_FIRST
:
595 *params
= ctx
->Pack
.LsbFirst
;
597 case GL_PACK_ROW_LENGTH
:
598 *params
= INT_TO_BOOL(ctx
->Pack
.RowLength
);
600 case GL_PACK_SKIP_PIXELS
:
601 *params
= INT_TO_BOOL(ctx
->Pack
.SkipPixels
);
603 case GL_PACK_SKIP_ROWS
:
604 *params
= INT_TO_BOOL(ctx
->Pack
.SkipRows
);
606 case GL_PACK_SWAP_BYTES
:
607 *params
= ctx
->Pack
.SwapBytes
;
609 case GL_PACK_SKIP_IMAGES_EXT
:
610 *params
= ctx
->Pack
.SkipImages
;
612 case GL_PACK_IMAGE_HEIGHT_EXT
:
613 *params
= ctx
->Pack
.ImageHeight
;
615 case GL_PERSPECTIVE_CORRECTION_HINT
:
616 *params
= ENUM_TO_BOOL(ctx
->Hint
.PerspectiveCorrection
);
618 case GL_PIXEL_MAP_A_TO_A_SIZE
:
619 *params
= INT_TO_BOOL(ctx
->Pixel
.MapAtoAsize
);
621 case GL_PIXEL_MAP_B_TO_B_SIZE
:
622 *params
= INT_TO_BOOL(ctx
->Pixel
.MapBtoBsize
);
624 case GL_PIXEL_MAP_G_TO_G_SIZE
:
625 *params
= INT_TO_BOOL(ctx
->Pixel
.MapGtoGsize
);
627 case GL_PIXEL_MAP_I_TO_A_SIZE
:
628 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoAsize
);
630 case GL_PIXEL_MAP_I_TO_B_SIZE
:
631 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoBsize
);
633 case GL_PIXEL_MAP_I_TO_G_SIZE
:
634 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoGsize
);
636 case GL_PIXEL_MAP_I_TO_I_SIZE
:
637 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoIsize
);
639 case GL_PIXEL_MAP_I_TO_R_SIZE
:
640 *params
= INT_TO_BOOL(ctx
->Pixel
.MapItoRsize
);
642 case GL_PIXEL_MAP_R_TO_R_SIZE
:
643 *params
= INT_TO_BOOL(ctx
->Pixel
.MapRtoRsize
);
645 case GL_PIXEL_MAP_S_TO_S_SIZE
:
646 *params
= INT_TO_BOOL(ctx
->Pixel
.MapStoSsize
);
649 *params
= FLOAT_TO_BOOL(ctx
->Point
.UserSize
);
651 case GL_POINT_SIZE_GRANULARITY
:
652 *params
= FLOAT_TO_BOOL(ctx
->Const
.PointSizeGranularity
);
654 case GL_POINT_SIZE_RANGE
:
655 params
[0] = FLOAT_TO_BOOL(ctx
->Const
.MinPointSizeAA
);
656 params
[1] = FLOAT_TO_BOOL(ctx
->Const
.MaxPointSizeAA
);
658 case GL_ALIASED_POINT_SIZE_RANGE
:
659 params
[0] = FLOAT_TO_BOOL(ctx
->Const
.MinPointSize
);
660 params
[1] = FLOAT_TO_BOOL(ctx
->Const
.MaxPointSize
);
662 case GL_POINT_SMOOTH
:
663 *params
= ctx
->Point
.SmoothFlag
;
665 case GL_POINT_SMOOTH_HINT
:
666 *params
= ENUM_TO_BOOL(ctx
->Hint
.PointSmooth
);
668 case GL_POINT_SIZE_MIN_EXT
:
669 *params
= FLOAT_TO_BOOL(ctx
->Point
.MinSize
);
671 case GL_POINT_SIZE_MAX_EXT
:
672 *params
= FLOAT_TO_BOOL(ctx
->Point
.MaxSize
);
674 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
675 *params
= FLOAT_TO_BOOL(ctx
->Point
.Threshold
);
677 case GL_DISTANCE_ATTENUATION_EXT
:
678 params
[0] = FLOAT_TO_BOOL(ctx
->Point
.Params
[0]);
679 params
[1] = FLOAT_TO_BOOL(ctx
->Point
.Params
[1]);
680 params
[2] = FLOAT_TO_BOOL(ctx
->Point
.Params
[2]);
682 case GL_POLYGON_MODE
:
683 params
[0] = ENUM_TO_BOOL(ctx
->Polygon
.FrontMode
);
684 params
[1] = ENUM_TO_BOOL(ctx
->Polygon
.BackMode
);
686 case GL_POLYGON_OFFSET_BIAS_EXT
: /* GL_EXT_polygon_offset */
687 *params
= FLOAT_TO_BOOL( ctx
->Polygon
.OffsetUnits
);
689 case GL_POLYGON_OFFSET_FACTOR
:
690 *params
= FLOAT_TO_BOOL( ctx
->Polygon
.OffsetFactor
);
692 case GL_POLYGON_OFFSET_UNITS
:
693 *params
= FLOAT_TO_BOOL( ctx
->Polygon
.OffsetUnits
);
695 case GL_POLYGON_SMOOTH
:
696 *params
= ctx
->Polygon
.SmoothFlag
;
698 case GL_POLYGON_SMOOTH_HINT
:
699 *params
= ENUM_TO_BOOL(ctx
->Hint
.PolygonSmooth
);
701 case GL_POLYGON_STIPPLE
:
702 *params
= ctx
->Polygon
.StippleFlag
;
704 case GL_PROJECTION_MATRIX
:
706 params
[i
] = FLOAT_TO_BOOL(ctx
->ProjectionMatrix
.m
[i
]);
709 case GL_PROJECTION_STACK_DEPTH
:
710 *params
= INT_TO_BOOL(ctx
->ProjectionStackDepth
+ 1);
713 *params
= ENUM_TO_BOOL(ctx
->Pixel
.ReadBuffer
);
716 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.RedBias
);
719 *params
= INT_TO_BOOL( ctx
->Visual
->RedBits
);
722 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.RedScale
);
725 *params
= ENUM_TO_BOOL(ctx
->RenderMode
);
728 *params
= ctx
->Visual
->RGBAflag
;
731 params
[0] = INT_TO_BOOL(ctx
->Scissor
.X
);
732 params
[1] = INT_TO_BOOL(ctx
->Scissor
.Y
);
733 params
[2] = INT_TO_BOOL(ctx
->Scissor
.Width
);
734 params
[3] = INT_TO_BOOL(ctx
->Scissor
.Height
);
736 case GL_SCISSOR_TEST
:
737 *params
= ctx
->Scissor
.Enabled
;
739 case GL_SELECTION_BUFFER_SIZE
:
740 *params
= INT_TO_BOOL(ctx
->Select
.BufferSize
);
743 *params
= ENUM_TO_BOOL(ctx
->Light
.ShadeModel
);
745 case GL_SHARED_TEXTURE_PALETTE_EXT
:
746 *params
= ctx
->Texture
.SharedPalette
;
748 case GL_STENCIL_BITS
:
749 *params
= INT_TO_BOOL(ctx
->Visual
->StencilBits
);
751 case GL_STENCIL_CLEAR_VALUE
:
752 *params
= INT_TO_BOOL(ctx
->Stencil
.Clear
);
754 case GL_STENCIL_FAIL
:
755 *params
= ENUM_TO_BOOL(ctx
->Stencil
.FailFunc
);
757 case GL_STENCIL_FUNC
:
758 *params
= ENUM_TO_BOOL(ctx
->Stencil
.Function
);
760 case GL_STENCIL_PASS_DEPTH_FAIL
:
761 *params
= ENUM_TO_BOOL(ctx
->Stencil
.ZFailFunc
);
763 case GL_STENCIL_PASS_DEPTH_PASS
:
764 *params
= ENUM_TO_BOOL(ctx
->Stencil
.ZPassFunc
);
767 *params
= INT_TO_BOOL(ctx
->Stencil
.Ref
);
769 case GL_STENCIL_TEST
:
770 *params
= ctx
->Stencil
.Enabled
;
772 case GL_STENCIL_VALUE_MASK
:
773 *params
= INT_TO_BOOL(ctx
->Stencil
.ValueMask
);
775 case GL_STENCIL_WRITEMASK
:
776 *params
= INT_TO_BOOL(ctx
->Stencil
.WriteMask
);
779 *params
= ctx
->Visual
->StereoFlag
;
781 case GL_SUBPIXEL_BITS
:
782 *params
= INT_TO_BOOL(ctx
->Const
.SubPixelBits
);
785 *params
= _mesa_IsEnabled(GL_TEXTURE_1D
);
788 *params
= _mesa_IsEnabled(GL_TEXTURE_2D
);
791 *params
= _mesa_IsEnabled(GL_TEXTURE_3D
);
793 case GL_TEXTURE_BINDING_1D
:
794 *params
= INT_TO_BOOL(textureUnit
->CurrentD
[1]->Name
);
796 case GL_TEXTURE_BINDING_2D
:
797 *params
= INT_TO_BOOL(textureUnit
->CurrentD
[2]->Name
);
799 case GL_TEXTURE_BINDING_3D
:
800 *params
= INT_TO_BOOL(textureUnit
->CurrentD
[3]->Name
);
802 case GL_TEXTURE_ENV_COLOR
:
804 params
[0] = FLOAT_TO_BOOL(textureUnit
->EnvColor
[0]);
805 params
[1] = FLOAT_TO_BOOL(textureUnit
->EnvColor
[1]);
806 params
[2] = FLOAT_TO_BOOL(textureUnit
->EnvColor
[2]);
807 params
[3] = FLOAT_TO_BOOL(textureUnit
->EnvColor
[3]);
810 case GL_TEXTURE_ENV_MODE
:
811 *params
= ENUM_TO_BOOL(textureUnit
->EnvMode
);
813 case GL_TEXTURE_GEN_S
:
814 *params
= (textureUnit
->TexGenEnabled
& S_BIT
) ? GL_TRUE
: GL_FALSE
;
816 case GL_TEXTURE_GEN_T
:
817 *params
= (textureUnit
->TexGenEnabled
& T_BIT
) ? GL_TRUE
: GL_FALSE
;
819 case GL_TEXTURE_GEN_R
:
820 *params
= (textureUnit
->TexGenEnabled
& R_BIT
) ? GL_TRUE
: GL_FALSE
;
822 case GL_TEXTURE_GEN_Q
:
823 *params
= (textureUnit
->TexGenEnabled
& Q_BIT
) ? GL_TRUE
: GL_FALSE
;
825 case GL_TEXTURE_MATRIX
:
828 FLOAT_TO_BOOL(ctx
->TextureMatrix
[texTransformUnit
].m
[i
]);
831 case GL_TEXTURE_STACK_DEPTH
:
832 *params
= INT_TO_BOOL(ctx
->TextureStackDepth
[texTransformUnit
] + 1);
834 case GL_UNPACK_ALIGNMENT
:
835 *params
= INT_TO_BOOL(ctx
->Unpack
.Alignment
);
837 case GL_UNPACK_LSB_FIRST
:
838 *params
= ctx
->Unpack
.LsbFirst
;
840 case GL_UNPACK_ROW_LENGTH
:
841 *params
= INT_TO_BOOL(ctx
->Unpack
.RowLength
);
843 case GL_UNPACK_SKIP_PIXELS
:
844 *params
= INT_TO_BOOL(ctx
->Unpack
.SkipPixels
);
846 case GL_UNPACK_SKIP_ROWS
:
847 *params
= INT_TO_BOOL(ctx
->Unpack
.SkipRows
);
849 case GL_UNPACK_SWAP_BYTES
:
850 *params
= ctx
->Unpack
.SwapBytes
;
852 case GL_UNPACK_SKIP_IMAGES_EXT
:
853 *params
= ctx
->Unpack
.SkipImages
;
855 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
856 *params
= ctx
->Unpack
.ImageHeight
;
859 params
[0] = INT_TO_BOOL(ctx
->Viewport
.X
);
860 params
[1] = INT_TO_BOOL(ctx
->Viewport
.Y
);
861 params
[2] = INT_TO_BOOL(ctx
->Viewport
.Width
);
862 params
[3] = INT_TO_BOOL(ctx
->Viewport
.Height
);
865 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.ZoomX
);
868 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.ZoomY
);
870 case GL_VERTEX_ARRAY
:
871 *params
= ctx
->Array
.Vertex
.Enabled
;
873 case GL_VERTEX_ARRAY_SIZE
:
874 *params
= INT_TO_BOOL(ctx
->Array
.Vertex
.Size
);
876 case GL_VERTEX_ARRAY_TYPE
:
877 *params
= ENUM_TO_BOOL(ctx
->Array
.Vertex
.Type
);
879 case GL_VERTEX_ARRAY_STRIDE
:
880 *params
= INT_TO_BOOL(ctx
->Array
.Vertex
.Stride
);
882 case GL_VERTEX_ARRAY_COUNT_EXT
:
883 *params
= INT_TO_BOOL(0);
885 case GL_NORMAL_ARRAY
:
886 *params
= ctx
->Array
.Normal
.Enabled
;
888 case GL_NORMAL_ARRAY_TYPE
:
889 *params
= ENUM_TO_BOOL(ctx
->Array
.Normal
.Type
);
891 case GL_NORMAL_ARRAY_STRIDE
:
892 *params
= INT_TO_BOOL(ctx
->Array
.Normal
.Stride
);
894 case GL_NORMAL_ARRAY_COUNT_EXT
:
895 *params
= INT_TO_BOOL(0);
898 *params
= ctx
->Array
.Color
.Enabled
;
900 case GL_COLOR_ARRAY_SIZE
:
901 *params
= INT_TO_BOOL(ctx
->Array
.Color
.Size
);
903 case GL_COLOR_ARRAY_TYPE
:
904 *params
= ENUM_TO_BOOL(ctx
->Array
.Color
.Type
);
906 case GL_COLOR_ARRAY_STRIDE
:
907 *params
= INT_TO_BOOL(ctx
->Array
.Color
.Stride
);
909 case GL_COLOR_ARRAY_COUNT_EXT
:
910 *params
= INT_TO_BOOL(0);
913 *params
= ctx
->Array
.Index
.Enabled
;
915 case GL_INDEX_ARRAY_TYPE
:
916 *params
= ENUM_TO_BOOL(ctx
->Array
.Index
.Type
);
918 case GL_INDEX_ARRAY_STRIDE
:
919 *params
= INT_TO_BOOL(ctx
->Array
.Index
.Stride
);
921 case GL_INDEX_ARRAY_COUNT_EXT
:
922 *params
= INT_TO_BOOL(0);
924 case GL_TEXTURE_COORD_ARRAY
:
925 *params
= ctx
->Array
.TexCoord
[texUnit
].Enabled
;
927 case GL_TEXTURE_COORD_ARRAY_SIZE
:
928 *params
= INT_TO_BOOL(ctx
->Array
.TexCoord
[texUnit
].Size
);
930 case GL_TEXTURE_COORD_ARRAY_TYPE
:
931 *params
= ENUM_TO_BOOL(ctx
->Array
.TexCoord
[texUnit
].Type
);
933 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
934 *params
= INT_TO_BOOL(ctx
->Array
.TexCoord
[texUnit
].Stride
);
936 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
937 *params
= INT_TO_BOOL(0);
939 case GL_EDGE_FLAG_ARRAY
:
940 *params
= ctx
->Array
.EdgeFlag
.Enabled
;
942 case GL_EDGE_FLAG_ARRAY_STRIDE
:
943 *params
= INT_TO_BOOL(ctx
->Array
.EdgeFlag
.Stride
);
946 case GL_MAX_TEXTURE_UNITS_ARB
:
947 *params
= ctx
->Const
.MaxTextureUnits
;
949 case GL_ACTIVE_TEXTURE_ARB
:
950 *params
= INT_TO_BOOL(GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
952 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
953 *params
= INT_TO_BOOL(GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
956 /* GL_PGI_misc_hints */
957 case GL_STRICT_DEPTHFUNC_HINT_PGI
:
958 *params
= ENUM_TO_BOOL(GL_NICEST
);
960 case GL_STRICT_LIGHTING_HINT_PGI
:
961 *params
= ENUM_TO_BOOL(ctx
->Hint
.StrictLighting
);
963 case GL_STRICT_SCISSOR_HINT_PGI
:
964 case GL_FULL_STIPPLE_HINT_PGI
:
965 *params
= ENUM_TO_BOOL(GL_TRUE
);
967 case GL_CONSERVE_MEMORY_HINT_PGI
:
968 *params
= ENUM_TO_BOOL(GL_FALSE
);
970 case GL_ALWAYS_FAST_HINT_PGI
:
971 *params
= (GLboolean
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
972 ctx
->Hint
.AllowDrawFrg
== GL_FALSE
&&
973 ctx
->Hint
.AllowDrawMem
== GL_FALSE
);
975 case GL_ALWAYS_SOFT_HINT_PGI
:
976 *params
= (GLboolean
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
977 ctx
->Hint
.AllowDrawFrg
== GL_TRUE
&&
978 ctx
->Hint
.AllowDrawMem
== GL_TRUE
);
980 case GL_ALLOW_DRAW_OBJ_HINT_PGI
:
981 *params
= (GLboolean
) GL_TRUE
;
983 case GL_ALLOW_DRAW_WIN_HINT_PGI
:
984 *params
= (GLboolean
) ctx
->Hint
.AllowDrawWin
;
986 case GL_ALLOW_DRAW_FRG_HINT_PGI
:
987 *params
= (GLboolean
) ctx
->Hint
.AllowDrawFrg
;
989 case GL_ALLOW_DRAW_MEM_HINT_PGI
:
990 *params
= (GLboolean
) ctx
->Hint
.AllowDrawMem
;
992 case GL_CLIP_NEAR_HINT_PGI
:
993 case GL_CLIP_FAR_HINT_PGI
:
994 *params
= ENUM_TO_BOOL(GL_TRUE
);
996 case GL_WIDE_LINE_HINT_PGI
:
997 *params
= ENUM_TO_BOOL(GL_DONT_CARE
);
999 case GL_BACK_NORMALS_HINT_PGI
:
1000 *params
= ENUM_TO_BOOL(GL_TRUE
);
1002 case GL_NATIVE_GRAPHICS_HANDLE_PGI
:
1006 /* GL_EXT_compiled_vertex_array */
1007 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
1008 *params
= ctx
->Array
.LockFirst
? GL_TRUE
: GL_FALSE
;
1010 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
1011 *params
= ctx
->Array
.LockCount
? GL_TRUE
: GL_FALSE
;
1014 /* GL_ARB_transpose_matrix */
1015 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
1016 /* don't have a color matrix */
1018 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
1022 gl_matrix_transposef(tm
, ctx
->ModelView
.m
);
1023 for (i
=0;i
<16;i
++) {
1024 params
[i
] = FLOAT_TO_BOOL(tm
[i
]);
1028 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
1032 gl_matrix_transposef(tm
, ctx
->ProjectionMatrix
.m
);
1033 for (i
=0;i
<16;i
++) {
1034 params
[i
] = FLOAT_TO_BOOL(tm
[i
]);
1038 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
1042 gl_matrix_transposef(tm
, ctx
->TextureMatrix
[texTransformUnit
].m
);
1043 for (i
=0;i
<16;i
++) {
1044 params
[i
] = FLOAT_TO_BOOL(tm
[i
]);
1049 /* GL_HP_occlusion_test */
1050 case GL_OCCLUSION_TEST_HP
:
1051 if (ctx
->Extensions
.HaveHpOcclusionTest
) {
1052 *params
= ctx
->Depth
.OcclusionTest
;
1055 gl_error( ctx
, GL_INVALID_ENUM
, "glGetBooleanv" );
1058 case GL_OCCLUSION_TEST_RESULT_HP
:
1059 if (ctx
->Extensions
.HaveHpOcclusionTest
) {
1060 if (ctx
->Depth
.OcclusionTest
)
1061 *params
= ctx
->OcclusionResult
;
1063 *params
= ctx
->OcclusionResultSaved
;
1064 /* reset flag now */
1065 ctx
->OcclusionResult
= GL_FALSE
;
1066 ctx
->OcclusionResultSaved
= GL_FALSE
;
1069 gl_error( ctx
, GL_INVALID_ENUM
, "glGetBooleanv" );
1073 /* GL_SGIS_pixel_texture */
1074 case GL_PIXEL_TEXTURE_SGIS
:
1075 *params
= ctx
->Pixel
.PixelTextureEnabled
;
1078 /* GL_SGIX_pixel_texture */
1079 case GL_PIXEL_TEX_GEN_SGIX
:
1080 *params
= ctx
->Pixel
.PixelTextureEnabled
;
1082 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
1083 *params
= (GLboolean
) pixel_texgen_mode(ctx
);
1086 /* GL_SGI_color_matrix (also in 1.2 imaging) */
1087 case GL_COLOR_MATRIX_SGI
:
1088 for (i
=0;i
<16;i
++) {
1089 params
[i
] = FLOAT_TO_BOOL(ctx
->ColorMatrix
.m
[i
]);
1092 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
1093 *params
= INT_TO_BOOL(ctx
->ColorStackDepth
+ 1);
1095 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
1096 *params
= FLOAT_TO_BOOL(MAX_COLOR_STACK_DEPTH
);
1098 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
1099 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostColorMatrixScale
[0]);
1101 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
1102 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostColorMatrixScale
[1]);
1104 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
1105 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostColorMatrixScale
[2]);
1107 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
1108 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostColorMatrixScale
[3]);
1110 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
1111 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostColorMatrixBias
[0]);
1113 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
1114 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostColorMatrixBias
[1]);
1116 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
1117 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostColorMatrixBias
[2]);
1119 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
1120 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostColorMatrixBias
[3]);
1123 /* GL_EXT_convolution (also in 1.2 imaging) */
1124 case GL_MAX_CONVOLUTION_WIDTH
:
1125 *params
= INT_TO_BOOL(ctx
->Const
.MaxConvolutionWidth
);
1127 case GL_MAX_CONVOLUTION_HEIGHT
:
1128 *params
= INT_TO_BOOL(ctx
->Const
.MaxConvolutionHeight
);
1130 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
1131 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostConvolutionScale
[0]);
1133 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
1134 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostConvolutionScale
[1]);
1136 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
1137 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostConvolutionScale
[2]);
1139 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
1140 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostConvolutionScale
[3]);
1142 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
1143 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostConvolutionBias
[0]);
1145 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
1146 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostConvolutionBias
[1]);
1148 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
1149 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostConvolutionBias
[2]);
1151 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
1152 *params
= FLOAT_TO_BOOL(ctx
->Pixel
.PostConvolutionBias
[2]);
1155 /* GL_SGI_color_table (also in 1.2 imaging */
1156 case GL_COLOR_TABLE_SGI
:
1157 *params
= ctx
->Pixel
.ColorTableEnabled
;
1159 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
1160 *params
= ctx
->Pixel
.PostConvolutionColorTableEnabled
;
1162 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
1163 *params
= ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
1167 gl_error( ctx
, GL_INVALID_ENUM
, "glGetBooleanv" );
1175 _mesa_GetDoublev( GLenum pname
, GLdouble
*params
)
1177 GET_CURRENT_CONTEXT(ctx
);
1179 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
1180 GLuint texTransformUnit
= ctx
->Texture
.CurrentTransformUnit
;
1181 const struct gl_texture_unit
*textureUnit
= &ctx
->Texture
.Unit
[texUnit
];
1183 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx
, "glGetDoublev");
1185 if (MESA_VERBOSE
& VERBOSE_API
)
1186 fprintf(stderr
, "glGetDoublev %s\n", gl_lookup_enum_by_nr(pname
));
1189 case GL_ACCUM_RED_BITS
:
1190 *params
= (GLdouble
) ctx
->Visual
->AccumRedBits
;
1192 case GL_ACCUM_GREEN_BITS
:
1193 *params
= (GLdouble
) ctx
->Visual
->AccumGreenBits
;
1195 case GL_ACCUM_BLUE_BITS
:
1196 *params
= (GLdouble
) ctx
->Visual
->AccumBlueBits
;
1198 case GL_ACCUM_ALPHA_BITS
:
1199 *params
= (GLdouble
) ctx
->Visual
->AccumAlphaBits
;
1201 case GL_ACCUM_CLEAR_VALUE
:
1202 params
[0] = (GLdouble
) ctx
->Accum
.ClearColor
[0];
1203 params
[1] = (GLdouble
) ctx
->Accum
.ClearColor
[1];
1204 params
[2] = (GLdouble
) ctx
->Accum
.ClearColor
[2];
1205 params
[3] = (GLdouble
) ctx
->Accum
.ClearColor
[3];
1208 *params
= (GLdouble
) ctx
->Pixel
.AlphaBias
;
1211 *params
= (GLdouble
) ctx
->Visual
->AlphaBits
;
1213 case GL_ALPHA_SCALE
:
1214 *params
= (GLdouble
) ctx
->Pixel
.AlphaScale
;
1217 *params
= (GLdouble
) ctx
->Color
.AlphaEnabled
;
1219 case GL_ALPHA_TEST_FUNC
:
1220 *params
= ENUM_TO_DOUBLE(ctx
->Color
.AlphaFunc
);
1222 case GL_ALPHA_TEST_REF
:
1223 *params
= (GLdouble
) ctx
->Color
.AlphaRef
/ 255.0;
1225 case GL_ATTRIB_STACK_DEPTH
:
1226 *params
= (GLdouble
) (ctx
->AttribStackDepth
);
1228 case GL_AUTO_NORMAL
:
1229 *params
= (GLdouble
) ctx
->Eval
.AutoNormal
;
1231 case GL_AUX_BUFFERS
:
1232 *params
= (GLdouble
) ctx
->Const
.NumAuxBuffers
;
1235 *params
= (GLdouble
) ctx
->Color
.BlendEnabled
;
1238 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendDstRGB
);
1241 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendSrcRGB
);
1243 case GL_BLEND_SRC_RGB_EXT
:
1244 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendSrcRGB
);
1246 case GL_BLEND_DST_RGB_EXT
:
1247 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendDstRGB
);
1249 case GL_BLEND_SRC_ALPHA_EXT
:
1250 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendSrcA
);
1252 case GL_BLEND_DST_ALPHA_EXT
:
1253 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendDstA
);
1255 case GL_BLEND_EQUATION_EXT
:
1256 *params
= ENUM_TO_DOUBLE(ctx
->Color
.BlendEquation
);
1258 case GL_BLEND_COLOR_EXT
:
1259 params
[0] = (GLdouble
) ctx
->Color
.BlendColor
[0];
1260 params
[1] = (GLdouble
) ctx
->Color
.BlendColor
[1];
1261 params
[2] = (GLdouble
) ctx
->Color
.BlendColor
[2];
1262 params
[3] = (GLdouble
) ctx
->Color
.BlendColor
[3];
1265 *params
= (GLdouble
) ctx
->Pixel
.BlueBias
;
1268 *params
= (GLdouble
) ctx
->Visual
->BlueBits
;
1271 *params
= (GLdouble
) ctx
->Pixel
.BlueScale
;
1273 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
1274 *params
= (GLdouble
) (ctx
->ClientAttribStackDepth
);
1276 case GL_CLIP_PLANE0
:
1277 case GL_CLIP_PLANE1
:
1278 case GL_CLIP_PLANE2
:
1279 case GL_CLIP_PLANE3
:
1280 case GL_CLIP_PLANE4
:
1281 case GL_CLIP_PLANE5
:
1282 *params
= (GLdouble
) ctx
->Transform
.ClipEnabled
[pname
-GL_CLIP_PLANE0
];
1284 case GL_COLOR_CLEAR_VALUE
:
1285 params
[0] = (GLdouble
) ctx
->Color
.ClearColor
[0];
1286 params
[1] = (GLdouble
) ctx
->Color
.ClearColor
[1];
1287 params
[2] = (GLdouble
) ctx
->Color
.ClearColor
[2];
1288 params
[3] = (GLdouble
) ctx
->Color
.ClearColor
[3];
1290 case GL_COLOR_MATERIAL
:
1291 *params
= (GLdouble
) ctx
->Light
.ColorMaterialEnabled
;
1293 case GL_COLOR_MATERIAL_FACE
:
1294 *params
= ENUM_TO_DOUBLE(ctx
->Light
.ColorMaterialFace
);
1296 case GL_COLOR_MATERIAL_PARAMETER
:
1297 *params
= ENUM_TO_DOUBLE(ctx
->Light
.ColorMaterialMode
);
1299 case GL_COLOR_WRITEMASK
:
1300 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1.0 : 0.0;
1301 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1.0 : 0.0;
1302 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1.0 : 0.0;
1303 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1.0 : 0.0;
1306 *params
= (GLdouble
) ctx
->Polygon
.CullFlag
;
1308 case GL_CULL_FACE_MODE
:
1309 *params
= ENUM_TO_DOUBLE(ctx
->Polygon
.CullFaceMode
);
1311 case GL_CURRENT_COLOR
:
1312 params
[0] = UBYTE_COLOR_TO_FLOAT_COLOR(ctx
->Current
.ByteColor
[0]);
1313 params
[1] = UBYTE_COLOR_TO_FLOAT_COLOR(ctx
->Current
.ByteColor
[1]);
1314 params
[2] = UBYTE_COLOR_TO_FLOAT_COLOR(ctx
->Current
.ByteColor
[2]);
1315 params
[3] = UBYTE_COLOR_TO_FLOAT_COLOR(ctx
->Current
.ByteColor
[3]);
1317 case GL_CURRENT_INDEX
:
1318 *params
= (GLdouble
) ctx
->Current
.Index
;
1320 case GL_CURRENT_NORMAL
:
1321 params
[0] = (GLdouble
) ctx
->Current
.Normal
[0];
1322 params
[1] = (GLdouble
) ctx
->Current
.Normal
[1];
1323 params
[2] = (GLdouble
) ctx
->Current
.Normal
[2];
1325 case GL_CURRENT_RASTER_COLOR
:
1326 params
[0] = (GLdouble
) ctx
->Current
.RasterColor
[0];
1327 params
[1] = (GLdouble
) ctx
->Current
.RasterColor
[1];
1328 params
[2] = (GLdouble
) ctx
->Current
.RasterColor
[2];
1329 params
[3] = (GLdouble
) ctx
->Current
.RasterColor
[3];
1331 case GL_CURRENT_RASTER_DISTANCE
:
1332 params
[0] = (GLdouble
) ctx
->Current
.RasterDistance
;
1334 case GL_CURRENT_RASTER_INDEX
:
1335 *params
= (GLdouble
) ctx
->Current
.RasterIndex
;
1337 case GL_CURRENT_RASTER_POSITION
:
1338 params
[0] = (GLdouble
) ctx
->Current
.RasterPos
[0];
1339 params
[1] = (GLdouble
) ctx
->Current
.RasterPos
[1];
1340 params
[2] = (GLdouble
) ctx
->Current
.RasterPos
[2];
1341 params
[3] = (GLdouble
) ctx
->Current
.RasterPos
[3];
1343 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
1344 params
[0] = (GLdouble
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][0];
1345 params
[1] = (GLdouble
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][1];
1346 params
[2] = (GLdouble
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][2];
1347 params
[3] = (GLdouble
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][3];
1349 case GL_CURRENT_RASTER_POSITION_VALID
:
1350 *params
= (GLdouble
) ctx
->Current
.RasterPosValid
;
1352 case GL_CURRENT_TEXTURE_COORDS
:
1353 params
[0] = (GLdouble
) ctx
->Current
.Texcoord
[texTransformUnit
][0];
1354 params
[1] = (GLdouble
) ctx
->Current
.Texcoord
[texTransformUnit
][1];
1355 params
[2] = (GLdouble
) ctx
->Current
.Texcoord
[texTransformUnit
][2];
1356 params
[3] = (GLdouble
) ctx
->Current
.Texcoord
[texTransformUnit
][3];
1359 *params
= (GLdouble
) ctx
->Pixel
.DepthBias
;
1362 *params
= (GLdouble
) ctx
->Visual
->DepthBits
;
1364 case GL_DEPTH_CLEAR_VALUE
:
1365 *params
= (GLdouble
) ctx
->Depth
.Clear
;
1368 *params
= ENUM_TO_DOUBLE(ctx
->Depth
.Func
);
1370 case GL_DEPTH_RANGE
:
1371 params
[0] = (GLdouble
) ctx
->Viewport
.Near
;
1372 params
[1] = (GLdouble
) ctx
->Viewport
.Far
;
1374 case GL_DEPTH_SCALE
:
1375 *params
= (GLdouble
) ctx
->Pixel
.DepthScale
;
1378 *params
= (GLdouble
) ctx
->Depth
.Test
;
1380 case GL_DEPTH_WRITEMASK
:
1381 *params
= (GLdouble
) ctx
->Depth
.Mask
;
1384 *params
= (GLdouble
) ctx
->Color
.DitherFlag
;
1386 case GL_DOUBLEBUFFER
:
1387 *params
= (GLdouble
) ctx
->Visual
->DBflag
;
1389 case GL_DRAW_BUFFER
:
1390 *params
= ENUM_TO_DOUBLE(ctx
->Color
.DrawBuffer
);
1393 *params
= (GLdouble
) ctx
->Current
.EdgeFlag
;
1395 case GL_FEEDBACK_BUFFER_SIZE
:
1396 *params
= (GLdouble
) ctx
->Feedback
.BufferSize
;
1398 case GL_FEEDBACK_BUFFER_TYPE
:
1399 *params
= ENUM_TO_DOUBLE(ctx
->Feedback
.Type
);
1402 *params
= (GLdouble
) ctx
->Fog
.Enabled
;
1405 params
[0] = (GLdouble
) ctx
->Fog
.Color
[0];
1406 params
[1] = (GLdouble
) ctx
->Fog
.Color
[1];
1407 params
[2] = (GLdouble
) ctx
->Fog
.Color
[2];
1408 params
[3] = (GLdouble
) ctx
->Fog
.Color
[3];
1410 case GL_FOG_DENSITY
:
1411 *params
= (GLdouble
) ctx
->Fog
.Density
;
1414 *params
= (GLdouble
) ctx
->Fog
.End
;
1417 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.Fog
);
1420 *params
= (GLdouble
) ctx
->Fog
.Index
;
1423 *params
= ENUM_TO_DOUBLE(ctx
->Fog
.Mode
);
1426 *params
= (GLdouble
) ctx
->Fog
.Start
;
1429 *params
= ENUM_TO_DOUBLE(ctx
->Polygon
.FrontFace
);
1432 *params
= (GLdouble
) ctx
->Pixel
.GreenBias
;
1435 *params
= (GLdouble
) ctx
->Visual
->GreenBits
;
1437 case GL_GREEN_SCALE
:
1438 *params
= (GLdouble
) ctx
->Pixel
.GreenScale
;
1441 *params
= (GLdouble
) ctx
->Pixel
.HistogramEnabled
;
1444 *params
= (GLdouble
) ctx
->Visual
->IndexBits
;
1446 case GL_INDEX_CLEAR_VALUE
:
1447 *params
= (GLdouble
) ctx
->Color
.ClearIndex
;
1450 *params
= ctx
->Visual
->RGBAflag
? 0.0 : 1.0;
1452 case GL_INDEX_OFFSET
:
1453 *params
= (GLdouble
) ctx
->Pixel
.IndexOffset
;
1455 case GL_INDEX_SHIFT
:
1456 *params
= (GLdouble
) ctx
->Pixel
.IndexShift
;
1458 case GL_INDEX_WRITEMASK
:
1459 *params
= (GLdouble
) ctx
->Color
.IndexMask
;
1469 *params
= (GLdouble
) ctx
->Light
.Light
[pname
-GL_LIGHT0
].Enabled
;
1472 *params
= (GLdouble
) ctx
->Light
.Enabled
;
1474 case GL_LIGHT_MODEL_AMBIENT
:
1475 params
[0] = (GLdouble
) ctx
->Light
.Model
.Ambient
[0];
1476 params
[1] = (GLdouble
) ctx
->Light
.Model
.Ambient
[1];
1477 params
[2] = (GLdouble
) ctx
->Light
.Model
.Ambient
[2];
1478 params
[3] = (GLdouble
) ctx
->Light
.Model
.Ambient
[3];
1480 case GL_LIGHT_MODEL_COLOR_CONTROL
:
1481 params
[0] = (GLdouble
) ctx
->Light
.Model
.ColorControl
;
1483 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
1484 *params
= (GLdouble
) ctx
->Light
.Model
.LocalViewer
;
1486 case GL_LIGHT_MODEL_TWO_SIDE
:
1487 *params
= (GLdouble
) ctx
->Light
.Model
.TwoSide
;
1489 case GL_LINE_SMOOTH
:
1490 *params
= (GLdouble
) ctx
->Line
.SmoothFlag
;
1492 case GL_LINE_SMOOTH_HINT
:
1493 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.LineSmooth
);
1495 case GL_LINE_STIPPLE
:
1496 *params
= (GLdouble
) ctx
->Line
.StippleFlag
;
1498 case GL_LINE_STIPPLE_PATTERN
:
1499 *params
= (GLdouble
) ctx
->Line
.StipplePattern
;
1501 case GL_LINE_STIPPLE_REPEAT
:
1502 *params
= (GLdouble
) ctx
->Line
.StippleFactor
;
1505 *params
= (GLdouble
) ctx
->Line
.Width
;
1507 case GL_LINE_WIDTH_GRANULARITY
:
1508 *params
= (GLdouble
) ctx
->Const
.LineWidthGranularity
;
1510 case GL_LINE_WIDTH_RANGE
:
1511 params
[0] = (GLdouble
) ctx
->Const
.MinLineWidthAA
;
1512 params
[1] = (GLdouble
) ctx
->Const
.MaxLineWidthAA
;
1514 case GL_ALIASED_LINE_WIDTH_RANGE
:
1515 params
[0] = (GLdouble
) ctx
->Const
.MinLineWidth
;
1516 params
[1] = (GLdouble
) ctx
->Const
.MaxLineWidth
;
1519 *params
= (GLdouble
) ctx
->List
.ListBase
;
1522 *params
= (GLdouble
) ctx
->CurrentListNum
;
1525 *params
= ctx
->ExecuteFlag
? ENUM_TO_DOUBLE(GL_COMPILE_AND_EXECUTE
)
1526 : ENUM_TO_DOUBLE(GL_COMPILE
);
1528 case GL_INDEX_LOGIC_OP
:
1529 *params
= (GLdouble
) ctx
->Color
.IndexLogicOpEnabled
;
1531 case GL_COLOR_LOGIC_OP
:
1532 *params
= (GLdouble
) ctx
->Color
.ColorLogicOpEnabled
;
1534 case GL_LOGIC_OP_MODE
:
1535 *params
= ENUM_TO_DOUBLE(ctx
->Color
.LogicOp
);
1537 case GL_MAP1_COLOR_4
:
1538 *params
= (GLdouble
) ctx
->Eval
.Map1Color4
;
1540 case GL_MAP1_GRID_DOMAIN
:
1541 params
[0] = (GLdouble
) ctx
->Eval
.MapGrid1u1
;
1542 params
[1] = (GLdouble
) ctx
->Eval
.MapGrid1u2
;
1544 case GL_MAP1_GRID_SEGMENTS
:
1545 *params
= (GLdouble
) ctx
->Eval
.MapGrid1un
;
1548 *params
= (GLdouble
) ctx
->Eval
.Map1Index
;
1550 case GL_MAP1_NORMAL
:
1551 *params
= (GLdouble
) ctx
->Eval
.Map1Normal
;
1553 case GL_MAP1_TEXTURE_COORD_1
:
1554 *params
= (GLdouble
) ctx
->Eval
.Map1TextureCoord1
;
1556 case GL_MAP1_TEXTURE_COORD_2
:
1557 *params
= (GLdouble
) ctx
->Eval
.Map1TextureCoord2
;
1559 case GL_MAP1_TEXTURE_COORD_3
:
1560 *params
= (GLdouble
) ctx
->Eval
.Map1TextureCoord3
;
1562 case GL_MAP1_TEXTURE_COORD_4
:
1563 *params
= (GLdouble
) ctx
->Eval
.Map1TextureCoord4
;
1565 case GL_MAP1_VERTEX_3
:
1566 *params
= (GLdouble
) ctx
->Eval
.Map1Vertex3
;
1568 case GL_MAP1_VERTEX_4
:
1569 *params
= (GLdouble
) ctx
->Eval
.Map1Vertex4
;
1571 case GL_MAP2_COLOR_4
:
1572 *params
= (GLdouble
) ctx
->Eval
.Map2Color4
;
1574 case GL_MAP2_GRID_DOMAIN
:
1575 params
[0] = (GLdouble
) ctx
->Eval
.MapGrid2u1
;
1576 params
[1] = (GLdouble
) ctx
->Eval
.MapGrid2u2
;
1577 params
[2] = (GLdouble
) ctx
->Eval
.MapGrid2v1
;
1578 params
[3] = (GLdouble
) ctx
->Eval
.MapGrid2v2
;
1580 case GL_MAP2_GRID_SEGMENTS
:
1581 params
[0] = (GLdouble
) ctx
->Eval
.MapGrid2un
;
1582 params
[1] = (GLdouble
) ctx
->Eval
.MapGrid2vn
;
1585 *params
= (GLdouble
) ctx
->Eval
.Map2Index
;
1587 case GL_MAP2_NORMAL
:
1588 *params
= (GLdouble
) ctx
->Eval
.Map2Normal
;
1590 case GL_MAP2_TEXTURE_COORD_1
:
1591 *params
= (GLdouble
) ctx
->Eval
.Map2TextureCoord1
;
1593 case GL_MAP2_TEXTURE_COORD_2
:
1594 *params
= (GLdouble
) ctx
->Eval
.Map2TextureCoord2
;
1596 case GL_MAP2_TEXTURE_COORD_3
:
1597 *params
= (GLdouble
) ctx
->Eval
.Map2TextureCoord3
;
1599 case GL_MAP2_TEXTURE_COORD_4
:
1600 *params
= (GLdouble
) ctx
->Eval
.Map2TextureCoord4
;
1602 case GL_MAP2_VERTEX_3
:
1603 *params
= (GLdouble
) ctx
->Eval
.Map2Vertex3
;
1605 case GL_MAP2_VERTEX_4
:
1606 *params
= (GLdouble
) ctx
->Eval
.Map2Vertex4
;
1609 *params
= (GLdouble
) ctx
->Pixel
.MapColorFlag
;
1611 case GL_MAP_STENCIL
:
1612 *params
= (GLdouble
) ctx
->Pixel
.MapStencilFlag
;
1614 case GL_MATRIX_MODE
:
1615 *params
= ENUM_TO_DOUBLE(ctx
->Transform
.MatrixMode
);
1617 case GL_MAX_ATTRIB_STACK_DEPTH
:
1618 *params
= (GLdouble
) MAX_ATTRIB_STACK_DEPTH
;
1620 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
1621 *params
= (GLdouble
) MAX_CLIENT_ATTRIB_STACK_DEPTH
;
1623 case GL_MAX_CLIP_PLANES
:
1624 *params
= (GLdouble
) MAX_CLIP_PLANES
;
1626 case GL_MAX_ELEMENTS_VERTICES
: /* GL_VERSION_1_2 */
1627 *params
= (GLdouble
) VB_MAX
;
1629 case GL_MAX_ELEMENTS_INDICES
: /* GL_VERSION_1_2 */
1630 *params
= (GLdouble
) VB_MAX
;
1632 case GL_MAX_EVAL_ORDER
:
1633 *params
= (GLdouble
) MAX_EVAL_ORDER
;
1636 *params
= (GLdouble
) MAX_LIGHTS
;
1638 case GL_MAX_LIST_NESTING
:
1639 *params
= (GLdouble
) MAX_LIST_NESTING
;
1641 case GL_MAX_MODELVIEW_STACK_DEPTH
:
1642 *params
= (GLdouble
) MAX_MODELVIEW_STACK_DEPTH
;
1644 case GL_MAX_NAME_STACK_DEPTH
:
1645 *params
= (GLdouble
) MAX_NAME_STACK_DEPTH
;
1647 case GL_MAX_PIXEL_MAP_TABLE
:
1648 *params
= (GLdouble
) MAX_PIXEL_MAP_TABLE
;
1650 case GL_MAX_PROJECTION_STACK_DEPTH
:
1651 *params
= (GLdouble
) MAX_PROJECTION_STACK_DEPTH
;
1653 case GL_MAX_TEXTURE_SIZE
:
1654 case GL_MAX_3D_TEXTURE_SIZE
:
1655 *params
= (GLdouble
) ctx
->Const
.MaxTextureSize
;
1657 case GL_MAX_TEXTURE_STACK_DEPTH
:
1658 *params
= (GLdouble
) MAX_TEXTURE_STACK_DEPTH
;
1660 case GL_MAX_VIEWPORT_DIMS
:
1661 params
[0] = (GLdouble
) MAX_WIDTH
;
1662 params
[1] = (GLdouble
) MAX_HEIGHT
;
1665 *params
= (GLdouble
) ctx
->Pixel
.MinMaxEnabled
;
1667 case GL_MODELVIEW_MATRIX
:
1668 for (i
=0;i
<16;i
++) {
1669 params
[i
] = (GLdouble
) ctx
->ModelView
.m
[i
];
1672 case GL_MODELVIEW_STACK_DEPTH
:
1673 *params
= (GLdouble
) (ctx
->ModelViewStackDepth
+ 1);
1675 case GL_NAME_STACK_DEPTH
:
1676 *params
= (GLdouble
) ctx
->Select
.NameStackDepth
;
1679 *params
= (GLdouble
) ctx
->Transform
.Normalize
;
1681 case GL_PACK_ALIGNMENT
:
1682 *params
= (GLdouble
) ctx
->Pack
.Alignment
;
1684 case GL_PACK_LSB_FIRST
:
1685 *params
= (GLdouble
) ctx
->Pack
.LsbFirst
;
1687 case GL_PACK_ROW_LENGTH
:
1688 *params
= (GLdouble
) ctx
->Pack
.RowLength
;
1690 case GL_PACK_SKIP_PIXELS
:
1691 *params
= (GLdouble
) ctx
->Pack
.SkipPixels
;
1693 case GL_PACK_SKIP_ROWS
:
1694 *params
= (GLdouble
) ctx
->Pack
.SkipRows
;
1696 case GL_PACK_SWAP_BYTES
:
1697 *params
= (GLdouble
) ctx
->Pack
.SwapBytes
;
1699 case GL_PACK_SKIP_IMAGES_EXT
:
1700 *params
= (GLdouble
) ctx
->Pack
.SkipImages
;
1702 case GL_PACK_IMAGE_HEIGHT_EXT
:
1703 *params
= (GLdouble
) ctx
->Pack
.ImageHeight
;
1705 case GL_PERSPECTIVE_CORRECTION_HINT
:
1706 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.PerspectiveCorrection
);
1708 case GL_PIXEL_MAP_A_TO_A_SIZE
:
1709 *params
= (GLdouble
) ctx
->Pixel
.MapAtoAsize
;
1711 case GL_PIXEL_MAP_B_TO_B_SIZE
:
1712 *params
= (GLdouble
) ctx
->Pixel
.MapBtoBsize
;
1714 case GL_PIXEL_MAP_G_TO_G_SIZE
:
1715 *params
= (GLdouble
) ctx
->Pixel
.MapGtoGsize
;
1717 case GL_PIXEL_MAP_I_TO_A_SIZE
:
1718 *params
= (GLdouble
) ctx
->Pixel
.MapItoAsize
;
1720 case GL_PIXEL_MAP_I_TO_B_SIZE
:
1721 *params
= (GLdouble
) ctx
->Pixel
.MapItoBsize
;
1723 case GL_PIXEL_MAP_I_TO_G_SIZE
:
1724 *params
= (GLdouble
) ctx
->Pixel
.MapItoGsize
;
1726 case GL_PIXEL_MAP_I_TO_I_SIZE
:
1727 *params
= (GLdouble
) ctx
->Pixel
.MapItoIsize
;
1729 case GL_PIXEL_MAP_I_TO_R_SIZE
:
1730 *params
= (GLdouble
) ctx
->Pixel
.MapItoRsize
;
1732 case GL_PIXEL_MAP_R_TO_R_SIZE
:
1733 *params
= (GLdouble
) ctx
->Pixel
.MapRtoRsize
;
1735 case GL_PIXEL_MAP_S_TO_S_SIZE
:
1736 *params
= (GLdouble
) ctx
->Pixel
.MapStoSsize
;
1739 *params
= (GLdouble
) ctx
->Point
.UserSize
;
1741 case GL_POINT_SIZE_GRANULARITY
:
1742 *params
= (GLdouble
) ctx
->Const
.PointSizeGranularity
;
1744 case GL_POINT_SIZE_RANGE
:
1745 params
[0] = (GLdouble
) ctx
->Const
.MinPointSizeAA
;
1746 params
[1] = (GLdouble
) ctx
->Const
.MaxPointSizeAA
;
1748 case GL_ALIASED_POINT_SIZE_RANGE
:
1749 params
[0] = (GLdouble
) ctx
->Const
.MinPointSize
;
1750 params
[1] = (GLdouble
) ctx
->Const
.MaxPointSize
;
1752 case GL_POINT_SMOOTH
:
1753 *params
= (GLdouble
) ctx
->Point
.SmoothFlag
;
1755 case GL_POINT_SMOOTH_HINT
:
1756 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.PointSmooth
);
1758 case GL_POINT_SIZE_MIN_EXT
:
1759 *params
= (GLdouble
) (ctx
->Point
.MinSize
);
1761 case GL_POINT_SIZE_MAX_EXT
:
1762 *params
= (GLdouble
) (ctx
->Point
.MaxSize
);
1764 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
1765 *params
= (GLdouble
) (ctx
->Point
.Threshold
);
1767 case GL_DISTANCE_ATTENUATION_EXT
:
1768 params
[0] = (GLdouble
) (ctx
->Point
.Params
[0]);
1769 params
[1] = (GLdouble
) (ctx
->Point
.Params
[1]);
1770 params
[2] = (GLdouble
) (ctx
->Point
.Params
[2]);
1772 case GL_POLYGON_MODE
:
1773 params
[0] = ENUM_TO_DOUBLE(ctx
->Polygon
.FrontMode
);
1774 params
[1] = ENUM_TO_DOUBLE(ctx
->Polygon
.BackMode
);
1776 case GL_POLYGON_OFFSET_BIAS_EXT
: /* GL_EXT_polygon_offset */
1777 *params
= (GLdouble
) ctx
->Polygon
.OffsetUnits
;
1779 case GL_POLYGON_OFFSET_FACTOR
:
1780 *params
= (GLdouble
) ctx
->Polygon
.OffsetFactor
;
1782 case GL_POLYGON_OFFSET_UNITS
:
1783 *params
= (GLdouble
) ctx
->Polygon
.OffsetUnits
;
1785 case GL_POLYGON_SMOOTH
:
1786 *params
= (GLdouble
) ctx
->Polygon
.SmoothFlag
;
1788 case GL_POLYGON_SMOOTH_HINT
:
1789 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.PolygonSmooth
);
1791 case GL_POLYGON_STIPPLE
:
1792 *params
= (GLdouble
) ctx
->Polygon
.StippleFlag
;
1794 case GL_PROJECTION_MATRIX
:
1795 for (i
=0;i
<16;i
++) {
1796 params
[i
] = (GLdouble
) ctx
->ProjectionMatrix
.m
[i
];
1799 case GL_PROJECTION_STACK_DEPTH
:
1800 *params
= (GLdouble
) (ctx
->ProjectionStackDepth
+ 1);
1802 case GL_READ_BUFFER
:
1803 *params
= ENUM_TO_DOUBLE(ctx
->Pixel
.ReadBuffer
);
1806 *params
= (GLdouble
) ctx
->Pixel
.RedBias
;
1809 *params
= (GLdouble
) ctx
->Visual
->RedBits
;
1812 *params
= (GLdouble
) ctx
->Pixel
.RedScale
;
1814 case GL_RENDER_MODE
:
1815 *params
= ENUM_TO_DOUBLE(ctx
->RenderMode
);
1818 *params
= (GLdouble
) ctx
->Visual
->RGBAflag
;
1820 case GL_SCISSOR_BOX
:
1821 params
[0] = (GLdouble
) ctx
->Scissor
.X
;
1822 params
[1] = (GLdouble
) ctx
->Scissor
.Y
;
1823 params
[2] = (GLdouble
) ctx
->Scissor
.Width
;
1824 params
[3] = (GLdouble
) ctx
->Scissor
.Height
;
1826 case GL_SCISSOR_TEST
:
1827 *params
= (GLdouble
) ctx
->Scissor
.Enabled
;
1829 case GL_SELECTION_BUFFER_SIZE
:
1830 *params
= (GLdouble
) ctx
->Select
.BufferSize
;
1832 case GL_SHADE_MODEL
:
1833 *params
= ENUM_TO_DOUBLE(ctx
->Light
.ShadeModel
);
1835 case GL_SHARED_TEXTURE_PALETTE_EXT
:
1836 *params
= (GLdouble
) ctx
->Texture
.SharedPalette
;
1838 case GL_STENCIL_BITS
:
1839 *params
= (GLdouble
) ctx
->Visual
->StencilBits
;
1841 case GL_STENCIL_CLEAR_VALUE
:
1842 *params
= (GLdouble
) ctx
->Stencil
.Clear
;
1844 case GL_STENCIL_FAIL
:
1845 *params
= ENUM_TO_DOUBLE(ctx
->Stencil
.FailFunc
);
1847 case GL_STENCIL_FUNC
:
1848 *params
= ENUM_TO_DOUBLE(ctx
->Stencil
.Function
);
1850 case GL_STENCIL_PASS_DEPTH_FAIL
:
1851 *params
= ENUM_TO_DOUBLE(ctx
->Stencil
.ZFailFunc
);
1853 case GL_STENCIL_PASS_DEPTH_PASS
:
1854 *params
= ENUM_TO_DOUBLE(ctx
->Stencil
.ZPassFunc
);
1856 case GL_STENCIL_REF
:
1857 *params
= (GLdouble
) ctx
->Stencil
.Ref
;
1859 case GL_STENCIL_TEST
:
1860 *params
= (GLdouble
) ctx
->Stencil
.Enabled
;
1862 case GL_STENCIL_VALUE_MASK
:
1863 *params
= (GLdouble
) ctx
->Stencil
.ValueMask
;
1865 case GL_STENCIL_WRITEMASK
:
1866 *params
= (GLdouble
) ctx
->Stencil
.WriteMask
;
1869 *params
= (GLdouble
) ctx
->Visual
->StereoFlag
;
1871 case GL_SUBPIXEL_BITS
:
1872 *params
= (GLdouble
) ctx
->Const
.SubPixelBits
;
1875 *params
= _mesa_IsEnabled(GL_TEXTURE_1D
) ? 1.0 : 0.0;
1878 *params
= _mesa_IsEnabled(GL_TEXTURE_2D
) ? 1.0 : 0.0;
1881 *params
= _mesa_IsEnabled(GL_TEXTURE_3D
) ? 1.0 : 0.0;
1883 case GL_TEXTURE_BINDING_1D
:
1884 *params
= (GLdouble
) textureUnit
->CurrentD
[1]->Name
;
1886 case GL_TEXTURE_BINDING_2D
:
1887 *params
= (GLdouble
) textureUnit
->CurrentD
[2]->Name
;
1889 case GL_TEXTURE_BINDING_3D
:
1890 *params
= (GLdouble
) textureUnit
->CurrentD
[3]->Name
;
1892 case GL_TEXTURE_ENV_COLOR
:
1893 params
[0] = (GLdouble
) textureUnit
->EnvColor
[0];
1894 params
[1] = (GLdouble
) textureUnit
->EnvColor
[1];
1895 params
[2] = (GLdouble
) textureUnit
->EnvColor
[2];
1896 params
[3] = (GLdouble
) textureUnit
->EnvColor
[3];
1898 case GL_TEXTURE_ENV_MODE
:
1899 *params
= ENUM_TO_DOUBLE(textureUnit
->EnvMode
);
1901 case GL_TEXTURE_GEN_S
:
1902 *params
= (textureUnit
->TexGenEnabled
& S_BIT
) ? 1.0 : 0.0;
1904 case GL_TEXTURE_GEN_T
:
1905 *params
= (textureUnit
->TexGenEnabled
& T_BIT
) ? 1.0 : 0.0;
1907 case GL_TEXTURE_GEN_R
:
1908 *params
= (textureUnit
->TexGenEnabled
& R_BIT
) ? 1.0 : 0.0;
1910 case GL_TEXTURE_GEN_Q
:
1911 *params
= (textureUnit
->TexGenEnabled
& Q_BIT
) ? 1.0 : 0.0;
1913 case GL_TEXTURE_MATRIX
:
1914 for (i
=0;i
<16;i
++) {
1915 params
[i
] = (GLdouble
) ctx
->TextureMatrix
[texTransformUnit
].m
[i
];
1918 case GL_TEXTURE_STACK_DEPTH
:
1919 *params
= (GLdouble
) (ctx
->TextureStackDepth
[texTransformUnit
] + 1);
1921 case GL_UNPACK_ALIGNMENT
:
1922 *params
= (GLdouble
) ctx
->Unpack
.Alignment
;
1924 case GL_UNPACK_LSB_FIRST
:
1925 *params
= (GLdouble
) ctx
->Unpack
.LsbFirst
;
1927 case GL_UNPACK_ROW_LENGTH
:
1928 *params
= (GLdouble
) ctx
->Unpack
.RowLength
;
1930 case GL_UNPACK_SKIP_PIXELS
:
1931 *params
= (GLdouble
) ctx
->Unpack
.SkipPixels
;
1933 case GL_UNPACK_SKIP_ROWS
:
1934 *params
= (GLdouble
) ctx
->Unpack
.SkipRows
;
1936 case GL_UNPACK_SWAP_BYTES
:
1937 *params
= (GLdouble
) ctx
->Unpack
.SwapBytes
;
1939 case GL_UNPACK_SKIP_IMAGES_EXT
:
1940 *params
= (GLdouble
) ctx
->Unpack
.SkipImages
;
1942 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
1943 *params
= (GLdouble
) ctx
->Unpack
.ImageHeight
;
1946 params
[0] = (GLdouble
) ctx
->Viewport
.X
;
1947 params
[1] = (GLdouble
) ctx
->Viewport
.Y
;
1948 params
[2] = (GLdouble
) ctx
->Viewport
.Width
;
1949 params
[3] = (GLdouble
) ctx
->Viewport
.Height
;
1952 *params
= (GLdouble
) ctx
->Pixel
.ZoomX
;
1955 *params
= (GLdouble
) ctx
->Pixel
.ZoomY
;
1957 case GL_VERTEX_ARRAY
:
1958 *params
= (GLdouble
) ctx
->Array
.Vertex
.Enabled
;
1960 case GL_VERTEX_ARRAY_SIZE
:
1961 *params
= (GLdouble
) ctx
->Array
.Vertex
.Size
;
1963 case GL_VERTEX_ARRAY_TYPE
:
1964 *params
= ENUM_TO_DOUBLE(ctx
->Array
.Vertex
.Type
);
1966 case GL_VERTEX_ARRAY_STRIDE
:
1967 *params
= (GLdouble
) ctx
->Array
.Vertex
.Stride
;
1969 case GL_VERTEX_ARRAY_COUNT_EXT
:
1972 case GL_NORMAL_ARRAY
:
1973 *params
= (GLdouble
) ctx
->Array
.Normal
.Enabled
;
1975 case GL_NORMAL_ARRAY_TYPE
:
1976 *params
= ENUM_TO_DOUBLE(ctx
->Array
.Normal
.Type
);
1978 case GL_NORMAL_ARRAY_STRIDE
:
1979 *params
= (GLdouble
) ctx
->Array
.Normal
.Stride
;
1981 case GL_NORMAL_ARRAY_COUNT_EXT
:
1984 case GL_COLOR_ARRAY
:
1985 *params
= (GLdouble
) ctx
->Array
.Color
.Enabled
;
1987 case GL_COLOR_ARRAY_SIZE
:
1988 *params
= (GLdouble
) ctx
->Array
.Color
.Size
;
1990 case GL_COLOR_ARRAY_TYPE
:
1991 *params
= ENUM_TO_DOUBLE(ctx
->Array
.Color
.Type
);
1993 case GL_COLOR_ARRAY_STRIDE
:
1994 *params
= (GLdouble
) ctx
->Array
.Color
.Stride
;
1996 case GL_COLOR_ARRAY_COUNT_EXT
:
1999 case GL_INDEX_ARRAY
:
2000 *params
= (GLdouble
) ctx
->Array
.Index
.Enabled
;
2002 case GL_INDEX_ARRAY_TYPE
:
2003 *params
= ENUM_TO_DOUBLE(ctx
->Array
.Index
.Type
);
2005 case GL_INDEX_ARRAY_STRIDE
:
2006 *params
= (GLdouble
) ctx
->Array
.Index
.Stride
;
2008 case GL_INDEX_ARRAY_COUNT_EXT
:
2011 case GL_TEXTURE_COORD_ARRAY
:
2012 *params
= (GLdouble
) ctx
->Array
.TexCoord
[texUnit
].Enabled
;
2014 case GL_TEXTURE_COORD_ARRAY_SIZE
:
2015 *params
= (GLdouble
) ctx
->Array
.TexCoord
[texUnit
].Size
;
2017 case GL_TEXTURE_COORD_ARRAY_TYPE
:
2018 *params
= ENUM_TO_DOUBLE(ctx
->Array
.TexCoord
[texUnit
].Type
);
2020 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
2021 *params
= (GLdouble
) ctx
->Array
.TexCoord
[texUnit
].Stride
;
2023 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
2026 case GL_EDGE_FLAG_ARRAY
:
2027 *params
= (GLdouble
) ctx
->Array
.EdgeFlag
.Enabled
;
2029 case GL_EDGE_FLAG_ARRAY_STRIDE
:
2030 *params
= (GLdouble
) ctx
->Array
.EdgeFlag
.Stride
;
2032 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
2036 case GL_MAX_TEXTURE_UNITS_ARB
:
2037 *params
= (GLdouble
) ctx
->Const
.MaxTextureUnits
;
2039 case GL_ACTIVE_TEXTURE_ARB
:
2040 *params
= (GLdouble
) (GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
2042 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
2043 *params
= (GLdouble
) (GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
2047 /* GL_PGI_misc_hints */
2048 case GL_STRICT_DEPTHFUNC_HINT_PGI
:
2049 *params
= ENUM_TO_DOUBLE(GL_NICEST
);
2051 case GL_STRICT_LIGHTING_HINT_PGI
:
2052 *params
= ENUM_TO_DOUBLE(ctx
->Hint
.StrictLighting
);
2054 case GL_STRICT_SCISSOR_HINT_PGI
:
2055 case GL_FULL_STIPPLE_HINT_PGI
:
2056 *params
= ENUM_TO_DOUBLE(GL_TRUE
);
2058 case GL_CONSERVE_MEMORY_HINT_PGI
:
2059 *params
= ENUM_TO_DOUBLE(GL_FALSE
);
2061 case GL_ALWAYS_FAST_HINT_PGI
:
2062 *params
= (GLdouble
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
2063 ctx
->Hint
.AllowDrawFrg
== GL_FALSE
&&
2064 ctx
->Hint
.AllowDrawMem
== GL_FALSE
);
2066 case GL_ALWAYS_SOFT_HINT_PGI
:
2067 *params
= (GLdouble
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
2068 ctx
->Hint
.AllowDrawFrg
== GL_TRUE
&&
2069 ctx
->Hint
.AllowDrawMem
== GL_TRUE
);
2071 case GL_ALLOW_DRAW_OBJ_HINT_PGI
:
2072 *params
= (GLdouble
) GL_TRUE
;
2074 case GL_ALLOW_DRAW_WIN_HINT_PGI
:
2075 *params
= (GLdouble
) ctx
->Hint
.AllowDrawWin
;
2077 case GL_ALLOW_DRAW_FRG_HINT_PGI
:
2078 *params
= (GLdouble
) ctx
->Hint
.AllowDrawFrg
;
2080 case GL_ALLOW_DRAW_MEM_HINT_PGI
:
2081 *params
= (GLdouble
) ctx
->Hint
.AllowDrawMem
;
2083 case GL_CLIP_NEAR_HINT_PGI
:
2084 case GL_CLIP_FAR_HINT_PGI
:
2085 *params
= ENUM_TO_DOUBLE(GL_TRUE
);
2087 case GL_WIDE_LINE_HINT_PGI
:
2088 *params
= ENUM_TO_DOUBLE(GL_DONT_CARE
);
2090 case GL_BACK_NORMALS_HINT_PGI
:
2091 *params
= ENUM_TO_DOUBLE(GL_TRUE
);
2093 case GL_NATIVE_GRAPHICS_HANDLE_PGI
:
2097 /* GL_EXT_compiled_vertex_array */
2098 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
2099 *params
= (GLdouble
) ctx
->Array
.LockFirst
;
2101 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
2102 *params
= (GLdouble
) ctx
->Array
.LockCount
;
2105 /* GL_ARB_transpose_matrix */
2106 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
2107 /* don't have a color matrix */
2109 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
2113 gl_matrix_transposef(tm
, ctx
->ModelView
.m
);
2114 for (i
=0;i
<16;i
++) {
2115 params
[i
] = (GLdouble
) tm
[i
];
2119 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
2123 gl_matrix_transposef(tm
, ctx
->ProjectionMatrix
.m
);
2124 for (i
=0;i
<16;i
++) {
2125 params
[i
] = (GLdouble
) tm
[i
];
2129 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
2133 gl_matrix_transposef(tm
, ctx
->TextureMatrix
[texTransformUnit
].m
);
2134 for (i
=0;i
<16;i
++) {
2135 params
[i
] = (GLdouble
) tm
[i
];
2140 /* GL_HP_occlusion_test */
2141 case GL_OCCLUSION_TEST_HP
:
2142 if (ctx
->Extensions
.HaveHpOcclusionTest
) {
2143 *params
= (GLdouble
) ctx
->Depth
.OcclusionTest
;
2146 gl_error( ctx
, GL_INVALID_ENUM
, "glGetDoublev" );
2149 case GL_OCCLUSION_TEST_RESULT_HP
:
2150 if (ctx
->Extensions
.HaveHpOcclusionTest
) {
2151 if (ctx
->Depth
.OcclusionTest
)
2152 *params
= (GLdouble
) ctx
->OcclusionResult
;
2154 *params
= (GLdouble
) ctx
->OcclusionResultSaved
;
2155 /* reset flag now */
2156 ctx
->OcclusionResult
= GL_FALSE
;
2157 ctx
->OcclusionResultSaved
= GL_FALSE
;
2160 gl_error( ctx
, GL_INVALID_ENUM
, "glGetDoublev" );
2164 /* GL_SGIS_pixel_texture */
2165 case GL_PIXEL_TEXTURE_SGIS
:
2166 *params
= (GLdouble
) ctx
->Pixel
.PixelTextureEnabled
;
2169 /* GL_SGIX_pixel_texture */
2170 case GL_PIXEL_TEX_GEN_SGIX
:
2171 *params
= (GLdouble
) ctx
->Pixel
.PixelTextureEnabled
;
2173 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
2174 *params
= (GLdouble
) pixel_texgen_mode(ctx
);
2177 /* GL_SGI_color_matrix (also in 1.2 imaging) */
2178 case GL_COLOR_MATRIX_SGI
:
2179 for (i
=0;i
<16;i
++) {
2180 params
[i
] = (GLdouble
) ctx
->ColorMatrix
.m
[i
];
2183 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
2184 *params
= (GLdouble
) (ctx
->ColorStackDepth
+ 1);
2186 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
2187 *params
= (GLdouble
) MAX_COLOR_STACK_DEPTH
;
2189 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
2190 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixScale
[0];
2192 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
2193 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixScale
[1];
2195 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
2196 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixScale
[2];
2198 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
2199 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixScale
[3];
2201 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
2202 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixBias
[0];
2204 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
2205 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixBias
[1];
2207 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
2208 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixBias
[2];
2210 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
2211 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixBias
[3];
2214 /* GL_EXT_convolution (also in 1.2 imaging) */
2215 case GL_MAX_CONVOLUTION_WIDTH
:
2216 *params
= (GLdouble
) ctx
->Const
.MaxConvolutionWidth
;
2218 case GL_MAX_CONVOLUTION_HEIGHT
:
2219 *params
= (GLdouble
) ctx
->Const
.MaxConvolutionHeight
;
2221 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
2222 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionScale
[0];
2224 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
2225 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionScale
[1];
2227 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
2228 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionScale
[2];
2230 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
2231 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionScale
[3];
2233 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
2234 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionBias
[0];
2236 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
2237 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionBias
[1];
2239 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
2240 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionBias
[2];
2242 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
2243 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionBias
[2];
2246 /* GL_SGI_color_table (also in 1.2 imaging */
2247 case GL_COLOR_TABLE_SGI
:
2248 *params
= (GLdouble
) ctx
->Pixel
.ColorTableEnabled
;
2250 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
2251 *params
= (GLdouble
) ctx
->Pixel
.PostConvolutionColorTableEnabled
;
2253 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
2254 *params
= (GLdouble
) ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
2258 gl_error( ctx
, GL_INVALID_ENUM
, "glGetDoublev" );
2266 _mesa_GetFloatv( GLenum pname
, GLfloat
*params
)
2268 GET_CURRENT_CONTEXT(ctx
);
2270 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
2271 GLuint texTransformUnit
= ctx
->Texture
.CurrentTransformUnit
;
2272 const struct gl_texture_unit
*textureUnit
= &ctx
->Texture
.Unit
[texUnit
];
2274 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx
, "glGetFloatv");
2276 if (MESA_VERBOSE
& VERBOSE_API
)
2277 fprintf(stderr
, "glGetFloatv %s\n", gl_lookup_enum_by_nr(pname
));
2280 case GL_ACCUM_RED_BITS
:
2281 *params
= (GLfloat
) ctx
->Visual
->AccumRedBits
;
2283 case GL_ACCUM_GREEN_BITS
:
2284 *params
= (GLfloat
) ctx
->Visual
->AccumGreenBits
;
2286 case GL_ACCUM_BLUE_BITS
:
2287 *params
= (GLfloat
) ctx
->Visual
->AccumBlueBits
;
2289 case GL_ACCUM_ALPHA_BITS
:
2290 *params
= (GLfloat
) ctx
->Visual
->AccumAlphaBits
;
2292 case GL_ACCUM_CLEAR_VALUE
:
2293 params
[0] = ctx
->Accum
.ClearColor
[0];
2294 params
[1] = ctx
->Accum
.ClearColor
[1];
2295 params
[2] = ctx
->Accum
.ClearColor
[2];
2296 params
[3] = ctx
->Accum
.ClearColor
[3];
2299 *params
= ctx
->Pixel
.AlphaBias
;
2302 *params
= (GLfloat
) ctx
->Visual
->AlphaBits
;
2304 case GL_ALPHA_SCALE
:
2305 *params
= ctx
->Pixel
.AlphaScale
;
2308 *params
= (GLfloat
) ctx
->Color
.AlphaEnabled
;
2310 case GL_ALPHA_TEST_FUNC
:
2311 *params
= ENUM_TO_FLOAT(ctx
->Color
.AlphaFunc
);
2313 case GL_ALPHA_TEST_REF
:
2314 *params
= (GLfloat
) ctx
->Color
.AlphaRef
/ 255.0;
2316 case GL_ATTRIB_STACK_DEPTH
:
2317 *params
= (GLfloat
) (ctx
->AttribStackDepth
);
2319 case GL_AUTO_NORMAL
:
2320 *params
= (GLfloat
) ctx
->Eval
.AutoNormal
;
2322 case GL_AUX_BUFFERS
:
2323 *params
= (GLfloat
) ctx
->Const
.NumAuxBuffers
;
2326 *params
= (GLfloat
) ctx
->Color
.BlendEnabled
;
2329 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
2332 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
2334 case GL_BLEND_SRC_RGB_EXT
:
2335 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendSrcRGB
);
2337 case GL_BLEND_DST_RGB_EXT
:
2338 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendDstRGB
);
2340 case GL_BLEND_SRC_ALPHA_EXT
:
2341 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendSrcA
);
2343 case GL_BLEND_DST_ALPHA_EXT
:
2344 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendDstA
);
2346 case GL_BLEND_EQUATION_EXT
:
2347 *params
= ENUM_TO_FLOAT(ctx
->Color
.BlendEquation
);
2349 case GL_BLEND_COLOR_EXT
:
2350 params
[0] = ctx
->Color
.BlendColor
[0];
2351 params
[1] = ctx
->Color
.BlendColor
[1];
2352 params
[2] = ctx
->Color
.BlendColor
[2];
2353 params
[3] = ctx
->Color
.BlendColor
[3];
2356 *params
= ctx
->Pixel
.BlueBias
;
2359 *params
= (GLfloat
) ctx
->Visual
->BlueBits
;
2362 *params
= ctx
->Pixel
.BlueScale
;
2364 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
2365 *params
= (GLfloat
) (ctx
->ClientAttribStackDepth
);
2367 case GL_CLIP_PLANE0
:
2368 case GL_CLIP_PLANE1
:
2369 case GL_CLIP_PLANE2
:
2370 case GL_CLIP_PLANE3
:
2371 case GL_CLIP_PLANE4
:
2372 case GL_CLIP_PLANE5
:
2373 *params
= (GLfloat
) ctx
->Transform
.ClipEnabled
[pname
-GL_CLIP_PLANE0
];
2375 case GL_COLOR_CLEAR_VALUE
:
2376 params
[0] = (GLfloat
) ctx
->Color
.ClearColor
[0];
2377 params
[1] = (GLfloat
) ctx
->Color
.ClearColor
[1];
2378 params
[2] = (GLfloat
) ctx
->Color
.ClearColor
[2];
2379 params
[3] = (GLfloat
) ctx
->Color
.ClearColor
[3];
2381 case GL_COLOR_MATERIAL
:
2382 *params
= (GLfloat
) ctx
->Light
.ColorMaterialEnabled
;
2384 case GL_COLOR_MATERIAL_FACE
:
2385 *params
= ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialFace
);
2387 case GL_COLOR_MATERIAL_PARAMETER
:
2388 *params
= ENUM_TO_FLOAT(ctx
->Light
.ColorMaterialMode
);
2390 case GL_COLOR_WRITEMASK
:
2391 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1.0F
: 0.0F
;
2392 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1.0F
: 0.0F
;
2393 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1.0F
: 0.0F
;
2394 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1.0F
: 0.0F
;
2397 *params
= (GLfloat
) ctx
->Polygon
.CullFlag
;
2399 case GL_CULL_FACE_MODE
:
2400 *params
= ENUM_TO_FLOAT(ctx
->Polygon
.CullFaceMode
);
2402 case GL_CURRENT_COLOR
:
2403 UBYTE_RGBA_TO_FLOAT_RGBA(params
, ctx
->Current
.ByteColor
);
2405 case GL_CURRENT_INDEX
:
2406 *params
= (GLfloat
) ctx
->Current
.Index
;
2408 case GL_CURRENT_NORMAL
:
2409 params
[0] = ctx
->Current
.Normal
[0];
2410 params
[1] = ctx
->Current
.Normal
[1];
2411 params
[2] = ctx
->Current
.Normal
[2];
2413 case GL_CURRENT_RASTER_COLOR
:
2414 params
[0] = ctx
->Current
.RasterColor
[0];
2415 params
[1] = ctx
->Current
.RasterColor
[1];
2416 params
[2] = ctx
->Current
.RasterColor
[2];
2417 params
[3] = ctx
->Current
.RasterColor
[3];
2419 case GL_CURRENT_RASTER_DISTANCE
:
2420 params
[0] = ctx
->Current
.RasterDistance
;
2422 case GL_CURRENT_RASTER_INDEX
:
2423 *params
= (GLfloat
) ctx
->Current
.RasterIndex
;
2425 case GL_CURRENT_RASTER_POSITION
:
2426 params
[0] = ctx
->Current
.RasterPos
[0];
2427 params
[1] = ctx
->Current
.RasterPos
[1];
2428 params
[2] = ctx
->Current
.RasterPos
[2];
2429 params
[3] = ctx
->Current
.RasterPos
[3];
2431 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
2432 params
[0] = ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][0];
2433 params
[1] = ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][1];
2434 params
[2] = ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][2];
2435 params
[3] = ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][3];
2437 case GL_CURRENT_RASTER_POSITION_VALID
:
2438 *params
= (GLfloat
) ctx
->Current
.RasterPosValid
;
2440 case GL_CURRENT_TEXTURE_COORDS
:
2441 params
[0] = (GLfloat
) ctx
->Current
.Texcoord
[texTransformUnit
][0];
2442 params
[1] = (GLfloat
) ctx
->Current
.Texcoord
[texTransformUnit
][1];
2443 params
[2] = (GLfloat
) ctx
->Current
.Texcoord
[texTransformUnit
][2];
2444 params
[3] = (GLfloat
) ctx
->Current
.Texcoord
[texTransformUnit
][3];
2447 *params
= (GLfloat
) ctx
->Pixel
.DepthBias
;
2450 *params
= (GLfloat
) ctx
->Visual
->DepthBits
;
2452 case GL_DEPTH_CLEAR_VALUE
:
2453 *params
= (GLfloat
) ctx
->Depth
.Clear
;
2456 *params
= ENUM_TO_FLOAT(ctx
->Depth
.Func
);
2458 case GL_DEPTH_RANGE
:
2459 params
[0] = (GLfloat
) ctx
->Viewport
.Near
;
2460 params
[1] = (GLfloat
) ctx
->Viewport
.Far
;
2462 case GL_DEPTH_SCALE
:
2463 *params
= (GLfloat
) ctx
->Pixel
.DepthScale
;
2466 *params
= (GLfloat
) ctx
->Depth
.Test
;
2468 case GL_DEPTH_WRITEMASK
:
2469 *params
= (GLfloat
) ctx
->Depth
.Mask
;
2472 *params
= (GLfloat
) ctx
->Color
.DitherFlag
;
2474 case GL_DOUBLEBUFFER
:
2475 *params
= (GLfloat
) ctx
->Visual
->DBflag
;
2477 case GL_DRAW_BUFFER
:
2478 *params
= ENUM_TO_FLOAT(ctx
->Color
.DrawBuffer
);
2481 *params
= (GLfloat
) ctx
->Current
.EdgeFlag
;
2483 case GL_FEEDBACK_BUFFER_SIZE
:
2484 *params
= (GLfloat
) ctx
->Feedback
.BufferSize
;
2486 case GL_FEEDBACK_BUFFER_TYPE
:
2487 *params
= ENUM_TO_FLOAT(ctx
->Feedback
.Type
);
2490 *params
= (GLfloat
) ctx
->Fog
.Enabled
;
2493 params
[0] = ctx
->Fog
.Color
[0];
2494 params
[1] = ctx
->Fog
.Color
[1];
2495 params
[2] = ctx
->Fog
.Color
[2];
2496 params
[3] = ctx
->Fog
.Color
[3];
2498 case GL_FOG_DENSITY
:
2499 *params
= ctx
->Fog
.Density
;
2502 *params
= ctx
->Fog
.End
;
2505 *params
= ENUM_TO_FLOAT(ctx
->Hint
.Fog
);
2508 *params
= ctx
->Fog
.Index
;
2511 *params
= ENUM_TO_FLOAT(ctx
->Fog
.Mode
);
2514 *params
= ctx
->Fog
.Start
;
2517 *params
= ENUM_TO_FLOAT(ctx
->Polygon
.FrontFace
);
2520 *params
= (GLfloat
) ctx
->Pixel
.GreenBias
;
2523 *params
= (GLfloat
) ctx
->Visual
->GreenBits
;
2525 case GL_GREEN_SCALE
:
2526 *params
= (GLfloat
) ctx
->Pixel
.GreenScale
;
2529 *params
= (GLfloat
) ctx
->Pixel
.HistogramEnabled
;
2532 *params
= (GLfloat
) ctx
->Visual
->IndexBits
;
2534 case GL_INDEX_CLEAR_VALUE
:
2535 *params
= (GLfloat
) ctx
->Color
.ClearIndex
;
2538 *params
= ctx
->Visual
->RGBAflag
? 0.0F
: 1.0F
;
2540 case GL_INDEX_OFFSET
:
2541 *params
= (GLfloat
) ctx
->Pixel
.IndexOffset
;
2543 case GL_INDEX_SHIFT
:
2544 *params
= (GLfloat
) ctx
->Pixel
.IndexShift
;
2546 case GL_INDEX_WRITEMASK
:
2547 *params
= (GLfloat
) ctx
->Color
.IndexMask
;
2557 *params
= (GLfloat
) ctx
->Light
.Light
[pname
-GL_LIGHT0
].Enabled
;
2560 *params
= (GLfloat
) ctx
->Light
.Enabled
;
2562 case GL_LIGHT_MODEL_AMBIENT
:
2563 params
[0] = ctx
->Light
.Model
.Ambient
[0];
2564 params
[1] = ctx
->Light
.Model
.Ambient
[1];
2565 params
[2] = ctx
->Light
.Model
.Ambient
[2];
2566 params
[3] = ctx
->Light
.Model
.Ambient
[3];
2568 case GL_LIGHT_MODEL_COLOR_CONTROL
:
2569 params
[0] = ENUM_TO_FLOAT(ctx
->Light
.Model
.ColorControl
);
2571 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
2572 *params
= (GLfloat
) ctx
->Light
.Model
.LocalViewer
;
2574 case GL_LIGHT_MODEL_TWO_SIDE
:
2575 *params
= (GLfloat
) ctx
->Light
.Model
.TwoSide
;
2577 case GL_LINE_SMOOTH
:
2578 *params
= (GLfloat
) ctx
->Line
.SmoothFlag
;
2580 case GL_LINE_SMOOTH_HINT
:
2581 *params
= ENUM_TO_FLOAT(ctx
->Hint
.LineSmooth
);
2583 case GL_LINE_STIPPLE
:
2584 *params
= (GLfloat
) ctx
->Line
.StippleFlag
;
2586 case GL_LINE_STIPPLE_PATTERN
:
2587 *params
= (GLfloat
) ctx
->Line
.StipplePattern
;
2589 case GL_LINE_STIPPLE_REPEAT
:
2590 *params
= (GLfloat
) ctx
->Line
.StippleFactor
;
2593 *params
= (GLfloat
) ctx
->Line
.Width
;
2595 case GL_LINE_WIDTH_GRANULARITY
:
2596 *params
= (GLfloat
) ctx
->Const
.LineWidthGranularity
;
2598 case GL_LINE_WIDTH_RANGE
:
2599 params
[0] = (GLfloat
) ctx
->Const
.MinLineWidthAA
;
2600 params
[1] = (GLfloat
) ctx
->Const
.MaxLineWidthAA
;
2602 case GL_ALIASED_LINE_WIDTH_RANGE
:
2603 params
[0] = (GLfloat
) ctx
->Const
.MinLineWidth
;
2604 params
[1] = (GLfloat
) ctx
->Const
.MaxLineWidth
;
2607 *params
= (GLfloat
) ctx
->List
.ListBase
;
2610 *params
= (GLfloat
) ctx
->CurrentListNum
;
2613 *params
= ctx
->ExecuteFlag
? ENUM_TO_FLOAT(GL_COMPILE_AND_EXECUTE
)
2614 : ENUM_TO_FLOAT(GL_COMPILE
);
2616 case GL_INDEX_LOGIC_OP
:
2617 *params
= (GLfloat
) ctx
->Color
.IndexLogicOpEnabled
;
2619 case GL_COLOR_LOGIC_OP
:
2620 *params
= (GLfloat
) ctx
->Color
.ColorLogicOpEnabled
;
2622 case GL_LOGIC_OP_MODE
:
2623 *params
= ENUM_TO_FLOAT(ctx
->Color
.LogicOp
);
2625 case GL_MAP1_COLOR_4
:
2626 *params
= (GLfloat
) ctx
->Eval
.Map1Color4
;
2628 case GL_MAP1_GRID_DOMAIN
:
2629 params
[0] = ctx
->Eval
.MapGrid1u1
;
2630 params
[1] = ctx
->Eval
.MapGrid1u2
;
2632 case GL_MAP1_GRID_SEGMENTS
:
2633 *params
= (GLfloat
) ctx
->Eval
.MapGrid1un
;
2636 *params
= (GLfloat
) ctx
->Eval
.Map1Index
;
2638 case GL_MAP1_NORMAL
:
2639 *params
= (GLfloat
) ctx
->Eval
.Map1Normal
;
2641 case GL_MAP1_TEXTURE_COORD_1
:
2642 *params
= (GLfloat
) ctx
->Eval
.Map1TextureCoord1
;
2644 case GL_MAP1_TEXTURE_COORD_2
:
2645 *params
= (GLfloat
) ctx
->Eval
.Map1TextureCoord2
;
2647 case GL_MAP1_TEXTURE_COORD_3
:
2648 *params
= (GLfloat
) ctx
->Eval
.Map1TextureCoord3
;
2650 case GL_MAP1_TEXTURE_COORD_4
:
2651 *params
= (GLfloat
) ctx
->Eval
.Map1TextureCoord4
;
2653 case GL_MAP1_VERTEX_3
:
2654 *params
= (GLfloat
) ctx
->Eval
.Map1Vertex3
;
2656 case GL_MAP1_VERTEX_4
:
2657 *params
= (GLfloat
) ctx
->Eval
.Map1Vertex4
;
2659 case GL_MAP2_COLOR_4
:
2660 *params
= (GLfloat
) ctx
->Eval
.Map2Color4
;
2662 case GL_MAP2_GRID_DOMAIN
:
2663 params
[0] = ctx
->Eval
.MapGrid2u1
;
2664 params
[1] = ctx
->Eval
.MapGrid2u2
;
2665 params
[2] = ctx
->Eval
.MapGrid2v1
;
2666 params
[3] = ctx
->Eval
.MapGrid2v2
;
2668 case GL_MAP2_GRID_SEGMENTS
:
2669 params
[0] = (GLfloat
) ctx
->Eval
.MapGrid2un
;
2670 params
[1] = (GLfloat
) ctx
->Eval
.MapGrid2vn
;
2673 *params
= (GLfloat
) ctx
->Eval
.Map2Index
;
2675 case GL_MAP2_NORMAL
:
2676 *params
= (GLfloat
) ctx
->Eval
.Map2Normal
;
2678 case GL_MAP2_TEXTURE_COORD_1
:
2679 *params
= ctx
->Eval
.Map2TextureCoord1
;
2681 case GL_MAP2_TEXTURE_COORD_2
:
2682 *params
= ctx
->Eval
.Map2TextureCoord2
;
2684 case GL_MAP2_TEXTURE_COORD_3
:
2685 *params
= ctx
->Eval
.Map2TextureCoord3
;
2687 case GL_MAP2_TEXTURE_COORD_4
:
2688 *params
= ctx
->Eval
.Map2TextureCoord4
;
2690 case GL_MAP2_VERTEX_3
:
2691 *params
= (GLfloat
) ctx
->Eval
.Map2Vertex3
;
2693 case GL_MAP2_VERTEX_4
:
2694 *params
= (GLfloat
) ctx
->Eval
.Map2Vertex4
;
2697 *params
= (GLfloat
) ctx
->Pixel
.MapColorFlag
;
2699 case GL_MAP_STENCIL
:
2700 *params
= (GLfloat
) ctx
->Pixel
.MapStencilFlag
;
2702 case GL_MATRIX_MODE
:
2703 *params
= ENUM_TO_FLOAT(ctx
->Transform
.MatrixMode
);
2705 case GL_MAX_ATTRIB_STACK_DEPTH
:
2706 *params
= (GLfloat
) MAX_ATTRIB_STACK_DEPTH
;
2708 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
2709 *params
= (GLfloat
) MAX_CLIENT_ATTRIB_STACK_DEPTH
;
2711 case GL_MAX_CLIP_PLANES
:
2712 *params
= (GLfloat
) MAX_CLIP_PLANES
;
2714 case GL_MAX_ELEMENTS_VERTICES
: /* GL_VERSION_1_2 */
2715 *params
= (GLfloat
) VB_MAX
;
2717 case GL_MAX_ELEMENTS_INDICES
: /* GL_VERSION_1_2 */
2718 *params
= (GLfloat
) VB_MAX
;
2720 case GL_MAX_EVAL_ORDER
:
2721 *params
= (GLfloat
) MAX_EVAL_ORDER
;
2724 *params
= (GLfloat
) MAX_LIGHTS
;
2726 case GL_MAX_LIST_NESTING
:
2727 *params
= (GLfloat
) MAX_LIST_NESTING
;
2729 case GL_MAX_MODELVIEW_STACK_DEPTH
:
2730 *params
= (GLfloat
) MAX_MODELVIEW_STACK_DEPTH
;
2732 case GL_MAX_NAME_STACK_DEPTH
:
2733 *params
= (GLfloat
) MAX_NAME_STACK_DEPTH
;
2735 case GL_MAX_PIXEL_MAP_TABLE
:
2736 *params
= (GLfloat
) MAX_PIXEL_MAP_TABLE
;
2738 case GL_MAX_PROJECTION_STACK_DEPTH
:
2739 *params
= (GLfloat
) MAX_PROJECTION_STACK_DEPTH
;
2741 case GL_MAX_TEXTURE_SIZE
:
2742 case GL_MAX_3D_TEXTURE_SIZE
:
2743 *params
= (GLfloat
) ctx
->Const
.MaxTextureSize
;
2745 case GL_MAX_TEXTURE_STACK_DEPTH
:
2746 *params
= (GLfloat
) MAX_TEXTURE_STACK_DEPTH
;
2748 case GL_MAX_VIEWPORT_DIMS
:
2749 params
[0] = (GLfloat
) MAX_WIDTH
;
2750 params
[1] = (GLfloat
) MAX_HEIGHT
;
2753 *params
= (GLfloat
) ctx
->Pixel
.MinMaxEnabled
;
2755 case GL_MODELVIEW_MATRIX
:
2756 for (i
=0;i
<16;i
++) {
2757 params
[i
] = ctx
->ModelView
.m
[i
];
2760 case GL_MODELVIEW_STACK_DEPTH
:
2761 *params
= (GLfloat
) (ctx
->ModelViewStackDepth
+ 1);
2763 case GL_NAME_STACK_DEPTH
:
2764 *params
= (GLfloat
) ctx
->Select
.NameStackDepth
;
2767 *params
= (GLfloat
) ctx
->Transform
.Normalize
;
2769 case GL_PACK_ALIGNMENT
:
2770 *params
= (GLfloat
) ctx
->Pack
.Alignment
;
2772 case GL_PACK_LSB_FIRST
:
2773 *params
= (GLfloat
) ctx
->Pack
.LsbFirst
;
2775 case GL_PACK_ROW_LENGTH
:
2776 *params
= (GLfloat
) ctx
->Pack
.RowLength
;
2778 case GL_PACK_SKIP_PIXELS
:
2779 *params
= (GLfloat
) ctx
->Pack
.SkipPixels
;
2781 case GL_PACK_SKIP_ROWS
:
2782 *params
= (GLfloat
) ctx
->Pack
.SkipRows
;
2784 case GL_PACK_SWAP_BYTES
:
2785 *params
= (GLfloat
) ctx
->Pack
.SwapBytes
;
2787 case GL_PACK_SKIP_IMAGES_EXT
:
2788 *params
= (GLfloat
) ctx
->Pack
.SkipImages
;
2790 case GL_PACK_IMAGE_HEIGHT_EXT
:
2791 *params
= (GLfloat
) ctx
->Pack
.ImageHeight
;
2793 case GL_PERSPECTIVE_CORRECTION_HINT
:
2794 *params
= ENUM_TO_FLOAT(ctx
->Hint
.PerspectiveCorrection
);
2796 case GL_PIXEL_MAP_A_TO_A_SIZE
:
2797 *params
= (GLfloat
) ctx
->Pixel
.MapAtoAsize
;
2799 case GL_PIXEL_MAP_B_TO_B_SIZE
:
2800 *params
= (GLfloat
) ctx
->Pixel
.MapBtoBsize
;
2802 case GL_PIXEL_MAP_G_TO_G_SIZE
:
2803 *params
= (GLfloat
) ctx
->Pixel
.MapGtoGsize
;
2805 case GL_PIXEL_MAP_I_TO_A_SIZE
:
2806 *params
= (GLfloat
) ctx
->Pixel
.MapItoAsize
;
2808 case GL_PIXEL_MAP_I_TO_B_SIZE
:
2809 *params
= (GLfloat
) ctx
->Pixel
.MapItoBsize
;
2811 case GL_PIXEL_MAP_I_TO_G_SIZE
:
2812 *params
= (GLfloat
) ctx
->Pixel
.MapItoGsize
;
2814 case GL_PIXEL_MAP_I_TO_I_SIZE
:
2815 *params
= (GLfloat
) ctx
->Pixel
.MapItoIsize
;
2817 case GL_PIXEL_MAP_I_TO_R_SIZE
:
2818 *params
= (GLfloat
) ctx
->Pixel
.MapItoRsize
;
2820 case GL_PIXEL_MAP_R_TO_R_SIZE
:
2821 *params
= (GLfloat
) ctx
->Pixel
.MapRtoRsize
;
2823 case GL_PIXEL_MAP_S_TO_S_SIZE
:
2824 *params
= (GLfloat
) ctx
->Pixel
.MapStoSsize
;
2827 *params
= (GLfloat
) ctx
->Point
.UserSize
;
2829 case GL_POINT_SIZE_GRANULARITY
:
2830 *params
= (GLfloat
) ctx
->Const
.PointSizeGranularity
;
2832 case GL_POINT_SIZE_RANGE
:
2833 params
[0] = (GLfloat
) ctx
->Const
.MinPointSizeAA
;
2834 params
[1] = (GLfloat
) ctx
->Const
.MaxPointSizeAA
;
2836 case GL_ALIASED_POINT_SIZE_RANGE
:
2837 params
[0] = (GLfloat
) ctx
->Const
.MinPointSize
;
2838 params
[1] = (GLfloat
) ctx
->Const
.MaxPointSize
;
2840 case GL_POINT_SMOOTH
:
2841 *params
= (GLfloat
) ctx
->Point
.SmoothFlag
;
2843 case GL_POINT_SMOOTH_HINT
:
2844 *params
= ENUM_TO_FLOAT(ctx
->Hint
.PointSmooth
);
2846 case GL_POINT_SIZE_MIN_EXT
:
2847 *params
= (GLfloat
) (ctx
->Point
.MinSize
);
2849 case GL_POINT_SIZE_MAX_EXT
:
2850 *params
= (GLfloat
) (ctx
->Point
.MaxSize
);
2852 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
2853 *params
= (GLfloat
) (ctx
->Point
.Threshold
);
2855 case GL_DISTANCE_ATTENUATION_EXT
:
2856 params
[0] = (GLfloat
) (ctx
->Point
.Params
[0]);
2857 params
[1] = (GLfloat
) (ctx
->Point
.Params
[1]);
2858 params
[2] = (GLfloat
) (ctx
->Point
.Params
[2]);
2860 case GL_POLYGON_MODE
:
2861 params
[0] = ENUM_TO_FLOAT(ctx
->Polygon
.FrontMode
);
2862 params
[1] = ENUM_TO_FLOAT(ctx
->Polygon
.BackMode
);
2864 #ifdef GL_EXT_polygon_offset
2865 case GL_POLYGON_OFFSET_BIAS_EXT
:
2866 *params
= ctx
->Polygon
.OffsetUnits
;
2869 case GL_POLYGON_OFFSET_FACTOR
:
2870 *params
= ctx
->Polygon
.OffsetFactor
;
2872 case GL_POLYGON_OFFSET_UNITS
:
2873 *params
= ctx
->Polygon
.OffsetUnits
;
2875 case GL_POLYGON_SMOOTH
:
2876 *params
= (GLfloat
) ctx
->Polygon
.SmoothFlag
;
2878 case GL_POLYGON_SMOOTH_HINT
:
2879 *params
= ENUM_TO_FLOAT(ctx
->Hint
.PolygonSmooth
);
2881 case GL_POLYGON_STIPPLE
:
2882 *params
= (GLfloat
) ctx
->Polygon
.StippleFlag
;
2884 case GL_PROJECTION_MATRIX
:
2885 for (i
=0;i
<16;i
++) {
2886 params
[i
] = ctx
->ProjectionMatrix
.m
[i
];
2889 case GL_PROJECTION_STACK_DEPTH
:
2890 *params
= (GLfloat
) (ctx
->ProjectionStackDepth
+ 1);
2892 case GL_READ_BUFFER
:
2893 *params
= ENUM_TO_FLOAT(ctx
->Pixel
.ReadBuffer
);
2896 *params
= ctx
->Pixel
.RedBias
;
2899 *params
= (GLfloat
) ctx
->Visual
->RedBits
;
2902 *params
= ctx
->Pixel
.RedScale
;
2904 case GL_RENDER_MODE
:
2905 *params
= ENUM_TO_FLOAT(ctx
->RenderMode
);
2908 *params
= (GLfloat
) ctx
->Visual
->RGBAflag
;
2910 case GL_SCISSOR_BOX
:
2911 params
[0] = (GLfloat
) ctx
->Scissor
.X
;
2912 params
[1] = (GLfloat
) ctx
->Scissor
.Y
;
2913 params
[2] = (GLfloat
) ctx
->Scissor
.Width
;
2914 params
[3] = (GLfloat
) ctx
->Scissor
.Height
;
2916 case GL_SCISSOR_TEST
:
2917 *params
= (GLfloat
) ctx
->Scissor
.Enabled
;
2919 case GL_SELECTION_BUFFER_SIZE
:
2920 *params
= (GLfloat
) ctx
->Select
.BufferSize
;
2922 case GL_SHADE_MODEL
:
2923 *params
= ENUM_TO_FLOAT(ctx
->Light
.ShadeModel
);
2925 case GL_SHARED_TEXTURE_PALETTE_EXT
:
2926 *params
= (GLfloat
) ctx
->Texture
.SharedPalette
;
2928 case GL_STENCIL_BITS
:
2929 *params
= (GLfloat
) ctx
->Visual
->StencilBits
;
2931 case GL_STENCIL_CLEAR_VALUE
:
2932 *params
= (GLfloat
) ctx
->Stencil
.Clear
;
2934 case GL_STENCIL_FAIL
:
2935 *params
= ENUM_TO_FLOAT(ctx
->Stencil
.FailFunc
);
2937 case GL_STENCIL_FUNC
:
2938 *params
= ENUM_TO_FLOAT(ctx
->Stencil
.Function
);
2940 case GL_STENCIL_PASS_DEPTH_FAIL
:
2941 *params
= ENUM_TO_FLOAT(ctx
->Stencil
.ZFailFunc
);
2943 case GL_STENCIL_PASS_DEPTH_PASS
:
2944 *params
= ENUM_TO_FLOAT(ctx
->Stencil
.ZPassFunc
);
2946 case GL_STENCIL_REF
:
2947 *params
= (GLfloat
) ctx
->Stencil
.Ref
;
2949 case GL_STENCIL_TEST
:
2950 *params
= (GLfloat
) ctx
->Stencil
.Enabled
;
2952 case GL_STENCIL_VALUE_MASK
:
2953 *params
= (GLfloat
) ctx
->Stencil
.ValueMask
;
2955 case GL_STENCIL_WRITEMASK
:
2956 *params
= (GLfloat
) ctx
->Stencil
.WriteMask
;
2959 *params
= (GLfloat
) ctx
->Visual
->StereoFlag
;
2961 case GL_SUBPIXEL_BITS
:
2962 *params
= (GLfloat
) ctx
->Const
.SubPixelBits
;
2965 *params
= _mesa_IsEnabled(GL_TEXTURE_1D
) ? 1.0 : 0.0;
2968 *params
= _mesa_IsEnabled(GL_TEXTURE_2D
) ? 1.0 : 0.0;
2971 *params
= _mesa_IsEnabled(GL_TEXTURE_3D
) ? 1.0 : 0.0;
2973 case GL_TEXTURE_BINDING_1D
:
2974 *params
= (GLfloat
) textureUnit
->CurrentD
[1]->Name
;
2976 case GL_TEXTURE_BINDING_2D
:
2977 *params
= (GLfloat
) textureUnit
->CurrentD
[2]->Name
;
2979 case GL_TEXTURE_BINDING_3D
:
2980 *params
= (GLfloat
) textureUnit
->CurrentD
[2]->Name
;
2982 case GL_TEXTURE_ENV_COLOR
:
2983 params
[0] = textureUnit
->EnvColor
[0];
2984 params
[1] = textureUnit
->EnvColor
[1];
2985 params
[2] = textureUnit
->EnvColor
[2];
2986 params
[3] = textureUnit
->EnvColor
[3];
2988 case GL_TEXTURE_ENV_MODE
:
2989 *params
= ENUM_TO_FLOAT(textureUnit
->EnvMode
);
2991 case GL_TEXTURE_GEN_S
:
2992 *params
= (textureUnit
->TexGenEnabled
& S_BIT
) ? 1.0 : 0.0;
2994 case GL_TEXTURE_GEN_T
:
2995 *params
= (textureUnit
->TexGenEnabled
& T_BIT
) ? 1.0 : 0.0;
2997 case GL_TEXTURE_GEN_R
:
2998 *params
= (textureUnit
->TexGenEnabled
& R_BIT
) ? 1.0 : 0.0;
3000 case GL_TEXTURE_GEN_Q
:
3001 *params
= (textureUnit
->TexGenEnabled
& Q_BIT
) ? 1.0 : 0.0;
3003 case GL_TEXTURE_MATRIX
:
3004 for (i
=0;i
<16;i
++) {
3005 params
[i
] = ctx
->TextureMatrix
[texTransformUnit
].m
[i
];
3008 case GL_TEXTURE_STACK_DEPTH
:
3009 *params
= (GLfloat
) (ctx
->TextureStackDepth
[texTransformUnit
] + 1);
3011 case GL_UNPACK_ALIGNMENT
:
3012 *params
= (GLfloat
) ctx
->Unpack
.Alignment
;
3014 case GL_UNPACK_LSB_FIRST
:
3015 *params
= (GLfloat
) ctx
->Unpack
.LsbFirst
;
3017 case GL_UNPACK_ROW_LENGTH
:
3018 *params
= (GLfloat
) ctx
->Unpack
.RowLength
;
3020 case GL_UNPACK_SKIP_PIXELS
:
3021 *params
= (GLfloat
) ctx
->Unpack
.SkipPixels
;
3023 case GL_UNPACK_SKIP_ROWS
:
3024 *params
= (GLfloat
) ctx
->Unpack
.SkipRows
;
3026 case GL_UNPACK_SWAP_BYTES
:
3027 *params
= (GLfloat
) ctx
->Unpack
.SwapBytes
;
3029 case GL_UNPACK_SKIP_IMAGES_EXT
:
3030 *params
= (GLfloat
) ctx
->Unpack
.SkipImages
;
3032 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
3033 *params
= (GLfloat
) ctx
->Unpack
.ImageHeight
;
3036 params
[0] = (GLfloat
) ctx
->Viewport
.X
;
3037 params
[1] = (GLfloat
) ctx
->Viewport
.Y
;
3038 params
[2] = (GLfloat
) ctx
->Viewport
.Width
;
3039 params
[3] = (GLfloat
) ctx
->Viewport
.Height
;
3042 *params
= (GLfloat
) ctx
->Pixel
.ZoomX
;
3045 *params
= (GLfloat
) ctx
->Pixel
.ZoomY
;
3047 case GL_VERTEX_ARRAY
:
3048 *params
= (GLfloat
) ctx
->Array
.Vertex
.Enabled
;
3050 case GL_VERTEX_ARRAY_SIZE
:
3051 *params
= (GLfloat
) ctx
->Array
.Vertex
.Size
;
3053 case GL_VERTEX_ARRAY_TYPE
:
3054 *params
= ENUM_TO_FLOAT(ctx
->Array
.Vertex
.Type
);
3056 case GL_VERTEX_ARRAY_STRIDE
:
3057 *params
= (GLfloat
) ctx
->Array
.Vertex
.Stride
;
3059 case GL_VERTEX_ARRAY_COUNT_EXT
:
3062 case GL_NORMAL_ARRAY
:
3063 *params
= (GLfloat
) ctx
->Array
.Normal
.Enabled
;
3065 case GL_NORMAL_ARRAY_TYPE
:
3066 *params
= ENUM_TO_FLOAT(ctx
->Array
.Normal
.Type
);
3068 case GL_NORMAL_ARRAY_STRIDE
:
3069 *params
= (GLfloat
) ctx
->Array
.Normal
.Stride
;
3071 case GL_NORMAL_ARRAY_COUNT_EXT
:
3074 case GL_COLOR_ARRAY
:
3075 *params
= (GLfloat
) ctx
->Array
.Color
.Enabled
;
3077 case GL_COLOR_ARRAY_SIZE
:
3078 *params
= (GLfloat
) ctx
->Array
.Color
.Size
;
3080 case GL_COLOR_ARRAY_TYPE
:
3081 *params
= ENUM_TO_FLOAT(ctx
->Array
.Color
.Type
);
3083 case GL_COLOR_ARRAY_STRIDE
:
3084 *params
= (GLfloat
) ctx
->Array
.Color
.Stride
;
3086 case GL_COLOR_ARRAY_COUNT_EXT
:
3089 case GL_INDEX_ARRAY
:
3090 *params
= (GLfloat
) ctx
->Array
.Index
.Enabled
;
3092 case GL_INDEX_ARRAY_TYPE
:
3093 *params
= ENUM_TO_FLOAT(ctx
->Array
.Index
.Type
);
3095 case GL_INDEX_ARRAY_STRIDE
:
3096 *params
= (GLfloat
) ctx
->Array
.Index
.Stride
;
3098 case GL_INDEX_ARRAY_COUNT_EXT
:
3101 case GL_TEXTURE_COORD_ARRAY
:
3102 *params
= (GLfloat
) ctx
->Array
.TexCoord
[texUnit
].Enabled
;
3104 case GL_TEXTURE_COORD_ARRAY_SIZE
:
3105 *params
= (GLfloat
) ctx
->Array
.TexCoord
[texUnit
].Size
;
3107 case GL_TEXTURE_COORD_ARRAY_TYPE
:
3108 *params
= ENUM_TO_FLOAT(ctx
->Array
.TexCoord
[texUnit
].Type
);
3110 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
3111 *params
= (GLfloat
) ctx
->Array
.TexCoord
[texUnit
].Stride
;
3113 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
3116 case GL_EDGE_FLAG_ARRAY
:
3117 *params
= (GLfloat
) ctx
->Array
.EdgeFlag
.Enabled
;
3119 case GL_EDGE_FLAG_ARRAY_STRIDE
:
3120 *params
= (GLfloat
) ctx
->Array
.EdgeFlag
.Stride
;
3122 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
3126 case GL_MAX_TEXTURE_UNITS_ARB
:
3127 *params
= (GLfloat
) ctx
->Const
.MaxTextureUnits
;
3129 case GL_ACTIVE_TEXTURE_ARB
:
3130 *params
= (GLfloat
) (GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
);
3132 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
3133 *params
= (GLfloat
) (GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
);
3136 /* GL_PGI_misc_hints */
3137 case GL_STRICT_DEPTHFUNC_HINT_PGI
:
3138 *params
= ENUM_TO_FLOAT(GL_NICEST
);
3140 case GL_STRICT_LIGHTING_HINT_PGI
:
3141 *params
= ENUM_TO_FLOAT(ctx
->Hint
.StrictLighting
);
3143 case GL_STRICT_SCISSOR_HINT_PGI
:
3144 case GL_FULL_STIPPLE_HINT_PGI
:
3145 *params
= ENUM_TO_FLOAT(GL_TRUE
);
3147 case GL_CONSERVE_MEMORY_HINT_PGI
:
3148 *params
= ENUM_TO_FLOAT(GL_FALSE
);
3150 case GL_ALWAYS_FAST_HINT_PGI
:
3151 *params
= (GLfloat
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
3152 ctx
->Hint
.AllowDrawFrg
== GL_FALSE
&&
3153 ctx
->Hint
.AllowDrawMem
== GL_FALSE
);
3155 case GL_ALWAYS_SOFT_HINT_PGI
:
3156 *params
= (GLfloat
) (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
3157 ctx
->Hint
.AllowDrawFrg
== GL_TRUE
&&
3158 ctx
->Hint
.AllowDrawMem
== GL_TRUE
);
3160 case GL_ALLOW_DRAW_OBJ_HINT_PGI
:
3161 *params
= (GLfloat
) GL_TRUE
;
3163 case GL_ALLOW_DRAW_WIN_HINT_PGI
:
3164 *params
= (GLfloat
) ctx
->Hint
.AllowDrawWin
;
3166 case GL_ALLOW_DRAW_FRG_HINT_PGI
:
3167 *params
= (GLfloat
) ctx
->Hint
.AllowDrawFrg
;
3169 case GL_ALLOW_DRAW_MEM_HINT_PGI
:
3170 *params
= (GLfloat
) ctx
->Hint
.AllowDrawMem
;
3172 case GL_CLIP_NEAR_HINT_PGI
:
3173 case GL_CLIP_FAR_HINT_PGI
:
3174 *params
= ENUM_TO_FLOAT(GL_TRUE
);
3176 case GL_WIDE_LINE_HINT_PGI
:
3177 *params
= ENUM_TO_FLOAT(GL_DONT_CARE
);
3179 case GL_BACK_NORMALS_HINT_PGI
:
3180 *params
= ENUM_TO_FLOAT(GL_TRUE
);
3182 case GL_NATIVE_GRAPHICS_HANDLE_PGI
:
3186 /* GL_EXT_compiled_vertex_array */
3187 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
3188 *params
= (GLfloat
) ctx
->Array
.LockFirst
;
3190 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
3191 *params
= (GLfloat
) ctx
->Array
.LockCount
;
3194 /* GL_ARB_transpose_matrix */
3195 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
3196 /* don't have a color matrix */
3198 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
3199 gl_matrix_transposef(params
, ctx
->ModelView
.m
);
3201 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
3202 gl_matrix_transposef(params
, ctx
->ProjectionMatrix
.m
);
3204 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
3205 gl_matrix_transposef(params
, ctx
->TextureMatrix
[texTransformUnit
].m
);
3208 /* GL_HP_occlusion_test */
3209 case GL_OCCLUSION_TEST_HP
:
3210 if (ctx
->Extensions
.HaveHpOcclusionTest
) {
3211 *params
= (GLfloat
) ctx
->Depth
.OcclusionTest
;
3214 gl_error( ctx
, GL_INVALID_ENUM
, "glGetFloatv" );
3217 case GL_OCCLUSION_TEST_RESULT_HP
:
3218 if (ctx
->Extensions
.HaveHpOcclusionTest
) {
3219 if (ctx
->Depth
.OcclusionTest
)
3220 *params
= (GLfloat
) ctx
->OcclusionResult
;
3222 *params
= (GLfloat
) ctx
->OcclusionResultSaved
;
3223 /* reset flag now */
3224 ctx
->OcclusionResult
= GL_FALSE
;
3225 ctx
->OcclusionResultSaved
= GL_FALSE
;
3228 gl_error( ctx
, GL_INVALID_ENUM
, "glGetFloatv" );
3232 /* GL_SGIS_pixel_texture */
3233 case GL_PIXEL_TEXTURE_SGIS
:
3234 *params
= (GLfloat
) ctx
->Pixel
.PixelTextureEnabled
;
3237 /* GL_SGIX_pixel_texture */
3238 case GL_PIXEL_TEX_GEN_SGIX
:
3239 *params
= (GLfloat
) ctx
->Pixel
.PixelTextureEnabled
;
3241 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
3242 *params
= (GLfloat
) pixel_texgen_mode(ctx
);
3245 /* GL_SGI_color_matrix (also in 1.2 imaging) */
3246 case GL_COLOR_MATRIX_SGI
:
3247 for (i
=0;i
<16;i
++) {
3248 params
[i
] = ctx
->ColorMatrix
.m
[i
];
3251 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
3252 *params
= (GLfloat
) (ctx
->ColorStackDepth
+ 1);
3254 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
3255 *params
= (GLfloat
) MAX_COLOR_STACK_DEPTH
;
3257 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
3258 *params
= ctx
->Pixel
.PostColorMatrixScale
[0];
3260 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
3261 *params
= ctx
->Pixel
.PostColorMatrixScale
[1];
3263 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
3264 *params
= ctx
->Pixel
.PostColorMatrixScale
[2];
3266 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
3267 *params
= ctx
->Pixel
.PostColorMatrixScale
[3];
3269 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
3270 *params
= ctx
->Pixel
.PostColorMatrixBias
[0];
3272 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
3273 *params
= ctx
->Pixel
.PostColorMatrixBias
[1];
3275 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
3276 *params
= ctx
->Pixel
.PostColorMatrixBias
[2];
3278 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
3279 *params
= ctx
->Pixel
.PostColorMatrixBias
[3];
3282 /* GL_EXT_convolution (also in 1.2 imaging) */
3283 case GL_MAX_CONVOLUTION_WIDTH
:
3284 *params
= (GLfloat
) ctx
->Const
.MaxConvolutionWidth
;
3286 case GL_MAX_CONVOLUTION_HEIGHT
:
3287 *params
= (GLfloat
) ctx
->Const
.MaxConvolutionHeight
;
3289 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
3290 *params
= ctx
->Pixel
.PostConvolutionScale
[0];
3292 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
3293 *params
= ctx
->Pixel
.PostConvolutionScale
[1];
3295 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
3296 *params
= ctx
->Pixel
.PostConvolutionScale
[2];
3298 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
3299 *params
= ctx
->Pixel
.PostConvolutionScale
[3];
3301 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
3302 *params
= ctx
->Pixel
.PostConvolutionBias
[0];
3304 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
3305 *params
= ctx
->Pixel
.PostConvolutionBias
[1];
3307 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
3308 *params
= ctx
->Pixel
.PostConvolutionBias
[2];
3310 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
3311 *params
= ctx
->Pixel
.PostConvolutionBias
[2];
3314 /* GL_SGI_color_table (also in 1.2 imaging */
3315 case GL_COLOR_TABLE_SGI
:
3316 *params
= (GLfloat
) ctx
->Pixel
.ColorTableEnabled
;
3318 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
3319 *params
= (GLfloat
) ctx
->Pixel
.PostConvolutionColorTableEnabled
;
3321 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
3322 *params
= (GLfloat
) ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
3326 gl_error( ctx
, GL_INVALID_ENUM
, "glGetFloatv" );
3334 _mesa_GetIntegerv( GLenum pname
, GLint
*params
)
3336 GET_CURRENT_CONTEXT(ctx
);
3338 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
3339 GLuint texTransformUnit
= ctx
->Texture
.CurrentTransformUnit
;
3340 const struct gl_texture_unit
*textureUnit
= &ctx
->Texture
.Unit
[texUnit
];
3342 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx
, "glGetIntegerv");
3344 if (MESA_VERBOSE
& VERBOSE_API
)
3345 fprintf(stderr
, "glGetIntegerv %s\n", gl_lookup_enum_by_nr(pname
));
3348 case GL_ACCUM_RED_BITS
:
3349 *params
= (GLint
) ctx
->Visual
->AccumRedBits
;
3351 case GL_ACCUM_GREEN_BITS
:
3352 *params
= (GLint
) ctx
->Visual
->AccumGreenBits
;
3354 case GL_ACCUM_BLUE_BITS
:
3355 *params
= (GLint
) ctx
->Visual
->AccumBlueBits
;
3357 case GL_ACCUM_ALPHA_BITS
:
3358 *params
= (GLint
) ctx
->Visual
->AccumAlphaBits
;
3360 case GL_ACCUM_CLEAR_VALUE
:
3361 params
[0] = FLOAT_TO_INT( ctx
->Accum
.ClearColor
[0] );
3362 params
[1] = FLOAT_TO_INT( ctx
->Accum
.ClearColor
[1] );
3363 params
[2] = FLOAT_TO_INT( ctx
->Accum
.ClearColor
[2] );
3364 params
[3] = FLOAT_TO_INT( ctx
->Accum
.ClearColor
[3] );
3367 *params
= (GLint
) ctx
->Pixel
.AlphaBias
;
3370 *params
= ctx
->Visual
->AlphaBits
;
3372 case GL_ALPHA_SCALE
:
3373 *params
= (GLint
) ctx
->Pixel
.AlphaScale
;
3376 *params
= (GLint
) ctx
->Color
.AlphaEnabled
;
3378 case GL_ALPHA_TEST_REF
:
3379 *params
= FLOAT_TO_INT( (GLfloat
) ctx
->Color
.AlphaRef
/ 255.0 );
3381 case GL_ALPHA_TEST_FUNC
:
3382 *params
= (GLint
) ctx
->Color
.AlphaFunc
;
3384 case GL_ATTRIB_STACK_DEPTH
:
3385 *params
= (GLint
) (ctx
->AttribStackDepth
);
3387 case GL_AUTO_NORMAL
:
3388 *params
= (GLint
) ctx
->Eval
.AutoNormal
;
3390 case GL_AUX_BUFFERS
:
3391 *params
= (GLint
) ctx
->Const
.NumAuxBuffers
;
3394 *params
= (GLint
) ctx
->Color
.BlendEnabled
;
3397 *params
= (GLint
) ctx
->Color
.BlendDstRGB
;
3400 *params
= (GLint
) ctx
->Color
.BlendSrcRGB
;
3402 case GL_BLEND_SRC_RGB_EXT
:
3403 *params
= (GLint
) ctx
->Color
.BlendSrcRGB
;
3405 case GL_BLEND_DST_RGB_EXT
:
3406 *params
= (GLint
) ctx
->Color
.BlendDstRGB
;
3408 case GL_BLEND_SRC_ALPHA_EXT
:
3409 *params
= (GLint
) ctx
->Color
.BlendSrcA
;
3411 case GL_BLEND_DST_ALPHA_EXT
:
3412 *params
= (GLint
) ctx
->Color
.BlendDstA
;
3414 case GL_BLEND_EQUATION_EXT
:
3415 *params
= (GLint
) ctx
->Color
.BlendEquation
;
3417 case GL_BLEND_COLOR_EXT
:
3418 params
[0] = FLOAT_TO_INT( ctx
->Color
.BlendColor
[0] );
3419 params
[1] = FLOAT_TO_INT( ctx
->Color
.BlendColor
[1] );
3420 params
[2] = FLOAT_TO_INT( ctx
->Color
.BlendColor
[2] );
3421 params
[3] = FLOAT_TO_INT( ctx
->Color
.BlendColor
[3] );
3424 *params
= (GLint
) ctx
->Pixel
.BlueBias
;
3427 *params
= (GLint
) ctx
->Visual
->BlueBits
;
3430 *params
= (GLint
) ctx
->Pixel
.BlueScale
;
3432 case GL_CLIENT_ATTRIB_STACK_DEPTH
:
3433 *params
= (GLint
) (ctx
->ClientAttribStackDepth
);
3435 case GL_CLIP_PLANE0
:
3436 case GL_CLIP_PLANE1
:
3437 case GL_CLIP_PLANE2
:
3438 case GL_CLIP_PLANE3
:
3439 case GL_CLIP_PLANE4
:
3440 case GL_CLIP_PLANE5
:
3441 i
= (GLint
) (pname
- GL_CLIP_PLANE0
);
3442 *params
= (GLint
) ctx
->Transform
.ClipEnabled
[i
];
3444 case GL_COLOR_CLEAR_VALUE
:
3445 params
[0] = FLOAT_TO_INT( ctx
->Color
.ClearColor
[0] );
3446 params
[1] = FLOAT_TO_INT( ctx
->Color
.ClearColor
[1] );
3447 params
[2] = FLOAT_TO_INT( ctx
->Color
.ClearColor
[2] );
3448 params
[3] = FLOAT_TO_INT( ctx
->Color
.ClearColor
[3] );
3450 case GL_COLOR_MATERIAL
:
3451 *params
= (GLint
) ctx
->Light
.ColorMaterialEnabled
;
3453 case GL_COLOR_MATERIAL_FACE
:
3454 *params
= (GLint
) ctx
->Light
.ColorMaterialFace
;
3456 case GL_COLOR_MATERIAL_PARAMETER
:
3457 *params
= (GLint
) ctx
->Light
.ColorMaterialMode
;
3459 case GL_COLOR_WRITEMASK
:
3460 params
[0] = ctx
->Color
.ColorMask
[RCOMP
] ? 1 : 0;
3461 params
[1] = ctx
->Color
.ColorMask
[GCOMP
] ? 1 : 0;
3462 params
[2] = ctx
->Color
.ColorMask
[BCOMP
] ? 1 : 0;
3463 params
[3] = ctx
->Color
.ColorMask
[ACOMP
] ? 1 : 0;
3466 *params
= (GLint
) ctx
->Polygon
.CullFlag
;
3468 case GL_CULL_FACE_MODE
:
3469 *params
= (GLint
) ctx
->Polygon
.CullFaceMode
;
3471 case GL_CURRENT_COLOR
:
3472 params
[0] = FLOAT_TO_INT( UBYTE_COLOR_TO_FLOAT_COLOR( ctx
->Current
.ByteColor
[0] ) );
3473 params
[1] = FLOAT_TO_INT( UBYTE_COLOR_TO_FLOAT_COLOR( ctx
->Current
.ByteColor
[1] ) );
3474 params
[2] = FLOAT_TO_INT( UBYTE_COLOR_TO_FLOAT_COLOR( ctx
->Current
.ByteColor
[2] ) );
3475 params
[3] = FLOAT_TO_INT( UBYTE_COLOR_TO_FLOAT_COLOR( ctx
->Current
.ByteColor
[3] ) );
3477 case GL_CURRENT_INDEX
:
3478 *params
= (GLint
) ctx
->Current
.Index
;
3480 case GL_CURRENT_NORMAL
:
3481 params
[0] = FLOAT_TO_INT( ctx
->Current
.Normal
[0] );
3482 params
[1] = FLOAT_TO_INT( ctx
->Current
.Normal
[1] );
3483 params
[2] = FLOAT_TO_INT( ctx
->Current
.Normal
[2] );
3485 case GL_CURRENT_RASTER_COLOR
:
3486 params
[0] = FLOAT_TO_INT( ctx
->Current
.RasterColor
[0] );
3487 params
[1] = FLOAT_TO_INT( ctx
->Current
.RasterColor
[1] );
3488 params
[2] = FLOAT_TO_INT( ctx
->Current
.RasterColor
[2] );
3489 params
[3] = FLOAT_TO_INT( ctx
->Current
.RasterColor
[3] );
3491 case GL_CURRENT_RASTER_DISTANCE
:
3492 params
[0] = (GLint
) ctx
->Current
.RasterDistance
;
3494 case GL_CURRENT_RASTER_INDEX
:
3495 *params
= (GLint
) ctx
->Current
.RasterIndex
;
3497 case GL_CURRENT_RASTER_POSITION
:
3498 params
[0] = (GLint
) ctx
->Current
.RasterPos
[0];
3499 params
[1] = (GLint
) ctx
->Current
.RasterPos
[1];
3500 params
[2] = (GLint
) ctx
->Current
.RasterPos
[2];
3501 params
[3] = (GLint
) ctx
->Current
.RasterPos
[3];
3503 case GL_CURRENT_RASTER_TEXTURE_COORDS
:
3504 params
[0] = (GLint
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][0];
3505 params
[1] = (GLint
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][1];
3506 params
[2] = (GLint
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][2];
3507 params
[3] = (GLint
) ctx
->Current
.RasterMultiTexCoord
[texTransformUnit
][3];
3509 case GL_CURRENT_RASTER_POSITION_VALID
:
3510 *params
= (GLint
) ctx
->Current
.RasterPosValid
;
3512 case GL_CURRENT_TEXTURE_COORDS
:
3513 params
[0] = (GLint
) ctx
->Current
.Texcoord
[texTransformUnit
][0];
3514 params
[1] = (GLint
) ctx
->Current
.Texcoord
[texTransformUnit
][1];
3515 params
[2] = (GLint
) ctx
->Current
.Texcoord
[texTransformUnit
][2];
3516 params
[3] = (GLint
) ctx
->Current
.Texcoord
[texTransformUnit
][3];
3519 *params
= (GLint
) ctx
->Pixel
.DepthBias
;
3522 *params
= ctx
->Visual
->DepthBits
;
3524 case GL_DEPTH_CLEAR_VALUE
:
3525 *params
= (GLint
) ctx
->Depth
.Clear
;
3528 *params
= (GLint
) ctx
->Depth
.Func
;
3530 case GL_DEPTH_RANGE
:
3531 params
[0] = (GLint
) ctx
->Viewport
.Near
;
3532 params
[1] = (GLint
) ctx
->Viewport
.Far
;
3534 case GL_DEPTH_SCALE
:
3535 *params
= (GLint
) ctx
->Pixel
.DepthScale
;
3538 *params
= (GLint
) ctx
->Depth
.Test
;
3540 case GL_DEPTH_WRITEMASK
:
3541 *params
= (GLint
) ctx
->Depth
.Mask
;
3544 *params
= (GLint
) ctx
->Color
.DitherFlag
;
3546 case GL_DOUBLEBUFFER
:
3547 *params
= (GLint
) ctx
->Visual
->DBflag
;
3549 case GL_DRAW_BUFFER
:
3550 *params
= (GLint
) ctx
->Color
.DrawBuffer
;
3553 *params
= (GLint
) ctx
->Current
.EdgeFlag
;
3555 case GL_FEEDBACK_BUFFER_SIZE
:
3556 *params
= ctx
->Feedback
.BufferSize
;
3558 case GL_FEEDBACK_BUFFER_TYPE
:
3559 *params
= ctx
->Feedback
.Type
;
3562 *params
= (GLint
) ctx
->Fog
.Enabled
;
3565 params
[0] = FLOAT_TO_INT( ctx
->Fog
.Color
[0] );
3566 params
[1] = FLOAT_TO_INT( ctx
->Fog
.Color
[1] );
3567 params
[2] = FLOAT_TO_INT( ctx
->Fog
.Color
[2] );
3568 params
[3] = FLOAT_TO_INT( ctx
->Fog
.Color
[3] );
3570 case GL_FOG_DENSITY
:
3571 *params
= (GLint
) ctx
->Fog
.Density
;
3574 *params
= (GLint
) ctx
->Fog
.End
;
3577 *params
= (GLint
) ctx
->Hint
.Fog
;
3580 *params
= (GLint
) ctx
->Fog
.Index
;
3583 *params
= (GLint
) ctx
->Fog
.Mode
;
3586 *params
= (GLint
) ctx
->Fog
.Start
;
3589 *params
= (GLint
) ctx
->Polygon
.FrontFace
;
3592 *params
= (GLint
) ctx
->Pixel
.GreenBias
;
3595 *params
= (GLint
) ctx
->Visual
->GreenBits
;
3597 case GL_GREEN_SCALE
:
3598 *params
= (GLint
) ctx
->Pixel
.GreenScale
;
3601 *params
= (GLint
) ctx
->Pixel
.HistogramEnabled
;
3604 *params
= (GLint
) ctx
->Visual
->IndexBits
;
3606 case GL_INDEX_CLEAR_VALUE
:
3607 *params
= (GLint
) ctx
->Color
.ClearIndex
;
3610 *params
= ctx
->Visual
->RGBAflag
? 0 : 1;
3612 case GL_INDEX_OFFSET
:
3613 *params
= ctx
->Pixel
.IndexOffset
;
3615 case GL_INDEX_SHIFT
:
3616 *params
= ctx
->Pixel
.IndexShift
;
3618 case GL_INDEX_WRITEMASK
:
3619 *params
= (GLint
) ctx
->Color
.IndexMask
;
3629 *params
= (GLint
) ctx
->Light
.Light
[pname
-GL_LIGHT0
].Enabled
;
3632 *params
= (GLint
) ctx
->Light
.Enabled
;
3634 case GL_LIGHT_MODEL_AMBIENT
:
3635 params
[0] = FLOAT_TO_INT( ctx
->Light
.Model
.Ambient
[0] );
3636 params
[1] = FLOAT_TO_INT( ctx
->Light
.Model
.Ambient
[1] );
3637 params
[2] = FLOAT_TO_INT( ctx
->Light
.Model
.Ambient
[2] );
3638 params
[3] = FLOAT_TO_INT( ctx
->Light
.Model
.Ambient
[3] );
3640 case GL_LIGHT_MODEL_COLOR_CONTROL
:
3641 params
[0] = (GLint
) ctx
->Light
.Model
.ColorControl
;
3643 case GL_LIGHT_MODEL_LOCAL_VIEWER
:
3644 *params
= (GLint
) ctx
->Light
.Model
.LocalViewer
;
3646 case GL_LIGHT_MODEL_TWO_SIDE
:
3647 *params
= (GLint
) ctx
->Light
.Model
.TwoSide
;
3649 case GL_LINE_SMOOTH
:
3650 *params
= (GLint
) ctx
->Line
.SmoothFlag
;
3652 case GL_LINE_SMOOTH_HINT
:
3653 *params
= (GLint
) ctx
->Hint
.LineSmooth
;
3655 case GL_LINE_STIPPLE
:
3656 *params
= (GLint
) ctx
->Line
.StippleFlag
;
3658 case GL_LINE_STIPPLE_PATTERN
:
3659 *params
= (GLint
) ctx
->Line
.StipplePattern
;
3661 case GL_LINE_STIPPLE_REPEAT
:
3662 *params
= (GLint
) ctx
->Line
.StippleFactor
;
3665 *params
= (GLint
) ctx
->Line
.Width
;
3667 case GL_LINE_WIDTH_GRANULARITY
:
3668 *params
= (GLint
) ctx
->Const
.LineWidthGranularity
;
3670 case GL_LINE_WIDTH_RANGE
:
3671 params
[0] = (GLint
) ctx
->Const
.MinLineWidthAA
;
3672 params
[1] = (GLint
) ctx
->Const
.MaxLineWidthAA
;
3674 case GL_ALIASED_LINE_WIDTH_RANGE
:
3675 params
[0] = (GLint
) ctx
->Const
.MinLineWidth
;
3676 params
[1] = (GLint
) ctx
->Const
.MaxLineWidth
;
3679 *params
= (GLint
) ctx
->List
.ListBase
;
3682 *params
= (GLint
) ctx
->CurrentListNum
;
3685 *params
= ctx
->ExecuteFlag
? (GLint
) GL_COMPILE_AND_EXECUTE
3686 : (GLint
) GL_COMPILE
;
3688 case GL_INDEX_LOGIC_OP
:
3689 *params
= (GLint
) ctx
->Color
.IndexLogicOpEnabled
;
3691 case GL_COLOR_LOGIC_OP
:
3692 *params
= (GLint
) ctx
->Color
.ColorLogicOpEnabled
;
3694 case GL_LOGIC_OP_MODE
:
3695 *params
= (GLint
) ctx
->Color
.LogicOp
;
3697 case GL_MAP1_COLOR_4
:
3698 *params
= (GLint
) ctx
->Eval
.Map1Color4
;
3700 case GL_MAP1_GRID_DOMAIN
:
3701 params
[0] = (GLint
) ctx
->Eval
.MapGrid1u1
;
3702 params
[1] = (GLint
) ctx
->Eval
.MapGrid1u2
;
3704 case GL_MAP1_GRID_SEGMENTS
:
3705 *params
= (GLint
) ctx
->Eval
.MapGrid1un
;
3708 *params
= (GLint
) ctx
->Eval
.Map1Index
;
3710 case GL_MAP1_NORMAL
:
3711 *params
= (GLint
) ctx
->Eval
.Map1Normal
;
3713 case GL_MAP1_TEXTURE_COORD_1
:
3714 *params
= (GLint
) ctx
->Eval
.Map1TextureCoord1
;
3716 case GL_MAP1_TEXTURE_COORD_2
:
3717 *params
= (GLint
) ctx
->Eval
.Map1TextureCoord2
;
3719 case GL_MAP1_TEXTURE_COORD_3
:
3720 *params
= (GLint
) ctx
->Eval
.Map1TextureCoord3
;
3722 case GL_MAP1_TEXTURE_COORD_4
:
3723 *params
= (GLint
) ctx
->Eval
.Map1TextureCoord4
;
3725 case GL_MAP1_VERTEX_3
:
3726 *params
= (GLint
) ctx
->Eval
.Map1Vertex3
;
3728 case GL_MAP1_VERTEX_4
:
3729 *params
= (GLint
) ctx
->Eval
.Map1Vertex4
;
3731 case GL_MAP2_COLOR_4
:
3732 *params
= (GLint
) ctx
->Eval
.Map2Color4
;
3734 case GL_MAP2_GRID_DOMAIN
:
3735 params
[0] = (GLint
) ctx
->Eval
.MapGrid2u1
;
3736 params
[1] = (GLint
) ctx
->Eval
.MapGrid2u2
;
3737 params
[2] = (GLint
) ctx
->Eval
.MapGrid2v1
;
3738 params
[3] = (GLint
) ctx
->Eval
.MapGrid2v2
;
3740 case GL_MAP2_GRID_SEGMENTS
:
3741 params
[0] = (GLint
) ctx
->Eval
.MapGrid2un
;
3742 params
[1] = (GLint
) ctx
->Eval
.MapGrid2vn
;
3745 *params
= (GLint
) ctx
->Eval
.Map2Index
;
3747 case GL_MAP2_NORMAL
:
3748 *params
= (GLint
) ctx
->Eval
.Map2Normal
;
3750 case GL_MAP2_TEXTURE_COORD_1
:
3751 *params
= (GLint
) ctx
->Eval
.Map2TextureCoord1
;
3753 case GL_MAP2_TEXTURE_COORD_2
:
3754 *params
= (GLint
) ctx
->Eval
.Map2TextureCoord2
;
3756 case GL_MAP2_TEXTURE_COORD_3
:
3757 *params
= (GLint
) ctx
->Eval
.Map2TextureCoord3
;
3759 case GL_MAP2_TEXTURE_COORD_4
:
3760 *params
= (GLint
) ctx
->Eval
.Map2TextureCoord4
;
3762 case GL_MAP2_VERTEX_3
:
3763 *params
= (GLint
) ctx
->Eval
.Map2Vertex3
;
3765 case GL_MAP2_VERTEX_4
:
3766 *params
= (GLint
) ctx
->Eval
.Map2Vertex4
;
3769 *params
= (GLint
) ctx
->Pixel
.MapColorFlag
;
3771 case GL_MAP_STENCIL
:
3772 *params
= (GLint
) ctx
->Pixel
.MapStencilFlag
;
3774 case GL_MATRIX_MODE
:
3775 *params
= (GLint
) ctx
->Transform
.MatrixMode
;
3777 case GL_MAX_ATTRIB_STACK_DEPTH
:
3778 *params
= (GLint
) MAX_ATTRIB_STACK_DEPTH
;
3780 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
:
3781 *params
= (GLint
) MAX_CLIENT_ATTRIB_STACK_DEPTH
;
3783 case GL_MAX_CLIP_PLANES
:
3784 *params
= (GLint
) MAX_CLIP_PLANES
;
3786 case GL_MAX_ELEMENTS_VERTICES
: /* GL_VERSION_1_2 */
3789 case GL_MAX_ELEMENTS_INDICES
: /* GL_VERSION_1_2 */
3792 case GL_MAX_EVAL_ORDER
:
3793 *params
= (GLint
) MAX_EVAL_ORDER
;
3796 *params
= (GLint
) MAX_LIGHTS
;
3798 case GL_MAX_LIST_NESTING
:
3799 *params
= (GLint
) MAX_LIST_NESTING
;
3801 case GL_MAX_MODELVIEW_STACK_DEPTH
:
3802 *params
= (GLint
) MAX_MODELVIEW_STACK_DEPTH
;
3804 case GL_MAX_NAME_STACK_DEPTH
:
3805 *params
= (GLint
) MAX_NAME_STACK_DEPTH
;
3807 case GL_MAX_PIXEL_MAP_TABLE
:
3808 *params
= (GLint
) MAX_PIXEL_MAP_TABLE
;
3810 case GL_MAX_PROJECTION_STACK_DEPTH
:
3811 *params
= (GLint
) MAX_PROJECTION_STACK_DEPTH
;
3813 case GL_MAX_TEXTURE_SIZE
:
3814 case GL_MAX_3D_TEXTURE_SIZE
:
3815 *params
= ctx
->Const
.MaxTextureSize
;
3817 case GL_MAX_TEXTURE_STACK_DEPTH
:
3818 *params
= (GLint
) MAX_TEXTURE_STACK_DEPTH
;
3820 case GL_MAX_VIEWPORT_DIMS
:
3821 params
[0] = (GLint
) MAX_WIDTH
;
3822 params
[1] = (GLint
) MAX_HEIGHT
;
3825 *params
= (GLint
) ctx
->Pixel
.MinMaxEnabled
;
3827 case GL_MODELVIEW_MATRIX
:
3828 for (i
=0;i
<16;i
++) {
3829 params
[i
] = (GLint
) ctx
->ModelView
.m
[i
];
3832 case GL_MODELVIEW_STACK_DEPTH
:
3833 *params
= (GLint
) (ctx
->ModelViewStackDepth
+ 1);
3835 case GL_NAME_STACK_DEPTH
:
3836 *params
= (GLint
) ctx
->Select
.NameStackDepth
;
3839 *params
= (GLint
) ctx
->Transform
.Normalize
;
3841 case GL_PACK_ALIGNMENT
:
3842 *params
= ctx
->Pack
.Alignment
;
3844 case GL_PACK_LSB_FIRST
:
3845 *params
= (GLint
) ctx
->Pack
.LsbFirst
;
3847 case GL_PACK_ROW_LENGTH
:
3848 *params
= ctx
->Pack
.RowLength
;
3850 case GL_PACK_SKIP_PIXELS
:
3851 *params
= ctx
->Pack
.SkipPixels
;
3853 case GL_PACK_SKIP_ROWS
:
3854 *params
= ctx
->Pack
.SkipRows
;
3856 case GL_PACK_SWAP_BYTES
:
3857 *params
= (GLint
) ctx
->Pack
.SwapBytes
;
3859 case GL_PACK_SKIP_IMAGES_EXT
:
3860 *params
= ctx
->Pack
.SkipImages
;
3862 case GL_PACK_IMAGE_HEIGHT_EXT
:
3863 *params
= ctx
->Pack
.ImageHeight
;
3865 case GL_PERSPECTIVE_CORRECTION_HINT
:
3866 *params
= (GLint
) ctx
->Hint
.PerspectiveCorrection
;
3868 case GL_PIXEL_MAP_A_TO_A_SIZE
:
3869 *params
= ctx
->Pixel
.MapAtoAsize
;
3871 case GL_PIXEL_MAP_B_TO_B_SIZE
:
3872 *params
= ctx
->Pixel
.MapBtoBsize
;
3874 case GL_PIXEL_MAP_G_TO_G_SIZE
:
3875 *params
= ctx
->Pixel
.MapGtoGsize
;
3877 case GL_PIXEL_MAP_I_TO_A_SIZE
:
3878 *params
= ctx
->Pixel
.MapItoAsize
;
3880 case GL_PIXEL_MAP_I_TO_B_SIZE
:
3881 *params
= ctx
->Pixel
.MapItoBsize
;
3883 case GL_PIXEL_MAP_I_TO_G_SIZE
:
3884 *params
= ctx
->Pixel
.MapItoGsize
;
3886 case GL_PIXEL_MAP_I_TO_I_SIZE
:
3887 *params
= ctx
->Pixel
.MapItoIsize
;
3889 case GL_PIXEL_MAP_I_TO_R_SIZE
:
3890 *params
= ctx
->Pixel
.MapItoRsize
;
3892 case GL_PIXEL_MAP_R_TO_R_SIZE
:
3893 *params
= ctx
->Pixel
.MapRtoRsize
;
3895 case GL_PIXEL_MAP_S_TO_S_SIZE
:
3896 *params
= ctx
->Pixel
.MapStoSsize
;
3899 *params
= (GLint
) ctx
->Point
.UserSize
;
3901 case GL_POINT_SIZE_GRANULARITY
:
3902 *params
= (GLint
) ctx
->Const
.PointSizeGranularity
;
3904 case GL_POINT_SIZE_RANGE
:
3905 params
[0] = (GLint
) ctx
->Const
.MinPointSizeAA
;
3906 params
[1] = (GLint
) ctx
->Const
.MaxPointSizeAA
;
3908 case GL_ALIASED_POINT_SIZE_RANGE
:
3909 params
[0] = (GLint
) ctx
->Const
.MinPointSize
;
3910 params
[1] = (GLint
) ctx
->Const
.MaxPointSize
;
3912 case GL_POINT_SMOOTH
:
3913 *params
= (GLint
) ctx
->Point
.SmoothFlag
;
3915 case GL_POINT_SMOOTH_HINT
:
3916 *params
= (GLint
) ctx
->Hint
.PointSmooth
;
3918 case GL_POINT_SIZE_MIN_EXT
:
3919 *params
= (GLint
) (ctx
->Point
.MinSize
);
3921 case GL_POINT_SIZE_MAX_EXT
:
3922 *params
= (GLint
) (ctx
->Point
.MaxSize
);
3924 case GL_POINT_FADE_THRESHOLD_SIZE_EXT
:
3925 *params
= (GLint
) (ctx
->Point
.Threshold
);
3927 case GL_DISTANCE_ATTENUATION_EXT
:
3928 params
[0] = (GLint
) (ctx
->Point
.Params
[0]);
3929 params
[1] = (GLint
) (ctx
->Point
.Params
[1]);
3930 params
[2] = (GLint
) (ctx
->Point
.Params
[2]);
3932 case GL_POLYGON_MODE
:
3933 params
[0] = (GLint
) ctx
->Polygon
.FrontMode
;
3934 params
[1] = (GLint
) ctx
->Polygon
.BackMode
;
3936 case GL_POLYGON_OFFSET_BIAS_EXT
: /* GL_EXT_polygon_offset */
3937 *params
= (GLint
) ctx
->Polygon
.OffsetUnits
;
3939 case GL_POLYGON_OFFSET_FACTOR
:
3940 *params
= (GLint
) ctx
->Polygon
.OffsetFactor
;
3942 case GL_POLYGON_OFFSET_UNITS
:
3943 *params
= (GLint
) ctx
->Polygon
.OffsetUnits
;
3945 case GL_POLYGON_SMOOTH
:
3946 *params
= (GLint
) ctx
->Polygon
.SmoothFlag
;
3948 case GL_POLYGON_SMOOTH_HINT
:
3949 *params
= (GLint
) ctx
->Hint
.PolygonSmooth
;
3951 case GL_POLYGON_STIPPLE
:
3952 *params
= (GLint
) ctx
->Polygon
.StippleFlag
;
3954 case GL_PROJECTION_MATRIX
:
3955 for (i
=0;i
<16;i
++) {
3956 params
[i
] = (GLint
) ctx
->ProjectionMatrix
.m
[i
];
3959 case GL_PROJECTION_STACK_DEPTH
:
3960 *params
= (GLint
) (ctx
->ProjectionStackDepth
+ 1);
3962 case GL_READ_BUFFER
:
3963 *params
= (GLint
) ctx
->Pixel
.ReadBuffer
;
3966 *params
= (GLint
) ctx
->Pixel
.RedBias
;
3969 *params
= (GLint
) ctx
->Visual
->RedBits
;
3972 *params
= (GLint
) ctx
->Pixel
.RedScale
;
3974 case GL_RENDER_MODE
:
3975 *params
= (GLint
) ctx
->RenderMode
;
3978 *params
= (GLint
) ctx
->Visual
->RGBAflag
;
3980 case GL_SCISSOR_BOX
:
3981 params
[0] = (GLint
) ctx
->Scissor
.X
;
3982 params
[1] = (GLint
) ctx
->Scissor
.Y
;
3983 params
[2] = (GLint
) ctx
->Scissor
.Width
;
3984 params
[3] = (GLint
) ctx
->Scissor
.Height
;
3986 case GL_SCISSOR_TEST
:
3987 *params
= (GLint
) ctx
->Scissor
.Enabled
;
3989 case GL_SELECTION_BUFFER_SIZE
:
3990 *params
= (GLint
) ctx
->Select
.BufferSize
;
3992 case GL_SHADE_MODEL
:
3993 *params
= (GLint
) ctx
->Light
.ShadeModel
;
3995 case GL_SHARED_TEXTURE_PALETTE_EXT
:
3996 *params
= (GLint
) ctx
->Texture
.SharedPalette
;
3998 case GL_STENCIL_BITS
:
3999 *params
= ctx
->Visual
->StencilBits
;
4001 case GL_STENCIL_CLEAR_VALUE
:
4002 *params
= (GLint
) ctx
->Stencil
.Clear
;
4004 case GL_STENCIL_FAIL
:
4005 *params
= (GLint
) ctx
->Stencil
.FailFunc
;
4007 case GL_STENCIL_FUNC
:
4008 *params
= (GLint
) ctx
->Stencil
.Function
;
4010 case GL_STENCIL_PASS_DEPTH_FAIL
:
4011 *params
= (GLint
) ctx
->Stencil
.ZFailFunc
;
4013 case GL_STENCIL_PASS_DEPTH_PASS
:
4014 *params
= (GLint
) ctx
->Stencil
.ZPassFunc
;
4016 case GL_STENCIL_REF
:
4017 *params
= (GLint
) ctx
->Stencil
.Ref
;
4019 case GL_STENCIL_TEST
:
4020 *params
= (GLint
) ctx
->Stencil
.Enabled
;
4022 case GL_STENCIL_VALUE_MASK
:
4023 *params
= (GLint
) ctx
->Stencil
.ValueMask
;
4025 case GL_STENCIL_WRITEMASK
:
4026 *params
= (GLint
) ctx
->Stencil
.WriteMask
;
4029 *params
= (GLint
) ctx
->Visual
->StereoFlag
;
4031 case GL_SUBPIXEL_BITS
:
4032 *params
= ctx
->Const
.SubPixelBits
;
4035 *params
= _mesa_IsEnabled(GL_TEXTURE_1D
) ? 1 : 0;
4038 *params
= _mesa_IsEnabled(GL_TEXTURE_2D
) ? 1 : 0;
4041 *params
= _mesa_IsEnabled(GL_TEXTURE_3D
) ? 1 : 0;
4043 case GL_TEXTURE_BINDING_1D
:
4044 *params
= textureUnit
->CurrentD
[1]->Name
;
4046 case GL_TEXTURE_BINDING_2D
:
4047 *params
= textureUnit
->CurrentD
[2]->Name
;
4049 case GL_TEXTURE_BINDING_3D
:
4050 *params
= textureUnit
->CurrentD
[3]->Name
;
4052 case GL_TEXTURE_ENV_COLOR
:
4053 params
[0] = FLOAT_TO_INT( textureUnit
->EnvColor
[0] );
4054 params
[1] = FLOAT_TO_INT( textureUnit
->EnvColor
[1] );
4055 params
[2] = FLOAT_TO_INT( textureUnit
->EnvColor
[2] );
4056 params
[3] = FLOAT_TO_INT( textureUnit
->EnvColor
[3] );
4058 case GL_TEXTURE_ENV_MODE
:
4059 *params
= (GLint
) textureUnit
->EnvMode
;
4061 case GL_TEXTURE_GEN_S
:
4062 *params
= (textureUnit
->TexGenEnabled
& S_BIT
) ? 1 : 0;
4064 case GL_TEXTURE_GEN_T
:
4065 *params
= (textureUnit
->TexGenEnabled
& T_BIT
) ? 1 : 0;
4067 case GL_TEXTURE_GEN_R
:
4068 *params
= (textureUnit
->TexGenEnabled
& R_BIT
) ? 1 : 0;
4070 case GL_TEXTURE_GEN_Q
:
4071 *params
= (textureUnit
->TexGenEnabled
& Q_BIT
) ? 1 : 0;
4073 case GL_TEXTURE_MATRIX
:
4074 for (i
=0;i
<16;i
++) {
4075 params
[i
] = (GLint
) ctx
->TextureMatrix
[texTransformUnit
].m
[i
];
4078 case GL_TEXTURE_STACK_DEPTH
:
4079 *params
= (GLint
) (ctx
->TextureStackDepth
[texTransformUnit
] + 1);
4081 case GL_UNPACK_ALIGNMENT
:
4082 *params
= ctx
->Unpack
.Alignment
;
4084 case GL_UNPACK_LSB_FIRST
:
4085 *params
= (GLint
) ctx
->Unpack
.LsbFirst
;
4087 case GL_UNPACK_ROW_LENGTH
:
4088 *params
= ctx
->Unpack
.RowLength
;
4090 case GL_UNPACK_SKIP_PIXELS
:
4091 *params
= ctx
->Unpack
.SkipPixels
;
4093 case GL_UNPACK_SKIP_ROWS
:
4094 *params
= ctx
->Unpack
.SkipRows
;
4096 case GL_UNPACK_SWAP_BYTES
:
4097 *params
= (GLint
) ctx
->Unpack
.SwapBytes
;
4099 case GL_UNPACK_SKIP_IMAGES_EXT
:
4100 *params
= ctx
->Unpack
.SkipImages
;
4102 case GL_UNPACK_IMAGE_HEIGHT_EXT
:
4103 *params
= ctx
->Unpack
.ImageHeight
;
4106 params
[0] = (GLint
) ctx
->Viewport
.X
;
4107 params
[1] = (GLint
) ctx
->Viewport
.Y
;
4108 params
[2] = (GLint
) ctx
->Viewport
.Width
;
4109 params
[3] = (GLint
) ctx
->Viewport
.Height
;
4112 *params
= (GLint
) ctx
->Pixel
.ZoomX
;
4115 *params
= (GLint
) ctx
->Pixel
.ZoomY
;
4117 case GL_VERTEX_ARRAY
:
4118 *params
= (GLint
) ctx
->Array
.Vertex
.Enabled
;
4120 case GL_VERTEX_ARRAY_SIZE
:
4121 *params
= ctx
->Array
.Vertex
.Size
;
4123 case GL_VERTEX_ARRAY_TYPE
:
4124 *params
= ctx
->Array
.Vertex
.Type
;
4126 case GL_VERTEX_ARRAY_STRIDE
:
4127 *params
= ctx
->Array
.Vertex
.Stride
;
4129 case GL_VERTEX_ARRAY_COUNT_EXT
:
4132 case GL_NORMAL_ARRAY
:
4133 *params
= (GLint
) ctx
->Array
.Normal
.Enabled
;
4135 case GL_NORMAL_ARRAY_TYPE
:
4136 *params
= ctx
->Array
.Normal
.Type
;
4138 case GL_NORMAL_ARRAY_STRIDE
:
4139 *params
= ctx
->Array
.Normal
.Stride
;
4141 case GL_NORMAL_ARRAY_COUNT_EXT
:
4144 case GL_COLOR_ARRAY
:
4145 *params
= (GLint
) ctx
->Array
.Color
.Enabled
;
4147 case GL_COLOR_ARRAY_SIZE
:
4148 *params
= ctx
->Array
.Color
.Size
;
4150 case GL_COLOR_ARRAY_TYPE
:
4151 *params
= ctx
->Array
.Color
.Type
;
4153 case GL_COLOR_ARRAY_STRIDE
:
4154 *params
= ctx
->Array
.Color
.Stride
;
4156 case GL_COLOR_ARRAY_COUNT_EXT
:
4159 case GL_INDEX_ARRAY
:
4160 *params
= (GLint
) ctx
->Array
.Index
.Enabled
;
4162 case GL_INDEX_ARRAY_TYPE
:
4163 *params
= ctx
->Array
.Index
.Type
;
4165 case GL_INDEX_ARRAY_STRIDE
:
4166 *params
= ctx
->Array
.Index
.Stride
;
4168 case GL_INDEX_ARRAY_COUNT_EXT
:
4171 case GL_TEXTURE_COORD_ARRAY
:
4172 *params
= (GLint
) ctx
->Array
.TexCoord
[texUnit
].Enabled
;
4174 case GL_TEXTURE_COORD_ARRAY_SIZE
:
4175 *params
= ctx
->Array
.TexCoord
[texUnit
].Size
;
4177 case GL_TEXTURE_COORD_ARRAY_TYPE
:
4178 *params
= ctx
->Array
.TexCoord
[texUnit
].Type
;
4180 case GL_TEXTURE_COORD_ARRAY_STRIDE
:
4181 *params
= ctx
->Array
.TexCoord
[texUnit
].Stride
;
4183 case GL_TEXTURE_COORD_ARRAY_COUNT_EXT
:
4186 case GL_EDGE_FLAG_ARRAY
:
4187 *params
= (GLint
) ctx
->Array
.EdgeFlag
.Enabled
;
4189 case GL_EDGE_FLAG_ARRAY_STRIDE
:
4190 *params
= ctx
->Array
.EdgeFlag
.Stride
;
4192 case GL_EDGE_FLAG_ARRAY_COUNT_EXT
:
4196 case GL_MAX_TEXTURE_UNITS_ARB
:
4197 *params
= ctx
->Const
.MaxTextureUnits
;
4199 case GL_ACTIVE_TEXTURE_ARB
:
4200 *params
= GL_TEXTURE0_ARB
+ ctx
->Texture
.CurrentUnit
;
4202 case GL_CLIENT_ACTIVE_TEXTURE_ARB
:
4203 *params
= GL_TEXTURE0_ARB
+ ctx
->Array
.ActiveTexture
;
4206 /* GL_PGI_misc_hints */
4207 case GL_STRICT_DEPTHFUNC_HINT_PGI
:
4208 *params
= (GL_NICEST
);
4210 case GL_STRICT_LIGHTING_HINT_PGI
:
4211 *params
= (ctx
->Hint
.StrictLighting
);
4213 case GL_STRICT_SCISSOR_HINT_PGI
:
4214 case GL_FULL_STIPPLE_HINT_PGI
:
4215 *params
= (GL_TRUE
);
4217 case GL_CONSERVE_MEMORY_HINT_PGI
:
4218 *params
= (GL_FALSE
);
4220 case GL_ALWAYS_FAST_HINT_PGI
:
4221 *params
= (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
4222 ctx
->Hint
.AllowDrawFrg
== GL_FALSE
&&
4223 ctx
->Hint
.AllowDrawMem
== GL_FALSE
);
4225 case GL_ALWAYS_SOFT_HINT_PGI
:
4226 *params
= (ctx
->Hint
.AllowDrawWin
== GL_TRUE
&&
4227 ctx
->Hint
.AllowDrawFrg
== GL_TRUE
&&
4228 ctx
->Hint
.AllowDrawMem
== GL_TRUE
);
4230 case GL_ALLOW_DRAW_OBJ_HINT_PGI
:
4233 case GL_ALLOW_DRAW_WIN_HINT_PGI
:
4234 *params
= ctx
->Hint
.AllowDrawWin
;
4236 case GL_ALLOW_DRAW_FRG_HINT_PGI
:
4237 *params
= ctx
->Hint
.AllowDrawFrg
;
4239 case GL_ALLOW_DRAW_MEM_HINT_PGI
:
4240 *params
= ctx
->Hint
.AllowDrawMem
;
4242 case GL_CLIP_NEAR_HINT_PGI
:
4243 case GL_CLIP_FAR_HINT_PGI
:
4246 case GL_WIDE_LINE_HINT_PGI
:
4247 *params
= GL_DONT_CARE
;
4249 case GL_BACK_NORMALS_HINT_PGI
:
4250 *params
= (GL_TRUE
);
4252 case GL_NATIVE_GRAPHICS_HANDLE_PGI
:
4256 /* GL_EXT_compiled_vertex_array */
4257 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
:
4258 *params
= ctx
->Array
.LockFirst
;
4260 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
:
4261 *params
= ctx
->Array
.LockCount
;
4264 /* GL_ARB_transpose_matrix */
4265 case GL_TRANSPOSE_COLOR_MATRIX_ARB
:
4266 /* don't have a color matrix */
4268 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
:
4272 gl_matrix_transposef(tm
, ctx
->ModelView
.m
);
4273 for (i
=0;i
<16;i
++) {
4274 params
[i
] = (GLint
) tm
[i
];
4278 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB
:
4282 gl_matrix_transposef(tm
, ctx
->ProjectionMatrix
.m
);
4283 for (i
=0;i
<16;i
++) {
4284 params
[i
] = (GLint
) tm
[i
];
4288 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB
:
4292 gl_matrix_transposef(tm
, ctx
->TextureMatrix
[texTransformUnit
].m
);
4293 for (i
=0;i
<16;i
++) {
4294 params
[i
] = (GLint
) tm
[i
];
4299 /* GL_HP_occlusion_test */
4300 case GL_OCCLUSION_TEST_HP
:
4301 if (ctx
->Extensions
.HaveHpOcclusionTest
) {
4302 *params
= (GLint
) ctx
->Depth
.OcclusionTest
;
4305 gl_error( ctx
, GL_INVALID_ENUM
, "glGetIntegerv" );
4308 case GL_OCCLUSION_TEST_RESULT_HP
:
4309 if (ctx
->Extensions
.HaveHpOcclusionTest
) {
4310 if (ctx
->Depth
.OcclusionTest
)
4311 *params
= (GLint
) ctx
->OcclusionResult
;
4313 *params
= (GLint
) ctx
->OcclusionResultSaved
;
4314 /* reset flag now */
4315 ctx
->OcclusionResult
= GL_FALSE
;
4316 ctx
->OcclusionResultSaved
= GL_FALSE
;
4319 gl_error( ctx
, GL_INVALID_ENUM
, "glGetIntegerv" );
4323 /* GL_SGIS_pixel_texture */
4324 case GL_PIXEL_TEXTURE_SGIS
:
4325 *params
= (GLint
) ctx
->Pixel
.PixelTextureEnabled
;
4328 /* GL_SGIX_pixel_texture */
4329 case GL_PIXEL_TEX_GEN_SGIX
:
4330 *params
= (GLint
) ctx
->Pixel
.PixelTextureEnabled
;
4332 case GL_PIXEL_TEX_GEN_MODE_SGIX
:
4333 *params
= (GLint
) pixel_texgen_mode(ctx
);
4336 /* GL_SGI_color_matrix (also in 1.2 imaging) */
4337 case GL_COLOR_MATRIX_SGI
:
4338 for (i
=0;i
<16;i
++) {
4339 params
[i
] = (GLint
) ctx
->ColorMatrix
.m
[i
];
4342 case GL_COLOR_MATRIX_STACK_DEPTH_SGI
:
4343 *params
= ctx
->ColorStackDepth
+ 1;
4345 case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
:
4346 *params
= MAX_COLOR_STACK_DEPTH
;
4348 case GL_POST_COLOR_MATRIX_RED_SCALE_SGI
:
4349 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixScale
[0];
4351 case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
:
4352 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixScale
[1];
4354 case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
:
4355 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixScale
[2];
4357 case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
:
4358 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixScale
[3];
4360 case GL_POST_COLOR_MATRIX_RED_BIAS_SGI
:
4361 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixBias
[0];
4363 case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
:
4364 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixBias
[1];
4366 case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
:
4367 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixBias
[2];
4369 case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
:
4370 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixBias
[3];
4373 /* GL_EXT_convolution (also in 1.2 imaging) */
4374 case GL_MAX_CONVOLUTION_WIDTH
:
4375 *params
= ctx
->Const
.MaxConvolutionWidth
;
4377 case GL_MAX_CONVOLUTION_HEIGHT
:
4378 *params
= ctx
->Const
.MaxConvolutionHeight
;
4380 case GL_POST_CONVOLUTION_RED_SCALE_EXT
:
4381 *params
= (GLint
) ctx
->Pixel
.PostConvolutionScale
[0];
4383 case GL_POST_CONVOLUTION_GREEN_SCALE_EXT
:
4384 *params
= (GLint
) ctx
->Pixel
.PostConvolutionScale
[1];
4386 case GL_POST_CONVOLUTION_BLUE_SCALE_EXT
:
4387 *params
= (GLint
) ctx
->Pixel
.PostConvolutionScale
[2];
4389 case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
:
4390 *params
= (GLint
) ctx
->Pixel
.PostConvolutionScale
[3];
4392 case GL_POST_CONVOLUTION_RED_BIAS_EXT
:
4393 *params
= (GLint
) ctx
->Pixel
.PostConvolutionBias
[0];
4395 case GL_POST_CONVOLUTION_GREEN_BIAS_EXT
:
4396 *params
= (GLint
) ctx
->Pixel
.PostConvolutionBias
[1];
4398 case GL_POST_CONVOLUTION_BLUE_BIAS_EXT
:
4399 *params
= (GLint
) ctx
->Pixel
.PostConvolutionBias
[2];
4401 case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
:
4402 *params
= (GLint
) ctx
->Pixel
.PostConvolutionBias
[2];
4405 /* GL_SGI_color_table (also in 1.2 imaging */
4406 case GL_COLOR_TABLE_SGI
:
4407 *params
= (GLint
) ctx
->Pixel
.ColorTableEnabled
;
4409 case GL_POST_CONVOLUTION_COLOR_TABLE_SGI
:
4410 *params
= (GLint
) ctx
->Pixel
.PostConvolutionColorTableEnabled
;
4412 case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
:
4413 *params
= (GLint
) ctx
->Pixel
.PostColorMatrixColorTableEnabled
;
4417 gl_error( ctx
, GL_INVALID_ENUM
, "glGetIntegerv" );
4424 _mesa_GetPointerv( GLenum pname
, GLvoid
**params
)
4426 GET_CURRENT_CONTEXT(ctx
);
4427 GLuint texUnit
= ctx
->Texture
.CurrentUnit
;
4428 /*GLuint texTransformUnit = ctx->Texture.CurrentTransformUnit;*/
4430 if (MESA_VERBOSE
& VERBOSE_API
)
4431 fprintf(stderr
, "glGetPointerv %s\n", gl_lookup_enum_by_nr(pname
));
4434 case GL_VERTEX_ARRAY_POINTER
:
4435 *params
= ctx
->Array
.Vertex
.Ptr
;
4437 case GL_NORMAL_ARRAY_POINTER
:
4438 *params
= ctx
->Array
.Normal
.Ptr
;
4440 case GL_COLOR_ARRAY_POINTER
:
4441 *params
= ctx
->Array
.Color
.Ptr
;
4443 case GL_INDEX_ARRAY_POINTER
:
4444 *params
= ctx
->Array
.Index
.Ptr
;
4446 case GL_TEXTURE_COORD_ARRAY_POINTER
:
4447 *params
= ctx
->Array
.TexCoord
[texUnit
].Ptr
;
4449 case GL_EDGE_FLAG_ARRAY_POINTER
:
4450 *params
= ctx
->Array
.EdgeFlag
.Ptr
;
4452 case GL_FEEDBACK_BUFFER_POINTER
:
4453 *params
= ctx
->Feedback
.Buffer
;
4455 case GL_SELECTION_BUFFER_POINTER
:
4456 *params
= ctx
->Select
.Buffer
;
4459 gl_error( ctx
, GL_INVALID_ENUM
, "glGetPointerv" );
4467 _mesa_GetString( GLenum name
)
4469 GET_CURRENT_CONTEXT(ctx
);
4470 static char *vendor
= "Brian Paul";
4471 static char *renderer
= "Mesa";
4472 static char *version
= "1.2 Mesa 3.3 beta";
4474 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx
, "glGetString", 0);
4476 /* this is a required driver function */
4477 assert(ctx
->Driver
.GetString
);
4479 const GLubyte
*str
= (*ctx
->Driver
.GetString
)(ctx
, name
);
4485 return (const GLubyte
*) vendor
;
4487 return (const GLubyte
*) renderer
;
4489 return (const GLubyte
*) version
;
4491 return (GLubyte
*) gl_extensions_get_string( ctx
);
4493 gl_error( ctx
, GL_INVALID_ENUM
, "glGetString" );
4494 return (GLubyte
*) 0;
4501 * Execute a glGetError command
4504 _mesa_GetError( void )
4506 GET_CURRENT_CONTEXT(ctx
);
4508 GLenum e
= ctx
->ErrorValue
;
4510 ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL( ctx
, "glGetError", (GLenum
) 0);
4512 if (MESA_VERBOSE
& VERBOSE_API
)
4513 fprintf(stderr
, "glGetError <-- %s\n", gl_lookup_enum_by_nr(e
));
4515 ctx
->ErrorValue
= (GLenum
) GL_NO_ERROR
;