From cc93496bdbb3e7aea51033ece75fa85cfb5845d4 Mon Sep 17 00:00:00 2001 From: marha Date: Tue, 3 May 2011 12:48:26 +0000 Subject: xkeyboard libxcb pixman mesa git update 2 May 2011 --- mesalib/src/mesa/main/enable.c | 2853 ++++++++++---------- mesalib/src/mesa/main/extensions.c | 2002 +++++++------- mesalib/src/mesa/main/remap_helper.h | 3025 +++++++++++----------- mesalib/src/mesa/program/prog_statevars.c | 4 +- mesalib/src/mesa/program/prog_statevars.h | 2 +- mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c | 110 +- 6 files changed, 4022 insertions(+), 3974 deletions(-) (limited to 'mesalib/src/mesa') diff --git a/mesalib/src/mesa/main/enable.c b/mesalib/src/mesa/main/enable.c index 8df3ac1f6..aac8b9c5e 100644 --- a/mesalib/src/mesa/main/enable.c +++ b/mesalib/src/mesa/main/enable.c @@ -1,1425 +1,1428 @@ -/** - * \file enable.c - * Enable/disable/query GL capabilities. - */ - -/* - * Mesa 3-D graphics library - * Version: 7.0.3 - * - * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "glheader.h" -#include "clip.h" -#include "context.h" -#include "enable.h" -#include "light.h" -#include "simple_list.h" -#include "mfeatures.h" -#include "mtypes.h" -#include "enums.h" -#include "api_arrayelt.h" -#include "texstate.h" - - - -#define CHECK_EXTENSION(EXTNAME, CAP) \ - if (!ctx->Extensions.EXTNAME) { \ - goto invalid_enum_error; \ - } - - -/** - * Helper to enable/disable client-side state. - */ -static void -client_state(struct gl_context *ctx, GLenum cap, GLboolean state) -{ - struct gl_array_object *arrayObj = ctx->Array.ArrayObj; - GLuint flag; - GLboolean *var; - - switch (cap) { - case GL_VERTEX_ARRAY: - var = &arrayObj->Vertex.Enabled; - flag = _NEW_ARRAY_VERTEX; - break; - case GL_NORMAL_ARRAY: - var = &arrayObj->Normal.Enabled; - flag = _NEW_ARRAY_NORMAL; - break; - case GL_COLOR_ARRAY: - var = &arrayObj->Color.Enabled; - flag = _NEW_ARRAY_COLOR0; - break; - case GL_INDEX_ARRAY: - var = &arrayObj->Index.Enabled; - flag = _NEW_ARRAY_INDEX; - break; - case GL_TEXTURE_COORD_ARRAY: - var = &arrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled; - flag = _NEW_ARRAY_TEXCOORD(ctx->Array.ActiveTexture); - break; - case GL_EDGE_FLAG_ARRAY: - var = &arrayObj->EdgeFlag.Enabled; - flag = _NEW_ARRAY_EDGEFLAG; - break; - case GL_FOG_COORDINATE_ARRAY_EXT: - var = &arrayObj->FogCoord.Enabled; - flag = _NEW_ARRAY_FOGCOORD; - break; - case GL_SECONDARY_COLOR_ARRAY_EXT: - var = &arrayObj->SecondaryColor.Enabled; - flag = _NEW_ARRAY_COLOR1; - break; - -#if FEATURE_point_size_array - case GL_POINT_SIZE_ARRAY_OES: - var = &arrayObj->PointSize.Enabled; - flag = _NEW_ARRAY_POINT_SIZE; - break; -#endif - -#if FEATURE_NV_vertex_program - case GL_VERTEX_ATTRIB_ARRAY0_NV: - case GL_VERTEX_ATTRIB_ARRAY1_NV: - case GL_VERTEX_ATTRIB_ARRAY2_NV: - case GL_VERTEX_ATTRIB_ARRAY3_NV: - case GL_VERTEX_ATTRIB_ARRAY4_NV: - case GL_VERTEX_ATTRIB_ARRAY5_NV: - case GL_VERTEX_ATTRIB_ARRAY6_NV: - case GL_VERTEX_ATTRIB_ARRAY7_NV: - case GL_VERTEX_ATTRIB_ARRAY8_NV: - case GL_VERTEX_ATTRIB_ARRAY9_NV: - case GL_VERTEX_ATTRIB_ARRAY10_NV: - case GL_VERTEX_ATTRIB_ARRAY11_NV: - case GL_VERTEX_ATTRIB_ARRAY12_NV: - case GL_VERTEX_ATTRIB_ARRAY13_NV: - case GL_VERTEX_ATTRIB_ARRAY14_NV: - case GL_VERTEX_ATTRIB_ARRAY15_NV: - CHECK_EXTENSION(NV_vertex_program, cap); - { - GLint n = (GLint) cap - GL_VERTEX_ATTRIB_ARRAY0_NV; - ASSERT(n < Elements(ctx->Array.ArrayObj->VertexAttrib)); - var = &arrayObj->VertexAttrib[n].Enabled; - flag = _NEW_ARRAY_ATTRIB(n); - } - break; -#endif /* FEATURE_NV_vertex_program */ - - /* GL_NV_primitive_restart */ - case GL_PRIMITIVE_RESTART_NV: - if (!ctx->Extensions.NV_primitive_restart) { - goto invalid_enum_error; - } - var = &ctx->Array.PrimitiveRestart; - flag = 0; - break; - - default: - goto invalid_enum_error; - } - - if (*var == state) - return; - - FLUSH_VERTICES(ctx, _NEW_ARRAY); - ctx->Array.NewState |= flag; - - _ae_invalidate_state(ctx, _NEW_ARRAY); - - *var = state; - - if (state) - ctx->Array.ArrayObj->_Enabled |= flag; - else - ctx->Array.ArrayObj->_Enabled &= ~flag; - - if (ctx->Driver.Enable) { - ctx->Driver.Enable( ctx, cap, state ); - } - - return; - -invalid_enum_error: - _mesa_error(ctx, GL_INVALID_ENUM, "gl%sClientState(0x%x)", - state ? "Enable" : "Disable", cap); -} - - -/** - * Enable GL capability. - * \param cap state to enable/disable. - * - * Get's the current context, assures that we're outside glBegin()/glEnd() and - * calls client_state(). - */ -void GLAPIENTRY -_mesa_EnableClientState( GLenum cap ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END(ctx); - client_state( ctx, cap, GL_TRUE ); -} - - -/** - * Disable GL capability. - * \param cap state to enable/disable. - * - * Get's the current context, assures that we're outside glBegin()/glEnd() and - * calls client_state(). - */ -void GLAPIENTRY -_mesa_DisableClientState( GLenum cap ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END(ctx); - client_state( ctx, cap, GL_FALSE ); -} - - -#undef CHECK_EXTENSION -#define CHECK_EXTENSION(EXTNAME, CAP) \ - if (!ctx->Extensions.EXTNAME) { \ - goto invalid_enum_error; \ - } - -#define CHECK_EXTENSION2(EXT1, EXT2, CAP) \ - if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \ - goto invalid_enum_error; \ - } - - - -/** - * Return pointer to current texture unit for setting/getting coordinate - * state. - * Note that we'll set GL_INVALID_OPERATION and return NULL if the active - * texture unit is higher than the number of supported coordinate units. - */ -static struct gl_texture_unit * -get_texcoord_unit(struct gl_context *ctx) -{ - if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) { - _mesa_error(ctx, GL_INVALID_OPERATION, "glEnable/Disable(texcoord unit)"); - return NULL; - } - else { - return &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; - } -} - - -/** - * Helper function to enable or disable a texture target. - * \param bit one of the TEXTURE_x_BIT values - * \return GL_TRUE if state is changing or GL_FALSE if no change - */ -static GLboolean -enable_texture(struct gl_context *ctx, GLboolean state, GLbitfield texBit) -{ - struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); - const GLbitfield newenabled = state - ? (texUnit->Enabled | texBit) : (texUnit->Enabled & ~texBit); - - if (texUnit->Enabled == newenabled) - return GL_FALSE; - - FLUSH_VERTICES(ctx, _NEW_TEXTURE); - texUnit->Enabled = newenabled; - return GL_TRUE; -} - - -/** - * Helper function to enable or disable state. - * - * \param ctx GL context. - * \param cap the state to enable/disable - * \param state whether to enable or disable the specified capability. - * - * Updates the current context and flushes the vertices as needed. For - * capabilities associated with extensions it verifies that those extensions - * are effectivly present before updating. Notifies the driver via - * dd_function_table::Enable. - */ -void -_mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state) -{ - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "%s %s (newstate is %x)\n", - state ? "glEnable" : "glDisable", - _mesa_lookup_enum_by_nr(cap), - ctx->NewState); - - switch (cap) { - case GL_ALPHA_TEST: - if (ctx->Color.AlphaEnabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_COLOR); - ctx->Color.AlphaEnabled = state; - break; - case GL_AUTO_NORMAL: - if (ctx->Eval.AutoNormal == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.AutoNormal = state; - break; - case GL_BLEND: - { - GLbitfield newEnabled = - state * ((1 << ctx->Const.MaxDrawBuffers) - 1); - if (newEnabled != ctx->Color.BlendEnabled) { - FLUSH_VERTICES(ctx, _NEW_COLOR); - ctx->Color.BlendEnabled = newEnabled; - } - } - break; -#if FEATURE_userclip - case GL_CLIP_PLANE0: - case GL_CLIP_PLANE1: - case GL_CLIP_PLANE2: - case GL_CLIP_PLANE3: - case GL_CLIP_PLANE4: - case GL_CLIP_PLANE5: - { - const GLuint p = cap - GL_CLIP_PLANE0; - - if ((ctx->Transform.ClipPlanesEnabled & (1 << p)) - == ((GLuint) state << p)) - return; - - FLUSH_VERTICES(ctx, _NEW_TRANSFORM); - - if (state) { - ctx->Transform.ClipPlanesEnabled |= (1 << p); - _mesa_update_clip_plane(ctx, p); - } - else { - ctx->Transform.ClipPlanesEnabled &= ~(1 << p); - } - } - break; -#endif - case GL_COLOR_MATERIAL: - if (ctx->Light.ColorMaterialEnabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_LIGHT); - FLUSH_CURRENT(ctx, 0); - ctx->Light.ColorMaterialEnabled = state; - if (state) { - _mesa_update_color_material( ctx, - ctx->Current.Attrib[VERT_ATTRIB_COLOR0] ); - } - break; - case GL_CULL_FACE: - if (ctx->Polygon.CullFlag == state) - return; - FLUSH_VERTICES(ctx, _NEW_POLYGON); - ctx->Polygon.CullFlag = state; - break; - case GL_DEPTH_TEST: - if (ctx->Depth.Test == state) - return; - FLUSH_VERTICES(ctx, _NEW_DEPTH); - ctx->Depth.Test = state; - break; - case GL_DITHER: - if (ctx->Color.DitherFlag == state) - return; - FLUSH_VERTICES(ctx, _NEW_COLOR); - ctx->Color.DitherFlag = state; - break; - case GL_FOG: - if (ctx->Fog.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_FOG); - ctx->Fog.Enabled = state; - break; - case GL_LIGHT0: - case GL_LIGHT1: - case GL_LIGHT2: - case GL_LIGHT3: - case GL_LIGHT4: - case GL_LIGHT5: - case GL_LIGHT6: - case GL_LIGHT7: - if (ctx->Light.Light[cap-GL_LIGHT0].Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_LIGHT); - ctx->Light.Light[cap-GL_LIGHT0].Enabled = state; - if (state) { - insert_at_tail(&ctx->Light.EnabledList, - &ctx->Light.Light[cap-GL_LIGHT0]); - } - else { - remove_from_list(&ctx->Light.Light[cap-GL_LIGHT0]); - } - break; - case GL_LIGHTING: - if (ctx->Light.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_LIGHT); - ctx->Light.Enabled = state; - if (ctx->Light.Enabled && ctx->Light.Model.TwoSide) - ctx->_TriangleCaps |= DD_TRI_LIGHT_TWOSIDE; - else - ctx->_TriangleCaps &= ~DD_TRI_LIGHT_TWOSIDE; - break; - case GL_LINE_SMOOTH: - if (ctx->Line.SmoothFlag == state) - return; - FLUSH_VERTICES(ctx, _NEW_LINE); - ctx->Line.SmoothFlag = state; - ctx->_TriangleCaps ^= DD_LINE_SMOOTH; - break; - case GL_LINE_STIPPLE: - if (ctx->Line.StippleFlag == state) - return; - FLUSH_VERTICES(ctx, _NEW_LINE); - ctx->Line.StippleFlag = state; - ctx->_TriangleCaps ^= DD_LINE_STIPPLE; - break; - case GL_INDEX_LOGIC_OP: - if (ctx->Color.IndexLogicOpEnabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_COLOR); - ctx->Color.IndexLogicOpEnabled = state; - break; - case GL_COLOR_LOGIC_OP: - if (ctx->Color.ColorLogicOpEnabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_COLOR); - ctx->Color.ColorLogicOpEnabled = state; - break; - case GL_MAP1_COLOR_4: - if (ctx->Eval.Map1Color4 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1Color4 = state; - break; - case GL_MAP1_INDEX: - if (ctx->Eval.Map1Index == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1Index = state; - break; - case GL_MAP1_NORMAL: - if (ctx->Eval.Map1Normal == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1Normal = state; - break; - case GL_MAP1_TEXTURE_COORD_1: - if (ctx->Eval.Map1TextureCoord1 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1TextureCoord1 = state; - break; - case GL_MAP1_TEXTURE_COORD_2: - if (ctx->Eval.Map1TextureCoord2 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1TextureCoord2 = state; - break; - case GL_MAP1_TEXTURE_COORD_3: - if (ctx->Eval.Map1TextureCoord3 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1TextureCoord3 = state; - break; - case GL_MAP1_TEXTURE_COORD_4: - if (ctx->Eval.Map1TextureCoord4 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1TextureCoord4 = state; - break; - case GL_MAP1_VERTEX_3: - if (ctx->Eval.Map1Vertex3 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1Vertex3 = state; - break; - case GL_MAP1_VERTEX_4: - if (ctx->Eval.Map1Vertex4 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1Vertex4 = state; - break; - case GL_MAP2_COLOR_4: - if (ctx->Eval.Map2Color4 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2Color4 = state; - break; - case GL_MAP2_INDEX: - if (ctx->Eval.Map2Index == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2Index = state; - break; - case GL_MAP2_NORMAL: - if (ctx->Eval.Map2Normal == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2Normal = state; - break; - case GL_MAP2_TEXTURE_COORD_1: - if (ctx->Eval.Map2TextureCoord1 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2TextureCoord1 = state; - break; - case GL_MAP2_TEXTURE_COORD_2: - if (ctx->Eval.Map2TextureCoord2 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2TextureCoord2 = state; - break; - case GL_MAP2_TEXTURE_COORD_3: - if (ctx->Eval.Map2TextureCoord3 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2TextureCoord3 = state; - break; - case GL_MAP2_TEXTURE_COORD_4: - if (ctx->Eval.Map2TextureCoord4 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2TextureCoord4 = state; - break; - case GL_MAP2_VERTEX_3: - if (ctx->Eval.Map2Vertex3 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2Vertex3 = state; - break; - case GL_MAP2_VERTEX_4: - if (ctx->Eval.Map2Vertex4 == state) - return; - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2Vertex4 = state; - break; - case GL_NORMALIZE: - if (ctx->Transform.Normalize == state) - return; - FLUSH_VERTICES(ctx, _NEW_TRANSFORM); - ctx->Transform.Normalize = state; - break; - case GL_POINT_SMOOTH: - if (ctx->Point.SmoothFlag == state) - return; - FLUSH_VERTICES(ctx, _NEW_POINT); - ctx->Point.SmoothFlag = state; - ctx->_TriangleCaps ^= DD_POINT_SMOOTH; - break; - case GL_POLYGON_SMOOTH: - if (ctx->Polygon.SmoothFlag == state) - return; - FLUSH_VERTICES(ctx, _NEW_POLYGON); - ctx->Polygon.SmoothFlag = state; - ctx->_TriangleCaps ^= DD_TRI_SMOOTH; - break; - case GL_POLYGON_STIPPLE: - if (ctx->Polygon.StippleFlag == state) - return; - FLUSH_VERTICES(ctx, _NEW_POLYGON); - ctx->Polygon.StippleFlag = state; - ctx->_TriangleCaps ^= DD_TRI_STIPPLE; - break; - case GL_POLYGON_OFFSET_POINT: - if (ctx->Polygon.OffsetPoint == state) - return; - FLUSH_VERTICES(ctx, _NEW_POLYGON); - ctx->Polygon.OffsetPoint = state; - break; - case GL_POLYGON_OFFSET_LINE: - if (ctx->Polygon.OffsetLine == state) - return; - FLUSH_VERTICES(ctx, _NEW_POLYGON); - ctx->Polygon.OffsetLine = state; - break; - case GL_POLYGON_OFFSET_FILL: - /*case GL_POLYGON_OFFSET_EXT:*/ - if (ctx->Polygon.OffsetFill == state) - return; - FLUSH_VERTICES(ctx, _NEW_POLYGON); - ctx->Polygon.OffsetFill = state; - break; - case GL_RESCALE_NORMAL_EXT: - if (ctx->Transform.RescaleNormals == state) - return; - FLUSH_VERTICES(ctx, _NEW_TRANSFORM); - ctx->Transform.RescaleNormals = state; - break; - case GL_SCISSOR_TEST: - if (ctx->Scissor.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_SCISSOR); - ctx->Scissor.Enabled = state; - break; - case GL_SHARED_TEXTURE_PALETTE_EXT: - if (ctx->Texture.SharedPalette == state) - return; - FLUSH_VERTICES(ctx, _NEW_TEXTURE); - ctx->Texture.SharedPalette = state; - break; - case GL_STENCIL_TEST: - if (ctx->Stencil.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_STENCIL); - ctx->Stencil.Enabled = state; - break; - case GL_TEXTURE_1D: - if (!enable_texture(ctx, state, TEXTURE_1D_BIT)) { - return; - } - break; - case GL_TEXTURE_2D: - if (!enable_texture(ctx, state, TEXTURE_2D_BIT)) { - return; - } - break; - case GL_TEXTURE_3D: - if (!enable_texture(ctx, state, TEXTURE_3D_BIT)) { - return; - } - break; - case GL_TEXTURE_GEN_S: - case GL_TEXTURE_GEN_T: - case GL_TEXTURE_GEN_R: - case GL_TEXTURE_GEN_Q: - { - struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); - if (texUnit) { - GLbitfield coordBit = S_BIT << (cap - GL_TEXTURE_GEN_S); - GLbitfield newenabled = texUnit->TexGenEnabled & ~coordBit; - if (state) - newenabled |= coordBit; - if (texUnit->TexGenEnabled == newenabled) - return; - FLUSH_VERTICES(ctx, _NEW_TEXTURE); - texUnit->TexGenEnabled = newenabled; - } - } - break; - -#if FEATURE_ES1 - case GL_TEXTURE_GEN_STR_OES: - /* disable S, T, and R at the same time */ - { - struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); - if (texUnit) { - GLuint newenabled = - texUnit->TexGenEnabled & ~STR_BITS; - if (state) - newenabled |= STR_BITS; - if (texUnit->TexGenEnabled == newenabled) - return; - FLUSH_VERTICES(ctx, _NEW_TEXTURE); - texUnit->TexGenEnabled = newenabled; - } - } - break; -#endif - - /* - * CLIENT STATE!!! - */ - case GL_VERTEX_ARRAY: - case GL_NORMAL_ARRAY: - case GL_COLOR_ARRAY: - case GL_INDEX_ARRAY: - case GL_TEXTURE_COORD_ARRAY: - case GL_EDGE_FLAG_ARRAY: - case GL_FOG_COORDINATE_ARRAY_EXT: - case GL_SECONDARY_COLOR_ARRAY_EXT: - case GL_POINT_SIZE_ARRAY_OES: - client_state( ctx, cap, state ); - return; - - /* GL_ARB_texture_cube_map */ - case GL_TEXTURE_CUBE_MAP_ARB: - CHECK_EXTENSION(ARB_texture_cube_map, cap); - if (!enable_texture(ctx, state, TEXTURE_CUBE_BIT)) { - return; - } - break; - - /* GL_EXT_secondary_color */ - case GL_COLOR_SUM_EXT: - CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program, cap); - if (ctx->Fog.ColorSumEnabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_FOG); - ctx->Fog.ColorSumEnabled = state; - break; - - /* GL_ARB_multisample */ - case GL_MULTISAMPLE_ARB: - if (ctx->Multisample.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); - ctx->Multisample.Enabled = state; - break; - case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: - if (ctx->Multisample.SampleAlphaToCoverage == state) - return; - FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); - ctx->Multisample.SampleAlphaToCoverage = state; - break; - case GL_SAMPLE_ALPHA_TO_ONE_ARB: - if (ctx->Multisample.SampleAlphaToOne == state) - return; - FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); - ctx->Multisample.SampleAlphaToOne = state; - break; - case GL_SAMPLE_COVERAGE_ARB: - if (ctx->Multisample.SampleCoverage == state) - return; - FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); - ctx->Multisample.SampleCoverage = state; - break; - case GL_SAMPLE_COVERAGE_INVERT_ARB: - if (ctx->Multisample.SampleCoverageInvert == state) - return; - FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); - ctx->Multisample.SampleCoverageInvert = state; - break; - - /* GL_IBM_rasterpos_clip */ - case GL_RASTER_POSITION_UNCLIPPED_IBM: - CHECK_EXTENSION(IBM_rasterpos_clip, cap); - if (ctx->Transform.RasterPositionUnclipped == state) - return; - FLUSH_VERTICES(ctx, _NEW_TRANSFORM); - ctx->Transform.RasterPositionUnclipped = state; - break; - - /* GL_NV_point_sprite */ - case GL_POINT_SPRITE_NV: - CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite, cap); - if (ctx->Point.PointSprite == state) - return; - FLUSH_VERTICES(ctx, _NEW_POINT); - ctx->Point.PointSprite = state; - break; - -#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program - case GL_VERTEX_PROGRAM_ARB: - CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); - if (ctx->VertexProgram.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_PROGRAM); - ctx->VertexProgram.Enabled = state; - break; - case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: - CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); - if (ctx->VertexProgram.PointSizeEnabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_PROGRAM); - ctx->VertexProgram.PointSizeEnabled = state; - break; - case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: - CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); - if (ctx->VertexProgram.TwoSideEnabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_PROGRAM); - ctx->VertexProgram.TwoSideEnabled = state; - break; -#endif -#if FEATURE_NV_vertex_program - case GL_MAP1_VERTEX_ATTRIB0_4_NV: - case GL_MAP1_VERTEX_ATTRIB1_4_NV: - case GL_MAP1_VERTEX_ATTRIB2_4_NV: - case GL_MAP1_VERTEX_ATTRIB3_4_NV: - case GL_MAP1_VERTEX_ATTRIB4_4_NV: - case GL_MAP1_VERTEX_ATTRIB5_4_NV: - case GL_MAP1_VERTEX_ATTRIB6_4_NV: - case GL_MAP1_VERTEX_ATTRIB7_4_NV: - case GL_MAP1_VERTEX_ATTRIB8_4_NV: - case GL_MAP1_VERTEX_ATTRIB9_4_NV: - case GL_MAP1_VERTEX_ATTRIB10_4_NV: - case GL_MAP1_VERTEX_ATTRIB11_4_NV: - case GL_MAP1_VERTEX_ATTRIB12_4_NV: - case GL_MAP1_VERTEX_ATTRIB13_4_NV: - case GL_MAP1_VERTEX_ATTRIB14_4_NV: - case GL_MAP1_VERTEX_ATTRIB15_4_NV: - CHECK_EXTENSION(NV_vertex_program, cap); - { - const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV); - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map1Attrib[map] = state; - } - break; - case GL_MAP2_VERTEX_ATTRIB0_4_NV: - case GL_MAP2_VERTEX_ATTRIB1_4_NV: - case GL_MAP2_VERTEX_ATTRIB2_4_NV: - case GL_MAP2_VERTEX_ATTRIB3_4_NV: - case GL_MAP2_VERTEX_ATTRIB4_4_NV: - case GL_MAP2_VERTEX_ATTRIB5_4_NV: - case GL_MAP2_VERTEX_ATTRIB6_4_NV: - case GL_MAP2_VERTEX_ATTRIB7_4_NV: - case GL_MAP2_VERTEX_ATTRIB8_4_NV: - case GL_MAP2_VERTEX_ATTRIB9_4_NV: - case GL_MAP2_VERTEX_ATTRIB10_4_NV: - case GL_MAP2_VERTEX_ATTRIB11_4_NV: - case GL_MAP2_VERTEX_ATTRIB12_4_NV: - case GL_MAP2_VERTEX_ATTRIB13_4_NV: - case GL_MAP2_VERTEX_ATTRIB14_4_NV: - case GL_MAP2_VERTEX_ATTRIB15_4_NV: - CHECK_EXTENSION(NV_vertex_program, cap); - { - const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV); - FLUSH_VERTICES(ctx, _NEW_EVAL); - ctx->Eval.Map2Attrib[map] = state; - } - break; -#endif /* FEATURE_NV_vertex_program */ - -#if FEATURE_NV_fragment_program - case GL_FRAGMENT_PROGRAM_NV: - CHECK_EXTENSION(NV_fragment_program, cap); - if (ctx->FragmentProgram.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_PROGRAM); - ctx->FragmentProgram.Enabled = state; - break; -#endif /* FEATURE_NV_fragment_program */ - - /* GL_NV_texture_rectangle */ - case GL_TEXTURE_RECTANGLE_NV: - CHECK_EXTENSION(NV_texture_rectangle, cap); - if (!enable_texture(ctx, state, TEXTURE_RECT_BIT)) { - return; - } - break; - - /* GL_EXT_stencil_two_side */ - case GL_STENCIL_TEST_TWO_SIDE_EXT: - CHECK_EXTENSION(EXT_stencil_two_side, cap); - if (ctx->Stencil.TestTwoSide == state) - return; - FLUSH_VERTICES(ctx, _NEW_STENCIL); - ctx->Stencil.TestTwoSide = state; - if (state) { - ctx->Stencil._BackFace = 2; - ctx->_TriangleCaps |= DD_TRI_TWOSTENCIL; - } else { - ctx->Stencil._BackFace = 1; - ctx->_TriangleCaps &= ~DD_TRI_TWOSTENCIL; - } - break; - -#if FEATURE_ARB_fragment_program - case GL_FRAGMENT_PROGRAM_ARB: - CHECK_EXTENSION(ARB_fragment_program, cap); - if (ctx->FragmentProgram.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_PROGRAM); - ctx->FragmentProgram.Enabled = state; - break; -#endif /* FEATURE_ARB_fragment_program */ - - /* GL_EXT_depth_bounds_test */ - case GL_DEPTH_BOUNDS_TEST_EXT: - CHECK_EXTENSION(EXT_depth_bounds_test, cap); - if (ctx->Depth.BoundsTest == state) - return; - FLUSH_VERTICES(ctx, _NEW_DEPTH); - ctx->Depth.BoundsTest = state; - break; - - case GL_DEPTH_CLAMP: - if (ctx->Transform.DepthClamp == state) - return; - CHECK_EXTENSION(ARB_depth_clamp, cap); - FLUSH_VERTICES(ctx, _NEW_TRANSFORM); - ctx->Transform.DepthClamp = state; - break; - -#if FEATURE_ATI_fragment_shader - case GL_FRAGMENT_SHADER_ATI: - CHECK_EXTENSION(ATI_fragment_shader, cap); - if (ctx->ATIFragmentShader.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_PROGRAM); - ctx->ATIFragmentShader.Enabled = state; - break; -#endif - - /* GL_MESA_texture_array */ - case GL_TEXTURE_1D_ARRAY_EXT: - CHECK_EXTENSION(MESA_texture_array, cap); - if (!enable_texture(ctx, state, TEXTURE_1D_ARRAY_BIT)) { - return; - } - break; - - case GL_TEXTURE_2D_ARRAY_EXT: - CHECK_EXTENSION(MESA_texture_array, cap); - if (!enable_texture(ctx, state, TEXTURE_2D_ARRAY_BIT)) { - return; - } - break; - - case GL_TEXTURE_CUBE_MAP_SEAMLESS: - CHECK_EXTENSION(ARB_seamless_cube_map, cap); - ctx->Texture.CubeMapSeamless = state; - break; - -#if FEATURE_EXT_transform_feedback - case GL_RASTERIZER_DISCARD: - CHECK_EXTENSION(EXT_transform_feedback, cap); - if (ctx->TransformFeedback.RasterDiscard != state) { - ctx->TransformFeedback.RasterDiscard = state; - FLUSH_VERTICES(ctx, _NEW_TRANSFORM); - } - break; -#endif - - /* GL 3.1 primitive restart. Note: this enum is different from - * GL_PRIMITIVE_RESTART_NV (which is client state). - */ - case GL_PRIMITIVE_RESTART: - if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { - goto invalid_enum_error; - } - if (ctx->Array.PrimitiveRestart != state) { - FLUSH_VERTICES(ctx, _NEW_TRANSFORM); - ctx->Array.PrimitiveRestart = state; - } - break; - - /* GL3.0 - GL_framebuffer_sRGB */ - case GL_FRAMEBUFFER_SRGB_EXT: - CHECK_EXTENSION(EXT_framebuffer_sRGB, cap); - FLUSH_VERTICES(ctx, _NEW_BUFFERS); - ctx->Color.sRGBEnabled = state; - break; - - default: - goto invalid_enum_error; - } - - if (ctx->Driver.Enable) { - ctx->Driver.Enable( ctx, cap, state ); - } - - return; - -invalid_enum_error: - _mesa_error(ctx, GL_INVALID_ENUM, "gl%s(0x%x)", - state ? "Enable" : "Disable", cap); -} - - -/** - * Enable GL capability. Called by glEnable() - * \param cap state to enable. - */ -void GLAPIENTRY -_mesa_Enable( GLenum cap ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END(ctx); - - _mesa_set_enable( ctx, cap, GL_TRUE ); -} - - -/** - * Disable GL capability. Called by glDisable() - * \param cap state to disable. - */ -void GLAPIENTRY -_mesa_Disable( GLenum cap ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END(ctx); - - _mesa_set_enable( ctx, cap, GL_FALSE ); -} - - - -/** - * Enable/disable an indexed state var. - */ -void -_mesa_set_enablei(struct gl_context *ctx, GLenum cap, - GLuint index, GLboolean state) -{ - ASSERT(state == 0 || state == 1); - switch (cap) { - case GL_BLEND: - if (!ctx->Extensions.EXT_draw_buffers2) { - goto invalid_enum_error; - } - if (index >= ctx->Const.MaxDrawBuffers) { - _mesa_error(ctx, GL_INVALID_VALUE, "%s(index=%u)", - state ? "glEnableIndexed" : "glDisableIndexed", index); - return; - } - if (((ctx->Color.BlendEnabled >> index) & 1) != state) { - FLUSH_VERTICES(ctx, _NEW_COLOR); - if (state) - ctx->Color.BlendEnabled |= (1 << index); - else - ctx->Color.BlendEnabled &= ~(1 << index); - } - break; - default: - goto invalid_enum_error; - } - return; - -invalid_enum_error: - _mesa_error(ctx, GL_INVALID_ENUM, "%s(cap=%s)", - state ? "glEnablei" : "glDisablei", - _mesa_lookup_enum_by_nr(cap)); -} - - -void GLAPIENTRY -_mesa_DisableIndexed( GLenum cap, GLuint index ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END(ctx); - _mesa_set_enablei(ctx, cap, index, GL_FALSE); -} - - -void GLAPIENTRY -_mesa_EnableIndexed( GLenum cap, GLuint index ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END(ctx); - _mesa_set_enablei(ctx, cap, index, GL_TRUE); -} - - -GLboolean GLAPIENTRY -_mesa_IsEnabledIndexed( GLenum cap, GLuint index ) -{ - GET_CURRENT_CONTEXT(ctx); - switch (cap) { - case GL_BLEND: - if (index >= ctx->Const.MaxDrawBuffers) { - _mesa_error(ctx, GL_INVALID_VALUE, "glIsEnabledIndexed(index=%u)", - index); - return GL_FALSE; - } - return (ctx->Color.BlendEnabled >> index) & 1; - default: - _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabledIndexed(cap=%s)", - _mesa_lookup_enum_by_nr(cap)); - return GL_FALSE; - } -} - - - - -#undef CHECK_EXTENSION -#define CHECK_EXTENSION(EXTNAME) \ - if (!ctx->Extensions.EXTNAME) { \ - goto invalid_enum_error; \ - } - -#undef CHECK_EXTENSION2 -#define CHECK_EXTENSION2(EXT1, EXT2) \ - if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \ - goto invalid_enum_error; \ - } - - -/** - * Helper function to determine whether a texture target is enabled. - */ -static GLboolean -is_texture_enabled(struct gl_context *ctx, GLbitfield bit) -{ - const struct gl_texture_unit *const texUnit = - &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; - return (texUnit->Enabled & bit) ? GL_TRUE : GL_FALSE; -} - - -/** - * Return simple enable/disable state. - * - * \param cap state variable to query. - * - * Returns the state of the specified capability from the current GL context. - * For the capabilities associated with extensions verifies that those - * extensions are effectively present before reporting. - */ -GLboolean GLAPIENTRY -_mesa_IsEnabled( GLenum cap ) -{ - GET_CURRENT_CONTEXT(ctx); - switch (cap) { - case GL_ALPHA_TEST: - return ctx->Color.AlphaEnabled; - case GL_AUTO_NORMAL: - return ctx->Eval.AutoNormal; - case GL_BLEND: - return ctx->Color.BlendEnabled & 1; /* return state for buffer[0] */ - case GL_CLIP_PLANE0: - case GL_CLIP_PLANE1: - case GL_CLIP_PLANE2: - case GL_CLIP_PLANE3: - case GL_CLIP_PLANE4: - case GL_CLIP_PLANE5: - return (ctx->Transform.ClipPlanesEnabled >> (cap - GL_CLIP_PLANE0)) & 1; - case GL_COLOR_MATERIAL: - return ctx->Light.ColorMaterialEnabled; - case GL_CULL_FACE: - return ctx->Polygon.CullFlag; - case GL_DEPTH_TEST: - return ctx->Depth.Test; - case GL_DITHER: - return ctx->Color.DitherFlag; - case GL_FOG: - return ctx->Fog.Enabled; - case GL_LIGHTING: - return ctx->Light.Enabled; - case GL_LIGHT0: - case GL_LIGHT1: - case GL_LIGHT2: - case GL_LIGHT3: - case GL_LIGHT4: - case GL_LIGHT5: - case GL_LIGHT6: - case GL_LIGHT7: - return ctx->Light.Light[cap-GL_LIGHT0].Enabled; - case GL_LINE_SMOOTH: - return ctx->Line.SmoothFlag; - case GL_LINE_STIPPLE: - return ctx->Line.StippleFlag; - case GL_INDEX_LOGIC_OP: - return ctx->Color.IndexLogicOpEnabled; - case GL_COLOR_LOGIC_OP: - return ctx->Color.ColorLogicOpEnabled; - case GL_MAP1_COLOR_4: - return ctx->Eval.Map1Color4; - case GL_MAP1_INDEX: - return ctx->Eval.Map1Index; - case GL_MAP1_NORMAL: - return ctx->Eval.Map1Normal; - case GL_MAP1_TEXTURE_COORD_1: - return ctx->Eval.Map1TextureCoord1; - case GL_MAP1_TEXTURE_COORD_2: - return ctx->Eval.Map1TextureCoord2; - case GL_MAP1_TEXTURE_COORD_3: - return ctx->Eval.Map1TextureCoord3; - case GL_MAP1_TEXTURE_COORD_4: - return ctx->Eval.Map1TextureCoord4; - case GL_MAP1_VERTEX_3: - return ctx->Eval.Map1Vertex3; - case GL_MAP1_VERTEX_4: - return ctx->Eval.Map1Vertex4; - case GL_MAP2_COLOR_4: - return ctx->Eval.Map2Color4; - case GL_MAP2_INDEX: - return ctx->Eval.Map2Index; - case GL_MAP2_NORMAL: - return ctx->Eval.Map2Normal; - case GL_MAP2_TEXTURE_COORD_1: - return ctx->Eval.Map2TextureCoord1; - case GL_MAP2_TEXTURE_COORD_2: - return ctx->Eval.Map2TextureCoord2; - case GL_MAP2_TEXTURE_COORD_3: - return ctx->Eval.Map2TextureCoord3; - case GL_MAP2_TEXTURE_COORD_4: - return ctx->Eval.Map2TextureCoord4; - case GL_MAP2_VERTEX_3: - return ctx->Eval.Map2Vertex3; - case GL_MAP2_VERTEX_4: - return ctx->Eval.Map2Vertex4; - case GL_NORMALIZE: - return ctx->Transform.Normalize; - case GL_POINT_SMOOTH: - return ctx->Point.SmoothFlag; - case GL_POLYGON_SMOOTH: - return ctx->Polygon.SmoothFlag; - case GL_POLYGON_STIPPLE: - return ctx->Polygon.StippleFlag; - case GL_POLYGON_OFFSET_POINT: - return ctx->Polygon.OffsetPoint; - case GL_POLYGON_OFFSET_LINE: - return ctx->Polygon.OffsetLine; - case GL_POLYGON_OFFSET_FILL: - /*case GL_POLYGON_OFFSET_EXT:*/ - return ctx->Polygon.OffsetFill; - case GL_RESCALE_NORMAL_EXT: - return ctx->Transform.RescaleNormals; - case GL_SCISSOR_TEST: - return ctx->Scissor.Enabled; - case GL_SHARED_TEXTURE_PALETTE_EXT: - return ctx->Texture.SharedPalette; - case GL_STENCIL_TEST: - return ctx->Stencil.Enabled; - case GL_TEXTURE_1D: - return is_texture_enabled(ctx, TEXTURE_1D_BIT); - case GL_TEXTURE_2D: - return is_texture_enabled(ctx, TEXTURE_2D_BIT); - case GL_TEXTURE_3D: - return is_texture_enabled(ctx, TEXTURE_3D_BIT); - case GL_TEXTURE_GEN_S: - case GL_TEXTURE_GEN_T: - case GL_TEXTURE_GEN_R: - case GL_TEXTURE_GEN_Q: - { - const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); - if (texUnit) { - GLbitfield coordBit = S_BIT << (cap - GL_TEXTURE_GEN_S); - return (texUnit->TexGenEnabled & coordBit) ? GL_TRUE : GL_FALSE; - } - } - return GL_FALSE; -#if FEATURE_ES1 - case GL_TEXTURE_GEN_STR_OES: - { - const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); - if (texUnit) { - return (texUnit->TexGenEnabled & STR_BITS) == STR_BITS - ? GL_TRUE : GL_FALSE; - } - } -#endif - - /* - * CLIENT STATE!!! - */ - case GL_VERTEX_ARRAY: - return (ctx->Array.ArrayObj->Vertex.Enabled != 0); - case GL_NORMAL_ARRAY: - return (ctx->Array.ArrayObj->Normal.Enabled != 0); - case GL_COLOR_ARRAY: - return (ctx->Array.ArrayObj->Color.Enabled != 0); - case GL_INDEX_ARRAY: - return (ctx->Array.ArrayObj->Index.Enabled != 0); - case GL_TEXTURE_COORD_ARRAY: - return (ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture] - .Enabled != 0); - case GL_EDGE_FLAG_ARRAY: - return (ctx->Array.ArrayObj->EdgeFlag.Enabled != 0); - case GL_FOG_COORDINATE_ARRAY_EXT: - CHECK_EXTENSION(EXT_fog_coord); - return (ctx->Array.ArrayObj->FogCoord.Enabled != 0); - case GL_SECONDARY_COLOR_ARRAY_EXT: - CHECK_EXTENSION(EXT_secondary_color); - return (ctx->Array.ArrayObj->SecondaryColor.Enabled != 0); -#if FEATURE_point_size_array - case GL_POINT_SIZE_ARRAY_OES: - return (ctx->Array.ArrayObj->PointSize.Enabled != 0); -#endif - - /* GL_ARB_texture_cube_map */ - case GL_TEXTURE_CUBE_MAP_ARB: - CHECK_EXTENSION(ARB_texture_cube_map); - return is_texture_enabled(ctx, TEXTURE_CUBE_BIT); - - /* GL_EXT_secondary_color */ - case GL_COLOR_SUM_EXT: - CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program); - return ctx->Fog.ColorSumEnabled; - - /* GL_ARB_multisample */ - case GL_MULTISAMPLE_ARB: - return ctx->Multisample.Enabled; - case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: - return ctx->Multisample.SampleAlphaToCoverage; - case GL_SAMPLE_ALPHA_TO_ONE_ARB: - return ctx->Multisample.SampleAlphaToOne; - case GL_SAMPLE_COVERAGE_ARB: - return ctx->Multisample.SampleCoverage; - case GL_SAMPLE_COVERAGE_INVERT_ARB: - return ctx->Multisample.SampleCoverageInvert; - - /* GL_IBM_rasterpos_clip */ - case GL_RASTER_POSITION_UNCLIPPED_IBM: - CHECK_EXTENSION(IBM_rasterpos_clip); - return ctx->Transform.RasterPositionUnclipped; - - /* GL_NV_point_sprite */ - case GL_POINT_SPRITE_NV: - CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite) - return ctx->Point.PointSprite; - -#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program - case GL_VERTEX_PROGRAM_ARB: - CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); - return ctx->VertexProgram.Enabled; - case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: - CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); - return ctx->VertexProgram.PointSizeEnabled; - case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: - CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); - return ctx->VertexProgram.TwoSideEnabled; -#endif -#if FEATURE_NV_vertex_program - case GL_VERTEX_ATTRIB_ARRAY0_NV: - case GL_VERTEX_ATTRIB_ARRAY1_NV: - case GL_VERTEX_ATTRIB_ARRAY2_NV: - case GL_VERTEX_ATTRIB_ARRAY3_NV: - case GL_VERTEX_ATTRIB_ARRAY4_NV: - case GL_VERTEX_ATTRIB_ARRAY5_NV: - case GL_VERTEX_ATTRIB_ARRAY6_NV: - case GL_VERTEX_ATTRIB_ARRAY7_NV: - case GL_VERTEX_ATTRIB_ARRAY8_NV: - case GL_VERTEX_ATTRIB_ARRAY9_NV: - case GL_VERTEX_ATTRIB_ARRAY10_NV: - case GL_VERTEX_ATTRIB_ARRAY11_NV: - case GL_VERTEX_ATTRIB_ARRAY12_NV: - case GL_VERTEX_ATTRIB_ARRAY13_NV: - case GL_VERTEX_ATTRIB_ARRAY14_NV: - case GL_VERTEX_ATTRIB_ARRAY15_NV: - CHECK_EXTENSION(NV_vertex_program); - { - GLint n = (GLint) cap - GL_VERTEX_ATTRIB_ARRAY0_NV; - ASSERT(n < Elements(ctx->Array.ArrayObj->VertexAttrib)); - return (ctx->Array.ArrayObj->VertexAttrib[n].Enabled != 0); - } - case GL_MAP1_VERTEX_ATTRIB0_4_NV: - case GL_MAP1_VERTEX_ATTRIB1_4_NV: - case GL_MAP1_VERTEX_ATTRIB2_4_NV: - case GL_MAP1_VERTEX_ATTRIB3_4_NV: - case GL_MAP1_VERTEX_ATTRIB4_4_NV: - case GL_MAP1_VERTEX_ATTRIB5_4_NV: - case GL_MAP1_VERTEX_ATTRIB6_4_NV: - case GL_MAP1_VERTEX_ATTRIB7_4_NV: - case GL_MAP1_VERTEX_ATTRIB8_4_NV: - case GL_MAP1_VERTEX_ATTRIB9_4_NV: - case GL_MAP1_VERTEX_ATTRIB10_4_NV: - case GL_MAP1_VERTEX_ATTRIB11_4_NV: - case GL_MAP1_VERTEX_ATTRIB12_4_NV: - case GL_MAP1_VERTEX_ATTRIB13_4_NV: - case GL_MAP1_VERTEX_ATTRIB14_4_NV: - case GL_MAP1_VERTEX_ATTRIB15_4_NV: - CHECK_EXTENSION(NV_vertex_program); - { - const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV); - return ctx->Eval.Map1Attrib[map]; - } - case GL_MAP2_VERTEX_ATTRIB0_4_NV: - case GL_MAP2_VERTEX_ATTRIB1_4_NV: - case GL_MAP2_VERTEX_ATTRIB2_4_NV: - case GL_MAP2_VERTEX_ATTRIB3_4_NV: - case GL_MAP2_VERTEX_ATTRIB4_4_NV: - case GL_MAP2_VERTEX_ATTRIB5_4_NV: - case GL_MAP2_VERTEX_ATTRIB6_4_NV: - case GL_MAP2_VERTEX_ATTRIB7_4_NV: - case GL_MAP2_VERTEX_ATTRIB8_4_NV: - case GL_MAP2_VERTEX_ATTRIB9_4_NV: - case GL_MAP2_VERTEX_ATTRIB10_4_NV: - case GL_MAP2_VERTEX_ATTRIB11_4_NV: - case GL_MAP2_VERTEX_ATTRIB12_4_NV: - case GL_MAP2_VERTEX_ATTRIB13_4_NV: - case GL_MAP2_VERTEX_ATTRIB14_4_NV: - case GL_MAP2_VERTEX_ATTRIB15_4_NV: - CHECK_EXTENSION(NV_vertex_program); - { - const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV); - return ctx->Eval.Map2Attrib[map]; - } -#endif /* FEATURE_NV_vertex_program */ - -#if FEATURE_NV_fragment_program - case GL_FRAGMENT_PROGRAM_NV: - CHECK_EXTENSION(NV_fragment_program); - return ctx->FragmentProgram.Enabled; -#endif /* FEATURE_NV_fragment_program */ - - /* GL_NV_texture_rectangle */ - case GL_TEXTURE_RECTANGLE_NV: - CHECK_EXTENSION(NV_texture_rectangle); - return is_texture_enabled(ctx, TEXTURE_RECT_BIT); - - /* GL_EXT_stencil_two_side */ - case GL_STENCIL_TEST_TWO_SIDE_EXT: - CHECK_EXTENSION(EXT_stencil_two_side); - return ctx->Stencil.TestTwoSide; - -#if FEATURE_ARB_fragment_program - case GL_FRAGMENT_PROGRAM_ARB: - return ctx->FragmentProgram.Enabled; -#endif /* FEATURE_ARB_fragment_program */ - - /* GL_EXT_depth_bounds_test */ - case GL_DEPTH_BOUNDS_TEST_EXT: - CHECK_EXTENSION(EXT_depth_bounds_test); - return ctx->Depth.BoundsTest; - - /* GL_ARB_depth_clamp */ - case GL_DEPTH_CLAMP: - CHECK_EXTENSION(ARB_depth_clamp); - return ctx->Transform.DepthClamp; - -#if FEATURE_ATI_fragment_shader - case GL_FRAGMENT_SHADER_ATI: - CHECK_EXTENSION(ATI_fragment_shader); - return ctx->ATIFragmentShader.Enabled; -#endif /* FEATURE_ATI_fragment_shader */ - - case GL_TEXTURE_CUBE_MAP_SEAMLESS: - CHECK_EXTENSION(ARB_seamless_cube_map); - return ctx->Texture.CubeMapSeamless; - -#if FEATURE_EXT_transform_feedback - case GL_RASTERIZER_DISCARD: - CHECK_EXTENSION(EXT_transform_feedback); - return ctx->TransformFeedback.RasterDiscard; -#endif - - /* GL_NV_primitive_restart */ - case GL_PRIMITIVE_RESTART_NV: - if (!ctx->Extensions.NV_primitive_restart) { - goto invalid_enum_error; - } - return ctx->Array.PrimitiveRestart; - - /* GL 3.1 primitive restart */ - case GL_PRIMITIVE_RESTART: - if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { - goto invalid_enum_error; - } - return ctx->Array.PrimitiveRestart; - - /* GL3.0 - GL_framebuffer_sRGB */ - case GL_FRAMEBUFFER_SRGB_EXT: - CHECK_EXTENSION(EXT_framebuffer_sRGB); - return ctx->Color.sRGBEnabled; - - default: - goto invalid_enum_error; - } - - return GL_FALSE; - -invalid_enum_error: - _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabled(0x%x)", (int) cap); - return GL_FALSE; -} +/** + * \file enable.c + * Enable/disable/query GL capabilities. + */ + +/* + * Mesa 3-D graphics library + * Version: 7.0.3 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "glheader.h" +#include "clip.h" +#include "context.h" +#include "enable.h" +#include "light.h" +#include "simple_list.h" +#include "mfeatures.h" +#include "mtypes.h" +#include "enums.h" +#include "api_arrayelt.h" +#include "texstate.h" + + + +#define CHECK_EXTENSION(EXTNAME, CAP) \ + if (!ctx->Extensions.EXTNAME) { \ + goto invalid_enum_error; \ + } + + +/** + * Helper to enable/disable client-side state. + */ +static void +client_state(struct gl_context *ctx, GLenum cap, GLboolean state) +{ + struct gl_array_object *arrayObj = ctx->Array.ArrayObj; + GLuint flag; + GLboolean *var; + + switch (cap) { + case GL_VERTEX_ARRAY: + var = &arrayObj->Vertex.Enabled; + flag = _NEW_ARRAY_VERTEX; + break; + case GL_NORMAL_ARRAY: + var = &arrayObj->Normal.Enabled; + flag = _NEW_ARRAY_NORMAL; + break; + case GL_COLOR_ARRAY: + var = &arrayObj->Color.Enabled; + flag = _NEW_ARRAY_COLOR0; + break; + case GL_INDEX_ARRAY: + var = &arrayObj->Index.Enabled; + flag = _NEW_ARRAY_INDEX; + break; + case GL_TEXTURE_COORD_ARRAY: + var = &arrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled; + flag = _NEW_ARRAY_TEXCOORD(ctx->Array.ActiveTexture); + break; + case GL_EDGE_FLAG_ARRAY: + var = &arrayObj->EdgeFlag.Enabled; + flag = _NEW_ARRAY_EDGEFLAG; + break; + case GL_FOG_COORDINATE_ARRAY_EXT: + var = &arrayObj->FogCoord.Enabled; + flag = _NEW_ARRAY_FOGCOORD; + break; + case GL_SECONDARY_COLOR_ARRAY_EXT: + var = &arrayObj->SecondaryColor.Enabled; + flag = _NEW_ARRAY_COLOR1; + break; + +#if FEATURE_point_size_array + case GL_POINT_SIZE_ARRAY_OES: + var = &arrayObj->PointSize.Enabled; + flag = _NEW_ARRAY_POINT_SIZE; + break; +#endif + +#if FEATURE_NV_vertex_program + case GL_VERTEX_ATTRIB_ARRAY0_NV: + case GL_VERTEX_ATTRIB_ARRAY1_NV: + case GL_VERTEX_ATTRIB_ARRAY2_NV: + case GL_VERTEX_ATTRIB_ARRAY3_NV: + case GL_VERTEX_ATTRIB_ARRAY4_NV: + case GL_VERTEX_ATTRIB_ARRAY5_NV: + case GL_VERTEX_ATTRIB_ARRAY6_NV: + case GL_VERTEX_ATTRIB_ARRAY7_NV: + case GL_VERTEX_ATTRIB_ARRAY8_NV: + case GL_VERTEX_ATTRIB_ARRAY9_NV: + case GL_VERTEX_ATTRIB_ARRAY10_NV: + case GL_VERTEX_ATTRIB_ARRAY11_NV: + case GL_VERTEX_ATTRIB_ARRAY12_NV: + case GL_VERTEX_ATTRIB_ARRAY13_NV: + case GL_VERTEX_ATTRIB_ARRAY14_NV: + case GL_VERTEX_ATTRIB_ARRAY15_NV: + CHECK_EXTENSION(NV_vertex_program, cap); + { + GLint n = (GLint) cap - GL_VERTEX_ATTRIB_ARRAY0_NV; + ASSERT(n < Elements(ctx->Array.ArrayObj->VertexAttrib)); + var = &arrayObj->VertexAttrib[n].Enabled; + flag = _NEW_ARRAY_ATTRIB(n); + } + break; +#endif /* FEATURE_NV_vertex_program */ + + /* GL_NV_primitive_restart */ + case GL_PRIMITIVE_RESTART_NV: + if (!ctx->Extensions.NV_primitive_restart) { + goto invalid_enum_error; + } + var = &ctx->Array.PrimitiveRestart; + flag = 0; + break; + + default: + goto invalid_enum_error; + } + + if (*var == state) + return; + + FLUSH_VERTICES(ctx, _NEW_ARRAY); + ctx->Array.NewState |= flag; + + _ae_invalidate_state(ctx, _NEW_ARRAY); + + *var = state; + + if (state) + ctx->Array.ArrayObj->_Enabled |= flag; + else + ctx->Array.ArrayObj->_Enabled &= ~flag; + + if (ctx->Driver.Enable) { + ctx->Driver.Enable( ctx, cap, state ); + } + + return; + +invalid_enum_error: + _mesa_error(ctx, GL_INVALID_ENUM, "gl%sClientState(0x%x)", + state ? "Enable" : "Disable", cap); +} + + +/** + * Enable GL capability. + * \param cap state to enable/disable. + * + * Get's the current context, assures that we're outside glBegin()/glEnd() and + * calls client_state(). + */ +void GLAPIENTRY +_mesa_EnableClientState( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + client_state( ctx, cap, GL_TRUE ); +} + + +/** + * Disable GL capability. + * \param cap state to enable/disable. + * + * Get's the current context, assures that we're outside glBegin()/glEnd() and + * calls client_state(). + */ +void GLAPIENTRY +_mesa_DisableClientState( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + client_state( ctx, cap, GL_FALSE ); +} + + +#undef CHECK_EXTENSION +#define CHECK_EXTENSION(EXTNAME, CAP) \ + if (!ctx->Extensions.EXTNAME) { \ + goto invalid_enum_error; \ + } + +#define CHECK_EXTENSION2(EXT1, EXT2, CAP) \ + if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \ + goto invalid_enum_error; \ + } + + + +/** + * Return pointer to current texture unit for setting/getting coordinate + * state. + * Note that we'll set GL_INVALID_OPERATION and return NULL if the active + * texture unit is higher than the number of supported coordinate units. + */ +static struct gl_texture_unit * +get_texcoord_unit(struct gl_context *ctx) +{ + if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) { + _mesa_error(ctx, GL_INVALID_OPERATION, "glEnable/Disable(texcoord unit)"); + return NULL; + } + else { + return &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; + } +} + + +/** + * Helper function to enable or disable a texture target. + * \param bit one of the TEXTURE_x_BIT values + * \return GL_TRUE if state is changing or GL_FALSE if no change + */ +static GLboolean +enable_texture(struct gl_context *ctx, GLboolean state, GLbitfield texBit) +{ + struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); + const GLbitfield newenabled = state + ? (texUnit->Enabled | texBit) : (texUnit->Enabled & ~texBit); + + if (texUnit->Enabled == newenabled) + return GL_FALSE; + + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + texUnit->Enabled = newenabled; + return GL_TRUE; +} + + +/** + * Helper function to enable or disable state. + * + * \param ctx GL context. + * \param cap the state to enable/disable + * \param state whether to enable or disable the specified capability. + * + * Updates the current context and flushes the vertices as needed. For + * capabilities associated with extensions it verifies that those extensions + * are effectivly present before updating. Notifies the driver via + * dd_function_table::Enable. + */ +void +_mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state) +{ + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "%s %s (newstate is %x)\n", + state ? "glEnable" : "glDisable", + _mesa_lookup_enum_by_nr(cap), + ctx->NewState); + + switch (cap) { + case GL_ALPHA_TEST: + if (ctx->Color.AlphaEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.AlphaEnabled = state; + break; + case GL_AUTO_NORMAL: + if (ctx->Eval.AutoNormal == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.AutoNormal = state; + break; + case GL_BLEND: + { + GLbitfield newEnabled = + state * ((1 << ctx->Const.MaxDrawBuffers) - 1); + if (newEnabled != ctx->Color.BlendEnabled) { + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.BlendEnabled = newEnabled; + } + } + break; +#if FEATURE_userclip + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + { + const GLuint p = cap - GL_CLIP_PLANE0; + + if ((ctx->Transform.ClipPlanesEnabled & (1 << p)) + == ((GLuint) state << p)) + return; + + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + + if (state) { + ctx->Transform.ClipPlanesEnabled |= (1 << p); + _mesa_update_clip_plane(ctx, p); + } + else { + ctx->Transform.ClipPlanesEnabled &= ~(1 << p); + } + } + break; +#endif + case GL_COLOR_MATERIAL: + if (ctx->Light.ColorMaterialEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_LIGHT); + FLUSH_CURRENT(ctx, 0); + ctx->Light.ColorMaterialEnabled = state; + if (state) { + _mesa_update_color_material( ctx, + ctx->Current.Attrib[VERT_ATTRIB_COLOR0] ); + } + break; + case GL_CULL_FACE: + if (ctx->Polygon.CullFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.CullFlag = state; + break; + case GL_DEPTH_TEST: + if (ctx->Depth.Test == state) + return; + FLUSH_VERTICES(ctx, _NEW_DEPTH); + ctx->Depth.Test = state; + break; + case GL_DITHER: + if (ctx->Color.DitherFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.DitherFlag = state; + break; + case GL_FOG: + if (ctx->Fog.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_FOG); + ctx->Fog.Enabled = state; + break; + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + if (ctx->Light.Light[cap-GL_LIGHT0].Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_LIGHT); + ctx->Light.Light[cap-GL_LIGHT0].Enabled = state; + if (state) { + insert_at_tail(&ctx->Light.EnabledList, + &ctx->Light.Light[cap-GL_LIGHT0]); + } + else { + remove_from_list(&ctx->Light.Light[cap-GL_LIGHT0]); + } + break; + case GL_LIGHTING: + if (ctx->Light.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_LIGHT); + ctx->Light.Enabled = state; + if (ctx->Light.Enabled && ctx->Light.Model.TwoSide) + ctx->_TriangleCaps |= DD_TRI_LIGHT_TWOSIDE; + else + ctx->_TriangleCaps &= ~DD_TRI_LIGHT_TWOSIDE; + break; + case GL_LINE_SMOOTH: + if (ctx->Line.SmoothFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_LINE); + ctx->Line.SmoothFlag = state; + ctx->_TriangleCaps ^= DD_LINE_SMOOTH; + break; + case GL_LINE_STIPPLE: + if (ctx->Line.StippleFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_LINE); + ctx->Line.StippleFlag = state; + ctx->_TriangleCaps ^= DD_LINE_STIPPLE; + break; + case GL_INDEX_LOGIC_OP: + if (ctx->Color.IndexLogicOpEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.IndexLogicOpEnabled = state; + break; + case GL_COLOR_LOGIC_OP: + if (ctx->Color.ColorLogicOpEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.ColorLogicOpEnabled = state; + break; + case GL_MAP1_COLOR_4: + if (ctx->Eval.Map1Color4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Color4 = state; + break; + case GL_MAP1_INDEX: + if (ctx->Eval.Map1Index == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Index = state; + break; + case GL_MAP1_NORMAL: + if (ctx->Eval.Map1Normal == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Normal = state; + break; + case GL_MAP1_TEXTURE_COORD_1: + if (ctx->Eval.Map1TextureCoord1 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1TextureCoord1 = state; + break; + case GL_MAP1_TEXTURE_COORD_2: + if (ctx->Eval.Map1TextureCoord2 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1TextureCoord2 = state; + break; + case GL_MAP1_TEXTURE_COORD_3: + if (ctx->Eval.Map1TextureCoord3 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1TextureCoord3 = state; + break; + case GL_MAP1_TEXTURE_COORD_4: + if (ctx->Eval.Map1TextureCoord4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1TextureCoord4 = state; + break; + case GL_MAP1_VERTEX_3: + if (ctx->Eval.Map1Vertex3 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Vertex3 = state; + break; + case GL_MAP1_VERTEX_4: + if (ctx->Eval.Map1Vertex4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Vertex4 = state; + break; + case GL_MAP2_COLOR_4: + if (ctx->Eval.Map2Color4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Color4 = state; + break; + case GL_MAP2_INDEX: + if (ctx->Eval.Map2Index == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Index = state; + break; + case GL_MAP2_NORMAL: + if (ctx->Eval.Map2Normal == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Normal = state; + break; + case GL_MAP2_TEXTURE_COORD_1: + if (ctx->Eval.Map2TextureCoord1 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2TextureCoord1 = state; + break; + case GL_MAP2_TEXTURE_COORD_2: + if (ctx->Eval.Map2TextureCoord2 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2TextureCoord2 = state; + break; + case GL_MAP2_TEXTURE_COORD_3: + if (ctx->Eval.Map2TextureCoord3 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2TextureCoord3 = state; + break; + case GL_MAP2_TEXTURE_COORD_4: + if (ctx->Eval.Map2TextureCoord4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2TextureCoord4 = state; + break; + case GL_MAP2_VERTEX_3: + if (ctx->Eval.Map2Vertex3 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Vertex3 = state; + break; + case GL_MAP2_VERTEX_4: + if (ctx->Eval.Map2Vertex4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Vertex4 = state; + break; + case GL_NORMALIZE: + if (ctx->Transform.Normalize == state) + return; + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Transform.Normalize = state; + break; + case GL_POINT_SMOOTH: + if (ctx->Point.SmoothFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_POINT); + ctx->Point.SmoothFlag = state; + ctx->_TriangleCaps ^= DD_POINT_SMOOTH; + break; + case GL_POLYGON_SMOOTH: + if (ctx->Polygon.SmoothFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.SmoothFlag = state; + ctx->_TriangleCaps ^= DD_TRI_SMOOTH; + break; + case GL_POLYGON_STIPPLE: + if (ctx->Polygon.StippleFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.StippleFlag = state; + ctx->_TriangleCaps ^= DD_TRI_STIPPLE; + break; + case GL_POLYGON_OFFSET_POINT: + if (ctx->Polygon.OffsetPoint == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.OffsetPoint = state; + break; + case GL_POLYGON_OFFSET_LINE: + if (ctx->Polygon.OffsetLine == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.OffsetLine = state; + break; + case GL_POLYGON_OFFSET_FILL: + /*case GL_POLYGON_OFFSET_EXT:*/ + if (ctx->Polygon.OffsetFill == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.OffsetFill = state; + break; + case GL_RESCALE_NORMAL_EXT: + if (ctx->Transform.RescaleNormals == state) + return; + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Transform.RescaleNormals = state; + break; + case GL_SCISSOR_TEST: + if (ctx->Scissor.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_SCISSOR); + ctx->Scissor.Enabled = state; + break; + case GL_SHARED_TEXTURE_PALETTE_EXT: + if (ctx->Texture.SharedPalette == state) + return; + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + ctx->Texture.SharedPalette = state; + break; + case GL_STENCIL_TEST: + if (ctx->Stencil.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_STENCIL); + ctx->Stencil.Enabled = state; + break; + case GL_TEXTURE_1D: + if (!enable_texture(ctx, state, TEXTURE_1D_BIT)) { + return; + } + break; + case GL_TEXTURE_2D: + if (!enable_texture(ctx, state, TEXTURE_2D_BIT)) { + return; + } + break; + case GL_TEXTURE_3D: + if (!enable_texture(ctx, state, TEXTURE_3D_BIT)) { + return; + } + break; + case GL_TEXTURE_GEN_S: + case GL_TEXTURE_GEN_T: + case GL_TEXTURE_GEN_R: + case GL_TEXTURE_GEN_Q: + { + struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + GLbitfield coordBit = S_BIT << (cap - GL_TEXTURE_GEN_S); + GLbitfield newenabled = texUnit->TexGenEnabled & ~coordBit; + if (state) + newenabled |= coordBit; + if (texUnit->TexGenEnabled == newenabled) + return; + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + texUnit->TexGenEnabled = newenabled; + } + } + break; + +#if FEATURE_ES1 + case GL_TEXTURE_GEN_STR_OES: + /* disable S, T, and R at the same time */ + { + struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + GLuint newenabled = + texUnit->TexGenEnabled & ~STR_BITS; + if (state) + newenabled |= STR_BITS; + if (texUnit->TexGenEnabled == newenabled) + return; + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + texUnit->TexGenEnabled = newenabled; + } + } + break; +#endif + + /* + * CLIENT STATE!!! + */ + case GL_VERTEX_ARRAY: + case GL_NORMAL_ARRAY: + case GL_COLOR_ARRAY: + case GL_INDEX_ARRAY: + case GL_TEXTURE_COORD_ARRAY: + case GL_EDGE_FLAG_ARRAY: + case GL_FOG_COORDINATE_ARRAY_EXT: + case GL_SECONDARY_COLOR_ARRAY_EXT: + case GL_POINT_SIZE_ARRAY_OES: + client_state( ctx, cap, state ); + return; + + /* GL_ARB_texture_cube_map */ + case GL_TEXTURE_CUBE_MAP_ARB: + CHECK_EXTENSION(ARB_texture_cube_map, cap); + if (!enable_texture(ctx, state, TEXTURE_CUBE_BIT)) { + return; + } + break; + + /* GL_EXT_secondary_color */ + case GL_COLOR_SUM_EXT: + CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program, cap); + if (ctx->Fog.ColorSumEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_FOG); + ctx->Fog.ColorSumEnabled = state; + break; + + /* GL_ARB_multisample */ + case GL_MULTISAMPLE_ARB: + if (ctx->Multisample.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.Enabled = state; + break; + case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: + if (ctx->Multisample.SampleAlphaToCoverage == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.SampleAlphaToCoverage = state; + break; + case GL_SAMPLE_ALPHA_TO_ONE_ARB: + if (ctx->Multisample.SampleAlphaToOne == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.SampleAlphaToOne = state; + break; + case GL_SAMPLE_COVERAGE_ARB: + if (ctx->Multisample.SampleCoverage == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.SampleCoverage = state; + break; + case GL_SAMPLE_COVERAGE_INVERT_ARB: + if (ctx->Multisample.SampleCoverageInvert == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.SampleCoverageInvert = state; + break; + + /* GL_IBM_rasterpos_clip */ + case GL_RASTER_POSITION_UNCLIPPED_IBM: + CHECK_EXTENSION(IBM_rasterpos_clip, cap); + if (ctx->Transform.RasterPositionUnclipped == state) + return; + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Transform.RasterPositionUnclipped = state; + break; + + /* GL_NV_point_sprite */ + case GL_POINT_SPRITE_NV: + CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite, cap); + if (ctx->Point.PointSprite == state) + return; + FLUSH_VERTICES(ctx, _NEW_POINT); + ctx->Point.PointSprite = state; + break; + +#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program + case GL_VERTEX_PROGRAM_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); + if (ctx->VertexProgram.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->VertexProgram.Enabled = state; + break; + case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); + if (ctx->VertexProgram.PointSizeEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->VertexProgram.PointSizeEnabled = state; + break; + case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); + if (ctx->VertexProgram.TwoSideEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->VertexProgram.TwoSideEnabled = state; + break; +#endif +#if FEATURE_NV_vertex_program + case GL_MAP1_VERTEX_ATTRIB0_4_NV: + case GL_MAP1_VERTEX_ATTRIB1_4_NV: + case GL_MAP1_VERTEX_ATTRIB2_4_NV: + case GL_MAP1_VERTEX_ATTRIB3_4_NV: + case GL_MAP1_VERTEX_ATTRIB4_4_NV: + case GL_MAP1_VERTEX_ATTRIB5_4_NV: + case GL_MAP1_VERTEX_ATTRIB6_4_NV: + case GL_MAP1_VERTEX_ATTRIB7_4_NV: + case GL_MAP1_VERTEX_ATTRIB8_4_NV: + case GL_MAP1_VERTEX_ATTRIB9_4_NV: + case GL_MAP1_VERTEX_ATTRIB10_4_NV: + case GL_MAP1_VERTEX_ATTRIB11_4_NV: + case GL_MAP1_VERTEX_ATTRIB12_4_NV: + case GL_MAP1_VERTEX_ATTRIB13_4_NV: + case GL_MAP1_VERTEX_ATTRIB14_4_NV: + case GL_MAP1_VERTEX_ATTRIB15_4_NV: + CHECK_EXTENSION(NV_vertex_program, cap); + { + const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV); + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Attrib[map] = state; + } + break; + case GL_MAP2_VERTEX_ATTRIB0_4_NV: + case GL_MAP2_VERTEX_ATTRIB1_4_NV: + case GL_MAP2_VERTEX_ATTRIB2_4_NV: + case GL_MAP2_VERTEX_ATTRIB3_4_NV: + case GL_MAP2_VERTEX_ATTRIB4_4_NV: + case GL_MAP2_VERTEX_ATTRIB5_4_NV: + case GL_MAP2_VERTEX_ATTRIB6_4_NV: + case GL_MAP2_VERTEX_ATTRIB7_4_NV: + case GL_MAP2_VERTEX_ATTRIB8_4_NV: + case GL_MAP2_VERTEX_ATTRIB9_4_NV: + case GL_MAP2_VERTEX_ATTRIB10_4_NV: + case GL_MAP2_VERTEX_ATTRIB11_4_NV: + case GL_MAP2_VERTEX_ATTRIB12_4_NV: + case GL_MAP2_VERTEX_ATTRIB13_4_NV: + case GL_MAP2_VERTEX_ATTRIB14_4_NV: + case GL_MAP2_VERTEX_ATTRIB15_4_NV: + CHECK_EXTENSION(NV_vertex_program, cap); + { + const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV); + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Attrib[map] = state; + } + break; +#endif /* FEATURE_NV_vertex_program */ + +#if FEATURE_NV_fragment_program + case GL_FRAGMENT_PROGRAM_NV: + CHECK_EXTENSION(NV_fragment_program, cap); + if (ctx->FragmentProgram.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->FragmentProgram.Enabled = state; + break; +#endif /* FEATURE_NV_fragment_program */ + + /* GL_NV_texture_rectangle */ + case GL_TEXTURE_RECTANGLE_NV: + CHECK_EXTENSION(NV_texture_rectangle, cap); + if (!enable_texture(ctx, state, TEXTURE_RECT_BIT)) { + return; + } + break; + + /* GL_EXT_stencil_two_side */ + case GL_STENCIL_TEST_TWO_SIDE_EXT: + CHECK_EXTENSION(EXT_stencil_two_side, cap); + if (ctx->Stencil.TestTwoSide == state) + return; + FLUSH_VERTICES(ctx, _NEW_STENCIL); + ctx->Stencil.TestTwoSide = state; + if (state) { + ctx->Stencil._BackFace = 2; + ctx->_TriangleCaps |= DD_TRI_TWOSTENCIL; + } else { + ctx->Stencil._BackFace = 1; + ctx->_TriangleCaps &= ~DD_TRI_TWOSTENCIL; + } + break; + +#if FEATURE_ARB_fragment_program + case GL_FRAGMENT_PROGRAM_ARB: + CHECK_EXTENSION(ARB_fragment_program, cap); + if (ctx->FragmentProgram.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->FragmentProgram.Enabled = state; + break; +#endif /* FEATURE_ARB_fragment_program */ + + /* GL_EXT_depth_bounds_test */ + case GL_DEPTH_BOUNDS_TEST_EXT: + CHECK_EXTENSION(EXT_depth_bounds_test, cap); + if (ctx->Depth.BoundsTest == state) + return; + FLUSH_VERTICES(ctx, _NEW_DEPTH); + ctx->Depth.BoundsTest = state; + break; + + case GL_DEPTH_CLAMP: + if (ctx->Transform.DepthClamp == state) + return; + CHECK_EXTENSION(ARB_depth_clamp, cap); + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Transform.DepthClamp = state; + break; + +#if FEATURE_ATI_fragment_shader + case GL_FRAGMENT_SHADER_ATI: + CHECK_EXTENSION(ATI_fragment_shader, cap); + if (ctx->ATIFragmentShader.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->ATIFragmentShader.Enabled = state; + break; +#endif + + /* GL_MESA_texture_array */ + case GL_TEXTURE_1D_ARRAY_EXT: + CHECK_EXTENSION(MESA_texture_array, cap); + if (!enable_texture(ctx, state, TEXTURE_1D_ARRAY_BIT)) { + return; + } + break; + + case GL_TEXTURE_2D_ARRAY_EXT: + CHECK_EXTENSION(MESA_texture_array, cap); + if (!enable_texture(ctx, state, TEXTURE_2D_ARRAY_BIT)) { + return; + } + break; + + case GL_TEXTURE_CUBE_MAP_SEAMLESS: + CHECK_EXTENSION(ARB_seamless_cube_map, cap); + if (ctx->Texture.CubeMapSeamless != state) { + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + ctx->Texture.CubeMapSeamless = state; + } + break; + +#if FEATURE_EXT_transform_feedback + case GL_RASTERIZER_DISCARD: + CHECK_EXTENSION(EXT_transform_feedback, cap); + if (ctx->TransformFeedback.RasterDiscard != state) { + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->TransformFeedback.RasterDiscard = state; + } + break; +#endif + + /* GL 3.1 primitive restart. Note: this enum is different from + * GL_PRIMITIVE_RESTART_NV (which is client state). + */ + case GL_PRIMITIVE_RESTART: + if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { + goto invalid_enum_error; + } + if (ctx->Array.PrimitiveRestart != state) { + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Array.PrimitiveRestart = state; + } + break; + + /* GL3.0 - GL_framebuffer_sRGB */ + case GL_FRAMEBUFFER_SRGB_EXT: + CHECK_EXTENSION(EXT_framebuffer_sRGB, cap); + FLUSH_VERTICES(ctx, _NEW_BUFFERS); + ctx->Color.sRGBEnabled = state; + break; + + default: + goto invalid_enum_error; + } + + if (ctx->Driver.Enable) { + ctx->Driver.Enable( ctx, cap, state ); + } + + return; + +invalid_enum_error: + _mesa_error(ctx, GL_INVALID_ENUM, "gl%s(0x%x)", + state ? "Enable" : "Disable", cap); +} + + +/** + * Enable GL capability. Called by glEnable() + * \param cap state to enable. + */ +void GLAPIENTRY +_mesa_Enable( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + + _mesa_set_enable( ctx, cap, GL_TRUE ); +} + + +/** + * Disable GL capability. Called by glDisable() + * \param cap state to disable. + */ +void GLAPIENTRY +_mesa_Disable( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + + _mesa_set_enable( ctx, cap, GL_FALSE ); +} + + + +/** + * Enable/disable an indexed state var. + */ +void +_mesa_set_enablei(struct gl_context *ctx, GLenum cap, + GLuint index, GLboolean state) +{ + ASSERT(state == 0 || state == 1); + switch (cap) { + case GL_BLEND: + if (!ctx->Extensions.EXT_draw_buffers2) { + goto invalid_enum_error; + } + if (index >= ctx->Const.MaxDrawBuffers) { + _mesa_error(ctx, GL_INVALID_VALUE, "%s(index=%u)", + state ? "glEnableIndexed" : "glDisableIndexed", index); + return; + } + if (((ctx->Color.BlendEnabled >> index) & 1) != state) { + FLUSH_VERTICES(ctx, _NEW_COLOR); + if (state) + ctx->Color.BlendEnabled |= (1 << index); + else + ctx->Color.BlendEnabled &= ~(1 << index); + } + break; + default: + goto invalid_enum_error; + } + return; + +invalid_enum_error: + _mesa_error(ctx, GL_INVALID_ENUM, "%s(cap=%s)", + state ? "glEnablei" : "glDisablei", + _mesa_lookup_enum_by_nr(cap)); +} + + +void GLAPIENTRY +_mesa_DisableIndexed( GLenum cap, GLuint index ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + _mesa_set_enablei(ctx, cap, index, GL_FALSE); +} + + +void GLAPIENTRY +_mesa_EnableIndexed( GLenum cap, GLuint index ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + _mesa_set_enablei(ctx, cap, index, GL_TRUE); +} + + +GLboolean GLAPIENTRY +_mesa_IsEnabledIndexed( GLenum cap, GLuint index ) +{ + GET_CURRENT_CONTEXT(ctx); + switch (cap) { + case GL_BLEND: + if (index >= ctx->Const.MaxDrawBuffers) { + _mesa_error(ctx, GL_INVALID_VALUE, "glIsEnabledIndexed(index=%u)", + index); + return GL_FALSE; + } + return (ctx->Color.BlendEnabled >> index) & 1; + default: + _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabledIndexed(cap=%s)", + _mesa_lookup_enum_by_nr(cap)); + return GL_FALSE; + } +} + + + + +#undef CHECK_EXTENSION +#define CHECK_EXTENSION(EXTNAME) \ + if (!ctx->Extensions.EXTNAME) { \ + goto invalid_enum_error; \ + } + +#undef CHECK_EXTENSION2 +#define CHECK_EXTENSION2(EXT1, EXT2) \ + if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \ + goto invalid_enum_error; \ + } + + +/** + * Helper function to determine whether a texture target is enabled. + */ +static GLboolean +is_texture_enabled(struct gl_context *ctx, GLbitfield bit) +{ + const struct gl_texture_unit *const texUnit = + &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; + return (texUnit->Enabled & bit) ? GL_TRUE : GL_FALSE; +} + + +/** + * Return simple enable/disable state. + * + * \param cap state variable to query. + * + * Returns the state of the specified capability from the current GL context. + * For the capabilities associated with extensions verifies that those + * extensions are effectively present before reporting. + */ +GLboolean GLAPIENTRY +_mesa_IsEnabled( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + switch (cap) { + case GL_ALPHA_TEST: + return ctx->Color.AlphaEnabled; + case GL_AUTO_NORMAL: + return ctx->Eval.AutoNormal; + case GL_BLEND: + return ctx->Color.BlendEnabled & 1; /* return state for buffer[0] */ + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + return (ctx->Transform.ClipPlanesEnabled >> (cap - GL_CLIP_PLANE0)) & 1; + case GL_COLOR_MATERIAL: + return ctx->Light.ColorMaterialEnabled; + case GL_CULL_FACE: + return ctx->Polygon.CullFlag; + case GL_DEPTH_TEST: + return ctx->Depth.Test; + case GL_DITHER: + return ctx->Color.DitherFlag; + case GL_FOG: + return ctx->Fog.Enabled; + case GL_LIGHTING: + return ctx->Light.Enabled; + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + return ctx->Light.Light[cap-GL_LIGHT0].Enabled; + case GL_LINE_SMOOTH: + return ctx->Line.SmoothFlag; + case GL_LINE_STIPPLE: + return ctx->Line.StippleFlag; + case GL_INDEX_LOGIC_OP: + return ctx->Color.IndexLogicOpEnabled; + case GL_COLOR_LOGIC_OP: + return ctx->Color.ColorLogicOpEnabled; + case GL_MAP1_COLOR_4: + return ctx->Eval.Map1Color4; + case GL_MAP1_INDEX: + return ctx->Eval.Map1Index; + case GL_MAP1_NORMAL: + return ctx->Eval.Map1Normal; + case GL_MAP1_TEXTURE_COORD_1: + return ctx->Eval.Map1TextureCoord1; + case GL_MAP1_TEXTURE_COORD_2: + return ctx->Eval.Map1TextureCoord2; + case GL_MAP1_TEXTURE_COORD_3: + return ctx->Eval.Map1TextureCoord3; + case GL_MAP1_TEXTURE_COORD_4: + return ctx->Eval.Map1TextureCoord4; + case GL_MAP1_VERTEX_3: + return ctx->Eval.Map1Vertex3; + case GL_MAP1_VERTEX_4: + return ctx->Eval.Map1Vertex4; + case GL_MAP2_COLOR_4: + return ctx->Eval.Map2Color4; + case GL_MAP2_INDEX: + return ctx->Eval.Map2Index; + case GL_MAP2_NORMAL: + return ctx->Eval.Map2Normal; + case GL_MAP2_TEXTURE_COORD_1: + return ctx->Eval.Map2TextureCoord1; + case GL_MAP2_TEXTURE_COORD_2: + return ctx->Eval.Map2TextureCoord2; + case GL_MAP2_TEXTURE_COORD_3: + return ctx->Eval.Map2TextureCoord3; + case GL_MAP2_TEXTURE_COORD_4: + return ctx->Eval.Map2TextureCoord4; + case GL_MAP2_VERTEX_3: + return ctx->Eval.Map2Vertex3; + case GL_MAP2_VERTEX_4: + return ctx->Eval.Map2Vertex4; + case GL_NORMALIZE: + return ctx->Transform.Normalize; + case GL_POINT_SMOOTH: + return ctx->Point.SmoothFlag; + case GL_POLYGON_SMOOTH: + return ctx->Polygon.SmoothFlag; + case GL_POLYGON_STIPPLE: + return ctx->Polygon.StippleFlag; + case GL_POLYGON_OFFSET_POINT: + return ctx->Polygon.OffsetPoint; + case GL_POLYGON_OFFSET_LINE: + return ctx->Polygon.OffsetLine; + case GL_POLYGON_OFFSET_FILL: + /*case GL_POLYGON_OFFSET_EXT:*/ + return ctx->Polygon.OffsetFill; + case GL_RESCALE_NORMAL_EXT: + return ctx->Transform.RescaleNormals; + case GL_SCISSOR_TEST: + return ctx->Scissor.Enabled; + case GL_SHARED_TEXTURE_PALETTE_EXT: + return ctx->Texture.SharedPalette; + case GL_STENCIL_TEST: + return ctx->Stencil.Enabled; + case GL_TEXTURE_1D: + return is_texture_enabled(ctx, TEXTURE_1D_BIT); + case GL_TEXTURE_2D: + return is_texture_enabled(ctx, TEXTURE_2D_BIT); + case GL_TEXTURE_3D: + return is_texture_enabled(ctx, TEXTURE_3D_BIT); + case GL_TEXTURE_GEN_S: + case GL_TEXTURE_GEN_T: + case GL_TEXTURE_GEN_R: + case GL_TEXTURE_GEN_Q: + { + const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + GLbitfield coordBit = S_BIT << (cap - GL_TEXTURE_GEN_S); + return (texUnit->TexGenEnabled & coordBit) ? GL_TRUE : GL_FALSE; + } + } + return GL_FALSE; +#if FEATURE_ES1 + case GL_TEXTURE_GEN_STR_OES: + { + const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + return (texUnit->TexGenEnabled & STR_BITS) == STR_BITS + ? GL_TRUE : GL_FALSE; + } + } +#endif + + /* + * CLIENT STATE!!! + */ + case GL_VERTEX_ARRAY: + return (ctx->Array.ArrayObj->Vertex.Enabled != 0); + case GL_NORMAL_ARRAY: + return (ctx->Array.ArrayObj->Normal.Enabled != 0); + case GL_COLOR_ARRAY: + return (ctx->Array.ArrayObj->Color.Enabled != 0); + case GL_INDEX_ARRAY: + return (ctx->Array.ArrayObj->Index.Enabled != 0); + case GL_TEXTURE_COORD_ARRAY: + return (ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture] + .Enabled != 0); + case GL_EDGE_FLAG_ARRAY: + return (ctx->Array.ArrayObj->EdgeFlag.Enabled != 0); + case GL_FOG_COORDINATE_ARRAY_EXT: + CHECK_EXTENSION(EXT_fog_coord); + return (ctx->Array.ArrayObj->FogCoord.Enabled != 0); + case GL_SECONDARY_COLOR_ARRAY_EXT: + CHECK_EXTENSION(EXT_secondary_color); + return (ctx->Array.ArrayObj->SecondaryColor.Enabled != 0); +#if FEATURE_point_size_array + case GL_POINT_SIZE_ARRAY_OES: + return (ctx->Array.ArrayObj->PointSize.Enabled != 0); +#endif + + /* GL_ARB_texture_cube_map */ + case GL_TEXTURE_CUBE_MAP_ARB: + CHECK_EXTENSION(ARB_texture_cube_map); + return is_texture_enabled(ctx, TEXTURE_CUBE_BIT); + + /* GL_EXT_secondary_color */ + case GL_COLOR_SUM_EXT: + CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program); + return ctx->Fog.ColorSumEnabled; + + /* GL_ARB_multisample */ + case GL_MULTISAMPLE_ARB: + return ctx->Multisample.Enabled; + case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: + return ctx->Multisample.SampleAlphaToCoverage; + case GL_SAMPLE_ALPHA_TO_ONE_ARB: + return ctx->Multisample.SampleAlphaToOne; + case GL_SAMPLE_COVERAGE_ARB: + return ctx->Multisample.SampleCoverage; + case GL_SAMPLE_COVERAGE_INVERT_ARB: + return ctx->Multisample.SampleCoverageInvert; + + /* GL_IBM_rasterpos_clip */ + case GL_RASTER_POSITION_UNCLIPPED_IBM: + CHECK_EXTENSION(IBM_rasterpos_clip); + return ctx->Transform.RasterPositionUnclipped; + + /* GL_NV_point_sprite */ + case GL_POINT_SPRITE_NV: + CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite) + return ctx->Point.PointSprite; + +#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program + case GL_VERTEX_PROGRAM_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); + return ctx->VertexProgram.Enabled; + case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); + return ctx->VertexProgram.PointSizeEnabled; + case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); + return ctx->VertexProgram.TwoSideEnabled; +#endif +#if FEATURE_NV_vertex_program + case GL_VERTEX_ATTRIB_ARRAY0_NV: + case GL_VERTEX_ATTRIB_ARRAY1_NV: + case GL_VERTEX_ATTRIB_ARRAY2_NV: + case GL_VERTEX_ATTRIB_ARRAY3_NV: + case GL_VERTEX_ATTRIB_ARRAY4_NV: + case GL_VERTEX_ATTRIB_ARRAY5_NV: + case GL_VERTEX_ATTRIB_ARRAY6_NV: + case GL_VERTEX_ATTRIB_ARRAY7_NV: + case GL_VERTEX_ATTRIB_ARRAY8_NV: + case GL_VERTEX_ATTRIB_ARRAY9_NV: + case GL_VERTEX_ATTRIB_ARRAY10_NV: + case GL_VERTEX_ATTRIB_ARRAY11_NV: + case GL_VERTEX_ATTRIB_ARRAY12_NV: + case GL_VERTEX_ATTRIB_ARRAY13_NV: + case GL_VERTEX_ATTRIB_ARRAY14_NV: + case GL_VERTEX_ATTRIB_ARRAY15_NV: + CHECK_EXTENSION(NV_vertex_program); + { + GLint n = (GLint) cap - GL_VERTEX_ATTRIB_ARRAY0_NV; + ASSERT(n < Elements(ctx->Array.ArrayObj->VertexAttrib)); + return (ctx->Array.ArrayObj->VertexAttrib[n].Enabled != 0); + } + case GL_MAP1_VERTEX_ATTRIB0_4_NV: + case GL_MAP1_VERTEX_ATTRIB1_4_NV: + case GL_MAP1_VERTEX_ATTRIB2_4_NV: + case GL_MAP1_VERTEX_ATTRIB3_4_NV: + case GL_MAP1_VERTEX_ATTRIB4_4_NV: + case GL_MAP1_VERTEX_ATTRIB5_4_NV: + case GL_MAP1_VERTEX_ATTRIB6_4_NV: + case GL_MAP1_VERTEX_ATTRIB7_4_NV: + case GL_MAP1_VERTEX_ATTRIB8_4_NV: + case GL_MAP1_VERTEX_ATTRIB9_4_NV: + case GL_MAP1_VERTEX_ATTRIB10_4_NV: + case GL_MAP1_VERTEX_ATTRIB11_4_NV: + case GL_MAP1_VERTEX_ATTRIB12_4_NV: + case GL_MAP1_VERTEX_ATTRIB13_4_NV: + case GL_MAP1_VERTEX_ATTRIB14_4_NV: + case GL_MAP1_VERTEX_ATTRIB15_4_NV: + CHECK_EXTENSION(NV_vertex_program); + { + const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV); + return ctx->Eval.Map1Attrib[map]; + } + case GL_MAP2_VERTEX_ATTRIB0_4_NV: + case GL_MAP2_VERTEX_ATTRIB1_4_NV: + case GL_MAP2_VERTEX_ATTRIB2_4_NV: + case GL_MAP2_VERTEX_ATTRIB3_4_NV: + case GL_MAP2_VERTEX_ATTRIB4_4_NV: + case GL_MAP2_VERTEX_ATTRIB5_4_NV: + case GL_MAP2_VERTEX_ATTRIB6_4_NV: + case GL_MAP2_VERTEX_ATTRIB7_4_NV: + case GL_MAP2_VERTEX_ATTRIB8_4_NV: + case GL_MAP2_VERTEX_ATTRIB9_4_NV: + case GL_MAP2_VERTEX_ATTRIB10_4_NV: + case GL_MAP2_VERTEX_ATTRIB11_4_NV: + case GL_MAP2_VERTEX_ATTRIB12_4_NV: + case GL_MAP2_VERTEX_ATTRIB13_4_NV: + case GL_MAP2_VERTEX_ATTRIB14_4_NV: + case GL_MAP2_VERTEX_ATTRIB15_4_NV: + CHECK_EXTENSION(NV_vertex_program); + { + const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV); + return ctx->Eval.Map2Attrib[map]; + } +#endif /* FEATURE_NV_vertex_program */ + +#if FEATURE_NV_fragment_program + case GL_FRAGMENT_PROGRAM_NV: + CHECK_EXTENSION(NV_fragment_program); + return ctx->FragmentProgram.Enabled; +#endif /* FEATURE_NV_fragment_program */ + + /* GL_NV_texture_rectangle */ + case GL_TEXTURE_RECTANGLE_NV: + CHECK_EXTENSION(NV_texture_rectangle); + return is_texture_enabled(ctx, TEXTURE_RECT_BIT); + + /* GL_EXT_stencil_two_side */ + case GL_STENCIL_TEST_TWO_SIDE_EXT: + CHECK_EXTENSION(EXT_stencil_two_side); + return ctx->Stencil.TestTwoSide; + +#if FEATURE_ARB_fragment_program + case GL_FRAGMENT_PROGRAM_ARB: + return ctx->FragmentProgram.Enabled; +#endif /* FEATURE_ARB_fragment_program */ + + /* GL_EXT_depth_bounds_test */ + case GL_DEPTH_BOUNDS_TEST_EXT: + CHECK_EXTENSION(EXT_depth_bounds_test); + return ctx->Depth.BoundsTest; + + /* GL_ARB_depth_clamp */ + case GL_DEPTH_CLAMP: + CHECK_EXTENSION(ARB_depth_clamp); + return ctx->Transform.DepthClamp; + +#if FEATURE_ATI_fragment_shader + case GL_FRAGMENT_SHADER_ATI: + CHECK_EXTENSION(ATI_fragment_shader); + return ctx->ATIFragmentShader.Enabled; +#endif /* FEATURE_ATI_fragment_shader */ + + case GL_TEXTURE_CUBE_MAP_SEAMLESS: + CHECK_EXTENSION(ARB_seamless_cube_map); + return ctx->Texture.CubeMapSeamless; + +#if FEATURE_EXT_transform_feedback + case GL_RASTERIZER_DISCARD: + CHECK_EXTENSION(EXT_transform_feedback); + return ctx->TransformFeedback.RasterDiscard; +#endif + + /* GL_NV_primitive_restart */ + case GL_PRIMITIVE_RESTART_NV: + if (!ctx->Extensions.NV_primitive_restart) { + goto invalid_enum_error; + } + return ctx->Array.PrimitiveRestart; + + /* GL 3.1 primitive restart */ + case GL_PRIMITIVE_RESTART: + if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { + goto invalid_enum_error; + } + return ctx->Array.PrimitiveRestart; + + /* GL3.0 - GL_framebuffer_sRGB */ + case GL_FRAMEBUFFER_SRGB_EXT: + CHECK_EXTENSION(EXT_framebuffer_sRGB); + return ctx->Color.sRGBEnabled; + + default: + goto invalid_enum_error; + } + + return GL_FALSE; + +invalid_enum_error: + _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabled(0x%x)", (int) cap); + return GL_FALSE; +} diff --git a/mesalib/src/mesa/main/extensions.c b/mesalib/src/mesa/main/extensions.c index d31477731..1062cde9e 100644 --- a/mesalib/src/mesa/main/extensions.c +++ b/mesalib/src/mesa/main/extensions.c @@ -1,1000 +1,1002 @@ -/* - * Mesa 3-D graphics library - * Version: 7.6 - * - * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. - * Copyright (C) 2009 VMware, Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -/** - * \file - * \brief Extension handling - */ - - -#include "glheader.h" -#include "imports.h" -#include "context.h" -#include "extensions.h" -#include "mfeatures.h" -#include "mtypes.h" - -enum { - DISABLE = 0, - GL = 1 << API_OPENGL, - ES1 = 1 << API_OPENGLES, - ES2 = 1 << API_OPENGLES2, -}; - -/** - * \brief An element of the \c extension_table. - */ -struct extension { - /** Name of extension, such as "GL_ARB_depth_clamp". */ - const char *name; - - /** Offset (in bytes) of the corresponding member in struct gl_extensions. */ - size_t offset; - - /** Set of API's in which the extension exists, as a bitset. */ - uint8_t api_set; - - /** Year the extension was proposed or approved. Used to sort the - * extension string chronologically. */ - uint16_t year; -}; - - -/** - * Given a member \c x of struct gl_extensions, return offset of - * \c x in bytes. - */ -#define o(x) offsetof(struct gl_extensions, x) - - -/** - * \brief Table of supported OpenGL extensions for all API's. - * - * Note: The GL_MESAX_* extensions are placeholders for future ARB extensions. - */ -static const struct extension extension_table[] = { - /* ARB Extensions */ - { "GL_ARB_ES2_compatibility", o(ARB_ES2_compatibility), GL, 2009 }, - { "GL_ARB_blend_func_extended", o(ARB_blend_func_extended), GL, 2009 }, - { "GL_ARB_color_buffer_float", o(ARB_color_buffer_float), GL, 2004 }, - { "GL_ARB_copy_buffer", o(ARB_copy_buffer), GL, 2008 }, - { "GL_ARB_depth_buffer_float", o(ARB_depth_buffer_float), GL, 2008 }, - { "GL_ARB_depth_clamp", o(ARB_depth_clamp), GL, 2003 }, - { "GL_ARB_depth_texture", o(ARB_depth_texture), GL, 2001 }, - { "GL_ARB_draw_buffers", o(ARB_draw_buffers), GL, 2002 }, - { "GL_ARB_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 }, - { "GL_ARB_draw_elements_base_vertex", o(ARB_draw_elements_base_vertex), GL, 2009 }, - { "GL_ARB_draw_instanced", o(ARB_draw_instanced), GL, 2008 }, - { "GL_ARB_explicit_attrib_location", o(ARB_explicit_attrib_location), GL, 2009 }, - { "GL_ARB_fragment_coord_conventions", o(ARB_fragment_coord_conventions), GL, 2009 }, - { "GL_ARB_fragment_program", o(ARB_fragment_program), GL, 2002 }, - { "GL_ARB_fragment_program_shadow", o(ARB_fragment_program_shadow), GL, 2003 }, - { "GL_ARB_fragment_shader", o(ARB_fragment_shader), GL, 2002 }, - { "GL_ARB_framebuffer_object", o(ARB_framebuffer_object), GL, 2005 }, - { "GL_ARB_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 }, - { "GL_ARB_half_float_pixel", o(ARB_half_float_pixel), GL, 2003 }, - { "GL_ARB_half_float_vertex", o(ARB_half_float_vertex), GL, 2008 }, - { "GL_ARB_instanced_arrays", o(ARB_instanced_arrays), GL, 2008 }, - { "GL_ARB_map_buffer_range", o(ARB_map_buffer_range), GL, 2008 }, - { "GL_ARB_multisample", o(ARB_multisample), GL, 1994 }, - { "GL_ARB_multitexture", o(ARB_multitexture), GL, 1998 }, - { "GL_ARB_occlusion_query2", o(ARB_occlusion_query2), GL, 2003 }, - { "GL_ARB_occlusion_query", o(ARB_occlusion_query), GL, 2001 }, - { "GL_ARB_pixel_buffer_object", o(EXT_pixel_buffer_object), GL, 2004 }, - { "GL_ARB_point_parameters", o(EXT_point_parameters), GL, 1997 }, - { "GL_ARB_point_sprite", o(ARB_point_sprite), GL, 2003 }, - { "GL_ARB_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 }, - { "GL_ARB_robustness", o(dummy_true), GL, 2010 }, - { "GL_ARB_sampler_objects", o(ARB_sampler_objects), GL, 2009 }, - { "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL, 2009 }, - { "GL_ARB_shader_objects", o(ARB_shader_objects), GL, 2002 }, - { "GL_ARB_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 }, - { "GL_ARB_shading_language_100", o(ARB_shading_language_100), GL, 2003 }, - { "GL_ARB_shadow_ambient", o(ARB_shadow_ambient), GL, 2001 }, - { "GL_ARB_shadow", o(ARB_shadow), GL, 2001 }, - { "GL_ARB_sync", o(ARB_sync), GL, 2003 }, - { "GL_ARB_texture_border_clamp", o(ARB_texture_border_clamp), GL, 2000 }, - { "GL_ARB_texture_buffer_object", o(ARB_texture_buffer_object), GL, 2008 }, - { "GL_ARB_texture_compression", o(ARB_texture_compression), GL, 2000 }, - { "GL_ARB_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL, 2004 }, - { "GL_ARB_texture_cube_map", o(ARB_texture_cube_map), GL, 1999 }, - { "GL_ARB_texture_env_add", o(EXT_texture_env_add), GL, 1999 }, - { "GL_ARB_texture_env_combine", o(ARB_texture_env_combine), GL, 2001 }, - { "GL_ARB_texture_env_crossbar", o(ARB_texture_env_crossbar), GL, 2001 }, - { "GL_ARB_texture_env_dot3", o(ARB_texture_env_dot3), GL, 2001 }, - { "GL_ARB_texture_float", o(ARB_texture_float), GL, 2004 }, - { "GL_ARB_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL, 2001 }, - { "GL_ARB_texture_multisample", o(ARB_texture_multisample), GL, 2009 }, - { "GL_ARB_texture_non_power_of_two", o(ARB_texture_non_power_of_two), GL, 2003 }, - { "GL_ARB_texture_rectangle", o(NV_texture_rectangle), GL, 2004 }, - { "GL_ARB_texture_rgb10_a2ui", o(ARB_texture_rgb10_a2ui), GL, 2009 }, - { "GL_ARB_texture_rg", o(ARB_texture_rg), GL, 2008 }, - { "GL_ARB_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 }, - { "GL_ARB_transform_feedback2", o(ARB_transform_feedback2), GL, 2010 }, - { "GL_ARB_transpose_matrix", o(ARB_transpose_matrix), GL, 1999 }, - { "GL_ARB_uniform_buffer_object", o(ARB_uniform_buffer_object), GL, 2002 }, - { "GL_ARB_vertex_array_bgra", o(EXT_vertex_array_bgra), GL, 2008 }, - { "GL_ARB_vertex_array_object", o(ARB_vertex_array_object), GL, 2006 }, - { "GL_ARB_vertex_buffer_object", o(ARB_vertex_buffer_object), GL, 2003 }, - { "GL_ARB_vertex_program", o(ARB_vertex_program), GL, 2002 }, - { "GL_ARB_vertex_shader", o(ARB_vertex_shader), GL, 2002 }, - { "GL_ARB_vertex_type_2_10_10_10_rev", o(ARB_vertex_type_2_10_10_10_rev), GL, 2009 }, - { "GL_ARB_window_pos", o(ARB_window_pos), GL, 2001 }, - - /* EXT extensions */ - { "GL_EXT_abgr", o(EXT_abgr), GL, 1995 }, - { "GL_EXT_bgra", o(EXT_bgra), GL, 1995 }, - { "GL_EXT_blend_color", o(EXT_blend_color), GL, 1995 }, - { "GL_EXT_blend_equation_separate", o(EXT_blend_equation_separate), GL, 2003 }, - { "GL_EXT_blend_func_separate", o(EXT_blend_func_separate), GL, 1999 }, - { "GL_EXT_blend_logic_op", o(EXT_blend_logic_op), GL, 1995 }, - { "GL_EXT_blend_minmax", o(EXT_blend_minmax), GL | ES1 | ES2, 1995 }, - { "GL_EXT_blend_subtract", o(EXT_blend_subtract), GL, 1995 }, - { "GL_EXT_clip_volume_hint", o(EXT_clip_volume_hint), GL, 1996 }, - { "GL_EXT_compiled_vertex_array", o(EXT_compiled_vertex_array), GL, 1996 }, - { "GL_EXT_copy_texture", o(EXT_copy_texture), GL, 1995 }, - { "GL_EXT_depth_bounds_test", o(EXT_depth_bounds_test), GL, 2002 }, - { "GL_EXT_draw_buffers2", o(EXT_draw_buffers2), GL, 2006 }, - { "GL_EXT_draw_instanced", o(ARB_draw_instanced), GL, 2006 }, - { "GL_EXT_draw_range_elements", o(EXT_draw_range_elements), GL, 1997 }, - { "GL_EXT_fog_coord", o(EXT_fog_coord), GL, 1999 }, - { "GL_EXT_framebuffer_blit", o(EXT_framebuffer_blit), GL, 2005 }, - { "GL_EXT_framebuffer_multisample", o(EXT_framebuffer_multisample), GL, 2005 }, - { "GL_EXT_framebuffer_object", o(EXT_framebuffer_object), GL, 2000 }, - { "GL_EXT_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 }, - { "GL_EXT_gpu_program_parameters", o(EXT_gpu_program_parameters), GL, 2006 }, - { "GL_EXT_gpu_shader4", o(EXT_gpu_shader4), GL, 2006 }, - { "GL_EXT_multi_draw_arrays", o(EXT_multi_draw_arrays), GL | ES1 | ES2, 1999 }, - { "GL_EXT_packed_depth_stencil", o(EXT_packed_depth_stencil), GL, 2005 }, - { "GL_EXT_packed_float", o(EXT_packed_float), GL, 2004 }, - { "GL_EXT_packed_pixels", o(EXT_packed_pixels), GL, 1997 }, - { "GL_EXT_paletted_texture", o(EXT_paletted_texture), GL, 1995 }, - { "GL_EXT_pixel_buffer_object", o(EXT_pixel_buffer_object), GL, 2004 }, - { "GL_EXT_point_parameters", o(EXT_point_parameters), GL, 1997 }, - { "GL_EXT_polygon_offset", o(EXT_polygon_offset), GL, 1995 }, - { "GL_EXT_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 }, - { "GL_EXT_rescale_normal", o(EXT_rescale_normal), GL, 1997 }, - { "GL_EXT_secondary_color", o(EXT_secondary_color), GL, 1999 }, - { "GL_EXT_separate_shader_objects", o(EXT_separate_shader_objects), GL, 2008 }, - { "GL_EXT_separate_specular_color", o(EXT_separate_specular_color), GL, 1997 }, - { "GL_EXT_shadow_funcs", o(EXT_shadow_funcs), GL, 2002 }, - { "GL_EXT_shared_texture_palette", o(EXT_shared_texture_palette), GL, 2000 }, - { "GL_EXT_stencil_two_side", o(EXT_stencil_two_side), GL, 2001 }, - { "GL_EXT_stencil_wrap", o(EXT_stencil_wrap), GL, 2002 }, - { "GL_EXT_subtexture", o(EXT_subtexture), GL, 1995 }, - { "GL_EXT_texture3D", o(EXT_texture3D), GL, 1996 }, - { "GL_EXT_texture_array", o(EXT_texture_array), GL, 2006 }, - { "GL_EXT_texture_compression_dxt1", o(EXT_texture_compression_s3tc), GL | ES1 | ES2, 2004 }, - { "GL_EXT_texture_compression_latc", o(EXT_texture_compression_latc), GL, 2006 }, - { "GL_EXT_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL, 2004 }, - { "GL_EXT_texture_compression_s3tc", o(EXT_texture_compression_s3tc), GL, 2000 }, - { "GL_EXT_texture_cube_map", o(ARB_texture_cube_map), GL, 2001 }, - { "GL_EXT_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL, 1997 }, - { "GL_EXT_texture_env_add", o(EXT_texture_env_add), GL, 1999 }, - { "GL_EXT_texture_env_combine", o(EXT_texture_env_combine), GL, 2006 }, - { "GL_EXT_texture_env_dot3", o(EXT_texture_env_dot3), GL, 2000 }, - { "GL_EXT_texture_filter_anisotropic", o(EXT_texture_filter_anisotropic), GL | ES1 | ES2, 1999 }, - { "GL_EXT_texture_format_BGRA8888", o(EXT_texture_format_BGRA8888), ES1 | ES2, 2009 }, - { "GL_EXT_texture_integer", o(EXT_texture_integer), GL, 2006 }, - { "GL_EXT_texture_lod_bias", o(EXT_texture_lod_bias), GL | ES1, 1999 }, - { "GL_EXT_texture_mirror_clamp", o(EXT_texture_mirror_clamp), GL, 2004 }, - { "GL_EXT_texture_object", o(EXT_texture_object), GL, 1995 }, - { "GL_EXT_texture", o(EXT_texture), GL, 1996 }, - { "GL_EXT_texture_rectangle", o(NV_texture_rectangle), GL, 2004 }, - { "GL_EXT_texture_shared_exponent", o(EXT_texture_shared_exponent), GL, 2004 }, - { "GL_EXT_texture_snorm", o(EXT_texture_snorm), GL, 2009 }, - { "GL_EXT_texture_sRGB", o(EXT_texture_sRGB), GL, 2004 }, - { "GL_EXT_texture_sRGB_decode", o(EXT_texture_sRGB_decode), GL, 2006 }, - { "GL_EXT_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 }, - { "GL_EXT_texture_type_2_10_10_10_REV", o(dummy_true), ES2, 2008 }, - { "GL_EXT_timer_query", o(EXT_timer_query), GL, 2006 }, - { "GL_EXT_transform_feedback", o(EXT_transform_feedback), GL, 2011 }, - { "GL_EXT_vertex_array_bgra", o(EXT_vertex_array_bgra), GL, 2008 }, - { "GL_EXT_vertex_array", o(EXT_vertex_array), GL, 1995 }, - { "GL_EXT_vertex_array_set", o(EXT_vertex_array_set), GL, 1997 }, - - /* OES extensions */ - { "GL_OES_blend_equation_separate", o(EXT_blend_equation_separate), ES1, 2009 }, - { "GL_OES_blend_func_separate", o(EXT_blend_func_separate), ES1, 2009 }, - { "GL_OES_blend_subtract", o(EXT_blend_subtract), ES1, 2009 }, - { "GL_OES_byte_coordinates", o(dummy_true), ES1, 2002 }, - { "GL_OES_compressed_paletted_texture", o(dummy_false), DISABLE, 2003 }, - { "GL_OES_depth24", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, - { "GL_OES_depth32", o(dummy_false), DISABLE, 2005 }, - { "GL_OES_depth_texture", o(ARB_depth_texture), ES2, 2006 }, -#if FEATURE_OES_draw_texture - { "GL_OES_draw_texture", o(OES_draw_texture), ES1 | ES2, 2004 }, -#endif -#if FEATURE_OES_EGL_image - /* FIXME: Mesa expects GL_OES_EGL_image to be available in OpenGL contexts. */ - { "GL_OES_EGL_image", o(OES_EGL_image), GL | ES1 | ES2, 2006 }, -#endif - { "GL_OES_element_index_uint", o(EXT_vertex_array), ES1 | ES2, 2005 }, - { "GL_OES_fbo_render_mipmap", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, - { "GL_OES_fixed_point", o(dummy_true), ES1, 2002 }, - { "GL_OES_framebuffer_object", o(EXT_framebuffer_object), ES1, 2005 }, - { "GL_OES_mapbuffer", o(ARB_vertex_buffer_object), ES1 | ES2, 2005 }, - { "GL_OES_matrix_get", o(dummy_true), ES1, 2004 }, - { "GL_OES_packed_depth_stencil", o(EXT_packed_depth_stencil), ES1 | ES2, 2007 }, - { "GL_OES_point_size_array", o(dummy_true), ES1, 2004 }, - { "GL_OES_point_sprite", o(ARB_point_sprite), ES1, 2004 }, - { "GL_OES_query_matrix", o(dummy_true), ES1, 2003 }, - { "GL_OES_read_format", o(OES_read_format), GL | ES1, 2003 }, - { "GL_OES_rgb8_rgba8", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, - { "GL_OES_single_precision", o(dummy_true), ES1, 2003 }, - { "GL_OES_standard_derivatives", o(OES_standard_derivatives), ES2, 2005 }, - { "GL_OES_stencil1", o(dummy_false), DISABLE, 2005 }, - { "GL_OES_stencil4", o(dummy_false), DISABLE, 2005 }, - { "GL_OES_stencil8", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, - { "GL_OES_stencil_wrap", o(EXT_stencil_wrap), ES1, 2002 }, - { "GL_OES_texture_3D", o(EXT_texture3D), ES2, 2005 }, - { "GL_OES_texture_cube_map", o(ARB_texture_cube_map), ES1, 2007 }, - { "GL_OES_texture_env_crossbar", o(ARB_texture_env_crossbar), ES1, 2005 }, - { "GL_OES_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), ES1, 2005 }, - { "GL_OES_texture_npot", o(ARB_texture_non_power_of_two), ES2, 2005 }, - - /* Vendor extensions */ - { "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL, 1999 }, - { "GL_AMD_conservative_depth", o(AMD_conservative_depth), GL, 2009 }, - { "GL_APPLE_client_storage", o(APPLE_client_storage), GL, 2002 }, - { "GL_APPLE_object_purgeable", o(APPLE_object_purgeable), GL, 2006 }, - { "GL_APPLE_packed_pixels", o(APPLE_packed_pixels), GL, 2002 }, - { "GL_APPLE_vertex_array_object", o(APPLE_vertex_array_object), GL, 2002 }, - { "GL_ATI_blend_equation_separate", o(EXT_blend_equation_separate), GL, 2003 }, - { "GL_ATI_draw_buffers", o(ARB_draw_buffers), GL, 2002 }, - { "GL_ATI_envmap_bumpmap", o(ATI_envmap_bumpmap), GL, 2001 }, - { "GL_ATI_fragment_shader", o(ATI_fragment_shader), GL, 2001 }, - { "GL_ATI_separate_stencil", o(ATI_separate_stencil), GL, 2006 }, - { "GL_ATI_texture_compression_3dc", o(ATI_texture_compression_3dc), GL, 2004 }, - { "GL_ATI_texture_env_combine3", o(ATI_texture_env_combine3), GL, 2002 }, - { "GL_ATI_texture_float", o(ARB_texture_float), GL, 2002 }, - { "GL_ATI_texture_mirror_once", o(ATI_texture_mirror_once), GL, 2006 }, - { "GL_IBM_multimode_draw_arrays", o(IBM_multimode_draw_arrays), GL, 1998 }, - { "GL_IBM_rasterpos_clip", o(IBM_rasterpos_clip), GL, 1996 }, - { "GL_IBM_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL, 1998 }, - { "GL_INGR_blend_func_separate", o(EXT_blend_func_separate), GL, 1999 }, - { "GL_MESA_pack_invert", o(MESA_pack_invert), GL, 2002 }, - { "GL_MESA_resize_buffers", o(MESA_resize_buffers), GL, 1999 }, - { "GL_MESA_texture_array", o(MESA_texture_array), GL, 2007 }, - { "GL_MESA_texture_signed_rgba", o(EXT_texture_snorm), GL, 2009 }, - { "GL_MESA_window_pos", o(ARB_window_pos), GL, 2000 }, - { "GL_MESA_ycbcr_texture", o(MESA_ycbcr_texture), GL, 2002 }, - { "GL_NV_blend_square", o(NV_blend_square), GL, 1999 }, - { "GL_NV_conditional_render", o(NV_conditional_render), GL, 2008 }, - { "GL_NV_depth_clamp", o(ARB_depth_clamp), GL, 2001 }, - { "GL_NV_fragment_program", o(NV_fragment_program), GL, 2001 }, - { "GL_NV_fragment_program_option", o(NV_fragment_program_option), GL, 2005 }, - { "GL_NV_light_max_exponent", o(NV_light_max_exponent), GL, 1999 }, - { "GL_NV_packed_depth_stencil", o(EXT_packed_depth_stencil), GL, 2000 }, - { "GL_NV_point_sprite", o(NV_point_sprite), GL, 2001 }, - { "GL_NV_primitive_restart", o(NV_primitive_restart), GL, 2002 }, - { "GL_NV_texgen_reflection", o(NV_texgen_reflection), GL, 1999 }, - { "GL_NV_texture_barrier", o(NV_texture_barrier), GL, 2009 }, - { "GL_NV_texture_env_combine4", o(NV_texture_env_combine4), GL, 1999 }, - { "GL_NV_texture_rectangle", o(NV_texture_rectangle), GL, 2000 }, - { "GL_NV_vertex_program1_1", o(NV_vertex_program1_1), GL, 2001 }, - { "GL_NV_vertex_program", o(NV_vertex_program), GL, 2000 }, - { "GL_S3_s3tc", o(S3_s3tc), GL, 1999 }, - { "GL_SGIS_generate_mipmap", o(SGIS_generate_mipmap), GL, 1997 }, - { "GL_SGIS_texture_border_clamp", o(ARB_texture_border_clamp), GL, 1997 }, - { "GL_SGIS_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL, 1997 }, - { "GL_SGIS_texture_lod", o(SGIS_texture_lod), GL, 1997 }, - { "GL_SUN_multi_draw_arrays", o(EXT_multi_draw_arrays), GL, 1999 }, - - { 0, 0, 0, 0 }, -}; - - -/** - * Given an extension name, lookup up the corresponding member of struct - * gl_extensions and return that member's offset (in bytes). If the name is - * not found in the \c extension_table, return 0. - * - * \param name Name of extension. - * \return Offset of member in struct gl_extensions. - */ -static size_t -name_to_offset(const char* name) -{ - const struct extension *i; - - if (name == 0) - return 0; - - for (i = extension_table; i->name != 0; ++i) { - if (strcmp(name, i->name) == 0) - return i->offset; - } - - return 0; -} - - -/** - * \brief Extensions enabled by default. - * - * These extensions are enabled by _mesa_init_extensions(). - * - * XXX: Should these defaults also apply to GLES? - */ -static const size_t default_extensions[] = { - o(ARB_copy_buffer), - o(ARB_draw_buffers), - o(ARB_multisample), - o(ARB_texture_compression), - o(ARB_transpose_matrix), - o(ARB_vertex_buffer_object), - o(ARB_window_pos), - - o(EXT_abgr), - o(EXT_bgra), - o(EXT_compiled_vertex_array), - o(EXT_copy_texture), - o(EXT_draw_range_elements), - o(EXT_multi_draw_arrays), - o(EXT_packed_pixels), - o(EXT_polygon_offset), - o(EXT_rescale_normal), - o(EXT_separate_specular_color), - o(EXT_subtexture), - o(EXT_texture), - o(EXT_texture3D), - o(EXT_texture_object), - o(EXT_vertex_array), - - o(OES_read_format), - o(OES_standard_derivatives), - - /* Vendor Extensions */ - o(APPLE_packed_pixels), - o(IBM_multimode_draw_arrays), - o(IBM_rasterpos_clip), - o(NV_light_max_exponent), - o(NV_texgen_reflection), - o(SGIS_generate_mipmap), - o(SGIS_texture_edge_clamp), - o(SGIS_texture_lod), - - 0, -}; - - -/** - * Enable all extensions suitable for a software-only renderer. - * This is a convenience function used by the XMesa, OSMesa, GGI drivers, etc. - */ -void -_mesa_enable_sw_extensions(struct gl_context *ctx) -{ - /*ctx->Extensions.ARB_copy_buffer = GL_TRUE;*/ - ctx->Extensions.ARB_depth_clamp = GL_TRUE; - ctx->Extensions.ARB_depth_texture = GL_TRUE; - /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ - ctx->Extensions.ARB_draw_elements_base_vertex = GL_TRUE; - ctx->Extensions.ARB_draw_instanced = GL_TRUE; - ctx->Extensions.ARB_explicit_attrib_location = GL_TRUE; - ctx->Extensions.ARB_fragment_coord_conventions = GL_TRUE; -#if FEATURE_ARB_fragment_program - ctx->Extensions.ARB_fragment_program = GL_TRUE; - ctx->Extensions.ARB_fragment_program_shadow = GL_TRUE; -#endif -#if FEATURE_ARB_fragment_shader - ctx->Extensions.ARB_fragment_shader = GL_TRUE; -#endif -#if FEATURE_ARB_framebuffer_object - ctx->Extensions.ARB_framebuffer_object = GL_TRUE; -#endif -#if FEATURE_ARB_geometry_shader4 && 0 - /* XXX re-enable when GLSL compiler again supports geometry shaders */ - ctx->Extensions.ARB_geometry_shader4 = GL_TRUE; -#endif - ctx->Extensions.ARB_half_float_pixel = GL_TRUE; - ctx->Extensions.ARB_half_float_vertex = GL_TRUE; - ctx->Extensions.ARB_map_buffer_range = GL_TRUE; - ctx->Extensions.ARB_multitexture = GL_TRUE; -#if FEATURE_queryobj - ctx->Extensions.ARB_occlusion_query = GL_TRUE; - ctx->Extensions.ARB_occlusion_query2 = GL_TRUE; -#endif - ctx->Extensions.ARB_point_sprite = GL_TRUE; -#if FEATURE_ARB_shader_objects - ctx->Extensions.ARB_shader_objects = GL_TRUE; - ctx->Extensions.EXT_separate_shader_objects = GL_TRUE; -#endif -#if FEATURE_ARB_shading_language_100 - ctx->Extensions.ARB_shading_language_100 = GL_TRUE; -#endif - ctx->Extensions.ARB_shadow = GL_TRUE; - ctx->Extensions.ARB_shadow_ambient = GL_TRUE; - ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; - ctx->Extensions.ARB_texture_cube_map = GL_TRUE; - ctx->Extensions.ARB_texture_env_combine = GL_TRUE; - ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE; - ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE; - /*ctx->Extensions.ARB_texture_float = GL_TRUE;*/ - ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE; - ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; - ctx->Extensions.ARB_texture_rg = GL_TRUE; - ctx->Extensions.ARB_texture_compression_rgtc = GL_TRUE; - ctx->Extensions.ARB_vertex_array_object = GL_TRUE; -#if FEATURE_ARB_vertex_program - ctx->Extensions.ARB_vertex_program = GL_TRUE; -#endif -#if FEATURE_ARB_vertex_shader - ctx->Extensions.ARB_vertex_shader = GL_TRUE; -#endif -#if FEATURE_ARB_vertex_buffer_object - /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/ -#endif -#if FEATURE_ARB_sync - ctx->Extensions.ARB_sync = GL_TRUE; -#endif - ctx->Extensions.APPLE_vertex_array_object = GL_TRUE; -#if FEATURE_APPLE_object_purgeable - ctx->Extensions.APPLE_object_purgeable = GL_TRUE; -#endif - ctx->Extensions.ATI_envmap_bumpmap = GL_TRUE; -#if FEATURE_ATI_fragment_shader - ctx->Extensions.ATI_fragment_shader = GL_TRUE; -#endif - ctx->Extensions.ATI_texture_compression_3dc = GL_TRUE; - ctx->Extensions.ATI_texture_env_combine3 = GL_TRUE; - ctx->Extensions.ATI_texture_mirror_once = GL_TRUE; - ctx->Extensions.ATI_separate_stencil = GL_TRUE; - ctx->Extensions.EXT_blend_color = GL_TRUE; - ctx->Extensions.EXT_blend_equation_separate = GL_TRUE; - ctx->Extensions.EXT_blend_func_separate = GL_TRUE; - ctx->Extensions.EXT_blend_logic_op = GL_TRUE; - ctx->Extensions.EXT_blend_minmax = GL_TRUE; - ctx->Extensions.EXT_blend_subtract = GL_TRUE; - ctx->Extensions.EXT_depth_bounds_test = GL_TRUE; - ctx->Extensions.EXT_draw_buffers2 = GL_TRUE; - ctx->Extensions.EXT_fog_coord = GL_TRUE; -#if FEATURE_EXT_framebuffer_object - ctx->Extensions.EXT_framebuffer_object = GL_TRUE; -#endif -#if FEATURE_EXT_framebuffer_blit - ctx->Extensions.EXT_framebuffer_blit = GL_TRUE; -#endif -#if FEATURE_ARB_framebuffer_object - ctx->Extensions.EXT_framebuffer_multisample = GL_TRUE; -#endif - /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/ - ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE; - ctx->Extensions.EXT_paletted_texture = GL_TRUE; -#if FEATURE_EXT_pixel_buffer_object - ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; -#endif - ctx->Extensions.EXT_point_parameters = GL_TRUE; - ctx->Extensions.EXT_provoking_vertex = GL_TRUE; - ctx->Extensions.EXT_shadow_funcs = GL_TRUE; - ctx->Extensions.EXT_secondary_color = GL_TRUE; - ctx->Extensions.EXT_shared_texture_palette = GL_TRUE; - ctx->Extensions.EXT_stencil_wrap = GL_TRUE; - ctx->Extensions.EXT_stencil_two_side = GL_TRUE; - ctx->Extensions.EXT_texture_array = GL_TRUE; - ctx->Extensions.EXT_texture_compression_latc = GL_TRUE; - ctx->Extensions.EXT_texture_env_add = GL_TRUE; - ctx->Extensions.EXT_texture_env_combine = GL_TRUE; - ctx->Extensions.EXT_texture_env_dot3 = GL_TRUE; - ctx->Extensions.EXT_texture_mirror_clamp = GL_TRUE; - ctx->Extensions.EXT_texture_lod_bias = GL_TRUE; - ctx->Extensions.EXT_texture_shared_exponent = GL_TRUE; -#if FEATURE_EXT_texture_sRGB - ctx->Extensions.EXT_texture_sRGB = GL_TRUE; - ctx->Extensions.EXT_texture_sRGB_decode = GL_TRUE; -#endif - ctx->Extensions.EXT_texture_swizzle = GL_TRUE; -#if FEATURE_EXT_transform_feedback - /*ctx->Extensions.EXT_transform_feedback = GL_TRUE;*/ -#endif - ctx->Extensions.EXT_vertex_array_bgra = GL_TRUE; - /*ctx->Extensions.IBM_multimode_draw_arrays = GL_TRUE;*/ - ctx->Extensions.MESA_pack_invert = GL_TRUE; - ctx->Extensions.MESA_resize_buffers = GL_TRUE; - ctx->Extensions.MESA_texture_array = GL_TRUE; - ctx->Extensions.MESA_ycbcr_texture = GL_TRUE; - ctx->Extensions.NV_blend_square = GL_TRUE; - ctx->Extensions.NV_conditional_render = GL_TRUE; - /*ctx->Extensions.NV_light_max_exponent = GL_TRUE;*/ - ctx->Extensions.NV_point_sprite = GL_TRUE; - ctx->Extensions.NV_texture_env_combine4 = GL_TRUE; - ctx->Extensions.NV_texture_rectangle = GL_TRUE; - /*ctx->Extensions.NV_texgen_reflection = GL_TRUE;*/ -#if FEATURE_NV_vertex_program - ctx->Extensions.NV_vertex_program = GL_TRUE; - ctx->Extensions.NV_vertex_program1_1 = GL_TRUE; -#endif -#if FEATURE_NV_fragment_program - ctx->Extensions.NV_fragment_program = GL_TRUE; -#endif -#if FEATURE_NV_fragment_program && FEATURE_ARB_fragment_program - ctx->Extensions.NV_fragment_program_option = GL_TRUE; -#endif - /*ctx->Extensions.SGIS_generate_mipmap = GL_TRUE;*/ - ctx->Extensions.SGIS_texture_edge_clamp = GL_TRUE; -#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program - ctx->Extensions.EXT_gpu_program_parameters = GL_TRUE; -#endif -#if FEATURE_texture_fxt1 - _mesa_enable_extension(ctx, "GL_3DFX_texture_compression_FXT1"); -#endif -#if FEATURE_texture_s3tc - if (ctx->Mesa_DXTn) { - _mesa_enable_extension(ctx, "GL_EXT_texture_compression_s3tc"); - _mesa_enable_extension(ctx, "GL_S3_s3tc"); - } -#endif -} - - -/** - * Enable common EXT extensions in the ARB_imaging subset. - */ -void -_mesa_enable_imaging_extensions(struct gl_context *ctx) -{ - ctx->Extensions.EXT_blend_color = GL_TRUE; - ctx->Extensions.EXT_blend_logic_op = GL_TRUE; - ctx->Extensions.EXT_blend_minmax = GL_TRUE; - ctx->Extensions.EXT_blend_subtract = GL_TRUE; -} - - - -/** - * Enable all OpenGL 1.3 features and extensions. - * A convenience function to be called by drivers. - */ -void -_mesa_enable_1_3_extensions(struct gl_context *ctx) -{ - /*ctx->Extensions.ARB_multisample = GL_TRUE;*/ - ctx->Extensions.ARB_multitexture = GL_TRUE; - ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; - /*ctx->Extensions.ARB_texture_compression = GL_TRUE;*/ - ctx->Extensions.ARB_texture_cube_map = GL_TRUE; - ctx->Extensions.ARB_texture_env_combine = GL_TRUE; - ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE; - ctx->Extensions.EXT_texture_env_add = GL_TRUE; - /*ctx->Extensions.ARB_transpose_matrix = GL_TRUE;*/ -} - - - -/** - * Enable all OpenGL 1.4 features and extensions. - * A convenience function to be called by drivers. - */ -void -_mesa_enable_1_4_extensions(struct gl_context *ctx) -{ - ctx->Extensions.ARB_depth_texture = GL_TRUE; - ctx->Extensions.ARB_shadow = GL_TRUE; - ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE; - ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE; - ctx->Extensions.ARB_window_pos = GL_TRUE; - ctx->Extensions.EXT_blend_color = GL_TRUE; - ctx->Extensions.EXT_blend_func_separate = GL_TRUE; - ctx->Extensions.EXT_blend_minmax = GL_TRUE; - ctx->Extensions.EXT_blend_subtract = GL_TRUE; - ctx->Extensions.EXT_fog_coord = GL_TRUE; - /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/ - ctx->Extensions.EXT_point_parameters = GL_TRUE; - ctx->Extensions.EXT_secondary_color = GL_TRUE; - ctx->Extensions.EXT_stencil_wrap = GL_TRUE; - ctx->Extensions.EXT_texture_lod_bias = GL_TRUE; - /*ctx->Extensions.SGIS_generate_mipmap = GL_TRUE;*/ -} - - -/** - * Enable all OpenGL 1.5 features and extensions. - * A convenience function to be called by drivers. - */ -void -_mesa_enable_1_5_extensions(struct gl_context *ctx) -{ - ctx->Extensions.ARB_occlusion_query = GL_TRUE; - /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/ - ctx->Extensions.EXT_shadow_funcs = GL_TRUE; -} - - -/** - * Enable all OpenGL 2.0 features and extensions. - * A convenience function to be called by drivers. - */ -void -_mesa_enable_2_0_extensions(struct gl_context *ctx) -{ - /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ -#if FEATURE_ARB_fragment_shader - ctx->Extensions.ARB_fragment_shader = GL_TRUE; -#endif - ctx->Extensions.ARB_point_sprite = GL_TRUE; - ctx->Extensions.EXT_blend_equation_separate = GL_TRUE; - ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; -#if FEATURE_ARB_shader_objects - ctx->Extensions.ARB_shader_objects = GL_TRUE; -#endif -#if FEATURE_ARB_shading_language_100 - ctx->Extensions.ARB_shading_language_100 = GL_TRUE; -#endif - ctx->Extensions.EXT_stencil_two_side = GL_TRUE; -#if FEATURE_ARB_vertex_shader - ctx->Extensions.ARB_vertex_shader = GL_TRUE; -#endif -} - - -/** - * Enable all OpenGL 2.1 features and extensions. - * A convenience function to be called by drivers. - */ -void -_mesa_enable_2_1_extensions(struct gl_context *ctx) -{ -#if FEATURE_EXT_pixel_buffer_object - ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; -#endif -#if FEATURE_EXT_texture_sRGB - ctx->Extensions.EXT_texture_sRGB = GL_TRUE; -#endif -} - - -/** - * Either enable or disable the named extension. - * \return GL_TRUE for success, GL_FALSE if invalid extension name - */ -static GLboolean -set_extension( struct gl_context *ctx, const char *name, GLboolean state ) -{ - size_t offset; - - if (ctx->Extensions.String) { - /* The string was already queried - can't change it now! */ - _mesa_problem(ctx, "Trying to enable/disable extension after glGetString(GL_EXTENSIONS): %s", name); - return GL_FALSE; - } - - offset = name_to_offset(name); - if (offset == 0) { - _mesa_problem(ctx, "Trying to enable/disable unknown extension %s", - name); - return GL_FALSE; - } else if (offset == o(dummy_true) && state == GL_FALSE) { - _mesa_problem(ctx, "Trying to disable a permanently enabled extension: " - "%s", name); - return GL_FALSE; - } else { - GLboolean *base = (GLboolean *) &ctx->Extensions; - base[offset] = state; - return GL_TRUE; - } -} - - -/** - * Enable the named extension. - * Typically called by drivers. - */ -void -_mesa_enable_extension( struct gl_context *ctx, const char *name ) -{ - if (!set_extension(ctx, name, GL_TRUE)) - _mesa_problem(ctx, "Trying to enable unknown extension: %s", name); -} - - -/** - * Disable the named extension. - * XXX is this really needed??? - */ -void -_mesa_disable_extension( struct gl_context *ctx, const char *name ) -{ - if (!set_extension(ctx, name, GL_FALSE)) - _mesa_problem(ctx, "Trying to disable unknown extension: %s", name); -} - - -/** - * Test if the named extension is enabled in this context. - */ -GLboolean -_mesa_extension_is_enabled( struct gl_context *ctx, const char *name ) -{ - size_t offset; - GLboolean *base; - - if (name == 0) - return GL_FALSE; - - offset = name_to_offset(name); - if (offset == 0) - return GL_FALSE; - base = (GLboolean *) &ctx->Extensions; - return base[offset]; -} - - -/** - * \brief Apply the \c MESA_EXTENSION_OVERRIDE environment variable. - * - * \c MESA_EXTENSION_OVERRIDE is a space-separated list of extensions to - * enable or disable. The list is processed thus: - * - Enable recognized extension names that are prefixed with '+'. - * - Disable recognized extension names that are prefixed with '-'. - * - Enable recognized extension names that are not prefixed. - * - Collect unrecognized extension names in a new string. - * - * \return Space-separated list of unrecognized extension names (which must - * be freed). Does not return \c NULL. - */ -static char * -get_extension_override( struct gl_context *ctx ) -{ - const char *env_const = _mesa_getenv("MESA_EXTENSION_OVERRIDE"); - char *env; - char *ext; - char *extra_exts; - int len; - - if (env_const == NULL) { - /* Return the empty string rather than NULL. This simplifies the logic - * of client functions. */ - return calloc(1, sizeof(char)); - } - - /* extra_exts: List of unrecognized extensions. */ - extra_exts = calloc(strlen(env_const), sizeof(char)); - - /* Copy env_const because strtok() is destructive. */ - env = strdup(env_const); - for (ext = strtok(env, " "); ext != NULL; ext = strtok(NULL, " ")) { - int enable; - int recognized; - switch (ext[0]) { - case '+': - enable = 1; - ++ext; - break; - case '-': - enable = 0; - ++ext; - break; - default: - enable = 1; - break; - } - recognized = set_extension(ctx, ext, enable); - if (!recognized) { - strcat(extra_exts, ext); - strcat(extra_exts, " "); - } - } - - /* Remove trailing space. */ - len = strlen(extra_exts); - if (extra_exts[len - 1] == ' ') - extra_exts[len - 1] = '\0'; - - return extra_exts; -} - - -/** - * \brief Initialize extension tables and enable default extensions. - * - * This should be called during context initialization. - * Note: Sets gl_extensions.dummy_true to true. - */ -void -_mesa_init_extensions( struct gl_context *ctx ) -{ - GLboolean *base = (GLboolean *) &ctx->Extensions; - GLboolean *sentinel = base + o(extension_sentinel); - GLboolean *i; - const size_t *j; - - /* First, turn all extensions off. */ - for (i = base; i != sentinel; ++i) - *i = GL_FALSE; - - /* Then, selectively turn default extensions on. */ - ctx->Extensions.dummy_true = GL_TRUE; - for (j = default_extensions; *j != 0; ++j) - base[*j] = GL_TRUE; -} - - -typedef unsigned short extension_index; - - -/** - * Compare two entries of the extensions table. Sorts first by year, - * then by name. - * - * Arguments are indices into extension_table. - */ -static int -extension_compare(const void *p1, const void *p2) -{ - extension_index i1 = * (const extension_index *) p1; - extension_index i2 = * (const extension_index *) p2; - const struct extension *e1 = &extension_table[i1]; - const struct extension *e2 = &extension_table[i2]; - int res; - - res = (int)e1->year - (int)e2->year; - - if (res == 0) { - res = strcmp(e1->name, e2->name); - } - - return res; -} - - -/** - * Construct the GL_EXTENSIONS string. Called the first time that - * glGetString(GL_EXTENSIONS) is called. - */ -GLubyte* -_mesa_make_extension_string(struct gl_context *ctx) -{ - /* The extension string. */ - char *exts = 0; - /* Length of extension string. */ - size_t length = 0; - /* Number of extensions */ - unsigned count; - /* Indices of the extensions sorted by year */ - extension_index *extension_indices; - /* String of extra extensions. */ - char *extra_extensions = get_extension_override(ctx); - GLboolean *base = (GLboolean *) &ctx->Extensions; - const struct extension *i; - unsigned j; - unsigned maxYear = ~0; - - /* Check if the MESA_EXTENSION_MAX_YEAR env var is set */ - { - const char *env = getenv("MESA_EXTENSION_MAX_YEAR"); - if (env) { - maxYear = atoi(env); - _mesa_debug(ctx, "Note: limiting GL extensions to %u or earlier\n", - maxYear); - } - } - - /* Compute length of the extension string. */ - count = 0; - for (i = extension_table; i->name != 0; ++i) { - if (base[i->offset] && - i->year <= maxYear && - (i->api_set & (1 << ctx->API))) { - length += strlen(i->name) + 1; /* +1 for space */ - ++count; - } - } - if (extra_extensions != NULL) - length += 1 + strlen(extra_extensions); /* +1 for space */ - - exts = (char *) calloc(length + 1, sizeof(char)); - if (exts == NULL) { - free(extra_extensions); - return NULL; - } - - extension_indices = malloc(count * sizeof(extension_index)); - if (extension_indices == NULL) { - free(exts); - free(extra_extensions); - return NULL; - } - - /* Sort extensions in chronological order because certain old applications (e.g., - * Quake3 demo) store the extension list in a static size buffer so chronologically - * order ensure that the extensions that such applications expect will fit into - * that buffer. - */ - j = 0; - for (i = extension_table; i->name != 0; ++i) { - if (base[i->offset] && - i->year <= maxYear && - (i->api_set & (1 << ctx->API))) { - extension_indices[j++] = i - extension_table; - } - } - assert(j == count); - qsort(extension_indices, count, sizeof *extension_indices, extension_compare); - - /* Build the extension string.*/ - for (j = 0; j < count; ++j) { - i = &extension_table[extension_indices[j]]; - assert(base[i->offset] && (i->api_set & (1 << ctx->API))); - strcat(exts, i->name); - strcat(exts, " "); - } - free(extension_indices); - if (extra_extensions != 0) { - strcat(exts, extra_extensions); - free(extra_extensions); - } - - return (GLubyte *) exts; -} - -/** - * Return number of enabled extensions. - */ -GLuint -_mesa_get_extension_count(struct gl_context *ctx) -{ - GLboolean *base; - const struct extension *i; - - /* only count once */ - if (ctx->Extensions.Count != 0) - return ctx->Extensions.Count; - - base = (GLboolean *) &ctx->Extensions; - for (i = extension_table; i->name != 0; ++i) { - if (base[i->offset]) { - ctx->Extensions.Count++; - } - } - return ctx->Extensions.Count; -} - -/** - * Return name of i-th enabled extension - */ -const GLubyte * -_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index) -{ - const GLboolean *base; - size_t n; - const struct extension *i; - - if (index < 0) - return NULL; - - base = (GLboolean*) &ctx->Extensions; - n = 0; - for (i = extension_table; i->name != 0; ++i) { - if (n == index && base[i->offset]) { - return (GLubyte*) i->name; - } else if (base[i->offset]) { - ++n; - } - } - - return NULL; -} +/* + * Mesa 3-D graphics library + * Version: 7.6 + * + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. + * Copyright (C) 2009 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +/** + * \file + * \brief Extension handling + */ + + +#include "glheader.h" +#include "imports.h" +#include "context.h" +#include "extensions.h" +#include "mfeatures.h" +#include "mtypes.h" + +enum { + DISABLE = 0, + GL = 1 << API_OPENGL, + ES1 = 1 << API_OPENGLES, + ES2 = 1 << API_OPENGLES2, +}; + +/** + * \brief An element of the \c extension_table. + */ +struct extension { + /** Name of extension, such as "GL_ARB_depth_clamp". */ + const char *name; + + /** Offset (in bytes) of the corresponding member in struct gl_extensions. */ + size_t offset; + + /** Set of API's in which the extension exists, as a bitset. */ + uint8_t api_set; + + /** Year the extension was proposed or approved. Used to sort the + * extension string chronologically. */ + uint16_t year; +}; + + +/** + * Given a member \c x of struct gl_extensions, return offset of + * \c x in bytes. + */ +#define o(x) offsetof(struct gl_extensions, x) + + +/** + * \brief Table of supported OpenGL extensions for all API's. + * + * Note: The GL_MESAX_* extensions are placeholders for future ARB extensions. + */ +static const struct extension extension_table[] = { + /* ARB Extensions */ + { "GL_ARB_ES2_compatibility", o(ARB_ES2_compatibility), GL, 2009 }, + { "GL_ARB_blend_func_extended", o(ARB_blend_func_extended), GL, 2009 }, + { "GL_ARB_color_buffer_float", o(ARB_color_buffer_float), GL, 2004 }, + { "GL_ARB_copy_buffer", o(ARB_copy_buffer), GL, 2008 }, + { "GL_ARB_depth_buffer_float", o(ARB_depth_buffer_float), GL, 2008 }, + { "GL_ARB_depth_clamp", o(ARB_depth_clamp), GL, 2003 }, + { "GL_ARB_depth_texture", o(ARB_depth_texture), GL, 2001 }, + { "GL_ARB_draw_buffers", o(ARB_draw_buffers), GL, 2002 }, + { "GL_ARB_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 }, + { "GL_ARB_draw_elements_base_vertex", o(ARB_draw_elements_base_vertex), GL, 2009 }, + { "GL_ARB_draw_instanced", o(ARB_draw_instanced), GL, 2008 }, + { "GL_ARB_explicit_attrib_location", o(ARB_explicit_attrib_location), GL, 2009 }, + { "GL_ARB_fragment_coord_conventions", o(ARB_fragment_coord_conventions), GL, 2009 }, + { "GL_ARB_fragment_program", o(ARB_fragment_program), GL, 2002 }, + { "GL_ARB_fragment_program_shadow", o(ARB_fragment_program_shadow), GL, 2003 }, + { "GL_ARB_fragment_shader", o(ARB_fragment_shader), GL, 2002 }, + { "GL_ARB_framebuffer_object", o(ARB_framebuffer_object), GL, 2005 }, + { "GL_ARB_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 }, + { "GL_ARB_half_float_pixel", o(ARB_half_float_pixel), GL, 2003 }, + { "GL_ARB_half_float_vertex", o(ARB_half_float_vertex), GL, 2008 }, + { "GL_ARB_instanced_arrays", o(ARB_instanced_arrays), GL, 2008 }, + { "GL_ARB_map_buffer_range", o(ARB_map_buffer_range), GL, 2008 }, + { "GL_ARB_multisample", o(ARB_multisample), GL, 1994 }, + { "GL_ARB_multitexture", o(ARB_multitexture), GL, 1998 }, + { "GL_ARB_occlusion_query2", o(ARB_occlusion_query2), GL, 2003 }, + { "GL_ARB_occlusion_query", o(ARB_occlusion_query), GL, 2001 }, + { "GL_ARB_pixel_buffer_object", o(EXT_pixel_buffer_object), GL, 2004 }, + { "GL_ARB_point_parameters", o(EXT_point_parameters), GL, 1997 }, + { "GL_ARB_point_sprite", o(ARB_point_sprite), GL, 2003 }, + { "GL_ARB_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 }, + { "GL_ARB_robustness", o(dummy_true), GL, 2010 }, + { "GL_ARB_sampler_objects", o(ARB_sampler_objects), GL, 2009 }, + { "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL, 2009 }, + { "GL_ARB_shader_objects", o(ARB_shader_objects), GL, 2002 }, + { "GL_ARB_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 }, + { "GL_ARB_shading_language_100", o(ARB_shading_language_100), GL, 2003 }, + { "GL_ARB_shadow_ambient", o(ARB_shadow_ambient), GL, 2001 }, + { "GL_ARB_shadow", o(ARB_shadow), GL, 2001 }, + { "GL_ARB_sync", o(ARB_sync), GL, 2003 }, + { "GL_ARB_texture_border_clamp", o(ARB_texture_border_clamp), GL, 2000 }, + { "GL_ARB_texture_buffer_object", o(ARB_texture_buffer_object), GL, 2008 }, + { "GL_ARB_texture_compression", o(ARB_texture_compression), GL, 2000 }, + { "GL_ARB_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL, 2004 }, + { "GL_ARB_texture_cube_map", o(ARB_texture_cube_map), GL, 1999 }, + { "GL_ARB_texture_env_add", o(EXT_texture_env_add), GL, 1999 }, + { "GL_ARB_texture_env_combine", o(ARB_texture_env_combine), GL, 2001 }, + { "GL_ARB_texture_env_crossbar", o(ARB_texture_env_crossbar), GL, 2001 }, + { "GL_ARB_texture_env_dot3", o(ARB_texture_env_dot3), GL, 2001 }, + { "GL_ARB_texture_float", o(ARB_texture_float), GL, 2004 }, + { "GL_ARB_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL, 2001 }, + { "GL_ARB_texture_multisample", o(ARB_texture_multisample), GL, 2009 }, + { "GL_ARB_texture_non_power_of_two", o(ARB_texture_non_power_of_two), GL, 2003 }, + { "GL_ARB_texture_rectangle", o(NV_texture_rectangle), GL, 2004 }, + { "GL_ARB_texture_rgb10_a2ui", o(ARB_texture_rgb10_a2ui), GL, 2009 }, + { "GL_ARB_texture_rg", o(ARB_texture_rg), GL, 2008 }, + { "GL_ARB_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 }, + { "GL_ARB_transform_feedback2", o(ARB_transform_feedback2), GL, 2010 }, + { "GL_ARB_transpose_matrix", o(ARB_transpose_matrix), GL, 1999 }, + { "GL_ARB_uniform_buffer_object", o(ARB_uniform_buffer_object), GL, 2002 }, + { "GL_ARB_vertex_array_bgra", o(EXT_vertex_array_bgra), GL, 2008 }, + { "GL_ARB_vertex_array_object", o(ARB_vertex_array_object), GL, 2006 }, + { "GL_ARB_vertex_buffer_object", o(ARB_vertex_buffer_object), GL, 2003 }, + { "GL_ARB_vertex_program", o(ARB_vertex_program), GL, 2002 }, + { "GL_ARB_vertex_shader", o(ARB_vertex_shader), GL, 2002 }, + { "GL_ARB_vertex_type_2_10_10_10_rev", o(ARB_vertex_type_2_10_10_10_rev), GL, 2009 }, + { "GL_ARB_window_pos", o(ARB_window_pos), GL, 2001 }, + + /* EXT extensions */ + { "GL_EXT_abgr", o(EXT_abgr), GL, 1995 }, + { "GL_EXT_bgra", o(EXT_bgra), GL, 1995 }, + { "GL_EXT_blend_color", o(EXT_blend_color), GL, 1995 }, + { "GL_EXT_blend_equation_separate", o(EXT_blend_equation_separate), GL, 2003 }, + { "GL_EXT_blend_func_separate", o(EXT_blend_func_separate), GL, 1999 }, + { "GL_EXT_blend_logic_op", o(EXT_blend_logic_op), GL, 1995 }, + { "GL_EXT_blend_minmax", o(EXT_blend_minmax), GL | ES1 | ES2, 1995 }, + { "GL_EXT_blend_subtract", o(EXT_blend_subtract), GL, 1995 }, + { "GL_EXT_clip_volume_hint", o(EXT_clip_volume_hint), GL, 1996 }, + { "GL_EXT_compiled_vertex_array", o(EXT_compiled_vertex_array), GL, 1996 }, + { "GL_EXT_copy_texture", o(EXT_copy_texture), GL, 1995 }, + { "GL_EXT_depth_bounds_test", o(EXT_depth_bounds_test), GL, 2002 }, + { "GL_EXT_draw_buffers2", o(EXT_draw_buffers2), GL, 2006 }, + { "GL_EXT_draw_instanced", o(ARB_draw_instanced), GL, 2006 }, + { "GL_EXT_draw_range_elements", o(EXT_draw_range_elements), GL, 1997 }, + { "GL_EXT_fog_coord", o(EXT_fog_coord), GL, 1999 }, + { "GL_EXT_framebuffer_blit", o(EXT_framebuffer_blit), GL, 2005 }, + { "GL_EXT_framebuffer_multisample", o(EXT_framebuffer_multisample), GL, 2005 }, + { "GL_EXT_framebuffer_object", o(EXT_framebuffer_object), GL, 2000 }, + { "GL_EXT_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 }, + { "GL_EXT_gpu_program_parameters", o(EXT_gpu_program_parameters), GL, 2006 }, + { "GL_EXT_gpu_shader4", o(EXT_gpu_shader4), GL, 2006 }, + { "GL_EXT_multi_draw_arrays", o(EXT_multi_draw_arrays), GL | ES1 | ES2, 1999 }, + { "GL_EXT_packed_depth_stencil", o(EXT_packed_depth_stencil), GL, 2005 }, + { "GL_EXT_packed_float", o(EXT_packed_float), GL, 2004 }, + { "GL_EXT_packed_pixels", o(EXT_packed_pixels), GL, 1997 }, + { "GL_EXT_paletted_texture", o(EXT_paletted_texture), GL, 1995 }, + { "GL_EXT_pixel_buffer_object", o(EXT_pixel_buffer_object), GL, 2004 }, + { "GL_EXT_point_parameters", o(EXT_point_parameters), GL, 1997 }, + { "GL_EXT_polygon_offset", o(EXT_polygon_offset), GL, 1995 }, + { "GL_EXT_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 }, + { "GL_EXT_rescale_normal", o(EXT_rescale_normal), GL, 1997 }, + { "GL_EXT_secondary_color", o(EXT_secondary_color), GL, 1999 }, + { "GL_EXT_separate_shader_objects", o(EXT_separate_shader_objects), GL, 2008 }, + { "GL_EXT_separate_specular_color", o(EXT_separate_specular_color), GL, 1997 }, + { "GL_EXT_shadow_funcs", o(EXT_shadow_funcs), GL, 2002 }, + { "GL_EXT_shared_texture_palette", o(EXT_shared_texture_palette), GL, 2000 }, + { "GL_EXT_stencil_two_side", o(EXT_stencil_two_side), GL, 2001 }, + { "GL_EXT_stencil_wrap", o(EXT_stencil_wrap), GL, 2002 }, + { "GL_EXT_subtexture", o(EXT_subtexture), GL, 1995 }, + { "GL_EXT_texture3D", o(EXT_texture3D), GL, 1996 }, + { "GL_EXT_texture_array", o(EXT_texture_array), GL, 2006 }, + { "GL_EXT_texture_compression_dxt1", o(EXT_texture_compression_s3tc), GL | ES1 | ES2, 2004 }, + { "GL_EXT_texture_compression_latc", o(EXT_texture_compression_latc), GL, 2006 }, + { "GL_EXT_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL, 2004 }, + { "GL_EXT_texture_compression_s3tc", o(EXT_texture_compression_s3tc), GL, 2000 }, + { "GL_EXT_texture_cube_map", o(ARB_texture_cube_map), GL, 2001 }, + { "GL_EXT_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL, 1997 }, + { "GL_EXT_texture_env_add", o(EXT_texture_env_add), GL, 1999 }, + { "GL_EXT_texture_env_combine", o(EXT_texture_env_combine), GL, 2006 }, + { "GL_EXT_texture_env_dot3", o(EXT_texture_env_dot3), GL, 2000 }, + { "GL_EXT_texture_filter_anisotropic", o(EXT_texture_filter_anisotropic), GL | ES1 | ES2, 1999 }, + { "GL_EXT_texture_format_BGRA8888", o(EXT_texture_format_BGRA8888), ES1 | ES2, 2009 }, + { "GL_EXT_texture_integer", o(EXT_texture_integer), GL, 2006 }, + { "GL_EXT_texture_lod_bias", o(EXT_texture_lod_bias), GL | ES1, 1999 }, + { "GL_EXT_texture_mirror_clamp", o(EXT_texture_mirror_clamp), GL, 2004 }, + { "GL_EXT_texture_object", o(EXT_texture_object), GL, 1995 }, + { "GL_EXT_texture", o(EXT_texture), GL, 1996 }, + { "GL_EXT_texture_rectangle", o(NV_texture_rectangle), GL, 2004 }, + { "GL_EXT_texture_shared_exponent", o(EXT_texture_shared_exponent), GL, 2004 }, + { "GL_EXT_texture_snorm", o(EXT_texture_snorm), GL, 2009 }, + { "GL_EXT_texture_sRGB", o(EXT_texture_sRGB), GL, 2004 }, + { "GL_EXT_texture_sRGB_decode", o(EXT_texture_sRGB_decode), GL, 2006 }, + { "GL_EXT_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 }, + { "GL_EXT_texture_type_2_10_10_10_REV", o(dummy_true), ES2, 2008 }, + { "GL_EXT_timer_query", o(EXT_timer_query), GL, 2006 }, + { "GL_EXT_transform_feedback", o(EXT_transform_feedback), GL, 2011 }, + { "GL_EXT_vertex_array_bgra", o(EXT_vertex_array_bgra), GL, 2008 }, + { "GL_EXT_vertex_array", o(EXT_vertex_array), GL, 1995 }, + { "GL_EXT_vertex_array_set", o(EXT_vertex_array_set), GL, 1997 }, + + /* OES extensions */ + { "GL_OES_blend_equation_separate", o(EXT_blend_equation_separate), ES1, 2009 }, + { "GL_OES_blend_func_separate", o(EXT_blend_func_separate), ES1, 2009 }, + { "GL_OES_blend_subtract", o(EXT_blend_subtract), ES1, 2009 }, + { "GL_OES_byte_coordinates", o(dummy_true), ES1, 2002 }, + { "GL_OES_compressed_paletted_texture", o(dummy_false), DISABLE, 2003 }, + { "GL_OES_depth24", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, + { "GL_OES_depth32", o(dummy_false), DISABLE, 2005 }, + { "GL_OES_depth_texture", o(ARB_depth_texture), ES2, 2006 }, +#if FEATURE_OES_draw_texture + { "GL_OES_draw_texture", o(OES_draw_texture), ES1 | ES2, 2004 }, +#endif +#if FEATURE_OES_EGL_image + /* FIXME: Mesa expects GL_OES_EGL_image to be available in OpenGL contexts. */ + { "GL_OES_EGL_image", o(OES_EGL_image), GL | ES1 | ES2, 2006 }, +#endif + { "GL_OES_element_index_uint", o(EXT_vertex_array), ES1 | ES2, 2005 }, + { "GL_OES_fbo_render_mipmap", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, + { "GL_OES_fixed_point", o(dummy_true), ES1, 2002 }, + { "GL_OES_framebuffer_object", o(EXT_framebuffer_object), ES1, 2005 }, + { "GL_OES_mapbuffer", o(ARB_vertex_buffer_object), ES1 | ES2, 2005 }, + { "GL_OES_matrix_get", o(dummy_true), ES1, 2004 }, + { "GL_OES_packed_depth_stencil", o(EXT_packed_depth_stencil), ES1 | ES2, 2007 }, + { "GL_OES_point_size_array", o(dummy_true), ES1, 2004 }, + { "GL_OES_point_sprite", o(ARB_point_sprite), ES1, 2004 }, + { "GL_OES_query_matrix", o(dummy_true), ES1, 2003 }, + { "GL_OES_read_format", o(OES_read_format), GL | ES1, 2003 }, + { "GL_OES_rgb8_rgba8", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, + { "GL_OES_single_precision", o(dummy_true), ES1, 2003 }, + { "GL_OES_standard_derivatives", o(OES_standard_derivatives), ES2, 2005 }, + { "GL_OES_stencil1", o(dummy_false), DISABLE, 2005 }, + { "GL_OES_stencil4", o(dummy_false), DISABLE, 2005 }, + { "GL_OES_stencil8", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, + { "GL_OES_stencil_wrap", o(EXT_stencil_wrap), ES1, 2002 }, + { "GL_OES_texture_3D", o(EXT_texture3D), ES2, 2005 }, + { "GL_OES_texture_cube_map", o(ARB_texture_cube_map), ES1, 2007 }, + { "GL_OES_texture_env_crossbar", o(ARB_texture_env_crossbar), ES1, 2005 }, + { "GL_OES_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), ES1, 2005 }, + { "GL_OES_texture_npot", o(ARB_texture_non_power_of_two), ES2, 2005 }, + + /* Vendor extensions */ + { "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL, 1999 }, + { "GL_AMD_conservative_depth", o(AMD_conservative_depth), GL, 2009 }, + { "GL_AMD_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 }, + { "GL_AMD_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 }, + { "GL_APPLE_client_storage", o(APPLE_client_storage), GL, 2002 }, + { "GL_APPLE_object_purgeable", o(APPLE_object_purgeable), GL, 2006 }, + { "GL_APPLE_packed_pixels", o(APPLE_packed_pixels), GL, 2002 }, + { "GL_APPLE_vertex_array_object", o(APPLE_vertex_array_object), GL, 2002 }, + { "GL_ATI_blend_equation_separate", o(EXT_blend_equation_separate), GL, 2003 }, + { "GL_ATI_draw_buffers", o(ARB_draw_buffers), GL, 2002 }, + { "GL_ATI_envmap_bumpmap", o(ATI_envmap_bumpmap), GL, 2001 }, + { "GL_ATI_fragment_shader", o(ATI_fragment_shader), GL, 2001 }, + { "GL_ATI_separate_stencil", o(ATI_separate_stencil), GL, 2006 }, + { "GL_ATI_texture_compression_3dc", o(ATI_texture_compression_3dc), GL, 2004 }, + { "GL_ATI_texture_env_combine3", o(ATI_texture_env_combine3), GL, 2002 }, + { "GL_ATI_texture_float", o(ARB_texture_float), GL, 2002 }, + { "GL_ATI_texture_mirror_once", o(ATI_texture_mirror_once), GL, 2006 }, + { "GL_IBM_multimode_draw_arrays", o(IBM_multimode_draw_arrays), GL, 1998 }, + { "GL_IBM_rasterpos_clip", o(IBM_rasterpos_clip), GL, 1996 }, + { "GL_IBM_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL, 1998 }, + { "GL_INGR_blend_func_separate", o(EXT_blend_func_separate), GL, 1999 }, + { "GL_MESA_pack_invert", o(MESA_pack_invert), GL, 2002 }, + { "GL_MESA_resize_buffers", o(MESA_resize_buffers), GL, 1999 }, + { "GL_MESA_texture_array", o(MESA_texture_array), GL, 2007 }, + { "GL_MESA_texture_signed_rgba", o(EXT_texture_snorm), GL, 2009 }, + { "GL_MESA_window_pos", o(ARB_window_pos), GL, 2000 }, + { "GL_MESA_ycbcr_texture", o(MESA_ycbcr_texture), GL, 2002 }, + { "GL_NV_blend_square", o(NV_blend_square), GL, 1999 }, + { "GL_NV_conditional_render", o(NV_conditional_render), GL, 2008 }, + { "GL_NV_depth_clamp", o(ARB_depth_clamp), GL, 2001 }, + { "GL_NV_fragment_program", o(NV_fragment_program), GL, 2001 }, + { "GL_NV_fragment_program_option", o(NV_fragment_program_option), GL, 2005 }, + { "GL_NV_light_max_exponent", o(NV_light_max_exponent), GL, 1999 }, + { "GL_NV_packed_depth_stencil", o(EXT_packed_depth_stencil), GL, 2000 }, + { "GL_NV_point_sprite", o(NV_point_sprite), GL, 2001 }, + { "GL_NV_primitive_restart", o(NV_primitive_restart), GL, 2002 }, + { "GL_NV_texgen_reflection", o(NV_texgen_reflection), GL, 1999 }, + { "GL_NV_texture_barrier", o(NV_texture_barrier), GL, 2009 }, + { "GL_NV_texture_env_combine4", o(NV_texture_env_combine4), GL, 1999 }, + { "GL_NV_texture_rectangle", o(NV_texture_rectangle), GL, 2000 }, + { "GL_NV_vertex_program1_1", o(NV_vertex_program1_1), GL, 2001 }, + { "GL_NV_vertex_program", o(NV_vertex_program), GL, 2000 }, + { "GL_S3_s3tc", o(S3_s3tc), GL, 1999 }, + { "GL_SGIS_generate_mipmap", o(SGIS_generate_mipmap), GL, 1997 }, + { "GL_SGIS_texture_border_clamp", o(ARB_texture_border_clamp), GL, 1997 }, + { "GL_SGIS_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL, 1997 }, + { "GL_SGIS_texture_lod", o(SGIS_texture_lod), GL, 1997 }, + { "GL_SUN_multi_draw_arrays", o(EXT_multi_draw_arrays), GL, 1999 }, + + { 0, 0, 0, 0 }, +}; + + +/** + * Given an extension name, lookup up the corresponding member of struct + * gl_extensions and return that member's offset (in bytes). If the name is + * not found in the \c extension_table, return 0. + * + * \param name Name of extension. + * \return Offset of member in struct gl_extensions. + */ +static size_t +name_to_offset(const char* name) +{ + const struct extension *i; + + if (name == 0) + return 0; + + for (i = extension_table; i->name != 0; ++i) { + if (strcmp(name, i->name) == 0) + return i->offset; + } + + return 0; +} + + +/** + * \brief Extensions enabled by default. + * + * These extensions are enabled by _mesa_init_extensions(). + * + * XXX: Should these defaults also apply to GLES? + */ +static const size_t default_extensions[] = { + o(ARB_copy_buffer), + o(ARB_draw_buffers), + o(ARB_multisample), + o(ARB_texture_compression), + o(ARB_transpose_matrix), + o(ARB_vertex_buffer_object), + o(ARB_window_pos), + + o(EXT_abgr), + o(EXT_bgra), + o(EXT_compiled_vertex_array), + o(EXT_copy_texture), + o(EXT_draw_range_elements), + o(EXT_multi_draw_arrays), + o(EXT_packed_pixels), + o(EXT_polygon_offset), + o(EXT_rescale_normal), + o(EXT_separate_specular_color), + o(EXT_subtexture), + o(EXT_texture), + o(EXT_texture3D), + o(EXT_texture_object), + o(EXT_vertex_array), + + o(OES_read_format), + o(OES_standard_derivatives), + + /* Vendor Extensions */ + o(APPLE_packed_pixels), + o(IBM_multimode_draw_arrays), + o(IBM_rasterpos_clip), + o(NV_light_max_exponent), + o(NV_texgen_reflection), + o(SGIS_generate_mipmap), + o(SGIS_texture_edge_clamp), + o(SGIS_texture_lod), + + 0, +}; + + +/** + * Enable all extensions suitable for a software-only renderer. + * This is a convenience function used by the XMesa, OSMesa, GGI drivers, etc. + */ +void +_mesa_enable_sw_extensions(struct gl_context *ctx) +{ + /*ctx->Extensions.ARB_copy_buffer = GL_TRUE;*/ + ctx->Extensions.ARB_depth_clamp = GL_TRUE; + ctx->Extensions.ARB_depth_texture = GL_TRUE; + /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ + ctx->Extensions.ARB_draw_elements_base_vertex = GL_TRUE; + ctx->Extensions.ARB_draw_instanced = GL_TRUE; + ctx->Extensions.ARB_explicit_attrib_location = GL_TRUE; + ctx->Extensions.ARB_fragment_coord_conventions = GL_TRUE; +#if FEATURE_ARB_fragment_program + ctx->Extensions.ARB_fragment_program = GL_TRUE; + ctx->Extensions.ARB_fragment_program_shadow = GL_TRUE; +#endif +#if FEATURE_ARB_fragment_shader + ctx->Extensions.ARB_fragment_shader = GL_TRUE; +#endif +#if FEATURE_ARB_framebuffer_object + ctx->Extensions.ARB_framebuffer_object = GL_TRUE; +#endif +#if FEATURE_ARB_geometry_shader4 && 0 + /* XXX re-enable when GLSL compiler again supports geometry shaders */ + ctx->Extensions.ARB_geometry_shader4 = GL_TRUE; +#endif + ctx->Extensions.ARB_half_float_pixel = GL_TRUE; + ctx->Extensions.ARB_half_float_vertex = GL_TRUE; + ctx->Extensions.ARB_map_buffer_range = GL_TRUE; + ctx->Extensions.ARB_multitexture = GL_TRUE; +#if FEATURE_queryobj + ctx->Extensions.ARB_occlusion_query = GL_TRUE; + ctx->Extensions.ARB_occlusion_query2 = GL_TRUE; +#endif + ctx->Extensions.ARB_point_sprite = GL_TRUE; +#if FEATURE_ARB_shader_objects + ctx->Extensions.ARB_shader_objects = GL_TRUE; + ctx->Extensions.EXT_separate_shader_objects = GL_TRUE; +#endif +#if FEATURE_ARB_shading_language_100 + ctx->Extensions.ARB_shading_language_100 = GL_TRUE; +#endif + ctx->Extensions.ARB_shadow = GL_TRUE; + ctx->Extensions.ARB_shadow_ambient = GL_TRUE; + ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; + ctx->Extensions.ARB_texture_cube_map = GL_TRUE; + ctx->Extensions.ARB_texture_env_combine = GL_TRUE; + ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE; + ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE; + /*ctx->Extensions.ARB_texture_float = GL_TRUE;*/ + ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE; + ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; + ctx->Extensions.ARB_texture_rg = GL_TRUE; + ctx->Extensions.ARB_texture_compression_rgtc = GL_TRUE; + ctx->Extensions.ARB_vertex_array_object = GL_TRUE; +#if FEATURE_ARB_vertex_program + ctx->Extensions.ARB_vertex_program = GL_TRUE; +#endif +#if FEATURE_ARB_vertex_shader + ctx->Extensions.ARB_vertex_shader = GL_TRUE; +#endif +#if FEATURE_ARB_vertex_buffer_object + /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/ +#endif +#if FEATURE_ARB_sync + ctx->Extensions.ARB_sync = GL_TRUE; +#endif + ctx->Extensions.APPLE_vertex_array_object = GL_TRUE; +#if FEATURE_APPLE_object_purgeable + ctx->Extensions.APPLE_object_purgeable = GL_TRUE; +#endif + ctx->Extensions.ATI_envmap_bumpmap = GL_TRUE; +#if FEATURE_ATI_fragment_shader + ctx->Extensions.ATI_fragment_shader = GL_TRUE; +#endif + ctx->Extensions.ATI_texture_compression_3dc = GL_TRUE; + ctx->Extensions.ATI_texture_env_combine3 = GL_TRUE; + ctx->Extensions.ATI_texture_mirror_once = GL_TRUE; + ctx->Extensions.ATI_separate_stencil = GL_TRUE; + ctx->Extensions.EXT_blend_color = GL_TRUE; + ctx->Extensions.EXT_blend_equation_separate = GL_TRUE; + ctx->Extensions.EXT_blend_func_separate = GL_TRUE; + ctx->Extensions.EXT_blend_logic_op = GL_TRUE; + ctx->Extensions.EXT_blend_minmax = GL_TRUE; + ctx->Extensions.EXT_blend_subtract = GL_TRUE; + ctx->Extensions.EXT_depth_bounds_test = GL_TRUE; + ctx->Extensions.EXT_draw_buffers2 = GL_TRUE; + ctx->Extensions.EXT_fog_coord = GL_TRUE; +#if FEATURE_EXT_framebuffer_object + ctx->Extensions.EXT_framebuffer_object = GL_TRUE; +#endif +#if FEATURE_EXT_framebuffer_blit + ctx->Extensions.EXT_framebuffer_blit = GL_TRUE; +#endif +#if FEATURE_ARB_framebuffer_object + ctx->Extensions.EXT_framebuffer_multisample = GL_TRUE; +#endif + /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/ + ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE; + ctx->Extensions.EXT_paletted_texture = GL_TRUE; +#if FEATURE_EXT_pixel_buffer_object + ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; +#endif + ctx->Extensions.EXT_point_parameters = GL_TRUE; + ctx->Extensions.EXT_provoking_vertex = GL_TRUE; + ctx->Extensions.EXT_shadow_funcs = GL_TRUE; + ctx->Extensions.EXT_secondary_color = GL_TRUE; + ctx->Extensions.EXT_shared_texture_palette = GL_TRUE; + ctx->Extensions.EXT_stencil_wrap = GL_TRUE; + ctx->Extensions.EXT_stencil_two_side = GL_TRUE; + ctx->Extensions.EXT_texture_array = GL_TRUE; + ctx->Extensions.EXT_texture_compression_latc = GL_TRUE; + ctx->Extensions.EXT_texture_env_add = GL_TRUE; + ctx->Extensions.EXT_texture_env_combine = GL_TRUE; + ctx->Extensions.EXT_texture_env_dot3 = GL_TRUE; + ctx->Extensions.EXT_texture_mirror_clamp = GL_TRUE; + ctx->Extensions.EXT_texture_lod_bias = GL_TRUE; + ctx->Extensions.EXT_texture_shared_exponent = GL_TRUE; +#if FEATURE_EXT_texture_sRGB + ctx->Extensions.EXT_texture_sRGB = GL_TRUE; + ctx->Extensions.EXT_texture_sRGB_decode = GL_TRUE; +#endif + ctx->Extensions.EXT_texture_swizzle = GL_TRUE; +#if FEATURE_EXT_transform_feedback + /*ctx->Extensions.EXT_transform_feedback = GL_TRUE;*/ +#endif + ctx->Extensions.EXT_vertex_array_bgra = GL_TRUE; + /*ctx->Extensions.IBM_multimode_draw_arrays = GL_TRUE;*/ + ctx->Extensions.MESA_pack_invert = GL_TRUE; + ctx->Extensions.MESA_resize_buffers = GL_TRUE; + ctx->Extensions.MESA_texture_array = GL_TRUE; + ctx->Extensions.MESA_ycbcr_texture = GL_TRUE; + ctx->Extensions.NV_blend_square = GL_TRUE; + ctx->Extensions.NV_conditional_render = GL_TRUE; + /*ctx->Extensions.NV_light_max_exponent = GL_TRUE;*/ + ctx->Extensions.NV_point_sprite = GL_TRUE; + ctx->Extensions.NV_texture_env_combine4 = GL_TRUE; + ctx->Extensions.NV_texture_rectangle = GL_TRUE; + /*ctx->Extensions.NV_texgen_reflection = GL_TRUE;*/ +#if FEATURE_NV_vertex_program + ctx->Extensions.NV_vertex_program = GL_TRUE; + ctx->Extensions.NV_vertex_program1_1 = GL_TRUE; +#endif +#if FEATURE_NV_fragment_program + ctx->Extensions.NV_fragment_program = GL_TRUE; +#endif +#if FEATURE_NV_fragment_program && FEATURE_ARB_fragment_program + ctx->Extensions.NV_fragment_program_option = GL_TRUE; +#endif + /*ctx->Extensions.SGIS_generate_mipmap = GL_TRUE;*/ + ctx->Extensions.SGIS_texture_edge_clamp = GL_TRUE; +#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program + ctx->Extensions.EXT_gpu_program_parameters = GL_TRUE; +#endif +#if FEATURE_texture_fxt1 + _mesa_enable_extension(ctx, "GL_3DFX_texture_compression_FXT1"); +#endif +#if FEATURE_texture_s3tc + if (ctx->Mesa_DXTn) { + _mesa_enable_extension(ctx, "GL_EXT_texture_compression_s3tc"); + _mesa_enable_extension(ctx, "GL_S3_s3tc"); + } +#endif +} + + +/** + * Enable common EXT extensions in the ARB_imaging subset. + */ +void +_mesa_enable_imaging_extensions(struct gl_context *ctx) +{ + ctx->Extensions.EXT_blend_color = GL_TRUE; + ctx->Extensions.EXT_blend_logic_op = GL_TRUE; + ctx->Extensions.EXT_blend_minmax = GL_TRUE; + ctx->Extensions.EXT_blend_subtract = GL_TRUE; +} + + + +/** + * Enable all OpenGL 1.3 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_1_3_extensions(struct gl_context *ctx) +{ + /*ctx->Extensions.ARB_multisample = GL_TRUE;*/ + ctx->Extensions.ARB_multitexture = GL_TRUE; + ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; + /*ctx->Extensions.ARB_texture_compression = GL_TRUE;*/ + ctx->Extensions.ARB_texture_cube_map = GL_TRUE; + ctx->Extensions.ARB_texture_env_combine = GL_TRUE; + ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE; + ctx->Extensions.EXT_texture_env_add = GL_TRUE; + /*ctx->Extensions.ARB_transpose_matrix = GL_TRUE;*/ +} + + + +/** + * Enable all OpenGL 1.4 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_1_4_extensions(struct gl_context *ctx) +{ + ctx->Extensions.ARB_depth_texture = GL_TRUE; + ctx->Extensions.ARB_shadow = GL_TRUE; + ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE; + ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE; + ctx->Extensions.ARB_window_pos = GL_TRUE; + ctx->Extensions.EXT_blend_color = GL_TRUE; + ctx->Extensions.EXT_blend_func_separate = GL_TRUE; + ctx->Extensions.EXT_blend_minmax = GL_TRUE; + ctx->Extensions.EXT_blend_subtract = GL_TRUE; + ctx->Extensions.EXT_fog_coord = GL_TRUE; + /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/ + ctx->Extensions.EXT_point_parameters = GL_TRUE; + ctx->Extensions.EXT_secondary_color = GL_TRUE; + ctx->Extensions.EXT_stencil_wrap = GL_TRUE; + ctx->Extensions.EXT_texture_lod_bias = GL_TRUE; + /*ctx->Extensions.SGIS_generate_mipmap = GL_TRUE;*/ +} + + +/** + * Enable all OpenGL 1.5 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_1_5_extensions(struct gl_context *ctx) +{ + ctx->Extensions.ARB_occlusion_query = GL_TRUE; + /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/ + ctx->Extensions.EXT_shadow_funcs = GL_TRUE; +} + + +/** + * Enable all OpenGL 2.0 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_2_0_extensions(struct gl_context *ctx) +{ + /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ +#if FEATURE_ARB_fragment_shader + ctx->Extensions.ARB_fragment_shader = GL_TRUE; +#endif + ctx->Extensions.ARB_point_sprite = GL_TRUE; + ctx->Extensions.EXT_blend_equation_separate = GL_TRUE; + ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; +#if FEATURE_ARB_shader_objects + ctx->Extensions.ARB_shader_objects = GL_TRUE; +#endif +#if FEATURE_ARB_shading_language_100 + ctx->Extensions.ARB_shading_language_100 = GL_TRUE; +#endif + ctx->Extensions.EXT_stencil_two_side = GL_TRUE; +#if FEATURE_ARB_vertex_shader + ctx->Extensions.ARB_vertex_shader = GL_TRUE; +#endif +} + + +/** + * Enable all OpenGL 2.1 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_2_1_extensions(struct gl_context *ctx) +{ +#if FEATURE_EXT_pixel_buffer_object + ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; +#endif +#if FEATURE_EXT_texture_sRGB + ctx->Extensions.EXT_texture_sRGB = GL_TRUE; +#endif +} + + +/** + * Either enable or disable the named extension. + * \return GL_TRUE for success, GL_FALSE if invalid extension name + */ +static GLboolean +set_extension( struct gl_context *ctx, const char *name, GLboolean state ) +{ + size_t offset; + + if (ctx->Extensions.String) { + /* The string was already queried - can't change it now! */ + _mesa_problem(ctx, "Trying to enable/disable extension after glGetString(GL_EXTENSIONS): %s", name); + return GL_FALSE; + } + + offset = name_to_offset(name); + if (offset == 0) { + _mesa_problem(ctx, "Trying to enable/disable unknown extension %s", + name); + return GL_FALSE; + } else if (offset == o(dummy_true) && state == GL_FALSE) { + _mesa_problem(ctx, "Trying to disable a permanently enabled extension: " + "%s", name); + return GL_FALSE; + } else { + GLboolean *base = (GLboolean *) &ctx->Extensions; + base[offset] = state; + return GL_TRUE; + } +} + + +/** + * Enable the named extension. + * Typically called by drivers. + */ +void +_mesa_enable_extension( struct gl_context *ctx, const char *name ) +{ + if (!set_extension(ctx, name, GL_TRUE)) + _mesa_problem(ctx, "Trying to enable unknown extension: %s", name); +} + + +/** + * Disable the named extension. + * XXX is this really needed??? + */ +void +_mesa_disable_extension( struct gl_context *ctx, const char *name ) +{ + if (!set_extension(ctx, name, GL_FALSE)) + _mesa_problem(ctx, "Trying to disable unknown extension: %s", name); +} + + +/** + * Test if the named extension is enabled in this context. + */ +GLboolean +_mesa_extension_is_enabled( struct gl_context *ctx, const char *name ) +{ + size_t offset; + GLboolean *base; + + if (name == 0) + return GL_FALSE; + + offset = name_to_offset(name); + if (offset == 0) + return GL_FALSE; + base = (GLboolean *) &ctx->Extensions; + return base[offset]; +} + + +/** + * \brief Apply the \c MESA_EXTENSION_OVERRIDE environment variable. + * + * \c MESA_EXTENSION_OVERRIDE is a space-separated list of extensions to + * enable or disable. The list is processed thus: + * - Enable recognized extension names that are prefixed with '+'. + * - Disable recognized extension names that are prefixed with '-'. + * - Enable recognized extension names that are not prefixed. + * - Collect unrecognized extension names in a new string. + * + * \return Space-separated list of unrecognized extension names (which must + * be freed). Does not return \c NULL. + */ +static char * +get_extension_override( struct gl_context *ctx ) +{ + const char *env_const = _mesa_getenv("MESA_EXTENSION_OVERRIDE"); + char *env; + char *ext; + char *extra_exts; + int len; + + if (env_const == NULL) { + /* Return the empty string rather than NULL. This simplifies the logic + * of client functions. */ + return calloc(1, sizeof(char)); + } + + /* extra_exts: List of unrecognized extensions. */ + extra_exts = calloc(strlen(env_const), sizeof(char)); + + /* Copy env_const because strtok() is destructive. */ + env = strdup(env_const); + for (ext = strtok(env, " "); ext != NULL; ext = strtok(NULL, " ")) { + int enable; + int recognized; + switch (ext[0]) { + case '+': + enable = 1; + ++ext; + break; + case '-': + enable = 0; + ++ext; + break; + default: + enable = 1; + break; + } + recognized = set_extension(ctx, ext, enable); + if (!recognized) { + strcat(extra_exts, ext); + strcat(extra_exts, " "); + } + } + + /* Remove trailing space. */ + len = strlen(extra_exts); + if (extra_exts[len - 1] == ' ') + extra_exts[len - 1] = '\0'; + + return extra_exts; +} + + +/** + * \brief Initialize extension tables and enable default extensions. + * + * This should be called during context initialization. + * Note: Sets gl_extensions.dummy_true to true. + */ +void +_mesa_init_extensions( struct gl_context *ctx ) +{ + GLboolean *base = (GLboolean *) &ctx->Extensions; + GLboolean *sentinel = base + o(extension_sentinel); + GLboolean *i; + const size_t *j; + + /* First, turn all extensions off. */ + for (i = base; i != sentinel; ++i) + *i = GL_FALSE; + + /* Then, selectively turn default extensions on. */ + ctx->Extensions.dummy_true = GL_TRUE; + for (j = default_extensions; *j != 0; ++j) + base[*j] = GL_TRUE; +} + + +typedef unsigned short extension_index; + + +/** + * Compare two entries of the extensions table. Sorts first by year, + * then by name. + * + * Arguments are indices into extension_table. + */ +static int +extension_compare(const void *p1, const void *p2) +{ + extension_index i1 = * (const extension_index *) p1; + extension_index i2 = * (const extension_index *) p2; + const struct extension *e1 = &extension_table[i1]; + const struct extension *e2 = &extension_table[i2]; + int res; + + res = (int)e1->year - (int)e2->year; + + if (res == 0) { + res = strcmp(e1->name, e2->name); + } + + return res; +} + + +/** + * Construct the GL_EXTENSIONS string. Called the first time that + * glGetString(GL_EXTENSIONS) is called. + */ +GLubyte* +_mesa_make_extension_string(struct gl_context *ctx) +{ + /* The extension string. */ + char *exts = 0; + /* Length of extension string. */ + size_t length = 0; + /* Number of extensions */ + unsigned count; + /* Indices of the extensions sorted by year */ + extension_index *extension_indices; + /* String of extra extensions. */ + char *extra_extensions = get_extension_override(ctx); + GLboolean *base = (GLboolean *) &ctx->Extensions; + const struct extension *i; + unsigned j; + unsigned maxYear = ~0; + + /* Check if the MESA_EXTENSION_MAX_YEAR env var is set */ + { + const char *env = getenv("MESA_EXTENSION_MAX_YEAR"); + if (env) { + maxYear = atoi(env); + _mesa_debug(ctx, "Note: limiting GL extensions to %u or earlier\n", + maxYear); + } + } + + /* Compute length of the extension string. */ + count = 0; + for (i = extension_table; i->name != 0; ++i) { + if (base[i->offset] && + i->year <= maxYear && + (i->api_set & (1 << ctx->API))) { + length += strlen(i->name) + 1; /* +1 for space */ + ++count; + } + } + if (extra_extensions != NULL) + length += 1 + strlen(extra_extensions); /* +1 for space */ + + exts = (char *) calloc(length + 1, sizeof(char)); + if (exts == NULL) { + free(extra_extensions); + return NULL; + } + + extension_indices = malloc(count * sizeof(extension_index)); + if (extension_indices == NULL) { + free(exts); + free(extra_extensions); + return NULL; + } + + /* Sort extensions in chronological order because certain old applications (e.g., + * Quake3 demo) store the extension list in a static size buffer so chronologically + * order ensure that the extensions that such applications expect will fit into + * that buffer. + */ + j = 0; + for (i = extension_table; i->name != 0; ++i) { + if (base[i->offset] && + i->year <= maxYear && + (i->api_set & (1 << ctx->API))) { + extension_indices[j++] = i - extension_table; + } + } + assert(j == count); + qsort(extension_indices, count, sizeof *extension_indices, extension_compare); + + /* Build the extension string.*/ + for (j = 0; j < count; ++j) { + i = &extension_table[extension_indices[j]]; + assert(base[i->offset] && (i->api_set & (1 << ctx->API))); + strcat(exts, i->name); + strcat(exts, " "); + } + free(extension_indices); + if (extra_extensions != 0) { + strcat(exts, extra_extensions); + free(extra_extensions); + } + + return (GLubyte *) exts; +} + +/** + * Return number of enabled extensions. + */ +GLuint +_mesa_get_extension_count(struct gl_context *ctx) +{ + GLboolean *base; + const struct extension *i; + + /* only count once */ + if (ctx->Extensions.Count != 0) + return ctx->Extensions.Count; + + base = (GLboolean *) &ctx->Extensions; + for (i = extension_table; i->name != 0; ++i) { + if (base[i->offset]) { + ctx->Extensions.Count++; + } + } + return ctx->Extensions.Count; +} + +/** + * Return name of i-th enabled extension + */ +const GLubyte * +_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index) +{ + const GLboolean *base; + size_t n; + const struct extension *i; + + if (index < 0) + return NULL; + + base = (GLboolean*) &ctx->Extensions; + n = 0; + for (i = extension_table; i->name != 0; ++i) { + if (n == index && base[i->offset]) { + return (GLubyte*) i->name; + } else if (base[i->offset]) { + ++n; + } + } + + return NULL; +} diff --git a/mesalib/src/mesa/main/remap_helper.h b/mesalib/src/mesa/main/remap_helper.h index f506efcef..fdb86d3e3 100644 --- a/mesalib/src/mesa/main/remap_helper.h +++ b/mesalib/src/mesa/main/remap_helper.h @@ -70,2583 +70,2577 @@ static const char _mesa_function_pool[] = "\0" "glLoadIdentity\0" "\0" - /* _mesa_function_pool[216]: SampleCoverageARB (will be remapped) */ + /* _mesa_function_pool[216]: GetCombinerOutputParameterfvNV (will be remapped) */ + "iiip\0" + "glGetCombinerOutputParameterfvNV\0" + "\0" + /* _mesa_function_pool[255]: SampleCoverageARB (will be remapped) */ "fi\0" "glSampleCoverage\0" "glSampleCoverageARB\0" "\0" - /* _mesa_function_pool[257]: ConvolutionFilter1D (offset 348) */ + /* _mesa_function_pool[296]: ConvolutionFilter1D (offset 348) */ "iiiiip\0" "glConvolutionFilter1D\0" "glConvolutionFilter1DEXT\0" "\0" - /* _mesa_function_pool[312]: BeginQueryARB (will be remapped) */ + /* _mesa_function_pool[351]: BeginQueryARB (will be remapped) */ "ii\0" "glBeginQuery\0" "glBeginQueryARB\0" "\0" - /* _mesa_function_pool[345]: RasterPos3dv (offset 71) */ + /* _mesa_function_pool[384]: RasterPos3dv (offset 71) */ "p\0" "glRasterPos3dv\0" "\0" - /* _mesa_function_pool[363]: PointParameteriNV (will be remapped) */ + /* _mesa_function_pool[402]: PointParameteriNV (will be remapped) */ "ii\0" "glPointParameteri\0" "glPointParameteriNV\0" "\0" - /* _mesa_function_pool[405]: GetProgramiv (will be remapped) */ + /* _mesa_function_pool[444]: GetProgramiv (will be remapped) */ "iip\0" "glGetProgramiv\0" "\0" - /* _mesa_function_pool[425]: MultiTexCoord3sARB (offset 398) */ + /* _mesa_function_pool[464]: MultiTexCoord3sARB (offset 398) */ "iiii\0" "glMultiTexCoord3s\0" "glMultiTexCoord3sARB\0" "\0" - /* _mesa_function_pool[470]: SecondaryColor3iEXT (will be remapped) */ + /* _mesa_function_pool[509]: SecondaryColor3iEXT (will be remapped) */ "iii\0" "glSecondaryColor3i\0" "glSecondaryColor3iEXT\0" "\0" - /* _mesa_function_pool[516]: WindowPos3fMESA (will be remapped) */ + /* _mesa_function_pool[555]: WindowPos3fMESA (will be remapped) */ "fff\0" "glWindowPos3f\0" "glWindowPos3fARB\0" "glWindowPos3fMESA\0" "\0" - /* _mesa_function_pool[570]: TexCoord1iv (offset 99) */ + /* _mesa_function_pool[609]: TexCoord1iv (offset 99) */ "p\0" "glTexCoord1iv\0" "\0" - /* _mesa_function_pool[587]: TexCoord4sv (offset 125) */ + /* _mesa_function_pool[626]: TexCoord4sv (offset 125) */ "p\0" "glTexCoord4sv\0" "\0" - /* _mesa_function_pool[604]: RasterPos4s (offset 84) */ + /* _mesa_function_pool[643]: RasterPos4s (offset 84) */ "iiii\0" "glRasterPos4s\0" "\0" - /* _mesa_function_pool[624]: PixelTexGenParameterfvSGIS (will be remapped) */ + /* _mesa_function_pool[663]: PixelTexGenParameterfvSGIS (will be remapped) */ "ip\0" "glPixelTexGenParameterfvSGIS\0" "\0" - /* _mesa_function_pool[657]: ActiveTextureARB (offset 374) */ + /* _mesa_function_pool[696]: ActiveTextureARB (offset 374) */ "i\0" "glActiveTexture\0" "glActiveTextureARB\0" "\0" - /* _mesa_function_pool[695]: BlitFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[734]: BlitFramebufferEXT (will be remapped) */ "iiiiiiiiii\0" "glBlitFramebuffer\0" "glBlitFramebufferEXT\0" "\0" - /* _mesa_function_pool[746]: TexCoord1f (offset 96) */ + /* _mesa_function_pool[785]: TexCoord1f (offset 96) */ "f\0" "glTexCoord1f\0" "\0" - /* _mesa_function_pool[762]: TexCoord1d (offset 94) */ + /* _mesa_function_pool[801]: TexCoord1d (offset 94) */ "d\0" "glTexCoord1d\0" "\0" - /* _mesa_function_pool[778]: VertexAttrib4ubvNV (will be remapped) */ + /* _mesa_function_pool[817]: VertexAttrib4ubvNV (will be remapped) */ "ip\0" "glVertexAttrib4ubvNV\0" "\0" - /* _mesa_function_pool[803]: TexCoord1i (offset 98) */ + /* _mesa_function_pool[842]: TexCoord1i (offset 98) */ "i\0" "glTexCoord1i\0" "\0" - /* _mesa_function_pool[819]: GetProgramNamedParameterdvNV (will be remapped) */ + /* _mesa_function_pool[858]: GetProgramNamedParameterdvNV (will be remapped) */ "iipp\0" "glGetProgramNamedParameterdvNV\0" "\0" - /* _mesa_function_pool[856]: Histogram (offset 367) */ + /* _mesa_function_pool[895]: Histogram (offset 367) */ "iiii\0" "glHistogram\0" "glHistogramEXT\0" "\0" - /* _mesa_function_pool[889]: TexCoord1s (offset 100) */ + /* _mesa_function_pool[928]: TexCoord1s (offset 100) */ "i\0" "glTexCoord1s\0" "\0" - /* _mesa_function_pool[905]: GetMapfv (offset 267) */ + /* _mesa_function_pool[944]: GetMapfv (offset 267) */ "iip\0" "glGetMapfv\0" "\0" - /* _mesa_function_pool[921]: EvalCoord1f (offset 230) */ + /* _mesa_function_pool[960]: EvalCoord1f (offset 230) */ "f\0" "glEvalCoord1f\0" "\0" - /* _mesa_function_pool[938]: FramebufferTexture (will be remapped) */ + /* _mesa_function_pool[977]: FramebufferTexture (will be remapped) */ "iiii\0" "glFramebufferTexture\0" "\0" - /* _mesa_function_pool[965]: GetGraphicsResetStatusARB (will be remapped) */ + /* _mesa_function_pool[1004]: GetGraphicsResetStatusARB (will be remapped) */ "\0" "glGetGraphicsResetStatusARB\0" "\0" - /* _mesa_function_pool[995]: TexImage4DSGIS (dynamic) */ + /* _mesa_function_pool[1034]: TexImage4DSGIS (dynamic) */ "iiiiiiiiiip\0" "glTexImage4DSGIS\0" "\0" - /* _mesa_function_pool[1025]: PolygonStipple (offset 175) */ + /* _mesa_function_pool[1064]: PolygonStipple (offset 175) */ "p\0" "glPolygonStipple\0" "\0" - /* _mesa_function_pool[1045]: WindowPos2dvMESA (will be remapped) */ + /* _mesa_function_pool[1084]: WindowPos2dvMESA (will be remapped) */ "p\0" "glWindowPos2dv\0" "glWindowPos2dvARB\0" "glWindowPos2dvMESA\0" "\0" - /* _mesa_function_pool[1100]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1139]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1144]: BlendEquationSeparateEXT (will be remapped) */ + /* _mesa_function_pool[1183]: BlendEquationSeparateEXT (will be remapped) */ "ii\0" "glBlendEquationSeparate\0" "glBlendEquationSeparateEXT\0" "glBlendEquationSeparateATI\0" "\0" - /* _mesa_function_pool[1226]: ListParameterfSGIX (dynamic) */ + /* _mesa_function_pool[1265]: ListParameterfSGIX (dynamic) */ "iif\0" "glListParameterfSGIX\0" "\0" - /* _mesa_function_pool[1252]: SecondaryColor3bEXT (will be remapped) */ + /* _mesa_function_pool[1291]: SecondaryColor3bEXT (will be remapped) */ "iii\0" "glSecondaryColor3b\0" "glSecondaryColor3bEXT\0" "\0" - /* _mesa_function_pool[1298]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[1337]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */ "pppp\0" "glTexCoord4fColor4fNormal3fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[1344]: GetnPolygonStippleARB (will be remapped) */ + /* _mesa_function_pool[1383]: GetnPolygonStippleARB (will be remapped) */ "ip\0" "glGetnPolygonStippleARB\0" "\0" - /* _mesa_function_pool[1372]: GetPixelMapfv (offset 271) */ + /* _mesa_function_pool[1411]: GetPixelMapfv (offset 271) */ "ip\0" "glGetPixelMapfv\0" "\0" - /* _mesa_function_pool[1392]: Color3uiv (offset 22) */ + /* _mesa_function_pool[1431]: Color3uiv (offset 22) */ "p\0" "glColor3uiv\0" "\0" - /* _mesa_function_pool[1407]: IsEnabled (offset 286) */ + /* _mesa_function_pool[1446]: IsEnabled (offset 286) */ "i\0" "glIsEnabled\0" "\0" - /* _mesa_function_pool[1422]: VertexAttrib4svNV (will be remapped) */ + /* _mesa_function_pool[1461]: VertexAttrib4svNV (will be remapped) */ "ip\0" "glVertexAttrib4svNV\0" "\0" - /* _mesa_function_pool[1446]: EvalCoord2fv (offset 235) */ + /* _mesa_function_pool[1485]: EvalCoord2fv (offset 235) */ "p\0" "glEvalCoord2fv\0" "\0" - /* _mesa_function_pool[1464]: GetBufferSubDataARB (will be remapped) */ + /* _mesa_function_pool[1503]: GetBufferSubDataARB (will be remapped) */ "iiip\0" "glGetBufferSubData\0" "glGetBufferSubDataARB\0" "\0" - /* _mesa_function_pool[1511]: BufferSubDataARB (will be remapped) */ + /* _mesa_function_pool[1550]: BufferSubDataARB (will be remapped) */ "iiip\0" "glBufferSubData\0" "glBufferSubDataARB\0" "\0" - /* _mesa_function_pool[1552]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1591]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1590]: AttachShader (will be remapped) */ + /* _mesa_function_pool[1629]: AttachShader (will be remapped) */ "ii\0" "glAttachShader\0" "\0" - /* _mesa_function_pool[1609]: GetCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[1648]: GetCombinerInputParameterfvNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[1648]: VertexAttrib2fARB (will be remapped) */ + /* _mesa_function_pool[1687]: VertexAttrib2fARB (will be remapped) */ "iff\0" "glVertexAttrib2f\0" "glVertexAttrib2fARB\0" "\0" - /* _mesa_function_pool[1690]: GetDebugLogLengthMESA (dynamic) */ + /* _mesa_function_pool[1729]: GetDebugLogLengthMESA (dynamic) */ "iii\0" "glGetDebugLogLengthMESA\0" "\0" - /* _mesa_function_pool[1719]: GetMapiv (offset 268) */ + /* _mesa_function_pool[1758]: GetMapiv (offset 268) */ "iip\0" "glGetMapiv\0" "\0" - /* _mesa_function_pool[1735]: VertexAttrib3fARB (will be remapped) */ + /* _mesa_function_pool[1774]: VertexAttrib3fARB (will be remapped) */ "ifff\0" "glVertexAttrib3f\0" "glVertexAttrib3fARB\0" "\0" - /* _mesa_function_pool[1778]: Indexubv (offset 316) */ + /* _mesa_function_pool[1817]: Indexubv (offset 316) */ "p\0" "glIndexubv\0" "\0" - /* _mesa_function_pool[1792]: GetQueryivARB (will be remapped) */ + /* _mesa_function_pool[1831]: GetQueryivARB (will be remapped) */ "iip\0" "glGetQueryiv\0" "glGetQueryivARB\0" "\0" - /* _mesa_function_pool[1826]: TexImage3D (offset 371) */ + /* _mesa_function_pool[1865]: TexImage3D (offset 371) */ "iiiiiiiiip\0" "glTexImage3D\0" "glTexImage3DEXT\0" "\0" - /* _mesa_function_pool[1867]: BindFragDataLocationEXT (will be remapped) */ + /* _mesa_function_pool[1906]: BindFragDataLocationEXT (will be remapped) */ "iip\0" "glBindFragDataLocationEXT\0" "glBindFragDataLocation\0" "\0" - /* _mesa_function_pool[1921]: ReplacementCodeuiVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1960]: ReplacementCodeuiVertex3fvSUN (dynamic) */ "pp\0" "glReplacementCodeuiVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1957]: EdgeFlagPointer (offset 312) */ + /* _mesa_function_pool[1996]: EdgeFlagPointer (offset 312) */ "ip\0" "glEdgeFlagPointer\0" "\0" - /* _mesa_function_pool[1979]: Color3ubv (offset 20) */ + /* _mesa_function_pool[2018]: Color3ubv (offset 20) */ "p\0" "glColor3ubv\0" "\0" - /* _mesa_function_pool[1994]: GetQueryObjectivARB (will be remapped) */ + /* _mesa_function_pool[2033]: GetQueryObjectivARB (will be remapped) */ "iip\0" "glGetQueryObjectiv\0" "glGetQueryObjectivARB\0" "\0" - /* _mesa_function_pool[2040]: Vertex3dv (offset 135) */ + /* _mesa_function_pool[2079]: Vertex3dv (offset 135) */ "p\0" "glVertex3dv\0" "\0" - /* _mesa_function_pool[2055]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[2094]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiTexCoord2fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[2102]: CompressedTexSubImage2DARB (will be remapped) */ + /* _mesa_function_pool[2141]: CompressedTexSubImage2DARB (will be remapped) */ "iiiiiiiip\0" "glCompressedTexSubImage2D\0" "glCompressedTexSubImage2DARB\0" "\0" - /* _mesa_function_pool[2168]: CombinerOutputNV (will be remapped) */ + /* _mesa_function_pool[2207]: CombinerOutputNV (will be remapped) */ "iiiiiiiiii\0" "glCombinerOutputNV\0" "\0" - /* _mesa_function_pool[2199]: VertexAttribs3fvNV (will be remapped) */ + /* _mesa_function_pool[2238]: VertexAttribs3fvNV (will be remapped) */ "iip\0" "glVertexAttribs3fvNV\0" "\0" - /* _mesa_function_pool[2225]: GetnMapivARB (will be remapped) */ + /* _mesa_function_pool[2264]: GetnMapivARB (will be remapped) */ "iiip\0" "glGetnMapivARB\0" "\0" - /* _mesa_function_pool[2246]: Uniform2fARB (will be remapped) */ + /* _mesa_function_pool[2285]: Uniform2fARB (will be remapped) */ "iff\0" "glUniform2f\0" "glUniform2fARB\0" "\0" - /* _mesa_function_pool[2278]: LightModeliv (offset 166) */ + /* _mesa_function_pool[2317]: LightModeliv (offset 166) */ "ip\0" "glLightModeliv\0" "\0" - /* _mesa_function_pool[2297]: VertexAttrib1svARB (will be remapped) */ + /* _mesa_function_pool[2336]: VertexAttrib1svARB (will be remapped) */ "ip\0" "glVertexAttrib1sv\0" "glVertexAttrib1svARB\0" "\0" - /* _mesa_function_pool[2340]: VertexAttribs1dvNV (will be remapped) */ + /* _mesa_function_pool[2379]: VertexAttribs1dvNV (will be remapped) */ "iip\0" "glVertexAttribs1dvNV\0" "\0" - /* _mesa_function_pool[2366]: Uniform2ivARB (will be remapped) */ + /* _mesa_function_pool[2405]: Uniform2ivARB (will be remapped) */ "iip\0" "glUniform2iv\0" "glUniform2ivARB\0" "\0" - /* _mesa_function_pool[2400]: GetImageTransformParameterfvHP (dynamic) */ + /* _mesa_function_pool[2439]: GetImageTransformParameterfvHP (dynamic) */ "iip\0" "glGetImageTransformParameterfvHP\0" "\0" - /* _mesa_function_pool[2438]: Normal3bv (offset 53) */ + /* _mesa_function_pool[2477]: Normal3bv (offset 53) */ "p\0" "glNormal3bv\0" "\0" - /* _mesa_function_pool[2453]: TexGeniv (offset 193) */ + /* _mesa_function_pool[2492]: TexGeniv (offset 193) */ "iip\0" "glTexGeniv\0" "\0" - /* _mesa_function_pool[2469]: WeightubvARB (dynamic) */ + /* _mesa_function_pool[2508]: WeightubvARB (dynamic) */ "ip\0" "glWeightubvARB\0" "\0" - /* _mesa_function_pool[2488]: VertexAttrib1fvNV (will be remapped) */ + /* _mesa_function_pool[2527]: VertexAttrib1fvNV (will be remapped) */ "ip\0" "glVertexAttrib1fvNV\0" "\0" - /* _mesa_function_pool[2512]: Vertex3iv (offset 139) */ + /* _mesa_function_pool[2551]: Vertex3iv (offset 139) */ "p\0" "glVertex3iv\0" "\0" - /* _mesa_function_pool[2527]: CopyConvolutionFilter1D (offset 354) */ + /* _mesa_function_pool[2566]: CopyConvolutionFilter1D (offset 354) */ "iiiii\0" "glCopyConvolutionFilter1D\0" "glCopyConvolutionFilter1DEXT\0" "\0" - /* _mesa_function_pool[2589]: VertexAttribI1uiEXT (will be remapped) */ + /* _mesa_function_pool[2628]: VertexAttribI1uiEXT (will be remapped) */ "ii\0" "glVertexAttribI1uiEXT\0" "glVertexAttribI1ui\0" "\0" - /* _mesa_function_pool[2634]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[2673]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */ "iffffff\0" "glReplacementCodeuiNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[2682]: DeleteSync (will be remapped) */ + /* _mesa_function_pool[2721]: DeleteSync (will be remapped) */ "i\0" "glDeleteSync\0" "\0" - /* _mesa_function_pool[2698]: FragmentMaterialfvSGIX (dynamic) */ + /* _mesa_function_pool[2737]: FragmentMaterialfvSGIX (dynamic) */ "iip\0" "glFragmentMaterialfvSGIX\0" "\0" - /* _mesa_function_pool[2728]: BlendColor (offset 336) */ + /* _mesa_function_pool[2767]: BlendColor (offset 336) */ "ffff\0" "glBlendColor\0" "glBlendColorEXT\0" "\0" - /* _mesa_function_pool[2763]: UniformMatrix4fvARB (will be remapped) */ + /* _mesa_function_pool[2802]: UniformMatrix4fvARB (will be remapped) */ "iiip\0" "glUniformMatrix4fv\0" "glUniformMatrix4fvARB\0" "\0" - /* _mesa_function_pool[2810]: DeleteVertexArraysAPPLE (will be remapped) */ + /* _mesa_function_pool[2849]: DeleteVertexArraysAPPLE (will be remapped) */ "ip\0" "glDeleteVertexArrays\0" "glDeleteVertexArraysAPPLE\0" "\0" - /* _mesa_function_pool[2861]: TexBuffer (will be remapped) */ + /* _mesa_function_pool[2900]: TexBuffer (will be remapped) */ "iii\0" "glTexBuffer\0" "\0" - /* _mesa_function_pool[2878]: ReadInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[2917]: ReadInstrumentsSGIX (dynamic) */ "i\0" "glReadInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[2903]: CallLists (offset 3) */ + /* _mesa_function_pool[2942]: CallLists (offset 3) */ "iip\0" "glCallLists\0" "\0" - /* _mesa_function_pool[2920]: UniformMatrix2x4fv (will be remapped) */ + /* _mesa_function_pool[2959]: DeformationMap3dSGIX (dynamic) */ + "iddiiddiiddiip\0" + "glDeformationMap3dSGIX\0" + "\0" + /* _mesa_function_pool[2998]: UniformMatrix2x4fv (will be remapped) */ "iiip\0" "glUniformMatrix2x4fv\0" "\0" - /* _mesa_function_pool[2947]: ReadnPixelsARB (will be remapped) */ + /* _mesa_function_pool[3025]: ReadnPixelsARB (will be remapped) */ "iiiiiiip\0" "glReadnPixelsARB\0" "\0" - /* _mesa_function_pool[2974]: Color4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[3052]: Color4ubVertex3fvSUN (dynamic) */ "pp\0" "glColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[3001]: Normal3iv (offset 59) */ + /* _mesa_function_pool[3079]: Normal3iv (offset 59) */ "p\0" "glNormal3iv\0" "\0" - /* _mesa_function_pool[3016]: PassThrough (offset 199) */ + /* _mesa_function_pool[3094]: PassThrough (offset 199) */ "f\0" "glPassThrough\0" "\0" - /* _mesa_function_pool[3033]: GetnPixelMapusvARB (will be remapped) */ + /* _mesa_function_pool[3111]: GetnPixelMapusvARB (will be remapped) */ "iip\0" "glGetnPixelMapusvARB\0" "\0" - /* _mesa_function_pool[3059]: TexParameterIivEXT (will be remapped) */ + /* _mesa_function_pool[3137]: TexParameterIivEXT (will be remapped) */ "iip\0" "glTexParameterIivEXT\0" "glTexParameterIiv\0" "\0" - /* _mesa_function_pool[3103]: FramebufferTextureLayerEXT (will be remapped) */ + /* _mesa_function_pool[3181]: FramebufferTextureLayerEXT (will be remapped) */ "iiiii\0" "glFramebufferTextureLayer\0" "glFramebufferTextureLayerEXT\0" "\0" - /* _mesa_function_pool[3165]: GetListParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[3243]: GetListParameterfvSGIX (dynamic) */ "iip\0" "glGetListParameterfvSGIX\0" "\0" - /* _mesa_function_pool[3195]: Viewport (offset 305) */ + /* _mesa_function_pool[3273]: Viewport (offset 305) */ "iiii\0" "glViewport\0" "\0" - /* _mesa_function_pool[3212]: VertexAttrib4NusvARB (will be remapped) */ + /* _mesa_function_pool[3290]: VertexAttrib4NusvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nusv\0" "glVertexAttrib4NusvARB\0" "\0" - /* _mesa_function_pool[3259]: WindowPos4svMESA (will be remapped) */ + /* _mesa_function_pool[3337]: WindowPos4svMESA (will be remapped) */ "p\0" "glWindowPos4svMESA\0" "\0" - /* _mesa_function_pool[3281]: CreateProgramObjectARB (will be remapped) */ + /* _mesa_function_pool[3359]: CreateProgramObjectARB (will be remapped) */ "\0" "glCreateProgramObjectARB\0" "\0" - /* _mesa_function_pool[3308]: DeleteTransformFeedbacks (will be remapped) */ + /* _mesa_function_pool[3386]: DeleteTransformFeedbacks (will be remapped) */ "ip\0" "glDeleteTransformFeedbacks\0" "\0" - /* _mesa_function_pool[3339]: UniformMatrix4x3fv (will be remapped) */ + /* _mesa_function_pool[3417]: UniformMatrix4x3fv (will be remapped) */ "iiip\0" "glUniformMatrix4x3fv\0" "\0" - /* _mesa_function_pool[3366]: PrioritizeTextures (offset 331) */ + /* _mesa_function_pool[3444]: PrioritizeTextures (offset 331) */ "ipp\0" "glPrioritizeTextures\0" "glPrioritizeTexturesEXT\0" "\0" - /* _mesa_function_pool[3416]: VertexAttribI3uiEXT (will be remapped) */ + /* _mesa_function_pool[3494]: VertexAttribI3uiEXT (will be remapped) */ "iiii\0" "glVertexAttribI3uiEXT\0" "glVertexAttribI3ui\0" "\0" - /* _mesa_function_pool[3463]: AsyncMarkerSGIX (dynamic) */ + /* _mesa_function_pool[3541]: AsyncMarkerSGIX (dynamic) */ "i\0" "glAsyncMarkerSGIX\0" "\0" - /* _mesa_function_pool[3484]: GlobalAlphaFactorubSUN (dynamic) */ + /* _mesa_function_pool[3562]: GlobalAlphaFactorubSUN (dynamic) */ "i\0" "glGlobalAlphaFactorubSUN\0" "\0" - /* _mesa_function_pool[3512]: ClearColorIuiEXT (will be remapped) */ + /* _mesa_function_pool[3590]: ClearColorIuiEXT (will be remapped) */ "iiii\0" "glClearColorIuiEXT\0" "\0" - /* _mesa_function_pool[3537]: ClearDebugLogMESA (dynamic) */ + /* _mesa_function_pool[3615]: ClearDebugLogMESA (dynamic) */ "iii\0" "glClearDebugLogMESA\0" "\0" - /* _mesa_function_pool[3562]: Uniform4uiEXT (will be remapped) */ + /* _mesa_function_pool[3640]: Uniform4uiEXT (will be remapped) */ "iiiii\0" "glUniform4uiEXT\0" "glUniform4ui\0" "\0" - /* _mesa_function_pool[3598]: ResetHistogram (offset 369) */ + /* _mesa_function_pool[3676]: ResetHistogram (offset 369) */ "i\0" "glResetHistogram\0" "glResetHistogramEXT\0" "\0" - /* _mesa_function_pool[3638]: GetProgramNamedParameterfvNV (will be remapped) */ + /* _mesa_function_pool[3716]: GetProgramNamedParameterfvNV (will be remapped) */ "iipp\0" "glGetProgramNamedParameterfvNV\0" "\0" - /* _mesa_function_pool[3675]: PointParameterfEXT (will be remapped) */ + /* _mesa_function_pool[3753]: PointParameterfEXT (will be remapped) */ "if\0" "glPointParameterf\0" "glPointParameterfARB\0" "glPointParameterfEXT\0" "glPointParameterfSGIS\0" "\0" - /* _mesa_function_pool[3761]: LoadIdentityDeformationMapSGIX (dynamic) */ + /* _mesa_function_pool[3839]: LoadIdentityDeformationMapSGIX (dynamic) */ "i\0" "glLoadIdentityDeformationMapSGIX\0" "\0" - /* _mesa_function_pool[3797]: GenFencesNV (will be remapped) */ + /* _mesa_function_pool[3875]: GenFencesNV (will be remapped) */ "ip\0" "glGenFencesNV\0" "\0" - /* _mesa_function_pool[3815]: ImageTransformParameterfHP (dynamic) */ + /* _mesa_function_pool[3893]: ImageTransformParameterfHP (dynamic) */ "iif\0" "glImageTransformParameterfHP\0" "\0" - /* _mesa_function_pool[3849]: MatrixIndexusvARB (dynamic) */ + /* _mesa_function_pool[3927]: MatrixIndexusvARB (dynamic) */ "ip\0" "glMatrixIndexusvARB\0" "\0" - /* _mesa_function_pool[3873]: DrawElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[3951]: DrawElementsBaseVertex (will be remapped) */ "iiipi\0" "glDrawElementsBaseVertex\0" "\0" - /* _mesa_function_pool[3905]: DisableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[3983]: DisableVertexAttribArrayARB (will be remapped) */ "i\0" "glDisableVertexAttribArray\0" "glDisableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[3965]: GetnConvolutionFilterARB (will be remapped) */ + /* _mesa_function_pool[4043]: VertexAttribI4ubvEXT (will be remapped) */ + "ip\0" + "glVertexAttribI4ubvEXT\0" + "glVertexAttribI4ubv\0" + "\0" + /* _mesa_function_pool[4090]: GetnConvolutionFilterARB (will be remapped) */ "iiiip\0" "glGetnConvolutionFilterARB\0" "\0" - /* _mesa_function_pool[3999]: TexCoord2sv (offset 109) */ + /* _mesa_function_pool[4124]: TexCoord2sv (offset 109) */ "p\0" "glTexCoord2sv\0" "\0" - /* _mesa_function_pool[4016]: Vertex4dv (offset 143) */ + /* _mesa_function_pool[4141]: Vertex4dv (offset 143) */ "p\0" "glVertex4dv\0" "\0" - /* _mesa_function_pool[4031]: StencilMaskSeparate (will be remapped) */ + /* _mesa_function_pool[4156]: StencilMaskSeparate (will be remapped) */ "ii\0" "glStencilMaskSeparate\0" "\0" - /* _mesa_function_pool[4057]: ProgramLocalParameter4dARB (will be remapped) */ + /* _mesa_function_pool[4182]: ProgramLocalParameter4dARB (will be remapped) */ "iidddd\0" "glProgramLocalParameter4dARB\0" "\0" - /* _mesa_function_pool[4094]: CompressedTexImage3DARB (will be remapped) */ + /* _mesa_function_pool[4219]: CompressedTexImage3DARB (will be remapped) */ "iiiiiiiip\0" "glCompressedTexImage3D\0" "glCompressedTexImage3DARB\0" "\0" - /* _mesa_function_pool[4154]: Color3sv (offset 18) */ + /* _mesa_function_pool[4279]: Color3sv (offset 18) */ "p\0" "glColor3sv\0" "\0" - /* _mesa_function_pool[4168]: GetConvolutionParameteriv (offset 358) */ + /* _mesa_function_pool[4293]: GetConvolutionParameteriv (offset 358) */ "iip\0" "glGetConvolutionParameteriv\0" "glGetConvolutionParameterivEXT\0" "\0" - /* _mesa_function_pool[4232]: DeleteSamplers (will be remapped) */ + /* _mesa_function_pool[4357]: DeleteSamplers (will be remapped) */ "ip\0" "glDeleteSamplers\0" "\0" - /* _mesa_function_pool[4253]: VertexAttrib1fARB (will be remapped) */ + /* _mesa_function_pool[4378]: VertexAttrib1fARB (will be remapped) */ "if\0" "glVertexAttrib1f\0" "glVertexAttrib1fARB\0" "\0" - /* _mesa_function_pool[4294]: Vertex2dv (offset 127) */ + /* _mesa_function_pool[4419]: Vertex2dv (offset 127) */ "p\0" "glVertex2dv\0" "\0" - /* _mesa_function_pool[4309]: TestFenceNV (will be remapped) */ + /* _mesa_function_pool[4434]: TestFenceNV (will be remapped) */ "i\0" "glTestFenceNV\0" "\0" - /* _mesa_function_pool[4326]: GetVertexAttribIuivEXT (will be remapped) */ - "iip\0" - "glGetVertexAttribIuivEXT\0" - "glGetVertexAttribIuiv\0" - "\0" - /* _mesa_function_pool[4378]: MultiTexCoord1fvARB (offset 379) */ + /* _mesa_function_pool[4451]: MultiTexCoord1fvARB (offset 379) */ "ip\0" "glMultiTexCoord1fv\0" "glMultiTexCoord1fvARB\0" "\0" - /* _mesa_function_pool[4423]: TexCoord3iv (offset 115) */ + /* _mesa_function_pool[4496]: TexCoord3iv (offset 115) */ "p\0" "glTexCoord3iv\0" "\0" - /* _mesa_function_pool[4440]: Uniform2uivEXT (will be remapped) */ + /* _mesa_function_pool[4513]: Uniform2uivEXT (will be remapped) */ "iip\0" "glUniform2uivEXT\0" "glUniform2uiv\0" "\0" - /* _mesa_function_pool[4476]: ColorFragmentOp2ATI (will be remapped) */ + /* _mesa_function_pool[4549]: ColorFragmentOp2ATI (will be remapped) */ "iiiiiiiiii\0" "glColorFragmentOp2ATI\0" "\0" - /* _mesa_function_pool[4510]: SecondaryColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[4583]: SecondaryColorPointerListIBM (dynamic) */ "iiipi\0" "glSecondaryColorPointerListIBM\0" "\0" - /* _mesa_function_pool[4548]: GetPixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[4621]: GetPixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glGetPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[4584]: Color3fv (offset 14) */ + /* _mesa_function_pool[4657]: Color3fv (offset 14) */ "p\0" "glColor3fv\0" "\0" - /* _mesa_function_pool[4598]: GetnPixelMapfvARB (will be remapped) */ + /* _mesa_function_pool[4671]: GetnPixelMapfvARB (will be remapped) */ "iip\0" "glGetnPixelMapfvARB\0" "\0" - /* _mesa_function_pool[4623]: ReplacementCodeubSUN (dynamic) */ + /* _mesa_function_pool[4696]: ReplacementCodeubSUN (dynamic) */ "i\0" "glReplacementCodeubSUN\0" "\0" - /* _mesa_function_pool[4649]: FinishAsyncSGIX (dynamic) */ + /* _mesa_function_pool[4722]: FinishAsyncSGIX (dynamic) */ "p\0" "glFinishAsyncSGIX\0" "\0" - /* _mesa_function_pool[4670]: GetnUniformfvARB (will be remapped) */ + /* _mesa_function_pool[4743]: GetnUniformfvARB (will be remapped) */ "iiip\0" "glGetnUniformfvARB\0" "\0" - /* _mesa_function_pool[4695]: GetDebugLogMESA (dynamic) */ + /* _mesa_function_pool[4768]: GetDebugLogMESA (dynamic) */ "iiiipp\0" "glGetDebugLogMESA\0" "\0" - /* _mesa_function_pool[4721]: FogCoorddEXT (will be remapped) */ + /* _mesa_function_pool[4794]: FogCoorddEXT (will be remapped) */ "d\0" "glFogCoordd\0" "glFogCoorddEXT\0" "\0" - /* _mesa_function_pool[4751]: BeginConditionalRenderNV (will be remapped) */ + /* _mesa_function_pool[4824]: BeginConditionalRenderNV (will be remapped) */ "ii\0" "glBeginConditionalRenderNV\0" "glBeginConditionalRender\0" "\0" - /* _mesa_function_pool[4807]: Color4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[4880]: Color4ubVertex3fSUN (dynamic) */ "iiiifff\0" "glColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[4838]: FogCoordfEXT (will be remapped) */ + /* _mesa_function_pool[4911]: FogCoordfEXT (will be remapped) */ "f\0" "glFogCoordf\0" "glFogCoordfEXT\0" "\0" - /* _mesa_function_pool[4868]: PointSize (offset 173) */ + /* _mesa_function_pool[4941]: PointSize (offset 173) */ "f\0" "glPointSize\0" "\0" - /* _mesa_function_pool[4883]: VertexAttribI2uivEXT (will be remapped) */ + /* _mesa_function_pool[4956]: VertexAttribI2uivEXT (will be remapped) */ "ip\0" "glVertexAttribI2uivEXT\0" "glVertexAttribI2uiv\0" "\0" - /* _mesa_function_pool[4930]: TexCoord2fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[5003]: TexCoord2fVertex3fSUN (dynamic) */ "fffff\0" "glTexCoord2fVertex3fSUN\0" "\0" - /* _mesa_function_pool[4961]: PopName (offset 200) */ + /* _mesa_function_pool[5034]: PopName (offset 200) */ "\0" "glPopName\0" "\0" - /* _mesa_function_pool[4973]: GetSamplerParameterfv (will be remapped) */ + /* _mesa_function_pool[5046]: GetSamplerParameterfv (will be remapped) */ "iip\0" "glGetSamplerParameterfv\0" "\0" - /* _mesa_function_pool[5002]: GlobalAlphaFactoriSUN (dynamic) */ + /* _mesa_function_pool[5075]: GlobalAlphaFactoriSUN (dynamic) */ "i\0" "glGlobalAlphaFactoriSUN\0" "\0" - /* _mesa_function_pool[5029]: VertexAttrib2dNV (will be remapped) */ + /* _mesa_function_pool[5102]: VertexAttrib2dNV (will be remapped) */ "idd\0" "glVertexAttrib2dNV\0" "\0" - /* _mesa_function_pool[5053]: GetProgramInfoLog (will be remapped) */ + /* _mesa_function_pool[5126]: GetProgramInfoLog (will be remapped) */ "iipp\0" "glGetProgramInfoLog\0" "\0" - /* _mesa_function_pool[5079]: VertexAttrib4NbvARB (will be remapped) */ + /* _mesa_function_pool[5152]: VertexAttrib4NbvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nbv\0" "glVertexAttrib4NbvARB\0" "\0" - /* _mesa_function_pool[5124]: GetActiveAttribARB (will be remapped) */ + /* _mesa_function_pool[5197]: GetActiveAttribARB (will be remapped) */ "iiipppp\0" "glGetActiveAttrib\0" "glGetActiveAttribARB\0" "\0" - /* _mesa_function_pool[5172]: Vertex4sv (offset 149) */ + /* _mesa_function_pool[5245]: Vertex4sv (offset 149) */ "p\0" "glVertex4sv\0" "\0" - /* _mesa_function_pool[5187]: VertexAttrib4ubNV (will be remapped) */ + /* _mesa_function_pool[5260]: VertexAttrib4ubNV (will be remapped) */ "iiiii\0" "glVertexAttrib4ubNV\0" "\0" - /* _mesa_function_pool[5214]: VertexAttribI1ivEXT (will be remapped) */ + /* _mesa_function_pool[5287]: VertexAttribI1ivEXT (will be remapped) */ "ip\0" "glVertexAttribI1ivEXT\0" "glVertexAttribI1iv\0" "\0" - /* _mesa_function_pool[5259]: ClampColor (will be remapped) */ + /* _mesa_function_pool[5332]: ClampColor (will be remapped) */ "ii\0" "glClampColor\0" "\0" - /* _mesa_function_pool[5276]: TextureRangeAPPLE (will be remapped) */ + /* _mesa_function_pool[5349]: TextureRangeAPPLE (will be remapped) */ "iip\0" "glTextureRangeAPPLE\0" "\0" - /* _mesa_function_pool[5301]: GetTexEnvfv (offset 276) */ + /* _mesa_function_pool[5374]: GetTexEnvfv (offset 276) */ "iip\0" "glGetTexEnvfv\0" "\0" - /* _mesa_function_pool[5320]: BindTransformFeedback (will be remapped) */ + /* _mesa_function_pool[5393]: BindTransformFeedback (will be remapped) */ "ii\0" "glBindTransformFeedback\0" "\0" - /* _mesa_function_pool[5348]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[5421]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ "ffffffffffff\0" "glTexCoord2fColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[5401]: Indexub (offset 315) */ + /* _mesa_function_pool[5474]: Indexub (offset 315) */ "i\0" "glIndexub\0" "\0" - /* _mesa_function_pool[5414]: VertexAttrib4fNV (will be remapped) */ + /* _mesa_function_pool[5487]: VertexAttrib4fNV (will be remapped) */ "iffff\0" "glVertexAttrib4fNV\0" "\0" - /* _mesa_function_pool[5440]: TexEnvi (offset 186) */ + /* _mesa_function_pool[5513]: TexEnvi (offset 186) */ "iii\0" "glTexEnvi\0" "\0" - /* _mesa_function_pool[5455]: GetClipPlane (offset 259) */ + /* _mesa_function_pool[5528]: GetClipPlane (offset 259) */ "ip\0" "glGetClipPlane\0" "\0" - /* _mesa_function_pool[5474]: CombinerParameterfvNV (will be remapped) */ + /* _mesa_function_pool[5547]: CombinerParameterfvNV (will be remapped) */ "ip\0" "glCombinerParameterfvNV\0" "\0" - /* _mesa_function_pool[5502]: VertexAttribs3dvNV (will be remapped) */ + /* _mesa_function_pool[5575]: VertexAttribs3dvNV (will be remapped) */ "iip\0" "glVertexAttribs3dvNV\0" "\0" - /* _mesa_function_pool[5528]: VertexAttribI2uiEXT (will be remapped) */ + /* _mesa_function_pool[5601]: VertexAttribI2uiEXT (will be remapped) */ "iii\0" "glVertexAttribI2uiEXT\0" "glVertexAttribI2ui\0" "\0" - /* _mesa_function_pool[5574]: VertexAttribs4fvNV (will be remapped) */ + /* _mesa_function_pool[5647]: VertexAttribs4fvNV (will be remapped) */ "iip\0" "glVertexAttribs4fvNV\0" "\0" - /* _mesa_function_pool[5600]: VertexArrayRangeNV (will be remapped) */ + /* _mesa_function_pool[5673]: VertexArrayRangeNV (will be remapped) */ "ip\0" "glVertexArrayRangeNV\0" "\0" - /* _mesa_function_pool[5625]: FragmentLightiSGIX (dynamic) */ + /* _mesa_function_pool[5698]: FragmentLightiSGIX (dynamic) */ "iii\0" "glFragmentLightiSGIX\0" "\0" - /* _mesa_function_pool[5651]: PolygonOffsetEXT (will be remapped) */ + /* _mesa_function_pool[5724]: PolygonOffsetEXT (will be remapped) */ "ff\0" "glPolygonOffsetEXT\0" "\0" - /* _mesa_function_pool[5674]: VertexAttribI4uivEXT (will be remapped) */ + /* _mesa_function_pool[5747]: VertexAttribI4uivEXT (will be remapped) */ "ip\0" "glVertexAttribI4uivEXT\0" "glVertexAttribI4uiv\0" "\0" - /* _mesa_function_pool[5721]: PollAsyncSGIX (dynamic) */ + /* _mesa_function_pool[5794]: PollAsyncSGIX (dynamic) */ "p\0" "glPollAsyncSGIX\0" "\0" - /* _mesa_function_pool[5740]: DeleteFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[5813]: DeleteFragmentShaderATI (will be remapped) */ "i\0" "glDeleteFragmentShaderATI\0" "\0" - /* _mesa_function_pool[5769]: Scaled (offset 301) */ + /* _mesa_function_pool[5842]: Scaled (offset 301) */ "ddd\0" "glScaled\0" "\0" - /* _mesa_function_pool[5783]: ResumeTransformFeedback (will be remapped) */ + /* _mesa_function_pool[5856]: ResumeTransformFeedback (will be remapped) */ "\0" "glResumeTransformFeedback\0" "\0" - /* _mesa_function_pool[5811]: Scalef (offset 302) */ + /* _mesa_function_pool[5884]: Scalef (offset 302) */ "fff\0" "glScalef\0" "\0" - /* _mesa_function_pool[5825]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[5898]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[5863]: ProgramEnvParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[5936]: ProgramEnvParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramEnvParameters4fvEXT\0" "\0" - /* _mesa_function_pool[5898]: MultTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[5971]: MultTransposeMatrixdARB (will be remapped) */ "p\0" "glMultTransposeMatrixd\0" "glMultTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[5950]: ColorMaskIndexedEXT (will be remapped) */ - "iiiii\0" - "glColorMaskIndexedEXT\0" - "glColorMaski\0" - "\0" - /* _mesa_function_pool[5992]: ObjectUnpurgeableAPPLE (will be remapped) */ + /* _mesa_function_pool[6023]: ObjectUnpurgeableAPPLE (will be remapped) */ "iii\0" "glObjectUnpurgeableAPPLE\0" "\0" - /* _mesa_function_pool[6022]: AlphaFunc (offset 240) */ + /* _mesa_function_pool[6053]: AlphaFunc (offset 240) */ "if\0" "glAlphaFunc\0" "\0" - /* _mesa_function_pool[6038]: WindowPos2svMESA (will be remapped) */ + /* _mesa_function_pool[6069]: WindowPos2svMESA (will be remapped) */ "p\0" "glWindowPos2sv\0" "glWindowPos2svARB\0" "glWindowPos2svMESA\0" "\0" - /* _mesa_function_pool[6093]: EdgeFlag (offset 41) */ + /* _mesa_function_pool[6124]: EdgeFlag (offset 41) */ "i\0" "glEdgeFlag\0" "\0" - /* _mesa_function_pool[6107]: TexCoord2iv (offset 107) */ + /* _mesa_function_pool[6138]: TexCoord2iv (offset 107) */ "p\0" "glTexCoord2iv\0" "\0" - /* _mesa_function_pool[6124]: CompressedTexImage1DARB (will be remapped) */ + /* _mesa_function_pool[6155]: CompressedTexImage1DARB (will be remapped) */ "iiiiiip\0" "glCompressedTexImage1D\0" "glCompressedTexImage1DARB\0" "\0" - /* _mesa_function_pool[6182]: Rotated (offset 299) */ + /* _mesa_function_pool[6213]: Rotated (offset 299) */ "dddd\0" "glRotated\0" "\0" - /* _mesa_function_pool[6198]: GetTexParameterIuivEXT (will be remapped) */ + /* _mesa_function_pool[6229]: GetTexParameterIuivEXT (will be remapped) */ "iip\0" "glGetTexParameterIuivEXT\0" "glGetTexParameterIuiv\0" "\0" - /* _mesa_function_pool[6250]: VertexAttrib2sNV (will be remapped) */ + /* _mesa_function_pool[6281]: VertexAttrib2sNV (will be remapped) */ "iii\0" "glVertexAttrib2sNV\0" "\0" - /* _mesa_function_pool[6274]: ReadPixels (offset 256) */ + /* _mesa_function_pool[6305]: ReadPixels (offset 256) */ "iiiiiip\0" "glReadPixels\0" "\0" - /* _mesa_function_pool[6296]: VertexAttribDivisorARB (will be remapped) */ + /* _mesa_function_pool[6327]: VertexAttribDivisorARB (will be remapped) */ "ii\0" "glVertexAttribDivisorARB\0" "\0" - /* _mesa_function_pool[6325]: EdgeFlagv (offset 42) */ + /* _mesa_function_pool[6356]: EdgeFlagv (offset 42) */ "p\0" "glEdgeFlagv\0" "\0" - /* _mesa_function_pool[6340]: NormalPointerListIBM (dynamic) */ + /* _mesa_function_pool[6371]: NormalPointerListIBM (dynamic) */ "iipi\0" "glNormalPointerListIBM\0" "\0" - /* _mesa_function_pool[6369]: IndexPointerEXT (will be remapped) */ + /* _mesa_function_pool[6400]: IndexPointerEXT (will be remapped) */ "iiip\0" "glIndexPointerEXT\0" "\0" - /* _mesa_function_pool[6393]: Color4iv (offset 32) */ + /* _mesa_function_pool[6424]: Color4iv (offset 32) */ "p\0" "glColor4iv\0" "\0" - /* _mesa_function_pool[6407]: TexParameterf (offset 178) */ + /* _mesa_function_pool[6438]: TexParameterf (offset 178) */ "iif\0" "glTexParameterf\0" "\0" - /* _mesa_function_pool[6428]: TexParameteri (offset 180) */ + /* _mesa_function_pool[6459]: TexParameteri (offset 180) */ "iii\0" "glTexParameteri\0" "\0" - /* _mesa_function_pool[6449]: NormalPointerEXT (will be remapped) */ + /* _mesa_function_pool[6480]: NormalPointerEXT (will be remapped) */ "iiip\0" "glNormalPointerEXT\0" "\0" - /* _mesa_function_pool[6474]: MultiTexCoord3dARB (offset 392) */ + /* _mesa_function_pool[6505]: MultiTexCoord3dARB (offset 392) */ "iddd\0" "glMultiTexCoord3d\0" "glMultiTexCoord3dARB\0" "\0" - /* _mesa_function_pool[6519]: MultiTexCoord2iARB (offset 388) */ + /* _mesa_function_pool[6550]: MultiTexCoord2iARB (offset 388) */ "iii\0" "glMultiTexCoord2i\0" "glMultiTexCoord2iARB\0" "\0" - /* _mesa_function_pool[6563]: DrawPixels (offset 257) */ + /* _mesa_function_pool[6594]: DrawPixels (offset 257) */ "iiiip\0" "glDrawPixels\0" "\0" - /* _mesa_function_pool[6583]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[6614]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */ "iffffffff\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[6643]: MultiTexCoord2svARB (offset 391) */ + /* _mesa_function_pool[6674]: MultiTexCoord2svARB (offset 391) */ "ip\0" "glMultiTexCoord2sv\0" "glMultiTexCoord2svARB\0" "\0" - /* _mesa_function_pool[6688]: ReplacementCodeubvSUN (dynamic) */ + /* _mesa_function_pool[6719]: ReplacementCodeubvSUN (dynamic) */ "p\0" "glReplacementCodeubvSUN\0" "\0" - /* _mesa_function_pool[6715]: Uniform3iARB (will be remapped) */ + /* _mesa_function_pool[6746]: Uniform3iARB (will be remapped) */ "iiii\0" "glUniform3i\0" "glUniform3iARB\0" "\0" - /* _mesa_function_pool[6748]: DrawTransformFeedback (will be remapped) */ + /* _mesa_function_pool[6779]: DrawTransformFeedback (will be remapped) */ "ii\0" "glDrawTransformFeedback\0" "\0" - /* _mesa_function_pool[6776]: DrawElementsInstancedARB (will be remapped) */ + /* _mesa_function_pool[6807]: DrawElementsInstancedARB (will be remapped) */ "iiipi\0" "glDrawElementsInstancedARB\0" "glDrawElementsInstancedEXT\0" "glDrawElementsInstanced\0" "\0" - /* _mesa_function_pool[6861]: GetShaderInfoLog (will be remapped) */ + /* _mesa_function_pool[6892]: GetShaderInfoLog (will be remapped) */ "iipp\0" "glGetShaderInfoLog\0" "\0" - /* _mesa_function_pool[6886]: WeightivARB (dynamic) */ + /* _mesa_function_pool[6917]: WeightivARB (dynamic) */ "ip\0" "glWeightivARB\0" "\0" - /* _mesa_function_pool[6904]: PollInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[6935]: PollInstrumentsSGIX (dynamic) */ "p\0" "glPollInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[6929]: GlobalAlphaFactordSUN (dynamic) */ + /* _mesa_function_pool[6960]: GlobalAlphaFactordSUN (dynamic) */ "d\0" "glGlobalAlphaFactordSUN\0" "\0" - /* _mesa_function_pool[6956]: GetFinalCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[6987]: GetFinalCombinerInputParameterfvNV (will be remapped) */ "iip\0" "glGetFinalCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[6998]: GenerateMipmapEXT (will be remapped) */ + /* _mesa_function_pool[7029]: GenerateMipmapEXT (will be remapped) */ "i\0" "glGenerateMipmap\0" "glGenerateMipmapEXT\0" "\0" - /* _mesa_function_pool[7038]: GenLists (offset 5) */ + /* _mesa_function_pool[7069]: GenLists (offset 5) */ "i\0" "glGenLists\0" "\0" - /* _mesa_function_pool[7052]: DepthRangef (will be remapped) */ + /* _mesa_function_pool[7083]: DepthRangef (will be remapped) */ "ff\0" "glDepthRangef\0" "\0" - /* _mesa_function_pool[7070]: GetMapAttribParameterivNV (dynamic) */ + /* _mesa_function_pool[7101]: GetMapAttribParameterivNV (dynamic) */ "iiip\0" "glGetMapAttribParameterivNV\0" "\0" - /* _mesa_function_pool[7104]: CreateShaderObjectARB (will be remapped) */ + /* _mesa_function_pool[7135]: CreateShaderObjectARB (will be remapped) */ "i\0" "glCreateShaderObjectARB\0" "\0" - /* _mesa_function_pool[7131]: GetSharpenTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[7162]: GetSharpenTexFuncSGIS (dynamic) */ "ip\0" "glGetSharpenTexFuncSGIS\0" "\0" - /* _mesa_function_pool[7159]: BufferDataARB (will be remapped) */ + /* _mesa_function_pool[7190]: BufferDataARB (will be remapped) */ "iipi\0" "glBufferData\0" "glBufferDataARB\0" "\0" - /* _mesa_function_pool[7194]: FlushVertexArrayRangeNV (will be remapped) */ + /* _mesa_function_pool[7225]: FlushVertexArrayRangeNV (will be remapped) */ "\0" "glFlushVertexArrayRangeNV\0" "\0" - /* _mesa_function_pool[7222]: MapGrid2d (offset 226) */ + /* _mesa_function_pool[7253]: MapGrid2d (offset 226) */ "iddidd\0" "glMapGrid2d\0" "\0" - /* _mesa_function_pool[7242]: MapGrid2f (offset 227) */ + /* _mesa_function_pool[7273]: MapGrid2f (offset 227) */ "iffiff\0" "glMapGrid2f\0" "\0" - /* _mesa_function_pool[7262]: SampleMapATI (will be remapped) */ + /* _mesa_function_pool[7293]: SampleMapATI (will be remapped) */ "iii\0" "glSampleMapATI\0" "\0" - /* _mesa_function_pool[7282]: VertexPointerEXT (will be remapped) */ + /* _mesa_function_pool[7313]: VertexPointerEXT (will be remapped) */ "iiiip\0" "glVertexPointerEXT\0" "\0" - /* _mesa_function_pool[7308]: GetTexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[7339]: GetTexFilterFuncSGIS (dynamic) */ "iip\0" "glGetTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[7336]: Scissor (offset 176) */ + /* _mesa_function_pool[7367]: Scissor (offset 176) */ "iiii\0" "glScissor\0" "\0" - /* _mesa_function_pool[7352]: Fogf (offset 153) */ + /* _mesa_function_pool[7383]: Fogf (offset 153) */ "if\0" "glFogf\0" "\0" - /* _mesa_function_pool[7363]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[7394]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[7408]: TexSubImage1D (offset 332) */ + /* _mesa_function_pool[7439]: TexSubImage1D (offset 332) */ "iiiiiip\0" "glTexSubImage1D\0" "glTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[7452]: VertexAttrib1sARB (will be remapped) */ + /* _mesa_function_pool[7483]: VertexAttrib1sARB (will be remapped) */ "ii\0" "glVertexAttrib1s\0" "glVertexAttrib1sARB\0" "\0" - /* _mesa_function_pool[7493]: FenceSync (will be remapped) */ + /* _mesa_function_pool[7524]: FenceSync (will be remapped) */ "ii\0" "glFenceSync\0" "\0" - /* _mesa_function_pool[7509]: Color4usv (offset 40) */ + /* _mesa_function_pool[7540]: Color4usv (offset 40) */ "p\0" "glColor4usv\0" "\0" - /* _mesa_function_pool[7524]: Fogi (offset 155) */ + /* _mesa_function_pool[7555]: Fogi (offset 155) */ "ii\0" "glFogi\0" "\0" - /* _mesa_function_pool[7535]: DepthRange (offset 288) */ + /* _mesa_function_pool[7566]: DepthRange (offset 288) */ "dd\0" "glDepthRange\0" "\0" - /* _mesa_function_pool[7552]: RasterPos3iv (offset 75) */ + /* _mesa_function_pool[7583]: RasterPos3iv (offset 75) */ "p\0" "glRasterPos3iv\0" "\0" - /* _mesa_function_pool[7570]: FinalCombinerInputNV (will be remapped) */ + /* _mesa_function_pool[7601]: FinalCombinerInputNV (will be remapped) */ "iiii\0" "glFinalCombinerInputNV\0" "\0" - /* _mesa_function_pool[7599]: TexCoord2i (offset 106) */ + /* _mesa_function_pool[7630]: TexCoord2i (offset 106) */ "ii\0" "glTexCoord2i\0" "\0" - /* _mesa_function_pool[7616]: PixelMapfv (offset 251) */ + /* _mesa_function_pool[7647]: PixelMapfv (offset 251) */ "iip\0" "glPixelMapfv\0" "\0" - /* _mesa_function_pool[7634]: Color4ui (offset 37) */ + /* _mesa_function_pool[7665]: Color4ui (offset 37) */ "iiii\0" "glColor4ui\0" "\0" - /* _mesa_function_pool[7651]: RasterPos3s (offset 76) */ + /* _mesa_function_pool[7682]: RasterPos3s (offset 76) */ "iii\0" "glRasterPos3s\0" "\0" - /* _mesa_function_pool[7670]: Color3usv (offset 24) */ + /* _mesa_function_pool[7701]: Color3usv (offset 24) */ "p\0" "glColor3usv\0" "\0" - /* _mesa_function_pool[7685]: FlushRasterSGIX (dynamic) */ + /* _mesa_function_pool[7716]: FlushRasterSGIX (dynamic) */ "\0" "glFlushRasterSGIX\0" "\0" - /* _mesa_function_pool[7705]: TexCoord2f (offset 104) */ + /* _mesa_function_pool[7736]: TexCoord2f (offset 104) */ "ff\0" "glTexCoord2f\0" "\0" - /* _mesa_function_pool[7722]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[7753]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */ "ifffff\0" "glReplacementCodeuiTexCoord2fVertex3fSUN\0" "\0" - /* _mesa_function_pool[7771]: TexCoord2d (offset 102) */ + /* _mesa_function_pool[7802]: TexCoord2d (offset 102) */ "dd\0" "glTexCoord2d\0" "\0" - /* _mesa_function_pool[7788]: RasterPos3d (offset 70) */ + /* _mesa_function_pool[7819]: RasterPos3d (offset 70) */ "ddd\0" "glRasterPos3d\0" "\0" - /* _mesa_function_pool[7807]: RasterPos3f (offset 72) */ + /* _mesa_function_pool[7838]: RasterPos3f (offset 72) */ "fff\0" "glRasterPos3f\0" "\0" - /* _mesa_function_pool[7826]: Uniform1fARB (will be remapped) */ + /* _mesa_function_pool[7857]: Uniform1fARB (will be remapped) */ "if\0" "glUniform1f\0" "glUniform1fARB\0" "\0" - /* _mesa_function_pool[7857]: AreTexturesResident (offset 322) */ + /* _mesa_function_pool[7888]: AreTexturesResident (offset 322) */ "ipp\0" "glAreTexturesResident\0" "glAreTexturesResidentEXT\0" "\0" - /* _mesa_function_pool[7909]: TexCoord2s (offset 108) */ + /* _mesa_function_pool[7940]: TexCoord2s (offset 108) */ "ii\0" "glTexCoord2s\0" "\0" - /* _mesa_function_pool[7926]: StencilOpSeparate (will be remapped) */ + /* _mesa_function_pool[7957]: StencilOpSeparate (will be remapped) */ "iiii\0" "glStencilOpSeparate\0" "glStencilOpSeparateATI\0" "\0" - /* _mesa_function_pool[7975]: ColorTableParameteriv (offset 341) */ + /* _mesa_function_pool[8006]: ColorTableParameteriv (offset 341) */ "iip\0" "glColorTableParameteriv\0" "glColorTableParameterivSGI\0" "\0" - /* _mesa_function_pool[8031]: FogCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[8062]: FogCoordPointerListIBM (dynamic) */ "iipi\0" "glFogCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[8062]: WindowPos3dMESA (will be remapped) */ + /* _mesa_function_pool[8093]: WindowPos3dMESA (will be remapped) */ "ddd\0" "glWindowPos3d\0" "glWindowPos3dARB\0" "glWindowPos3dMESA\0" "\0" - /* _mesa_function_pool[8116]: Color4us (offset 39) */ + /* _mesa_function_pool[8147]: Color4us (offset 39) */ "iiii\0" "glColor4us\0" "\0" - /* _mesa_function_pool[8133]: PointParameterfvEXT (will be remapped) */ + /* _mesa_function_pool[8164]: PointParameterfvEXT (will be remapped) */ "ip\0" "glPointParameterfv\0" "glPointParameterfvARB\0" "glPointParameterfvEXT\0" "glPointParameterfvSGIS\0" "\0" - /* _mesa_function_pool[8223]: Color3bv (offset 10) */ + /* _mesa_function_pool[8254]: Color3bv (offset 10) */ "p\0" "glColor3bv\0" "\0" - /* _mesa_function_pool[8237]: GetnCompressedTexImageARB (will be remapped) */ + /* _mesa_function_pool[8268]: GetnCompressedTexImageARB (will be remapped) */ "iiip\0" "glGetnCompressedTexImageARB\0" "\0" - /* _mesa_function_pool[8271]: WindowPos2fvMESA (will be remapped) */ + /* _mesa_function_pool[8302]: WindowPos2fvMESA (will be remapped) */ "p\0" "glWindowPos2fv\0" "glWindowPos2fvARB\0" "glWindowPos2fvMESA\0" "\0" - /* _mesa_function_pool[8326]: SecondaryColor3bvEXT (will be remapped) */ + /* _mesa_function_pool[8357]: SecondaryColor3bvEXT (will be remapped) */ "p\0" "glSecondaryColor3bv\0" "glSecondaryColor3bvEXT\0" "\0" - /* _mesa_function_pool[8372]: VertexPointerListIBM (dynamic) */ + /* _mesa_function_pool[8403]: VertexPointerListIBM (dynamic) */ "iiipi\0" "glVertexPointerListIBM\0" "\0" - /* _mesa_function_pool[8402]: GetProgramLocalParameterfvARB (will be remapped) */ + /* _mesa_function_pool[8433]: GetProgramLocalParameterfvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterfvARB\0" "\0" - /* _mesa_function_pool[8439]: FragmentMaterialfSGIX (dynamic) */ + /* _mesa_function_pool[8470]: FragmentMaterialfSGIX (dynamic) */ "iif\0" "glFragmentMaterialfSGIX\0" "\0" - /* _mesa_function_pool[8468]: BindSampler (will be remapped) */ + /* _mesa_function_pool[8499]: BindSampler (will be remapped) */ "ii\0" "glBindSampler\0" "\0" - /* _mesa_function_pool[8486]: RenderbufferStorageEXT (will be remapped) */ + /* _mesa_function_pool[8517]: RenderbufferStorageEXT (will be remapped) */ "iiii\0" "glRenderbufferStorage\0" "glRenderbufferStorageEXT\0" "\0" - /* _mesa_function_pool[8539]: IsFenceNV (will be remapped) */ + /* _mesa_function_pool[8570]: IsFenceNV (will be remapped) */ "i\0" "glIsFenceNV\0" "\0" - /* _mesa_function_pool[8554]: AttachObjectARB (will be remapped) */ + /* _mesa_function_pool[8585]: AttachObjectARB (will be remapped) */ "ii\0" "glAttachObjectARB\0" "\0" - /* _mesa_function_pool[8576]: GetFragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[8607]: GetFragmentLightivSGIX (dynamic) */ "iip\0" "glGetFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[8606]: UniformMatrix2fvARB (will be remapped) */ + /* _mesa_function_pool[8637]: UniformMatrix2fvARB (will be remapped) */ "iiip\0" "glUniformMatrix2fv\0" "glUniformMatrix2fvARB\0" "\0" - /* _mesa_function_pool[8653]: MultiTexCoord2fARB (offset 386) */ + /* _mesa_function_pool[8684]: MultiTexCoord2fARB (offset 386) */ "iff\0" "glMultiTexCoord2f\0" "glMultiTexCoord2fARB\0" "\0" - /* _mesa_function_pool[8697]: ColorTable (offset 339) */ + /* _mesa_function_pool[8728]: ColorTable (offset 339) */ "iiiiip\0" "glColorTable\0" "glColorTableSGI\0" "glColorTableEXT\0" "\0" - /* _mesa_function_pool[8750]: IndexPointer (offset 314) */ + /* _mesa_function_pool[8781]: IndexPointer (offset 314) */ "iip\0" "glIndexPointer\0" "\0" - /* _mesa_function_pool[8770]: Accum (offset 213) */ + /* _mesa_function_pool[8801]: Accum (offset 213) */ "if\0" "glAccum\0" "\0" - /* _mesa_function_pool[8782]: GetTexImage (offset 281) */ + /* _mesa_function_pool[8813]: GetTexImage (offset 281) */ "iiiip\0" "glGetTexImage\0" "\0" - /* _mesa_function_pool[8803]: MapControlPointsNV (dynamic) */ + /* _mesa_function_pool[8834]: MapControlPointsNV (dynamic) */ "iiiiiiiip\0" "glMapControlPointsNV\0" "\0" - /* _mesa_function_pool[8835]: ConvolutionFilter2D (offset 349) */ + /* _mesa_function_pool[8866]: ConvolutionFilter2D (offset 349) */ "iiiiiip\0" "glConvolutionFilter2D\0" "glConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[8891]: Finish (offset 216) */ + /* _mesa_function_pool[8922]: Finish (offset 216) */ "\0" "glFinish\0" "\0" - /* _mesa_function_pool[8902]: MapParameterfvNV (dynamic) */ + /* _mesa_function_pool[8933]: MapParameterfvNV (dynamic) */ "iip\0" "glMapParameterfvNV\0" "\0" - /* _mesa_function_pool[8926]: ClearStencil (offset 207) */ + /* _mesa_function_pool[8957]: ClearStencil (offset 207) */ "i\0" "glClearStencil\0" "\0" - /* _mesa_function_pool[8944]: VertexAttrib3dvARB (will be remapped) */ + /* _mesa_function_pool[8975]: VertexAttrib3dvARB (will be remapped) */ "ip\0" "glVertexAttrib3dv\0" "glVertexAttrib3dvARB\0" "\0" - /* _mesa_function_pool[8987]: Uniform4uivEXT (will be remapped) */ + /* _mesa_function_pool[9018]: Uniform4uivEXT (will be remapped) */ "iip\0" "glUniform4uivEXT\0" "glUniform4uiv\0" "\0" - /* _mesa_function_pool[9023]: HintPGI (dynamic) */ + /* _mesa_function_pool[9054]: HintPGI (dynamic) */ "ii\0" "glHintPGI\0" "\0" - /* _mesa_function_pool[9037]: ConvolutionParameteriv (offset 353) */ + /* _mesa_function_pool[9068]: ConvolutionParameteriv (offset 353) */ "iip\0" "glConvolutionParameteriv\0" "glConvolutionParameterivEXT\0" "\0" - /* _mesa_function_pool[9095]: Color4s (offset 33) */ + /* _mesa_function_pool[9126]: Color4s (offset 33) */ "iiii\0" "glColor4s\0" "\0" - /* _mesa_function_pool[9111]: InterleavedArrays (offset 317) */ + /* _mesa_function_pool[9142]: InterleavedArrays (offset 317) */ "iip\0" "glInterleavedArrays\0" "\0" - /* _mesa_function_pool[9136]: RasterPos2fv (offset 65) */ + /* _mesa_function_pool[9167]: RasterPos2fv (offset 65) */ "p\0" "glRasterPos2fv\0" "\0" - /* _mesa_function_pool[9154]: TexCoord1fv (offset 97) */ + /* _mesa_function_pool[9185]: TexCoord1fv (offset 97) */ "p\0" "glTexCoord1fv\0" "\0" - /* _mesa_function_pool[9171]: Vertex2d (offset 126) */ + /* _mesa_function_pool[9202]: Vertex2d (offset 126) */ "dd\0" "glVertex2d\0" "\0" - /* _mesa_function_pool[9186]: CullParameterdvEXT (dynamic) */ + /* _mesa_function_pool[9217]: CullParameterdvEXT (dynamic) */ "ip\0" "glCullParameterdvEXT\0" "\0" - /* _mesa_function_pool[9211]: ProgramNamedParameter4fNV (will be remapped) */ + /* _mesa_function_pool[9242]: ProgramNamedParameter4fNV (will be remapped) */ "iipffff\0" "glProgramNamedParameter4fNV\0" "\0" - /* _mesa_function_pool[9248]: Color3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[9279]: Color3fVertex3fSUN (dynamic) */ "ffffff\0" "glColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[9277]: ProgramEnvParameter4fvARB (will be remapped) */ + /* _mesa_function_pool[9308]: ProgramEnvParameter4fvARB (will be remapped) */ "iip\0" "glProgramEnvParameter4fvARB\0" "glProgramParameter4fvNV\0" "\0" - /* _mesa_function_pool[9334]: Color4i (offset 31) */ + /* _mesa_function_pool[9365]: Color4i (offset 31) */ "iiii\0" "glColor4i\0" "\0" - /* _mesa_function_pool[9350]: Color4f (offset 29) */ + /* _mesa_function_pool[9381]: Color4f (offset 29) */ "ffff\0" "glColor4f\0" "\0" - /* _mesa_function_pool[9366]: RasterPos4fv (offset 81) */ + /* _mesa_function_pool[9397]: RasterPos4fv (offset 81) */ "p\0" "glRasterPos4fv\0" "\0" - /* _mesa_function_pool[9384]: Color4d (offset 27) */ + /* _mesa_function_pool[9415]: Color4d (offset 27) */ "dddd\0" "glColor4d\0" "\0" - /* _mesa_function_pool[9400]: ClearIndex (offset 205) */ + /* _mesa_function_pool[9431]: ClearIndex (offset 205) */ "f\0" "glClearIndex\0" "\0" - /* _mesa_function_pool[9416]: Color4b (offset 25) */ + /* _mesa_function_pool[9447]: Color4b (offset 25) */ "iiii\0" "glColor4b\0" "\0" - /* _mesa_function_pool[9432]: LoadMatrixd (offset 292) */ + /* _mesa_function_pool[9463]: LoadMatrixd (offset 292) */ "p\0" "glLoadMatrixd\0" "\0" - /* _mesa_function_pool[9449]: FragmentLightModeliSGIX (dynamic) */ + /* _mesa_function_pool[9480]: FragmentLightModeliSGIX (dynamic) */ "ii\0" "glFragmentLightModeliSGIX\0" "\0" - /* _mesa_function_pool[9479]: RasterPos2dv (offset 63) */ + /* _mesa_function_pool[9510]: RasterPos2dv (offset 63) */ "p\0" "glRasterPos2dv\0" "\0" - /* _mesa_function_pool[9497]: ConvolutionParameterfv (offset 351) */ + /* _mesa_function_pool[9528]: ConvolutionParameterfv (offset 351) */ "iip\0" "glConvolutionParameterfv\0" "glConvolutionParameterfvEXT\0" "\0" - /* _mesa_function_pool[9555]: TbufferMask3DFX (dynamic) */ + /* _mesa_function_pool[9586]: TbufferMask3DFX (dynamic) */ "i\0" "glTbufferMask3DFX\0" "\0" - /* _mesa_function_pool[9576]: GetTexGendv (offset 278) */ + /* _mesa_function_pool[9607]: GetTexGendv (offset 278) */ "iip\0" "glGetTexGendv\0" "\0" - /* _mesa_function_pool[9595]: GetVertexAttribfvNV (will be remapped) */ + /* _mesa_function_pool[9626]: GetVertexAttribfvNV (will be remapped) */ "iip\0" "glGetVertexAttribfvNV\0" "\0" - /* _mesa_function_pool[9622]: BeginTransformFeedbackEXT (will be remapped) */ + /* _mesa_function_pool[9653]: BeginTransformFeedbackEXT (will be remapped) */ "i\0" "glBeginTransformFeedbackEXT\0" "glBeginTransformFeedback\0" "\0" - /* _mesa_function_pool[9678]: LoadProgramNV (will be remapped) */ + /* _mesa_function_pool[9709]: LoadProgramNV (will be remapped) */ "iiip\0" "glLoadProgramNV\0" "\0" - /* _mesa_function_pool[9700]: WaitSync (will be remapped) */ + /* _mesa_function_pool[9731]: WaitSync (will be remapped) */ "iii\0" "glWaitSync\0" "\0" - /* _mesa_function_pool[9716]: EndList (offset 1) */ + /* _mesa_function_pool[9747]: EndList (offset 1) */ "\0" "glEndList\0" "\0" - /* _mesa_function_pool[9728]: VertexAttrib4fvNV (will be remapped) */ + /* _mesa_function_pool[9759]: VertexAttrib4fvNV (will be remapped) */ "ip\0" "glVertexAttrib4fvNV\0" "\0" - /* _mesa_function_pool[9752]: GetAttachedObjectsARB (will be remapped) */ + /* _mesa_function_pool[9783]: GetAttachedObjectsARB (will be remapped) */ "iipp\0" "glGetAttachedObjectsARB\0" "\0" - /* _mesa_function_pool[9782]: Uniform3fvARB (will be remapped) */ + /* _mesa_function_pool[9813]: Uniform3fvARB (will be remapped) */ "iip\0" "glUniform3fv\0" "glUniform3fvARB\0" "\0" - /* _mesa_function_pool[9816]: EvalCoord1fv (offset 231) */ + /* _mesa_function_pool[9847]: EvalCoord1fv (offset 231) */ "p\0" "glEvalCoord1fv\0" "\0" - /* _mesa_function_pool[9834]: DrawRangeElements (offset 338) */ + /* _mesa_function_pool[9865]: DrawRangeElements (offset 338) */ "iiiiip\0" "glDrawRangeElements\0" "glDrawRangeElementsEXT\0" "\0" - /* _mesa_function_pool[9885]: EvalMesh2 (offset 238) */ + /* _mesa_function_pool[9916]: EvalMesh2 (offset 238) */ "iiiii\0" "glEvalMesh2\0" "\0" - /* _mesa_function_pool[9904]: Vertex4fv (offset 145) */ + /* _mesa_function_pool[9935]: Vertex4fv (offset 145) */ "p\0" "glVertex4fv\0" "\0" - /* _mesa_function_pool[9919]: GenTransformFeedbacks (will be remapped) */ + /* _mesa_function_pool[9950]: GenTransformFeedbacks (will be remapped) */ "ip\0" "glGenTransformFeedbacks\0" "\0" - /* _mesa_function_pool[9947]: SpriteParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[9978]: SpriteParameterfvSGIX (dynamic) */ "ip\0" "glSpriteParameterfvSGIX\0" "\0" - /* _mesa_function_pool[9975]: CheckFramebufferStatusEXT (will be remapped) */ + /* _mesa_function_pool[10006]: CheckFramebufferStatusEXT (will be remapped) */ "i\0" "glCheckFramebufferStatus\0" "glCheckFramebufferStatusEXT\0" "\0" - /* _mesa_function_pool[10031]: GlobalAlphaFactoruiSUN (dynamic) */ + /* _mesa_function_pool[10062]: GlobalAlphaFactoruiSUN (dynamic) */ "i\0" "glGlobalAlphaFactoruiSUN\0" "\0" - /* _mesa_function_pool[10059]: GetHandleARB (will be remapped) */ + /* _mesa_function_pool[10090]: GetHandleARB (will be remapped) */ "i\0" "glGetHandleARB\0" "\0" - /* _mesa_function_pool[10077]: GetVertexAttribivARB (will be remapped) */ + /* _mesa_function_pool[10108]: GetVertexAttribivARB (will be remapped) */ "iip\0" "glGetVertexAttribiv\0" "glGetVertexAttribivARB\0" "\0" - /* _mesa_function_pool[10125]: BlendFunciARB (will be remapped) */ + /* _mesa_function_pool[10156]: BlendFunciARB (will be remapped) */ "iii\0" "glBlendFunciARB\0" + "glBlendFuncIndexedAMD\0" "\0" - /* _mesa_function_pool[10146]: GetnUniformivARB (will be remapped) */ + /* _mesa_function_pool[10199]: GetnUniformivARB (will be remapped) */ "iiip\0" "glGetnUniformivARB\0" "\0" - /* _mesa_function_pool[10171]: GetTexParameterIivEXT (will be remapped) */ + /* _mesa_function_pool[10224]: GetTexParameterIivEXT (will be remapped) */ "iip\0" "glGetTexParameterIivEXT\0" "glGetTexParameterIiv\0" "\0" - /* _mesa_function_pool[10221]: CreateProgram (will be remapped) */ + /* _mesa_function_pool[10274]: CreateProgram (will be remapped) */ "\0" "glCreateProgram\0" "\0" - /* _mesa_function_pool[10239]: LoadTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[10292]: LoadTransposeMatrixdARB (will be remapped) */ "p\0" "glLoadTransposeMatrixd\0" "glLoadTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[10291]: ReleaseShaderCompiler (will be remapped) */ + /* _mesa_function_pool[10344]: ReleaseShaderCompiler (will be remapped) */ "\0" "glReleaseShaderCompiler\0" "\0" - /* _mesa_function_pool[10317]: GetMinmax (offset 364) */ + /* _mesa_function_pool[10370]: GetMinmax (offset 364) */ "iiiip\0" "glGetMinmax\0" "glGetMinmaxEXT\0" "\0" - /* _mesa_function_pool[10351]: StencilFuncSeparate (will be remapped) */ + /* _mesa_function_pool[10404]: StencilFuncSeparate (will be remapped) */ "iiii\0" "glStencilFuncSeparate\0" "\0" - /* _mesa_function_pool[10379]: SecondaryColor3sEXT (will be remapped) */ + /* _mesa_function_pool[10432]: SecondaryColor3sEXT (will be remapped) */ "iii\0" "glSecondaryColor3s\0" "glSecondaryColor3sEXT\0" "\0" - /* _mesa_function_pool[10425]: Color3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[10478]: Color3fVertex3fvSUN (dynamic) */ "pp\0" "glColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[10451]: GetInteger64i_v (will be remapped) */ + /* _mesa_function_pool[10504]: GetInteger64i_v (will be remapped) */ "iip\0" "glGetInteger64i_v\0" "\0" - /* _mesa_function_pool[10474]: GetVertexAttribdvNV (will be remapped) */ + /* _mesa_function_pool[10527]: GetVertexAttribdvNV (will be remapped) */ "iip\0" "glGetVertexAttribdvNV\0" "\0" - /* _mesa_function_pool[10501]: Normal3fv (offset 57) */ + /* _mesa_function_pool[10554]: Normal3fv (offset 57) */ "p\0" "glNormal3fv\0" "\0" - /* _mesa_function_pool[10516]: GlobalAlphaFactorbSUN (dynamic) */ + /* _mesa_function_pool[10569]: GlobalAlphaFactorbSUN (dynamic) */ "i\0" "glGlobalAlphaFactorbSUN\0" "\0" - /* _mesa_function_pool[10543]: Color3us (offset 23) */ + /* _mesa_function_pool[10596]: Color3us (offset 23) */ "iii\0" "glColor3us\0" "\0" - /* _mesa_function_pool[10559]: ImageTransformParameterfvHP (dynamic) */ + /* _mesa_function_pool[10612]: ImageTransformParameterfvHP (dynamic) */ "iip\0" "glImageTransformParameterfvHP\0" "\0" - /* _mesa_function_pool[10594]: VertexAttrib4ivARB (will be remapped) */ + /* _mesa_function_pool[10647]: VertexAttrib4ivARB (will be remapped) */ "ip\0" "glVertexAttrib4iv\0" "glVertexAttrib4ivARB\0" "\0" - /* _mesa_function_pool[10637]: End (offset 43) */ + /* _mesa_function_pool[10690]: End (offset 43) */ "\0" "glEnd\0" "\0" - /* _mesa_function_pool[10645]: VertexAttrib3fNV (will be remapped) */ + /* _mesa_function_pool[10698]: VertexAttrib3fNV (will be remapped) */ "ifff\0" "glVertexAttrib3fNV\0" "\0" - /* _mesa_function_pool[10670]: VertexAttribs2dvNV (will be remapped) */ + /* _mesa_function_pool[10723]: VertexAttribs2dvNV (will be remapped) */ "iip\0" "glVertexAttribs2dvNV\0" "\0" - /* _mesa_function_pool[10696]: GetQueryObjectui64vEXT (will be remapped) */ + /* _mesa_function_pool[10749]: GetQueryObjectui64vEXT (will be remapped) */ "iip\0" "glGetQueryObjectui64vEXT\0" "\0" - /* _mesa_function_pool[10726]: MultiTexCoord3fvARB (offset 395) */ + /* _mesa_function_pool[10779]: MultiTexCoord3fvARB (offset 395) */ "ip\0" "glMultiTexCoord3fv\0" "glMultiTexCoord3fvARB\0" "\0" - /* _mesa_function_pool[10771]: SecondaryColor3dEXT (will be remapped) */ + /* _mesa_function_pool[10824]: SecondaryColor3dEXT (will be remapped) */ "ddd\0" "glSecondaryColor3d\0" "glSecondaryColor3dEXT\0" "\0" - /* _mesa_function_pool[10817]: Color3ub (offset 19) */ + /* _mesa_function_pool[10870]: Color3ub (offset 19) */ "iii\0" "glColor3ub\0" "\0" - /* _mesa_function_pool[10833]: GetProgramParameterfvNV (will be remapped) */ + /* _mesa_function_pool[10886]: GetProgramParameterfvNV (will be remapped) */ "iiip\0" "glGetProgramParameterfvNV\0" "\0" - /* _mesa_function_pool[10865]: TangentPointerEXT (dynamic) */ + /* _mesa_function_pool[10918]: TangentPointerEXT (dynamic) */ "iip\0" "glTangentPointerEXT\0" "\0" - /* _mesa_function_pool[10890]: Color4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[10943]: Color4fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[10925]: GetInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[10978]: GetInstrumentsSGIX (dynamic) */ "\0" "glGetInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[10948]: GetUniformuivEXT (will be remapped) */ + /* _mesa_function_pool[11001]: GetUniformuivEXT (will be remapped) */ "iip\0" "glGetUniformuivEXT\0" "glGetUniformuiv\0" "\0" - /* _mesa_function_pool[10988]: Color3ui (offset 21) */ + /* _mesa_function_pool[11041]: Color3ui (offset 21) */ "iii\0" "glColor3ui\0" "\0" - /* _mesa_function_pool[11004]: EvalMapsNV (dynamic) */ + /* _mesa_function_pool[11057]: EvalMapsNV (dynamic) */ "ii\0" "glEvalMapsNV\0" "\0" - /* _mesa_function_pool[11021]: TexSubImage2D (offset 333) */ + /* _mesa_function_pool[11074]: TexSubImage2D (offset 333) */ "iiiiiiiip\0" "glTexSubImage2D\0" "glTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[11067]: FragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[11120]: FragmentLightivSGIX (dynamic) */ "iip\0" "glFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[11094]: GetTexParameterPointervAPPLE (will be remapped) */ + /* _mesa_function_pool[11147]: GetTexParameterPointervAPPLE (will be remapped) */ "iip\0" "glGetTexParameterPointervAPPLE\0" "\0" - /* _mesa_function_pool[11130]: TexGenfv (offset 191) */ + /* _mesa_function_pool[11183]: TexGenfv (offset 191) */ "iip\0" "glTexGenfv\0" "\0" - /* _mesa_function_pool[11146]: GetTransformFeedbackVaryingEXT (will be remapped) */ + /* _mesa_function_pool[11199]: GetTransformFeedbackVaryingEXT (will be remapped) */ "iiipppp\0" "glGetTransformFeedbackVaryingEXT\0" "glGetTransformFeedbackVarying\0" "\0" - /* _mesa_function_pool[11218]: VertexAttrib4bvARB (will be remapped) */ + /* _mesa_function_pool[11271]: VertexAttrib4bvARB (will be remapped) */ "ip\0" "glVertexAttrib4bv\0" "glVertexAttrib4bvARB\0" "\0" - /* _mesa_function_pool[11261]: ShaderBinary (will be remapped) */ + /* _mesa_function_pool[11314]: ShaderBinary (will be remapped) */ "ipipi\0" "glShaderBinary\0" "\0" - /* _mesa_function_pool[11283]: GetIntegerIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[11336]: GetIntegerIndexedvEXT (will be remapped) */ "iip\0" "glGetIntegerIndexedvEXT\0" "glGetIntegeri_v\0" "\0" - /* _mesa_function_pool[11328]: MultiTexCoord4sARB (offset 406) */ + /* _mesa_function_pool[11381]: MultiTexCoord4sARB (offset 406) */ "iiiii\0" "glMultiTexCoord4s\0" "glMultiTexCoord4sARB\0" "\0" - /* _mesa_function_pool[11374]: GetFragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[11427]: GetFragmentMaterialivSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[11407]: WindowPos4dMESA (will be remapped) */ + /* _mesa_function_pool[11460]: WindowPos4dMESA (will be remapped) */ "dddd\0" "glWindowPos4dMESA\0" "\0" - /* _mesa_function_pool[11431]: WeightPointerARB (dynamic) */ + /* _mesa_function_pool[11484]: WeightPointerARB (dynamic) */ "iiip\0" "glWeightPointerARB\0" "\0" - /* _mesa_function_pool[11456]: WindowPos2dMESA (will be remapped) */ + /* _mesa_function_pool[11509]: WindowPos2dMESA (will be remapped) */ "dd\0" "glWindowPos2d\0" "glWindowPos2dARB\0" "glWindowPos2dMESA\0" "\0" - /* _mesa_function_pool[11509]: FramebufferTexture3DEXT (will be remapped) */ + /* _mesa_function_pool[11562]: FramebufferTexture3DEXT (will be remapped) */ "iiiiii\0" "glFramebufferTexture3D\0" "glFramebufferTexture3DEXT\0" "\0" - /* _mesa_function_pool[11566]: BlendEquation (offset 337) */ + /* _mesa_function_pool[11619]: BlendEquation (offset 337) */ "i\0" "glBlendEquation\0" "glBlendEquationEXT\0" "\0" - /* _mesa_function_pool[11604]: VertexAttrib3dNV (will be remapped) */ + /* _mesa_function_pool[11657]: VertexAttrib3dNV (will be remapped) */ "iddd\0" "glVertexAttrib3dNV\0" "\0" - /* _mesa_function_pool[11629]: VertexAttrib3dARB (will be remapped) */ + /* _mesa_function_pool[11682]: VertexAttrib3dARB (will be remapped) */ "iddd\0" "glVertexAttrib3d\0" "glVertexAttrib3dARB\0" "\0" - /* _mesa_function_pool[11672]: VertexAttribI4usvEXT (will be remapped) */ + /* _mesa_function_pool[11725]: VertexAttribI4usvEXT (will be remapped) */ "ip\0" "glVertexAttribI4usvEXT\0" "glVertexAttribI4usv\0" "\0" - /* _mesa_function_pool[11719]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[11772]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "ppppp\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[11783]: VertexAttrib4fARB (will be remapped) */ + /* _mesa_function_pool[11836]: VertexAttrib4fARB (will be remapped) */ "iffff\0" "glVertexAttrib4f\0" "glVertexAttrib4fARB\0" "\0" - /* _mesa_function_pool[11827]: GetError (offset 261) */ + /* _mesa_function_pool[11880]: GetError (offset 261) */ "\0" "glGetError\0" "\0" - /* _mesa_function_pool[11840]: IndexFuncEXT (dynamic) */ + /* _mesa_function_pool[11893]: IndexFuncEXT (dynamic) */ "if\0" "glIndexFuncEXT\0" "\0" - /* _mesa_function_pool[11859]: TexCoord3dv (offset 111) */ + /* _mesa_function_pool[11912]: TexCoord3dv (offset 111) */ "p\0" "glTexCoord3dv\0" "\0" - /* _mesa_function_pool[11876]: Indexdv (offset 45) */ + /* _mesa_function_pool[11929]: Indexdv (offset 45) */ "p\0" "glIndexdv\0" "\0" - /* _mesa_function_pool[11889]: FramebufferTexture2DEXT (will be remapped) */ + /* _mesa_function_pool[11942]: FramebufferTexture2DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture2D\0" "glFramebufferTexture2DEXT\0" "\0" - /* _mesa_function_pool[11945]: Normal3s (offset 60) */ + /* _mesa_function_pool[11998]: Normal3s (offset 60) */ "iii\0" "glNormal3s\0" "\0" - /* _mesa_function_pool[11961]: GetObjectParameterivAPPLE (will be remapped) */ + /* _mesa_function_pool[12014]: GetObjectParameterivAPPLE (will be remapped) */ "iiip\0" "glGetObjectParameterivAPPLE\0" "\0" - /* _mesa_function_pool[11995]: PushName (offset 201) */ + /* _mesa_function_pool[12048]: PushName (offset 201) */ "i\0" "glPushName\0" "\0" - /* _mesa_function_pool[12009]: MultiTexCoord2dvARB (offset 385) */ + /* _mesa_function_pool[12062]: MultiTexCoord2dvARB (offset 385) */ "ip\0" "glMultiTexCoord2dv\0" "glMultiTexCoord2dvARB\0" "\0" - /* _mesa_function_pool[12054]: CullParameterfvEXT (dynamic) */ + /* _mesa_function_pool[12107]: CullParameterfvEXT (dynamic) */ "ip\0" "glCullParameterfvEXT\0" "\0" - /* _mesa_function_pool[12079]: Normal3i (offset 58) */ + /* _mesa_function_pool[12132]: Normal3i (offset 58) */ "iii\0" "glNormal3i\0" "\0" - /* _mesa_function_pool[12095]: ProgramNamedParameter4fvNV (will be remapped) */ + /* _mesa_function_pool[12148]: ProgramNamedParameter4fvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4fvNV\0" "\0" - /* _mesa_function_pool[12130]: SecondaryColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[12183]: SecondaryColorPointerEXT (will be remapped) */ "iiip\0" "glSecondaryColorPointer\0" "glSecondaryColorPointerEXT\0" "\0" - /* _mesa_function_pool[12187]: VertexAttrib4fvARB (will be remapped) */ + /* _mesa_function_pool[12240]: VertexAttrib4fvARB (will be remapped) */ "ip\0" "glVertexAttrib4fv\0" "glVertexAttrib4fvARB\0" "\0" - /* _mesa_function_pool[12230]: PixelTexGenSGIX (will be remapped) */ + /* _mesa_function_pool[12283]: PixelTexGenSGIX (will be remapped) */ "i\0" "glPixelTexGenSGIX\0" "\0" - /* _mesa_function_pool[12251]: GetActiveUniformARB (will be remapped) */ + /* _mesa_function_pool[12304]: GetActiveUniformARB (will be remapped) */ "iiipppp\0" "glGetActiveUniform\0" "glGetActiveUniformARB\0" "\0" - /* _mesa_function_pool[12301]: ImageTransformParameteriHP (dynamic) */ + /* _mesa_function_pool[12354]: ImageTransformParameteriHP (dynamic) */ "iii\0" "glImageTransformParameteriHP\0" "\0" - /* _mesa_function_pool[12335]: Normal3b (offset 52) */ + /* _mesa_function_pool[12388]: Normal3b (offset 52) */ "iii\0" "glNormal3b\0" "\0" - /* _mesa_function_pool[12351]: Normal3d (offset 54) */ + /* _mesa_function_pool[12404]: Normal3d (offset 54) */ "ddd\0" "glNormal3d\0" "\0" - /* _mesa_function_pool[12367]: Uniform1uiEXT (will be remapped) */ + /* _mesa_function_pool[12420]: Uniform1uiEXT (will be remapped) */ "ii\0" "glUniform1uiEXT\0" "glUniform1ui\0" "\0" - /* _mesa_function_pool[12400]: Normal3f (offset 56) */ + /* _mesa_function_pool[12453]: Normal3f (offset 56) */ "fff\0" "glNormal3f\0" "\0" - /* _mesa_function_pool[12416]: MultiTexCoord1svARB (offset 383) */ + /* _mesa_function_pool[12469]: MultiTexCoord1svARB (offset 383) */ "ip\0" "glMultiTexCoord1sv\0" "glMultiTexCoord1svARB\0" "\0" - /* _mesa_function_pool[12461]: Indexi (offset 48) */ + /* _mesa_function_pool[12514]: Indexi (offset 48) */ "i\0" "glIndexi\0" "\0" - /* _mesa_function_pool[12473]: EGLImageTargetTexture2DOES (will be remapped) */ + /* _mesa_function_pool[12526]: EGLImageTargetTexture2DOES (will be remapped) */ "ip\0" "glEGLImageTargetTexture2DOES\0" "\0" - /* _mesa_function_pool[12506]: EndQueryARB (will be remapped) */ + /* _mesa_function_pool[12559]: EndQueryARB (will be remapped) */ "i\0" "glEndQuery\0" "glEndQueryARB\0" "\0" - /* _mesa_function_pool[12534]: DeleteFencesNV (will be remapped) */ + /* _mesa_function_pool[12587]: DeleteFencesNV (will be remapped) */ "ip\0" "glDeleteFencesNV\0" "\0" - /* _mesa_function_pool[12555]: ColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[12608]: ColorPointerListIBM (dynamic) */ "iiipi\0" "glColorPointerListIBM\0" "\0" - /* _mesa_function_pool[12584]: BindBufferRangeEXT (will be remapped) */ + /* _mesa_function_pool[12637]: BindBufferRangeEXT (will be remapped) */ "iiiii\0" "glBindBufferRangeEXT\0" "glBindBufferRange\0" "\0" - /* _mesa_function_pool[12630]: DepthMask (offset 211) */ + /* _mesa_function_pool[12683]: DepthMask (offset 211) */ "i\0" "glDepthMask\0" "\0" - /* _mesa_function_pool[12645]: IsShader (will be remapped) */ + /* _mesa_function_pool[12698]: IsShader (will be remapped) */ "i\0" "glIsShader\0" "\0" - /* _mesa_function_pool[12659]: Indexf (offset 46) */ + /* _mesa_function_pool[12712]: Indexf (offset 46) */ "f\0" "glIndexf\0" "\0" - /* _mesa_function_pool[12671]: GetImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[12724]: GetImageTransformParameterivHP (dynamic) */ "iip\0" "glGetImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[12709]: Indexd (offset 44) */ + /* _mesa_function_pool[12762]: Indexd (offset 44) */ "d\0" "glIndexd\0" "\0" - /* _mesa_function_pool[12721]: GetMaterialiv (offset 270) */ + /* _mesa_function_pool[12774]: GetMaterialiv (offset 270) */ "iip\0" "glGetMaterialiv\0" "\0" - /* _mesa_function_pool[12742]: StencilOp (offset 244) */ + /* _mesa_function_pool[12795]: StencilOp (offset 244) */ "iii\0" "glStencilOp\0" "\0" - /* _mesa_function_pool[12759]: WindowPos4ivMESA (will be remapped) */ + /* _mesa_function_pool[12812]: WindowPos4ivMESA (will be remapped) */ "p\0" "glWindowPos4ivMESA\0" "\0" - /* _mesa_function_pool[12781]: FramebufferTextureLayer (dynamic) */ + /* _mesa_function_pool[12834]: FramebufferTextureLayer (dynamic) */ "iiiii\0" "glFramebufferTextureLayerARB\0" "\0" - /* _mesa_function_pool[12817]: MultiTexCoord3svARB (offset 399) */ + /* _mesa_function_pool[12870]: MultiTexCoord3svARB (offset 399) */ "ip\0" "glMultiTexCoord3sv\0" "glMultiTexCoord3svARB\0" "\0" - /* _mesa_function_pool[12862]: TexEnvfv (offset 185) */ + /* _mesa_function_pool[12915]: TexEnvfv (offset 185) */ "iip\0" "glTexEnvfv\0" "\0" - /* _mesa_function_pool[12878]: MultiTexCoord4iARB (offset 404) */ + /* _mesa_function_pool[12931]: MultiTexCoord4iARB (offset 404) */ "iiiii\0" "glMultiTexCoord4i\0" "glMultiTexCoord4iARB\0" "\0" - /* _mesa_function_pool[12924]: Indexs (offset 50) */ + /* _mesa_function_pool[12977]: Indexs (offset 50) */ "i\0" "glIndexs\0" "\0" - /* _mesa_function_pool[12936]: Binormal3ivEXT (dynamic) */ + /* _mesa_function_pool[12989]: Binormal3ivEXT (dynamic) */ "p\0" "glBinormal3ivEXT\0" "\0" - /* _mesa_function_pool[12956]: ResizeBuffersMESA (will be remapped) */ + /* _mesa_function_pool[13009]: ResizeBuffersMESA (will be remapped) */ "\0" "glResizeBuffersMESA\0" "\0" - /* _mesa_function_pool[12978]: BlendFuncSeparateiARB (will be remapped) */ + /* _mesa_function_pool[13031]: BlendFuncSeparateiARB (will be remapped) */ "iiiii\0" "glBlendFuncSeparateiARB\0" + "glBlendFuncSeparateIndexedAMD\0" "\0" - /* _mesa_function_pool[13009]: GetUniformivARB (will be remapped) */ + /* _mesa_function_pool[13092]: GetUniformivARB (will be remapped) */ "iip\0" "glGetUniformiv\0" "glGetUniformivARB\0" "\0" - /* _mesa_function_pool[13047]: PixelTexGenParameteriSGIS (will be remapped) */ + /* _mesa_function_pool[13130]: PixelTexGenParameteriSGIS (will be remapped) */ "ii\0" "glPixelTexGenParameteriSGIS\0" "\0" - /* _mesa_function_pool[13079]: VertexPointervINTEL (dynamic) */ + /* _mesa_function_pool[13162]: VertexPointervINTEL (dynamic) */ "iip\0" "glVertexPointervINTEL\0" "\0" - /* _mesa_function_pool[13106]: Vertex2i (offset 130) */ + /* _mesa_function_pool[13189]: Vertex2i (offset 130) */ "ii\0" "glVertex2i\0" "\0" - /* _mesa_function_pool[13121]: LoadMatrixf (offset 291) */ + /* _mesa_function_pool[13204]: LoadMatrixf (offset 291) */ "p\0" "glLoadMatrixf\0" "\0" - /* _mesa_function_pool[13138]: VertexAttribI1uivEXT (will be remapped) */ + /* _mesa_function_pool[13221]: VertexAttribI1uivEXT (will be remapped) */ "ip\0" "glVertexAttribI1uivEXT\0" "glVertexAttribI1uiv\0" "\0" - /* _mesa_function_pool[13185]: Vertex2f (offset 128) */ + /* _mesa_function_pool[13268]: Vertex2f (offset 128) */ "ff\0" "glVertex2f\0" "\0" - /* _mesa_function_pool[13200]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[13283]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[13253]: Color4bv (offset 26) */ + /* _mesa_function_pool[13336]: Color4bv (offset 26) */ "p\0" "glColor4bv\0" "\0" - /* _mesa_function_pool[13267]: VertexPointer (offset 321) */ + /* _mesa_function_pool[13350]: VertexPointer (offset 321) */ "iiip\0" "glVertexPointer\0" "\0" - /* _mesa_function_pool[13289]: SecondaryColor3uiEXT (will be remapped) */ + /* _mesa_function_pool[13372]: SecondaryColor3uiEXT (will be remapped) */ "iii\0" "glSecondaryColor3ui\0" "glSecondaryColor3uiEXT\0" "\0" - /* _mesa_function_pool[13337]: StartInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[13420]: StartInstrumentsSGIX (dynamic) */ "\0" "glStartInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[13362]: SecondaryColor3usvEXT (will be remapped) */ + /* _mesa_function_pool[13445]: SecondaryColor3usvEXT (will be remapped) */ "p\0" "glSecondaryColor3usv\0" "glSecondaryColor3usvEXT\0" "\0" - /* _mesa_function_pool[13410]: VertexAttrib2fvNV (will be remapped) */ + /* _mesa_function_pool[13493]: VertexAttrib2fvNV (will be remapped) */ "ip\0" "glVertexAttrib2fvNV\0" "\0" - /* _mesa_function_pool[13434]: ProgramLocalParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[13517]: ProgramLocalParameter4dvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4dvARB\0" "\0" - /* _mesa_function_pool[13469]: DeleteLists (offset 4) */ + /* _mesa_function_pool[13552]: DeleteLists (offset 4) */ "ii\0" "glDeleteLists\0" "\0" - /* _mesa_function_pool[13487]: LogicOp (offset 242) */ + /* _mesa_function_pool[13570]: LogicOp (offset 242) */ "i\0" "glLogicOp\0" "\0" - /* _mesa_function_pool[13500]: MatrixIndexuivARB (dynamic) */ + /* _mesa_function_pool[13583]: MatrixIndexuivARB (dynamic) */ "ip\0" "glMatrixIndexuivARB\0" "\0" - /* _mesa_function_pool[13524]: Vertex2s (offset 132) */ + /* _mesa_function_pool[13607]: Vertex2s (offset 132) */ "ii\0" "glVertex2s\0" "\0" - /* _mesa_function_pool[13539]: RenderbufferStorageMultisample (will be remapped) */ + /* _mesa_function_pool[13622]: RenderbufferStorageMultisample (will be remapped) */ "iiiii\0" "glRenderbufferStorageMultisample\0" "glRenderbufferStorageMultisampleEXT\0" "\0" - /* _mesa_function_pool[13615]: TexCoord4fv (offset 121) */ + /* _mesa_function_pool[13698]: TexCoord4fv (offset 121) */ "p\0" "glTexCoord4fv\0" "\0" - /* _mesa_function_pool[13632]: Tangent3sEXT (dynamic) */ + /* _mesa_function_pool[13715]: Tangent3sEXT (dynamic) */ "iii\0" "glTangent3sEXT\0" "\0" - /* _mesa_function_pool[13652]: GlobalAlphaFactorfSUN (dynamic) */ + /* _mesa_function_pool[13735]: GlobalAlphaFactorfSUN (dynamic) */ "f\0" "glGlobalAlphaFactorfSUN\0" "\0" - /* _mesa_function_pool[13679]: MultiTexCoord3iARB (offset 396) */ + /* _mesa_function_pool[13762]: MultiTexCoord3iARB (offset 396) */ "iiii\0" "glMultiTexCoord3i\0" "glMultiTexCoord3iARB\0" "\0" - /* _mesa_function_pool[13724]: IsProgram (will be remapped) */ + /* _mesa_function_pool[13807]: IsProgram (will be remapped) */ "i\0" "glIsProgram\0" "\0" - /* _mesa_function_pool[13739]: TexCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[13822]: TexCoordPointerListIBM (dynamic) */ "iiipi\0" "glTexCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[13771]: VertexAttribI4svEXT (will be remapped) */ + /* _mesa_function_pool[13854]: VertexAttribI4svEXT (will be remapped) */ "ip\0" "glVertexAttribI4svEXT\0" "glVertexAttribI4sv\0" "\0" - /* _mesa_function_pool[13816]: GlobalAlphaFactorusSUN (dynamic) */ + /* _mesa_function_pool[13899]: GlobalAlphaFactorusSUN (dynamic) */ "i\0" "glGlobalAlphaFactorusSUN\0" "\0" - /* _mesa_function_pool[13844]: VertexAttrib2dvNV (will be remapped) */ + /* _mesa_function_pool[13927]: VertexAttrib2dvNV (will be remapped) */ "ip\0" "glVertexAttrib2dvNV\0" "\0" - /* _mesa_function_pool[13868]: FramebufferRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[13951]: FramebufferRenderbufferEXT (will be remapped) */ "iiii\0" "glFramebufferRenderbuffer\0" "glFramebufferRenderbufferEXT\0" "\0" - /* _mesa_function_pool[13929]: ClearBufferuiv (will be remapped) */ + /* _mesa_function_pool[14012]: ClearBufferuiv (will be remapped) */ "iip\0" "glClearBufferuiv\0" "\0" - /* _mesa_function_pool[13951]: VertexAttrib1dvNV (will be remapped) */ + /* _mesa_function_pool[14034]: VertexAttrib1dvNV (will be remapped) */ "ip\0" "glVertexAttrib1dvNV\0" "\0" - /* _mesa_function_pool[13975]: GenTextures (offset 328) */ + /* _mesa_function_pool[14058]: GenTextures (offset 328) */ "ip\0" "glGenTextures\0" "glGenTexturesEXT\0" "\0" - /* _mesa_function_pool[14010]: FramebufferTextureARB (will be remapped) */ + /* _mesa_function_pool[14093]: FramebufferTextureARB (will be remapped) */ "iiii\0" "glFramebufferTextureARB\0" "\0" - /* _mesa_function_pool[14040]: SetFenceNV (will be remapped) */ + /* _mesa_function_pool[14123]: SetFenceNV (will be remapped) */ "ii\0" "glSetFenceNV\0" "\0" - /* _mesa_function_pool[14057]: FramebufferTexture1DEXT (will be remapped) */ + /* _mesa_function_pool[14140]: FramebufferTexture1DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture1D\0" "glFramebufferTexture1DEXT\0" "\0" - /* _mesa_function_pool[14113]: GetCombinerOutputParameterivNV (will be remapped) */ + /* _mesa_function_pool[14196]: GetCombinerOutputParameterivNV (will be remapped) */ "iiip\0" "glGetCombinerOutputParameterivNV\0" "\0" - /* _mesa_function_pool[14152]: MultiModeDrawArraysIBM (will be remapped) */ - "pppii\0" - "glMultiModeDrawArraysIBM\0" - "\0" - /* _mesa_function_pool[14184]: PixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[14235]: PixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[14217]: TextureNormalEXT (dynamic) */ + /* _mesa_function_pool[14268]: TextureNormalEXT (dynamic) */ "i\0" "glTextureNormalEXT\0" "\0" - /* _mesa_function_pool[14239]: IndexPointerListIBM (dynamic) */ + /* _mesa_function_pool[14290]: IndexPointerListIBM (dynamic) */ "iipi\0" "glIndexPointerListIBM\0" "\0" - /* _mesa_function_pool[14267]: WeightfvARB (dynamic) */ + /* _mesa_function_pool[14318]: WeightfvARB (dynamic) */ "ip\0" "glWeightfvARB\0" "\0" - /* _mesa_function_pool[14285]: GetCombinerOutputParameterfvNV (will be remapped) */ - "iiip\0" - "glGetCombinerOutputParameterfvNV\0" - "\0" - /* _mesa_function_pool[14324]: RasterPos2sv (offset 69) */ + /* _mesa_function_pool[14336]: RasterPos2sv (offset 69) */ "p\0" "glRasterPos2sv\0" "\0" - /* _mesa_function_pool[14342]: Color4ubv (offset 36) */ + /* _mesa_function_pool[14354]: Color4ubv (offset 36) */ "p\0" "glColor4ubv\0" "\0" - /* _mesa_function_pool[14357]: DrawBuffer (offset 202) */ + /* _mesa_function_pool[14369]: DrawBuffer (offset 202) */ "i\0" "glDrawBuffer\0" "\0" - /* _mesa_function_pool[14373]: TexCoord2fv (offset 105) */ + /* _mesa_function_pool[14385]: TexCoord2fv (offset 105) */ "p\0" "glTexCoord2fv\0" "\0" - /* _mesa_function_pool[14390]: WindowPos4fMESA (will be remapped) */ + /* _mesa_function_pool[14402]: WindowPos4fMESA (will be remapped) */ "ffff\0" "glWindowPos4fMESA\0" "\0" - /* _mesa_function_pool[14414]: TexCoord1sv (offset 101) */ + /* _mesa_function_pool[14426]: TexCoord1sv (offset 101) */ "p\0" "glTexCoord1sv\0" "\0" - /* _mesa_function_pool[14431]: WindowPos3dvMESA (will be remapped) */ + /* _mesa_function_pool[14443]: WindowPos3dvMESA (will be remapped) */ "p\0" "glWindowPos3dv\0" "glWindowPos3dvARB\0" "glWindowPos3dvMESA\0" "\0" - /* _mesa_function_pool[14486]: DepthFunc (offset 245) */ + /* _mesa_function_pool[14498]: DepthFunc (offset 245) */ "i\0" "glDepthFunc\0" "\0" - /* _mesa_function_pool[14501]: PixelMapusv (offset 253) */ + /* _mesa_function_pool[14513]: PixelMapusv (offset 253) */ "iip\0" "glPixelMapusv\0" "\0" - /* _mesa_function_pool[14520]: GetQueryObjecti64vEXT (will be remapped) */ + /* _mesa_function_pool[14532]: GetQueryObjecti64vEXT (will be remapped) */ "iip\0" "glGetQueryObjecti64vEXT\0" "\0" - /* _mesa_function_pool[14549]: MultiTexCoord1dARB (offset 376) */ + /* _mesa_function_pool[14561]: MultiTexCoord1dARB (offset 376) */ "id\0" "glMultiTexCoord1d\0" "glMultiTexCoord1dARB\0" "\0" - /* _mesa_function_pool[14592]: PointParameterivNV (will be remapped) */ + /* _mesa_function_pool[14604]: PointParameterivNV (will be remapped) */ "ip\0" "glPointParameteriv\0" "glPointParameterivNV\0" "\0" - /* _mesa_function_pool[14636]: IsSampler (will be remapped) */ + /* _mesa_function_pool[14648]: IsSampler (will be remapped) */ "i\0" "glIsSampler\0" "\0" - /* _mesa_function_pool[14651]: BlendFunc (offset 241) */ + /* _mesa_function_pool[14663]: BlendFunc (offset 241) */ "ii\0" "glBlendFunc\0" "\0" - /* _mesa_function_pool[14667]: EndTransformFeedbackEXT (will be remapped) */ + /* _mesa_function_pool[14679]: EndTransformFeedbackEXT (will be remapped) */ "\0" "glEndTransformFeedbackEXT\0" "glEndTransformFeedback\0" "\0" - /* _mesa_function_pool[14718]: Uniform2fvARB (will be remapped) */ + /* _mesa_function_pool[14730]: Uniform2fvARB (will be remapped) */ "iip\0" "glUniform2fv\0" "glUniform2fvARB\0" "\0" - /* _mesa_function_pool[14752]: BufferParameteriAPPLE (will be remapped) */ + /* _mesa_function_pool[14764]: BufferParameteriAPPLE (will be remapped) */ "iii\0" "glBufferParameteriAPPLE\0" "\0" - /* _mesa_function_pool[14781]: MultiTexCoord3dvARB (offset 393) */ + /* _mesa_function_pool[14793]: MultiTexCoord3dvARB (offset 393) */ "ip\0" "glMultiTexCoord3dv\0" "glMultiTexCoord3dvARB\0" "\0" - /* _mesa_function_pool[14826]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[14838]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[14882]: DeleteObjectARB (will be remapped) */ + /* _mesa_function_pool[14894]: DeleteObjectARB (will be remapped) */ "i\0" "glDeleteObjectARB\0" "\0" - /* _mesa_function_pool[14903]: GetShaderPrecisionFormat (will be remapped) */ + /* _mesa_function_pool[14915]: GetShaderPrecisionFormat (will be remapped) */ "iipp\0" "glGetShaderPrecisionFormat\0" "\0" - /* _mesa_function_pool[14936]: MatrixIndexPointerARB (dynamic) */ + /* _mesa_function_pool[14948]: MatrixIndexPointerARB (dynamic) */ "iiip\0" "glMatrixIndexPointerARB\0" "\0" - /* _mesa_function_pool[14966]: ProgramNamedParameter4dvNV (will be remapped) */ + /* _mesa_function_pool[14978]: ProgramNamedParameter4dvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4dvNV\0" "\0" - /* _mesa_function_pool[15001]: Tangent3fvEXT (dynamic) */ + /* _mesa_function_pool[15013]: Tangent3fvEXT (dynamic) */ "p\0" "glTangent3fvEXT\0" "\0" - /* _mesa_function_pool[15020]: Flush (offset 217) */ + /* _mesa_function_pool[15032]: Flush (offset 217) */ "\0" "glFlush\0" "\0" - /* _mesa_function_pool[15030]: Color4uiv (offset 38) */ + /* _mesa_function_pool[15042]: Color4uiv (offset 38) */ "p\0" "glColor4uiv\0" "\0" - /* _mesa_function_pool[15045]: VertexAttribI4iEXT (will be remapped) */ + /* _mesa_function_pool[15057]: VertexAttribI4iEXT (will be remapped) */ "iiiii\0" "glVertexAttribI4iEXT\0" "glVertexAttribI4i\0" "\0" - /* _mesa_function_pool[15091]: GenVertexArrays (will be remapped) */ + /* _mesa_function_pool[15103]: GenVertexArrays (will be remapped) */ "ip\0" "glGenVertexArrays\0" "\0" - /* _mesa_function_pool[15113]: Uniform3uivEXT (will be remapped) */ + /* _mesa_function_pool[15125]: Uniform3uivEXT (will be remapped) */ "iip\0" "glUniform3uivEXT\0" "glUniform3uiv\0" "\0" - /* _mesa_function_pool[15149]: RasterPos3sv (offset 77) */ + /* _mesa_function_pool[15161]: RasterPos3sv (offset 77) */ "p\0" "glRasterPos3sv\0" "\0" - /* _mesa_function_pool[15167]: BindFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[15179]: BindFramebufferEXT (will be remapped) */ "ii\0" "glBindFramebuffer\0" "glBindFramebufferEXT\0" "\0" - /* _mesa_function_pool[15210]: ReferencePlaneSGIX (dynamic) */ + /* _mesa_function_pool[15222]: ReferencePlaneSGIX (dynamic) */ "p\0" "glReferencePlaneSGIX\0" "\0" - /* _mesa_function_pool[15234]: PushAttrib (offset 219) */ + /* _mesa_function_pool[15246]: PushAttrib (offset 219) */ "i\0" "glPushAttrib\0" "\0" - /* _mesa_function_pool[15250]: RasterPos2i (offset 66) */ + /* _mesa_function_pool[15262]: RasterPos2i (offset 66) */ "ii\0" "glRasterPos2i\0" "\0" - /* _mesa_function_pool[15268]: ValidateProgramARB (will be remapped) */ + /* _mesa_function_pool[15280]: ValidateProgramARB (will be remapped) */ "i\0" "glValidateProgram\0" "glValidateProgramARB\0" "\0" - /* _mesa_function_pool[15310]: TexParameteriv (offset 181) */ + /* _mesa_function_pool[15322]: TexParameteriv (offset 181) */ "iip\0" "glTexParameteriv\0" "\0" - /* _mesa_function_pool[15332]: UnlockArraysEXT (will be remapped) */ + /* _mesa_function_pool[15344]: UnlockArraysEXT (will be remapped) */ "\0" "glUnlockArraysEXT\0" "\0" - /* _mesa_function_pool[15352]: TexCoord2fColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[15364]: TexCoord2fColor3fVertex3fSUN (dynamic) */ "ffffffff\0" "glTexCoord2fColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[15393]: WindowPos3fvMESA (will be remapped) */ + /* _mesa_function_pool[15405]: WindowPos3fvMESA (will be remapped) */ "p\0" "glWindowPos3fv\0" "glWindowPos3fvARB\0" "glWindowPos3fvMESA\0" "\0" - /* _mesa_function_pool[15448]: RasterPos2f (offset 64) */ + /* _mesa_function_pool[15460]: RasterPos2f (offset 64) */ "ff\0" "glRasterPos2f\0" "\0" - /* _mesa_function_pool[15466]: VertexAttrib1svNV (will be remapped) */ + /* _mesa_function_pool[15478]: VertexAttrib1svNV (will be remapped) */ "ip\0" "glVertexAttrib1svNV\0" "\0" - /* _mesa_function_pool[15490]: RasterPos2d (offset 62) */ + /* _mesa_function_pool[15502]: RasterPos2d (offset 62) */ "dd\0" "glRasterPos2d\0" "\0" - /* _mesa_function_pool[15508]: RasterPos3fv (offset 73) */ + /* _mesa_function_pool[15520]: RasterPos3fv (offset 73) */ "p\0" "glRasterPos3fv\0" "\0" - /* _mesa_function_pool[15526]: CopyTexSubImage3D (offset 373) */ + /* _mesa_function_pool[15538]: CopyTexSubImage3D (offset 373) */ "iiiiiiiii\0" "glCopyTexSubImage3D\0" "glCopyTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[15580]: VertexAttrib2dARB (will be remapped) */ + /* _mesa_function_pool[15592]: VertexAttrib2dARB (will be remapped) */ "idd\0" "glVertexAttrib2d\0" "glVertexAttrib2dARB\0" "\0" - /* _mesa_function_pool[15622]: Color4ub (offset 35) */ + /* _mesa_function_pool[15634]: Color4ub (offset 35) */ "iiii\0" "glColor4ub\0" "\0" - /* _mesa_function_pool[15639]: GetInteger64v (will be remapped) */ + /* _mesa_function_pool[15651]: GetInteger64v (will be remapped) */ "ip\0" "glGetInteger64v\0" "\0" - /* _mesa_function_pool[15659]: TextureColorMaskSGIS (dynamic) */ + /* _mesa_function_pool[15671]: TextureColorMaskSGIS (dynamic) */ "iiii\0" "glTextureColorMaskSGIS\0" "\0" - /* _mesa_function_pool[15688]: RasterPos2s (offset 68) */ + /* _mesa_function_pool[15700]: RasterPos2s (offset 68) */ "ii\0" "glRasterPos2s\0" "\0" - /* _mesa_function_pool[15706]: GetColorTable (offset 343) */ + /* _mesa_function_pool[15718]: GetColorTable (offset 343) */ "iiip\0" "glGetColorTable\0" "glGetColorTableSGI\0" "glGetColorTableEXT\0" "\0" - /* _mesa_function_pool[15766]: SelectBuffer (offset 195) */ + /* _mesa_function_pool[15778]: SelectBuffer (offset 195) */ "ip\0" "glSelectBuffer\0" "\0" - /* _mesa_function_pool[15785]: Indexiv (offset 49) */ + /* _mesa_function_pool[15797]: Indexiv (offset 49) */ "p\0" "glIndexiv\0" "\0" - /* _mesa_function_pool[15798]: TexCoord3i (offset 114) */ + /* _mesa_function_pool[15810]: TexCoord3i (offset 114) */ "iii\0" "glTexCoord3i\0" "\0" - /* _mesa_function_pool[15816]: CopyColorTable (offset 342) */ + /* _mesa_function_pool[15828]: CopyColorTable (offset 342) */ "iiiii\0" "glCopyColorTable\0" "glCopyColorTableSGI\0" "\0" - /* _mesa_function_pool[15860]: GetHistogramParameterfv (offset 362) */ + /* _mesa_function_pool[15872]: GetHistogramParameterfv (offset 362) */ "iip\0" "glGetHistogramParameterfv\0" "glGetHistogramParameterfvEXT\0" "\0" - /* _mesa_function_pool[15920]: Frustum (offset 289) */ + /* _mesa_function_pool[15932]: Frustum (offset 289) */ "dddddd\0" "glFrustum\0" "\0" - /* _mesa_function_pool[15938]: GetString (offset 275) */ + /* _mesa_function_pool[15950]: GetString (offset 275) */ "i\0" "glGetString\0" "\0" - /* _mesa_function_pool[15953]: ColorPointervINTEL (dynamic) */ + /* _mesa_function_pool[15965]: ColorPointervINTEL (dynamic) */ "iip\0" "glColorPointervINTEL\0" "\0" - /* _mesa_function_pool[15979]: TexEnvf (offset 184) */ + /* _mesa_function_pool[15991]: TexEnvf (offset 184) */ "iif\0" "glTexEnvf\0" "\0" - /* _mesa_function_pool[15994]: TexCoord3d (offset 110) */ + /* _mesa_function_pool[16006]: TexCoord3d (offset 110) */ "ddd\0" "glTexCoord3d\0" "\0" - /* _mesa_function_pool[16012]: AlphaFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[16024]: AlphaFragmentOp1ATI (will be remapped) */ "iiiiii\0" "glAlphaFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[16042]: TexCoord3f (offset 112) */ + /* _mesa_function_pool[16054]: TexCoord3f (offset 112) */ "fff\0" "glTexCoord3f\0" "\0" - /* _mesa_function_pool[16060]: MultiTexCoord3ivARB (offset 397) */ + /* _mesa_function_pool[16072]: MultiTexCoord3ivARB (offset 397) */ "ip\0" "glMultiTexCoord3iv\0" "glMultiTexCoord3ivARB\0" "\0" - /* _mesa_function_pool[16105]: MultiTexCoord2sARB (offset 390) */ + /* _mesa_function_pool[16117]: MultiTexCoord2sARB (offset 390) */ "iii\0" "glMultiTexCoord2s\0" "glMultiTexCoord2sARB\0" "\0" - /* _mesa_function_pool[16149]: VertexAttrib1dvARB (will be remapped) */ + /* _mesa_function_pool[16161]: VertexAttrib1dvARB (will be remapped) */ "ip\0" "glVertexAttrib1dv\0" "glVertexAttrib1dvARB\0" "\0" - /* _mesa_function_pool[16192]: GetnHistogramARB (will be remapped) */ + /* _mesa_function_pool[16204]: GetnHistogramARB (will be remapped) */ "iiiiip\0" "glGetnHistogramARB\0" "\0" - /* _mesa_function_pool[16219]: DeleteTextures (offset 327) */ + /* _mesa_function_pool[16231]: DeleteTextures (offset 327) */ "ip\0" "glDeleteTextures\0" "glDeleteTexturesEXT\0" "\0" - /* _mesa_function_pool[16260]: TexCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[16272]: TexCoordPointerEXT (will be remapped) */ "iiiip\0" "glTexCoordPointerEXT\0" "\0" - /* _mesa_function_pool[16288]: TexSubImage4DSGIS (dynamic) */ + /* _mesa_function_pool[16300]: TexSubImage4DSGIS (dynamic) */ "iiiiiiiiiiiip\0" "glTexSubImage4DSGIS\0" "\0" - /* _mesa_function_pool[16323]: TexCoord3s (offset 116) */ + /* _mesa_function_pool[16335]: TexCoord3s (offset 116) */ "iii\0" "glTexCoord3s\0" "\0" - /* _mesa_function_pool[16341]: GetTexLevelParameteriv (offset 285) */ + /* _mesa_function_pool[16353]: GetTexLevelParameteriv (offset 285) */ "iiip\0" "glGetTexLevelParameteriv\0" "\0" - /* _mesa_function_pool[16372]: CombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[16384]: CombinerStageParameterfvNV (dynamic) */ "iip\0" "glCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[16406]: StopInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[16418]: StopInstrumentsSGIX (dynamic) */ "i\0" "glStopInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[16431]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[16443]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ "fffffffffffffff\0" "glTexCoord4fColor4fNormal3fVertex4fSUN\0" "\0" - /* _mesa_function_pool[16487]: ClearAccum (offset 204) */ + /* _mesa_function_pool[16499]: ClearAccum (offset 204) */ "ffff\0" "glClearAccum\0" "\0" - /* _mesa_function_pool[16506]: DeformSGIX (dynamic) */ + /* _mesa_function_pool[16518]: DeformSGIX (dynamic) */ "i\0" "glDeformSGIX\0" "\0" - /* _mesa_function_pool[16522]: GetVertexAttribfvARB (will be remapped) */ + /* _mesa_function_pool[16534]: GetVertexAttribfvARB (will be remapped) */ "iip\0" "glGetVertexAttribfv\0" "glGetVertexAttribfvARB\0" "\0" - /* _mesa_function_pool[16570]: SecondaryColor3ivEXT (will be remapped) */ + /* _mesa_function_pool[16582]: SecondaryColor3ivEXT (will be remapped) */ "p\0" "glSecondaryColor3iv\0" "glSecondaryColor3ivEXT\0" "\0" - /* _mesa_function_pool[16616]: TexCoord4iv (offset 123) */ + /* _mesa_function_pool[16628]: TexCoord4iv (offset 123) */ "p\0" "glTexCoord4iv\0" "\0" - /* _mesa_function_pool[16633]: VertexAttribI4uiEXT (will be remapped) */ + /* _mesa_function_pool[16645]: VertexAttribI4uiEXT (will be remapped) */ "iiiii\0" "glVertexAttribI4uiEXT\0" "glVertexAttribI4ui\0" "\0" - /* _mesa_function_pool[16681]: GetFragmentMaterialfvSGIX (dynamic) */ + /* _mesa_function_pool[16693]: GetFragmentMaterialfvSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialfvSGIX\0" "\0" - /* _mesa_function_pool[16714]: UniformMatrix4x2fv (will be remapped) */ + /* _mesa_function_pool[16726]: UniformMatrix4x2fv (will be remapped) */ "iiip\0" "glUniformMatrix4x2fv\0" "\0" - /* _mesa_function_pool[16741]: GetDetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[16753]: GetDetailTexFuncSGIS (dynamic) */ "ip\0" "glGetDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[16768]: GetCombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[16780]: GetCombinerStageParameterfvNV (dynamic) */ "iip\0" "glGetCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[16805]: SamplerParameterIiv (will be remapped) */ + /* _mesa_function_pool[16817]: SamplerParameterIiv (will be remapped) */ "iip\0" "glSamplerParameterIiv\0" "\0" - /* _mesa_function_pool[16832]: PolygonOffset (offset 319) */ + /* _mesa_function_pool[16844]: PolygonOffset (offset 319) */ "ff\0" "glPolygonOffset\0" "\0" - /* _mesa_function_pool[16852]: BindVertexArray (will be remapped) */ + /* _mesa_function_pool[16864]: BindVertexArray (will be remapped) */ "i\0" "glBindVertexArray\0" "\0" - /* _mesa_function_pool[16873]: Color4ubVertex2fvSUN (dynamic) */ + /* _mesa_function_pool[16885]: Color4ubVertex2fvSUN (dynamic) */ "pp\0" "glColor4ubVertex2fvSUN\0" "\0" - /* _mesa_function_pool[16900]: Rectd (offset 86) */ + /* _mesa_function_pool[16912]: Rectd (offset 86) */ "dddd\0" "glRectd\0" "\0" - /* _mesa_function_pool[16914]: TexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[16926]: TexFilterFuncSGIS (dynamic) */ "iiip\0" "glTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[16940]: TextureBarrierNV (will be remapped) */ + /* _mesa_function_pool[16952]: TextureBarrierNV (will be remapped) */ "\0" "glTextureBarrierNV\0" "\0" - /* _mesa_function_pool[16961]: SamplerParameterfv (will be remapped) */ + /* _mesa_function_pool[16973]: SamplerParameterfv (will be remapped) */ "iip\0" "glSamplerParameterfv\0" "\0" - /* _mesa_function_pool[16987]: VertexAttribI4ubvEXT (will be remapped) */ - "ip\0" - "glVertexAttribI4ubvEXT\0" - "glVertexAttribI4ubv\0" + /* _mesa_function_pool[16999]: ColorMaskIndexedEXT (will be remapped) */ + "iiiii\0" + "glColorMaskIndexedEXT\0" + "glColorMaski\0" "\0" - /* _mesa_function_pool[17034]: GetAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[17041]: GetAttribLocationARB (will be remapped) */ "ip\0" "glGetAttribLocation\0" "glGetAttribLocationARB\0" "\0" - /* _mesa_function_pool[17081]: RasterPos3i (offset 74) */ + /* _mesa_function_pool[17088]: RasterPos3i (offset 74) */ "iii\0" "glRasterPos3i\0" "\0" - /* _mesa_function_pool[17100]: BlendEquationSeparateiARB (will be remapped) */ - "iii\0" - "glBlendEquationSeparateiARB\0" - "\0" - /* _mesa_function_pool[17133]: VertexAttrib4ubvARB (will be remapped) */ + /* _mesa_function_pool[17107]: VertexAttrib4ubvARB (will be remapped) */ "ip\0" "glVertexAttrib4ubv\0" "glVertexAttrib4ubvARB\0" "\0" - /* _mesa_function_pool[17178]: DetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[17152]: DetailTexFuncSGIS (dynamic) */ "iip\0" "glDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[17203]: Normal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[17177]: Normal3fVertex3fSUN (dynamic) */ "ffffff\0" "glNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[17233]: CopyTexImage2D (offset 324) */ + /* _mesa_function_pool[17207]: CopyTexImage2D (offset 324) */ "iiiiiiii\0" "glCopyTexImage2D\0" "glCopyTexImage2DEXT\0" "\0" - /* _mesa_function_pool[17280]: GetBufferPointervARB (will be remapped) */ + /* _mesa_function_pool[17254]: GetBufferPointervARB (will be remapped) */ "iip\0" "glGetBufferPointerv\0" "glGetBufferPointervARB\0" "\0" - /* _mesa_function_pool[17328]: ProgramEnvParameter4fARB (will be remapped) */ + /* _mesa_function_pool[17302]: ProgramEnvParameter4fARB (will be remapped) */ "iiffff\0" "glProgramEnvParameter4fARB\0" "glProgramParameter4fNV\0" "\0" - /* _mesa_function_pool[17386]: Uniform3ivARB (will be remapped) */ + /* _mesa_function_pool[17360]: Uniform3ivARB (will be remapped) */ "iip\0" "glUniform3iv\0" "glUniform3ivARB\0" "\0" - /* _mesa_function_pool[17420]: Lightfv (offset 160) */ + /* _mesa_function_pool[17394]: Lightfv (offset 160) */ "iip\0" "glLightfv\0" "\0" - /* _mesa_function_pool[17435]: PrimitiveRestartIndexNV (will be remapped) */ + /* _mesa_function_pool[17409]: PrimitiveRestartIndexNV (will be remapped) */ "i\0" "glPrimitiveRestartIndexNV\0" "glPrimitiveRestartIndex\0" "\0" - /* _mesa_function_pool[17488]: ClearDepth (offset 208) */ + /* _mesa_function_pool[17462]: ClearDepth (offset 208) */ "d\0" "glClearDepth\0" "\0" - /* _mesa_function_pool[17504]: GetFenceivNV (will be remapped) */ + /* _mesa_function_pool[17478]: GetFenceivNV (will be remapped) */ "iip\0" "glGetFenceivNV\0" "\0" - /* _mesa_function_pool[17524]: WindowPos4dvMESA (will be remapped) */ + /* _mesa_function_pool[17498]: WindowPos4dvMESA (will be remapped) */ "p\0" "glWindowPos4dvMESA\0" "\0" - /* _mesa_function_pool[17546]: ColorSubTable (offset 346) */ + /* _mesa_function_pool[17520]: ColorSubTable (offset 346) */ "iiiiip\0" "glColorSubTable\0" "glColorSubTableEXT\0" "\0" - /* _mesa_function_pool[17589]: Color4fv (offset 30) */ + /* _mesa_function_pool[17563]: Color4fv (offset 30) */ "p\0" "glColor4fv\0" "\0" - /* _mesa_function_pool[17603]: MultiTexCoord4ivARB (offset 405) */ + /* _mesa_function_pool[17577]: MultiTexCoord4ivARB (offset 405) */ "ip\0" "glMultiTexCoord4iv\0" "glMultiTexCoord4ivARB\0" "\0" - /* _mesa_function_pool[17648]: GetnMinmaxARB (will be remapped) */ + /* _mesa_function_pool[17622]: GetnMinmaxARB (will be remapped) */ "iiiiip\0" "glGetnMinmaxARB\0" "\0" - /* _mesa_function_pool[17672]: ProgramLocalParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[17646]: ProgramLocalParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramLocalParameters4fvEXT\0" "\0" - /* _mesa_function_pool[17709]: ColorPointer (offset 308) */ + /* _mesa_function_pool[17683]: ColorPointer (offset 308) */ "iiip\0" "glColorPointer\0" "\0" - /* _mesa_function_pool[17730]: Rects (offset 92) */ + /* _mesa_function_pool[17704]: Rects (offset 92) */ "iiii\0" "glRects\0" "\0" - /* _mesa_function_pool[17744]: GetMapAttribParameterfvNV (dynamic) */ + /* _mesa_function_pool[17718]: GetMapAttribParameterfvNV (dynamic) */ "iiip\0" "glGetMapAttribParameterfvNV\0" "\0" - /* _mesa_function_pool[17778]: CreateShaderProgramEXT (will be remapped) */ + /* _mesa_function_pool[17752]: CreateShaderProgramEXT (will be remapped) */ "ip\0" "glCreateShaderProgramEXT\0" "\0" - /* _mesa_function_pool[17807]: ActiveProgramEXT (will be remapped) */ + /* _mesa_function_pool[17781]: ActiveProgramEXT (will be remapped) */ "i\0" "glActiveProgramEXT\0" "\0" - /* _mesa_function_pool[17829]: Lightiv (offset 162) */ + /* _mesa_function_pool[17803]: Lightiv (offset 162) */ "iip\0" "glLightiv\0" "\0" - /* _mesa_function_pool[17844]: VertexAttrib4sARB (will be remapped) */ + /* _mesa_function_pool[17818]: VertexAttrib4sARB (will be remapped) */ "iiiii\0" "glVertexAttrib4s\0" "glVertexAttrib4sARB\0" "\0" - /* _mesa_function_pool[17888]: GetQueryObjectuivARB (will be remapped) */ + /* _mesa_function_pool[17862]: GetQueryObjectuivARB (will be remapped) */ "iip\0" "glGetQueryObjectuiv\0" "glGetQueryObjectuivARB\0" "\0" - /* _mesa_function_pool[17936]: GetTexParameteriv (offset 283) */ + /* _mesa_function_pool[17910]: GetTexParameteriv (offset 283) */ "iip\0" "glGetTexParameteriv\0" "\0" - /* _mesa_function_pool[17961]: MapParameterivNV (dynamic) */ + /* _mesa_function_pool[17935]: MapParameterivNV (dynamic) */ "iip\0" "glMapParameterivNV\0" "\0" - /* _mesa_function_pool[17985]: GenRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[17959]: GenRenderbuffersEXT (will be remapped) */ "ip\0" "glGenRenderbuffers\0" "glGenRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[18030]: ClearBufferfv (will be remapped) */ + /* _mesa_function_pool[18004]: ClearBufferfv (will be remapped) */ "iip\0" "glClearBufferfv\0" "\0" - /* _mesa_function_pool[18051]: VertexAttrib2dvARB (will be remapped) */ + /* _mesa_function_pool[18025]: VertexAttrib2dvARB (will be remapped) */ "ip\0" "glVertexAttrib2dv\0" "glVertexAttrib2dvARB\0" "\0" - /* _mesa_function_pool[18094]: EdgeFlagPointerEXT (will be remapped) */ + /* _mesa_function_pool[18068]: EdgeFlagPointerEXT (will be remapped) */ "iip\0" "glEdgeFlagPointerEXT\0" "\0" - /* _mesa_function_pool[18120]: VertexAttribs2svNV (will be remapped) */ + /* _mesa_function_pool[18094]: VertexAttribs2svNV (will be remapped) */ "iip\0" "glVertexAttribs2svNV\0" "\0" - /* _mesa_function_pool[18146]: WeightbvARB (dynamic) */ + /* _mesa_function_pool[18120]: WeightbvARB (dynamic) */ "ip\0" "glWeightbvARB\0" "\0" - /* _mesa_function_pool[18164]: VertexAttrib2fvARB (will be remapped) */ + /* _mesa_function_pool[18138]: VertexAttrib2fvARB (will be remapped) */ "ip\0" "glVertexAttrib2fv\0" "glVertexAttrib2fvARB\0" "\0" - /* _mesa_function_pool[18207]: GetBufferParameterivARB (will be remapped) */ + /* _mesa_function_pool[18181]: GetBufferParameterivARB (will be remapped) */ "iip\0" "glGetBufferParameteriv\0" "glGetBufferParameterivARB\0" "\0" - /* _mesa_function_pool[18261]: Rectdv (offset 87) */ + /* _mesa_function_pool[18235]: Rectdv (offset 87) */ "pp\0" "glRectdv\0" "\0" - /* _mesa_function_pool[18274]: ListParameteriSGIX (dynamic) */ + /* _mesa_function_pool[18248]: ListParameteriSGIX (dynamic) */ "iii\0" "glListParameteriSGIX\0" "\0" - /* _mesa_function_pool[18300]: BlendEquationiARB (will be remapped) */ + /* _mesa_function_pool[18274]: BlendEquationiARB (will be remapped) */ "ii\0" "glBlendEquationiARB\0" + "glBlendEquationIndexedAMD\0" "\0" /* _mesa_function_pool[18324]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffff\0" @@ -3938,986 +3932,996 @@ static const char _mesa_function_pool[] = "iip\0" "glVertexAttribs4dvNV\0" "\0" - /* _mesa_function_pool[27695]: VertexAttrib4dARB (will be remapped) */ + /* _mesa_function_pool[27695]: MultiModeDrawArraysIBM (will be remapped) */ + "pppii\0" + "glMultiModeDrawArraysIBM\0" + "\0" + /* _mesa_function_pool[27727]: VertexAttrib4dARB (will be remapped) */ "idddd\0" "glVertexAttrib4d\0" "glVertexAttrib4dARB\0" "\0" - /* _mesa_function_pool[27739]: GetTexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[27771]: GetTexBumpParameterfvATI (will be remapped) */ "ip\0" "glGetTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[27770]: ProgramNamedParameter4dNV (will be remapped) */ + /* _mesa_function_pool[27802]: ProgramNamedParameter4dNV (will be remapped) */ "iipdddd\0" "glProgramNamedParameter4dNV\0" "\0" - /* _mesa_function_pool[27807]: GetMaterialfv (offset 269) */ + /* _mesa_function_pool[27839]: GetMaterialfv (offset 269) */ "iip\0" "glGetMaterialfv\0" "\0" - /* _mesa_function_pool[27828]: VertexWeightfEXT (dynamic) */ + /* _mesa_function_pool[27860]: VertexWeightfEXT (dynamic) */ "f\0" "glVertexWeightfEXT\0" "\0" - /* _mesa_function_pool[27850]: SetFragmentShaderConstantATI (will be remapped) */ + /* _mesa_function_pool[27882]: SetFragmentShaderConstantATI (will be remapped) */ "ip\0" "glSetFragmentShaderConstantATI\0" "\0" - /* _mesa_function_pool[27885]: Binormal3fEXT (dynamic) */ + /* _mesa_function_pool[27917]: Binormal3fEXT (dynamic) */ "fff\0" "glBinormal3fEXT\0" "\0" - /* _mesa_function_pool[27906]: CallList (offset 2) */ + /* _mesa_function_pool[27938]: CallList (offset 2) */ "i\0" "glCallList\0" "\0" - /* _mesa_function_pool[27920]: Materialfv (offset 170) */ + /* _mesa_function_pool[27952]: Materialfv (offset 170) */ "iip\0" "glMaterialfv\0" "\0" - /* _mesa_function_pool[27938]: TexCoord3fv (offset 113) */ + /* _mesa_function_pool[27970]: TexCoord3fv (offset 113) */ "p\0" "glTexCoord3fv\0" "\0" - /* _mesa_function_pool[27955]: FogCoordfvEXT (will be remapped) */ + /* _mesa_function_pool[27987]: FogCoordfvEXT (will be remapped) */ "p\0" "glFogCoordfv\0" "glFogCoordfvEXT\0" "\0" - /* _mesa_function_pool[27987]: MultiTexCoord1ivARB (offset 381) */ + /* _mesa_function_pool[28019]: MultiTexCoord1ivARB (offset 381) */ "ip\0" "glMultiTexCoord1iv\0" "glMultiTexCoord1ivARB\0" "\0" - /* _mesa_function_pool[28032]: SecondaryColor3ubEXT (will be remapped) */ + /* _mesa_function_pool[28064]: SecondaryColor3ubEXT (will be remapped) */ "iii\0" "glSecondaryColor3ub\0" "glSecondaryColor3ubEXT\0" "\0" - /* _mesa_function_pool[28080]: MultiTexCoord2ivARB (offset 389) */ + /* _mesa_function_pool[28112]: MultiTexCoord2ivARB (offset 389) */ "ip\0" "glMultiTexCoord2iv\0" "glMultiTexCoord2ivARB\0" "\0" - /* _mesa_function_pool[28125]: FogFuncSGIS (dynamic) */ + /* _mesa_function_pool[28157]: FogFuncSGIS (dynamic) */ "ip\0" "glFogFuncSGIS\0" "\0" - /* _mesa_function_pool[28143]: CopyTexSubImage2D (offset 326) */ + /* _mesa_function_pool[28175]: CopyTexSubImage2D (offset 326) */ "iiiiiiii\0" "glCopyTexSubImage2D\0" "glCopyTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[28196]: GetObjectParameterivARB (will be remapped) */ + /* _mesa_function_pool[28228]: GetObjectParameterivARB (will be remapped) */ "iip\0" "glGetObjectParameterivARB\0" "\0" - /* _mesa_function_pool[28227]: Color3iv (offset 16) */ + /* _mesa_function_pool[28259]: Color3iv (offset 16) */ "p\0" "glColor3iv\0" "\0" - /* _mesa_function_pool[28241]: TexCoord4fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[28273]: TexCoord4fVertex4fSUN (dynamic) */ "ffffffff\0" "glTexCoord4fVertex4fSUN\0" "\0" - /* _mesa_function_pool[28275]: DrawElements (offset 311) */ + /* _mesa_function_pool[28307]: DrawElements (offset 311) */ "iiip\0" "glDrawElements\0" "\0" - /* _mesa_function_pool[28296]: BindVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[28328]: BindVertexArrayAPPLE (will be remapped) */ "i\0" "glBindVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[28322]: GetProgramLocalParameterdvARB (will be remapped) */ + /* _mesa_function_pool[28354]: GetProgramLocalParameterdvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterdvARB\0" "\0" - /* _mesa_function_pool[28359]: GetHistogramParameteriv (offset 363) */ + /* _mesa_function_pool[28391]: GetHistogramParameteriv (offset 363) */ "iip\0" "glGetHistogramParameteriv\0" "glGetHistogramParameterivEXT\0" "\0" - /* _mesa_function_pool[28419]: MultiTexCoord1iARB (offset 380) */ + /* _mesa_function_pool[28451]: MultiTexCoord1iARB (offset 380) */ "ii\0" "glMultiTexCoord1i\0" "glMultiTexCoord1iARB\0" "\0" - /* _mesa_function_pool[28462]: GetConvolutionFilter (offset 356) */ + /* _mesa_function_pool[28494]: GetConvolutionFilter (offset 356) */ "iiip\0" "glGetConvolutionFilter\0" "glGetConvolutionFilterEXT\0" "\0" - /* _mesa_function_pool[28517]: GetProgramivARB (will be remapped) */ + /* _mesa_function_pool[28549]: GetProgramivARB (will be remapped) */ "iip\0" "glGetProgramivARB\0" "\0" - /* _mesa_function_pool[28540]: TexBufferARB (will be remapped) */ + /* _mesa_function_pool[28572]: TexBufferARB (will be remapped) */ "iii\0" "glTexBufferARB\0" "\0" - /* _mesa_function_pool[28560]: BlendFuncSeparateEXT (will be remapped) */ + /* _mesa_function_pool[28592]: BlendFuncSeparateEXT (will be remapped) */ "iiii\0" "glBlendFuncSeparate\0" "glBlendFuncSeparateEXT\0" "glBlendFuncSeparateINGR\0" "\0" - /* _mesa_function_pool[28633]: MapBufferRange (will be remapped) */ + /* _mesa_function_pool[28665]: MapBufferRange (will be remapped) */ "iiii\0" "glMapBufferRange\0" "\0" - /* _mesa_function_pool[28656]: ProgramParameters4dvNV (will be remapped) */ + /* _mesa_function_pool[28688]: ProgramParameters4dvNV (will be remapped) */ "iiip\0" "glProgramParameters4dvNV\0" "\0" - /* _mesa_function_pool[28687]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[28719]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[28724]: EvalPoint2 (offset 239) */ + /* _mesa_function_pool[28756]: EvalPoint2 (offset 239) */ "ii\0" "glEvalPoint2\0" "\0" - /* _mesa_function_pool[28741]: Uniform1uivEXT (will be remapped) */ + /* _mesa_function_pool[28773]: Uniform1uivEXT (will be remapped) */ "iip\0" "glUniform1uivEXT\0" "glUniform1uiv\0" "\0" - /* _mesa_function_pool[28777]: EvalPoint1 (offset 237) */ + /* _mesa_function_pool[28809]: EvalPoint1 (offset 237) */ "i\0" "glEvalPoint1\0" "\0" - /* _mesa_function_pool[28793]: Binormal3dvEXT (dynamic) */ + /* _mesa_function_pool[28825]: Binormal3dvEXT (dynamic) */ "p\0" "glBinormal3dvEXT\0" "\0" - /* _mesa_function_pool[28813]: PopMatrix (offset 297) */ + /* _mesa_function_pool[28845]: PopMatrix (offset 297) */ "\0" "glPopMatrix\0" "\0" - /* _mesa_function_pool[28827]: FinishFenceNV (will be remapped) */ + /* _mesa_function_pool[28859]: GetVertexAttribIuivEXT (will be remapped) */ + "iip\0" + "glGetVertexAttribIuivEXT\0" + "glGetVertexAttribIuiv\0" + "\0" + /* _mesa_function_pool[28911]: FinishFenceNV (will be remapped) */ "i\0" "glFinishFenceNV\0" "\0" - /* _mesa_function_pool[28846]: GetFogFuncSGIS (dynamic) */ + /* _mesa_function_pool[28930]: GetFogFuncSGIS (dynamic) */ "p\0" "glGetFogFuncSGIS\0" "\0" - /* _mesa_function_pool[28866]: GetUniformLocationARB (will be remapped) */ + /* _mesa_function_pool[28950]: GetUniformLocationARB (will be remapped) */ "ip\0" "glGetUniformLocation\0" "glGetUniformLocationARB\0" "\0" - /* _mesa_function_pool[28915]: SecondaryColor3fEXT (will be remapped) */ + /* _mesa_function_pool[28999]: SecondaryColor3fEXT (will be remapped) */ "fff\0" "glSecondaryColor3f\0" "glSecondaryColor3fEXT\0" "\0" - /* _mesa_function_pool[28961]: GetTexGeniv (offset 280) */ + /* _mesa_function_pool[29045]: GetTexGeniv (offset 280) */ "iip\0" "glGetTexGeniv\0" "\0" - /* _mesa_function_pool[28980]: CombinerInputNV (will be remapped) */ + /* _mesa_function_pool[29064]: CombinerInputNV (will be remapped) */ "iiiiii\0" "glCombinerInputNV\0" "\0" - /* _mesa_function_pool[29006]: VertexAttrib3sARB (will be remapped) */ + /* _mesa_function_pool[29090]: VertexAttrib3sARB (will be remapped) */ "iiii\0" "glVertexAttrib3s\0" "glVertexAttrib3sARB\0" "\0" - /* _mesa_function_pool[29049]: IsTransformFeedback (will be remapped) */ + /* _mesa_function_pool[29133]: IsTransformFeedback (will be remapped) */ "i\0" "glIsTransformFeedback\0" "\0" - /* _mesa_function_pool[29074]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[29158]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[29119]: Map2d (offset 222) */ + /* _mesa_function_pool[29203]: Map2d (offset 222) */ "iddiiddiip\0" "glMap2d\0" "\0" - /* _mesa_function_pool[29139]: Map2f (offset 223) */ + /* _mesa_function_pool[29223]: Map2f (offset 223) */ "iffiiffiip\0" "glMap2f\0" "\0" - /* _mesa_function_pool[29159]: ProgramStringARB (will be remapped) */ + /* _mesa_function_pool[29243]: ProgramStringARB (will be remapped) */ "iiip\0" "glProgramStringARB\0" "\0" - /* _mesa_function_pool[29184]: Vertex4s (offset 148) */ + /* _mesa_function_pool[29268]: Vertex4s (offset 148) */ "iiii\0" "glVertex4s\0" "\0" - /* _mesa_function_pool[29201]: TexCoord4fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[29285]: TexCoord4fVertex4fvSUN (dynamic) */ "pp\0" "glTexCoord4fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[29230]: FragmentLightModelivSGIX (dynamic) */ + /* _mesa_function_pool[29314]: FragmentLightModelivSGIX (dynamic) */ "ip\0" "glFragmentLightModelivSGIX\0" "\0" - /* _mesa_function_pool[29261]: VertexAttrib1fNV (will be remapped) */ + /* _mesa_function_pool[29345]: VertexAttrib1fNV (will be remapped) */ "if\0" "glVertexAttrib1fNV\0" "\0" - /* _mesa_function_pool[29284]: Vertex4f (offset 144) */ + /* _mesa_function_pool[29368]: Vertex4f (offset 144) */ "ffff\0" "glVertex4f\0" "\0" - /* _mesa_function_pool[29301]: EvalCoord1d (offset 228) */ + /* _mesa_function_pool[29385]: EvalCoord1d (offset 228) */ "d\0" "glEvalCoord1d\0" "\0" - /* _mesa_function_pool[29318]: Vertex4d (offset 142) */ + /* _mesa_function_pool[29402]: Vertex4d (offset 142) */ "dddd\0" "glVertex4d\0" "\0" - /* _mesa_function_pool[29335]: RasterPos4dv (offset 79) */ + /* _mesa_function_pool[29419]: RasterPos4dv (offset 79) */ "p\0" "glRasterPos4dv\0" "\0" - /* _mesa_function_pool[29353]: UseShaderProgramEXT (will be remapped) */ + /* _mesa_function_pool[29437]: UseShaderProgramEXT (will be remapped) */ "ii\0" "glUseShaderProgramEXT\0" "\0" - /* _mesa_function_pool[29379]: FragmentLightfSGIX (dynamic) */ + /* _mesa_function_pool[29463]: FragmentLightfSGIX (dynamic) */ "iif\0" "glFragmentLightfSGIX\0" "\0" - /* _mesa_function_pool[29405]: GetCompressedTexImageARB (will be remapped) */ + /* _mesa_function_pool[29489]: GetCompressedTexImageARB (will be remapped) */ "iip\0" "glGetCompressedTexImage\0" "glGetCompressedTexImageARB\0" "\0" - /* _mesa_function_pool[29461]: GetTexGenfv (offset 279) */ + /* _mesa_function_pool[29545]: GetTexGenfv (offset 279) */ "iip\0" "glGetTexGenfv\0" "\0" - /* _mesa_function_pool[29480]: Vertex4i (offset 146) */ + /* _mesa_function_pool[29564]: Vertex4i (offset 146) */ "iiii\0" "glVertex4i\0" "\0" - /* _mesa_function_pool[29497]: VertexWeightPointerEXT (dynamic) */ + /* _mesa_function_pool[29581]: VertexWeightPointerEXT (dynamic) */ "iiip\0" "glVertexWeightPointerEXT\0" "\0" - /* _mesa_function_pool[29528]: GetHistogram (offset 361) */ + /* _mesa_function_pool[29612]: GetHistogram (offset 361) */ "iiiip\0" "glGetHistogram\0" "glGetHistogramEXT\0" "\0" - /* _mesa_function_pool[29568]: ActiveStencilFaceEXT (will be remapped) */ + /* _mesa_function_pool[29652]: ActiveStencilFaceEXT (will be remapped) */ "i\0" "glActiveStencilFaceEXT\0" "\0" - /* _mesa_function_pool[29594]: StencilFuncSeparateATI (will be remapped) */ + /* _mesa_function_pool[29678]: StencilFuncSeparateATI (will be remapped) */ "iiii\0" "glStencilFuncSeparateATI\0" "\0" - /* _mesa_function_pool[29625]: Materialf (offset 169) */ + /* _mesa_function_pool[29709]: Materialf (offset 169) */ "iif\0" "glMaterialf\0" "\0" - /* _mesa_function_pool[29642]: GetShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[29726]: GetShaderSourceARB (will be remapped) */ "iipp\0" "glGetShaderSource\0" "glGetShaderSourceARB\0" "\0" - /* _mesa_function_pool[29687]: IglooInterfaceSGIX (dynamic) */ + /* _mesa_function_pool[29771]: IglooInterfaceSGIX (dynamic) */ "ip\0" "glIglooInterfaceSGIX\0" "\0" - /* _mesa_function_pool[29712]: Materiali (offset 171) */ + /* _mesa_function_pool[29796]: Materiali (offset 171) */ "iii\0" "glMateriali\0" "\0" - /* _mesa_function_pool[29729]: VertexAttrib4dNV (will be remapped) */ + /* _mesa_function_pool[29813]: VertexAttrib4dNV (will be remapped) */ "idddd\0" "glVertexAttrib4dNV\0" "\0" - /* _mesa_function_pool[29755]: MultiModeDrawElementsIBM (will be remapped) */ + /* _mesa_function_pool[29839]: MultiModeDrawElementsIBM (will be remapped) */ "ppipii\0" "glMultiModeDrawElementsIBM\0" "\0" - /* _mesa_function_pool[29790]: Indexsv (offset 51) */ + /* _mesa_function_pool[29874]: Indexsv (offset 51) */ "p\0" "glIndexsv\0" "\0" - /* _mesa_function_pool[29803]: MultiTexCoord4svARB (offset 407) */ + /* _mesa_function_pool[29887]: MultiTexCoord4svARB (offset 407) */ "ip\0" "glMultiTexCoord4sv\0" "glMultiTexCoord4svARB\0" "\0" - /* _mesa_function_pool[29848]: LightModelfv (offset 164) */ + /* _mesa_function_pool[29932]: LightModelfv (offset 164) */ "ip\0" "glLightModelfv\0" "\0" - /* _mesa_function_pool[29867]: TexCoord2dv (offset 103) */ + /* _mesa_function_pool[29951]: TexCoord2dv (offset 103) */ "p\0" "glTexCoord2dv\0" "\0" - /* _mesa_function_pool[29884]: GenQueriesARB (will be remapped) */ + /* _mesa_function_pool[29968]: GenQueriesARB (will be remapped) */ "ip\0" "glGenQueries\0" "glGenQueriesARB\0" "\0" - /* _mesa_function_pool[29917]: EvalCoord1dv (offset 229) */ + /* _mesa_function_pool[30001]: EvalCoord1dv (offset 229) */ "p\0" "glEvalCoord1dv\0" "\0" - /* _mesa_function_pool[29935]: ReplacementCodeuiVertex3fSUN (dynamic) */ + /* _mesa_function_pool[30019]: ReplacementCodeuiVertex3fSUN (dynamic) */ "ifff\0" "glReplacementCodeuiVertex3fSUN\0" "\0" - /* _mesa_function_pool[29972]: Translated (offset 303) */ + /* _mesa_function_pool[30056]: Translated (offset 303) */ "ddd\0" "glTranslated\0" "\0" - /* _mesa_function_pool[29990]: Translatef (offset 304) */ + /* _mesa_function_pool[30074]: Translatef (offset 304) */ "fff\0" "glTranslatef\0" "\0" - /* _mesa_function_pool[30008]: Uniform3uiEXT (will be remapped) */ + /* _mesa_function_pool[30092]: Uniform3uiEXT (will be remapped) */ "iiii\0" "glUniform3uiEXT\0" "glUniform3ui\0" "\0" - /* _mesa_function_pool[30043]: StencilMask (offset 209) */ + /* _mesa_function_pool[30127]: StencilMask (offset 209) */ "i\0" "glStencilMask\0" "\0" - /* _mesa_function_pool[30060]: Tangent3iEXT (dynamic) */ + /* _mesa_function_pool[30144]: Tangent3iEXT (dynamic) */ "iii\0" "glTangent3iEXT\0" "\0" - /* _mesa_function_pool[30080]: ClampColorARB (will be remapped) */ + /* _mesa_function_pool[30164]: ClampColorARB (will be remapped) */ "ii\0" "glClampColorARB\0" "\0" - /* _mesa_function_pool[30100]: GetLightiv (offset 265) */ + /* _mesa_function_pool[30184]: GetLightiv (offset 265) */ "iip\0" "glGetLightiv\0" "\0" - /* _mesa_function_pool[30118]: GetSamplerParameterIiv (will be remapped) */ + /* _mesa_function_pool[30202]: GetSamplerParameterIiv (will be remapped) */ "iip\0" "glGetSamplerParameterIiv\0" "\0" - /* _mesa_function_pool[30148]: DrawMeshArraysSUN (dynamic) */ + /* _mesa_function_pool[30232]: DrawMeshArraysSUN (dynamic) */ "iiii\0" "glDrawMeshArraysSUN\0" "\0" - /* _mesa_function_pool[30174]: IsList (offset 287) */ + /* _mesa_function_pool[30258]: IsList (offset 287) */ "i\0" "glIsList\0" "\0" - /* _mesa_function_pool[30186]: IsSync (will be remapped) */ + /* _mesa_function_pool[30270]: IsSync (will be remapped) */ "i\0" "glIsSync\0" "\0" - /* _mesa_function_pool[30198]: RenderMode (offset 196) */ + /* _mesa_function_pool[30282]: RenderMode (offset 196) */ "i\0" "glRenderMode\0" "\0" - /* _mesa_function_pool[30214]: GetMapControlPointsNV (dynamic) */ + /* _mesa_function_pool[30298]: GetMapControlPointsNV (dynamic) */ "iiiiiip\0" "glGetMapControlPointsNV\0" "\0" - /* _mesa_function_pool[30247]: DrawBuffersARB (will be remapped) */ + /* _mesa_function_pool[30331]: DrawBuffersARB (will be remapped) */ "ip\0" "glDrawBuffers\0" "glDrawBuffersARB\0" "glDrawBuffersATI\0" "\0" - /* _mesa_function_pool[30299]: ClearBufferiv (will be remapped) */ + /* _mesa_function_pool[30383]: ClearBufferiv (will be remapped) */ "iip\0" "glClearBufferiv\0" "\0" - /* _mesa_function_pool[30320]: ProgramLocalParameter4fARB (will be remapped) */ + /* _mesa_function_pool[30404]: ProgramLocalParameter4fARB (will be remapped) */ "iiffff\0" "glProgramLocalParameter4fARB\0" "\0" - /* _mesa_function_pool[30357]: SpriteParameterivSGIX (dynamic) */ + /* _mesa_function_pool[30441]: SpriteParameterivSGIX (dynamic) */ "ip\0" "glSpriteParameterivSGIX\0" "\0" - /* _mesa_function_pool[30385]: ProvokingVertexEXT (will be remapped) */ + /* _mesa_function_pool[30469]: ProvokingVertexEXT (will be remapped) */ "i\0" "glProvokingVertexEXT\0" "glProvokingVertex\0" "\0" - /* _mesa_function_pool[30427]: MultiTexCoord1fARB (offset 378) */ + /* _mesa_function_pool[30511]: MultiTexCoord1fARB (offset 378) */ "if\0" "glMultiTexCoord1f\0" "glMultiTexCoord1fARB\0" "\0" - /* _mesa_function_pool[30470]: LoadName (offset 198) */ + /* _mesa_function_pool[30554]: LoadName (offset 198) */ "i\0" "glLoadName\0" "\0" - /* _mesa_function_pool[30484]: VertexAttribs4ubvNV (will be remapped) */ + /* _mesa_function_pool[30568]: VertexAttribs4ubvNV (will be remapped) */ "iip\0" "glVertexAttribs4ubvNV\0" "\0" - /* _mesa_function_pool[30511]: WeightsvARB (dynamic) */ + /* _mesa_function_pool[30595]: WeightsvARB (dynamic) */ "ip\0" "glWeightsvARB\0" "\0" - /* _mesa_function_pool[30529]: Uniform1fvARB (will be remapped) */ + /* _mesa_function_pool[30613]: Uniform1fvARB (will be remapped) */ "iip\0" "glUniform1fv\0" "glUniform1fvARB\0" "\0" - /* _mesa_function_pool[30563]: CopyTexSubImage1D (offset 325) */ + /* _mesa_function_pool[30647]: CopyTexSubImage1D (offset 325) */ "iiiiii\0" "glCopyTexSubImage1D\0" "glCopyTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[30614]: CullFace (offset 152) */ + /* _mesa_function_pool[30698]: CullFace (offset 152) */ "i\0" "glCullFace\0" "\0" - /* _mesa_function_pool[30628]: BindTexture (offset 307) */ + /* _mesa_function_pool[30712]: BindTexture (offset 307) */ "ii\0" "glBindTexture\0" "glBindTextureEXT\0" "\0" - /* _mesa_function_pool[30663]: BeginFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[30747]: BeginFragmentShaderATI (will be remapped) */ "\0" "glBeginFragmentShaderATI\0" "\0" - /* _mesa_function_pool[30690]: MultiTexCoord4fARB (offset 402) */ + /* _mesa_function_pool[30774]: MultiTexCoord4fARB (offset 402) */ "iffff\0" "glMultiTexCoord4f\0" "glMultiTexCoord4fARB\0" "\0" - /* _mesa_function_pool[30736]: VertexAttribs3svNV (will be remapped) */ + /* _mesa_function_pool[30820]: VertexAttribs3svNV (will be remapped) */ "iip\0" "glVertexAttribs3svNV\0" "\0" - /* _mesa_function_pool[30762]: StencilFunc (offset 243) */ + /* _mesa_function_pool[30846]: StencilFunc (offset 243) */ "iii\0" "glStencilFunc\0" "\0" - /* _mesa_function_pool[30781]: CopyPixels (offset 255) */ + /* _mesa_function_pool[30865]: CopyPixels (offset 255) */ "iiiii\0" "glCopyPixels\0" "\0" - /* _mesa_function_pool[30801]: Rectsv (offset 93) */ + /* _mesa_function_pool[30885]: Rectsv (offset 93) */ "pp\0" "glRectsv\0" "\0" - /* _mesa_function_pool[30814]: ReplacementCodeuivSUN (dynamic) */ + /* _mesa_function_pool[30898]: ReplacementCodeuivSUN (dynamic) */ "p\0" "glReplacementCodeuivSUN\0" "\0" - /* _mesa_function_pool[30841]: EnableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[30925]: EnableVertexAttribArrayARB (will be remapped) */ "i\0" "glEnableVertexAttribArray\0" "glEnableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[30899]: NormalPointervINTEL (dynamic) */ + /* _mesa_function_pool[30983]: NormalPointervINTEL (dynamic) */ "ip\0" "glNormalPointervINTEL\0" "\0" - /* _mesa_function_pool[30925]: CopyConvolutionFilter2D (offset 355) */ + /* _mesa_function_pool[31009]: CopyConvolutionFilter2D (offset 355) */ "iiiiii\0" "glCopyConvolutionFilter2D\0" "glCopyConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[30988]: WindowPos3ivMESA (will be remapped) */ + /* _mesa_function_pool[31072]: WindowPos3ivMESA (will be remapped) */ "p\0" "glWindowPos3iv\0" "glWindowPos3ivARB\0" "glWindowPos3ivMESA\0" "\0" - /* _mesa_function_pool[31043]: CopyBufferSubData (will be remapped) */ + /* _mesa_function_pool[31127]: CopyBufferSubData (will be remapped) */ "iiiii\0" "glCopyBufferSubData\0" "\0" - /* _mesa_function_pool[31070]: NormalPointer (offset 318) */ + /* _mesa_function_pool[31154]: NormalPointer (offset 318) */ "iip\0" "glNormalPointer\0" "\0" - /* _mesa_function_pool[31091]: TexParameterfv (offset 179) */ + /* _mesa_function_pool[31175]: TexParameterfv (offset 179) */ "iip\0" "glTexParameterfv\0" "\0" - /* _mesa_function_pool[31113]: IsBufferARB (will be remapped) */ + /* _mesa_function_pool[31197]: IsBufferARB (will be remapped) */ "i\0" "glIsBuffer\0" "glIsBufferARB\0" "\0" - /* _mesa_function_pool[31141]: WindowPos4iMESA (will be remapped) */ + /* _mesa_function_pool[31225]: WindowPos4iMESA (will be remapped) */ "iiii\0" "glWindowPos4iMESA\0" "\0" - /* _mesa_function_pool[31165]: VertexAttrib4uivARB (will be remapped) */ + /* _mesa_function_pool[31249]: VertexAttrib4uivARB (will be remapped) */ "ip\0" "glVertexAttrib4uiv\0" "glVertexAttrib4uivARB\0" "\0" - /* _mesa_function_pool[31210]: Tangent3bvEXT (dynamic) */ + /* _mesa_function_pool[31294]: Tangent3bvEXT (dynamic) */ "p\0" "glTangent3bvEXT\0" "\0" - /* _mesa_function_pool[31229]: VertexAttribI3uivEXT (will be remapped) */ + /* _mesa_function_pool[31313]: VertexAttribI3uivEXT (will be remapped) */ "ip\0" "glVertexAttribI3uivEXT\0" "glVertexAttribI3uiv\0" "\0" - /* _mesa_function_pool[31276]: UniformMatrix3x4fv (will be remapped) */ + /* _mesa_function_pool[31360]: UniformMatrix3x4fv (will be remapped) */ "iiip\0" "glUniformMatrix3x4fv\0" "\0" - /* _mesa_function_pool[31303]: ClipPlane (offset 150) */ + /* _mesa_function_pool[31387]: ClipPlane (offset 150) */ "ip\0" "glClipPlane\0" "\0" - /* _mesa_function_pool[31319]: Recti (offset 90) */ + /* _mesa_function_pool[31403]: Recti (offset 90) */ "iiii\0" "glRecti\0" "\0" - /* _mesa_function_pool[31333]: TrackMatrixNV (will be remapped) */ + /* _mesa_function_pool[31417]: TrackMatrixNV (will be remapped) */ "iiii\0" "glTrackMatrixNV\0" "\0" - /* _mesa_function_pool[31355]: DrawRangeElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[31439]: DrawRangeElementsBaseVertex (will be remapped) */ "iiiiipi\0" "glDrawRangeElementsBaseVertex\0" "\0" - /* _mesa_function_pool[31394]: SamplerParameterIuiv (will be remapped) */ + /* _mesa_function_pool[31478]: SamplerParameterIuiv (will be remapped) */ "iip\0" "glSamplerParameterIuiv\0" "\0" - /* _mesa_function_pool[31422]: TexCoordPointervINTEL (dynamic) */ + /* _mesa_function_pool[31506]: TexCoordPointervINTEL (dynamic) */ "iip\0" "glTexCoordPointervINTEL\0" "\0" - /* _mesa_function_pool[31451]: DeleteBuffersARB (will be remapped) */ + /* _mesa_function_pool[31535]: DeleteBuffersARB (will be remapped) */ "ip\0" "glDeleteBuffers\0" "glDeleteBuffersARB\0" "\0" - /* _mesa_function_pool[31490]: PixelTransformParameterfvEXT (dynamic) */ + /* _mesa_function_pool[31574]: PixelTransformParameterfvEXT (dynamic) */ "iip\0" "glPixelTransformParameterfvEXT\0" "\0" - /* _mesa_function_pool[31526]: PrimitiveRestartNV (will be remapped) */ + /* _mesa_function_pool[31610]: PrimitiveRestartNV (will be remapped) */ "\0" "glPrimitiveRestartNV\0" "\0" - /* _mesa_function_pool[31549]: WindowPos4fvMESA (will be remapped) */ + /* _mesa_function_pool[31633]: WindowPos4fvMESA (will be remapped) */ "p\0" "glWindowPos4fvMESA\0" "\0" - /* _mesa_function_pool[31571]: GetPixelMapuiv (offset 272) */ + /* _mesa_function_pool[31655]: GetPixelMapuiv (offset 272) */ "ip\0" "glGetPixelMapuiv\0" "\0" - /* _mesa_function_pool[31592]: Rectf (offset 88) */ + /* _mesa_function_pool[31676]: Rectf (offset 88) */ "ffff\0" "glRectf\0" "\0" - /* _mesa_function_pool[31606]: VertexAttrib1sNV (will be remapped) */ + /* _mesa_function_pool[31690]: VertexAttrib1sNV (will be remapped) */ "ii\0" "glVertexAttrib1sNV\0" "\0" - /* _mesa_function_pool[31629]: Indexfv (offset 47) */ + /* _mesa_function_pool[31713]: Indexfv (offset 47) */ "p\0" "glIndexfv\0" "\0" - /* _mesa_function_pool[31642]: SecondaryColor3svEXT (will be remapped) */ + /* _mesa_function_pool[31726]: SecondaryColor3svEXT (will be remapped) */ "p\0" "glSecondaryColor3sv\0" "glSecondaryColor3svEXT\0" "\0" - /* _mesa_function_pool[31688]: LoadTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[31772]: LoadTransposeMatrixfARB (will be remapped) */ "p\0" "glLoadTransposeMatrixf\0" "glLoadTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[31740]: GetPointerv (offset 329) */ + /* _mesa_function_pool[31824]: GetPointerv (offset 329) */ "ip\0" "glGetPointerv\0" "glGetPointervEXT\0" "\0" - /* _mesa_function_pool[31775]: Tangent3bEXT (dynamic) */ + /* _mesa_function_pool[31859]: Tangent3bEXT (dynamic) */ "iii\0" "glTangent3bEXT\0" "\0" - /* _mesa_function_pool[31795]: CombinerParameterfNV (will be remapped) */ + /* _mesa_function_pool[31879]: CombinerParameterfNV (will be remapped) */ "if\0" "glCombinerParameterfNV\0" "\0" - /* _mesa_function_pool[31822]: IndexMask (offset 212) */ + /* _mesa_function_pool[31906]: IndexMask (offset 212) */ "i\0" "glIndexMask\0" "\0" - /* _mesa_function_pool[31837]: BindProgramNV (will be remapped) */ + /* _mesa_function_pool[31921]: BindProgramNV (will be remapped) */ "ii\0" "glBindProgramARB\0" "glBindProgramNV\0" "\0" - /* _mesa_function_pool[31874]: VertexAttrib4svARB (will be remapped) */ + /* _mesa_function_pool[31958]: VertexAttrib4svARB (will be remapped) */ "ip\0" "glVertexAttrib4sv\0" "glVertexAttrib4svARB\0" "\0" - /* _mesa_function_pool[31917]: GetFloatv (offset 262) */ + /* _mesa_function_pool[32001]: GetFloatv (offset 262) */ "ip\0" "glGetFloatv\0" "\0" - /* _mesa_function_pool[31933]: CreateDebugObjectMESA (dynamic) */ + /* _mesa_function_pool[32017]: CreateDebugObjectMESA (dynamic) */ "\0" "glCreateDebugObjectMESA\0" "\0" - /* _mesa_function_pool[31959]: GetShaderiv (will be remapped) */ + /* _mesa_function_pool[32043]: GetShaderiv (will be remapped) */ "iip\0" "glGetShaderiv\0" "\0" - /* _mesa_function_pool[31978]: ClientWaitSync (will be remapped) */ + /* _mesa_function_pool[32062]: ClientWaitSync (will be remapped) */ "iii\0" "glClientWaitSync\0" "\0" - /* _mesa_function_pool[32000]: TexCoord4s (offset 124) */ + /* _mesa_function_pool[32084]: TexCoord4s (offset 124) */ "iiii\0" "glTexCoord4s\0" "\0" - /* _mesa_function_pool[32019]: TexCoord3sv (offset 117) */ + /* _mesa_function_pool[32103]: TexCoord3sv (offset 117) */ "p\0" "glTexCoord3sv\0" "\0" - /* _mesa_function_pool[32036]: BindFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[32120]: BindFragmentShaderATI (will be remapped) */ "i\0" "glBindFragmentShaderATI\0" "\0" - /* _mesa_function_pool[32063]: PopAttrib (offset 218) */ + /* _mesa_function_pool[32147]: PopAttrib (offset 218) */ "\0" "glPopAttrib\0" "\0" - /* _mesa_function_pool[32077]: Fogfv (offset 154) */ + /* _mesa_function_pool[32161]: Fogfv (offset 154) */ "ip\0" "glFogfv\0" "\0" - /* _mesa_function_pool[32089]: UnmapBufferARB (will be remapped) */ + /* _mesa_function_pool[32173]: UnmapBufferARB (will be remapped) */ "i\0" "glUnmapBuffer\0" "glUnmapBufferARB\0" "\0" - /* _mesa_function_pool[32123]: InitNames (offset 197) */ + /* _mesa_function_pool[32207]: InitNames (offset 197) */ "\0" "glInitNames\0" "\0" - /* _mesa_function_pool[32137]: Normal3sv (offset 61) */ + /* _mesa_function_pool[32221]: Normal3sv (offset 61) */ "p\0" "glNormal3sv\0" "\0" - /* _mesa_function_pool[32152]: Minmax (offset 368) */ + /* _mesa_function_pool[32236]: Minmax (offset 368) */ "iii\0" "glMinmax\0" "glMinmaxEXT\0" "\0" - /* _mesa_function_pool[32178]: TexCoord4d (offset 118) */ + /* _mesa_function_pool[32262]: TexCoord4d (offset 118) */ "dddd\0" "glTexCoord4d\0" "\0" - /* _mesa_function_pool[32197]: DeformationMap3dSGIX (dynamic) */ - "iddiiddiiddiip\0" - "glDeformationMap3dSGIX\0" - "\0" - /* _mesa_function_pool[32236]: TexCoord4f (offset 120) */ + /* _mesa_function_pool[32281]: TexCoord4f (offset 120) */ "ffff\0" "glTexCoord4f\0" "\0" - /* _mesa_function_pool[32255]: FogCoorddvEXT (will be remapped) */ + /* _mesa_function_pool[32300]: FogCoorddvEXT (will be remapped) */ "p\0" "glFogCoorddv\0" "glFogCoorddvEXT\0" "\0" - /* _mesa_function_pool[32287]: FinishTextureSUNX (dynamic) */ + /* _mesa_function_pool[32332]: FinishTextureSUNX (dynamic) */ "\0" "glFinishTextureSUNX\0" "\0" - /* _mesa_function_pool[32309]: GetFragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[32354]: GetFragmentLightfvSGIX (dynamic) */ "iip\0" "glGetFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[32339]: Binormal3fvEXT (dynamic) */ + /* _mesa_function_pool[32384]: Binormal3fvEXT (dynamic) */ "p\0" "glBinormal3fvEXT\0" "\0" - /* _mesa_function_pool[32359]: GetBooleanv (offset 258) */ + /* _mesa_function_pool[32404]: GetBooleanv (offset 258) */ "ip\0" "glGetBooleanv\0" "\0" - /* _mesa_function_pool[32377]: ColorFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[32422]: ColorFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiiii\0" "glColorFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[32414]: Hint (offset 158) */ + /* _mesa_function_pool[32459]: Hint (offset 158) */ "ii\0" "glHint\0" "\0" - /* _mesa_function_pool[32425]: Color4dv (offset 28) */ + /* _mesa_function_pool[32470]: Color4dv (offset 28) */ "p\0" "glColor4dv\0" "\0" - /* _mesa_function_pool[32439]: VertexAttrib2svARB (will be remapped) */ + /* _mesa_function_pool[32484]: VertexAttrib2svARB (will be remapped) */ "ip\0" "glVertexAttrib2sv\0" "glVertexAttrib2svARB\0" "\0" - /* _mesa_function_pool[32482]: AreProgramsResidentNV (will be remapped) */ + /* _mesa_function_pool[32527]: AreProgramsResidentNV (will be remapped) */ "ipp\0" "glAreProgramsResidentNV\0" "\0" - /* _mesa_function_pool[32511]: WindowPos3svMESA (will be remapped) */ + /* _mesa_function_pool[32556]: WindowPos3svMESA (will be remapped) */ "p\0" "glWindowPos3sv\0" "glWindowPos3svARB\0" "glWindowPos3svMESA\0" "\0" - /* _mesa_function_pool[32566]: CopyColorSubTable (offset 347) */ + /* _mesa_function_pool[32611]: CopyColorSubTable (offset 347) */ "iiiii\0" "glCopyColorSubTable\0" "glCopyColorSubTableEXT\0" "\0" - /* _mesa_function_pool[32616]: WeightdvARB (dynamic) */ + /* _mesa_function_pool[32661]: WeightdvARB (dynamic) */ "ip\0" "glWeightdvARB\0" "\0" - /* _mesa_function_pool[32634]: DeleteRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[32679]: DeleteRenderbuffersEXT (will be remapped) */ "ip\0" "glDeleteRenderbuffers\0" "glDeleteRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[32685]: VertexAttrib4NubvARB (will be remapped) */ + /* _mesa_function_pool[32730]: VertexAttrib4NubvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nubv\0" "glVertexAttrib4NubvARB\0" "\0" - /* _mesa_function_pool[32732]: VertexAttrib3dvNV (will be remapped) */ + /* _mesa_function_pool[32777]: VertexAttrib3dvNV (will be remapped) */ "ip\0" "glVertexAttrib3dvNV\0" "\0" - /* _mesa_function_pool[32756]: GetObjectParameterfvARB (will be remapped) */ + /* _mesa_function_pool[32801]: GetObjectParameterfvARB (will be remapped) */ "iip\0" "glGetObjectParameterfvARB\0" "\0" - /* _mesa_function_pool[32787]: Vertex4iv (offset 147) */ + /* _mesa_function_pool[32832]: Vertex4iv (offset 147) */ "p\0" "glVertex4iv\0" "\0" - /* _mesa_function_pool[32802]: GetProgramEnvParameterdvARB (will be remapped) */ + /* _mesa_function_pool[32847]: GetProgramEnvParameterdvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterdvARB\0" "\0" - /* _mesa_function_pool[32837]: TexCoord4dv (offset 119) */ + /* _mesa_function_pool[32882]: TexCoord4dv (offset 119) */ "p\0" "glTexCoord4dv\0" "\0" - /* _mesa_function_pool[32854]: LockArraysEXT (will be remapped) */ + /* _mesa_function_pool[32899]: LockArraysEXT (will be remapped) */ "ii\0" "glLockArraysEXT\0" "\0" - /* _mesa_function_pool[32874]: Begin (offset 7) */ + /* _mesa_function_pool[32919]: Begin (offset 7) */ "i\0" "glBegin\0" "\0" - /* _mesa_function_pool[32885]: LightModeli (offset 165) */ + /* _mesa_function_pool[32930]: LightModeli (offset 165) */ "ii\0" "glLightModeli\0" "\0" - /* _mesa_function_pool[32903]: VertexAttribI4ivEXT (will be remapped) */ + /* _mesa_function_pool[32948]: VertexAttribI4ivEXT (will be remapped) */ "ip\0" "glVertexAttribI4ivEXT\0" "glVertexAttribI4iv\0" "\0" - /* _mesa_function_pool[32948]: Rectfv (offset 89) */ + /* _mesa_function_pool[32993]: Rectfv (offset 89) */ "pp\0" "glRectfv\0" "\0" - /* _mesa_function_pool[32961]: LightModelf (offset 163) */ + /* _mesa_function_pool[33006]: BlendEquationSeparateiARB (will be remapped) */ + "iii\0" + "glBlendEquationSeparateiARB\0" + "glBlendEquationSeparateIndexedAMD\0" + "\0" + /* _mesa_function_pool[33073]: LightModelf (offset 163) */ "if\0" "glLightModelf\0" "\0" - /* _mesa_function_pool[32979]: GetTexParameterfv (offset 282) */ + /* _mesa_function_pool[33091]: GetTexParameterfv (offset 282) */ "iip\0" "glGetTexParameterfv\0" "\0" - /* _mesa_function_pool[33004]: GetLightfv (offset 264) */ + /* _mesa_function_pool[33116]: GetLightfv (offset 264) */ "iip\0" "glGetLightfv\0" "\0" - /* _mesa_function_pool[33022]: PixelTransformParameterivEXT (dynamic) */ + /* _mesa_function_pool[33134]: PixelTransformParameterivEXT (dynamic) */ "iip\0" "glPixelTransformParameterivEXT\0" "\0" - /* _mesa_function_pool[33058]: BinormalPointerEXT (dynamic) */ + /* _mesa_function_pool[33170]: BinormalPointerEXT (dynamic) */ "iip\0" "glBinormalPointerEXT\0" "\0" - /* _mesa_function_pool[33084]: VertexAttrib1dNV (will be remapped) */ + /* _mesa_function_pool[33196]: VertexAttrib1dNV (will be remapped) */ "id\0" "glVertexAttrib1dNV\0" "\0" - /* _mesa_function_pool[33107]: GetCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[33219]: GetCombinerInputParameterivNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[33146]: Disable (offset 214) */ + /* _mesa_function_pool[33258]: Disable (offset 214) */ "i\0" "glDisable\0" "\0" - /* _mesa_function_pool[33159]: MultiTexCoord2fvARB (offset 387) */ + /* _mesa_function_pool[33271]: MultiTexCoord2fvARB (offset 387) */ "ip\0" "glMultiTexCoord2fv\0" "glMultiTexCoord2fvARB\0" "\0" - /* _mesa_function_pool[33204]: GetRenderbufferParameterivEXT (will be remapped) */ + /* _mesa_function_pool[33316]: GetRenderbufferParameterivEXT (will be remapped) */ "iip\0" "glGetRenderbufferParameteriv\0" "glGetRenderbufferParameterivEXT\0" "\0" - /* _mesa_function_pool[33270]: CombinerParameterivNV (will be remapped) */ + /* _mesa_function_pool[33382]: CombinerParameterivNV (will be remapped) */ "ip\0" "glCombinerParameterivNV\0" "\0" - /* _mesa_function_pool[33298]: GenFragmentShadersATI (will be remapped) */ + /* _mesa_function_pool[33410]: GenFragmentShadersATI (will be remapped) */ "i\0" "glGenFragmentShadersATI\0" "\0" - /* _mesa_function_pool[33325]: DrawArrays (offset 310) */ + /* _mesa_function_pool[33437]: DrawArrays (offset 310) */ "iii\0" "glDrawArrays\0" "glDrawArraysEXT\0" "\0" - /* _mesa_function_pool[33359]: WeightuivARB (dynamic) */ + /* _mesa_function_pool[33471]: WeightuivARB (dynamic) */ "ip\0" "glWeightuivARB\0" "\0" - /* _mesa_function_pool[33378]: GetVertexAttribIivEXT (will be remapped) */ + /* _mesa_function_pool[33490]: GetVertexAttribIivEXT (will be remapped) */ "iip\0" "glGetVertexAttribIivEXT\0" "glGetVertexAttribIiv\0" "\0" - /* _mesa_function_pool[33428]: VertexAttrib2sARB (will be remapped) */ + /* _mesa_function_pool[33540]: VertexAttrib2sARB (will be remapped) */ "iii\0" "glVertexAttrib2s\0" "glVertexAttrib2sARB\0" "\0" - /* _mesa_function_pool[33470]: GetnTexImageARB (will be remapped) */ + /* _mesa_function_pool[33582]: GetnTexImageARB (will be remapped) */ "iiiiip\0" "glGetnTexImageARB\0" "\0" - /* _mesa_function_pool[33496]: ColorMask (offset 210) */ + /* _mesa_function_pool[33608]: ColorMask (offset 210) */ "iiii\0" "glColorMask\0" "\0" - /* _mesa_function_pool[33514]: GenAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[33626]: GenAsyncMarkersSGIX (dynamic) */ "i\0" "glGenAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[33539]: Tangent3svEXT (dynamic) */ + /* _mesa_function_pool[33651]: Tangent3svEXT (dynamic) */ "p\0" "glTangent3svEXT\0" "\0" - /* _mesa_function_pool[33558]: GetListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[33670]: GetListParameterivSGIX (dynamic) */ "iip\0" "glGetListParameterivSGIX\0" "\0" - /* _mesa_function_pool[33588]: BindBufferARB (will be remapped) */ + /* _mesa_function_pool[33700]: BindBufferARB (will be remapped) */ "ii\0" "glBindBuffer\0" "glBindBufferARB\0" "\0" - /* _mesa_function_pool[33621]: GetInfoLogARB (will be remapped) */ + /* _mesa_function_pool[33733]: GetInfoLogARB (will be remapped) */ "iipp\0" "glGetInfoLogARB\0" "\0" - /* _mesa_function_pool[33643]: RasterPos4iv (offset 83) */ + /* _mesa_function_pool[33755]: RasterPos4iv (offset 83) */ "p\0" "glRasterPos4iv\0" "\0" - /* _mesa_function_pool[33661]: Enable (offset 215) */ + /* _mesa_function_pool[33773]: Enable (offset 215) */ "i\0" "glEnable\0" "\0" - /* _mesa_function_pool[33673]: LineStipple (offset 167) */ + /* _mesa_function_pool[33785]: LineStipple (offset 167) */ "ii\0" "glLineStipple\0" "\0" - /* _mesa_function_pool[33691]: VertexAttribs4svNV (will be remapped) */ + /* _mesa_function_pool[33803]: VertexAttribs4svNV (will be remapped) */ "iip\0" "glVertexAttribs4svNV\0" "\0" - /* _mesa_function_pool[33717]: EdgeFlagPointerListIBM (dynamic) */ + /* _mesa_function_pool[33829]: EdgeFlagPointerListIBM (dynamic) */ "ipi\0" "glEdgeFlagPointerListIBM\0" "\0" - /* _mesa_function_pool[33747]: UniformMatrix3x2fv (will be remapped) */ + /* _mesa_function_pool[33859]: UniformMatrix3x2fv (will be remapped) */ "iiip\0" "glUniformMatrix3x2fv\0" "\0" - /* _mesa_function_pool[33774]: GetMinmaxParameterfv (offset 365) */ + /* _mesa_function_pool[33886]: GetMinmaxParameterfv (offset 365) */ "iip\0" "glGetMinmaxParameterfv\0" "glGetMinmaxParameterfvEXT\0" "\0" - /* _mesa_function_pool[33828]: VertexAttrib1fvARB (will be remapped) */ + /* _mesa_function_pool[33940]: VertexAttrib1fvARB (will be remapped) */ "ip\0" "glVertexAttrib1fv\0" "glVertexAttrib1fvARB\0" "\0" - /* _mesa_function_pool[33871]: GenBuffersARB (will be remapped) */ + /* _mesa_function_pool[33983]: GenBuffersARB (will be remapped) */ "ip\0" "glGenBuffers\0" "glGenBuffersARB\0" "\0" - /* _mesa_function_pool[33904]: VertexAttribs1svNV (will be remapped) */ + /* _mesa_function_pool[34016]: VertexAttribs1svNV (will be remapped) */ "iip\0" "glVertexAttribs1svNV\0" "\0" - /* _mesa_function_pool[33930]: Vertex3fv (offset 137) */ + /* _mesa_function_pool[34042]: Vertex3fv (offset 137) */ "p\0" "glVertex3fv\0" "\0" - /* _mesa_function_pool[33945]: GetTexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[34057]: GetTexBumpParameterivATI (will be remapped) */ "ip\0" "glGetTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[33976]: Binormal3bEXT (dynamic) */ + /* _mesa_function_pool[34088]: Binormal3bEXT (dynamic) */ "iii\0" "glBinormal3bEXT\0" "\0" - /* _mesa_function_pool[33997]: FragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[34109]: FragmentMaterialivSGIX (dynamic) */ "iip\0" "glFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[34027]: IsRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[34139]: IsRenderbufferEXT (will be remapped) */ "i\0" "glIsRenderbuffer\0" "glIsRenderbufferEXT\0" "\0" - /* _mesa_function_pool[34067]: GenProgramsNV (will be remapped) */ + /* _mesa_function_pool[34179]: GenProgramsNV (will be remapped) */ "ip\0" "glGenProgramsARB\0" "glGenProgramsNV\0" "\0" - /* _mesa_function_pool[34104]: VertexAttrib4dvNV (will be remapped) */ + /* _mesa_function_pool[34216]: VertexAttrib4dvNV (will be remapped) */ "ip\0" "glVertexAttrib4dvNV\0" "\0" - /* _mesa_function_pool[34128]: EndFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[34240]: EndFragmentShaderATI (will be remapped) */ "\0" "glEndFragmentShaderATI\0" "\0" - /* _mesa_function_pool[34153]: Binormal3iEXT (dynamic) */ + /* _mesa_function_pool[34265]: Binormal3iEXT (dynamic) */ "iii\0" "glBinormal3iEXT\0" "\0" - /* _mesa_function_pool[34174]: WindowPos2fMESA (will be remapped) */ + /* _mesa_function_pool[34286]: WindowPos2fMESA (will be remapped) */ "ff\0" "glWindowPos2f\0" "glWindowPos2fARB\0" @@ -4927,621 +4931,621 @@ static const char _mesa_function_pool[] = /* these functions need to be remapped */ static const struct gl_function_pool_remap MESA_remap_table_functions[] = { - { 1590, AttachShader_remap_index }, - { 10221, CreateProgram_remap_index }, + { 1629, AttachShader_remap_index }, + { 10274, CreateProgram_remap_index }, { 23765, CreateShader_remap_index }, { 26289, DeleteProgram_remap_index }, { 19245, DeleteShader_remap_index }, { 24258, DetachShader_remap_index }, { 18534, GetAttachedShaders_remap_index }, - { 5053, GetProgramInfoLog_remap_index }, - { 405, GetProgramiv_remap_index }, - { 6861, GetShaderInfoLog_remap_index }, - { 31959, GetShaderiv_remap_index }, - { 13724, IsProgram_remap_index }, - { 12645, IsShader_remap_index }, - { 10351, StencilFuncSeparate_remap_index }, - { 4031, StencilMaskSeparate_remap_index }, - { 7926, StencilOpSeparate_remap_index }, + { 5126, GetProgramInfoLog_remap_index }, + { 444, GetProgramiv_remap_index }, + { 6892, GetShaderInfoLog_remap_index }, + { 32043, GetShaderiv_remap_index }, + { 13807, IsProgram_remap_index }, + { 12698, IsShader_remap_index }, + { 10404, StencilFuncSeparate_remap_index }, + { 4156, StencilMaskSeparate_remap_index }, + { 7957, StencilOpSeparate_remap_index }, { 22999, UniformMatrix2x3fv_remap_index }, - { 2920, UniformMatrix2x4fv_remap_index }, - { 33747, UniformMatrix3x2fv_remap_index }, - { 31276, UniformMatrix3x4fv_remap_index }, - { 16714, UniformMatrix4x2fv_remap_index }, - { 3339, UniformMatrix4x3fv_remap_index }, - { 5259, ClampColor_remap_index }, + { 2998, UniformMatrix2x4fv_remap_index }, + { 33859, UniformMatrix3x2fv_remap_index }, + { 31360, UniformMatrix3x4fv_remap_index }, + { 16726, UniformMatrix4x2fv_remap_index }, + { 3417, UniformMatrix4x3fv_remap_index }, + { 5332, ClampColor_remap_index }, { 18588, ClearBufferfi_remap_index }, - { 18030, ClearBufferfv_remap_index }, - { 30299, ClearBufferiv_remap_index }, - { 13929, ClearBufferuiv_remap_index }, + { 18004, ClearBufferfv_remap_index }, + { 30383, ClearBufferiv_remap_index }, + { 14012, ClearBufferuiv_remap_index }, { 20582, GetStringi_remap_index }, - { 2861, TexBuffer_remap_index }, - { 938, FramebufferTexture_remap_index }, + { 2900, TexBuffer_remap_index }, + { 977, FramebufferTexture_remap_index }, { 27325, GetBufferParameteri64v_remap_index }, - { 10451, GetInteger64i_v_remap_index }, + { 10504, GetInteger64i_v_remap_index }, { 24079, VertexAttribDivisor_remap_index }, - { 10239, LoadTransposeMatrixdARB_remap_index }, - { 31688, LoadTransposeMatrixfARB_remap_index }, - { 5898, MultTransposeMatrixdARB_remap_index }, + { 10292, LoadTransposeMatrixdARB_remap_index }, + { 31772, LoadTransposeMatrixfARB_remap_index }, + { 5971, MultTransposeMatrixdARB_remap_index }, { 24445, MultTransposeMatrixfARB_remap_index }, - { 216, SampleCoverageARB_remap_index }, - { 6124, CompressedTexImage1DARB_remap_index }, + { 255, SampleCoverageARB_remap_index }, + { 6155, CompressedTexImage1DARB_remap_index }, { 24973, CompressedTexImage2DARB_remap_index }, - { 4094, CompressedTexImage3DARB_remap_index }, + { 4219, CompressedTexImage3DARB_remap_index }, { 18876, CompressedTexSubImage1DARB_remap_index }, - { 2102, CompressedTexSubImage2DARB_remap_index }, + { 2141, CompressedTexSubImage2DARB_remap_index }, { 21004, CompressedTexSubImage3DARB_remap_index }, - { 29405, GetCompressedTexImageARB_remap_index }, - { 3905, DisableVertexAttribArrayARB_remap_index }, - { 30841, EnableVertexAttribArrayARB_remap_index }, - { 32802, GetProgramEnvParameterdvARB_remap_index }, + { 29489, GetCompressedTexImageARB_remap_index }, + { 3983, DisableVertexAttribArrayARB_remap_index }, + { 30925, EnableVertexAttribArrayARB_remap_index }, + { 32847, GetProgramEnvParameterdvARB_remap_index }, { 24325, GetProgramEnvParameterfvARB_remap_index }, - { 28322, GetProgramLocalParameterdvARB_remap_index }, - { 8402, GetProgramLocalParameterfvARB_remap_index }, + { 28354, GetProgramLocalParameterdvARB_remap_index }, + { 8433, GetProgramLocalParameterfvARB_remap_index }, { 19052, GetProgramStringARB_remap_index }, - { 28517, GetProgramivARB_remap_index }, + { 28549, GetProgramivARB_remap_index }, { 21199, GetVertexAttribdvARB_remap_index }, - { 16522, GetVertexAttribfvARB_remap_index }, - { 10077, GetVertexAttribivARB_remap_index }, + { 16534, GetVertexAttribfvARB_remap_index }, + { 10108, GetVertexAttribivARB_remap_index }, { 20045, ProgramEnvParameter4dARB_remap_index }, { 26039, ProgramEnvParameter4dvARB_remap_index }, - { 17328, ProgramEnvParameter4fARB_remap_index }, - { 9277, ProgramEnvParameter4fvARB_remap_index }, - { 4057, ProgramLocalParameter4dARB_remap_index }, - { 13434, ProgramLocalParameter4dvARB_remap_index }, - { 30320, ProgramLocalParameter4fARB_remap_index }, + { 17302, ProgramEnvParameter4fARB_remap_index }, + { 9308, ProgramEnvParameter4fvARB_remap_index }, + { 4182, ProgramLocalParameter4dARB_remap_index }, + { 13517, ProgramLocalParameter4dvARB_remap_index }, + { 30404, ProgramLocalParameter4fARB_remap_index }, { 26685, ProgramLocalParameter4fvARB_remap_index }, - { 29159, ProgramStringARB_remap_index }, + { 29243, ProgramStringARB_remap_index }, { 20313, VertexAttrib1dARB_remap_index }, - { 16149, VertexAttrib1dvARB_remap_index }, - { 4253, VertexAttrib1fARB_remap_index }, - { 33828, VertexAttrib1fvARB_remap_index }, - { 7452, VertexAttrib1sARB_remap_index }, - { 2297, VertexAttrib1svARB_remap_index }, - { 15580, VertexAttrib2dARB_remap_index }, - { 18051, VertexAttrib2dvARB_remap_index }, - { 1648, VertexAttrib2fARB_remap_index }, - { 18164, VertexAttrib2fvARB_remap_index }, - { 33428, VertexAttrib2sARB_remap_index }, - { 32439, VertexAttrib2svARB_remap_index }, - { 11629, VertexAttrib3dARB_remap_index }, - { 8944, VertexAttrib3dvARB_remap_index }, - { 1735, VertexAttrib3fARB_remap_index }, + { 16161, VertexAttrib1dvARB_remap_index }, + { 4378, VertexAttrib1fARB_remap_index }, + { 33940, VertexAttrib1fvARB_remap_index }, + { 7483, VertexAttrib1sARB_remap_index }, + { 2336, VertexAttrib1svARB_remap_index }, + { 15592, VertexAttrib2dARB_remap_index }, + { 18025, VertexAttrib2dvARB_remap_index }, + { 1687, VertexAttrib2fARB_remap_index }, + { 18138, VertexAttrib2fvARB_remap_index }, + { 33540, VertexAttrib2sARB_remap_index }, + { 32484, VertexAttrib2svARB_remap_index }, + { 11682, VertexAttrib3dARB_remap_index }, + { 8975, VertexAttrib3dvARB_remap_index }, + { 1774, VertexAttrib3fARB_remap_index }, { 23316, VertexAttrib3fvARB_remap_index }, - { 29006, VertexAttrib3sARB_remap_index }, + { 29090, VertexAttrib3sARB_remap_index }, { 20941, VertexAttrib3svARB_remap_index }, - { 5079, VertexAttrib4NbvARB_remap_index }, + { 5152, VertexAttrib4NbvARB_remap_index }, { 18411, VertexAttrib4NivARB_remap_index }, { 23271, VertexAttrib4NsvARB_remap_index }, { 24277, VertexAttrib4NubARB_remap_index }, - { 32685, VertexAttrib4NubvARB_remap_index }, + { 32730, VertexAttrib4NubvARB_remap_index }, { 19696, VertexAttrib4NuivARB_remap_index }, - { 3212, VertexAttrib4NusvARB_remap_index }, - { 11218, VertexAttrib4bvARB_remap_index }, - { 27695, VertexAttrib4dARB_remap_index }, + { 3290, VertexAttrib4NusvARB_remap_index }, + { 11271, VertexAttrib4bvARB_remap_index }, + { 27727, VertexAttrib4dARB_remap_index }, { 21998, VertexAttrib4dvARB_remap_index }, - { 11783, VertexAttrib4fARB_remap_index }, - { 12187, VertexAttrib4fvARB_remap_index }, - { 10594, VertexAttrib4ivARB_remap_index }, - { 17844, VertexAttrib4sARB_remap_index }, - { 31874, VertexAttrib4svARB_remap_index }, - { 17133, VertexAttrib4ubvARB_remap_index }, - { 31165, VertexAttrib4uivARB_remap_index }, + { 11836, VertexAttrib4fARB_remap_index }, + { 12240, VertexAttrib4fvARB_remap_index }, + { 10647, VertexAttrib4ivARB_remap_index }, + { 17818, VertexAttrib4sARB_remap_index }, + { 31958, VertexAttrib4svARB_remap_index }, + { 17107, VertexAttrib4ubvARB_remap_index }, + { 31249, VertexAttrib4uivARB_remap_index }, { 20752, VertexAttrib4usvARB_remap_index }, { 22814, VertexAttribPointerARB_remap_index }, - { 33588, BindBufferARB_remap_index }, - { 7159, BufferDataARB_remap_index }, - { 1511, BufferSubDataARB_remap_index }, - { 31451, DeleteBuffersARB_remap_index }, - { 33871, GenBuffersARB_remap_index }, - { 18207, GetBufferParameterivARB_remap_index }, - { 17280, GetBufferPointervARB_remap_index }, - { 1464, GetBufferSubDataARB_remap_index }, - { 31113, IsBufferARB_remap_index }, + { 33700, BindBufferARB_remap_index }, + { 7190, BufferDataARB_remap_index }, + { 1550, BufferSubDataARB_remap_index }, + { 31535, DeleteBuffersARB_remap_index }, + { 33983, GenBuffersARB_remap_index }, + { 18181, GetBufferParameterivARB_remap_index }, + { 17254, GetBufferPointervARB_remap_index }, + { 1503, GetBufferSubDataARB_remap_index }, + { 31197, IsBufferARB_remap_index }, { 27169, MapBufferARB_remap_index }, - { 32089, UnmapBufferARB_remap_index }, - { 312, BeginQueryARB_remap_index }, + { 32173, UnmapBufferARB_remap_index }, + { 351, BeginQueryARB_remap_index }, { 20408, DeleteQueriesARB_remap_index }, - { 12506, EndQueryARB_remap_index }, - { 29884, GenQueriesARB_remap_index }, - { 1994, GetQueryObjectivARB_remap_index }, - { 17888, GetQueryObjectuivARB_remap_index }, - { 1792, GetQueryivARB_remap_index }, + { 12559, EndQueryARB_remap_index }, + { 29968, GenQueriesARB_remap_index }, + { 2033, GetQueryObjectivARB_remap_index }, + { 17862, GetQueryObjectuivARB_remap_index }, + { 1831, GetQueryivARB_remap_index }, { 20659, IsQueryARB_remap_index }, - { 8554, AttachObjectARB_remap_index }, + { 8585, AttachObjectARB_remap_index }, { 19207, CompileShaderARB_remap_index }, - { 3281, CreateProgramObjectARB_remap_index }, - { 7104, CreateShaderObjectARB_remap_index }, - { 14882, DeleteObjectARB_remap_index }, + { 3359, CreateProgramObjectARB_remap_index }, + { 7135, CreateShaderObjectARB_remap_index }, + { 14894, DeleteObjectARB_remap_index }, { 24764, DetachObjectARB_remap_index }, - { 12251, GetActiveUniformARB_remap_index }, - { 9752, GetAttachedObjectsARB_remap_index }, - { 10059, GetHandleARB_remap_index }, - { 33621, GetInfoLogARB_remap_index }, - { 32756, GetObjectParameterfvARB_remap_index }, - { 28196, GetObjectParameterivARB_remap_index }, - { 29642, GetShaderSourceARB_remap_index }, - { 28866, GetUniformLocationARB_remap_index }, + { 12304, GetActiveUniformARB_remap_index }, + { 9783, GetAttachedObjectsARB_remap_index }, + { 10090, GetHandleARB_remap_index }, + { 33733, GetInfoLogARB_remap_index }, + { 32801, GetObjectParameterfvARB_remap_index }, + { 28228, GetObjectParameterivARB_remap_index }, + { 29726, GetShaderSourceARB_remap_index }, + { 28950, GetUniformLocationARB_remap_index }, { 24547, GetUniformfvARB_remap_index }, - { 13009, GetUniformivARB_remap_index }, + { 13092, GetUniformivARB_remap_index }, { 20797, LinkProgramARB_remap_index }, { 20855, ShaderSourceARB_remap_index }, - { 7826, Uniform1fARB_remap_index }, - { 30529, Uniform1fvARB_remap_index }, + { 7857, Uniform1fARB_remap_index }, + { 30613, Uniform1fvARB_remap_index }, { 22762, Uniform1iARB_remap_index }, { 21652, Uniform1ivARB_remap_index }, - { 2246, Uniform2fARB_remap_index }, - { 14718, Uniform2fvARB_remap_index }, + { 2285, Uniform2fARB_remap_index }, + { 14730, Uniform2fvARB_remap_index }, { 27056, Uniform2iARB_remap_index }, - { 2366, Uniform2ivARB_remap_index }, + { 2405, Uniform2ivARB_remap_index }, { 19317, Uniform3fARB_remap_index }, - { 9782, Uniform3fvARB_remap_index }, - { 6715, Uniform3iARB_remap_index }, - { 17386, Uniform3ivARB_remap_index }, + { 9813, Uniform3fvARB_remap_index }, + { 6746, Uniform3iARB_remap_index }, + { 17360, Uniform3ivARB_remap_index }, { 19851, Uniform4fARB_remap_index }, { 24411, Uniform4fvARB_remap_index }, { 25673, Uniform4iARB_remap_index }, { 21165, Uniform4ivARB_remap_index }, - { 8606, UniformMatrix2fvARB_remap_index }, + { 8637, UniformMatrix2fvARB_remap_index }, { 17, UniformMatrix3fvARB_remap_index }, - { 2763, UniformMatrix4fvARB_remap_index }, + { 2802, UniformMatrix4fvARB_remap_index }, { 26151, UseProgramObjectARB_remap_index }, - { 15268, ValidateProgramARB_remap_index }, + { 15280, ValidateProgramARB_remap_index }, { 22041, BindAttribLocationARB_remap_index }, - { 5124, GetActiveAttribARB_remap_index }, - { 17034, GetAttribLocationARB_remap_index }, - { 30247, DrawBuffersARB_remap_index }, - { 30080, ClampColorARB_remap_index }, + { 5197, GetActiveAttribARB_remap_index }, + { 17041, GetAttribLocationARB_remap_index }, + { 30331, DrawBuffersARB_remap_index }, + { 30164, ClampColorARB_remap_index }, { 18456, DrawArraysInstancedARB_remap_index }, - { 6776, DrawElementsInstancedARB_remap_index }, - { 13539, RenderbufferStorageMultisample_remap_index }, - { 14010, FramebufferTextureARB_remap_index }, + { 6807, DrawElementsInstancedARB_remap_index }, + { 13622, RenderbufferStorageMultisample_remap_index }, + { 14093, FramebufferTextureARB_remap_index }, { 26587, FramebufferTextureFaceARB_remap_index }, { 24913, ProgramParameteriARB_remap_index }, - { 6296, VertexAttribDivisorARB_remap_index }, + { 6327, VertexAttribDivisorARB_remap_index }, { 19899, FlushMappedBufferRange_remap_index }, - { 28633, MapBufferRange_remap_index }, - { 28540, TexBufferARB_remap_index }, - { 16852, BindVertexArray_remap_index }, - { 15091, GenVertexArrays_remap_index }, - { 31043, CopyBufferSubData_remap_index }, - { 31978, ClientWaitSync_remap_index }, - { 2682, DeleteSync_remap_index }, - { 7493, FenceSync_remap_index }, - { 15639, GetInteger64v_remap_index }, + { 28665, MapBufferRange_remap_index }, + { 28572, TexBufferARB_remap_index }, + { 16864, BindVertexArray_remap_index }, + { 15103, GenVertexArrays_remap_index }, + { 31127, CopyBufferSubData_remap_index }, + { 32062, ClientWaitSync_remap_index }, + { 2721, DeleteSync_remap_index }, + { 7524, FenceSync_remap_index }, + { 15651, GetInteger64v_remap_index }, { 23378, GetSynciv_remap_index }, - { 30186, IsSync_remap_index }, - { 9700, WaitSync_remap_index }, - { 3873, DrawElementsBaseVertex_remap_index }, - { 31355, DrawRangeElementsBaseVertex_remap_index }, + { 30270, IsSync_remap_index }, + { 9731, WaitSync_remap_index }, + { 3951, DrawElementsBaseVertex_remap_index }, + { 31439, DrawRangeElementsBaseVertex_remap_index }, { 27200, MultiDrawElementsBaseVertex_remap_index }, - { 17100, BlendEquationSeparateiARB_remap_index }, - { 18300, BlendEquationiARB_remap_index }, - { 12978, BlendFuncSeparateiARB_remap_index }, - { 10125, BlendFunciARB_remap_index }, - { 8468, BindSampler_remap_index }, - { 4232, DeleteSamplers_remap_index }, + { 33006, BlendEquationSeparateiARB_remap_index }, + { 18274, BlendEquationiARB_remap_index }, + { 13031, BlendFuncSeparateiARB_remap_index }, + { 10156, BlendFunciARB_remap_index }, + { 8499, BindSampler_remap_index }, + { 4357, DeleteSamplers_remap_index }, { 20272, GenSamplers_remap_index }, - { 30118, GetSamplerParameterIiv_remap_index }, + { 30202, GetSamplerParameterIiv_remap_index }, { 19793, GetSamplerParameterIuiv_remap_index }, - { 4973, GetSamplerParameterfv_remap_index }, + { 5046, GetSamplerParameterfv_remap_index }, { 26308, GetSamplerParameteriv_remap_index }, - { 14636, IsSampler_remap_index }, - { 16805, SamplerParameterIiv_remap_index }, - { 31394, SamplerParameterIuiv_remap_index }, + { 14648, IsSampler_remap_index }, + { 16817, SamplerParameterIiv_remap_index }, + { 31478, SamplerParameterIuiv_remap_index }, { 23051, SamplerParameterf_remap_index }, - { 16961, SamplerParameterfv_remap_index }, + { 16973, SamplerParameterfv_remap_index }, { 23026, SamplerParameteri_remap_index }, { 18650, SamplerParameteriv_remap_index }, - { 5320, BindTransformFeedback_remap_index }, - { 3308, DeleteTransformFeedbacks_remap_index }, - { 6748, DrawTransformFeedback_remap_index }, - { 9919, GenTransformFeedbacks_remap_index }, - { 29049, IsTransformFeedback_remap_index }, + { 5393, BindTransformFeedback_remap_index }, + { 3386, DeleteTransformFeedbacks_remap_index }, + { 6779, DrawTransformFeedback_remap_index }, + { 9950, GenTransformFeedbacks_remap_index }, + { 29133, IsTransformFeedback_remap_index }, { 26780, PauseTransformFeedback_remap_index }, - { 5783, ResumeTransformFeedback_remap_index }, + { 5856, ResumeTransformFeedback_remap_index }, { 22361, ClearDepthf_remap_index }, - { 7052, DepthRangef_remap_index }, - { 14903, GetShaderPrecisionFormat_remap_index }, - { 10291, ReleaseShaderCompiler_remap_index }, - { 11261, ShaderBinary_remap_index }, - { 965, GetGraphicsResetStatusARB_remap_index }, + { 7083, DepthRangef_remap_index }, + { 14915, GetShaderPrecisionFormat_remap_index }, + { 10344, ReleaseShaderCompiler_remap_index }, + { 11314, ShaderBinary_remap_index }, + { 1004, GetGraphicsResetStatusARB_remap_index }, { 25478, GetnColorTableARB_remap_index }, - { 8237, GetnCompressedTexImageARB_remap_index }, - { 3965, GetnConvolutionFilterARB_remap_index }, - { 16192, GetnHistogramARB_remap_index }, + { 8268, GetnCompressedTexImageARB_remap_index }, + { 4090, GetnConvolutionFilterARB_remap_index }, + { 16204, GetnHistogramARB_remap_index }, { 24237, GetnMapdvARB_remap_index }, { 22793, GetnMapfvARB_remap_index }, - { 2225, GetnMapivARB_remap_index }, - { 17648, GetnMinmaxARB_remap_index }, - { 4598, GetnPixelMapfvARB_remap_index }, + { 2264, GetnMapivARB_remap_index }, + { 17622, GetnMinmaxARB_remap_index }, + { 4671, GetnPixelMapfvARB_remap_index }, { 19670, GetnPixelMapuivARB_remap_index }, - { 3033, GetnPixelMapusvARB_remap_index }, - { 1344, GetnPolygonStippleARB_remap_index }, + { 3111, GetnPixelMapusvARB_remap_index }, + { 1383, GetnPolygonStippleARB_remap_index }, { 21826, GetnSeparableFilterARB_remap_index }, - { 33470, GetnTexImageARB_remap_index }, + { 33582, GetnTexImageARB_remap_index }, { 19079, GetnUniformdvARB_remap_index }, - { 4670, GetnUniformfvARB_remap_index }, - { 10146, GetnUniformivARB_remap_index }, + { 4743, GetnUniformfvARB_remap_index }, + { 10199, GetnUniformivARB_remap_index }, { 23227, GetnUniformuivARB_remap_index }, - { 2947, ReadnPixelsARB_remap_index }, - { 5651, PolygonOffsetEXT_remap_index }, + { 3025, ReadnPixelsARB_remap_index }, + { 5724, PolygonOffsetEXT_remap_index }, { 24000, GetPixelTexGenParameterfvSGIS_remap_index }, - { 4548, GetPixelTexGenParameterivSGIS_remap_index }, + { 4621, GetPixelTexGenParameterivSGIS_remap_index }, { 23733, PixelTexGenParameterfSGIS_remap_index }, - { 624, PixelTexGenParameterfvSGIS_remap_index }, - { 13047, PixelTexGenParameteriSGIS_remap_index }, - { 14184, PixelTexGenParameterivSGIS_remap_index }, + { 663, PixelTexGenParameterfvSGIS_remap_index }, + { 13130, PixelTexGenParameteriSGIS_remap_index }, + { 14235, PixelTexGenParameterivSGIS_remap_index }, { 18775, SampleMaskSGIS_remap_index }, { 20599, SamplePatternSGIS_remap_index }, { 27129, ColorPointerEXT_remap_index }, - { 18094, EdgeFlagPointerEXT_remap_index }, - { 6369, IndexPointerEXT_remap_index }, - { 6449, NormalPointerEXT_remap_index }, - { 16260, TexCoordPointerEXT_remap_index }, - { 7282, VertexPointerEXT_remap_index }, - { 3675, PointParameterfEXT_remap_index }, - { 8133, PointParameterfvEXT_remap_index }, - { 32854, LockArraysEXT_remap_index }, - { 15332, UnlockArraysEXT_remap_index }, - { 1252, SecondaryColor3bEXT_remap_index }, - { 8326, SecondaryColor3bvEXT_remap_index }, - { 10771, SecondaryColor3dEXT_remap_index }, + { 18068, EdgeFlagPointerEXT_remap_index }, + { 6400, IndexPointerEXT_remap_index }, + { 6480, NormalPointerEXT_remap_index }, + { 16272, TexCoordPointerEXT_remap_index }, + { 7313, VertexPointerEXT_remap_index }, + { 3753, PointParameterfEXT_remap_index }, + { 8164, PointParameterfvEXT_remap_index }, + { 32899, LockArraysEXT_remap_index }, + { 15344, UnlockArraysEXT_remap_index }, + { 1291, SecondaryColor3bEXT_remap_index }, + { 8357, SecondaryColor3bvEXT_remap_index }, + { 10824, SecondaryColor3dEXT_remap_index }, { 26357, SecondaryColor3dvEXT_remap_index }, - { 28915, SecondaryColor3fEXT_remap_index }, + { 28999, SecondaryColor3fEXT_remap_index }, { 18812, SecondaryColor3fvEXT_remap_index }, - { 470, SecondaryColor3iEXT_remap_index }, - { 16570, SecondaryColor3ivEXT_remap_index }, - { 10379, SecondaryColor3sEXT_remap_index }, - { 31642, SecondaryColor3svEXT_remap_index }, - { 28032, SecondaryColor3ubEXT_remap_index }, + { 509, SecondaryColor3iEXT_remap_index }, + { 16582, SecondaryColor3ivEXT_remap_index }, + { 10432, SecondaryColor3sEXT_remap_index }, + { 31726, SecondaryColor3svEXT_remap_index }, + { 28064, SecondaryColor3ubEXT_remap_index }, { 21932, SecondaryColor3ubvEXT_remap_index }, - { 13289, SecondaryColor3uiEXT_remap_index }, + { 13372, SecondaryColor3uiEXT_remap_index }, { 23620, SecondaryColor3uivEXT_remap_index }, { 26637, SecondaryColor3usEXT_remap_index }, - { 13362, SecondaryColor3usvEXT_remap_index }, - { 12130, SecondaryColorPointerEXT_remap_index }, + { 13445, SecondaryColor3usvEXT_remap_index }, + { 12183, SecondaryColorPointerEXT_remap_index }, { 26451, MultiDrawArraysEXT_remap_index }, { 21587, MultiDrawElementsEXT_remap_index }, { 21782, FogCoordPointerEXT_remap_index }, - { 4721, FogCoorddEXT_remap_index }, - { 32255, FogCoorddvEXT_remap_index }, - { 4838, FogCoordfEXT_remap_index }, - { 27955, FogCoordfvEXT_remap_index }, - { 12230, PixelTexGenSGIX_remap_index }, - { 28560, BlendFuncSeparateEXT_remap_index }, - { 7194, FlushVertexArrayRangeNV_remap_index }, - { 5600, VertexArrayRangeNV_remap_index }, - { 28980, CombinerInputNV_remap_index }, - { 2168, CombinerOutputNV_remap_index }, - { 31795, CombinerParameterfNV_remap_index }, - { 5474, CombinerParameterfvNV_remap_index }, + { 4794, FogCoorddEXT_remap_index }, + { 32300, FogCoorddvEXT_remap_index }, + { 4911, FogCoordfEXT_remap_index }, + { 27987, FogCoordfvEXT_remap_index }, + { 12283, PixelTexGenSGIX_remap_index }, + { 28592, BlendFuncSeparateEXT_remap_index }, + { 7225, FlushVertexArrayRangeNV_remap_index }, + { 5673, VertexArrayRangeNV_remap_index }, + { 29064, CombinerInputNV_remap_index }, + { 2207, CombinerOutputNV_remap_index }, + { 31879, CombinerParameterfNV_remap_index }, + { 5547, CombinerParameterfvNV_remap_index }, { 23076, CombinerParameteriNV_remap_index }, - { 33270, CombinerParameterivNV_remap_index }, - { 7570, FinalCombinerInputNV_remap_index }, - { 1609, GetCombinerInputParameterfvNV_remap_index }, - { 33107, GetCombinerInputParameterivNV_remap_index }, - { 14285, GetCombinerOutputParameterfvNV_remap_index }, - { 14113, GetCombinerOutputParameterivNV_remap_index }, - { 6956, GetFinalCombinerInputParameterfvNV_remap_index }, + { 33382, CombinerParameterivNV_remap_index }, + { 7601, FinalCombinerInputNV_remap_index }, + { 1648, GetCombinerInputParameterfvNV_remap_index }, + { 33219, GetCombinerInputParameterivNV_remap_index }, + { 216, GetCombinerOutputParameterfvNV_remap_index }, + { 14196, GetCombinerOutputParameterivNV_remap_index }, + { 6987, GetFinalCombinerInputParameterfvNV_remap_index }, { 25545, GetFinalCombinerInputParameterivNV_remap_index }, - { 12956, ResizeBuffersMESA_remap_index }, - { 11456, WindowPos2dMESA_remap_index }, - { 1045, WindowPos2dvMESA_remap_index }, - { 34174, WindowPos2fMESA_remap_index }, - { 8271, WindowPos2fvMESA_remap_index }, + { 13009, ResizeBuffersMESA_remap_index }, + { 11509, WindowPos2dMESA_remap_index }, + { 1084, WindowPos2dvMESA_remap_index }, + { 34286, WindowPos2fMESA_remap_index }, + { 8302, WindowPos2fvMESA_remap_index }, { 18722, WindowPos2iMESA_remap_index }, { 21072, WindowPos2ivMESA_remap_index }, { 21686, WindowPos2sMESA_remap_index }, - { 6038, WindowPos2svMESA_remap_index }, - { 8062, WindowPos3dMESA_remap_index }, - { 14431, WindowPos3dvMESA_remap_index }, - { 516, WindowPos3fMESA_remap_index }, - { 15393, WindowPos3fvMESA_remap_index }, + { 6069, WindowPos2svMESA_remap_index }, + { 8093, WindowPos3dMESA_remap_index }, + { 14443, WindowPos3dvMESA_remap_index }, + { 555, WindowPos3fMESA_remap_index }, + { 15405, WindowPos3fvMESA_remap_index }, { 24806, WindowPos3iMESA_remap_index }, - { 30988, WindowPos3ivMESA_remap_index }, + { 31072, WindowPos3ivMESA_remap_index }, { 19462, WindowPos3sMESA_remap_index }, - { 32511, WindowPos3svMESA_remap_index }, - { 11407, WindowPos4dMESA_remap_index }, - { 17524, WindowPos4dvMESA_remap_index }, - { 14390, WindowPos4fMESA_remap_index }, - { 31549, WindowPos4fvMESA_remap_index }, - { 31141, WindowPos4iMESA_remap_index }, - { 12759, WindowPos4ivMESA_remap_index }, + { 32556, WindowPos3svMESA_remap_index }, + { 11460, WindowPos4dMESA_remap_index }, + { 17498, WindowPos4dvMESA_remap_index }, + { 14402, WindowPos4fMESA_remap_index }, + { 31633, WindowPos4fvMESA_remap_index }, + { 31225, WindowPos4iMESA_remap_index }, + { 12812, WindowPos4ivMESA_remap_index }, { 19646, WindowPos4sMESA_remap_index }, - { 3259, WindowPos4svMESA_remap_index }, - { 14152, MultiModeDrawArraysIBM_remap_index }, - { 29755, MultiModeDrawElementsIBM_remap_index }, - { 12534, DeleteFencesNV_remap_index }, - { 28827, FinishFenceNV_remap_index }, - { 3797, GenFencesNV_remap_index }, - { 17504, GetFenceivNV_remap_index }, - { 8539, IsFenceNV_remap_index }, - { 14040, SetFenceNV_remap_index }, - { 4309, TestFenceNV_remap_index }, - { 32482, AreProgramsResidentNV_remap_index }, - { 31837, BindProgramNV_remap_index }, + { 3337, WindowPos4svMESA_remap_index }, + { 27695, MultiModeDrawArraysIBM_remap_index }, + { 29839, MultiModeDrawElementsIBM_remap_index }, + { 12587, DeleteFencesNV_remap_index }, + { 28911, FinishFenceNV_remap_index }, + { 3875, GenFencesNV_remap_index }, + { 17478, GetFenceivNV_remap_index }, + { 8570, IsFenceNV_remap_index }, + { 14123, SetFenceNV_remap_index }, + { 4434, TestFenceNV_remap_index }, + { 32527, AreProgramsResidentNV_remap_index }, + { 31921, BindProgramNV_remap_index }, { 26720, DeleteProgramsNV_remap_index }, { 22150, ExecuteProgramNV_remap_index }, - { 34067, GenProgramsNV_remap_index }, + { 34179, GenProgramsNV_remap_index }, { 24105, GetProgramParameterdvNV_remap_index }, - { 10833, GetProgramParameterfvNV_remap_index }, + { 10886, GetProgramParameterfvNV_remap_index }, { 27103, GetProgramStringNV_remap_index }, { 25183, GetProgramivNV_remap_index }, { 24360, GetTrackMatrixivNV_remap_index }, { 26897, GetVertexAttribPointervNV_remap_index }, - { 10474, GetVertexAttribdvNV_remap_index }, - { 9595, GetVertexAttribfvNV_remap_index }, + { 10527, GetVertexAttribdvNV_remap_index }, + { 9626, GetVertexAttribfvNV_remap_index }, { 19025, GetVertexAttribivNV_remap_index }, { 19929, IsProgramNV_remap_index }, - { 9678, LoadProgramNV_remap_index }, - { 28656, ProgramParameters4dvNV_remap_index }, + { 9709, LoadProgramNV_remap_index }, + { 28688, ProgramParameters4dvNV_remap_index }, { 25113, ProgramParameters4fvNV_remap_index }, { 21376, RequestResidentProgramsNV_remap_index }, - { 31333, TrackMatrixNV_remap_index }, - { 33084, VertexAttrib1dNV_remap_index }, - { 13951, VertexAttrib1dvNV_remap_index }, - { 29261, VertexAttrib1fNV_remap_index }, - { 2488, VertexAttrib1fvNV_remap_index }, - { 31606, VertexAttrib1sNV_remap_index }, - { 15466, VertexAttrib1svNV_remap_index }, - { 5029, VertexAttrib2dNV_remap_index }, - { 13844, VertexAttrib2dvNV_remap_index }, + { 31417, TrackMatrixNV_remap_index }, + { 33196, VertexAttrib1dNV_remap_index }, + { 14034, VertexAttrib1dvNV_remap_index }, + { 29345, VertexAttrib1fNV_remap_index }, + { 2527, VertexAttrib1fvNV_remap_index }, + { 31690, VertexAttrib1sNV_remap_index }, + { 15478, VertexAttrib1svNV_remap_index }, + { 5102, VertexAttrib2dNV_remap_index }, + { 13927, VertexAttrib2dvNV_remap_index }, { 20831, VertexAttrib2fNV_remap_index }, - { 13410, VertexAttrib2fvNV_remap_index }, - { 6250, VertexAttrib2sNV_remap_index }, + { 13493, VertexAttrib2fvNV_remap_index }, + { 6281, VertexAttrib2sNV_remap_index }, { 19516, VertexAttrib2svNV_remap_index }, - { 11604, VertexAttrib3dNV_remap_index }, - { 32732, VertexAttrib3dvNV_remap_index }, - { 10645, VertexAttrib3fNV_remap_index }, + { 11657, VertexAttrib3dNV_remap_index }, + { 32777, VertexAttrib3dvNV_remap_index }, + { 10698, VertexAttrib3fNV_remap_index }, { 25505, VertexAttrib3fvNV_remap_index }, { 22869, VertexAttrib3sNV_remap_index }, { 24387, VertexAttrib3svNV_remap_index }, - { 29729, VertexAttrib4dNV_remap_index }, - { 34104, VertexAttrib4dvNV_remap_index }, - { 5414, VertexAttrib4fNV_remap_index }, - { 9728, VertexAttrib4fvNV_remap_index }, + { 29813, VertexAttrib4dNV_remap_index }, + { 34216, VertexAttrib4dvNV_remap_index }, + { 5487, VertexAttrib4fNV_remap_index }, + { 9759, VertexAttrib4fvNV_remap_index }, { 27579, VertexAttrib4sNV_remap_index }, - { 1422, VertexAttrib4svNV_remap_index }, - { 5187, VertexAttrib4ubNV_remap_index }, - { 778, VertexAttrib4ubvNV_remap_index }, + { 1461, VertexAttrib4svNV_remap_index }, + { 5260, VertexAttrib4ubNV_remap_index }, + { 817, VertexAttrib4ubvNV_remap_index }, { 22330, VertexAttribPointerNV_remap_index }, - { 2340, VertexAttribs1dvNV_remap_index }, + { 2379, VertexAttribs1dvNV_remap_index }, { 26985, VertexAttribs1fvNV_remap_index }, - { 33904, VertexAttribs1svNV_remap_index }, - { 10670, VertexAttribs2dvNV_remap_index }, + { 34016, VertexAttribs1svNV_remap_index }, + { 10723, VertexAttribs2dvNV_remap_index }, { 26112, VertexAttribs2fvNV_remap_index }, - { 18120, VertexAttribs2svNV_remap_index }, - { 5502, VertexAttribs3dvNV_remap_index }, - { 2199, VertexAttribs3fvNV_remap_index }, - { 30736, VertexAttribs3svNV_remap_index }, + { 18094, VertexAttribs2svNV_remap_index }, + { 5575, VertexAttribs3dvNV_remap_index }, + { 2238, VertexAttribs3fvNV_remap_index }, + { 30820, VertexAttribs3svNV_remap_index }, { 27669, VertexAttribs4dvNV_remap_index }, - { 5574, VertexAttribs4fvNV_remap_index }, - { 33691, VertexAttribs4svNV_remap_index }, - { 30484, VertexAttribs4ubvNV_remap_index }, - { 27739, GetTexBumpParameterfvATI_remap_index }, - { 33945, GetTexBumpParameterivATI_remap_index }, + { 5647, VertexAttribs4fvNV_remap_index }, + { 33803, VertexAttribs4svNV_remap_index }, + { 30568, VertexAttribs4ubvNV_remap_index }, + { 27771, GetTexBumpParameterfvATI_remap_index }, + { 34057, GetTexBumpParameterivATI_remap_index }, { 19160, TexBumpParameterfvATI_remap_index }, { 21247, TexBumpParameterivATI_remap_index }, - { 16012, AlphaFragmentOp1ATI_remap_index }, + { 16024, AlphaFragmentOp1ATI_remap_index }, { 26403, AlphaFragmentOp2ATI_remap_index }, { 25421, AlphaFragmentOp3ATI_remap_index }, - { 30663, BeginFragmentShaderATI_remap_index }, - { 32036, BindFragmentShaderATI_remap_index }, + { 30747, BeginFragmentShaderATI_remap_index }, + { 32120, BindFragmentShaderATI_remap_index }, { 24516, ColorFragmentOp1ATI_remap_index }, - { 4476, ColorFragmentOp2ATI_remap_index }, - { 32377, ColorFragmentOp3ATI_remap_index }, - { 5740, DeleteFragmentShaderATI_remap_index }, - { 34128, EndFragmentShaderATI_remap_index }, - { 33298, GenFragmentShadersATI_remap_index }, + { 4549, ColorFragmentOp2ATI_remap_index }, + { 32422, ColorFragmentOp3ATI_remap_index }, + { 5813, DeleteFragmentShaderATI_remap_index }, + { 34240, EndFragmentShaderATI_remap_index }, + { 33410, GenFragmentShadersATI_remap_index }, { 26266, PassTexCoordATI_remap_index }, - { 7262, SampleMapATI_remap_index }, - { 27850, SetFragmentShaderConstantATI_remap_index }, - { 363, PointParameteriNV_remap_index }, - { 14592, PointParameterivNV_remap_index }, - { 29568, ActiveStencilFaceEXT_remap_index }, - { 28296, BindVertexArrayAPPLE_remap_index }, - { 2810, DeleteVertexArraysAPPLE_remap_index }, + { 7293, SampleMapATI_remap_index }, + { 27882, SetFragmentShaderConstantATI_remap_index }, + { 402, PointParameteriNV_remap_index }, + { 14604, PointParameterivNV_remap_index }, + { 29652, ActiveStencilFaceEXT_remap_index }, + { 28328, BindVertexArrayAPPLE_remap_index }, + { 2849, DeleteVertexArraysAPPLE_remap_index }, { 18561, GenVertexArraysAPPLE_remap_index }, { 24170, IsVertexArrayAPPLE_remap_index }, - { 819, GetProgramNamedParameterdvNV_remap_index }, - { 3638, GetProgramNamedParameterfvNV_remap_index }, - { 27770, ProgramNamedParameter4dNV_remap_index }, - { 14966, ProgramNamedParameter4dvNV_remap_index }, - { 9211, ProgramNamedParameter4fNV_remap_index }, - { 12095, ProgramNamedParameter4fvNV_remap_index }, - { 17435, PrimitiveRestartIndexNV_remap_index }, - { 31526, PrimitiveRestartNV_remap_index }, + { 858, GetProgramNamedParameterdvNV_remap_index }, + { 3716, GetProgramNamedParameterfvNV_remap_index }, + { 27802, ProgramNamedParameter4dNV_remap_index }, + { 14978, ProgramNamedParameter4dvNV_remap_index }, + { 9242, ProgramNamedParameter4fNV_remap_index }, + { 12148, ProgramNamedParameter4fvNV_remap_index }, + { 17409, PrimitiveRestartIndexNV_remap_index }, + { 31610, PrimitiveRestartNV_remap_index }, { 25092, DepthBoundsEXT_remap_index }, - { 1144, BlendEquationSeparateEXT_remap_index }, - { 15167, BindFramebufferEXT_remap_index }, + { 1183, BlendEquationSeparateEXT_remap_index }, + { 15179, BindFramebufferEXT_remap_index }, { 26496, BindRenderbufferEXT_remap_index }, - { 9975, CheckFramebufferStatusEXT_remap_index }, + { 10006, CheckFramebufferStatusEXT_remap_index }, { 23421, DeleteFramebuffersEXT_remap_index }, - { 32634, DeleteRenderbuffersEXT_remap_index }, - { 13868, FramebufferRenderbufferEXT_remap_index }, - { 14057, FramebufferTexture1DEXT_remap_index }, - { 11889, FramebufferTexture2DEXT_remap_index }, - { 11509, FramebufferTexture3DEXT_remap_index }, + { 32679, DeleteRenderbuffersEXT_remap_index }, + { 13951, FramebufferRenderbufferEXT_remap_index }, + { 14140, FramebufferTexture1DEXT_remap_index }, + { 11942, FramebufferTexture2DEXT_remap_index }, + { 11562, FramebufferTexture3DEXT_remap_index }, { 24036, GenFramebuffersEXT_remap_index }, - { 17985, GenRenderbuffersEXT_remap_index }, - { 6998, GenerateMipmapEXT_remap_index }, + { 17959, GenRenderbuffersEXT_remap_index }, + { 7029, GenerateMipmapEXT_remap_index }, { 22423, GetFramebufferAttachmentParameterivEXT_remap_index }, - { 33204, GetRenderbufferParameterivEXT_remap_index }, + { 33316, GetRenderbufferParameterivEXT_remap_index }, { 21127, IsFramebufferEXT_remap_index }, - { 34027, IsRenderbufferEXT_remap_index }, - { 8486, RenderbufferStorageEXT_remap_index }, - { 695, BlitFramebufferEXT_remap_index }, - { 14752, BufferParameteriAPPLE_remap_index }, + { 34139, IsRenderbufferEXT_remap_index }, + { 8517, RenderbufferStorageEXT_remap_index }, + { 734, BlitFramebufferEXT_remap_index }, + { 14764, BufferParameteriAPPLE_remap_index }, { 19961, FlushMappedBufferRangeAPPLE_remap_index }, - { 1867, BindFragDataLocationEXT_remap_index }, + { 1906, BindFragDataLocationEXT_remap_index }, { 25205, GetFragDataLocationEXT_remap_index }, - { 10948, GetUniformuivEXT_remap_index }, - { 33378, GetVertexAttribIivEXT_remap_index }, - { 4326, GetVertexAttribIuivEXT_remap_index }, - { 12367, Uniform1uiEXT_remap_index }, - { 28741, Uniform1uivEXT_remap_index }, + { 11001, GetUniformuivEXT_remap_index }, + { 33490, GetVertexAttribIivEXT_remap_index }, + { 28859, GetVertexAttribIuivEXT_remap_index }, + { 12420, Uniform1uiEXT_remap_index }, + { 28773, Uniform1uivEXT_remap_index }, { 22965, Uniform2uiEXT_remap_index }, - { 4440, Uniform2uivEXT_remap_index }, - { 30008, Uniform3uiEXT_remap_index }, - { 15113, Uniform3uivEXT_remap_index }, - { 3562, Uniform4uiEXT_remap_index }, - { 8987, Uniform4uivEXT_remap_index }, + { 4513, Uniform2uivEXT_remap_index }, + { 30092, Uniform3uiEXT_remap_index }, + { 15125, Uniform3uivEXT_remap_index }, + { 3640, Uniform4uiEXT_remap_index }, + { 9018, Uniform4uivEXT_remap_index }, { 18940, VertexAttribI1iEXT_remap_index }, - { 5214, VertexAttribI1ivEXT_remap_index }, - { 2589, VertexAttribI1uiEXT_remap_index }, - { 13138, VertexAttribI1uivEXT_remap_index }, + { 5287, VertexAttribI1ivEXT_remap_index }, + { 2628, VertexAttribI1uiEXT_remap_index }, + { 13221, VertexAttribI1uivEXT_remap_index }, { 81, VertexAttribI2iEXT_remap_index }, { 24628, VertexAttribI2ivEXT_remap_index }, - { 5528, VertexAttribI2uiEXT_remap_index }, - { 4883, VertexAttribI2uivEXT_remap_index }, + { 5601, VertexAttribI2uiEXT_remap_index }, + { 4956, VertexAttribI2uivEXT_remap_index }, { 27371, VertexAttribI3iEXT_remap_index }, { 25830, VertexAttribI3ivEXT_remap_index }, - { 3416, VertexAttribI3uiEXT_remap_index }, - { 31229, VertexAttribI3uivEXT_remap_index }, + { 3494, VertexAttribI3uiEXT_remap_index }, + { 31313, VertexAttribI3uivEXT_remap_index }, { 22674, VertexAttribI4bvEXT_remap_index }, - { 15045, VertexAttribI4iEXT_remap_index }, - { 32903, VertexAttribI4ivEXT_remap_index }, - { 13771, VertexAttribI4svEXT_remap_index }, - { 16987, VertexAttribI4ubvEXT_remap_index }, - { 16633, VertexAttribI4uiEXT_remap_index }, - { 5674, VertexAttribI4uivEXT_remap_index }, - { 11672, VertexAttribI4usvEXT_remap_index }, + { 15057, VertexAttribI4iEXT_remap_index }, + { 32948, VertexAttribI4ivEXT_remap_index }, + { 13854, VertexAttribI4svEXT_remap_index }, + { 4043, VertexAttribI4ubvEXT_remap_index }, + { 16645, VertexAttribI4uiEXT_remap_index }, + { 5747, VertexAttribI4uivEXT_remap_index }, + { 11725, VertexAttribI4usvEXT_remap_index }, { 19104, VertexAttribIPointerEXT_remap_index }, - { 3103, FramebufferTextureLayerEXT_remap_index }, - { 5950, ColorMaskIndexedEXT_remap_index }, + { 3181, FramebufferTextureLayerEXT_remap_index }, + { 16999, ColorMaskIndexedEXT_remap_index }, { 19540, DisableIndexedEXT_remap_index }, { 27416, EnableIndexedEXT_remap_index }, { 22378, GetBooleanIndexedvEXT_remap_index }, - { 11283, GetIntegerIndexedvEXT_remap_index }, + { 11336, GetIntegerIndexedvEXT_remap_index }, { 23497, IsEnabledIndexedEXT_remap_index }, { 23397, ClearColorIiEXT_remap_index }, - { 3512, ClearColorIuiEXT_remap_index }, - { 10171, GetTexParameterIivEXT_remap_index }, - { 6198, GetTexParameterIuivEXT_remap_index }, - { 3059, TexParameterIivEXT_remap_index }, + { 3590, ClearColorIuiEXT_remap_index }, + { 10224, GetTexParameterIivEXT_remap_index }, + { 6229, GetTexParameterIuivEXT_remap_index }, + { 3137, TexParameterIivEXT_remap_index }, { 27238, TexParameterIuivEXT_remap_index }, - { 4751, BeginConditionalRenderNV_remap_index }, + { 4824, BeginConditionalRenderNV_remap_index }, { 26216, EndConditionalRenderNV_remap_index }, - { 9622, BeginTransformFeedbackEXT_remap_index }, + { 9653, BeginTransformFeedbackEXT_remap_index }, { 19575, BindBufferBaseEXT_remap_index }, { 19434, BindBufferOffsetEXT_remap_index }, - { 12584, BindBufferRangeEXT_remap_index }, - { 14667, EndTransformFeedbackEXT_remap_index }, - { 11146, GetTransformFeedbackVaryingEXT_remap_index }, + { 12637, BindBufferRangeEXT_remap_index }, + { 14679, EndTransformFeedbackEXT_remap_index }, + { 11199, GetTransformFeedbackVaryingEXT_remap_index }, { 21432, TransformFeedbackVaryingsEXT_remap_index }, - { 30385, ProvokingVertexEXT_remap_index }, - { 11094, GetTexParameterPointervAPPLE_remap_index }, - { 5276, TextureRangeAPPLE_remap_index }, - { 11961, GetObjectParameterivAPPLE_remap_index }, + { 30469, ProvokingVertexEXT_remap_index }, + { 11147, GetTexParameterPointervAPPLE_remap_index }, + { 5349, TextureRangeAPPLE_remap_index }, + { 12014, GetObjectParameterivAPPLE_remap_index }, { 20554, ObjectPurgeableAPPLE_remap_index }, - { 5992, ObjectUnpurgeableAPPLE_remap_index }, - { 17807, ActiveProgramEXT_remap_index }, - { 17778, CreateShaderProgramEXT_remap_index }, - { 29353, UseShaderProgramEXT_remap_index }, - { 16940, TextureBarrierNV_remap_index }, - { 29594, StencilFuncSeparateATI_remap_index }, - { 5863, ProgramEnvParameters4fvEXT_remap_index }, - { 17672, ProgramLocalParameters4fvEXT_remap_index }, - { 14520, GetQueryObjecti64vEXT_remap_index }, - { 10696, GetQueryObjectui64vEXT_remap_index }, + { 6023, ObjectUnpurgeableAPPLE_remap_index }, + { 17781, ActiveProgramEXT_remap_index }, + { 17752, CreateShaderProgramEXT_remap_index }, + { 29437, UseShaderProgramEXT_remap_index }, + { 16952, TextureBarrierNV_remap_index }, + { 29678, StencilFuncSeparateATI_remap_index }, + { 5936, ProgramEnvParameters4fvEXT_remap_index }, + { 17646, ProgramLocalParameters4fvEXT_remap_index }, + { 14532, GetQueryObjecti64vEXT_remap_index }, + { 10749, GetQueryObjectui64vEXT_remap_index }, { 24585, EGLImageTargetRenderbufferStorageOES_remap_index }, - { 12473, EGLImageTargetTexture2DOES_remap_index }, + { 12526, EGLImageTargetTexture2DOES_remap_index }, { -1, -1 } }; /* these functions are in the ABI, but have alternative names */ static const struct gl_function_remap MESA_alt_functions[] = { /* from GL_EXT_blend_color */ - { 2728, _gloffset_BlendColor }, + { 2767, _gloffset_BlendColor }, /* from GL_EXT_blend_minmax */ - { 11566, _gloffset_BlendEquation }, + { 11619, _gloffset_BlendEquation }, /* from GL_EXT_color_subtable */ - { 17546, _gloffset_ColorSubTable }, - { 32566, _gloffset_CopyColorSubTable }, + { 17520, _gloffset_ColorSubTable }, + { 32611, _gloffset_CopyColorSubTable }, /* from GL_EXT_convolution */ - { 257, _gloffset_ConvolutionFilter1D }, - { 2527, _gloffset_CopyConvolutionFilter1D }, - { 4168, _gloffset_GetConvolutionParameteriv }, - { 8835, _gloffset_ConvolutionFilter2D }, - { 9037, _gloffset_ConvolutionParameteriv }, - { 9497, _gloffset_ConvolutionParameterfv }, + { 296, _gloffset_ConvolutionFilter1D }, + { 2566, _gloffset_CopyConvolutionFilter1D }, + { 4293, _gloffset_GetConvolutionParameteriv }, + { 8866, _gloffset_ConvolutionFilter2D }, + { 9068, _gloffset_ConvolutionParameteriv }, + { 9528, _gloffset_ConvolutionParameterfv }, { 21275, _gloffset_GetSeparableFilter }, { 24860, _gloffset_SeparableFilter2D }, { 25723, _gloffset_ConvolutionParameteri }, { 25891, _gloffset_ConvolutionParameterf }, { 27605, _gloffset_GetConvolutionParameterfv }, - { 28462, _gloffset_GetConvolutionFilter }, - { 30925, _gloffset_CopyConvolutionFilter2D }, + { 28494, _gloffset_GetConvolutionFilter }, + { 31009, _gloffset_CopyConvolutionFilter2D }, /* from GL_EXT_copy_texture */ - { 15526, _gloffset_CopyTexSubImage3D }, - { 17233, _gloffset_CopyTexImage2D }, + { 15538, _gloffset_CopyTexSubImage3D }, + { 17207, _gloffset_CopyTexImage2D }, { 25331, _gloffset_CopyTexImage1D }, - { 28143, _gloffset_CopyTexSubImage2D }, - { 30563, _gloffset_CopyTexSubImage1D }, + { 28175, _gloffset_CopyTexSubImage2D }, + { 30647, _gloffset_CopyTexSubImage1D }, /* from GL_EXT_draw_range_elements */ - { 9834, _gloffset_DrawRangeElements }, + { 9865, _gloffset_DrawRangeElements }, /* from GL_EXT_histogram */ - { 856, _gloffset_Histogram }, - { 3598, _gloffset_ResetHistogram }, - { 10317, _gloffset_GetMinmax }, - { 15860, _gloffset_GetHistogramParameterfv }, + { 895, _gloffset_Histogram }, + { 3676, _gloffset_ResetHistogram }, + { 10370, _gloffset_GetMinmax }, + { 15872, _gloffset_GetHistogramParameterfv }, { 25256, _gloffset_GetMinmaxParameteriv }, { 27495, _gloffset_ResetMinmax }, - { 28359, _gloffset_GetHistogramParameteriv }, - { 29528, _gloffset_GetHistogram }, - { 32152, _gloffset_Minmax }, - { 33774, _gloffset_GetMinmaxParameterfv }, + { 28391, _gloffset_GetHistogramParameteriv }, + { 29612, _gloffset_GetHistogram }, + { 32236, _gloffset_Minmax }, + { 33886, _gloffset_GetMinmaxParameterfv }, /* from GL_EXT_paletted_texture */ - { 8697, _gloffset_ColorTable }, - { 15706, _gloffset_GetColorTable }, + { 8728, _gloffset_ColorTable }, + { 15718, _gloffset_GetColorTable }, { 23783, _gloffset_GetColorTableParameterfv }, { 25947, _gloffset_GetColorTableParameteriv }, /* from GL_EXT_subtexture */ - { 7408, _gloffset_TexSubImage1D }, - { 11021, _gloffset_TexSubImage2D }, + { 7439, _gloffset_TexSubImage1D }, + { 11074, _gloffset_TexSubImage2D }, /* from GL_EXT_texture3D */ - { 1826, _gloffset_TexImage3D }, + { 1865, _gloffset_TexImage3D }, { 23552, _gloffset_TexSubImage3D }, /* from GL_EXT_texture_object */ - { 3366, _gloffset_PrioritizeTextures }, - { 7857, _gloffset_AreTexturesResident }, - { 13975, _gloffset_GenTextures }, - { 16219, _gloffset_DeleteTextures }, + { 3444, _gloffset_PrioritizeTextures }, + { 7888, _gloffset_AreTexturesResident }, + { 14058, _gloffset_GenTextures }, + { 16231, _gloffset_DeleteTextures }, { 20242, _gloffset_IsTexture }, - { 30628, _gloffset_BindTexture }, + { 30712, _gloffset_BindTexture }, /* from GL_EXT_vertex_array */ { 25032, _gloffset_ArrayElement }, - { 31740, _gloffset_GetPointerv }, - { 33325, _gloffset_DrawArrays }, + { 31824, _gloffset_GetPointerv }, + { 33437, _gloffset_DrawArrays }, /* from GL_SGI_color_table */ - { 7975, _gloffset_ColorTableParameteriv }, - { 8697, _gloffset_ColorTable }, - { 15706, _gloffset_GetColorTable }, - { 15816, _gloffset_CopyColorTable }, + { 8006, _gloffset_ColorTableParameteriv }, + { 8728, _gloffset_ColorTable }, + { 15718, _gloffset_GetColorTable }, + { 15828, _gloffset_CopyColorTable }, { 20103, _gloffset_ColorTableParameterfv }, { 23783, _gloffset_GetColorTableParameterfv }, { 25947, _gloffset_GetColorTableParameteriv }, /* from GL_VERSION_1_3 */ - { 425, _gloffset_MultiTexCoord3sARB }, - { 657, _gloffset_ActiveTextureARB }, - { 4378, _gloffset_MultiTexCoord1fvARB }, - { 6474, _gloffset_MultiTexCoord3dARB }, - { 6519, _gloffset_MultiTexCoord2iARB }, - { 6643, _gloffset_MultiTexCoord2svARB }, - { 8653, _gloffset_MultiTexCoord2fARB }, - { 10726, _gloffset_MultiTexCoord3fvARB }, - { 11328, _gloffset_MultiTexCoord4sARB }, - { 12009, _gloffset_MultiTexCoord2dvARB }, - { 12416, _gloffset_MultiTexCoord1svARB }, - { 12817, _gloffset_MultiTexCoord3svARB }, - { 12878, _gloffset_MultiTexCoord4iARB }, - { 13679, _gloffset_MultiTexCoord3iARB }, - { 14549, _gloffset_MultiTexCoord1dARB }, - { 14781, _gloffset_MultiTexCoord3dvARB }, - { 16060, _gloffset_MultiTexCoord3ivARB }, - { 16105, _gloffset_MultiTexCoord2sARB }, - { 17603, _gloffset_MultiTexCoord4ivARB }, + { 464, _gloffset_MultiTexCoord3sARB }, + { 696, _gloffset_ActiveTextureARB }, + { 4451, _gloffset_MultiTexCoord1fvARB }, + { 6505, _gloffset_MultiTexCoord3dARB }, + { 6550, _gloffset_MultiTexCoord2iARB }, + { 6674, _gloffset_MultiTexCoord2svARB }, + { 8684, _gloffset_MultiTexCoord2fARB }, + { 10779, _gloffset_MultiTexCoord3fvARB }, + { 11381, _gloffset_MultiTexCoord4sARB }, + { 12062, _gloffset_MultiTexCoord2dvARB }, + { 12469, _gloffset_MultiTexCoord1svARB }, + { 12870, _gloffset_MultiTexCoord3svARB }, + { 12931, _gloffset_MultiTexCoord4iARB }, + { 13762, _gloffset_MultiTexCoord3iARB }, + { 14561, _gloffset_MultiTexCoord1dARB }, + { 14793, _gloffset_MultiTexCoord3dvARB }, + { 16072, _gloffset_MultiTexCoord3ivARB }, + { 16117, _gloffset_MultiTexCoord2sARB }, + { 17577, _gloffset_MultiTexCoord4ivARB }, { 19743, _gloffset_ClientActiveTextureARB }, { 22106, _gloffset_MultiTexCoord2dARB }, { 22543, _gloffset_MultiTexCoord4dvARB }, @@ -5550,13 +5554,13 @@ static const struct gl_function_remap MESA_alt_functions[] = { { 26541, _gloffset_MultiTexCoord4dARB }, { 26807, _gloffset_MultiTexCoord1sARB }, { 27011, _gloffset_MultiTexCoord1dvARB }, - { 27987, _gloffset_MultiTexCoord1ivARB }, - { 28080, _gloffset_MultiTexCoord2ivARB }, - { 28419, _gloffset_MultiTexCoord1iARB }, - { 29803, _gloffset_MultiTexCoord4svARB }, - { 30427, _gloffset_MultiTexCoord1fARB }, - { 30690, _gloffset_MultiTexCoord4fARB }, - { 33159, _gloffset_MultiTexCoord2fvARB }, + { 28019, _gloffset_MultiTexCoord1ivARB }, + { 28112, _gloffset_MultiTexCoord2ivARB }, + { 28451, _gloffset_MultiTexCoord1iARB }, + { 29887, _gloffset_MultiTexCoord4svARB }, + { 30511, _gloffset_MultiTexCoord1fARB }, + { 30774, _gloffset_MultiTexCoord4fARB }, + { 33271, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; @@ -5564,7 +5568,14 @@ static const struct gl_function_remap MESA_alt_functions[] = { #if defined(need_GL_3DFX_tbuffer) static const struct gl_function_remap GL_3DFX_tbuffer_functions[] = { - { 9555, -1 }, /* TbufferMask3DFX */ + { 9586, -1 }, /* TbufferMask3DFX */ + { -1, -1 } +}; +#endif + +#if defined(need_GL_AMD_draw_buffers_blend) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_AMD_draw_buffers_blend_functions[] = { { -1, -1 } }; #endif @@ -5656,7 +5667,7 @@ static const struct gl_function_remap GL_ARB_framebuffer_object_functions[] = { #if defined(need_GL_ARB_geometry_shader4) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_ARB_geometry_shader4_functions[] = { - { 12781, -1 }, /* FramebufferTextureLayer */ + { 12834, -1 }, /* FramebufferTextureLayer */ { -1, -1 } }; #endif @@ -5677,9 +5688,9 @@ static const struct gl_function_remap GL_ARB_map_buffer_range_functions[] = { #if defined(need_GL_ARB_matrix_palette) static const struct gl_function_remap GL_ARB_matrix_palette_functions[] = { - { 3849, -1 }, /* MatrixIndexusvARB */ - { 13500, -1 }, /* MatrixIndexuivARB */ - { 14936, -1 }, /* MatrixIndexPointerARB */ + { 3927, -1 }, /* MatrixIndexusvARB */ + { 13583, -1 }, /* MatrixIndexuivARB */ + { 14948, -1 }, /* MatrixIndexPointerARB */ { 20509, -1 }, /* CurrentPaletteMatrixARB */ { 23668, -1 }, /* MatrixIndexubvARB */ { -1, -1 } @@ -5779,16 +5790,16 @@ static const struct gl_function_remap GL_ARB_vertex_array_object_functions[] = { #if defined(need_GL_ARB_vertex_blend) static const struct gl_function_remap GL_ARB_vertex_blend_functions[] = { - { 2469, -1 }, /* WeightubvARB */ - { 6886, -1 }, /* WeightivARB */ - { 11431, -1 }, /* WeightPointerARB */ - { 14267, -1 }, /* WeightfvARB */ - { 18146, -1 }, /* WeightbvARB */ + { 2508, -1 }, /* WeightubvARB */ + { 6917, -1 }, /* WeightivARB */ + { 11484, -1 }, /* WeightPointerARB */ + { 14318, -1 }, /* WeightfvARB */ + { 18120, -1 }, /* WeightbvARB */ { 21739, -1 }, /* WeightusvARB */ { 24786, -1 }, /* VertexBlendARB */ - { 30511, -1 }, /* WeightsvARB */ - { 32616, -1 }, /* WeightdvARB */ - { 33359, -1 }, /* WeightuivARB */ + { 30595, -1 }, /* WeightsvARB */ + { 32661, -1 }, /* WeightdvARB */ + { 33471, -1 }, /* WeightuivARB */ { -1, -1 } }; #endif @@ -5858,7 +5869,7 @@ static const struct gl_function_remap GL_ATI_separate_stencil_functions[] = { #if defined(need_GL_EXT_blend_color) static const struct gl_function_remap GL_EXT_blend_color_functions[] = { - { 2728, _gloffset_BlendColor }, + { 2767, _gloffset_BlendColor }, { -1, -1 } }; #endif @@ -5879,15 +5890,15 @@ static const struct gl_function_remap GL_EXT_blend_func_separate_functions[] = { #if defined(need_GL_EXT_blend_minmax) static const struct gl_function_remap GL_EXT_blend_minmax_functions[] = { - { 11566, _gloffset_BlendEquation }, + { 11619, _gloffset_BlendEquation }, { -1, -1 } }; #endif #if defined(need_GL_EXT_color_subtable) static const struct gl_function_remap GL_EXT_color_subtable_functions[] = { - { 17546, _gloffset_ColorSubTable }, - { 32566, _gloffset_CopyColorSubTable }, + { 17520, _gloffset_ColorSubTable }, + { 32611, _gloffset_CopyColorSubTable }, { -1, -1 } }; #endif @@ -5901,29 +5912,29 @@ static const struct gl_function_remap GL_EXT_compiled_vertex_array_functions[] = #if defined(need_GL_EXT_convolution) static const struct gl_function_remap GL_EXT_convolution_functions[] = { - { 257, _gloffset_ConvolutionFilter1D }, - { 2527, _gloffset_CopyConvolutionFilter1D }, - { 4168, _gloffset_GetConvolutionParameteriv }, - { 8835, _gloffset_ConvolutionFilter2D }, - { 9037, _gloffset_ConvolutionParameteriv }, - { 9497, _gloffset_ConvolutionParameterfv }, + { 296, _gloffset_ConvolutionFilter1D }, + { 2566, _gloffset_CopyConvolutionFilter1D }, + { 4293, _gloffset_GetConvolutionParameteriv }, + { 8866, _gloffset_ConvolutionFilter2D }, + { 9068, _gloffset_ConvolutionParameteriv }, + { 9528, _gloffset_ConvolutionParameterfv }, { 21275, _gloffset_GetSeparableFilter }, { 24860, _gloffset_SeparableFilter2D }, { 25723, _gloffset_ConvolutionParameteri }, { 25891, _gloffset_ConvolutionParameterf }, { 27605, _gloffset_GetConvolutionParameterfv }, - { 28462, _gloffset_GetConvolutionFilter }, - { 30925, _gloffset_CopyConvolutionFilter2D }, + { 28494, _gloffset_GetConvolutionFilter }, + { 31009, _gloffset_CopyConvolutionFilter2D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_coordinate_frame) static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { - { 10865, -1 }, /* TangentPointerEXT */ - { 12936, -1 }, /* Binormal3ivEXT */ - { 13632, -1 }, /* Tangent3sEXT */ - { 15001, -1 }, /* Tangent3fvEXT */ + { 10918, -1 }, /* TangentPointerEXT */ + { 12989, -1 }, /* Binormal3ivEXT */ + { 13715, -1 }, /* Tangent3sEXT */ + { 15013, -1 }, /* Tangent3fvEXT */ { 19188, -1 }, /* Tangent3ivEXT */ { 19415, -1 }, /* Tangent3dvEXT */ { 20189, -1 }, /* Binormal3bvEXT */ @@ -5932,35 +5943,35 @@ static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { { 25795, -1 }, /* Binormal3sEXT */ { 26337, -1 }, /* Tangent3dEXT */ { 27284, -1 }, /* Binormal3svEXT */ - { 27885, -1 }, /* Binormal3fEXT */ - { 28793, -1 }, /* Binormal3dvEXT */ - { 30060, -1 }, /* Tangent3iEXT */ - { 31210, -1 }, /* Tangent3bvEXT */ - { 31775, -1 }, /* Tangent3bEXT */ - { 32339, -1 }, /* Binormal3fvEXT */ - { 33058, -1 }, /* BinormalPointerEXT */ - { 33539, -1 }, /* Tangent3svEXT */ - { 33976, -1 }, /* Binormal3bEXT */ - { 34153, -1 }, /* Binormal3iEXT */ + { 27917, -1 }, /* Binormal3fEXT */ + { 28825, -1 }, /* Binormal3dvEXT */ + { 30144, -1 }, /* Tangent3iEXT */ + { 31294, -1 }, /* Tangent3bvEXT */ + { 31859, -1 }, /* Tangent3bEXT */ + { 32384, -1 }, /* Binormal3fvEXT */ + { 33170, -1 }, /* BinormalPointerEXT */ + { 33651, -1 }, /* Tangent3svEXT */ + { 34088, -1 }, /* Binormal3bEXT */ + { 34265, -1 }, /* Binormal3iEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_copy_texture) static const struct gl_function_remap GL_EXT_copy_texture_functions[] = { - { 15526, _gloffset_CopyTexSubImage3D }, - { 17233, _gloffset_CopyTexImage2D }, + { 15538, _gloffset_CopyTexSubImage3D }, + { 17207, _gloffset_CopyTexImage2D }, { 25331, _gloffset_CopyTexImage1D }, - { 28143, _gloffset_CopyTexSubImage2D }, - { 30563, _gloffset_CopyTexSubImage1D }, + { 28175, _gloffset_CopyTexSubImage2D }, + { 30647, _gloffset_CopyTexSubImage1D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_cull_vertex) static const struct gl_function_remap GL_EXT_cull_vertex_functions[] = { - { 9186, -1 }, /* CullParameterdvEXT */ - { 12054, -1 }, /* CullParameterfvEXT */ + { 9217, -1 }, /* CullParameterdvEXT */ + { 12107, -1 }, /* CullParameterfvEXT */ { -1, -1 } }; #endif @@ -5988,7 +5999,7 @@ static const struct gl_function_remap GL_EXT_draw_instanced_functions[] = { #if defined(need_GL_EXT_draw_range_elements) static const struct gl_function_remap GL_EXT_draw_range_elements_functions[] = { - { 9834, _gloffset_DrawRangeElements }, + { 9865, _gloffset_DrawRangeElements }, { -1, -1 } }; #endif @@ -6037,23 +6048,23 @@ static const struct gl_function_remap GL_EXT_gpu_shader4_functions[] = { #if defined(need_GL_EXT_histogram) static const struct gl_function_remap GL_EXT_histogram_functions[] = { - { 856, _gloffset_Histogram }, - { 3598, _gloffset_ResetHistogram }, - { 10317, _gloffset_GetMinmax }, - { 15860, _gloffset_GetHistogramParameterfv }, + { 895, _gloffset_Histogram }, + { 3676, _gloffset_ResetHistogram }, + { 10370, _gloffset_GetMinmax }, + { 15872, _gloffset_GetHistogramParameterfv }, { 25256, _gloffset_GetMinmaxParameteriv }, { 27495, _gloffset_ResetMinmax }, - { 28359, _gloffset_GetHistogramParameteriv }, - { 29528, _gloffset_GetHistogram }, - { 32152, _gloffset_Minmax }, - { 33774, _gloffset_GetMinmaxParameterfv }, + { 28391, _gloffset_GetHistogramParameteriv }, + { 29612, _gloffset_GetHistogram }, + { 32236, _gloffset_Minmax }, + { 33886, _gloffset_GetMinmaxParameterfv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_index_func) static const struct gl_function_remap GL_EXT_index_func_functions[] = { - { 11840, -1 }, /* IndexFuncEXT */ + { 11893, -1 }, /* IndexFuncEXT */ { -1, -1 } }; #endif @@ -6090,8 +6101,8 @@ static const struct gl_function_remap GL_EXT_multisample_functions[] = { #if defined(need_GL_EXT_paletted_texture) static const struct gl_function_remap GL_EXT_paletted_texture_functions[] = { - { 8697, _gloffset_ColorTable }, - { 15706, _gloffset_GetColorTable }, + { 8728, _gloffset_ColorTable }, + { 15718, _gloffset_GetColorTable }, { 23783, _gloffset_GetColorTableParameterfv }, { 25947, _gloffset_GetColorTableParameteriv }, { -1, -1 } @@ -6102,8 +6113,8 @@ static const struct gl_function_remap GL_EXT_paletted_texture_functions[] = { static const struct gl_function_remap GL_EXT_pixel_transform_functions[] = { { 22508, -1 }, /* PixelTransformParameterfEXT */ { 22588, -1 }, /* PixelTransformParameteriEXT */ - { 31490, -1 }, /* PixelTransformParameterfvEXT */ - { 33022, -1 }, /* PixelTransformParameterivEXT */ + { 31574, -1 }, /* PixelTransformParameterfvEXT */ + { 33134, -1 }, /* PixelTransformParameterivEXT */ { -1, -1 } }; #endif @@ -6152,15 +6163,15 @@ static const struct gl_function_remap GL_EXT_stencil_two_side_functions[] = { #if defined(need_GL_EXT_subtexture) static const struct gl_function_remap GL_EXT_subtexture_functions[] = { - { 7408, _gloffset_TexSubImage1D }, - { 11021, _gloffset_TexSubImage2D }, + { 7439, _gloffset_TexSubImage1D }, + { 11074, _gloffset_TexSubImage2D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_texture3D) static const struct gl_function_remap GL_EXT_texture3D_functions[] = { - { 1826, _gloffset_TexImage3D }, + { 1865, _gloffset_TexImage3D }, { 23552, _gloffset_TexSubImage3D }, { -1, -1 } }; @@ -6182,19 +6193,19 @@ static const struct gl_function_remap GL_EXT_texture_integer_functions[] = { #if defined(need_GL_EXT_texture_object) static const struct gl_function_remap GL_EXT_texture_object_functions[] = { - { 3366, _gloffset_PrioritizeTextures }, - { 7857, _gloffset_AreTexturesResident }, - { 13975, _gloffset_GenTextures }, - { 16219, _gloffset_DeleteTextures }, + { 3444, _gloffset_PrioritizeTextures }, + { 7888, _gloffset_AreTexturesResident }, + { 14058, _gloffset_GenTextures }, + { 16231, _gloffset_DeleteTextures }, { 20242, _gloffset_IsTexture }, - { 30628, _gloffset_BindTexture }, + { 30712, _gloffset_BindTexture }, { -1, -1 } }; #endif #if defined(need_GL_EXT_texture_perturb_normal) static const struct gl_function_remap GL_EXT_texture_perturb_normal_functions[] = { - { 14217, -1 }, /* TextureNormalEXT */ + { 14268, -1 }, /* TextureNormalEXT */ { -1, -1 } }; #endif @@ -6217,8 +6228,8 @@ static const struct gl_function_remap GL_EXT_transform_feedback_functions[] = { /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_EXT_vertex_array_functions[] = { { 25032, _gloffset_ArrayElement }, - { 31740, _gloffset_GetPointerv }, - { 33325, _gloffset_DrawArrays }, + { 31824, _gloffset_GetPointerv }, + { 33437, _gloffset_DrawArrays }, { -1, -1 } }; #endif @@ -6226,19 +6237,19 @@ static const struct gl_function_remap GL_EXT_vertex_array_functions[] = { #if defined(need_GL_EXT_vertex_weighting) static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = { { 20290, -1 }, /* VertexWeightfvEXT */ - { 27828, -1 }, /* VertexWeightfEXT */ - { 29497, -1 }, /* VertexWeightPointerEXT */ + { 27860, -1 }, /* VertexWeightfEXT */ + { 29581, -1 }, /* VertexWeightPointerEXT */ { -1, -1 } }; #endif #if defined(need_GL_HP_image_transform) static const struct gl_function_remap GL_HP_image_transform_functions[] = { - { 2400, -1 }, /* GetImageTransformParameterfvHP */ - { 3815, -1 }, /* ImageTransformParameterfHP */ - { 10559, -1 }, /* ImageTransformParameterfvHP */ - { 12301, -1 }, /* ImageTransformParameteriHP */ - { 12671, -1 }, /* GetImageTransformParameterivHP */ + { 2439, -1 }, /* GetImageTransformParameterfvHP */ + { 3893, -1 }, /* ImageTransformParameterfHP */ + { 10612, -1 }, /* ImageTransformParameterfvHP */ + { 12354, -1 }, /* ImageTransformParameteriHP */ + { 12724, -1 }, /* GetImageTransformParameterivHP */ { 20354, -1 }, /* ImageTransformParameterivHP */ { -1, -1 } }; @@ -6253,14 +6264,14 @@ static const struct gl_function_remap GL_IBM_multimode_draw_arrays_functions[] = #if defined(need_GL_IBM_vertex_array_lists) static const struct gl_function_remap GL_IBM_vertex_array_lists_functions[] = { - { 4510, -1 }, /* SecondaryColorPointerListIBM */ - { 6340, -1 }, /* NormalPointerListIBM */ - { 8031, -1 }, /* FogCoordPointerListIBM */ - { 8372, -1 }, /* VertexPointerListIBM */ - { 12555, -1 }, /* ColorPointerListIBM */ - { 13739, -1 }, /* TexCoordPointerListIBM */ - { 14239, -1 }, /* IndexPointerListIBM */ - { 33717, -1 }, /* EdgeFlagPointerListIBM */ + { 4583, -1 }, /* SecondaryColorPointerListIBM */ + { 6371, -1 }, /* NormalPointerListIBM */ + { 8062, -1 }, /* FogCoordPointerListIBM */ + { 8403, -1 }, /* VertexPointerListIBM */ + { 12608, -1 }, /* ColorPointerListIBM */ + { 13822, -1 }, /* TexCoordPointerListIBM */ + { 14290, -1 }, /* IndexPointerListIBM */ + { 33829, -1 }, /* EdgeFlagPointerListIBM */ { -1, -1 } }; #endif @@ -6274,10 +6285,10 @@ static const struct gl_function_remap GL_INGR_blend_func_separate_functions[] = #if defined(need_GL_INTEL_parallel_arrays) static const struct gl_function_remap GL_INTEL_parallel_arrays_functions[] = { - { 13079, -1 }, /* VertexPointervINTEL */ - { 15953, -1 }, /* ColorPointervINTEL */ - { 30899, -1 }, /* NormalPointervINTEL */ - { 31422, -1 }, /* TexCoordPointervINTEL */ + { 13162, -1 }, /* VertexPointervINTEL */ + { 15965, -1 }, /* ColorPointervINTEL */ + { 30983, -1 }, /* NormalPointervINTEL */ + { 31506, -1 }, /* TexCoordPointervINTEL */ { -1, -1 } }; #endif @@ -6291,10 +6302,10 @@ static const struct gl_function_remap GL_MESA_resize_buffers_functions[] = { #if defined(need_GL_MESA_shader_debug) static const struct gl_function_remap GL_MESA_shader_debug_functions[] = { - { 1690, -1 }, /* GetDebugLogLengthMESA */ - { 3537, -1 }, /* ClearDebugLogMESA */ - { 4695, -1 }, /* GetDebugLogMESA */ - { 31933, -1 }, /* CreateDebugObjectMESA */ + { 1729, -1 }, /* GetDebugLogLengthMESA */ + { 3615, -1 }, /* ClearDebugLogMESA */ + { 4768, -1 }, /* GetDebugLogMESA */ + { 32017, -1 }, /* CreateDebugObjectMESA */ { -1, -1 } }; #endif @@ -6315,15 +6326,15 @@ static const struct gl_function_remap GL_NV_condtitional_render_functions[] = { #if defined(need_GL_NV_evaluators) static const struct gl_function_remap GL_NV_evaluators_functions[] = { - { 7070, -1 }, /* GetMapAttribParameterivNV */ - { 8803, -1 }, /* MapControlPointsNV */ - { 8902, -1 }, /* MapParameterfvNV */ - { 11004, -1 }, /* EvalMapsNV */ - { 17744, -1 }, /* GetMapAttribParameterfvNV */ - { 17961, -1 }, /* MapParameterivNV */ + { 7101, -1 }, /* GetMapAttribParameterivNV */ + { 8834, -1 }, /* MapControlPointsNV */ + { 8933, -1 }, /* MapParameterfvNV */ + { 11057, -1 }, /* EvalMapsNV */ + { 17718, -1 }, /* GetMapAttribParameterfvNV */ + { 17935, -1 }, /* MapParameterivNV */ { 25646, -1 }, /* GetMapParameterivNV */ { 26189, -1 }, /* GetMapParameterfvNV */ - { 30214, -1 }, /* GetMapControlPointsNV */ + { 30298, -1 }, /* GetMapControlPointsNV */ { -1, -1 } }; #endif @@ -6365,8 +6376,8 @@ static const struct gl_function_remap GL_NV_register_combiners_functions[] = { #if defined(need_GL_NV_register_combiners2) static const struct gl_function_remap GL_NV_register_combiners2_functions[] = { - { 16372, -1 }, /* CombinerStageParameterfvNV */ - { 16768, -1 }, /* GetCombinerStageParameterfvNV */ + { 16384, -1 }, /* CombinerStageParameterfvNV */ + { 16780, -1 }, /* GetCombinerStageParameterfvNV */ { -1, -1 } }; #endif @@ -6401,23 +6412,23 @@ static const struct gl_function_remap GL_OES_EGL_image_functions[] = { #if defined(need_GL_PGI_misc_hints) static const struct gl_function_remap GL_PGI_misc_hints_functions[] = { - { 9023, -1 }, /* HintPGI */ + { 9054, -1 }, /* HintPGI */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_detail_texture) static const struct gl_function_remap GL_SGIS_detail_texture_functions[] = { - { 16741, -1 }, /* GetDetailTexFuncSGIS */ - { 17178, -1 }, /* DetailTexFuncSGIS */ + { 16753, -1 }, /* GetDetailTexFuncSGIS */ + { 17152, -1 }, /* DetailTexFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_fog_function) static const struct gl_function_remap GL_SGIS_fog_function_functions[] = { - { 28125, -1 }, /* FogFuncSGIS */ - { 28846, -1 }, /* GetFogFuncSGIS */ + { 28157, -1 }, /* FogFuncSGIS */ + { 28930, -1 }, /* GetFogFuncSGIS */ { -1, -1 } }; #endif @@ -6445,7 +6456,7 @@ static const struct gl_function_remap GL_SGIS_point_parameters_functions[] = { #if defined(need_GL_SGIS_sharpen_texture) static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = { - { 7131, -1 }, /* GetSharpenTexFuncSGIS */ + { 7162, -1 }, /* GetSharpenTexFuncSGIS */ { 22894, -1 }, /* SharpenTexFuncSGIS */ { -1, -1 } }; @@ -6453,66 +6464,66 @@ static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = { #if defined(need_GL_SGIS_texture4D) static const struct gl_function_remap GL_SGIS_texture4D_functions[] = { - { 995, -1 }, /* TexImage4DSGIS */ - { 16288, -1 }, /* TexSubImage4DSGIS */ + { 1034, -1 }, /* TexImage4DSGIS */ + { 16300, -1 }, /* TexSubImage4DSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_texture_color_mask) static const struct gl_function_remap GL_SGIS_texture_color_mask_functions[] = { - { 15659, -1 }, /* TextureColorMaskSGIS */ + { 15671, -1 }, /* TextureColorMaskSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_texture_filter4) static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = { - { 7308, -1 }, /* GetTexFilterFuncSGIS */ - { 16914, -1 }, /* TexFilterFuncSGIS */ + { 7339, -1 }, /* GetTexFilterFuncSGIS */ + { 16926, -1 }, /* TexFilterFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_async) static const struct gl_function_remap GL_SGIX_async_functions[] = { - { 3463, -1 }, /* AsyncMarkerSGIX */ - { 4649, -1 }, /* FinishAsyncSGIX */ - { 5721, -1 }, /* PollAsyncSGIX */ + { 3541, -1 }, /* AsyncMarkerSGIX */ + { 4722, -1 }, /* FinishAsyncSGIX */ + { 5794, -1 }, /* PollAsyncSGIX */ { 23103, -1 }, /* DeleteAsyncMarkersSGIX */ { 23158, -1 }, /* IsAsyncMarkerSGIX */ - { 33514, -1 }, /* GenAsyncMarkersSGIX */ + { 33626, -1 }, /* GenAsyncMarkersSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_flush_raster) static const struct gl_function_remap GL_SGIX_flush_raster_functions[] = { - { 7685, -1 }, /* FlushRasterSGIX */ + { 7716, -1 }, /* FlushRasterSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_fragment_lighting) static const struct gl_function_remap GL_SGIX_fragment_lighting_functions[] = { - { 2698, -1 }, /* FragmentMaterialfvSGIX */ - { 5625, -1 }, /* FragmentLightiSGIX */ - { 8439, -1 }, /* FragmentMaterialfSGIX */ - { 8576, -1 }, /* GetFragmentLightivSGIX */ - { 9449, -1 }, /* FragmentLightModeliSGIX */ - { 11067, -1 }, /* FragmentLightivSGIX */ - { 11374, -1 }, /* GetFragmentMaterialivSGIX */ - { 16681, -1 }, /* GetFragmentMaterialfvSGIX */ + { 2737, -1 }, /* FragmentMaterialfvSGIX */ + { 5698, -1 }, /* FragmentLightiSGIX */ + { 8470, -1 }, /* FragmentMaterialfSGIX */ + { 8607, -1 }, /* GetFragmentLightivSGIX */ + { 9480, -1 }, /* FragmentLightModeliSGIX */ + { 11120, -1 }, /* FragmentLightivSGIX */ + { 11427, -1 }, /* GetFragmentMaterialivSGIX */ + { 16693, -1 }, /* GetFragmentMaterialfvSGIX */ { 20159, -1 }, /* FragmentLightModelfSGIX */ { 20477, -1 }, /* FragmentColorMaterialSGIX */ { 20894, -1 }, /* FragmentMaterialiSGIX */ { 22189, -1 }, /* LightEnviSGIX */ { 23875, -1 }, /* FragmentLightModelfvSGIX */ { 24210, -1 }, /* FragmentLightfvSGIX */ - { 29230, -1 }, /* FragmentLightModelivSGIX */ - { 29379, -1 }, /* FragmentLightfSGIX */ - { 32309, -1 }, /* GetFragmentLightfvSGIX */ - { 33997, -1 }, /* FragmentMaterialivSGIX */ + { 29314, -1 }, /* FragmentLightModelivSGIX */ + { 29463, -1 }, /* FragmentLightfSGIX */ + { 32354, -1 }, /* GetFragmentLightfvSGIX */ + { 34109, -1 }, /* FragmentMaterialivSGIX */ { -1, -1 } }; #endif @@ -6526,18 +6537,18 @@ static const struct gl_function_remap GL_SGIX_framezoom_functions[] = { #if defined(need_GL_SGIX_igloo_interface) static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = { - { 29687, -1 }, /* IglooInterfaceSGIX */ + { 29771, -1 }, /* IglooInterfaceSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_instruments) static const struct gl_function_remap GL_SGIX_instruments_functions[] = { - { 2878, -1 }, /* ReadInstrumentsSGIX */ - { 6904, -1 }, /* PollInstrumentsSGIX */ - { 10925, -1 }, /* GetInstrumentsSGIX */ - { 13337, -1 }, /* StartInstrumentsSGIX */ - { 16406, -1 }, /* StopInstrumentsSGIX */ + { 2917, -1 }, /* ReadInstrumentsSGIX */ + { 6935, -1 }, /* PollInstrumentsSGIX */ + { 10978, -1 }, /* GetInstrumentsSGIX */ + { 13420, -1 }, /* StartInstrumentsSGIX */ + { 16418, -1 }, /* StopInstrumentsSGIX */ { 18383, -1 }, /* InstrumentsBufferSGIX */ { -1, -1 } }; @@ -6545,12 +6556,12 @@ static const struct gl_function_remap GL_SGIX_instruments_functions[] = { #if defined(need_GL_SGIX_list_priority) static const struct gl_function_remap GL_SGIX_list_priority_functions[] = { - { 1226, -1 }, /* ListParameterfSGIX */ - { 3165, -1 }, /* GetListParameterfvSGIX */ - { 18274, -1 }, /* ListParameteriSGIX */ + { 1265, -1 }, /* ListParameterfSGIX */ + { 3243, -1 }, /* GetListParameterfvSGIX */ + { 18248, -1 }, /* ListParameteriSGIX */ { 19365, -1 }, /* ListParameterfvSGIX */ { 21560, -1 }, /* ListParameterivSGIX */ - { 33558, -1 }, /* GetListParameterivSGIX */ + { 33670, -1 }, /* GetListParameterivSGIX */ { -1, -1 } }; #endif @@ -6564,27 +6575,27 @@ static const struct gl_function_remap GL_SGIX_pixel_texture_functions[] = { #if defined(need_GL_SGIX_polynomial_ffd) static const struct gl_function_remap GL_SGIX_polynomial_ffd_functions[] = { - { 3761, -1 }, /* LoadIdentityDeformationMapSGIX */ - { 16506, -1 }, /* DeformSGIX */ + { 2959, -1 }, /* DeformationMap3dSGIX */ + { 3839, -1 }, /* LoadIdentityDeformationMapSGIX */ + { 16518, -1 }, /* DeformSGIX */ { 25144, -1 }, /* DeformationMap3fSGIX */ - { 32197, -1 }, /* DeformationMap3dSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_reference_plane) static const struct gl_function_remap GL_SGIX_reference_plane_functions[] = { - { 15210, -1 }, /* ReferencePlaneSGIX */ + { 15222, -1 }, /* ReferencePlaneSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_sprite) static const struct gl_function_remap GL_SGIX_sprite_functions[] = { - { 9947, -1 }, /* SpriteParameterfvSGIX */ + { 9978, -1 }, /* SpriteParameterfvSGIX */ { 21349, -1 }, /* SpriteParameteriSGIX */ { 27529, -1 }, /* SpriteParameterfSGIX */ - { 30357, -1 }, /* SpriteParameterivSGIX */ + { 30441, -1 }, /* SpriteParameterivSGIX */ { -1, -1 } }; #endif @@ -6598,10 +6609,10 @@ static const struct gl_function_remap GL_SGIX_tag_sample_buffer_functions[] = { #if defined(need_GL_SGI_color_table) static const struct gl_function_remap GL_SGI_color_table_functions[] = { - { 7975, _gloffset_ColorTableParameteriv }, - { 8697, _gloffset_ColorTable }, - { 15706, _gloffset_GetColorTable }, - { 15816, _gloffset_CopyColorTable }, + { 8006, _gloffset_ColorTableParameteriv }, + { 8728, _gloffset_ColorTable }, + { 15718, _gloffset_GetColorTable }, + { 15828, _gloffset_CopyColorTable }, { 20103, _gloffset_ColorTableParameterfv }, { 23783, _gloffset_GetColorTableParameterfv }, { 25947, _gloffset_GetColorTableParameteriv }, @@ -6611,20 +6622,20 @@ static const struct gl_function_remap GL_SGI_color_table_functions[] = { #if defined(need_GL_SUNX_constant_data) static const struct gl_function_remap GL_SUNX_constant_data_functions[] = { - { 32287, -1 }, /* FinishTextureSUNX */ + { 32332, -1 }, /* FinishTextureSUNX */ { -1, -1 } }; #endif #if defined(need_GL_SUN_global_alpha) static const struct gl_function_remap GL_SUN_global_alpha_functions[] = { - { 3484, -1 }, /* GlobalAlphaFactorubSUN */ - { 5002, -1 }, /* GlobalAlphaFactoriSUN */ - { 6929, -1 }, /* GlobalAlphaFactordSUN */ - { 10031, -1 }, /* GlobalAlphaFactoruiSUN */ - { 10516, -1 }, /* GlobalAlphaFactorbSUN */ - { 13652, -1 }, /* GlobalAlphaFactorfSUN */ - { 13816, -1 }, /* GlobalAlphaFactorusSUN */ + { 3562, -1 }, /* GlobalAlphaFactorubSUN */ + { 5075, -1 }, /* GlobalAlphaFactoriSUN */ + { 6960, -1 }, /* GlobalAlphaFactordSUN */ + { 10062, -1 }, /* GlobalAlphaFactoruiSUN */ + { 10569, -1 }, /* GlobalAlphaFactorbSUN */ + { 13735, -1 }, /* GlobalAlphaFactorfSUN */ + { 13899, -1 }, /* GlobalAlphaFactorusSUN */ { 23470, -1 }, /* GlobalAlphaFactorsSUN */ { -1, -1 } }; @@ -6632,50 +6643,50 @@ static const struct gl_function_remap GL_SUN_global_alpha_functions[] = { #if defined(need_GL_SUN_mesh_array) static const struct gl_function_remap GL_SUN_mesh_array_functions[] = { - { 30148, -1 }, /* DrawMeshArraysSUN */ + { 30232, -1 }, /* DrawMeshArraysSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_triangle_list) static const struct gl_function_remap GL_SUN_triangle_list_functions[] = { - { 4623, -1 }, /* ReplacementCodeubSUN */ - { 6688, -1 }, /* ReplacementCodeubvSUN */ + { 4696, -1 }, /* ReplacementCodeubSUN */ + { 6719, -1 }, /* ReplacementCodeubvSUN */ { 19824, -1 }, /* ReplacementCodeusvSUN */ { 20012, -1 }, /* ReplacementCodePointerSUN */ { 22253, -1 }, /* ReplacementCodeuiSUN */ { 23132, -1 }, /* ReplacementCodeusSUN */ - { 30814, -1 }, /* ReplacementCodeuivSUN */ + { 30898, -1 }, /* ReplacementCodeuivSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_vertex) static const struct gl_function_remap GL_SUN_vertex_functions[] = { - { 1100, -1 }, /* ReplacementCodeuiColor3fVertex3fvSUN */ - { 1298, -1 }, /* TexCoord4fColor4fNormal3fVertex4fvSUN */ - { 1552, -1 }, /* TexCoord2fColor4ubVertex3fvSUN */ - { 1921, -1 }, /* ReplacementCodeuiVertex3fvSUN */ - { 2055, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */ - { 2634, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */ - { 2974, -1 }, /* Color4ubVertex3fvSUN */ - { 4807, -1 }, /* Color4ubVertex3fSUN */ - { 4930, -1 }, /* TexCoord2fVertex3fSUN */ - { 5348, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */ - { 5825, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */ - { 6583, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */ - { 7363, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ - { 7722, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ - { 9248, -1 }, /* Color3fVertex3fSUN */ - { 10425, -1 }, /* Color3fVertex3fvSUN */ - { 10890, -1 }, /* Color4fNormal3fVertex3fvSUN */ - { 11719, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ - { 13200, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ - { 14826, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ - { 15352, -1 }, /* TexCoord2fColor3fVertex3fSUN */ - { 16431, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ - { 16873, -1 }, /* Color4ubVertex2fvSUN */ - { 17203, -1 }, /* Normal3fVertex3fSUN */ + { 1139, -1 }, /* ReplacementCodeuiColor3fVertex3fvSUN */ + { 1337, -1 }, /* TexCoord4fColor4fNormal3fVertex4fvSUN */ + { 1591, -1 }, /* TexCoord2fColor4ubVertex3fvSUN */ + { 1960, -1 }, /* ReplacementCodeuiVertex3fvSUN */ + { 2094, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */ + { 2673, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */ + { 3052, -1 }, /* Color4ubVertex3fvSUN */ + { 4880, -1 }, /* Color4ubVertex3fSUN */ + { 5003, -1 }, /* TexCoord2fVertex3fSUN */ + { 5421, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */ + { 5898, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */ + { 6614, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */ + { 7394, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ + { 7753, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ + { 9279, -1 }, /* Color3fVertex3fSUN */ + { 10478, -1 }, /* Color3fVertex3fvSUN */ + { 10943, -1 }, /* Color4fNormal3fVertex3fvSUN */ + { 11772, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ + { 13283, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ + { 14838, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ + { 15364, -1 }, /* TexCoord2fColor3fVertex3fSUN */ + { 16443, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ + { 16885, -1 }, /* Color4ubVertex2fvSUN */ + { 17177, -1 }, /* Normal3fVertex3fSUN */ { 18324, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ { 18676, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ { 18983, -1 }, /* TexCoord2fNormal3fVertex3fSUN */ @@ -6687,11 +6698,11 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = { { 23692, -1 }, /* Color4fNormal3fVertex3fSUN */ { 24693, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ { 26850, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ - { 28241, -1 }, /* TexCoord4fVertex4fSUN */ - { 28687, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ - { 29074, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ - { 29201, -1 }, /* TexCoord4fVertex4fvSUN */ - { 29935, -1 }, /* ReplacementCodeuiVertex3fSUN */ + { 28273, -1 }, /* TexCoord4fVertex4fSUN */ + { 28719, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ + { 29158, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ + { 29285, -1 }, /* TexCoord4fVertex4fvSUN */ + { 30019, -1 }, /* ReplacementCodeuiVertex3fSUN */ { -1, -1 } }; #endif @@ -6699,25 +6710,25 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = { #if defined(need_GL_VERSION_1_3) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_VERSION_1_3_functions[] = { - { 425, _gloffset_MultiTexCoord3sARB }, - { 657, _gloffset_ActiveTextureARB }, - { 4378, _gloffset_MultiTexCoord1fvARB }, - { 6474, _gloffset_MultiTexCoord3dARB }, - { 6519, _gloffset_MultiTexCoord2iARB }, - { 6643, _gloffset_MultiTexCoord2svARB }, - { 8653, _gloffset_MultiTexCoord2fARB }, - { 10726, _gloffset_MultiTexCoord3fvARB }, - { 11328, _gloffset_MultiTexCoord4sARB }, - { 12009, _gloffset_MultiTexCoord2dvARB }, - { 12416, _gloffset_MultiTexCoord1svARB }, - { 12817, _gloffset_MultiTexCoord3svARB }, - { 12878, _gloffset_MultiTexCoord4iARB }, - { 13679, _gloffset_MultiTexCoord3iARB }, - { 14549, _gloffset_MultiTexCoord1dARB }, - { 14781, _gloffset_MultiTexCoord3dvARB }, - { 16060, _gloffset_MultiTexCoord3ivARB }, - { 16105, _gloffset_MultiTexCoord2sARB }, - { 17603, _gloffset_MultiTexCoord4ivARB }, + { 464, _gloffset_MultiTexCoord3sARB }, + { 696, _gloffset_ActiveTextureARB }, + { 4451, _gloffset_MultiTexCoord1fvARB }, + { 6505, _gloffset_MultiTexCoord3dARB }, + { 6550, _gloffset_MultiTexCoord2iARB }, + { 6674, _gloffset_MultiTexCoord2svARB }, + { 8684, _gloffset_MultiTexCoord2fARB }, + { 10779, _gloffset_MultiTexCoord3fvARB }, + { 11381, _gloffset_MultiTexCoord4sARB }, + { 12062, _gloffset_MultiTexCoord2dvARB }, + { 12469, _gloffset_MultiTexCoord1svARB }, + { 12870, _gloffset_MultiTexCoord3svARB }, + { 12931, _gloffset_MultiTexCoord4iARB }, + { 13762, _gloffset_MultiTexCoord3iARB }, + { 14561, _gloffset_MultiTexCoord1dARB }, + { 14793, _gloffset_MultiTexCoord3dvARB }, + { 16072, _gloffset_MultiTexCoord3ivARB }, + { 16117, _gloffset_MultiTexCoord2sARB }, + { 17577, _gloffset_MultiTexCoord4ivARB }, { 19743, _gloffset_ClientActiveTextureARB }, { 22106, _gloffset_MultiTexCoord2dARB }, { 22543, _gloffset_MultiTexCoord4dvARB }, @@ -6726,13 +6737,13 @@ static const struct gl_function_remap GL_VERSION_1_3_functions[] = { { 26541, _gloffset_MultiTexCoord4dARB }, { 26807, _gloffset_MultiTexCoord1sARB }, { 27011, _gloffset_MultiTexCoord1dvARB }, - { 27987, _gloffset_MultiTexCoord1ivARB }, - { 28080, _gloffset_MultiTexCoord2ivARB }, - { 28419, _gloffset_MultiTexCoord1iARB }, - { 29803, _gloffset_MultiTexCoord4svARB }, - { 30427, _gloffset_MultiTexCoord1fARB }, - { 30690, _gloffset_MultiTexCoord4fARB }, - { 33159, _gloffset_MultiTexCoord2fvARB }, + { 28019, _gloffset_MultiTexCoord1ivARB }, + { 28112, _gloffset_MultiTexCoord2ivARB }, + { 28451, _gloffset_MultiTexCoord1iARB }, + { 29887, _gloffset_MultiTexCoord4svARB }, + { 30511, _gloffset_MultiTexCoord1fARB }, + { 30774, _gloffset_MultiTexCoord4fARB }, + { 33271, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; #endif diff --git a/mesalib/src/mesa/program/prog_statevars.c b/mesalib/src/mesa/program/prog_statevars.c index 1fd26f44d..d94d7fe5d 100644 --- a/mesalib/src/mesa/program/prog_statevars.c +++ b/mesalib/src/mesa/program/prog_statevars.c @@ -602,11 +602,11 @@ _mesa_fetch_state(struct gl_context *ctx, const gl_state_index state[], value[0] = 1.0F; value[1] = 0.0F; value[2] = -1.0F; - value[3] = (GLfloat) (ctx->DrawBuffer->Height - 1); + value[3] = (GLfloat) ctx->DrawBuffer->Height; } else { /* Flipping Y upside down (XY) followed by identity (ZW). */ value[0] = -1.0F; - value[1] = (GLfloat) (ctx->DrawBuffer->Height - 1); + value[1] = (GLfloat) ctx->DrawBuffer->Height; value[2] = 1.0F; value[3] = 0.0F; } diff --git a/mesalib/src/mesa/program/prog_statevars.h b/mesalib/src/mesa/program/prog_statevars.h index 9fe8d81b3..04af3f4cf 100644 --- a/mesalib/src/mesa/program/prog_statevars.h +++ b/mesalib/src/mesa/program/prog_statevars.h @@ -120,7 +120,7 @@ typedef enum gl_state_index_ { STATE_PT_BIAS, /**< Pixel transfer RGBA bias */ STATE_SHADOW_AMBIENT, /**< ARB_shadow_ambient fail value; token[2] is texture unit index */ STATE_FB_SIZE, /**< (width-1, height-1, 0, 0) */ - STATE_FB_WPOS_Y_TRANSFORM, /**< (1, 0, -1, height-1) if a FBO is bound, (-1, height-1, 1, 0) otherwise */ + STATE_FB_WPOS_Y_TRANSFORM, /**< (1, 0, -1, height) if a FBO is bound, (-1, height, 1, 0) otherwise */ STATE_ROT_MATRIX_0, /**< ATI_envmap_bumpmap, rot matrix row 0 */ STATE_ROT_MATRIX_1, /**< ATI_envmap_bumpmap, rot matrix row 1 */ STATE_INTERNAL_DRIVER /* first available state index for drivers (must be last) */ diff --git a/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c b/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c index c07739f9d..a41e5b16a 100644 --- a/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c +++ b/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c @@ -752,37 +752,15 @@ compile_instruction( /** - * Emit the TGSI instructions to adjust the WPOS pixel center convention - * Basically, add (adjX, adjY) to the fragment position. - */ -static void -emit_adjusted_wpos( struct st_translate *t, - const struct gl_program *program, - GLfloat adjX, GLfloat adjY) -{ - struct ureg_program *ureg = t->ureg; - struct ureg_dst wpos_temp = ureg_DECL_temporary(ureg); - struct ureg_src wpos_input = t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]]; - - /* Note that we bias X and Y and pass Z and W through unchanged. - * The shader might also use gl_FragCoord.w and .z. - */ - ureg_ADD(ureg, wpos_temp, wpos_input, - ureg_imm4f(ureg, adjX, adjY, 0.0f, 0.0f)); - - t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]] = ureg_src(wpos_temp); -} - - -/** - * Emit the TGSI instructions for inverting the WPOS y coordinate. + * Emit the TGSI instructions for inverting and adjusting WPOS. * This code is unavoidable because it also depends on whether * a FBO is bound (STATE_FB_WPOS_Y_TRANSFORM). */ static void -emit_wpos_inversion( struct st_translate *t, - const struct gl_program *program, - boolean invert) +emit_wpos_adjustment( struct st_translate *t, + const struct gl_program *program, + boolean invert, + GLfloat adjX, GLfloat adjY[2]) { struct ureg_program *ureg = t->ureg; @@ -801,18 +779,38 @@ emit_wpos_inversion( struct st_translate *t, wposTransformState); struct ureg_src wpostrans = ureg_DECL_constant( ureg, wposTransConst ); - struct ureg_dst wpos_temp; + struct ureg_dst wpos_temp = ureg_DECL_temporary( ureg ); struct ureg_src wpos_input = t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]]; - /* MOV wpos_temp, input[wpos] - */ - if (wpos_input.File == TGSI_FILE_TEMPORARY) - wpos_temp = ureg_dst(wpos_input); - else { - wpos_temp = ureg_DECL_temporary( ureg ); + /* First, apply the coordinate shift: */ + if (adjX || adjY[0] || adjY[1]) { + if (adjY[0] != adjY[1]) { + /* Adjust the y coordinate by adjY[1] or adjY[0] respectively + * depending on whether inversion is actually going to be applied + * or not, which is determined by testing against the inversion + * state variable used below, which will be either +1 or -1. + */ + struct ureg_dst adj_temp = ureg_DECL_temporary(ureg); + + ureg_CMP(ureg, adj_temp, + ureg_scalar(wpostrans, invert ? 2 : 0), + ureg_imm4f(ureg, adjX, adjY[0], 0.0f, 0.0f), + ureg_imm4f(ureg, adjX, adjY[1], 0.0f, 0.0f)); + ureg_ADD(ureg, wpos_temp, wpos_input, ureg_src(adj_temp)); + } else { + ureg_ADD(ureg, wpos_temp, wpos_input, + ureg_imm4f(ureg, adjX, adjY[0], 0.0f, 0.0f)); + } + wpos_input = ureg_src(wpos_temp); + } else { + /* MOV wpos_temp, input[wpos] + */ ureg_MOV( ureg, wpos_temp, wpos_input ); } + /* Now the conditional y flip: STATE_FB_WPOS_Y_TRANSFORM.xy/zw will be + * inversion/identity, or the other way around if we're drawing to an FBO. + */ if (invert) { /* MAD wpos_temp.y, wpos_input, wpostrans.xxxx, wpostrans.yyyy */ @@ -849,8 +847,37 @@ emit_wpos(struct st_context *st, const struct gl_fragment_program *fp = (const struct gl_fragment_program *) program; struct pipe_screen *pscreen = st->pipe->screen; + GLfloat adjX = 0.0f; + GLfloat adjY[2] = { 0.0f, 0.0f }; boolean invert = FALSE; + /* Query the pixel center conventions supported by the pipe driver and set + * adjX, adjY to help out if it cannot handle the requested one internally. + * + * The bias of the y-coordinate depends on whether y-inversion takes place + * (adjY[1]) or not (adjY[0]), which is in turn dependent on whether we are + * drawing to an FBO (causes additional inversion), and whether the the pipe + * driver origin and the requested origin differ (the latter condition is + * stored in the 'invert' variable). + * + * For height = 100 (i = integer, h = half-integer, l = lower, u = upper): + * + * center shift only: + * i -> h: +0.5 + * h -> i: -0.5 + * + * inversion only: + * l,i -> u,i: ( 0.0 + 1.0) * -1 + 100 = 99 + * l,h -> u,h: ( 0.5 + 0.0) * -1 + 100 = 99.5 + * u,i -> l,i: (99.0 + 1.0) * -1 + 100 = 0 + * u,h -> l,h: (99.5 + 0.0) * -1 + 100 = 0.5 + * + * inversion and center shift: + * l,i -> u,h: ( 0.0 + 0.5) * -1 + 100 = 99.5 + * l,h -> u,i: ( 0.5 + 0.5) * -1 + 100 = 99 + * u,i -> l,h: (99.0 + 0.5) * -1 + 100 = 0.5 + * u,h -> l,i: (99.5 + 0.5) * -1 + 100 = 0 + */ if (fp->OriginUpperLeft) { /* Fragment shader wants origin in upper-left */ if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT)) { @@ -878,12 +905,17 @@ emit_wpos(struct st_context *st, if (fp->PixelCenterInteger) { /* Fragment shader wants pixel center integer */ - if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) + if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) { /* the driver supports pixel center integer */ + adjY[1] = 1.0f; ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER); - else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) + } + else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) { /* the driver supports pixel center half integer, need to bias X,Y */ - emit_adjusted_wpos(t, program, 0.5f, invert ? 0.5f : -0.5f); + adjX = -0.5f; + adjY[0] = -0.5f; + adjY[1] = 0.5f; + } else assert(0); } @@ -894,8 +926,8 @@ emit_wpos(struct st_context *st, } else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) { /* the driver supports pixel center integer, need to bias X,Y */ + adjX = adjY[0] = adjY[1] = 0.5f; ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER); - emit_adjusted_wpos(t, program, 0.5f, invert ? -0.5f : 0.5f); } else assert(0); @@ -903,7 +935,7 @@ emit_wpos(struct st_context *st, /* we invert after adjustment so that we avoid the MOV to temporary, * and reuse the adjustment ADD instead */ - emit_wpos_inversion(t, program, invert); + emit_wpos_adjustment(t, program, invert, adjX, adjY); } -- cgit v1.2.3