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