get.c revision 7117f1b4
17117f1b4Smrg
27117f1b4Smrg/***
37117f1b4Smrg ***  NOTE!!!  DO NOT EDIT THIS FILE!!!  IT IS GENERATED BY get_gen.py
47117f1b4Smrg ***/
57117f1b4Smrg
67117f1b4Smrg#include "glheader.h"
77117f1b4Smrg#include "context.h"
87117f1b4Smrg#include "enable.h"
97117f1b4Smrg#include "extensions.h"
107117f1b4Smrg#include "fbobject.h"
117117f1b4Smrg#include "get.h"
127117f1b4Smrg#include "macros.h"
137117f1b4Smrg#include "mtypes.h"
147117f1b4Smrg#include "state.h"
157117f1b4Smrg#include "texcompress.h"
167117f1b4Smrg
177117f1b4Smrg
187117f1b4Smrg#define FLOAT_TO_BOOLEAN(X)   ( (X) ? GL_TRUE : GL_FALSE )
197117f1b4Smrg
207117f1b4Smrg#define INT_TO_BOOLEAN(I)     ( (I) ? GL_TRUE : GL_FALSE )
217117f1b4Smrg
227117f1b4Smrg#define ENUM_TO_BOOLEAN(E)    ( (E) ? GL_TRUE : GL_FALSE )
237117f1b4Smrg#define ENUM_TO_INT(E)        ( (GLint) (E) )
247117f1b4Smrg#define ENUM_TO_FLOAT(E)      ( (GLfloat) (E) )
257117f1b4Smrg
267117f1b4Smrg#define BOOLEAN_TO_INT(B)     ( (GLint) (B) )
277117f1b4Smrg#define BOOLEAN_TO_FLOAT(B)   ( (B) ? 1.0F : 0.0F )
287117f1b4Smrg
297117f1b4Smrg
307117f1b4Smrg/*
317117f1b4Smrg * Check if named extension is enabled, if not generate error and return.
327117f1b4Smrg */
337117f1b4Smrg#define CHECK_EXT1(EXT1, FUNC)                                         \
347117f1b4Smrg   if (!ctx->Extensions.EXT1) {                                        \
357117f1b4Smrg      _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname);  \
367117f1b4Smrg      return;                                                          \
377117f1b4Smrg   }
387117f1b4Smrg
397117f1b4Smrg/*
407117f1b4Smrg * Check if either of two extensions is enabled.
417117f1b4Smrg */
427117f1b4Smrg#define CHECK_EXT2(EXT1, EXT2, FUNC)                                   \
437117f1b4Smrg   if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) {               \
447117f1b4Smrg      _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname);  \
457117f1b4Smrg      return;                                                          \
467117f1b4Smrg   }
477117f1b4Smrg
487117f1b4Smrg/*
497117f1b4Smrg * Check if either of three extensions is enabled.
507117f1b4Smrg */
517117f1b4Smrg#define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC)                             \
527117f1b4Smrg   if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 &&               \
537117f1b4Smrg       !ctx->Extensions.EXT3) {                                        \
547117f1b4Smrg      _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname);  \
557117f1b4Smrg      return;                                                          \
567117f1b4Smrg   }
577117f1b4Smrg
587117f1b4Smrg/*
597117f1b4Smrg * Check if either of four extensions is enabled.
607117f1b4Smrg */
617117f1b4Smrg#define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC)                       \
627117f1b4Smrg   if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 &&               \
637117f1b4Smrg       !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) {               \
647117f1b4Smrg      _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname);  \
657117f1b4Smrg      return;                                                          \
667117f1b4Smrg   }
677117f1b4Smrg
687117f1b4Smrg
697117f1b4Smrgvoid GLAPIENTRY
707117f1b4Smrg_mesa_GetBooleanv( GLenum pname, GLboolean *params )
717117f1b4Smrg{
727117f1b4Smrg   GET_CURRENT_CONTEXT(ctx);
737117f1b4Smrg   ASSERT_OUTSIDE_BEGIN_END(ctx);
747117f1b4Smrg
757117f1b4Smrg   if (!params)
767117f1b4Smrg      return;
777117f1b4Smrg
787117f1b4Smrg   if (ctx->NewState)
797117f1b4Smrg      _mesa_update_state(ctx);
807117f1b4Smrg
817117f1b4Smrg   if (ctx->Driver.GetBooleanv &&
827117f1b4Smrg       ctx->Driver.GetBooleanv(ctx, pname, params))
837117f1b4Smrg      return;
847117f1b4Smrg
857117f1b4Smrg   switch (pname) {
867117f1b4Smrg      case GL_ACCUM_RED_BITS:
877117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumRedBits);
887117f1b4Smrg         break;
897117f1b4Smrg      case GL_ACCUM_GREEN_BITS:
907117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumGreenBits);
917117f1b4Smrg         break;
927117f1b4Smrg      case GL_ACCUM_BLUE_BITS:
937117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumBlueBits);
947117f1b4Smrg         break;
957117f1b4Smrg      case GL_ACCUM_ALPHA_BITS:
967117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumAlphaBits);
977117f1b4Smrg         break;
987117f1b4Smrg      case GL_ACCUM_CLEAR_VALUE:
997117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[0]);
1007117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[1]);
1017117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[2]);
1027117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[3]);
1037117f1b4Smrg         break;
1047117f1b4Smrg      case GL_ALPHA_BIAS:
1057117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.AlphaBias);
1067117f1b4Smrg         break;
1077117f1b4Smrg      case GL_ALPHA_BITS:
1087117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.alphaBits);
1097117f1b4Smrg         break;
1107117f1b4Smrg      case GL_ALPHA_SCALE:
1117117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.AlphaScale);
1127117f1b4Smrg         break;
1137117f1b4Smrg      case GL_ALPHA_TEST:
1147117f1b4Smrg         params[0] = ctx->Color.AlphaEnabled;
1157117f1b4Smrg         break;
1167117f1b4Smrg      case GL_ALPHA_TEST_FUNC:
1177117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.AlphaFunc);
1187117f1b4Smrg         break;
1197117f1b4Smrg      case GL_ALPHA_TEST_REF:
1207117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Color.AlphaRef);
1217117f1b4Smrg         break;
1227117f1b4Smrg      case GL_ATTRIB_STACK_DEPTH:
1237117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->AttribStackDepth);
1247117f1b4Smrg         break;
1257117f1b4Smrg      case GL_AUTO_NORMAL:
1267117f1b4Smrg         params[0] = ctx->Eval.AutoNormal;
1277117f1b4Smrg         break;
1287117f1b4Smrg      case GL_AUX_BUFFERS:
1297117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.numAuxBuffers);
1307117f1b4Smrg         break;
1317117f1b4Smrg      case GL_BLEND:
1327117f1b4Smrg         params[0] = ctx->Color.BlendEnabled;
1337117f1b4Smrg         break;
1347117f1b4Smrg      case GL_BLEND_DST:
1357117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstRGB);
1367117f1b4Smrg         break;
1377117f1b4Smrg      case GL_BLEND_SRC:
1387117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcRGB);
1397117f1b4Smrg         break;
1407117f1b4Smrg      case GL_BLEND_SRC_RGB_EXT:
1417117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcRGB);
1427117f1b4Smrg         break;
1437117f1b4Smrg      case GL_BLEND_DST_RGB_EXT:
1447117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstRGB);
1457117f1b4Smrg         break;
1467117f1b4Smrg      case GL_BLEND_SRC_ALPHA_EXT:
1477117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcA);
1487117f1b4Smrg         break;
1497117f1b4Smrg      case GL_BLEND_DST_ALPHA_EXT:
1507117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstA);
1517117f1b4Smrg         break;
1527117f1b4Smrg      case GL_BLEND_EQUATION:
1537117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendEquationRGB );
1547117f1b4Smrg         break;
1557117f1b4Smrg      case GL_BLEND_EQUATION_ALPHA_EXT:
1567117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendEquationA );
1577117f1b4Smrg         break;
1587117f1b4Smrg      case GL_BLEND_COLOR_EXT:
1597117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[0]);
1607117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[1]);
1617117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[2]);
1627117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[3]);
1637117f1b4Smrg         break;
1647117f1b4Smrg      case GL_BLUE_BIAS:
1657117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.BlueBias);
1667117f1b4Smrg         break;
1677117f1b4Smrg      case GL_BLUE_BITS:
1687117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.blueBits);
1697117f1b4Smrg         break;
1707117f1b4Smrg      case GL_BLUE_SCALE:
1717117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.BlueScale);
1727117f1b4Smrg         break;
1737117f1b4Smrg      case GL_CLIENT_ATTRIB_STACK_DEPTH:
1747117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ClientAttribStackDepth);
1757117f1b4Smrg         break;
1767117f1b4Smrg      case GL_CLIP_PLANE0:
1777117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 0) & 1;
1787117f1b4Smrg         break;
1797117f1b4Smrg      case GL_CLIP_PLANE1:
1807117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 1) & 1;
1817117f1b4Smrg         break;
1827117f1b4Smrg      case GL_CLIP_PLANE2:
1837117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 2) & 1;
1847117f1b4Smrg         break;
1857117f1b4Smrg      case GL_CLIP_PLANE3:
1867117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 3) & 1;
1877117f1b4Smrg         break;
1887117f1b4Smrg      case GL_CLIP_PLANE4:
1897117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 4) & 1;
1907117f1b4Smrg         break;
1917117f1b4Smrg      case GL_CLIP_PLANE5:
1927117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 5) & 1;
1937117f1b4Smrg         break;
1947117f1b4Smrg      case GL_COLOR_CLEAR_VALUE:
1957117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[0]);
1967117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[1]);
1977117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[2]);
1987117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[3]);
1997117f1b4Smrg         break;
2007117f1b4Smrg      case GL_COLOR_MATERIAL:
2017117f1b4Smrg         params[0] = ctx->Light.ColorMaterialEnabled;
2027117f1b4Smrg         break;
2037117f1b4Smrg      case GL_COLOR_MATERIAL_FACE:
2047117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Light.ColorMaterialFace);
2057117f1b4Smrg         break;
2067117f1b4Smrg      case GL_COLOR_MATERIAL_PARAMETER:
2077117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Light.ColorMaterialMode);
2087117f1b4Smrg         break;
2097117f1b4Smrg      case GL_COLOR_WRITEMASK:
2107117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Color.ColorMask[RCOMP] ? 1 : 0);
2117117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Color.ColorMask[GCOMP] ? 1 : 0);
2127117f1b4Smrg         params[2] = INT_TO_BOOLEAN(ctx->Color.ColorMask[BCOMP] ? 1 : 0);
2137117f1b4Smrg         params[3] = INT_TO_BOOLEAN(ctx->Color.ColorMask[ACOMP] ? 1 : 0);
2147117f1b4Smrg         break;
2157117f1b4Smrg      case GL_CULL_FACE:
2167117f1b4Smrg         params[0] = ctx->Polygon.CullFlag;
2177117f1b4Smrg         break;
2187117f1b4Smrg      case GL_CULL_FACE_MODE:
2197117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.CullFaceMode);
2207117f1b4Smrg         break;
2217117f1b4Smrg      case GL_CURRENT_COLOR:
2227117f1b4Smrg         {
2237117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
2247117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]);
2257117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]);
2267117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]);
2277117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]);
2287117f1b4Smrg         }
2297117f1b4Smrg         break;
2307117f1b4Smrg      case GL_CURRENT_INDEX:
2317117f1b4Smrg         {
2327117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
2337117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]);
2347117f1b4Smrg         }
2357117f1b4Smrg         break;
2367117f1b4Smrg      case GL_CURRENT_NORMAL:
2377117f1b4Smrg         {
2387117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
2397117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]);
2407117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]);
2417117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]);
2427117f1b4Smrg         }
2437117f1b4Smrg         break;
2447117f1b4Smrg      case GL_CURRENT_RASTER_COLOR:
2457117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[0]);
2467117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[1]);
2477117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[2]);
2487117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[3]);
2497117f1b4Smrg         break;
2507117f1b4Smrg      case GL_CURRENT_RASTER_DISTANCE:
2517117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterDistance);
2527117f1b4Smrg         break;
2537117f1b4Smrg      case GL_CURRENT_RASTER_INDEX:
2547117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterIndex);
2557117f1b4Smrg         break;
2567117f1b4Smrg      case GL_CURRENT_RASTER_POSITION:
2577117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[0]);
2587117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[1]);
2597117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[2]);
2607117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[3]);
2617117f1b4Smrg         break;
2627117f1b4Smrg      case GL_CURRENT_RASTER_SECONDARY_COLOR:
2637117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[0]);
2647117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[1]);
2657117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[2]);
2667117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[3]);
2677117f1b4Smrg         break;
2687117f1b4Smrg      case GL_CURRENT_RASTER_TEXTURE_COORDS:
2697117f1b4Smrg         {
2707117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
2717117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][0]);
2727117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][1]);
2737117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][2]);
2747117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][3]);
2757117f1b4Smrg         }
2767117f1b4Smrg         break;
2777117f1b4Smrg      case GL_CURRENT_RASTER_POSITION_VALID:
2787117f1b4Smrg         params[0] = ctx->Current.RasterPosValid;
2797117f1b4Smrg         break;
2807117f1b4Smrg      case GL_CURRENT_TEXTURE_COORDS:
2817117f1b4Smrg         {
2827117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
2837117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]);
2847117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]);
2857117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]);
2867117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]);
2877117f1b4Smrg         }
2887117f1b4Smrg         break;
2897117f1b4Smrg      case GL_DEPTH_BIAS:
2907117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.DepthBias);
2917117f1b4Smrg         break;
2927117f1b4Smrg      case GL_DEPTH_BITS:
2937117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.depthBits);
2947117f1b4Smrg         break;
2957117f1b4Smrg      case GL_DEPTH_CLEAR_VALUE:
2967117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Depth.Clear);
2977117f1b4Smrg         break;
2987117f1b4Smrg      case GL_DEPTH_FUNC:
2997117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Depth.Func);
3007117f1b4Smrg         break;
3017117f1b4Smrg      case GL_DEPTH_RANGE:
3027117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Viewport.Near);
3037117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Viewport.Far);
3047117f1b4Smrg         break;
3057117f1b4Smrg      case GL_DEPTH_SCALE:
3067117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.DepthScale);
3077117f1b4Smrg         break;
3087117f1b4Smrg      case GL_DEPTH_TEST:
3097117f1b4Smrg         params[0] = ctx->Depth.Test;
3107117f1b4Smrg         break;
3117117f1b4Smrg      case GL_DEPTH_WRITEMASK:
3127117f1b4Smrg         params[0] = ctx->Depth.Mask;
3137117f1b4Smrg         break;
3147117f1b4Smrg      case GL_DITHER:
3157117f1b4Smrg         params[0] = ctx->Color.DitherFlag;
3167117f1b4Smrg         break;
3177117f1b4Smrg      case GL_DOUBLEBUFFER:
3187117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.doubleBufferMode;
3197117f1b4Smrg         break;
3207117f1b4Smrg      case GL_DRAW_BUFFER:
3217117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->DrawBuffer->ColorDrawBuffer[0]);
3227117f1b4Smrg         break;
3237117f1b4Smrg      case GL_EDGE_FLAG:
3247117f1b4Smrg         {
3257117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
3267117f1b4Smrg         params[0] = (ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0);
3277117f1b4Smrg         }
3287117f1b4Smrg         break;
3297117f1b4Smrg      case GL_FEEDBACK_BUFFER_SIZE:
3307117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Feedback.BufferSize);
3317117f1b4Smrg         break;
3327117f1b4Smrg      case GL_FEEDBACK_BUFFER_TYPE:
3337117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Feedback.Type);
3347117f1b4Smrg         break;
3357117f1b4Smrg      case GL_FOG:
3367117f1b4Smrg         params[0] = ctx->Fog.Enabled;
3377117f1b4Smrg         break;
3387117f1b4Smrg      case GL_FOG_COLOR:
3397117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[0]);
3407117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[1]);
3417117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[2]);
3427117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[3]);
3437117f1b4Smrg         break;
3447117f1b4Smrg      case GL_FOG_DENSITY:
3457117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Density);
3467117f1b4Smrg         break;
3477117f1b4Smrg      case GL_FOG_END:
3487117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.End);
3497117f1b4Smrg         break;
3507117f1b4Smrg      case GL_FOG_HINT:
3517117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.Fog);
3527117f1b4Smrg         break;
3537117f1b4Smrg      case GL_FOG_INDEX:
3547117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Index);
3557117f1b4Smrg         break;
3567117f1b4Smrg      case GL_FOG_MODE:
3577117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Fog.Mode);
3587117f1b4Smrg         break;
3597117f1b4Smrg      case GL_FOG_START:
3607117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Start);
3617117f1b4Smrg         break;
3627117f1b4Smrg      case GL_FRONT_FACE:
3637117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.FrontFace);
3647117f1b4Smrg         break;
3657117f1b4Smrg      case GL_GREEN_BIAS:
3667117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.GreenBias);
3677117f1b4Smrg         break;
3687117f1b4Smrg      case GL_GREEN_BITS:
3697117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.greenBits);
3707117f1b4Smrg         break;
3717117f1b4Smrg      case GL_GREEN_SCALE:
3727117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.GreenScale);
3737117f1b4Smrg         break;
3747117f1b4Smrg      case GL_INDEX_BITS:
3757117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.indexBits);
3767117f1b4Smrg         break;
3777117f1b4Smrg      case GL_INDEX_CLEAR_VALUE:
3787117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Color.ClearIndex);
3797117f1b4Smrg         break;
3807117f1b4Smrg      case GL_INDEX_MODE:
3817117f1b4Smrg         params[0] = !ctx->DrawBuffer->Visual.rgbMode;
3827117f1b4Smrg         break;
3837117f1b4Smrg      case GL_INDEX_OFFSET:
3847117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pixel.IndexOffset);
3857117f1b4Smrg         break;
3867117f1b4Smrg      case GL_INDEX_SHIFT:
3877117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pixel.IndexShift);
3887117f1b4Smrg         break;
3897117f1b4Smrg      case GL_INDEX_WRITEMASK:
3907117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Color.IndexMask);
3917117f1b4Smrg         break;
3927117f1b4Smrg      case GL_LIGHT0:
3937117f1b4Smrg         params[0] = ctx->Light.Light[0].Enabled;
3947117f1b4Smrg         break;
3957117f1b4Smrg      case GL_LIGHT1:
3967117f1b4Smrg         params[0] = ctx->Light.Light[1].Enabled;
3977117f1b4Smrg         break;
3987117f1b4Smrg      case GL_LIGHT2:
3997117f1b4Smrg         params[0] = ctx->Light.Light[2].Enabled;
4007117f1b4Smrg         break;
4017117f1b4Smrg      case GL_LIGHT3:
4027117f1b4Smrg         params[0] = ctx->Light.Light[3].Enabled;
4037117f1b4Smrg         break;
4047117f1b4Smrg      case GL_LIGHT4:
4057117f1b4Smrg         params[0] = ctx->Light.Light[4].Enabled;
4067117f1b4Smrg         break;
4077117f1b4Smrg      case GL_LIGHT5:
4087117f1b4Smrg         params[0] = ctx->Light.Light[5].Enabled;
4097117f1b4Smrg         break;
4107117f1b4Smrg      case GL_LIGHT6:
4117117f1b4Smrg         params[0] = ctx->Light.Light[6].Enabled;
4127117f1b4Smrg         break;
4137117f1b4Smrg      case GL_LIGHT7:
4147117f1b4Smrg         params[0] = ctx->Light.Light[7].Enabled;
4157117f1b4Smrg         break;
4167117f1b4Smrg      case GL_LIGHTING:
4177117f1b4Smrg         params[0] = ctx->Light.Enabled;
4187117f1b4Smrg         break;
4197117f1b4Smrg      case GL_LIGHT_MODEL_AMBIENT:
4207117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[0]);
4217117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[1]);
4227117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[2]);
4237117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[3]);
4247117f1b4Smrg         break;
4257117f1b4Smrg      case GL_LIGHT_MODEL_COLOR_CONTROL:
4267117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Light.Model.ColorControl);
4277117f1b4Smrg         break;
4287117f1b4Smrg      case GL_LIGHT_MODEL_LOCAL_VIEWER:
4297117f1b4Smrg         params[0] = ctx->Light.Model.LocalViewer;
4307117f1b4Smrg         break;
4317117f1b4Smrg      case GL_LIGHT_MODEL_TWO_SIDE:
4327117f1b4Smrg         params[0] = ctx->Light.Model.TwoSide;
4337117f1b4Smrg         break;
4347117f1b4Smrg      case GL_LINE_SMOOTH:
4357117f1b4Smrg         params[0] = ctx->Line.SmoothFlag;
4367117f1b4Smrg         break;
4377117f1b4Smrg      case GL_LINE_SMOOTH_HINT:
4387117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.LineSmooth);
4397117f1b4Smrg         break;
4407117f1b4Smrg      case GL_LINE_STIPPLE:
4417117f1b4Smrg         params[0] = ctx->Line.StippleFlag;
4427117f1b4Smrg         break;
4437117f1b4Smrg      case GL_LINE_STIPPLE_PATTERN:
4447117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Line.StipplePattern);
4457117f1b4Smrg         break;
4467117f1b4Smrg      case GL_LINE_STIPPLE_REPEAT:
4477117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Line.StippleFactor);
4487117f1b4Smrg         break;
4497117f1b4Smrg      case GL_LINE_WIDTH:
4507117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Line.Width);
4517117f1b4Smrg         break;
4527117f1b4Smrg      case GL_LINE_WIDTH_GRANULARITY:
4537117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.LineWidthGranularity);
4547117f1b4Smrg         break;
4557117f1b4Smrg      case GL_LINE_WIDTH_RANGE:
4567117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinLineWidthAA);
4577117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxLineWidthAA);
4587117f1b4Smrg         break;
4597117f1b4Smrg      case GL_ALIASED_LINE_WIDTH_RANGE:
4607117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinLineWidth);
4617117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxLineWidth);
4627117f1b4Smrg         break;
4637117f1b4Smrg      case GL_LIST_BASE:
4647117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->List.ListBase);
4657117f1b4Smrg         break;
4667117f1b4Smrg      case GL_LIST_INDEX:
4677117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ListState.CurrentListNum);
4687117f1b4Smrg         break;
4697117f1b4Smrg      case GL_LIST_MODE:
4707117f1b4Smrg         {
4717117f1b4Smrg         GLenum mode;
4727117f1b4Smrg         if (!ctx->CompileFlag)
4737117f1b4Smrg            mode = 0;
4747117f1b4Smrg         else if (ctx->ExecuteFlag)
4757117f1b4Smrg            mode = GL_COMPILE_AND_EXECUTE;
4767117f1b4Smrg         else
4777117f1b4Smrg            mode = GL_COMPILE;
4787117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(mode);
4797117f1b4Smrg         }
4807117f1b4Smrg         break;
4817117f1b4Smrg      case GL_INDEX_LOGIC_OP:
4827117f1b4Smrg         params[0] = ctx->Color.IndexLogicOpEnabled;
4837117f1b4Smrg         break;
4847117f1b4Smrg      case GL_COLOR_LOGIC_OP:
4857117f1b4Smrg         params[0] = ctx->Color.ColorLogicOpEnabled;
4867117f1b4Smrg         break;
4877117f1b4Smrg      case GL_LOGIC_OP_MODE:
4887117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.LogicOp);
4897117f1b4Smrg         break;
4907117f1b4Smrg      case GL_MAP1_COLOR_4:
4917117f1b4Smrg         params[0] = ctx->Eval.Map1Color4;
4927117f1b4Smrg         break;
4937117f1b4Smrg      case GL_MAP1_GRID_DOMAIN:
4947117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid1u1);
4957117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid1u2);
4967117f1b4Smrg         break;
4977117f1b4Smrg      case GL_MAP1_GRID_SEGMENTS:
4987117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Eval.MapGrid1un);
4997117f1b4Smrg         break;
5007117f1b4Smrg      case GL_MAP1_INDEX:
5017117f1b4Smrg         params[0] = ctx->Eval.Map1Index;
5027117f1b4Smrg         break;
5037117f1b4Smrg      case GL_MAP1_NORMAL:
5047117f1b4Smrg         params[0] = ctx->Eval.Map1Normal;
5057117f1b4Smrg         break;
5067117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_1:
5077117f1b4Smrg         params[0] = ctx->Eval.Map1TextureCoord1;
5087117f1b4Smrg         break;
5097117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_2:
5107117f1b4Smrg         params[0] = ctx->Eval.Map1TextureCoord2;
5117117f1b4Smrg         break;
5127117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_3:
5137117f1b4Smrg         params[0] = ctx->Eval.Map1TextureCoord3;
5147117f1b4Smrg         break;
5157117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_4:
5167117f1b4Smrg         params[0] = ctx->Eval.Map1TextureCoord4;
5177117f1b4Smrg         break;
5187117f1b4Smrg      case GL_MAP1_VERTEX_3:
5197117f1b4Smrg         params[0] = ctx->Eval.Map1Vertex3;
5207117f1b4Smrg         break;
5217117f1b4Smrg      case GL_MAP1_VERTEX_4:
5227117f1b4Smrg         params[0] = ctx->Eval.Map1Vertex4;
5237117f1b4Smrg         break;
5247117f1b4Smrg      case GL_MAP2_COLOR_4:
5257117f1b4Smrg         params[0] = ctx->Eval.Map2Color4;
5267117f1b4Smrg         break;
5277117f1b4Smrg      case GL_MAP2_GRID_DOMAIN:
5287117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2u1);
5297117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2u2);
5307117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2v1);
5317117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2v2);
5327117f1b4Smrg         break;
5337117f1b4Smrg      case GL_MAP2_GRID_SEGMENTS:
5347117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Eval.MapGrid2un);
5357117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Eval.MapGrid2vn);
5367117f1b4Smrg         break;
5377117f1b4Smrg      case GL_MAP2_INDEX:
5387117f1b4Smrg         params[0] = ctx->Eval.Map2Index;
5397117f1b4Smrg         break;
5407117f1b4Smrg      case GL_MAP2_NORMAL:
5417117f1b4Smrg         params[0] = ctx->Eval.Map2Normal;
5427117f1b4Smrg         break;
5437117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_1:
5447117f1b4Smrg         params[0] = ctx->Eval.Map2TextureCoord1;
5457117f1b4Smrg         break;
5467117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_2:
5477117f1b4Smrg         params[0] = ctx->Eval.Map2TextureCoord2;
5487117f1b4Smrg         break;
5497117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_3:
5507117f1b4Smrg         params[0] = ctx->Eval.Map2TextureCoord3;
5517117f1b4Smrg         break;
5527117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_4:
5537117f1b4Smrg         params[0] = ctx->Eval.Map2TextureCoord4;
5547117f1b4Smrg         break;
5557117f1b4Smrg      case GL_MAP2_VERTEX_3:
5567117f1b4Smrg         params[0] = ctx->Eval.Map2Vertex3;
5577117f1b4Smrg         break;
5587117f1b4Smrg      case GL_MAP2_VERTEX_4:
5597117f1b4Smrg         params[0] = ctx->Eval.Map2Vertex4;
5607117f1b4Smrg         break;
5617117f1b4Smrg      case GL_MAP_COLOR:
5627117f1b4Smrg         params[0] = ctx->Pixel.MapColorFlag;
5637117f1b4Smrg         break;
5647117f1b4Smrg      case GL_MAP_STENCIL:
5657117f1b4Smrg         params[0] = ctx->Pixel.MapStencilFlag;
5667117f1b4Smrg         break;
5677117f1b4Smrg      case GL_MATRIX_MODE:
5687117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Transform.MatrixMode);
5697117f1b4Smrg         break;
5707117f1b4Smrg      case GL_MAX_ATTRIB_STACK_DEPTH:
5717117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH);
5727117f1b4Smrg         break;
5737117f1b4Smrg      case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
5747117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH);
5757117f1b4Smrg         break;
5767117f1b4Smrg      case GL_MAX_CLIP_PLANES:
5777117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxClipPlanes);
5787117f1b4Smrg         break;
5797117f1b4Smrg      case GL_MAX_ELEMENTS_VERTICES:
5807117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxArrayLockSize);
5817117f1b4Smrg         break;
5827117f1b4Smrg      case GL_MAX_ELEMENTS_INDICES:
5837117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxArrayLockSize);
5847117f1b4Smrg         break;
5857117f1b4Smrg      case GL_MAX_EVAL_ORDER:
5867117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER);
5877117f1b4Smrg         break;
5887117f1b4Smrg      case GL_MAX_LIGHTS:
5897117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxLights);
5907117f1b4Smrg         break;
5917117f1b4Smrg      case GL_MAX_LIST_NESTING:
5927117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING);
5937117f1b4Smrg         break;
5947117f1b4Smrg      case GL_MAX_MODELVIEW_STACK_DEPTH:
5957117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH);
5967117f1b4Smrg         break;
5977117f1b4Smrg      case GL_MAX_NAME_STACK_DEPTH:
5987117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH);
5997117f1b4Smrg         break;
6007117f1b4Smrg      case GL_MAX_PIXEL_MAP_TABLE:
6017117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE);
6027117f1b4Smrg         break;
6037117f1b4Smrg      case GL_MAX_PROJECTION_STACK_DEPTH:
6047117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH);
6057117f1b4Smrg         break;
6067117f1b4Smrg      case GL_MAX_TEXTURE_SIZE:
6077117f1b4Smrg         params[0] = INT_TO_BOOLEAN(1 << (ctx->Const.MaxTextureLevels - 1));
6087117f1b4Smrg         break;
6097117f1b4Smrg      case GL_MAX_3D_TEXTURE_SIZE:
6107117f1b4Smrg         params[0] = INT_TO_BOOLEAN(1 << (ctx->Const.Max3DTextureLevels - 1));
6117117f1b4Smrg         break;
6127117f1b4Smrg      case GL_MAX_TEXTURE_STACK_DEPTH:
6137117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH);
6147117f1b4Smrg         break;
6157117f1b4Smrg      case GL_MAX_VIEWPORT_DIMS:
6167117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxViewportWidth);
6177117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Const.MaxViewportHeight);
6187117f1b4Smrg         break;
6197117f1b4Smrg      case GL_MODELVIEW_MATRIX:
6207117f1b4Smrg         {
6217117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
6227117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
6237117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
6247117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
6257117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
6267117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
6277117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
6287117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
6297117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
6307117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
6317117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
6327117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
6337117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
6347117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
6357117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
6367117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
6377117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
6387117f1b4Smrg         }
6397117f1b4Smrg         break;
6407117f1b4Smrg      case GL_MODELVIEW_STACK_DEPTH:
6417117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ModelviewMatrixStack.Depth + 1);
6427117f1b4Smrg         break;
6437117f1b4Smrg      case GL_NAME_STACK_DEPTH:
6447117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Select.NameStackDepth);
6457117f1b4Smrg         break;
6467117f1b4Smrg      case GL_NORMALIZE:
6477117f1b4Smrg         params[0] = ctx->Transform.Normalize;
6487117f1b4Smrg         break;
6497117f1b4Smrg      case GL_PACK_ALIGNMENT:
6507117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.Alignment);
6517117f1b4Smrg         break;
6527117f1b4Smrg      case GL_PACK_LSB_FIRST:
6537117f1b4Smrg         params[0] = ctx->Pack.LsbFirst;
6547117f1b4Smrg         break;
6557117f1b4Smrg      case GL_PACK_ROW_LENGTH:
6567117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.RowLength);
6577117f1b4Smrg         break;
6587117f1b4Smrg      case GL_PACK_SKIP_PIXELS:
6597117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipPixels);
6607117f1b4Smrg         break;
6617117f1b4Smrg      case GL_PACK_SKIP_ROWS:
6627117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipRows);
6637117f1b4Smrg         break;
6647117f1b4Smrg      case GL_PACK_SWAP_BYTES:
6657117f1b4Smrg         params[0] = ctx->Pack.SwapBytes;
6667117f1b4Smrg         break;
6677117f1b4Smrg      case GL_PACK_SKIP_IMAGES_EXT:
6687117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipImages);
6697117f1b4Smrg         break;
6707117f1b4Smrg      case GL_PACK_IMAGE_HEIGHT_EXT:
6717117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.ImageHeight);
6727117f1b4Smrg         break;
6737117f1b4Smrg      case GL_PACK_INVERT_MESA:
6747117f1b4Smrg         params[0] = ctx->Pack.Invert;
6757117f1b4Smrg         break;
6767117f1b4Smrg      case GL_PERSPECTIVE_CORRECTION_HINT:
6777117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PerspectiveCorrection);
6787117f1b4Smrg         break;
6797117f1b4Smrg      case GL_PIXEL_MAP_A_TO_A_SIZE:
6807117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.AtoA.Size);
6817117f1b4Smrg         break;
6827117f1b4Smrg      case GL_PIXEL_MAP_B_TO_B_SIZE:
6837117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.BtoB.Size);
6847117f1b4Smrg         break;
6857117f1b4Smrg      case GL_PIXEL_MAP_G_TO_G_SIZE:
6867117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.GtoG.Size);
6877117f1b4Smrg         break;
6887117f1b4Smrg      case GL_PIXEL_MAP_I_TO_A_SIZE:
6897117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoA.Size);
6907117f1b4Smrg         break;
6917117f1b4Smrg      case GL_PIXEL_MAP_I_TO_B_SIZE:
6927117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoB.Size);
6937117f1b4Smrg         break;
6947117f1b4Smrg      case GL_PIXEL_MAP_I_TO_G_SIZE:
6957117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoG.Size);
6967117f1b4Smrg         break;
6977117f1b4Smrg      case GL_PIXEL_MAP_I_TO_I_SIZE:
6987117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoI.Size);
6997117f1b4Smrg         break;
7007117f1b4Smrg      case GL_PIXEL_MAP_I_TO_R_SIZE:
7017117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoR.Size);
7027117f1b4Smrg         break;
7037117f1b4Smrg      case GL_PIXEL_MAP_R_TO_R_SIZE:
7047117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.RtoR.Size);
7057117f1b4Smrg         break;
7067117f1b4Smrg      case GL_PIXEL_MAP_S_TO_S_SIZE:
7077117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.StoS.Size);
7087117f1b4Smrg         break;
7097117f1b4Smrg      case GL_POINT_SIZE:
7107117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Size);
7117117f1b4Smrg         break;
7127117f1b4Smrg      case GL_POINT_SIZE_GRANULARITY:
7137117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.PointSizeGranularity);
7147117f1b4Smrg         break;
7157117f1b4Smrg      case GL_POINT_SIZE_RANGE:
7167117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinPointSizeAA);
7177117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxPointSizeAA);
7187117f1b4Smrg         break;
7197117f1b4Smrg      case GL_ALIASED_POINT_SIZE_RANGE:
7207117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinPointSize);
7217117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxPointSize);
7227117f1b4Smrg         break;
7237117f1b4Smrg      case GL_POINT_SMOOTH:
7247117f1b4Smrg         params[0] = ctx->Point.SmoothFlag;
7257117f1b4Smrg         break;
7267117f1b4Smrg      case GL_POINT_SMOOTH_HINT:
7277117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PointSmooth);
7287117f1b4Smrg         break;
7297117f1b4Smrg      case GL_POINT_SIZE_MIN_EXT:
7307117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.MinSize);
7317117f1b4Smrg         break;
7327117f1b4Smrg      case GL_POINT_SIZE_MAX_EXT:
7337117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.MaxSize);
7347117f1b4Smrg         break;
7357117f1b4Smrg      case GL_POINT_FADE_THRESHOLD_SIZE_EXT:
7367117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Threshold);
7377117f1b4Smrg         break;
7387117f1b4Smrg      case GL_DISTANCE_ATTENUATION_EXT:
7397117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Params[0]);
7407117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Point.Params[1]);
7417117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Point.Params[2]);
7427117f1b4Smrg         break;
7437117f1b4Smrg      case GL_POLYGON_MODE:
7447117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.FrontMode);
7457117f1b4Smrg         params[1] = ENUM_TO_BOOLEAN(ctx->Polygon.BackMode);
7467117f1b4Smrg         break;
7477117f1b4Smrg      case GL_POLYGON_OFFSET_BIAS_EXT:
7487117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetUnits);
7497117f1b4Smrg         break;
7507117f1b4Smrg      case GL_POLYGON_OFFSET_FACTOR:
7517117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetFactor );
7527117f1b4Smrg         break;
7537117f1b4Smrg      case GL_POLYGON_OFFSET_UNITS:
7547117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetUnits );
7557117f1b4Smrg         break;
7567117f1b4Smrg      case GL_POLYGON_SMOOTH:
7577117f1b4Smrg         params[0] = ctx->Polygon.SmoothFlag;
7587117f1b4Smrg         break;
7597117f1b4Smrg      case GL_POLYGON_SMOOTH_HINT:
7607117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PolygonSmooth);
7617117f1b4Smrg         break;
7627117f1b4Smrg      case GL_POLYGON_STIPPLE:
7637117f1b4Smrg         params[0] = ctx->Polygon.StippleFlag;
7647117f1b4Smrg         break;
7657117f1b4Smrg      case GL_PROJECTION_MATRIX:
7667117f1b4Smrg         {
7677117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
7687117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
7697117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
7707117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
7717117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
7727117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
7737117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
7747117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
7757117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
7767117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
7777117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
7787117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
7797117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
7807117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
7817117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
7827117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
7837117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
7847117f1b4Smrg         }
7857117f1b4Smrg         break;
7867117f1b4Smrg      case GL_PROJECTION_STACK_DEPTH:
7877117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ProjectionMatrixStack.Depth + 1);
7887117f1b4Smrg         break;
7897117f1b4Smrg      case GL_READ_BUFFER:
7907117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->ReadBuffer->ColorReadBuffer);
7917117f1b4Smrg         break;
7927117f1b4Smrg      case GL_RED_BIAS:
7937117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.RedBias);
7947117f1b4Smrg         break;
7957117f1b4Smrg      case GL_RED_BITS:
7967117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.redBits);
7977117f1b4Smrg         break;
7987117f1b4Smrg      case GL_RED_SCALE:
7997117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.RedScale);
8007117f1b4Smrg         break;
8017117f1b4Smrg      case GL_RENDER_MODE:
8027117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->RenderMode);
8037117f1b4Smrg         break;
8047117f1b4Smrg      case GL_RESCALE_NORMAL:
8057117f1b4Smrg         params[0] = ctx->Transform.RescaleNormals;
8067117f1b4Smrg         break;
8077117f1b4Smrg      case GL_RGBA_MODE:
8087117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.rgbMode;
8097117f1b4Smrg         break;
8107117f1b4Smrg      case GL_SCISSOR_BOX:
8117117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Scissor.X);
8127117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Scissor.Y);
8137117f1b4Smrg         params[2] = INT_TO_BOOLEAN(ctx->Scissor.Width);
8147117f1b4Smrg         params[3] = INT_TO_BOOLEAN(ctx->Scissor.Height);
8157117f1b4Smrg         break;
8167117f1b4Smrg      case GL_SCISSOR_TEST:
8177117f1b4Smrg         params[0] = ctx->Scissor.Enabled;
8187117f1b4Smrg         break;
8197117f1b4Smrg      case GL_SELECTION_BUFFER_SIZE:
8207117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Select.BufferSize);
8217117f1b4Smrg         break;
8227117f1b4Smrg      case GL_SHADE_MODEL:
8237117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Light.ShadeModel);
8247117f1b4Smrg         break;
8257117f1b4Smrg      case GL_SHARED_TEXTURE_PALETTE_EXT:
8267117f1b4Smrg         params[0] = ctx->Texture.SharedPalette;
8277117f1b4Smrg         break;
8287117f1b4Smrg      case GL_STENCIL_BITS:
8297117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.stencilBits);
8307117f1b4Smrg         break;
8317117f1b4Smrg      case GL_STENCIL_CLEAR_VALUE:
8327117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.Clear);
8337117f1b4Smrg         break;
8347117f1b4Smrg      case GL_STENCIL_FAIL:
8357117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]);
8367117f1b4Smrg         break;
8377117f1b4Smrg      case GL_STENCIL_FUNC:
8387117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.Function[ctx->Stencil.ActiveFace]);
8397117f1b4Smrg         break;
8407117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_FAIL:
8417117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]);
8427117f1b4Smrg         break;
8437117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_PASS:
8447117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]);
8457117f1b4Smrg         break;
8467117f1b4Smrg      case GL_STENCIL_REF:
8477117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.Ref[ctx->Stencil.ActiveFace]);
8487117f1b4Smrg         break;
8497117f1b4Smrg      case GL_STENCIL_TEST:
8507117f1b4Smrg         params[0] = ctx->Stencil.Enabled;
8517117f1b4Smrg         break;
8527117f1b4Smrg      case GL_STENCIL_VALUE_MASK:
8537117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]);
8547117f1b4Smrg         break;
8557117f1b4Smrg      case GL_STENCIL_WRITEMASK:
8567117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]);
8577117f1b4Smrg         break;
8587117f1b4Smrg      case GL_STEREO:
8597117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.stereoMode;
8607117f1b4Smrg         break;
8617117f1b4Smrg      case GL_SUBPIXEL_BITS:
8627117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.SubPixelBits);
8637117f1b4Smrg         break;
8647117f1b4Smrg      case GL_TEXTURE_1D:
8657117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_1D);
8667117f1b4Smrg         break;
8677117f1b4Smrg      case GL_TEXTURE_2D:
8687117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_2D);
8697117f1b4Smrg         break;
8707117f1b4Smrg      case GL_TEXTURE_3D:
8717117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_3D);
8727117f1b4Smrg         break;
8737117f1b4Smrg      case GL_TEXTURE_BINDING_1D:
8747117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name);
8757117f1b4Smrg         break;
8767117f1b4Smrg      case GL_TEXTURE_BINDING_2D:
8777117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2D->Name);
8787117f1b4Smrg         break;
8797117f1b4Smrg      case GL_TEXTURE_BINDING_3D:
8807117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name);
8817117f1b4Smrg         break;
8827117f1b4Smrg      case GL_TEXTURE_ENV_COLOR:
8837117f1b4Smrg         {
8847117f1b4Smrg         const GLfloat *color = ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvColor;
8857117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(color[0]);
8867117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(color[1]);
8877117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(color[2]);
8887117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(color[3]);
8897117f1b4Smrg         }
8907117f1b4Smrg         break;
8917117f1b4Smrg      case GL_TEXTURE_ENV_MODE:
8927117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvMode);
8937117f1b4Smrg         break;
8947117f1b4Smrg      case GL_TEXTURE_GEN_S:
8957117f1b4Smrg         params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0);
8967117f1b4Smrg         break;
8977117f1b4Smrg      case GL_TEXTURE_GEN_T:
8987117f1b4Smrg         params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0);
8997117f1b4Smrg         break;
9007117f1b4Smrg      case GL_TEXTURE_GEN_R:
9017117f1b4Smrg         params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0);
9027117f1b4Smrg         break;
9037117f1b4Smrg      case GL_TEXTURE_GEN_Q:
9047117f1b4Smrg         params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0);
9057117f1b4Smrg         break;
9067117f1b4Smrg      case GL_TEXTURE_MATRIX:
9077117f1b4Smrg         {
9087117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
9097117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
9107117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
9117117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
9127117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
9137117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
9147117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
9157117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
9167117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
9177117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
9187117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
9197117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
9207117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
9217117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
9227117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
9237117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
9247117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
9257117f1b4Smrg         }
9267117f1b4Smrg         break;
9277117f1b4Smrg      case GL_TEXTURE_STACK_DEPTH:
9287117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1);
9297117f1b4Smrg         break;
9307117f1b4Smrg      case GL_UNPACK_ALIGNMENT:
9317117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.Alignment);
9327117f1b4Smrg         break;
9337117f1b4Smrg      case GL_UNPACK_LSB_FIRST:
9347117f1b4Smrg         params[0] = ctx->Unpack.LsbFirst;
9357117f1b4Smrg         break;
9367117f1b4Smrg      case GL_UNPACK_ROW_LENGTH:
9377117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.RowLength);
9387117f1b4Smrg         break;
9397117f1b4Smrg      case GL_UNPACK_SKIP_PIXELS:
9407117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipPixels);
9417117f1b4Smrg         break;
9427117f1b4Smrg      case GL_UNPACK_SKIP_ROWS:
9437117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipRows);
9447117f1b4Smrg         break;
9457117f1b4Smrg      case GL_UNPACK_SWAP_BYTES:
9467117f1b4Smrg         params[0] = ctx->Unpack.SwapBytes;
9477117f1b4Smrg         break;
9487117f1b4Smrg      case GL_UNPACK_SKIP_IMAGES_EXT:
9497117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipImages);
9507117f1b4Smrg         break;
9517117f1b4Smrg      case GL_UNPACK_IMAGE_HEIGHT_EXT:
9527117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.ImageHeight);
9537117f1b4Smrg         break;
9547117f1b4Smrg      case GL_UNPACK_CLIENT_STORAGE_APPLE:
9557117f1b4Smrg         params[0] = ctx->Unpack.ClientStorage;
9567117f1b4Smrg         break;
9577117f1b4Smrg      case GL_VIEWPORT:
9587117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Viewport.X);
9597117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Viewport.Y);
9607117f1b4Smrg         params[2] = INT_TO_BOOLEAN(ctx->Viewport.Width);
9617117f1b4Smrg         params[3] = INT_TO_BOOLEAN(ctx->Viewport.Height);
9627117f1b4Smrg         break;
9637117f1b4Smrg      case GL_ZOOM_X:
9647117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.ZoomX);
9657117f1b4Smrg         break;
9667117f1b4Smrg      case GL_ZOOM_Y:
9677117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.ZoomY);
9687117f1b4Smrg         break;
9697117f1b4Smrg      case GL_VERTEX_ARRAY:
9707117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Vertex.Enabled;
9717117f1b4Smrg         break;
9727117f1b4Smrg      case GL_VERTEX_ARRAY_SIZE:
9737117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Size);
9747117f1b4Smrg         break;
9757117f1b4Smrg      case GL_VERTEX_ARRAY_TYPE:
9767117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Type);
9777117f1b4Smrg         break;
9787117f1b4Smrg      case GL_VERTEX_ARRAY_STRIDE:
9797117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Stride);
9807117f1b4Smrg         break;
9817117f1b4Smrg      case GL_VERTEX_ARRAY_COUNT_EXT:
9827117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
9837117f1b4Smrg         break;
9847117f1b4Smrg      case GL_NORMAL_ARRAY:
9857117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Enabled);
9867117f1b4Smrg         break;
9877117f1b4Smrg      case GL_NORMAL_ARRAY_TYPE:
9887117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Type);
9897117f1b4Smrg         break;
9907117f1b4Smrg      case GL_NORMAL_ARRAY_STRIDE:
9917117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Stride);
9927117f1b4Smrg         break;
9937117f1b4Smrg      case GL_NORMAL_ARRAY_COUNT_EXT:
9947117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
9957117f1b4Smrg         break;
9967117f1b4Smrg      case GL_COLOR_ARRAY:
9977117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Color.Enabled;
9987117f1b4Smrg         break;
9997117f1b4Smrg      case GL_COLOR_ARRAY_SIZE:
10007117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Size);
10017117f1b4Smrg         break;
10027117f1b4Smrg      case GL_COLOR_ARRAY_TYPE:
10037117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Type);
10047117f1b4Smrg         break;
10057117f1b4Smrg      case GL_COLOR_ARRAY_STRIDE:
10067117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Stride);
10077117f1b4Smrg         break;
10087117f1b4Smrg      case GL_COLOR_ARRAY_COUNT_EXT:
10097117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10107117f1b4Smrg         break;
10117117f1b4Smrg      case GL_INDEX_ARRAY:
10127117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Index.Enabled;
10137117f1b4Smrg         break;
10147117f1b4Smrg      case GL_INDEX_ARRAY_TYPE:
10157117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Index.Type);
10167117f1b4Smrg         break;
10177117f1b4Smrg      case GL_INDEX_ARRAY_STRIDE:
10187117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Index.Stride);
10197117f1b4Smrg         break;
10207117f1b4Smrg      case GL_INDEX_ARRAY_COUNT_EXT:
10217117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10227117f1b4Smrg         break;
10237117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY:
10247117f1b4Smrg         params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled;
10257117f1b4Smrg         break;
10267117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_SIZE:
10277117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size);
10287117f1b4Smrg         break;
10297117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_TYPE:
10307117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
10317117f1b4Smrg         break;
10327117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_STRIDE:
10337117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride);
10347117f1b4Smrg         break;
10357117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
10367117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10377117f1b4Smrg         break;
10387117f1b4Smrg      case GL_EDGE_FLAG_ARRAY:
10397117f1b4Smrg         params[0] = ctx->Array.ArrayObj->EdgeFlag.Enabled;
10407117f1b4Smrg         break;
10417117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_STRIDE:
10427117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->EdgeFlag.Stride);
10437117f1b4Smrg         break;
10447117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
10457117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10467117f1b4Smrg         break;
10477117f1b4Smrg      case GL_MAX_TEXTURE_UNITS_ARB:
10487117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetBooleanv");
10497117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureUnits);
10507117f1b4Smrg         break;
10517117f1b4Smrg      case GL_ACTIVE_TEXTURE_ARB:
10527117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetBooleanv");
10537117f1b4Smrg         params[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit);
10547117f1b4Smrg         break;
10557117f1b4Smrg      case GL_CLIENT_ACTIVE_TEXTURE_ARB:
10567117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetBooleanv");
10577117f1b4Smrg         params[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
10587117f1b4Smrg         break;
10597117f1b4Smrg      case GL_TEXTURE_CUBE_MAP_ARB:
10607117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv");
10617117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB);
10627117f1b4Smrg         break;
10637117f1b4Smrg      case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
10647117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv");
10657117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentCubeMap->Name);
10667117f1b4Smrg         break;
10677117f1b4Smrg      case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
10687117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv");
10697117f1b4Smrg         params[0] = INT_TO_BOOLEAN((1 << (ctx->Const.MaxCubeTextureLevels - 1)));
10707117f1b4Smrg         break;
10717117f1b4Smrg      case GL_TEXTURE_COMPRESSION_HINT_ARB:
10727117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetBooleanv");
10737117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Hint.TextureCompression);
10747117f1b4Smrg         break;
10757117f1b4Smrg      case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
10767117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetBooleanv");
10777117f1b4Smrg         params[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE));
10787117f1b4Smrg         break;
10797117f1b4Smrg      case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
10807117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetBooleanv");
10817117f1b4Smrg         {
10827117f1b4Smrg         GLint formats[100];
10837117f1b4Smrg         GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
10847117f1b4Smrg         ASSERT(n <= 100);
10857117f1b4Smrg         for (i = 0; i < n; i++)
10867117f1b4Smrg            params[i] = ENUM_TO_INT(formats[i]);
10877117f1b4Smrg         }
10887117f1b4Smrg         break;
10897117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
10907117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetBooleanv");
10917117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.LockFirst);
10927117f1b4Smrg         break;
10937117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
10947117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetBooleanv");
10957117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.LockCount);
10967117f1b4Smrg         break;
10977117f1b4Smrg      case GL_TRANSPOSE_COLOR_MATRIX_ARB:
10987117f1b4Smrg         {
10997117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
11007117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11017117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
11027117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
11037117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
11047117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
11057117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11067117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
11077117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
11087117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
11097117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
11107117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11117117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
11127117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
11137117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
11147117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
11157117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
11167117f1b4Smrg         }
11177117f1b4Smrg         break;
11187117f1b4Smrg      case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
11197117f1b4Smrg         {
11207117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
11217117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11227117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
11237117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
11247117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
11257117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
11267117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11277117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
11287117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
11297117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
11307117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
11317117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11327117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
11337117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
11347117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
11357117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
11367117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
11377117f1b4Smrg         }
11387117f1b4Smrg         break;
11397117f1b4Smrg      case GL_TRANSPOSE_PROJECTION_MATRIX_ARB:
11407117f1b4Smrg         {
11417117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
11427117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11437117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
11447117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
11457117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
11467117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
11477117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11487117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
11497117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
11507117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
11517117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
11527117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11537117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
11547117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
11557117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
11567117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
11577117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
11587117f1b4Smrg         }
11597117f1b4Smrg         break;
11607117f1b4Smrg      case GL_TRANSPOSE_TEXTURE_MATRIX_ARB:
11617117f1b4Smrg         {
11627117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
11637117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11647117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
11657117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
11667117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
11677117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
11687117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11697117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
11707117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
11717117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
11727117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
11737117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11747117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
11757117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
11767117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
11777117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
11787117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
11797117f1b4Smrg         }
11807117f1b4Smrg         break;
11817117f1b4Smrg      case GL_COLOR_MATRIX_SGI:
11827117f1b4Smrg         {
11837117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
11847117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11857117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
11867117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
11877117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
11887117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
11897117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11907117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
11917117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
11927117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
11937117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
11947117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11957117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
11967117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
11977117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
11987117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
11997117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
12007117f1b4Smrg         }
12017117f1b4Smrg         break;
12027117f1b4Smrg      case GL_COLOR_MATRIX_STACK_DEPTH_SGI:
12037117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ColorMatrixStack.Depth + 1);
12047117f1b4Smrg         break;
12057117f1b4Smrg      case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI:
12067117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH);
12077117f1b4Smrg         break;
12087117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_SCALE_SGI:
12097117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[0]);
12107117f1b4Smrg         break;
12117117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI:
12127117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[1]);
12137117f1b4Smrg         break;
12147117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI:
12157117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[2]);
12167117f1b4Smrg         break;
12177117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI:
12187117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[3]);
12197117f1b4Smrg         break;
12207117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_BIAS_SGI:
12217117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[0]);
12227117f1b4Smrg         break;
12237117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI:
12247117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[1]);
12257117f1b4Smrg         break;
12267117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI:
12277117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[2]);
12287117f1b4Smrg         break;
12297117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI:
12307117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[3]);
12317117f1b4Smrg         break;
12327117f1b4Smrg      case GL_CONVOLUTION_1D_EXT:
12337117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12347117f1b4Smrg         params[0] = ctx->Pixel.Convolution1DEnabled;
12357117f1b4Smrg         break;
12367117f1b4Smrg      case GL_CONVOLUTION_2D_EXT:
12377117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12387117f1b4Smrg         params[0] = ctx->Pixel.Convolution2DEnabled;
12397117f1b4Smrg         break;
12407117f1b4Smrg      case GL_SEPARABLE_2D_EXT:
12417117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12427117f1b4Smrg         params[0] = ctx->Pixel.Separable2DEnabled;
12437117f1b4Smrg         break;
12447117f1b4Smrg      case GL_POST_CONVOLUTION_RED_SCALE_EXT:
12457117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12467117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[0]);
12477117f1b4Smrg         break;
12487117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:
12497117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12507117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[1]);
12517117f1b4Smrg         break;
12527117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:
12537117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12547117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[2]);
12557117f1b4Smrg         break;
12567117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:
12577117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12587117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[3]);
12597117f1b4Smrg         break;
12607117f1b4Smrg      case GL_POST_CONVOLUTION_RED_BIAS_EXT:
12617117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12627117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[0]);
12637117f1b4Smrg         break;
12647117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:
12657117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12667117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[1]);
12677117f1b4Smrg         break;
12687117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:
12697117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12707117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[2]);
12717117f1b4Smrg         break;
12727117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:
12737117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12747117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[3]);
12757117f1b4Smrg         break;
12767117f1b4Smrg      case GL_HISTOGRAM:
12777117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetBooleanv");
12787117f1b4Smrg         params[0] = ctx->Pixel.HistogramEnabled;
12797117f1b4Smrg         break;
12807117f1b4Smrg      case GL_MINMAX:
12817117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetBooleanv");
12827117f1b4Smrg         params[0] = ctx->Pixel.MinMaxEnabled;
12837117f1b4Smrg         break;
12847117f1b4Smrg      case GL_COLOR_TABLE_SGI:
12857117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetBooleanv");
12867117f1b4Smrg         params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION];
12877117f1b4Smrg         break;
12887117f1b4Smrg      case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
12897117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetBooleanv");
12907117f1b4Smrg         params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION];
12917117f1b4Smrg         break;
12927117f1b4Smrg      case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
12937117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetBooleanv");
12947117f1b4Smrg         params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX];
12957117f1b4Smrg         break;
12967117f1b4Smrg      case GL_TEXTURE_COLOR_TABLE_SGI:
12977117f1b4Smrg         CHECK_EXT1(SGI_texture_color_table, "GetBooleanv");
12987117f1b4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled;
12997117f1b4Smrg         break;
13007117f1b4Smrg      case GL_COLOR_SUM_EXT:
13017117f1b4Smrg         CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetBooleanv");
13027117f1b4Smrg         params[0] = ctx->Fog.ColorSumEnabled;
13037117f1b4Smrg         break;
13047117f1b4Smrg      case GL_CURRENT_SECONDARY_COLOR_EXT:
13057117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13067117f1b4Smrg         {
13077117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
13087117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]);
13097117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]);
13107117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]);
13117117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]);
13127117f1b4Smrg         }
13137117f1b4Smrg         break;
13147117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_EXT:
13157117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13167117f1b4Smrg         params[0] = ctx->Array.ArrayObj->SecondaryColor.Enabled;
13177117f1b4Smrg         break;
13187117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
13197117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13207117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Type);
13217117f1b4Smrg         break;
13227117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
13237117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13247117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Stride);
13257117f1b4Smrg         break;
13267117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
13277117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13287117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Size);
13297117f1b4Smrg         break;
13307117f1b4Smrg      case GL_CURRENT_FOG_COORDINATE_EXT:
13317117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13327117f1b4Smrg         {
13337117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
13347117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_FOG][0]);
13357117f1b4Smrg         }
13367117f1b4Smrg         break;
13377117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_EXT:
13387117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13397117f1b4Smrg         params[0] = ctx->Array.ArrayObj->FogCoord.Enabled;
13407117f1b4Smrg         break;
13417117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
13427117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13437117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.Type);
13447117f1b4Smrg         break;
13457117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
13467117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13477117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.Stride);
13487117f1b4Smrg         break;
13497117f1b4Smrg      case GL_FOG_COORDINATE_SOURCE_EXT:
13507117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13517117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Fog.FogCoordinateSource);
13527117f1b4Smrg         break;
13537117f1b4Smrg      case GL_MAX_TEXTURE_LOD_BIAS_EXT:
13547117f1b4Smrg         CHECK_EXT1(EXT_texture_lod_bias, "GetBooleanv");
13557117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxTextureLodBias);
13567117f1b4Smrg         break;
13577117f1b4Smrg      case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
13587117f1b4Smrg         CHECK_EXT1(EXT_texture_filter_anisotropic, "GetBooleanv");
13597117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxTextureMaxAnisotropy);
13607117f1b4Smrg         break;
13617117f1b4Smrg      case GL_MULTISAMPLE_ARB:
13627117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetBooleanv");
13637117f1b4Smrg         params[0] = ctx->Multisample.Enabled;
13647117f1b4Smrg         break;
13657117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
13667117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetBooleanv");
13677117f1b4Smrg         params[0] = ctx->Multisample.SampleAlphaToCoverage;
13687117f1b4Smrg         break;
13697117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_ONE_ARB:
13707117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetBooleanv");
13717117f1b4Smrg         params[0] = ctx->Multisample.SampleAlphaToOne;
13727117f1b4Smrg         break;
13737117f1b4Smrg      case GL_SAMPLE_COVERAGE_ARB:
13747117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetBooleanv");
13757117f1b4Smrg         params[0] = ctx->Multisample.SampleCoverage;
13767117f1b4Smrg         break;
13777117f1b4Smrg      case GL_SAMPLE_COVERAGE_VALUE_ARB:
13787117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetBooleanv");
13797117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Multisample.SampleCoverageValue);
13807117f1b4Smrg         break;
13817117f1b4Smrg      case GL_SAMPLE_COVERAGE_INVERT_ARB:
13827117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetBooleanv");
13837117f1b4Smrg         params[0] = ctx->Multisample.SampleCoverageInvert;
13847117f1b4Smrg         break;
13857117f1b4Smrg      case GL_SAMPLE_BUFFERS_ARB:
13867117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetBooleanv");
13877117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.sampleBuffers);
13887117f1b4Smrg         break;
13897117f1b4Smrg      case GL_SAMPLES_ARB:
13907117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetBooleanv");
13917117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.samples);
13927117f1b4Smrg         break;
13937117f1b4Smrg      case GL_RASTER_POSITION_UNCLIPPED_IBM:
13947117f1b4Smrg         CHECK_EXT1(IBM_rasterpos_clip, "GetBooleanv");
13957117f1b4Smrg         params[0] = ctx->Transform.RasterPositionUnclipped;
13967117f1b4Smrg         break;
13977117f1b4Smrg      case GL_POINT_SPRITE_NV:
13987117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetBooleanv");
13997117f1b4Smrg         params[0] = ctx->Point.PointSprite;
14007117f1b4Smrg         break;
14017117f1b4Smrg      case GL_POINT_SPRITE_R_MODE_NV:
14027117f1b4Smrg         CHECK_EXT1(NV_point_sprite, "GetBooleanv");
14037117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Point.SpriteRMode);
14047117f1b4Smrg         break;
14057117f1b4Smrg      case GL_POINT_SPRITE_COORD_ORIGIN:
14067117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetBooleanv");
14077117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Point.SpriteOrigin);
14087117f1b4Smrg         break;
14097117f1b4Smrg      case GL_GENERATE_MIPMAP_HINT_SGIS:
14107117f1b4Smrg         CHECK_EXT1(SGIS_generate_mipmap, "GetBooleanv");
14117117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.GenerateMipmap);
14127117f1b4Smrg         break;
14137117f1b4Smrg      case GL_VERTEX_PROGRAM_BINDING_NV:
14147117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14157117f1b4Smrg         params[0] = INT_TO_BOOLEAN((ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0));
14167117f1b4Smrg         break;
14177117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY0_NV:
14187117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14197117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[0].Enabled;
14207117f1b4Smrg         break;
14217117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY1_NV:
14227117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14237117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[1].Enabled;
14247117f1b4Smrg         break;
14257117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY2_NV:
14267117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14277117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[2].Enabled;
14287117f1b4Smrg         break;
14297117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY3_NV:
14307117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14317117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[3].Enabled;
14327117f1b4Smrg         break;
14337117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY4_NV:
14347117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14357117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[4].Enabled;
14367117f1b4Smrg         break;
14377117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY5_NV:
14387117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14397117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[5].Enabled;
14407117f1b4Smrg         break;
14417117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY6_NV:
14427117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14437117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[6].Enabled;
14447117f1b4Smrg         break;
14457117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY7_NV:
14467117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14477117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[7].Enabled;
14487117f1b4Smrg         break;
14497117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY8_NV:
14507117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14517117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[8].Enabled;
14527117f1b4Smrg         break;
14537117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY9_NV:
14547117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14557117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[9].Enabled;
14567117f1b4Smrg         break;
14577117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY10_NV:
14587117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14597117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[10].Enabled;
14607117f1b4Smrg         break;
14617117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY11_NV:
14627117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14637117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[11].Enabled;
14647117f1b4Smrg         break;
14657117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY12_NV:
14667117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14677117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[12].Enabled;
14687117f1b4Smrg         break;
14697117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY13_NV:
14707117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14717117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[13].Enabled;
14727117f1b4Smrg         break;
14737117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY14_NV:
14747117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14757117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[14].Enabled;
14767117f1b4Smrg         break;
14777117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY15_NV:
14787117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14797117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[15].Enabled;
14807117f1b4Smrg         break;
14817117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB0_4_NV:
14827117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14837117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[0];
14847117f1b4Smrg         break;
14857117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB1_4_NV:
14867117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14877117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[1];
14887117f1b4Smrg         break;
14897117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB2_4_NV:
14907117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14917117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[2];
14927117f1b4Smrg         break;
14937117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB3_4_NV:
14947117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14957117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[3];
14967117f1b4Smrg         break;
14977117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB4_4_NV:
14987117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14997117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[4];
15007117f1b4Smrg         break;
15017117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB5_4_NV:
15027117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15037117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[5];
15047117f1b4Smrg         break;
15057117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB6_4_NV:
15067117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15077117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[6];
15087117f1b4Smrg         break;
15097117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB7_4_NV:
15107117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15117117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[7];
15127117f1b4Smrg         break;
15137117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB8_4_NV:
15147117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15157117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[8];
15167117f1b4Smrg         break;
15177117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB9_4_NV:
15187117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15197117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[9];
15207117f1b4Smrg         break;
15217117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB10_4_NV:
15227117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15237117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[10];
15247117f1b4Smrg         break;
15257117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB11_4_NV:
15267117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15277117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[11];
15287117f1b4Smrg         break;
15297117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB12_4_NV:
15307117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15317117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[12];
15327117f1b4Smrg         break;
15337117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB13_4_NV:
15347117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15357117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[13];
15367117f1b4Smrg         break;
15377117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB14_4_NV:
15387117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15397117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[14];
15407117f1b4Smrg         break;
15417117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB15_4_NV:
15427117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15437117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[15];
15447117f1b4Smrg         break;
15457117f1b4Smrg      case GL_FRAGMENT_PROGRAM_NV:
15467117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetBooleanv");
15477117f1b4Smrg         params[0] = ctx->FragmentProgram.Enabled;
15487117f1b4Smrg         break;
15497117f1b4Smrg      case GL_FRAGMENT_PROGRAM_BINDING_NV:
15507117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetBooleanv");
15517117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0);
15527117f1b4Smrg         break;
15537117f1b4Smrg      case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV:
15547117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetBooleanv");
15557117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS);
15567117f1b4Smrg         break;
15577117f1b4Smrg      case GL_TEXTURE_RECTANGLE_NV:
15587117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetBooleanv");
15597117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV);
15607117f1b4Smrg         break;
15617117f1b4Smrg      case GL_TEXTURE_BINDING_RECTANGLE_NV:
15627117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetBooleanv");
15637117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentRect->Name);
15647117f1b4Smrg         break;
15657117f1b4Smrg      case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
15667117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetBooleanv");
15677117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureRectSize);
15687117f1b4Smrg         break;
15697117f1b4Smrg      case GL_STENCIL_TEST_TWO_SIDE_EXT:
15707117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetBooleanv");
15717117f1b4Smrg         params[0] = ctx->Stencil.TestTwoSide;
15727117f1b4Smrg         break;
15737117f1b4Smrg      case GL_ACTIVE_STENCIL_FACE_EXT:
15747117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetBooleanv");
15757117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT);
15767117f1b4Smrg         break;
15777117f1b4Smrg      case GL_MAX_SHININESS_NV:
15787117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetBooleanv");
15797117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxShininess);
15807117f1b4Smrg         break;
15817117f1b4Smrg      case GL_MAX_SPOT_EXPONENT_NV:
15827117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetBooleanv");
15837117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxSpotExponent);
15847117f1b4Smrg         break;
15857117f1b4Smrg      case GL_ARRAY_BUFFER_BINDING_ARB:
15867117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
15877117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayBufferObj->Name);
15887117f1b4Smrg         break;
15897117f1b4Smrg      case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
15907117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
15917117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.BufferObj->Name);
15927117f1b4Smrg         break;
15937117f1b4Smrg      case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
15947117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
15957117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.BufferObj->Name);
15967117f1b4Smrg         break;
15977117f1b4Smrg      case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
15987117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
15997117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.BufferObj->Name);
16007117f1b4Smrg         break;
16017117f1b4Smrg      case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
16027117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
16037117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Index.BufferObj->Name);
16047117f1b4Smrg         break;
16057117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
16067117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
16077117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
16087117f1b4Smrg         break;
16097117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
16107117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
16117117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name);
16127117f1b4Smrg         break;
16137117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
16147117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
16157117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name);
16167117f1b4Smrg         break;
16177117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
16187117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
16197117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.BufferObj->Name);
16207117f1b4Smrg         break;
16217117f1b4Smrg      case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
16227117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
16237117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ElementArrayBufferObj->Name);
16247117f1b4Smrg         break;
16257117f1b4Smrg      case GL_PIXEL_PACK_BUFFER_BINDING_EXT:
16267117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetBooleanv");
16277117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.BufferObj->Name);
16287117f1b4Smrg         break;
16297117f1b4Smrg      case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT:
16307117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetBooleanv");
16317117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.BufferObj->Name);
16327117f1b4Smrg         break;
16337117f1b4Smrg      case GL_VERTEX_PROGRAM_ARB:
16347117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv");
16357117f1b4Smrg         params[0] = ctx->VertexProgram.Enabled;
16367117f1b4Smrg         break;
16377117f1b4Smrg      case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
16387117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv");
16397117f1b4Smrg         params[0] = ctx->VertexProgram.PointSizeEnabled;
16407117f1b4Smrg         break;
16417117f1b4Smrg      case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
16427117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv");
16437117f1b4Smrg         params[0] = ctx->VertexProgram.TwoSideEnabled;
16447117f1b4Smrg         break;
16457117f1b4Smrg      case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
16467117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv");
16477117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxProgramMatrixStackDepth);
16487117f1b4Smrg         break;
16497117f1b4Smrg      case GL_MAX_PROGRAM_MATRICES_ARB:
16507117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv");
16517117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxProgramMatrices);
16527117f1b4Smrg         break;
16537117f1b4Smrg      case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
16547117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv");
16557117f1b4Smrg         params[0] = ctx->CurrentStack->Depth + 1;
16567117f1b4Smrg         break;
16577117f1b4Smrg      case GL_CURRENT_MATRIX_ARB:
16587117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetBooleanv");
16597117f1b4Smrg         {
16607117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
16617117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
16627117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
16637117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
16647117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
16657117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
16667117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
16677117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
16687117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
16697117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
16707117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
16717117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
16727117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
16737117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
16747117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
16757117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
16767117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
16777117f1b4Smrg         }
16787117f1b4Smrg         break;
16797117f1b4Smrg      case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
16807117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetBooleanv");
16817117f1b4Smrg         {
16827117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
16837117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
16847117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
16857117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
16867117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
16877117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
16887117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
16897117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
16907117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
16917117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
16927117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
16937117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
16947117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
16957117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
16967117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
16977117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
16987117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
16997117f1b4Smrg         }
17007117f1b4Smrg         break;
17017117f1b4Smrg      case GL_MAX_VERTEX_ATTRIBS_ARB:
17027117f1b4Smrg         CHECK_EXT1(ARB_vertex_program, "GetBooleanv");
17037117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.VertexProgram.MaxAttribs);
17047117f1b4Smrg         break;
17057117f1b4Smrg      case GL_PROGRAM_ERROR_POSITION_ARB:
17067117f1b4Smrg         CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetBooleanv");
17077117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Program.ErrorPos);
17087117f1b4Smrg         break;
17097117f1b4Smrg      case GL_FRAGMENT_PROGRAM_ARB:
17107117f1b4Smrg         CHECK_EXT1(ARB_fragment_program, "GetBooleanv");
17117117f1b4Smrg         params[0] = ctx->FragmentProgram.Enabled;
17127117f1b4Smrg         break;
17137117f1b4Smrg      case GL_MAX_TEXTURE_COORDS_ARB:
17147117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetBooleanv");
17157117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureCoordUnits);
17167117f1b4Smrg         break;
17177117f1b4Smrg      case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
17187117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetBooleanv");
17197117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureImageUnits);
17207117f1b4Smrg         break;
17217117f1b4Smrg      case GL_DEPTH_BOUNDS_TEST_EXT:
17227117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetBooleanv");
17237117f1b4Smrg         params[0] = ctx->Depth.BoundsTest;
17247117f1b4Smrg         break;
17257117f1b4Smrg      case GL_DEPTH_BOUNDS_EXT:
17267117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetBooleanv");
17277117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Depth.BoundsMin);
17287117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Depth.BoundsMax);
17297117f1b4Smrg         break;
17307117f1b4Smrg      case GL_FRAGMENT_PROGRAM_CALLBACK_MESA:
17317117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetBooleanv");
17327117f1b4Smrg         params[0] = ctx->FragmentProgram.CallbackEnabled;
17337117f1b4Smrg         break;
17347117f1b4Smrg      case GL_VERTEX_PROGRAM_CALLBACK_MESA:
17357117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetBooleanv");
17367117f1b4Smrg         params[0] = ctx->VertexProgram.CallbackEnabled;
17377117f1b4Smrg         break;
17387117f1b4Smrg      case GL_FRAGMENT_PROGRAM_POSITION_MESA:
17397117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetBooleanv");
17407117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->FragmentProgram.CurrentPosition);
17417117f1b4Smrg         break;
17427117f1b4Smrg      case GL_VERTEX_PROGRAM_POSITION_MESA:
17437117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetBooleanv");
17447117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->VertexProgram.CurrentPosition);
17457117f1b4Smrg         break;
17467117f1b4Smrg      case GL_MAX_DRAW_BUFFERS_ARB:
17477117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetBooleanv");
17487117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxDrawBuffers);
17497117f1b4Smrg         break;
17507117f1b4Smrg      case GL_DRAW_BUFFER0_ARB:
17517117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetBooleanv");
17527117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->DrawBuffer->ColorDrawBuffer[0]);
17537117f1b4Smrg         break;
17547117f1b4Smrg      case GL_DRAW_BUFFER1_ARB:
17557117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetBooleanv");
17567117f1b4Smrg         {
17577117f1b4Smrg         GLenum buffer;
17587117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
17597117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
17607117f1b4Smrg            return;
17617117f1b4Smrg         }
17627117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[1];
17637117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(buffer);
17647117f1b4Smrg         }
17657117f1b4Smrg         break;
17667117f1b4Smrg      case GL_DRAW_BUFFER2_ARB:
17677117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetBooleanv");
17687117f1b4Smrg         {
17697117f1b4Smrg         GLenum buffer;
17707117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
17717117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
17727117f1b4Smrg            return;
17737117f1b4Smrg         }
17747117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[2];
17757117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(buffer);
17767117f1b4Smrg         }
17777117f1b4Smrg         break;
17787117f1b4Smrg      case GL_DRAW_BUFFER3_ARB:
17797117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetBooleanv");
17807117f1b4Smrg         {
17817117f1b4Smrg         GLenum buffer;
17827117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
17837117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
17847117f1b4Smrg            return;
17857117f1b4Smrg         }
17867117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[3];
17877117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(buffer);
17887117f1b4Smrg         }
17897117f1b4Smrg         break;
17907117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
17917117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetBooleanv");
17927117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.ColorReadType);
17937117f1b4Smrg         break;
17947117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
17957117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetBooleanv");
17967117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.ColorReadFormat);
17977117f1b4Smrg         break;
17987117f1b4Smrg      case GL_NUM_FRAGMENT_REGISTERS_ATI:
17997117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18007117f1b4Smrg         params[0] = INT_TO_BOOLEAN(6);
18017117f1b4Smrg         break;
18027117f1b4Smrg      case GL_NUM_FRAGMENT_CONSTANTS_ATI:
18037117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18047117f1b4Smrg         params[0] = INT_TO_BOOLEAN(8);
18057117f1b4Smrg         break;
18067117f1b4Smrg      case GL_NUM_PASSES_ATI:
18077117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18087117f1b4Smrg         params[0] = INT_TO_BOOLEAN(2);
18097117f1b4Smrg         break;
18107117f1b4Smrg      case GL_NUM_INSTRUCTIONS_PER_PASS_ATI:
18117117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18127117f1b4Smrg         params[0] = INT_TO_BOOLEAN(8);
18137117f1b4Smrg         break;
18147117f1b4Smrg      case GL_NUM_INSTRUCTIONS_TOTAL_ATI:
18157117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18167117f1b4Smrg         params[0] = INT_TO_BOOLEAN(16);
18177117f1b4Smrg         break;
18187117f1b4Smrg      case GL_COLOR_ALPHA_PAIRING_ATI:
18197117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18207117f1b4Smrg         params[0] = GL_TRUE;
18217117f1b4Smrg         break;
18227117f1b4Smrg      case GL_NUM_LOOPBACK_COMPONENTS_ATI:
18237117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18247117f1b4Smrg         params[0] = INT_TO_BOOLEAN(3);
18257117f1b4Smrg         break;
18267117f1b4Smrg      case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI:
18277117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18287117f1b4Smrg         params[0] = INT_TO_BOOLEAN(3);
18297117f1b4Smrg         break;
18307117f1b4Smrg      case GL_STENCIL_BACK_FUNC:
18317117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.Function[1]);
18327117f1b4Smrg         break;
18337117f1b4Smrg      case GL_STENCIL_BACK_VALUE_MASK:
18347117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.ValueMask[1]);
18357117f1b4Smrg         break;
18367117f1b4Smrg      case GL_STENCIL_BACK_WRITEMASK:
18377117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.WriteMask[1]);
18387117f1b4Smrg         break;
18397117f1b4Smrg      case GL_STENCIL_BACK_REF:
18407117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.Ref[1]);
18417117f1b4Smrg         break;
18427117f1b4Smrg      case GL_STENCIL_BACK_FAIL:
18437117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.FailFunc[1]);
18447117f1b4Smrg         break;
18457117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
18467117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZFailFunc[1]);
18477117f1b4Smrg         break;
18487117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_PASS:
18497117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZPassFunc[1]);
18507117f1b4Smrg         break;
18517117f1b4Smrg      case GL_FRAMEBUFFER_BINDING_EXT:
18527117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
18537117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Name);
18547117f1b4Smrg         break;
18557117f1b4Smrg      case GL_RENDERBUFFER_BINDING_EXT:
18567117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
18577117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0);
18587117f1b4Smrg         break;
18597117f1b4Smrg      case GL_MAX_COLOR_ATTACHMENTS_EXT:
18607117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
18617117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxColorAttachments);
18627117f1b4Smrg         break;
18637117f1b4Smrg      case GL_MAX_RENDERBUFFER_SIZE_EXT:
18647117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
18657117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxRenderbufferSize);
18667117f1b4Smrg         break;
18677117f1b4Smrg      case GL_READ_FRAMEBUFFER_BINDING_EXT:
18687117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_blit, "GetBooleanv");
18697117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ReadBuffer->Name);
18707117f1b4Smrg         break;
18717117f1b4Smrg      case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
18727117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
18737117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.FragmentProgram.MaxUniformComponents);
18747117f1b4Smrg         break;
18757117f1b4Smrg      case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
18767117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
18777117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.FragmentShaderDerivative);
18787117f1b4Smrg         break;
18797117f1b4Smrg      case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
18807117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
18817117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.VertexProgram.MaxUniformComponents);
18827117f1b4Smrg         break;
18837117f1b4Smrg      case GL_MAX_VARYING_FLOATS_ARB:
18847117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
18857117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVarying * 4);
18867117f1b4Smrg         break;
18877117f1b4Smrg      case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
18887117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
18897117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVertexTextureImageUnits);
18907117f1b4Smrg         break;
18917117f1b4Smrg      case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
18927117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
18937117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS);
18947117f1b4Smrg         break;
18957117f1b4Smrg      case GL_CURRENT_PROGRAM:
18967117f1b4Smrg         CHECK_EXT1(ARB_shader_objects, "GetBooleanv");
18977117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0);
18987117f1b4Smrg         break;
18997117f1b4Smrg      default:
19007117f1b4Smrg         _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv(pname=0x%x)", pname);
19017117f1b4Smrg   }
19027117f1b4Smrg}
19037117f1b4Smrg
19047117f1b4Smrgvoid GLAPIENTRY
19057117f1b4Smrg_mesa_GetFloatv( GLenum pname, GLfloat *params )
19067117f1b4Smrg{
19077117f1b4Smrg   GET_CURRENT_CONTEXT(ctx);
19087117f1b4Smrg   ASSERT_OUTSIDE_BEGIN_END(ctx);
19097117f1b4Smrg
19107117f1b4Smrg   if (!params)
19117117f1b4Smrg      return;
19127117f1b4Smrg
19137117f1b4Smrg   if (ctx->NewState)
19147117f1b4Smrg      _mesa_update_state(ctx);
19157117f1b4Smrg
19167117f1b4Smrg   if (ctx->Driver.GetFloatv &&
19177117f1b4Smrg       ctx->Driver.GetFloatv(ctx, pname, params))
19187117f1b4Smrg      return;
19197117f1b4Smrg
19207117f1b4Smrg   switch (pname) {
19217117f1b4Smrg      case GL_ACCUM_RED_BITS:
19227117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumRedBits);
19237117f1b4Smrg         break;
19247117f1b4Smrg      case GL_ACCUM_GREEN_BITS:
19257117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumGreenBits);
19267117f1b4Smrg         break;
19277117f1b4Smrg      case GL_ACCUM_BLUE_BITS:
19287117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumBlueBits);
19297117f1b4Smrg         break;
19307117f1b4Smrg      case GL_ACCUM_ALPHA_BITS:
19317117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumAlphaBits);
19327117f1b4Smrg         break;
19337117f1b4Smrg      case GL_ACCUM_CLEAR_VALUE:
19347117f1b4Smrg         params[0] = ctx->Accum.ClearColor[0];
19357117f1b4Smrg         params[1] = ctx->Accum.ClearColor[1];
19367117f1b4Smrg         params[2] = ctx->Accum.ClearColor[2];
19377117f1b4Smrg         params[3] = ctx->Accum.ClearColor[3];
19387117f1b4Smrg         break;
19397117f1b4Smrg      case GL_ALPHA_BIAS:
19407117f1b4Smrg         params[0] = ctx->Pixel.AlphaBias;
19417117f1b4Smrg         break;
19427117f1b4Smrg      case GL_ALPHA_BITS:
19437117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.alphaBits);
19447117f1b4Smrg         break;
19457117f1b4Smrg      case GL_ALPHA_SCALE:
19467117f1b4Smrg         params[0] = ctx->Pixel.AlphaScale;
19477117f1b4Smrg         break;
19487117f1b4Smrg      case GL_ALPHA_TEST:
19497117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.AlphaEnabled);
19507117f1b4Smrg         break;
19517117f1b4Smrg      case GL_ALPHA_TEST_FUNC:
19527117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.AlphaFunc);
19537117f1b4Smrg         break;
19547117f1b4Smrg      case GL_ALPHA_TEST_REF:
19557117f1b4Smrg         params[0] = ctx->Color.AlphaRef;
19567117f1b4Smrg         break;
19577117f1b4Smrg      case GL_ATTRIB_STACK_DEPTH:
19587117f1b4Smrg         params[0] = (GLfloat)(ctx->AttribStackDepth);
19597117f1b4Smrg         break;
19607117f1b4Smrg      case GL_AUTO_NORMAL:
19617117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.AutoNormal);
19627117f1b4Smrg         break;
19637117f1b4Smrg      case GL_AUX_BUFFERS:
19647117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.numAuxBuffers);
19657117f1b4Smrg         break;
19667117f1b4Smrg      case GL_BLEND:
19677117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.BlendEnabled);
19687117f1b4Smrg         break;
19697117f1b4Smrg      case GL_BLEND_DST:
19707117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstRGB);
19717117f1b4Smrg         break;
19727117f1b4Smrg      case GL_BLEND_SRC:
19737117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB);
19747117f1b4Smrg         break;
19757117f1b4Smrg      case GL_BLEND_SRC_RGB_EXT:
19767117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB);
19777117f1b4Smrg         break;
19787117f1b4Smrg      case GL_BLEND_DST_RGB_EXT:
19797117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstRGB);
19807117f1b4Smrg         break;
19817117f1b4Smrg      case GL_BLEND_SRC_ALPHA_EXT:
19827117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcA);
19837117f1b4Smrg         break;
19847117f1b4Smrg      case GL_BLEND_DST_ALPHA_EXT:
19857117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstA);
19867117f1b4Smrg         break;
19877117f1b4Smrg      case GL_BLEND_EQUATION:
19887117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendEquationRGB );
19897117f1b4Smrg         break;
19907117f1b4Smrg      case GL_BLEND_EQUATION_ALPHA_EXT:
19917117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendEquationA );
19927117f1b4Smrg         break;
19937117f1b4Smrg      case GL_BLEND_COLOR_EXT:
19947117f1b4Smrg         params[0] = ctx->Color.BlendColor[0];
19957117f1b4Smrg         params[1] = ctx->Color.BlendColor[1];
19967117f1b4Smrg         params[2] = ctx->Color.BlendColor[2];
19977117f1b4Smrg         params[3] = ctx->Color.BlendColor[3];
19987117f1b4Smrg         break;
19997117f1b4Smrg      case GL_BLUE_BIAS:
20007117f1b4Smrg         params[0] = ctx->Pixel.BlueBias;
20017117f1b4Smrg         break;
20027117f1b4Smrg      case GL_BLUE_BITS:
20037117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.blueBits);
20047117f1b4Smrg         break;
20057117f1b4Smrg      case GL_BLUE_SCALE:
20067117f1b4Smrg         params[0] = ctx->Pixel.BlueScale;
20077117f1b4Smrg         break;
20087117f1b4Smrg      case GL_CLIENT_ATTRIB_STACK_DEPTH:
20097117f1b4Smrg         params[0] = (GLfloat)(ctx->ClientAttribStackDepth);
20107117f1b4Smrg         break;
20117117f1b4Smrg      case GL_CLIP_PLANE0:
20127117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 0) & 1);
20137117f1b4Smrg         break;
20147117f1b4Smrg      case GL_CLIP_PLANE1:
20157117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 1) & 1);
20167117f1b4Smrg         break;
20177117f1b4Smrg      case GL_CLIP_PLANE2:
20187117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 2) & 1);
20197117f1b4Smrg         break;
20207117f1b4Smrg      case GL_CLIP_PLANE3:
20217117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 3) & 1);
20227117f1b4Smrg         break;
20237117f1b4Smrg      case GL_CLIP_PLANE4:
20247117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 4) & 1);
20257117f1b4Smrg         break;
20267117f1b4Smrg      case GL_CLIP_PLANE5:
20277117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 5) & 1);
20287117f1b4Smrg         break;
20297117f1b4Smrg      case GL_COLOR_CLEAR_VALUE:
20307117f1b4Smrg         params[0] = ctx->Color.ClearColor[0];
20317117f1b4Smrg         params[1] = ctx->Color.ClearColor[1];
20327117f1b4Smrg         params[2] = ctx->Color.ClearColor[2];
20337117f1b4Smrg         params[3] = ctx->Color.ClearColor[3];
20347117f1b4Smrg         break;
20357117f1b4Smrg      case GL_COLOR_MATERIAL:
20367117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.ColorMaterialEnabled);
20377117f1b4Smrg         break;
20387117f1b4Smrg      case GL_COLOR_MATERIAL_FACE:
20397117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Light.ColorMaterialFace);
20407117f1b4Smrg         break;
20417117f1b4Smrg      case GL_COLOR_MATERIAL_PARAMETER:
20427117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Light.ColorMaterialMode);
20437117f1b4Smrg         break;
20447117f1b4Smrg      case GL_COLOR_WRITEMASK:
20457117f1b4Smrg         params[0] = (GLfloat)(ctx->Color.ColorMask[RCOMP] ? 1 : 0);
20467117f1b4Smrg         params[1] = (GLfloat)(ctx->Color.ColorMask[GCOMP] ? 1 : 0);
20477117f1b4Smrg         params[2] = (GLfloat)(ctx->Color.ColorMask[BCOMP] ? 1 : 0);
20487117f1b4Smrg         params[3] = (GLfloat)(ctx->Color.ColorMask[ACOMP] ? 1 : 0);
20497117f1b4Smrg         break;
20507117f1b4Smrg      case GL_CULL_FACE:
20517117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.CullFlag);
20527117f1b4Smrg         break;
20537117f1b4Smrg      case GL_CULL_FACE_MODE:
20547117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Polygon.CullFaceMode);
20557117f1b4Smrg         break;
20567117f1b4Smrg      case GL_CURRENT_COLOR:
20577117f1b4Smrg         {
20587117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
20597117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0];
20607117f1b4Smrg         params[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1];
20617117f1b4Smrg         params[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2];
20627117f1b4Smrg         params[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3];
20637117f1b4Smrg         }
20647117f1b4Smrg         break;
20657117f1b4Smrg      case GL_CURRENT_INDEX:
20667117f1b4Smrg         {
20677117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
20687117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0];
20697117f1b4Smrg         }
20707117f1b4Smrg         break;
20717117f1b4Smrg      case GL_CURRENT_NORMAL:
20727117f1b4Smrg         {
20737117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
20747117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0];
20757117f1b4Smrg         params[1] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1];
20767117f1b4Smrg         params[2] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2];
20777117f1b4Smrg         }
20787117f1b4Smrg         break;
20797117f1b4Smrg      case GL_CURRENT_RASTER_COLOR:
20807117f1b4Smrg         params[0] = ctx->Current.RasterColor[0];
20817117f1b4Smrg         params[1] = ctx->Current.RasterColor[1];
20827117f1b4Smrg         params[2] = ctx->Current.RasterColor[2];
20837117f1b4Smrg         params[3] = ctx->Current.RasterColor[3];
20847117f1b4Smrg         break;
20857117f1b4Smrg      case GL_CURRENT_RASTER_DISTANCE:
20867117f1b4Smrg         params[0] = ctx->Current.RasterDistance;
20877117f1b4Smrg         break;
20887117f1b4Smrg      case GL_CURRENT_RASTER_INDEX:
20897117f1b4Smrg         params[0] = ctx->Current.RasterIndex;
20907117f1b4Smrg         break;
20917117f1b4Smrg      case GL_CURRENT_RASTER_POSITION:
20927117f1b4Smrg         params[0] = ctx->Current.RasterPos[0];
20937117f1b4Smrg         params[1] = ctx->Current.RasterPos[1];
20947117f1b4Smrg         params[2] = ctx->Current.RasterPos[2];
20957117f1b4Smrg         params[3] = ctx->Current.RasterPos[3];
20967117f1b4Smrg         break;
20977117f1b4Smrg      case GL_CURRENT_RASTER_SECONDARY_COLOR:
20987117f1b4Smrg         params[0] = ctx->Current.RasterSecondaryColor[0];
20997117f1b4Smrg         params[1] = ctx->Current.RasterSecondaryColor[1];
21007117f1b4Smrg         params[2] = ctx->Current.RasterSecondaryColor[2];
21017117f1b4Smrg         params[3] = ctx->Current.RasterSecondaryColor[3];
21027117f1b4Smrg         break;
21037117f1b4Smrg      case GL_CURRENT_RASTER_TEXTURE_COORDS:
21047117f1b4Smrg         {
21057117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
21067117f1b4Smrg         params[0] = ctx->Current.RasterTexCoords[texUnit][0];
21077117f1b4Smrg         params[1] = ctx->Current.RasterTexCoords[texUnit][1];
21087117f1b4Smrg         params[2] = ctx->Current.RasterTexCoords[texUnit][2];
21097117f1b4Smrg         params[3] = ctx->Current.RasterTexCoords[texUnit][3];
21107117f1b4Smrg         }
21117117f1b4Smrg         break;
21127117f1b4Smrg      case GL_CURRENT_RASTER_POSITION_VALID:
21137117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Current.RasterPosValid);
21147117f1b4Smrg         break;
21157117f1b4Smrg      case GL_CURRENT_TEXTURE_COORDS:
21167117f1b4Smrg         {
21177117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
21187117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0];
21197117f1b4Smrg         params[1] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1];
21207117f1b4Smrg         params[2] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2];
21217117f1b4Smrg         params[3] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3];
21227117f1b4Smrg         }
21237117f1b4Smrg         break;
21247117f1b4Smrg      case GL_DEPTH_BIAS:
21257117f1b4Smrg         params[0] = ctx->Pixel.DepthBias;
21267117f1b4Smrg         break;
21277117f1b4Smrg      case GL_DEPTH_BITS:
21287117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.depthBits);
21297117f1b4Smrg         break;
21307117f1b4Smrg      case GL_DEPTH_CLEAR_VALUE:
21317117f1b4Smrg         params[0] = ctx->Depth.Clear;
21327117f1b4Smrg         break;
21337117f1b4Smrg      case GL_DEPTH_FUNC:
21347117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Depth.Func);
21357117f1b4Smrg         break;
21367117f1b4Smrg      case GL_DEPTH_RANGE:
21377117f1b4Smrg         params[0] = ctx->Viewport.Near;
21387117f1b4Smrg         params[1] = ctx->Viewport.Far;
21397117f1b4Smrg         break;
21407117f1b4Smrg      case GL_DEPTH_SCALE:
21417117f1b4Smrg         params[0] = ctx->Pixel.DepthScale;
21427117f1b4Smrg         break;
21437117f1b4Smrg      case GL_DEPTH_TEST:
21447117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.Test);
21457117f1b4Smrg         break;
21467117f1b4Smrg      case GL_DEPTH_WRITEMASK:
21477117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.Mask);
21487117f1b4Smrg         break;
21497117f1b4Smrg      case GL_DITHER:
21507117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.DitherFlag);
21517117f1b4Smrg         break;
21527117f1b4Smrg      case GL_DOUBLEBUFFER:
21537117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.doubleBufferMode);
21547117f1b4Smrg         break;
21557117f1b4Smrg      case GL_DRAW_BUFFER:
21567117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->DrawBuffer->ColorDrawBuffer[0]);
21577117f1b4Smrg         break;
21587117f1b4Smrg      case GL_EDGE_FLAG:
21597117f1b4Smrg         {
21607117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
21617117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0));
21627117f1b4Smrg         }
21637117f1b4Smrg         break;
21647117f1b4Smrg      case GL_FEEDBACK_BUFFER_SIZE:
21657117f1b4Smrg         params[0] = (GLfloat)(ctx->Feedback.BufferSize);
21667117f1b4Smrg         break;
21677117f1b4Smrg      case GL_FEEDBACK_BUFFER_TYPE:
21687117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Feedback.Type);
21697117f1b4Smrg         break;
21707117f1b4Smrg      case GL_FOG:
21717117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Fog.Enabled);
21727117f1b4Smrg         break;
21737117f1b4Smrg      case GL_FOG_COLOR:
21747117f1b4Smrg         params[0] = ctx->Fog.Color[0];
21757117f1b4Smrg         params[1] = ctx->Fog.Color[1];
21767117f1b4Smrg         params[2] = ctx->Fog.Color[2];
21777117f1b4Smrg         params[3] = ctx->Fog.Color[3];
21787117f1b4Smrg         break;
21797117f1b4Smrg      case GL_FOG_DENSITY:
21807117f1b4Smrg         params[0] = ctx->Fog.Density;
21817117f1b4Smrg         break;
21827117f1b4Smrg      case GL_FOG_END:
21837117f1b4Smrg         params[0] = ctx->Fog.End;
21847117f1b4Smrg         break;
21857117f1b4Smrg      case GL_FOG_HINT:
21867117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.Fog);
21877117f1b4Smrg         break;
21887117f1b4Smrg      case GL_FOG_INDEX:
21897117f1b4Smrg         params[0] = ctx->Fog.Index;
21907117f1b4Smrg         break;
21917117f1b4Smrg      case GL_FOG_MODE:
21927117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Fog.Mode);
21937117f1b4Smrg         break;
21947117f1b4Smrg      case GL_FOG_START:
21957117f1b4Smrg         params[0] = ctx->Fog.Start;
21967117f1b4Smrg         break;
21977117f1b4Smrg      case GL_FRONT_FACE:
21987117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Polygon.FrontFace);
21997117f1b4Smrg         break;
22007117f1b4Smrg      case GL_GREEN_BIAS:
22017117f1b4Smrg         params[0] = ctx->Pixel.GreenBias;
22027117f1b4Smrg         break;
22037117f1b4Smrg      case GL_GREEN_BITS:
22047117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.greenBits);
22057117f1b4Smrg         break;
22067117f1b4Smrg      case GL_GREEN_SCALE:
22077117f1b4Smrg         params[0] = ctx->Pixel.GreenScale;
22087117f1b4Smrg         break;
22097117f1b4Smrg      case GL_INDEX_BITS:
22107117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.indexBits);
22117117f1b4Smrg         break;
22127117f1b4Smrg      case GL_INDEX_CLEAR_VALUE:
22137117f1b4Smrg         params[0] = (GLfloat)(ctx->Color.ClearIndex);
22147117f1b4Smrg         break;
22157117f1b4Smrg      case GL_INDEX_MODE:
22167117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(!ctx->DrawBuffer->Visual.rgbMode);
22177117f1b4Smrg         break;
22187117f1b4Smrg      case GL_INDEX_OFFSET:
22197117f1b4Smrg         params[0] = (GLfloat)(ctx->Pixel.IndexOffset);
22207117f1b4Smrg         break;
22217117f1b4Smrg      case GL_INDEX_SHIFT:
22227117f1b4Smrg         params[0] = (GLfloat)(ctx->Pixel.IndexShift);
22237117f1b4Smrg         break;
22247117f1b4Smrg      case GL_INDEX_WRITEMASK:
22257117f1b4Smrg         params[0] = (GLfloat)(ctx->Color.IndexMask);
22267117f1b4Smrg         break;
22277117f1b4Smrg      case GL_LIGHT0:
22287117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[0].Enabled);
22297117f1b4Smrg         break;
22307117f1b4Smrg      case GL_LIGHT1:
22317117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[1].Enabled);
22327117f1b4Smrg         break;
22337117f1b4Smrg      case GL_LIGHT2:
22347117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[2].Enabled);
22357117f1b4Smrg         break;
22367117f1b4Smrg      case GL_LIGHT3:
22377117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[3].Enabled);
22387117f1b4Smrg         break;
22397117f1b4Smrg      case GL_LIGHT4:
22407117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[4].Enabled);
22417117f1b4Smrg         break;
22427117f1b4Smrg      case GL_LIGHT5:
22437117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[5].Enabled);
22447117f1b4Smrg         break;
22457117f1b4Smrg      case GL_LIGHT6:
22467117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[6].Enabled);
22477117f1b4Smrg         break;
22487117f1b4Smrg      case GL_LIGHT7:
22497117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[7].Enabled);
22507117f1b4Smrg         break;
22517117f1b4Smrg      case GL_LIGHTING:
22527117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Enabled);
22537117f1b4Smrg         break;
22547117f1b4Smrg      case GL_LIGHT_MODEL_AMBIENT:
22557117f1b4Smrg         params[0] = ctx->Light.Model.Ambient[0];
22567117f1b4Smrg         params[1] = ctx->Light.Model.Ambient[1];
22577117f1b4Smrg         params[2] = ctx->Light.Model.Ambient[2];
22587117f1b4Smrg         params[3] = ctx->Light.Model.Ambient[3];
22597117f1b4Smrg         break;
22607117f1b4Smrg      case GL_LIGHT_MODEL_COLOR_CONTROL:
22617117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Light.Model.ColorControl);
22627117f1b4Smrg         break;
22637117f1b4Smrg      case GL_LIGHT_MODEL_LOCAL_VIEWER:
22647117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Model.LocalViewer);
22657117f1b4Smrg         break;
22667117f1b4Smrg      case GL_LIGHT_MODEL_TWO_SIDE:
22677117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Model.TwoSide);
22687117f1b4Smrg         break;
22697117f1b4Smrg      case GL_LINE_SMOOTH:
22707117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Line.SmoothFlag);
22717117f1b4Smrg         break;
22727117f1b4Smrg      case GL_LINE_SMOOTH_HINT:
22737117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.LineSmooth);
22747117f1b4Smrg         break;
22757117f1b4Smrg      case GL_LINE_STIPPLE:
22767117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Line.StippleFlag);
22777117f1b4Smrg         break;
22787117f1b4Smrg      case GL_LINE_STIPPLE_PATTERN:
22797117f1b4Smrg         params[0] = (GLfloat)(ctx->Line.StipplePattern);
22807117f1b4Smrg         break;
22817117f1b4Smrg      case GL_LINE_STIPPLE_REPEAT:
22827117f1b4Smrg         params[0] = (GLfloat)(ctx->Line.StippleFactor);
22837117f1b4Smrg         break;
22847117f1b4Smrg      case GL_LINE_WIDTH:
22857117f1b4Smrg         params[0] = ctx->Line.Width;
22867117f1b4Smrg         break;
22877117f1b4Smrg      case GL_LINE_WIDTH_GRANULARITY:
22887117f1b4Smrg         params[0] = ctx->Const.LineWidthGranularity;
22897117f1b4Smrg         break;
22907117f1b4Smrg      case GL_LINE_WIDTH_RANGE:
22917117f1b4Smrg         params[0] = ctx->Const.MinLineWidthAA;
22927117f1b4Smrg         params[1] = ctx->Const.MaxLineWidthAA;
22937117f1b4Smrg         break;
22947117f1b4Smrg      case GL_ALIASED_LINE_WIDTH_RANGE:
22957117f1b4Smrg         params[0] = ctx->Const.MinLineWidth;
22967117f1b4Smrg         params[1] = ctx->Const.MaxLineWidth;
22977117f1b4Smrg         break;
22987117f1b4Smrg      case GL_LIST_BASE:
22997117f1b4Smrg         params[0] = (GLfloat)(ctx->List.ListBase);
23007117f1b4Smrg         break;
23017117f1b4Smrg      case GL_LIST_INDEX:
23027117f1b4Smrg         params[0] = (GLfloat)(ctx->ListState.CurrentListNum);
23037117f1b4Smrg         break;
23047117f1b4Smrg      case GL_LIST_MODE:
23057117f1b4Smrg         {
23067117f1b4Smrg         GLenum mode;
23077117f1b4Smrg         if (!ctx->CompileFlag)
23087117f1b4Smrg            mode = 0;
23097117f1b4Smrg         else if (ctx->ExecuteFlag)
23107117f1b4Smrg            mode = GL_COMPILE_AND_EXECUTE;
23117117f1b4Smrg         else
23127117f1b4Smrg            mode = GL_COMPILE;
23137117f1b4Smrg         params[0] = ENUM_TO_FLOAT(mode);
23147117f1b4Smrg         }
23157117f1b4Smrg         break;
23167117f1b4Smrg      case GL_INDEX_LOGIC_OP:
23177117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.IndexLogicOpEnabled);
23187117f1b4Smrg         break;
23197117f1b4Smrg      case GL_COLOR_LOGIC_OP:
23207117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.ColorLogicOpEnabled);
23217117f1b4Smrg         break;
23227117f1b4Smrg      case GL_LOGIC_OP_MODE:
23237117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.LogicOp);
23247117f1b4Smrg         break;
23257117f1b4Smrg      case GL_MAP1_COLOR_4:
23267117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Color4);
23277117f1b4Smrg         break;
23287117f1b4Smrg      case GL_MAP1_GRID_DOMAIN:
23297117f1b4Smrg         params[0] = ctx->Eval.MapGrid1u1;
23307117f1b4Smrg         params[1] = ctx->Eval.MapGrid1u2;
23317117f1b4Smrg         break;
23327117f1b4Smrg      case GL_MAP1_GRID_SEGMENTS:
23337117f1b4Smrg         params[0] = (GLfloat)(ctx->Eval.MapGrid1un);
23347117f1b4Smrg         break;
23357117f1b4Smrg      case GL_MAP1_INDEX:
23367117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Index);
23377117f1b4Smrg         break;
23387117f1b4Smrg      case GL_MAP1_NORMAL:
23397117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Normal);
23407117f1b4Smrg         break;
23417117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_1:
23427117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord1);
23437117f1b4Smrg         break;
23447117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_2:
23457117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord2);
23467117f1b4Smrg         break;
23477117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_3:
23487117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord3);
23497117f1b4Smrg         break;
23507117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_4:
23517117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord4);
23527117f1b4Smrg         break;
23537117f1b4Smrg      case GL_MAP1_VERTEX_3:
23547117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Vertex3);
23557117f1b4Smrg         break;
23567117f1b4Smrg      case GL_MAP1_VERTEX_4:
23577117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Vertex4);
23587117f1b4Smrg         break;
23597117f1b4Smrg      case GL_MAP2_COLOR_4:
23607117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Color4);
23617117f1b4Smrg         break;
23627117f1b4Smrg      case GL_MAP2_GRID_DOMAIN:
23637117f1b4Smrg         params[0] = ctx->Eval.MapGrid2u1;
23647117f1b4Smrg         params[1] = ctx->Eval.MapGrid2u2;
23657117f1b4Smrg         params[2] = ctx->Eval.MapGrid2v1;
23667117f1b4Smrg         params[3] = ctx->Eval.MapGrid2v2;
23677117f1b4Smrg         break;
23687117f1b4Smrg      case GL_MAP2_GRID_SEGMENTS:
23697117f1b4Smrg         params[0] = (GLfloat)(ctx->Eval.MapGrid2un);
23707117f1b4Smrg         params[1] = (GLfloat)(ctx->Eval.MapGrid2vn);
23717117f1b4Smrg         break;
23727117f1b4Smrg      case GL_MAP2_INDEX:
23737117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Index);
23747117f1b4Smrg         break;
23757117f1b4Smrg      case GL_MAP2_NORMAL:
23767117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Normal);
23777117f1b4Smrg         break;
23787117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_1:
23797117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord1);
23807117f1b4Smrg         break;
23817117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_2:
23827117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord2);
23837117f1b4Smrg         break;
23847117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_3:
23857117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord3);
23867117f1b4Smrg         break;
23877117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_4:
23887117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord4);
23897117f1b4Smrg         break;
23907117f1b4Smrg      case GL_MAP2_VERTEX_3:
23917117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Vertex3);
23927117f1b4Smrg         break;
23937117f1b4Smrg      case GL_MAP2_VERTEX_4:
23947117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Vertex4);
23957117f1b4Smrg         break;
23967117f1b4Smrg      case GL_MAP_COLOR:
23977117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MapColorFlag);
23987117f1b4Smrg         break;
23997117f1b4Smrg      case GL_MAP_STENCIL:
24007117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MapStencilFlag);
24017117f1b4Smrg         break;
24027117f1b4Smrg      case GL_MATRIX_MODE:
24037117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Transform.MatrixMode);
24047117f1b4Smrg         break;
24057117f1b4Smrg      case GL_MAX_ATTRIB_STACK_DEPTH:
24067117f1b4Smrg         params[0] = (GLfloat)(MAX_ATTRIB_STACK_DEPTH);
24077117f1b4Smrg         break;
24087117f1b4Smrg      case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
24097117f1b4Smrg         params[0] = (GLfloat)(MAX_CLIENT_ATTRIB_STACK_DEPTH);
24107117f1b4Smrg         break;
24117117f1b4Smrg      case GL_MAX_CLIP_PLANES:
24127117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxClipPlanes);
24137117f1b4Smrg         break;
24147117f1b4Smrg      case GL_MAX_ELEMENTS_VERTICES:
24157117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxArrayLockSize);
24167117f1b4Smrg         break;
24177117f1b4Smrg      case GL_MAX_ELEMENTS_INDICES:
24187117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxArrayLockSize);
24197117f1b4Smrg         break;
24207117f1b4Smrg      case GL_MAX_EVAL_ORDER:
24217117f1b4Smrg         params[0] = (GLfloat)(MAX_EVAL_ORDER);
24227117f1b4Smrg         break;
24237117f1b4Smrg      case GL_MAX_LIGHTS:
24247117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxLights);
24257117f1b4Smrg         break;
24267117f1b4Smrg      case GL_MAX_LIST_NESTING:
24277117f1b4Smrg         params[0] = (GLfloat)(MAX_LIST_NESTING);
24287117f1b4Smrg         break;
24297117f1b4Smrg      case GL_MAX_MODELVIEW_STACK_DEPTH:
24307117f1b4Smrg         params[0] = (GLfloat)(MAX_MODELVIEW_STACK_DEPTH);
24317117f1b4Smrg         break;
24327117f1b4Smrg      case GL_MAX_NAME_STACK_DEPTH:
24337117f1b4Smrg         params[0] = (GLfloat)(MAX_NAME_STACK_DEPTH);
24347117f1b4Smrg         break;
24357117f1b4Smrg      case GL_MAX_PIXEL_MAP_TABLE:
24367117f1b4Smrg         params[0] = (GLfloat)(MAX_PIXEL_MAP_TABLE);
24377117f1b4Smrg         break;
24387117f1b4Smrg      case GL_MAX_PROJECTION_STACK_DEPTH:
24397117f1b4Smrg         params[0] = (GLfloat)(MAX_PROJECTION_STACK_DEPTH);
24407117f1b4Smrg         break;
24417117f1b4Smrg      case GL_MAX_TEXTURE_SIZE:
24427117f1b4Smrg         params[0] = (GLfloat)(1 << (ctx->Const.MaxTextureLevels - 1));
24437117f1b4Smrg         break;
24447117f1b4Smrg      case GL_MAX_3D_TEXTURE_SIZE:
24457117f1b4Smrg         params[0] = (GLfloat)(1 << (ctx->Const.Max3DTextureLevels - 1));
24467117f1b4Smrg         break;
24477117f1b4Smrg      case GL_MAX_TEXTURE_STACK_DEPTH:
24487117f1b4Smrg         params[0] = (GLfloat)(MAX_TEXTURE_STACK_DEPTH);
24497117f1b4Smrg         break;
24507117f1b4Smrg      case GL_MAX_VIEWPORT_DIMS:
24517117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxViewportWidth);
24527117f1b4Smrg         params[1] = (GLfloat)(ctx->Const.MaxViewportHeight);
24537117f1b4Smrg         break;
24547117f1b4Smrg      case GL_MODELVIEW_MATRIX:
24557117f1b4Smrg         {
24567117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
24577117f1b4Smrg         params[0] = matrix[0];
24587117f1b4Smrg         params[1] = matrix[1];
24597117f1b4Smrg         params[2] = matrix[2];
24607117f1b4Smrg         params[3] = matrix[3];
24617117f1b4Smrg         params[4] = matrix[4];
24627117f1b4Smrg         params[5] = matrix[5];
24637117f1b4Smrg         params[6] = matrix[6];
24647117f1b4Smrg         params[7] = matrix[7];
24657117f1b4Smrg         params[8] = matrix[8];
24667117f1b4Smrg         params[9] = matrix[9];
24677117f1b4Smrg         params[10] = matrix[10];
24687117f1b4Smrg         params[11] = matrix[11];
24697117f1b4Smrg         params[12] = matrix[12];
24707117f1b4Smrg         params[13] = matrix[13];
24717117f1b4Smrg         params[14] = matrix[14];
24727117f1b4Smrg         params[15] = matrix[15];
24737117f1b4Smrg         }
24747117f1b4Smrg         break;
24757117f1b4Smrg      case GL_MODELVIEW_STACK_DEPTH:
24767117f1b4Smrg         params[0] = (GLfloat)(ctx->ModelviewMatrixStack.Depth + 1);
24777117f1b4Smrg         break;
24787117f1b4Smrg      case GL_NAME_STACK_DEPTH:
24797117f1b4Smrg         params[0] = (GLfloat)(ctx->Select.NameStackDepth);
24807117f1b4Smrg         break;
24817117f1b4Smrg      case GL_NORMALIZE:
24827117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.Normalize);
24837117f1b4Smrg         break;
24847117f1b4Smrg      case GL_PACK_ALIGNMENT:
24857117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.Alignment);
24867117f1b4Smrg         break;
24877117f1b4Smrg      case GL_PACK_LSB_FIRST:
24887117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.LsbFirst);
24897117f1b4Smrg         break;
24907117f1b4Smrg      case GL_PACK_ROW_LENGTH:
24917117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.RowLength);
24927117f1b4Smrg         break;
24937117f1b4Smrg      case GL_PACK_SKIP_PIXELS:
24947117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.SkipPixels);
24957117f1b4Smrg         break;
24967117f1b4Smrg      case GL_PACK_SKIP_ROWS:
24977117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.SkipRows);
24987117f1b4Smrg         break;
24997117f1b4Smrg      case GL_PACK_SWAP_BYTES:
25007117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.SwapBytes);
25017117f1b4Smrg         break;
25027117f1b4Smrg      case GL_PACK_SKIP_IMAGES_EXT:
25037117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.SkipImages);
25047117f1b4Smrg         break;
25057117f1b4Smrg      case GL_PACK_IMAGE_HEIGHT_EXT:
25067117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.ImageHeight);
25077117f1b4Smrg         break;
25087117f1b4Smrg      case GL_PACK_INVERT_MESA:
25097117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.Invert);
25107117f1b4Smrg         break;
25117117f1b4Smrg      case GL_PERSPECTIVE_CORRECTION_HINT:
25127117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.PerspectiveCorrection);
25137117f1b4Smrg         break;
25147117f1b4Smrg      case GL_PIXEL_MAP_A_TO_A_SIZE:
25157117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.AtoA.Size);
25167117f1b4Smrg         break;
25177117f1b4Smrg      case GL_PIXEL_MAP_B_TO_B_SIZE:
25187117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.BtoB.Size);
25197117f1b4Smrg         break;
25207117f1b4Smrg      case GL_PIXEL_MAP_G_TO_G_SIZE:
25217117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.GtoG.Size);
25227117f1b4Smrg         break;
25237117f1b4Smrg      case GL_PIXEL_MAP_I_TO_A_SIZE:
25247117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoA.Size);
25257117f1b4Smrg         break;
25267117f1b4Smrg      case GL_PIXEL_MAP_I_TO_B_SIZE:
25277117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoB.Size);
25287117f1b4Smrg         break;
25297117f1b4Smrg      case GL_PIXEL_MAP_I_TO_G_SIZE:
25307117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoG.Size);
25317117f1b4Smrg         break;
25327117f1b4Smrg      case GL_PIXEL_MAP_I_TO_I_SIZE:
25337117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoI.Size);
25347117f1b4Smrg         break;
25357117f1b4Smrg      case GL_PIXEL_MAP_I_TO_R_SIZE:
25367117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoR.Size);
25377117f1b4Smrg         break;
25387117f1b4Smrg      case GL_PIXEL_MAP_R_TO_R_SIZE:
25397117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.RtoR.Size);
25407117f1b4Smrg         break;
25417117f1b4Smrg      case GL_PIXEL_MAP_S_TO_S_SIZE:
25427117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.StoS.Size);
25437117f1b4Smrg         break;
25447117f1b4Smrg      case GL_POINT_SIZE:
25457117f1b4Smrg         params[0] = ctx->Point.Size;
25467117f1b4Smrg         break;
25477117f1b4Smrg      case GL_POINT_SIZE_GRANULARITY:
25487117f1b4Smrg         params[0] = ctx->Const.PointSizeGranularity;
25497117f1b4Smrg         break;
25507117f1b4Smrg      case GL_POINT_SIZE_RANGE:
25517117f1b4Smrg         params[0] = ctx->Const.MinPointSizeAA;
25527117f1b4Smrg         params[1] = ctx->Const.MaxPointSizeAA;
25537117f1b4Smrg         break;
25547117f1b4Smrg      case GL_ALIASED_POINT_SIZE_RANGE:
25557117f1b4Smrg         params[0] = ctx->Const.MinPointSize;
25567117f1b4Smrg         params[1] = ctx->Const.MaxPointSize;
25577117f1b4Smrg         break;
25587117f1b4Smrg      case GL_POINT_SMOOTH:
25597117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Point.SmoothFlag);
25607117f1b4Smrg         break;
25617117f1b4Smrg      case GL_POINT_SMOOTH_HINT:
25627117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.PointSmooth);
25637117f1b4Smrg         break;
25647117f1b4Smrg      case GL_POINT_SIZE_MIN_EXT:
25657117f1b4Smrg         params[0] = ctx->Point.MinSize;
25667117f1b4Smrg         break;
25677117f1b4Smrg      case GL_POINT_SIZE_MAX_EXT:
25687117f1b4Smrg         params[0] = ctx->Point.MaxSize;
25697117f1b4Smrg         break;
25707117f1b4Smrg      case GL_POINT_FADE_THRESHOLD_SIZE_EXT:
25717117f1b4Smrg         params[0] = ctx->Point.Threshold;
25727117f1b4Smrg         break;
25737117f1b4Smrg      case GL_DISTANCE_ATTENUATION_EXT:
25747117f1b4Smrg         params[0] = ctx->Point.Params[0];
25757117f1b4Smrg         params[1] = ctx->Point.Params[1];
25767117f1b4Smrg         params[2] = ctx->Point.Params[2];
25777117f1b4Smrg         break;
25787117f1b4Smrg      case GL_POLYGON_MODE:
25797117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Polygon.FrontMode);
25807117f1b4Smrg         params[1] = ENUM_TO_FLOAT(ctx->Polygon.BackMode);
25817117f1b4Smrg         break;
25827117f1b4Smrg      case GL_POLYGON_OFFSET_BIAS_EXT:
25837117f1b4Smrg         params[0] = ctx->Polygon.OffsetUnits;
25847117f1b4Smrg         break;
25857117f1b4Smrg      case GL_POLYGON_OFFSET_FACTOR:
25867117f1b4Smrg         params[0] = ctx->Polygon.OffsetFactor ;
25877117f1b4Smrg         break;
25887117f1b4Smrg      case GL_POLYGON_OFFSET_UNITS:
25897117f1b4Smrg         params[0] = ctx->Polygon.OffsetUnits ;
25907117f1b4Smrg         break;
25917117f1b4Smrg      case GL_POLYGON_SMOOTH:
25927117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.SmoothFlag);
25937117f1b4Smrg         break;
25947117f1b4Smrg      case GL_POLYGON_SMOOTH_HINT:
25957117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.PolygonSmooth);
25967117f1b4Smrg         break;
25977117f1b4Smrg      case GL_POLYGON_STIPPLE:
25987117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.StippleFlag);
25997117f1b4Smrg         break;
26007117f1b4Smrg      case GL_PROJECTION_MATRIX:
26017117f1b4Smrg         {
26027117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
26037117f1b4Smrg         params[0] = matrix[0];
26047117f1b4Smrg         params[1] = matrix[1];
26057117f1b4Smrg         params[2] = matrix[2];
26067117f1b4Smrg         params[3] = matrix[3];
26077117f1b4Smrg         params[4] = matrix[4];
26087117f1b4Smrg         params[5] = matrix[5];
26097117f1b4Smrg         params[6] = matrix[6];
26107117f1b4Smrg         params[7] = matrix[7];
26117117f1b4Smrg         params[8] = matrix[8];
26127117f1b4Smrg         params[9] = matrix[9];
26137117f1b4Smrg         params[10] = matrix[10];
26147117f1b4Smrg         params[11] = matrix[11];
26157117f1b4Smrg         params[12] = matrix[12];
26167117f1b4Smrg         params[13] = matrix[13];
26177117f1b4Smrg         params[14] = matrix[14];
26187117f1b4Smrg         params[15] = matrix[15];
26197117f1b4Smrg         }
26207117f1b4Smrg         break;
26217117f1b4Smrg      case GL_PROJECTION_STACK_DEPTH:
26227117f1b4Smrg         params[0] = (GLfloat)(ctx->ProjectionMatrixStack.Depth + 1);
26237117f1b4Smrg         break;
26247117f1b4Smrg      case GL_READ_BUFFER:
26257117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->ReadBuffer->ColorReadBuffer);
26267117f1b4Smrg         break;
26277117f1b4Smrg      case GL_RED_BIAS:
26287117f1b4Smrg         params[0] = ctx->Pixel.RedBias;
26297117f1b4Smrg         break;
26307117f1b4Smrg      case GL_RED_BITS:
26317117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.redBits);
26327117f1b4Smrg         break;
26337117f1b4Smrg      case GL_RED_SCALE:
26347117f1b4Smrg         params[0] = ctx->Pixel.RedScale;
26357117f1b4Smrg         break;
26367117f1b4Smrg      case GL_RENDER_MODE:
26377117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->RenderMode);
26387117f1b4Smrg         break;
26397117f1b4Smrg      case GL_RESCALE_NORMAL:
26407117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.RescaleNormals);
26417117f1b4Smrg         break;
26427117f1b4Smrg      case GL_RGBA_MODE:
26437117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.rgbMode);
26447117f1b4Smrg         break;
26457117f1b4Smrg      case GL_SCISSOR_BOX:
26467117f1b4Smrg         params[0] = (GLfloat)(ctx->Scissor.X);
26477117f1b4Smrg         params[1] = (GLfloat)(ctx->Scissor.Y);
26487117f1b4Smrg         params[2] = (GLfloat)(ctx->Scissor.Width);
26497117f1b4Smrg         params[3] = (GLfloat)(ctx->Scissor.Height);
26507117f1b4Smrg         break;
26517117f1b4Smrg      case GL_SCISSOR_TEST:
26527117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Scissor.Enabled);
26537117f1b4Smrg         break;
26547117f1b4Smrg      case GL_SELECTION_BUFFER_SIZE:
26557117f1b4Smrg         params[0] = (GLfloat)(ctx->Select.BufferSize);
26567117f1b4Smrg         break;
26577117f1b4Smrg      case GL_SHADE_MODEL:
26587117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Light.ShadeModel);
26597117f1b4Smrg         break;
26607117f1b4Smrg      case GL_SHARED_TEXTURE_PALETTE_EXT:
26617117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Texture.SharedPalette);
26627117f1b4Smrg         break;
26637117f1b4Smrg      case GL_STENCIL_BITS:
26647117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.stencilBits);
26657117f1b4Smrg         break;
26667117f1b4Smrg      case GL_STENCIL_CLEAR_VALUE:
26677117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.Clear);
26687117f1b4Smrg         break;
26697117f1b4Smrg      case GL_STENCIL_FAIL:
26707117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]);
26717117f1b4Smrg         break;
26727117f1b4Smrg      case GL_STENCIL_FUNC:
26737117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.Function[ctx->Stencil.ActiveFace]);
26747117f1b4Smrg         break;
26757117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_FAIL:
26767117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]);
26777117f1b4Smrg         break;
26787117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_PASS:
26797117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]);
26807117f1b4Smrg         break;
26817117f1b4Smrg      case GL_STENCIL_REF:
26827117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.Ref[ctx->Stencil.ActiveFace]);
26837117f1b4Smrg         break;
26847117f1b4Smrg      case GL_STENCIL_TEST:
26857117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Stencil.Enabled);
26867117f1b4Smrg         break;
26877117f1b4Smrg      case GL_STENCIL_VALUE_MASK:
26887117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]);
26897117f1b4Smrg         break;
26907117f1b4Smrg      case GL_STENCIL_WRITEMASK:
26917117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]);
26927117f1b4Smrg         break;
26937117f1b4Smrg      case GL_STEREO:
26947117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.stereoMode);
26957117f1b4Smrg         break;
26967117f1b4Smrg      case GL_SUBPIXEL_BITS:
26977117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.SubPixelBits);
26987117f1b4Smrg         break;
26997117f1b4Smrg      case GL_TEXTURE_1D:
27007117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D));
27017117f1b4Smrg         break;
27027117f1b4Smrg      case GL_TEXTURE_2D:
27037117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D));
27047117f1b4Smrg         break;
27057117f1b4Smrg      case GL_TEXTURE_3D:
27067117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D));
27077117f1b4Smrg         break;
27087117f1b4Smrg      case GL_TEXTURE_BINDING_1D:
27097117f1b4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name);
27107117f1b4Smrg         break;
27117117f1b4Smrg      case GL_TEXTURE_BINDING_2D:
27127117f1b4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2D->Name);
27137117f1b4Smrg         break;
27147117f1b4Smrg      case GL_TEXTURE_BINDING_3D:
27157117f1b4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name);
27167117f1b4Smrg         break;
27177117f1b4Smrg      case GL_TEXTURE_ENV_COLOR:
27187117f1b4Smrg         {
27197117f1b4Smrg         const GLfloat *color = ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvColor;
27207117f1b4Smrg         params[0] = color[0];
27217117f1b4Smrg         params[1] = color[1];
27227117f1b4Smrg         params[2] = color[2];
27237117f1b4Smrg         params[3] = color[3];
27247117f1b4Smrg         }
27257117f1b4Smrg         break;
27267117f1b4Smrg      case GL_TEXTURE_ENV_MODE:
27277117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvMode);
27287117f1b4Smrg         break;
27297117f1b4Smrg      case GL_TEXTURE_GEN_S:
27307117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0));
27317117f1b4Smrg         break;
27327117f1b4Smrg      case GL_TEXTURE_GEN_T:
27337117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0));
27347117f1b4Smrg         break;
27357117f1b4Smrg      case GL_TEXTURE_GEN_R:
27367117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0));
27377117f1b4Smrg         break;
27387117f1b4Smrg      case GL_TEXTURE_GEN_Q:
27397117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0));
27407117f1b4Smrg         break;
27417117f1b4Smrg      case GL_TEXTURE_MATRIX:
27427117f1b4Smrg         {
27437117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
27447117f1b4Smrg         params[0] = matrix[0];
27457117f1b4Smrg         params[1] = matrix[1];
27467117f1b4Smrg         params[2] = matrix[2];
27477117f1b4Smrg         params[3] = matrix[3];
27487117f1b4Smrg         params[4] = matrix[4];
27497117f1b4Smrg         params[5] = matrix[5];
27507117f1b4Smrg         params[6] = matrix[6];
27517117f1b4Smrg         params[7] = matrix[7];
27527117f1b4Smrg         params[8] = matrix[8];
27537117f1b4Smrg         params[9] = matrix[9];
27547117f1b4Smrg         params[10] = matrix[10];
27557117f1b4Smrg         params[11] = matrix[11];
27567117f1b4Smrg         params[12] = matrix[12];
27577117f1b4Smrg         params[13] = matrix[13];
27587117f1b4Smrg         params[14] = matrix[14];
27597117f1b4Smrg         params[15] = matrix[15];
27607117f1b4Smrg         }
27617117f1b4Smrg         break;
27627117f1b4Smrg      case GL_TEXTURE_STACK_DEPTH:
27637117f1b4Smrg         params[0] = (GLfloat)(ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1);
27647117f1b4Smrg         break;
27657117f1b4Smrg      case GL_UNPACK_ALIGNMENT:
27667117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.Alignment);
27677117f1b4Smrg         break;
27687117f1b4Smrg      case GL_UNPACK_LSB_FIRST:
27697117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.LsbFirst);
27707117f1b4Smrg         break;
27717117f1b4Smrg      case GL_UNPACK_ROW_LENGTH:
27727117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.RowLength);
27737117f1b4Smrg         break;
27747117f1b4Smrg      case GL_UNPACK_SKIP_PIXELS:
27757117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.SkipPixels);
27767117f1b4Smrg         break;
27777117f1b4Smrg      case GL_UNPACK_SKIP_ROWS:
27787117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.SkipRows);
27797117f1b4Smrg         break;
27807117f1b4Smrg      case GL_UNPACK_SWAP_BYTES:
27817117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.SwapBytes);
27827117f1b4Smrg         break;
27837117f1b4Smrg      case GL_UNPACK_SKIP_IMAGES_EXT:
27847117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.SkipImages);
27857117f1b4Smrg         break;
27867117f1b4Smrg      case GL_UNPACK_IMAGE_HEIGHT_EXT:
27877117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.ImageHeight);
27887117f1b4Smrg         break;
27897117f1b4Smrg      case GL_UNPACK_CLIENT_STORAGE_APPLE:
27907117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.ClientStorage);
27917117f1b4Smrg         break;
27927117f1b4Smrg      case GL_VIEWPORT:
27937117f1b4Smrg         params[0] = (GLfloat)(ctx->Viewport.X);
27947117f1b4Smrg         params[1] = (GLfloat)(ctx->Viewport.Y);
27957117f1b4Smrg         params[2] = (GLfloat)(ctx->Viewport.Width);
27967117f1b4Smrg         params[3] = (GLfloat)(ctx->Viewport.Height);
27977117f1b4Smrg         break;
27987117f1b4Smrg      case GL_ZOOM_X:
27997117f1b4Smrg         params[0] = ctx->Pixel.ZoomX;
28007117f1b4Smrg         break;
28017117f1b4Smrg      case GL_ZOOM_Y:
28027117f1b4Smrg         params[0] = ctx->Pixel.ZoomY;
28037117f1b4Smrg         break;
28047117f1b4Smrg      case GL_VERTEX_ARRAY:
28057117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Vertex.Enabled);
28067117f1b4Smrg         break;
28077117f1b4Smrg      case GL_VERTEX_ARRAY_SIZE:
28087117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.Size);
28097117f1b4Smrg         break;
28107117f1b4Smrg      case GL_VERTEX_ARRAY_TYPE:
28117117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Vertex.Type);
28127117f1b4Smrg         break;
28137117f1b4Smrg      case GL_VERTEX_ARRAY_STRIDE:
28147117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.Stride);
28157117f1b4Smrg         break;
28167117f1b4Smrg      case GL_VERTEX_ARRAY_COUNT_EXT:
28177117f1b4Smrg         params[0] = (GLfloat)(0);
28187117f1b4Smrg         break;
28197117f1b4Smrg      case GL_NORMAL_ARRAY:
28207117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Normal.Enabled);
28217117f1b4Smrg         break;
28227117f1b4Smrg      case GL_NORMAL_ARRAY_TYPE:
28237117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Normal.Type);
28247117f1b4Smrg         break;
28257117f1b4Smrg      case GL_NORMAL_ARRAY_STRIDE:
28267117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Normal.Stride);
28277117f1b4Smrg         break;
28287117f1b4Smrg      case GL_NORMAL_ARRAY_COUNT_EXT:
28297117f1b4Smrg         params[0] = (GLfloat)(0);
28307117f1b4Smrg         break;
28317117f1b4Smrg      case GL_COLOR_ARRAY:
28327117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Color.Enabled);
28337117f1b4Smrg         break;
28347117f1b4Smrg      case GL_COLOR_ARRAY_SIZE:
28357117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.Size);
28367117f1b4Smrg         break;
28377117f1b4Smrg      case GL_COLOR_ARRAY_TYPE:
28387117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Color.Type);
28397117f1b4Smrg         break;
28407117f1b4Smrg      case GL_COLOR_ARRAY_STRIDE:
28417117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.Stride);
28427117f1b4Smrg         break;
28437117f1b4Smrg      case GL_COLOR_ARRAY_COUNT_EXT:
28447117f1b4Smrg         params[0] = (GLfloat)(0);
28457117f1b4Smrg         break;
28467117f1b4Smrg      case GL_INDEX_ARRAY:
28477117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Index.Enabled);
28487117f1b4Smrg         break;
28497117f1b4Smrg      case GL_INDEX_ARRAY_TYPE:
28507117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Index.Type);
28517117f1b4Smrg         break;
28527117f1b4Smrg      case GL_INDEX_ARRAY_STRIDE:
28537117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Index.Stride);
28547117f1b4Smrg         break;
28557117f1b4Smrg      case GL_INDEX_ARRAY_COUNT_EXT:
28567117f1b4Smrg         params[0] = (GLfloat)(0);
28577117f1b4Smrg         break;
28587117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY:
28597117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled);
28607117f1b4Smrg         break;
28617117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_SIZE:
28627117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size);
28637117f1b4Smrg         break;
28647117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_TYPE:
28657117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
28667117f1b4Smrg         break;
28677117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_STRIDE:
28687117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride);
28697117f1b4Smrg         break;
28707117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
28717117f1b4Smrg         params[0] = (GLfloat)(0);
28727117f1b4Smrg         break;
28737117f1b4Smrg      case GL_EDGE_FLAG_ARRAY:
28747117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->EdgeFlag.Enabled);
28757117f1b4Smrg         break;
28767117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_STRIDE:
28777117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->EdgeFlag.Stride);
28787117f1b4Smrg         break;
28797117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
28807117f1b4Smrg         params[0] = (GLfloat)(0);
28817117f1b4Smrg         break;
28827117f1b4Smrg      case GL_MAX_TEXTURE_UNITS_ARB:
28837117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetFloatv");
28847117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxTextureUnits);
28857117f1b4Smrg         break;
28867117f1b4Smrg      case GL_ACTIVE_TEXTURE_ARB:
28877117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetFloatv");
28887117f1b4Smrg         params[0] = (GLfloat)(GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit);
28897117f1b4Smrg         break;
28907117f1b4Smrg      case GL_CLIENT_ACTIVE_TEXTURE_ARB:
28917117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetFloatv");
28927117f1b4Smrg         params[0] = (GLfloat)(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
28937117f1b4Smrg         break;
28947117f1b4Smrg      case GL_TEXTURE_CUBE_MAP_ARB:
28957117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetFloatv");
28967117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB));
28977117f1b4Smrg         break;
28987117f1b4Smrg      case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
28997117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetFloatv");
29007117f1b4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentCubeMap->Name);
29017117f1b4Smrg         break;
29027117f1b4Smrg      case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
29037117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetFloatv");
29047117f1b4Smrg         params[0] = (GLfloat)((1 << (ctx->Const.MaxCubeTextureLevels - 1)));
29057117f1b4Smrg         break;
29067117f1b4Smrg      case GL_TEXTURE_COMPRESSION_HINT_ARB:
29077117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetFloatv");
29087117f1b4Smrg         params[0] = (GLfloat)(ctx->Hint.TextureCompression);
29097117f1b4Smrg         break;
29107117f1b4Smrg      case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
29117117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetFloatv");
29127117f1b4Smrg         params[0] = (GLfloat)(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE));
29137117f1b4Smrg         break;
29147117f1b4Smrg      case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
29157117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetFloatv");
29167117f1b4Smrg         {
29177117f1b4Smrg         GLint formats[100];
29187117f1b4Smrg         GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
29197117f1b4Smrg         ASSERT(n <= 100);
29207117f1b4Smrg         for (i = 0; i < n; i++)
29217117f1b4Smrg            params[i] = ENUM_TO_INT(formats[i]);
29227117f1b4Smrg         }
29237117f1b4Smrg         break;
29247117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
29257117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetFloatv");
29267117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.LockFirst);
29277117f1b4Smrg         break;
29287117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
29297117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetFloatv");
29307117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.LockCount);
29317117f1b4Smrg         break;
29327117f1b4Smrg      case GL_TRANSPOSE_COLOR_MATRIX_ARB:
29337117f1b4Smrg         {
29347117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
29357117f1b4Smrg         params[0] = matrix[0];
29367117f1b4Smrg         params[1] = matrix[4];
29377117f1b4Smrg         params[2] = matrix[8];
29387117f1b4Smrg         params[3] = matrix[12];
29397117f1b4Smrg         params[4] = matrix[1];
29407117f1b4Smrg         params[5] = matrix[5];
29417117f1b4Smrg         params[6] = matrix[9];
29427117f1b4Smrg         params[7] = matrix[13];
29437117f1b4Smrg         params[8] = matrix[2];
29447117f1b4Smrg         params[9] = matrix[6];
29457117f1b4Smrg         params[10] = matrix[10];
29467117f1b4Smrg         params[11] = matrix[14];
29477117f1b4Smrg         params[12] = matrix[3];
29487117f1b4Smrg         params[13] = matrix[7];
29497117f1b4Smrg         params[14] = matrix[11];
29507117f1b4Smrg         params[15] = matrix[15];
29517117f1b4Smrg         }
29527117f1b4Smrg         break;
29537117f1b4Smrg      case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
29547117f1b4Smrg         {
29557117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
29567117f1b4Smrg         params[0] = matrix[0];
29577117f1b4Smrg         params[1] = matrix[4];
29587117f1b4Smrg         params[2] = matrix[8];
29597117f1b4Smrg         params[3] = matrix[12];
29607117f1b4Smrg         params[4] = matrix[1];
29617117f1b4Smrg         params[5] = matrix[5];
29627117f1b4Smrg         params[6] = matrix[9];
29637117f1b4Smrg         params[7] = matrix[13];
29647117f1b4Smrg         params[8] = matrix[2];
29657117f1b4Smrg         params[9] = matrix[6];
29667117f1b4Smrg         params[10] = matrix[10];
29677117f1b4Smrg         params[11] = matrix[14];
29687117f1b4Smrg         params[12] = matrix[3];
29697117f1b4Smrg         params[13] = matrix[7];
29707117f1b4Smrg         params[14] = matrix[11];
29717117f1b4Smrg         params[15] = matrix[15];
29727117f1b4Smrg         }
29737117f1b4Smrg         break;
29747117f1b4Smrg      case GL_TRANSPOSE_PROJECTION_MATRIX_ARB:
29757117f1b4Smrg         {
29767117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
29777117f1b4Smrg         params[0] = matrix[0];
29787117f1b4Smrg         params[1] = matrix[4];
29797117f1b4Smrg         params[2] = matrix[8];
29807117f1b4Smrg         params[3] = matrix[12];
29817117f1b4Smrg         params[4] = matrix[1];
29827117f1b4Smrg         params[5] = matrix[5];
29837117f1b4Smrg         params[6] = matrix[9];
29847117f1b4Smrg         params[7] = matrix[13];
29857117f1b4Smrg         params[8] = matrix[2];
29867117f1b4Smrg         params[9] = matrix[6];
29877117f1b4Smrg         params[10] = matrix[10];
29887117f1b4Smrg         params[11] = matrix[14];
29897117f1b4Smrg         params[12] = matrix[3];
29907117f1b4Smrg         params[13] = matrix[7];
29917117f1b4Smrg         params[14] = matrix[11];
29927117f1b4Smrg         params[15] = matrix[15];
29937117f1b4Smrg         }
29947117f1b4Smrg         break;
29957117f1b4Smrg      case GL_TRANSPOSE_TEXTURE_MATRIX_ARB:
29967117f1b4Smrg         {
29977117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
29987117f1b4Smrg         params[0] = matrix[0];
29997117f1b4Smrg         params[1] = matrix[4];
30007117f1b4Smrg         params[2] = matrix[8];
30017117f1b4Smrg         params[3] = matrix[12];
30027117f1b4Smrg         params[4] = matrix[1];
30037117f1b4Smrg         params[5] = matrix[5];
30047117f1b4Smrg         params[6] = matrix[9];
30057117f1b4Smrg         params[7] = matrix[13];
30067117f1b4Smrg         params[8] = matrix[2];
30077117f1b4Smrg         params[9] = matrix[6];
30087117f1b4Smrg         params[10] = matrix[10];
30097117f1b4Smrg         params[11] = matrix[14];
30107117f1b4Smrg         params[12] = matrix[3];
30117117f1b4Smrg         params[13] = matrix[7];
30127117f1b4Smrg         params[14] = matrix[11];
30137117f1b4Smrg         params[15] = matrix[15];
30147117f1b4Smrg         }
30157117f1b4Smrg         break;
30167117f1b4Smrg      case GL_COLOR_MATRIX_SGI:
30177117f1b4Smrg         {
30187117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
30197117f1b4Smrg         params[0] = matrix[0];
30207117f1b4Smrg         params[1] = matrix[1];
30217117f1b4Smrg         params[2] = matrix[2];
30227117f1b4Smrg         params[3] = matrix[3];
30237117f1b4Smrg         params[4] = matrix[4];
30247117f1b4Smrg         params[5] = matrix[5];
30257117f1b4Smrg         params[6] = matrix[6];
30267117f1b4Smrg         params[7] = matrix[7];
30277117f1b4Smrg         params[8] = matrix[8];
30287117f1b4Smrg         params[9] = matrix[9];
30297117f1b4Smrg         params[10] = matrix[10];
30307117f1b4Smrg         params[11] = matrix[11];
30317117f1b4Smrg         params[12] = matrix[12];
30327117f1b4Smrg         params[13] = matrix[13];
30337117f1b4Smrg         params[14] = matrix[14];
30347117f1b4Smrg         params[15] = matrix[15];
30357117f1b4Smrg         }
30367117f1b4Smrg         break;
30377117f1b4Smrg      case GL_COLOR_MATRIX_STACK_DEPTH_SGI:
30387117f1b4Smrg         params[0] = (GLfloat)(ctx->ColorMatrixStack.Depth + 1);
30397117f1b4Smrg         break;
30407117f1b4Smrg      case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI:
30417117f1b4Smrg         params[0] = (GLfloat)(MAX_COLOR_STACK_DEPTH);
30427117f1b4Smrg         break;
30437117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_SCALE_SGI:
30447117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixScale[0];
30457117f1b4Smrg         break;
30467117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI:
30477117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixScale[1];
30487117f1b4Smrg         break;
30497117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI:
30507117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixScale[2];
30517117f1b4Smrg         break;
30527117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI:
30537117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixScale[3];
30547117f1b4Smrg         break;
30557117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_BIAS_SGI:
30567117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixBias[0];
30577117f1b4Smrg         break;
30587117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI:
30597117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixBias[1];
30607117f1b4Smrg         break;
30617117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI:
30627117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixBias[2];
30637117f1b4Smrg         break;
30647117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI:
30657117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixBias[3];
30667117f1b4Smrg         break;
30677117f1b4Smrg      case GL_CONVOLUTION_1D_EXT:
30687117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30697117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Convolution1DEnabled);
30707117f1b4Smrg         break;
30717117f1b4Smrg      case GL_CONVOLUTION_2D_EXT:
30727117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30737117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Convolution2DEnabled);
30747117f1b4Smrg         break;
30757117f1b4Smrg      case GL_SEPARABLE_2D_EXT:
30767117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30777117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Separable2DEnabled);
30787117f1b4Smrg         break;
30797117f1b4Smrg      case GL_POST_CONVOLUTION_RED_SCALE_EXT:
30807117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30817117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionScale[0];
30827117f1b4Smrg         break;
30837117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:
30847117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30857117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionScale[1];
30867117f1b4Smrg         break;
30877117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:
30887117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30897117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionScale[2];
30907117f1b4Smrg         break;
30917117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:
30927117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30937117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionScale[3];
30947117f1b4Smrg         break;
30957117f1b4Smrg      case GL_POST_CONVOLUTION_RED_BIAS_EXT:
30967117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30977117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionBias[0];
30987117f1b4Smrg         break;
30997117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:
31007117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31017117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionBias[1];
31027117f1b4Smrg         break;
31037117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:
31047117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31057117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionBias[2];
31067117f1b4Smrg         break;
31077117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:
31087117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31097117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionBias[3];
31107117f1b4Smrg         break;
31117117f1b4Smrg      case GL_HISTOGRAM:
31127117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetFloatv");
31137117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.HistogramEnabled);
31147117f1b4Smrg         break;
31157117f1b4Smrg      case GL_MINMAX:
31167117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetFloatv");
31177117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MinMaxEnabled);
31187117f1b4Smrg         break;
31197117f1b4Smrg      case GL_COLOR_TABLE_SGI:
31207117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetFloatv");
31217117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]);
31227117f1b4Smrg         break;
31237117f1b4Smrg      case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
31247117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetFloatv");
31257117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]);
31267117f1b4Smrg         break;
31277117f1b4Smrg      case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
31287117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetFloatv");
31297117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]);
31307117f1b4Smrg         break;
31317117f1b4Smrg      case GL_TEXTURE_COLOR_TABLE_SGI:
31327117f1b4Smrg         CHECK_EXT1(SGI_texture_color_table, "GetFloatv");
31337117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled);
31347117f1b4Smrg         break;
31357117f1b4Smrg      case GL_COLOR_SUM_EXT:
31367117f1b4Smrg         CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetFloatv");
31377117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Fog.ColorSumEnabled);
31387117f1b4Smrg         break;
31397117f1b4Smrg      case GL_CURRENT_SECONDARY_COLOR_EXT:
31407117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31417117f1b4Smrg         {
31427117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
31437117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0];
31447117f1b4Smrg         params[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1];
31457117f1b4Smrg         params[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2];
31467117f1b4Smrg         params[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3];
31477117f1b4Smrg         }
31487117f1b4Smrg         break;
31497117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_EXT:
31507117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31517117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->SecondaryColor.Enabled);
31527117f1b4Smrg         break;
31537117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
31547117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31557117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->SecondaryColor.Type);
31567117f1b4Smrg         break;
31577117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
31587117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31597117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.Stride);
31607117f1b4Smrg         break;
31617117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
31627117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31637117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.Size);
31647117f1b4Smrg         break;
31657117f1b4Smrg      case GL_CURRENT_FOG_COORDINATE_EXT:
31667117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31677117f1b4Smrg         {
31687117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
31697117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_FOG][0];
31707117f1b4Smrg         }
31717117f1b4Smrg         break;
31727117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_EXT:
31737117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31747117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->FogCoord.Enabled);
31757117f1b4Smrg         break;
31767117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
31777117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31787117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->FogCoord.Type);
31797117f1b4Smrg         break;
31807117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
31817117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31827117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->FogCoord.Stride);
31837117f1b4Smrg         break;
31847117f1b4Smrg      case GL_FOG_COORDINATE_SOURCE_EXT:
31857117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31867117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Fog.FogCoordinateSource);
31877117f1b4Smrg         break;
31887117f1b4Smrg      case GL_MAX_TEXTURE_LOD_BIAS_EXT:
31897117f1b4Smrg         CHECK_EXT1(EXT_texture_lod_bias, "GetFloatv");
31907117f1b4Smrg         params[0] = ctx->Const.MaxTextureLodBias;
31917117f1b4Smrg         break;
31927117f1b4Smrg      case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
31937117f1b4Smrg         CHECK_EXT1(EXT_texture_filter_anisotropic, "GetFloatv");
31947117f1b4Smrg         params[0] = ctx->Const.MaxTextureMaxAnisotropy;
31957117f1b4Smrg         break;
31967117f1b4Smrg      case GL_MULTISAMPLE_ARB:
31977117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetFloatv");
31987117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.Enabled);
31997117f1b4Smrg         break;
32007117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
32017117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetFloatv");
32027117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleAlphaToCoverage);
32037117f1b4Smrg         break;
32047117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_ONE_ARB:
32057117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetFloatv");
32067117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleAlphaToOne);
32077117f1b4Smrg         break;
32087117f1b4Smrg      case GL_SAMPLE_COVERAGE_ARB:
32097117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetFloatv");
32107117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleCoverage);
32117117f1b4Smrg         break;
32127117f1b4Smrg      case GL_SAMPLE_COVERAGE_VALUE_ARB:
32137117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetFloatv");
32147117f1b4Smrg         params[0] = ctx->Multisample.SampleCoverageValue;
32157117f1b4Smrg         break;
32167117f1b4Smrg      case GL_SAMPLE_COVERAGE_INVERT_ARB:
32177117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetFloatv");
32187117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleCoverageInvert);
32197117f1b4Smrg         break;
32207117f1b4Smrg      case GL_SAMPLE_BUFFERS_ARB:
32217117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetFloatv");
32227117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.sampleBuffers);
32237117f1b4Smrg         break;
32247117f1b4Smrg      case GL_SAMPLES_ARB:
32257117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetFloatv");
32267117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.samples);
32277117f1b4Smrg         break;
32287117f1b4Smrg      case GL_RASTER_POSITION_UNCLIPPED_IBM:
32297117f1b4Smrg         CHECK_EXT1(IBM_rasterpos_clip, "GetFloatv");
32307117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.RasterPositionUnclipped);
32317117f1b4Smrg         break;
32327117f1b4Smrg      case GL_POINT_SPRITE_NV:
32337117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetFloatv");
32347117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Point.PointSprite);
32357117f1b4Smrg         break;
32367117f1b4Smrg      case GL_POINT_SPRITE_R_MODE_NV:
32377117f1b4Smrg         CHECK_EXT1(NV_point_sprite, "GetFloatv");
32387117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Point.SpriteRMode);
32397117f1b4Smrg         break;
32407117f1b4Smrg      case GL_POINT_SPRITE_COORD_ORIGIN:
32417117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetFloatv");
32427117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Point.SpriteOrigin);
32437117f1b4Smrg         break;
32447117f1b4Smrg      case GL_GENERATE_MIPMAP_HINT_SGIS:
32457117f1b4Smrg         CHECK_EXT1(SGIS_generate_mipmap, "GetFloatv");
32467117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.GenerateMipmap);
32477117f1b4Smrg         break;
32487117f1b4Smrg      case GL_VERTEX_PROGRAM_BINDING_NV:
32497117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32507117f1b4Smrg         params[0] = (GLfloat)((ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0));
32517117f1b4Smrg         break;
32527117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY0_NV:
32537117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32547117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[0].Enabled);
32557117f1b4Smrg         break;
32567117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY1_NV:
32577117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32587117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[1].Enabled);
32597117f1b4Smrg         break;
32607117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY2_NV:
32617117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32627117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[2].Enabled);
32637117f1b4Smrg         break;
32647117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY3_NV:
32657117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32667117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[3].Enabled);
32677117f1b4Smrg         break;
32687117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY4_NV:
32697117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32707117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[4].Enabled);
32717117f1b4Smrg         break;
32727117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY5_NV:
32737117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32747117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[5].Enabled);
32757117f1b4Smrg         break;
32767117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY6_NV:
32777117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32787117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[6].Enabled);
32797117f1b4Smrg         break;
32807117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY7_NV:
32817117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32827117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[7].Enabled);
32837117f1b4Smrg         break;
32847117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY8_NV:
32857117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32867117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[8].Enabled);
32877117f1b4Smrg         break;
32887117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY9_NV:
32897117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32907117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[9].Enabled);
32917117f1b4Smrg         break;
32927117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY10_NV:
32937117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32947117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[10].Enabled);
32957117f1b4Smrg         break;
32967117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY11_NV:
32977117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32987117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[11].Enabled);
32997117f1b4Smrg         break;
33007117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY12_NV:
33017117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33027117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[12].Enabled);
33037117f1b4Smrg         break;
33047117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY13_NV:
33057117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33067117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[13].Enabled);
33077117f1b4Smrg         break;
33087117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY14_NV:
33097117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33107117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[14].Enabled);
33117117f1b4Smrg         break;
33127117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY15_NV:
33137117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33147117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[15].Enabled);
33157117f1b4Smrg         break;
33167117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB0_4_NV:
33177117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33187117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[0]);
33197117f1b4Smrg         break;
33207117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB1_4_NV:
33217117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33227117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[1]);
33237117f1b4Smrg         break;
33247117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB2_4_NV:
33257117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33267117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[2]);
33277117f1b4Smrg         break;
33287117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB3_4_NV:
33297117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33307117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[3]);
33317117f1b4Smrg         break;
33327117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB4_4_NV:
33337117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33347117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[4]);
33357117f1b4Smrg         break;
33367117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB5_4_NV:
33377117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33387117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[5]);
33397117f1b4Smrg         break;
33407117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB6_4_NV:
33417117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33427117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[6]);
33437117f1b4Smrg         break;
33447117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB7_4_NV:
33457117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33467117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[7]);
33477117f1b4Smrg         break;
33487117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB8_4_NV:
33497117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33507117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[8]);
33517117f1b4Smrg         break;
33527117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB9_4_NV:
33537117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33547117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[9]);
33557117f1b4Smrg         break;
33567117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB10_4_NV:
33577117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33587117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[10]);
33597117f1b4Smrg         break;
33607117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB11_4_NV:
33617117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33627117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[11]);
33637117f1b4Smrg         break;
33647117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB12_4_NV:
33657117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33667117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[12]);
33677117f1b4Smrg         break;
33687117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB13_4_NV:
33697117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33707117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[13]);
33717117f1b4Smrg         break;
33727117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB14_4_NV:
33737117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33747117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[14]);
33757117f1b4Smrg         break;
33767117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB15_4_NV:
33777117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33787117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[15]);
33797117f1b4Smrg         break;
33807117f1b4Smrg      case GL_FRAGMENT_PROGRAM_NV:
33817117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetFloatv");
33827117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->FragmentProgram.Enabled);
33837117f1b4Smrg         break;
33847117f1b4Smrg      case GL_FRAGMENT_PROGRAM_BINDING_NV:
33857117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetFloatv");
33867117f1b4Smrg         params[0] = (GLfloat)(ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0);
33877117f1b4Smrg         break;
33887117f1b4Smrg      case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV:
33897117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetFloatv");
33907117f1b4Smrg         params[0] = (GLfloat)(MAX_NV_FRAGMENT_PROGRAM_PARAMS);
33917117f1b4Smrg         break;
33927117f1b4Smrg      case GL_TEXTURE_RECTANGLE_NV:
33937117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetFloatv");
33947117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV));
33957117f1b4Smrg         break;
33967117f1b4Smrg      case GL_TEXTURE_BINDING_RECTANGLE_NV:
33977117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetFloatv");
33987117f1b4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentRect->Name);
33997117f1b4Smrg         break;
34007117f1b4Smrg      case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
34017117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetFloatv");
34027117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxTextureRectSize);
34037117f1b4Smrg         break;
34047117f1b4Smrg      case GL_STENCIL_TEST_TWO_SIDE_EXT:
34057117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetFloatv");
34067117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Stencil.TestTwoSide);
34077117f1b4Smrg         break;
34087117f1b4Smrg      case GL_ACTIVE_STENCIL_FACE_EXT:
34097117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetFloatv");
34107117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT);
34117117f1b4Smrg         break;
34127117f1b4Smrg      case GL_MAX_SHININESS_NV:
34137117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetFloatv");
34147117f1b4Smrg         params[0] = ctx->Const.MaxShininess;
34157117f1b4Smrg         break;
34167117f1b4Smrg      case GL_MAX_SPOT_EXPONENT_NV:
34177117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetFloatv");
34187117f1b4Smrg         params[0] = ctx->Const.MaxSpotExponent;
34197117f1b4Smrg         break;
34207117f1b4Smrg      case GL_ARRAY_BUFFER_BINDING_ARB:
34217117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34227117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayBufferObj->Name);
34237117f1b4Smrg         break;
34247117f1b4Smrg      case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
34257117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34267117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.BufferObj->Name);
34277117f1b4Smrg         break;
34287117f1b4Smrg      case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
34297117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34307117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Normal.BufferObj->Name);
34317117f1b4Smrg         break;
34327117f1b4Smrg      case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
34337117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34347117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.BufferObj->Name);
34357117f1b4Smrg         break;
34367117f1b4Smrg      case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
34377117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34387117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Index.BufferObj->Name);
34397117f1b4Smrg         break;
34407117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
34417117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34427117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
34437117f1b4Smrg         break;
34447117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
34457117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34467117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name);
34477117f1b4Smrg         break;
34487117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
34497117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34507117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name);
34517117f1b4Smrg         break;
34527117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
34537117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34547117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->FogCoord.BufferObj->Name);
34557117f1b4Smrg         break;
34567117f1b4Smrg      case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
34577117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
34587117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ElementArrayBufferObj->Name);
34597117f1b4Smrg         break;
34607117f1b4Smrg      case GL_PIXEL_PACK_BUFFER_BINDING_EXT:
34617117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetFloatv");
34627117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.BufferObj->Name);
34637117f1b4Smrg         break;
34647117f1b4Smrg      case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT:
34657117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetFloatv");
34667117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.BufferObj->Name);
34677117f1b4Smrg         break;
34687117f1b4Smrg      case GL_VERTEX_PROGRAM_ARB:
34697117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv");
34707117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.Enabled);
34717117f1b4Smrg         break;
34727117f1b4Smrg      case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
34737117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv");
34747117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.PointSizeEnabled);
34757117f1b4Smrg         break;
34767117f1b4Smrg      case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
34777117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv");
34787117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.TwoSideEnabled);
34797117f1b4Smrg         break;
34807117f1b4Smrg      case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
34817117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv");
34827117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxProgramMatrixStackDepth);
34837117f1b4Smrg         break;
34847117f1b4Smrg      case GL_MAX_PROGRAM_MATRICES_ARB:
34857117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv");
34867117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxProgramMatrices);
34877117f1b4Smrg         break;
34887117f1b4Smrg      case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
34897117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv");
34907117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->CurrentStack->Depth + 1);
34917117f1b4Smrg         break;
34927117f1b4Smrg      case GL_CURRENT_MATRIX_ARB:
34937117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetFloatv");
34947117f1b4Smrg         {
34957117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
34967117f1b4Smrg         params[0] = matrix[0];
34977117f1b4Smrg         params[1] = matrix[1];
34987117f1b4Smrg         params[2] = matrix[2];
34997117f1b4Smrg         params[3] = matrix[3];
35007117f1b4Smrg         params[4] = matrix[4];
35017117f1b4Smrg         params[5] = matrix[5];
35027117f1b4Smrg         params[6] = matrix[6];
35037117f1b4Smrg         params[7] = matrix[7];
35047117f1b4Smrg         params[8] = matrix[8];
35057117f1b4Smrg         params[9] = matrix[9];
35067117f1b4Smrg         params[10] = matrix[10];
35077117f1b4Smrg         params[11] = matrix[11];
35087117f1b4Smrg         params[12] = matrix[12];
35097117f1b4Smrg         params[13] = matrix[13];
35107117f1b4Smrg         params[14] = matrix[14];
35117117f1b4Smrg         params[15] = matrix[15];
35127117f1b4Smrg         }
35137117f1b4Smrg         break;
35147117f1b4Smrg      case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
35157117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetFloatv");
35167117f1b4Smrg         {
35177117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
35187117f1b4Smrg         params[0] = matrix[0];
35197117f1b4Smrg         params[1] = matrix[4];
35207117f1b4Smrg         params[2] = matrix[8];
35217117f1b4Smrg         params[3] = matrix[12];
35227117f1b4Smrg         params[4] = matrix[1];
35237117f1b4Smrg         params[5] = matrix[5];
35247117f1b4Smrg         params[6] = matrix[9];
35257117f1b4Smrg         params[7] = matrix[13];
35267117f1b4Smrg         params[8] = matrix[2];
35277117f1b4Smrg         params[9] = matrix[6];
35287117f1b4Smrg         params[10] = matrix[10];
35297117f1b4Smrg         params[11] = matrix[14];
35307117f1b4Smrg         params[12] = matrix[3];
35317117f1b4Smrg         params[13] = matrix[7];
35327117f1b4Smrg         params[14] = matrix[11];
35337117f1b4Smrg         params[15] = matrix[15];
35347117f1b4Smrg         }
35357117f1b4Smrg         break;
35367117f1b4Smrg      case GL_MAX_VERTEX_ATTRIBS_ARB:
35377117f1b4Smrg         CHECK_EXT1(ARB_vertex_program, "GetFloatv");
35387117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.VertexProgram.MaxAttribs);
35397117f1b4Smrg         break;
35407117f1b4Smrg      case GL_PROGRAM_ERROR_POSITION_ARB:
35417117f1b4Smrg         CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetFloatv");
35427117f1b4Smrg         params[0] = (GLfloat)(ctx->Program.ErrorPos);
35437117f1b4Smrg         break;
35447117f1b4Smrg      case GL_FRAGMENT_PROGRAM_ARB:
35457117f1b4Smrg         CHECK_EXT1(ARB_fragment_program, "GetFloatv");
35467117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->FragmentProgram.Enabled);
35477117f1b4Smrg         break;
35487117f1b4Smrg      case GL_MAX_TEXTURE_COORDS_ARB:
35497117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetFloatv");
35507117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxTextureCoordUnits);
35517117f1b4Smrg         break;
35527117f1b4Smrg      case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
35537117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetFloatv");
35547117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxTextureImageUnits);
35557117f1b4Smrg         break;
35567117f1b4Smrg      case GL_DEPTH_BOUNDS_TEST_EXT:
35577117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetFloatv");
35587117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.BoundsTest);
35597117f1b4Smrg         break;
35607117f1b4Smrg      case GL_DEPTH_BOUNDS_EXT:
35617117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetFloatv");
35627117f1b4Smrg         params[0] = ctx->Depth.BoundsMin;
35637117f1b4Smrg         params[1] = ctx->Depth.BoundsMax;
35647117f1b4Smrg         break;
35657117f1b4Smrg      case GL_FRAGMENT_PROGRAM_CALLBACK_MESA:
35667117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetFloatv");
35677117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->FragmentProgram.CallbackEnabled);
35687117f1b4Smrg         break;
35697117f1b4Smrg      case GL_VERTEX_PROGRAM_CALLBACK_MESA:
35707117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetFloatv");
35717117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.CallbackEnabled);
35727117f1b4Smrg         break;
35737117f1b4Smrg      case GL_FRAGMENT_PROGRAM_POSITION_MESA:
35747117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetFloatv");
35757117f1b4Smrg         params[0] = (GLfloat)(ctx->FragmentProgram.CurrentPosition);
35767117f1b4Smrg         break;
35777117f1b4Smrg      case GL_VERTEX_PROGRAM_POSITION_MESA:
35787117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetFloatv");
35797117f1b4Smrg         params[0] = (GLfloat)(ctx->VertexProgram.CurrentPosition);
35807117f1b4Smrg         break;
35817117f1b4Smrg      case GL_MAX_DRAW_BUFFERS_ARB:
35827117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetFloatv");
35837117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxDrawBuffers);
35847117f1b4Smrg         break;
35857117f1b4Smrg      case GL_DRAW_BUFFER0_ARB:
35867117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetFloatv");
35877117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->DrawBuffer->ColorDrawBuffer[0]);
35887117f1b4Smrg         break;
35897117f1b4Smrg      case GL_DRAW_BUFFER1_ARB:
35907117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetFloatv");
35917117f1b4Smrg         {
35927117f1b4Smrg         GLenum buffer;
35937117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
35947117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
35957117f1b4Smrg            return;
35967117f1b4Smrg         }
35977117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[1];
35987117f1b4Smrg         params[0] = ENUM_TO_FLOAT(buffer);
35997117f1b4Smrg         }
36007117f1b4Smrg         break;
36017117f1b4Smrg      case GL_DRAW_BUFFER2_ARB:
36027117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetFloatv");
36037117f1b4Smrg         {
36047117f1b4Smrg         GLenum buffer;
36057117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
36067117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
36077117f1b4Smrg            return;
36087117f1b4Smrg         }
36097117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[2];
36107117f1b4Smrg         params[0] = ENUM_TO_FLOAT(buffer);
36117117f1b4Smrg         }
36127117f1b4Smrg         break;
36137117f1b4Smrg      case GL_DRAW_BUFFER3_ARB:
36147117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetFloatv");
36157117f1b4Smrg         {
36167117f1b4Smrg         GLenum buffer;
36177117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
36187117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
36197117f1b4Smrg            return;
36207117f1b4Smrg         }
36217117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[3];
36227117f1b4Smrg         params[0] = ENUM_TO_FLOAT(buffer);
36237117f1b4Smrg         }
36247117f1b4Smrg         break;
36257117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
36267117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetFloatv");
36277117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.ColorReadType);
36287117f1b4Smrg         break;
36297117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
36307117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetFloatv");
36317117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.ColorReadFormat);
36327117f1b4Smrg         break;
36337117f1b4Smrg      case GL_NUM_FRAGMENT_REGISTERS_ATI:
36347117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36357117f1b4Smrg         params[0] = (GLfloat)(6);
36367117f1b4Smrg         break;
36377117f1b4Smrg      case GL_NUM_FRAGMENT_CONSTANTS_ATI:
36387117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36397117f1b4Smrg         params[0] = (GLfloat)(8);
36407117f1b4Smrg         break;
36417117f1b4Smrg      case GL_NUM_PASSES_ATI:
36427117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36437117f1b4Smrg         params[0] = (GLfloat)(2);
36447117f1b4Smrg         break;
36457117f1b4Smrg      case GL_NUM_INSTRUCTIONS_PER_PASS_ATI:
36467117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36477117f1b4Smrg         params[0] = (GLfloat)(8);
36487117f1b4Smrg         break;
36497117f1b4Smrg      case GL_NUM_INSTRUCTIONS_TOTAL_ATI:
36507117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36517117f1b4Smrg         params[0] = (GLfloat)(16);
36527117f1b4Smrg         break;
36537117f1b4Smrg      case GL_COLOR_ALPHA_PAIRING_ATI:
36547117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36557117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(GL_TRUE);
36567117f1b4Smrg         break;
36577117f1b4Smrg      case GL_NUM_LOOPBACK_COMPONENTS_ATI:
36587117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36597117f1b4Smrg         params[0] = (GLfloat)(3);
36607117f1b4Smrg         break;
36617117f1b4Smrg      case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI:
36627117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36637117f1b4Smrg         params[0] = (GLfloat)(3);
36647117f1b4Smrg         break;
36657117f1b4Smrg      case GL_STENCIL_BACK_FUNC:
36667117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.Function[1]);
36677117f1b4Smrg         break;
36687117f1b4Smrg      case GL_STENCIL_BACK_VALUE_MASK:
36697117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.ValueMask[1]);
36707117f1b4Smrg         break;
36717117f1b4Smrg      case GL_STENCIL_BACK_WRITEMASK:
36727117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.WriteMask[1]);
36737117f1b4Smrg         break;
36747117f1b4Smrg      case GL_STENCIL_BACK_REF:
36757117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.Ref[1]);
36767117f1b4Smrg         break;
36777117f1b4Smrg      case GL_STENCIL_BACK_FAIL:
36787117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.FailFunc[1]);
36797117f1b4Smrg         break;
36807117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
36817117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZFailFunc[1]);
36827117f1b4Smrg         break;
36837117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_PASS:
36847117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZPassFunc[1]);
36857117f1b4Smrg         break;
36867117f1b4Smrg      case GL_FRAMEBUFFER_BINDING_EXT:
36877117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
36887117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Name);
36897117f1b4Smrg         break;
36907117f1b4Smrg      case GL_RENDERBUFFER_BINDING_EXT:
36917117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
36927117f1b4Smrg         params[0] = (GLfloat)(ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0);
36937117f1b4Smrg         break;
36947117f1b4Smrg      case GL_MAX_COLOR_ATTACHMENTS_EXT:
36957117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
36967117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxColorAttachments);
36977117f1b4Smrg         break;
36987117f1b4Smrg      case GL_MAX_RENDERBUFFER_SIZE_EXT:
36997117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
37007117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxRenderbufferSize);
37017117f1b4Smrg         break;
37027117f1b4Smrg      case GL_READ_FRAMEBUFFER_BINDING_EXT:
37037117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_blit, "GetFloatv");
37047117f1b4Smrg         params[0] = (GLfloat)(ctx->ReadBuffer->Name);
37057117f1b4Smrg         break;
37067117f1b4Smrg      case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
37077117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
37087117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.FragmentProgram.MaxUniformComponents);
37097117f1b4Smrg         break;
37107117f1b4Smrg      case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
37117117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
37127117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.FragmentShaderDerivative);
37137117f1b4Smrg         break;
37147117f1b4Smrg      case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
37157117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
37167117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.VertexProgram.MaxUniformComponents);
37177117f1b4Smrg         break;
37187117f1b4Smrg      case GL_MAX_VARYING_FLOATS_ARB:
37197117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
37207117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxVarying * 4);
37217117f1b4Smrg         break;
37227117f1b4Smrg      case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
37237117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
37247117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxVertexTextureImageUnits);
37257117f1b4Smrg         break;
37267117f1b4Smrg      case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
37277117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
37287117f1b4Smrg         params[0] = (GLfloat)(MAX_COMBINED_TEXTURE_IMAGE_UNITS);
37297117f1b4Smrg         break;
37307117f1b4Smrg      case GL_CURRENT_PROGRAM:
37317117f1b4Smrg         CHECK_EXT1(ARB_shader_objects, "GetFloatv");
37327117f1b4Smrg         params[0] = (GLfloat)(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0);
37337117f1b4Smrg         break;
37347117f1b4Smrg      default:
37357117f1b4Smrg         _mesa_error(ctx, GL_INVALID_ENUM, "glGetFloatv(pname=0x%x)", pname);
37367117f1b4Smrg   }
37377117f1b4Smrg}
37387117f1b4Smrg
37397117f1b4Smrgvoid GLAPIENTRY
37407117f1b4Smrg_mesa_GetIntegerv( GLenum pname, GLint *params )
37417117f1b4Smrg{
37427117f1b4Smrg   GET_CURRENT_CONTEXT(ctx);
37437117f1b4Smrg   ASSERT_OUTSIDE_BEGIN_END(ctx);
37447117f1b4Smrg
37457117f1b4Smrg   if (!params)
37467117f1b4Smrg      return;
37477117f1b4Smrg
37487117f1b4Smrg   if (ctx->NewState)
37497117f1b4Smrg      _mesa_update_state(ctx);
37507117f1b4Smrg
37517117f1b4Smrg   if (ctx->Driver.GetIntegerv &&
37527117f1b4Smrg       ctx->Driver.GetIntegerv(ctx, pname, params))
37537117f1b4Smrg      return;
37547117f1b4Smrg
37557117f1b4Smrg   switch (pname) {
37567117f1b4Smrg      case GL_ACCUM_RED_BITS:
37577117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.accumRedBits;
37587117f1b4Smrg         break;
37597117f1b4Smrg      case GL_ACCUM_GREEN_BITS:
37607117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.accumGreenBits;
37617117f1b4Smrg         break;
37627117f1b4Smrg      case GL_ACCUM_BLUE_BITS:
37637117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.accumBlueBits;
37647117f1b4Smrg         break;
37657117f1b4Smrg      case GL_ACCUM_ALPHA_BITS:
37667117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.accumAlphaBits;
37677117f1b4Smrg         break;
37687117f1b4Smrg      case GL_ACCUM_CLEAR_VALUE:
37697117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Accum.ClearColor[0]);
37707117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Accum.ClearColor[1]);
37717117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Accum.ClearColor[2]);
37727117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Accum.ClearColor[3]);
37737117f1b4Smrg         break;
37747117f1b4Smrg      case GL_ALPHA_BIAS:
37757117f1b4Smrg         params[0] = IROUND(ctx->Pixel.AlphaBias);
37767117f1b4Smrg         break;
37777117f1b4Smrg      case GL_ALPHA_BITS:
37787117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.alphaBits;
37797117f1b4Smrg         break;
37807117f1b4Smrg      case GL_ALPHA_SCALE:
37817117f1b4Smrg         params[0] = IROUND(ctx->Pixel.AlphaScale);
37827117f1b4Smrg         break;
37837117f1b4Smrg      case GL_ALPHA_TEST:
37847117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.AlphaEnabled);
37857117f1b4Smrg         break;
37867117f1b4Smrg      case GL_ALPHA_TEST_FUNC:
37877117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.AlphaFunc);
37887117f1b4Smrg         break;
37897117f1b4Smrg      case GL_ALPHA_TEST_REF:
37907117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Color.AlphaRef);
37917117f1b4Smrg         break;
37927117f1b4Smrg      case GL_ATTRIB_STACK_DEPTH:
37937117f1b4Smrg         params[0] = ctx->AttribStackDepth;
37947117f1b4Smrg         break;
37957117f1b4Smrg      case GL_AUTO_NORMAL:
37967117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.AutoNormal);
37977117f1b4Smrg         break;
37987117f1b4Smrg      case GL_AUX_BUFFERS:
37997117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.numAuxBuffers;
38007117f1b4Smrg         break;
38017117f1b4Smrg      case GL_BLEND:
38027117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.BlendEnabled);
38037117f1b4Smrg         break;
38047117f1b4Smrg      case GL_BLEND_DST:
38057117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendDstRGB);
38067117f1b4Smrg         break;
38077117f1b4Smrg      case GL_BLEND_SRC:
38087117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendSrcRGB);
38097117f1b4Smrg         break;
38107117f1b4Smrg      case GL_BLEND_SRC_RGB_EXT:
38117117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendSrcRGB);
38127117f1b4Smrg         break;
38137117f1b4Smrg      case GL_BLEND_DST_RGB_EXT:
38147117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendDstRGB);
38157117f1b4Smrg         break;
38167117f1b4Smrg      case GL_BLEND_SRC_ALPHA_EXT:
38177117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendSrcA);
38187117f1b4Smrg         break;
38197117f1b4Smrg      case GL_BLEND_DST_ALPHA_EXT:
38207117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendDstA);
38217117f1b4Smrg         break;
38227117f1b4Smrg      case GL_BLEND_EQUATION:
38237117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendEquationRGB );
38247117f1b4Smrg         break;
38257117f1b4Smrg      case GL_BLEND_EQUATION_ALPHA_EXT:
38267117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendEquationA );
38277117f1b4Smrg         break;
38287117f1b4Smrg      case GL_BLEND_COLOR_EXT:
38297117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Color.BlendColor[0]);
38307117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Color.BlendColor[1]);
38317117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Color.BlendColor[2]);
38327117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Color.BlendColor[3]);
38337117f1b4Smrg         break;
38347117f1b4Smrg      case GL_BLUE_BIAS:
38357117f1b4Smrg         params[0] = IROUND(ctx->Pixel.BlueBias);
38367117f1b4Smrg         break;
38377117f1b4Smrg      case GL_BLUE_BITS:
38387117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.blueBits;
38397117f1b4Smrg         break;
38407117f1b4Smrg      case GL_BLUE_SCALE:
38417117f1b4Smrg         params[0] = IROUND(ctx->Pixel.BlueScale);
38427117f1b4Smrg         break;
38437117f1b4Smrg      case GL_CLIENT_ATTRIB_STACK_DEPTH:
38447117f1b4Smrg         params[0] = ctx->ClientAttribStackDepth;
38457117f1b4Smrg         break;
38467117f1b4Smrg      case GL_CLIP_PLANE0:
38477117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 0) & 1);
38487117f1b4Smrg         break;
38497117f1b4Smrg      case GL_CLIP_PLANE1:
38507117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 1) & 1);
38517117f1b4Smrg         break;
38527117f1b4Smrg      case GL_CLIP_PLANE2:
38537117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 2) & 1);
38547117f1b4Smrg         break;
38557117f1b4Smrg      case GL_CLIP_PLANE3:
38567117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 3) & 1);
38577117f1b4Smrg         break;
38587117f1b4Smrg      case GL_CLIP_PLANE4:
38597117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 4) & 1);
38607117f1b4Smrg         break;
38617117f1b4Smrg      case GL_CLIP_PLANE5:
38627117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 5) & 1);
38637117f1b4Smrg         break;
38647117f1b4Smrg      case GL_COLOR_CLEAR_VALUE:
38657117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Color.ClearColor[0]);
38667117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Color.ClearColor[1]);
38677117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Color.ClearColor[2]);
38687117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Color.ClearColor[3]);
38697117f1b4Smrg         break;
38707117f1b4Smrg      case GL_COLOR_MATERIAL:
38717117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.ColorMaterialEnabled);
38727117f1b4Smrg         break;
38737117f1b4Smrg      case GL_COLOR_MATERIAL_FACE:
38747117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Light.ColorMaterialFace);
38757117f1b4Smrg         break;
38767117f1b4Smrg      case GL_COLOR_MATERIAL_PARAMETER:
38777117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Light.ColorMaterialMode);
38787117f1b4Smrg         break;
38797117f1b4Smrg      case GL_COLOR_WRITEMASK:
38807117f1b4Smrg         params[0] = ctx->Color.ColorMask[RCOMP] ? 1 : 0;
38817117f1b4Smrg         params[1] = ctx->Color.ColorMask[GCOMP] ? 1 : 0;
38827117f1b4Smrg         params[2] = ctx->Color.ColorMask[BCOMP] ? 1 : 0;
38837117f1b4Smrg         params[3] = ctx->Color.ColorMask[ACOMP] ? 1 : 0;
38847117f1b4Smrg         break;
38857117f1b4Smrg      case GL_CULL_FACE:
38867117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.CullFlag);
38877117f1b4Smrg         break;
38887117f1b4Smrg      case GL_CULL_FACE_MODE:
38897117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Polygon.CullFaceMode);
38907117f1b4Smrg         break;
38917117f1b4Smrg      case GL_CURRENT_COLOR:
38927117f1b4Smrg         {
38937117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
38947117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]);
38957117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]);
38967117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]);
38977117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]);
38987117f1b4Smrg         }
38997117f1b4Smrg         break;
39007117f1b4Smrg      case GL_CURRENT_INDEX:
39017117f1b4Smrg         {
39027117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
39037117f1b4Smrg         params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]);
39047117f1b4Smrg         }
39057117f1b4Smrg         break;
39067117f1b4Smrg      case GL_CURRENT_NORMAL:
39077117f1b4Smrg         {
39087117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
39097117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]);
39107117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]);
39117117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]);
39127117f1b4Smrg         }
39137117f1b4Smrg         break;
39147117f1b4Smrg      case GL_CURRENT_RASTER_COLOR:
39157117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.RasterColor[0]);
39167117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.RasterColor[1]);
39177117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.RasterColor[2]);
39187117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Current.RasterColor[3]);
39197117f1b4Smrg         break;
39207117f1b4Smrg      case GL_CURRENT_RASTER_DISTANCE:
39217117f1b4Smrg         params[0] = IROUND(ctx->Current.RasterDistance);
39227117f1b4Smrg         break;
39237117f1b4Smrg      case GL_CURRENT_RASTER_INDEX:
39247117f1b4Smrg         params[0] = IROUND(ctx->Current.RasterIndex);
39257117f1b4Smrg         break;
39267117f1b4Smrg      case GL_CURRENT_RASTER_POSITION:
39277117f1b4Smrg         params[0] = IROUND(ctx->Current.RasterPos[0]);
39287117f1b4Smrg         params[1] = IROUND(ctx->Current.RasterPos[1]);
39297117f1b4Smrg         params[2] = IROUND(ctx->Current.RasterPos[2]);
39307117f1b4Smrg         params[3] = IROUND(ctx->Current.RasterPos[3]);
39317117f1b4Smrg         break;
39327117f1b4Smrg      case GL_CURRENT_RASTER_SECONDARY_COLOR:
39337117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[0]);
39347117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[1]);
39357117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[2]);
39367117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[3]);
39377117f1b4Smrg         break;
39387117f1b4Smrg      case GL_CURRENT_RASTER_TEXTURE_COORDS:
39397117f1b4Smrg         {
39407117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
39417117f1b4Smrg         params[0] = IROUND(ctx->Current.RasterTexCoords[texUnit][0]);
39427117f1b4Smrg         params[1] = IROUND(ctx->Current.RasterTexCoords[texUnit][1]);
39437117f1b4Smrg         params[2] = IROUND(ctx->Current.RasterTexCoords[texUnit][2]);
39447117f1b4Smrg         params[3] = IROUND(ctx->Current.RasterTexCoords[texUnit][3]);
39457117f1b4Smrg         }
39467117f1b4Smrg         break;
39477117f1b4Smrg      case GL_CURRENT_RASTER_POSITION_VALID:
39487117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Current.RasterPosValid);
39497117f1b4Smrg         break;
39507117f1b4Smrg      case GL_CURRENT_TEXTURE_COORDS:
39517117f1b4Smrg         {
39527117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
39537117f1b4Smrg         params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]);
39547117f1b4Smrg         params[1] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]);
39557117f1b4Smrg         params[2] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]);
39567117f1b4Smrg         params[3] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]);
39577117f1b4Smrg         }
39587117f1b4Smrg         break;
39597117f1b4Smrg      case GL_DEPTH_BIAS:
39607117f1b4Smrg         params[0] = IROUND(ctx->Pixel.DepthBias);
39617117f1b4Smrg         break;
39627117f1b4Smrg      case GL_DEPTH_BITS:
39637117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.depthBits;
39647117f1b4Smrg         break;
39657117f1b4Smrg      case GL_DEPTH_CLEAR_VALUE:
39667117f1b4Smrg         params[0] = IROUND(ctx->Depth.Clear);
39677117f1b4Smrg         break;
39687117f1b4Smrg      case GL_DEPTH_FUNC:
39697117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Depth.Func);
39707117f1b4Smrg         break;
39717117f1b4Smrg      case GL_DEPTH_RANGE:
39727117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Viewport.Near);
39737117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Viewport.Far);
39747117f1b4Smrg         break;
39757117f1b4Smrg      case GL_DEPTH_SCALE:
39767117f1b4Smrg         params[0] = IROUND(ctx->Pixel.DepthScale);
39777117f1b4Smrg         break;
39787117f1b4Smrg      case GL_DEPTH_TEST:
39797117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Depth.Test);
39807117f1b4Smrg         break;
39817117f1b4Smrg      case GL_DEPTH_WRITEMASK:
39827117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Depth.Mask);
39837117f1b4Smrg         break;
39847117f1b4Smrg      case GL_DITHER:
39857117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.DitherFlag);
39867117f1b4Smrg         break;
39877117f1b4Smrg      case GL_DOUBLEBUFFER:
39887117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.doubleBufferMode);
39897117f1b4Smrg         break;
39907117f1b4Smrg      case GL_DRAW_BUFFER:
39917117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->DrawBuffer->ColorDrawBuffer[0]);
39927117f1b4Smrg         break;
39937117f1b4Smrg      case GL_EDGE_FLAG:
39947117f1b4Smrg         {
39957117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
39967117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0));
39977117f1b4Smrg         }
39987117f1b4Smrg         break;
39997117f1b4Smrg      case GL_FEEDBACK_BUFFER_SIZE:
40007117f1b4Smrg         params[0] = ctx->Feedback.BufferSize;
40017117f1b4Smrg         break;
40027117f1b4Smrg      case GL_FEEDBACK_BUFFER_TYPE:
40037117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Feedback.Type);
40047117f1b4Smrg         break;
40057117f1b4Smrg      case GL_FOG:
40067117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Fog.Enabled);
40077117f1b4Smrg         break;
40087117f1b4Smrg      case GL_FOG_COLOR:
40097117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Fog.Color[0]);
40107117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Fog.Color[1]);
40117117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Fog.Color[2]);
40127117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Fog.Color[3]);
40137117f1b4Smrg         break;
40147117f1b4Smrg      case GL_FOG_DENSITY:
40157117f1b4Smrg         params[0] = IROUND(ctx->Fog.Density);
40167117f1b4Smrg         break;
40177117f1b4Smrg      case GL_FOG_END:
40187117f1b4Smrg         params[0] = IROUND(ctx->Fog.End);
40197117f1b4Smrg         break;
40207117f1b4Smrg      case GL_FOG_HINT:
40217117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.Fog);
40227117f1b4Smrg         break;
40237117f1b4Smrg      case GL_FOG_INDEX:
40247117f1b4Smrg         params[0] = IROUND(ctx->Fog.Index);
40257117f1b4Smrg         break;
40267117f1b4Smrg      case GL_FOG_MODE:
40277117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Fog.Mode);
40287117f1b4Smrg         break;
40297117f1b4Smrg      case GL_FOG_START:
40307117f1b4Smrg         params[0] = IROUND(ctx->Fog.Start);
40317117f1b4Smrg         break;
40327117f1b4Smrg      case GL_FRONT_FACE:
40337117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Polygon.FrontFace);
40347117f1b4Smrg         break;
40357117f1b4Smrg      case GL_GREEN_BIAS:
40367117f1b4Smrg         params[0] = IROUND(ctx->Pixel.GreenBias);
40377117f1b4Smrg         break;
40387117f1b4Smrg      case GL_GREEN_BITS:
40397117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.greenBits;
40407117f1b4Smrg         break;
40417117f1b4Smrg      case GL_GREEN_SCALE:
40427117f1b4Smrg         params[0] = IROUND(ctx->Pixel.GreenScale);
40437117f1b4Smrg         break;
40447117f1b4Smrg      case GL_INDEX_BITS:
40457117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.indexBits;
40467117f1b4Smrg         break;
40477117f1b4Smrg      case GL_INDEX_CLEAR_VALUE:
40487117f1b4Smrg         params[0] = ctx->Color.ClearIndex;
40497117f1b4Smrg         break;
40507117f1b4Smrg      case GL_INDEX_MODE:
40517117f1b4Smrg         params[0] = BOOLEAN_TO_INT(!ctx->DrawBuffer->Visual.rgbMode);
40527117f1b4Smrg         break;
40537117f1b4Smrg      case GL_INDEX_OFFSET:
40547117f1b4Smrg         params[0] = ctx->Pixel.IndexOffset;
40557117f1b4Smrg         break;
40567117f1b4Smrg      case GL_INDEX_SHIFT:
40577117f1b4Smrg         params[0] = ctx->Pixel.IndexShift;
40587117f1b4Smrg         break;
40597117f1b4Smrg      case GL_INDEX_WRITEMASK:
40607117f1b4Smrg         params[0] = ctx->Color.IndexMask;
40617117f1b4Smrg         break;
40627117f1b4Smrg      case GL_LIGHT0:
40637117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[0].Enabled);
40647117f1b4Smrg         break;
40657117f1b4Smrg      case GL_LIGHT1:
40667117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[1].Enabled);
40677117f1b4Smrg         break;
40687117f1b4Smrg      case GL_LIGHT2:
40697117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[2].Enabled);
40707117f1b4Smrg         break;
40717117f1b4Smrg      case GL_LIGHT3:
40727117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[3].Enabled);
40737117f1b4Smrg         break;
40747117f1b4Smrg      case GL_LIGHT4:
40757117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[4].Enabled);
40767117f1b4Smrg         break;
40777117f1b4Smrg      case GL_LIGHT5:
40787117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[5].Enabled);
40797117f1b4Smrg         break;
40807117f1b4Smrg      case GL_LIGHT6:
40817117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[6].Enabled);
40827117f1b4Smrg         break;
40837117f1b4Smrg      case GL_LIGHT7:
40847117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[7].Enabled);
40857117f1b4Smrg         break;
40867117f1b4Smrg      case GL_LIGHTING:
40877117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Enabled);
40887117f1b4Smrg         break;
40897117f1b4Smrg      case GL_LIGHT_MODEL_AMBIENT:
40907117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Light.Model.Ambient[0]);
40917117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Light.Model.Ambient[1]);
40927117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Light.Model.Ambient[2]);
40937117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Light.Model.Ambient[3]);
40947117f1b4Smrg         break;
40957117f1b4Smrg      case GL_LIGHT_MODEL_COLOR_CONTROL:
40967117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Light.Model.ColorControl);
40977117f1b4Smrg         break;
40987117f1b4Smrg      case GL_LIGHT_MODEL_LOCAL_VIEWER:
40997117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Model.LocalViewer);
41007117f1b4Smrg         break;
41017117f1b4Smrg      case GL_LIGHT_MODEL_TWO_SIDE:
41027117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Model.TwoSide);
41037117f1b4Smrg         break;
41047117f1b4Smrg      case GL_LINE_SMOOTH:
41057117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Line.SmoothFlag);
41067117f1b4Smrg         break;
41077117f1b4Smrg      case GL_LINE_SMOOTH_HINT:
41087117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.LineSmooth);
41097117f1b4Smrg         break;
41107117f1b4Smrg      case GL_LINE_STIPPLE:
41117117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Line.StippleFlag);
41127117f1b4Smrg         break;
41137117f1b4Smrg      case GL_LINE_STIPPLE_PATTERN:
41147117f1b4Smrg         params[0] = ctx->Line.StipplePattern;
41157117f1b4Smrg         break;
41167117f1b4Smrg      case GL_LINE_STIPPLE_REPEAT:
41177117f1b4Smrg         params[0] = ctx->Line.StippleFactor;
41187117f1b4Smrg         break;
41197117f1b4Smrg      case GL_LINE_WIDTH:
41207117f1b4Smrg         params[0] = IROUND(ctx->Line.Width);
41217117f1b4Smrg         break;
41227117f1b4Smrg      case GL_LINE_WIDTH_GRANULARITY:
41237117f1b4Smrg         params[0] = IROUND(ctx->Const.LineWidthGranularity);
41247117f1b4Smrg         break;
41257117f1b4Smrg      case GL_LINE_WIDTH_RANGE:
41267117f1b4Smrg         params[0] = IROUND(ctx->Const.MinLineWidthAA);
41277117f1b4Smrg         params[1] = IROUND(ctx->Const.MaxLineWidthAA);
41287117f1b4Smrg         break;
41297117f1b4Smrg      case GL_ALIASED_LINE_WIDTH_RANGE:
41307117f1b4Smrg         params[0] = IROUND(ctx->Const.MinLineWidth);
41317117f1b4Smrg         params[1] = IROUND(ctx->Const.MaxLineWidth);
41327117f1b4Smrg         break;
41337117f1b4Smrg      case GL_LIST_BASE:
41347117f1b4Smrg         params[0] = ctx->List.ListBase;
41357117f1b4Smrg         break;
41367117f1b4Smrg      case GL_LIST_INDEX:
41377117f1b4Smrg         params[0] = ctx->ListState.CurrentListNum;
41387117f1b4Smrg         break;
41397117f1b4Smrg      case GL_LIST_MODE:
41407117f1b4Smrg         {
41417117f1b4Smrg         GLenum mode;
41427117f1b4Smrg         if (!ctx->CompileFlag)
41437117f1b4Smrg            mode = 0;
41447117f1b4Smrg         else if (ctx->ExecuteFlag)
41457117f1b4Smrg            mode = GL_COMPILE_AND_EXECUTE;
41467117f1b4Smrg         else
41477117f1b4Smrg            mode = GL_COMPILE;
41487117f1b4Smrg         params[0] = ENUM_TO_INT(mode);
41497117f1b4Smrg         }
41507117f1b4Smrg         break;
41517117f1b4Smrg      case GL_INDEX_LOGIC_OP:
41527117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.IndexLogicOpEnabled);
41537117f1b4Smrg         break;
41547117f1b4Smrg      case GL_COLOR_LOGIC_OP:
41557117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.ColorLogicOpEnabled);
41567117f1b4Smrg         break;
41577117f1b4Smrg      case GL_LOGIC_OP_MODE:
41587117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.LogicOp);
41597117f1b4Smrg         break;
41607117f1b4Smrg      case GL_MAP1_COLOR_4:
41617117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Color4);
41627117f1b4Smrg         break;
41637117f1b4Smrg      case GL_MAP1_GRID_DOMAIN:
41647117f1b4Smrg         params[0] = IROUND(ctx->Eval.MapGrid1u1);
41657117f1b4Smrg         params[1] = IROUND(ctx->Eval.MapGrid1u2);
41667117f1b4Smrg         break;
41677117f1b4Smrg      case GL_MAP1_GRID_SEGMENTS:
41687117f1b4Smrg         params[0] = ctx->Eval.MapGrid1un;
41697117f1b4Smrg         break;
41707117f1b4Smrg      case GL_MAP1_INDEX:
41717117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Index);
41727117f1b4Smrg         break;
41737117f1b4Smrg      case GL_MAP1_NORMAL:
41747117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Normal);
41757117f1b4Smrg         break;
41767117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_1:
41777117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord1);
41787117f1b4Smrg         break;
41797117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_2:
41807117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord2);
41817117f1b4Smrg         break;
41827117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_3:
41837117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord3);
41847117f1b4Smrg         break;
41857117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_4:
41867117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord4);
41877117f1b4Smrg         break;
41887117f1b4Smrg      case GL_MAP1_VERTEX_3:
41897117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Vertex3);
41907117f1b4Smrg         break;
41917117f1b4Smrg      case GL_MAP1_VERTEX_4:
41927117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Vertex4);
41937117f1b4Smrg         break;
41947117f1b4Smrg      case GL_MAP2_COLOR_4:
41957117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Color4);
41967117f1b4Smrg         break;
41977117f1b4Smrg      case GL_MAP2_GRID_DOMAIN:
41987117f1b4Smrg         params[0] = IROUND(ctx->Eval.MapGrid2u1);
41997117f1b4Smrg         params[1] = IROUND(ctx->Eval.MapGrid2u2);
42007117f1b4Smrg         params[2] = IROUND(ctx->Eval.MapGrid2v1);
42017117f1b4Smrg         params[3] = IROUND(ctx->Eval.MapGrid2v2);
42027117f1b4Smrg         break;
42037117f1b4Smrg      case GL_MAP2_GRID_SEGMENTS:
42047117f1b4Smrg         params[0] = ctx->Eval.MapGrid2un;
42057117f1b4Smrg         params[1] = ctx->Eval.MapGrid2vn;
42067117f1b4Smrg         break;
42077117f1b4Smrg      case GL_MAP2_INDEX:
42087117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Index);
42097117f1b4Smrg         break;
42107117f1b4Smrg      case GL_MAP2_NORMAL:
42117117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Normal);
42127117f1b4Smrg         break;
42137117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_1:
42147117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord1);
42157117f1b4Smrg         break;
42167117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_2:
42177117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord2);
42187117f1b4Smrg         break;
42197117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_3:
42207117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord3);
42217117f1b4Smrg         break;
42227117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_4:
42237117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord4);
42247117f1b4Smrg         break;
42257117f1b4Smrg      case GL_MAP2_VERTEX_3:
42267117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Vertex3);
42277117f1b4Smrg         break;
42287117f1b4Smrg      case GL_MAP2_VERTEX_4:
42297117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Vertex4);
42307117f1b4Smrg         break;
42317117f1b4Smrg      case GL_MAP_COLOR:
42327117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.MapColorFlag);
42337117f1b4Smrg         break;
42347117f1b4Smrg      case GL_MAP_STENCIL:
42357117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.MapStencilFlag);
42367117f1b4Smrg         break;
42377117f1b4Smrg      case GL_MATRIX_MODE:
42387117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Transform.MatrixMode);
42397117f1b4Smrg         break;
42407117f1b4Smrg      case GL_MAX_ATTRIB_STACK_DEPTH:
42417117f1b4Smrg         params[0] = MAX_ATTRIB_STACK_DEPTH;
42427117f1b4Smrg         break;
42437117f1b4Smrg      case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
42447117f1b4Smrg         params[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH;
42457117f1b4Smrg         break;
42467117f1b4Smrg      case GL_MAX_CLIP_PLANES:
42477117f1b4Smrg         params[0] = ctx->Const.MaxClipPlanes;
42487117f1b4Smrg         break;
42497117f1b4Smrg      case GL_MAX_ELEMENTS_VERTICES:
42507117f1b4Smrg         params[0] = ctx->Const.MaxArrayLockSize;
42517117f1b4Smrg         break;
42527117f1b4Smrg      case GL_MAX_ELEMENTS_INDICES:
42537117f1b4Smrg         params[0] = ctx->Const.MaxArrayLockSize;
42547117f1b4Smrg         break;
42557117f1b4Smrg      case GL_MAX_EVAL_ORDER:
42567117f1b4Smrg         params[0] = MAX_EVAL_ORDER;
42577117f1b4Smrg         break;
42587117f1b4Smrg      case GL_MAX_LIGHTS:
42597117f1b4Smrg         params[0] = ctx->Const.MaxLights;
42607117f1b4Smrg         break;
42617117f1b4Smrg      case GL_MAX_LIST_NESTING:
42627117f1b4Smrg         params[0] = MAX_LIST_NESTING;
42637117f1b4Smrg         break;
42647117f1b4Smrg      case GL_MAX_MODELVIEW_STACK_DEPTH:
42657117f1b4Smrg         params[0] = MAX_MODELVIEW_STACK_DEPTH;
42667117f1b4Smrg         break;
42677117f1b4Smrg      case GL_MAX_NAME_STACK_DEPTH:
42687117f1b4Smrg         params[0] = MAX_NAME_STACK_DEPTH;
42697117f1b4Smrg         break;
42707117f1b4Smrg      case GL_MAX_PIXEL_MAP_TABLE:
42717117f1b4Smrg         params[0] = MAX_PIXEL_MAP_TABLE;
42727117f1b4Smrg         break;
42737117f1b4Smrg      case GL_MAX_PROJECTION_STACK_DEPTH:
42747117f1b4Smrg         params[0] = MAX_PROJECTION_STACK_DEPTH;
42757117f1b4Smrg         break;
42767117f1b4Smrg      case GL_MAX_TEXTURE_SIZE:
42777117f1b4Smrg         params[0] = 1 << (ctx->Const.MaxTextureLevels - 1);
42787117f1b4Smrg         break;
42797117f1b4Smrg      case GL_MAX_3D_TEXTURE_SIZE:
42807117f1b4Smrg         params[0] = 1 << (ctx->Const.Max3DTextureLevels - 1);
42817117f1b4Smrg         break;
42827117f1b4Smrg      case GL_MAX_TEXTURE_STACK_DEPTH:
42837117f1b4Smrg         params[0] = MAX_TEXTURE_STACK_DEPTH;
42847117f1b4Smrg         break;
42857117f1b4Smrg      case GL_MAX_VIEWPORT_DIMS:
42867117f1b4Smrg         params[0] = ctx->Const.MaxViewportWidth;
42877117f1b4Smrg         params[1] = ctx->Const.MaxViewportHeight;
42887117f1b4Smrg         break;
42897117f1b4Smrg      case GL_MODELVIEW_MATRIX:
42907117f1b4Smrg         {
42917117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
42927117f1b4Smrg         params[0] = IROUND(matrix[0]);
42937117f1b4Smrg         params[1] = IROUND(matrix[1]);
42947117f1b4Smrg         params[2] = IROUND(matrix[2]);
42957117f1b4Smrg         params[3] = IROUND(matrix[3]);
42967117f1b4Smrg         params[4] = IROUND(matrix[4]);
42977117f1b4Smrg         params[5] = IROUND(matrix[5]);
42987117f1b4Smrg         params[6] = IROUND(matrix[6]);
42997117f1b4Smrg         params[7] = IROUND(matrix[7]);
43007117f1b4Smrg         params[8] = IROUND(matrix[8]);
43017117f1b4Smrg         params[9] = IROUND(matrix[9]);
43027117f1b4Smrg         params[10] = IROUND(matrix[10]);
43037117f1b4Smrg         params[11] = IROUND(matrix[11]);
43047117f1b4Smrg         params[12] = IROUND(matrix[12]);
43057117f1b4Smrg         params[13] = IROUND(matrix[13]);
43067117f1b4Smrg         params[14] = IROUND(matrix[14]);
43077117f1b4Smrg         params[15] = IROUND(matrix[15]);
43087117f1b4Smrg         }
43097117f1b4Smrg         break;
43107117f1b4Smrg      case GL_MODELVIEW_STACK_DEPTH:
43117117f1b4Smrg         params[0] = ctx->ModelviewMatrixStack.Depth + 1;
43127117f1b4Smrg         break;
43137117f1b4Smrg      case GL_NAME_STACK_DEPTH:
43147117f1b4Smrg         params[0] = ctx->Select.NameStackDepth;
43157117f1b4Smrg         break;
43167117f1b4Smrg      case GL_NORMALIZE:
43177117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Transform.Normalize);
43187117f1b4Smrg         break;
43197117f1b4Smrg      case GL_PACK_ALIGNMENT:
43207117f1b4Smrg         params[0] = ctx->Pack.Alignment;
43217117f1b4Smrg         break;
43227117f1b4Smrg      case GL_PACK_LSB_FIRST:
43237117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pack.LsbFirst);
43247117f1b4Smrg         break;
43257117f1b4Smrg      case GL_PACK_ROW_LENGTH:
43267117f1b4Smrg         params[0] = ctx->Pack.RowLength;
43277117f1b4Smrg         break;
43287117f1b4Smrg      case GL_PACK_SKIP_PIXELS:
43297117f1b4Smrg         params[0] = ctx->Pack.SkipPixels;
43307117f1b4Smrg         break;
43317117f1b4Smrg      case GL_PACK_SKIP_ROWS:
43327117f1b4Smrg         params[0] = ctx->Pack.SkipRows;
43337117f1b4Smrg         break;
43347117f1b4Smrg      case GL_PACK_SWAP_BYTES:
43357117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pack.SwapBytes);
43367117f1b4Smrg         break;
43377117f1b4Smrg      case GL_PACK_SKIP_IMAGES_EXT:
43387117f1b4Smrg         params[0] = ctx->Pack.SkipImages;
43397117f1b4Smrg         break;
43407117f1b4Smrg      case GL_PACK_IMAGE_HEIGHT_EXT:
43417117f1b4Smrg         params[0] = ctx->Pack.ImageHeight;
43427117f1b4Smrg         break;
43437117f1b4Smrg      case GL_PACK_INVERT_MESA:
43447117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pack.Invert);
43457117f1b4Smrg         break;
43467117f1b4Smrg      case GL_PERSPECTIVE_CORRECTION_HINT:
43477117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.PerspectiveCorrection);
43487117f1b4Smrg         break;
43497117f1b4Smrg      case GL_PIXEL_MAP_A_TO_A_SIZE:
43507117f1b4Smrg         params[0] = ctx->PixelMaps.AtoA.Size;
43517117f1b4Smrg         break;
43527117f1b4Smrg      case GL_PIXEL_MAP_B_TO_B_SIZE:
43537117f1b4Smrg         params[0] = ctx->PixelMaps.BtoB.Size;
43547117f1b4Smrg         break;
43557117f1b4Smrg      case GL_PIXEL_MAP_G_TO_G_SIZE:
43567117f1b4Smrg         params[0] = ctx->PixelMaps.GtoG.Size;
43577117f1b4Smrg         break;
43587117f1b4Smrg      case GL_PIXEL_MAP_I_TO_A_SIZE:
43597117f1b4Smrg         params[0] = ctx->PixelMaps.ItoA.Size;
43607117f1b4Smrg         break;
43617117f1b4Smrg      case GL_PIXEL_MAP_I_TO_B_SIZE:
43627117f1b4Smrg         params[0] = ctx->PixelMaps.ItoB.Size;
43637117f1b4Smrg         break;
43647117f1b4Smrg      case GL_PIXEL_MAP_I_TO_G_SIZE:
43657117f1b4Smrg         params[0] = ctx->PixelMaps.ItoG.Size;
43667117f1b4Smrg         break;
43677117f1b4Smrg      case GL_PIXEL_MAP_I_TO_I_SIZE:
43687117f1b4Smrg         params[0] = ctx->PixelMaps.ItoI.Size;
43697117f1b4Smrg         break;
43707117f1b4Smrg      case GL_PIXEL_MAP_I_TO_R_SIZE:
43717117f1b4Smrg         params[0] = ctx->PixelMaps.ItoR.Size;
43727117f1b4Smrg         break;
43737117f1b4Smrg      case GL_PIXEL_MAP_R_TO_R_SIZE:
43747117f1b4Smrg         params[0] = ctx->PixelMaps.RtoR.Size;
43757117f1b4Smrg         break;
43767117f1b4Smrg      case GL_PIXEL_MAP_S_TO_S_SIZE:
43777117f1b4Smrg         params[0] = ctx->PixelMaps.StoS.Size;
43787117f1b4Smrg         break;
43797117f1b4Smrg      case GL_POINT_SIZE:
43807117f1b4Smrg         params[0] = IROUND(ctx->Point.Size);
43817117f1b4Smrg         break;
43827117f1b4Smrg      case GL_POINT_SIZE_GRANULARITY:
43837117f1b4Smrg         params[0] = IROUND(ctx->Const.PointSizeGranularity);
43847117f1b4Smrg         break;
43857117f1b4Smrg      case GL_POINT_SIZE_RANGE:
43867117f1b4Smrg         params[0] = IROUND(ctx->Const.MinPointSizeAA);
43877117f1b4Smrg         params[1] = IROUND(ctx->Const.MaxPointSizeAA);
43887117f1b4Smrg         break;
43897117f1b4Smrg      case GL_ALIASED_POINT_SIZE_RANGE:
43907117f1b4Smrg         params[0] = IROUND(ctx->Const.MinPointSize);
43917117f1b4Smrg         params[1] = IROUND(ctx->Const.MaxPointSize);
43927117f1b4Smrg         break;
43937117f1b4Smrg      case GL_POINT_SMOOTH:
43947117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Point.SmoothFlag);
43957117f1b4Smrg         break;
43967117f1b4Smrg      case GL_POINT_SMOOTH_HINT:
43977117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.PointSmooth);
43987117f1b4Smrg         break;
43997117f1b4Smrg      case GL_POINT_SIZE_MIN_EXT:
44007117f1b4Smrg         params[0] = IROUND(ctx->Point.MinSize);
44017117f1b4Smrg         break;
44027117f1b4Smrg      case GL_POINT_SIZE_MAX_EXT:
44037117f1b4Smrg         params[0] = IROUND(ctx->Point.MaxSize);
44047117f1b4Smrg         break;
44057117f1b4Smrg      case GL_POINT_FADE_THRESHOLD_SIZE_EXT:
44067117f1b4Smrg         params[0] = IROUND(ctx->Point.Threshold);
44077117f1b4Smrg         break;
44087117f1b4Smrg      case GL_DISTANCE_ATTENUATION_EXT:
44097117f1b4Smrg         params[0] = IROUND(ctx->Point.Params[0]);
44107117f1b4Smrg         params[1] = IROUND(ctx->Point.Params[1]);
44117117f1b4Smrg         params[2] = IROUND(ctx->Point.Params[2]);
44127117f1b4Smrg         break;
44137117f1b4Smrg      case GL_POLYGON_MODE:
44147117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Polygon.FrontMode);
44157117f1b4Smrg         params[1] = ENUM_TO_INT(ctx->Polygon.BackMode);
44167117f1b4Smrg         break;
44177117f1b4Smrg      case GL_POLYGON_OFFSET_BIAS_EXT:
44187117f1b4Smrg         params[0] = IROUND(ctx->Polygon.OffsetUnits);
44197117f1b4Smrg         break;
44207117f1b4Smrg      case GL_POLYGON_OFFSET_FACTOR:
44217117f1b4Smrg         params[0] = IROUND(ctx->Polygon.OffsetFactor );
44227117f1b4Smrg         break;
44237117f1b4Smrg      case GL_POLYGON_OFFSET_UNITS:
44247117f1b4Smrg         params[0] = IROUND(ctx->Polygon.OffsetUnits );
44257117f1b4Smrg         break;
44267117f1b4Smrg      case GL_POLYGON_SMOOTH:
44277117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.SmoothFlag);
44287117f1b4Smrg         break;
44297117f1b4Smrg      case GL_POLYGON_SMOOTH_HINT:
44307117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.PolygonSmooth);
44317117f1b4Smrg         break;
44327117f1b4Smrg      case GL_POLYGON_STIPPLE:
44337117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.StippleFlag);
44347117f1b4Smrg         break;
44357117f1b4Smrg      case GL_PROJECTION_MATRIX:
44367117f1b4Smrg         {
44377117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
44387117f1b4Smrg         params[0] = IROUND(matrix[0]);
44397117f1b4Smrg         params[1] = IROUND(matrix[1]);
44407117f1b4Smrg         params[2] = IROUND(matrix[2]);
44417117f1b4Smrg         params[3] = IROUND(matrix[3]);
44427117f1b4Smrg         params[4] = IROUND(matrix[4]);
44437117f1b4Smrg         params[5] = IROUND(matrix[5]);
44447117f1b4Smrg         params[6] = IROUND(matrix[6]);
44457117f1b4Smrg         params[7] = IROUND(matrix[7]);
44467117f1b4Smrg         params[8] = IROUND(matrix[8]);
44477117f1b4Smrg         params[9] = IROUND(matrix[9]);
44487117f1b4Smrg         params[10] = IROUND(matrix[10]);
44497117f1b4Smrg         params[11] = IROUND(matrix[11]);
44507117f1b4Smrg         params[12] = IROUND(matrix[12]);
44517117f1b4Smrg         params[13] = IROUND(matrix[13]);
44527117f1b4Smrg         params[14] = IROUND(matrix[14]);
44537117f1b4Smrg         params[15] = IROUND(matrix[15]);
44547117f1b4Smrg         }
44557117f1b4Smrg         break;
44567117f1b4Smrg      case GL_PROJECTION_STACK_DEPTH:
44577117f1b4Smrg         params[0] = ctx->ProjectionMatrixStack.Depth + 1;
44587117f1b4Smrg         break;
44597117f1b4Smrg      case GL_READ_BUFFER:
44607117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->ReadBuffer->ColorReadBuffer);
44617117f1b4Smrg         break;
44627117f1b4Smrg      case GL_RED_BIAS:
44637117f1b4Smrg         params[0] = IROUND(ctx->Pixel.RedBias);
44647117f1b4Smrg         break;
44657117f1b4Smrg      case GL_RED_BITS:
44667117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.redBits;
44677117f1b4Smrg         break;
44687117f1b4Smrg      case GL_RED_SCALE:
44697117f1b4Smrg         params[0] = IROUND(ctx->Pixel.RedScale);
44707117f1b4Smrg         break;
44717117f1b4Smrg      case GL_RENDER_MODE:
44727117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->RenderMode);
44737117f1b4Smrg         break;
44747117f1b4Smrg      case GL_RESCALE_NORMAL:
44757117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Transform.RescaleNormals);
44767117f1b4Smrg         break;
44777117f1b4Smrg      case GL_RGBA_MODE:
44787117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.rgbMode);
44797117f1b4Smrg         break;
44807117f1b4Smrg      case GL_SCISSOR_BOX:
44817117f1b4Smrg         params[0] = ctx->Scissor.X;
44827117f1b4Smrg         params[1] = ctx->Scissor.Y;
44837117f1b4Smrg         params[2] = ctx->Scissor.Width;
44847117f1b4Smrg         params[3] = ctx->Scissor.Height;
44857117f1b4Smrg         break;
44867117f1b4Smrg      case GL_SCISSOR_TEST:
44877117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Scissor.Enabled);
44887117f1b4Smrg         break;
44897117f1b4Smrg      case GL_SELECTION_BUFFER_SIZE:
44907117f1b4Smrg         params[0] = ctx->Select.BufferSize;
44917117f1b4Smrg         break;
44927117f1b4Smrg      case GL_SHADE_MODEL:
44937117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Light.ShadeModel);
44947117f1b4Smrg         break;
44957117f1b4Smrg      case GL_SHARED_TEXTURE_PALETTE_EXT:
44967117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Texture.SharedPalette);
44977117f1b4Smrg         break;
44987117f1b4Smrg      case GL_STENCIL_BITS:
44997117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.stencilBits;
45007117f1b4Smrg         break;
45017117f1b4Smrg      case GL_STENCIL_CLEAR_VALUE:
45027117f1b4Smrg         params[0] = ctx->Stencil.Clear;
45037117f1b4Smrg         break;
45047117f1b4Smrg      case GL_STENCIL_FAIL:
45057117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]);
45067117f1b4Smrg         break;
45077117f1b4Smrg      case GL_STENCIL_FUNC:
45087117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.Function[ctx->Stencil.ActiveFace]);
45097117f1b4Smrg         break;
45107117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_FAIL:
45117117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]);
45127117f1b4Smrg         break;
45137117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_PASS:
45147117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]);
45157117f1b4Smrg         break;
45167117f1b4Smrg      case GL_STENCIL_REF:
45177117f1b4Smrg         params[0] = ctx->Stencil.Ref[ctx->Stencil.ActiveFace];
45187117f1b4Smrg         break;
45197117f1b4Smrg      case GL_STENCIL_TEST:
45207117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Stencil.Enabled);
45217117f1b4Smrg         break;
45227117f1b4Smrg      case GL_STENCIL_VALUE_MASK:
45237117f1b4Smrg         params[0] = ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace];
45247117f1b4Smrg         break;
45257117f1b4Smrg      case GL_STENCIL_WRITEMASK:
45267117f1b4Smrg         params[0] = ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace];
45277117f1b4Smrg         break;
45287117f1b4Smrg      case GL_STEREO:
45297117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.stereoMode);
45307117f1b4Smrg         break;
45317117f1b4Smrg      case GL_SUBPIXEL_BITS:
45327117f1b4Smrg         params[0] = ctx->Const.SubPixelBits;
45337117f1b4Smrg         break;
45347117f1b4Smrg      case GL_TEXTURE_1D:
45357117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D));
45367117f1b4Smrg         break;
45377117f1b4Smrg      case GL_TEXTURE_2D:
45387117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D));
45397117f1b4Smrg         break;
45407117f1b4Smrg      case GL_TEXTURE_3D:
45417117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D));
45427117f1b4Smrg         break;
45437117f1b4Smrg      case GL_TEXTURE_BINDING_1D:
45447117f1b4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name;
45457117f1b4Smrg         break;
45467117f1b4Smrg      case GL_TEXTURE_BINDING_2D:
45477117f1b4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2D->Name;
45487117f1b4Smrg         break;
45497117f1b4Smrg      case GL_TEXTURE_BINDING_3D:
45507117f1b4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name;
45517117f1b4Smrg         break;
45527117f1b4Smrg      case GL_TEXTURE_ENV_COLOR:
45537117f1b4Smrg         {
45547117f1b4Smrg         const GLfloat *color = ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvColor;
45557117f1b4Smrg         params[0] = FLOAT_TO_INT(color[0]);
45567117f1b4Smrg         params[1] = FLOAT_TO_INT(color[1]);
45577117f1b4Smrg         params[2] = FLOAT_TO_INT(color[2]);
45587117f1b4Smrg         params[3] = FLOAT_TO_INT(color[3]);
45597117f1b4Smrg         }
45607117f1b4Smrg         break;
45617117f1b4Smrg      case GL_TEXTURE_ENV_MODE:
45627117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvMode);
45637117f1b4Smrg         break;
45647117f1b4Smrg      case GL_TEXTURE_GEN_S:
45657117f1b4Smrg         params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0));
45667117f1b4Smrg         break;
45677117f1b4Smrg      case GL_TEXTURE_GEN_T:
45687117f1b4Smrg         params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0));
45697117f1b4Smrg         break;
45707117f1b4Smrg      case GL_TEXTURE_GEN_R:
45717117f1b4Smrg         params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0));
45727117f1b4Smrg         break;
45737117f1b4Smrg      case GL_TEXTURE_GEN_Q:
45747117f1b4Smrg         params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0));
45757117f1b4Smrg         break;
45767117f1b4Smrg      case GL_TEXTURE_MATRIX:
45777117f1b4Smrg         {
45787117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
45797117f1b4Smrg         params[0] = IROUND(matrix[0]);
45807117f1b4Smrg         params[1] = IROUND(matrix[1]);
45817117f1b4Smrg         params[2] = IROUND(matrix[2]);
45827117f1b4Smrg         params[3] = IROUND(matrix[3]);
45837117f1b4Smrg         params[4] = IROUND(matrix[4]);
45847117f1b4Smrg         params[5] = IROUND(matrix[5]);
45857117f1b4Smrg         params[6] = IROUND(matrix[6]);
45867117f1b4Smrg         params[7] = IROUND(matrix[7]);
45877117f1b4Smrg         params[8] = IROUND(matrix[8]);
45887117f1b4Smrg         params[9] = IROUND(matrix[9]);
45897117f1b4Smrg         params[10] = IROUND(matrix[10]);
45907117f1b4Smrg         params[11] = IROUND(matrix[11]);
45917117f1b4Smrg         params[12] = IROUND(matrix[12]);
45927117f1b4Smrg         params[13] = IROUND(matrix[13]);
45937117f1b4Smrg         params[14] = IROUND(matrix[14]);
45947117f1b4Smrg         params[15] = IROUND(matrix[15]);
45957117f1b4Smrg         }
45967117f1b4Smrg         break;
45977117f1b4Smrg      case GL_TEXTURE_STACK_DEPTH:
45987117f1b4Smrg         params[0] = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1;
45997117f1b4Smrg         break;
46007117f1b4Smrg      case GL_UNPACK_ALIGNMENT:
46017117f1b4Smrg         params[0] = ctx->Unpack.Alignment;
46027117f1b4Smrg         break;
46037117f1b4Smrg      case GL_UNPACK_LSB_FIRST:
46047117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Unpack.LsbFirst);
46057117f1b4Smrg         break;
46067117f1b4Smrg      case GL_UNPACK_ROW_LENGTH:
46077117f1b4Smrg         params[0] = ctx->Unpack.RowLength;
46087117f1b4Smrg         break;
46097117f1b4Smrg      case GL_UNPACK_SKIP_PIXELS:
46107117f1b4Smrg         params[0] = ctx->Unpack.SkipPixels;
46117117f1b4Smrg         break;
46127117f1b4Smrg      case GL_UNPACK_SKIP_ROWS:
46137117f1b4Smrg         params[0] = ctx->Unpack.SkipRows;
46147117f1b4Smrg         break;
46157117f1b4Smrg      case GL_UNPACK_SWAP_BYTES:
46167117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Unpack.SwapBytes);
46177117f1b4Smrg         break;
46187117f1b4Smrg      case GL_UNPACK_SKIP_IMAGES_EXT:
46197117f1b4Smrg         params[0] = ctx->Unpack.SkipImages;
46207117f1b4Smrg         break;
46217117f1b4Smrg      case GL_UNPACK_IMAGE_HEIGHT_EXT:
46227117f1b4Smrg         params[0] = ctx->Unpack.ImageHeight;
46237117f1b4Smrg         break;
46247117f1b4Smrg      case GL_UNPACK_CLIENT_STORAGE_APPLE:
46257117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Unpack.ClientStorage);
46267117f1b4Smrg         break;
46277117f1b4Smrg      case GL_VIEWPORT:
46287117f1b4Smrg         params[0] = ctx->Viewport.X;
46297117f1b4Smrg         params[1] = ctx->Viewport.Y;
46307117f1b4Smrg         params[2] = ctx->Viewport.Width;
46317117f1b4Smrg         params[3] = ctx->Viewport.Height;
46327117f1b4Smrg         break;
46337117f1b4Smrg      case GL_ZOOM_X:
46347117f1b4Smrg         params[0] = IROUND(ctx->Pixel.ZoomX);
46357117f1b4Smrg         break;
46367117f1b4Smrg      case GL_ZOOM_Y:
46377117f1b4Smrg         params[0] = IROUND(ctx->Pixel.ZoomY);
46387117f1b4Smrg         break;
46397117f1b4Smrg      case GL_VERTEX_ARRAY:
46407117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Vertex.Enabled);
46417117f1b4Smrg         break;
46427117f1b4Smrg      case GL_VERTEX_ARRAY_SIZE:
46437117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Vertex.Size;
46447117f1b4Smrg         break;
46457117f1b4Smrg      case GL_VERTEX_ARRAY_TYPE:
46467117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Vertex.Type);
46477117f1b4Smrg         break;
46487117f1b4Smrg      case GL_VERTEX_ARRAY_STRIDE:
46497117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Vertex.Stride;
46507117f1b4Smrg         break;
46517117f1b4Smrg      case GL_VERTEX_ARRAY_COUNT_EXT:
46527117f1b4Smrg         params[0] = 0;
46537117f1b4Smrg         break;
46547117f1b4Smrg      case GL_NORMAL_ARRAY:
46557117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Normal.Enabled);
46567117f1b4Smrg         break;
46577117f1b4Smrg      case GL_NORMAL_ARRAY_TYPE:
46587117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Normal.Type);
46597117f1b4Smrg         break;
46607117f1b4Smrg      case GL_NORMAL_ARRAY_STRIDE:
46617117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Normal.Stride;
46627117f1b4Smrg         break;
46637117f1b4Smrg      case GL_NORMAL_ARRAY_COUNT_EXT:
46647117f1b4Smrg         params[0] = 0;
46657117f1b4Smrg         break;
46667117f1b4Smrg      case GL_COLOR_ARRAY:
46677117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Color.Enabled);
46687117f1b4Smrg         break;
46697117f1b4Smrg      case GL_COLOR_ARRAY_SIZE:
46707117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Color.Size;
46717117f1b4Smrg         break;
46727117f1b4Smrg      case GL_COLOR_ARRAY_TYPE:
46737117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Color.Type);
46747117f1b4Smrg         break;
46757117f1b4Smrg      case GL_COLOR_ARRAY_STRIDE:
46767117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Color.Stride;
46777117f1b4Smrg         break;
46787117f1b4Smrg      case GL_COLOR_ARRAY_COUNT_EXT:
46797117f1b4Smrg         params[0] = 0;
46807117f1b4Smrg         break;
46817117f1b4Smrg      case GL_INDEX_ARRAY:
46827117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Index.Enabled);
46837117f1b4Smrg         break;
46847117f1b4Smrg      case GL_INDEX_ARRAY_TYPE:
46857117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Index.Type);
46867117f1b4Smrg         break;
46877117f1b4Smrg      case GL_INDEX_ARRAY_STRIDE:
46887117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Index.Stride;
46897117f1b4Smrg         break;
46907117f1b4Smrg      case GL_INDEX_ARRAY_COUNT_EXT:
46917117f1b4Smrg         params[0] = 0;
46927117f1b4Smrg         break;
46937117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY:
46947117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled);
46957117f1b4Smrg         break;
46967117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_SIZE:
46977117f1b4Smrg         params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size;
46987117f1b4Smrg         break;
46997117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_TYPE:
47007117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
47017117f1b4Smrg         break;
47027117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_STRIDE:
47037117f1b4Smrg         params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride;
47047117f1b4Smrg         break;
47057117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
47067117f1b4Smrg         params[0] = 0;
47077117f1b4Smrg         break;
47087117f1b4Smrg      case GL_EDGE_FLAG_ARRAY:
47097117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->EdgeFlag.Enabled);
47107117f1b4Smrg         break;
47117117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_STRIDE:
47127117f1b4Smrg         params[0] = ctx->Array.ArrayObj->EdgeFlag.Stride;
47137117f1b4Smrg         break;
47147117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
47157117f1b4Smrg         params[0] = 0;
47167117f1b4Smrg         break;
47177117f1b4Smrg      case GL_MAX_TEXTURE_UNITS_ARB:
47187117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetIntegerv");
47197117f1b4Smrg         params[0] = ctx->Const.MaxTextureUnits;
47207117f1b4Smrg         break;
47217117f1b4Smrg      case GL_ACTIVE_TEXTURE_ARB:
47227117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetIntegerv");
47237117f1b4Smrg         params[0] = GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit;
47247117f1b4Smrg         break;
47257117f1b4Smrg      case GL_CLIENT_ACTIVE_TEXTURE_ARB:
47267117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetIntegerv");
47277117f1b4Smrg         params[0] = GL_TEXTURE0_ARB + ctx->Array.ActiveTexture;
47287117f1b4Smrg         break;
47297117f1b4Smrg      case GL_TEXTURE_CUBE_MAP_ARB:
47307117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv");
47317117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB));
47327117f1b4Smrg         break;
47337117f1b4Smrg      case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
47347117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv");
47357117f1b4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentCubeMap->Name;
47367117f1b4Smrg         break;
47377117f1b4Smrg      case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
47387117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv");
47397117f1b4Smrg         params[0] = (1 << (ctx->Const.MaxCubeTextureLevels - 1));
47407117f1b4Smrg         break;
47417117f1b4Smrg      case GL_TEXTURE_COMPRESSION_HINT_ARB:
47427117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetIntegerv");
47437117f1b4Smrg         params[0] = ctx->Hint.TextureCompression;
47447117f1b4Smrg         break;
47457117f1b4Smrg      case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
47467117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetIntegerv");
47477117f1b4Smrg         params[0] = _mesa_get_compressed_formats(ctx, NULL, GL_FALSE);
47487117f1b4Smrg         break;
47497117f1b4Smrg      case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
47507117f1b4Smrg         CHECK_EXT1(ARB_texture_compression, "GetIntegerv");
47517117f1b4Smrg         {
47527117f1b4Smrg         GLint formats[100];
47537117f1b4Smrg         GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
47547117f1b4Smrg         ASSERT(n <= 100);
47557117f1b4Smrg         for (i = 0; i < n; i++)
47567117f1b4Smrg            params[i] = ENUM_TO_INT(formats[i]);
47577117f1b4Smrg         }
47587117f1b4Smrg         break;
47597117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
47607117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetIntegerv");
47617117f1b4Smrg         params[0] = ctx->Array.LockFirst;
47627117f1b4Smrg         break;
47637117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
47647117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetIntegerv");
47657117f1b4Smrg         params[0] = ctx->Array.LockCount;
47667117f1b4Smrg         break;
47677117f1b4Smrg      case GL_TRANSPOSE_COLOR_MATRIX_ARB:
47687117f1b4Smrg         {
47697117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
47707117f1b4Smrg         params[0] = IROUND(matrix[0]);
47717117f1b4Smrg         params[1] = IROUND(matrix[4]);
47727117f1b4Smrg         params[2] = IROUND(matrix[8]);
47737117f1b4Smrg         params[3] = IROUND(matrix[12]);
47747117f1b4Smrg         params[4] = IROUND(matrix[1]);
47757117f1b4Smrg         params[5] = IROUND(matrix[5]);
47767117f1b4Smrg         params[6] = IROUND(matrix[9]);
47777117f1b4Smrg         params[7] = IROUND(matrix[13]);
47787117f1b4Smrg         params[8] = IROUND(matrix[2]);
47797117f1b4Smrg         params[9] = IROUND(matrix[6]);
47807117f1b4Smrg         params[10] = IROUND(matrix[10]);
47817117f1b4Smrg         params[11] = IROUND(matrix[14]);
47827117f1b4Smrg         params[12] = IROUND(matrix[3]);
47837117f1b4Smrg         params[13] = IROUND(matrix[7]);
47847117f1b4Smrg         params[14] = IROUND(matrix[11]);
47857117f1b4Smrg         params[15] = IROUND(matrix[15]);
47867117f1b4Smrg         }
47877117f1b4Smrg         break;
47887117f1b4Smrg      case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
47897117f1b4Smrg         {
47907117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
47917117f1b4Smrg         params[0] = IROUND(matrix[0]);
47927117f1b4Smrg         params[1] = IROUND(matrix[4]);
47937117f1b4Smrg         params[2] = IROUND(matrix[8]);
47947117f1b4Smrg         params[3] = IROUND(matrix[12]);
47957117f1b4Smrg         params[4] = IROUND(matrix[1]);
47967117f1b4Smrg         params[5] = IROUND(matrix[5]);
47977117f1b4Smrg         params[6] = IROUND(matrix[9]);
47987117f1b4Smrg         params[7] = IROUND(matrix[13]);
47997117f1b4Smrg         params[8] = IROUND(matrix[2]);
48007117f1b4Smrg         params[9] = IROUND(matrix[6]);
48017117f1b4Smrg         params[10] = IROUND(matrix[10]);
48027117f1b4Smrg         params[11] = IROUND(matrix[14]);
48037117f1b4Smrg         params[12] = IROUND(matrix[3]);
48047117f1b4Smrg         params[13] = IROUND(matrix[7]);
48057117f1b4Smrg         params[14] = IROUND(matrix[11]);
48067117f1b4Smrg         params[15] = IROUND(matrix[15]);
48077117f1b4Smrg         }
48087117f1b4Smrg         break;
48097117f1b4Smrg      case GL_TRANSPOSE_PROJECTION_MATRIX_ARB:
48107117f1b4Smrg         {
48117117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
48127117f1b4Smrg         params[0] = IROUND(matrix[0]);
48137117f1b4Smrg         params[1] = IROUND(matrix[4]);
48147117f1b4Smrg         params[2] = IROUND(matrix[8]);
48157117f1b4Smrg         params[3] = IROUND(matrix[12]);
48167117f1b4Smrg         params[4] = IROUND(matrix[1]);
48177117f1b4Smrg         params[5] = IROUND(matrix[5]);
48187117f1b4Smrg         params[6] = IROUND(matrix[9]);
48197117f1b4Smrg         params[7] = IROUND(matrix[13]);
48207117f1b4Smrg         params[8] = IROUND(matrix[2]);
48217117f1b4Smrg         params[9] = IROUND(matrix[6]);
48227117f1b4Smrg         params[10] = IROUND(matrix[10]);
48237117f1b4Smrg         params[11] = IROUND(matrix[14]);
48247117f1b4Smrg         params[12] = IROUND(matrix[3]);
48257117f1b4Smrg         params[13] = IROUND(matrix[7]);
48267117f1b4Smrg         params[14] = IROUND(matrix[11]);
48277117f1b4Smrg         params[15] = IROUND(matrix[15]);
48287117f1b4Smrg         }
48297117f1b4Smrg         break;
48307117f1b4Smrg      case GL_TRANSPOSE_TEXTURE_MATRIX_ARB:
48317117f1b4Smrg         {
48327117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
48337117f1b4Smrg         params[0] = IROUND(matrix[0]);
48347117f1b4Smrg         params[1] = IROUND(matrix[4]);
48357117f1b4Smrg         params[2] = IROUND(matrix[8]);
48367117f1b4Smrg         params[3] = IROUND(matrix[12]);
48377117f1b4Smrg         params[4] = IROUND(matrix[1]);
48387117f1b4Smrg         params[5] = IROUND(matrix[5]);
48397117f1b4Smrg         params[6] = IROUND(matrix[9]);
48407117f1b4Smrg         params[7] = IROUND(matrix[13]);
48417117f1b4Smrg         params[8] = IROUND(matrix[2]);
48427117f1b4Smrg         params[9] = IROUND(matrix[6]);
48437117f1b4Smrg         params[10] = IROUND(matrix[10]);
48447117f1b4Smrg         params[11] = IROUND(matrix[14]);
48457117f1b4Smrg         params[12] = IROUND(matrix[3]);
48467117f1b4Smrg         params[13] = IROUND(matrix[7]);
48477117f1b4Smrg         params[14] = IROUND(matrix[11]);
48487117f1b4Smrg         params[15] = IROUND(matrix[15]);
48497117f1b4Smrg         }
48507117f1b4Smrg         break;
48517117f1b4Smrg      case GL_COLOR_MATRIX_SGI:
48527117f1b4Smrg         {
48537117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
48547117f1b4Smrg         params[0] = IROUND(matrix[0]);
48557117f1b4Smrg         params[1] = IROUND(matrix[1]);
48567117f1b4Smrg         params[2] = IROUND(matrix[2]);
48577117f1b4Smrg         params[3] = IROUND(matrix[3]);
48587117f1b4Smrg         params[4] = IROUND(matrix[4]);
48597117f1b4Smrg         params[5] = IROUND(matrix[5]);
48607117f1b4Smrg         params[6] = IROUND(matrix[6]);
48617117f1b4Smrg         params[7] = IROUND(matrix[7]);
48627117f1b4Smrg         params[8] = IROUND(matrix[8]);
48637117f1b4Smrg         params[9] = IROUND(matrix[9]);
48647117f1b4Smrg         params[10] = IROUND(matrix[10]);
48657117f1b4Smrg         params[11] = IROUND(matrix[11]);
48667117f1b4Smrg         params[12] = IROUND(matrix[12]);
48677117f1b4Smrg         params[13] = IROUND(matrix[13]);
48687117f1b4Smrg         params[14] = IROUND(matrix[14]);
48697117f1b4Smrg         params[15] = IROUND(matrix[15]);
48707117f1b4Smrg         }
48717117f1b4Smrg         break;
48727117f1b4Smrg      case GL_COLOR_MATRIX_STACK_DEPTH_SGI:
48737117f1b4Smrg         params[0] = ctx->ColorMatrixStack.Depth + 1;
48747117f1b4Smrg         break;
48757117f1b4Smrg      case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI:
48767117f1b4Smrg         params[0] = MAX_COLOR_STACK_DEPTH;
48777117f1b4Smrg         break;
48787117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_SCALE_SGI:
48797117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[0]);
48807117f1b4Smrg         break;
48817117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI:
48827117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[1]);
48837117f1b4Smrg         break;
48847117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI:
48857117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[2]);
48867117f1b4Smrg         break;
48877117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI:
48887117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[3]);
48897117f1b4Smrg         break;
48907117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_BIAS_SGI:
48917117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[0]);
48927117f1b4Smrg         break;
48937117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI:
48947117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[1]);
48957117f1b4Smrg         break;
48967117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI:
48977117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[2]);
48987117f1b4Smrg         break;
48997117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI:
49007117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[3]);
49017117f1b4Smrg         break;
49027117f1b4Smrg      case GL_CONVOLUTION_1D_EXT:
49037117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49047117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.Convolution1DEnabled);
49057117f1b4Smrg         break;
49067117f1b4Smrg      case GL_CONVOLUTION_2D_EXT:
49077117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49087117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.Convolution2DEnabled);
49097117f1b4Smrg         break;
49107117f1b4Smrg      case GL_SEPARABLE_2D_EXT:
49117117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49127117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.Separable2DEnabled);
49137117f1b4Smrg         break;
49147117f1b4Smrg      case GL_POST_CONVOLUTION_RED_SCALE_EXT:
49157117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49167117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionScale[0]);
49177117f1b4Smrg         break;
49187117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:
49197117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49207117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionScale[1]);
49217117f1b4Smrg         break;
49227117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:
49237117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49247117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionScale[2]);
49257117f1b4Smrg         break;
49267117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:
49277117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49287117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionScale[3]);
49297117f1b4Smrg         break;
49307117f1b4Smrg      case GL_POST_CONVOLUTION_RED_BIAS_EXT:
49317117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49327117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionBias[0]);
49337117f1b4Smrg         break;
49347117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:
49357117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49367117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionBias[1]);
49377117f1b4Smrg         break;
49387117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:
49397117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49407117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionBias[2]);
49417117f1b4Smrg         break;
49427117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:
49437117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49447117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionBias[3]);
49457117f1b4Smrg         break;
49467117f1b4Smrg      case GL_HISTOGRAM:
49477117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetIntegerv");
49487117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.HistogramEnabled);
49497117f1b4Smrg         break;
49507117f1b4Smrg      case GL_MINMAX:
49517117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetIntegerv");
49527117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.MinMaxEnabled);
49537117f1b4Smrg         break;
49547117f1b4Smrg      case GL_COLOR_TABLE_SGI:
49557117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetIntegerv");
49567117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]);
49577117f1b4Smrg         break;
49587117f1b4Smrg      case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
49597117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetIntegerv");
49607117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]);
49617117f1b4Smrg         break;
49627117f1b4Smrg      case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
49637117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetIntegerv");
49647117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]);
49657117f1b4Smrg         break;
49667117f1b4Smrg      case GL_TEXTURE_COLOR_TABLE_SGI:
49677117f1b4Smrg         CHECK_EXT1(SGI_texture_color_table, "GetIntegerv");
49687117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled);
49697117f1b4Smrg         break;
49707117f1b4Smrg      case GL_COLOR_SUM_EXT:
49717117f1b4Smrg         CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetIntegerv");
49727117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Fog.ColorSumEnabled);
49737117f1b4Smrg         break;
49747117f1b4Smrg      case GL_CURRENT_SECONDARY_COLOR_EXT:
49757117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
49767117f1b4Smrg         {
49777117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
49787117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]);
49797117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]);
49807117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]);
49817117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]);
49827117f1b4Smrg         }
49837117f1b4Smrg         break;
49847117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_EXT:
49857117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
49867117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->SecondaryColor.Enabled);
49877117f1b4Smrg         break;
49887117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
49897117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
49907117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->SecondaryColor.Type);
49917117f1b4Smrg         break;
49927117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
49937117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
49947117f1b4Smrg         params[0] = ctx->Array.ArrayObj->SecondaryColor.Stride;
49957117f1b4Smrg         break;
49967117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
49977117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
49987117f1b4Smrg         params[0] = ctx->Array.ArrayObj->SecondaryColor.Size;
49997117f1b4Smrg         break;
50007117f1b4Smrg      case GL_CURRENT_FOG_COORDINATE_EXT:
50017117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50027117f1b4Smrg         {
50037117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
50047117f1b4Smrg         params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_FOG][0]);
50057117f1b4Smrg         }
50067117f1b4Smrg         break;
50077117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_EXT:
50087117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50097117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->FogCoord.Enabled);
50107117f1b4Smrg         break;
50117117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
50127117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50137117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->FogCoord.Type);
50147117f1b4Smrg         break;
50157117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
50167117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50177117f1b4Smrg         params[0] = ctx->Array.ArrayObj->FogCoord.Stride;
50187117f1b4Smrg         break;
50197117f1b4Smrg      case GL_FOG_COORDINATE_SOURCE_EXT:
50207117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50217117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Fog.FogCoordinateSource);
50227117f1b4Smrg         break;
50237117f1b4Smrg      case GL_MAX_TEXTURE_LOD_BIAS_EXT:
50247117f1b4Smrg         CHECK_EXT1(EXT_texture_lod_bias, "GetIntegerv");
50257117f1b4Smrg         params[0] = IROUND(ctx->Const.MaxTextureLodBias);
50267117f1b4Smrg         break;
50277117f1b4Smrg      case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
50287117f1b4Smrg         CHECK_EXT1(EXT_texture_filter_anisotropic, "GetIntegerv");
50297117f1b4Smrg         params[0] = IROUND(ctx->Const.MaxTextureMaxAnisotropy);
50307117f1b4Smrg         break;
50317117f1b4Smrg      case GL_MULTISAMPLE_ARB:
50327117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetIntegerv");
50337117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.Enabled);
50347117f1b4Smrg         break;
50357117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
50367117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetIntegerv");
50377117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleAlphaToCoverage);
50387117f1b4Smrg         break;
50397117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_ONE_ARB:
50407117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetIntegerv");
50417117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleAlphaToOne);
50427117f1b4Smrg         break;
50437117f1b4Smrg      case GL_SAMPLE_COVERAGE_ARB:
50447117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetIntegerv");
50457117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleCoverage);
50467117f1b4Smrg         break;
50477117f1b4Smrg      case GL_SAMPLE_COVERAGE_VALUE_ARB:
50487117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetIntegerv");
50497117f1b4Smrg         params[0] = IROUND(ctx->Multisample.SampleCoverageValue);
50507117f1b4Smrg         break;
50517117f1b4Smrg      case GL_SAMPLE_COVERAGE_INVERT_ARB:
50527117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetIntegerv");
50537117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleCoverageInvert);
50547117f1b4Smrg         break;
50557117f1b4Smrg      case GL_SAMPLE_BUFFERS_ARB:
50567117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetIntegerv");
50577117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.sampleBuffers;
50587117f1b4Smrg         break;
50597117f1b4Smrg      case GL_SAMPLES_ARB:
50607117f1b4Smrg         CHECK_EXT1(ARB_multisample, "GetIntegerv");
50617117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.samples;
50627117f1b4Smrg         break;
50637117f1b4Smrg      case GL_RASTER_POSITION_UNCLIPPED_IBM:
50647117f1b4Smrg         CHECK_EXT1(IBM_rasterpos_clip, "GetIntegerv");
50657117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Transform.RasterPositionUnclipped);
50667117f1b4Smrg         break;
50677117f1b4Smrg      case GL_POINT_SPRITE_NV:
50687117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetIntegerv");
50697117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Point.PointSprite);
50707117f1b4Smrg         break;
50717117f1b4Smrg      case GL_POINT_SPRITE_R_MODE_NV:
50727117f1b4Smrg         CHECK_EXT1(NV_point_sprite, "GetIntegerv");
50737117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Point.SpriteRMode);
50747117f1b4Smrg         break;
50757117f1b4Smrg      case GL_POINT_SPRITE_COORD_ORIGIN:
50767117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetIntegerv");
50777117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Point.SpriteOrigin);
50787117f1b4Smrg         break;
50797117f1b4Smrg      case GL_GENERATE_MIPMAP_HINT_SGIS:
50807117f1b4Smrg         CHECK_EXT1(SGIS_generate_mipmap, "GetIntegerv");
50817117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.GenerateMipmap);
50827117f1b4Smrg         break;
50837117f1b4Smrg      case GL_VERTEX_PROGRAM_BINDING_NV:
50847117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
50857117f1b4Smrg         params[0] = (ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0);
50867117f1b4Smrg         break;
50877117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY0_NV:
50887117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
50897117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[0].Enabled);
50907117f1b4Smrg         break;
50917117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY1_NV:
50927117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
50937117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[1].Enabled);
50947117f1b4Smrg         break;
50957117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY2_NV:
50967117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
50977117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[2].Enabled);
50987117f1b4Smrg         break;
50997117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY3_NV:
51007117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51017117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[3].Enabled);
51027117f1b4Smrg         break;
51037117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY4_NV:
51047117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51057117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[4].Enabled);
51067117f1b4Smrg         break;
51077117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY5_NV:
51087117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51097117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[5].Enabled);
51107117f1b4Smrg         break;
51117117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY6_NV:
51127117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51137117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[6].Enabled);
51147117f1b4Smrg         break;
51157117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY7_NV:
51167117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51177117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[7].Enabled);
51187117f1b4Smrg         break;
51197117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY8_NV:
51207117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51217117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[8].Enabled);
51227117f1b4Smrg         break;
51237117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY9_NV:
51247117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51257117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[9].Enabled);
51267117f1b4Smrg         break;
51277117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY10_NV:
51287117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51297117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[10].Enabled);
51307117f1b4Smrg         break;
51317117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY11_NV:
51327117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51337117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[11].Enabled);
51347117f1b4Smrg         break;
51357117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY12_NV:
51367117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51377117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[12].Enabled);
51387117f1b4Smrg         break;
51397117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY13_NV:
51407117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51417117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[13].Enabled);
51427117f1b4Smrg         break;
51437117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY14_NV:
51447117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51457117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[14].Enabled);
51467117f1b4Smrg         break;
51477117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY15_NV:
51487117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51497117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[15].Enabled);
51507117f1b4Smrg         break;
51517117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB0_4_NV:
51527117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51537117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[0]);
51547117f1b4Smrg         break;
51557117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB1_4_NV:
51567117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51577117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[1]);
51587117f1b4Smrg         break;
51597117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB2_4_NV:
51607117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51617117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[2]);
51627117f1b4Smrg         break;
51637117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB3_4_NV:
51647117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51657117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[3]);
51667117f1b4Smrg         break;
51677117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB4_4_NV:
51687117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51697117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[4]);
51707117f1b4Smrg         break;
51717117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB5_4_NV:
51727117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51737117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[5]);
51747117f1b4Smrg         break;
51757117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB6_4_NV:
51767117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51777117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[6]);
51787117f1b4Smrg         break;
51797117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB7_4_NV:
51807117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51817117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[7]);
51827117f1b4Smrg         break;
51837117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB8_4_NV:
51847117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51857117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[8]);
51867117f1b4Smrg         break;
51877117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB9_4_NV:
51887117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51897117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[9]);
51907117f1b4Smrg         break;
51917117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB10_4_NV:
51927117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51937117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[10]);
51947117f1b4Smrg         break;
51957117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB11_4_NV:
51967117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51977117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[11]);
51987117f1b4Smrg         break;
51997117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB12_4_NV:
52007117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52017117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[12]);
52027117f1b4Smrg         break;
52037117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB13_4_NV:
52047117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52057117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[13]);
52067117f1b4Smrg         break;
52077117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB14_4_NV:
52087117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52097117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[14]);
52107117f1b4Smrg         break;
52117117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB15_4_NV:
52127117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52137117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[15]);
52147117f1b4Smrg         break;
52157117f1b4Smrg      case GL_FRAGMENT_PROGRAM_NV:
52167117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetIntegerv");
52177117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->FragmentProgram.Enabled);
52187117f1b4Smrg         break;
52197117f1b4Smrg      case GL_FRAGMENT_PROGRAM_BINDING_NV:
52207117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetIntegerv");
52217117f1b4Smrg         params[0] = ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0;
52227117f1b4Smrg         break;
52237117f1b4Smrg      case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV:
52247117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetIntegerv");
52257117f1b4Smrg         params[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
52267117f1b4Smrg         break;
52277117f1b4Smrg      case GL_TEXTURE_RECTANGLE_NV:
52287117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetIntegerv");
52297117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV));
52307117f1b4Smrg         break;
52317117f1b4Smrg      case GL_TEXTURE_BINDING_RECTANGLE_NV:
52327117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetIntegerv");
52337117f1b4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentRect->Name;
52347117f1b4Smrg         break;
52357117f1b4Smrg      case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
52367117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetIntegerv");
52377117f1b4Smrg         params[0] = ctx->Const.MaxTextureRectSize;
52387117f1b4Smrg         break;
52397117f1b4Smrg      case GL_STENCIL_TEST_TWO_SIDE_EXT:
52407117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetIntegerv");
52417117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Stencil.TestTwoSide);
52427117f1b4Smrg         break;
52437117f1b4Smrg      case GL_ACTIVE_STENCIL_FACE_EXT:
52447117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetIntegerv");
52457117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT);
52467117f1b4Smrg         break;
52477117f1b4Smrg      case GL_MAX_SHININESS_NV:
52487117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetIntegerv");
52497117f1b4Smrg         params[0] = IROUND(ctx->Const.MaxShininess);
52507117f1b4Smrg         break;
52517117f1b4Smrg      case GL_MAX_SPOT_EXPONENT_NV:
52527117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetIntegerv");
52537117f1b4Smrg         params[0] = IROUND(ctx->Const.MaxSpotExponent);
52547117f1b4Smrg         break;
52557117f1b4Smrg      case GL_ARRAY_BUFFER_BINDING_ARB:
52567117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52577117f1b4Smrg         params[0] = ctx->Array.ArrayBufferObj->Name;
52587117f1b4Smrg         break;
52597117f1b4Smrg      case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
52607117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52617117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Vertex.BufferObj->Name;
52627117f1b4Smrg         break;
52637117f1b4Smrg      case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
52647117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52657117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Normal.BufferObj->Name;
52667117f1b4Smrg         break;
52677117f1b4Smrg      case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
52687117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52697117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Color.BufferObj->Name;
52707117f1b4Smrg         break;
52717117f1b4Smrg      case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
52727117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52737117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Index.BufferObj->Name;
52747117f1b4Smrg         break;
52757117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
52767117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52777117f1b4Smrg         params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name;
52787117f1b4Smrg         break;
52797117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
52807117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52817117f1b4Smrg         params[0] = ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name;
52827117f1b4Smrg         break;
52837117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
52847117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52857117f1b4Smrg         params[0] = ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name;
52867117f1b4Smrg         break;
52877117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
52887117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52897117f1b4Smrg         params[0] = ctx->Array.ArrayObj->FogCoord.BufferObj->Name;
52907117f1b4Smrg         break;
52917117f1b4Smrg      case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
52927117f1b4Smrg         CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
52937117f1b4Smrg         params[0] = ctx->Array.ElementArrayBufferObj->Name;
52947117f1b4Smrg         break;
52957117f1b4Smrg      case GL_PIXEL_PACK_BUFFER_BINDING_EXT:
52967117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetIntegerv");
52977117f1b4Smrg         params[0] = ctx->Pack.BufferObj->Name;
52987117f1b4Smrg         break;
52997117f1b4Smrg      case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT:
53007117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetIntegerv");
53017117f1b4Smrg         params[0] = ctx->Unpack.BufferObj->Name;
53027117f1b4Smrg         break;
53037117f1b4Smrg      case GL_VERTEX_PROGRAM_ARB:
53047117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv");
53057117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.Enabled);
53067117f1b4Smrg         break;
53077117f1b4Smrg      case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
53087117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv");
53097117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.PointSizeEnabled);
53107117f1b4Smrg         break;
53117117f1b4Smrg      case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
53127117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv");
53137117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.TwoSideEnabled);
53147117f1b4Smrg         break;
53157117f1b4Smrg      case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
53167117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv");
53177117f1b4Smrg         params[0] = ctx->Const.MaxProgramMatrixStackDepth;
53187117f1b4Smrg         break;
53197117f1b4Smrg      case GL_MAX_PROGRAM_MATRICES_ARB:
53207117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv");
53217117f1b4Smrg         params[0] = ctx->Const.MaxProgramMatrices;
53227117f1b4Smrg         break;
53237117f1b4Smrg      case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
53247117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv");
53257117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->CurrentStack->Depth + 1);
53267117f1b4Smrg         break;
53277117f1b4Smrg      case GL_CURRENT_MATRIX_ARB:
53287117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetIntegerv");
53297117f1b4Smrg         {
53307117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
53317117f1b4Smrg         params[0] = IROUND(matrix[0]);
53327117f1b4Smrg         params[1] = IROUND(matrix[1]);
53337117f1b4Smrg         params[2] = IROUND(matrix[2]);
53347117f1b4Smrg         params[3] = IROUND(matrix[3]);
53357117f1b4Smrg         params[4] = IROUND(matrix[4]);
53367117f1b4Smrg         params[5] = IROUND(matrix[5]);
53377117f1b4Smrg         params[6] = IROUND(matrix[6]);
53387117f1b4Smrg         params[7] = IROUND(matrix[7]);
53397117f1b4Smrg         params[8] = IROUND(matrix[8]);
53407117f1b4Smrg         params[9] = IROUND(matrix[9]);
53417117f1b4Smrg         params[10] = IROUND(matrix[10]);
53427117f1b4Smrg         params[11] = IROUND(matrix[11]);
53437117f1b4Smrg         params[12] = IROUND(matrix[12]);
53447117f1b4Smrg         params[13] = IROUND(matrix[13]);
53457117f1b4Smrg         params[14] = IROUND(matrix[14]);
53467117f1b4Smrg         params[15] = IROUND(matrix[15]);
53477117f1b4Smrg         }
53487117f1b4Smrg         break;
53497117f1b4Smrg      case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
53507117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetIntegerv");
53517117f1b4Smrg         {
53527117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
53537117f1b4Smrg         params[0] = IROUND(matrix[0]);
53547117f1b4Smrg         params[1] = IROUND(matrix[4]);
53557117f1b4Smrg         params[2] = IROUND(matrix[8]);
53567117f1b4Smrg         params[3] = IROUND(matrix[12]);
53577117f1b4Smrg         params[4] = IROUND(matrix[1]);
53587117f1b4Smrg         params[5] = IROUND(matrix[5]);
53597117f1b4Smrg         params[6] = IROUND(matrix[9]);
53607117f1b4Smrg         params[7] = IROUND(matrix[13]);
53617117f1b4Smrg         params[8] = IROUND(matrix[2]);
53627117f1b4Smrg         params[9] = IROUND(matrix[6]);
53637117f1b4Smrg         params[10] = IROUND(matrix[10]);
53647117f1b4Smrg         params[11] = IROUND(matrix[14]);
53657117f1b4Smrg         params[12] = IROUND(matrix[3]);
53667117f1b4Smrg         params[13] = IROUND(matrix[7]);
53677117f1b4Smrg         params[14] = IROUND(matrix[11]);
53687117f1b4Smrg         params[15] = IROUND(matrix[15]);
53697117f1b4Smrg         }
53707117f1b4Smrg         break;
53717117f1b4Smrg      case GL_MAX_VERTEX_ATTRIBS_ARB:
53727117f1b4Smrg         CHECK_EXT1(ARB_vertex_program, "GetIntegerv");
53737117f1b4Smrg         params[0] = ctx->Const.VertexProgram.MaxAttribs;
53747117f1b4Smrg         break;
53757117f1b4Smrg      case GL_PROGRAM_ERROR_POSITION_ARB:
53767117f1b4Smrg         CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetIntegerv");
53777117f1b4Smrg         params[0] = ctx->Program.ErrorPos;
53787117f1b4Smrg         break;
53797117f1b4Smrg      case GL_FRAGMENT_PROGRAM_ARB:
53807117f1b4Smrg         CHECK_EXT1(ARB_fragment_program, "GetIntegerv");
53817117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->FragmentProgram.Enabled);
53827117f1b4Smrg         break;
53837117f1b4Smrg      case GL_MAX_TEXTURE_COORDS_ARB:
53847117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetIntegerv");
53857117f1b4Smrg         params[0] = ctx->Const.MaxTextureCoordUnits;
53867117f1b4Smrg         break;
53877117f1b4Smrg      case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
53887117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetIntegerv");
53897117f1b4Smrg         params[0] = ctx->Const.MaxTextureImageUnits;
53907117f1b4Smrg         break;
53917117f1b4Smrg      case GL_DEPTH_BOUNDS_TEST_EXT:
53927117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetIntegerv");
53937117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Depth.BoundsTest);
53947117f1b4Smrg         break;
53957117f1b4Smrg      case GL_DEPTH_BOUNDS_EXT:
53967117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetIntegerv");
53977117f1b4Smrg         params[0] = IROUND(ctx->Depth.BoundsMin);
53987117f1b4Smrg         params[1] = IROUND(ctx->Depth.BoundsMax);
53997117f1b4Smrg         break;
54007117f1b4Smrg      case GL_FRAGMENT_PROGRAM_CALLBACK_MESA:
54017117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetIntegerv");
54027117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->FragmentProgram.CallbackEnabled);
54037117f1b4Smrg         break;
54047117f1b4Smrg      case GL_VERTEX_PROGRAM_CALLBACK_MESA:
54057117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetIntegerv");
54067117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.CallbackEnabled);
54077117f1b4Smrg         break;
54087117f1b4Smrg      case GL_FRAGMENT_PROGRAM_POSITION_MESA:
54097117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetIntegerv");
54107117f1b4Smrg         params[0] = ctx->FragmentProgram.CurrentPosition;
54117117f1b4Smrg         break;
54127117f1b4Smrg      case GL_VERTEX_PROGRAM_POSITION_MESA:
54137117f1b4Smrg         CHECK_EXT1(MESA_program_debug, "GetIntegerv");
54147117f1b4Smrg         params[0] = ctx->VertexProgram.CurrentPosition;
54157117f1b4Smrg         break;
54167117f1b4Smrg      case GL_MAX_DRAW_BUFFERS_ARB:
54177117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetIntegerv");
54187117f1b4Smrg         params[0] = ctx->Const.MaxDrawBuffers;
54197117f1b4Smrg         break;
54207117f1b4Smrg      case GL_DRAW_BUFFER0_ARB:
54217117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetIntegerv");
54227117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->DrawBuffer->ColorDrawBuffer[0]);
54237117f1b4Smrg         break;
54247117f1b4Smrg      case GL_DRAW_BUFFER1_ARB:
54257117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetIntegerv");
54267117f1b4Smrg         {
54277117f1b4Smrg         GLenum buffer;
54287117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
54297117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
54307117f1b4Smrg            return;
54317117f1b4Smrg         }
54327117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[1];
54337117f1b4Smrg         params[0] = ENUM_TO_INT(buffer);
54347117f1b4Smrg         }
54357117f1b4Smrg         break;
54367117f1b4Smrg      case GL_DRAW_BUFFER2_ARB:
54377117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetIntegerv");
54387117f1b4Smrg         {
54397117f1b4Smrg         GLenum buffer;
54407117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
54417117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
54427117f1b4Smrg            return;
54437117f1b4Smrg         }
54447117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[2];
54457117f1b4Smrg         params[0] = ENUM_TO_INT(buffer);
54467117f1b4Smrg         }
54477117f1b4Smrg         break;
54487117f1b4Smrg      case GL_DRAW_BUFFER3_ARB:
54497117f1b4Smrg         CHECK_EXT1(ARB_draw_buffers, "GetIntegerv");
54507117f1b4Smrg         {
54517117f1b4Smrg         GLenum buffer;
54527117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
54537117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
54547117f1b4Smrg            return;
54557117f1b4Smrg         }
54567117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[3];
54577117f1b4Smrg         params[0] = ENUM_TO_INT(buffer);
54587117f1b4Smrg         }
54597117f1b4Smrg         break;
54607117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
54617117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetIntegerv");
54627117f1b4Smrg         params[0] = ctx->Const.ColorReadType;
54637117f1b4Smrg         break;
54647117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
54657117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetIntegerv");
54667117f1b4Smrg         params[0] = ctx->Const.ColorReadFormat;
54677117f1b4Smrg         break;
54687117f1b4Smrg      case GL_NUM_FRAGMENT_REGISTERS_ATI:
54697117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54707117f1b4Smrg         params[0] = 6;
54717117f1b4Smrg         break;
54727117f1b4Smrg      case GL_NUM_FRAGMENT_CONSTANTS_ATI:
54737117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54747117f1b4Smrg         params[0] = 8;
54757117f1b4Smrg         break;
54767117f1b4Smrg      case GL_NUM_PASSES_ATI:
54777117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54787117f1b4Smrg         params[0] = 2;
54797117f1b4Smrg         break;
54807117f1b4Smrg      case GL_NUM_INSTRUCTIONS_PER_PASS_ATI:
54817117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54827117f1b4Smrg         params[0] = 8;
54837117f1b4Smrg         break;
54847117f1b4Smrg      case GL_NUM_INSTRUCTIONS_TOTAL_ATI:
54857117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54867117f1b4Smrg         params[0] = 16;
54877117f1b4Smrg         break;
54887117f1b4Smrg      case GL_COLOR_ALPHA_PAIRING_ATI:
54897117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54907117f1b4Smrg         params[0] = BOOLEAN_TO_INT(GL_TRUE);
54917117f1b4Smrg         break;
54927117f1b4Smrg      case GL_NUM_LOOPBACK_COMPONENTS_ATI:
54937117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54947117f1b4Smrg         params[0] = 3;
54957117f1b4Smrg         break;
54967117f1b4Smrg      case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI:
54977117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54987117f1b4Smrg         params[0] = 3;
54997117f1b4Smrg         break;
55007117f1b4Smrg      case GL_STENCIL_BACK_FUNC:
55017117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.Function[1]);
55027117f1b4Smrg         break;
55037117f1b4Smrg      case GL_STENCIL_BACK_VALUE_MASK:
55047117f1b4Smrg         params[0] = ctx->Stencil.ValueMask[1];
55057117f1b4Smrg         break;
55067117f1b4Smrg      case GL_STENCIL_BACK_WRITEMASK:
55077117f1b4Smrg         params[0] = ctx->Stencil.WriteMask[1];
55087117f1b4Smrg         break;
55097117f1b4Smrg      case GL_STENCIL_BACK_REF:
55107117f1b4Smrg         params[0] = ctx->Stencil.Ref[1];
55117117f1b4Smrg         break;
55127117f1b4Smrg      case GL_STENCIL_BACK_FAIL:
55137117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.FailFunc[1]);
55147117f1b4Smrg         break;
55157117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
55167117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ZFailFunc[1]);
55177117f1b4Smrg         break;
55187117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_PASS:
55197117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ZPassFunc[1]);
55207117f1b4Smrg         break;
55217117f1b4Smrg      case GL_FRAMEBUFFER_BINDING_EXT:
55227117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
55237117f1b4Smrg         params[0] = ctx->DrawBuffer->Name;
55247117f1b4Smrg         break;
55257117f1b4Smrg      case GL_RENDERBUFFER_BINDING_EXT:
55267117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
55277117f1b4Smrg         params[0] = ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0;
55287117f1b4Smrg         break;
55297117f1b4Smrg      case GL_MAX_COLOR_ATTACHMENTS_EXT:
55307117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
55317117f1b4Smrg         params[0] = ctx->Const.MaxColorAttachments;
55327117f1b4Smrg         break;
55337117f1b4Smrg      case GL_MAX_RENDERBUFFER_SIZE_EXT:
55347117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
55357117f1b4Smrg         params[0] = ctx->Const.MaxRenderbufferSize;
55367117f1b4Smrg         break;
55377117f1b4Smrg      case GL_READ_FRAMEBUFFER_BINDING_EXT:
55387117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_blit, "GetIntegerv");
55397117f1b4Smrg         params[0] = ctx->ReadBuffer->Name;
55407117f1b4Smrg         break;
55417117f1b4Smrg      case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
55427117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
55437117f1b4Smrg         params[0] = ctx->Const.FragmentProgram.MaxUniformComponents;
55447117f1b4Smrg         break;
55457117f1b4Smrg      case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
55467117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
55477117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.FragmentShaderDerivative);
55487117f1b4Smrg         break;
55497117f1b4Smrg      case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
55507117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
55517117f1b4Smrg         params[0] = ctx->Const.VertexProgram.MaxUniformComponents;
55527117f1b4Smrg         break;
55537117f1b4Smrg      case GL_MAX_VARYING_FLOATS_ARB:
55547117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
55557117f1b4Smrg         params[0] = ctx->Const.MaxVarying * 4;
55567117f1b4Smrg         break;
55577117f1b4Smrg      case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
55587117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
55597117f1b4Smrg         params[0] = ctx->Const.MaxVertexTextureImageUnits;
55607117f1b4Smrg         break;
55617117f1b4Smrg      case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
55627117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
55637117f1b4Smrg         params[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS;
55647117f1b4Smrg         break;
55657117f1b4Smrg      case GL_CURRENT_PROGRAM:
55667117f1b4Smrg         CHECK_EXT1(ARB_shader_objects, "GetIntegerv");
55677117f1b4Smrg         params[0] = ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0;
55687117f1b4Smrg         break;
55697117f1b4Smrg      default:
55707117f1b4Smrg         _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv(pname=0x%x)", pname);
55717117f1b4Smrg   }
55727117f1b4Smrg}
55737117f1b4Smrg
55747117f1b4Smrg
55757117f1b4Smrgvoid GLAPIENTRY
55767117f1b4Smrg_mesa_GetDoublev( GLenum pname, GLdouble *params )
55777117f1b4Smrg{
55787117f1b4Smrg   const GLfloat magic = -1234.5F;
55797117f1b4Smrg   GLfloat values[16];
55807117f1b4Smrg   GLuint i;
55817117f1b4Smrg
55827117f1b4Smrg   if (!params)
55837117f1b4Smrg      return;
55847117f1b4Smrg
55857117f1b4Smrg   /* Init temp array to magic numbers so we can figure out how many values
55867117f1b4Smrg    * are returned by the GetFloatv() call.
55877117f1b4Smrg    */
55887117f1b4Smrg   for (i = 0; i < 16; i++)
55897117f1b4Smrg      values[i] = magic;
55907117f1b4Smrg
55917117f1b4Smrg   _mesa_GetFloatv(pname, values);
55927117f1b4Smrg
55937117f1b4Smrg   for (i = 0; i < 16 && values[i] != magic; i++)
55947117f1b4Smrg      params[i] = (GLdouble) values[i];
55957117f1b4Smrg}
55967117f1b4Smrg
5597