params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[3]);
break;
+ case GL_CURRENT_RASTER_SECONDARY_COLOR:
+ params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[0]);
+ params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[1]);
+ params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[2]);
+ params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[3]);
+ break;
case GL_CURRENT_RASTER_TEXTURE_COORDS:
{
const GLuint texUnit = ctx->Texture.CurrentUnit;
case GL_EDGE_FLAG:
{
FLUSH_CURRENT(ctx, 0);
- params[0] = ctx->Current.EdgeFlag;
+ params[0] = (ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0);
}
break;
case GL_FEEDBACK_BUFFER_SIZE:
params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PerspectiveCorrection);
break;
case GL_PIXEL_MAP_A_TO_A_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapAtoAsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.AtoA.Size);
break;
case GL_PIXEL_MAP_B_TO_B_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapBtoBsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.BtoB.Size);
break;
case GL_PIXEL_MAP_G_TO_G_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapGtoGsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.GtoG.Size);
break;
case GL_PIXEL_MAP_I_TO_A_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapItoAsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoA.Size);
break;
case GL_PIXEL_MAP_I_TO_B_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapItoBsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoB.Size);
break;
case GL_PIXEL_MAP_I_TO_G_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapItoGsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoG.Size);
break;
case GL_PIXEL_MAP_I_TO_I_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapItoIsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoI.Size);
break;
case GL_PIXEL_MAP_I_TO_R_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapItoRsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoR.Size);
break;
case GL_PIXEL_MAP_R_TO_R_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapRtoRsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.RtoR.Size);
break;
case GL_PIXEL_MAP_S_TO_S_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Pixel.MapStoSsize);
+ params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.StoS.Size);
break;
case GL_POINT_SIZE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Size);
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.RedBias);
break;
case GL_RED_BITS:
- params[0] = INT_TO_BOOLEAN( ctx->DrawBuffer->Visual.redBits );
+ params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.redBits);
break;
case GL_RED_SCALE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.RedScale);
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.ZoomY);
break;
case GL_VERTEX_ARRAY:
- params[0] = ctx->Array.Vertex.Enabled;
+ params[0] = ctx->Array.ArrayObj->Vertex.Enabled;
break;
case GL_VERTEX_ARRAY_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.Vertex.Size);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Size);
break;
case GL_VERTEX_ARRAY_TYPE:
- params[0] = ENUM_TO_BOOLEAN(ctx->Array.Vertex.Type);
+ params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Type);
break;
case GL_VERTEX_ARRAY_STRIDE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.Vertex.Stride);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Stride);
break;
case GL_VERTEX_ARRAY_COUNT_EXT:
params[0] = INT_TO_BOOLEAN(0);
break;
case GL_NORMAL_ARRAY:
- params[0] = ENUM_TO_BOOLEAN(ctx->Array.Normal.Enabled);
+ params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Enabled);
break;
case GL_NORMAL_ARRAY_TYPE:
- params[0] = ENUM_TO_BOOLEAN(ctx->Array.Normal.Type);
+ params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Type);
break;
case GL_NORMAL_ARRAY_STRIDE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.Normal.Stride);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Stride);
break;
case GL_NORMAL_ARRAY_COUNT_EXT:
params[0] = INT_TO_BOOLEAN(0);
break;
case GL_COLOR_ARRAY:
- params[0] = ctx->Array.Color.Enabled;
+ params[0] = ctx->Array.ArrayObj->Color.Enabled;
break;
case GL_COLOR_ARRAY_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.Color.Size);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Size);
break;
case GL_COLOR_ARRAY_TYPE:
- params[0] = ENUM_TO_BOOLEAN(ctx->Array.Color.Type);
+ params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Type);
break;
case GL_COLOR_ARRAY_STRIDE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.Color.Stride);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Stride);
break;
case GL_COLOR_ARRAY_COUNT_EXT:
params[0] = INT_TO_BOOLEAN(0);
break;
case GL_INDEX_ARRAY:
- params[0] = ctx->Array.Index.Enabled;
+ params[0] = ctx->Array.ArrayObj->Index.Enabled;
break;
case GL_INDEX_ARRAY_TYPE:
- params[0] = ENUM_TO_BOOLEAN(ctx->Array.Index.Type);
+ params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Index.Type);
break;
case GL_INDEX_ARRAY_STRIDE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.Index.Stride);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Index.Stride);
break;
case GL_INDEX_ARRAY_COUNT_EXT:
params[0] = INT_TO_BOOLEAN(0);
break;
case GL_TEXTURE_COORD_ARRAY:
- params[0] = ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled;
+ params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled;
break;
case GL_TEXTURE_COORD_ARRAY_SIZE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Size);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size);
break;
case GL_TEXTURE_COORD_ARRAY_TYPE:
- params[0] = ENUM_TO_BOOLEAN(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Type);
+ params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
break;
case GL_TEXTURE_COORD_ARRAY_STRIDE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Stride);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride);
break;
case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
params[0] = INT_TO_BOOLEAN(0);
break;
case GL_EDGE_FLAG_ARRAY:
- params[0] = ctx->Array.EdgeFlag.Enabled;
+ params[0] = ctx->Array.ArrayObj->EdgeFlag.Enabled;
break;
case GL_EDGE_FLAG_ARRAY_STRIDE:
- params[0] = INT_TO_BOOLEAN(ctx->Array.EdgeFlag.Stride);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->EdgeFlag.Stride);
break;
case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
params[0] = INT_TO_BOOLEAN(0);
break;
case GL_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetBooleanv");
- params[0] = ctx->Pixel.ColorTableEnabled;
+ params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION];
break;
case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetBooleanv");
- params[0] = ctx->Pixel.PostConvolutionColorTableEnabled;
+ params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION];
break;
case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetBooleanv");
- params[0] = ctx->Pixel.PostColorMatrixColorTableEnabled;
+ params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX];
break;
case GL_TEXTURE_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_texture_color_table, "GetBooleanv");
break;
case GL_SECONDARY_COLOR_ARRAY_EXT:
CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
- params[0] = ctx->Array.SecondaryColor.Enabled;
+ params[0] = ctx->Array.ArrayObj->SecondaryColor.Enabled;
break;
case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
- params[0] = ENUM_TO_BOOLEAN(ctx->Array.SecondaryColor.Type);
+ params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Type);
break;
case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.SecondaryColor.Stride);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Stride);
break;
case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.SecondaryColor.Size);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Size);
break;
case GL_CURRENT_FOG_COORDINATE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
break;
case GL_FOG_COORDINATE_ARRAY_EXT:
CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
- params[0] = ctx->Array.FogCoord.Enabled;
+ params[0] = ctx->Array.ArrayObj->FogCoord.Enabled;
break;
case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
- params[0] = ENUM_TO_BOOLEAN(ctx->Array.FogCoord.Type);
+ params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.Type);
break;
case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.FogCoord.Stride);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.Stride);
break;
case GL_FOG_COORDINATE_SOURCE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetBooleanv");
break;
case GL_VERTEX_ATTRIB_ARRAY0_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[0].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[0].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY1_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[1].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[1].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY2_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[2].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[2].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY3_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[3].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[3].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY4_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[4].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[4].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY5_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[5].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[5].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY6_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[6].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[6].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY7_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[7].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[7].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY8_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[8].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[8].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY9_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[9].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[9].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY10_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[10].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[10].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY11_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[11].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[11].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY12_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[12].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[12].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY13_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[13].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[13].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY14_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[14].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[14].Enabled;
break;
case GL_VERTEX_ATTRIB_ARRAY15_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
- params[0] = ctx->Array.VertexAttrib[15].Enabled;
+ params[0] = ctx->Array.ArrayObj->VertexAttrib[15].Enabled;
break;
case GL_MAP1_VERTEX_ATTRIB0_4_NV:
CHECK_EXT1(NV_vertex_program, "GetBooleanv");
break;
case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.Vertex.BufferObj->Name);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.BufferObj->Name);
break;
case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.Normal.BufferObj->Name);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.BufferObj->Name);
break;
case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.Color.BufferObj->Name);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.BufferObj->Name);
break;
case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.Index.BufferObj->Name);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Index.BufferObj->Name);
break;
case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
break;
case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.EdgeFlag.BufferObj->Name);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name);
break;
case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.SecondaryColor.BufferObj->Name);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name);
break;
case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(ctx->Array.FogCoord.BufferObj->Name);
+ params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.BufferObj->Name);
break;
case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv");
case GL_STENCIL_BACK_VALUE_MASK:
params[0] = INT_TO_BOOLEAN(ctx->Stencil.ValueMask[1]);
break;
+ case GL_STENCIL_BACK_WRITEMASK:
+ params[0] = INT_TO_BOOLEAN(ctx->Stencil.WriteMask[1]);
+ break;
case GL_STENCIL_BACK_REF:
params[0] = INT_TO_BOOLEAN(ctx->Stencil.Ref[1]);
break;
break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(MAX_FRAGMENT_UNIFORM_COMPONENTS);
+ params[0] = INT_TO_BOOLEAN(ctx->Const.FragmentProgram.MaxUniformComponents);
break;
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
break;
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(MAX_VERTEX_UNIFORM_COMPONENTS);
+ params[0] = INT_TO_BOOLEAN(ctx->Const.VertexProgram.MaxUniformComponents);
break;
case GL_MAX_VARYING_FLOATS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(MAX_VARYING_FLOATS);
+ params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVaryingFloats);
break;
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
- params[0] = INT_TO_BOOLEAN(MAX_VERTEX_TEXTURE_IMAGE_UNITS);
+ params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVertexTextureImageUnits);
break;
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetBooleanv");
params[2] = ctx->Current.RasterPos[2];
params[3] = ctx->Current.RasterPos[3];
break;
+ case GL_CURRENT_RASTER_SECONDARY_COLOR:
+ params[0] = ctx->Current.RasterSecondaryColor[0];
+ params[1] = ctx->Current.RasterSecondaryColor[1];
+ params[2] = ctx->Current.RasterSecondaryColor[2];
+ params[3] = ctx->Current.RasterSecondaryColor[3];
+ break;
case GL_CURRENT_RASTER_TEXTURE_COORDS:
{
const GLuint texUnit = ctx->Texture.CurrentUnit;
case GL_EDGE_FLAG:
{
FLUSH_CURRENT(ctx, 0);
- params[0] = BOOLEAN_TO_FLOAT(ctx->Current.EdgeFlag);
+ params[0] = BOOLEAN_TO_FLOAT((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0));
}
break;
case GL_FEEDBACK_BUFFER_SIZE:
params[0] = ENUM_TO_FLOAT(ctx->Hint.PerspectiveCorrection);
break;
case GL_PIXEL_MAP_A_TO_A_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapAtoAsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.AtoA.Size);
break;
case GL_PIXEL_MAP_B_TO_B_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapBtoBsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.BtoB.Size);
break;
case GL_PIXEL_MAP_G_TO_G_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapGtoGsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.GtoG.Size);
break;
case GL_PIXEL_MAP_I_TO_A_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapItoAsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.ItoA.Size);
break;
case GL_PIXEL_MAP_I_TO_B_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapItoBsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.ItoB.Size);
break;
case GL_PIXEL_MAP_I_TO_G_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapItoGsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.ItoG.Size);
break;
case GL_PIXEL_MAP_I_TO_I_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapItoIsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.ItoI.Size);
break;
case GL_PIXEL_MAP_I_TO_R_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapItoRsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.ItoR.Size);
break;
case GL_PIXEL_MAP_R_TO_R_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapRtoRsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.RtoR.Size);
break;
case GL_PIXEL_MAP_S_TO_S_SIZE:
- params[0] = (GLfloat)(ctx->Pixel.MapStoSsize);
+ params[0] = (GLfloat)(ctx->PixelMaps.StoS.Size);
break;
case GL_POINT_SIZE:
params[0] = ctx->Point.Size;
params[0] = ctx->Pixel.RedBias;
break;
case GL_RED_BITS:
- params[0] = (GLfloat)( ctx->DrawBuffer->Visual.redBits );
+ params[0] = (GLfloat)(ctx->DrawBuffer->Visual.redBits);
break;
case GL_RED_SCALE:
params[0] = ctx->Pixel.RedScale;
params[0] = ctx->Pixel.ZoomY;
break;
case GL_VERTEX_ARRAY:
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.Vertex.Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Vertex.Enabled);
break;
case GL_VERTEX_ARRAY_SIZE:
- params[0] = (GLfloat)(ctx->Array.Vertex.Size);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.Size);
break;
case GL_VERTEX_ARRAY_TYPE:
- params[0] = ENUM_TO_FLOAT(ctx->Array.Vertex.Type);
+ params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Vertex.Type);
break;
case GL_VERTEX_ARRAY_STRIDE:
- params[0] = (GLfloat)(ctx->Array.Vertex.Stride);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.Stride);
break;
case GL_VERTEX_ARRAY_COUNT_EXT:
params[0] = (GLfloat)(0);
break;
case GL_NORMAL_ARRAY:
- params[0] = ENUM_TO_FLOAT(ctx->Array.Normal.Enabled);
+ params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Normal.Enabled);
break;
case GL_NORMAL_ARRAY_TYPE:
- params[0] = ENUM_TO_FLOAT(ctx->Array.Normal.Type);
+ params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Normal.Type);
break;
case GL_NORMAL_ARRAY_STRIDE:
- params[0] = (GLfloat)(ctx->Array.Normal.Stride);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Normal.Stride);
break;
case GL_NORMAL_ARRAY_COUNT_EXT:
params[0] = (GLfloat)(0);
break;
case GL_COLOR_ARRAY:
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.Color.Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Color.Enabled);
break;
case GL_COLOR_ARRAY_SIZE:
- params[0] = (GLfloat)(ctx->Array.Color.Size);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.Size);
break;
case GL_COLOR_ARRAY_TYPE:
- params[0] = ENUM_TO_FLOAT(ctx->Array.Color.Type);
+ params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Color.Type);
break;
case GL_COLOR_ARRAY_STRIDE:
- params[0] = (GLfloat)(ctx->Array.Color.Stride);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.Stride);
break;
case GL_COLOR_ARRAY_COUNT_EXT:
params[0] = (GLfloat)(0);
break;
case GL_INDEX_ARRAY:
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.Index.Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Index.Enabled);
break;
case GL_INDEX_ARRAY_TYPE:
- params[0] = ENUM_TO_FLOAT(ctx->Array.Index.Type);
+ params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Index.Type);
break;
case GL_INDEX_ARRAY_STRIDE:
- params[0] = (GLfloat)(ctx->Array.Index.Stride);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Index.Stride);
break;
case GL_INDEX_ARRAY_COUNT_EXT:
params[0] = (GLfloat)(0);
break;
case GL_TEXTURE_COORD_ARRAY:
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled);
break;
case GL_TEXTURE_COORD_ARRAY_SIZE:
- params[0] = (GLfloat)(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Size);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size);
break;
case GL_TEXTURE_COORD_ARRAY_TYPE:
- params[0] = ENUM_TO_FLOAT(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Type);
+ params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
break;
case GL_TEXTURE_COORD_ARRAY_STRIDE:
- params[0] = (GLfloat)(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Stride);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride);
break;
case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
params[0] = (GLfloat)(0);
break;
case GL_EDGE_FLAG_ARRAY:
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.EdgeFlag.Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->EdgeFlag.Enabled);
break;
case GL_EDGE_FLAG_ARRAY_STRIDE:
- params[0] = (GLfloat)(ctx->Array.EdgeFlag.Stride);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->EdgeFlag.Stride);
break;
case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
params[0] = (GLfloat)(0);
break;
case GL_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]);
break;
case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.PostConvolutionColorTableEnabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]);
break;
case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.PostColorMatrixColorTableEnabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]);
break;
case GL_TEXTURE_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_texture_color_table, "GetFloatv");
break;
case GL_SECONDARY_COLOR_ARRAY_EXT:
CHECK_EXT1(EXT_secondary_color, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.SecondaryColor.Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->SecondaryColor.Enabled);
break;
case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetFloatv");
- params[0] = ENUM_TO_FLOAT(ctx->Array.SecondaryColor.Type);
+ params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->SecondaryColor.Type);
break;
case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.SecondaryColor.Stride);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.Stride);
break;
case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.SecondaryColor.Size);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.Size);
break;
case GL_CURRENT_FOG_COORDINATE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetFloatv");
break;
case GL_FOG_COORDINATE_ARRAY_EXT:
CHECK_EXT1(EXT_fog_coord, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.FogCoord.Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->FogCoord.Enabled);
break;
case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetFloatv");
- params[0] = ENUM_TO_FLOAT(ctx->Array.FogCoord.Type);
+ params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->FogCoord.Type);
break;
case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.FogCoord.Stride);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->FogCoord.Stride);
break;
case GL_FOG_COORDINATE_SOURCE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetFloatv");
break;
case GL_VERTEX_ATTRIB_ARRAY0_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[0].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[0].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY1_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[1].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[1].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY2_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[2].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[2].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY3_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[3].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[3].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY4_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[4].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[4].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY5_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[5].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[5].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY6_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[6].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[6].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY7_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[7].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[7].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY8_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[8].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[8].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY9_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[9].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[9].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY10_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[10].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[10].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY11_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[11].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[11].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY12_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[12].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[12].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY13_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[13].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[13].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY14_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[14].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[14].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY15_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
- params[0] = BOOLEAN_TO_FLOAT(ctx->Array.VertexAttrib[15].Enabled);
+ params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[15].Enabled);
break;
case GL_MAP1_VERTEX_ATTRIB0_4_NV:
CHECK_EXT1(NV_vertex_program, "GetFloatv");
break;
case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.Vertex.BufferObj->Name);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.BufferObj->Name);
break;
case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.Normal.BufferObj->Name);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Normal.BufferObj->Name);
break;
case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.Color.BufferObj->Name);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.BufferObj->Name);
break;
case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.Index.BufferObj->Name);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->Index.BufferObj->Name);
break;
case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name);
break;
case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.EdgeFlag.BufferObj->Name);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name);
break;
case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.SecondaryColor.BufferObj->Name);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name);
break;
case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
- params[0] = (GLfloat)(ctx->Array.FogCoord.BufferObj->Name);
+ params[0] = (GLfloat)(ctx->Array.ArrayObj->FogCoord.BufferObj->Name);
break;
case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv");
case GL_STENCIL_BACK_VALUE_MASK:
params[0] = (GLfloat)(ctx->Stencil.ValueMask[1]);
break;
+ case GL_STENCIL_BACK_WRITEMASK:
+ params[0] = (GLfloat)(ctx->Stencil.WriteMask[1]);
+ break;
case GL_STENCIL_BACK_REF:
params[0] = (GLfloat)(ctx->Stencil.Ref[1]);
break;
break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
- params[0] = (GLfloat)(MAX_FRAGMENT_UNIFORM_COMPONENTS);
+ params[0] = (GLfloat)(ctx->Const.FragmentProgram.MaxUniformComponents);
break;
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
break;
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
- params[0] = (GLfloat)(MAX_VERTEX_UNIFORM_COMPONENTS);
+ params[0] = (GLfloat)(ctx->Const.VertexProgram.MaxUniformComponents);
break;
case GL_MAX_VARYING_FLOATS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
- params[0] = (GLfloat)(MAX_VARYING_FLOATS);
+ params[0] = (GLfloat)(ctx->Const.MaxVaryingFloats);
break;
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
- params[0] = (GLfloat)(MAX_VERTEX_TEXTURE_IMAGE_UNITS);
+ params[0] = (GLfloat)(ctx->Const.MaxVertexTextureImageUnits);
break;
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetFloatv");
params[2] = IROUND(ctx->Current.RasterPos[2]);
params[3] = IROUND(ctx->Current.RasterPos[3]);
break;
+ case GL_CURRENT_RASTER_SECONDARY_COLOR:
+ params[0] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[0]);
+ params[1] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[1]);
+ params[2] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[2]);
+ params[3] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[3]);
+ break;
case GL_CURRENT_RASTER_TEXTURE_COORDS:
{
const GLuint texUnit = ctx->Texture.CurrentUnit;
case GL_EDGE_FLAG:
{
FLUSH_CURRENT(ctx, 0);
- params[0] = BOOLEAN_TO_INT(ctx->Current.EdgeFlag);
+ params[0] = BOOLEAN_TO_INT((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0));
}
break;
case GL_FEEDBACK_BUFFER_SIZE:
params[0] = ENUM_TO_INT(ctx->Hint.PerspectiveCorrection);
break;
case GL_PIXEL_MAP_A_TO_A_SIZE:
- params[0] = ctx->Pixel.MapAtoAsize;
+ params[0] = ctx->PixelMaps.AtoA.Size;
break;
case GL_PIXEL_MAP_B_TO_B_SIZE:
- params[0] = ctx->Pixel.MapBtoBsize;
+ params[0] = ctx->PixelMaps.BtoB.Size;
break;
case GL_PIXEL_MAP_G_TO_G_SIZE:
- params[0] = ctx->Pixel.MapGtoGsize;
+ params[0] = ctx->PixelMaps.GtoG.Size;
break;
case GL_PIXEL_MAP_I_TO_A_SIZE:
- params[0] = ctx->Pixel.MapItoAsize;
+ params[0] = ctx->PixelMaps.ItoA.Size;
break;
case GL_PIXEL_MAP_I_TO_B_SIZE:
- params[0] = ctx->Pixel.MapItoBsize;
+ params[0] = ctx->PixelMaps.ItoB.Size;
break;
case GL_PIXEL_MAP_I_TO_G_SIZE:
- params[0] = ctx->Pixel.MapItoGsize;
+ params[0] = ctx->PixelMaps.ItoG.Size;
break;
case GL_PIXEL_MAP_I_TO_I_SIZE:
- params[0] = ctx->Pixel.MapItoIsize;
+ params[0] = ctx->PixelMaps.ItoI.Size;
break;
case GL_PIXEL_MAP_I_TO_R_SIZE:
- params[0] = ctx->Pixel.MapItoRsize;
+ params[0] = ctx->PixelMaps.ItoR.Size;
break;
case GL_PIXEL_MAP_R_TO_R_SIZE:
- params[0] = ctx->Pixel.MapRtoRsize;
+ params[0] = ctx->PixelMaps.RtoR.Size;
break;
case GL_PIXEL_MAP_S_TO_S_SIZE:
- params[0] = ctx->Pixel.MapStoSsize;
+ params[0] = ctx->PixelMaps.StoS.Size;
break;
case GL_POINT_SIZE:
params[0] = IROUND(ctx->Point.Size);
params[0] = IROUND(ctx->Pixel.RedBias);
break;
case GL_RED_BITS:
- params[0] = ctx->DrawBuffer->Visual.redBits ;
+ params[0] = ctx->DrawBuffer->Visual.redBits;
break;
case GL_RED_SCALE:
params[0] = IROUND(ctx->Pixel.RedScale);
params[0] = IROUND(ctx->Pixel.ZoomY);
break;
case GL_VERTEX_ARRAY:
- params[0] = BOOLEAN_TO_INT(ctx->Array.Vertex.Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Vertex.Enabled);
break;
case GL_VERTEX_ARRAY_SIZE:
- params[0] = ctx->Array.Vertex.Size;
+ params[0] = ctx->Array.ArrayObj->Vertex.Size;
break;
case GL_VERTEX_ARRAY_TYPE:
- params[0] = ENUM_TO_INT(ctx->Array.Vertex.Type);
+ params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Vertex.Type);
break;
case GL_VERTEX_ARRAY_STRIDE:
- params[0] = ctx->Array.Vertex.Stride;
+ params[0] = ctx->Array.ArrayObj->Vertex.Stride;
break;
case GL_VERTEX_ARRAY_COUNT_EXT:
params[0] = 0;
break;
case GL_NORMAL_ARRAY:
- params[0] = ENUM_TO_INT(ctx->Array.Normal.Enabled);
+ params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Normal.Enabled);
break;
case GL_NORMAL_ARRAY_TYPE:
- params[0] = ENUM_TO_INT(ctx->Array.Normal.Type);
+ params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Normal.Type);
break;
case GL_NORMAL_ARRAY_STRIDE:
- params[0] = ctx->Array.Normal.Stride;
+ params[0] = ctx->Array.ArrayObj->Normal.Stride;
break;
case GL_NORMAL_ARRAY_COUNT_EXT:
params[0] = 0;
break;
case GL_COLOR_ARRAY:
- params[0] = BOOLEAN_TO_INT(ctx->Array.Color.Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Color.Enabled);
break;
case GL_COLOR_ARRAY_SIZE:
- params[0] = ctx->Array.Color.Size;
+ params[0] = ctx->Array.ArrayObj->Color.Size;
break;
case GL_COLOR_ARRAY_TYPE:
- params[0] = ENUM_TO_INT(ctx->Array.Color.Type);
+ params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Color.Type);
break;
case GL_COLOR_ARRAY_STRIDE:
- params[0] = ctx->Array.Color.Stride;
+ params[0] = ctx->Array.ArrayObj->Color.Stride;
break;
case GL_COLOR_ARRAY_COUNT_EXT:
params[0] = 0;
break;
case GL_INDEX_ARRAY:
- params[0] = BOOLEAN_TO_INT(ctx->Array.Index.Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Index.Enabled);
break;
case GL_INDEX_ARRAY_TYPE:
- params[0] = ENUM_TO_INT(ctx->Array.Index.Type);
+ params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Index.Type);
break;
case GL_INDEX_ARRAY_STRIDE:
- params[0] = ctx->Array.Index.Stride;
+ params[0] = ctx->Array.ArrayObj->Index.Stride;
break;
case GL_INDEX_ARRAY_COUNT_EXT:
params[0] = 0;
break;
case GL_TEXTURE_COORD_ARRAY:
- params[0] = BOOLEAN_TO_INT(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled);
break;
case GL_TEXTURE_COORD_ARRAY_SIZE:
- params[0] = ctx->Array.TexCoord[ctx->Array.ActiveTexture].Size;
+ params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size;
break;
case GL_TEXTURE_COORD_ARRAY_TYPE:
- params[0] = ENUM_TO_INT(ctx->Array.TexCoord[ctx->Array.ActiveTexture].Type);
+ params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
break;
case GL_TEXTURE_COORD_ARRAY_STRIDE:
- params[0] = ctx->Array.TexCoord[ctx->Array.ActiveTexture].Stride;
+ params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride;
break;
case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
params[0] = 0;
break;
case GL_EDGE_FLAG_ARRAY:
- params[0] = BOOLEAN_TO_INT(ctx->Array.EdgeFlag.Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->EdgeFlag.Enabled);
break;
case GL_EDGE_FLAG_ARRAY_STRIDE:
- params[0] = ctx->Array.EdgeFlag.Stride;
+ params[0] = ctx->Array.ArrayObj->EdgeFlag.Stride;
break;
case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
params[0] = 0;
break;
case GL_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]);
break;
case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Pixel.PostConvolutionColorTableEnabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]);
break;
case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_color_table, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Pixel.PostColorMatrixColorTableEnabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]);
break;
case GL_TEXTURE_COLOR_TABLE_SGI:
CHECK_EXT1(SGI_texture_color_table, "GetIntegerv");
break;
case GL_SECONDARY_COLOR_ARRAY_EXT:
CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.SecondaryColor.Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->SecondaryColor.Enabled);
break;
case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
- params[0] = ENUM_TO_INT(ctx->Array.SecondaryColor.Type);
+ params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->SecondaryColor.Type);
break;
case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
- params[0] = ctx->Array.SecondaryColor.Stride;
+ params[0] = ctx->Array.ArrayObj->SecondaryColor.Stride;
break;
case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
CHECK_EXT1(EXT_secondary_color, "GetIntegerv");
- params[0] = ctx->Array.SecondaryColor.Size;
+ params[0] = ctx->Array.ArrayObj->SecondaryColor.Size;
break;
case GL_CURRENT_FOG_COORDINATE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
break;
case GL_FOG_COORDINATE_ARRAY_EXT:
CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.FogCoord.Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->FogCoord.Enabled);
break;
case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
- params[0] = ENUM_TO_INT(ctx->Array.FogCoord.Type);
+ params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->FogCoord.Type);
break;
case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
- params[0] = ctx->Array.FogCoord.Stride;
+ params[0] = ctx->Array.ArrayObj->FogCoord.Stride;
break;
case GL_FOG_COORDINATE_SOURCE_EXT:
CHECK_EXT1(EXT_fog_coord, "GetIntegerv");
break;
case GL_VERTEX_ATTRIB_ARRAY0_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[0].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[0].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY1_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[1].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[1].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY2_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[2].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[2].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY3_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[3].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[3].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY4_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[4].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[4].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY5_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[5].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[5].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY6_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[6].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[6].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY7_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[7].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[7].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY8_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[8].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[8].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY9_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[9].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[9].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY10_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[10].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[10].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY11_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[11].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[11].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY12_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[12].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[12].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY13_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[13].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[13].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY14_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[14].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[14].Enabled);
break;
case GL_VERTEX_ATTRIB_ARRAY15_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
- params[0] = BOOLEAN_TO_INT(ctx->Array.VertexAttrib[15].Enabled);
+ params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[15].Enabled);
break;
case GL_MAP1_VERTEX_ATTRIB0_4_NV:
CHECK_EXT1(NV_vertex_program, "GetIntegerv");
break;
case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
- params[0] = ctx->Array.Vertex.BufferObj->Name;
+ params[0] = ctx->Array.ArrayObj->Vertex.BufferObj->Name;
break;
case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
- params[0] = ctx->Array.Normal.BufferObj->Name;
+ params[0] = ctx->Array.ArrayObj->Normal.BufferObj->Name;
break;
case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
- params[0] = ctx->Array.Color.BufferObj->Name;
+ params[0] = ctx->Array.ArrayObj->Color.BufferObj->Name;
break;
case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
- params[0] = ctx->Array.Index.BufferObj->Name;
+ params[0] = ctx->Array.ArrayObj->Index.BufferObj->Name;
break;
case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
- params[0] = ctx->Array.TexCoord[ctx->Array.ActiveTexture].BufferObj->Name;
+ params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name;
break;
case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
- params[0] = ctx->Array.EdgeFlag.BufferObj->Name;
+ params[0] = ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name;
break;
case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
- params[0] = ctx->Array.SecondaryColor.BufferObj->Name;
+ params[0] = ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name;
break;
case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
- params[0] = ctx->Array.FogCoord.BufferObj->Name;
+ params[0] = ctx->Array.ArrayObj->FogCoord.BufferObj->Name;
break;
case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv");
case GL_STENCIL_BACK_VALUE_MASK:
params[0] = ctx->Stencil.ValueMask[1];
break;
+ case GL_STENCIL_BACK_WRITEMASK:
+ params[0] = ctx->Stencil.WriteMask[1];
+ break;
case GL_STENCIL_BACK_REF:
params[0] = ctx->Stencil.Ref[1];
break;
break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
- params[0] = MAX_FRAGMENT_UNIFORM_COMPONENTS;
+ params[0] = ctx->Const.FragmentProgram.MaxUniformComponents;
break;
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
break;
case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
- params[0] = MAX_VERTEX_UNIFORM_COMPONENTS;
+ params[0] = ctx->Const.VertexProgram.MaxUniformComponents;
break;
case GL_MAX_VARYING_FLOATS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
- params[0] = MAX_VARYING_FLOATS;
+ params[0] = ctx->Const.MaxVaryingFloats;
break;
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");
- params[0] = MAX_VERTEX_TEXTURE_IMAGE_UNITS;
+ params[0] = ctx->Const.MaxVertexTextureImageUnits;
break;
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
CHECK_EXT1(ARB_vertex_shader, "GetIntegerv");