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