get.c revision 4a49301e
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"
164a49301eSmrg#include "framebuffer.h"
177117f1b4Smrg
187117f1b4Smrg
197117f1b4Smrg#define FLOAT_TO_BOOLEAN(X)   ( (X) ? GL_TRUE : GL_FALSE )
207117f1b4Smrg
217117f1b4Smrg#define INT_TO_BOOLEAN(I)     ( (I) ? GL_TRUE : GL_FALSE )
227117f1b4Smrg
234a49301eSmrg#define INT64_TO_BOOLEAN(I)   ( (I) ? GL_TRUE : GL_FALSE )
244a49301eSmrg#define INT64_TO_INT(I)       ( (GLint)((I > INT_MAX) ? INT_MAX : ((I < INT_MIN) ? INT_MIN : (I))) )
254a49301eSmrg
267117f1b4Smrg#define BOOLEAN_TO_INT(B)     ( (GLint) (B) )
274a49301eSmrg#define BOOLEAN_TO_INT64(B)   ( (GLint64) (B) )
287117f1b4Smrg#define BOOLEAN_TO_FLOAT(B)   ( (B) ? 1.0F : 0.0F )
297117f1b4Smrg
304a49301eSmrg#define ENUM_TO_INT64(E)      ( (GLint64) (E) )
314a49301eSmrg
327117f1b4Smrg
337117f1b4Smrg/*
347117f1b4Smrg * Check if named extension is enabled, if not generate error and return.
357117f1b4Smrg */
367117f1b4Smrg#define CHECK_EXT1(EXT1, FUNC)                                         \
377117f1b4Smrg   if (!ctx->Extensions.EXT1) {                                        \
387117f1b4Smrg      _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname);  \
397117f1b4Smrg      return;                                                          \
407117f1b4Smrg   }
417117f1b4Smrg
427117f1b4Smrg/*
437117f1b4Smrg * Check if either of two extensions is enabled.
447117f1b4Smrg */
457117f1b4Smrg#define CHECK_EXT2(EXT1, EXT2, FUNC)                                   \
467117f1b4Smrg   if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) {               \
477117f1b4Smrg      _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname);  \
487117f1b4Smrg      return;                                                          \
497117f1b4Smrg   }
507117f1b4Smrg
517117f1b4Smrg/*
527117f1b4Smrg * Check if either of three extensions is enabled.
537117f1b4Smrg */
547117f1b4Smrg#define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC)                             \
557117f1b4Smrg   if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 &&               \
567117f1b4Smrg       !ctx->Extensions.EXT3) {                                        \
577117f1b4Smrg      _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname);  \
587117f1b4Smrg      return;                                                          \
597117f1b4Smrg   }
607117f1b4Smrg
617117f1b4Smrg/*
627117f1b4Smrg * Check if either of four extensions is enabled.
637117f1b4Smrg */
647117f1b4Smrg#define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC)                       \
657117f1b4Smrg   if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 &&               \
667117f1b4Smrg       !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) {               \
677117f1b4Smrg      _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname);  \
687117f1b4Smrg      return;                                                          \
697117f1b4Smrg   }
707117f1b4Smrg
717117f1b4Smrg
727117f1b4Smrgvoid GLAPIENTRY
737117f1b4Smrg_mesa_GetBooleanv( GLenum pname, GLboolean *params )
747117f1b4Smrg{
757117f1b4Smrg   GET_CURRENT_CONTEXT(ctx);
767117f1b4Smrg   ASSERT_OUTSIDE_BEGIN_END(ctx);
777117f1b4Smrg
787117f1b4Smrg   if (!params)
797117f1b4Smrg      return;
807117f1b4Smrg
817117f1b4Smrg   if (ctx->NewState)
827117f1b4Smrg      _mesa_update_state(ctx);
837117f1b4Smrg
847117f1b4Smrg   if (ctx->Driver.GetBooleanv &&
857117f1b4Smrg       ctx->Driver.GetBooleanv(ctx, pname, params))
867117f1b4Smrg      return;
877117f1b4Smrg
887117f1b4Smrg   switch (pname) {
897117f1b4Smrg      case GL_ACCUM_RED_BITS:
907117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumRedBits);
917117f1b4Smrg         break;
927117f1b4Smrg      case GL_ACCUM_GREEN_BITS:
937117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumGreenBits);
947117f1b4Smrg         break;
957117f1b4Smrg      case GL_ACCUM_BLUE_BITS:
967117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumBlueBits);
977117f1b4Smrg         break;
987117f1b4Smrg      case GL_ACCUM_ALPHA_BITS:
997117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumAlphaBits);
1007117f1b4Smrg         break;
1017117f1b4Smrg      case GL_ACCUM_CLEAR_VALUE:
1027117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[0]);
1037117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[1]);
1047117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[2]);
1057117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[3]);
1067117f1b4Smrg         break;
1077117f1b4Smrg      case GL_ALPHA_BIAS:
1087117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.AlphaBias);
1097117f1b4Smrg         break;
1107117f1b4Smrg      case GL_ALPHA_BITS:
1117117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.alphaBits);
1127117f1b4Smrg         break;
1137117f1b4Smrg      case GL_ALPHA_SCALE:
1147117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.AlphaScale);
1157117f1b4Smrg         break;
1167117f1b4Smrg      case GL_ALPHA_TEST:
1177117f1b4Smrg         params[0] = ctx->Color.AlphaEnabled;
1187117f1b4Smrg         break;
1197117f1b4Smrg      case GL_ALPHA_TEST_FUNC:
1207117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.AlphaFunc);
1217117f1b4Smrg         break;
1227117f1b4Smrg      case GL_ALPHA_TEST_REF:
1237117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Color.AlphaRef);
1247117f1b4Smrg         break;
1257117f1b4Smrg      case GL_ATTRIB_STACK_DEPTH:
1267117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->AttribStackDepth);
1277117f1b4Smrg         break;
1287117f1b4Smrg      case GL_AUTO_NORMAL:
1297117f1b4Smrg         params[0] = ctx->Eval.AutoNormal;
1307117f1b4Smrg         break;
1317117f1b4Smrg      case GL_AUX_BUFFERS:
1327117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.numAuxBuffers);
1337117f1b4Smrg         break;
1347117f1b4Smrg      case GL_BLEND:
1357117f1b4Smrg         params[0] = ctx->Color.BlendEnabled;
1367117f1b4Smrg         break;
1377117f1b4Smrg      case GL_BLEND_DST:
1387117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstRGB);
1397117f1b4Smrg         break;
1407117f1b4Smrg      case GL_BLEND_SRC:
1417117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcRGB);
1427117f1b4Smrg         break;
1437117f1b4Smrg      case GL_BLEND_SRC_RGB_EXT:
1447117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcRGB);
1457117f1b4Smrg         break;
1467117f1b4Smrg      case GL_BLEND_DST_RGB_EXT:
1477117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstRGB);
1487117f1b4Smrg         break;
1497117f1b4Smrg      case GL_BLEND_SRC_ALPHA_EXT:
1507117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcA);
1517117f1b4Smrg         break;
1527117f1b4Smrg      case GL_BLEND_DST_ALPHA_EXT:
1537117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstA);
1547117f1b4Smrg         break;
1557117f1b4Smrg      case GL_BLEND_EQUATION:
1567117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendEquationRGB );
1577117f1b4Smrg         break;
1587117f1b4Smrg      case GL_BLEND_EQUATION_ALPHA_EXT:
1597117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendEquationA );
1607117f1b4Smrg         break;
1617117f1b4Smrg      case GL_BLEND_COLOR_EXT:
1627117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[0]);
1637117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[1]);
1647117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[2]);
1657117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[3]);
1667117f1b4Smrg         break;
1677117f1b4Smrg      case GL_BLUE_BIAS:
1687117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.BlueBias);
1697117f1b4Smrg         break;
1707117f1b4Smrg      case GL_BLUE_BITS:
1717117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.blueBits);
1727117f1b4Smrg         break;
1737117f1b4Smrg      case GL_BLUE_SCALE:
1747117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.BlueScale);
1757117f1b4Smrg         break;
1767117f1b4Smrg      case GL_CLIENT_ATTRIB_STACK_DEPTH:
1777117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ClientAttribStackDepth);
1787117f1b4Smrg         break;
1797117f1b4Smrg      case GL_CLIP_PLANE0:
1807117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 0) & 1;
1817117f1b4Smrg         break;
1827117f1b4Smrg      case GL_CLIP_PLANE1:
1837117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 1) & 1;
1847117f1b4Smrg         break;
1857117f1b4Smrg      case GL_CLIP_PLANE2:
1867117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 2) & 1;
1877117f1b4Smrg         break;
1887117f1b4Smrg      case GL_CLIP_PLANE3:
1897117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 3) & 1;
1907117f1b4Smrg         break;
1917117f1b4Smrg      case GL_CLIP_PLANE4:
1927117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 4) & 1;
1937117f1b4Smrg         break;
1947117f1b4Smrg      case GL_CLIP_PLANE5:
1957117f1b4Smrg         params[0] = (ctx->Transform.ClipPlanesEnabled >> 5) & 1;
1967117f1b4Smrg         break;
1977117f1b4Smrg      case GL_COLOR_CLEAR_VALUE:
1987117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[0]);
1997117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[1]);
2007117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[2]);
2017117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[3]);
2027117f1b4Smrg         break;
2037117f1b4Smrg      case GL_COLOR_MATERIAL:
2047117f1b4Smrg         params[0] = ctx->Light.ColorMaterialEnabled;
2057117f1b4Smrg         break;
2067117f1b4Smrg      case GL_COLOR_MATERIAL_FACE:
2077117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Light.ColorMaterialFace);
2087117f1b4Smrg         break;
2097117f1b4Smrg      case GL_COLOR_MATERIAL_PARAMETER:
2107117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Light.ColorMaterialMode);
2117117f1b4Smrg         break;
2127117f1b4Smrg      case GL_COLOR_WRITEMASK:
2137117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Color.ColorMask[RCOMP] ? 1 : 0);
2147117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Color.ColorMask[GCOMP] ? 1 : 0);
2157117f1b4Smrg         params[2] = INT_TO_BOOLEAN(ctx->Color.ColorMask[BCOMP] ? 1 : 0);
2167117f1b4Smrg         params[3] = INT_TO_BOOLEAN(ctx->Color.ColorMask[ACOMP] ? 1 : 0);
2177117f1b4Smrg         break;
2187117f1b4Smrg      case GL_CULL_FACE:
2197117f1b4Smrg         params[0] = ctx->Polygon.CullFlag;
2207117f1b4Smrg         break;
2217117f1b4Smrg      case GL_CULL_FACE_MODE:
2227117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.CullFaceMode);
2237117f1b4Smrg         break;
2247117f1b4Smrg      case GL_CURRENT_COLOR:
2257117f1b4Smrg         {
2267117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
2277117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]);
2287117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]);
2297117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]);
2307117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]);
2317117f1b4Smrg         }
2327117f1b4Smrg         break;
2337117f1b4Smrg      case GL_CURRENT_INDEX:
2347117f1b4Smrg         {
2357117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
2367117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]);
2377117f1b4Smrg         }
2387117f1b4Smrg         break;
2397117f1b4Smrg      case GL_CURRENT_NORMAL:
2407117f1b4Smrg         {
2417117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
2427117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]);
2437117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]);
2447117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]);
2457117f1b4Smrg         }
2467117f1b4Smrg         break;
2477117f1b4Smrg      case GL_CURRENT_RASTER_COLOR:
2487117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[0]);
2497117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[1]);
2507117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[2]);
2517117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[3]);
2527117f1b4Smrg         break;
2537117f1b4Smrg      case GL_CURRENT_RASTER_DISTANCE:
2547117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterDistance);
2557117f1b4Smrg         break;
2567117f1b4Smrg      case GL_CURRENT_RASTER_INDEX:
2577117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterIndex);
2587117f1b4Smrg         break;
2597117f1b4Smrg      case GL_CURRENT_RASTER_POSITION:
2607117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[0]);
2617117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[1]);
2627117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[2]);
2637117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[3]);
2647117f1b4Smrg         break;
2657117f1b4Smrg      case GL_CURRENT_RASTER_SECONDARY_COLOR:
2667117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[0]);
2677117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[1]);
2687117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[2]);
2697117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[3]);
2707117f1b4Smrg         break;
2717117f1b4Smrg      case GL_CURRENT_RASTER_TEXTURE_COORDS:
2727117f1b4Smrg         {
2737117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
2747117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][0]);
2757117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][1]);
2767117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][2]);
2777117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][3]);
2787117f1b4Smrg         }
2797117f1b4Smrg         break;
2807117f1b4Smrg      case GL_CURRENT_RASTER_POSITION_VALID:
2817117f1b4Smrg         params[0] = ctx->Current.RasterPosValid;
2827117f1b4Smrg         break;
2837117f1b4Smrg      case GL_CURRENT_TEXTURE_COORDS:
2847117f1b4Smrg         {
2857117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
2864a49301eSmrg         FLUSH_CURRENT(ctx, 0);
2877117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]);
2887117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]);
2897117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]);
2907117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]);
2917117f1b4Smrg         }
2927117f1b4Smrg         break;
2937117f1b4Smrg      case GL_DEPTH_BIAS:
2947117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.DepthBias);
2957117f1b4Smrg         break;
2967117f1b4Smrg      case GL_DEPTH_BITS:
2977117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.depthBits);
2987117f1b4Smrg         break;
2997117f1b4Smrg      case GL_DEPTH_CLEAR_VALUE:
300c1f859d4Smrg         params[0] = FLOAT_TO_BOOLEAN(((GLfloat) ctx->Depth.Clear));
3017117f1b4Smrg         break;
3027117f1b4Smrg      case GL_DEPTH_FUNC:
3037117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Depth.Func);
3047117f1b4Smrg         break;
3057117f1b4Smrg      case GL_DEPTH_RANGE:
3067117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Viewport.Near);
3077117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Viewport.Far);
3087117f1b4Smrg         break;
3097117f1b4Smrg      case GL_DEPTH_SCALE:
3107117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.DepthScale);
3117117f1b4Smrg         break;
3127117f1b4Smrg      case GL_DEPTH_TEST:
3137117f1b4Smrg         params[0] = ctx->Depth.Test;
3147117f1b4Smrg         break;
3157117f1b4Smrg      case GL_DEPTH_WRITEMASK:
3167117f1b4Smrg         params[0] = ctx->Depth.Mask;
3177117f1b4Smrg         break;
3187117f1b4Smrg      case GL_DITHER:
3197117f1b4Smrg         params[0] = ctx->Color.DitherFlag;
3207117f1b4Smrg         break;
3217117f1b4Smrg      case GL_DOUBLEBUFFER:
3227117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.doubleBufferMode;
3237117f1b4Smrg         break;
3247117f1b4Smrg      case GL_DRAW_BUFFER:
3257117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->DrawBuffer->ColorDrawBuffer[0]);
3267117f1b4Smrg         break;
3277117f1b4Smrg      case GL_EDGE_FLAG:
3287117f1b4Smrg         {
3297117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
3307117f1b4Smrg         params[0] = (ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0);
3317117f1b4Smrg         }
3327117f1b4Smrg         break;
3337117f1b4Smrg      case GL_FEEDBACK_BUFFER_SIZE:
3347117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Feedback.BufferSize);
3357117f1b4Smrg         break;
3367117f1b4Smrg      case GL_FEEDBACK_BUFFER_TYPE:
3377117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Feedback.Type);
3387117f1b4Smrg         break;
3397117f1b4Smrg      case GL_FOG:
3407117f1b4Smrg         params[0] = ctx->Fog.Enabled;
3417117f1b4Smrg         break;
3427117f1b4Smrg      case GL_FOG_COLOR:
3437117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[0]);
3447117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[1]);
3457117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[2]);
3467117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[3]);
3477117f1b4Smrg         break;
3487117f1b4Smrg      case GL_FOG_DENSITY:
3497117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Density);
3507117f1b4Smrg         break;
3517117f1b4Smrg      case GL_FOG_END:
3527117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.End);
3537117f1b4Smrg         break;
3547117f1b4Smrg      case GL_FOG_HINT:
3557117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.Fog);
3567117f1b4Smrg         break;
3577117f1b4Smrg      case GL_FOG_INDEX:
3587117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Index);
3597117f1b4Smrg         break;
3607117f1b4Smrg      case GL_FOG_MODE:
3617117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Fog.Mode);
3627117f1b4Smrg         break;
3637117f1b4Smrg      case GL_FOG_START:
3647117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Start);
3657117f1b4Smrg         break;
3667117f1b4Smrg      case GL_FRONT_FACE:
3677117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.FrontFace);
3687117f1b4Smrg         break;
3697117f1b4Smrg      case GL_GREEN_BIAS:
3707117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.GreenBias);
3717117f1b4Smrg         break;
3727117f1b4Smrg      case GL_GREEN_BITS:
3737117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.greenBits);
3747117f1b4Smrg         break;
3757117f1b4Smrg      case GL_GREEN_SCALE:
3767117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.GreenScale);
3777117f1b4Smrg         break;
3787117f1b4Smrg      case GL_INDEX_BITS:
3797117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.indexBits);
3807117f1b4Smrg         break;
3817117f1b4Smrg      case GL_INDEX_CLEAR_VALUE:
3827117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Color.ClearIndex);
3837117f1b4Smrg         break;
3847117f1b4Smrg      case GL_INDEX_MODE:
3857117f1b4Smrg         params[0] = !ctx->DrawBuffer->Visual.rgbMode;
3867117f1b4Smrg         break;
3877117f1b4Smrg      case GL_INDEX_OFFSET:
3887117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pixel.IndexOffset);
3897117f1b4Smrg         break;
3907117f1b4Smrg      case GL_INDEX_SHIFT:
3917117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pixel.IndexShift);
3927117f1b4Smrg         break;
3937117f1b4Smrg      case GL_INDEX_WRITEMASK:
3947117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Color.IndexMask);
3957117f1b4Smrg         break;
3967117f1b4Smrg      case GL_LIGHT0:
3977117f1b4Smrg         params[0] = ctx->Light.Light[0].Enabled;
3987117f1b4Smrg         break;
3997117f1b4Smrg      case GL_LIGHT1:
4007117f1b4Smrg         params[0] = ctx->Light.Light[1].Enabled;
4017117f1b4Smrg         break;
4027117f1b4Smrg      case GL_LIGHT2:
4037117f1b4Smrg         params[0] = ctx->Light.Light[2].Enabled;
4047117f1b4Smrg         break;
4057117f1b4Smrg      case GL_LIGHT3:
4067117f1b4Smrg         params[0] = ctx->Light.Light[3].Enabled;
4077117f1b4Smrg         break;
4087117f1b4Smrg      case GL_LIGHT4:
4097117f1b4Smrg         params[0] = ctx->Light.Light[4].Enabled;
4107117f1b4Smrg         break;
4117117f1b4Smrg      case GL_LIGHT5:
4127117f1b4Smrg         params[0] = ctx->Light.Light[5].Enabled;
4137117f1b4Smrg         break;
4147117f1b4Smrg      case GL_LIGHT6:
4157117f1b4Smrg         params[0] = ctx->Light.Light[6].Enabled;
4167117f1b4Smrg         break;
4177117f1b4Smrg      case GL_LIGHT7:
4187117f1b4Smrg         params[0] = ctx->Light.Light[7].Enabled;
4197117f1b4Smrg         break;
4207117f1b4Smrg      case GL_LIGHTING:
4217117f1b4Smrg         params[0] = ctx->Light.Enabled;
4227117f1b4Smrg         break;
4237117f1b4Smrg      case GL_LIGHT_MODEL_AMBIENT:
4247117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[0]);
4257117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[1]);
4267117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[2]);
4277117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[3]);
4287117f1b4Smrg         break;
4297117f1b4Smrg      case GL_LIGHT_MODEL_COLOR_CONTROL:
4307117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Light.Model.ColorControl);
4317117f1b4Smrg         break;
4327117f1b4Smrg      case GL_LIGHT_MODEL_LOCAL_VIEWER:
4337117f1b4Smrg         params[0] = ctx->Light.Model.LocalViewer;
4347117f1b4Smrg         break;
4357117f1b4Smrg      case GL_LIGHT_MODEL_TWO_SIDE:
4367117f1b4Smrg         params[0] = ctx->Light.Model.TwoSide;
4377117f1b4Smrg         break;
4387117f1b4Smrg      case GL_LINE_SMOOTH:
4397117f1b4Smrg         params[0] = ctx->Line.SmoothFlag;
4407117f1b4Smrg         break;
4417117f1b4Smrg      case GL_LINE_SMOOTH_HINT:
4427117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.LineSmooth);
4437117f1b4Smrg         break;
4447117f1b4Smrg      case GL_LINE_STIPPLE:
4457117f1b4Smrg         params[0] = ctx->Line.StippleFlag;
4467117f1b4Smrg         break;
4477117f1b4Smrg      case GL_LINE_STIPPLE_PATTERN:
4487117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Line.StipplePattern);
4497117f1b4Smrg         break;
4507117f1b4Smrg      case GL_LINE_STIPPLE_REPEAT:
4517117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Line.StippleFactor);
4527117f1b4Smrg         break;
4537117f1b4Smrg      case GL_LINE_WIDTH:
4547117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Line.Width);
4557117f1b4Smrg         break;
4567117f1b4Smrg      case GL_LINE_WIDTH_GRANULARITY:
4577117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.LineWidthGranularity);
4587117f1b4Smrg         break;
4597117f1b4Smrg      case GL_LINE_WIDTH_RANGE:
4607117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinLineWidthAA);
4617117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxLineWidthAA);
4627117f1b4Smrg         break;
4637117f1b4Smrg      case GL_ALIASED_LINE_WIDTH_RANGE:
4647117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinLineWidth);
4657117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxLineWidth);
4667117f1b4Smrg         break;
4677117f1b4Smrg      case GL_LIST_BASE:
4687117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->List.ListBase);
4697117f1b4Smrg         break;
4707117f1b4Smrg      case GL_LIST_INDEX:
4714a49301eSmrg         params[0] = INT_TO_BOOLEAN((ctx->ListState.CurrentList ? ctx->ListState.CurrentList->Name : 0));
4727117f1b4Smrg         break;
4737117f1b4Smrg      case GL_LIST_MODE:
4747117f1b4Smrg         {
4757117f1b4Smrg         GLenum mode;
4767117f1b4Smrg         if (!ctx->CompileFlag)
4777117f1b4Smrg            mode = 0;
4787117f1b4Smrg         else if (ctx->ExecuteFlag)
4797117f1b4Smrg            mode = GL_COMPILE_AND_EXECUTE;
4807117f1b4Smrg         else
4817117f1b4Smrg            mode = GL_COMPILE;
4827117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(mode);
4837117f1b4Smrg         }
4847117f1b4Smrg         break;
4857117f1b4Smrg      case GL_INDEX_LOGIC_OP:
4867117f1b4Smrg         params[0] = ctx->Color.IndexLogicOpEnabled;
4877117f1b4Smrg         break;
4887117f1b4Smrg      case GL_COLOR_LOGIC_OP:
4897117f1b4Smrg         params[0] = ctx->Color.ColorLogicOpEnabled;
4907117f1b4Smrg         break;
4917117f1b4Smrg      case GL_LOGIC_OP_MODE:
4927117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Color.LogicOp);
4937117f1b4Smrg         break;
4947117f1b4Smrg      case GL_MAP1_COLOR_4:
4957117f1b4Smrg         params[0] = ctx->Eval.Map1Color4;
4967117f1b4Smrg         break;
4977117f1b4Smrg      case GL_MAP1_GRID_DOMAIN:
4987117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid1u1);
4997117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid1u2);
5007117f1b4Smrg         break;
5017117f1b4Smrg      case GL_MAP1_GRID_SEGMENTS:
5027117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Eval.MapGrid1un);
5037117f1b4Smrg         break;
5047117f1b4Smrg      case GL_MAP1_INDEX:
5057117f1b4Smrg         params[0] = ctx->Eval.Map1Index;
5067117f1b4Smrg         break;
5077117f1b4Smrg      case GL_MAP1_NORMAL:
5087117f1b4Smrg         params[0] = ctx->Eval.Map1Normal;
5097117f1b4Smrg         break;
5107117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_1:
5117117f1b4Smrg         params[0] = ctx->Eval.Map1TextureCoord1;
5127117f1b4Smrg         break;
5137117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_2:
5147117f1b4Smrg         params[0] = ctx->Eval.Map1TextureCoord2;
5157117f1b4Smrg         break;
5167117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_3:
5177117f1b4Smrg         params[0] = ctx->Eval.Map1TextureCoord3;
5187117f1b4Smrg         break;
5197117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_4:
5207117f1b4Smrg         params[0] = ctx->Eval.Map1TextureCoord4;
5217117f1b4Smrg         break;
5227117f1b4Smrg      case GL_MAP1_VERTEX_3:
5237117f1b4Smrg         params[0] = ctx->Eval.Map1Vertex3;
5247117f1b4Smrg         break;
5257117f1b4Smrg      case GL_MAP1_VERTEX_4:
5267117f1b4Smrg         params[0] = ctx->Eval.Map1Vertex4;
5277117f1b4Smrg         break;
5287117f1b4Smrg      case GL_MAP2_COLOR_4:
5297117f1b4Smrg         params[0] = ctx->Eval.Map2Color4;
5307117f1b4Smrg         break;
5317117f1b4Smrg      case GL_MAP2_GRID_DOMAIN:
5327117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2u1);
5337117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2u2);
5347117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2v1);
5357117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2v2);
5367117f1b4Smrg         break;
5377117f1b4Smrg      case GL_MAP2_GRID_SEGMENTS:
5387117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Eval.MapGrid2un);
5397117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Eval.MapGrid2vn);
5407117f1b4Smrg         break;
5417117f1b4Smrg      case GL_MAP2_INDEX:
5427117f1b4Smrg         params[0] = ctx->Eval.Map2Index;
5437117f1b4Smrg         break;
5447117f1b4Smrg      case GL_MAP2_NORMAL:
5457117f1b4Smrg         params[0] = ctx->Eval.Map2Normal;
5467117f1b4Smrg         break;
5477117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_1:
5487117f1b4Smrg         params[0] = ctx->Eval.Map2TextureCoord1;
5497117f1b4Smrg         break;
5507117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_2:
5517117f1b4Smrg         params[0] = ctx->Eval.Map2TextureCoord2;
5527117f1b4Smrg         break;
5537117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_3:
5547117f1b4Smrg         params[0] = ctx->Eval.Map2TextureCoord3;
5557117f1b4Smrg         break;
5567117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_4:
5577117f1b4Smrg         params[0] = ctx->Eval.Map2TextureCoord4;
5587117f1b4Smrg         break;
5597117f1b4Smrg      case GL_MAP2_VERTEX_3:
5607117f1b4Smrg         params[0] = ctx->Eval.Map2Vertex3;
5617117f1b4Smrg         break;
5627117f1b4Smrg      case GL_MAP2_VERTEX_4:
5637117f1b4Smrg         params[0] = ctx->Eval.Map2Vertex4;
5647117f1b4Smrg         break;
5657117f1b4Smrg      case GL_MAP_COLOR:
5667117f1b4Smrg         params[0] = ctx->Pixel.MapColorFlag;
5677117f1b4Smrg         break;
5687117f1b4Smrg      case GL_MAP_STENCIL:
5697117f1b4Smrg         params[0] = ctx->Pixel.MapStencilFlag;
5707117f1b4Smrg         break;
5717117f1b4Smrg      case GL_MATRIX_MODE:
5727117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Transform.MatrixMode);
5737117f1b4Smrg         break;
5747117f1b4Smrg      case GL_MAX_ATTRIB_STACK_DEPTH:
5757117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH);
5767117f1b4Smrg         break;
5777117f1b4Smrg      case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
5787117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH);
5797117f1b4Smrg         break;
5807117f1b4Smrg      case GL_MAX_CLIP_PLANES:
5817117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxClipPlanes);
5827117f1b4Smrg         break;
5837117f1b4Smrg      case GL_MAX_ELEMENTS_VERTICES:
5847117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxArrayLockSize);
5857117f1b4Smrg         break;
5867117f1b4Smrg      case GL_MAX_ELEMENTS_INDICES:
5877117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxArrayLockSize);
5887117f1b4Smrg         break;
5897117f1b4Smrg      case GL_MAX_EVAL_ORDER:
5907117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER);
5917117f1b4Smrg         break;
5927117f1b4Smrg      case GL_MAX_LIGHTS:
5937117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxLights);
5947117f1b4Smrg         break;
5957117f1b4Smrg      case GL_MAX_LIST_NESTING:
5967117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING);
5977117f1b4Smrg         break;
5987117f1b4Smrg      case GL_MAX_MODELVIEW_STACK_DEPTH:
5997117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH);
6007117f1b4Smrg         break;
6017117f1b4Smrg      case GL_MAX_NAME_STACK_DEPTH:
6027117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH);
6037117f1b4Smrg         break;
6047117f1b4Smrg      case GL_MAX_PIXEL_MAP_TABLE:
6057117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE);
6067117f1b4Smrg         break;
6077117f1b4Smrg      case GL_MAX_PROJECTION_STACK_DEPTH:
6087117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH);
6097117f1b4Smrg         break;
6107117f1b4Smrg      case GL_MAX_TEXTURE_SIZE:
6117117f1b4Smrg         params[0] = INT_TO_BOOLEAN(1 << (ctx->Const.MaxTextureLevels - 1));
6127117f1b4Smrg         break;
6137117f1b4Smrg      case GL_MAX_3D_TEXTURE_SIZE:
6147117f1b4Smrg         params[0] = INT_TO_BOOLEAN(1 << (ctx->Const.Max3DTextureLevels - 1));
6157117f1b4Smrg         break;
6167117f1b4Smrg      case GL_MAX_TEXTURE_STACK_DEPTH:
6177117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH);
6187117f1b4Smrg         break;
6197117f1b4Smrg      case GL_MAX_VIEWPORT_DIMS:
6207117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxViewportWidth);
6217117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Const.MaxViewportHeight);
6227117f1b4Smrg         break;
6237117f1b4Smrg      case GL_MODELVIEW_MATRIX:
6247117f1b4Smrg         {
6257117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
6267117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
6277117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
6287117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
6297117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
6307117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
6317117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
6327117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
6337117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
6347117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
6357117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
6367117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
6377117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
6387117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
6397117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
6407117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
6417117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
6427117f1b4Smrg         }
6437117f1b4Smrg         break;
6447117f1b4Smrg      case GL_MODELVIEW_STACK_DEPTH:
6457117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ModelviewMatrixStack.Depth + 1);
6467117f1b4Smrg         break;
6477117f1b4Smrg      case GL_NAME_STACK_DEPTH:
6487117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Select.NameStackDepth);
6497117f1b4Smrg         break;
6507117f1b4Smrg      case GL_NORMALIZE:
6517117f1b4Smrg         params[0] = ctx->Transform.Normalize;
6527117f1b4Smrg         break;
6537117f1b4Smrg      case GL_PACK_ALIGNMENT:
6547117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.Alignment);
6557117f1b4Smrg         break;
6567117f1b4Smrg      case GL_PACK_LSB_FIRST:
6577117f1b4Smrg         params[0] = ctx->Pack.LsbFirst;
6587117f1b4Smrg         break;
6597117f1b4Smrg      case GL_PACK_ROW_LENGTH:
6607117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.RowLength);
6617117f1b4Smrg         break;
6627117f1b4Smrg      case GL_PACK_SKIP_PIXELS:
6637117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipPixels);
6647117f1b4Smrg         break;
6657117f1b4Smrg      case GL_PACK_SKIP_ROWS:
6667117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipRows);
6677117f1b4Smrg         break;
6687117f1b4Smrg      case GL_PACK_SWAP_BYTES:
6697117f1b4Smrg         params[0] = ctx->Pack.SwapBytes;
6707117f1b4Smrg         break;
6717117f1b4Smrg      case GL_PACK_SKIP_IMAGES_EXT:
6727117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipImages);
6737117f1b4Smrg         break;
6747117f1b4Smrg      case GL_PACK_IMAGE_HEIGHT_EXT:
6757117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.ImageHeight);
6767117f1b4Smrg         break;
6777117f1b4Smrg      case GL_PACK_INVERT_MESA:
6787117f1b4Smrg         params[0] = ctx->Pack.Invert;
6797117f1b4Smrg         break;
6807117f1b4Smrg      case GL_PERSPECTIVE_CORRECTION_HINT:
6817117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PerspectiveCorrection);
6827117f1b4Smrg         break;
6837117f1b4Smrg      case GL_PIXEL_MAP_A_TO_A_SIZE:
6847117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.AtoA.Size);
6857117f1b4Smrg         break;
6867117f1b4Smrg      case GL_PIXEL_MAP_B_TO_B_SIZE:
6877117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.BtoB.Size);
6887117f1b4Smrg         break;
6897117f1b4Smrg      case GL_PIXEL_MAP_G_TO_G_SIZE:
6907117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.GtoG.Size);
6917117f1b4Smrg         break;
6927117f1b4Smrg      case GL_PIXEL_MAP_I_TO_A_SIZE:
6937117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoA.Size);
6947117f1b4Smrg         break;
6957117f1b4Smrg      case GL_PIXEL_MAP_I_TO_B_SIZE:
6967117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoB.Size);
6977117f1b4Smrg         break;
6987117f1b4Smrg      case GL_PIXEL_MAP_I_TO_G_SIZE:
6997117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoG.Size);
7007117f1b4Smrg         break;
7017117f1b4Smrg      case GL_PIXEL_MAP_I_TO_I_SIZE:
7027117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoI.Size);
7037117f1b4Smrg         break;
7047117f1b4Smrg      case GL_PIXEL_MAP_I_TO_R_SIZE:
7057117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoR.Size);
7067117f1b4Smrg         break;
7077117f1b4Smrg      case GL_PIXEL_MAP_R_TO_R_SIZE:
7087117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.RtoR.Size);
7097117f1b4Smrg         break;
7107117f1b4Smrg      case GL_PIXEL_MAP_S_TO_S_SIZE:
7117117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.StoS.Size);
7127117f1b4Smrg         break;
7137117f1b4Smrg      case GL_POINT_SIZE:
7147117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Size);
7157117f1b4Smrg         break;
7167117f1b4Smrg      case GL_POINT_SIZE_GRANULARITY:
7177117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.PointSizeGranularity);
7187117f1b4Smrg         break;
7197117f1b4Smrg      case GL_POINT_SIZE_RANGE:
7207117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinPointSizeAA);
7217117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxPointSizeAA);
7227117f1b4Smrg         break;
7237117f1b4Smrg      case GL_ALIASED_POINT_SIZE_RANGE:
7247117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinPointSize);
7257117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxPointSize);
7267117f1b4Smrg         break;
7277117f1b4Smrg      case GL_POINT_SMOOTH:
7287117f1b4Smrg         params[0] = ctx->Point.SmoothFlag;
7297117f1b4Smrg         break;
7307117f1b4Smrg      case GL_POINT_SMOOTH_HINT:
7317117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PointSmooth);
7327117f1b4Smrg         break;
7337117f1b4Smrg      case GL_POINT_SIZE_MIN_EXT:
7347117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.MinSize);
7357117f1b4Smrg         break;
7367117f1b4Smrg      case GL_POINT_SIZE_MAX_EXT:
7377117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.MaxSize);
7387117f1b4Smrg         break;
7397117f1b4Smrg      case GL_POINT_FADE_THRESHOLD_SIZE_EXT:
7407117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Threshold);
7417117f1b4Smrg         break;
7427117f1b4Smrg      case GL_DISTANCE_ATTENUATION_EXT:
7437117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Params[0]);
7447117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Point.Params[1]);
7457117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Point.Params[2]);
7467117f1b4Smrg         break;
7477117f1b4Smrg      case GL_POLYGON_MODE:
7487117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.FrontMode);
7497117f1b4Smrg         params[1] = ENUM_TO_BOOLEAN(ctx->Polygon.BackMode);
7507117f1b4Smrg         break;
7517117f1b4Smrg      case GL_POLYGON_OFFSET_BIAS_EXT:
7527117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetUnits);
7537117f1b4Smrg         break;
7547117f1b4Smrg      case GL_POLYGON_OFFSET_FACTOR:
7557117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetFactor );
7567117f1b4Smrg         break;
7577117f1b4Smrg      case GL_POLYGON_OFFSET_UNITS:
7587117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetUnits );
7597117f1b4Smrg         break;
760c1f859d4Smrg      case GL_POLYGON_OFFSET_POINT:
761c1f859d4Smrg         params[0] = ctx->Polygon.OffsetPoint;
762c1f859d4Smrg         break;
763c1f859d4Smrg      case GL_POLYGON_OFFSET_LINE:
764c1f859d4Smrg         params[0] = ctx->Polygon.OffsetLine;
765c1f859d4Smrg         break;
766c1f859d4Smrg      case GL_POLYGON_OFFSET_FILL:
767c1f859d4Smrg         params[0] = ctx->Polygon.OffsetFill;
768c1f859d4Smrg         break;
7697117f1b4Smrg      case GL_POLYGON_SMOOTH:
7707117f1b4Smrg         params[0] = ctx->Polygon.SmoothFlag;
7717117f1b4Smrg         break;
7727117f1b4Smrg      case GL_POLYGON_SMOOTH_HINT:
7737117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PolygonSmooth);
7747117f1b4Smrg         break;
7757117f1b4Smrg      case GL_POLYGON_STIPPLE:
7767117f1b4Smrg         params[0] = ctx->Polygon.StippleFlag;
7777117f1b4Smrg         break;
7787117f1b4Smrg      case GL_PROJECTION_MATRIX:
7797117f1b4Smrg         {
7807117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
7817117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
7827117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
7837117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
7847117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
7857117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
7867117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
7877117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
7887117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
7897117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
7907117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
7917117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
7927117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
7937117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
7947117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
7957117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
7967117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
7977117f1b4Smrg         }
7987117f1b4Smrg         break;
7997117f1b4Smrg      case GL_PROJECTION_STACK_DEPTH:
8007117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ProjectionMatrixStack.Depth + 1);
8017117f1b4Smrg         break;
8027117f1b4Smrg      case GL_READ_BUFFER:
8037117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->ReadBuffer->ColorReadBuffer);
8047117f1b4Smrg         break;
8057117f1b4Smrg      case GL_RED_BIAS:
8067117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.RedBias);
8077117f1b4Smrg         break;
8087117f1b4Smrg      case GL_RED_BITS:
8097117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.redBits);
8107117f1b4Smrg         break;
8117117f1b4Smrg      case GL_RED_SCALE:
8127117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.RedScale);
8137117f1b4Smrg         break;
8147117f1b4Smrg      case GL_RENDER_MODE:
8157117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->RenderMode);
8167117f1b4Smrg         break;
8177117f1b4Smrg      case GL_RESCALE_NORMAL:
8187117f1b4Smrg         params[0] = ctx->Transform.RescaleNormals;
8197117f1b4Smrg         break;
8207117f1b4Smrg      case GL_RGBA_MODE:
8217117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.rgbMode;
8227117f1b4Smrg         break;
8237117f1b4Smrg      case GL_SCISSOR_BOX:
8247117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Scissor.X);
8257117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Scissor.Y);
8267117f1b4Smrg         params[2] = INT_TO_BOOLEAN(ctx->Scissor.Width);
8277117f1b4Smrg         params[3] = INT_TO_BOOLEAN(ctx->Scissor.Height);
8287117f1b4Smrg         break;
8297117f1b4Smrg      case GL_SCISSOR_TEST:
8307117f1b4Smrg         params[0] = ctx->Scissor.Enabled;
8317117f1b4Smrg         break;
8327117f1b4Smrg      case GL_SELECTION_BUFFER_SIZE:
8337117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Select.BufferSize);
8347117f1b4Smrg         break;
8357117f1b4Smrg      case GL_SHADE_MODEL:
8367117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Light.ShadeModel);
8377117f1b4Smrg         break;
8387117f1b4Smrg      case GL_SHARED_TEXTURE_PALETTE_EXT:
8397117f1b4Smrg         params[0] = ctx->Texture.SharedPalette;
8407117f1b4Smrg         break;
8417117f1b4Smrg      case GL_STENCIL_BITS:
8427117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.stencilBits);
8437117f1b4Smrg         break;
8447117f1b4Smrg      case GL_STENCIL_CLEAR_VALUE:
8457117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.Clear);
8467117f1b4Smrg         break;
8477117f1b4Smrg      case GL_STENCIL_FAIL:
8487117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]);
8497117f1b4Smrg         break;
8507117f1b4Smrg      case GL_STENCIL_FUNC:
8517117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.Function[ctx->Stencil.ActiveFace]);
8527117f1b4Smrg         break;
8537117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_FAIL:
8547117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]);
8557117f1b4Smrg         break;
8567117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_PASS:
8577117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]);
8587117f1b4Smrg         break;
8597117f1b4Smrg      case GL_STENCIL_REF:
8607117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.Ref[ctx->Stencil.ActiveFace]);
8617117f1b4Smrg         break;
8627117f1b4Smrg      case GL_STENCIL_TEST:
8637117f1b4Smrg         params[0] = ctx->Stencil.Enabled;
8647117f1b4Smrg         break;
8657117f1b4Smrg      case GL_STENCIL_VALUE_MASK:
8667117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]);
8677117f1b4Smrg         break;
8687117f1b4Smrg      case GL_STENCIL_WRITEMASK:
8697117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]);
8707117f1b4Smrg         break;
8717117f1b4Smrg      case GL_STEREO:
8727117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.stereoMode;
8737117f1b4Smrg         break;
8747117f1b4Smrg      case GL_SUBPIXEL_BITS:
8757117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.SubPixelBits);
8767117f1b4Smrg         break;
8777117f1b4Smrg      case GL_TEXTURE_1D:
8787117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_1D);
8797117f1b4Smrg         break;
8807117f1b4Smrg      case GL_TEXTURE_2D:
8817117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_2D);
8827117f1b4Smrg         break;
8837117f1b4Smrg      case GL_TEXTURE_3D:
8847117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_3D);
8857117f1b4Smrg         break;
886c1f859d4Smrg      case GL_TEXTURE_1D_ARRAY_EXT:
887c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetBooleanv");
888c1f859d4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT);
889c1f859d4Smrg         break;
890c1f859d4Smrg      case GL_TEXTURE_2D_ARRAY_EXT:
891c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetBooleanv");
892c1f859d4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT);
893c1f859d4Smrg         break;
8947117f1b4Smrg      case GL_TEXTURE_BINDING_1D:
895c1f859d4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_INDEX]->Name);
8967117f1b4Smrg         break;
8977117f1b4Smrg      case GL_TEXTURE_BINDING_2D:
898c1f859d4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_INDEX]->Name);
8997117f1b4Smrg         break;
9007117f1b4Smrg      case GL_TEXTURE_BINDING_3D:
901c1f859d4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_3D_INDEX]->Name);
9027117f1b4Smrg         break;
903c1f859d4Smrg      case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
904c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetBooleanv");
905c1f859d4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_ARRAY_INDEX]->Name);
9067117f1b4Smrg         break;
907c1f859d4Smrg      case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
908c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetBooleanv");
909c1f859d4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_ARRAY_INDEX]->Name);
9107117f1b4Smrg         break;
9117117f1b4Smrg      case GL_TEXTURE_GEN_S:
9127117f1b4Smrg         params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0);
9137117f1b4Smrg         break;
9147117f1b4Smrg      case GL_TEXTURE_GEN_T:
9157117f1b4Smrg         params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0);
9167117f1b4Smrg         break;
9177117f1b4Smrg      case GL_TEXTURE_GEN_R:
9187117f1b4Smrg         params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0);
9197117f1b4Smrg         break;
9207117f1b4Smrg      case GL_TEXTURE_GEN_Q:
9217117f1b4Smrg         params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0);
9227117f1b4Smrg         break;
9237117f1b4Smrg      case GL_TEXTURE_MATRIX:
9247117f1b4Smrg         {
9257117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
9267117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
9277117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
9287117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
9297117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
9307117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
9317117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
9327117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
9337117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
9347117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
9357117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
9367117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
9377117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
9387117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
9397117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
9407117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
9417117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
9427117f1b4Smrg         }
9437117f1b4Smrg         break;
9447117f1b4Smrg      case GL_TEXTURE_STACK_DEPTH:
9457117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1);
9467117f1b4Smrg         break;
9477117f1b4Smrg      case GL_UNPACK_ALIGNMENT:
9487117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.Alignment);
9497117f1b4Smrg         break;
9507117f1b4Smrg      case GL_UNPACK_LSB_FIRST:
9517117f1b4Smrg         params[0] = ctx->Unpack.LsbFirst;
9527117f1b4Smrg         break;
9537117f1b4Smrg      case GL_UNPACK_ROW_LENGTH:
9547117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.RowLength);
9557117f1b4Smrg         break;
9567117f1b4Smrg      case GL_UNPACK_SKIP_PIXELS:
9577117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipPixels);
9587117f1b4Smrg         break;
9597117f1b4Smrg      case GL_UNPACK_SKIP_ROWS:
9607117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipRows);
9617117f1b4Smrg         break;
9627117f1b4Smrg      case GL_UNPACK_SWAP_BYTES:
9637117f1b4Smrg         params[0] = ctx->Unpack.SwapBytes;
9647117f1b4Smrg         break;
9657117f1b4Smrg      case GL_UNPACK_SKIP_IMAGES_EXT:
9667117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipImages);
9677117f1b4Smrg         break;
9687117f1b4Smrg      case GL_UNPACK_IMAGE_HEIGHT_EXT:
9697117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.ImageHeight);
9707117f1b4Smrg         break;
9717117f1b4Smrg      case GL_UNPACK_CLIENT_STORAGE_APPLE:
9727117f1b4Smrg         params[0] = ctx->Unpack.ClientStorage;
9737117f1b4Smrg         break;
9747117f1b4Smrg      case GL_VIEWPORT:
9757117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Viewport.X);
9767117f1b4Smrg         params[1] = INT_TO_BOOLEAN(ctx->Viewport.Y);
9777117f1b4Smrg         params[2] = INT_TO_BOOLEAN(ctx->Viewport.Width);
9787117f1b4Smrg         params[3] = INT_TO_BOOLEAN(ctx->Viewport.Height);
9797117f1b4Smrg         break;
9807117f1b4Smrg      case GL_ZOOM_X:
9817117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.ZoomX);
9827117f1b4Smrg         break;
9837117f1b4Smrg      case GL_ZOOM_Y:
9847117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.ZoomY);
9857117f1b4Smrg         break;
9867117f1b4Smrg      case GL_VERTEX_ARRAY:
9877117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Vertex.Enabled;
9887117f1b4Smrg         break;
9897117f1b4Smrg      case GL_VERTEX_ARRAY_SIZE:
9907117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Size);
9917117f1b4Smrg         break;
9927117f1b4Smrg      case GL_VERTEX_ARRAY_TYPE:
9937117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Type);
9947117f1b4Smrg         break;
9957117f1b4Smrg      case GL_VERTEX_ARRAY_STRIDE:
9967117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Stride);
9977117f1b4Smrg         break;
9987117f1b4Smrg      case GL_VERTEX_ARRAY_COUNT_EXT:
9997117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10007117f1b4Smrg         break;
10017117f1b4Smrg      case GL_NORMAL_ARRAY:
10027117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Enabled);
10037117f1b4Smrg         break;
10047117f1b4Smrg      case GL_NORMAL_ARRAY_TYPE:
10057117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Type);
10067117f1b4Smrg         break;
10077117f1b4Smrg      case GL_NORMAL_ARRAY_STRIDE:
10087117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Stride);
10097117f1b4Smrg         break;
10107117f1b4Smrg      case GL_NORMAL_ARRAY_COUNT_EXT:
10117117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10127117f1b4Smrg         break;
10137117f1b4Smrg      case GL_COLOR_ARRAY:
10147117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Color.Enabled;
10157117f1b4Smrg         break;
10167117f1b4Smrg      case GL_COLOR_ARRAY_SIZE:
10177117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Size);
10187117f1b4Smrg         break;
10197117f1b4Smrg      case GL_COLOR_ARRAY_TYPE:
10207117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Type);
10217117f1b4Smrg         break;
10227117f1b4Smrg      case GL_COLOR_ARRAY_STRIDE:
10237117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Stride);
10247117f1b4Smrg         break;
10257117f1b4Smrg      case GL_COLOR_ARRAY_COUNT_EXT:
10267117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10277117f1b4Smrg         break;
10287117f1b4Smrg      case GL_INDEX_ARRAY:
10297117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Index.Enabled;
10307117f1b4Smrg         break;
10317117f1b4Smrg      case GL_INDEX_ARRAY_TYPE:
10327117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Index.Type);
10337117f1b4Smrg         break;
10347117f1b4Smrg      case GL_INDEX_ARRAY_STRIDE:
10357117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Index.Stride);
10367117f1b4Smrg         break;
10377117f1b4Smrg      case GL_INDEX_ARRAY_COUNT_EXT:
10387117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10397117f1b4Smrg         break;
10407117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY:
10417117f1b4Smrg         params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled;
10427117f1b4Smrg         break;
10437117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_SIZE:
10447117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size);
10457117f1b4Smrg         break;
10467117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_TYPE:
10477117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
10487117f1b4Smrg         break;
10497117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_STRIDE:
10507117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride);
10517117f1b4Smrg         break;
10527117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
10537117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10547117f1b4Smrg         break;
10557117f1b4Smrg      case GL_EDGE_FLAG_ARRAY:
10567117f1b4Smrg         params[0] = ctx->Array.ArrayObj->EdgeFlag.Enabled;
10577117f1b4Smrg         break;
10587117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_STRIDE:
10597117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->EdgeFlag.Stride);
10607117f1b4Smrg         break;
10617117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
10627117f1b4Smrg         params[0] = INT_TO_BOOLEAN(0);
10637117f1b4Smrg         break;
10647117f1b4Smrg      case GL_MAX_TEXTURE_UNITS_ARB:
10657117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetBooleanv");
10667117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureUnits);
10677117f1b4Smrg         break;
10687117f1b4Smrg      case GL_ACTIVE_TEXTURE_ARB:
10697117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetBooleanv");
10707117f1b4Smrg         params[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit);
10717117f1b4Smrg         break;
10727117f1b4Smrg      case GL_CLIENT_ACTIVE_TEXTURE_ARB:
10737117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetBooleanv");
10747117f1b4Smrg         params[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
10757117f1b4Smrg         break;
10767117f1b4Smrg      case GL_TEXTURE_CUBE_MAP_ARB:
10777117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv");
10787117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB);
10797117f1b4Smrg         break;
10807117f1b4Smrg      case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
10817117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv");
1082c1f859d4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_CUBE_INDEX]->Name);
10837117f1b4Smrg         break;
10847117f1b4Smrg      case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
10857117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv");
10867117f1b4Smrg         params[0] = INT_TO_BOOLEAN((1 << (ctx->Const.MaxCubeTextureLevels - 1)));
10877117f1b4Smrg         break;
10887117f1b4Smrg      case GL_TEXTURE_COMPRESSION_HINT_ARB:
10897117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Hint.TextureCompression);
10907117f1b4Smrg         break;
10917117f1b4Smrg      case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
10927117f1b4Smrg         params[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE));
10937117f1b4Smrg         break;
10947117f1b4Smrg      case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
10957117f1b4Smrg         {
10967117f1b4Smrg         GLint formats[100];
10977117f1b4Smrg         GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
10987117f1b4Smrg         ASSERT(n <= 100);
10997117f1b4Smrg         for (i = 0; i < n; i++)
1100c1f859d4Smrg            params[i] = ENUM_TO_BOOLEAN(formats[i]);
11017117f1b4Smrg         }
11027117f1b4Smrg         break;
11037117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
11047117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetBooleanv");
11057117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.LockFirst);
11067117f1b4Smrg         break;
11077117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
11087117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetBooleanv");
11097117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.LockCount);
11107117f1b4Smrg         break;
11117117f1b4Smrg      case GL_TRANSPOSE_COLOR_MATRIX_ARB:
11127117f1b4Smrg         {
11137117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
11147117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11157117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
11167117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
11177117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
11187117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
11197117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11207117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
11217117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
11227117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
11237117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
11247117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11257117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
11267117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
11277117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
11287117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
11297117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
11307117f1b4Smrg         }
11317117f1b4Smrg         break;
11327117f1b4Smrg      case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
11337117f1b4Smrg         {
11347117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
11357117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11367117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
11377117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
11387117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
11397117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
11407117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11417117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
11427117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
11437117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
11447117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
11457117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11467117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
11477117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
11487117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
11497117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
11507117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
11517117f1b4Smrg         }
11527117f1b4Smrg         break;
11537117f1b4Smrg      case GL_TRANSPOSE_PROJECTION_MATRIX_ARB:
11547117f1b4Smrg         {
11557117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
11567117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11577117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
11587117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
11597117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
11607117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
11617117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11627117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
11637117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
11647117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
11657117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
11667117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11677117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
11687117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
11697117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
11707117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
11717117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
11727117f1b4Smrg         }
11737117f1b4Smrg         break;
11747117f1b4Smrg      case GL_TRANSPOSE_TEXTURE_MATRIX_ARB:
11757117f1b4Smrg         {
11767117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
11777117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11787117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
11797117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
11807117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
11817117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
11827117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
11837117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
11847117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
11857117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
11867117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
11877117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
11887117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
11897117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
11907117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
11917117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
11927117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
11937117f1b4Smrg         }
11947117f1b4Smrg         break;
11957117f1b4Smrg      case GL_COLOR_MATRIX_SGI:
11967117f1b4Smrg         {
11977117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
11987117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
11997117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
12007117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
12017117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
12027117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
12037117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
12047117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
12057117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
12067117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
12077117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
12087117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
12097117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
12107117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
12117117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
12127117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
12137117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
12147117f1b4Smrg         }
12157117f1b4Smrg         break;
12167117f1b4Smrg      case GL_COLOR_MATRIX_STACK_DEPTH_SGI:
12177117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ColorMatrixStack.Depth + 1);
12187117f1b4Smrg         break;
12197117f1b4Smrg      case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI:
12207117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH);
12217117f1b4Smrg         break;
12227117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_SCALE_SGI:
12237117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[0]);
12247117f1b4Smrg         break;
12257117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI:
12267117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[1]);
12277117f1b4Smrg         break;
12287117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI:
12297117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[2]);
12307117f1b4Smrg         break;
12317117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI:
12327117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[3]);
12337117f1b4Smrg         break;
12347117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_BIAS_SGI:
12357117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[0]);
12367117f1b4Smrg         break;
12377117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI:
12387117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[1]);
12397117f1b4Smrg         break;
12407117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI:
12417117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[2]);
12427117f1b4Smrg         break;
12437117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI:
12447117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[3]);
12457117f1b4Smrg         break;
12467117f1b4Smrg      case GL_CONVOLUTION_1D_EXT:
12477117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12487117f1b4Smrg         params[0] = ctx->Pixel.Convolution1DEnabled;
12497117f1b4Smrg         break;
12507117f1b4Smrg      case GL_CONVOLUTION_2D_EXT:
12517117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12527117f1b4Smrg         params[0] = ctx->Pixel.Convolution2DEnabled;
12537117f1b4Smrg         break;
12547117f1b4Smrg      case GL_SEPARABLE_2D_EXT:
12557117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12567117f1b4Smrg         params[0] = ctx->Pixel.Separable2DEnabled;
12577117f1b4Smrg         break;
12587117f1b4Smrg      case GL_POST_CONVOLUTION_RED_SCALE_EXT:
12597117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12607117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[0]);
12617117f1b4Smrg         break;
12627117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:
12637117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12647117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[1]);
12657117f1b4Smrg         break;
12667117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:
12677117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12687117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[2]);
12697117f1b4Smrg         break;
12707117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:
12717117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12727117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[3]);
12737117f1b4Smrg         break;
12747117f1b4Smrg      case GL_POST_CONVOLUTION_RED_BIAS_EXT:
12757117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12767117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[0]);
12777117f1b4Smrg         break;
12787117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:
12797117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12807117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[1]);
12817117f1b4Smrg         break;
12827117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:
12837117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12847117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[2]);
12857117f1b4Smrg         break;
12867117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:
12877117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetBooleanv");
12887117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[3]);
12897117f1b4Smrg         break;
12907117f1b4Smrg      case GL_HISTOGRAM:
12917117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetBooleanv");
12927117f1b4Smrg         params[0] = ctx->Pixel.HistogramEnabled;
12937117f1b4Smrg         break;
12947117f1b4Smrg      case GL_MINMAX:
12957117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetBooleanv");
12967117f1b4Smrg         params[0] = ctx->Pixel.MinMaxEnabled;
12977117f1b4Smrg         break;
12987117f1b4Smrg      case GL_COLOR_TABLE_SGI:
12997117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetBooleanv");
13007117f1b4Smrg         params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION];
13017117f1b4Smrg         break;
13027117f1b4Smrg      case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
13037117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetBooleanv");
13047117f1b4Smrg         params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION];
13057117f1b4Smrg         break;
13067117f1b4Smrg      case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
13077117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetBooleanv");
13087117f1b4Smrg         params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX];
13097117f1b4Smrg         break;
13107117f1b4Smrg      case GL_TEXTURE_COLOR_TABLE_SGI:
13117117f1b4Smrg         CHECK_EXT1(SGI_texture_color_table, "GetBooleanv");
13127117f1b4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled;
13137117f1b4Smrg         break;
13147117f1b4Smrg      case GL_COLOR_SUM_EXT:
13157117f1b4Smrg         CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetBooleanv");
13167117f1b4Smrg         params[0] = ctx->Fog.ColorSumEnabled;
13177117f1b4Smrg         break;
13187117f1b4Smrg      case GL_CURRENT_SECONDARY_COLOR_EXT:
13197117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13207117f1b4Smrg         {
13217117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
13227117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]);
13237117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]);
13247117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]);
13257117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]);
13267117f1b4Smrg         }
13277117f1b4Smrg         break;
13287117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_EXT:
13297117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13307117f1b4Smrg         params[0] = ctx->Array.ArrayObj->SecondaryColor.Enabled;
13317117f1b4Smrg         break;
13327117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
13337117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13347117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Type);
13357117f1b4Smrg         break;
13367117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
13377117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13387117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Stride);
13397117f1b4Smrg         break;
13407117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
13417117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
13427117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Size);
13437117f1b4Smrg         break;
13447117f1b4Smrg      case GL_CURRENT_FOG_COORDINATE_EXT:
13457117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13467117f1b4Smrg         {
13477117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
13487117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_FOG][0]);
13497117f1b4Smrg         }
13507117f1b4Smrg         break;
13517117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_EXT:
13527117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13537117f1b4Smrg         params[0] = ctx->Array.ArrayObj->FogCoord.Enabled;
13547117f1b4Smrg         break;
13557117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
13567117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13577117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.Type);
13587117f1b4Smrg         break;
13597117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
13607117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13617117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.Stride);
13627117f1b4Smrg         break;
13637117f1b4Smrg      case GL_FOG_COORDINATE_SOURCE_EXT:
13647117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
13657117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Fog.FogCoordinateSource);
13667117f1b4Smrg         break;
13677117f1b4Smrg      case GL_MAX_TEXTURE_LOD_BIAS_EXT:
13687117f1b4Smrg         CHECK_EXT1(EXT_texture_lod_bias, "GetBooleanv");
13697117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxTextureLodBias);
13707117f1b4Smrg         break;
13717117f1b4Smrg      case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
13727117f1b4Smrg         CHECK_EXT1(EXT_texture_filter_anisotropic, "GetBooleanv");
13737117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxTextureMaxAnisotropy);
13747117f1b4Smrg         break;
13757117f1b4Smrg      case GL_MULTISAMPLE_ARB:
13767117f1b4Smrg         params[0] = ctx->Multisample.Enabled;
13777117f1b4Smrg         break;
13787117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
13797117f1b4Smrg         params[0] = ctx->Multisample.SampleAlphaToCoverage;
13807117f1b4Smrg         break;
13817117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_ONE_ARB:
13827117f1b4Smrg         params[0] = ctx->Multisample.SampleAlphaToOne;
13837117f1b4Smrg         break;
13847117f1b4Smrg      case GL_SAMPLE_COVERAGE_ARB:
13857117f1b4Smrg         params[0] = ctx->Multisample.SampleCoverage;
13867117f1b4Smrg         break;
13877117f1b4Smrg      case GL_SAMPLE_COVERAGE_VALUE_ARB:
13887117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Multisample.SampleCoverageValue);
13897117f1b4Smrg         break;
13907117f1b4Smrg      case GL_SAMPLE_COVERAGE_INVERT_ARB:
13917117f1b4Smrg         params[0] = ctx->Multisample.SampleCoverageInvert;
13927117f1b4Smrg         break;
13937117f1b4Smrg      case GL_SAMPLE_BUFFERS_ARB:
13947117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.sampleBuffers);
13957117f1b4Smrg         break;
13967117f1b4Smrg      case GL_SAMPLES_ARB:
13977117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.samples);
13987117f1b4Smrg         break;
13997117f1b4Smrg      case GL_RASTER_POSITION_UNCLIPPED_IBM:
14007117f1b4Smrg         CHECK_EXT1(IBM_rasterpos_clip, "GetBooleanv");
14017117f1b4Smrg         params[0] = ctx->Transform.RasterPositionUnclipped;
14027117f1b4Smrg         break;
14037117f1b4Smrg      case GL_POINT_SPRITE_NV:
14047117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetBooleanv");
14057117f1b4Smrg         params[0] = ctx->Point.PointSprite;
14067117f1b4Smrg         break;
14077117f1b4Smrg      case GL_POINT_SPRITE_R_MODE_NV:
14087117f1b4Smrg         CHECK_EXT1(NV_point_sprite, "GetBooleanv");
14097117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Point.SpriteRMode);
14107117f1b4Smrg         break;
14117117f1b4Smrg      case GL_POINT_SPRITE_COORD_ORIGIN:
14127117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetBooleanv");
14137117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Point.SpriteOrigin);
14147117f1b4Smrg         break;
14157117f1b4Smrg      case GL_GENERATE_MIPMAP_HINT_SGIS:
14167117f1b4Smrg         CHECK_EXT1(SGIS_generate_mipmap, "GetBooleanv");
14177117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.GenerateMipmap);
14187117f1b4Smrg         break;
14197117f1b4Smrg      case GL_VERTEX_PROGRAM_BINDING_NV:
14207117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14217117f1b4Smrg         params[0] = INT_TO_BOOLEAN((ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0));
14227117f1b4Smrg         break;
14237117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY0_NV:
14247117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14257117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[0].Enabled;
14267117f1b4Smrg         break;
14277117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY1_NV:
14287117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14297117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[1].Enabled;
14307117f1b4Smrg         break;
14317117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY2_NV:
14327117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14337117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[2].Enabled;
14347117f1b4Smrg         break;
14357117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY3_NV:
14367117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14377117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[3].Enabled;
14387117f1b4Smrg         break;
14397117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY4_NV:
14407117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14417117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[4].Enabled;
14427117f1b4Smrg         break;
14437117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY5_NV:
14447117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14457117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[5].Enabled;
14467117f1b4Smrg         break;
14477117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY6_NV:
14487117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14497117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[6].Enabled;
14507117f1b4Smrg         break;
14517117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY7_NV:
14527117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14537117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[7].Enabled;
14547117f1b4Smrg         break;
14557117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY8_NV:
14567117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14577117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[8].Enabled;
14587117f1b4Smrg         break;
14597117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY9_NV:
14607117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14617117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[9].Enabled;
14627117f1b4Smrg         break;
14637117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY10_NV:
14647117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14657117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[10].Enabled;
14667117f1b4Smrg         break;
14677117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY11_NV:
14687117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14697117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[11].Enabled;
14707117f1b4Smrg         break;
14717117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY12_NV:
14727117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14737117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[12].Enabled;
14747117f1b4Smrg         break;
14757117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY13_NV:
14767117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14777117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[13].Enabled;
14787117f1b4Smrg         break;
14797117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY14_NV:
14807117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14817117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[14].Enabled;
14827117f1b4Smrg         break;
14837117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY15_NV:
14847117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14857117f1b4Smrg         params[0] = ctx->Array.ArrayObj->VertexAttrib[15].Enabled;
14867117f1b4Smrg         break;
14877117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB0_4_NV:
14887117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14897117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[0];
14907117f1b4Smrg         break;
14917117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB1_4_NV:
14927117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14937117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[1];
14947117f1b4Smrg         break;
14957117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB2_4_NV:
14967117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
14977117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[2];
14987117f1b4Smrg         break;
14997117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB3_4_NV:
15007117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15017117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[3];
15027117f1b4Smrg         break;
15037117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB4_4_NV:
15047117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15057117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[4];
15067117f1b4Smrg         break;
15077117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB5_4_NV:
15087117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15097117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[5];
15107117f1b4Smrg         break;
15117117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB6_4_NV:
15127117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15137117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[6];
15147117f1b4Smrg         break;
15157117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB7_4_NV:
15167117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15177117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[7];
15187117f1b4Smrg         break;
15197117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB8_4_NV:
15207117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15217117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[8];
15227117f1b4Smrg         break;
15237117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB9_4_NV:
15247117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15257117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[9];
15267117f1b4Smrg         break;
15277117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB10_4_NV:
15287117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15297117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[10];
15307117f1b4Smrg         break;
15317117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB11_4_NV:
15327117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15337117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[11];
15347117f1b4Smrg         break;
15357117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB12_4_NV:
15367117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15377117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[12];
15387117f1b4Smrg         break;
15397117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB13_4_NV:
15407117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15417117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[13];
15427117f1b4Smrg         break;
15437117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB14_4_NV:
15447117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15457117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[14];
15467117f1b4Smrg         break;
15477117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB15_4_NV:
15487117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetBooleanv");
15497117f1b4Smrg         params[0] = ctx->Eval.Map1Attrib[15];
15507117f1b4Smrg         break;
15517117f1b4Smrg      case GL_FRAGMENT_PROGRAM_NV:
15527117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetBooleanv");
15537117f1b4Smrg         params[0] = ctx->FragmentProgram.Enabled;
15547117f1b4Smrg         break;
15557117f1b4Smrg      case GL_FRAGMENT_PROGRAM_BINDING_NV:
15567117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetBooleanv");
15577117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0);
15587117f1b4Smrg         break;
15597117f1b4Smrg      case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV:
15607117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetBooleanv");
15617117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS);
15627117f1b4Smrg         break;
15637117f1b4Smrg      case GL_TEXTURE_RECTANGLE_NV:
15647117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetBooleanv");
15657117f1b4Smrg         params[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV);
15667117f1b4Smrg         break;
15677117f1b4Smrg      case GL_TEXTURE_BINDING_RECTANGLE_NV:
15687117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetBooleanv");
1569c1f859d4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_RECT_INDEX]->Name);
15707117f1b4Smrg         break;
15717117f1b4Smrg      case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
15727117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetBooleanv");
15737117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureRectSize);
15747117f1b4Smrg         break;
15757117f1b4Smrg      case GL_STENCIL_TEST_TWO_SIDE_EXT:
15767117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetBooleanv");
15777117f1b4Smrg         params[0] = ctx->Stencil.TestTwoSide;
15787117f1b4Smrg         break;
15797117f1b4Smrg      case GL_ACTIVE_STENCIL_FACE_EXT:
15807117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetBooleanv");
15817117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT);
15827117f1b4Smrg         break;
15837117f1b4Smrg      case GL_MAX_SHININESS_NV:
15847117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetBooleanv");
15857117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxShininess);
15867117f1b4Smrg         break;
15877117f1b4Smrg      case GL_MAX_SPOT_EXPONENT_NV:
15887117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetBooleanv");
15897117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxSpotExponent);
15907117f1b4Smrg         break;
15917117f1b4Smrg      case GL_ARRAY_BUFFER_BINDING_ARB:
15927117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayBufferObj->Name);
15937117f1b4Smrg         break;
15947117f1b4Smrg      case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
15957117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.BufferObj->Name);
15967117f1b4Smrg         break;
15977117f1b4Smrg      case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
15987117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.BufferObj->Name);
15997117f1b4Smrg         break;
16007117f1b4Smrg      case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
16017117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.BufferObj->Name);
16027117f1b4Smrg         break;
16037117f1b4Smrg      case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
16047117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Index.BufferObj->Name);
16057117f1b4Smrg         break;
16067117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
16077117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
16087117f1b4Smrg         break;
16097117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
16107117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name);
16117117f1b4Smrg         break;
16127117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
16137117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name);
16147117f1b4Smrg         break;
16157117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
16167117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.BufferObj->Name);
16177117f1b4Smrg         break;
16187117f1b4Smrg      case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
16197117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ElementArrayBufferObj->Name);
16207117f1b4Smrg         break;
16217117f1b4Smrg      case GL_PIXEL_PACK_BUFFER_BINDING_EXT:
16227117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetBooleanv");
16237117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Pack.BufferObj->Name);
16247117f1b4Smrg         break;
16257117f1b4Smrg      case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT:
16267117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetBooleanv");
16277117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Unpack.BufferObj->Name);
16287117f1b4Smrg         break;
16297117f1b4Smrg      case GL_VERTEX_PROGRAM_ARB:
16307117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv");
16317117f1b4Smrg         params[0] = ctx->VertexProgram.Enabled;
16327117f1b4Smrg         break;
16337117f1b4Smrg      case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
16347117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv");
16357117f1b4Smrg         params[0] = ctx->VertexProgram.PointSizeEnabled;
16367117f1b4Smrg         break;
16377117f1b4Smrg      case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
16387117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv");
16397117f1b4Smrg         params[0] = ctx->VertexProgram.TwoSideEnabled;
16407117f1b4Smrg         break;
16417117f1b4Smrg      case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
16427117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv");
16437117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxProgramMatrixStackDepth);
16447117f1b4Smrg         break;
16457117f1b4Smrg      case GL_MAX_PROGRAM_MATRICES_ARB:
16467117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv");
16477117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxProgramMatrices);
16487117f1b4Smrg         break;
16497117f1b4Smrg      case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
16507117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv");
16517117f1b4Smrg         params[0] = ctx->CurrentStack->Depth + 1;
16527117f1b4Smrg         break;
16537117f1b4Smrg      case GL_CURRENT_MATRIX_ARB:
16547117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetBooleanv");
16557117f1b4Smrg         {
16567117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
16577117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
16587117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[1]);
16597117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[2]);
16607117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[3]);
16617117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[4]);
16627117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
16637117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[6]);
16647117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[7]);
16657117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[8]);
16667117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[9]);
16677117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
16687117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[11]);
16697117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[12]);
16707117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[13]);
16717117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[14]);
16727117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
16737117f1b4Smrg         }
16747117f1b4Smrg         break;
16757117f1b4Smrg      case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
16767117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetBooleanv");
16777117f1b4Smrg         {
16787117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
16797117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(matrix[0]);
16807117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(matrix[4]);
16817117f1b4Smrg         params[2] = FLOAT_TO_BOOLEAN(matrix[8]);
16827117f1b4Smrg         params[3] = FLOAT_TO_BOOLEAN(matrix[12]);
16837117f1b4Smrg         params[4] = FLOAT_TO_BOOLEAN(matrix[1]);
16847117f1b4Smrg         params[5] = FLOAT_TO_BOOLEAN(matrix[5]);
16857117f1b4Smrg         params[6] = FLOAT_TO_BOOLEAN(matrix[9]);
16867117f1b4Smrg         params[7] = FLOAT_TO_BOOLEAN(matrix[13]);
16877117f1b4Smrg         params[8] = FLOAT_TO_BOOLEAN(matrix[2]);
16887117f1b4Smrg         params[9] = FLOAT_TO_BOOLEAN(matrix[6]);
16897117f1b4Smrg         params[10] = FLOAT_TO_BOOLEAN(matrix[10]);
16907117f1b4Smrg         params[11] = FLOAT_TO_BOOLEAN(matrix[14]);
16917117f1b4Smrg         params[12] = FLOAT_TO_BOOLEAN(matrix[3]);
16927117f1b4Smrg         params[13] = FLOAT_TO_BOOLEAN(matrix[7]);
16937117f1b4Smrg         params[14] = FLOAT_TO_BOOLEAN(matrix[11]);
16947117f1b4Smrg         params[15] = FLOAT_TO_BOOLEAN(matrix[15]);
16957117f1b4Smrg         }
16967117f1b4Smrg         break;
16977117f1b4Smrg      case GL_MAX_VERTEX_ATTRIBS_ARB:
16987117f1b4Smrg         CHECK_EXT1(ARB_vertex_program, "GetBooleanv");
16997117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.VertexProgram.MaxAttribs);
17007117f1b4Smrg         break;
17017117f1b4Smrg      case GL_PROGRAM_ERROR_POSITION_ARB:
17027117f1b4Smrg         CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetBooleanv");
17037117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Program.ErrorPos);
17047117f1b4Smrg         break;
17057117f1b4Smrg      case GL_FRAGMENT_PROGRAM_ARB:
17067117f1b4Smrg         CHECK_EXT1(ARB_fragment_program, "GetBooleanv");
17077117f1b4Smrg         params[0] = ctx->FragmentProgram.Enabled;
17087117f1b4Smrg         break;
17097117f1b4Smrg      case GL_MAX_TEXTURE_COORDS_ARB:
17107117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetBooleanv");
17117117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureCoordUnits);
17127117f1b4Smrg         break;
17137117f1b4Smrg      case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
17147117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetBooleanv");
17157117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureImageUnits);
17167117f1b4Smrg         break;
17177117f1b4Smrg      case GL_DEPTH_BOUNDS_TEST_EXT:
17187117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetBooleanv");
17197117f1b4Smrg         params[0] = ctx->Depth.BoundsTest;
17207117f1b4Smrg         break;
17217117f1b4Smrg      case GL_DEPTH_BOUNDS_EXT:
17227117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetBooleanv");
17237117f1b4Smrg         params[0] = FLOAT_TO_BOOLEAN(ctx->Depth.BoundsMin);
17247117f1b4Smrg         params[1] = FLOAT_TO_BOOLEAN(ctx->Depth.BoundsMax);
17257117f1b4Smrg         break;
17264a49301eSmrg      case GL_DEPTH_CLAMP:
17274a49301eSmrg         CHECK_EXT1(ARB_depth_clamp, "GetBooleanv");
17284a49301eSmrg         params[0] = ctx->Transform.DepthClamp;
17297117f1b4Smrg         break;
17307117f1b4Smrg      case GL_MAX_DRAW_BUFFERS_ARB:
17317117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxDrawBuffers);
17327117f1b4Smrg         break;
17337117f1b4Smrg      case GL_DRAW_BUFFER0_ARB:
17347117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->DrawBuffer->ColorDrawBuffer[0]);
17357117f1b4Smrg         break;
17367117f1b4Smrg      case GL_DRAW_BUFFER1_ARB:
17377117f1b4Smrg         {
17387117f1b4Smrg         GLenum buffer;
17397117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
17407117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
17417117f1b4Smrg            return;
17427117f1b4Smrg         }
17437117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[1];
17447117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(buffer);
17457117f1b4Smrg         }
17467117f1b4Smrg         break;
17477117f1b4Smrg      case GL_DRAW_BUFFER2_ARB:
17487117f1b4Smrg         {
17497117f1b4Smrg         GLenum buffer;
17507117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
17517117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
17527117f1b4Smrg            return;
17537117f1b4Smrg         }
17547117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[2];
17557117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(buffer);
17567117f1b4Smrg         }
17577117f1b4Smrg         break;
17587117f1b4Smrg      case GL_DRAW_BUFFER3_ARB:
17597117f1b4Smrg         {
17607117f1b4Smrg         GLenum buffer;
17617117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
17627117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
17637117f1b4Smrg            return;
17647117f1b4Smrg         }
17657117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[3];
17667117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(buffer);
17677117f1b4Smrg         }
17687117f1b4Smrg         break;
17697117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
17707117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetBooleanv");
17714a49301eSmrg         params[0] = INT_TO_BOOLEAN(_mesa_get_color_read_type(ctx));
17727117f1b4Smrg         break;
17737117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
17747117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetBooleanv");
17754a49301eSmrg         params[0] = INT_TO_BOOLEAN(_mesa_get_color_read_format(ctx));
17767117f1b4Smrg         break;
17777117f1b4Smrg      case GL_NUM_FRAGMENT_REGISTERS_ATI:
17787117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
17797117f1b4Smrg         params[0] = INT_TO_BOOLEAN(6);
17807117f1b4Smrg         break;
17817117f1b4Smrg      case GL_NUM_FRAGMENT_CONSTANTS_ATI:
17827117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
17837117f1b4Smrg         params[0] = INT_TO_BOOLEAN(8);
17847117f1b4Smrg         break;
17857117f1b4Smrg      case GL_NUM_PASSES_ATI:
17867117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
17877117f1b4Smrg         params[0] = INT_TO_BOOLEAN(2);
17887117f1b4Smrg         break;
17897117f1b4Smrg      case GL_NUM_INSTRUCTIONS_PER_PASS_ATI:
17907117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
17917117f1b4Smrg         params[0] = INT_TO_BOOLEAN(8);
17927117f1b4Smrg         break;
17937117f1b4Smrg      case GL_NUM_INSTRUCTIONS_TOTAL_ATI:
17947117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
17957117f1b4Smrg         params[0] = INT_TO_BOOLEAN(16);
17967117f1b4Smrg         break;
17977117f1b4Smrg      case GL_COLOR_ALPHA_PAIRING_ATI:
17987117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
17997117f1b4Smrg         params[0] = GL_TRUE;
18007117f1b4Smrg         break;
18017117f1b4Smrg      case GL_NUM_LOOPBACK_COMPONENTS_ATI:
18027117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18037117f1b4Smrg         params[0] = INT_TO_BOOLEAN(3);
18047117f1b4Smrg         break;
18057117f1b4Smrg      case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI:
18067117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
18077117f1b4Smrg         params[0] = INT_TO_BOOLEAN(3);
18087117f1b4Smrg         break;
18097117f1b4Smrg      case GL_STENCIL_BACK_FUNC:
18107117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.Function[1]);
18117117f1b4Smrg         break;
18127117f1b4Smrg      case GL_STENCIL_BACK_VALUE_MASK:
18137117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.ValueMask[1]);
18147117f1b4Smrg         break;
18157117f1b4Smrg      case GL_STENCIL_BACK_WRITEMASK:
18167117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.WriteMask[1]);
18177117f1b4Smrg         break;
18187117f1b4Smrg      case GL_STENCIL_BACK_REF:
18197117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Stencil.Ref[1]);
18207117f1b4Smrg         break;
18217117f1b4Smrg      case GL_STENCIL_BACK_FAIL:
18227117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.FailFunc[1]);
18237117f1b4Smrg         break;
18247117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
18257117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZFailFunc[1]);
18267117f1b4Smrg         break;
18277117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_PASS:
18287117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZPassFunc[1]);
18297117f1b4Smrg         break;
18307117f1b4Smrg      case GL_FRAMEBUFFER_BINDING_EXT:
18317117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
18327117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Name);
18337117f1b4Smrg         break;
18347117f1b4Smrg      case GL_RENDERBUFFER_BINDING_EXT:
18357117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
18367117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0);
18377117f1b4Smrg         break;
18387117f1b4Smrg      case GL_MAX_COLOR_ATTACHMENTS_EXT:
18397117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
18407117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxColorAttachments);
18417117f1b4Smrg         break;
18427117f1b4Smrg      case GL_MAX_RENDERBUFFER_SIZE_EXT:
18437117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
18447117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxRenderbufferSize);
18457117f1b4Smrg         break;
18467117f1b4Smrg      case GL_READ_FRAMEBUFFER_BINDING_EXT:
18477117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_blit, "GetBooleanv");
18487117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->ReadBuffer->Name);
18497117f1b4Smrg         break;
18504a49301eSmrg      case GL_PROVOKING_VERTEX_EXT:
18514a49301eSmrg         CHECK_EXT1(EXT_provoking_vertex, "GetBooleanv");
18524a49301eSmrg         params[0] = ctx->Light.ProvokingVertex;
18534a49301eSmrg         break;
18544a49301eSmrg      case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT:
18554a49301eSmrg         CHECK_EXT1(EXT_provoking_vertex, "GetBooleanv");
18564a49301eSmrg         params[0] = ctx->Const.QuadsFollowProvokingVertexConvention;
18574a49301eSmrg         break;
18587117f1b4Smrg      case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
18597117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
18607117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.FragmentProgram.MaxUniformComponents);
18617117f1b4Smrg         break;
18627117f1b4Smrg      case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
18637117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
18647117f1b4Smrg         params[0] = ENUM_TO_BOOLEAN(ctx->Hint.FragmentShaderDerivative);
18657117f1b4Smrg         break;
18667117f1b4Smrg      case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
18677117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
18687117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.VertexProgram.MaxUniformComponents);
18697117f1b4Smrg         break;
18707117f1b4Smrg      case GL_MAX_VARYING_FLOATS_ARB:
18717117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
18727117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVarying * 4);
18737117f1b4Smrg         break;
18747117f1b4Smrg      case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
18757117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
18767117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVertexTextureImageUnits);
18777117f1b4Smrg         break;
18787117f1b4Smrg      case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
18797117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
18807117f1b4Smrg         params[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS);
18817117f1b4Smrg         break;
18827117f1b4Smrg      case GL_CURRENT_PROGRAM:
18837117f1b4Smrg         CHECK_EXT1(ARB_shader_objects, "GetBooleanv");
18847117f1b4Smrg         params[0] = INT_TO_BOOLEAN(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0);
18857117f1b4Smrg         break;
18864a49301eSmrg      case GL_MAX_SAMPLES:
18874a49301eSmrg         CHECK_EXT1(ARB_framebuffer_object, "GetBooleanv");
18884a49301eSmrg         params[0] = INT_TO_BOOLEAN(ctx->Const.MaxSamples);
18894a49301eSmrg         break;
1890c7037ccdSmrg      case GL_VERTEX_ARRAY_BINDING_APPLE:
1891c7037ccdSmrg         CHECK_EXT1(APPLE_vertex_array_object, "GetBooleanv");
1892c7037ccdSmrg         params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Name);
1893c7037ccdSmrg         break;
18944a49301eSmrg      case GL_TEXTURE_CUBE_MAP_SEAMLESS:
18954a49301eSmrg         CHECK_EXT1(ARB_seamless_cube_map, "GetBooleanv");
18964a49301eSmrg         params[0] = ctx->Texture.CubeMapSeamless;
18974a49301eSmrg         break;
18984a49301eSmrg      case GL_MAX_SERVER_WAIT_TIMEOUT:
18994a49301eSmrg         CHECK_EXT1(ARB_sync, "GetBooleanv");
19004a49301eSmrg         params[0] = INT64_TO_BOOLEAN(ctx->Const.MaxServerWaitTimeout);
19014a49301eSmrg         break;
19027117f1b4Smrg      default:
19037117f1b4Smrg         _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv(pname=0x%x)", pname);
19047117f1b4Smrg   }
19057117f1b4Smrg}
19067117f1b4Smrg
19077117f1b4Smrgvoid GLAPIENTRY
19087117f1b4Smrg_mesa_GetFloatv( GLenum pname, GLfloat *params )
19097117f1b4Smrg{
19107117f1b4Smrg   GET_CURRENT_CONTEXT(ctx);
19117117f1b4Smrg   ASSERT_OUTSIDE_BEGIN_END(ctx);
19127117f1b4Smrg
19137117f1b4Smrg   if (!params)
19147117f1b4Smrg      return;
19157117f1b4Smrg
19167117f1b4Smrg   if (ctx->NewState)
19177117f1b4Smrg      _mesa_update_state(ctx);
19187117f1b4Smrg
19197117f1b4Smrg   if (ctx->Driver.GetFloatv &&
19207117f1b4Smrg       ctx->Driver.GetFloatv(ctx, pname, params))
19217117f1b4Smrg      return;
19227117f1b4Smrg
19237117f1b4Smrg   switch (pname) {
19247117f1b4Smrg      case GL_ACCUM_RED_BITS:
19257117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumRedBits);
19267117f1b4Smrg         break;
19277117f1b4Smrg      case GL_ACCUM_GREEN_BITS:
19287117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumGreenBits);
19297117f1b4Smrg         break;
19307117f1b4Smrg      case GL_ACCUM_BLUE_BITS:
19317117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumBlueBits);
19327117f1b4Smrg         break;
19337117f1b4Smrg      case GL_ACCUM_ALPHA_BITS:
19347117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumAlphaBits);
19357117f1b4Smrg         break;
19367117f1b4Smrg      case GL_ACCUM_CLEAR_VALUE:
19377117f1b4Smrg         params[0] = ctx->Accum.ClearColor[0];
19387117f1b4Smrg         params[1] = ctx->Accum.ClearColor[1];
19397117f1b4Smrg         params[2] = ctx->Accum.ClearColor[2];
19407117f1b4Smrg         params[3] = ctx->Accum.ClearColor[3];
19417117f1b4Smrg         break;
19427117f1b4Smrg      case GL_ALPHA_BIAS:
19437117f1b4Smrg         params[0] = ctx->Pixel.AlphaBias;
19447117f1b4Smrg         break;
19457117f1b4Smrg      case GL_ALPHA_BITS:
19467117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.alphaBits);
19477117f1b4Smrg         break;
19487117f1b4Smrg      case GL_ALPHA_SCALE:
19497117f1b4Smrg         params[0] = ctx->Pixel.AlphaScale;
19507117f1b4Smrg         break;
19517117f1b4Smrg      case GL_ALPHA_TEST:
19527117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.AlphaEnabled);
19537117f1b4Smrg         break;
19547117f1b4Smrg      case GL_ALPHA_TEST_FUNC:
19557117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.AlphaFunc);
19567117f1b4Smrg         break;
19577117f1b4Smrg      case GL_ALPHA_TEST_REF:
19587117f1b4Smrg         params[0] = ctx->Color.AlphaRef;
19597117f1b4Smrg         break;
19607117f1b4Smrg      case GL_ATTRIB_STACK_DEPTH:
19617117f1b4Smrg         params[0] = (GLfloat)(ctx->AttribStackDepth);
19627117f1b4Smrg         break;
19637117f1b4Smrg      case GL_AUTO_NORMAL:
19647117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.AutoNormal);
19657117f1b4Smrg         break;
19667117f1b4Smrg      case GL_AUX_BUFFERS:
19677117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.numAuxBuffers);
19687117f1b4Smrg         break;
19697117f1b4Smrg      case GL_BLEND:
19707117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.BlendEnabled);
19717117f1b4Smrg         break;
19727117f1b4Smrg      case GL_BLEND_DST:
19737117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstRGB);
19747117f1b4Smrg         break;
19757117f1b4Smrg      case GL_BLEND_SRC:
19767117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB);
19777117f1b4Smrg         break;
19787117f1b4Smrg      case GL_BLEND_SRC_RGB_EXT:
19797117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB);
19807117f1b4Smrg         break;
19817117f1b4Smrg      case GL_BLEND_DST_RGB_EXT:
19827117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstRGB);
19837117f1b4Smrg         break;
19847117f1b4Smrg      case GL_BLEND_SRC_ALPHA_EXT:
19857117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcA);
19867117f1b4Smrg         break;
19877117f1b4Smrg      case GL_BLEND_DST_ALPHA_EXT:
19887117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstA);
19897117f1b4Smrg         break;
19907117f1b4Smrg      case GL_BLEND_EQUATION:
19917117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendEquationRGB );
19927117f1b4Smrg         break;
19937117f1b4Smrg      case GL_BLEND_EQUATION_ALPHA_EXT:
19947117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.BlendEquationA );
19957117f1b4Smrg         break;
19967117f1b4Smrg      case GL_BLEND_COLOR_EXT:
19977117f1b4Smrg         params[0] = ctx->Color.BlendColor[0];
19987117f1b4Smrg         params[1] = ctx->Color.BlendColor[1];
19997117f1b4Smrg         params[2] = ctx->Color.BlendColor[2];
20007117f1b4Smrg         params[3] = ctx->Color.BlendColor[3];
20017117f1b4Smrg         break;
20027117f1b4Smrg      case GL_BLUE_BIAS:
20037117f1b4Smrg         params[0] = ctx->Pixel.BlueBias;
20047117f1b4Smrg         break;
20057117f1b4Smrg      case GL_BLUE_BITS:
20067117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.blueBits);
20077117f1b4Smrg         break;
20087117f1b4Smrg      case GL_BLUE_SCALE:
20097117f1b4Smrg         params[0] = ctx->Pixel.BlueScale;
20107117f1b4Smrg         break;
20117117f1b4Smrg      case GL_CLIENT_ATTRIB_STACK_DEPTH:
20127117f1b4Smrg         params[0] = (GLfloat)(ctx->ClientAttribStackDepth);
20137117f1b4Smrg         break;
20147117f1b4Smrg      case GL_CLIP_PLANE0:
20157117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 0) & 1);
20167117f1b4Smrg         break;
20177117f1b4Smrg      case GL_CLIP_PLANE1:
20187117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 1) & 1);
20197117f1b4Smrg         break;
20207117f1b4Smrg      case GL_CLIP_PLANE2:
20217117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 2) & 1);
20227117f1b4Smrg         break;
20237117f1b4Smrg      case GL_CLIP_PLANE3:
20247117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 3) & 1);
20257117f1b4Smrg         break;
20267117f1b4Smrg      case GL_CLIP_PLANE4:
20277117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 4) & 1);
20287117f1b4Smrg         break;
20297117f1b4Smrg      case GL_CLIP_PLANE5:
20307117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 5) & 1);
20317117f1b4Smrg         break;
20327117f1b4Smrg      case GL_COLOR_CLEAR_VALUE:
20337117f1b4Smrg         params[0] = ctx->Color.ClearColor[0];
20347117f1b4Smrg         params[1] = ctx->Color.ClearColor[1];
20357117f1b4Smrg         params[2] = ctx->Color.ClearColor[2];
20367117f1b4Smrg         params[3] = ctx->Color.ClearColor[3];
20377117f1b4Smrg         break;
20387117f1b4Smrg      case GL_COLOR_MATERIAL:
20397117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.ColorMaterialEnabled);
20407117f1b4Smrg         break;
20417117f1b4Smrg      case GL_COLOR_MATERIAL_FACE:
20427117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Light.ColorMaterialFace);
20437117f1b4Smrg         break;
20447117f1b4Smrg      case GL_COLOR_MATERIAL_PARAMETER:
20457117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Light.ColorMaterialMode);
20467117f1b4Smrg         break;
20477117f1b4Smrg      case GL_COLOR_WRITEMASK:
20487117f1b4Smrg         params[0] = (GLfloat)(ctx->Color.ColorMask[RCOMP] ? 1 : 0);
20497117f1b4Smrg         params[1] = (GLfloat)(ctx->Color.ColorMask[GCOMP] ? 1 : 0);
20507117f1b4Smrg         params[2] = (GLfloat)(ctx->Color.ColorMask[BCOMP] ? 1 : 0);
20517117f1b4Smrg         params[3] = (GLfloat)(ctx->Color.ColorMask[ACOMP] ? 1 : 0);
20527117f1b4Smrg         break;
20537117f1b4Smrg      case GL_CULL_FACE:
20547117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.CullFlag);
20557117f1b4Smrg         break;
20567117f1b4Smrg      case GL_CULL_FACE_MODE:
20577117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Polygon.CullFaceMode);
20587117f1b4Smrg         break;
20597117f1b4Smrg      case GL_CURRENT_COLOR:
20607117f1b4Smrg         {
20617117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
20627117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0];
20637117f1b4Smrg         params[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1];
20647117f1b4Smrg         params[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2];
20657117f1b4Smrg         params[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3];
20667117f1b4Smrg         }
20677117f1b4Smrg         break;
20687117f1b4Smrg      case GL_CURRENT_INDEX:
20697117f1b4Smrg         {
20707117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
20717117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0];
20727117f1b4Smrg         }
20737117f1b4Smrg         break;
20747117f1b4Smrg      case GL_CURRENT_NORMAL:
20757117f1b4Smrg         {
20767117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
20777117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0];
20787117f1b4Smrg         params[1] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1];
20797117f1b4Smrg         params[2] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2];
20807117f1b4Smrg         }
20817117f1b4Smrg         break;
20827117f1b4Smrg      case GL_CURRENT_RASTER_COLOR:
20837117f1b4Smrg         params[0] = ctx->Current.RasterColor[0];
20847117f1b4Smrg         params[1] = ctx->Current.RasterColor[1];
20857117f1b4Smrg         params[2] = ctx->Current.RasterColor[2];
20867117f1b4Smrg         params[3] = ctx->Current.RasterColor[3];
20877117f1b4Smrg         break;
20887117f1b4Smrg      case GL_CURRENT_RASTER_DISTANCE:
20897117f1b4Smrg         params[0] = ctx->Current.RasterDistance;
20907117f1b4Smrg         break;
20917117f1b4Smrg      case GL_CURRENT_RASTER_INDEX:
20927117f1b4Smrg         params[0] = ctx->Current.RasterIndex;
20937117f1b4Smrg         break;
20947117f1b4Smrg      case GL_CURRENT_RASTER_POSITION:
20957117f1b4Smrg         params[0] = ctx->Current.RasterPos[0];
20967117f1b4Smrg         params[1] = ctx->Current.RasterPos[1];
20977117f1b4Smrg         params[2] = ctx->Current.RasterPos[2];
20987117f1b4Smrg         params[3] = ctx->Current.RasterPos[3];
20997117f1b4Smrg         break;
21007117f1b4Smrg      case GL_CURRENT_RASTER_SECONDARY_COLOR:
21017117f1b4Smrg         params[0] = ctx->Current.RasterSecondaryColor[0];
21027117f1b4Smrg         params[1] = ctx->Current.RasterSecondaryColor[1];
21037117f1b4Smrg         params[2] = ctx->Current.RasterSecondaryColor[2];
21047117f1b4Smrg         params[3] = ctx->Current.RasterSecondaryColor[3];
21057117f1b4Smrg         break;
21067117f1b4Smrg      case GL_CURRENT_RASTER_TEXTURE_COORDS:
21077117f1b4Smrg         {
21087117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
21097117f1b4Smrg         params[0] = ctx->Current.RasterTexCoords[texUnit][0];
21107117f1b4Smrg         params[1] = ctx->Current.RasterTexCoords[texUnit][1];
21117117f1b4Smrg         params[2] = ctx->Current.RasterTexCoords[texUnit][2];
21127117f1b4Smrg         params[3] = ctx->Current.RasterTexCoords[texUnit][3];
21137117f1b4Smrg         }
21147117f1b4Smrg         break;
21157117f1b4Smrg      case GL_CURRENT_RASTER_POSITION_VALID:
21167117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Current.RasterPosValid);
21177117f1b4Smrg         break;
21187117f1b4Smrg      case GL_CURRENT_TEXTURE_COORDS:
21197117f1b4Smrg         {
21207117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
21214a49301eSmrg         FLUSH_CURRENT(ctx, 0);
21227117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0];
21237117f1b4Smrg         params[1] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1];
21247117f1b4Smrg         params[2] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2];
21257117f1b4Smrg         params[3] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3];
21267117f1b4Smrg         }
21277117f1b4Smrg         break;
21287117f1b4Smrg      case GL_DEPTH_BIAS:
21297117f1b4Smrg         params[0] = ctx->Pixel.DepthBias;
21307117f1b4Smrg         break;
21317117f1b4Smrg      case GL_DEPTH_BITS:
21327117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.depthBits);
21337117f1b4Smrg         break;
21347117f1b4Smrg      case GL_DEPTH_CLEAR_VALUE:
2135c1f859d4Smrg         params[0] = ((GLfloat) ctx->Depth.Clear);
21367117f1b4Smrg         break;
21377117f1b4Smrg      case GL_DEPTH_FUNC:
21387117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Depth.Func);
21397117f1b4Smrg         break;
21407117f1b4Smrg      case GL_DEPTH_RANGE:
21417117f1b4Smrg         params[0] = ctx->Viewport.Near;
21427117f1b4Smrg         params[1] = ctx->Viewport.Far;
21437117f1b4Smrg         break;
21447117f1b4Smrg      case GL_DEPTH_SCALE:
21457117f1b4Smrg         params[0] = ctx->Pixel.DepthScale;
21467117f1b4Smrg         break;
21477117f1b4Smrg      case GL_DEPTH_TEST:
21487117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.Test);
21497117f1b4Smrg         break;
21507117f1b4Smrg      case GL_DEPTH_WRITEMASK:
21517117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.Mask);
21527117f1b4Smrg         break;
21537117f1b4Smrg      case GL_DITHER:
21547117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.DitherFlag);
21557117f1b4Smrg         break;
21567117f1b4Smrg      case GL_DOUBLEBUFFER:
21577117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.doubleBufferMode);
21587117f1b4Smrg         break;
21597117f1b4Smrg      case GL_DRAW_BUFFER:
21607117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->DrawBuffer->ColorDrawBuffer[0]);
21617117f1b4Smrg         break;
21627117f1b4Smrg      case GL_EDGE_FLAG:
21637117f1b4Smrg         {
21647117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
21657117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0));
21667117f1b4Smrg         }
21677117f1b4Smrg         break;
21687117f1b4Smrg      case GL_FEEDBACK_BUFFER_SIZE:
21697117f1b4Smrg         params[0] = (GLfloat)(ctx->Feedback.BufferSize);
21707117f1b4Smrg         break;
21717117f1b4Smrg      case GL_FEEDBACK_BUFFER_TYPE:
21727117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Feedback.Type);
21737117f1b4Smrg         break;
21747117f1b4Smrg      case GL_FOG:
21757117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Fog.Enabled);
21767117f1b4Smrg         break;
21777117f1b4Smrg      case GL_FOG_COLOR:
21787117f1b4Smrg         params[0] = ctx->Fog.Color[0];
21797117f1b4Smrg         params[1] = ctx->Fog.Color[1];
21807117f1b4Smrg         params[2] = ctx->Fog.Color[2];
21817117f1b4Smrg         params[3] = ctx->Fog.Color[3];
21827117f1b4Smrg         break;
21837117f1b4Smrg      case GL_FOG_DENSITY:
21847117f1b4Smrg         params[0] = ctx->Fog.Density;
21857117f1b4Smrg         break;
21867117f1b4Smrg      case GL_FOG_END:
21877117f1b4Smrg         params[0] = ctx->Fog.End;
21887117f1b4Smrg         break;
21897117f1b4Smrg      case GL_FOG_HINT:
21907117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.Fog);
21917117f1b4Smrg         break;
21927117f1b4Smrg      case GL_FOG_INDEX:
21937117f1b4Smrg         params[0] = ctx->Fog.Index;
21947117f1b4Smrg         break;
21957117f1b4Smrg      case GL_FOG_MODE:
21967117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Fog.Mode);
21977117f1b4Smrg         break;
21987117f1b4Smrg      case GL_FOG_START:
21997117f1b4Smrg         params[0] = ctx->Fog.Start;
22007117f1b4Smrg         break;
22017117f1b4Smrg      case GL_FRONT_FACE:
22027117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Polygon.FrontFace);
22037117f1b4Smrg         break;
22047117f1b4Smrg      case GL_GREEN_BIAS:
22057117f1b4Smrg         params[0] = ctx->Pixel.GreenBias;
22067117f1b4Smrg         break;
22077117f1b4Smrg      case GL_GREEN_BITS:
22087117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.greenBits);
22097117f1b4Smrg         break;
22107117f1b4Smrg      case GL_GREEN_SCALE:
22117117f1b4Smrg         params[0] = ctx->Pixel.GreenScale;
22127117f1b4Smrg         break;
22137117f1b4Smrg      case GL_INDEX_BITS:
22147117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.indexBits);
22157117f1b4Smrg         break;
22167117f1b4Smrg      case GL_INDEX_CLEAR_VALUE:
22177117f1b4Smrg         params[0] = (GLfloat)(ctx->Color.ClearIndex);
22187117f1b4Smrg         break;
22197117f1b4Smrg      case GL_INDEX_MODE:
22207117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(!ctx->DrawBuffer->Visual.rgbMode);
22217117f1b4Smrg         break;
22227117f1b4Smrg      case GL_INDEX_OFFSET:
22237117f1b4Smrg         params[0] = (GLfloat)(ctx->Pixel.IndexOffset);
22247117f1b4Smrg         break;
22257117f1b4Smrg      case GL_INDEX_SHIFT:
22267117f1b4Smrg         params[0] = (GLfloat)(ctx->Pixel.IndexShift);
22277117f1b4Smrg         break;
22287117f1b4Smrg      case GL_INDEX_WRITEMASK:
22297117f1b4Smrg         params[0] = (GLfloat)(ctx->Color.IndexMask);
22307117f1b4Smrg         break;
22317117f1b4Smrg      case GL_LIGHT0:
22327117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[0].Enabled);
22337117f1b4Smrg         break;
22347117f1b4Smrg      case GL_LIGHT1:
22357117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[1].Enabled);
22367117f1b4Smrg         break;
22377117f1b4Smrg      case GL_LIGHT2:
22387117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[2].Enabled);
22397117f1b4Smrg         break;
22407117f1b4Smrg      case GL_LIGHT3:
22417117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[3].Enabled);
22427117f1b4Smrg         break;
22437117f1b4Smrg      case GL_LIGHT4:
22447117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[4].Enabled);
22457117f1b4Smrg         break;
22467117f1b4Smrg      case GL_LIGHT5:
22477117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[5].Enabled);
22487117f1b4Smrg         break;
22497117f1b4Smrg      case GL_LIGHT6:
22507117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[6].Enabled);
22517117f1b4Smrg         break;
22527117f1b4Smrg      case GL_LIGHT7:
22537117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[7].Enabled);
22547117f1b4Smrg         break;
22557117f1b4Smrg      case GL_LIGHTING:
22567117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Enabled);
22577117f1b4Smrg         break;
22587117f1b4Smrg      case GL_LIGHT_MODEL_AMBIENT:
22597117f1b4Smrg         params[0] = ctx->Light.Model.Ambient[0];
22607117f1b4Smrg         params[1] = ctx->Light.Model.Ambient[1];
22617117f1b4Smrg         params[2] = ctx->Light.Model.Ambient[2];
22627117f1b4Smrg         params[3] = ctx->Light.Model.Ambient[3];
22637117f1b4Smrg         break;
22647117f1b4Smrg      case GL_LIGHT_MODEL_COLOR_CONTROL:
22657117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Light.Model.ColorControl);
22667117f1b4Smrg         break;
22677117f1b4Smrg      case GL_LIGHT_MODEL_LOCAL_VIEWER:
22687117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Model.LocalViewer);
22697117f1b4Smrg         break;
22707117f1b4Smrg      case GL_LIGHT_MODEL_TWO_SIDE:
22717117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Model.TwoSide);
22727117f1b4Smrg         break;
22737117f1b4Smrg      case GL_LINE_SMOOTH:
22747117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Line.SmoothFlag);
22757117f1b4Smrg         break;
22767117f1b4Smrg      case GL_LINE_SMOOTH_HINT:
22777117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.LineSmooth);
22787117f1b4Smrg         break;
22797117f1b4Smrg      case GL_LINE_STIPPLE:
22807117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Line.StippleFlag);
22817117f1b4Smrg         break;
22827117f1b4Smrg      case GL_LINE_STIPPLE_PATTERN:
22837117f1b4Smrg         params[0] = (GLfloat)(ctx->Line.StipplePattern);
22847117f1b4Smrg         break;
22857117f1b4Smrg      case GL_LINE_STIPPLE_REPEAT:
22867117f1b4Smrg         params[0] = (GLfloat)(ctx->Line.StippleFactor);
22877117f1b4Smrg         break;
22887117f1b4Smrg      case GL_LINE_WIDTH:
22897117f1b4Smrg         params[0] = ctx->Line.Width;
22907117f1b4Smrg         break;
22917117f1b4Smrg      case GL_LINE_WIDTH_GRANULARITY:
22927117f1b4Smrg         params[0] = ctx->Const.LineWidthGranularity;
22937117f1b4Smrg         break;
22947117f1b4Smrg      case GL_LINE_WIDTH_RANGE:
22957117f1b4Smrg         params[0] = ctx->Const.MinLineWidthAA;
22967117f1b4Smrg         params[1] = ctx->Const.MaxLineWidthAA;
22977117f1b4Smrg         break;
22987117f1b4Smrg      case GL_ALIASED_LINE_WIDTH_RANGE:
22997117f1b4Smrg         params[0] = ctx->Const.MinLineWidth;
23007117f1b4Smrg         params[1] = ctx->Const.MaxLineWidth;
23017117f1b4Smrg         break;
23027117f1b4Smrg      case GL_LIST_BASE:
23037117f1b4Smrg         params[0] = (GLfloat)(ctx->List.ListBase);
23047117f1b4Smrg         break;
23057117f1b4Smrg      case GL_LIST_INDEX:
23064a49301eSmrg         params[0] = (GLfloat)((ctx->ListState.CurrentList ? ctx->ListState.CurrentList->Name : 0));
23077117f1b4Smrg         break;
23087117f1b4Smrg      case GL_LIST_MODE:
23097117f1b4Smrg         {
23107117f1b4Smrg         GLenum mode;
23117117f1b4Smrg         if (!ctx->CompileFlag)
23127117f1b4Smrg            mode = 0;
23137117f1b4Smrg         else if (ctx->ExecuteFlag)
23147117f1b4Smrg            mode = GL_COMPILE_AND_EXECUTE;
23157117f1b4Smrg         else
23167117f1b4Smrg            mode = GL_COMPILE;
23177117f1b4Smrg         params[0] = ENUM_TO_FLOAT(mode);
23187117f1b4Smrg         }
23197117f1b4Smrg         break;
23207117f1b4Smrg      case GL_INDEX_LOGIC_OP:
23217117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.IndexLogicOpEnabled);
23227117f1b4Smrg         break;
23237117f1b4Smrg      case GL_COLOR_LOGIC_OP:
23247117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Color.ColorLogicOpEnabled);
23257117f1b4Smrg         break;
23267117f1b4Smrg      case GL_LOGIC_OP_MODE:
23277117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Color.LogicOp);
23287117f1b4Smrg         break;
23297117f1b4Smrg      case GL_MAP1_COLOR_4:
23307117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Color4);
23317117f1b4Smrg         break;
23327117f1b4Smrg      case GL_MAP1_GRID_DOMAIN:
23337117f1b4Smrg         params[0] = ctx->Eval.MapGrid1u1;
23347117f1b4Smrg         params[1] = ctx->Eval.MapGrid1u2;
23357117f1b4Smrg         break;
23367117f1b4Smrg      case GL_MAP1_GRID_SEGMENTS:
23377117f1b4Smrg         params[0] = (GLfloat)(ctx->Eval.MapGrid1un);
23387117f1b4Smrg         break;
23397117f1b4Smrg      case GL_MAP1_INDEX:
23407117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Index);
23417117f1b4Smrg         break;
23427117f1b4Smrg      case GL_MAP1_NORMAL:
23437117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Normal);
23447117f1b4Smrg         break;
23457117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_1:
23467117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord1);
23477117f1b4Smrg         break;
23487117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_2:
23497117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord2);
23507117f1b4Smrg         break;
23517117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_3:
23527117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord3);
23537117f1b4Smrg         break;
23547117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_4:
23557117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord4);
23567117f1b4Smrg         break;
23577117f1b4Smrg      case GL_MAP1_VERTEX_3:
23587117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Vertex3);
23597117f1b4Smrg         break;
23607117f1b4Smrg      case GL_MAP1_VERTEX_4:
23617117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Vertex4);
23627117f1b4Smrg         break;
23637117f1b4Smrg      case GL_MAP2_COLOR_4:
23647117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Color4);
23657117f1b4Smrg         break;
23667117f1b4Smrg      case GL_MAP2_GRID_DOMAIN:
23677117f1b4Smrg         params[0] = ctx->Eval.MapGrid2u1;
23687117f1b4Smrg         params[1] = ctx->Eval.MapGrid2u2;
23697117f1b4Smrg         params[2] = ctx->Eval.MapGrid2v1;
23707117f1b4Smrg         params[3] = ctx->Eval.MapGrid2v2;
23717117f1b4Smrg         break;
23727117f1b4Smrg      case GL_MAP2_GRID_SEGMENTS:
23737117f1b4Smrg         params[0] = (GLfloat)(ctx->Eval.MapGrid2un);
23747117f1b4Smrg         params[1] = (GLfloat)(ctx->Eval.MapGrid2vn);
23757117f1b4Smrg         break;
23767117f1b4Smrg      case GL_MAP2_INDEX:
23777117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Index);
23787117f1b4Smrg         break;
23797117f1b4Smrg      case GL_MAP2_NORMAL:
23807117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Normal);
23817117f1b4Smrg         break;
23827117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_1:
23837117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord1);
23847117f1b4Smrg         break;
23857117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_2:
23867117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord2);
23877117f1b4Smrg         break;
23887117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_3:
23897117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord3);
23907117f1b4Smrg         break;
23917117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_4:
23927117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord4);
23937117f1b4Smrg         break;
23947117f1b4Smrg      case GL_MAP2_VERTEX_3:
23957117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Vertex3);
23967117f1b4Smrg         break;
23977117f1b4Smrg      case GL_MAP2_VERTEX_4:
23987117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Vertex4);
23997117f1b4Smrg         break;
24007117f1b4Smrg      case GL_MAP_COLOR:
24017117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MapColorFlag);
24027117f1b4Smrg         break;
24037117f1b4Smrg      case GL_MAP_STENCIL:
24047117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MapStencilFlag);
24057117f1b4Smrg         break;
24067117f1b4Smrg      case GL_MATRIX_MODE:
24077117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Transform.MatrixMode);
24087117f1b4Smrg         break;
24097117f1b4Smrg      case GL_MAX_ATTRIB_STACK_DEPTH:
24107117f1b4Smrg         params[0] = (GLfloat)(MAX_ATTRIB_STACK_DEPTH);
24117117f1b4Smrg         break;
24127117f1b4Smrg      case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
24137117f1b4Smrg         params[0] = (GLfloat)(MAX_CLIENT_ATTRIB_STACK_DEPTH);
24147117f1b4Smrg         break;
24157117f1b4Smrg      case GL_MAX_CLIP_PLANES:
24167117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxClipPlanes);
24177117f1b4Smrg         break;
24187117f1b4Smrg      case GL_MAX_ELEMENTS_VERTICES:
24197117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxArrayLockSize);
24207117f1b4Smrg         break;
24217117f1b4Smrg      case GL_MAX_ELEMENTS_INDICES:
24227117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxArrayLockSize);
24237117f1b4Smrg         break;
24247117f1b4Smrg      case GL_MAX_EVAL_ORDER:
24257117f1b4Smrg         params[0] = (GLfloat)(MAX_EVAL_ORDER);
24267117f1b4Smrg         break;
24277117f1b4Smrg      case GL_MAX_LIGHTS:
24287117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxLights);
24297117f1b4Smrg         break;
24307117f1b4Smrg      case GL_MAX_LIST_NESTING:
24317117f1b4Smrg         params[0] = (GLfloat)(MAX_LIST_NESTING);
24327117f1b4Smrg         break;
24337117f1b4Smrg      case GL_MAX_MODELVIEW_STACK_DEPTH:
24347117f1b4Smrg         params[0] = (GLfloat)(MAX_MODELVIEW_STACK_DEPTH);
24357117f1b4Smrg         break;
24367117f1b4Smrg      case GL_MAX_NAME_STACK_DEPTH:
24377117f1b4Smrg         params[0] = (GLfloat)(MAX_NAME_STACK_DEPTH);
24387117f1b4Smrg         break;
24397117f1b4Smrg      case GL_MAX_PIXEL_MAP_TABLE:
24407117f1b4Smrg         params[0] = (GLfloat)(MAX_PIXEL_MAP_TABLE);
24417117f1b4Smrg         break;
24427117f1b4Smrg      case GL_MAX_PROJECTION_STACK_DEPTH:
24437117f1b4Smrg         params[0] = (GLfloat)(MAX_PROJECTION_STACK_DEPTH);
24447117f1b4Smrg         break;
24457117f1b4Smrg      case GL_MAX_TEXTURE_SIZE:
24467117f1b4Smrg         params[0] = (GLfloat)(1 << (ctx->Const.MaxTextureLevels - 1));
24477117f1b4Smrg         break;
24487117f1b4Smrg      case GL_MAX_3D_TEXTURE_SIZE:
24497117f1b4Smrg         params[0] = (GLfloat)(1 << (ctx->Const.Max3DTextureLevels - 1));
24507117f1b4Smrg         break;
24517117f1b4Smrg      case GL_MAX_TEXTURE_STACK_DEPTH:
24527117f1b4Smrg         params[0] = (GLfloat)(MAX_TEXTURE_STACK_DEPTH);
24537117f1b4Smrg         break;
24547117f1b4Smrg      case GL_MAX_VIEWPORT_DIMS:
24557117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxViewportWidth);
24567117f1b4Smrg         params[1] = (GLfloat)(ctx->Const.MaxViewportHeight);
24577117f1b4Smrg         break;
24587117f1b4Smrg      case GL_MODELVIEW_MATRIX:
24597117f1b4Smrg         {
24607117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
24617117f1b4Smrg         params[0] = matrix[0];
24627117f1b4Smrg         params[1] = matrix[1];
24637117f1b4Smrg         params[2] = matrix[2];
24647117f1b4Smrg         params[3] = matrix[3];
24657117f1b4Smrg         params[4] = matrix[4];
24667117f1b4Smrg         params[5] = matrix[5];
24677117f1b4Smrg         params[6] = matrix[6];
24687117f1b4Smrg         params[7] = matrix[7];
24697117f1b4Smrg         params[8] = matrix[8];
24707117f1b4Smrg         params[9] = matrix[9];
24717117f1b4Smrg         params[10] = matrix[10];
24727117f1b4Smrg         params[11] = matrix[11];
24737117f1b4Smrg         params[12] = matrix[12];
24747117f1b4Smrg         params[13] = matrix[13];
24757117f1b4Smrg         params[14] = matrix[14];
24767117f1b4Smrg         params[15] = matrix[15];
24777117f1b4Smrg         }
24787117f1b4Smrg         break;
24797117f1b4Smrg      case GL_MODELVIEW_STACK_DEPTH:
24807117f1b4Smrg         params[0] = (GLfloat)(ctx->ModelviewMatrixStack.Depth + 1);
24817117f1b4Smrg         break;
24827117f1b4Smrg      case GL_NAME_STACK_DEPTH:
24837117f1b4Smrg         params[0] = (GLfloat)(ctx->Select.NameStackDepth);
24847117f1b4Smrg         break;
24857117f1b4Smrg      case GL_NORMALIZE:
24867117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.Normalize);
24877117f1b4Smrg         break;
24887117f1b4Smrg      case GL_PACK_ALIGNMENT:
24897117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.Alignment);
24907117f1b4Smrg         break;
24917117f1b4Smrg      case GL_PACK_LSB_FIRST:
24927117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.LsbFirst);
24937117f1b4Smrg         break;
24947117f1b4Smrg      case GL_PACK_ROW_LENGTH:
24957117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.RowLength);
24967117f1b4Smrg         break;
24977117f1b4Smrg      case GL_PACK_SKIP_PIXELS:
24987117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.SkipPixels);
24997117f1b4Smrg         break;
25007117f1b4Smrg      case GL_PACK_SKIP_ROWS:
25017117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.SkipRows);
25027117f1b4Smrg         break;
25037117f1b4Smrg      case GL_PACK_SWAP_BYTES:
25047117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.SwapBytes);
25057117f1b4Smrg         break;
25067117f1b4Smrg      case GL_PACK_SKIP_IMAGES_EXT:
25077117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.SkipImages);
25087117f1b4Smrg         break;
25097117f1b4Smrg      case GL_PACK_IMAGE_HEIGHT_EXT:
25107117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.ImageHeight);
25117117f1b4Smrg         break;
25127117f1b4Smrg      case GL_PACK_INVERT_MESA:
25137117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.Invert);
25147117f1b4Smrg         break;
25157117f1b4Smrg      case GL_PERSPECTIVE_CORRECTION_HINT:
25167117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.PerspectiveCorrection);
25177117f1b4Smrg         break;
25187117f1b4Smrg      case GL_PIXEL_MAP_A_TO_A_SIZE:
25197117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.AtoA.Size);
25207117f1b4Smrg         break;
25217117f1b4Smrg      case GL_PIXEL_MAP_B_TO_B_SIZE:
25227117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.BtoB.Size);
25237117f1b4Smrg         break;
25247117f1b4Smrg      case GL_PIXEL_MAP_G_TO_G_SIZE:
25257117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.GtoG.Size);
25267117f1b4Smrg         break;
25277117f1b4Smrg      case GL_PIXEL_MAP_I_TO_A_SIZE:
25287117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoA.Size);
25297117f1b4Smrg         break;
25307117f1b4Smrg      case GL_PIXEL_MAP_I_TO_B_SIZE:
25317117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoB.Size);
25327117f1b4Smrg         break;
25337117f1b4Smrg      case GL_PIXEL_MAP_I_TO_G_SIZE:
25347117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoG.Size);
25357117f1b4Smrg         break;
25367117f1b4Smrg      case GL_PIXEL_MAP_I_TO_I_SIZE:
25377117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoI.Size);
25387117f1b4Smrg         break;
25397117f1b4Smrg      case GL_PIXEL_MAP_I_TO_R_SIZE:
25407117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.ItoR.Size);
25417117f1b4Smrg         break;
25427117f1b4Smrg      case GL_PIXEL_MAP_R_TO_R_SIZE:
25437117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.RtoR.Size);
25447117f1b4Smrg         break;
25457117f1b4Smrg      case GL_PIXEL_MAP_S_TO_S_SIZE:
25467117f1b4Smrg         params[0] = (GLfloat)(ctx->PixelMaps.StoS.Size);
25477117f1b4Smrg         break;
25487117f1b4Smrg      case GL_POINT_SIZE:
25497117f1b4Smrg         params[0] = ctx->Point.Size;
25507117f1b4Smrg         break;
25517117f1b4Smrg      case GL_POINT_SIZE_GRANULARITY:
25527117f1b4Smrg         params[0] = ctx->Const.PointSizeGranularity;
25537117f1b4Smrg         break;
25547117f1b4Smrg      case GL_POINT_SIZE_RANGE:
25557117f1b4Smrg         params[0] = ctx->Const.MinPointSizeAA;
25567117f1b4Smrg         params[1] = ctx->Const.MaxPointSizeAA;
25577117f1b4Smrg         break;
25587117f1b4Smrg      case GL_ALIASED_POINT_SIZE_RANGE:
25597117f1b4Smrg         params[0] = ctx->Const.MinPointSize;
25607117f1b4Smrg         params[1] = ctx->Const.MaxPointSize;
25617117f1b4Smrg         break;
25627117f1b4Smrg      case GL_POINT_SMOOTH:
25637117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Point.SmoothFlag);
25647117f1b4Smrg         break;
25657117f1b4Smrg      case GL_POINT_SMOOTH_HINT:
25667117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.PointSmooth);
25677117f1b4Smrg         break;
25687117f1b4Smrg      case GL_POINT_SIZE_MIN_EXT:
25697117f1b4Smrg         params[0] = ctx->Point.MinSize;
25707117f1b4Smrg         break;
25717117f1b4Smrg      case GL_POINT_SIZE_MAX_EXT:
25727117f1b4Smrg         params[0] = ctx->Point.MaxSize;
25737117f1b4Smrg         break;
25747117f1b4Smrg      case GL_POINT_FADE_THRESHOLD_SIZE_EXT:
25757117f1b4Smrg         params[0] = ctx->Point.Threshold;
25767117f1b4Smrg         break;
25777117f1b4Smrg      case GL_DISTANCE_ATTENUATION_EXT:
25787117f1b4Smrg         params[0] = ctx->Point.Params[0];
25797117f1b4Smrg         params[1] = ctx->Point.Params[1];
25807117f1b4Smrg         params[2] = ctx->Point.Params[2];
25817117f1b4Smrg         break;
25827117f1b4Smrg      case GL_POLYGON_MODE:
25837117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Polygon.FrontMode);
25847117f1b4Smrg         params[1] = ENUM_TO_FLOAT(ctx->Polygon.BackMode);
25857117f1b4Smrg         break;
25867117f1b4Smrg      case GL_POLYGON_OFFSET_BIAS_EXT:
25877117f1b4Smrg         params[0] = ctx->Polygon.OffsetUnits;
25887117f1b4Smrg         break;
25897117f1b4Smrg      case GL_POLYGON_OFFSET_FACTOR:
25907117f1b4Smrg         params[0] = ctx->Polygon.OffsetFactor ;
25917117f1b4Smrg         break;
25927117f1b4Smrg      case GL_POLYGON_OFFSET_UNITS:
25937117f1b4Smrg         params[0] = ctx->Polygon.OffsetUnits ;
25947117f1b4Smrg         break;
2595c1f859d4Smrg      case GL_POLYGON_OFFSET_POINT:
2596c1f859d4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.OffsetPoint);
2597c1f859d4Smrg         break;
2598c1f859d4Smrg      case GL_POLYGON_OFFSET_LINE:
2599c1f859d4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.OffsetLine);
2600c1f859d4Smrg         break;
2601c1f859d4Smrg      case GL_POLYGON_OFFSET_FILL:
2602c1f859d4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.OffsetFill);
2603c1f859d4Smrg         break;
26047117f1b4Smrg      case GL_POLYGON_SMOOTH:
26057117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.SmoothFlag);
26067117f1b4Smrg         break;
26077117f1b4Smrg      case GL_POLYGON_SMOOTH_HINT:
26087117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.PolygonSmooth);
26097117f1b4Smrg         break;
26107117f1b4Smrg      case GL_POLYGON_STIPPLE:
26117117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.StippleFlag);
26127117f1b4Smrg         break;
26137117f1b4Smrg      case GL_PROJECTION_MATRIX:
26147117f1b4Smrg         {
26157117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
26167117f1b4Smrg         params[0] = matrix[0];
26177117f1b4Smrg         params[1] = matrix[1];
26187117f1b4Smrg         params[2] = matrix[2];
26197117f1b4Smrg         params[3] = matrix[3];
26207117f1b4Smrg         params[4] = matrix[4];
26217117f1b4Smrg         params[5] = matrix[5];
26227117f1b4Smrg         params[6] = matrix[6];
26237117f1b4Smrg         params[7] = matrix[7];
26247117f1b4Smrg         params[8] = matrix[8];
26257117f1b4Smrg         params[9] = matrix[9];
26267117f1b4Smrg         params[10] = matrix[10];
26277117f1b4Smrg         params[11] = matrix[11];
26287117f1b4Smrg         params[12] = matrix[12];
26297117f1b4Smrg         params[13] = matrix[13];
26307117f1b4Smrg         params[14] = matrix[14];
26317117f1b4Smrg         params[15] = matrix[15];
26327117f1b4Smrg         }
26337117f1b4Smrg         break;
26347117f1b4Smrg      case GL_PROJECTION_STACK_DEPTH:
26357117f1b4Smrg         params[0] = (GLfloat)(ctx->ProjectionMatrixStack.Depth + 1);
26367117f1b4Smrg         break;
26377117f1b4Smrg      case GL_READ_BUFFER:
26387117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->ReadBuffer->ColorReadBuffer);
26397117f1b4Smrg         break;
26407117f1b4Smrg      case GL_RED_BIAS:
26417117f1b4Smrg         params[0] = ctx->Pixel.RedBias;
26427117f1b4Smrg         break;
26437117f1b4Smrg      case GL_RED_BITS:
26447117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.redBits);
26457117f1b4Smrg         break;
26467117f1b4Smrg      case GL_RED_SCALE:
26477117f1b4Smrg         params[0] = ctx->Pixel.RedScale;
26487117f1b4Smrg         break;
26497117f1b4Smrg      case GL_RENDER_MODE:
26507117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->RenderMode);
26517117f1b4Smrg         break;
26527117f1b4Smrg      case GL_RESCALE_NORMAL:
26537117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.RescaleNormals);
26547117f1b4Smrg         break;
26557117f1b4Smrg      case GL_RGBA_MODE:
26567117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.rgbMode);
26577117f1b4Smrg         break;
26587117f1b4Smrg      case GL_SCISSOR_BOX:
26597117f1b4Smrg         params[0] = (GLfloat)(ctx->Scissor.X);
26607117f1b4Smrg         params[1] = (GLfloat)(ctx->Scissor.Y);
26617117f1b4Smrg         params[2] = (GLfloat)(ctx->Scissor.Width);
26627117f1b4Smrg         params[3] = (GLfloat)(ctx->Scissor.Height);
26637117f1b4Smrg         break;
26647117f1b4Smrg      case GL_SCISSOR_TEST:
26657117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Scissor.Enabled);
26667117f1b4Smrg         break;
26677117f1b4Smrg      case GL_SELECTION_BUFFER_SIZE:
26687117f1b4Smrg         params[0] = (GLfloat)(ctx->Select.BufferSize);
26697117f1b4Smrg         break;
26707117f1b4Smrg      case GL_SHADE_MODEL:
26717117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Light.ShadeModel);
26727117f1b4Smrg         break;
26737117f1b4Smrg      case GL_SHARED_TEXTURE_PALETTE_EXT:
26747117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Texture.SharedPalette);
26757117f1b4Smrg         break;
26767117f1b4Smrg      case GL_STENCIL_BITS:
26777117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.stencilBits);
26787117f1b4Smrg         break;
26797117f1b4Smrg      case GL_STENCIL_CLEAR_VALUE:
26807117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.Clear);
26817117f1b4Smrg         break;
26827117f1b4Smrg      case GL_STENCIL_FAIL:
26837117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]);
26847117f1b4Smrg         break;
26857117f1b4Smrg      case GL_STENCIL_FUNC:
26867117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.Function[ctx->Stencil.ActiveFace]);
26877117f1b4Smrg         break;
26887117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_FAIL:
26897117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]);
26907117f1b4Smrg         break;
26917117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_PASS:
26927117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]);
26937117f1b4Smrg         break;
26947117f1b4Smrg      case GL_STENCIL_REF:
26957117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.Ref[ctx->Stencil.ActiveFace]);
26967117f1b4Smrg         break;
26977117f1b4Smrg      case GL_STENCIL_TEST:
26987117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Stencil.Enabled);
26997117f1b4Smrg         break;
27007117f1b4Smrg      case GL_STENCIL_VALUE_MASK:
27017117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]);
27027117f1b4Smrg         break;
27037117f1b4Smrg      case GL_STENCIL_WRITEMASK:
27047117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]);
27057117f1b4Smrg         break;
27067117f1b4Smrg      case GL_STEREO:
27077117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.stereoMode);
27087117f1b4Smrg         break;
27097117f1b4Smrg      case GL_SUBPIXEL_BITS:
27107117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.SubPixelBits);
27117117f1b4Smrg         break;
27127117f1b4Smrg      case GL_TEXTURE_1D:
27137117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D));
27147117f1b4Smrg         break;
27157117f1b4Smrg      case GL_TEXTURE_2D:
27167117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D));
27177117f1b4Smrg         break;
27187117f1b4Smrg      case GL_TEXTURE_3D:
27197117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D));
27207117f1b4Smrg         break;
2721c1f859d4Smrg      case GL_TEXTURE_1D_ARRAY_EXT:
2722c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetFloatv");
2723c1f859d4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT));
2724c1f859d4Smrg         break;
2725c1f859d4Smrg      case GL_TEXTURE_2D_ARRAY_EXT:
2726c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetFloatv");
2727c1f859d4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT));
2728c1f859d4Smrg         break;
27297117f1b4Smrg      case GL_TEXTURE_BINDING_1D:
2730c1f859d4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_INDEX]->Name);
27317117f1b4Smrg         break;
27327117f1b4Smrg      case GL_TEXTURE_BINDING_2D:
2733c1f859d4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_INDEX]->Name);
27347117f1b4Smrg         break;
27357117f1b4Smrg      case GL_TEXTURE_BINDING_3D:
2736c1f859d4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_3D_INDEX]->Name);
27377117f1b4Smrg         break;
2738c1f859d4Smrg      case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
2739c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetFloatv");
2740c1f859d4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_ARRAY_INDEX]->Name);
27417117f1b4Smrg         break;
2742c1f859d4Smrg      case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
2743c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetFloatv");
2744c1f859d4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_ARRAY_INDEX]->Name);
27457117f1b4Smrg         break;
27467117f1b4Smrg      case GL_TEXTURE_GEN_S:
27477117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0));
27487117f1b4Smrg         break;
27497117f1b4Smrg      case GL_TEXTURE_GEN_T:
27507117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0));
27517117f1b4Smrg         break;
27527117f1b4Smrg      case GL_TEXTURE_GEN_R:
27537117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0));
27547117f1b4Smrg         break;
27557117f1b4Smrg      case GL_TEXTURE_GEN_Q:
27567117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0));
27577117f1b4Smrg         break;
27587117f1b4Smrg      case GL_TEXTURE_MATRIX:
27597117f1b4Smrg         {
27607117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
27617117f1b4Smrg         params[0] = matrix[0];
27627117f1b4Smrg         params[1] = matrix[1];
27637117f1b4Smrg         params[2] = matrix[2];
27647117f1b4Smrg         params[3] = matrix[3];
27657117f1b4Smrg         params[4] = matrix[4];
27667117f1b4Smrg         params[5] = matrix[5];
27677117f1b4Smrg         params[6] = matrix[6];
27687117f1b4Smrg         params[7] = matrix[7];
27697117f1b4Smrg         params[8] = matrix[8];
27707117f1b4Smrg         params[9] = matrix[9];
27717117f1b4Smrg         params[10] = matrix[10];
27727117f1b4Smrg         params[11] = matrix[11];
27737117f1b4Smrg         params[12] = matrix[12];
27747117f1b4Smrg         params[13] = matrix[13];
27757117f1b4Smrg         params[14] = matrix[14];
27767117f1b4Smrg         params[15] = matrix[15];
27777117f1b4Smrg         }
27787117f1b4Smrg         break;
27797117f1b4Smrg      case GL_TEXTURE_STACK_DEPTH:
27807117f1b4Smrg         params[0] = (GLfloat)(ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1);
27817117f1b4Smrg         break;
27827117f1b4Smrg      case GL_UNPACK_ALIGNMENT:
27837117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.Alignment);
27847117f1b4Smrg         break;
27857117f1b4Smrg      case GL_UNPACK_LSB_FIRST:
27867117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.LsbFirst);
27877117f1b4Smrg         break;
27887117f1b4Smrg      case GL_UNPACK_ROW_LENGTH:
27897117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.RowLength);
27907117f1b4Smrg         break;
27917117f1b4Smrg      case GL_UNPACK_SKIP_PIXELS:
27927117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.SkipPixels);
27937117f1b4Smrg         break;
27947117f1b4Smrg      case GL_UNPACK_SKIP_ROWS:
27957117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.SkipRows);
27967117f1b4Smrg         break;
27977117f1b4Smrg      case GL_UNPACK_SWAP_BYTES:
27987117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.SwapBytes);
27997117f1b4Smrg         break;
28007117f1b4Smrg      case GL_UNPACK_SKIP_IMAGES_EXT:
28017117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.SkipImages);
28027117f1b4Smrg         break;
28037117f1b4Smrg      case GL_UNPACK_IMAGE_HEIGHT_EXT:
28047117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.ImageHeight);
28057117f1b4Smrg         break;
28067117f1b4Smrg      case GL_UNPACK_CLIENT_STORAGE_APPLE:
28077117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.ClientStorage);
28087117f1b4Smrg         break;
28097117f1b4Smrg      case GL_VIEWPORT:
28107117f1b4Smrg         params[0] = (GLfloat)(ctx->Viewport.X);
28117117f1b4Smrg         params[1] = (GLfloat)(ctx->Viewport.Y);
28127117f1b4Smrg         params[2] = (GLfloat)(ctx->Viewport.Width);
28137117f1b4Smrg         params[3] = (GLfloat)(ctx->Viewport.Height);
28147117f1b4Smrg         break;
28157117f1b4Smrg      case GL_ZOOM_X:
28167117f1b4Smrg         params[0] = ctx->Pixel.ZoomX;
28177117f1b4Smrg         break;
28187117f1b4Smrg      case GL_ZOOM_Y:
28197117f1b4Smrg         params[0] = ctx->Pixel.ZoomY;
28207117f1b4Smrg         break;
28217117f1b4Smrg      case GL_VERTEX_ARRAY:
28227117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Vertex.Enabled);
28237117f1b4Smrg         break;
28247117f1b4Smrg      case GL_VERTEX_ARRAY_SIZE:
28257117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.Size);
28267117f1b4Smrg         break;
28277117f1b4Smrg      case GL_VERTEX_ARRAY_TYPE:
28287117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Vertex.Type);
28297117f1b4Smrg         break;
28307117f1b4Smrg      case GL_VERTEX_ARRAY_STRIDE:
28317117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.Stride);
28327117f1b4Smrg         break;
28337117f1b4Smrg      case GL_VERTEX_ARRAY_COUNT_EXT:
28347117f1b4Smrg         params[0] = (GLfloat)(0);
28357117f1b4Smrg         break;
28367117f1b4Smrg      case GL_NORMAL_ARRAY:
28377117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Normal.Enabled);
28387117f1b4Smrg         break;
28397117f1b4Smrg      case GL_NORMAL_ARRAY_TYPE:
28407117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Normal.Type);
28417117f1b4Smrg         break;
28427117f1b4Smrg      case GL_NORMAL_ARRAY_STRIDE:
28437117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Normal.Stride);
28447117f1b4Smrg         break;
28457117f1b4Smrg      case GL_NORMAL_ARRAY_COUNT_EXT:
28467117f1b4Smrg         params[0] = (GLfloat)(0);
28477117f1b4Smrg         break;
28487117f1b4Smrg      case GL_COLOR_ARRAY:
28497117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Color.Enabled);
28507117f1b4Smrg         break;
28517117f1b4Smrg      case GL_COLOR_ARRAY_SIZE:
28527117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.Size);
28537117f1b4Smrg         break;
28547117f1b4Smrg      case GL_COLOR_ARRAY_TYPE:
28557117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Color.Type);
28567117f1b4Smrg         break;
28577117f1b4Smrg      case GL_COLOR_ARRAY_STRIDE:
28587117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.Stride);
28597117f1b4Smrg         break;
28607117f1b4Smrg      case GL_COLOR_ARRAY_COUNT_EXT:
28617117f1b4Smrg         params[0] = (GLfloat)(0);
28627117f1b4Smrg         break;
28637117f1b4Smrg      case GL_INDEX_ARRAY:
28647117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Index.Enabled);
28657117f1b4Smrg         break;
28667117f1b4Smrg      case GL_INDEX_ARRAY_TYPE:
28677117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Index.Type);
28687117f1b4Smrg         break;
28697117f1b4Smrg      case GL_INDEX_ARRAY_STRIDE:
28707117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Index.Stride);
28717117f1b4Smrg         break;
28727117f1b4Smrg      case GL_INDEX_ARRAY_COUNT_EXT:
28737117f1b4Smrg         params[0] = (GLfloat)(0);
28747117f1b4Smrg         break;
28757117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY:
28767117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled);
28777117f1b4Smrg         break;
28787117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_SIZE:
28797117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size);
28807117f1b4Smrg         break;
28817117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_TYPE:
28827117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
28837117f1b4Smrg         break;
28847117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_STRIDE:
28857117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride);
28867117f1b4Smrg         break;
28877117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
28887117f1b4Smrg         params[0] = (GLfloat)(0);
28897117f1b4Smrg         break;
28907117f1b4Smrg      case GL_EDGE_FLAG_ARRAY:
28917117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->EdgeFlag.Enabled);
28927117f1b4Smrg         break;
28937117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_STRIDE:
28947117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->EdgeFlag.Stride);
28957117f1b4Smrg         break;
28967117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
28977117f1b4Smrg         params[0] = (GLfloat)(0);
28987117f1b4Smrg         break;
28997117f1b4Smrg      case GL_MAX_TEXTURE_UNITS_ARB:
29007117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetFloatv");
29017117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxTextureUnits);
29027117f1b4Smrg         break;
29037117f1b4Smrg      case GL_ACTIVE_TEXTURE_ARB:
29047117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetFloatv");
29057117f1b4Smrg         params[0] = (GLfloat)(GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit);
29067117f1b4Smrg         break;
29077117f1b4Smrg      case GL_CLIENT_ACTIVE_TEXTURE_ARB:
29087117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetFloatv");
29097117f1b4Smrg         params[0] = (GLfloat)(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
29107117f1b4Smrg         break;
29117117f1b4Smrg      case GL_TEXTURE_CUBE_MAP_ARB:
29127117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetFloatv");
29137117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB));
29147117f1b4Smrg         break;
29157117f1b4Smrg      case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
29167117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetFloatv");
2917c1f859d4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_CUBE_INDEX]->Name);
29187117f1b4Smrg         break;
29197117f1b4Smrg      case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
29207117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetFloatv");
29217117f1b4Smrg         params[0] = (GLfloat)((1 << (ctx->Const.MaxCubeTextureLevels - 1)));
29227117f1b4Smrg         break;
29237117f1b4Smrg      case GL_TEXTURE_COMPRESSION_HINT_ARB:
29247117f1b4Smrg         params[0] = (GLfloat)(ctx->Hint.TextureCompression);
29257117f1b4Smrg         break;
29267117f1b4Smrg      case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
29277117f1b4Smrg         params[0] = (GLfloat)(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE));
29287117f1b4Smrg         break;
29297117f1b4Smrg      case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
29307117f1b4Smrg         {
29317117f1b4Smrg         GLint formats[100];
29327117f1b4Smrg         GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
29337117f1b4Smrg         ASSERT(n <= 100);
29347117f1b4Smrg         for (i = 0; i < n; i++)
2935c1f859d4Smrg            params[i] = ENUM_TO_FLOAT(formats[i]);
29367117f1b4Smrg         }
29377117f1b4Smrg         break;
29387117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
29397117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetFloatv");
29407117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.LockFirst);
29417117f1b4Smrg         break;
29427117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
29437117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetFloatv");
29447117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.LockCount);
29457117f1b4Smrg         break;
29467117f1b4Smrg      case GL_TRANSPOSE_COLOR_MATRIX_ARB:
29477117f1b4Smrg         {
29487117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
29497117f1b4Smrg         params[0] = matrix[0];
29507117f1b4Smrg         params[1] = matrix[4];
29517117f1b4Smrg         params[2] = matrix[8];
29527117f1b4Smrg         params[3] = matrix[12];
29537117f1b4Smrg         params[4] = matrix[1];
29547117f1b4Smrg         params[5] = matrix[5];
29557117f1b4Smrg         params[6] = matrix[9];
29567117f1b4Smrg         params[7] = matrix[13];
29577117f1b4Smrg         params[8] = matrix[2];
29587117f1b4Smrg         params[9] = matrix[6];
29597117f1b4Smrg         params[10] = matrix[10];
29607117f1b4Smrg         params[11] = matrix[14];
29617117f1b4Smrg         params[12] = matrix[3];
29627117f1b4Smrg         params[13] = matrix[7];
29637117f1b4Smrg         params[14] = matrix[11];
29647117f1b4Smrg         params[15] = matrix[15];
29657117f1b4Smrg         }
29667117f1b4Smrg         break;
29677117f1b4Smrg      case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
29687117f1b4Smrg         {
29697117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
29707117f1b4Smrg         params[0] = matrix[0];
29717117f1b4Smrg         params[1] = matrix[4];
29727117f1b4Smrg         params[2] = matrix[8];
29737117f1b4Smrg         params[3] = matrix[12];
29747117f1b4Smrg         params[4] = matrix[1];
29757117f1b4Smrg         params[5] = matrix[5];
29767117f1b4Smrg         params[6] = matrix[9];
29777117f1b4Smrg         params[7] = matrix[13];
29787117f1b4Smrg         params[8] = matrix[2];
29797117f1b4Smrg         params[9] = matrix[6];
29807117f1b4Smrg         params[10] = matrix[10];
29817117f1b4Smrg         params[11] = matrix[14];
29827117f1b4Smrg         params[12] = matrix[3];
29837117f1b4Smrg         params[13] = matrix[7];
29847117f1b4Smrg         params[14] = matrix[11];
29857117f1b4Smrg         params[15] = matrix[15];
29867117f1b4Smrg         }
29877117f1b4Smrg         break;
29887117f1b4Smrg      case GL_TRANSPOSE_PROJECTION_MATRIX_ARB:
29897117f1b4Smrg         {
29907117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
29917117f1b4Smrg         params[0] = matrix[0];
29927117f1b4Smrg         params[1] = matrix[4];
29937117f1b4Smrg         params[2] = matrix[8];
29947117f1b4Smrg         params[3] = matrix[12];
29957117f1b4Smrg         params[4] = matrix[1];
29967117f1b4Smrg         params[5] = matrix[5];
29977117f1b4Smrg         params[6] = matrix[9];
29987117f1b4Smrg         params[7] = matrix[13];
29997117f1b4Smrg         params[8] = matrix[2];
30007117f1b4Smrg         params[9] = matrix[6];
30017117f1b4Smrg         params[10] = matrix[10];
30027117f1b4Smrg         params[11] = matrix[14];
30037117f1b4Smrg         params[12] = matrix[3];
30047117f1b4Smrg         params[13] = matrix[7];
30057117f1b4Smrg         params[14] = matrix[11];
30067117f1b4Smrg         params[15] = matrix[15];
30077117f1b4Smrg         }
30087117f1b4Smrg         break;
30097117f1b4Smrg      case GL_TRANSPOSE_TEXTURE_MATRIX_ARB:
30107117f1b4Smrg         {
30117117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
30127117f1b4Smrg         params[0] = matrix[0];
30137117f1b4Smrg         params[1] = matrix[4];
30147117f1b4Smrg         params[2] = matrix[8];
30157117f1b4Smrg         params[3] = matrix[12];
30167117f1b4Smrg         params[4] = matrix[1];
30177117f1b4Smrg         params[5] = matrix[5];
30187117f1b4Smrg         params[6] = matrix[9];
30197117f1b4Smrg         params[7] = matrix[13];
30207117f1b4Smrg         params[8] = matrix[2];
30217117f1b4Smrg         params[9] = matrix[6];
30227117f1b4Smrg         params[10] = matrix[10];
30237117f1b4Smrg         params[11] = matrix[14];
30247117f1b4Smrg         params[12] = matrix[3];
30257117f1b4Smrg         params[13] = matrix[7];
30267117f1b4Smrg         params[14] = matrix[11];
30277117f1b4Smrg         params[15] = matrix[15];
30287117f1b4Smrg         }
30297117f1b4Smrg         break;
30307117f1b4Smrg      case GL_COLOR_MATRIX_SGI:
30317117f1b4Smrg         {
30327117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
30337117f1b4Smrg         params[0] = matrix[0];
30347117f1b4Smrg         params[1] = matrix[1];
30357117f1b4Smrg         params[2] = matrix[2];
30367117f1b4Smrg         params[3] = matrix[3];
30377117f1b4Smrg         params[4] = matrix[4];
30387117f1b4Smrg         params[5] = matrix[5];
30397117f1b4Smrg         params[6] = matrix[6];
30407117f1b4Smrg         params[7] = matrix[7];
30417117f1b4Smrg         params[8] = matrix[8];
30427117f1b4Smrg         params[9] = matrix[9];
30437117f1b4Smrg         params[10] = matrix[10];
30447117f1b4Smrg         params[11] = matrix[11];
30457117f1b4Smrg         params[12] = matrix[12];
30467117f1b4Smrg         params[13] = matrix[13];
30477117f1b4Smrg         params[14] = matrix[14];
30487117f1b4Smrg         params[15] = matrix[15];
30497117f1b4Smrg         }
30507117f1b4Smrg         break;
30517117f1b4Smrg      case GL_COLOR_MATRIX_STACK_DEPTH_SGI:
30527117f1b4Smrg         params[0] = (GLfloat)(ctx->ColorMatrixStack.Depth + 1);
30537117f1b4Smrg         break;
30547117f1b4Smrg      case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI:
30557117f1b4Smrg         params[0] = (GLfloat)(MAX_COLOR_STACK_DEPTH);
30567117f1b4Smrg         break;
30577117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_SCALE_SGI:
30587117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixScale[0];
30597117f1b4Smrg         break;
30607117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI:
30617117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixScale[1];
30627117f1b4Smrg         break;
30637117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI:
30647117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixScale[2];
30657117f1b4Smrg         break;
30667117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI:
30677117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixScale[3];
30687117f1b4Smrg         break;
30697117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_BIAS_SGI:
30707117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixBias[0];
30717117f1b4Smrg         break;
30727117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI:
30737117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixBias[1];
30747117f1b4Smrg         break;
30757117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI:
30767117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixBias[2];
30777117f1b4Smrg         break;
30787117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI:
30797117f1b4Smrg         params[0] = ctx->Pixel.PostColorMatrixBias[3];
30807117f1b4Smrg         break;
30817117f1b4Smrg      case GL_CONVOLUTION_1D_EXT:
30827117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30837117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Convolution1DEnabled);
30847117f1b4Smrg         break;
30857117f1b4Smrg      case GL_CONVOLUTION_2D_EXT:
30867117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30877117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Convolution2DEnabled);
30887117f1b4Smrg         break;
30897117f1b4Smrg      case GL_SEPARABLE_2D_EXT:
30907117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30917117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Separable2DEnabled);
30927117f1b4Smrg         break;
30937117f1b4Smrg      case GL_POST_CONVOLUTION_RED_SCALE_EXT:
30947117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30957117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionScale[0];
30967117f1b4Smrg         break;
30977117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:
30987117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
30997117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionScale[1];
31007117f1b4Smrg         break;
31017117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:
31027117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31037117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionScale[2];
31047117f1b4Smrg         break;
31057117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:
31067117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31077117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionScale[3];
31087117f1b4Smrg         break;
31097117f1b4Smrg      case GL_POST_CONVOLUTION_RED_BIAS_EXT:
31107117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31117117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionBias[0];
31127117f1b4Smrg         break;
31137117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:
31147117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31157117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionBias[1];
31167117f1b4Smrg         break;
31177117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:
31187117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31197117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionBias[2];
31207117f1b4Smrg         break;
31217117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:
31227117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetFloatv");
31237117f1b4Smrg         params[0] = ctx->Pixel.PostConvolutionBias[3];
31247117f1b4Smrg         break;
31257117f1b4Smrg      case GL_HISTOGRAM:
31267117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetFloatv");
31277117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.HistogramEnabled);
31287117f1b4Smrg         break;
31297117f1b4Smrg      case GL_MINMAX:
31307117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetFloatv");
31317117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MinMaxEnabled);
31327117f1b4Smrg         break;
31337117f1b4Smrg      case GL_COLOR_TABLE_SGI:
31347117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetFloatv");
31357117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]);
31367117f1b4Smrg         break;
31377117f1b4Smrg      case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
31387117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetFloatv");
31397117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]);
31407117f1b4Smrg         break;
31417117f1b4Smrg      case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
31427117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetFloatv");
31437117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]);
31447117f1b4Smrg         break;
31457117f1b4Smrg      case GL_TEXTURE_COLOR_TABLE_SGI:
31467117f1b4Smrg         CHECK_EXT1(SGI_texture_color_table, "GetFloatv");
31477117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled);
31487117f1b4Smrg         break;
31497117f1b4Smrg      case GL_COLOR_SUM_EXT:
31507117f1b4Smrg         CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetFloatv");
31517117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Fog.ColorSumEnabled);
31527117f1b4Smrg         break;
31537117f1b4Smrg      case GL_CURRENT_SECONDARY_COLOR_EXT:
31547117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31557117f1b4Smrg         {
31567117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
31577117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0];
31587117f1b4Smrg         params[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1];
31597117f1b4Smrg         params[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2];
31607117f1b4Smrg         params[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3];
31617117f1b4Smrg         }
31627117f1b4Smrg         break;
31637117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_EXT:
31647117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31657117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->SecondaryColor.Enabled);
31667117f1b4Smrg         break;
31677117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
31687117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31697117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->SecondaryColor.Type);
31707117f1b4Smrg         break;
31717117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
31727117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31737117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.Stride);
31747117f1b4Smrg         break;
31757117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
31767117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetFloatv");
31777117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.Size);
31787117f1b4Smrg         break;
31797117f1b4Smrg      case GL_CURRENT_FOG_COORDINATE_EXT:
31807117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31817117f1b4Smrg         {
31827117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
31837117f1b4Smrg         params[0] = ctx->Current.Attrib[VERT_ATTRIB_FOG][0];
31847117f1b4Smrg         }
31857117f1b4Smrg         break;
31867117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_EXT:
31877117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31887117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->FogCoord.Enabled);
31897117f1b4Smrg         break;
31907117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
31917117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31927117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->FogCoord.Type);
31937117f1b4Smrg         break;
31947117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
31957117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
31967117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->FogCoord.Stride);
31977117f1b4Smrg         break;
31987117f1b4Smrg      case GL_FOG_COORDINATE_SOURCE_EXT:
31997117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetFloatv");
32007117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Fog.FogCoordinateSource);
32017117f1b4Smrg         break;
32027117f1b4Smrg      case GL_MAX_TEXTURE_LOD_BIAS_EXT:
32037117f1b4Smrg         CHECK_EXT1(EXT_texture_lod_bias, "GetFloatv");
32047117f1b4Smrg         params[0] = ctx->Const.MaxTextureLodBias;
32057117f1b4Smrg         break;
32067117f1b4Smrg      case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
32077117f1b4Smrg         CHECK_EXT1(EXT_texture_filter_anisotropic, "GetFloatv");
32087117f1b4Smrg         params[0] = ctx->Const.MaxTextureMaxAnisotropy;
32097117f1b4Smrg         break;
32107117f1b4Smrg      case GL_MULTISAMPLE_ARB:
32117117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.Enabled);
32127117f1b4Smrg         break;
32137117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
32147117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleAlphaToCoverage);
32157117f1b4Smrg         break;
32167117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_ONE_ARB:
32177117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleAlphaToOne);
32187117f1b4Smrg         break;
32197117f1b4Smrg      case GL_SAMPLE_COVERAGE_ARB:
32207117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleCoverage);
32217117f1b4Smrg         break;
32227117f1b4Smrg      case GL_SAMPLE_COVERAGE_VALUE_ARB:
32237117f1b4Smrg         params[0] = ctx->Multisample.SampleCoverageValue;
32247117f1b4Smrg         break;
32257117f1b4Smrg      case GL_SAMPLE_COVERAGE_INVERT_ARB:
32267117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleCoverageInvert);
32277117f1b4Smrg         break;
32287117f1b4Smrg      case GL_SAMPLE_BUFFERS_ARB:
32297117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.sampleBuffers);
32307117f1b4Smrg         break;
32317117f1b4Smrg      case GL_SAMPLES_ARB:
32327117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Visual.samples);
32337117f1b4Smrg         break;
32347117f1b4Smrg      case GL_RASTER_POSITION_UNCLIPPED_IBM:
32357117f1b4Smrg         CHECK_EXT1(IBM_rasterpos_clip, "GetFloatv");
32367117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.RasterPositionUnclipped);
32377117f1b4Smrg         break;
32387117f1b4Smrg      case GL_POINT_SPRITE_NV:
32397117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetFloatv");
32407117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Point.PointSprite);
32417117f1b4Smrg         break;
32427117f1b4Smrg      case GL_POINT_SPRITE_R_MODE_NV:
32437117f1b4Smrg         CHECK_EXT1(NV_point_sprite, "GetFloatv");
32447117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Point.SpriteRMode);
32457117f1b4Smrg         break;
32467117f1b4Smrg      case GL_POINT_SPRITE_COORD_ORIGIN:
32477117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetFloatv");
32487117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Point.SpriteOrigin);
32497117f1b4Smrg         break;
32507117f1b4Smrg      case GL_GENERATE_MIPMAP_HINT_SGIS:
32517117f1b4Smrg         CHECK_EXT1(SGIS_generate_mipmap, "GetFloatv");
32527117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.GenerateMipmap);
32537117f1b4Smrg         break;
32547117f1b4Smrg      case GL_VERTEX_PROGRAM_BINDING_NV:
32557117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32567117f1b4Smrg         params[0] = (GLfloat)((ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0));
32577117f1b4Smrg         break;
32587117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY0_NV:
32597117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32607117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[0].Enabled);
32617117f1b4Smrg         break;
32627117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY1_NV:
32637117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32647117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[1].Enabled);
32657117f1b4Smrg         break;
32667117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY2_NV:
32677117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32687117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[2].Enabled);
32697117f1b4Smrg         break;
32707117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY3_NV:
32717117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32727117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[3].Enabled);
32737117f1b4Smrg         break;
32747117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY4_NV:
32757117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32767117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[4].Enabled);
32777117f1b4Smrg         break;
32787117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY5_NV:
32797117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32807117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[5].Enabled);
32817117f1b4Smrg         break;
32827117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY6_NV:
32837117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32847117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[6].Enabled);
32857117f1b4Smrg         break;
32867117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY7_NV:
32877117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32887117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[7].Enabled);
32897117f1b4Smrg         break;
32907117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY8_NV:
32917117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32927117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[8].Enabled);
32937117f1b4Smrg         break;
32947117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY9_NV:
32957117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
32967117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[9].Enabled);
32977117f1b4Smrg         break;
32987117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY10_NV:
32997117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33007117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[10].Enabled);
33017117f1b4Smrg         break;
33027117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY11_NV:
33037117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33047117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[11].Enabled);
33057117f1b4Smrg         break;
33067117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY12_NV:
33077117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33087117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[12].Enabled);
33097117f1b4Smrg         break;
33107117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY13_NV:
33117117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33127117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[13].Enabled);
33137117f1b4Smrg         break;
33147117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY14_NV:
33157117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33167117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[14].Enabled);
33177117f1b4Smrg         break;
33187117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY15_NV:
33197117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33207117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[15].Enabled);
33217117f1b4Smrg         break;
33227117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB0_4_NV:
33237117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33247117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[0]);
33257117f1b4Smrg         break;
33267117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB1_4_NV:
33277117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33287117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[1]);
33297117f1b4Smrg         break;
33307117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB2_4_NV:
33317117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33327117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[2]);
33337117f1b4Smrg         break;
33347117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB3_4_NV:
33357117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33367117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[3]);
33377117f1b4Smrg         break;
33387117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB4_4_NV:
33397117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33407117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[4]);
33417117f1b4Smrg         break;
33427117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB5_4_NV:
33437117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33447117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[5]);
33457117f1b4Smrg         break;
33467117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB6_4_NV:
33477117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33487117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[6]);
33497117f1b4Smrg         break;
33507117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB7_4_NV:
33517117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33527117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[7]);
33537117f1b4Smrg         break;
33547117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB8_4_NV:
33557117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33567117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[8]);
33577117f1b4Smrg         break;
33587117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB9_4_NV:
33597117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33607117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[9]);
33617117f1b4Smrg         break;
33627117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB10_4_NV:
33637117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33647117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[10]);
33657117f1b4Smrg         break;
33667117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB11_4_NV:
33677117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33687117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[11]);
33697117f1b4Smrg         break;
33707117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB12_4_NV:
33717117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33727117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[12]);
33737117f1b4Smrg         break;
33747117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB13_4_NV:
33757117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33767117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[13]);
33777117f1b4Smrg         break;
33787117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB14_4_NV:
33797117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33807117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[14]);
33817117f1b4Smrg         break;
33827117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB15_4_NV:
33837117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetFloatv");
33847117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[15]);
33857117f1b4Smrg         break;
33867117f1b4Smrg      case GL_FRAGMENT_PROGRAM_NV:
33877117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetFloatv");
33887117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->FragmentProgram.Enabled);
33897117f1b4Smrg         break;
33907117f1b4Smrg      case GL_FRAGMENT_PROGRAM_BINDING_NV:
33917117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetFloatv");
33927117f1b4Smrg         params[0] = (GLfloat)(ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0);
33937117f1b4Smrg         break;
33947117f1b4Smrg      case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV:
33957117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetFloatv");
33967117f1b4Smrg         params[0] = (GLfloat)(MAX_NV_FRAGMENT_PROGRAM_PARAMS);
33977117f1b4Smrg         break;
33987117f1b4Smrg      case GL_TEXTURE_RECTANGLE_NV:
33997117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetFloatv");
34007117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV));
34017117f1b4Smrg         break;
34027117f1b4Smrg      case GL_TEXTURE_BINDING_RECTANGLE_NV:
34037117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetFloatv");
3404c1f859d4Smrg         params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_RECT_INDEX]->Name);
34057117f1b4Smrg         break;
34067117f1b4Smrg      case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
34077117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetFloatv");
34087117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxTextureRectSize);
34097117f1b4Smrg         break;
34107117f1b4Smrg      case GL_STENCIL_TEST_TWO_SIDE_EXT:
34117117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetFloatv");
34127117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Stencil.TestTwoSide);
34137117f1b4Smrg         break;
34147117f1b4Smrg      case GL_ACTIVE_STENCIL_FACE_EXT:
34157117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetFloatv");
34167117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT);
34177117f1b4Smrg         break;
34187117f1b4Smrg      case GL_MAX_SHININESS_NV:
34197117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetFloatv");
34207117f1b4Smrg         params[0] = ctx->Const.MaxShininess;
34217117f1b4Smrg         break;
34227117f1b4Smrg      case GL_MAX_SPOT_EXPONENT_NV:
34237117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetFloatv");
34247117f1b4Smrg         params[0] = ctx->Const.MaxSpotExponent;
34257117f1b4Smrg         break;
34267117f1b4Smrg      case GL_ARRAY_BUFFER_BINDING_ARB:
34277117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayBufferObj->Name);
34287117f1b4Smrg         break;
34297117f1b4Smrg      case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
34307117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.BufferObj->Name);
34317117f1b4Smrg         break;
34327117f1b4Smrg      case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
34337117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Normal.BufferObj->Name);
34347117f1b4Smrg         break;
34357117f1b4Smrg      case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
34367117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.BufferObj->Name);
34377117f1b4Smrg         break;
34387117f1b4Smrg      case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
34397117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Index.BufferObj->Name);
34407117f1b4Smrg         break;
34417117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
34427117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
34437117f1b4Smrg         break;
34447117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
34457117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name);
34467117f1b4Smrg         break;
34477117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
34487117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name);
34497117f1b4Smrg         break;
34507117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
34517117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->FogCoord.BufferObj->Name);
34527117f1b4Smrg         break;
34537117f1b4Smrg      case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
34547117f1b4Smrg         params[0] = (GLfloat)(ctx->Array.ElementArrayBufferObj->Name);
34557117f1b4Smrg         break;
34567117f1b4Smrg      case GL_PIXEL_PACK_BUFFER_BINDING_EXT:
34577117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetFloatv");
34587117f1b4Smrg         params[0] = (GLfloat)(ctx->Pack.BufferObj->Name);
34597117f1b4Smrg         break;
34607117f1b4Smrg      case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT:
34617117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetFloatv");
34627117f1b4Smrg         params[0] = (GLfloat)(ctx->Unpack.BufferObj->Name);
34637117f1b4Smrg         break;
34647117f1b4Smrg      case GL_VERTEX_PROGRAM_ARB:
34657117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv");
34667117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.Enabled);
34677117f1b4Smrg         break;
34687117f1b4Smrg      case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
34697117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv");
34707117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.PointSizeEnabled);
34717117f1b4Smrg         break;
34727117f1b4Smrg      case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
34737117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv");
34747117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.TwoSideEnabled);
34757117f1b4Smrg         break;
34767117f1b4Smrg      case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
34777117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv");
34787117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxProgramMatrixStackDepth);
34797117f1b4Smrg         break;
34807117f1b4Smrg      case GL_MAX_PROGRAM_MATRICES_ARB:
34817117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv");
34827117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxProgramMatrices);
34837117f1b4Smrg         break;
34847117f1b4Smrg      case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
34857117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv");
34867117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->CurrentStack->Depth + 1);
34877117f1b4Smrg         break;
34887117f1b4Smrg      case GL_CURRENT_MATRIX_ARB:
34897117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetFloatv");
34907117f1b4Smrg         {
34917117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
34927117f1b4Smrg         params[0] = matrix[0];
34937117f1b4Smrg         params[1] = matrix[1];
34947117f1b4Smrg         params[2] = matrix[2];
34957117f1b4Smrg         params[3] = matrix[3];
34967117f1b4Smrg         params[4] = matrix[4];
34977117f1b4Smrg         params[5] = matrix[5];
34987117f1b4Smrg         params[6] = matrix[6];
34997117f1b4Smrg         params[7] = matrix[7];
35007117f1b4Smrg         params[8] = matrix[8];
35017117f1b4Smrg         params[9] = matrix[9];
35027117f1b4Smrg         params[10] = matrix[10];
35037117f1b4Smrg         params[11] = matrix[11];
35047117f1b4Smrg         params[12] = matrix[12];
35057117f1b4Smrg         params[13] = matrix[13];
35067117f1b4Smrg         params[14] = matrix[14];
35077117f1b4Smrg         params[15] = matrix[15];
35087117f1b4Smrg         }
35097117f1b4Smrg         break;
35107117f1b4Smrg      case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
35117117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetFloatv");
35127117f1b4Smrg         {
35137117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
35147117f1b4Smrg         params[0] = matrix[0];
35157117f1b4Smrg         params[1] = matrix[4];
35167117f1b4Smrg         params[2] = matrix[8];
35177117f1b4Smrg         params[3] = matrix[12];
35187117f1b4Smrg         params[4] = matrix[1];
35197117f1b4Smrg         params[5] = matrix[5];
35207117f1b4Smrg         params[6] = matrix[9];
35217117f1b4Smrg         params[7] = matrix[13];
35227117f1b4Smrg         params[8] = matrix[2];
35237117f1b4Smrg         params[9] = matrix[6];
35247117f1b4Smrg         params[10] = matrix[10];
35257117f1b4Smrg         params[11] = matrix[14];
35267117f1b4Smrg         params[12] = matrix[3];
35277117f1b4Smrg         params[13] = matrix[7];
35287117f1b4Smrg         params[14] = matrix[11];
35297117f1b4Smrg         params[15] = matrix[15];
35307117f1b4Smrg         }
35317117f1b4Smrg         break;
35327117f1b4Smrg      case GL_MAX_VERTEX_ATTRIBS_ARB:
35337117f1b4Smrg         CHECK_EXT1(ARB_vertex_program, "GetFloatv");
35347117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.VertexProgram.MaxAttribs);
35357117f1b4Smrg         break;
35367117f1b4Smrg      case GL_PROGRAM_ERROR_POSITION_ARB:
35377117f1b4Smrg         CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetFloatv");
35387117f1b4Smrg         params[0] = (GLfloat)(ctx->Program.ErrorPos);
35397117f1b4Smrg         break;
35407117f1b4Smrg      case GL_FRAGMENT_PROGRAM_ARB:
35417117f1b4Smrg         CHECK_EXT1(ARB_fragment_program, "GetFloatv");
35427117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->FragmentProgram.Enabled);
35437117f1b4Smrg         break;
35447117f1b4Smrg      case GL_MAX_TEXTURE_COORDS_ARB:
35457117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetFloatv");
35467117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxTextureCoordUnits);
35477117f1b4Smrg         break;
35487117f1b4Smrg      case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
35497117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetFloatv");
35507117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxTextureImageUnits);
35517117f1b4Smrg         break;
35527117f1b4Smrg      case GL_DEPTH_BOUNDS_TEST_EXT:
35537117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetFloatv");
35547117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.BoundsTest);
35557117f1b4Smrg         break;
35567117f1b4Smrg      case GL_DEPTH_BOUNDS_EXT:
35577117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetFloatv");
35587117f1b4Smrg         params[0] = ctx->Depth.BoundsMin;
35597117f1b4Smrg         params[1] = ctx->Depth.BoundsMax;
35607117f1b4Smrg         break;
35614a49301eSmrg      case GL_DEPTH_CLAMP:
35624a49301eSmrg         CHECK_EXT1(ARB_depth_clamp, "GetFloatv");
35634a49301eSmrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.DepthClamp);
35647117f1b4Smrg         break;
35657117f1b4Smrg      case GL_MAX_DRAW_BUFFERS_ARB:
35667117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxDrawBuffers);
35677117f1b4Smrg         break;
35687117f1b4Smrg      case GL_DRAW_BUFFER0_ARB:
35697117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->DrawBuffer->ColorDrawBuffer[0]);
35707117f1b4Smrg         break;
35717117f1b4Smrg      case GL_DRAW_BUFFER1_ARB:
35727117f1b4Smrg         {
35737117f1b4Smrg         GLenum buffer;
35747117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
35757117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
35767117f1b4Smrg            return;
35777117f1b4Smrg         }
35787117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[1];
35797117f1b4Smrg         params[0] = ENUM_TO_FLOAT(buffer);
35807117f1b4Smrg         }
35817117f1b4Smrg         break;
35827117f1b4Smrg      case GL_DRAW_BUFFER2_ARB:
35837117f1b4Smrg         {
35847117f1b4Smrg         GLenum buffer;
35857117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
35867117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
35877117f1b4Smrg            return;
35887117f1b4Smrg         }
35897117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[2];
35907117f1b4Smrg         params[0] = ENUM_TO_FLOAT(buffer);
35917117f1b4Smrg         }
35927117f1b4Smrg         break;
35937117f1b4Smrg      case GL_DRAW_BUFFER3_ARB:
35947117f1b4Smrg         {
35957117f1b4Smrg         GLenum buffer;
35967117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
35977117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
35987117f1b4Smrg            return;
35997117f1b4Smrg         }
36007117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[3];
36017117f1b4Smrg         params[0] = ENUM_TO_FLOAT(buffer);
36027117f1b4Smrg         }
36037117f1b4Smrg         break;
36047117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
36057117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetFloatv");
36064a49301eSmrg         params[0] = (GLfloat)(_mesa_get_color_read_type(ctx));
36077117f1b4Smrg         break;
36087117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
36097117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetFloatv");
36104a49301eSmrg         params[0] = (GLfloat)(_mesa_get_color_read_format(ctx));
36117117f1b4Smrg         break;
36127117f1b4Smrg      case GL_NUM_FRAGMENT_REGISTERS_ATI:
36137117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36147117f1b4Smrg         params[0] = (GLfloat)(6);
36157117f1b4Smrg         break;
36167117f1b4Smrg      case GL_NUM_FRAGMENT_CONSTANTS_ATI:
36177117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36187117f1b4Smrg         params[0] = (GLfloat)(8);
36197117f1b4Smrg         break;
36207117f1b4Smrg      case GL_NUM_PASSES_ATI:
36217117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36227117f1b4Smrg         params[0] = (GLfloat)(2);
36237117f1b4Smrg         break;
36247117f1b4Smrg      case GL_NUM_INSTRUCTIONS_PER_PASS_ATI:
36257117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36267117f1b4Smrg         params[0] = (GLfloat)(8);
36277117f1b4Smrg         break;
36287117f1b4Smrg      case GL_NUM_INSTRUCTIONS_TOTAL_ATI:
36297117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36307117f1b4Smrg         params[0] = (GLfloat)(16);
36317117f1b4Smrg         break;
36327117f1b4Smrg      case GL_COLOR_ALPHA_PAIRING_ATI:
36337117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36347117f1b4Smrg         params[0] = BOOLEAN_TO_FLOAT(GL_TRUE);
36357117f1b4Smrg         break;
36367117f1b4Smrg      case GL_NUM_LOOPBACK_COMPONENTS_ATI:
36377117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36387117f1b4Smrg         params[0] = (GLfloat)(3);
36397117f1b4Smrg         break;
36407117f1b4Smrg      case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI:
36417117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
36427117f1b4Smrg         params[0] = (GLfloat)(3);
36437117f1b4Smrg         break;
36447117f1b4Smrg      case GL_STENCIL_BACK_FUNC:
36457117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.Function[1]);
36467117f1b4Smrg         break;
36477117f1b4Smrg      case GL_STENCIL_BACK_VALUE_MASK:
36487117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.ValueMask[1]);
36497117f1b4Smrg         break;
36507117f1b4Smrg      case GL_STENCIL_BACK_WRITEMASK:
36517117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.WriteMask[1]);
36527117f1b4Smrg         break;
36537117f1b4Smrg      case GL_STENCIL_BACK_REF:
36547117f1b4Smrg         params[0] = (GLfloat)(ctx->Stencil.Ref[1]);
36557117f1b4Smrg         break;
36567117f1b4Smrg      case GL_STENCIL_BACK_FAIL:
36577117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.FailFunc[1]);
36587117f1b4Smrg         break;
36597117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
36607117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZFailFunc[1]);
36617117f1b4Smrg         break;
36627117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_PASS:
36637117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZPassFunc[1]);
36647117f1b4Smrg         break;
36657117f1b4Smrg      case GL_FRAMEBUFFER_BINDING_EXT:
36667117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
36677117f1b4Smrg         params[0] = (GLfloat)(ctx->DrawBuffer->Name);
36687117f1b4Smrg         break;
36697117f1b4Smrg      case GL_RENDERBUFFER_BINDING_EXT:
36707117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
36717117f1b4Smrg         params[0] = (GLfloat)(ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0);
36727117f1b4Smrg         break;
36737117f1b4Smrg      case GL_MAX_COLOR_ATTACHMENTS_EXT:
36747117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
36757117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxColorAttachments);
36767117f1b4Smrg         break;
36777117f1b4Smrg      case GL_MAX_RENDERBUFFER_SIZE_EXT:
36787117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
36797117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxRenderbufferSize);
36807117f1b4Smrg         break;
36817117f1b4Smrg      case GL_READ_FRAMEBUFFER_BINDING_EXT:
36827117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_blit, "GetFloatv");
36837117f1b4Smrg         params[0] = (GLfloat)(ctx->ReadBuffer->Name);
36847117f1b4Smrg         break;
36854a49301eSmrg      case GL_PROVOKING_VERTEX_EXT:
36864a49301eSmrg         CHECK_EXT1(EXT_provoking_vertex, "GetFloatv");
36874a49301eSmrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Light.ProvokingVertex);
36884a49301eSmrg         break;
36894a49301eSmrg      case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT:
36904a49301eSmrg         CHECK_EXT1(EXT_provoking_vertex, "GetFloatv");
36914a49301eSmrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Const.QuadsFollowProvokingVertexConvention);
36924a49301eSmrg         break;
36937117f1b4Smrg      case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
36947117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
36957117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.FragmentProgram.MaxUniformComponents);
36967117f1b4Smrg         break;
36977117f1b4Smrg      case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
36987117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
36997117f1b4Smrg         params[0] = ENUM_TO_FLOAT(ctx->Hint.FragmentShaderDerivative);
37007117f1b4Smrg         break;
37017117f1b4Smrg      case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
37027117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
37037117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.VertexProgram.MaxUniformComponents);
37047117f1b4Smrg         break;
37057117f1b4Smrg      case GL_MAX_VARYING_FLOATS_ARB:
37067117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
37077117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxVarying * 4);
37087117f1b4Smrg         break;
37097117f1b4Smrg      case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
37107117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
37117117f1b4Smrg         params[0] = (GLfloat)(ctx->Const.MaxVertexTextureImageUnits);
37127117f1b4Smrg         break;
37137117f1b4Smrg      case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
37147117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
37157117f1b4Smrg         params[0] = (GLfloat)(MAX_COMBINED_TEXTURE_IMAGE_UNITS);
37167117f1b4Smrg         break;
37177117f1b4Smrg      case GL_CURRENT_PROGRAM:
37187117f1b4Smrg         CHECK_EXT1(ARB_shader_objects, "GetFloatv");
37197117f1b4Smrg         params[0] = (GLfloat)(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0);
37207117f1b4Smrg         break;
37214a49301eSmrg      case GL_MAX_SAMPLES:
37224a49301eSmrg         CHECK_EXT1(ARB_framebuffer_object, "GetFloatv");
37234a49301eSmrg         params[0] = (GLfloat)(ctx->Const.MaxSamples);
37244a49301eSmrg         break;
3725c7037ccdSmrg      case GL_VERTEX_ARRAY_BINDING_APPLE:
3726c7037ccdSmrg         CHECK_EXT1(APPLE_vertex_array_object, "GetFloatv");
3727c7037ccdSmrg         params[0] = (GLfloat)(ctx->Array.ArrayObj->Name);
3728c7037ccdSmrg         break;
37294a49301eSmrg      case GL_TEXTURE_CUBE_MAP_SEAMLESS:
37304a49301eSmrg         CHECK_EXT1(ARB_seamless_cube_map, "GetFloatv");
37314a49301eSmrg         params[0] = BOOLEAN_TO_FLOAT(ctx->Texture.CubeMapSeamless);
37324a49301eSmrg         break;
37334a49301eSmrg      case GL_MAX_SERVER_WAIT_TIMEOUT:
37344a49301eSmrg         CHECK_EXT1(ARB_sync, "GetFloatv");
37354a49301eSmrg         params[0] = (GLfloat)(ctx->Const.MaxServerWaitTimeout);
37364a49301eSmrg         break;
37377117f1b4Smrg      default:
37387117f1b4Smrg         _mesa_error(ctx, GL_INVALID_ENUM, "glGetFloatv(pname=0x%x)", pname);
37397117f1b4Smrg   }
37407117f1b4Smrg}
37417117f1b4Smrg
37427117f1b4Smrgvoid GLAPIENTRY
37437117f1b4Smrg_mesa_GetIntegerv( GLenum pname, GLint *params )
37447117f1b4Smrg{
37457117f1b4Smrg   GET_CURRENT_CONTEXT(ctx);
37467117f1b4Smrg   ASSERT_OUTSIDE_BEGIN_END(ctx);
37477117f1b4Smrg
37487117f1b4Smrg   if (!params)
37497117f1b4Smrg      return;
37507117f1b4Smrg
37517117f1b4Smrg   if (ctx->NewState)
37527117f1b4Smrg      _mesa_update_state(ctx);
37537117f1b4Smrg
37547117f1b4Smrg   if (ctx->Driver.GetIntegerv &&
37557117f1b4Smrg       ctx->Driver.GetIntegerv(ctx, pname, params))
37567117f1b4Smrg      return;
37577117f1b4Smrg
37587117f1b4Smrg   switch (pname) {
37597117f1b4Smrg      case GL_ACCUM_RED_BITS:
37607117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.accumRedBits;
37617117f1b4Smrg         break;
37627117f1b4Smrg      case GL_ACCUM_GREEN_BITS:
37637117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.accumGreenBits;
37647117f1b4Smrg         break;
37657117f1b4Smrg      case GL_ACCUM_BLUE_BITS:
37667117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.accumBlueBits;
37677117f1b4Smrg         break;
37687117f1b4Smrg      case GL_ACCUM_ALPHA_BITS:
37697117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.accumAlphaBits;
37707117f1b4Smrg         break;
37717117f1b4Smrg      case GL_ACCUM_CLEAR_VALUE:
37727117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Accum.ClearColor[0]);
37737117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Accum.ClearColor[1]);
37747117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Accum.ClearColor[2]);
37757117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Accum.ClearColor[3]);
37767117f1b4Smrg         break;
37777117f1b4Smrg      case GL_ALPHA_BIAS:
37787117f1b4Smrg         params[0] = IROUND(ctx->Pixel.AlphaBias);
37797117f1b4Smrg         break;
37807117f1b4Smrg      case GL_ALPHA_BITS:
37817117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.alphaBits;
37827117f1b4Smrg         break;
37837117f1b4Smrg      case GL_ALPHA_SCALE:
37847117f1b4Smrg         params[0] = IROUND(ctx->Pixel.AlphaScale);
37857117f1b4Smrg         break;
37867117f1b4Smrg      case GL_ALPHA_TEST:
37877117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.AlphaEnabled);
37887117f1b4Smrg         break;
37897117f1b4Smrg      case GL_ALPHA_TEST_FUNC:
37907117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.AlphaFunc);
37917117f1b4Smrg         break;
37927117f1b4Smrg      case GL_ALPHA_TEST_REF:
37937117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Color.AlphaRef);
37947117f1b4Smrg         break;
37957117f1b4Smrg      case GL_ATTRIB_STACK_DEPTH:
37967117f1b4Smrg         params[0] = ctx->AttribStackDepth;
37977117f1b4Smrg         break;
37987117f1b4Smrg      case GL_AUTO_NORMAL:
37997117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.AutoNormal);
38007117f1b4Smrg         break;
38017117f1b4Smrg      case GL_AUX_BUFFERS:
38027117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.numAuxBuffers;
38037117f1b4Smrg         break;
38047117f1b4Smrg      case GL_BLEND:
38057117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.BlendEnabled);
38067117f1b4Smrg         break;
38077117f1b4Smrg      case GL_BLEND_DST:
38087117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendDstRGB);
38097117f1b4Smrg         break;
38107117f1b4Smrg      case GL_BLEND_SRC:
38117117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendSrcRGB);
38127117f1b4Smrg         break;
38137117f1b4Smrg      case GL_BLEND_SRC_RGB_EXT:
38147117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendSrcRGB);
38157117f1b4Smrg         break;
38167117f1b4Smrg      case GL_BLEND_DST_RGB_EXT:
38177117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendDstRGB);
38187117f1b4Smrg         break;
38197117f1b4Smrg      case GL_BLEND_SRC_ALPHA_EXT:
38207117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendSrcA);
38217117f1b4Smrg         break;
38227117f1b4Smrg      case GL_BLEND_DST_ALPHA_EXT:
38237117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendDstA);
38247117f1b4Smrg         break;
38257117f1b4Smrg      case GL_BLEND_EQUATION:
38267117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendEquationRGB );
38277117f1b4Smrg         break;
38287117f1b4Smrg      case GL_BLEND_EQUATION_ALPHA_EXT:
38297117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.BlendEquationA );
38307117f1b4Smrg         break;
38317117f1b4Smrg      case GL_BLEND_COLOR_EXT:
38327117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Color.BlendColor[0]);
38337117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Color.BlendColor[1]);
38347117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Color.BlendColor[2]);
38357117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Color.BlendColor[3]);
38367117f1b4Smrg         break;
38377117f1b4Smrg      case GL_BLUE_BIAS:
38387117f1b4Smrg         params[0] = IROUND(ctx->Pixel.BlueBias);
38397117f1b4Smrg         break;
38407117f1b4Smrg      case GL_BLUE_BITS:
38417117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.blueBits;
38427117f1b4Smrg         break;
38437117f1b4Smrg      case GL_BLUE_SCALE:
38447117f1b4Smrg         params[0] = IROUND(ctx->Pixel.BlueScale);
38457117f1b4Smrg         break;
38467117f1b4Smrg      case GL_CLIENT_ATTRIB_STACK_DEPTH:
38477117f1b4Smrg         params[0] = ctx->ClientAttribStackDepth;
38487117f1b4Smrg         break;
38497117f1b4Smrg      case GL_CLIP_PLANE0:
38507117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 0) & 1);
38517117f1b4Smrg         break;
38527117f1b4Smrg      case GL_CLIP_PLANE1:
38537117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 1) & 1);
38547117f1b4Smrg         break;
38557117f1b4Smrg      case GL_CLIP_PLANE2:
38567117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 2) & 1);
38577117f1b4Smrg         break;
38587117f1b4Smrg      case GL_CLIP_PLANE3:
38597117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 3) & 1);
38607117f1b4Smrg         break;
38617117f1b4Smrg      case GL_CLIP_PLANE4:
38627117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 4) & 1);
38637117f1b4Smrg         break;
38647117f1b4Smrg      case GL_CLIP_PLANE5:
38657117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 5) & 1);
38667117f1b4Smrg         break;
38677117f1b4Smrg      case GL_COLOR_CLEAR_VALUE:
38687117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Color.ClearColor[0]);
38697117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Color.ClearColor[1]);
38707117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Color.ClearColor[2]);
38717117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Color.ClearColor[3]);
38727117f1b4Smrg         break;
38737117f1b4Smrg      case GL_COLOR_MATERIAL:
38747117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.ColorMaterialEnabled);
38757117f1b4Smrg         break;
38767117f1b4Smrg      case GL_COLOR_MATERIAL_FACE:
38777117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Light.ColorMaterialFace);
38787117f1b4Smrg         break;
38797117f1b4Smrg      case GL_COLOR_MATERIAL_PARAMETER:
38807117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Light.ColorMaterialMode);
38817117f1b4Smrg         break;
38827117f1b4Smrg      case GL_COLOR_WRITEMASK:
38837117f1b4Smrg         params[0] = ctx->Color.ColorMask[RCOMP] ? 1 : 0;
38847117f1b4Smrg         params[1] = ctx->Color.ColorMask[GCOMP] ? 1 : 0;
38857117f1b4Smrg         params[2] = ctx->Color.ColorMask[BCOMP] ? 1 : 0;
38867117f1b4Smrg         params[3] = ctx->Color.ColorMask[ACOMP] ? 1 : 0;
38877117f1b4Smrg         break;
38887117f1b4Smrg      case GL_CULL_FACE:
38897117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.CullFlag);
38907117f1b4Smrg         break;
38917117f1b4Smrg      case GL_CULL_FACE_MODE:
38927117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Polygon.CullFaceMode);
38937117f1b4Smrg         break;
38947117f1b4Smrg      case GL_CURRENT_COLOR:
38957117f1b4Smrg         {
38967117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
38977117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]);
38987117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]);
38997117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]);
39007117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]);
39017117f1b4Smrg         }
39027117f1b4Smrg         break;
39037117f1b4Smrg      case GL_CURRENT_INDEX:
39047117f1b4Smrg         {
39057117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
39067117f1b4Smrg         params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]);
39077117f1b4Smrg         }
39087117f1b4Smrg         break;
39097117f1b4Smrg      case GL_CURRENT_NORMAL:
39107117f1b4Smrg         {
39117117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
39127117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]);
39137117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]);
39147117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]);
39157117f1b4Smrg         }
39167117f1b4Smrg         break;
39177117f1b4Smrg      case GL_CURRENT_RASTER_COLOR:
39187117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.RasterColor[0]);
39197117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.RasterColor[1]);
39207117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.RasterColor[2]);
39217117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Current.RasterColor[3]);
39227117f1b4Smrg         break;
39237117f1b4Smrg      case GL_CURRENT_RASTER_DISTANCE:
39247117f1b4Smrg         params[0] = IROUND(ctx->Current.RasterDistance);
39257117f1b4Smrg         break;
39267117f1b4Smrg      case GL_CURRENT_RASTER_INDEX:
39277117f1b4Smrg         params[0] = IROUND(ctx->Current.RasterIndex);
39287117f1b4Smrg         break;
39297117f1b4Smrg      case GL_CURRENT_RASTER_POSITION:
39307117f1b4Smrg         params[0] = IROUND(ctx->Current.RasterPos[0]);
39317117f1b4Smrg         params[1] = IROUND(ctx->Current.RasterPos[1]);
39327117f1b4Smrg         params[2] = IROUND(ctx->Current.RasterPos[2]);
39337117f1b4Smrg         params[3] = IROUND(ctx->Current.RasterPos[3]);
39347117f1b4Smrg         break;
39357117f1b4Smrg      case GL_CURRENT_RASTER_SECONDARY_COLOR:
39367117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[0]);
39377117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[1]);
39387117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[2]);
39397117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[3]);
39407117f1b4Smrg         break;
39417117f1b4Smrg      case GL_CURRENT_RASTER_TEXTURE_COORDS:
39427117f1b4Smrg         {
39437117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
39447117f1b4Smrg         params[0] = IROUND(ctx->Current.RasterTexCoords[texUnit][0]);
39457117f1b4Smrg         params[1] = IROUND(ctx->Current.RasterTexCoords[texUnit][1]);
39467117f1b4Smrg         params[2] = IROUND(ctx->Current.RasterTexCoords[texUnit][2]);
39477117f1b4Smrg         params[3] = IROUND(ctx->Current.RasterTexCoords[texUnit][3]);
39487117f1b4Smrg         }
39497117f1b4Smrg         break;
39507117f1b4Smrg      case GL_CURRENT_RASTER_POSITION_VALID:
39517117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Current.RasterPosValid);
39527117f1b4Smrg         break;
39537117f1b4Smrg      case GL_CURRENT_TEXTURE_COORDS:
39547117f1b4Smrg         {
39557117f1b4Smrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
39564a49301eSmrg         FLUSH_CURRENT(ctx, 0);
39577117f1b4Smrg         params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]);
39587117f1b4Smrg         params[1] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]);
39597117f1b4Smrg         params[2] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]);
39607117f1b4Smrg         params[3] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]);
39617117f1b4Smrg         }
39627117f1b4Smrg         break;
39637117f1b4Smrg      case GL_DEPTH_BIAS:
39647117f1b4Smrg         params[0] = IROUND(ctx->Pixel.DepthBias);
39657117f1b4Smrg         break;
39667117f1b4Smrg      case GL_DEPTH_BITS:
39677117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.depthBits;
39687117f1b4Smrg         break;
39697117f1b4Smrg      case GL_DEPTH_CLEAR_VALUE:
3970c1f859d4Smrg         params[0] = FLOAT_TO_INT(((GLfloat) ctx->Depth.Clear));
39717117f1b4Smrg         break;
39727117f1b4Smrg      case GL_DEPTH_FUNC:
39737117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Depth.Func);
39747117f1b4Smrg         break;
39757117f1b4Smrg      case GL_DEPTH_RANGE:
39767117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Viewport.Near);
39777117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Viewport.Far);
39787117f1b4Smrg         break;
39797117f1b4Smrg      case GL_DEPTH_SCALE:
39807117f1b4Smrg         params[0] = IROUND(ctx->Pixel.DepthScale);
39817117f1b4Smrg         break;
39827117f1b4Smrg      case GL_DEPTH_TEST:
39837117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Depth.Test);
39847117f1b4Smrg         break;
39857117f1b4Smrg      case GL_DEPTH_WRITEMASK:
39867117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Depth.Mask);
39877117f1b4Smrg         break;
39887117f1b4Smrg      case GL_DITHER:
39897117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.DitherFlag);
39907117f1b4Smrg         break;
39917117f1b4Smrg      case GL_DOUBLEBUFFER:
39927117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.doubleBufferMode);
39937117f1b4Smrg         break;
39947117f1b4Smrg      case GL_DRAW_BUFFER:
39957117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->DrawBuffer->ColorDrawBuffer[0]);
39967117f1b4Smrg         break;
39977117f1b4Smrg      case GL_EDGE_FLAG:
39987117f1b4Smrg         {
39997117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
40007117f1b4Smrg         params[0] = BOOLEAN_TO_INT((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0));
40017117f1b4Smrg         }
40027117f1b4Smrg         break;
40037117f1b4Smrg      case GL_FEEDBACK_BUFFER_SIZE:
40047117f1b4Smrg         params[0] = ctx->Feedback.BufferSize;
40057117f1b4Smrg         break;
40067117f1b4Smrg      case GL_FEEDBACK_BUFFER_TYPE:
40077117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Feedback.Type);
40087117f1b4Smrg         break;
40097117f1b4Smrg      case GL_FOG:
40107117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Fog.Enabled);
40117117f1b4Smrg         break;
40127117f1b4Smrg      case GL_FOG_COLOR:
40137117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Fog.Color[0]);
40147117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Fog.Color[1]);
40157117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Fog.Color[2]);
40167117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Fog.Color[3]);
40177117f1b4Smrg         break;
40187117f1b4Smrg      case GL_FOG_DENSITY:
40197117f1b4Smrg         params[0] = IROUND(ctx->Fog.Density);
40207117f1b4Smrg         break;
40217117f1b4Smrg      case GL_FOG_END:
40227117f1b4Smrg         params[0] = IROUND(ctx->Fog.End);
40237117f1b4Smrg         break;
40247117f1b4Smrg      case GL_FOG_HINT:
40257117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.Fog);
40267117f1b4Smrg         break;
40277117f1b4Smrg      case GL_FOG_INDEX:
40287117f1b4Smrg         params[0] = IROUND(ctx->Fog.Index);
40297117f1b4Smrg         break;
40307117f1b4Smrg      case GL_FOG_MODE:
40317117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Fog.Mode);
40327117f1b4Smrg         break;
40337117f1b4Smrg      case GL_FOG_START:
40347117f1b4Smrg         params[0] = IROUND(ctx->Fog.Start);
40357117f1b4Smrg         break;
40367117f1b4Smrg      case GL_FRONT_FACE:
40377117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Polygon.FrontFace);
40387117f1b4Smrg         break;
40397117f1b4Smrg      case GL_GREEN_BIAS:
40407117f1b4Smrg         params[0] = IROUND(ctx->Pixel.GreenBias);
40417117f1b4Smrg         break;
40427117f1b4Smrg      case GL_GREEN_BITS:
40437117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.greenBits;
40447117f1b4Smrg         break;
40457117f1b4Smrg      case GL_GREEN_SCALE:
40467117f1b4Smrg         params[0] = IROUND(ctx->Pixel.GreenScale);
40477117f1b4Smrg         break;
40487117f1b4Smrg      case GL_INDEX_BITS:
40497117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.indexBits;
40507117f1b4Smrg         break;
40517117f1b4Smrg      case GL_INDEX_CLEAR_VALUE:
40527117f1b4Smrg         params[0] = ctx->Color.ClearIndex;
40537117f1b4Smrg         break;
40547117f1b4Smrg      case GL_INDEX_MODE:
40557117f1b4Smrg         params[0] = BOOLEAN_TO_INT(!ctx->DrawBuffer->Visual.rgbMode);
40567117f1b4Smrg         break;
40577117f1b4Smrg      case GL_INDEX_OFFSET:
40587117f1b4Smrg         params[0] = ctx->Pixel.IndexOffset;
40597117f1b4Smrg         break;
40607117f1b4Smrg      case GL_INDEX_SHIFT:
40617117f1b4Smrg         params[0] = ctx->Pixel.IndexShift;
40627117f1b4Smrg         break;
40637117f1b4Smrg      case GL_INDEX_WRITEMASK:
40647117f1b4Smrg         params[0] = ctx->Color.IndexMask;
40657117f1b4Smrg         break;
40667117f1b4Smrg      case GL_LIGHT0:
40677117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[0].Enabled);
40687117f1b4Smrg         break;
40697117f1b4Smrg      case GL_LIGHT1:
40707117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[1].Enabled);
40717117f1b4Smrg         break;
40727117f1b4Smrg      case GL_LIGHT2:
40737117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[2].Enabled);
40747117f1b4Smrg         break;
40757117f1b4Smrg      case GL_LIGHT3:
40767117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[3].Enabled);
40777117f1b4Smrg         break;
40787117f1b4Smrg      case GL_LIGHT4:
40797117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[4].Enabled);
40807117f1b4Smrg         break;
40817117f1b4Smrg      case GL_LIGHT5:
40827117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[5].Enabled);
40837117f1b4Smrg         break;
40847117f1b4Smrg      case GL_LIGHT6:
40857117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[6].Enabled);
40867117f1b4Smrg         break;
40877117f1b4Smrg      case GL_LIGHT7:
40887117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Light[7].Enabled);
40897117f1b4Smrg         break;
40907117f1b4Smrg      case GL_LIGHTING:
40917117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Enabled);
40927117f1b4Smrg         break;
40937117f1b4Smrg      case GL_LIGHT_MODEL_AMBIENT:
40947117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Light.Model.Ambient[0]);
40957117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Light.Model.Ambient[1]);
40967117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Light.Model.Ambient[2]);
40977117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Light.Model.Ambient[3]);
40987117f1b4Smrg         break;
40997117f1b4Smrg      case GL_LIGHT_MODEL_COLOR_CONTROL:
41007117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Light.Model.ColorControl);
41017117f1b4Smrg         break;
41027117f1b4Smrg      case GL_LIGHT_MODEL_LOCAL_VIEWER:
41037117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Model.LocalViewer);
41047117f1b4Smrg         break;
41057117f1b4Smrg      case GL_LIGHT_MODEL_TWO_SIDE:
41067117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Light.Model.TwoSide);
41077117f1b4Smrg         break;
41087117f1b4Smrg      case GL_LINE_SMOOTH:
41097117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Line.SmoothFlag);
41107117f1b4Smrg         break;
41117117f1b4Smrg      case GL_LINE_SMOOTH_HINT:
41127117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.LineSmooth);
41137117f1b4Smrg         break;
41147117f1b4Smrg      case GL_LINE_STIPPLE:
41157117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Line.StippleFlag);
41167117f1b4Smrg         break;
41177117f1b4Smrg      case GL_LINE_STIPPLE_PATTERN:
41187117f1b4Smrg         params[0] = ctx->Line.StipplePattern;
41197117f1b4Smrg         break;
41207117f1b4Smrg      case GL_LINE_STIPPLE_REPEAT:
41217117f1b4Smrg         params[0] = ctx->Line.StippleFactor;
41227117f1b4Smrg         break;
41237117f1b4Smrg      case GL_LINE_WIDTH:
41247117f1b4Smrg         params[0] = IROUND(ctx->Line.Width);
41257117f1b4Smrg         break;
41267117f1b4Smrg      case GL_LINE_WIDTH_GRANULARITY:
41277117f1b4Smrg         params[0] = IROUND(ctx->Const.LineWidthGranularity);
41287117f1b4Smrg         break;
41297117f1b4Smrg      case GL_LINE_WIDTH_RANGE:
41307117f1b4Smrg         params[0] = IROUND(ctx->Const.MinLineWidthAA);
41317117f1b4Smrg         params[1] = IROUND(ctx->Const.MaxLineWidthAA);
41327117f1b4Smrg         break;
41337117f1b4Smrg      case GL_ALIASED_LINE_WIDTH_RANGE:
41347117f1b4Smrg         params[0] = IROUND(ctx->Const.MinLineWidth);
41357117f1b4Smrg         params[1] = IROUND(ctx->Const.MaxLineWidth);
41367117f1b4Smrg         break;
41377117f1b4Smrg      case GL_LIST_BASE:
41387117f1b4Smrg         params[0] = ctx->List.ListBase;
41397117f1b4Smrg         break;
41407117f1b4Smrg      case GL_LIST_INDEX:
41414a49301eSmrg         params[0] = (ctx->ListState.CurrentList ? ctx->ListState.CurrentList->Name : 0);
41427117f1b4Smrg         break;
41437117f1b4Smrg      case GL_LIST_MODE:
41447117f1b4Smrg         {
41457117f1b4Smrg         GLenum mode;
41467117f1b4Smrg         if (!ctx->CompileFlag)
41477117f1b4Smrg            mode = 0;
41487117f1b4Smrg         else if (ctx->ExecuteFlag)
41497117f1b4Smrg            mode = GL_COMPILE_AND_EXECUTE;
41507117f1b4Smrg         else
41517117f1b4Smrg            mode = GL_COMPILE;
41527117f1b4Smrg         params[0] = ENUM_TO_INT(mode);
41537117f1b4Smrg         }
41547117f1b4Smrg         break;
41557117f1b4Smrg      case GL_INDEX_LOGIC_OP:
41567117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.IndexLogicOpEnabled);
41577117f1b4Smrg         break;
41587117f1b4Smrg      case GL_COLOR_LOGIC_OP:
41597117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Color.ColorLogicOpEnabled);
41607117f1b4Smrg         break;
41617117f1b4Smrg      case GL_LOGIC_OP_MODE:
41627117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Color.LogicOp);
41637117f1b4Smrg         break;
41647117f1b4Smrg      case GL_MAP1_COLOR_4:
41657117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Color4);
41667117f1b4Smrg         break;
41677117f1b4Smrg      case GL_MAP1_GRID_DOMAIN:
41687117f1b4Smrg         params[0] = IROUND(ctx->Eval.MapGrid1u1);
41697117f1b4Smrg         params[1] = IROUND(ctx->Eval.MapGrid1u2);
41707117f1b4Smrg         break;
41717117f1b4Smrg      case GL_MAP1_GRID_SEGMENTS:
41727117f1b4Smrg         params[0] = ctx->Eval.MapGrid1un;
41737117f1b4Smrg         break;
41747117f1b4Smrg      case GL_MAP1_INDEX:
41757117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Index);
41767117f1b4Smrg         break;
41777117f1b4Smrg      case GL_MAP1_NORMAL:
41787117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Normal);
41797117f1b4Smrg         break;
41807117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_1:
41817117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord1);
41827117f1b4Smrg         break;
41837117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_2:
41847117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord2);
41857117f1b4Smrg         break;
41867117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_3:
41877117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord3);
41887117f1b4Smrg         break;
41897117f1b4Smrg      case GL_MAP1_TEXTURE_COORD_4:
41907117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord4);
41917117f1b4Smrg         break;
41927117f1b4Smrg      case GL_MAP1_VERTEX_3:
41937117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Vertex3);
41947117f1b4Smrg         break;
41957117f1b4Smrg      case GL_MAP1_VERTEX_4:
41967117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Vertex4);
41977117f1b4Smrg         break;
41987117f1b4Smrg      case GL_MAP2_COLOR_4:
41997117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Color4);
42007117f1b4Smrg         break;
42017117f1b4Smrg      case GL_MAP2_GRID_DOMAIN:
42027117f1b4Smrg         params[0] = IROUND(ctx->Eval.MapGrid2u1);
42037117f1b4Smrg         params[1] = IROUND(ctx->Eval.MapGrid2u2);
42047117f1b4Smrg         params[2] = IROUND(ctx->Eval.MapGrid2v1);
42057117f1b4Smrg         params[3] = IROUND(ctx->Eval.MapGrid2v2);
42067117f1b4Smrg         break;
42077117f1b4Smrg      case GL_MAP2_GRID_SEGMENTS:
42087117f1b4Smrg         params[0] = ctx->Eval.MapGrid2un;
42097117f1b4Smrg         params[1] = ctx->Eval.MapGrid2vn;
42107117f1b4Smrg         break;
42117117f1b4Smrg      case GL_MAP2_INDEX:
42127117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Index);
42137117f1b4Smrg         break;
42147117f1b4Smrg      case GL_MAP2_NORMAL:
42157117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Normal);
42167117f1b4Smrg         break;
42177117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_1:
42187117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord1);
42197117f1b4Smrg         break;
42207117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_2:
42217117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord2);
42227117f1b4Smrg         break;
42237117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_3:
42247117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord3);
42257117f1b4Smrg         break;
42267117f1b4Smrg      case GL_MAP2_TEXTURE_COORD_4:
42277117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord4);
42287117f1b4Smrg         break;
42297117f1b4Smrg      case GL_MAP2_VERTEX_3:
42307117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Vertex3);
42317117f1b4Smrg         break;
42327117f1b4Smrg      case GL_MAP2_VERTEX_4:
42337117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Vertex4);
42347117f1b4Smrg         break;
42357117f1b4Smrg      case GL_MAP_COLOR:
42367117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.MapColorFlag);
42377117f1b4Smrg         break;
42387117f1b4Smrg      case GL_MAP_STENCIL:
42397117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.MapStencilFlag);
42407117f1b4Smrg         break;
42417117f1b4Smrg      case GL_MATRIX_MODE:
42427117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Transform.MatrixMode);
42437117f1b4Smrg         break;
42447117f1b4Smrg      case GL_MAX_ATTRIB_STACK_DEPTH:
42457117f1b4Smrg         params[0] = MAX_ATTRIB_STACK_DEPTH;
42467117f1b4Smrg         break;
42477117f1b4Smrg      case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
42487117f1b4Smrg         params[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH;
42497117f1b4Smrg         break;
42507117f1b4Smrg      case GL_MAX_CLIP_PLANES:
42517117f1b4Smrg         params[0] = ctx->Const.MaxClipPlanes;
42527117f1b4Smrg         break;
42537117f1b4Smrg      case GL_MAX_ELEMENTS_VERTICES:
42547117f1b4Smrg         params[0] = ctx->Const.MaxArrayLockSize;
42557117f1b4Smrg         break;
42567117f1b4Smrg      case GL_MAX_ELEMENTS_INDICES:
42577117f1b4Smrg         params[0] = ctx->Const.MaxArrayLockSize;
42587117f1b4Smrg         break;
42597117f1b4Smrg      case GL_MAX_EVAL_ORDER:
42607117f1b4Smrg         params[0] = MAX_EVAL_ORDER;
42617117f1b4Smrg         break;
42627117f1b4Smrg      case GL_MAX_LIGHTS:
42637117f1b4Smrg         params[0] = ctx->Const.MaxLights;
42647117f1b4Smrg         break;
42657117f1b4Smrg      case GL_MAX_LIST_NESTING:
42667117f1b4Smrg         params[0] = MAX_LIST_NESTING;
42677117f1b4Smrg         break;
42687117f1b4Smrg      case GL_MAX_MODELVIEW_STACK_DEPTH:
42697117f1b4Smrg         params[0] = MAX_MODELVIEW_STACK_DEPTH;
42707117f1b4Smrg         break;
42717117f1b4Smrg      case GL_MAX_NAME_STACK_DEPTH:
42727117f1b4Smrg         params[0] = MAX_NAME_STACK_DEPTH;
42737117f1b4Smrg         break;
42747117f1b4Smrg      case GL_MAX_PIXEL_MAP_TABLE:
42757117f1b4Smrg         params[0] = MAX_PIXEL_MAP_TABLE;
42767117f1b4Smrg         break;
42777117f1b4Smrg      case GL_MAX_PROJECTION_STACK_DEPTH:
42787117f1b4Smrg         params[0] = MAX_PROJECTION_STACK_DEPTH;
42797117f1b4Smrg         break;
42807117f1b4Smrg      case GL_MAX_TEXTURE_SIZE:
42817117f1b4Smrg         params[0] = 1 << (ctx->Const.MaxTextureLevels - 1);
42827117f1b4Smrg         break;
42837117f1b4Smrg      case GL_MAX_3D_TEXTURE_SIZE:
42847117f1b4Smrg         params[0] = 1 << (ctx->Const.Max3DTextureLevels - 1);
42857117f1b4Smrg         break;
42867117f1b4Smrg      case GL_MAX_TEXTURE_STACK_DEPTH:
42877117f1b4Smrg         params[0] = MAX_TEXTURE_STACK_DEPTH;
42887117f1b4Smrg         break;
42897117f1b4Smrg      case GL_MAX_VIEWPORT_DIMS:
42907117f1b4Smrg         params[0] = ctx->Const.MaxViewportWidth;
42917117f1b4Smrg         params[1] = ctx->Const.MaxViewportHeight;
42927117f1b4Smrg         break;
42937117f1b4Smrg      case GL_MODELVIEW_MATRIX:
42947117f1b4Smrg         {
42957117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
42967117f1b4Smrg         params[0] = IROUND(matrix[0]);
42977117f1b4Smrg         params[1] = IROUND(matrix[1]);
42987117f1b4Smrg         params[2] = IROUND(matrix[2]);
42997117f1b4Smrg         params[3] = IROUND(matrix[3]);
43007117f1b4Smrg         params[4] = IROUND(matrix[4]);
43017117f1b4Smrg         params[5] = IROUND(matrix[5]);
43027117f1b4Smrg         params[6] = IROUND(matrix[6]);
43037117f1b4Smrg         params[7] = IROUND(matrix[7]);
43047117f1b4Smrg         params[8] = IROUND(matrix[8]);
43057117f1b4Smrg         params[9] = IROUND(matrix[9]);
43067117f1b4Smrg         params[10] = IROUND(matrix[10]);
43077117f1b4Smrg         params[11] = IROUND(matrix[11]);
43087117f1b4Smrg         params[12] = IROUND(matrix[12]);
43097117f1b4Smrg         params[13] = IROUND(matrix[13]);
43107117f1b4Smrg         params[14] = IROUND(matrix[14]);
43117117f1b4Smrg         params[15] = IROUND(matrix[15]);
43127117f1b4Smrg         }
43137117f1b4Smrg         break;
43147117f1b4Smrg      case GL_MODELVIEW_STACK_DEPTH:
43157117f1b4Smrg         params[0] = ctx->ModelviewMatrixStack.Depth + 1;
43167117f1b4Smrg         break;
43177117f1b4Smrg      case GL_NAME_STACK_DEPTH:
43187117f1b4Smrg         params[0] = ctx->Select.NameStackDepth;
43197117f1b4Smrg         break;
43207117f1b4Smrg      case GL_NORMALIZE:
43217117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Transform.Normalize);
43227117f1b4Smrg         break;
43237117f1b4Smrg      case GL_PACK_ALIGNMENT:
43247117f1b4Smrg         params[0] = ctx->Pack.Alignment;
43257117f1b4Smrg         break;
43267117f1b4Smrg      case GL_PACK_LSB_FIRST:
43277117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pack.LsbFirst);
43287117f1b4Smrg         break;
43297117f1b4Smrg      case GL_PACK_ROW_LENGTH:
43307117f1b4Smrg         params[0] = ctx->Pack.RowLength;
43317117f1b4Smrg         break;
43327117f1b4Smrg      case GL_PACK_SKIP_PIXELS:
43337117f1b4Smrg         params[0] = ctx->Pack.SkipPixels;
43347117f1b4Smrg         break;
43357117f1b4Smrg      case GL_PACK_SKIP_ROWS:
43367117f1b4Smrg         params[0] = ctx->Pack.SkipRows;
43377117f1b4Smrg         break;
43387117f1b4Smrg      case GL_PACK_SWAP_BYTES:
43397117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pack.SwapBytes);
43407117f1b4Smrg         break;
43417117f1b4Smrg      case GL_PACK_SKIP_IMAGES_EXT:
43427117f1b4Smrg         params[0] = ctx->Pack.SkipImages;
43437117f1b4Smrg         break;
43447117f1b4Smrg      case GL_PACK_IMAGE_HEIGHT_EXT:
43457117f1b4Smrg         params[0] = ctx->Pack.ImageHeight;
43467117f1b4Smrg         break;
43477117f1b4Smrg      case GL_PACK_INVERT_MESA:
43487117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pack.Invert);
43497117f1b4Smrg         break;
43507117f1b4Smrg      case GL_PERSPECTIVE_CORRECTION_HINT:
43517117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.PerspectiveCorrection);
43527117f1b4Smrg         break;
43537117f1b4Smrg      case GL_PIXEL_MAP_A_TO_A_SIZE:
43547117f1b4Smrg         params[0] = ctx->PixelMaps.AtoA.Size;
43557117f1b4Smrg         break;
43567117f1b4Smrg      case GL_PIXEL_MAP_B_TO_B_SIZE:
43577117f1b4Smrg         params[0] = ctx->PixelMaps.BtoB.Size;
43587117f1b4Smrg         break;
43597117f1b4Smrg      case GL_PIXEL_MAP_G_TO_G_SIZE:
43607117f1b4Smrg         params[0] = ctx->PixelMaps.GtoG.Size;
43617117f1b4Smrg         break;
43627117f1b4Smrg      case GL_PIXEL_MAP_I_TO_A_SIZE:
43637117f1b4Smrg         params[0] = ctx->PixelMaps.ItoA.Size;
43647117f1b4Smrg         break;
43657117f1b4Smrg      case GL_PIXEL_MAP_I_TO_B_SIZE:
43667117f1b4Smrg         params[0] = ctx->PixelMaps.ItoB.Size;
43677117f1b4Smrg         break;
43687117f1b4Smrg      case GL_PIXEL_MAP_I_TO_G_SIZE:
43697117f1b4Smrg         params[0] = ctx->PixelMaps.ItoG.Size;
43707117f1b4Smrg         break;
43717117f1b4Smrg      case GL_PIXEL_MAP_I_TO_I_SIZE:
43727117f1b4Smrg         params[0] = ctx->PixelMaps.ItoI.Size;
43737117f1b4Smrg         break;
43747117f1b4Smrg      case GL_PIXEL_MAP_I_TO_R_SIZE:
43757117f1b4Smrg         params[0] = ctx->PixelMaps.ItoR.Size;
43767117f1b4Smrg         break;
43777117f1b4Smrg      case GL_PIXEL_MAP_R_TO_R_SIZE:
43787117f1b4Smrg         params[0] = ctx->PixelMaps.RtoR.Size;
43797117f1b4Smrg         break;
43807117f1b4Smrg      case GL_PIXEL_MAP_S_TO_S_SIZE:
43817117f1b4Smrg         params[0] = ctx->PixelMaps.StoS.Size;
43827117f1b4Smrg         break;
43837117f1b4Smrg      case GL_POINT_SIZE:
43847117f1b4Smrg         params[0] = IROUND(ctx->Point.Size);
43857117f1b4Smrg         break;
43867117f1b4Smrg      case GL_POINT_SIZE_GRANULARITY:
43877117f1b4Smrg         params[0] = IROUND(ctx->Const.PointSizeGranularity);
43887117f1b4Smrg         break;
43897117f1b4Smrg      case GL_POINT_SIZE_RANGE:
43907117f1b4Smrg         params[0] = IROUND(ctx->Const.MinPointSizeAA);
43917117f1b4Smrg         params[1] = IROUND(ctx->Const.MaxPointSizeAA);
43927117f1b4Smrg         break;
43937117f1b4Smrg      case GL_ALIASED_POINT_SIZE_RANGE:
43947117f1b4Smrg         params[0] = IROUND(ctx->Const.MinPointSize);
43957117f1b4Smrg         params[1] = IROUND(ctx->Const.MaxPointSize);
43967117f1b4Smrg         break;
43977117f1b4Smrg      case GL_POINT_SMOOTH:
43987117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Point.SmoothFlag);
43997117f1b4Smrg         break;
44007117f1b4Smrg      case GL_POINT_SMOOTH_HINT:
44017117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.PointSmooth);
44027117f1b4Smrg         break;
44037117f1b4Smrg      case GL_POINT_SIZE_MIN_EXT:
44047117f1b4Smrg         params[0] = IROUND(ctx->Point.MinSize);
44057117f1b4Smrg         break;
44067117f1b4Smrg      case GL_POINT_SIZE_MAX_EXT:
44077117f1b4Smrg         params[0] = IROUND(ctx->Point.MaxSize);
44087117f1b4Smrg         break;
44097117f1b4Smrg      case GL_POINT_FADE_THRESHOLD_SIZE_EXT:
44107117f1b4Smrg         params[0] = IROUND(ctx->Point.Threshold);
44117117f1b4Smrg         break;
44127117f1b4Smrg      case GL_DISTANCE_ATTENUATION_EXT:
44137117f1b4Smrg         params[0] = IROUND(ctx->Point.Params[0]);
44147117f1b4Smrg         params[1] = IROUND(ctx->Point.Params[1]);
44157117f1b4Smrg         params[2] = IROUND(ctx->Point.Params[2]);
44167117f1b4Smrg         break;
44177117f1b4Smrg      case GL_POLYGON_MODE:
44187117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Polygon.FrontMode);
44197117f1b4Smrg         params[1] = ENUM_TO_INT(ctx->Polygon.BackMode);
44207117f1b4Smrg         break;
44217117f1b4Smrg      case GL_POLYGON_OFFSET_BIAS_EXT:
44227117f1b4Smrg         params[0] = IROUND(ctx->Polygon.OffsetUnits);
44237117f1b4Smrg         break;
44247117f1b4Smrg      case GL_POLYGON_OFFSET_FACTOR:
44257117f1b4Smrg         params[0] = IROUND(ctx->Polygon.OffsetFactor );
44267117f1b4Smrg         break;
44277117f1b4Smrg      case GL_POLYGON_OFFSET_UNITS:
44287117f1b4Smrg         params[0] = IROUND(ctx->Polygon.OffsetUnits );
44297117f1b4Smrg         break;
4430c1f859d4Smrg      case GL_POLYGON_OFFSET_POINT:
4431c1f859d4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.OffsetPoint);
4432c1f859d4Smrg         break;
4433c1f859d4Smrg      case GL_POLYGON_OFFSET_LINE:
4434c1f859d4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.OffsetLine);
4435c1f859d4Smrg         break;
4436c1f859d4Smrg      case GL_POLYGON_OFFSET_FILL:
4437c1f859d4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.OffsetFill);
4438c1f859d4Smrg         break;
44397117f1b4Smrg      case GL_POLYGON_SMOOTH:
44407117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.SmoothFlag);
44417117f1b4Smrg         break;
44427117f1b4Smrg      case GL_POLYGON_SMOOTH_HINT:
44437117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.PolygonSmooth);
44447117f1b4Smrg         break;
44457117f1b4Smrg      case GL_POLYGON_STIPPLE:
44467117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Polygon.StippleFlag);
44477117f1b4Smrg         break;
44487117f1b4Smrg      case GL_PROJECTION_MATRIX:
44497117f1b4Smrg         {
44507117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
44517117f1b4Smrg         params[0] = IROUND(matrix[0]);
44527117f1b4Smrg         params[1] = IROUND(matrix[1]);
44537117f1b4Smrg         params[2] = IROUND(matrix[2]);
44547117f1b4Smrg         params[3] = IROUND(matrix[3]);
44557117f1b4Smrg         params[4] = IROUND(matrix[4]);
44567117f1b4Smrg         params[5] = IROUND(matrix[5]);
44577117f1b4Smrg         params[6] = IROUND(matrix[6]);
44587117f1b4Smrg         params[7] = IROUND(matrix[7]);
44597117f1b4Smrg         params[8] = IROUND(matrix[8]);
44607117f1b4Smrg         params[9] = IROUND(matrix[9]);
44617117f1b4Smrg         params[10] = IROUND(matrix[10]);
44627117f1b4Smrg         params[11] = IROUND(matrix[11]);
44637117f1b4Smrg         params[12] = IROUND(matrix[12]);
44647117f1b4Smrg         params[13] = IROUND(matrix[13]);
44657117f1b4Smrg         params[14] = IROUND(matrix[14]);
44667117f1b4Smrg         params[15] = IROUND(matrix[15]);
44677117f1b4Smrg         }
44687117f1b4Smrg         break;
44697117f1b4Smrg      case GL_PROJECTION_STACK_DEPTH:
44707117f1b4Smrg         params[0] = ctx->ProjectionMatrixStack.Depth + 1;
44717117f1b4Smrg         break;
44727117f1b4Smrg      case GL_READ_BUFFER:
44737117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->ReadBuffer->ColorReadBuffer);
44747117f1b4Smrg         break;
44757117f1b4Smrg      case GL_RED_BIAS:
44767117f1b4Smrg         params[0] = IROUND(ctx->Pixel.RedBias);
44777117f1b4Smrg         break;
44787117f1b4Smrg      case GL_RED_BITS:
44797117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.redBits;
44807117f1b4Smrg         break;
44817117f1b4Smrg      case GL_RED_SCALE:
44827117f1b4Smrg         params[0] = IROUND(ctx->Pixel.RedScale);
44837117f1b4Smrg         break;
44847117f1b4Smrg      case GL_RENDER_MODE:
44857117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->RenderMode);
44867117f1b4Smrg         break;
44877117f1b4Smrg      case GL_RESCALE_NORMAL:
44887117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Transform.RescaleNormals);
44897117f1b4Smrg         break;
44907117f1b4Smrg      case GL_RGBA_MODE:
44917117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.rgbMode);
44927117f1b4Smrg         break;
44937117f1b4Smrg      case GL_SCISSOR_BOX:
44947117f1b4Smrg         params[0] = ctx->Scissor.X;
44957117f1b4Smrg         params[1] = ctx->Scissor.Y;
44967117f1b4Smrg         params[2] = ctx->Scissor.Width;
44977117f1b4Smrg         params[3] = ctx->Scissor.Height;
44987117f1b4Smrg         break;
44997117f1b4Smrg      case GL_SCISSOR_TEST:
45007117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Scissor.Enabled);
45017117f1b4Smrg         break;
45027117f1b4Smrg      case GL_SELECTION_BUFFER_SIZE:
45037117f1b4Smrg         params[0] = ctx->Select.BufferSize;
45047117f1b4Smrg         break;
45057117f1b4Smrg      case GL_SHADE_MODEL:
45067117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Light.ShadeModel);
45077117f1b4Smrg         break;
45087117f1b4Smrg      case GL_SHARED_TEXTURE_PALETTE_EXT:
45097117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Texture.SharedPalette);
45107117f1b4Smrg         break;
45117117f1b4Smrg      case GL_STENCIL_BITS:
45127117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.stencilBits;
45137117f1b4Smrg         break;
45147117f1b4Smrg      case GL_STENCIL_CLEAR_VALUE:
45157117f1b4Smrg         params[0] = ctx->Stencil.Clear;
45167117f1b4Smrg         break;
45177117f1b4Smrg      case GL_STENCIL_FAIL:
45187117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]);
45197117f1b4Smrg         break;
45207117f1b4Smrg      case GL_STENCIL_FUNC:
45217117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.Function[ctx->Stencil.ActiveFace]);
45227117f1b4Smrg         break;
45237117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_FAIL:
45247117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]);
45257117f1b4Smrg         break;
45267117f1b4Smrg      case GL_STENCIL_PASS_DEPTH_PASS:
45277117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]);
45287117f1b4Smrg         break;
45297117f1b4Smrg      case GL_STENCIL_REF:
45307117f1b4Smrg         params[0] = ctx->Stencil.Ref[ctx->Stencil.ActiveFace];
45317117f1b4Smrg         break;
45327117f1b4Smrg      case GL_STENCIL_TEST:
45337117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Stencil.Enabled);
45347117f1b4Smrg         break;
45357117f1b4Smrg      case GL_STENCIL_VALUE_MASK:
45367117f1b4Smrg         params[0] = ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace];
45377117f1b4Smrg         break;
45387117f1b4Smrg      case GL_STENCIL_WRITEMASK:
45397117f1b4Smrg         params[0] = ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace];
45407117f1b4Smrg         break;
45417117f1b4Smrg      case GL_STEREO:
45427117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.stereoMode);
45437117f1b4Smrg         break;
45447117f1b4Smrg      case GL_SUBPIXEL_BITS:
45457117f1b4Smrg         params[0] = ctx->Const.SubPixelBits;
45467117f1b4Smrg         break;
45477117f1b4Smrg      case GL_TEXTURE_1D:
45487117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D));
45497117f1b4Smrg         break;
45507117f1b4Smrg      case GL_TEXTURE_2D:
45517117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D));
45527117f1b4Smrg         break;
45537117f1b4Smrg      case GL_TEXTURE_3D:
45547117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D));
45557117f1b4Smrg         break;
4556c1f859d4Smrg      case GL_TEXTURE_1D_ARRAY_EXT:
4557c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetIntegerv");
4558c1f859d4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT));
4559c1f859d4Smrg         break;
4560c1f859d4Smrg      case GL_TEXTURE_2D_ARRAY_EXT:
4561c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetIntegerv");
4562c1f859d4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT));
4563c1f859d4Smrg         break;
45647117f1b4Smrg      case GL_TEXTURE_BINDING_1D:
4565c1f859d4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_INDEX]->Name;
45667117f1b4Smrg         break;
45677117f1b4Smrg      case GL_TEXTURE_BINDING_2D:
4568c1f859d4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_INDEX]->Name;
45697117f1b4Smrg         break;
45707117f1b4Smrg      case GL_TEXTURE_BINDING_3D:
4571c1f859d4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_3D_INDEX]->Name;
45727117f1b4Smrg         break;
4573c1f859d4Smrg      case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
4574c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetIntegerv");
4575c1f859d4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_ARRAY_INDEX]->Name;
45767117f1b4Smrg         break;
4577c1f859d4Smrg      case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
4578c1f859d4Smrg         CHECK_EXT1(MESA_texture_array, "GetIntegerv");
4579c1f859d4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_ARRAY_INDEX]->Name;
45807117f1b4Smrg         break;
45817117f1b4Smrg      case GL_TEXTURE_GEN_S:
45827117f1b4Smrg         params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0));
45837117f1b4Smrg         break;
45847117f1b4Smrg      case GL_TEXTURE_GEN_T:
45857117f1b4Smrg         params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0));
45867117f1b4Smrg         break;
45877117f1b4Smrg      case GL_TEXTURE_GEN_R:
45887117f1b4Smrg         params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0));
45897117f1b4Smrg         break;
45907117f1b4Smrg      case GL_TEXTURE_GEN_Q:
45917117f1b4Smrg         params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0));
45927117f1b4Smrg         break;
45937117f1b4Smrg      case GL_TEXTURE_MATRIX:
45947117f1b4Smrg         {
45957117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
45967117f1b4Smrg         params[0] = IROUND(matrix[0]);
45977117f1b4Smrg         params[1] = IROUND(matrix[1]);
45987117f1b4Smrg         params[2] = IROUND(matrix[2]);
45997117f1b4Smrg         params[3] = IROUND(matrix[3]);
46007117f1b4Smrg         params[4] = IROUND(matrix[4]);
46017117f1b4Smrg         params[5] = IROUND(matrix[5]);
46027117f1b4Smrg         params[6] = IROUND(matrix[6]);
46037117f1b4Smrg         params[7] = IROUND(matrix[7]);
46047117f1b4Smrg         params[8] = IROUND(matrix[8]);
46057117f1b4Smrg         params[9] = IROUND(matrix[9]);
46067117f1b4Smrg         params[10] = IROUND(matrix[10]);
46077117f1b4Smrg         params[11] = IROUND(matrix[11]);
46087117f1b4Smrg         params[12] = IROUND(matrix[12]);
46097117f1b4Smrg         params[13] = IROUND(matrix[13]);
46107117f1b4Smrg         params[14] = IROUND(matrix[14]);
46117117f1b4Smrg         params[15] = IROUND(matrix[15]);
46127117f1b4Smrg         }
46137117f1b4Smrg         break;
46147117f1b4Smrg      case GL_TEXTURE_STACK_DEPTH:
46157117f1b4Smrg         params[0] = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1;
46167117f1b4Smrg         break;
46177117f1b4Smrg      case GL_UNPACK_ALIGNMENT:
46187117f1b4Smrg         params[0] = ctx->Unpack.Alignment;
46197117f1b4Smrg         break;
46207117f1b4Smrg      case GL_UNPACK_LSB_FIRST:
46217117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Unpack.LsbFirst);
46227117f1b4Smrg         break;
46237117f1b4Smrg      case GL_UNPACK_ROW_LENGTH:
46247117f1b4Smrg         params[0] = ctx->Unpack.RowLength;
46257117f1b4Smrg         break;
46267117f1b4Smrg      case GL_UNPACK_SKIP_PIXELS:
46277117f1b4Smrg         params[0] = ctx->Unpack.SkipPixels;
46287117f1b4Smrg         break;
46297117f1b4Smrg      case GL_UNPACK_SKIP_ROWS:
46307117f1b4Smrg         params[0] = ctx->Unpack.SkipRows;
46317117f1b4Smrg         break;
46327117f1b4Smrg      case GL_UNPACK_SWAP_BYTES:
46337117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Unpack.SwapBytes);
46347117f1b4Smrg         break;
46357117f1b4Smrg      case GL_UNPACK_SKIP_IMAGES_EXT:
46367117f1b4Smrg         params[0] = ctx->Unpack.SkipImages;
46377117f1b4Smrg         break;
46387117f1b4Smrg      case GL_UNPACK_IMAGE_HEIGHT_EXT:
46397117f1b4Smrg         params[0] = ctx->Unpack.ImageHeight;
46407117f1b4Smrg         break;
46417117f1b4Smrg      case GL_UNPACK_CLIENT_STORAGE_APPLE:
46427117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Unpack.ClientStorage);
46437117f1b4Smrg         break;
46447117f1b4Smrg      case GL_VIEWPORT:
46457117f1b4Smrg         params[0] = ctx->Viewport.X;
46467117f1b4Smrg         params[1] = ctx->Viewport.Y;
46477117f1b4Smrg         params[2] = ctx->Viewport.Width;
46487117f1b4Smrg         params[3] = ctx->Viewport.Height;
46497117f1b4Smrg         break;
46507117f1b4Smrg      case GL_ZOOM_X:
46517117f1b4Smrg         params[0] = IROUND(ctx->Pixel.ZoomX);
46527117f1b4Smrg         break;
46537117f1b4Smrg      case GL_ZOOM_Y:
46547117f1b4Smrg         params[0] = IROUND(ctx->Pixel.ZoomY);
46557117f1b4Smrg         break;
46567117f1b4Smrg      case GL_VERTEX_ARRAY:
46577117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Vertex.Enabled);
46587117f1b4Smrg         break;
46597117f1b4Smrg      case GL_VERTEX_ARRAY_SIZE:
46607117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Vertex.Size;
46617117f1b4Smrg         break;
46627117f1b4Smrg      case GL_VERTEX_ARRAY_TYPE:
46637117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Vertex.Type);
46647117f1b4Smrg         break;
46657117f1b4Smrg      case GL_VERTEX_ARRAY_STRIDE:
46667117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Vertex.Stride;
46677117f1b4Smrg         break;
46687117f1b4Smrg      case GL_VERTEX_ARRAY_COUNT_EXT:
46697117f1b4Smrg         params[0] = 0;
46707117f1b4Smrg         break;
46717117f1b4Smrg      case GL_NORMAL_ARRAY:
46727117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Normal.Enabled);
46737117f1b4Smrg         break;
46747117f1b4Smrg      case GL_NORMAL_ARRAY_TYPE:
46757117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Normal.Type);
46767117f1b4Smrg         break;
46777117f1b4Smrg      case GL_NORMAL_ARRAY_STRIDE:
46787117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Normal.Stride;
46797117f1b4Smrg         break;
46807117f1b4Smrg      case GL_NORMAL_ARRAY_COUNT_EXT:
46817117f1b4Smrg         params[0] = 0;
46827117f1b4Smrg         break;
46837117f1b4Smrg      case GL_COLOR_ARRAY:
46847117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Color.Enabled);
46857117f1b4Smrg         break;
46867117f1b4Smrg      case GL_COLOR_ARRAY_SIZE:
46877117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Color.Size;
46887117f1b4Smrg         break;
46897117f1b4Smrg      case GL_COLOR_ARRAY_TYPE:
46907117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Color.Type);
46917117f1b4Smrg         break;
46927117f1b4Smrg      case GL_COLOR_ARRAY_STRIDE:
46937117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Color.Stride;
46947117f1b4Smrg         break;
46957117f1b4Smrg      case GL_COLOR_ARRAY_COUNT_EXT:
46967117f1b4Smrg         params[0] = 0;
46977117f1b4Smrg         break;
46987117f1b4Smrg      case GL_INDEX_ARRAY:
46997117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Index.Enabled);
47007117f1b4Smrg         break;
47017117f1b4Smrg      case GL_INDEX_ARRAY_TYPE:
47027117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Index.Type);
47037117f1b4Smrg         break;
47047117f1b4Smrg      case GL_INDEX_ARRAY_STRIDE:
47057117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Index.Stride;
47067117f1b4Smrg         break;
47077117f1b4Smrg      case GL_INDEX_ARRAY_COUNT_EXT:
47087117f1b4Smrg         params[0] = 0;
47097117f1b4Smrg         break;
47107117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY:
47117117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled);
47127117f1b4Smrg         break;
47137117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_SIZE:
47147117f1b4Smrg         params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size;
47157117f1b4Smrg         break;
47167117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_TYPE:
47177117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
47187117f1b4Smrg         break;
47197117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_STRIDE:
47207117f1b4Smrg         params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride;
47217117f1b4Smrg         break;
47227117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
47237117f1b4Smrg         params[0] = 0;
47247117f1b4Smrg         break;
47257117f1b4Smrg      case GL_EDGE_FLAG_ARRAY:
47267117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->EdgeFlag.Enabled);
47277117f1b4Smrg         break;
47287117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_STRIDE:
47297117f1b4Smrg         params[0] = ctx->Array.ArrayObj->EdgeFlag.Stride;
47307117f1b4Smrg         break;
47317117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
47327117f1b4Smrg         params[0] = 0;
47337117f1b4Smrg         break;
47347117f1b4Smrg      case GL_MAX_TEXTURE_UNITS_ARB:
47357117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetIntegerv");
47367117f1b4Smrg         params[0] = ctx->Const.MaxTextureUnits;
47377117f1b4Smrg         break;
47387117f1b4Smrg      case GL_ACTIVE_TEXTURE_ARB:
47397117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetIntegerv");
47407117f1b4Smrg         params[0] = GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit;
47417117f1b4Smrg         break;
47427117f1b4Smrg      case GL_CLIENT_ACTIVE_TEXTURE_ARB:
47437117f1b4Smrg         CHECK_EXT1(ARB_multitexture, "GetIntegerv");
47447117f1b4Smrg         params[0] = GL_TEXTURE0_ARB + ctx->Array.ActiveTexture;
47457117f1b4Smrg         break;
47467117f1b4Smrg      case GL_TEXTURE_CUBE_MAP_ARB:
47477117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv");
47487117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB));
47497117f1b4Smrg         break;
47507117f1b4Smrg      case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
47517117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv");
4752c1f859d4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_CUBE_INDEX]->Name;
47537117f1b4Smrg         break;
47547117f1b4Smrg      case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
47557117f1b4Smrg         CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv");
47567117f1b4Smrg         params[0] = (1 << (ctx->Const.MaxCubeTextureLevels - 1));
47577117f1b4Smrg         break;
47587117f1b4Smrg      case GL_TEXTURE_COMPRESSION_HINT_ARB:
47597117f1b4Smrg         params[0] = ctx->Hint.TextureCompression;
47607117f1b4Smrg         break;
47617117f1b4Smrg      case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
47627117f1b4Smrg         params[0] = _mesa_get_compressed_formats(ctx, NULL, GL_FALSE);
47637117f1b4Smrg         break;
47647117f1b4Smrg      case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
47657117f1b4Smrg         {
47667117f1b4Smrg         GLint formats[100];
47677117f1b4Smrg         GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
47687117f1b4Smrg         ASSERT(n <= 100);
47697117f1b4Smrg         for (i = 0; i < n; i++)
47707117f1b4Smrg            params[i] = ENUM_TO_INT(formats[i]);
47717117f1b4Smrg         }
47727117f1b4Smrg         break;
47737117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
47747117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetIntegerv");
47757117f1b4Smrg         params[0] = ctx->Array.LockFirst;
47767117f1b4Smrg         break;
47777117f1b4Smrg      case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
47787117f1b4Smrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetIntegerv");
47797117f1b4Smrg         params[0] = ctx->Array.LockCount;
47807117f1b4Smrg         break;
47817117f1b4Smrg      case GL_TRANSPOSE_COLOR_MATRIX_ARB:
47827117f1b4Smrg         {
47837117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
47847117f1b4Smrg         params[0] = IROUND(matrix[0]);
47857117f1b4Smrg         params[1] = IROUND(matrix[4]);
47867117f1b4Smrg         params[2] = IROUND(matrix[8]);
47877117f1b4Smrg         params[3] = IROUND(matrix[12]);
47887117f1b4Smrg         params[4] = IROUND(matrix[1]);
47897117f1b4Smrg         params[5] = IROUND(matrix[5]);
47907117f1b4Smrg         params[6] = IROUND(matrix[9]);
47917117f1b4Smrg         params[7] = IROUND(matrix[13]);
47927117f1b4Smrg         params[8] = IROUND(matrix[2]);
47937117f1b4Smrg         params[9] = IROUND(matrix[6]);
47947117f1b4Smrg         params[10] = IROUND(matrix[10]);
47957117f1b4Smrg         params[11] = IROUND(matrix[14]);
47967117f1b4Smrg         params[12] = IROUND(matrix[3]);
47977117f1b4Smrg         params[13] = IROUND(matrix[7]);
47987117f1b4Smrg         params[14] = IROUND(matrix[11]);
47997117f1b4Smrg         params[15] = IROUND(matrix[15]);
48007117f1b4Smrg         }
48017117f1b4Smrg         break;
48027117f1b4Smrg      case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
48037117f1b4Smrg         {
48047117f1b4Smrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
48057117f1b4Smrg         params[0] = IROUND(matrix[0]);
48067117f1b4Smrg         params[1] = IROUND(matrix[4]);
48077117f1b4Smrg         params[2] = IROUND(matrix[8]);
48087117f1b4Smrg         params[3] = IROUND(matrix[12]);
48097117f1b4Smrg         params[4] = IROUND(matrix[1]);
48107117f1b4Smrg         params[5] = IROUND(matrix[5]);
48117117f1b4Smrg         params[6] = IROUND(matrix[9]);
48127117f1b4Smrg         params[7] = IROUND(matrix[13]);
48137117f1b4Smrg         params[8] = IROUND(matrix[2]);
48147117f1b4Smrg         params[9] = IROUND(matrix[6]);
48157117f1b4Smrg         params[10] = IROUND(matrix[10]);
48167117f1b4Smrg         params[11] = IROUND(matrix[14]);
48177117f1b4Smrg         params[12] = IROUND(matrix[3]);
48187117f1b4Smrg         params[13] = IROUND(matrix[7]);
48197117f1b4Smrg         params[14] = IROUND(matrix[11]);
48207117f1b4Smrg         params[15] = IROUND(matrix[15]);
48217117f1b4Smrg         }
48227117f1b4Smrg         break;
48237117f1b4Smrg      case GL_TRANSPOSE_PROJECTION_MATRIX_ARB:
48247117f1b4Smrg         {
48257117f1b4Smrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
48267117f1b4Smrg         params[0] = IROUND(matrix[0]);
48277117f1b4Smrg         params[1] = IROUND(matrix[4]);
48287117f1b4Smrg         params[2] = IROUND(matrix[8]);
48297117f1b4Smrg         params[3] = IROUND(matrix[12]);
48307117f1b4Smrg         params[4] = IROUND(matrix[1]);
48317117f1b4Smrg         params[5] = IROUND(matrix[5]);
48327117f1b4Smrg         params[6] = IROUND(matrix[9]);
48337117f1b4Smrg         params[7] = IROUND(matrix[13]);
48347117f1b4Smrg         params[8] = IROUND(matrix[2]);
48357117f1b4Smrg         params[9] = IROUND(matrix[6]);
48367117f1b4Smrg         params[10] = IROUND(matrix[10]);
48377117f1b4Smrg         params[11] = IROUND(matrix[14]);
48387117f1b4Smrg         params[12] = IROUND(matrix[3]);
48397117f1b4Smrg         params[13] = IROUND(matrix[7]);
48407117f1b4Smrg         params[14] = IROUND(matrix[11]);
48417117f1b4Smrg         params[15] = IROUND(matrix[15]);
48427117f1b4Smrg         }
48437117f1b4Smrg         break;
48447117f1b4Smrg      case GL_TRANSPOSE_TEXTURE_MATRIX_ARB:
48457117f1b4Smrg         {
48467117f1b4Smrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
48477117f1b4Smrg         params[0] = IROUND(matrix[0]);
48487117f1b4Smrg         params[1] = IROUND(matrix[4]);
48497117f1b4Smrg         params[2] = IROUND(matrix[8]);
48507117f1b4Smrg         params[3] = IROUND(matrix[12]);
48517117f1b4Smrg         params[4] = IROUND(matrix[1]);
48527117f1b4Smrg         params[5] = IROUND(matrix[5]);
48537117f1b4Smrg         params[6] = IROUND(matrix[9]);
48547117f1b4Smrg         params[7] = IROUND(matrix[13]);
48557117f1b4Smrg         params[8] = IROUND(matrix[2]);
48567117f1b4Smrg         params[9] = IROUND(matrix[6]);
48577117f1b4Smrg         params[10] = IROUND(matrix[10]);
48587117f1b4Smrg         params[11] = IROUND(matrix[14]);
48597117f1b4Smrg         params[12] = IROUND(matrix[3]);
48607117f1b4Smrg         params[13] = IROUND(matrix[7]);
48617117f1b4Smrg         params[14] = IROUND(matrix[11]);
48627117f1b4Smrg         params[15] = IROUND(matrix[15]);
48637117f1b4Smrg         }
48647117f1b4Smrg         break;
48657117f1b4Smrg      case GL_COLOR_MATRIX_SGI:
48667117f1b4Smrg         {
48677117f1b4Smrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
48687117f1b4Smrg         params[0] = IROUND(matrix[0]);
48697117f1b4Smrg         params[1] = IROUND(matrix[1]);
48707117f1b4Smrg         params[2] = IROUND(matrix[2]);
48717117f1b4Smrg         params[3] = IROUND(matrix[3]);
48727117f1b4Smrg         params[4] = IROUND(matrix[4]);
48737117f1b4Smrg         params[5] = IROUND(matrix[5]);
48747117f1b4Smrg         params[6] = IROUND(matrix[6]);
48757117f1b4Smrg         params[7] = IROUND(matrix[7]);
48767117f1b4Smrg         params[8] = IROUND(matrix[8]);
48777117f1b4Smrg         params[9] = IROUND(matrix[9]);
48787117f1b4Smrg         params[10] = IROUND(matrix[10]);
48797117f1b4Smrg         params[11] = IROUND(matrix[11]);
48807117f1b4Smrg         params[12] = IROUND(matrix[12]);
48817117f1b4Smrg         params[13] = IROUND(matrix[13]);
48827117f1b4Smrg         params[14] = IROUND(matrix[14]);
48837117f1b4Smrg         params[15] = IROUND(matrix[15]);
48847117f1b4Smrg         }
48857117f1b4Smrg         break;
48867117f1b4Smrg      case GL_COLOR_MATRIX_STACK_DEPTH_SGI:
48877117f1b4Smrg         params[0] = ctx->ColorMatrixStack.Depth + 1;
48887117f1b4Smrg         break;
48897117f1b4Smrg      case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI:
48907117f1b4Smrg         params[0] = MAX_COLOR_STACK_DEPTH;
48917117f1b4Smrg         break;
48927117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_SCALE_SGI:
48937117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[0]);
48947117f1b4Smrg         break;
48957117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI:
48967117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[1]);
48977117f1b4Smrg         break;
48987117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI:
48997117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[2]);
49007117f1b4Smrg         break;
49017117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI:
49027117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[3]);
49037117f1b4Smrg         break;
49047117f1b4Smrg      case GL_POST_COLOR_MATRIX_RED_BIAS_SGI:
49057117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[0]);
49067117f1b4Smrg         break;
49077117f1b4Smrg      case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI:
49087117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[1]);
49097117f1b4Smrg         break;
49107117f1b4Smrg      case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI:
49117117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[2]);
49127117f1b4Smrg         break;
49137117f1b4Smrg      case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI:
49147117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[3]);
49157117f1b4Smrg         break;
49167117f1b4Smrg      case GL_CONVOLUTION_1D_EXT:
49177117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49187117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.Convolution1DEnabled);
49197117f1b4Smrg         break;
49207117f1b4Smrg      case GL_CONVOLUTION_2D_EXT:
49217117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49227117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.Convolution2DEnabled);
49237117f1b4Smrg         break;
49247117f1b4Smrg      case GL_SEPARABLE_2D_EXT:
49257117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49267117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.Separable2DEnabled);
49277117f1b4Smrg         break;
49287117f1b4Smrg      case GL_POST_CONVOLUTION_RED_SCALE_EXT:
49297117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49307117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionScale[0]);
49317117f1b4Smrg         break;
49327117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:
49337117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49347117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionScale[1]);
49357117f1b4Smrg         break;
49367117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:
49377117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49387117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionScale[2]);
49397117f1b4Smrg         break;
49407117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:
49417117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49427117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionScale[3]);
49437117f1b4Smrg         break;
49447117f1b4Smrg      case GL_POST_CONVOLUTION_RED_BIAS_EXT:
49457117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49467117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionBias[0]);
49477117f1b4Smrg         break;
49487117f1b4Smrg      case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:
49497117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49507117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionBias[1]);
49517117f1b4Smrg         break;
49527117f1b4Smrg      case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:
49537117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49547117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionBias[2]);
49557117f1b4Smrg         break;
49567117f1b4Smrg      case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:
49577117f1b4Smrg         CHECK_EXT1(EXT_convolution, "GetIntegerv");
49587117f1b4Smrg         params[0] = IROUND(ctx->Pixel.PostConvolutionBias[3]);
49597117f1b4Smrg         break;
49607117f1b4Smrg      case GL_HISTOGRAM:
49617117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetIntegerv");
49627117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.HistogramEnabled);
49637117f1b4Smrg         break;
49647117f1b4Smrg      case GL_MINMAX:
49657117f1b4Smrg         CHECK_EXT1(EXT_histogram, "GetIntegerv");
49667117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.MinMaxEnabled);
49677117f1b4Smrg         break;
49687117f1b4Smrg      case GL_COLOR_TABLE_SGI:
49697117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetIntegerv");
49707117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]);
49717117f1b4Smrg         break;
49727117f1b4Smrg      case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
49737117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetIntegerv");
49747117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]);
49757117f1b4Smrg         break;
49767117f1b4Smrg      case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
49777117f1b4Smrg         CHECK_EXT1(SGI_color_table, "GetIntegerv");
49787117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]);
49797117f1b4Smrg         break;
49807117f1b4Smrg      case GL_TEXTURE_COLOR_TABLE_SGI:
49817117f1b4Smrg         CHECK_EXT1(SGI_texture_color_table, "GetIntegerv");
49827117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled);
49837117f1b4Smrg         break;
49847117f1b4Smrg      case GL_COLOR_SUM_EXT:
49857117f1b4Smrg         CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetIntegerv");
49867117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Fog.ColorSumEnabled);
49877117f1b4Smrg         break;
49887117f1b4Smrg      case GL_CURRENT_SECONDARY_COLOR_EXT:
49897117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
49907117f1b4Smrg         {
49917117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
49927117f1b4Smrg         params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]);
49937117f1b4Smrg         params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]);
49947117f1b4Smrg         params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]);
49957117f1b4Smrg         params[3] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]);
49967117f1b4Smrg         }
49977117f1b4Smrg         break;
49987117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_EXT:
49997117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
50007117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->SecondaryColor.Enabled);
50017117f1b4Smrg         break;
50027117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
50037117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
50047117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->SecondaryColor.Type);
50057117f1b4Smrg         break;
50067117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
50077117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
50087117f1b4Smrg         params[0] = ctx->Array.ArrayObj->SecondaryColor.Stride;
50097117f1b4Smrg         break;
50107117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
50117117f1b4Smrg         CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
50127117f1b4Smrg         params[0] = ctx->Array.ArrayObj->SecondaryColor.Size;
50137117f1b4Smrg         break;
50147117f1b4Smrg      case GL_CURRENT_FOG_COORDINATE_EXT:
50157117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50167117f1b4Smrg         {
50177117f1b4Smrg         FLUSH_CURRENT(ctx, 0);
50187117f1b4Smrg         params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_FOG][0]);
50197117f1b4Smrg         }
50207117f1b4Smrg         break;
50217117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_EXT:
50227117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50237117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->FogCoord.Enabled);
50247117f1b4Smrg         break;
50257117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
50267117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50277117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->FogCoord.Type);
50287117f1b4Smrg         break;
50297117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
50307117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50317117f1b4Smrg         params[0] = ctx->Array.ArrayObj->FogCoord.Stride;
50327117f1b4Smrg         break;
50337117f1b4Smrg      case GL_FOG_COORDINATE_SOURCE_EXT:
50347117f1b4Smrg         CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
50357117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Fog.FogCoordinateSource);
50367117f1b4Smrg         break;
50377117f1b4Smrg      case GL_MAX_TEXTURE_LOD_BIAS_EXT:
50387117f1b4Smrg         CHECK_EXT1(EXT_texture_lod_bias, "GetIntegerv");
50397117f1b4Smrg         params[0] = IROUND(ctx->Const.MaxTextureLodBias);
50407117f1b4Smrg         break;
50417117f1b4Smrg      case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
50427117f1b4Smrg         CHECK_EXT1(EXT_texture_filter_anisotropic, "GetIntegerv");
50437117f1b4Smrg         params[0] = IROUND(ctx->Const.MaxTextureMaxAnisotropy);
50447117f1b4Smrg         break;
50457117f1b4Smrg      case GL_MULTISAMPLE_ARB:
50467117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.Enabled);
50477117f1b4Smrg         break;
50487117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
50497117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleAlphaToCoverage);
50507117f1b4Smrg         break;
50517117f1b4Smrg      case GL_SAMPLE_ALPHA_TO_ONE_ARB:
50527117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleAlphaToOne);
50537117f1b4Smrg         break;
50547117f1b4Smrg      case GL_SAMPLE_COVERAGE_ARB:
50557117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleCoverage);
50567117f1b4Smrg         break;
50577117f1b4Smrg      case GL_SAMPLE_COVERAGE_VALUE_ARB:
50587117f1b4Smrg         params[0] = IROUND(ctx->Multisample.SampleCoverageValue);
50597117f1b4Smrg         break;
50607117f1b4Smrg      case GL_SAMPLE_COVERAGE_INVERT_ARB:
50617117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleCoverageInvert);
50627117f1b4Smrg         break;
50637117f1b4Smrg      case GL_SAMPLE_BUFFERS_ARB:
50647117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.sampleBuffers;
50657117f1b4Smrg         break;
50667117f1b4Smrg      case GL_SAMPLES_ARB:
50677117f1b4Smrg         params[0] = ctx->DrawBuffer->Visual.samples;
50687117f1b4Smrg         break;
50697117f1b4Smrg      case GL_RASTER_POSITION_UNCLIPPED_IBM:
50707117f1b4Smrg         CHECK_EXT1(IBM_rasterpos_clip, "GetIntegerv");
50717117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Transform.RasterPositionUnclipped);
50727117f1b4Smrg         break;
50737117f1b4Smrg      case GL_POINT_SPRITE_NV:
50747117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetIntegerv");
50757117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Point.PointSprite);
50767117f1b4Smrg         break;
50777117f1b4Smrg      case GL_POINT_SPRITE_R_MODE_NV:
50787117f1b4Smrg         CHECK_EXT1(NV_point_sprite, "GetIntegerv");
50797117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Point.SpriteRMode);
50807117f1b4Smrg         break;
50817117f1b4Smrg      case GL_POINT_SPRITE_COORD_ORIGIN:
50827117f1b4Smrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetIntegerv");
50837117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Point.SpriteOrigin);
50847117f1b4Smrg         break;
50857117f1b4Smrg      case GL_GENERATE_MIPMAP_HINT_SGIS:
50867117f1b4Smrg         CHECK_EXT1(SGIS_generate_mipmap, "GetIntegerv");
50877117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.GenerateMipmap);
50887117f1b4Smrg         break;
50897117f1b4Smrg      case GL_VERTEX_PROGRAM_BINDING_NV:
50907117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
50917117f1b4Smrg         params[0] = (ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0);
50927117f1b4Smrg         break;
50937117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY0_NV:
50947117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
50957117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[0].Enabled);
50967117f1b4Smrg         break;
50977117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY1_NV:
50987117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
50997117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[1].Enabled);
51007117f1b4Smrg         break;
51017117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY2_NV:
51027117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51037117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[2].Enabled);
51047117f1b4Smrg         break;
51057117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY3_NV:
51067117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51077117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[3].Enabled);
51087117f1b4Smrg         break;
51097117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY4_NV:
51107117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51117117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[4].Enabled);
51127117f1b4Smrg         break;
51137117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY5_NV:
51147117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51157117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[5].Enabled);
51167117f1b4Smrg         break;
51177117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY6_NV:
51187117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51197117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[6].Enabled);
51207117f1b4Smrg         break;
51217117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY7_NV:
51227117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51237117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[7].Enabled);
51247117f1b4Smrg         break;
51257117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY8_NV:
51267117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51277117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[8].Enabled);
51287117f1b4Smrg         break;
51297117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY9_NV:
51307117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51317117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[9].Enabled);
51327117f1b4Smrg         break;
51337117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY10_NV:
51347117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51357117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[10].Enabled);
51367117f1b4Smrg         break;
51377117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY11_NV:
51387117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51397117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[11].Enabled);
51407117f1b4Smrg         break;
51417117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY12_NV:
51427117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51437117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[12].Enabled);
51447117f1b4Smrg         break;
51457117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY13_NV:
51467117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51477117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[13].Enabled);
51487117f1b4Smrg         break;
51497117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY14_NV:
51507117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51517117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[14].Enabled);
51527117f1b4Smrg         break;
51537117f1b4Smrg      case GL_VERTEX_ATTRIB_ARRAY15_NV:
51547117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51557117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[15].Enabled);
51567117f1b4Smrg         break;
51577117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB0_4_NV:
51587117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51597117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[0]);
51607117f1b4Smrg         break;
51617117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB1_4_NV:
51627117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51637117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[1]);
51647117f1b4Smrg         break;
51657117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB2_4_NV:
51667117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51677117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[2]);
51687117f1b4Smrg         break;
51697117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB3_4_NV:
51707117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51717117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[3]);
51727117f1b4Smrg         break;
51737117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB4_4_NV:
51747117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51757117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[4]);
51767117f1b4Smrg         break;
51777117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB5_4_NV:
51787117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51797117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[5]);
51807117f1b4Smrg         break;
51817117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB6_4_NV:
51827117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51837117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[6]);
51847117f1b4Smrg         break;
51857117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB7_4_NV:
51867117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51877117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[7]);
51887117f1b4Smrg         break;
51897117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB8_4_NV:
51907117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51917117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[8]);
51927117f1b4Smrg         break;
51937117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB9_4_NV:
51947117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51957117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[9]);
51967117f1b4Smrg         break;
51977117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB10_4_NV:
51987117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
51997117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[10]);
52007117f1b4Smrg         break;
52017117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB11_4_NV:
52027117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52037117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[11]);
52047117f1b4Smrg         break;
52057117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB12_4_NV:
52067117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52077117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[12]);
52087117f1b4Smrg         break;
52097117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB13_4_NV:
52107117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52117117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[13]);
52127117f1b4Smrg         break;
52137117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB14_4_NV:
52147117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52157117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[14]);
52167117f1b4Smrg         break;
52177117f1b4Smrg      case GL_MAP1_VERTEX_ATTRIB15_4_NV:
52187117f1b4Smrg         CHECK_EXT1(NV_vertex_program, "GetIntegerv");
52197117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[15]);
52207117f1b4Smrg         break;
52217117f1b4Smrg      case GL_FRAGMENT_PROGRAM_NV:
52227117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetIntegerv");
52237117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->FragmentProgram.Enabled);
52247117f1b4Smrg         break;
52257117f1b4Smrg      case GL_FRAGMENT_PROGRAM_BINDING_NV:
52267117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetIntegerv");
52277117f1b4Smrg         params[0] = ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0;
52287117f1b4Smrg         break;
52297117f1b4Smrg      case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV:
52307117f1b4Smrg         CHECK_EXT1(NV_fragment_program, "GetIntegerv");
52317117f1b4Smrg         params[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
52327117f1b4Smrg         break;
52337117f1b4Smrg      case GL_TEXTURE_RECTANGLE_NV:
52347117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetIntegerv");
52357117f1b4Smrg         params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV));
52367117f1b4Smrg         break;
52377117f1b4Smrg      case GL_TEXTURE_BINDING_RECTANGLE_NV:
52387117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetIntegerv");
5239c1f859d4Smrg         params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_RECT_INDEX]->Name;
52407117f1b4Smrg         break;
52417117f1b4Smrg      case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
52427117f1b4Smrg         CHECK_EXT1(NV_texture_rectangle, "GetIntegerv");
52437117f1b4Smrg         params[0] = ctx->Const.MaxTextureRectSize;
52447117f1b4Smrg         break;
52457117f1b4Smrg      case GL_STENCIL_TEST_TWO_SIDE_EXT:
52467117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetIntegerv");
52477117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Stencil.TestTwoSide);
52487117f1b4Smrg         break;
52497117f1b4Smrg      case GL_ACTIVE_STENCIL_FACE_EXT:
52507117f1b4Smrg         CHECK_EXT1(EXT_stencil_two_side, "GetIntegerv");
52517117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT);
52527117f1b4Smrg         break;
52537117f1b4Smrg      case GL_MAX_SHININESS_NV:
52547117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetIntegerv");
52557117f1b4Smrg         params[0] = IROUND(ctx->Const.MaxShininess);
52567117f1b4Smrg         break;
52577117f1b4Smrg      case GL_MAX_SPOT_EXPONENT_NV:
52587117f1b4Smrg         CHECK_EXT1(NV_light_max_exponent, "GetIntegerv");
52597117f1b4Smrg         params[0] = IROUND(ctx->Const.MaxSpotExponent);
52607117f1b4Smrg         break;
52617117f1b4Smrg      case GL_ARRAY_BUFFER_BINDING_ARB:
52627117f1b4Smrg         params[0] = ctx->Array.ArrayBufferObj->Name;
52637117f1b4Smrg         break;
52647117f1b4Smrg      case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
52657117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Vertex.BufferObj->Name;
52667117f1b4Smrg         break;
52677117f1b4Smrg      case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
52687117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Normal.BufferObj->Name;
52697117f1b4Smrg         break;
52707117f1b4Smrg      case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
52717117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Color.BufferObj->Name;
52727117f1b4Smrg         break;
52737117f1b4Smrg      case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
52747117f1b4Smrg         params[0] = ctx->Array.ArrayObj->Index.BufferObj->Name;
52757117f1b4Smrg         break;
52767117f1b4Smrg      case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
52777117f1b4Smrg         params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name;
52787117f1b4Smrg         break;
52797117f1b4Smrg      case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
52807117f1b4Smrg         params[0] = ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name;
52817117f1b4Smrg         break;
52827117f1b4Smrg      case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
52837117f1b4Smrg         params[0] = ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name;
52847117f1b4Smrg         break;
52857117f1b4Smrg      case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
52867117f1b4Smrg         params[0] = ctx->Array.ArrayObj->FogCoord.BufferObj->Name;
52877117f1b4Smrg         break;
52887117f1b4Smrg      case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
52897117f1b4Smrg         params[0] = ctx->Array.ElementArrayBufferObj->Name;
52907117f1b4Smrg         break;
52917117f1b4Smrg      case GL_PIXEL_PACK_BUFFER_BINDING_EXT:
52927117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetIntegerv");
52937117f1b4Smrg         params[0] = ctx->Pack.BufferObj->Name;
52947117f1b4Smrg         break;
52957117f1b4Smrg      case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT:
52967117f1b4Smrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetIntegerv");
52977117f1b4Smrg         params[0] = ctx->Unpack.BufferObj->Name;
52987117f1b4Smrg         break;
52997117f1b4Smrg      case GL_VERTEX_PROGRAM_ARB:
53007117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv");
53017117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.Enabled);
53027117f1b4Smrg         break;
53037117f1b4Smrg      case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
53047117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv");
53057117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.PointSizeEnabled);
53067117f1b4Smrg         break;
53077117f1b4Smrg      case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
53087117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv");
53097117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.TwoSideEnabled);
53107117f1b4Smrg         break;
53117117f1b4Smrg      case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
53127117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv");
53137117f1b4Smrg         params[0] = ctx->Const.MaxProgramMatrixStackDepth;
53147117f1b4Smrg         break;
53157117f1b4Smrg      case GL_MAX_PROGRAM_MATRICES_ARB:
53167117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv");
53177117f1b4Smrg         params[0] = ctx->Const.MaxProgramMatrices;
53187117f1b4Smrg         break;
53197117f1b4Smrg      case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
53207117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv");
53217117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->CurrentStack->Depth + 1);
53227117f1b4Smrg         break;
53237117f1b4Smrg      case GL_CURRENT_MATRIX_ARB:
53247117f1b4Smrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetIntegerv");
53257117f1b4Smrg         {
53267117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
53277117f1b4Smrg         params[0] = IROUND(matrix[0]);
53287117f1b4Smrg         params[1] = IROUND(matrix[1]);
53297117f1b4Smrg         params[2] = IROUND(matrix[2]);
53307117f1b4Smrg         params[3] = IROUND(matrix[3]);
53317117f1b4Smrg         params[4] = IROUND(matrix[4]);
53327117f1b4Smrg         params[5] = IROUND(matrix[5]);
53337117f1b4Smrg         params[6] = IROUND(matrix[6]);
53347117f1b4Smrg         params[7] = IROUND(matrix[7]);
53357117f1b4Smrg         params[8] = IROUND(matrix[8]);
53367117f1b4Smrg         params[9] = IROUND(matrix[9]);
53377117f1b4Smrg         params[10] = IROUND(matrix[10]);
53387117f1b4Smrg         params[11] = IROUND(matrix[11]);
53397117f1b4Smrg         params[12] = IROUND(matrix[12]);
53407117f1b4Smrg         params[13] = IROUND(matrix[13]);
53417117f1b4Smrg         params[14] = IROUND(matrix[14]);
53427117f1b4Smrg         params[15] = IROUND(matrix[15]);
53437117f1b4Smrg         }
53447117f1b4Smrg         break;
53457117f1b4Smrg      case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
53467117f1b4Smrg         CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetIntegerv");
53477117f1b4Smrg         {
53487117f1b4Smrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
53497117f1b4Smrg         params[0] = IROUND(matrix[0]);
53507117f1b4Smrg         params[1] = IROUND(matrix[4]);
53517117f1b4Smrg         params[2] = IROUND(matrix[8]);
53527117f1b4Smrg         params[3] = IROUND(matrix[12]);
53537117f1b4Smrg         params[4] = IROUND(matrix[1]);
53547117f1b4Smrg         params[5] = IROUND(matrix[5]);
53557117f1b4Smrg         params[6] = IROUND(matrix[9]);
53567117f1b4Smrg         params[7] = IROUND(matrix[13]);
53577117f1b4Smrg         params[8] = IROUND(matrix[2]);
53587117f1b4Smrg         params[9] = IROUND(matrix[6]);
53597117f1b4Smrg         params[10] = IROUND(matrix[10]);
53607117f1b4Smrg         params[11] = IROUND(matrix[14]);
53617117f1b4Smrg         params[12] = IROUND(matrix[3]);
53627117f1b4Smrg         params[13] = IROUND(matrix[7]);
53637117f1b4Smrg         params[14] = IROUND(matrix[11]);
53647117f1b4Smrg         params[15] = IROUND(matrix[15]);
53657117f1b4Smrg         }
53667117f1b4Smrg         break;
53677117f1b4Smrg      case GL_MAX_VERTEX_ATTRIBS_ARB:
53687117f1b4Smrg         CHECK_EXT1(ARB_vertex_program, "GetIntegerv");
53697117f1b4Smrg         params[0] = ctx->Const.VertexProgram.MaxAttribs;
53707117f1b4Smrg         break;
53717117f1b4Smrg      case GL_PROGRAM_ERROR_POSITION_ARB:
53727117f1b4Smrg         CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetIntegerv");
53737117f1b4Smrg         params[0] = ctx->Program.ErrorPos;
53747117f1b4Smrg         break;
53757117f1b4Smrg      case GL_FRAGMENT_PROGRAM_ARB:
53767117f1b4Smrg         CHECK_EXT1(ARB_fragment_program, "GetIntegerv");
53777117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->FragmentProgram.Enabled);
53787117f1b4Smrg         break;
53797117f1b4Smrg      case GL_MAX_TEXTURE_COORDS_ARB:
53807117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetIntegerv");
53817117f1b4Smrg         params[0] = ctx->Const.MaxTextureCoordUnits;
53827117f1b4Smrg         break;
53837117f1b4Smrg      case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
53847117f1b4Smrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetIntegerv");
53857117f1b4Smrg         params[0] = ctx->Const.MaxTextureImageUnits;
53867117f1b4Smrg         break;
53877117f1b4Smrg      case GL_DEPTH_BOUNDS_TEST_EXT:
53887117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetIntegerv");
53897117f1b4Smrg         params[0] = BOOLEAN_TO_INT(ctx->Depth.BoundsTest);
53907117f1b4Smrg         break;
53917117f1b4Smrg      case GL_DEPTH_BOUNDS_EXT:
53927117f1b4Smrg         CHECK_EXT1(EXT_depth_bounds_test, "GetIntegerv");
53937117f1b4Smrg         params[0] = IROUND(ctx->Depth.BoundsMin);
53947117f1b4Smrg         params[1] = IROUND(ctx->Depth.BoundsMax);
53957117f1b4Smrg         break;
53964a49301eSmrg      case GL_DEPTH_CLAMP:
53974a49301eSmrg         CHECK_EXT1(ARB_depth_clamp, "GetIntegerv");
53984a49301eSmrg         params[0] = BOOLEAN_TO_INT(ctx->Transform.DepthClamp);
53997117f1b4Smrg         break;
54007117f1b4Smrg      case GL_MAX_DRAW_BUFFERS_ARB:
54017117f1b4Smrg         params[0] = ctx->Const.MaxDrawBuffers;
54027117f1b4Smrg         break;
54037117f1b4Smrg      case GL_DRAW_BUFFER0_ARB:
54047117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->DrawBuffer->ColorDrawBuffer[0]);
54057117f1b4Smrg         break;
54067117f1b4Smrg      case GL_DRAW_BUFFER1_ARB:
54077117f1b4Smrg         {
54087117f1b4Smrg         GLenum buffer;
54097117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
54107117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
54117117f1b4Smrg            return;
54127117f1b4Smrg         }
54137117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[1];
54147117f1b4Smrg         params[0] = ENUM_TO_INT(buffer);
54157117f1b4Smrg         }
54167117f1b4Smrg         break;
54177117f1b4Smrg      case GL_DRAW_BUFFER2_ARB:
54187117f1b4Smrg         {
54197117f1b4Smrg         GLenum buffer;
54207117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
54217117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
54227117f1b4Smrg            return;
54237117f1b4Smrg         }
54247117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[2];
54257117f1b4Smrg         params[0] = ENUM_TO_INT(buffer);
54267117f1b4Smrg         }
54277117f1b4Smrg         break;
54287117f1b4Smrg      case GL_DRAW_BUFFER3_ARB:
54297117f1b4Smrg         {
54307117f1b4Smrg         GLenum buffer;
54317117f1b4Smrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
54327117f1b4Smrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
54337117f1b4Smrg            return;
54347117f1b4Smrg         }
54357117f1b4Smrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[3];
54367117f1b4Smrg         params[0] = ENUM_TO_INT(buffer);
54377117f1b4Smrg         }
54387117f1b4Smrg         break;
54397117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
54407117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetIntegerv");
54414a49301eSmrg         params[0] = _mesa_get_color_read_type(ctx);
54427117f1b4Smrg         break;
54437117f1b4Smrg      case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
54447117f1b4Smrg         CHECK_EXT1(OES_read_format, "GetIntegerv");
54454a49301eSmrg         params[0] = _mesa_get_color_read_format(ctx);
54467117f1b4Smrg         break;
54477117f1b4Smrg      case GL_NUM_FRAGMENT_REGISTERS_ATI:
54487117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54497117f1b4Smrg         params[0] = 6;
54507117f1b4Smrg         break;
54517117f1b4Smrg      case GL_NUM_FRAGMENT_CONSTANTS_ATI:
54527117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54537117f1b4Smrg         params[0] = 8;
54547117f1b4Smrg         break;
54557117f1b4Smrg      case GL_NUM_PASSES_ATI:
54567117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54577117f1b4Smrg         params[0] = 2;
54587117f1b4Smrg         break;
54597117f1b4Smrg      case GL_NUM_INSTRUCTIONS_PER_PASS_ATI:
54607117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54617117f1b4Smrg         params[0] = 8;
54627117f1b4Smrg         break;
54637117f1b4Smrg      case GL_NUM_INSTRUCTIONS_TOTAL_ATI:
54647117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54657117f1b4Smrg         params[0] = 16;
54667117f1b4Smrg         break;
54677117f1b4Smrg      case GL_COLOR_ALPHA_PAIRING_ATI:
54687117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54697117f1b4Smrg         params[0] = BOOLEAN_TO_INT(GL_TRUE);
54707117f1b4Smrg         break;
54717117f1b4Smrg      case GL_NUM_LOOPBACK_COMPONENTS_ATI:
54727117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54737117f1b4Smrg         params[0] = 3;
54747117f1b4Smrg         break;
54757117f1b4Smrg      case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI:
54767117f1b4Smrg         CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
54777117f1b4Smrg         params[0] = 3;
54787117f1b4Smrg         break;
54797117f1b4Smrg      case GL_STENCIL_BACK_FUNC:
54807117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.Function[1]);
54817117f1b4Smrg         break;
54827117f1b4Smrg      case GL_STENCIL_BACK_VALUE_MASK:
54837117f1b4Smrg         params[0] = ctx->Stencil.ValueMask[1];
54847117f1b4Smrg         break;
54857117f1b4Smrg      case GL_STENCIL_BACK_WRITEMASK:
54867117f1b4Smrg         params[0] = ctx->Stencil.WriteMask[1];
54877117f1b4Smrg         break;
54887117f1b4Smrg      case GL_STENCIL_BACK_REF:
54897117f1b4Smrg         params[0] = ctx->Stencil.Ref[1];
54907117f1b4Smrg         break;
54917117f1b4Smrg      case GL_STENCIL_BACK_FAIL:
54927117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.FailFunc[1]);
54937117f1b4Smrg         break;
54947117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
54957117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ZFailFunc[1]);
54967117f1b4Smrg         break;
54977117f1b4Smrg      case GL_STENCIL_BACK_PASS_DEPTH_PASS:
54987117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Stencil.ZPassFunc[1]);
54997117f1b4Smrg         break;
55007117f1b4Smrg      case GL_FRAMEBUFFER_BINDING_EXT:
55017117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
55027117f1b4Smrg         params[0] = ctx->DrawBuffer->Name;
55037117f1b4Smrg         break;
55047117f1b4Smrg      case GL_RENDERBUFFER_BINDING_EXT:
55057117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
55067117f1b4Smrg         params[0] = ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0;
55077117f1b4Smrg         break;
55087117f1b4Smrg      case GL_MAX_COLOR_ATTACHMENTS_EXT:
55097117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
55107117f1b4Smrg         params[0] = ctx->Const.MaxColorAttachments;
55117117f1b4Smrg         break;
55127117f1b4Smrg      case GL_MAX_RENDERBUFFER_SIZE_EXT:
55137117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
55147117f1b4Smrg         params[0] = ctx->Const.MaxRenderbufferSize;
55157117f1b4Smrg         break;
55167117f1b4Smrg      case GL_READ_FRAMEBUFFER_BINDING_EXT:
55177117f1b4Smrg         CHECK_EXT1(EXT_framebuffer_blit, "GetIntegerv");
55187117f1b4Smrg         params[0] = ctx->ReadBuffer->Name;
55197117f1b4Smrg         break;
55204a49301eSmrg      case GL_PROVOKING_VERTEX_EXT:
55214a49301eSmrg         CHECK_EXT1(EXT_provoking_vertex, "GetIntegerv");
55224a49301eSmrg         params[0] = BOOLEAN_TO_INT(ctx->Light.ProvokingVertex);
55234a49301eSmrg         break;
55244a49301eSmrg      case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT:
55254a49301eSmrg         CHECK_EXT1(EXT_provoking_vertex, "GetIntegerv");
55264a49301eSmrg         params[0] = BOOLEAN_TO_INT(ctx->Const.QuadsFollowProvokingVertexConvention);
55274a49301eSmrg         break;
55287117f1b4Smrg      case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
55297117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
55307117f1b4Smrg         params[0] = ctx->Const.FragmentProgram.MaxUniformComponents;
55317117f1b4Smrg         break;
55327117f1b4Smrg      case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
55337117f1b4Smrg         CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
55347117f1b4Smrg         params[0] = ENUM_TO_INT(ctx->Hint.FragmentShaderDerivative);
55357117f1b4Smrg         break;
55367117f1b4Smrg      case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
55377117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
55387117f1b4Smrg         params[0] = ctx->Const.VertexProgram.MaxUniformComponents;
55397117f1b4Smrg         break;
55407117f1b4Smrg      case GL_MAX_VARYING_FLOATS_ARB:
55417117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
55427117f1b4Smrg         params[0] = ctx->Const.MaxVarying * 4;
55437117f1b4Smrg         break;
55447117f1b4Smrg      case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
55457117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
55467117f1b4Smrg         params[0] = ctx->Const.MaxVertexTextureImageUnits;
55477117f1b4Smrg         break;
55487117f1b4Smrg      case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
55497117f1b4Smrg         CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
55507117f1b4Smrg         params[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS;
55517117f1b4Smrg         break;
55527117f1b4Smrg      case GL_CURRENT_PROGRAM:
55537117f1b4Smrg         CHECK_EXT1(ARB_shader_objects, "GetIntegerv");
55547117f1b4Smrg         params[0] = ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0;
55557117f1b4Smrg         break;
55564a49301eSmrg      case GL_MAX_SAMPLES:
55574a49301eSmrg         CHECK_EXT1(ARB_framebuffer_object, "GetIntegerv");
55584a49301eSmrg         params[0] = ctx->Const.MaxSamples;
55594a49301eSmrg         break;
5560c7037ccdSmrg      case GL_VERTEX_ARRAY_BINDING_APPLE:
5561c7037ccdSmrg         CHECK_EXT1(APPLE_vertex_array_object, "GetIntegerv");
5562c7037ccdSmrg         params[0] = ctx->Array.ArrayObj->Name;
5563c7037ccdSmrg         break;
55644a49301eSmrg      case GL_TEXTURE_CUBE_MAP_SEAMLESS:
55654a49301eSmrg         CHECK_EXT1(ARB_seamless_cube_map, "GetIntegerv");
55664a49301eSmrg         params[0] = BOOLEAN_TO_INT(ctx->Texture.CubeMapSeamless);
55674a49301eSmrg         break;
55684a49301eSmrg      case GL_MAX_SERVER_WAIT_TIMEOUT:
55694a49301eSmrg         CHECK_EXT1(ARB_sync, "GetIntegerv");
55704a49301eSmrg         params[0] = INT64_TO_INT(ctx->Const.MaxServerWaitTimeout);
55714a49301eSmrg         break;
55727117f1b4Smrg      default:
55737117f1b4Smrg         _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv(pname=0x%x)", pname);
55747117f1b4Smrg   }
55757117f1b4Smrg}
55767117f1b4Smrg
55774a49301eSmrg#if FEATURE_ARB_sync
55784a49301eSmrgvoid GLAPIENTRY
55794a49301eSmrg_mesa_GetInteger64v( GLenum pname, GLint64 *params )
55804a49301eSmrg{
55814a49301eSmrg   GET_CURRENT_CONTEXT(ctx);
55824a49301eSmrg   ASSERT_OUTSIDE_BEGIN_END(ctx);
55834a49301eSmrg
55844a49301eSmrg   if (!params)
55854a49301eSmrg      return;
55864a49301eSmrg
55874a49301eSmrg   if (ctx->NewState)
55884a49301eSmrg      _mesa_update_state(ctx);
55894a49301eSmrg
55904a49301eSmrg   if (ctx->Driver.GetInteger64v &&
55914a49301eSmrg       ctx->Driver.GetInteger64v(ctx, pname, params))
55924a49301eSmrg      return;
55934a49301eSmrg
55944a49301eSmrg   switch (pname) {
55954a49301eSmrg      case GL_ACCUM_RED_BITS:
55964a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.accumRedBits);
55974a49301eSmrg         break;
55984a49301eSmrg      case GL_ACCUM_GREEN_BITS:
55994a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.accumGreenBits);
56004a49301eSmrg         break;
56014a49301eSmrg      case GL_ACCUM_BLUE_BITS:
56024a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.accumBlueBits);
56034a49301eSmrg         break;
56044a49301eSmrg      case GL_ACCUM_ALPHA_BITS:
56054a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.accumAlphaBits);
56064a49301eSmrg         break;
56074a49301eSmrg      case GL_ACCUM_CLEAR_VALUE:
56084a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Accum.ClearColor[0]);
56094a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Accum.ClearColor[1]);
56104a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Accum.ClearColor[2]);
56114a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Accum.ClearColor[3]);
56124a49301eSmrg         break;
56134a49301eSmrg      case GL_ALPHA_BIAS:
56144a49301eSmrg         params[0] = IROUND64(ctx->Pixel.AlphaBias);
56154a49301eSmrg         break;
56164a49301eSmrg      case GL_ALPHA_BITS:
56174a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.alphaBits);
56184a49301eSmrg         break;
56194a49301eSmrg      case GL_ALPHA_SCALE:
56204a49301eSmrg         params[0] = IROUND64(ctx->Pixel.AlphaScale);
56214a49301eSmrg         break;
56224a49301eSmrg      case GL_ALPHA_TEST:
56234a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Color.AlphaEnabled);
56244a49301eSmrg         break;
56254a49301eSmrg      case GL_ALPHA_TEST_FUNC:
56264a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.AlphaFunc);
56274a49301eSmrg         break;
56284a49301eSmrg      case GL_ALPHA_TEST_REF:
56294a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Color.AlphaRef);
56304a49301eSmrg         break;
56314a49301eSmrg      case GL_ATTRIB_STACK_DEPTH:
56324a49301eSmrg         params[0] = (GLint64)(ctx->AttribStackDepth);
56334a49301eSmrg         break;
56344a49301eSmrg      case GL_AUTO_NORMAL:
56354a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.AutoNormal);
56364a49301eSmrg         break;
56374a49301eSmrg      case GL_AUX_BUFFERS:
56384a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.numAuxBuffers);
56394a49301eSmrg         break;
56404a49301eSmrg      case GL_BLEND:
56414a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Color.BlendEnabled);
56424a49301eSmrg         break;
56434a49301eSmrg      case GL_BLEND_DST:
56444a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.BlendDstRGB);
56454a49301eSmrg         break;
56464a49301eSmrg      case GL_BLEND_SRC:
56474a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.BlendSrcRGB);
56484a49301eSmrg         break;
56494a49301eSmrg      case GL_BLEND_SRC_RGB_EXT:
56504a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.BlendSrcRGB);
56514a49301eSmrg         break;
56524a49301eSmrg      case GL_BLEND_DST_RGB_EXT:
56534a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.BlendDstRGB);
56544a49301eSmrg         break;
56554a49301eSmrg      case GL_BLEND_SRC_ALPHA_EXT:
56564a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.BlendSrcA);
56574a49301eSmrg         break;
56584a49301eSmrg      case GL_BLEND_DST_ALPHA_EXT:
56594a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.BlendDstA);
56604a49301eSmrg         break;
56614a49301eSmrg      case GL_BLEND_EQUATION:
56624a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.BlendEquationRGB );
56634a49301eSmrg         break;
56644a49301eSmrg      case GL_BLEND_EQUATION_ALPHA_EXT:
56654a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.BlendEquationA );
56664a49301eSmrg         break;
56674a49301eSmrg      case GL_BLEND_COLOR_EXT:
56684a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Color.BlendColor[0]);
56694a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Color.BlendColor[1]);
56704a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Color.BlendColor[2]);
56714a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Color.BlendColor[3]);
56724a49301eSmrg         break;
56734a49301eSmrg      case GL_BLUE_BIAS:
56744a49301eSmrg         params[0] = IROUND64(ctx->Pixel.BlueBias);
56754a49301eSmrg         break;
56764a49301eSmrg      case GL_BLUE_BITS:
56774a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.blueBits);
56784a49301eSmrg         break;
56794a49301eSmrg      case GL_BLUE_SCALE:
56804a49301eSmrg         params[0] = IROUND64(ctx->Pixel.BlueScale);
56814a49301eSmrg         break;
56824a49301eSmrg      case GL_CLIENT_ATTRIB_STACK_DEPTH:
56834a49301eSmrg         params[0] = (GLint64)(ctx->ClientAttribStackDepth);
56844a49301eSmrg         break;
56854a49301eSmrg      case GL_CLIP_PLANE0:
56864a49301eSmrg         params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 0) & 1);
56874a49301eSmrg         break;
56884a49301eSmrg      case GL_CLIP_PLANE1:
56894a49301eSmrg         params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 1) & 1);
56904a49301eSmrg         break;
56914a49301eSmrg      case GL_CLIP_PLANE2:
56924a49301eSmrg         params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 2) & 1);
56934a49301eSmrg         break;
56944a49301eSmrg      case GL_CLIP_PLANE3:
56954a49301eSmrg         params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 3) & 1);
56964a49301eSmrg         break;
56974a49301eSmrg      case GL_CLIP_PLANE4:
56984a49301eSmrg         params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 4) & 1);
56994a49301eSmrg         break;
57004a49301eSmrg      case GL_CLIP_PLANE5:
57014a49301eSmrg         params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 5) & 1);
57024a49301eSmrg         break;
57034a49301eSmrg      case GL_COLOR_CLEAR_VALUE:
57044a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Color.ClearColor[0]);
57054a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Color.ClearColor[1]);
57064a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Color.ClearColor[2]);
57074a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Color.ClearColor[3]);
57084a49301eSmrg         break;
57094a49301eSmrg      case GL_COLOR_MATERIAL:
57104a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.ColorMaterialEnabled);
57114a49301eSmrg         break;
57124a49301eSmrg      case GL_COLOR_MATERIAL_FACE:
57134a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Light.ColorMaterialFace);
57144a49301eSmrg         break;
57154a49301eSmrg      case GL_COLOR_MATERIAL_PARAMETER:
57164a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Light.ColorMaterialMode);
57174a49301eSmrg         break;
57184a49301eSmrg      case GL_COLOR_WRITEMASK:
57194a49301eSmrg         params[0] = (GLint64)(ctx->Color.ColorMask[RCOMP] ? 1 : 0);
57204a49301eSmrg         params[1] = (GLint64)(ctx->Color.ColorMask[GCOMP] ? 1 : 0);
57214a49301eSmrg         params[2] = (GLint64)(ctx->Color.ColorMask[BCOMP] ? 1 : 0);
57224a49301eSmrg         params[3] = (GLint64)(ctx->Color.ColorMask[ACOMP] ? 1 : 0);
57234a49301eSmrg         break;
57244a49301eSmrg      case GL_CULL_FACE:
57254a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Polygon.CullFlag);
57264a49301eSmrg         break;
57274a49301eSmrg      case GL_CULL_FACE_MODE:
57284a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Polygon.CullFaceMode);
57294a49301eSmrg         break;
57304a49301eSmrg      case GL_CURRENT_COLOR:
57314a49301eSmrg         {
57324a49301eSmrg         FLUSH_CURRENT(ctx, 0);
57334a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]);
57344a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]);
57354a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]);
57364a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]);
57374a49301eSmrg         }
57384a49301eSmrg         break;
57394a49301eSmrg      case GL_CURRENT_INDEX:
57404a49301eSmrg         {
57414a49301eSmrg         FLUSH_CURRENT(ctx, 0);
57424a49301eSmrg         params[0] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]);
57434a49301eSmrg         }
57444a49301eSmrg         break;
57454a49301eSmrg      case GL_CURRENT_NORMAL:
57464a49301eSmrg         {
57474a49301eSmrg         FLUSH_CURRENT(ctx, 0);
57484a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]);
57494a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]);
57504a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]);
57514a49301eSmrg         }
57524a49301eSmrg         break;
57534a49301eSmrg      case GL_CURRENT_RASTER_COLOR:
57544a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Current.RasterColor[0]);
57554a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Current.RasterColor[1]);
57564a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Current.RasterColor[2]);
57574a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Current.RasterColor[3]);
57584a49301eSmrg         break;
57594a49301eSmrg      case GL_CURRENT_RASTER_DISTANCE:
57604a49301eSmrg         params[0] = IROUND64(ctx->Current.RasterDistance);
57614a49301eSmrg         break;
57624a49301eSmrg      case GL_CURRENT_RASTER_INDEX:
57634a49301eSmrg         params[0] = IROUND64(ctx->Current.RasterIndex);
57644a49301eSmrg         break;
57654a49301eSmrg      case GL_CURRENT_RASTER_POSITION:
57664a49301eSmrg         params[0] = IROUND64(ctx->Current.RasterPos[0]);
57674a49301eSmrg         params[1] = IROUND64(ctx->Current.RasterPos[1]);
57684a49301eSmrg         params[2] = IROUND64(ctx->Current.RasterPos[2]);
57694a49301eSmrg         params[3] = IROUND64(ctx->Current.RasterPos[3]);
57704a49301eSmrg         break;
57714a49301eSmrg      case GL_CURRENT_RASTER_SECONDARY_COLOR:
57724a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Current.RasterSecondaryColor[0]);
57734a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Current.RasterSecondaryColor[1]);
57744a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Current.RasterSecondaryColor[2]);
57754a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Current.RasterSecondaryColor[3]);
57764a49301eSmrg         break;
57774a49301eSmrg      case GL_CURRENT_RASTER_TEXTURE_COORDS:
57784a49301eSmrg         {
57794a49301eSmrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
57804a49301eSmrg         params[0] = IROUND64(ctx->Current.RasterTexCoords[texUnit][0]);
57814a49301eSmrg         params[1] = IROUND64(ctx->Current.RasterTexCoords[texUnit][1]);
57824a49301eSmrg         params[2] = IROUND64(ctx->Current.RasterTexCoords[texUnit][2]);
57834a49301eSmrg         params[3] = IROUND64(ctx->Current.RasterTexCoords[texUnit][3]);
57844a49301eSmrg         }
57854a49301eSmrg         break;
57864a49301eSmrg      case GL_CURRENT_RASTER_POSITION_VALID:
57874a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Current.RasterPosValid);
57884a49301eSmrg         break;
57894a49301eSmrg      case GL_CURRENT_TEXTURE_COORDS:
57904a49301eSmrg         {
57914a49301eSmrg         const GLuint texUnit = ctx->Texture.CurrentUnit;
57924a49301eSmrg         FLUSH_CURRENT(ctx, 0);
57934a49301eSmrg         params[0] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]);
57944a49301eSmrg         params[1] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]);
57954a49301eSmrg         params[2] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]);
57964a49301eSmrg         params[3] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]);
57974a49301eSmrg         }
57984a49301eSmrg         break;
57994a49301eSmrg      case GL_DEPTH_BIAS:
58004a49301eSmrg         params[0] = IROUND64(ctx->Pixel.DepthBias);
58014a49301eSmrg         break;
58024a49301eSmrg      case GL_DEPTH_BITS:
58034a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.depthBits);
58044a49301eSmrg         break;
58054a49301eSmrg      case GL_DEPTH_CLEAR_VALUE:
58064a49301eSmrg         params[0] = FLOAT_TO_INT64(((GLfloat) ctx->Depth.Clear));
58074a49301eSmrg         break;
58084a49301eSmrg      case GL_DEPTH_FUNC:
58094a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Depth.Func);
58104a49301eSmrg         break;
58114a49301eSmrg      case GL_DEPTH_RANGE:
58124a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Viewport.Near);
58134a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Viewport.Far);
58144a49301eSmrg         break;
58154a49301eSmrg      case GL_DEPTH_SCALE:
58164a49301eSmrg         params[0] = IROUND64(ctx->Pixel.DepthScale);
58174a49301eSmrg         break;
58184a49301eSmrg      case GL_DEPTH_TEST:
58194a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Depth.Test);
58204a49301eSmrg         break;
58214a49301eSmrg      case GL_DEPTH_WRITEMASK:
58224a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Depth.Mask);
58234a49301eSmrg         break;
58244a49301eSmrg      case GL_DITHER:
58254a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Color.DitherFlag);
58264a49301eSmrg         break;
58274a49301eSmrg      case GL_DOUBLEBUFFER:
58284a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->DrawBuffer->Visual.doubleBufferMode);
58294a49301eSmrg         break;
58304a49301eSmrg      case GL_DRAW_BUFFER:
58314a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->DrawBuffer->ColorDrawBuffer[0]);
58324a49301eSmrg         break;
58334a49301eSmrg      case GL_EDGE_FLAG:
58344a49301eSmrg         {
58354a49301eSmrg         FLUSH_CURRENT(ctx, 0);
58364a49301eSmrg         params[0] = BOOLEAN_TO_INT64((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0));
58374a49301eSmrg         }
58384a49301eSmrg         break;
58394a49301eSmrg      case GL_FEEDBACK_BUFFER_SIZE:
58404a49301eSmrg         params[0] = (GLint64)(ctx->Feedback.BufferSize);
58414a49301eSmrg         break;
58424a49301eSmrg      case GL_FEEDBACK_BUFFER_TYPE:
58434a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Feedback.Type);
58444a49301eSmrg         break;
58454a49301eSmrg      case GL_FOG:
58464a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Fog.Enabled);
58474a49301eSmrg         break;
58484a49301eSmrg      case GL_FOG_COLOR:
58494a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Fog.Color[0]);
58504a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Fog.Color[1]);
58514a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Fog.Color[2]);
58524a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Fog.Color[3]);
58534a49301eSmrg         break;
58544a49301eSmrg      case GL_FOG_DENSITY:
58554a49301eSmrg         params[0] = IROUND64(ctx->Fog.Density);
58564a49301eSmrg         break;
58574a49301eSmrg      case GL_FOG_END:
58584a49301eSmrg         params[0] = IROUND64(ctx->Fog.End);
58594a49301eSmrg         break;
58604a49301eSmrg      case GL_FOG_HINT:
58614a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Hint.Fog);
58624a49301eSmrg         break;
58634a49301eSmrg      case GL_FOG_INDEX:
58644a49301eSmrg         params[0] = IROUND64(ctx->Fog.Index);
58654a49301eSmrg         break;
58664a49301eSmrg      case GL_FOG_MODE:
58674a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Fog.Mode);
58684a49301eSmrg         break;
58694a49301eSmrg      case GL_FOG_START:
58704a49301eSmrg         params[0] = IROUND64(ctx->Fog.Start);
58714a49301eSmrg         break;
58724a49301eSmrg      case GL_FRONT_FACE:
58734a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Polygon.FrontFace);
58744a49301eSmrg         break;
58754a49301eSmrg      case GL_GREEN_BIAS:
58764a49301eSmrg         params[0] = IROUND64(ctx->Pixel.GreenBias);
58774a49301eSmrg         break;
58784a49301eSmrg      case GL_GREEN_BITS:
58794a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.greenBits);
58804a49301eSmrg         break;
58814a49301eSmrg      case GL_GREEN_SCALE:
58824a49301eSmrg         params[0] = IROUND64(ctx->Pixel.GreenScale);
58834a49301eSmrg         break;
58844a49301eSmrg      case GL_INDEX_BITS:
58854a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.indexBits);
58864a49301eSmrg         break;
58874a49301eSmrg      case GL_INDEX_CLEAR_VALUE:
58884a49301eSmrg         params[0] = (GLint64)(ctx->Color.ClearIndex);
58894a49301eSmrg         break;
58904a49301eSmrg      case GL_INDEX_MODE:
58914a49301eSmrg         params[0] = BOOLEAN_TO_INT64(!ctx->DrawBuffer->Visual.rgbMode);
58924a49301eSmrg         break;
58934a49301eSmrg      case GL_INDEX_OFFSET:
58944a49301eSmrg         params[0] = (GLint64)(ctx->Pixel.IndexOffset);
58954a49301eSmrg         break;
58964a49301eSmrg      case GL_INDEX_SHIFT:
58974a49301eSmrg         params[0] = (GLint64)(ctx->Pixel.IndexShift);
58984a49301eSmrg         break;
58994a49301eSmrg      case GL_INDEX_WRITEMASK:
59004a49301eSmrg         params[0] = (GLint64)(ctx->Color.IndexMask);
59014a49301eSmrg         break;
59024a49301eSmrg      case GL_LIGHT0:
59034a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[0].Enabled);
59044a49301eSmrg         break;
59054a49301eSmrg      case GL_LIGHT1:
59064a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[1].Enabled);
59074a49301eSmrg         break;
59084a49301eSmrg      case GL_LIGHT2:
59094a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[2].Enabled);
59104a49301eSmrg         break;
59114a49301eSmrg      case GL_LIGHT3:
59124a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[3].Enabled);
59134a49301eSmrg         break;
59144a49301eSmrg      case GL_LIGHT4:
59154a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[4].Enabled);
59164a49301eSmrg         break;
59174a49301eSmrg      case GL_LIGHT5:
59184a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[5].Enabled);
59194a49301eSmrg         break;
59204a49301eSmrg      case GL_LIGHT6:
59214a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[6].Enabled);
59224a49301eSmrg         break;
59234a49301eSmrg      case GL_LIGHT7:
59244a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[7].Enabled);
59254a49301eSmrg         break;
59264a49301eSmrg      case GL_LIGHTING:
59274a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Enabled);
59284a49301eSmrg         break;
59294a49301eSmrg      case GL_LIGHT_MODEL_AMBIENT:
59304a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Light.Model.Ambient[0]);
59314a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Light.Model.Ambient[1]);
59324a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Light.Model.Ambient[2]);
59334a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Light.Model.Ambient[3]);
59344a49301eSmrg         break;
59354a49301eSmrg      case GL_LIGHT_MODEL_COLOR_CONTROL:
59364a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Light.Model.ColorControl);
59374a49301eSmrg         break;
59384a49301eSmrg      case GL_LIGHT_MODEL_LOCAL_VIEWER:
59394a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Model.LocalViewer);
59404a49301eSmrg         break;
59414a49301eSmrg      case GL_LIGHT_MODEL_TWO_SIDE:
59424a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.Model.TwoSide);
59434a49301eSmrg         break;
59444a49301eSmrg      case GL_LINE_SMOOTH:
59454a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Line.SmoothFlag);
59464a49301eSmrg         break;
59474a49301eSmrg      case GL_LINE_SMOOTH_HINT:
59484a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Hint.LineSmooth);
59494a49301eSmrg         break;
59504a49301eSmrg      case GL_LINE_STIPPLE:
59514a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Line.StippleFlag);
59524a49301eSmrg         break;
59534a49301eSmrg      case GL_LINE_STIPPLE_PATTERN:
59544a49301eSmrg         params[0] = (GLint64)(ctx->Line.StipplePattern);
59554a49301eSmrg         break;
59564a49301eSmrg      case GL_LINE_STIPPLE_REPEAT:
59574a49301eSmrg         params[0] = (GLint64)(ctx->Line.StippleFactor);
59584a49301eSmrg         break;
59594a49301eSmrg      case GL_LINE_WIDTH:
59604a49301eSmrg         params[0] = IROUND64(ctx->Line.Width);
59614a49301eSmrg         break;
59624a49301eSmrg      case GL_LINE_WIDTH_GRANULARITY:
59634a49301eSmrg         params[0] = IROUND64(ctx->Const.LineWidthGranularity);
59644a49301eSmrg         break;
59654a49301eSmrg      case GL_LINE_WIDTH_RANGE:
59664a49301eSmrg         params[0] = IROUND64(ctx->Const.MinLineWidthAA);
59674a49301eSmrg         params[1] = IROUND64(ctx->Const.MaxLineWidthAA);
59684a49301eSmrg         break;
59694a49301eSmrg      case GL_ALIASED_LINE_WIDTH_RANGE:
59704a49301eSmrg         params[0] = IROUND64(ctx->Const.MinLineWidth);
59714a49301eSmrg         params[1] = IROUND64(ctx->Const.MaxLineWidth);
59724a49301eSmrg         break;
59734a49301eSmrg      case GL_LIST_BASE:
59744a49301eSmrg         params[0] = (GLint64)(ctx->List.ListBase);
59754a49301eSmrg         break;
59764a49301eSmrg      case GL_LIST_INDEX:
59774a49301eSmrg         params[0] = (GLint64)((ctx->ListState.CurrentList ? ctx->ListState.CurrentList->Name : 0));
59784a49301eSmrg         break;
59794a49301eSmrg      case GL_LIST_MODE:
59804a49301eSmrg         {
59814a49301eSmrg         GLenum mode;
59824a49301eSmrg         if (!ctx->CompileFlag)
59834a49301eSmrg            mode = 0;
59844a49301eSmrg         else if (ctx->ExecuteFlag)
59854a49301eSmrg            mode = GL_COMPILE_AND_EXECUTE;
59864a49301eSmrg         else
59874a49301eSmrg            mode = GL_COMPILE;
59884a49301eSmrg         params[0] = ENUM_TO_INT64(mode);
59894a49301eSmrg         }
59904a49301eSmrg         break;
59914a49301eSmrg      case GL_INDEX_LOGIC_OP:
59924a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Color.IndexLogicOpEnabled);
59934a49301eSmrg         break;
59944a49301eSmrg      case GL_COLOR_LOGIC_OP:
59954a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Color.ColorLogicOpEnabled);
59964a49301eSmrg         break;
59974a49301eSmrg      case GL_LOGIC_OP_MODE:
59984a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Color.LogicOp);
59994a49301eSmrg         break;
60004a49301eSmrg      case GL_MAP1_COLOR_4:
60014a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Color4);
60024a49301eSmrg         break;
60034a49301eSmrg      case GL_MAP1_GRID_DOMAIN:
60044a49301eSmrg         params[0] = IROUND64(ctx->Eval.MapGrid1u1);
60054a49301eSmrg         params[1] = IROUND64(ctx->Eval.MapGrid1u2);
60064a49301eSmrg         break;
60074a49301eSmrg      case GL_MAP1_GRID_SEGMENTS:
60084a49301eSmrg         params[0] = (GLint64)(ctx->Eval.MapGrid1un);
60094a49301eSmrg         break;
60104a49301eSmrg      case GL_MAP1_INDEX:
60114a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Index);
60124a49301eSmrg         break;
60134a49301eSmrg      case GL_MAP1_NORMAL:
60144a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Normal);
60154a49301eSmrg         break;
60164a49301eSmrg      case GL_MAP1_TEXTURE_COORD_1:
60174a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1TextureCoord1);
60184a49301eSmrg         break;
60194a49301eSmrg      case GL_MAP1_TEXTURE_COORD_2:
60204a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1TextureCoord2);
60214a49301eSmrg         break;
60224a49301eSmrg      case GL_MAP1_TEXTURE_COORD_3:
60234a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1TextureCoord3);
60244a49301eSmrg         break;
60254a49301eSmrg      case GL_MAP1_TEXTURE_COORD_4:
60264a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1TextureCoord4);
60274a49301eSmrg         break;
60284a49301eSmrg      case GL_MAP1_VERTEX_3:
60294a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Vertex3);
60304a49301eSmrg         break;
60314a49301eSmrg      case GL_MAP1_VERTEX_4:
60324a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Vertex4);
60334a49301eSmrg         break;
60344a49301eSmrg      case GL_MAP2_COLOR_4:
60354a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Color4);
60364a49301eSmrg         break;
60374a49301eSmrg      case GL_MAP2_GRID_DOMAIN:
60384a49301eSmrg         params[0] = IROUND64(ctx->Eval.MapGrid2u1);
60394a49301eSmrg         params[1] = IROUND64(ctx->Eval.MapGrid2u2);
60404a49301eSmrg         params[2] = IROUND64(ctx->Eval.MapGrid2v1);
60414a49301eSmrg         params[3] = IROUND64(ctx->Eval.MapGrid2v2);
60424a49301eSmrg         break;
60434a49301eSmrg      case GL_MAP2_GRID_SEGMENTS:
60444a49301eSmrg         params[0] = (GLint64)(ctx->Eval.MapGrid2un);
60454a49301eSmrg         params[1] = (GLint64)(ctx->Eval.MapGrid2vn);
60464a49301eSmrg         break;
60474a49301eSmrg      case GL_MAP2_INDEX:
60484a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Index);
60494a49301eSmrg         break;
60504a49301eSmrg      case GL_MAP2_NORMAL:
60514a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Normal);
60524a49301eSmrg         break;
60534a49301eSmrg      case GL_MAP2_TEXTURE_COORD_1:
60544a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2TextureCoord1);
60554a49301eSmrg         break;
60564a49301eSmrg      case GL_MAP2_TEXTURE_COORD_2:
60574a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2TextureCoord2);
60584a49301eSmrg         break;
60594a49301eSmrg      case GL_MAP2_TEXTURE_COORD_3:
60604a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2TextureCoord3);
60614a49301eSmrg         break;
60624a49301eSmrg      case GL_MAP2_TEXTURE_COORD_4:
60634a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2TextureCoord4);
60644a49301eSmrg         break;
60654a49301eSmrg      case GL_MAP2_VERTEX_3:
60664a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Vertex3);
60674a49301eSmrg         break;
60684a49301eSmrg      case GL_MAP2_VERTEX_4:
60694a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Vertex4);
60704a49301eSmrg         break;
60714a49301eSmrg      case GL_MAP_COLOR:
60724a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.MapColorFlag);
60734a49301eSmrg         break;
60744a49301eSmrg      case GL_MAP_STENCIL:
60754a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.MapStencilFlag);
60764a49301eSmrg         break;
60774a49301eSmrg      case GL_MATRIX_MODE:
60784a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Transform.MatrixMode);
60794a49301eSmrg         break;
60804a49301eSmrg      case GL_MAX_ATTRIB_STACK_DEPTH:
60814a49301eSmrg         params[0] = (GLint64)(MAX_ATTRIB_STACK_DEPTH);
60824a49301eSmrg         break;
60834a49301eSmrg      case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
60844a49301eSmrg         params[0] = (GLint64)(MAX_CLIENT_ATTRIB_STACK_DEPTH);
60854a49301eSmrg         break;
60864a49301eSmrg      case GL_MAX_CLIP_PLANES:
60874a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxClipPlanes);
60884a49301eSmrg         break;
60894a49301eSmrg      case GL_MAX_ELEMENTS_VERTICES:
60904a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxArrayLockSize);
60914a49301eSmrg         break;
60924a49301eSmrg      case GL_MAX_ELEMENTS_INDICES:
60934a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxArrayLockSize);
60944a49301eSmrg         break;
60954a49301eSmrg      case GL_MAX_EVAL_ORDER:
60964a49301eSmrg         params[0] = (GLint64)(MAX_EVAL_ORDER);
60974a49301eSmrg         break;
60984a49301eSmrg      case GL_MAX_LIGHTS:
60994a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxLights);
61004a49301eSmrg         break;
61014a49301eSmrg      case GL_MAX_LIST_NESTING:
61024a49301eSmrg         params[0] = (GLint64)(MAX_LIST_NESTING);
61034a49301eSmrg         break;
61044a49301eSmrg      case GL_MAX_MODELVIEW_STACK_DEPTH:
61054a49301eSmrg         params[0] = (GLint64)(MAX_MODELVIEW_STACK_DEPTH);
61064a49301eSmrg         break;
61074a49301eSmrg      case GL_MAX_NAME_STACK_DEPTH:
61084a49301eSmrg         params[0] = (GLint64)(MAX_NAME_STACK_DEPTH);
61094a49301eSmrg         break;
61104a49301eSmrg      case GL_MAX_PIXEL_MAP_TABLE:
61114a49301eSmrg         params[0] = (GLint64)(MAX_PIXEL_MAP_TABLE);
61124a49301eSmrg         break;
61134a49301eSmrg      case GL_MAX_PROJECTION_STACK_DEPTH:
61144a49301eSmrg         params[0] = (GLint64)(MAX_PROJECTION_STACK_DEPTH);
61154a49301eSmrg         break;
61164a49301eSmrg      case GL_MAX_TEXTURE_SIZE:
61174a49301eSmrg         params[0] = (GLint64)(1 << (ctx->Const.MaxTextureLevels - 1));
61184a49301eSmrg         break;
61194a49301eSmrg      case GL_MAX_3D_TEXTURE_SIZE:
61204a49301eSmrg         params[0] = (GLint64)(1 << (ctx->Const.Max3DTextureLevels - 1));
61214a49301eSmrg         break;
61224a49301eSmrg      case GL_MAX_TEXTURE_STACK_DEPTH:
61234a49301eSmrg         params[0] = (GLint64)(MAX_TEXTURE_STACK_DEPTH);
61244a49301eSmrg         break;
61254a49301eSmrg      case GL_MAX_VIEWPORT_DIMS:
61264a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxViewportWidth);
61274a49301eSmrg         params[1] = (GLint64)(ctx->Const.MaxViewportHeight);
61284a49301eSmrg         break;
61294a49301eSmrg      case GL_MODELVIEW_MATRIX:
61304a49301eSmrg         {
61314a49301eSmrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
61324a49301eSmrg         params[0] = IROUND64(matrix[0]);
61334a49301eSmrg         params[1] = IROUND64(matrix[1]);
61344a49301eSmrg         params[2] = IROUND64(matrix[2]);
61354a49301eSmrg         params[3] = IROUND64(matrix[3]);
61364a49301eSmrg         params[4] = IROUND64(matrix[4]);
61374a49301eSmrg         params[5] = IROUND64(matrix[5]);
61384a49301eSmrg         params[6] = IROUND64(matrix[6]);
61394a49301eSmrg         params[7] = IROUND64(matrix[7]);
61404a49301eSmrg         params[8] = IROUND64(matrix[8]);
61414a49301eSmrg         params[9] = IROUND64(matrix[9]);
61424a49301eSmrg         params[10] = IROUND64(matrix[10]);
61434a49301eSmrg         params[11] = IROUND64(matrix[11]);
61444a49301eSmrg         params[12] = IROUND64(matrix[12]);
61454a49301eSmrg         params[13] = IROUND64(matrix[13]);
61464a49301eSmrg         params[14] = IROUND64(matrix[14]);
61474a49301eSmrg         params[15] = IROUND64(matrix[15]);
61484a49301eSmrg         }
61494a49301eSmrg         break;
61504a49301eSmrg      case GL_MODELVIEW_STACK_DEPTH:
61514a49301eSmrg         params[0] = (GLint64)(ctx->ModelviewMatrixStack.Depth + 1);
61524a49301eSmrg         break;
61534a49301eSmrg      case GL_NAME_STACK_DEPTH:
61544a49301eSmrg         params[0] = (GLint64)(ctx->Select.NameStackDepth);
61554a49301eSmrg         break;
61564a49301eSmrg      case GL_NORMALIZE:
61574a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Transform.Normalize);
61584a49301eSmrg         break;
61594a49301eSmrg      case GL_PACK_ALIGNMENT:
61604a49301eSmrg         params[0] = (GLint64)(ctx->Pack.Alignment);
61614a49301eSmrg         break;
61624a49301eSmrg      case GL_PACK_LSB_FIRST:
61634a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pack.LsbFirst);
61644a49301eSmrg         break;
61654a49301eSmrg      case GL_PACK_ROW_LENGTH:
61664a49301eSmrg         params[0] = (GLint64)(ctx->Pack.RowLength);
61674a49301eSmrg         break;
61684a49301eSmrg      case GL_PACK_SKIP_PIXELS:
61694a49301eSmrg         params[0] = (GLint64)(ctx->Pack.SkipPixels);
61704a49301eSmrg         break;
61714a49301eSmrg      case GL_PACK_SKIP_ROWS:
61724a49301eSmrg         params[0] = (GLint64)(ctx->Pack.SkipRows);
61734a49301eSmrg         break;
61744a49301eSmrg      case GL_PACK_SWAP_BYTES:
61754a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pack.SwapBytes);
61764a49301eSmrg         break;
61774a49301eSmrg      case GL_PACK_SKIP_IMAGES_EXT:
61784a49301eSmrg         params[0] = (GLint64)(ctx->Pack.SkipImages);
61794a49301eSmrg         break;
61804a49301eSmrg      case GL_PACK_IMAGE_HEIGHT_EXT:
61814a49301eSmrg         params[0] = (GLint64)(ctx->Pack.ImageHeight);
61824a49301eSmrg         break;
61834a49301eSmrg      case GL_PACK_INVERT_MESA:
61844a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pack.Invert);
61854a49301eSmrg         break;
61864a49301eSmrg      case GL_PERSPECTIVE_CORRECTION_HINT:
61874a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Hint.PerspectiveCorrection);
61884a49301eSmrg         break;
61894a49301eSmrg      case GL_PIXEL_MAP_A_TO_A_SIZE:
61904a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.AtoA.Size);
61914a49301eSmrg         break;
61924a49301eSmrg      case GL_PIXEL_MAP_B_TO_B_SIZE:
61934a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.BtoB.Size);
61944a49301eSmrg         break;
61954a49301eSmrg      case GL_PIXEL_MAP_G_TO_G_SIZE:
61964a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.GtoG.Size);
61974a49301eSmrg         break;
61984a49301eSmrg      case GL_PIXEL_MAP_I_TO_A_SIZE:
61994a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.ItoA.Size);
62004a49301eSmrg         break;
62014a49301eSmrg      case GL_PIXEL_MAP_I_TO_B_SIZE:
62024a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.ItoB.Size);
62034a49301eSmrg         break;
62044a49301eSmrg      case GL_PIXEL_MAP_I_TO_G_SIZE:
62054a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.ItoG.Size);
62064a49301eSmrg         break;
62074a49301eSmrg      case GL_PIXEL_MAP_I_TO_I_SIZE:
62084a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.ItoI.Size);
62094a49301eSmrg         break;
62104a49301eSmrg      case GL_PIXEL_MAP_I_TO_R_SIZE:
62114a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.ItoR.Size);
62124a49301eSmrg         break;
62134a49301eSmrg      case GL_PIXEL_MAP_R_TO_R_SIZE:
62144a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.RtoR.Size);
62154a49301eSmrg         break;
62164a49301eSmrg      case GL_PIXEL_MAP_S_TO_S_SIZE:
62174a49301eSmrg         params[0] = (GLint64)(ctx->PixelMaps.StoS.Size);
62184a49301eSmrg         break;
62194a49301eSmrg      case GL_POINT_SIZE:
62204a49301eSmrg         params[0] = IROUND64(ctx->Point.Size);
62214a49301eSmrg         break;
62224a49301eSmrg      case GL_POINT_SIZE_GRANULARITY:
62234a49301eSmrg         params[0] = IROUND64(ctx->Const.PointSizeGranularity);
62244a49301eSmrg         break;
62254a49301eSmrg      case GL_POINT_SIZE_RANGE:
62264a49301eSmrg         params[0] = IROUND64(ctx->Const.MinPointSizeAA);
62274a49301eSmrg         params[1] = IROUND64(ctx->Const.MaxPointSizeAA);
62284a49301eSmrg         break;
62294a49301eSmrg      case GL_ALIASED_POINT_SIZE_RANGE:
62304a49301eSmrg         params[0] = IROUND64(ctx->Const.MinPointSize);
62314a49301eSmrg         params[1] = IROUND64(ctx->Const.MaxPointSize);
62324a49301eSmrg         break;
62334a49301eSmrg      case GL_POINT_SMOOTH:
62344a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Point.SmoothFlag);
62354a49301eSmrg         break;
62364a49301eSmrg      case GL_POINT_SMOOTH_HINT:
62374a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Hint.PointSmooth);
62384a49301eSmrg         break;
62394a49301eSmrg      case GL_POINT_SIZE_MIN_EXT:
62404a49301eSmrg         params[0] = IROUND64(ctx->Point.MinSize);
62414a49301eSmrg         break;
62424a49301eSmrg      case GL_POINT_SIZE_MAX_EXT:
62434a49301eSmrg         params[0] = IROUND64(ctx->Point.MaxSize);
62444a49301eSmrg         break;
62454a49301eSmrg      case GL_POINT_FADE_THRESHOLD_SIZE_EXT:
62464a49301eSmrg         params[0] = IROUND64(ctx->Point.Threshold);
62474a49301eSmrg         break;
62484a49301eSmrg      case GL_DISTANCE_ATTENUATION_EXT:
62494a49301eSmrg         params[0] = IROUND64(ctx->Point.Params[0]);
62504a49301eSmrg         params[1] = IROUND64(ctx->Point.Params[1]);
62514a49301eSmrg         params[2] = IROUND64(ctx->Point.Params[2]);
62524a49301eSmrg         break;
62534a49301eSmrg      case GL_POLYGON_MODE:
62544a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Polygon.FrontMode);
62554a49301eSmrg         params[1] = ENUM_TO_INT64(ctx->Polygon.BackMode);
62564a49301eSmrg         break;
62574a49301eSmrg      case GL_POLYGON_OFFSET_BIAS_EXT:
62584a49301eSmrg         params[0] = IROUND64(ctx->Polygon.OffsetUnits);
62594a49301eSmrg         break;
62604a49301eSmrg      case GL_POLYGON_OFFSET_FACTOR:
62614a49301eSmrg         params[0] = IROUND64(ctx->Polygon.OffsetFactor );
62624a49301eSmrg         break;
62634a49301eSmrg      case GL_POLYGON_OFFSET_UNITS:
62644a49301eSmrg         params[0] = IROUND64(ctx->Polygon.OffsetUnits );
62654a49301eSmrg         break;
62664a49301eSmrg      case GL_POLYGON_OFFSET_POINT:
62674a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Polygon.OffsetPoint);
62684a49301eSmrg         break;
62694a49301eSmrg      case GL_POLYGON_OFFSET_LINE:
62704a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Polygon.OffsetLine);
62714a49301eSmrg         break;
62724a49301eSmrg      case GL_POLYGON_OFFSET_FILL:
62734a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Polygon.OffsetFill);
62744a49301eSmrg         break;
62754a49301eSmrg      case GL_POLYGON_SMOOTH:
62764a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Polygon.SmoothFlag);
62774a49301eSmrg         break;
62784a49301eSmrg      case GL_POLYGON_SMOOTH_HINT:
62794a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Hint.PolygonSmooth);
62804a49301eSmrg         break;
62814a49301eSmrg      case GL_POLYGON_STIPPLE:
62824a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Polygon.StippleFlag);
62834a49301eSmrg         break;
62844a49301eSmrg      case GL_PROJECTION_MATRIX:
62854a49301eSmrg         {
62864a49301eSmrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
62874a49301eSmrg         params[0] = IROUND64(matrix[0]);
62884a49301eSmrg         params[1] = IROUND64(matrix[1]);
62894a49301eSmrg         params[2] = IROUND64(matrix[2]);
62904a49301eSmrg         params[3] = IROUND64(matrix[3]);
62914a49301eSmrg         params[4] = IROUND64(matrix[4]);
62924a49301eSmrg         params[5] = IROUND64(matrix[5]);
62934a49301eSmrg         params[6] = IROUND64(matrix[6]);
62944a49301eSmrg         params[7] = IROUND64(matrix[7]);
62954a49301eSmrg         params[8] = IROUND64(matrix[8]);
62964a49301eSmrg         params[9] = IROUND64(matrix[9]);
62974a49301eSmrg         params[10] = IROUND64(matrix[10]);
62984a49301eSmrg         params[11] = IROUND64(matrix[11]);
62994a49301eSmrg         params[12] = IROUND64(matrix[12]);
63004a49301eSmrg         params[13] = IROUND64(matrix[13]);
63014a49301eSmrg         params[14] = IROUND64(matrix[14]);
63024a49301eSmrg         params[15] = IROUND64(matrix[15]);
63034a49301eSmrg         }
63044a49301eSmrg         break;
63054a49301eSmrg      case GL_PROJECTION_STACK_DEPTH:
63064a49301eSmrg         params[0] = (GLint64)(ctx->ProjectionMatrixStack.Depth + 1);
63074a49301eSmrg         break;
63084a49301eSmrg      case GL_READ_BUFFER:
63094a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->ReadBuffer->ColorReadBuffer);
63104a49301eSmrg         break;
63114a49301eSmrg      case GL_RED_BIAS:
63124a49301eSmrg         params[0] = IROUND64(ctx->Pixel.RedBias);
63134a49301eSmrg         break;
63144a49301eSmrg      case GL_RED_BITS:
63154a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.redBits);
63164a49301eSmrg         break;
63174a49301eSmrg      case GL_RED_SCALE:
63184a49301eSmrg         params[0] = IROUND64(ctx->Pixel.RedScale);
63194a49301eSmrg         break;
63204a49301eSmrg      case GL_RENDER_MODE:
63214a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->RenderMode);
63224a49301eSmrg         break;
63234a49301eSmrg      case GL_RESCALE_NORMAL:
63244a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Transform.RescaleNormals);
63254a49301eSmrg         break;
63264a49301eSmrg      case GL_RGBA_MODE:
63274a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->DrawBuffer->Visual.rgbMode);
63284a49301eSmrg         break;
63294a49301eSmrg      case GL_SCISSOR_BOX:
63304a49301eSmrg         params[0] = (GLint64)(ctx->Scissor.X);
63314a49301eSmrg         params[1] = (GLint64)(ctx->Scissor.Y);
63324a49301eSmrg         params[2] = (GLint64)(ctx->Scissor.Width);
63334a49301eSmrg         params[3] = (GLint64)(ctx->Scissor.Height);
63344a49301eSmrg         break;
63354a49301eSmrg      case GL_SCISSOR_TEST:
63364a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Scissor.Enabled);
63374a49301eSmrg         break;
63384a49301eSmrg      case GL_SELECTION_BUFFER_SIZE:
63394a49301eSmrg         params[0] = (GLint64)(ctx->Select.BufferSize);
63404a49301eSmrg         break;
63414a49301eSmrg      case GL_SHADE_MODEL:
63424a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Light.ShadeModel);
63434a49301eSmrg         break;
63444a49301eSmrg      case GL_SHARED_TEXTURE_PALETTE_EXT:
63454a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Texture.SharedPalette);
63464a49301eSmrg         break;
63474a49301eSmrg      case GL_STENCIL_BITS:
63484a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.stencilBits);
63494a49301eSmrg         break;
63504a49301eSmrg      case GL_STENCIL_CLEAR_VALUE:
63514a49301eSmrg         params[0] = (GLint64)(ctx->Stencil.Clear);
63524a49301eSmrg         break;
63534a49301eSmrg      case GL_STENCIL_FAIL:
63544a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]);
63554a49301eSmrg         break;
63564a49301eSmrg      case GL_STENCIL_FUNC:
63574a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.Function[ctx->Stencil.ActiveFace]);
63584a49301eSmrg         break;
63594a49301eSmrg      case GL_STENCIL_PASS_DEPTH_FAIL:
63604a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]);
63614a49301eSmrg         break;
63624a49301eSmrg      case GL_STENCIL_PASS_DEPTH_PASS:
63634a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]);
63644a49301eSmrg         break;
63654a49301eSmrg      case GL_STENCIL_REF:
63664a49301eSmrg         params[0] = (GLint64)(ctx->Stencil.Ref[ctx->Stencil.ActiveFace]);
63674a49301eSmrg         break;
63684a49301eSmrg      case GL_STENCIL_TEST:
63694a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Stencil.Enabled);
63704a49301eSmrg         break;
63714a49301eSmrg      case GL_STENCIL_VALUE_MASK:
63724a49301eSmrg         params[0] = (GLint64)(ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]);
63734a49301eSmrg         break;
63744a49301eSmrg      case GL_STENCIL_WRITEMASK:
63754a49301eSmrg         params[0] = (GLint64)(ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]);
63764a49301eSmrg         break;
63774a49301eSmrg      case GL_STEREO:
63784a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->DrawBuffer->Visual.stereoMode);
63794a49301eSmrg         break;
63804a49301eSmrg      case GL_SUBPIXEL_BITS:
63814a49301eSmrg         params[0] = (GLint64)(ctx->Const.SubPixelBits);
63824a49301eSmrg         break;
63834a49301eSmrg      case GL_TEXTURE_1D:
63844a49301eSmrg         params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D));
63854a49301eSmrg         break;
63864a49301eSmrg      case GL_TEXTURE_2D:
63874a49301eSmrg         params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D));
63884a49301eSmrg         break;
63894a49301eSmrg      case GL_TEXTURE_3D:
63904a49301eSmrg         params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_3D));
63914a49301eSmrg         break;
63924a49301eSmrg      case GL_TEXTURE_1D_ARRAY_EXT:
63934a49301eSmrg         CHECK_EXT1(MESA_texture_array, "GetInteger64v");
63944a49301eSmrg         params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT));
63954a49301eSmrg         break;
63964a49301eSmrg      case GL_TEXTURE_2D_ARRAY_EXT:
63974a49301eSmrg         CHECK_EXT1(MESA_texture_array, "GetInteger64v");
63984a49301eSmrg         params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT));
63994a49301eSmrg         break;
64004a49301eSmrg      case GL_TEXTURE_BINDING_1D:
64014a49301eSmrg         params[0] = (GLint64)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_INDEX]->Name);
64024a49301eSmrg         break;
64034a49301eSmrg      case GL_TEXTURE_BINDING_2D:
64044a49301eSmrg         params[0] = (GLint64)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_INDEX]->Name);
64054a49301eSmrg         break;
64064a49301eSmrg      case GL_TEXTURE_BINDING_3D:
64074a49301eSmrg         params[0] = (GLint64)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_3D_INDEX]->Name);
64084a49301eSmrg         break;
64094a49301eSmrg      case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
64104a49301eSmrg         CHECK_EXT1(MESA_texture_array, "GetInteger64v");
64114a49301eSmrg         params[0] = (GLint64)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_ARRAY_INDEX]->Name);
64124a49301eSmrg         break;
64134a49301eSmrg      case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
64144a49301eSmrg         CHECK_EXT1(MESA_texture_array, "GetInteger64v");
64154a49301eSmrg         params[0] = (GLint64)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_ARRAY_INDEX]->Name);
64164a49301eSmrg         break;
64174a49301eSmrg      case GL_TEXTURE_GEN_S:
64184a49301eSmrg         params[0] = BOOLEAN_TO_INT64(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0));
64194a49301eSmrg         break;
64204a49301eSmrg      case GL_TEXTURE_GEN_T:
64214a49301eSmrg         params[0] = BOOLEAN_TO_INT64(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0));
64224a49301eSmrg         break;
64234a49301eSmrg      case GL_TEXTURE_GEN_R:
64244a49301eSmrg         params[0] = BOOLEAN_TO_INT64(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0));
64254a49301eSmrg         break;
64264a49301eSmrg      case GL_TEXTURE_GEN_Q:
64274a49301eSmrg         params[0] = BOOLEAN_TO_INT64(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0));
64284a49301eSmrg         break;
64294a49301eSmrg      case GL_TEXTURE_MATRIX:
64304a49301eSmrg         {
64314a49301eSmrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
64324a49301eSmrg         params[0] = IROUND64(matrix[0]);
64334a49301eSmrg         params[1] = IROUND64(matrix[1]);
64344a49301eSmrg         params[2] = IROUND64(matrix[2]);
64354a49301eSmrg         params[3] = IROUND64(matrix[3]);
64364a49301eSmrg         params[4] = IROUND64(matrix[4]);
64374a49301eSmrg         params[5] = IROUND64(matrix[5]);
64384a49301eSmrg         params[6] = IROUND64(matrix[6]);
64394a49301eSmrg         params[7] = IROUND64(matrix[7]);
64404a49301eSmrg         params[8] = IROUND64(matrix[8]);
64414a49301eSmrg         params[9] = IROUND64(matrix[9]);
64424a49301eSmrg         params[10] = IROUND64(matrix[10]);
64434a49301eSmrg         params[11] = IROUND64(matrix[11]);
64444a49301eSmrg         params[12] = IROUND64(matrix[12]);
64454a49301eSmrg         params[13] = IROUND64(matrix[13]);
64464a49301eSmrg         params[14] = IROUND64(matrix[14]);
64474a49301eSmrg         params[15] = IROUND64(matrix[15]);
64484a49301eSmrg         }
64494a49301eSmrg         break;
64504a49301eSmrg      case GL_TEXTURE_STACK_DEPTH:
64514a49301eSmrg         params[0] = (GLint64)(ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1);
64524a49301eSmrg         break;
64534a49301eSmrg      case GL_UNPACK_ALIGNMENT:
64544a49301eSmrg         params[0] = (GLint64)(ctx->Unpack.Alignment);
64554a49301eSmrg         break;
64564a49301eSmrg      case GL_UNPACK_LSB_FIRST:
64574a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Unpack.LsbFirst);
64584a49301eSmrg         break;
64594a49301eSmrg      case GL_UNPACK_ROW_LENGTH:
64604a49301eSmrg         params[0] = (GLint64)(ctx->Unpack.RowLength);
64614a49301eSmrg         break;
64624a49301eSmrg      case GL_UNPACK_SKIP_PIXELS:
64634a49301eSmrg         params[0] = (GLint64)(ctx->Unpack.SkipPixels);
64644a49301eSmrg         break;
64654a49301eSmrg      case GL_UNPACK_SKIP_ROWS:
64664a49301eSmrg         params[0] = (GLint64)(ctx->Unpack.SkipRows);
64674a49301eSmrg         break;
64684a49301eSmrg      case GL_UNPACK_SWAP_BYTES:
64694a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Unpack.SwapBytes);
64704a49301eSmrg         break;
64714a49301eSmrg      case GL_UNPACK_SKIP_IMAGES_EXT:
64724a49301eSmrg         params[0] = (GLint64)(ctx->Unpack.SkipImages);
64734a49301eSmrg         break;
64744a49301eSmrg      case GL_UNPACK_IMAGE_HEIGHT_EXT:
64754a49301eSmrg         params[0] = (GLint64)(ctx->Unpack.ImageHeight);
64764a49301eSmrg         break;
64774a49301eSmrg      case GL_UNPACK_CLIENT_STORAGE_APPLE:
64784a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Unpack.ClientStorage);
64794a49301eSmrg         break;
64804a49301eSmrg      case GL_VIEWPORT:
64814a49301eSmrg         params[0] = (GLint64)(ctx->Viewport.X);
64824a49301eSmrg         params[1] = (GLint64)(ctx->Viewport.Y);
64834a49301eSmrg         params[2] = (GLint64)(ctx->Viewport.Width);
64844a49301eSmrg         params[3] = (GLint64)(ctx->Viewport.Height);
64854a49301eSmrg         break;
64864a49301eSmrg      case GL_ZOOM_X:
64874a49301eSmrg         params[0] = IROUND64(ctx->Pixel.ZoomX);
64884a49301eSmrg         break;
64894a49301eSmrg      case GL_ZOOM_Y:
64904a49301eSmrg         params[0] = IROUND64(ctx->Pixel.ZoomY);
64914a49301eSmrg         break;
64924a49301eSmrg      case GL_VERTEX_ARRAY:
64934a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->Vertex.Enabled);
64944a49301eSmrg         break;
64954a49301eSmrg      case GL_VERTEX_ARRAY_SIZE:
64964a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Vertex.Size);
64974a49301eSmrg         break;
64984a49301eSmrg      case GL_VERTEX_ARRAY_TYPE:
64994a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Vertex.Type);
65004a49301eSmrg         break;
65014a49301eSmrg      case GL_VERTEX_ARRAY_STRIDE:
65024a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Vertex.Stride);
65034a49301eSmrg         break;
65044a49301eSmrg      case GL_VERTEX_ARRAY_COUNT_EXT:
65054a49301eSmrg         params[0] = (GLint64)(0);
65064a49301eSmrg         break;
65074a49301eSmrg      case GL_NORMAL_ARRAY:
65084a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Normal.Enabled);
65094a49301eSmrg         break;
65104a49301eSmrg      case GL_NORMAL_ARRAY_TYPE:
65114a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Normal.Type);
65124a49301eSmrg         break;
65134a49301eSmrg      case GL_NORMAL_ARRAY_STRIDE:
65144a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Normal.Stride);
65154a49301eSmrg         break;
65164a49301eSmrg      case GL_NORMAL_ARRAY_COUNT_EXT:
65174a49301eSmrg         params[0] = (GLint64)(0);
65184a49301eSmrg         break;
65194a49301eSmrg      case GL_COLOR_ARRAY:
65204a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->Color.Enabled);
65214a49301eSmrg         break;
65224a49301eSmrg      case GL_COLOR_ARRAY_SIZE:
65234a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Color.Size);
65244a49301eSmrg         break;
65254a49301eSmrg      case GL_COLOR_ARRAY_TYPE:
65264a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Color.Type);
65274a49301eSmrg         break;
65284a49301eSmrg      case GL_COLOR_ARRAY_STRIDE:
65294a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Color.Stride);
65304a49301eSmrg         break;
65314a49301eSmrg      case GL_COLOR_ARRAY_COUNT_EXT:
65324a49301eSmrg         params[0] = (GLint64)(0);
65334a49301eSmrg         break;
65344a49301eSmrg      case GL_INDEX_ARRAY:
65354a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->Index.Enabled);
65364a49301eSmrg         break;
65374a49301eSmrg      case GL_INDEX_ARRAY_TYPE:
65384a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Index.Type);
65394a49301eSmrg         break;
65404a49301eSmrg      case GL_INDEX_ARRAY_STRIDE:
65414a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Index.Stride);
65424a49301eSmrg         break;
65434a49301eSmrg      case GL_INDEX_ARRAY_COUNT_EXT:
65444a49301eSmrg         params[0] = (GLint64)(0);
65454a49301eSmrg         break;
65464a49301eSmrg      case GL_TEXTURE_COORD_ARRAY:
65474a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled);
65484a49301eSmrg         break;
65494a49301eSmrg      case GL_TEXTURE_COORD_ARRAY_SIZE:
65504a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size);
65514a49301eSmrg         break;
65524a49301eSmrg      case GL_TEXTURE_COORD_ARRAY_TYPE:
65534a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
65544a49301eSmrg         break;
65554a49301eSmrg      case GL_TEXTURE_COORD_ARRAY_STRIDE:
65564a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride);
65574a49301eSmrg         break;
65584a49301eSmrg      case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
65594a49301eSmrg         params[0] = (GLint64)(0);
65604a49301eSmrg         break;
65614a49301eSmrg      case GL_EDGE_FLAG_ARRAY:
65624a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->EdgeFlag.Enabled);
65634a49301eSmrg         break;
65644a49301eSmrg      case GL_EDGE_FLAG_ARRAY_STRIDE:
65654a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->EdgeFlag.Stride);
65664a49301eSmrg         break;
65674a49301eSmrg      case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
65684a49301eSmrg         params[0] = (GLint64)(0);
65694a49301eSmrg         break;
65704a49301eSmrg      case GL_MAX_TEXTURE_UNITS_ARB:
65714a49301eSmrg         CHECK_EXT1(ARB_multitexture, "GetInteger64v");
65724a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxTextureUnits);
65734a49301eSmrg         break;
65744a49301eSmrg      case GL_ACTIVE_TEXTURE_ARB:
65754a49301eSmrg         CHECK_EXT1(ARB_multitexture, "GetInteger64v");
65764a49301eSmrg         params[0] = (GLint64)(GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit);
65774a49301eSmrg         break;
65784a49301eSmrg      case GL_CLIENT_ACTIVE_TEXTURE_ARB:
65794a49301eSmrg         CHECK_EXT1(ARB_multitexture, "GetInteger64v");
65804a49301eSmrg         params[0] = (GLint64)(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
65814a49301eSmrg         break;
65824a49301eSmrg      case GL_TEXTURE_CUBE_MAP_ARB:
65834a49301eSmrg         CHECK_EXT1(ARB_texture_cube_map, "GetInteger64v");
65844a49301eSmrg         params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB));
65854a49301eSmrg         break;
65864a49301eSmrg      case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
65874a49301eSmrg         CHECK_EXT1(ARB_texture_cube_map, "GetInteger64v");
65884a49301eSmrg         params[0] = (GLint64)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_CUBE_INDEX]->Name);
65894a49301eSmrg         break;
65904a49301eSmrg      case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
65914a49301eSmrg         CHECK_EXT1(ARB_texture_cube_map, "GetInteger64v");
65924a49301eSmrg         params[0] = (GLint64)((1 << (ctx->Const.MaxCubeTextureLevels - 1)));
65934a49301eSmrg         break;
65944a49301eSmrg      case GL_TEXTURE_COMPRESSION_HINT_ARB:
65954a49301eSmrg         params[0] = (GLint64)(ctx->Hint.TextureCompression);
65964a49301eSmrg         break;
65974a49301eSmrg      case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
65984a49301eSmrg         params[0] = (GLint64)(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE));
65994a49301eSmrg         break;
66004a49301eSmrg      case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
66014a49301eSmrg         {
66024a49301eSmrg         GLint formats[100];
66034a49301eSmrg         GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
66044a49301eSmrg         ASSERT(n <= 100);
66054a49301eSmrg         for (i = 0; i < n; i++)
66064a49301eSmrg            params[i] = ENUM_TO_INT64(formats[i]);
66074a49301eSmrg         }
66084a49301eSmrg         break;
66094a49301eSmrg      case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
66104a49301eSmrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetInteger64v");
66114a49301eSmrg         params[0] = (GLint64)(ctx->Array.LockFirst);
66124a49301eSmrg         break;
66134a49301eSmrg      case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
66144a49301eSmrg         CHECK_EXT1(EXT_compiled_vertex_array, "GetInteger64v");
66154a49301eSmrg         params[0] = (GLint64)(ctx->Array.LockCount);
66164a49301eSmrg         break;
66174a49301eSmrg      case GL_TRANSPOSE_COLOR_MATRIX_ARB:
66184a49301eSmrg         {
66194a49301eSmrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
66204a49301eSmrg         params[0] = IROUND64(matrix[0]);
66214a49301eSmrg         params[1] = IROUND64(matrix[4]);
66224a49301eSmrg         params[2] = IROUND64(matrix[8]);
66234a49301eSmrg         params[3] = IROUND64(matrix[12]);
66244a49301eSmrg         params[4] = IROUND64(matrix[1]);
66254a49301eSmrg         params[5] = IROUND64(matrix[5]);
66264a49301eSmrg         params[6] = IROUND64(matrix[9]);
66274a49301eSmrg         params[7] = IROUND64(matrix[13]);
66284a49301eSmrg         params[8] = IROUND64(matrix[2]);
66294a49301eSmrg         params[9] = IROUND64(matrix[6]);
66304a49301eSmrg         params[10] = IROUND64(matrix[10]);
66314a49301eSmrg         params[11] = IROUND64(matrix[14]);
66324a49301eSmrg         params[12] = IROUND64(matrix[3]);
66334a49301eSmrg         params[13] = IROUND64(matrix[7]);
66344a49301eSmrg         params[14] = IROUND64(matrix[11]);
66354a49301eSmrg         params[15] = IROUND64(matrix[15]);
66364a49301eSmrg         }
66374a49301eSmrg         break;
66384a49301eSmrg      case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
66394a49301eSmrg         {
66404a49301eSmrg         const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
66414a49301eSmrg         params[0] = IROUND64(matrix[0]);
66424a49301eSmrg         params[1] = IROUND64(matrix[4]);
66434a49301eSmrg         params[2] = IROUND64(matrix[8]);
66444a49301eSmrg         params[3] = IROUND64(matrix[12]);
66454a49301eSmrg         params[4] = IROUND64(matrix[1]);
66464a49301eSmrg         params[5] = IROUND64(matrix[5]);
66474a49301eSmrg         params[6] = IROUND64(matrix[9]);
66484a49301eSmrg         params[7] = IROUND64(matrix[13]);
66494a49301eSmrg         params[8] = IROUND64(matrix[2]);
66504a49301eSmrg         params[9] = IROUND64(matrix[6]);
66514a49301eSmrg         params[10] = IROUND64(matrix[10]);
66524a49301eSmrg         params[11] = IROUND64(matrix[14]);
66534a49301eSmrg         params[12] = IROUND64(matrix[3]);
66544a49301eSmrg         params[13] = IROUND64(matrix[7]);
66554a49301eSmrg         params[14] = IROUND64(matrix[11]);
66564a49301eSmrg         params[15] = IROUND64(matrix[15]);
66574a49301eSmrg         }
66584a49301eSmrg         break;
66594a49301eSmrg      case GL_TRANSPOSE_PROJECTION_MATRIX_ARB:
66604a49301eSmrg         {
66614a49301eSmrg         const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
66624a49301eSmrg         params[0] = IROUND64(matrix[0]);
66634a49301eSmrg         params[1] = IROUND64(matrix[4]);
66644a49301eSmrg         params[2] = IROUND64(matrix[8]);
66654a49301eSmrg         params[3] = IROUND64(matrix[12]);
66664a49301eSmrg         params[4] = IROUND64(matrix[1]);
66674a49301eSmrg         params[5] = IROUND64(matrix[5]);
66684a49301eSmrg         params[6] = IROUND64(matrix[9]);
66694a49301eSmrg         params[7] = IROUND64(matrix[13]);
66704a49301eSmrg         params[8] = IROUND64(matrix[2]);
66714a49301eSmrg         params[9] = IROUND64(matrix[6]);
66724a49301eSmrg         params[10] = IROUND64(matrix[10]);
66734a49301eSmrg         params[11] = IROUND64(matrix[14]);
66744a49301eSmrg         params[12] = IROUND64(matrix[3]);
66754a49301eSmrg         params[13] = IROUND64(matrix[7]);
66764a49301eSmrg         params[14] = IROUND64(matrix[11]);
66774a49301eSmrg         params[15] = IROUND64(matrix[15]);
66784a49301eSmrg         }
66794a49301eSmrg         break;
66804a49301eSmrg      case GL_TRANSPOSE_TEXTURE_MATRIX_ARB:
66814a49301eSmrg         {
66824a49301eSmrg         const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
66834a49301eSmrg         params[0] = IROUND64(matrix[0]);
66844a49301eSmrg         params[1] = IROUND64(matrix[4]);
66854a49301eSmrg         params[2] = IROUND64(matrix[8]);
66864a49301eSmrg         params[3] = IROUND64(matrix[12]);
66874a49301eSmrg         params[4] = IROUND64(matrix[1]);
66884a49301eSmrg         params[5] = IROUND64(matrix[5]);
66894a49301eSmrg         params[6] = IROUND64(matrix[9]);
66904a49301eSmrg         params[7] = IROUND64(matrix[13]);
66914a49301eSmrg         params[8] = IROUND64(matrix[2]);
66924a49301eSmrg         params[9] = IROUND64(matrix[6]);
66934a49301eSmrg         params[10] = IROUND64(matrix[10]);
66944a49301eSmrg         params[11] = IROUND64(matrix[14]);
66954a49301eSmrg         params[12] = IROUND64(matrix[3]);
66964a49301eSmrg         params[13] = IROUND64(matrix[7]);
66974a49301eSmrg         params[14] = IROUND64(matrix[11]);
66984a49301eSmrg         params[15] = IROUND64(matrix[15]);
66994a49301eSmrg         }
67004a49301eSmrg         break;
67014a49301eSmrg      case GL_COLOR_MATRIX_SGI:
67024a49301eSmrg         {
67034a49301eSmrg         const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
67044a49301eSmrg         params[0] = IROUND64(matrix[0]);
67054a49301eSmrg         params[1] = IROUND64(matrix[1]);
67064a49301eSmrg         params[2] = IROUND64(matrix[2]);
67074a49301eSmrg         params[3] = IROUND64(matrix[3]);
67084a49301eSmrg         params[4] = IROUND64(matrix[4]);
67094a49301eSmrg         params[5] = IROUND64(matrix[5]);
67104a49301eSmrg         params[6] = IROUND64(matrix[6]);
67114a49301eSmrg         params[7] = IROUND64(matrix[7]);
67124a49301eSmrg         params[8] = IROUND64(matrix[8]);
67134a49301eSmrg         params[9] = IROUND64(matrix[9]);
67144a49301eSmrg         params[10] = IROUND64(matrix[10]);
67154a49301eSmrg         params[11] = IROUND64(matrix[11]);
67164a49301eSmrg         params[12] = IROUND64(matrix[12]);
67174a49301eSmrg         params[13] = IROUND64(matrix[13]);
67184a49301eSmrg         params[14] = IROUND64(matrix[14]);
67194a49301eSmrg         params[15] = IROUND64(matrix[15]);
67204a49301eSmrg         }
67214a49301eSmrg         break;
67224a49301eSmrg      case GL_COLOR_MATRIX_STACK_DEPTH_SGI:
67234a49301eSmrg         params[0] = (GLint64)(ctx->ColorMatrixStack.Depth + 1);
67244a49301eSmrg         break;
67254a49301eSmrg      case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI:
67264a49301eSmrg         params[0] = (GLint64)(MAX_COLOR_STACK_DEPTH);
67274a49301eSmrg         break;
67284a49301eSmrg      case GL_POST_COLOR_MATRIX_RED_SCALE_SGI:
67294a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostColorMatrixScale[0]);
67304a49301eSmrg         break;
67314a49301eSmrg      case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI:
67324a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostColorMatrixScale[1]);
67334a49301eSmrg         break;
67344a49301eSmrg      case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI:
67354a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostColorMatrixScale[2]);
67364a49301eSmrg         break;
67374a49301eSmrg      case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI:
67384a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostColorMatrixScale[3]);
67394a49301eSmrg         break;
67404a49301eSmrg      case GL_POST_COLOR_MATRIX_RED_BIAS_SGI:
67414a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostColorMatrixBias[0]);
67424a49301eSmrg         break;
67434a49301eSmrg      case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI:
67444a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostColorMatrixBias[1]);
67454a49301eSmrg         break;
67464a49301eSmrg      case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI:
67474a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostColorMatrixBias[2]);
67484a49301eSmrg         break;
67494a49301eSmrg      case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI:
67504a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostColorMatrixBias[3]);
67514a49301eSmrg         break;
67524a49301eSmrg      case GL_CONVOLUTION_1D_EXT:
67534a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67544a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.Convolution1DEnabled);
67554a49301eSmrg         break;
67564a49301eSmrg      case GL_CONVOLUTION_2D_EXT:
67574a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67584a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.Convolution2DEnabled);
67594a49301eSmrg         break;
67604a49301eSmrg      case GL_SEPARABLE_2D_EXT:
67614a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67624a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.Separable2DEnabled);
67634a49301eSmrg         break;
67644a49301eSmrg      case GL_POST_CONVOLUTION_RED_SCALE_EXT:
67654a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67664a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostConvolutionScale[0]);
67674a49301eSmrg         break;
67684a49301eSmrg      case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:
67694a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67704a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostConvolutionScale[1]);
67714a49301eSmrg         break;
67724a49301eSmrg      case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:
67734a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67744a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostConvolutionScale[2]);
67754a49301eSmrg         break;
67764a49301eSmrg      case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:
67774a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67784a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostConvolutionScale[3]);
67794a49301eSmrg         break;
67804a49301eSmrg      case GL_POST_CONVOLUTION_RED_BIAS_EXT:
67814a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67824a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostConvolutionBias[0]);
67834a49301eSmrg         break;
67844a49301eSmrg      case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:
67854a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67864a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostConvolutionBias[1]);
67874a49301eSmrg         break;
67884a49301eSmrg      case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:
67894a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67904a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostConvolutionBias[2]);
67914a49301eSmrg         break;
67924a49301eSmrg      case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:
67934a49301eSmrg         CHECK_EXT1(EXT_convolution, "GetInteger64v");
67944a49301eSmrg         params[0] = IROUND64(ctx->Pixel.PostConvolutionBias[3]);
67954a49301eSmrg         break;
67964a49301eSmrg      case GL_HISTOGRAM:
67974a49301eSmrg         CHECK_EXT1(EXT_histogram, "GetInteger64v");
67984a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.HistogramEnabled);
67994a49301eSmrg         break;
68004a49301eSmrg      case GL_MINMAX:
68014a49301eSmrg         CHECK_EXT1(EXT_histogram, "GetInteger64v");
68024a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.MinMaxEnabled);
68034a49301eSmrg         break;
68044a49301eSmrg      case GL_COLOR_TABLE_SGI:
68054a49301eSmrg         CHECK_EXT1(SGI_color_table, "GetInteger64v");
68064a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]);
68074a49301eSmrg         break;
68084a49301eSmrg      case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
68094a49301eSmrg         CHECK_EXT1(SGI_color_table, "GetInteger64v");
68104a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]);
68114a49301eSmrg         break;
68124a49301eSmrg      case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
68134a49301eSmrg         CHECK_EXT1(SGI_color_table, "GetInteger64v");
68144a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]);
68154a49301eSmrg         break;
68164a49301eSmrg      case GL_TEXTURE_COLOR_TABLE_SGI:
68174a49301eSmrg         CHECK_EXT1(SGI_texture_color_table, "GetInteger64v");
68184a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled);
68194a49301eSmrg         break;
68204a49301eSmrg      case GL_COLOR_SUM_EXT:
68214a49301eSmrg         CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetInteger64v");
68224a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Fog.ColorSumEnabled);
68234a49301eSmrg         break;
68244a49301eSmrg      case GL_CURRENT_SECONDARY_COLOR_EXT:
68254a49301eSmrg         CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
68264a49301eSmrg         {
68274a49301eSmrg         FLUSH_CURRENT(ctx, 0);
68284a49301eSmrg         params[0] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]);
68294a49301eSmrg         params[1] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]);
68304a49301eSmrg         params[2] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]);
68314a49301eSmrg         params[3] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]);
68324a49301eSmrg         }
68334a49301eSmrg         break;
68344a49301eSmrg      case GL_SECONDARY_COLOR_ARRAY_EXT:
68354a49301eSmrg         CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
68364a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->SecondaryColor.Enabled);
68374a49301eSmrg         break;
68384a49301eSmrg      case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
68394a49301eSmrg         CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
68404a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->SecondaryColor.Type);
68414a49301eSmrg         break;
68424a49301eSmrg      case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
68434a49301eSmrg         CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
68444a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->SecondaryColor.Stride);
68454a49301eSmrg         break;
68464a49301eSmrg      case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
68474a49301eSmrg         CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
68484a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->SecondaryColor.Size);
68494a49301eSmrg         break;
68504a49301eSmrg      case GL_CURRENT_FOG_COORDINATE_EXT:
68514a49301eSmrg         CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
68524a49301eSmrg         {
68534a49301eSmrg         FLUSH_CURRENT(ctx, 0);
68544a49301eSmrg         params[0] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_FOG][0]);
68554a49301eSmrg         }
68564a49301eSmrg         break;
68574a49301eSmrg      case GL_FOG_COORDINATE_ARRAY_EXT:
68584a49301eSmrg         CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
68594a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->FogCoord.Enabled);
68604a49301eSmrg         break;
68614a49301eSmrg      case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
68624a49301eSmrg         CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
68634a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->FogCoord.Type);
68644a49301eSmrg         break;
68654a49301eSmrg      case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
68664a49301eSmrg         CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
68674a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->FogCoord.Stride);
68684a49301eSmrg         break;
68694a49301eSmrg      case GL_FOG_COORDINATE_SOURCE_EXT:
68704a49301eSmrg         CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
68714a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Fog.FogCoordinateSource);
68724a49301eSmrg         break;
68734a49301eSmrg      case GL_MAX_TEXTURE_LOD_BIAS_EXT:
68744a49301eSmrg         CHECK_EXT1(EXT_texture_lod_bias, "GetInteger64v");
68754a49301eSmrg         params[0] = IROUND64(ctx->Const.MaxTextureLodBias);
68764a49301eSmrg         break;
68774a49301eSmrg      case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
68784a49301eSmrg         CHECK_EXT1(EXT_texture_filter_anisotropic, "GetInteger64v");
68794a49301eSmrg         params[0] = IROUND64(ctx->Const.MaxTextureMaxAnisotropy);
68804a49301eSmrg         break;
68814a49301eSmrg      case GL_MULTISAMPLE_ARB:
68824a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Multisample.Enabled);
68834a49301eSmrg         break;
68844a49301eSmrg      case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
68854a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Multisample.SampleAlphaToCoverage);
68864a49301eSmrg         break;
68874a49301eSmrg      case GL_SAMPLE_ALPHA_TO_ONE_ARB:
68884a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Multisample.SampleAlphaToOne);
68894a49301eSmrg         break;
68904a49301eSmrg      case GL_SAMPLE_COVERAGE_ARB:
68914a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Multisample.SampleCoverage);
68924a49301eSmrg         break;
68934a49301eSmrg      case GL_SAMPLE_COVERAGE_VALUE_ARB:
68944a49301eSmrg         params[0] = IROUND64(ctx->Multisample.SampleCoverageValue);
68954a49301eSmrg         break;
68964a49301eSmrg      case GL_SAMPLE_COVERAGE_INVERT_ARB:
68974a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Multisample.SampleCoverageInvert);
68984a49301eSmrg         break;
68994a49301eSmrg      case GL_SAMPLE_BUFFERS_ARB:
69004a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.sampleBuffers);
69014a49301eSmrg         break;
69024a49301eSmrg      case GL_SAMPLES_ARB:
69034a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Visual.samples);
69044a49301eSmrg         break;
69054a49301eSmrg      case GL_RASTER_POSITION_UNCLIPPED_IBM:
69064a49301eSmrg         CHECK_EXT1(IBM_rasterpos_clip, "GetInteger64v");
69074a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Transform.RasterPositionUnclipped);
69084a49301eSmrg         break;
69094a49301eSmrg      case GL_POINT_SPRITE_NV:
69104a49301eSmrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetInteger64v");
69114a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Point.PointSprite);
69124a49301eSmrg         break;
69134a49301eSmrg      case GL_POINT_SPRITE_R_MODE_NV:
69144a49301eSmrg         CHECK_EXT1(NV_point_sprite, "GetInteger64v");
69154a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Point.SpriteRMode);
69164a49301eSmrg         break;
69174a49301eSmrg      case GL_POINT_SPRITE_COORD_ORIGIN:
69184a49301eSmrg         CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetInteger64v");
69194a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Point.SpriteOrigin);
69204a49301eSmrg         break;
69214a49301eSmrg      case GL_GENERATE_MIPMAP_HINT_SGIS:
69224a49301eSmrg         CHECK_EXT1(SGIS_generate_mipmap, "GetInteger64v");
69234a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Hint.GenerateMipmap);
69244a49301eSmrg         break;
69254a49301eSmrg      case GL_VERTEX_PROGRAM_BINDING_NV:
69264a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69274a49301eSmrg         params[0] = (GLint64)((ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0));
69284a49301eSmrg         break;
69294a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY0_NV:
69304a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69314a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[0].Enabled);
69324a49301eSmrg         break;
69334a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY1_NV:
69344a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69354a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[1].Enabled);
69364a49301eSmrg         break;
69374a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY2_NV:
69384a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69394a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[2].Enabled);
69404a49301eSmrg         break;
69414a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY3_NV:
69424a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69434a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[3].Enabled);
69444a49301eSmrg         break;
69454a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY4_NV:
69464a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69474a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[4].Enabled);
69484a49301eSmrg         break;
69494a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY5_NV:
69504a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69514a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[5].Enabled);
69524a49301eSmrg         break;
69534a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY6_NV:
69544a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69554a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[6].Enabled);
69564a49301eSmrg         break;
69574a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY7_NV:
69584a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69594a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[7].Enabled);
69604a49301eSmrg         break;
69614a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY8_NV:
69624a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69634a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[8].Enabled);
69644a49301eSmrg         break;
69654a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY9_NV:
69664a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69674a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[9].Enabled);
69684a49301eSmrg         break;
69694a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY10_NV:
69704a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69714a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[10].Enabled);
69724a49301eSmrg         break;
69734a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY11_NV:
69744a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69754a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[11].Enabled);
69764a49301eSmrg         break;
69774a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY12_NV:
69784a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69794a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[12].Enabled);
69804a49301eSmrg         break;
69814a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY13_NV:
69824a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69834a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[13].Enabled);
69844a49301eSmrg         break;
69854a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY14_NV:
69864a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69874a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[14].Enabled);
69884a49301eSmrg         break;
69894a49301eSmrg      case GL_VERTEX_ATTRIB_ARRAY15_NV:
69904a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69914a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[15].Enabled);
69924a49301eSmrg         break;
69934a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB0_4_NV:
69944a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69954a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[0]);
69964a49301eSmrg         break;
69974a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB1_4_NV:
69984a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
69994a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[1]);
70004a49301eSmrg         break;
70014a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB2_4_NV:
70024a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70034a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[2]);
70044a49301eSmrg         break;
70054a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB3_4_NV:
70064a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70074a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[3]);
70084a49301eSmrg         break;
70094a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB4_4_NV:
70104a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70114a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[4]);
70124a49301eSmrg         break;
70134a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB5_4_NV:
70144a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70154a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[5]);
70164a49301eSmrg         break;
70174a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB6_4_NV:
70184a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70194a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[6]);
70204a49301eSmrg         break;
70214a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB7_4_NV:
70224a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70234a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[7]);
70244a49301eSmrg         break;
70254a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB8_4_NV:
70264a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70274a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[8]);
70284a49301eSmrg         break;
70294a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB9_4_NV:
70304a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70314a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[9]);
70324a49301eSmrg         break;
70334a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB10_4_NV:
70344a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70354a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[10]);
70364a49301eSmrg         break;
70374a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB11_4_NV:
70384a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70394a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[11]);
70404a49301eSmrg         break;
70414a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB12_4_NV:
70424a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70434a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[12]);
70444a49301eSmrg         break;
70454a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB13_4_NV:
70464a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70474a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[13]);
70484a49301eSmrg         break;
70494a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB14_4_NV:
70504a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70514a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[14]);
70524a49301eSmrg         break;
70534a49301eSmrg      case GL_MAP1_VERTEX_ATTRIB15_4_NV:
70544a49301eSmrg         CHECK_EXT1(NV_vertex_program, "GetInteger64v");
70554a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[15]);
70564a49301eSmrg         break;
70574a49301eSmrg      case GL_FRAGMENT_PROGRAM_NV:
70584a49301eSmrg         CHECK_EXT1(NV_fragment_program, "GetInteger64v");
70594a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->FragmentProgram.Enabled);
70604a49301eSmrg         break;
70614a49301eSmrg      case GL_FRAGMENT_PROGRAM_BINDING_NV:
70624a49301eSmrg         CHECK_EXT1(NV_fragment_program, "GetInteger64v");
70634a49301eSmrg         params[0] = (GLint64)(ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0);
70644a49301eSmrg         break;
70654a49301eSmrg      case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV:
70664a49301eSmrg         CHECK_EXT1(NV_fragment_program, "GetInteger64v");
70674a49301eSmrg         params[0] = (GLint64)(MAX_NV_FRAGMENT_PROGRAM_PARAMS);
70684a49301eSmrg         break;
70694a49301eSmrg      case GL_TEXTURE_RECTANGLE_NV:
70704a49301eSmrg         CHECK_EXT1(NV_texture_rectangle, "GetInteger64v");
70714a49301eSmrg         params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV));
70724a49301eSmrg         break;
70734a49301eSmrg      case GL_TEXTURE_BINDING_RECTANGLE_NV:
70744a49301eSmrg         CHECK_EXT1(NV_texture_rectangle, "GetInteger64v");
70754a49301eSmrg         params[0] = (GLint64)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_RECT_INDEX]->Name);
70764a49301eSmrg         break;
70774a49301eSmrg      case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
70784a49301eSmrg         CHECK_EXT1(NV_texture_rectangle, "GetInteger64v");
70794a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxTextureRectSize);
70804a49301eSmrg         break;
70814a49301eSmrg      case GL_STENCIL_TEST_TWO_SIDE_EXT:
70824a49301eSmrg         CHECK_EXT1(EXT_stencil_two_side, "GetInteger64v");
70834a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Stencil.TestTwoSide);
70844a49301eSmrg         break;
70854a49301eSmrg      case GL_ACTIVE_STENCIL_FACE_EXT:
70864a49301eSmrg         CHECK_EXT1(EXT_stencil_two_side, "GetInteger64v");
70874a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT);
70884a49301eSmrg         break;
70894a49301eSmrg      case GL_MAX_SHININESS_NV:
70904a49301eSmrg         CHECK_EXT1(NV_light_max_exponent, "GetInteger64v");
70914a49301eSmrg         params[0] = IROUND64(ctx->Const.MaxShininess);
70924a49301eSmrg         break;
70934a49301eSmrg      case GL_MAX_SPOT_EXPONENT_NV:
70944a49301eSmrg         CHECK_EXT1(NV_light_max_exponent, "GetInteger64v");
70954a49301eSmrg         params[0] = IROUND64(ctx->Const.MaxSpotExponent);
70964a49301eSmrg         break;
70974a49301eSmrg      case GL_ARRAY_BUFFER_BINDING_ARB:
70984a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayBufferObj->Name);
70994a49301eSmrg         break;
71004a49301eSmrg      case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
71014a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Vertex.BufferObj->Name);
71024a49301eSmrg         break;
71034a49301eSmrg      case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
71044a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Normal.BufferObj->Name);
71054a49301eSmrg         break;
71064a49301eSmrg      case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
71074a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Color.BufferObj->Name);
71084a49301eSmrg         break;
71094a49301eSmrg      case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
71104a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Index.BufferObj->Name);
71114a49301eSmrg         break;
71124a49301eSmrg      case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
71134a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
71144a49301eSmrg         break;
71154a49301eSmrg      case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
71164a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name);
71174a49301eSmrg         break;
71184a49301eSmrg      case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
71194a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name);
71204a49301eSmrg         break;
71214a49301eSmrg      case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
71224a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->FogCoord.BufferObj->Name);
71234a49301eSmrg         break;
71244a49301eSmrg      case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
71254a49301eSmrg         params[0] = (GLint64)(ctx->Array.ElementArrayBufferObj->Name);
71264a49301eSmrg         break;
71274a49301eSmrg      case GL_PIXEL_PACK_BUFFER_BINDING_EXT:
71284a49301eSmrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetInteger64v");
71294a49301eSmrg         params[0] = (GLint64)(ctx->Pack.BufferObj->Name);
71304a49301eSmrg         break;
71314a49301eSmrg      case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT:
71324a49301eSmrg         CHECK_EXT1(EXT_pixel_buffer_object, "GetInteger64v");
71334a49301eSmrg         params[0] = (GLint64)(ctx->Unpack.BufferObj->Name);
71344a49301eSmrg         break;
71354a49301eSmrg      case GL_VERTEX_PROGRAM_ARB:
71364a49301eSmrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetInteger64v");
71374a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->VertexProgram.Enabled);
71384a49301eSmrg         break;
71394a49301eSmrg      case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
71404a49301eSmrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetInteger64v");
71414a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->VertexProgram.PointSizeEnabled);
71424a49301eSmrg         break;
71434a49301eSmrg      case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
71444a49301eSmrg         CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetInteger64v");
71454a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->VertexProgram.TwoSideEnabled);
71464a49301eSmrg         break;
71474a49301eSmrg      case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
71484a49301eSmrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetInteger64v");
71494a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxProgramMatrixStackDepth);
71504a49301eSmrg         break;
71514a49301eSmrg      case GL_MAX_PROGRAM_MATRICES_ARB:
71524a49301eSmrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetInteger64v");
71534a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxProgramMatrices);
71544a49301eSmrg         break;
71554a49301eSmrg      case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
71564a49301eSmrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetInteger64v");
71574a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->CurrentStack->Depth + 1);
71584a49301eSmrg         break;
71594a49301eSmrg      case GL_CURRENT_MATRIX_ARB:
71604a49301eSmrg         CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetInteger64v");
71614a49301eSmrg         {
71624a49301eSmrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
71634a49301eSmrg         params[0] = IROUND64(matrix[0]);
71644a49301eSmrg         params[1] = IROUND64(matrix[1]);
71654a49301eSmrg         params[2] = IROUND64(matrix[2]);
71664a49301eSmrg         params[3] = IROUND64(matrix[3]);
71674a49301eSmrg         params[4] = IROUND64(matrix[4]);
71684a49301eSmrg         params[5] = IROUND64(matrix[5]);
71694a49301eSmrg         params[6] = IROUND64(matrix[6]);
71704a49301eSmrg         params[7] = IROUND64(matrix[7]);
71714a49301eSmrg         params[8] = IROUND64(matrix[8]);
71724a49301eSmrg         params[9] = IROUND64(matrix[9]);
71734a49301eSmrg         params[10] = IROUND64(matrix[10]);
71744a49301eSmrg         params[11] = IROUND64(matrix[11]);
71754a49301eSmrg         params[12] = IROUND64(matrix[12]);
71764a49301eSmrg         params[13] = IROUND64(matrix[13]);
71774a49301eSmrg         params[14] = IROUND64(matrix[14]);
71784a49301eSmrg         params[15] = IROUND64(matrix[15]);
71794a49301eSmrg         }
71804a49301eSmrg         break;
71814a49301eSmrg      case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
71824a49301eSmrg         CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetInteger64v");
71834a49301eSmrg         {
71844a49301eSmrg         const GLfloat *matrix = ctx->CurrentStack->Top->m;
71854a49301eSmrg         params[0] = IROUND64(matrix[0]);
71864a49301eSmrg         params[1] = IROUND64(matrix[4]);
71874a49301eSmrg         params[2] = IROUND64(matrix[8]);
71884a49301eSmrg         params[3] = IROUND64(matrix[12]);
71894a49301eSmrg         params[4] = IROUND64(matrix[1]);
71904a49301eSmrg         params[5] = IROUND64(matrix[5]);
71914a49301eSmrg         params[6] = IROUND64(matrix[9]);
71924a49301eSmrg         params[7] = IROUND64(matrix[13]);
71934a49301eSmrg         params[8] = IROUND64(matrix[2]);
71944a49301eSmrg         params[9] = IROUND64(matrix[6]);
71954a49301eSmrg         params[10] = IROUND64(matrix[10]);
71964a49301eSmrg         params[11] = IROUND64(matrix[14]);
71974a49301eSmrg         params[12] = IROUND64(matrix[3]);
71984a49301eSmrg         params[13] = IROUND64(matrix[7]);
71994a49301eSmrg         params[14] = IROUND64(matrix[11]);
72004a49301eSmrg         params[15] = IROUND64(matrix[15]);
72014a49301eSmrg         }
72024a49301eSmrg         break;
72034a49301eSmrg      case GL_MAX_VERTEX_ATTRIBS_ARB:
72044a49301eSmrg         CHECK_EXT1(ARB_vertex_program, "GetInteger64v");
72054a49301eSmrg         params[0] = (GLint64)(ctx->Const.VertexProgram.MaxAttribs);
72064a49301eSmrg         break;
72074a49301eSmrg      case GL_PROGRAM_ERROR_POSITION_ARB:
72084a49301eSmrg         CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetInteger64v");
72094a49301eSmrg         params[0] = (GLint64)(ctx->Program.ErrorPos);
72104a49301eSmrg         break;
72114a49301eSmrg      case GL_FRAGMENT_PROGRAM_ARB:
72124a49301eSmrg         CHECK_EXT1(ARB_fragment_program, "GetInteger64v");
72134a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->FragmentProgram.Enabled);
72144a49301eSmrg         break;
72154a49301eSmrg      case GL_MAX_TEXTURE_COORDS_ARB:
72164a49301eSmrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetInteger64v");
72174a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxTextureCoordUnits);
72184a49301eSmrg         break;
72194a49301eSmrg      case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
72204a49301eSmrg         CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetInteger64v");
72214a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxTextureImageUnits);
72224a49301eSmrg         break;
72234a49301eSmrg      case GL_DEPTH_BOUNDS_TEST_EXT:
72244a49301eSmrg         CHECK_EXT1(EXT_depth_bounds_test, "GetInteger64v");
72254a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Depth.BoundsTest);
72264a49301eSmrg         break;
72274a49301eSmrg      case GL_DEPTH_BOUNDS_EXT:
72284a49301eSmrg         CHECK_EXT1(EXT_depth_bounds_test, "GetInteger64v");
72294a49301eSmrg         params[0] = IROUND64(ctx->Depth.BoundsMin);
72304a49301eSmrg         params[1] = IROUND64(ctx->Depth.BoundsMax);
72314a49301eSmrg         break;
72324a49301eSmrg      case GL_DEPTH_CLAMP:
72334a49301eSmrg         CHECK_EXT1(ARB_depth_clamp, "GetInteger64v");
72344a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Transform.DepthClamp);
72354a49301eSmrg         break;
72364a49301eSmrg      case GL_MAX_DRAW_BUFFERS_ARB:
72374a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxDrawBuffers);
72384a49301eSmrg         break;
72394a49301eSmrg      case GL_DRAW_BUFFER0_ARB:
72404a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->DrawBuffer->ColorDrawBuffer[0]);
72414a49301eSmrg         break;
72424a49301eSmrg      case GL_DRAW_BUFFER1_ARB:
72434a49301eSmrg         {
72444a49301eSmrg         GLenum buffer;
72454a49301eSmrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
72464a49301eSmrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
72474a49301eSmrg            return;
72484a49301eSmrg         }
72494a49301eSmrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[1];
72504a49301eSmrg         params[0] = ENUM_TO_INT64(buffer);
72514a49301eSmrg         }
72524a49301eSmrg         break;
72534a49301eSmrg      case GL_DRAW_BUFFER2_ARB:
72544a49301eSmrg         {
72554a49301eSmrg         GLenum buffer;
72564a49301eSmrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
72574a49301eSmrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
72584a49301eSmrg            return;
72594a49301eSmrg         }
72604a49301eSmrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[2];
72614a49301eSmrg         params[0] = ENUM_TO_INT64(buffer);
72624a49301eSmrg         }
72634a49301eSmrg         break;
72644a49301eSmrg      case GL_DRAW_BUFFER3_ARB:
72654a49301eSmrg         {
72664a49301eSmrg         GLenum buffer;
72674a49301eSmrg         if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
72684a49301eSmrg            _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
72694a49301eSmrg            return;
72704a49301eSmrg         }
72714a49301eSmrg         buffer = ctx->DrawBuffer->ColorDrawBuffer[3];
72724a49301eSmrg         params[0] = ENUM_TO_INT64(buffer);
72734a49301eSmrg         }
72744a49301eSmrg         break;
72754a49301eSmrg      case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
72764a49301eSmrg         CHECK_EXT1(OES_read_format, "GetInteger64v");
72774a49301eSmrg         params[0] = (GLint64)(_mesa_get_color_read_type(ctx));
72784a49301eSmrg         break;
72794a49301eSmrg      case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
72804a49301eSmrg         CHECK_EXT1(OES_read_format, "GetInteger64v");
72814a49301eSmrg         params[0] = (GLint64)(_mesa_get_color_read_format(ctx));
72824a49301eSmrg         break;
72834a49301eSmrg      case GL_NUM_FRAGMENT_REGISTERS_ATI:
72844a49301eSmrg         CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
72854a49301eSmrg         params[0] = (GLint64)(6);
72864a49301eSmrg         break;
72874a49301eSmrg      case GL_NUM_FRAGMENT_CONSTANTS_ATI:
72884a49301eSmrg         CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
72894a49301eSmrg         params[0] = (GLint64)(8);
72904a49301eSmrg         break;
72914a49301eSmrg      case GL_NUM_PASSES_ATI:
72924a49301eSmrg         CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
72934a49301eSmrg         params[0] = (GLint64)(2);
72944a49301eSmrg         break;
72954a49301eSmrg      case GL_NUM_INSTRUCTIONS_PER_PASS_ATI:
72964a49301eSmrg         CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
72974a49301eSmrg         params[0] = (GLint64)(8);
72984a49301eSmrg         break;
72994a49301eSmrg      case GL_NUM_INSTRUCTIONS_TOTAL_ATI:
73004a49301eSmrg         CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
73014a49301eSmrg         params[0] = (GLint64)(16);
73024a49301eSmrg         break;
73034a49301eSmrg      case GL_COLOR_ALPHA_PAIRING_ATI:
73044a49301eSmrg         CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
73054a49301eSmrg         params[0] = BOOLEAN_TO_INT64(GL_TRUE);
73064a49301eSmrg         break;
73074a49301eSmrg      case GL_NUM_LOOPBACK_COMPONENTS_ATI:
73084a49301eSmrg         CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
73094a49301eSmrg         params[0] = (GLint64)(3);
73104a49301eSmrg         break;
73114a49301eSmrg      case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI:
73124a49301eSmrg         CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
73134a49301eSmrg         params[0] = (GLint64)(3);
73144a49301eSmrg         break;
73154a49301eSmrg      case GL_STENCIL_BACK_FUNC:
73164a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.Function[1]);
73174a49301eSmrg         break;
73184a49301eSmrg      case GL_STENCIL_BACK_VALUE_MASK:
73194a49301eSmrg         params[0] = (GLint64)(ctx->Stencil.ValueMask[1]);
73204a49301eSmrg         break;
73214a49301eSmrg      case GL_STENCIL_BACK_WRITEMASK:
73224a49301eSmrg         params[0] = (GLint64)(ctx->Stencil.WriteMask[1]);
73234a49301eSmrg         break;
73244a49301eSmrg      case GL_STENCIL_BACK_REF:
73254a49301eSmrg         params[0] = (GLint64)(ctx->Stencil.Ref[1]);
73264a49301eSmrg         break;
73274a49301eSmrg      case GL_STENCIL_BACK_FAIL:
73284a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.FailFunc[1]);
73294a49301eSmrg         break;
73304a49301eSmrg      case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
73314a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.ZFailFunc[1]);
73324a49301eSmrg         break;
73334a49301eSmrg      case GL_STENCIL_BACK_PASS_DEPTH_PASS:
73344a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Stencil.ZPassFunc[1]);
73354a49301eSmrg         break;
73364a49301eSmrg      case GL_FRAMEBUFFER_BINDING_EXT:
73374a49301eSmrg         CHECK_EXT1(EXT_framebuffer_object, "GetInteger64v");
73384a49301eSmrg         params[0] = (GLint64)(ctx->DrawBuffer->Name);
73394a49301eSmrg         break;
73404a49301eSmrg      case GL_RENDERBUFFER_BINDING_EXT:
73414a49301eSmrg         CHECK_EXT1(EXT_framebuffer_object, "GetInteger64v");
73424a49301eSmrg         params[0] = (GLint64)(ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0);
73434a49301eSmrg         break;
73444a49301eSmrg      case GL_MAX_COLOR_ATTACHMENTS_EXT:
73454a49301eSmrg         CHECK_EXT1(EXT_framebuffer_object, "GetInteger64v");
73464a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxColorAttachments);
73474a49301eSmrg         break;
73484a49301eSmrg      case GL_MAX_RENDERBUFFER_SIZE_EXT:
73494a49301eSmrg         CHECK_EXT1(EXT_framebuffer_object, "GetInteger64v");
73504a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxRenderbufferSize);
73514a49301eSmrg         break;
73524a49301eSmrg      case GL_READ_FRAMEBUFFER_BINDING_EXT:
73534a49301eSmrg         CHECK_EXT1(EXT_framebuffer_blit, "GetInteger64v");
73544a49301eSmrg         params[0] = (GLint64)(ctx->ReadBuffer->Name);
73554a49301eSmrg         break;
73564a49301eSmrg      case GL_PROVOKING_VERTEX_EXT:
73574a49301eSmrg         CHECK_EXT1(EXT_provoking_vertex, "GetInteger64v");
73584a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Light.ProvokingVertex);
73594a49301eSmrg         break;
73604a49301eSmrg      case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT:
73614a49301eSmrg         CHECK_EXT1(EXT_provoking_vertex, "GetInteger64v");
73624a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Const.QuadsFollowProvokingVertexConvention);
73634a49301eSmrg         break;
73644a49301eSmrg      case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
73654a49301eSmrg         CHECK_EXT1(ARB_fragment_shader, "GetInteger64v");
73664a49301eSmrg         params[0] = (GLint64)(ctx->Const.FragmentProgram.MaxUniformComponents);
73674a49301eSmrg         break;
73684a49301eSmrg      case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
73694a49301eSmrg         CHECK_EXT1(ARB_fragment_shader, "GetInteger64v");
73704a49301eSmrg         params[0] = ENUM_TO_INT64(ctx->Hint.FragmentShaderDerivative);
73714a49301eSmrg         break;
73724a49301eSmrg      case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
73734a49301eSmrg         CHECK_EXT1(ARB_vertex_shader, "GetInteger64v");
73744a49301eSmrg         params[0] = (GLint64)(ctx->Const.VertexProgram.MaxUniformComponents);
73754a49301eSmrg         break;
73764a49301eSmrg      case GL_MAX_VARYING_FLOATS_ARB:
73774a49301eSmrg         CHECK_EXT1(ARB_vertex_shader, "GetInteger64v");
73784a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxVarying * 4);
73794a49301eSmrg         break;
73804a49301eSmrg      case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
73814a49301eSmrg         CHECK_EXT1(ARB_vertex_shader, "GetInteger64v");
73824a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxVertexTextureImageUnits);
73834a49301eSmrg         break;
73844a49301eSmrg      case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
73854a49301eSmrg         CHECK_EXT1(ARB_vertex_shader, "GetInteger64v");
73864a49301eSmrg         params[0] = (GLint64)(MAX_COMBINED_TEXTURE_IMAGE_UNITS);
73874a49301eSmrg         break;
73884a49301eSmrg      case GL_CURRENT_PROGRAM:
73894a49301eSmrg         CHECK_EXT1(ARB_shader_objects, "GetInteger64v");
73904a49301eSmrg         params[0] = (GLint64)(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0);
73914a49301eSmrg         break;
73924a49301eSmrg      case GL_MAX_SAMPLES:
73934a49301eSmrg         CHECK_EXT1(ARB_framebuffer_object, "GetInteger64v");
73944a49301eSmrg         params[0] = (GLint64)(ctx->Const.MaxSamples);
73954a49301eSmrg         break;
73964a49301eSmrg      case GL_VERTEX_ARRAY_BINDING_APPLE:
73974a49301eSmrg         CHECK_EXT1(APPLE_vertex_array_object, "GetInteger64v");
73984a49301eSmrg         params[0] = (GLint64)(ctx->Array.ArrayObj->Name);
73994a49301eSmrg         break;
74004a49301eSmrg      case GL_TEXTURE_CUBE_MAP_SEAMLESS:
74014a49301eSmrg         CHECK_EXT1(ARB_seamless_cube_map, "GetInteger64v");
74024a49301eSmrg         params[0] = BOOLEAN_TO_INT64(ctx->Texture.CubeMapSeamless);
74034a49301eSmrg         break;
74044a49301eSmrg      case GL_MAX_SERVER_WAIT_TIMEOUT:
74054a49301eSmrg         CHECK_EXT1(ARB_sync, "GetInteger64v");
74064a49301eSmrg         params[0] = ctx->Const.MaxServerWaitTimeout;
74074a49301eSmrg         break;
74084a49301eSmrg      default:
74094a49301eSmrg         _mesa_error(ctx, GL_INVALID_ENUM, "glGetInteger64v(pname=0x%x)", pname);
74104a49301eSmrg   }
74114a49301eSmrg}
74124a49301eSmrg#endif /* FEATURE_ARB_sync */
74134a49301eSmrg
74147117f1b4Smrg
74157117f1b4Smrgvoid GLAPIENTRY
74167117f1b4Smrg_mesa_GetDoublev( GLenum pname, GLdouble *params )
74177117f1b4Smrg{
74187117f1b4Smrg   const GLfloat magic = -1234.5F;
74197117f1b4Smrg   GLfloat values[16];
74207117f1b4Smrg   GLuint i;
74217117f1b4Smrg
74227117f1b4Smrg   if (!params)
74237117f1b4Smrg      return;
74247117f1b4Smrg
74257117f1b4Smrg   /* Init temp array to magic numbers so we can figure out how many values
74267117f1b4Smrg    * are returned by the GetFloatv() call.
74277117f1b4Smrg    */
74287117f1b4Smrg   for (i = 0; i < 16; i++)
74297117f1b4Smrg      values[i] = magic;
74307117f1b4Smrg
74317117f1b4Smrg   _mesa_GetFloatv(pname, values);
74327117f1b4Smrg
74337117f1b4Smrg   for (i = 0; i < 16 && values[i] != magic; i++)
74347117f1b4Smrg      params[i] = (GLdouble) values[i];
74357117f1b4Smrg}
74367117f1b4Smrg
7437