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