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