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