diff options
Diffstat (limited to 'src/mesa/main')
108 files changed, 5145 insertions, 4559 deletions
diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml index 4dc0b0d485..50446a9093 100644 --- a/src/mesa/main/APIspec.xml +++ b/src/mesa/main/APIspec.xml @@ -2004,6 +2004,14 @@ <value name="GL_UNSIGNED_INT_24_8_OES"/> </desc> </desc> + + <desc name="format" category="EXT_texture_format_BGRA8888"> + <value name="GL_BGRA_EXT"/> + + <desc name="type" error="GL_INVALID_OPERATION"> + <value name="GL_UNSIGNED_BYTE"/> + </desc> + </desc> </template> <template name="BindTexture"> @@ -3536,7 +3544,7 @@ <api name="mesa" implementation="true"> <category name="MESA"/> - <function name="Color4f" default_prefix="_vbo_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/> + <function name="Color4f" default_prefix="_es_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/> <function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/> <function name="CullFace" template="CullFace"/> @@ -3554,8 +3562,8 @@ <function name="LineWidth" template="LineWidth" gltype="GLfloat"/> - <function name="Materialf" default_prefix="_vbo_" template="Material" gltype="GLfloat" expand_vector="true"/> - <function name="Materialfv" default_prefix="_vbo_" template="Material" gltype="GLfloat"/> + <function name="Materialf" default_prefix="_es_" template="Material" gltype="GLfloat" expand_vector="true"/> + <function name="Materialfv" default_prefix="_es_" template="Material" gltype="GLfloat"/> <function name="PointSize" template="PointSize" gltype="GLfloat"/> <function name="PointSizePointer" template="PointSizePointer"/> @@ -3582,6 +3590,7 @@ <function name="ClearColor" template="ClearColor" gltype="GLclampf"/> <function name="ClearStencil" template="ClearStencil"/> <function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/> + <function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/> <function name="StencilMask" template="StencilMask"/> <function name="StencilMaskSeparate" template="StencilMaskSeparate"/> @@ -3626,6 +3635,7 @@ <function name="IsEnabled" template="IsEnabled"/> <function name="DepthRange" template="DepthRange" gltype="GLclampd"/> + <function name="DepthRangef" template="DepthRange" gltype="GLclampf"/> <function name="Frustum" template="Frustum" gltype="GLdouble"/> <function name="LoadIdentity" template="LoadIdentity"/> @@ -3650,7 +3660,7 @@ <function name="EnableClientState" template="EnableClientState"/> <function name="GetPointerv" template="GetPointer"/> - <function name="Normal3f" default_prefix="_vbo_" template="Normal" gltype="GLfloat" expand_vector="true"/> + <function name="Normal3f" default_prefix="_es_" template="Normal" gltype="GLfloat" expand_vector="true"/> <function name="NormalPointer" template="NormalPointer"/> <function name="TexCoordPointer" template="TexCoordPointer"/> <function name="VertexPointer" template="VertexPointer"/> @@ -3679,7 +3689,7 @@ <function name="ActiveTextureARB" template="ActiveTexture"/> <function name="ClientActiveTextureARB" template="ClientActiveTexture"/> - <function name="MultiTexCoord4f" default_prefix="_vbo_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/> + <function name="MultiTexCoord4f" default_prefix="_es_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/> <function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/> @@ -3691,14 +3701,14 @@ <function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/> <function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/> - <function name="VertexAttrib1f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/> - <function name="VertexAttrib2f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/> - <function name="VertexAttrib3f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/> - <function name="VertexAttrib4f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/> - <function name="VertexAttrib1fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/> - <function name="VertexAttrib2fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/> - <function name="VertexAttrib3fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/> - <function name="VertexAttrib4fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/> + <function name="VertexAttrib1f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/> + <function name="VertexAttrib2f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/> + <function name="VertexAttrib3f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/> + <function name="VertexAttrib4f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/> + <function name="VertexAttrib1fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/> + <function name="VertexAttrib2fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/> + <function name="VertexAttrib3fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/> + <function name="VertexAttrib4fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/> <function name="VertexAttribPointerARB" template="VertexAttribPointer"/> <function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/> @@ -3850,7 +3860,7 @@ <category name="OES_matrix_palette"/> - <function name="Color4f" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/> + <function name="Color4f" external="true" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/> <function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/> <function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/> @@ -3880,8 +3890,8 @@ <function name="LineWidth" template="LineWidth" gltype="GLfloat"/> <function name="LineWidthx" template="LineWidth" gltype="GLfixed"/> - <function name="Materialf" template="Material" gltype="GLfloat" expand_vector="true"/> - <function name="Materialfv" template="Material" gltype="GLfloat"/> + <function name="Materialf" external="true" template="Material" gltype="GLfloat" expand_vector="true"/> + <function name="Materialfv" external="true" template="Material" gltype="GLfloat"/> <function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/> <function name="Materialxv" template="Material" gltype="GLfixed"/> @@ -4012,7 +4022,7 @@ <function name="GetPointerv" template="GetPointer"/> - <function name="Normal3f" template="Normal" gltype="GLfloat" expand_vector="true"/> + <function name="Normal3f" external="true" template="Normal" gltype="GLfloat" expand_vector="true"/> <function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/> <function name="NormalPointer" template="NormalPointer"/> <function name="TexCoordPointer" template="TexCoordPointer"/> @@ -4039,7 +4049,7 @@ <function name="ActiveTexture" template="ActiveTexture"/> <function name="ClientActiveTexture" template="ClientActiveTexture"/> - <function name="MultiTexCoord4f" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/> + <function name="MultiTexCoord4f" external="true" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/> <function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/> <function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/> @@ -4227,14 +4237,14 @@ <function name="BlendFuncSeparate" template="BlendFuncSeparate"/> - <function name="VertexAttrib1f" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/> - <function name="VertexAttrib2f" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/> - <function name="VertexAttrib3f" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/> - <function name="VertexAttrib4f" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/> - <function name="VertexAttrib1fv" template="VertexAttrib" gltype="GLfloat" vector_size="1"/> - <function name="VertexAttrib2fv" template="VertexAttrib" gltype="GLfloat" vector_size="2"/> - <function name="VertexAttrib3fv" template="VertexAttrib" gltype="GLfloat" vector_size="3"/> - <function name="VertexAttrib4fv" template="VertexAttrib" gltype="GLfloat" vector_size="4"/> + <function name="VertexAttrib1f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/> + <function name="VertexAttrib2f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/> + <function name="VertexAttrib3f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/> + <function name="VertexAttrib4f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/> + <function name="VertexAttrib1fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1"/> + <function name="VertexAttrib2fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2"/> + <function name="VertexAttrib3fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3"/> + <function name="VertexAttrib4fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4"/> <function name="VertexAttribPointer" template="VertexAttribPointer"/> diff --git a/src/mesa/main/accum.c b/src/mesa/main/accum.c index 9026110f3e..940f398f02 100644 --- a/src/mesa/main/accum.c +++ b/src/mesa/main/accum.c @@ -27,6 +27,7 @@ #include "context.h" #include "imports.h" #include "macros.h" +#include "mfeatures.h" #include "state.h" #include "mtypes.h" #include "main/dispatch.h" diff --git a/src/mesa/main/api_arrayelt.c b/src/mesa/main/api_arrayelt.c index c22e18c9fb..b429e2627e 100644 --- a/src/mesa/main/api_arrayelt.c +++ b/src/mesa/main/api_arrayelt.c @@ -40,6 +40,8 @@ #include "context.h" #include "imports.h" #include "macros.h" +#include "mfeatures.h" +#include "mtypes.h" #include "main/dispatch.h" typedef void (GLAPIENTRY *array_func)( const void * ); diff --git a/src/mesa/main/api_arrayelt.h b/src/mesa/main/api_arrayelt.h index 610e522a94..b90d713682 100644 --- a/src/mesa/main/api_arrayelt.h +++ b/src/mesa/main/api_arrayelt.h @@ -28,6 +28,7 @@ #define API_ARRAYELT_H +#include "main/mfeatures.h" #include "main/mtypes.h" #if FEATURE_arrayelt diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c index 1427abd107..f1e4f7361f 100644 --- a/src/mesa/main/api_exec.c +++ b/src/mesa/main/api_exec.c @@ -361,6 +361,10 @@ _mesa_create_exec_table(void) SET_PointParameterfvEXT(exec, _mesa_PointParameterfv); #endif + /* 95. GL_ARB_ES2_compatibility */ + SET_ClearDepthf(exec, _mesa_ClearDepthf); + SET_DepthRangef(exec, _mesa_DepthRangef); + /* 97. GL_EXT_compiled_vertex_array */ #if _HAVE_FULL_GL SET_LockArraysEXT(exec, _mesa_LockArraysEXT); diff --git a/src/mesa/main/api_noop.c b/src/mesa/main/api_noop.c index 08b4b4a3b6..7d3d332727 100644 --- a/src/mesa/main/api_noop.c +++ b/src/mesa/main/api_noop.c @@ -30,6 +30,7 @@ #include "context.h" #include "light.h" #include "macros.h" +#include "mfeatures.h" #include "dlist.h" #include "eval.h" #include "main/dispatch.h" diff --git a/src/mesa/main/api_noop.h b/src/mesa/main/api_noop.h index e7fd49bafb..aca7f088db 100644 --- a/src/mesa/main/api_noop.h +++ b/src/mesa/main/api_noop.h @@ -25,6 +25,7 @@ #ifndef _API_NOOP_H #define _API_NOOP_H +#include "main/mfeatures.h" #include "main/mtypes.h" #if FEATURE_beginend diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c index 0d64b7de8d..9e9728c2c6 100644 --- a/src/mesa/main/arrayobj.c +++ b/src/mesa/main/arrayobj.c @@ -43,11 +43,13 @@ #include "hash.h" #include "imports.h" #include "context.h" +#include "mfeatures.h" #if FEATURE_ARB_vertex_buffer_object #include "bufferobj.h" #endif #include "arrayobj.h" #include "macros.h" +#include "mtypes.h" #include "main/dispatch.h" diff --git a/src/mesa/main/atifragshader.c b/src/mesa/main/atifragshader.c index ae2feb3229..44097e1a26 100644 --- a/src/mesa/main/atifragshader.c +++ b/src/mesa/main/atifragshader.c @@ -26,6 +26,7 @@ #include "main/hash.h" #include "main/imports.h" #include "main/macros.h" +#include "main/mfeatures.h" #include "main/enums.h" #include "main/mtypes.h" #include "main/dispatch.h" @@ -316,6 +317,7 @@ _mesa_DeleteFragmentShaderATI(GLuint id) if (prog) { prog->RefCount--; if (prog->RefCount <= 0) { + assert(prog != &DummyShader); free(prog); } } diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index fb6fbe5b6d..adfec3b0d5 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -43,6 +43,7 @@ #include "lines.h" #include "macros.h" #include "matrix.h" +#include "mfeatures.h" #include "multisample.h" #include "points.h" #include "polygon.h" diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 4d62f54a95..1f9a5212c0 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -39,6 +39,8 @@ #include "context.h" #include "bufferobj.h" #include "fbobject.h" +#include "mfeatures.h" +#include "mtypes.h" #include "texobj.h" diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h index 4b97e34767..09ccab3174 100644 --- a/src/mesa/main/bufferobj.h +++ b/src/mesa/main/bufferobj.h @@ -29,6 +29,7 @@ #define BUFFEROBJ_H +#include "mfeatures.h" #include "mtypes.h" diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index 86446311fe..5c37f3d1a8 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -35,6 +35,7 @@ #include "colormac.h" #include "context.h" #include "enums.h" +#include "mtypes.h" #define BAD_MASK ~0u diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c index c4c1d96e49..43a9ccc116 100644 --- a/src/mesa/main/clear.c +++ b/src/mesa/main/clear.c @@ -36,6 +36,7 @@ #include "colormac.h" #include "enums.h" #include "macros.h" +#include "mtypes.h" #include "state.h" diff --git a/src/mesa/main/colormac.h b/src/mesa/main/colormac.h index 245fb658bb..a328dcd32a 100644 --- a/src/mesa/main/colormac.h +++ b/src/mesa/main/colormac.h @@ -198,12 +198,23 @@ do { \ ((((B) & 0xf8) >> 1) | (((G) & 0xc0) >> 6) | (((G) & 0x38) << 10) | (((R) & 0xf8) << 5) | \ ((A) ? 0x80 : 0)) +#define PACK_COLOR_2101010_UB( A, B, G, R ) \ + (((B) << 22) | ((G) << 12) | ((R) << 2) | \ + (((A) & 0xc0) << 24)) + +#define PACK_COLOR_2101010_US( A, B, G, R ) \ + ((((B) >> 6) << 20) | (((G) >> 6) << 10) | ((R) >> 6) | \ + (((A) >> 14) << 30)) + #define PACK_COLOR_4444( R, G, B, A ) \ ((((R) & 0xf0) << 8) | (((G) & 0xf0) << 4) | ((B) & 0xf0) | ((A) >> 4)) #define PACK_COLOR_4444_REV( R, G, B, A ) \ ((((B) & 0xf0) << 8) | (((A) & 0xf0) << 4) | ((R) & 0xf0) | ((G) >> 4)) +#define PACK_COLOR_44( L, A ) \ + (((L) & 0xf0) | (((A) & 0xf0) >> 4)) + #define PACK_COLOR_88( L, A ) \ (((L) << 8) | (A)) diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c index caa95835bc..b0ba31c732 100644 --- a/src/mesa/main/colortab.c +++ b/src/mesa/main/colortab.c @@ -29,6 +29,8 @@ #include "context.h" #include "image.h" #include "macros.h" +#include "mfeatures.h" +#include "mtypes.h" #include "pack.h" #include "state.h" #include "teximage.h" diff --git a/src/mesa/main/compiler.h b/src/mesa/main/compiler.h index 800eb83900..5557a3b5cb 100644 --- a/src/mesa/main/compiler.h +++ b/src/mesa/main/compiler.h @@ -358,6 +358,10 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) #define M_E (2.7182818284590452354) #endif +#ifndef M_LOG2E +#define M_LOG2E (1.4426950408889634074) +#endif + #ifndef ONE_DIV_LN2 #define ONE_DIV_LN2 (1.442695040888963456) #endif diff --git a/src/mesa/main/condrender.c b/src/mesa/main/condrender.c index 25b3dd678d..352e2e2b16 100644 --- a/src/mesa/main/condrender.c +++ b/src/mesa/main/condrender.c @@ -34,6 +34,7 @@ #include "glheader.h" #include "condrender.h" #include "enums.h" +#include "mtypes.h" #include "queryobj.h" diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h index 0f2d1a8f8d..fffb1a7d2e 100644 --- a/src/mesa/main/config.h +++ b/src/mesa/main/config.h @@ -97,17 +97,20 @@ /** Max texture palette / color table size */ #define MAX_COLOR_TABLE_SIZE 256 +/** Max memory to allow for a single texture image (in megabytes) */ +#define MAX_TEXTURE_MBYTES 1024 + /** Number of 1D/2D texture mipmap levels */ -#define MAX_TEXTURE_LEVELS 13 +#define MAX_TEXTURE_LEVELS 15 /** Number of 3D texture mipmap levels */ -#define MAX_3D_TEXTURE_LEVELS 9 +#define MAX_3D_TEXTURE_LEVELS 15 /** Number of cube texture mipmap levels - GL_ARB_texture_cube_map */ -#define MAX_CUBE_TEXTURE_LEVELS 13 +#define MAX_CUBE_TEXTURE_LEVELS 15 /** Maximum rectangular texture size - GL_NV_texture_rectangle */ -#define MAX_TEXTURE_RECT_SIZE 4096 +#define MAX_TEXTURE_RECT_SIZE 16384 /** Maximum number of layers in a 1D or 2D array texture - GL_MESA_texture_array */ #define MAX_ARRAY_TEXTURE_LAYERS 64 @@ -140,11 +143,28 @@ */ #ifndef MAX_WIDTH -# define MAX_WIDTH 4096 +# define MAX_WIDTH 16384 #endif /** Maximum viewport/image height */ #ifndef MAX_HEIGHT -# define MAX_HEIGHT 4096 +# define MAX_HEIGHT 16384 +#endif + +/* XXX: hack to prevent stack overflow on windows until all temporary arrays + * [MAX_WIDTH] are allocated from the heap */ +#ifdef WIN32 +#undef MAX_TEXTURE_LEVELS +#undef MAX_3D_TEXTURE_LEVELS +#undef MAX_CUBE_TEXTURE_LEVELS +#undef MAX_TEXTURE_RECT_SIZE +#undef MAX_WIDTH +#undef MAX_HEIGHT +#define MAX_TEXTURE_LEVELS 13 +#define MAX_3D_TEXTURE_LEVELS 9 +#define MAX_CUBE_TEXTURE_LEVELS 13 +#define MAX_TEXTURE_RECT_SIZE 4096 +#define MAX_WIDTH 4096 +#define MAX_HEIGHT 4096 #endif /** Maxmimum size for CVA. May be overridden by the drivers. */ @@ -168,7 +188,7 @@ #define MAX_TEXTURE_MAX_ANISOTROPY 16.0 /** For GL_EXT_texture_lod_bias (typically MAX_TEXTURE_LEVELS - 1) */ -#define MAX_TEXTURE_LOD_BIAS 12.0 +#define MAX_TEXTURE_LOD_BIAS 14.0 /** For any program target/extension */ /*@{*/ diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index e2c91c3e40..958ea10a42 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -96,6 +96,7 @@ #include "fbobject.h" #include "feedback.h" #include "fog.h" +#include "formats.h" #include "framebuffer.h" #include "hint.h" #include "hash.h" @@ -417,6 +418,10 @@ one_time_init( struct gl_context *ctx ) MESA_VERSION_STRING, __DATE__, __TIME__); } #endif + +#ifdef DEBUG + _mesa_test_formats(); +#endif } /* per-API one-time init */ @@ -535,6 +540,7 @@ _mesa_init_constants(struct gl_context *ctx) assert(ctx); /* Constants, may be overriden (usually only reduced) by device drivers */ + ctx->Const.MaxTextureMbytes = MAX_TEXTURE_MBYTES; ctx->Const.MaxTextureLevels = MAX_TEXTURE_LEVELS; ctx->Const.Max3DTextureLevels = MAX_3D_TEXTURE_LEVELS; ctx->Const.MaxCubeTextureLevels = MAX_CUBE_TEXTURE_LEVELS; @@ -954,6 +960,14 @@ _mesa_initialize_context_for_api(struct gl_context *ctx, ctx->FragmentProgram._MaintainTexEnvProgram = GL_TRUE; } + /* Mesa core handles all the formats that mesa core knows about. + * Drivers will want to override this list with just the formats + * they can handle, and confirm that appropriate fallbacks exist in + * _mesa_choose_tex_format(). + */ + memset(&ctx->TextureFormatSupported, GL_TRUE, + sizeof(ctx->TextureFormatSupported)); + switch (ctx->API) { case API_OPENGL: #if FEATURE_dlist diff --git a/src/mesa/main/convolve.c b/src/mesa/main/convolve.c index 0231bcf6d3..5d286eb316 100644 --- a/src/mesa/main/convolve.c +++ b/src/mesa/main/convolve.c @@ -36,6 +36,7 @@ #include "colormac.h" #include "convolve.h" #include "macros.h" +#include "mfeatures.h" #include "mtypes.h" #include "main/dispatch.h" diff --git a/src/mesa/main/cpuinfo.c b/src/mesa/main/cpuinfo.c index 35de69b180..6363512961 100644 --- a/src/mesa/main/cpuinfo.c +++ b/src/mesa/main/cpuinfo.c @@ -23,7 +23,7 @@ */ -#include "main/imports.h" +#include "main/compiler.h" #include "main/cpuinfo.h" diff --git a/src/mesa/main/depth.c b/src/mesa/main/depth.c index c5a910e144..0bb47731ea 100644 --- a/src/mesa/main/depth.c +++ b/src/mesa/main/depth.c @@ -56,6 +56,12 @@ _mesa_ClearDepth( GLclampd depth ) } +void GLAPIENTRY +_mesa_ClearDepthf( GLclampf depth ) +{ + _mesa_ClearDepth(depth); +} + void GLAPIENTRY _mesa_DepthFunc( GLenum func ) diff --git a/src/mesa/main/depth.h b/src/mesa/main/depth.h index b498a47153..2f428629f9 100644 --- a/src/mesa/main/depth.h +++ b/src/mesa/main/depth.h @@ -44,6 +44,9 @@ extern void GLAPIENTRY _mesa_ClearDepth( GLclampd depth ); extern void GLAPIENTRY +_mesa_ClearDepthf( GLclampf depth ); + +extern void GLAPIENTRY _mesa_DepthFunc( GLenum func ); extern void GLAPIENTRY diff --git a/src/mesa/main/dlist.h b/src/mesa/main/dlist.h index 24241a4bd4..160ed62f55 100644 --- a/src/mesa/main/dlist.h +++ b/src/mesa/main/dlist.h @@ -33,6 +33,7 @@ #define DLIST_H +#include "main/mfeatures.h" #include "main/mtypes.h" diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c index 757aae6e70..6fda3c5665 100644 --- a/src/mesa/main/drawpix.c +++ b/src/mesa/main/drawpix.c @@ -30,6 +30,7 @@ #include "enums.h" #include "feedback.h" #include "framebuffer.h" +#include "mfeatures.h" #include "readpix.h" #include "state.h" #include "dispatch.h" diff --git a/src/mesa/main/drawtex.c b/src/mesa/main/drawtex.c index b9afc9974e..2089cdfcef 100644 --- a/src/mesa/main/drawtex.c +++ b/src/mesa/main/drawtex.c @@ -24,6 +24,8 @@ #include "main/drawtex.h" #include "main/state.h" #include "main/imports.h" +#include "main/mfeatures.h" +#include "main/mtypes.h" #if FEATURE_OES_draw_texture diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c index a038a95c55..d047586eb3 100644 --- a/src/mesa/main/enable.c +++ b/src/mesa/main/enable.c @@ -33,6 +33,7 @@ #include "enable.h" #include "light.h" #include "simple_list.h" +#include "mfeatures.h" #include "mtypes.h" #include "enums.h" #include "api_arrayelt.h" diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c index 0ce62c0e3c..9ceee99dc0 100644 --- a/src/mesa/main/enums.c +++ b/src/mesa/main/enums.c @@ -5909,8 +5909,8 @@ static const unsigned reduced_enums[1551] = 1306, /* GL_PALETTE8_R5_G6_B5_OES */ 1309, /* GL_PALETTE8_RGBA4_OES */ 1307, /* GL_PALETTE8_RGB5_A1_OES */ - 726, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */ - 724, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */ + 725, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */ + 723, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */ 1355, /* GL_POINT_SIZE_ARRAY_OES */ 2014, /* GL_TEXTURE_CROP_RECT_OES */ 996, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */ diff --git a/src/mesa/main/eval.c b/src/mesa/main/eval.c index c607e6a26a..9ab55072f0 100644 --- a/src/mesa/main/eval.c +++ b/src/mesa/main/eval.c @@ -43,6 +43,7 @@ #include "context.h" #include "eval.h" #include "macros.h" +#include "mfeatures.h" #include "mtypes.h" #include "main/dispatch.h" diff --git a/src/mesa/main/eval.h b/src/mesa/main/eval.h index bd908f00cd..bfeeebde54 100644 --- a/src/mesa/main/eval.h +++ b/src/mesa/main/eval.h @@ -37,6 +37,7 @@ #define EVAL_H +#include "main/mfeatures.h" #include "main/mtypes.h" diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index a7bdfcc020..24404993c6 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -24,206 +24,349 @@ */ +/** + * \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, +}; -#define F(x) offsetof(struct gl_extensions, x) -#define ON GL_TRUE -#define OFF GL_FALSE +/** + * \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; +}; + + +/** + * 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 { - GLboolean enabled; - const char *name; - int flag_offset; -} default_extensions[] = { - { OFF, "GL_ARB_blend_func_extended", F(ARB_blend_func_extended) }, - { ON, "GL_ARB_copy_buffer", F(ARB_copy_buffer) }, - { OFF, "GL_ARB_depth_buffer_float", F(ARB_depth_buffer_float) }, - { OFF, "GL_ARB_depth_clamp", F(ARB_depth_clamp) }, - { OFF, "GL_ARB_depth_texture", F(ARB_depth_texture) }, - { ON, "GL_ARB_draw_buffers", F(ARB_draw_buffers) }, - { OFF, "GL_ARB_draw_elements_base_vertex", F(ARB_draw_elements_base_vertex) }, - { OFF, "GL_ARB_draw_instanced", F(ARB_draw_instanced) }, - { OFF, "GL_ARB_explicit_attrib_location", F(ARB_explicit_attrib_location) }, - { OFF, "GL_ARB_fragment_coord_conventions", F(ARB_fragment_coord_conventions) }, - { OFF, "GL_ARB_fragment_program", F(ARB_fragment_program) }, - { OFF, "GL_ARB_fragment_program_shadow", F(ARB_fragment_program_shadow) }, - { OFF, "GL_ARB_fragment_shader", F(ARB_fragment_shader) }, - { OFF, "GL_ARB_framebuffer_object", F(ARB_framebuffer_object) }, - /* TODO: reenable this when the new GLSL compiler actually supports them */ - /* { OFF, "GL_ARB_geometry_shader4", F(ARB_geometry_shader4) }, */ - { OFF, "GL_ARB_half_float_pixel", F(ARB_half_float_pixel) }, - { OFF, "GL_ARB_half_float_vertex", F(ARB_half_float_vertex) }, - { OFF, "GL_ARB_instanced_arrays", F(ARB_instanced_arrays) }, - { OFF, "GL_ARB_map_buffer_range", F(ARB_map_buffer_range) }, - { ON, "GL_ARB_multisample", F(ARB_multisample) }, - { OFF, "GL_ARB_multitexture", F(ARB_multitexture) }, - { OFF, "GL_ARB_occlusion_query", F(ARB_occlusion_query) }, - { OFF, "GL_ARB_occlusion_query2", F(ARB_occlusion_query2) }, - { OFF, "GL_ARB_pixel_buffer_object", F(EXT_pixel_buffer_object) }, - { OFF, "GL_ARB_point_parameters", F(EXT_point_parameters) }, - { OFF, "GL_ARB_point_sprite", F(ARB_point_sprite) }, - { OFF, "GL_ARB_provoking_vertex", F(EXT_provoking_vertex) }, - { OFF, "GL_ARB_sampler_objects", F(ARB_sampler_objects) }, - { OFF, "GL_ARB_seamless_cube_map", F(ARB_seamless_cube_map) }, - { OFF, "GL_ARB_shader_objects", F(ARB_shader_objects) }, - { OFF, "GL_ARB_shader_stencil_export", F(ARB_shader_stencil_export) }, - { OFF, "GL_ARB_shading_language_100", F(ARB_shading_language_100) }, - { OFF, "GL_ARB_shadow", F(ARB_shadow) }, - { OFF, "GL_ARB_shadow_ambient", F(ARB_shadow_ambient) }, - { OFF, "GL_ARB_sync", F(ARB_sync) }, - { OFF, "GL_ARB_texture_border_clamp", F(ARB_texture_border_clamp) }, - { OFF, "GL_ARB_texture_buffer_object", F(ARB_texture_buffer_object) }, - { ON, "GL_ARB_texture_compression", F(ARB_texture_compression) }, - { OFF, "GL_ARB_texture_compression_rgtc", F(ARB_texture_compression_rgtc) }, - { OFF, "GL_ARB_texture_cube_map", F(ARB_texture_cube_map) }, - { OFF, "GL_ARB_texture_env_add", F(EXT_texture_env_add) }, - { OFF, "GL_ARB_texture_env_combine", F(ARB_texture_env_combine) }, - { OFF, "GL_ARB_texture_env_crossbar", F(ARB_texture_env_crossbar) }, - { OFF, "GL_ARB_texture_env_dot3", F(ARB_texture_env_dot3) }, - { OFF, "GL_MESAX_texture_float", F(ARB_texture_float) }, - { OFF, "GL_ARB_texture_mirrored_repeat", F(ARB_texture_mirrored_repeat)}, - { OFF, "GL_ARB_texture_multisample", F(ARB_texture_multisample) }, - { OFF, "GL_ARB_texture_non_power_of_two", F(ARB_texture_non_power_of_two)}, - { OFF, "GL_ARB_texture_rectangle", F(NV_texture_rectangle) }, - { OFF, "GL_ARB_texture_rg", F(ARB_texture_rg) }, - { OFF, "GL_ARB_texture_rgb10_a2ui", F(ARB_texture_rgb10_a2ui) }, - { OFF, "GL_ARB_texture_swizzle", F(EXT_texture_swizzle) }, - { ON, "GL_ARB_transpose_matrix", F(ARB_transpose_matrix) }, - { OFF, "GL_ARB_transform_feedback2", F(ARB_transform_feedback2) }, - { OFF, "GL_ARB_uniform_buffer_object", F(ARB_uniform_buffer_object) }, - { OFF, "GL_ARB_vertex_array_bgra", F(EXT_vertex_array_bgra) }, - { OFF, "GL_ARB_vertex_array_object", F(ARB_vertex_array_object) }, - { ON, "GL_ARB_vertex_buffer_object", F(ARB_vertex_buffer_object) }, - { OFF, "GL_ARB_vertex_program", F(ARB_vertex_program) }, - { OFF, "GL_ARB_vertex_shader", F(ARB_vertex_shader) }, - { OFF, "GL_ARB_vertex_type_2_10_10_10_rev", F(ARB_vertex_type_2_10_10_10_rev) }, - { ON, "GL_ARB_window_pos", F(ARB_window_pos) }, - { ON, "GL_EXT_abgr", F(EXT_abgr) }, - { ON, "GL_EXT_bgra", F(EXT_bgra) }, - { OFF, "GL_EXT_blend_color", F(EXT_blend_color) }, - { OFF, "GL_EXT_blend_equation_separate", F(EXT_blend_equation_separate) }, - { OFF, "GL_EXT_blend_func_separate", F(EXT_blend_func_separate) }, - { OFF, "GL_EXT_blend_logic_op", F(EXT_blend_logic_op) }, - { OFF, "GL_EXT_blend_minmax", F(EXT_blend_minmax) }, - { OFF, "GL_EXT_blend_subtract", F(EXT_blend_subtract) }, - { OFF, "GL_EXT_clip_volume_hint", F(EXT_clip_volume_hint) }, - { ON, "GL_EXT_compiled_vertex_array", F(EXT_compiled_vertex_array) }, - { ON, "GL_EXT_copy_texture", F(EXT_copy_texture) }, - { OFF, "GL_EXT_depth_bounds_test", F(EXT_depth_bounds_test) }, - { OFF, "GL_EXT_draw_buffers2", F(EXT_draw_buffers2) }, - { OFF, "GL_EXT_draw_instanced", F(ARB_draw_instanced) }, - { ON, "GL_EXT_draw_range_elements", F(EXT_draw_range_elements) }, - { OFF, "GL_EXT_framebuffer_blit", F(EXT_framebuffer_blit) }, - { OFF, "GL_EXT_framebuffer_multisample", F(EXT_framebuffer_multisample) }, - { OFF, "GL_EXT_framebuffer_object", F(EXT_framebuffer_object) }, - { OFF, "GL_EXT_framebuffer_sRGB", F(EXT_framebuffer_sRGB) }, - { OFF, "GL_EXT_fog_coord", F(EXT_fog_coord) }, - { OFF, "GL_EXT_gpu_program_parameters", F(EXT_gpu_program_parameters) }, - { OFF, "GL_EXT_gpu_shader4", F(EXT_gpu_shader4) }, - { ON, "GL_EXT_multi_draw_arrays", F(EXT_multi_draw_arrays) }, - { OFF, "GL_EXT_packed_depth_stencil", F(EXT_packed_depth_stencil) }, - { OFF, "GL_EXT_packed_float", F(EXT_packed_float) }, - { ON, "GL_EXT_packed_pixels", F(EXT_packed_pixels) }, - { OFF, "GL_EXT_paletted_texture", F(EXT_paletted_texture) }, - { OFF, "GL_EXT_pixel_buffer_object", F(EXT_pixel_buffer_object) }, - { OFF, "GL_EXT_point_parameters", F(EXT_point_parameters) }, - { ON, "GL_EXT_polygon_offset", F(EXT_polygon_offset) }, - { OFF, "GL_EXT_provoking_vertex", F(EXT_provoking_vertex) }, - { ON, "GL_EXT_rescale_normal", F(EXT_rescale_normal) }, - { OFF, "GL_EXT_secondary_color", F(EXT_secondary_color) }, - { OFF, "GL_EXT_separate_shader_objects", F(EXT_separate_shader_objects) }, - { ON, "GL_EXT_separate_specular_color", F(EXT_separate_specular_color) }, - { OFF, "GL_EXT_shadow_funcs", F(EXT_shadow_funcs) }, - { OFF, "GL_EXT_shared_texture_palette", F(EXT_shared_texture_palette) }, - { OFF, "GL_EXT_stencil_two_side", F(EXT_stencil_two_side) }, - { OFF, "GL_EXT_stencil_wrap", F(EXT_stencil_wrap) }, - { ON, "GL_EXT_subtexture", F(EXT_subtexture) }, - { ON, "GL_EXT_texture", F(EXT_texture) }, - { ON, "GL_EXT_texture3D", F(EXT_texture3D) }, - { OFF, "GL_EXT_texture_array", F(EXT_texture_array) }, - { OFF, "GL_EXT_texture_compression_s3tc", F(EXT_texture_compression_s3tc) }, - { OFF, "GL_EXT_texture_compression_rgtc", F(ARB_texture_compression_rgtc) }, - { OFF, "GL_EXT_texture_cube_map", F(ARB_texture_cube_map) }, - { ON, "GL_EXT_texture_edge_clamp", F(SGIS_texture_edge_clamp) }, - { OFF, "GL_EXT_texture_env_add", F(EXT_texture_env_add) }, - { OFF, "GL_EXT_texture_env_combine", F(EXT_texture_env_combine) }, - { OFF, "GL_EXT_texture_env_dot3", F(EXT_texture_env_dot3) }, - { OFF, "GL_EXT_texture_filter_anisotropic", F(EXT_texture_filter_anisotropic) }, - { OFF, "GL_EXT_texture_integer", F(EXT_texture_integer) }, - { OFF, "GL_EXT_texture_lod_bias", F(EXT_texture_lod_bias) }, - { OFF, "GL_EXT_texture_mirror_clamp", F(EXT_texture_mirror_clamp) }, - { ON, "GL_EXT_texture_object", F(EXT_texture_object) }, - { OFF, "GL_EXT_texture_rectangle", F(NV_texture_rectangle) }, - { OFF, "GL_EXT_texture_shared_exponent", F(EXT_texture_shared_exponent) }, - { OFF, "GL_EXT_texture_sRGB", F(EXT_texture_sRGB) }, - { OFF, "GL_EXT_texture_swizzle", F(EXT_texture_swizzle) }, - { OFF, "GL_EXT_timer_query", F(EXT_timer_query) }, - { OFF, "GL_EXT_transform_feedback", F(EXT_transform_feedback) }, - { ON, "GL_EXT_vertex_array", F(EXT_vertex_array) }, - { OFF, "GL_EXT_vertex_array_bgra", F(EXT_vertex_array_bgra) }, - { OFF, "GL_EXT_vertex_array_set", F(EXT_vertex_array_set) }, - { OFF, "GL_3DFX_texture_compression_FXT1", F(TDFX_texture_compression_FXT1) }, - { OFF, "GL_APPLE_client_storage", F(APPLE_client_storage) }, - { ON, "GL_APPLE_packed_pixels", F(APPLE_packed_pixels) }, - { OFF, "GL_APPLE_vertex_array_object", F(APPLE_vertex_array_object) }, - { OFF, "GL_APPLE_object_purgeable", F(APPLE_object_purgeable) }, - { OFF, "GL_ATI_blend_equation_separate", F(EXT_blend_equation_separate) }, - { OFF, "GL_ATI_envmap_bumpmap", F(ATI_envmap_bumpmap) }, - { OFF, "GL_ATI_texture_env_combine3", F(ATI_texture_env_combine3)}, - { OFF, "GL_ATI_texture_mirror_once", F(ATI_texture_mirror_once)}, - { OFF, "GL_ATI_fragment_shader", F(ATI_fragment_shader)}, - { OFF, "GL_ATI_separate_stencil", F(ATI_separate_stencil)}, - { ON, "GL_IBM_multimode_draw_arrays", F(IBM_multimode_draw_arrays) }, - { ON, "GL_IBM_rasterpos_clip", F(IBM_rasterpos_clip) }, - { OFF, "GL_IBM_texture_mirrored_repeat", F(ARB_texture_mirrored_repeat)}, - { OFF, "GL_INGR_blend_func_separate", F(EXT_blend_func_separate) }, - { OFF, "GL_MESA_pack_invert", F(MESA_pack_invert) }, - { OFF, "GL_MESA_resize_buffers", F(MESA_resize_buffers) }, - { OFF, "GL_MESA_texture_array", F(MESA_texture_array) }, - { OFF, "GL_MESA_texture_signed_rgba", F(MESA_texture_signed_rgba) }, - { OFF, "GL_MESA_ycbcr_texture", F(MESA_ycbcr_texture) }, - { ON, "GL_MESA_window_pos", F(ARB_window_pos) }, - { OFF, "GL_NV_blend_square", F(NV_blend_square) }, - { OFF, "GL_NV_conditional_render", F(NV_conditional_render) }, - { OFF, "GL_NV_depth_clamp", F(ARB_depth_clamp) }, - { OFF, "GL_NV_fragment_program", F(NV_fragment_program) }, - { OFF, "GL_NV_fragment_program_option", F(NV_fragment_program_option) }, - { ON, "GL_NV_light_max_exponent", F(NV_light_max_exponent) }, - { OFF, "GL_NV_packed_depth_stencil", F(EXT_packed_depth_stencil) }, - { OFF, "GL_NV_point_sprite", F(NV_point_sprite) }, - { OFF, "GL_NV_primitive_restart", F(NV_primitive_restart) }, - { ON, "GL_NV_texgen_reflection", F(NV_texgen_reflection) }, - { OFF, "GL_NV_texture_env_combine4", F(NV_texture_env_combine4) }, - { OFF, "GL_NV_texture_rectangle", F(NV_texture_rectangle) }, - { OFF, "GL_NV_vertex_program", F(NV_vertex_program) }, - { OFF, "GL_NV_vertex_program1_1", F(NV_vertex_program1_1) }, - { ON, "GL_OES_read_format", F(OES_read_format) }, - { OFF, "GL_SGI_texture_color_table", F(SGI_texture_color_table) }, - { ON, "GL_SGIS_generate_mipmap", F(SGIS_generate_mipmap) }, - { OFF, "GL_SGIS_texture_border_clamp", F(ARB_texture_border_clamp) }, - { ON, "GL_SGIS_texture_edge_clamp", F(SGIS_texture_edge_clamp) }, - { ON, "GL_SGIS_texture_lod", F(SGIS_texture_lod) }, - { ON, "GL_SUN_multi_draw_arrays", F(EXT_multi_draw_arrays) }, - { OFF, "GL_S3_s3tc", F(S3_s3tc) }, - { OFF, "GL_EXT_texture_format_BGRA8888", F(EXT_texture_format_BGRA8888) }, -#if FEATURE_OES_EGL_image - { OFF, "GL_OES_EGL_image", F(OES_EGL_image) }, -#endif +static const struct extension extension_table[] = { + /* ARB Extensions */ + { "GL_ARB_ES2_compatibility", o(ARB_ES2_compatibility), GL }, + { "GL_ARB_blend_func_extended", o(ARB_blend_func_extended), GL }, + { "GL_ARB_copy_buffer", o(ARB_copy_buffer), GL }, + { "GL_ARB_depth_buffer_float", o(ARB_depth_buffer_float), GL }, + { "GL_ARB_depth_clamp", o(ARB_depth_clamp), GL }, + { "GL_ARB_depth_texture", o(ARB_depth_texture), GL }, + { "GL_ARB_draw_buffers", o(ARB_draw_buffers), GL }, + { "GL_ARB_draw_elements_base_vertex", o(ARB_draw_elements_base_vertex), GL }, + { "GL_ARB_draw_instanced", o(ARB_draw_instanced), GL }, + { "GL_ARB_explicit_attrib_location", o(ARB_explicit_attrib_location), GL }, + { "GL_ARB_fragment_coord_conventions", o(ARB_fragment_coord_conventions), GL }, + { "GL_ARB_fragment_program", o(ARB_fragment_program), GL }, + { "GL_ARB_fragment_program_shadow", o(ARB_fragment_program_shadow), GL }, + { "GL_ARB_fragment_shader", o(ARB_fragment_shader), GL }, + { "GL_ARB_framebuffer_object", o(ARB_framebuffer_object), GL }, + { "GL_ARB_half_float_pixel", o(ARB_half_float_pixel), GL }, + { "GL_ARB_half_float_vertex", o(ARB_half_float_vertex), GL }, + { "GL_ARB_instanced_arrays", o(ARB_instanced_arrays), GL }, + { "GL_ARB_map_buffer_range", o(ARB_map_buffer_range), GL }, + { "GL_ARB_multisample", o(ARB_multisample), GL }, + { "GL_ARB_multitexture", o(ARB_multitexture), GL }, + { "GL_ARB_occlusion_query2", o(ARB_occlusion_query2), GL }, + { "GL_ARB_occlusion_query", o(ARB_occlusion_query), GL }, + { "GL_ARB_pixel_buffer_object", o(EXT_pixel_buffer_object), GL }, + { "GL_ARB_point_parameters", o(EXT_point_parameters), GL }, + { "GL_ARB_point_sprite", o(ARB_point_sprite), GL }, + { "GL_ARB_provoking_vertex", o(EXT_provoking_vertex), GL }, + { "GL_ARB_sampler_objects", o(ARB_sampler_objects), GL }, + { "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL }, + { "GL_ARB_shader_objects", o(ARB_shader_objects), GL }, + { "GL_ARB_shader_stencil_export", o(ARB_shader_stencil_export), GL }, + { "GL_ARB_shading_language_100", o(ARB_shading_language_100), GL }, + { "GL_ARB_shadow_ambient", o(ARB_shadow_ambient), GL }, + { "GL_ARB_shadow", o(ARB_shadow), GL }, + { "GL_ARB_sync", o(ARB_sync), GL }, + { "GL_ARB_texture_border_clamp", o(ARB_texture_border_clamp), GL }, + { "GL_ARB_texture_buffer_object", o(ARB_texture_buffer_object), GL }, + { "GL_ARB_texture_compression", o(ARB_texture_compression), GL }, + { "GL_ARB_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL }, + { "GL_ARB_texture_cube_map", o(ARB_texture_cube_map), GL }, + { "GL_ARB_texture_env_add", o(EXT_texture_env_add), GL }, + { "GL_ARB_texture_env_combine", o(ARB_texture_env_combine), GL }, + { "GL_ARB_texture_env_crossbar", o(ARB_texture_env_crossbar), GL }, + { "GL_ARB_texture_env_dot3", o(ARB_texture_env_dot3), GL }, + { "GL_ARB_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL }, + { "GL_ARB_texture_multisample", o(ARB_texture_multisample), GL }, + { "GL_ARB_texture_non_power_of_two", o(ARB_texture_non_power_of_two), GL }, + { "GL_ARB_texture_rectangle", o(NV_texture_rectangle), GL }, + { "GL_ARB_texture_rgb10_a2ui", o(ARB_texture_rgb10_a2ui), GL }, + { "GL_ARB_texture_rg", o(ARB_texture_rg), GL }, + { "GL_ARB_texture_swizzle", o(EXT_texture_swizzle), GL }, + { "GL_ARB_transform_feedback2", o(ARB_transform_feedback2), GL }, + { "GL_ARB_transpose_matrix", o(ARB_transpose_matrix), GL }, + { "GL_ARB_uniform_buffer_object", o(ARB_uniform_buffer_object), GL }, + { "GL_ARB_vertex_array_bgra", o(EXT_vertex_array_bgra), GL }, + { "GL_ARB_vertex_array_object", o(ARB_vertex_array_object), GL }, + { "GL_ARB_vertex_buffer_object", o(ARB_vertex_buffer_object), GL }, + { "GL_ARB_vertex_program", o(ARB_vertex_program), GL }, + { "GL_ARB_vertex_shader", o(ARB_vertex_shader), GL }, + { "GL_ARB_vertex_type_2_10_10_10_rev", o(ARB_vertex_type_2_10_10_10_rev), GL }, + { "GL_ARB_window_pos", o(ARB_window_pos), GL }, + + /* EXT extensions */ + { "GL_EXT_abgr", o(EXT_abgr), GL }, + { "GL_EXT_bgra", o(EXT_bgra), GL }, + { "GL_EXT_blend_color", o(EXT_blend_color), GL }, + { "GL_EXT_blend_equation_separate", o(EXT_blend_equation_separate), GL }, + { "GL_EXT_blend_func_separate", o(EXT_blend_func_separate), GL }, + { "GL_EXT_blend_logic_op", o(EXT_blend_logic_op), GL }, + { "GL_EXT_blend_minmax", o(EXT_blend_minmax), GL | ES1 | ES2 }, + { "GL_EXT_blend_subtract", o(EXT_blend_subtract), GL }, + { "GL_EXT_clip_volume_hint", o(EXT_clip_volume_hint), GL }, + { "GL_EXT_compiled_vertex_array", o(EXT_compiled_vertex_array), GL }, + { "GL_EXT_copy_texture", o(EXT_copy_texture), GL }, + { "GL_EXT_depth_bounds_test", o(EXT_depth_bounds_test), GL }, + { "GL_EXT_draw_buffers2", o(EXT_draw_buffers2), GL }, + { "GL_EXT_draw_instanced", o(ARB_draw_instanced), GL }, + { "GL_EXT_draw_range_elements", o(EXT_draw_range_elements), GL }, + { "GL_EXT_fog_coord", o(EXT_fog_coord), GL }, + { "GL_EXT_framebuffer_blit", o(EXT_framebuffer_blit), GL }, + { "GL_EXT_framebuffer_multisample", o(EXT_framebuffer_multisample), GL }, + { "GL_EXT_framebuffer_object", o(EXT_framebuffer_object), GL }, + { "GL_EXT_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL }, + { "GL_EXT_gpu_program_parameters", o(EXT_gpu_program_parameters), GL }, + { "GL_EXT_gpu_shader4", o(EXT_gpu_shader4), GL }, + { "GL_EXT_multi_draw_arrays", o(EXT_multi_draw_arrays), GL | ES1 | ES2 }, + { "GL_EXT_packed_depth_stencil", o(EXT_packed_depth_stencil), GL }, + { "GL_EXT_packed_float", o(EXT_packed_float), GL }, + { "GL_EXT_packed_pixels", o(EXT_packed_pixels), GL }, + { "GL_EXT_paletted_texture", o(EXT_paletted_texture), GL }, + { "GL_EXT_pixel_buffer_object", o(EXT_pixel_buffer_object), GL }, + { "GL_EXT_point_parameters", o(EXT_point_parameters), GL }, + { "GL_EXT_polygon_offset", o(EXT_polygon_offset), GL }, + { "GL_EXT_provoking_vertex", o(EXT_provoking_vertex), GL }, + { "GL_EXT_rescale_normal", o(EXT_rescale_normal), GL }, + { "GL_EXT_secondary_color", o(EXT_secondary_color), GL }, + { "GL_EXT_separate_shader_objects", o(EXT_separate_shader_objects), GL }, + { "GL_EXT_separate_specular_color", o(EXT_separate_specular_color), GL }, + { "GL_EXT_shadow_funcs", o(EXT_shadow_funcs), GL }, + { "GL_EXT_shared_texture_palette", o(EXT_shared_texture_palette), GL }, + { "GL_EXT_stencil_two_side", o(EXT_stencil_two_side), GL }, + { "GL_EXT_stencil_wrap", o(EXT_stencil_wrap), GL }, + { "GL_EXT_subtexture", o(EXT_subtexture), GL }, + { "GL_EXT_texture3D", o(EXT_texture3D), GL }, + { "GL_EXT_texture_array", o(EXT_texture_array), GL }, + { "GL_EXT_texture_compression_dxt1", o(EXT_texture_compression_s3tc), GL | ES1 | ES2 }, + { "GL_EXT_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL }, + { "GL_EXT_texture_compression_s3tc", o(EXT_texture_compression_s3tc), GL }, + { "GL_EXT_texture_cube_map", o(ARB_texture_cube_map), GL }, + { "GL_EXT_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL }, + { "GL_EXT_texture_env_add", o(EXT_texture_env_add), GL }, + { "GL_EXT_texture_env_combine", o(EXT_texture_env_combine), GL }, + { "GL_EXT_texture_env_dot3", o(EXT_texture_env_dot3), GL }, + { "GL_EXT_texture_filter_anisotropic", o(EXT_texture_filter_anisotropic), GL | ES1 | ES2 }, + { "GL_EXT_texture_format_BGRA8888", o(EXT_texture_format_BGRA8888), ES1 | ES2 }, + { "GL_EXT_texture_integer", o(EXT_texture_integer), GL }, + { "GL_EXT_texture_lod_bias", o(EXT_texture_lod_bias), GL | ES1 }, + { "GL_EXT_texture_mirror_clamp", o(EXT_texture_mirror_clamp), GL }, + { "GL_EXT_texture_object", o(EXT_texture_object), GL }, + { "GL_EXT_texture", o(EXT_texture), GL }, + { "GL_EXT_texture_rectangle", o(NV_texture_rectangle), GL }, + { "GL_EXT_texture_shared_exponent", o(EXT_texture_shared_exponent), GL }, + { "GL_EXT_texture_sRGB", o(EXT_texture_sRGB), GL }, + { "GL_EXT_texture_swizzle", o(EXT_texture_swizzle), GL }, + { "GL_EXT_texture_type_2_10_10_10_REV", o(dummy_true), ES2 }, + { "GL_EXT_timer_query", o(EXT_timer_query), GL }, + { "GL_EXT_transform_feedback", o(EXT_transform_feedback), GL }, + { "GL_EXT_vertex_array_bgra", o(EXT_vertex_array_bgra), GL }, + { "GL_EXT_vertex_array", o(EXT_vertex_array), GL }, + { "GL_EXT_vertex_array_set", o(EXT_vertex_array_set), GL }, + + /* OES extensions */ + { "GL_OES_blend_equation_separate", o(EXT_blend_equation_separate), ES1 }, + { "GL_OES_blend_func_separate", o(EXT_blend_func_separate), ES1 }, + { "GL_OES_blend_subtract", o(EXT_blend_subtract), ES1 }, + { "GL_OES_byte_coordinates", o(dummy_true), ES1 }, + { "GL_OES_compressed_paletted_texture", o(dummy_false), DISABLE }, + { "GL_OES_depth24", o(EXT_framebuffer_object), ES1 | ES2 }, + { "GL_OES_depth32", o(dummy_false), DISABLE }, + { "GL_OES_depth_texture", o(ARB_depth_texture), ES2 }, #if FEATURE_OES_draw_texture - { OFF, "GL_OES_draw_texture", F(OES_draw_texture) }, -#endif /* FEATURE_OES_draw_texture */ + { "GL_OES_draw_texture", o(OES_draw_texture), ES1 | ES2 }, +#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 }, +#endif + { "GL_OES_element_index_uint", o(EXT_vertex_array), ES1 | ES2 }, + { "GL_OES_fbo_render_mipmap", o(EXT_framebuffer_object), ES1 | ES2 }, + { "GL_OES_fixed_point", o(dummy_true), ES1 }, + { "GL_OES_framebuffer_object", o(EXT_framebuffer_object), ES1 }, + { "GL_OES_mapbuffer", o(ARB_vertex_buffer_object), ES1 | ES2 }, + { "GL_OES_matrix_get", o(dummy_true), ES1 }, + { "GL_OES_packed_depth_stencil", o(EXT_packed_depth_stencil), ES1 | ES2 }, + { "GL_OES_point_size_array", o(dummy_true), ES1 }, + { "GL_OES_point_sprite", o(ARB_point_sprite), ES1 }, + { "GL_OES_query_matrix", o(dummy_true), ES1 }, + { "GL_OES_read_format", o(OES_read_format), GL | ES1 }, + { "GL_OES_rgb8_rgba8", o(EXT_framebuffer_object), ES1 | ES2 }, + { "GL_OES_single_precision", o(dummy_true), ES1 }, + { "GL_OES_standard_derivatives", o(OES_standard_derivatives), ES2 }, + { "GL_OES_stencil1", o(dummy_false), DISABLE }, + { "GL_OES_stencil4", o(dummy_false), DISABLE }, + { "GL_OES_stencil8", o(EXT_framebuffer_object), ES1 | ES2 }, + { "GL_OES_stencil_wrap", o(EXT_stencil_wrap), ES1 }, + /* GL_OES_texture_3D is disabled due to missing GLSL support. */ + { "GL_OES_texture_3D", o(EXT_texture3D), DISABLE }, + { "GL_OES_texture_cube_map", o(ARB_texture_cube_map), ES1 }, + { "GL_OES_texture_env_crossbar", o(ARB_texture_env_crossbar), ES1 }, + { "GL_OES_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), ES1 }, + { "GL_OES_texture_npot", o(ARB_texture_non_power_of_two), ES2 }, + + /* Vendor extensions */ + { "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL }, + { "GL_APPLE_client_storage", o(APPLE_client_storage), GL }, + { "GL_APPLE_object_purgeable", o(APPLE_object_purgeable), GL }, + { "GL_APPLE_packed_pixels", o(APPLE_packed_pixels), GL }, + { "GL_APPLE_vertex_array_object", o(APPLE_vertex_array_object), GL }, + { "GL_ATI_blend_equation_separate", o(EXT_blend_equation_separate), GL }, + { "GL_ATI_envmap_bumpmap", o(ATI_envmap_bumpmap), GL }, + { "GL_ATI_fragment_shader", o(ATI_fragment_shader), GL }, + { "GL_ATI_separate_stencil", o(ATI_separate_stencil), GL }, + { "GL_ATI_texture_env_combine3", o(ATI_texture_env_combine3), GL }, + { "GL_ATI_texture_mirror_once", o(ATI_texture_mirror_once), GL }, + { "GL_IBM_multimode_draw_arrays", o(IBM_multimode_draw_arrays), GL }, + { "GL_IBM_rasterpos_clip", o(IBM_rasterpos_clip), GL }, + { "GL_IBM_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL }, + { "GL_INGR_blend_func_separate", o(EXT_blend_func_separate), GL }, + { "GL_MESA_pack_invert", o(MESA_pack_invert), GL }, + { "GL_MESA_resize_buffers", o(MESA_resize_buffers), GL }, + { "GL_MESA_texture_array", o(MESA_texture_array), GL }, + { "GL_MESA_texture_signed_rgba", o(MESA_texture_signed_rgba), GL }, + { "GL_MESA_window_pos", o(ARB_window_pos), GL }, + { "GL_MESAX_texture_float", o(ARB_texture_float), GL }, + { "GL_MESA_ycbcr_texture", o(MESA_ycbcr_texture), GL }, + { "GL_NV_blend_square", o(NV_blend_square), GL }, + { "GL_NV_conditional_render", o(NV_conditional_render), GL }, + { "GL_NV_depth_clamp", o(ARB_depth_clamp), GL }, + { "GL_NV_fragment_program", o(NV_fragment_program), GL }, + { "GL_NV_fragment_program_option", o(NV_fragment_program_option), GL }, + { "GL_NV_light_max_exponent", o(NV_light_max_exponent), GL }, + { "GL_NV_packed_depth_stencil", o(EXT_packed_depth_stencil), GL }, + { "GL_NV_point_sprite", o(NV_point_sprite), GL }, + { "GL_NV_primitive_restart", o(NV_primitive_restart), GL }, + { "GL_NV_texgen_reflection", o(NV_texgen_reflection), GL }, + { "GL_NV_texture_env_combine4", o(NV_texture_env_combine4), GL }, + { "GL_NV_texture_rectangle", o(NV_texture_rectangle), GL }, + { "GL_NV_vertex_program1_1", o(NV_vertex_program1_1), GL }, + { "GL_NV_vertex_program", o(NV_vertex_program), GL }, + { "GL_S3_s3tc", o(S3_s3tc), GL }, + { "GL_SGIS_generate_mipmap", o(SGIS_generate_mipmap), GL }, + { "GL_SGIS_texture_border_clamp", o(ARB_texture_border_clamp), GL }, + { "GL_SGIS_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL }, + { "GL_SGIS_texture_lod", o(SGIS_texture_lod), GL }, + { "GL_SGI_texture_color_table", o(SGI_texture_color_table), GL }, + { "GL_SUN_multi_draw_arrays", o(EXT_multi_draw_arrays), GL }, + + { 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. @@ -250,7 +393,8 @@ _mesa_enable_sw_extensions(struct gl_context *ctx) #if FEATURE_ARB_framebuffer_object ctx->Extensions.ARB_framebuffer_object = GL_TRUE; #endif -#if FEATURE_ARB_geometry_shader4 +#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; @@ -259,6 +403,7 @@ _mesa_enable_sw_extensions(struct gl_context *ctx) 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 @@ -511,8 +656,7 @@ _mesa_enable_2_1_extensions(struct gl_context *ctx) static GLboolean set_extension( struct gl_context *ctx, const char *name, GLboolean state ) { - GLboolean *base = (GLboolean *) &ctx->Extensions; - GLuint i; + size_t offset; if (ctx->Extensions.String) { /* The string was already queried - can't change it now! */ @@ -520,16 +664,20 @@ set_extension( struct gl_context *ctx, const char *name, GLboolean state ) return GL_FALSE; } - for (i = 0 ; i < Elements(default_extensions) ; i++) { - if (strcmp(default_extensions[i].name, name) == 0) { - if (default_extensions[i].flag_offset) { - GLboolean *enabled = base + default_extensions[i].flag_offset; - *enabled = state; - } - return GL_TRUE; - } + 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; } - return GL_FALSE; } @@ -558,36 +706,22 @@ _mesa_disable_extension( struct gl_context *ctx, const char *name ) /** - * Check if the i-th extension is enabled. - */ -static GLboolean -extension_enabled(struct gl_context *ctx, GLuint index) -{ - const GLboolean *base = (const GLboolean *) &ctx->Extensions; - if (!default_extensions[index].flag_offset || - *(base + default_extensions[index].flag_offset)) { - return GL_TRUE; - } - else { - return GL_FALSE; - } -} - - -/** * Test if the named extension is enabled in this context. */ GLboolean _mesa_extension_is_enabled( struct gl_context *ctx, const char *name ) { - GLuint i; + size_t offset; + GLboolean *base; - for (i = 0 ; i < Elements(default_extensions) ; i++) { - if (strcmp(default_extensions[i].name, name) == 0) { - return extension_enabled(ctx, i); - } - } - return GL_FALSE; + if (name == 0) + return GL_FALSE; + + offset = name_to_offset(name); + if (offset == 0) + return GL_FALSE; + base = (GLboolean *) &ctx->Extensions; + return base[offset]; } @@ -618,8 +752,10 @@ append(const char *a, const char *b) * For extension names that are recognized, turn them on. For extension * names that are recognized and prefixed with '-', turn them off. * Return a string of the unknown/leftover names. + * + * Returnd string needs to be freed. */ -static const char * +static char * get_extension_override( struct gl_context *ctx ) { const char *envExt = _mesa_getenv("MESA_EXTENSION_OVERRIDE"); @@ -666,22 +802,27 @@ get_extension_override( struct gl_context *ctx ) /** - * Run through the default_extensions array above and set the - * ctx->Extensions.ARB/EXT_* flags accordingly. - * To be called during context initialization. + * \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; - GLuint i; - - for (i = 0 ; i < Elements(default_extensions) ; i++) { - if (default_extensions[i].enabled && - default_extensions[i].flag_offset) { - *(base + default_extensions[i].flag_offset) = GL_TRUE; - } - } + 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; } @@ -689,254 +830,46 @@ _mesa_init_extensions( struct gl_context *ctx ) * Construct the GL_EXTENSIONS string. Called the first time that * glGetString(GL_EXTENSIONS) is called. */ -static GLubyte * -compute_extensions( struct gl_context *ctx ) +GLubyte* +_mesa_make_extension_string(struct gl_context *ctx) { - const char *extraExt = get_extension_override(ctx); - GLuint extStrLen = 0; - char *s; - GLuint i; + /* The extension string. */ + char *exts = 0; + /* Length of extension string. */ + size_t length = 0; + /* String of extra extensions. */ + char *extra_extensions = get_extension_override(ctx); + GLboolean *base = (GLboolean *) &ctx->Extensions; + const struct extension *i; - /* first, compute length of the extension string */ - for (i = 0 ; i < Elements(default_extensions) ; i++) { - if (extension_enabled(ctx, i)) { - extStrLen += (GLuint) strlen(default_extensions[i].name) + 1; + /* Compute length of the extension string. */ + for (i = extension_table; i->name != 0; ++i) { + if (base[i->offset] && (i->api_set & (1 << ctx->API))) { + length += strlen(i->name) + 1; /* +1 for space */ } } + if (extra_extensions != NULL) + length += 1 + strlen(extra_extensions); /* +1 for space */ - if (extraExt) - extStrLen += strlen(extraExt) + 1; /* +1 for space */ - - /* allocate the extension string */ - s = (char *) malloc(extStrLen); - if (!s) + exts = (char *) calloc(length + 1, sizeof(char)); + if (exts == NULL) { + free(extra_extensions); return NULL; - - /* second, build the extension string */ - extStrLen = 0; - for (i = 0 ; i < Elements(default_extensions) ; i++) { - if (extension_enabled(ctx, i)) { - GLuint len = (GLuint) strlen(default_extensions[i].name); - memcpy(s + extStrLen, default_extensions[i].name, len); - extStrLen += len; - s[extStrLen] = ' '; - extStrLen++; - } } - ASSERT(extStrLen > 0); - - s[extStrLen - 1] = 0; /* -1 to overwrite trailing the ' ' */ - - if (extraExt) { - s = append(s, " "); - s = append(s, extraExt); - } - - return (GLubyte *) s; -} -static size_t -append_extension(GLubyte **str, const char *ext) -{ - GLubyte *s = *str; - size_t len = strlen(ext); - - if (s) { - memcpy(s, ext, len); - s[len++] = ' '; - s[len] = '\0'; - - *str += len; + /* Build the extension string.*/ + for (i = extension_table; i->name != 0; ++i) { + if (base[i->offset] && (i->api_set & (1 << ctx->API))) { + strcat(exts, i->name); + strcat(exts, " "); + } } - else { - len++; + if (extra_extensions != 0) { + strcat(exts, extra_extensions); + free(extra_extensions); } - return len; -} - - -static size_t -make_extension_string_es1(const struct gl_context *ctx, GLubyte *str) -{ - size_t len = 0; - - /* Core additions */ - len += append_extension(&str, "GL_OES_byte_coordinates"); - len += append_extension(&str, "GL_OES_fixed_point"); - len += append_extension(&str, "GL_OES_single_precision"); - len += append_extension(&str, "GL_OES_matrix_get"); - - /* 1.1 required extensions */ - len += append_extension(&str, "GL_OES_read_format"); - len += append_extension(&str, "GL_OES_compressed_paletted_texture"); - len += append_extension(&str, "GL_OES_point_size_array"); - len += append_extension(&str, "GL_OES_point_sprite"); - - /* 1.1 deprecated extensions */ - len += append_extension(&str, "GL_OES_query_matrix"); - -#if FEATURE_OES_draw_texture - if (ctx->Extensions.OES_draw_texture) - len += append_extension(&str, "GL_OES_draw_texture"); -#endif - - if (ctx->Extensions.EXT_blend_equation_separate) - len += append_extension(&str, "GL_OES_blend_equation_separate"); - if (ctx->Extensions.EXT_blend_func_separate) - len += append_extension(&str, "GL_OES_blend_func_separate"); - if (ctx->Extensions.EXT_blend_subtract) - len += append_extension(&str, "GL_OES_blend_subtract"); - - if (ctx->Extensions.EXT_stencil_wrap) - len += append_extension(&str, "GL_OES_stencil_wrap"); - - if (ctx->Extensions.ARB_texture_cube_map) - len += append_extension(&str, "GL_OES_texture_cube_map"); - if (ctx->Extensions.ARB_texture_env_crossbar) - len += append_extension(&str, "GL_OES_texture_env_crossbar"); - if (ctx->Extensions.ARB_texture_mirrored_repeat) - len += append_extension(&str, "GL_OES_texture_mirrored_repeat"); - - if (ctx->Extensions.ARB_framebuffer_object) { - len += append_extension(&str, "GL_OES_framebuffer_object"); - len += append_extension(&str, "GL_OES_depth24"); - len += append_extension(&str, "GL_OES_depth32"); - len += append_extension(&str, "GL_OES_fbo_render_mipmap"); - len += append_extension(&str, "GL_OES_rgb8_rgba8"); - len += append_extension(&str, "GL_OES_stencil1"); - len += append_extension(&str, "GL_OES_stencil4"); - len += append_extension(&str, "GL_OES_stencil8"); - } - - if (ctx->Extensions.EXT_vertex_array) - len += append_extension(&str, "GL_OES_element_index_uint"); - if (ctx->Extensions.ARB_vertex_buffer_object) - len += append_extension(&str, "GL_OES_mapbuffer"); - if (ctx->Extensions.EXT_texture_filter_anisotropic) - len += append_extension(&str, "GL_EXT_texture_filter_anisotropic"); - - /* some applications check this for NPOT support */ - if (ctx->Extensions.ARB_texture_non_power_of_two) - len += append_extension(&str, "GL_ARB_texture_non_power_of_two"); - - if (ctx->Extensions.EXT_texture_compression_s3tc) - len += append_extension(&str, "GL_EXT_texture_compression_dxt1"); - if (ctx->Extensions.EXT_texture_lod_bias) - len += append_extension(&str, "GL_EXT_texture_lod_bias"); - if (ctx->Extensions.EXT_blend_minmax) - len += append_extension(&str, "GL_EXT_blend_minmax"); - if (ctx->Extensions.EXT_multi_draw_arrays) - len += append_extension(&str, "GL_EXT_multi_draw_arrays"); - -#if FEATURE_OES_EGL_image - if (ctx->Extensions.OES_EGL_image) - len += append_extension(&str, "GL_OES_EGL_image"); -#endif - - return len; -} - - -static GLubyte * -compute_extensions_es1(const struct gl_context *ctx) -{ - GLubyte *s; - unsigned int len; - - len = make_extension_string_es1(ctx, NULL); - s = malloc(len + 1); - if (!s) - return NULL; - make_extension_string_es1(ctx, s); - - return s; -} - -static size_t -make_extension_string_es2(const struct gl_context *ctx, GLubyte *str) -{ - size_t len = 0; - - len += append_extension(&str, "GL_OES_compressed_paletted_texture"); - - if (ctx->Extensions.ARB_framebuffer_object) { - len += append_extension(&str, "GL_OES_depth24"); - len += append_extension(&str, "GL_OES_depth32"); - len += append_extension(&str, "GL_OES_fbo_render_mipmap"); - len += append_extension(&str, "GL_OES_rgb8_rgba8"); - len += append_extension(&str, "GL_OES_stencil1"); - len += append_extension(&str, "GL_OES_stencil4"); - } - - if (ctx->Extensions.EXT_vertex_array) - len += append_extension(&str, "GL_OES_element_index_uint"); - if (ctx->Extensions.ARB_vertex_buffer_object) - len += append_extension(&str, "GL_OES_mapbuffer"); - - if (ctx->Extensions.EXT_texture3D) - len += append_extension(&str, "GL_OES_texture_3D"); - if (ctx->Extensions.ARB_texture_non_power_of_two) - len += append_extension(&str, "GL_OES_texture_npot"); - if (ctx->Extensions.EXT_texture_filter_anisotropic) - len += append_extension(&str, "GL_EXT_texture_filter_anisotropic"); - - len += append_extension(&str, "GL_EXT_texture_type_2_10_10_10_REV"); - if (ctx->Extensions.ARB_depth_texture) - len += append_extension(&str, "GL_OES_depth_texture"); - if (ctx->Extensions.EXT_packed_depth_stencil) - len += append_extension(&str, "GL_OES_packed_depth_stencil"); - if (ctx->Extensions.ARB_fragment_shader) - len += append_extension(&str, "GL_OES_standard_derivatives"); - - if (ctx->Extensions.EXT_texture_compression_s3tc) - len += append_extension(&str, "GL_EXT_texture_compression_dxt1"); - if (ctx->Extensions.EXT_blend_minmax) - len += append_extension(&str, "GL_EXT_blend_minmax"); - if (ctx->Extensions.EXT_multi_draw_arrays) - len += append_extension(&str, "GL_EXT_multi_draw_arrays"); - -#if FEATURE_OES_EGL_image - if (ctx->Extensions.OES_EGL_image) - len += append_extension(&str, "GL_OES_EGL_image"); -#endif - - if (ctx->Extensions.EXT_texture_format_BGRA8888) - len += append_extension(&str, "GL_EXT_texture_format_BGRA8888"); - - return len; -} - -static GLubyte * -compute_extensions_es2(struct gl_context *ctx) -{ - GLubyte *s; - unsigned int len; - - len = make_extension_string_es2(ctx, NULL); - s = malloc(len + 1); - if (!s) - return NULL; - make_extension_string_es2(ctx, s); - - return s; -} - - -GLubyte * -_mesa_make_extension_string(struct gl_context *ctx) -{ - switch (ctx->API) { - case API_OPENGL: - return compute_extensions(ctx); - case API_OPENGLES2: - return compute_extensions_es2(ctx); - case API_OPENGLES: - return compute_extensions_es1(ctx); - default: - assert(0); - return NULL; - } + return (GLubyte *) exts; } /** @@ -945,38 +878,42 @@ _mesa_make_extension_string(struct gl_context *ctx) GLuint _mesa_get_extension_count(struct gl_context *ctx) { - GLuint i; + GLboolean *base; + const struct extension *i; /* only count once */ - if (!ctx->Extensions.Count) { - for (i = 0; i < Elements(default_extensions); i++) { - if (extension_enabled(ctx, i)) { - ctx->Extensions.Count++; - } + 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++; } } - - if (0) - _mesa_debug(ctx, "%u of %d extensions enabled\n", ctx->Extensions.Count, - (int) Elements(default_extensions)); - return ctx->Extensions.Count; } - /** * Return name of i-th enabled extension */ const GLubyte * _mesa_get_enabled_extension(struct gl_context *ctx, GLuint index) { - GLuint i; + const GLboolean *base; + size_t n; + const struct extension *i; + + if (index < 0) + return NULL; - for (i = 0; i < Elements(default_extensions); i++) { - if (extension_enabled(ctx, i)) { - if (index == 0) - return (const GLubyte *) default_extensions[i].name; - index--; + 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; } } diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 7c3357043f..f31d8b36db 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -40,6 +40,8 @@ #include "framebuffer.h" #include "hash.h" #include "macros.h" +#include "mfeatures.h" +#include "mtypes.h" #include "renderbuffer.h" #include "state.h" #include "teximage.h" @@ -402,8 +404,8 @@ fbo_incomplete(const char *msg, int index) /** * Is the given base format a legal format for a color renderbuffer? */ -static GLboolean -is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat) +GLboolean +_mesa_is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat) { switch (baseFormat) { case GL_RGB: @@ -488,7 +490,7 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format, baseFormat = _mesa_get_format_base_format(texImage->TexFormat); if (format == GL_COLOR) { - if (!is_legal_color_format(ctx, baseFormat)) { + if (!_mesa_is_legal_color_format(ctx, baseFormat)) { att_incomplete("bad format"); att->Complete = GL_FALSE; return; @@ -542,8 +544,7 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format, return; } if (format == GL_COLOR) { - if (baseFormat != GL_RGB && - baseFormat != GL_RGBA) { + if (!_mesa_is_legal_color_format(ctx, baseFormat)) { att_incomplete("bad renderbuffer color format"); att->Complete = GL_FALSE; return; @@ -669,7 +670,7 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx, f = texImg->_BaseFormat; mesaFormat = texImg->TexFormat; numImages++; - if (!is_legal_color_format(ctx, f) && + if (!_mesa_is_legal_color_format(ctx, f) && !is_legal_depth_format(ctx, f)) { fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT; fbo_incomplete("texture attachment incomplete", -1); @@ -793,7 +794,7 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx, fb->Height = minHeight; /* finally, update the visual info for the framebuffer */ - _mesa_update_framebuffer_visual(fb); + _mesa_update_framebuffer_visual(ctx, fb); } } @@ -959,67 +960,42 @@ _mesa_GenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers) /** - * Given an internal format token for a render buffer, return the + * Given an internal format token for a renderbuffer, return the * corresponding base format. - * This is very similar to _mesa_base_tex_format() but the set of valid - * internal formats is somewhat different. - * - * \return one of GL_RGB, GL_RGBA, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT - * GL_DEPTH_STENCIL_EXT or zero if error. - * - * XXX in the future when we support red-only and red-green formats - * we'll also return GL_RED and GL_RG. */ GLenum _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat) { + GLenum baseFormat; + switch (internalFormat) { - case GL_ALPHA: - case GL_ALPHA4: - case GL_ALPHA8: - case GL_ALPHA12: - case GL_ALPHA16: - return GL_ALPHA; - case GL_RGB: - case GL_R3_G3_B2: - case GL_RGB4: - case GL_RGB5: - case GL_RGB8: - case GL_RGB10: - case GL_RGB12: - case GL_RGB16: - return GL_RGB; - case GL_RGBA: - case GL_RGBA2: - case GL_RGBA4: - case GL_RGB5_A1: - case GL_RGBA8: - case GL_RGB10_A2: - case GL_RGBA12: - case GL_RGBA16: case GL_RGBA16_SNORM: + /* This is used internally by Mesa for accum buffers. */ return GL_RGBA; case GL_STENCIL_INDEX: case GL_STENCIL_INDEX1_EXT: case GL_STENCIL_INDEX4_EXT: case GL_STENCIL_INDEX8_EXT: case GL_STENCIL_INDEX16_EXT: + /* This is not a valid texture internalFormat, but valid for + * renderbuffers. + */ return GL_STENCIL_INDEX; case GL_DEPTH_COMPONENT: case GL_DEPTH_COMPONENT16: case GL_DEPTH_COMPONENT24: case GL_DEPTH_COMPONENT32: + /* This is an override of _mesa_base_tex_format's check that + * ARB_depth_texture is present. We allow depth RBs without it. + */ return GL_DEPTH_COMPONENT; - case GL_DEPTH_STENCIL_EXT: - case GL_DEPTH24_STENCIL8_EXT: - if (ctx->Extensions.EXT_packed_depth_stencil) - return GL_DEPTH_STENCIL_EXT; - else - return 0; - /* XXX add floating point formats eventually */ - default: - return 0; } + + baseFormat = _mesa_base_tex_format(ctx, internalFormat); + if (baseFormat < 0) + return 0; + + return baseFormat; } @@ -1055,6 +1031,14 @@ renderbuffer_storage(GLenum target, GLenum internalFormat, return; } + if (baseFormat != GL_DEPTH_COMPONENT && + baseFormat != GL_STENCIL_INDEX && + baseFormat != GL_DEPTH_STENCIL && + !_mesa_is_legal_color_format(ctx, baseFormat)) { + _mesa_error(ctx, GL_INVALID_ENUM, "%s(internalFormat)", func); + return; + } + if (width < 1 || width > (GLsizei) ctx->Const.MaxRenderbufferSize) { _mesa_error(ctx, GL_INVALID_VALUE, "%s(width)", func); return; @@ -1172,8 +1156,17 @@ get_component_bits(GLenum pname, GLenum baseFormat, gl_format format) switch (pname) { case GL_RENDERBUFFER_RED_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: + if (baseFormat == GL_RGB || baseFormat == GL_RGBA || + baseFormat == GL_RG || baseFormat == GL_RED) + return _mesa_get_format_bits(format, pname); + else + return 0; case GL_RENDERBUFFER_GREEN_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: + if (baseFormat == GL_RGB || baseFormat == GL_RGBA || baseFormat == GL_RG) + return _mesa_get_format_bits(format, pname); + else + return 0; case GL_RENDERBUFFER_BLUE_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: if (baseFormat == GL_RGB || baseFormat == GL_RGBA) @@ -1182,7 +1175,8 @@ get_component_bits(GLenum pname, GLenum baseFormat, gl_format format) return 0; case GL_RENDERBUFFER_ALPHA_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: - if (baseFormat == GL_RGBA || baseFormat == GL_ALPHA) + if (baseFormat == GL_RGBA || baseFormat == GL_ALPHA || + baseFormat == GL_LUMINANCE_ALPHA) return _mesa_get_format_bits(format, pname); else return 0; @@ -1913,6 +1907,13 @@ _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment, " renderbuffer %u)", renderbuffer); return; } + else if (rb == &DummyRenderbuffer) { + /* This is what NVIDIA does */ + _mesa_error(ctx, GL_INVALID_VALUE, + "glFramebufferRenderbufferEXT(renderbuffer %u)", + renderbuffer); + return; + } } else { /* remove renderbuffer attachment */ @@ -1940,7 +1941,7 @@ _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment, /* Some subsequent GL commands may depend on the framebuffer's visual * after the binding is updated. Update visual info now. */ - _mesa_update_framebuffer_visual(fb); + _mesa_update_framebuffer_visual(ctx, fb); } @@ -2014,7 +2015,7 @@ _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, switch (pname) { case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT: - *params = att->Type; + *params = buffer->Name == 0 ? GL_FRAMEBUFFER_DEFAULT : att->Type; return; case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT: if (att->Type == GL_RENDERBUFFER_EXT) { @@ -2024,8 +2025,8 @@ _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, *params = att->Texture->Name; } else { - _mesa_error(ctx, GL_INVALID_ENUM, - "glGetFramebufferAttachmentParameterivEXT(pname)"); + assert(att->Type == GL_NONE); + *params = 0; } return; case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT: @@ -2146,6 +2147,7 @@ _mesa_GenerateMipmapEXT(GLenum target) /* OK, legal value */ break; default: + /* XXX need to implement GL_TEXTURE_1D_ARRAY and GL_TEXTURE_2D_ARRAY */ _mesa_error(ctx, GL_INVALID_ENUM, "glGenerateMipmapEXT(target)"); return; } @@ -2157,6 +2159,13 @@ _mesa_GenerateMipmapEXT(GLenum target) return; } + if (texObj->Target == GL_TEXTURE_CUBE_MAP && + !_mesa_cube_complete(texObj)) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glGenerateMipmap(incomplete cube map)"); + return; + } + _mesa_lock_texture(ctx, texObj); if (target == GL_TEXTURE_CUBE_MAP) { GLuint face; diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h index 2aace2ebd4..8763f99c4a 100644 --- a/src/mesa/main/fbobject.h +++ b/src/mesa/main/fbobject.h @@ -71,6 +71,9 @@ _mesa_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb extern void _mesa_test_framebuffer_completeness(struct gl_context *ctx, struct gl_framebuffer *fb); +extern GLboolean +_mesa_is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat); + extern GLenum _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat); diff --git a/src/mesa/main/feedback.c b/src/mesa/main/feedback.c index ffdecaecc2..fcb089f1f3 100644 --- a/src/mesa/main/feedback.c +++ b/src/mesa/main/feedback.c @@ -35,6 +35,7 @@ #include "enums.h" #include "feedback.h" #include "macros.h" +#include "mfeatures.h" #include "mtypes.h" #include "main/dispatch.h" diff --git a/src/mesa/main/feedback.h b/src/mesa/main/feedback.h index f9fbbce70b..0039a0b4cb 100644 --- a/src/mesa/main/feedback.h +++ b/src/mesa/main/feedback.h @@ -27,6 +27,7 @@ #define FEEDBACK_H +#include "main/mfeatures.h" #include "main/mtypes.h" diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c index 0f2c313c81..b8e49a3757 100644 --- a/src/mesa/main/ffvertex_prog.c +++ b/src/mesa/main/ffvertex_prog.c @@ -36,6 +36,7 @@ #include "main/glheader.h" #include "main/mtypes.h" #include "main/macros.h" +#include "main/mfeatures.h" #include "main/enums.h" #include "main/ffvertex_prog.h" #include "program/program.h" diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c index 88a04e888e..1bc72726e1 100644 --- a/src/mesa/main/formats.c +++ b/src/mesa/main/formats.c @@ -40,9 +40,10 @@ struct gl_format_info const char *StrName; /** - * Base format is one of GL_RGB, GL_RGBA, GL_ALPHA, GL_LUMINANCE, - * GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_YCBCR_MESA, GL_COLOR_INDEX, - * GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, GL_DEPTH_STENCIL. + * Base format is one of GL_RED, GL_RG, GL_RGB, GL_RGBA, GL_ALPHA, + * GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_YCBCR_MESA, + * GL_COLOR_INDEX, GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, + * GL_DEPTH_STENCIL, GL_DUDV_ATI. */ GLenum BaseFormat; @@ -222,6 +223,15 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = 1, 1, 2 /* BlockWidth/Height,Bytes */ }, { + MESA_FORMAT_AL44, /* Name */ + "MESA_FORMAT_AL44", /* StrName */ + GL_LUMINANCE_ALPHA, /* BaseFormat */ + GL_UNSIGNED_NORMALIZED, /* DataType */ + 0, 0, 0, 4, /* Red/Green/Blue/AlphaBits */ + 4, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ + 1, 1, 1 /* BlockWidth/Height,Bytes */ + }, + { MESA_FORMAT_AL88, /* Name */ "MESA_FORMAT_AL88", /* StrName */ GL_LUMINANCE_ALPHA, /* BaseFormat */ @@ -276,6 +286,15 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = 1, 1, 1 /* BlockWidth/Height,Bytes */ }, { + MESA_FORMAT_A16, /* Name */ + "MESA_FORMAT_A16", /* StrName */ + GL_ALPHA, /* BaseFormat */ + GL_UNSIGNED_NORMALIZED, /* DataType */ + 0, 0, 0, 16, /* Red/Green/Blue/AlphaBits */ + 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ + 1, 1, 2 /* BlockWidth/Height,Bytes */ + }, + { MESA_FORMAT_L8, /* Name */ "MESA_FORMAT_L8", /* StrName */ GL_LUMINANCE, /* BaseFormat */ @@ -285,6 +304,15 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = 1, 1, 1 /* BlockWidth/Height,Bytes */ }, { + MESA_FORMAT_L16, /* Name */ + "MESA_FORMAT_L16", /* StrName */ + GL_LUMINANCE, /* BaseFormat */ + GL_UNSIGNED_NORMALIZED, /* DataType */ + 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ + 16, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ + 1, 1, 2 /* BlockWidth/Height,Bytes */ + }, + { MESA_FORMAT_I8, /* Name */ "MESA_FORMAT_I8", /* StrName */ GL_INTENSITY, /* BaseFormat */ @@ -294,6 +322,15 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = 1, 1, 1 /* BlockWidth/Height,Bytes */ }, { + MESA_FORMAT_I16, /* Name */ + "MESA_FORMAT_I16", /* StrName */ + GL_INTENSITY, /* BaseFormat */ + GL_UNSIGNED_NORMALIZED, /* DataType */ + 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ + 0, 16, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ + 1, 1, 2 /* BlockWidth/Height,Bytes */ + }, + { MESA_FORMAT_CI8, /* Name */ "MESA_FORMAT_CI8", /* StrName */ GL_COLOR_INDEX, /* BaseFormat */ @@ -375,6 +412,15 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = 1, 1, 4 }, { + MESA_FORMAT_ARGB2101010, + "MESA_FORMAT_ARGB2101010", + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 10, 10, 10, 2, + 0, 0, 0, 0, 0, + 1, 1, 4 + }, + { MESA_FORMAT_Z24_S8, /* Name */ "MESA_FORMAT_Z24_S8", /* StrName */ GL_DEPTH_STENCIL, /* BaseFormat */ @@ -756,7 +802,7 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = { MESA_FORMAT_SIGNED_R8, /* Name */ "MESA_FORMAT_SIGNED_R8", /* StrName */ - GL_RGBA, /* BaseFormat */ + GL_RED, /* BaseFormat */ GL_SIGNED_NORMALIZED, /* DataType */ 8, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ @@ -765,7 +811,7 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = { MESA_FORMAT_SIGNED_RG88, "MESA_FORMAT_SIGNED_RG88", - GL_RGBA, + GL_RG, GL_SIGNED_NORMALIZED, 8, 8, 0, 0, 0, 0, 0, 0, 0, @@ -774,7 +820,7 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = { MESA_FORMAT_SIGNED_RGBX8888, "MESA_FORMAT_SIGNED_RGBX8888", - GL_RGBA, + GL_RGB, GL_SIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 0, 0, @@ -803,7 +849,7 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = { MESA_FORMAT_SIGNED_R_16, "MESA_FORMAT_SIGNED_R_16", - GL_RGBA, + GL_RED, GL_SIGNED_NORMALIZED, 16, 0, 0, 0, 0, 0, 0, 0, 0, @@ -812,7 +858,7 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = { MESA_FORMAT_SIGNED_RG_16, "MESA_FORMAT_SIGNED_RG_16", - GL_RGBA, + GL_RG, GL_SIGNED_NORMALIZED, 16, 16, 0, 0, 0, 0, 0, 0, 0, @@ -821,7 +867,7 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = { MESA_FORMAT_SIGNED_RGB_16, "MESA_FORMAT_SIGNED_RGB_16", - GL_RGBA, + GL_RGB, GL_SIGNED_NORMALIZED, 16, 16, 16, 0, 0, 0, 0, 0, 0, @@ -863,7 +909,6 @@ const char * _mesa_get_format_name(gl_format format) { const struct gl_format_info *info = _mesa_get_format_info(format); - ASSERT(info->BytesPerBlock); return info->StrName; } @@ -1057,11 +1102,12 @@ _mesa_format_image_size(gl_format format, GLsizei width, const struct gl_format_info *info = _mesa_get_format_info(format); /* Strictly speaking, a conditional isn't needed here */ if (info->BlockWidth > 1 || info->BlockHeight > 1) { - /* compressed format */ + /* compressed format (2D only for now) */ const GLuint bw = info->BlockWidth, bh = info->BlockHeight; const GLuint wblocks = (width + bw - 1) / bw; const GLuint hblocks = (height + bh - 1) / bh; const GLuint sz = wblocks * hblocks * info->BytesPerBlock; + assert(depth == 1); return sz; } else { @@ -1072,6 +1118,36 @@ _mesa_format_image_size(gl_format format, GLsizei width, } +/** + * Same as _mesa_format_image_size() but returns a 64-bit value to + * accomodate very large textures. + */ +uint64_t +_mesa_format_image_size64(gl_format format, GLsizei width, + GLsizei height, GLsizei depth) +{ + const struct gl_format_info *info = _mesa_get_format_info(format); + /* Strictly speaking, a conditional isn't needed here */ + if (info->BlockWidth > 1 || info->BlockHeight > 1) { + /* compressed format (2D only for now) */ + const uint64_t bw = info->BlockWidth, bh = info->BlockHeight; + const uint64_t wblocks = (width + bw - 1) / bw; + const uint64_t hblocks = (height + bh - 1) / bh; + const uint64_t sz = wblocks * hblocks * info->BytesPerBlock; + assert(depth == 1); + return sz; + } + else { + /* non-compressed */ + const uint64_t sz = ((uint64_t) width * + (uint64_t) height * + (uint64_t) depth * + info->BytesPerBlock); + return sz; + } +} + + GLint _mesa_format_row_stride(gl_format format, GLsizei width) @@ -1092,6 +1168,27 @@ _mesa_format_row_stride(gl_format format, GLsizei width) } +/** + * Debug/test: check that all formats are handled in the + * _mesa_format_to_type_and_comps() function. When new pixel formats + * are added to Mesa, that function needs to be updated. + * This is a no-op after the first call. + */ +static void +check_format_to_type_and_comps(void) +{ + gl_format f; + + for (f = MESA_FORMAT_NONE + 1; f < MESA_FORMAT_COUNT; f++) { + GLenum datatype = 0; + GLuint comps = 0; + /* This function will emit a problem/warning if the format is + * not handled. + */ + _mesa_format_to_type_and_comps(f, &datatype, &comps); + } +} + /** * Do sanity checking of the format info table. @@ -1116,7 +1213,7 @@ _mesa_test_formats(void) if (info->RedBits > 0) { GLuint t = info->RedBits + info->GreenBits + info->BlueBits + info->AlphaBits; - assert(t / 8 == info->BytesPerBlock); + assert(t / 8 <= info->BytesPerBlock); (void) t; } } @@ -1124,6 +1221,7 @@ _mesa_test_formats(void) assert(info->DataType == GL_UNSIGNED_NORMALIZED || info->DataType == GL_SIGNED_NORMALIZED || info->DataType == GL_UNSIGNED_INT || + info->DataType == GL_INT || info->DataType == GL_FLOAT); if (info->BaseFormat == GL_RGB) { @@ -1174,8 +1272,9 @@ _mesa_test_formats(void) assert(info->LuminanceBits == 0); assert(info->IntensityBits > 0); } - } + + check_format_to_type_and_comps(); } @@ -1221,11 +1320,17 @@ _mesa_format_to_type_and_comps(gl_format format, *comps = 4; return; + case MESA_FORMAT_ARGB2101010: + *datatype = GL_UNSIGNED_INT_2_10_10_10_REV; + *comps = 4; + return; + case MESA_FORMAT_RGBA5551: *datatype = GL_UNSIGNED_SHORT_5_5_5_1; *comps = 4; return; + case MESA_FORMAT_AL44: /* XXX this isn't plain GL_UNSIGNED_BYTE */ case MESA_FORMAT_AL88: case MESA_FORMAT_AL88_REV: case MESA_FORMAT_RG88: @@ -1243,6 +1348,9 @@ _mesa_format_to_type_and_comps(gl_format format, return; case MESA_FORMAT_R16: + case MESA_FORMAT_A16: + case MESA_FORMAT_L16: + case MESA_FORMAT_I16: *datatype = GL_UNSIGNED_SHORT; *comps = 1; return; @@ -1447,10 +1555,13 @@ _mesa_format_to_type_and_comps(gl_format format, *comps = 4; return; - case MESA_FORMAT_NONE: case MESA_FORMAT_COUNT: + assert(0); + return; + + case MESA_FORMAT_NONE: /* For debug builds, warn if any formats are not handled */ -#ifndef DEBUG +#ifdef DEBUG default: #endif _mesa_problem(NULL, "bad format %s in _mesa_format_to_type_and_comps", diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h index eeb460dabe..b8e76664f8 100644 --- a/src/mesa/main/formats.h +++ b/src/mesa/main/formats.h @@ -65,14 +65,18 @@ typedef enum MESA_FORMAT_RGBA5551, /* RRRR RGGG GGBB BBBA */ MESA_FORMAT_ARGB1555, /* ARRR RRGG GGGB BBBB */ MESA_FORMAT_ARGB1555_REV, /* GGGB BBBB ARRR RRGG */ + MESA_FORMAT_AL44, /* AAAA LLLL */ MESA_FORMAT_AL88, /* AAAA AAAA LLLL LLLL */ MESA_FORMAT_AL88_REV, /* LLLL LLLL AAAA AAAA */ MESA_FORMAT_AL1616, /* AAAA AAAA AAAA AAAA LLLL LLLL LLLL LLLL */ MESA_FORMAT_AL1616_REV, /* LLLL LLLL LLLL LLLL AAAA AAAA AAAA AAAA */ MESA_FORMAT_RGB332, /* RRRG GGBB */ MESA_FORMAT_A8, /* AAAA AAAA */ + MESA_FORMAT_A16, /* AAAA AAAA AAAA AAAA */ MESA_FORMAT_L8, /* LLLL LLLL */ + MESA_FORMAT_L16, /* LLLL LLLL LLLL LLLL */ MESA_FORMAT_I8, /* IIII IIII */ + MESA_FORMAT_I16, /* IIII IIII IIII IIII */ MESA_FORMAT_CI8, /* CCCC CCCC */ MESA_FORMAT_YCBCR, /* YYYY YYYY UorV UorV */ MESA_FORMAT_YCBCR_REV, /* UorV UorV YYYY YYYY */ @@ -82,6 +86,7 @@ typedef enum MESA_FORMAT_R16, /* RRRR RRRR RRRR RRRR */ MESA_FORMAT_RG1616, /* RRRR RRRR RRRR RRRR GGGG GGGG GGGG GGGG */ MESA_FORMAT_RG1616_REV, /* GGGG GGGG GGGG GGGG RRRR RRRR RRRR RRRR */ + MESA_FORMAT_ARGB2101010, /* AARR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */ MESA_FORMAT_Z24_S8, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */ MESA_FORMAT_S8_Z24, /* SSSS SSSS ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */ MESA_FORMAT_Z16, /* ZZZZ ZZZZ ZZZZ ZZZZ */ @@ -209,6 +214,10 @@ extern GLuint _mesa_format_image_size(gl_format format, GLsizei width, GLsizei height, GLsizei depth); +extern uint64_t +_mesa_format_image_size64(gl_format format, GLsizei width, + GLsizei height, GLsizei depth); + extern GLint _mesa_format_row_stride(gl_format format, GLsizei width); diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c index 5530c51c89..63da71c95b 100644 --- a/src/mesa/main/framebuffer.c +++ b/src/mesa/main/framebuffer.c @@ -522,7 +522,8 @@ _mesa_update_draw_buffer_bounds(struct gl_context *ctx) * integer Z values. */ void -_mesa_update_framebuffer_visual(struct gl_framebuffer *fb) +_mesa_update_framebuffer_visual(struct gl_context *ctx, + struct gl_framebuffer *fb) { GLuint i; @@ -542,9 +543,8 @@ _mesa_update_framebuffer_visual(struct gl_framebuffer *fb) const struct gl_renderbuffer *rb = fb->Attachment[i].Renderbuffer; const GLenum baseFormat = _mesa_get_format_base_format(rb->Format); const gl_format fmt = rb->Format; - - if (baseFormat == GL_RGBA || baseFormat == GL_RGB || - baseFormat == GL_ALPHA) { + + if (_mesa_is_legal_color_format(ctx, baseFormat)) { fb->Visual.redBits = _mesa_get_format_bits(fmt, GL_RED_BITS); fb->Visual.greenBits = _mesa_get_format_bits(fmt, GL_GREEN_BITS); fb->Visual.blueBits = _mesa_get_format_bits(fmt, GL_BLUE_BITS); diff --git a/src/mesa/main/framebuffer.h b/src/mesa/main/framebuffer.h index 20e3ff56b5..c3bd638c9d 100644 --- a/src/mesa/main/framebuffer.h +++ b/src/mesa/main/framebuffer.h @@ -70,7 +70,8 @@ extern void _mesa_update_draw_buffer_bounds(struct gl_context *ctx); extern void -_mesa_update_framebuffer_visual(struct gl_framebuffer *fb); +_mesa_update_framebuffer_visual(struct gl_context *ctx, + struct gl_framebuffer *fb); extern void _mesa_update_depth_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index b54af6ee86..ba273cef46 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -29,6 +29,7 @@ #include "extensions.h" #include "get.h" #include "macros.h" +#include "mfeatures.h" #include "mtypes.h" #include "state.h" #include "texcompress.h" @@ -272,6 +273,7 @@ static const int extra_EXT_gpu_shader4[] = { }; +EXTRA_EXT(ARB_ES2_compatibility); EXTRA_EXT(ARB_multitexture); EXTRA_EXT(ARB_texture_cube_map); EXTRA_EXT(MESA_texture_array); @@ -314,6 +316,7 @@ EXTRA_EXT2(ARB_vertex_program, NV_vertex_program); EXTRA_EXT2(ARB_vertex_program, ARB_fragment_program); EXTRA_EXT(ARB_vertex_buffer_object); EXTRA_EXT(ARB_geometry_shader4); +EXTRA_EXT(ARB_copy_buffer); static const int extra_ARB_vertex_program_ARB_fragment_program_NV_vertex_program[] = { @@ -469,6 +472,10 @@ static const struct value_desc values[] = { { GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB, LOC_CUSTOM, TYPE_INT, 0, extra_ARB_vertex_buffer_object }, + /* GL_ARB_copy_buffer */ + { GL_COPY_READ_BUFFER, LOC_CUSTOM, TYPE_INT, 0, extra_ARB_copy_buffer }, + { GL_COPY_WRITE_BUFFER, LOC_CUSTOM, TYPE_INT, 0, extra_ARB_copy_buffer }, + /* GL_OES_read_format */ { GL_IMPLEMENTATION_COLOR_READ_TYPE_OES, LOC_CUSTOM, TYPE_INT, 0, extra_new_buffers_OES_read_format }, @@ -581,6 +588,15 @@ static const struct value_desc values[] = { { GL_TEXTURE_COORD_ARRAY_STRIDE, LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Stride), NO_EXTRA }, + /* GL_ARB_ES2_compatibility */ + { GL_SHADER_COMPILER, CONST(1), extra_ARB_ES2_compatibility }, + { GL_MAX_VARYING_VECTORS, CONTEXT_INT(Const.MaxVarying), + extra_ARB_ES2_compatibility }, + { GL_MAX_VERTEX_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, 0, + extra_ARB_ES2_compatibility }, + { GL_MAX_FRAGMENT_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, 0, + extra_ARB_ES2_compatibility }, + /* GL_ARB_multitexture */ { GL_MAX_TEXTURE_UNITS_ARB, CONTEXT_INT(Const.MaxTextureUnits), extra_ARB_multitexture }, @@ -700,12 +716,9 @@ static const struct value_desc values[] = { #if FEATURE_ES2 /* Enums unique to OpenGL ES 2.0 */ { 0, 0, TYPE_API_MASK, API_OPENGLES2_BIT, NO_EXTRA }, - { GL_MAX_FRAGMENT_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, - offsetof(struct gl_context, Const.FragmentProgram.MaxUniformComponents), NO_EXTRA }, - { GL_MAX_VARYING_VECTORS, LOC_CUSTOM, TYPE_INT, - offsetof(struct gl_context, Const.MaxVarying), NO_EXTRA }, - { GL_MAX_VERTEX_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, - offsetof(struct gl_context, Const.VertexProgram.MaxUniformComponents), NO_EXTRA }, + { GL_MAX_FRAGMENT_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA }, + { GL_MAX_VARYING_VECTORS, CONTEXT_INT(Const.MaxVarying), NO_EXTRA }, + { GL_MAX_VERTEX_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA }, { GL_SHADER_COMPILER, CONST(1), NO_EXTRA }, /* OES_get_program_binary */ { GL_NUM_SHADER_BINARY_FORMATS, CONST(0), NO_EXTRA }, @@ -1112,6 +1125,14 @@ static const struct value_desc values[] = { extra_valid_draw_buffer }, { GL_DRAW_BUFFER3_ARB, BUFFER_ENUM(ColorDrawBuffer[3]), extra_valid_draw_buffer }, + { GL_DRAW_BUFFER4_ARB, BUFFER_ENUM(ColorDrawBuffer[4]), + extra_valid_draw_buffer }, + { GL_DRAW_BUFFER5_ARB, BUFFER_ENUM(ColorDrawBuffer[5]), + extra_valid_draw_buffer }, + { GL_DRAW_BUFFER6_ARB, BUFFER_ENUM(ColorDrawBuffer[6]), + extra_valid_draw_buffer }, + { GL_DRAW_BUFFER7_ARB, BUFFER_ENUM(ColorDrawBuffer[7]), + extra_valid_draw_buffer }, /* GL_ATI_fragment_shader */ { GL_NUM_FRAGMENT_REGISTERS_ATI, CONST(6), extra_ATI_fragment_shader }, @@ -1564,6 +1585,14 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu v->value_int = ctx->Array.ElementArrayBufferObj->Name; break; + /* ARB_copy_buffer */ + case GL_COPY_READ_BUFFER: + v->value_int = ctx->CopyReadBuffer->Name; + break; + case GL_COPY_WRITE_BUFFER: + v->value_int = ctx->CopyWriteBuffer->Name; + break; + case GL_FRAGMENT_PROGRAM_BINDING_NV: v->value_int = ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0; @@ -1604,6 +1633,14 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: v->value_int = ctx->Array.ArrayObj->PointSize.BufferObj->Name; break; + + case GL_MAX_VERTEX_UNIFORM_VECTORS: + v->value_int = ctx->Const.VertexProgram.MaxUniformComponents / 4; + break; + + case GL_MAX_FRAGMENT_UNIFORM_VECTORS: + v->value_int = ctx->Const.FragmentProgram.MaxUniformComponents / 4; + break; } } @@ -1733,16 +1770,18 @@ find_value(const char *func, GLenum pname, void **p, union value *v) hash = (pname * prime_factor); while (1) { d = &values[table[hash & mask]]; - if (likely(d->pname == pname)) - break; /* If the enum isn't valid, the hash walk ends with index 0, * which is the API mask entry at the beginning of values[]. */ - if (d->type == TYPE_API_MASK) { + if (unlikely(d->type == TYPE_API_MASK)) { _mesa_error(ctx, GL_INVALID_ENUM, "%s(pname=%s)", func, _mesa_lookup_enum_by_nr(pname)); return &error_value; } + + if (likely(d->pname == pname)) + break; + hash += prime_step; } @@ -2282,8 +2321,10 @@ void GLAPIENTRY _mesa_GetBooleanIndexedv( GLenum pname, GLuint index, GLboolean *params ) { union value v; + enum value_type type = + find_value_indexed("glGetBooleanIndexedv", pname, index, &v); - switch (find_value_indexed("glGetBooleanIndexedv", pname, index, &v)) { + switch (type) { case TYPE_INT: params[0] = INT_TO_BOOLEAN(v.value_int); break; @@ -2297,7 +2338,7 @@ _mesa_GetBooleanIndexedv( GLenum pname, GLuint index, GLboolean *params ) params[0] = INT64_TO_BOOLEAN(v.value_int); break; default: - assert(0); + ; /* nothing - GL error was recorded */ } } @@ -2305,8 +2346,10 @@ void GLAPIENTRY _mesa_GetIntegerIndexedv( GLenum pname, GLuint index, GLint *params ) { union value v; + enum value_type type = + find_value_indexed("glGetIntegerIndexedv", pname, index, &v); - switch (find_value_indexed("glGetIntegerIndexedv", pname, index, &v)) { + switch (type) { case TYPE_INT: params[0] = v.value_int; break; @@ -2320,7 +2363,7 @@ _mesa_GetIntegerIndexedv( GLenum pname, GLuint index, GLint *params ) params[0] = INT64_TO_INT(v.value_int); break; default: - assert(0); + ; /* nothing - GL error was recorded */ } } @@ -2329,8 +2372,10 @@ void GLAPIENTRY _mesa_GetInteger64Indexedv( GLenum pname, GLuint index, GLint64 *params ) { union value v; + enum value_type type = + find_value_indexed("glGetIntegerIndexedv", pname, index, &v); - switch (find_value_indexed("glGetIntegerIndexedv", pname, index, &v)) { + switch (type) { case TYPE_INT: params[0] = v.value_int; break; @@ -2344,7 +2389,7 @@ _mesa_GetInteger64Indexedv( GLenum pname, GLuint index, GLint64 *params ) params[0] = v.value_int; break; default: - assert(0); + ; /* nothing - GL error was recorded */ } } #endif /* FEATURE_ARB_sync */ diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c index bfa283f6a3..f8866f6858 100644 --- a/src/mesa/main/getstring.c +++ b/src/mesa/main/getstring.c @@ -29,6 +29,8 @@ #include "get.h" #include "enums.h" #include "extensions.h" +#include "mfeatures.h" +#include "mtypes.h" /** diff --git a/src/mesa/main/glapidispatch.h b/src/mesa/main/glapidispatch.h index 87784269c5..29823d06fe 100644 --- a/src/mesa/main/glapidispatch.h +++ b/src/mesa/main/glapidispatch.h @@ -59,7 +59,7 @@ } while(0) /* total number of offsets below */ -#define _gloffset_COUNT 881 +#define _gloffset_COUNT 886 #define _gloffset_NewList 0 #define _gloffset_EndList 1 @@ -664,291 +664,296 @@ #define _gloffset_IsTransformFeedback 597 #define _gloffset_PauseTransformFeedback 598 #define _gloffset_ResumeTransformFeedback 599 -#define _gloffset_PolygonOffsetEXT 600 -#define _gloffset_GetPixelTexGenParameterfvSGIS 601 -#define _gloffset_GetPixelTexGenParameterivSGIS 602 -#define _gloffset_PixelTexGenParameterfSGIS 603 -#define _gloffset_PixelTexGenParameterfvSGIS 604 -#define _gloffset_PixelTexGenParameteriSGIS 605 -#define _gloffset_PixelTexGenParameterivSGIS 606 -#define _gloffset_SampleMaskSGIS 607 -#define _gloffset_SamplePatternSGIS 608 -#define _gloffset_ColorPointerEXT 609 -#define _gloffset_EdgeFlagPointerEXT 610 -#define _gloffset_IndexPointerEXT 611 -#define _gloffset_NormalPointerEXT 612 -#define _gloffset_TexCoordPointerEXT 613 -#define _gloffset_VertexPointerEXT 614 -#define _gloffset_PointParameterfEXT 615 -#define _gloffset_PointParameterfvEXT 616 -#define _gloffset_LockArraysEXT 617 -#define _gloffset_UnlockArraysEXT 618 -#define _gloffset_SecondaryColor3bEXT 619 -#define _gloffset_SecondaryColor3bvEXT 620 -#define _gloffset_SecondaryColor3dEXT 621 -#define _gloffset_SecondaryColor3dvEXT 622 -#define _gloffset_SecondaryColor3fEXT 623 -#define _gloffset_SecondaryColor3fvEXT 624 -#define _gloffset_SecondaryColor3iEXT 625 -#define _gloffset_SecondaryColor3ivEXT 626 -#define _gloffset_SecondaryColor3sEXT 627 -#define _gloffset_SecondaryColor3svEXT 628 -#define _gloffset_SecondaryColor3ubEXT 629 -#define _gloffset_SecondaryColor3ubvEXT 630 -#define _gloffset_SecondaryColor3uiEXT 631 -#define _gloffset_SecondaryColor3uivEXT 632 -#define _gloffset_SecondaryColor3usEXT 633 -#define _gloffset_SecondaryColor3usvEXT 634 -#define _gloffset_SecondaryColorPointerEXT 635 -#define _gloffset_MultiDrawArraysEXT 636 -#define _gloffset_MultiDrawElementsEXT 637 -#define _gloffset_FogCoordPointerEXT 638 -#define _gloffset_FogCoorddEXT 639 -#define _gloffset_FogCoorddvEXT 640 -#define _gloffset_FogCoordfEXT 641 -#define _gloffset_FogCoordfvEXT 642 -#define _gloffset_PixelTexGenSGIX 643 -#define _gloffset_BlendFuncSeparateEXT 644 -#define _gloffset_FlushVertexArrayRangeNV 645 -#define _gloffset_VertexArrayRangeNV 646 -#define _gloffset_CombinerInputNV 647 -#define _gloffset_CombinerOutputNV 648 -#define _gloffset_CombinerParameterfNV 649 -#define _gloffset_CombinerParameterfvNV 650 -#define _gloffset_CombinerParameteriNV 651 -#define _gloffset_CombinerParameterivNV 652 -#define _gloffset_FinalCombinerInputNV 653 -#define _gloffset_GetCombinerInputParameterfvNV 654 -#define _gloffset_GetCombinerInputParameterivNV 655 -#define _gloffset_GetCombinerOutputParameterfvNV 656 -#define _gloffset_GetCombinerOutputParameterivNV 657 -#define _gloffset_GetFinalCombinerInputParameterfvNV 658 -#define _gloffset_GetFinalCombinerInputParameterivNV 659 -#define _gloffset_ResizeBuffersMESA 660 -#define _gloffset_WindowPos2dMESA 661 -#define _gloffset_WindowPos2dvMESA 662 -#define _gloffset_WindowPos2fMESA 663 -#define _gloffset_WindowPos2fvMESA 664 -#define _gloffset_WindowPos2iMESA 665 -#define _gloffset_WindowPos2ivMESA 666 -#define _gloffset_WindowPos2sMESA 667 -#define _gloffset_WindowPos2svMESA 668 -#define _gloffset_WindowPos3dMESA 669 -#define _gloffset_WindowPos3dvMESA 670 -#define _gloffset_WindowPos3fMESA 671 -#define _gloffset_WindowPos3fvMESA 672 -#define _gloffset_WindowPos3iMESA 673 -#define _gloffset_WindowPos3ivMESA 674 -#define _gloffset_WindowPos3sMESA 675 -#define _gloffset_WindowPos3svMESA 676 -#define _gloffset_WindowPos4dMESA 677 -#define _gloffset_WindowPos4dvMESA 678 -#define _gloffset_WindowPos4fMESA 679 -#define _gloffset_WindowPos4fvMESA 680 -#define _gloffset_WindowPos4iMESA 681 -#define _gloffset_WindowPos4ivMESA 682 -#define _gloffset_WindowPos4sMESA 683 -#define _gloffset_WindowPos4svMESA 684 -#define _gloffset_MultiModeDrawArraysIBM 685 -#define _gloffset_MultiModeDrawElementsIBM 686 -#define _gloffset_DeleteFencesNV 687 -#define _gloffset_FinishFenceNV 688 -#define _gloffset_GenFencesNV 689 -#define _gloffset_GetFenceivNV 690 -#define _gloffset_IsFenceNV 691 -#define _gloffset_SetFenceNV 692 -#define _gloffset_TestFenceNV 693 -#define _gloffset_AreProgramsResidentNV 694 -#define _gloffset_BindProgramNV 695 -#define _gloffset_DeleteProgramsNV 696 -#define _gloffset_ExecuteProgramNV 697 -#define _gloffset_GenProgramsNV 698 -#define _gloffset_GetProgramParameterdvNV 699 -#define _gloffset_GetProgramParameterfvNV 700 -#define _gloffset_GetProgramStringNV 701 -#define _gloffset_GetProgramivNV 702 -#define _gloffset_GetTrackMatrixivNV 703 -#define _gloffset_GetVertexAttribPointervNV 704 -#define _gloffset_GetVertexAttribdvNV 705 -#define _gloffset_GetVertexAttribfvNV 706 -#define _gloffset_GetVertexAttribivNV 707 -#define _gloffset_IsProgramNV 708 -#define _gloffset_LoadProgramNV 709 -#define _gloffset_ProgramParameters4dvNV 710 -#define _gloffset_ProgramParameters4fvNV 711 -#define _gloffset_RequestResidentProgramsNV 712 -#define _gloffset_TrackMatrixNV 713 -#define _gloffset_VertexAttrib1dNV 714 -#define _gloffset_VertexAttrib1dvNV 715 -#define _gloffset_VertexAttrib1fNV 716 -#define _gloffset_VertexAttrib1fvNV 717 -#define _gloffset_VertexAttrib1sNV 718 -#define _gloffset_VertexAttrib1svNV 719 -#define _gloffset_VertexAttrib2dNV 720 -#define _gloffset_VertexAttrib2dvNV 721 -#define _gloffset_VertexAttrib2fNV 722 -#define _gloffset_VertexAttrib2fvNV 723 -#define _gloffset_VertexAttrib2sNV 724 -#define _gloffset_VertexAttrib2svNV 725 -#define _gloffset_VertexAttrib3dNV 726 -#define _gloffset_VertexAttrib3dvNV 727 -#define _gloffset_VertexAttrib3fNV 728 -#define _gloffset_VertexAttrib3fvNV 729 -#define _gloffset_VertexAttrib3sNV 730 -#define _gloffset_VertexAttrib3svNV 731 -#define _gloffset_VertexAttrib4dNV 732 -#define _gloffset_VertexAttrib4dvNV 733 -#define _gloffset_VertexAttrib4fNV 734 -#define _gloffset_VertexAttrib4fvNV 735 -#define _gloffset_VertexAttrib4sNV 736 -#define _gloffset_VertexAttrib4svNV 737 -#define _gloffset_VertexAttrib4ubNV 738 -#define _gloffset_VertexAttrib4ubvNV 739 -#define _gloffset_VertexAttribPointerNV 740 -#define _gloffset_VertexAttribs1dvNV 741 -#define _gloffset_VertexAttribs1fvNV 742 -#define _gloffset_VertexAttribs1svNV 743 -#define _gloffset_VertexAttribs2dvNV 744 -#define _gloffset_VertexAttribs2fvNV 745 -#define _gloffset_VertexAttribs2svNV 746 -#define _gloffset_VertexAttribs3dvNV 747 -#define _gloffset_VertexAttribs3fvNV 748 -#define _gloffset_VertexAttribs3svNV 749 -#define _gloffset_VertexAttribs4dvNV 750 -#define _gloffset_VertexAttribs4fvNV 751 -#define _gloffset_VertexAttribs4svNV 752 -#define _gloffset_VertexAttribs4ubvNV 753 -#define _gloffset_GetTexBumpParameterfvATI 754 -#define _gloffset_GetTexBumpParameterivATI 755 -#define _gloffset_TexBumpParameterfvATI 756 -#define _gloffset_TexBumpParameterivATI 757 -#define _gloffset_AlphaFragmentOp1ATI 758 -#define _gloffset_AlphaFragmentOp2ATI 759 -#define _gloffset_AlphaFragmentOp3ATI 760 -#define _gloffset_BeginFragmentShaderATI 761 -#define _gloffset_BindFragmentShaderATI 762 -#define _gloffset_ColorFragmentOp1ATI 763 -#define _gloffset_ColorFragmentOp2ATI 764 -#define _gloffset_ColorFragmentOp3ATI 765 -#define _gloffset_DeleteFragmentShaderATI 766 -#define _gloffset_EndFragmentShaderATI 767 -#define _gloffset_GenFragmentShadersATI 768 -#define _gloffset_PassTexCoordATI 769 -#define _gloffset_SampleMapATI 770 -#define _gloffset_SetFragmentShaderConstantATI 771 -#define _gloffset_PointParameteriNV 772 -#define _gloffset_PointParameterivNV 773 -#define _gloffset_ActiveStencilFaceEXT 774 -#define _gloffset_BindVertexArrayAPPLE 775 -#define _gloffset_DeleteVertexArraysAPPLE 776 -#define _gloffset_GenVertexArraysAPPLE 777 -#define _gloffset_IsVertexArrayAPPLE 778 -#define _gloffset_GetProgramNamedParameterdvNV 779 -#define _gloffset_GetProgramNamedParameterfvNV 780 -#define _gloffset_ProgramNamedParameter4dNV 781 -#define _gloffset_ProgramNamedParameter4dvNV 782 -#define _gloffset_ProgramNamedParameter4fNV 783 -#define _gloffset_ProgramNamedParameter4fvNV 784 -#define _gloffset_PrimitiveRestartIndexNV 785 -#define _gloffset_PrimitiveRestartNV 786 -#define _gloffset_DepthBoundsEXT 787 -#define _gloffset_BlendEquationSeparateEXT 788 -#define _gloffset_BindFramebufferEXT 789 -#define _gloffset_BindRenderbufferEXT 790 -#define _gloffset_CheckFramebufferStatusEXT 791 -#define _gloffset_DeleteFramebuffersEXT 792 -#define _gloffset_DeleteRenderbuffersEXT 793 -#define _gloffset_FramebufferRenderbufferEXT 794 -#define _gloffset_FramebufferTexture1DEXT 795 -#define _gloffset_FramebufferTexture2DEXT 796 -#define _gloffset_FramebufferTexture3DEXT 797 -#define _gloffset_GenFramebuffersEXT 798 -#define _gloffset_GenRenderbuffersEXT 799 -#define _gloffset_GenerateMipmapEXT 800 -#define _gloffset_GetFramebufferAttachmentParameterivEXT 801 -#define _gloffset_GetRenderbufferParameterivEXT 802 -#define _gloffset_IsFramebufferEXT 803 -#define _gloffset_IsRenderbufferEXT 804 -#define _gloffset_RenderbufferStorageEXT 805 -#define _gloffset_BlitFramebufferEXT 806 -#define _gloffset_BufferParameteriAPPLE 807 -#define _gloffset_FlushMappedBufferRangeAPPLE 808 -#define _gloffset_BindFragDataLocationEXT 809 -#define _gloffset_GetFragDataLocationEXT 810 -#define _gloffset_GetUniformuivEXT 811 -#define _gloffset_GetVertexAttribIivEXT 812 -#define _gloffset_GetVertexAttribIuivEXT 813 -#define _gloffset_Uniform1uiEXT 814 -#define _gloffset_Uniform1uivEXT 815 -#define _gloffset_Uniform2uiEXT 816 -#define _gloffset_Uniform2uivEXT 817 -#define _gloffset_Uniform3uiEXT 818 -#define _gloffset_Uniform3uivEXT 819 -#define _gloffset_Uniform4uiEXT 820 -#define _gloffset_Uniform4uivEXT 821 -#define _gloffset_VertexAttribI1iEXT 822 -#define _gloffset_VertexAttribI1ivEXT 823 -#define _gloffset_VertexAttribI1uiEXT 824 -#define _gloffset_VertexAttribI1uivEXT 825 -#define _gloffset_VertexAttribI2iEXT 826 -#define _gloffset_VertexAttribI2ivEXT 827 -#define _gloffset_VertexAttribI2uiEXT 828 -#define _gloffset_VertexAttribI2uivEXT 829 -#define _gloffset_VertexAttribI3iEXT 830 -#define _gloffset_VertexAttribI3ivEXT 831 -#define _gloffset_VertexAttribI3uiEXT 832 -#define _gloffset_VertexAttribI3uivEXT 833 -#define _gloffset_VertexAttribI4bvEXT 834 -#define _gloffset_VertexAttribI4iEXT 835 -#define _gloffset_VertexAttribI4ivEXT 836 -#define _gloffset_VertexAttribI4svEXT 837 -#define _gloffset_VertexAttribI4ubvEXT 838 -#define _gloffset_VertexAttribI4uiEXT 839 -#define _gloffset_VertexAttribI4uivEXT 840 -#define _gloffset_VertexAttribI4usvEXT 841 -#define _gloffset_VertexAttribIPointerEXT 842 -#define _gloffset_FramebufferTextureLayerEXT 843 -#define _gloffset_ColorMaskIndexedEXT 844 -#define _gloffset_DisableIndexedEXT 845 -#define _gloffset_EnableIndexedEXT 846 -#define _gloffset_GetBooleanIndexedvEXT 847 -#define _gloffset_GetIntegerIndexedvEXT 848 -#define _gloffset_IsEnabledIndexedEXT 849 -#define _gloffset_ClearColorIiEXT 850 -#define _gloffset_ClearColorIuiEXT 851 -#define _gloffset_GetTexParameterIivEXT 852 -#define _gloffset_GetTexParameterIuivEXT 853 -#define _gloffset_TexParameterIivEXT 854 -#define _gloffset_TexParameterIuivEXT 855 -#define _gloffset_BeginConditionalRenderNV 856 -#define _gloffset_EndConditionalRenderNV 857 -#define _gloffset_BeginTransformFeedbackEXT 858 -#define _gloffset_BindBufferBaseEXT 859 -#define _gloffset_BindBufferOffsetEXT 860 -#define _gloffset_BindBufferRangeEXT 861 -#define _gloffset_EndTransformFeedbackEXT 862 -#define _gloffset_GetTransformFeedbackVaryingEXT 863 -#define _gloffset_TransformFeedbackVaryingsEXT 864 -#define _gloffset_ProvokingVertexEXT 865 -#define _gloffset_GetTexParameterPointervAPPLE 866 -#define _gloffset_TextureRangeAPPLE 867 -#define _gloffset_GetObjectParameterivAPPLE 868 -#define _gloffset_ObjectPurgeableAPPLE 869 -#define _gloffset_ObjectUnpurgeableAPPLE 870 -#define _gloffset_ActiveProgramEXT 871 -#define _gloffset_CreateShaderProgramEXT 872 -#define _gloffset_UseShaderProgramEXT 873 -#define _gloffset_StencilFuncSeparateATI 874 -#define _gloffset_ProgramEnvParameters4fvEXT 875 -#define _gloffset_ProgramLocalParameters4fvEXT 876 -#define _gloffset_GetQueryObjecti64vEXT 877 -#define _gloffset_GetQueryObjectui64vEXT 878 -#define _gloffset_EGLImageTargetRenderbufferStorageOES 879 -#define _gloffset_EGLImageTargetTexture2DOES 880 +#define _gloffset_ClearDepthf 600 +#define _gloffset_DepthRangef 601 +#define _gloffset_GetShaderPrecisionFormat 602 +#define _gloffset_ReleaseShaderCompiler 603 +#define _gloffset_ShaderBinary 604 +#define _gloffset_PolygonOffsetEXT 605 +#define _gloffset_GetPixelTexGenParameterfvSGIS 606 +#define _gloffset_GetPixelTexGenParameterivSGIS 607 +#define _gloffset_PixelTexGenParameterfSGIS 608 +#define _gloffset_PixelTexGenParameterfvSGIS 609 +#define _gloffset_PixelTexGenParameteriSGIS 610 +#define _gloffset_PixelTexGenParameterivSGIS 611 +#define _gloffset_SampleMaskSGIS 612 +#define _gloffset_SamplePatternSGIS 613 +#define _gloffset_ColorPointerEXT 614 +#define _gloffset_EdgeFlagPointerEXT 615 +#define _gloffset_IndexPointerEXT 616 +#define _gloffset_NormalPointerEXT 617 +#define _gloffset_TexCoordPointerEXT 618 +#define _gloffset_VertexPointerEXT 619 +#define _gloffset_PointParameterfEXT 620 +#define _gloffset_PointParameterfvEXT 621 +#define _gloffset_LockArraysEXT 622 +#define _gloffset_UnlockArraysEXT 623 +#define _gloffset_SecondaryColor3bEXT 624 +#define _gloffset_SecondaryColor3bvEXT 625 +#define _gloffset_SecondaryColor3dEXT 626 +#define _gloffset_SecondaryColor3dvEXT 627 +#define _gloffset_SecondaryColor3fEXT 628 +#define _gloffset_SecondaryColor3fvEXT 629 +#define _gloffset_SecondaryColor3iEXT 630 +#define _gloffset_SecondaryColor3ivEXT 631 +#define _gloffset_SecondaryColor3sEXT 632 +#define _gloffset_SecondaryColor3svEXT 633 +#define _gloffset_SecondaryColor3ubEXT 634 +#define _gloffset_SecondaryColor3ubvEXT 635 +#define _gloffset_SecondaryColor3uiEXT 636 +#define _gloffset_SecondaryColor3uivEXT 637 +#define _gloffset_SecondaryColor3usEXT 638 +#define _gloffset_SecondaryColor3usvEXT 639 +#define _gloffset_SecondaryColorPointerEXT 640 +#define _gloffset_MultiDrawArraysEXT 641 +#define _gloffset_MultiDrawElementsEXT 642 +#define _gloffset_FogCoordPointerEXT 643 +#define _gloffset_FogCoorddEXT 644 +#define _gloffset_FogCoorddvEXT 645 +#define _gloffset_FogCoordfEXT 646 +#define _gloffset_FogCoordfvEXT 647 +#define _gloffset_PixelTexGenSGIX 648 +#define _gloffset_BlendFuncSeparateEXT 649 +#define _gloffset_FlushVertexArrayRangeNV 650 +#define _gloffset_VertexArrayRangeNV 651 +#define _gloffset_CombinerInputNV 652 +#define _gloffset_CombinerOutputNV 653 +#define _gloffset_CombinerParameterfNV 654 +#define _gloffset_CombinerParameterfvNV 655 +#define _gloffset_CombinerParameteriNV 656 +#define _gloffset_CombinerParameterivNV 657 +#define _gloffset_FinalCombinerInputNV 658 +#define _gloffset_GetCombinerInputParameterfvNV 659 +#define _gloffset_GetCombinerInputParameterivNV 660 +#define _gloffset_GetCombinerOutputParameterfvNV 661 +#define _gloffset_GetCombinerOutputParameterivNV 662 +#define _gloffset_GetFinalCombinerInputParameterfvNV 663 +#define _gloffset_GetFinalCombinerInputParameterivNV 664 +#define _gloffset_ResizeBuffersMESA 665 +#define _gloffset_WindowPos2dMESA 666 +#define _gloffset_WindowPos2dvMESA 667 +#define _gloffset_WindowPos2fMESA 668 +#define _gloffset_WindowPos2fvMESA 669 +#define _gloffset_WindowPos2iMESA 670 +#define _gloffset_WindowPos2ivMESA 671 +#define _gloffset_WindowPos2sMESA 672 +#define _gloffset_WindowPos2svMESA 673 +#define _gloffset_WindowPos3dMESA 674 +#define _gloffset_WindowPos3dvMESA 675 +#define _gloffset_WindowPos3fMESA 676 +#define _gloffset_WindowPos3fvMESA 677 +#define _gloffset_WindowPos3iMESA 678 +#define _gloffset_WindowPos3ivMESA 679 +#define _gloffset_WindowPos3sMESA 680 +#define _gloffset_WindowPos3svMESA 681 +#define _gloffset_WindowPos4dMESA 682 +#define _gloffset_WindowPos4dvMESA 683 +#define _gloffset_WindowPos4fMESA 684 +#define _gloffset_WindowPos4fvMESA 685 +#define _gloffset_WindowPos4iMESA 686 +#define _gloffset_WindowPos4ivMESA 687 +#define _gloffset_WindowPos4sMESA 688 +#define _gloffset_WindowPos4svMESA 689 +#define _gloffset_MultiModeDrawArraysIBM 690 +#define _gloffset_MultiModeDrawElementsIBM 691 +#define _gloffset_DeleteFencesNV 692 +#define _gloffset_FinishFenceNV 693 +#define _gloffset_GenFencesNV 694 +#define _gloffset_GetFenceivNV 695 +#define _gloffset_IsFenceNV 696 +#define _gloffset_SetFenceNV 697 +#define _gloffset_TestFenceNV 698 +#define _gloffset_AreProgramsResidentNV 699 +#define _gloffset_BindProgramNV 700 +#define _gloffset_DeleteProgramsNV 701 +#define _gloffset_ExecuteProgramNV 702 +#define _gloffset_GenProgramsNV 703 +#define _gloffset_GetProgramParameterdvNV 704 +#define _gloffset_GetProgramParameterfvNV 705 +#define _gloffset_GetProgramStringNV 706 +#define _gloffset_GetProgramivNV 707 +#define _gloffset_GetTrackMatrixivNV 708 +#define _gloffset_GetVertexAttribPointervNV 709 +#define _gloffset_GetVertexAttribdvNV 710 +#define _gloffset_GetVertexAttribfvNV 711 +#define _gloffset_GetVertexAttribivNV 712 +#define _gloffset_IsProgramNV 713 +#define _gloffset_LoadProgramNV 714 +#define _gloffset_ProgramParameters4dvNV 715 +#define _gloffset_ProgramParameters4fvNV 716 +#define _gloffset_RequestResidentProgramsNV 717 +#define _gloffset_TrackMatrixNV 718 +#define _gloffset_VertexAttrib1dNV 719 +#define _gloffset_VertexAttrib1dvNV 720 +#define _gloffset_VertexAttrib1fNV 721 +#define _gloffset_VertexAttrib1fvNV 722 +#define _gloffset_VertexAttrib1sNV 723 +#define _gloffset_VertexAttrib1svNV 724 +#define _gloffset_VertexAttrib2dNV 725 +#define _gloffset_VertexAttrib2dvNV 726 +#define _gloffset_VertexAttrib2fNV 727 +#define _gloffset_VertexAttrib2fvNV 728 +#define _gloffset_VertexAttrib2sNV 729 +#define _gloffset_VertexAttrib2svNV 730 +#define _gloffset_VertexAttrib3dNV 731 +#define _gloffset_VertexAttrib3dvNV 732 +#define _gloffset_VertexAttrib3fNV 733 +#define _gloffset_VertexAttrib3fvNV 734 +#define _gloffset_VertexAttrib3sNV 735 +#define _gloffset_VertexAttrib3svNV 736 +#define _gloffset_VertexAttrib4dNV 737 +#define _gloffset_VertexAttrib4dvNV 738 +#define _gloffset_VertexAttrib4fNV 739 +#define _gloffset_VertexAttrib4fvNV 740 +#define _gloffset_VertexAttrib4sNV 741 +#define _gloffset_VertexAttrib4svNV 742 +#define _gloffset_VertexAttrib4ubNV 743 +#define _gloffset_VertexAttrib4ubvNV 744 +#define _gloffset_VertexAttribPointerNV 745 +#define _gloffset_VertexAttribs1dvNV 746 +#define _gloffset_VertexAttribs1fvNV 747 +#define _gloffset_VertexAttribs1svNV 748 +#define _gloffset_VertexAttribs2dvNV 749 +#define _gloffset_VertexAttribs2fvNV 750 +#define _gloffset_VertexAttribs2svNV 751 +#define _gloffset_VertexAttribs3dvNV 752 +#define _gloffset_VertexAttribs3fvNV 753 +#define _gloffset_VertexAttribs3svNV 754 +#define _gloffset_VertexAttribs4dvNV 755 +#define _gloffset_VertexAttribs4fvNV 756 +#define _gloffset_VertexAttribs4svNV 757 +#define _gloffset_VertexAttribs4ubvNV 758 +#define _gloffset_GetTexBumpParameterfvATI 759 +#define _gloffset_GetTexBumpParameterivATI 760 +#define _gloffset_TexBumpParameterfvATI 761 +#define _gloffset_TexBumpParameterivATI 762 +#define _gloffset_AlphaFragmentOp1ATI 763 +#define _gloffset_AlphaFragmentOp2ATI 764 +#define _gloffset_AlphaFragmentOp3ATI 765 +#define _gloffset_BeginFragmentShaderATI 766 +#define _gloffset_BindFragmentShaderATI 767 +#define _gloffset_ColorFragmentOp1ATI 768 +#define _gloffset_ColorFragmentOp2ATI 769 +#define _gloffset_ColorFragmentOp3ATI 770 +#define _gloffset_DeleteFragmentShaderATI 771 +#define _gloffset_EndFragmentShaderATI 772 +#define _gloffset_GenFragmentShadersATI 773 +#define _gloffset_PassTexCoordATI 774 +#define _gloffset_SampleMapATI 775 +#define _gloffset_SetFragmentShaderConstantATI 776 +#define _gloffset_PointParameteriNV 777 +#define _gloffset_PointParameterivNV 778 +#define _gloffset_ActiveStencilFaceEXT 779 +#define _gloffset_BindVertexArrayAPPLE 780 +#define _gloffset_DeleteVertexArraysAPPLE 781 +#define _gloffset_GenVertexArraysAPPLE 782 +#define _gloffset_IsVertexArrayAPPLE 783 +#define _gloffset_GetProgramNamedParameterdvNV 784 +#define _gloffset_GetProgramNamedParameterfvNV 785 +#define _gloffset_ProgramNamedParameter4dNV 786 +#define _gloffset_ProgramNamedParameter4dvNV 787 +#define _gloffset_ProgramNamedParameter4fNV 788 +#define _gloffset_ProgramNamedParameter4fvNV 789 +#define _gloffset_PrimitiveRestartIndexNV 790 +#define _gloffset_PrimitiveRestartNV 791 +#define _gloffset_DepthBoundsEXT 792 +#define _gloffset_BlendEquationSeparateEXT 793 +#define _gloffset_BindFramebufferEXT 794 +#define _gloffset_BindRenderbufferEXT 795 +#define _gloffset_CheckFramebufferStatusEXT 796 +#define _gloffset_DeleteFramebuffersEXT 797 +#define _gloffset_DeleteRenderbuffersEXT 798 +#define _gloffset_FramebufferRenderbufferEXT 799 +#define _gloffset_FramebufferTexture1DEXT 800 +#define _gloffset_FramebufferTexture2DEXT 801 +#define _gloffset_FramebufferTexture3DEXT 802 +#define _gloffset_GenFramebuffersEXT 803 +#define _gloffset_GenRenderbuffersEXT 804 +#define _gloffset_GenerateMipmapEXT 805 +#define _gloffset_GetFramebufferAttachmentParameterivEXT 806 +#define _gloffset_GetRenderbufferParameterivEXT 807 +#define _gloffset_IsFramebufferEXT 808 +#define _gloffset_IsRenderbufferEXT 809 +#define _gloffset_RenderbufferStorageEXT 810 +#define _gloffset_BlitFramebufferEXT 811 +#define _gloffset_BufferParameteriAPPLE 812 +#define _gloffset_FlushMappedBufferRangeAPPLE 813 +#define _gloffset_BindFragDataLocationEXT 814 +#define _gloffset_GetFragDataLocationEXT 815 +#define _gloffset_GetUniformuivEXT 816 +#define _gloffset_GetVertexAttribIivEXT 817 +#define _gloffset_GetVertexAttribIuivEXT 818 +#define _gloffset_Uniform1uiEXT 819 +#define _gloffset_Uniform1uivEXT 820 +#define _gloffset_Uniform2uiEXT 821 +#define _gloffset_Uniform2uivEXT 822 +#define _gloffset_Uniform3uiEXT 823 +#define _gloffset_Uniform3uivEXT 824 +#define _gloffset_Uniform4uiEXT 825 +#define _gloffset_Uniform4uivEXT 826 +#define _gloffset_VertexAttribI1iEXT 827 +#define _gloffset_VertexAttribI1ivEXT 828 +#define _gloffset_VertexAttribI1uiEXT 829 +#define _gloffset_VertexAttribI1uivEXT 830 +#define _gloffset_VertexAttribI2iEXT 831 +#define _gloffset_VertexAttribI2ivEXT 832 +#define _gloffset_VertexAttribI2uiEXT 833 +#define _gloffset_VertexAttribI2uivEXT 834 +#define _gloffset_VertexAttribI3iEXT 835 +#define _gloffset_VertexAttribI3ivEXT 836 +#define _gloffset_VertexAttribI3uiEXT 837 +#define _gloffset_VertexAttribI3uivEXT 838 +#define _gloffset_VertexAttribI4bvEXT 839 +#define _gloffset_VertexAttribI4iEXT 840 +#define _gloffset_VertexAttribI4ivEXT 841 +#define _gloffset_VertexAttribI4svEXT 842 +#define _gloffset_VertexAttribI4ubvEXT 843 +#define _gloffset_VertexAttribI4uiEXT 844 +#define _gloffset_VertexAttribI4uivEXT 845 +#define _gloffset_VertexAttribI4usvEXT 846 +#define _gloffset_VertexAttribIPointerEXT 847 +#define _gloffset_FramebufferTextureLayerEXT 848 +#define _gloffset_ColorMaskIndexedEXT 849 +#define _gloffset_DisableIndexedEXT 850 +#define _gloffset_EnableIndexedEXT 851 +#define _gloffset_GetBooleanIndexedvEXT 852 +#define _gloffset_GetIntegerIndexedvEXT 853 +#define _gloffset_IsEnabledIndexedEXT 854 +#define _gloffset_ClearColorIiEXT 855 +#define _gloffset_ClearColorIuiEXT 856 +#define _gloffset_GetTexParameterIivEXT 857 +#define _gloffset_GetTexParameterIuivEXT 858 +#define _gloffset_TexParameterIivEXT 859 +#define _gloffset_TexParameterIuivEXT 860 +#define _gloffset_BeginConditionalRenderNV 861 +#define _gloffset_EndConditionalRenderNV 862 +#define _gloffset_BeginTransformFeedbackEXT 863 +#define _gloffset_BindBufferBaseEXT 864 +#define _gloffset_BindBufferOffsetEXT 865 +#define _gloffset_BindBufferRangeEXT 866 +#define _gloffset_EndTransformFeedbackEXT 867 +#define _gloffset_GetTransformFeedbackVaryingEXT 868 +#define _gloffset_TransformFeedbackVaryingsEXT 869 +#define _gloffset_ProvokingVertexEXT 870 +#define _gloffset_GetTexParameterPointervAPPLE 871 +#define _gloffset_TextureRangeAPPLE 872 +#define _gloffset_GetObjectParameterivAPPLE 873 +#define _gloffset_ObjectPurgeableAPPLE 874 +#define _gloffset_ObjectUnpurgeableAPPLE 875 +#define _gloffset_ActiveProgramEXT 876 +#define _gloffset_CreateShaderProgramEXT 877 +#define _gloffset_UseShaderProgramEXT 878 +#define _gloffset_StencilFuncSeparateATI 879 +#define _gloffset_ProgramEnvParameters4fvEXT 880 +#define _gloffset_ProgramLocalParameters4fvEXT 881 +#define _gloffset_GetQueryObjecti64vEXT 882 +#define _gloffset_GetQueryObjectui64vEXT 883 +#define _gloffset_EGLImageTargetRenderbufferStorageOES 884 +#define _gloffset_EGLImageTargetTexture2DOES 885 #else /* !_GLAPI_USE_REMAP_TABLE */ -#define driDispatchRemapTable_size 473 +#define driDispatchRemapTable_size 478 extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define AttachShader_remap_index 0 @@ -1143,287 +1148,292 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define IsTransformFeedback_remap_index 189 #define PauseTransformFeedback_remap_index 190 #define ResumeTransformFeedback_remap_index 191 -#define PolygonOffsetEXT_remap_index 192 -#define GetPixelTexGenParameterfvSGIS_remap_index 193 -#define GetPixelTexGenParameterivSGIS_remap_index 194 -#define PixelTexGenParameterfSGIS_remap_index 195 -#define PixelTexGenParameterfvSGIS_remap_index 196 -#define PixelTexGenParameteriSGIS_remap_index 197 -#define PixelTexGenParameterivSGIS_remap_index 198 -#define SampleMaskSGIS_remap_index 199 -#define SamplePatternSGIS_remap_index 200 -#define ColorPointerEXT_remap_index 201 -#define EdgeFlagPointerEXT_remap_index 202 -#define IndexPointerEXT_remap_index 203 -#define NormalPointerEXT_remap_index 204 -#define TexCoordPointerEXT_remap_index 205 -#define VertexPointerEXT_remap_index 206 -#define PointParameterfEXT_remap_index 207 -#define PointParameterfvEXT_remap_index 208 -#define LockArraysEXT_remap_index 209 -#define UnlockArraysEXT_remap_index 210 -#define SecondaryColor3bEXT_remap_index 211 -#define SecondaryColor3bvEXT_remap_index 212 -#define SecondaryColor3dEXT_remap_index 213 -#define SecondaryColor3dvEXT_remap_index 214 -#define SecondaryColor3fEXT_remap_index 215 -#define SecondaryColor3fvEXT_remap_index 216 -#define SecondaryColor3iEXT_remap_index 217 -#define SecondaryColor3ivEXT_remap_index 218 -#define SecondaryColor3sEXT_remap_index 219 -#define SecondaryColor3svEXT_remap_index 220 -#define SecondaryColor3ubEXT_remap_index 221 -#define SecondaryColor3ubvEXT_remap_index 222 -#define SecondaryColor3uiEXT_remap_index 223 -#define SecondaryColor3uivEXT_remap_index 224 -#define SecondaryColor3usEXT_remap_index 225 -#define SecondaryColor3usvEXT_remap_index 226 -#define SecondaryColorPointerEXT_remap_index 227 -#define MultiDrawArraysEXT_remap_index 228 -#define MultiDrawElementsEXT_remap_index 229 -#define FogCoordPointerEXT_remap_index 230 -#define FogCoorddEXT_remap_index 231 -#define FogCoorddvEXT_remap_index 232 -#define FogCoordfEXT_remap_index 233 -#define FogCoordfvEXT_remap_index 234 -#define PixelTexGenSGIX_remap_index 235 -#define BlendFuncSeparateEXT_remap_index 236 -#define FlushVertexArrayRangeNV_remap_index 237 -#define VertexArrayRangeNV_remap_index 238 -#define CombinerInputNV_remap_index 239 -#define CombinerOutputNV_remap_index 240 -#define CombinerParameterfNV_remap_index 241 -#define CombinerParameterfvNV_remap_index 242 -#define CombinerParameteriNV_remap_index 243 -#define CombinerParameterivNV_remap_index 244 -#define FinalCombinerInputNV_remap_index 245 -#define GetCombinerInputParameterfvNV_remap_index 246 -#define GetCombinerInputParameterivNV_remap_index 247 -#define GetCombinerOutputParameterfvNV_remap_index 248 -#define GetCombinerOutputParameterivNV_remap_index 249 -#define GetFinalCombinerInputParameterfvNV_remap_index 250 -#define GetFinalCombinerInputParameterivNV_remap_index 251 -#define ResizeBuffersMESA_remap_index 252 -#define WindowPos2dMESA_remap_index 253 -#define WindowPos2dvMESA_remap_index 254 -#define WindowPos2fMESA_remap_index 255 -#define WindowPos2fvMESA_remap_index 256 -#define WindowPos2iMESA_remap_index 257 -#define WindowPos2ivMESA_remap_index 258 -#define WindowPos2sMESA_remap_index 259 -#define WindowPos2svMESA_remap_index 260 -#define WindowPos3dMESA_remap_index 261 -#define WindowPos3dvMESA_remap_index 262 -#define WindowPos3fMESA_remap_index 263 -#define WindowPos3fvMESA_remap_index 264 -#define WindowPos3iMESA_remap_index 265 -#define WindowPos3ivMESA_remap_index 266 -#define WindowPos3sMESA_remap_index 267 -#define WindowPos3svMESA_remap_index 268 -#define WindowPos4dMESA_remap_index 269 -#define WindowPos4dvMESA_remap_index 270 -#define WindowPos4fMESA_remap_index 271 -#define WindowPos4fvMESA_remap_index 272 -#define WindowPos4iMESA_remap_index 273 -#define WindowPos4ivMESA_remap_index 274 -#define WindowPos4sMESA_remap_index 275 -#define WindowPos4svMESA_remap_index 276 -#define MultiModeDrawArraysIBM_remap_index 277 -#define MultiModeDrawElementsIBM_remap_index 278 -#define DeleteFencesNV_remap_index 279 -#define FinishFenceNV_remap_index 280 -#define GenFencesNV_remap_index 281 -#define GetFenceivNV_remap_index 282 -#define IsFenceNV_remap_index 283 -#define SetFenceNV_remap_index 284 -#define TestFenceNV_remap_index 285 -#define AreProgramsResidentNV_remap_index 286 -#define BindProgramNV_remap_index 287 -#define DeleteProgramsNV_remap_index 288 -#define ExecuteProgramNV_remap_index 289 -#define GenProgramsNV_remap_index 290 -#define GetProgramParameterdvNV_remap_index 291 -#define GetProgramParameterfvNV_remap_index 292 -#define GetProgramStringNV_remap_index 293 -#define GetProgramivNV_remap_index 294 -#define GetTrackMatrixivNV_remap_index 295 -#define GetVertexAttribPointervNV_remap_index 296 -#define GetVertexAttribdvNV_remap_index 297 -#define GetVertexAttribfvNV_remap_index 298 -#define GetVertexAttribivNV_remap_index 299 -#define IsProgramNV_remap_index 300 -#define LoadProgramNV_remap_index 301 -#define ProgramParameters4dvNV_remap_index 302 -#define ProgramParameters4fvNV_remap_index 303 -#define RequestResidentProgramsNV_remap_index 304 -#define TrackMatrixNV_remap_index 305 -#define VertexAttrib1dNV_remap_index 306 -#define VertexAttrib1dvNV_remap_index 307 -#define VertexAttrib1fNV_remap_index 308 -#define VertexAttrib1fvNV_remap_index 309 -#define VertexAttrib1sNV_remap_index 310 -#define VertexAttrib1svNV_remap_index 311 -#define VertexAttrib2dNV_remap_index 312 -#define VertexAttrib2dvNV_remap_index 313 -#define VertexAttrib2fNV_remap_index 314 -#define VertexAttrib2fvNV_remap_index 315 -#define VertexAttrib2sNV_remap_index 316 -#define VertexAttrib2svNV_remap_index 317 -#define VertexAttrib3dNV_remap_index 318 -#define VertexAttrib3dvNV_remap_index 319 -#define VertexAttrib3fNV_remap_index 320 -#define VertexAttrib3fvNV_remap_index 321 -#define VertexAttrib3sNV_remap_index 322 -#define VertexAttrib3svNV_remap_index 323 -#define VertexAttrib4dNV_remap_index 324 -#define VertexAttrib4dvNV_remap_index 325 -#define VertexAttrib4fNV_remap_index 326 -#define VertexAttrib4fvNV_remap_index 327 -#define VertexAttrib4sNV_remap_index 328 -#define VertexAttrib4svNV_remap_index 329 -#define VertexAttrib4ubNV_remap_index 330 -#define VertexAttrib4ubvNV_remap_index 331 -#define VertexAttribPointerNV_remap_index 332 -#define VertexAttribs1dvNV_remap_index 333 -#define VertexAttribs1fvNV_remap_index 334 -#define VertexAttribs1svNV_remap_index 335 -#define VertexAttribs2dvNV_remap_index 336 -#define VertexAttribs2fvNV_remap_index 337 -#define VertexAttribs2svNV_remap_index 338 -#define VertexAttribs3dvNV_remap_index 339 -#define VertexAttribs3fvNV_remap_index 340 -#define VertexAttribs3svNV_remap_index 341 -#define VertexAttribs4dvNV_remap_index 342 -#define VertexAttribs4fvNV_remap_index 343 -#define VertexAttribs4svNV_remap_index 344 -#define VertexAttribs4ubvNV_remap_index 345 -#define GetTexBumpParameterfvATI_remap_index 346 -#define GetTexBumpParameterivATI_remap_index 347 -#define TexBumpParameterfvATI_remap_index 348 -#define TexBumpParameterivATI_remap_index 349 -#define AlphaFragmentOp1ATI_remap_index 350 -#define AlphaFragmentOp2ATI_remap_index 351 -#define AlphaFragmentOp3ATI_remap_index 352 -#define BeginFragmentShaderATI_remap_index 353 -#define BindFragmentShaderATI_remap_index 354 -#define ColorFragmentOp1ATI_remap_index 355 -#define ColorFragmentOp2ATI_remap_index 356 -#define ColorFragmentOp3ATI_remap_index 357 -#define DeleteFragmentShaderATI_remap_index 358 -#define EndFragmentShaderATI_remap_index 359 -#define GenFragmentShadersATI_remap_index 360 -#define PassTexCoordATI_remap_index 361 -#define SampleMapATI_remap_index 362 -#define SetFragmentShaderConstantATI_remap_index 363 -#define PointParameteriNV_remap_index 364 -#define PointParameterivNV_remap_index 365 -#define ActiveStencilFaceEXT_remap_index 366 -#define BindVertexArrayAPPLE_remap_index 367 -#define DeleteVertexArraysAPPLE_remap_index 368 -#define GenVertexArraysAPPLE_remap_index 369 -#define IsVertexArrayAPPLE_remap_index 370 -#define GetProgramNamedParameterdvNV_remap_index 371 -#define GetProgramNamedParameterfvNV_remap_index 372 -#define ProgramNamedParameter4dNV_remap_index 373 -#define ProgramNamedParameter4dvNV_remap_index 374 -#define ProgramNamedParameter4fNV_remap_index 375 -#define ProgramNamedParameter4fvNV_remap_index 376 -#define PrimitiveRestartIndexNV_remap_index 377 -#define PrimitiveRestartNV_remap_index 378 -#define DepthBoundsEXT_remap_index 379 -#define BlendEquationSeparateEXT_remap_index 380 -#define BindFramebufferEXT_remap_index 381 -#define BindRenderbufferEXT_remap_index 382 -#define CheckFramebufferStatusEXT_remap_index 383 -#define DeleteFramebuffersEXT_remap_index 384 -#define DeleteRenderbuffersEXT_remap_index 385 -#define FramebufferRenderbufferEXT_remap_index 386 -#define FramebufferTexture1DEXT_remap_index 387 -#define FramebufferTexture2DEXT_remap_index 388 -#define FramebufferTexture3DEXT_remap_index 389 -#define GenFramebuffersEXT_remap_index 390 -#define GenRenderbuffersEXT_remap_index 391 -#define GenerateMipmapEXT_remap_index 392 -#define GetFramebufferAttachmentParameterivEXT_remap_index 393 -#define GetRenderbufferParameterivEXT_remap_index 394 -#define IsFramebufferEXT_remap_index 395 -#define IsRenderbufferEXT_remap_index 396 -#define RenderbufferStorageEXT_remap_index 397 -#define BlitFramebufferEXT_remap_index 398 -#define BufferParameteriAPPLE_remap_index 399 -#define FlushMappedBufferRangeAPPLE_remap_index 400 -#define BindFragDataLocationEXT_remap_index 401 -#define GetFragDataLocationEXT_remap_index 402 -#define GetUniformuivEXT_remap_index 403 -#define GetVertexAttribIivEXT_remap_index 404 -#define GetVertexAttribIuivEXT_remap_index 405 -#define Uniform1uiEXT_remap_index 406 -#define Uniform1uivEXT_remap_index 407 -#define Uniform2uiEXT_remap_index 408 -#define Uniform2uivEXT_remap_index 409 -#define Uniform3uiEXT_remap_index 410 -#define Uniform3uivEXT_remap_index 411 -#define Uniform4uiEXT_remap_index 412 -#define Uniform4uivEXT_remap_index 413 -#define VertexAttribI1iEXT_remap_index 414 -#define VertexAttribI1ivEXT_remap_index 415 -#define VertexAttribI1uiEXT_remap_index 416 -#define VertexAttribI1uivEXT_remap_index 417 -#define VertexAttribI2iEXT_remap_index 418 -#define VertexAttribI2ivEXT_remap_index 419 -#define VertexAttribI2uiEXT_remap_index 420 -#define VertexAttribI2uivEXT_remap_index 421 -#define VertexAttribI3iEXT_remap_index 422 -#define VertexAttribI3ivEXT_remap_index 423 -#define VertexAttribI3uiEXT_remap_index 424 -#define VertexAttribI3uivEXT_remap_index 425 -#define VertexAttribI4bvEXT_remap_index 426 -#define VertexAttribI4iEXT_remap_index 427 -#define VertexAttribI4ivEXT_remap_index 428 -#define VertexAttribI4svEXT_remap_index 429 -#define VertexAttribI4ubvEXT_remap_index 430 -#define VertexAttribI4uiEXT_remap_index 431 -#define VertexAttribI4uivEXT_remap_index 432 -#define VertexAttribI4usvEXT_remap_index 433 -#define VertexAttribIPointerEXT_remap_index 434 -#define FramebufferTextureLayerEXT_remap_index 435 -#define ColorMaskIndexedEXT_remap_index 436 -#define DisableIndexedEXT_remap_index 437 -#define EnableIndexedEXT_remap_index 438 -#define GetBooleanIndexedvEXT_remap_index 439 -#define GetIntegerIndexedvEXT_remap_index 440 -#define IsEnabledIndexedEXT_remap_index 441 -#define ClearColorIiEXT_remap_index 442 -#define ClearColorIuiEXT_remap_index 443 -#define GetTexParameterIivEXT_remap_index 444 -#define GetTexParameterIuivEXT_remap_index 445 -#define TexParameterIivEXT_remap_index 446 -#define TexParameterIuivEXT_remap_index 447 -#define BeginConditionalRenderNV_remap_index 448 -#define EndConditionalRenderNV_remap_index 449 -#define BeginTransformFeedbackEXT_remap_index 450 -#define BindBufferBaseEXT_remap_index 451 -#define BindBufferOffsetEXT_remap_index 452 -#define BindBufferRangeEXT_remap_index 453 -#define EndTransformFeedbackEXT_remap_index 454 -#define GetTransformFeedbackVaryingEXT_remap_index 455 -#define TransformFeedbackVaryingsEXT_remap_index 456 -#define ProvokingVertexEXT_remap_index 457 -#define GetTexParameterPointervAPPLE_remap_index 458 -#define TextureRangeAPPLE_remap_index 459 -#define GetObjectParameterivAPPLE_remap_index 460 -#define ObjectPurgeableAPPLE_remap_index 461 -#define ObjectUnpurgeableAPPLE_remap_index 462 -#define ActiveProgramEXT_remap_index 463 -#define CreateShaderProgramEXT_remap_index 464 -#define UseShaderProgramEXT_remap_index 465 -#define StencilFuncSeparateATI_remap_index 466 -#define ProgramEnvParameters4fvEXT_remap_index 467 -#define ProgramLocalParameters4fvEXT_remap_index 468 -#define GetQueryObjecti64vEXT_remap_index 469 -#define GetQueryObjectui64vEXT_remap_index 470 -#define EGLImageTargetRenderbufferStorageOES_remap_index 471 -#define EGLImageTargetTexture2DOES_remap_index 472 +#define ClearDepthf_remap_index 192 +#define DepthRangef_remap_index 193 +#define GetShaderPrecisionFormat_remap_index 194 +#define ReleaseShaderCompiler_remap_index 195 +#define ShaderBinary_remap_index 196 +#define PolygonOffsetEXT_remap_index 197 +#define GetPixelTexGenParameterfvSGIS_remap_index 198 +#define GetPixelTexGenParameterivSGIS_remap_index 199 +#define PixelTexGenParameterfSGIS_remap_index 200 +#define PixelTexGenParameterfvSGIS_remap_index 201 +#define PixelTexGenParameteriSGIS_remap_index 202 +#define PixelTexGenParameterivSGIS_remap_index 203 +#define SampleMaskSGIS_remap_index 204 +#define SamplePatternSGIS_remap_index 205 +#define ColorPointerEXT_remap_index 206 +#define EdgeFlagPointerEXT_remap_index 207 +#define IndexPointerEXT_remap_index 208 +#define NormalPointerEXT_remap_index 209 +#define TexCoordPointerEXT_remap_index 210 +#define VertexPointerEXT_remap_index 211 +#define PointParameterfEXT_remap_index 212 +#define PointParameterfvEXT_remap_index 213 +#define LockArraysEXT_remap_index 214 +#define UnlockArraysEXT_remap_index 215 +#define SecondaryColor3bEXT_remap_index 216 +#define SecondaryColor3bvEXT_remap_index 217 +#define SecondaryColor3dEXT_remap_index 218 +#define SecondaryColor3dvEXT_remap_index 219 +#define SecondaryColor3fEXT_remap_index 220 +#define SecondaryColor3fvEXT_remap_index 221 +#define SecondaryColor3iEXT_remap_index 222 +#define SecondaryColor3ivEXT_remap_index 223 +#define SecondaryColor3sEXT_remap_index 224 +#define SecondaryColor3svEXT_remap_index 225 +#define SecondaryColor3ubEXT_remap_index 226 +#define SecondaryColor3ubvEXT_remap_index 227 +#define SecondaryColor3uiEXT_remap_index 228 +#define SecondaryColor3uivEXT_remap_index 229 +#define SecondaryColor3usEXT_remap_index 230 +#define SecondaryColor3usvEXT_remap_index 231 +#define SecondaryColorPointerEXT_remap_index 232 +#define MultiDrawArraysEXT_remap_index 233 +#define MultiDrawElementsEXT_remap_index 234 +#define FogCoordPointerEXT_remap_index 235 +#define FogCoorddEXT_remap_index 236 +#define FogCoorddvEXT_remap_index 237 +#define FogCoordfEXT_remap_index 238 +#define FogCoordfvEXT_remap_index 239 +#define PixelTexGenSGIX_remap_index 240 +#define BlendFuncSeparateEXT_remap_index 241 +#define FlushVertexArrayRangeNV_remap_index 242 +#define VertexArrayRangeNV_remap_index 243 +#define CombinerInputNV_remap_index 244 +#define CombinerOutputNV_remap_index 245 +#define CombinerParameterfNV_remap_index 246 +#define CombinerParameterfvNV_remap_index 247 +#define CombinerParameteriNV_remap_index 248 +#define CombinerParameterivNV_remap_index 249 +#define FinalCombinerInputNV_remap_index 250 +#define GetCombinerInputParameterfvNV_remap_index 251 +#define GetCombinerInputParameterivNV_remap_index 252 +#define GetCombinerOutputParameterfvNV_remap_index 253 +#define GetCombinerOutputParameterivNV_remap_index 254 +#define GetFinalCombinerInputParameterfvNV_remap_index 255 +#define GetFinalCombinerInputParameterivNV_remap_index 256 +#define ResizeBuffersMESA_remap_index 257 +#define WindowPos2dMESA_remap_index 258 +#define WindowPos2dvMESA_remap_index 259 +#define WindowPos2fMESA_remap_index 260 +#define WindowPos2fvMESA_remap_index 261 +#define WindowPos2iMESA_remap_index 262 +#define WindowPos2ivMESA_remap_index 263 +#define WindowPos2sMESA_remap_index 264 +#define WindowPos2svMESA_remap_index 265 +#define WindowPos3dMESA_remap_index 266 +#define WindowPos3dvMESA_remap_index 267 +#define WindowPos3fMESA_remap_index 268 +#define WindowPos3fvMESA_remap_index 269 +#define WindowPos3iMESA_remap_index 270 +#define WindowPos3ivMESA_remap_index 271 +#define WindowPos3sMESA_remap_index 272 +#define WindowPos3svMESA_remap_index 273 +#define WindowPos4dMESA_remap_index 274 +#define WindowPos4dvMESA_remap_index 275 +#define WindowPos4fMESA_remap_index 276 +#define WindowPos4fvMESA_remap_index 277 +#define WindowPos4iMESA_remap_index 278 +#define WindowPos4ivMESA_remap_index 279 +#define WindowPos4sMESA_remap_index 280 +#define WindowPos4svMESA_remap_index 281 +#define MultiModeDrawArraysIBM_remap_index 282 +#define MultiModeDrawElementsIBM_remap_index 283 +#define DeleteFencesNV_remap_index 284 +#define FinishFenceNV_remap_index 285 +#define GenFencesNV_remap_index 286 +#define GetFenceivNV_remap_index 287 +#define IsFenceNV_remap_index 288 +#define SetFenceNV_remap_index 289 +#define TestFenceNV_remap_index 290 +#define AreProgramsResidentNV_remap_index 291 +#define BindProgramNV_remap_index 292 +#define DeleteProgramsNV_remap_index 293 +#define ExecuteProgramNV_remap_index 294 +#define GenProgramsNV_remap_index 295 +#define GetProgramParameterdvNV_remap_index 296 +#define GetProgramParameterfvNV_remap_index 297 +#define GetProgramStringNV_remap_index 298 +#define GetProgramivNV_remap_index 299 +#define GetTrackMatrixivNV_remap_index 300 +#define GetVertexAttribPointervNV_remap_index 301 +#define GetVertexAttribdvNV_remap_index 302 +#define GetVertexAttribfvNV_remap_index 303 +#define GetVertexAttribivNV_remap_index 304 +#define IsProgramNV_remap_index 305 +#define LoadProgramNV_remap_index 306 +#define ProgramParameters4dvNV_remap_index 307 +#define ProgramParameters4fvNV_remap_index 308 +#define RequestResidentProgramsNV_remap_index 309 +#define TrackMatrixNV_remap_index 310 +#define VertexAttrib1dNV_remap_index 311 +#define VertexAttrib1dvNV_remap_index 312 +#define VertexAttrib1fNV_remap_index 313 +#define VertexAttrib1fvNV_remap_index 314 +#define VertexAttrib1sNV_remap_index 315 +#define VertexAttrib1svNV_remap_index 316 +#define VertexAttrib2dNV_remap_index 317 +#define VertexAttrib2dvNV_remap_index 318 +#define VertexAttrib2fNV_remap_index 319 +#define VertexAttrib2fvNV_remap_index 320 +#define VertexAttrib2sNV_remap_index 321 +#define VertexAttrib2svNV_remap_index 322 +#define VertexAttrib3dNV_remap_index 323 +#define VertexAttrib3dvNV_remap_index 324 +#define VertexAttrib3fNV_remap_index 325 +#define VertexAttrib3fvNV_remap_index 326 +#define VertexAttrib3sNV_remap_index 327 +#define VertexAttrib3svNV_remap_index 328 +#define VertexAttrib4dNV_remap_index 329 +#define VertexAttrib4dvNV_remap_index 330 +#define VertexAttrib4fNV_remap_index 331 +#define VertexAttrib4fvNV_remap_index 332 +#define VertexAttrib4sNV_remap_index 333 +#define VertexAttrib4svNV_remap_index 334 +#define VertexAttrib4ubNV_remap_index 335 +#define VertexAttrib4ubvNV_remap_index 336 +#define VertexAttribPointerNV_remap_index 337 +#define VertexAttribs1dvNV_remap_index 338 +#define VertexAttribs1fvNV_remap_index 339 +#define VertexAttribs1svNV_remap_index 340 +#define VertexAttribs2dvNV_remap_index 341 +#define VertexAttribs2fvNV_remap_index 342 +#define VertexAttribs2svNV_remap_index 343 +#define VertexAttribs3dvNV_remap_index 344 +#define VertexAttribs3fvNV_remap_index 345 +#define VertexAttribs3svNV_remap_index 346 +#define VertexAttribs4dvNV_remap_index 347 +#define VertexAttribs4fvNV_remap_index 348 +#define VertexAttribs4svNV_remap_index 349 +#define VertexAttribs4ubvNV_remap_index 350 +#define GetTexBumpParameterfvATI_remap_index 351 +#define GetTexBumpParameterivATI_remap_index 352 +#define TexBumpParameterfvATI_remap_index 353 +#define TexBumpParameterivATI_remap_index 354 +#define AlphaFragmentOp1ATI_remap_index 355 +#define AlphaFragmentOp2ATI_remap_index 356 +#define AlphaFragmentOp3ATI_remap_index 357 +#define BeginFragmentShaderATI_remap_index 358 +#define BindFragmentShaderATI_remap_index 359 +#define ColorFragmentOp1ATI_remap_index 360 +#define ColorFragmentOp2ATI_remap_index 361 +#define ColorFragmentOp3ATI_remap_index 362 +#define DeleteFragmentShaderATI_remap_index 363 +#define EndFragmentShaderATI_remap_index 364 +#define GenFragmentShadersATI_remap_index 365 +#define PassTexCoordATI_remap_index 366 +#define SampleMapATI_remap_index 367 +#define SetFragmentShaderConstantATI_remap_index 368 +#define PointParameteriNV_remap_index 369 +#define PointParameterivNV_remap_index 370 +#define ActiveStencilFaceEXT_remap_index 371 +#define BindVertexArrayAPPLE_remap_index 372 +#define DeleteVertexArraysAPPLE_remap_index 373 +#define GenVertexArraysAPPLE_remap_index 374 +#define IsVertexArrayAPPLE_remap_index 375 +#define GetProgramNamedParameterdvNV_remap_index 376 +#define GetProgramNamedParameterfvNV_remap_index 377 +#define ProgramNamedParameter4dNV_remap_index 378 +#define ProgramNamedParameter4dvNV_remap_index 379 +#define ProgramNamedParameter4fNV_remap_index 380 +#define ProgramNamedParameter4fvNV_remap_index 381 +#define PrimitiveRestartIndexNV_remap_index 382 +#define PrimitiveRestartNV_remap_index 383 +#define DepthBoundsEXT_remap_index 384 +#define BlendEquationSeparateEXT_remap_index 385 +#define BindFramebufferEXT_remap_index 386 +#define BindRenderbufferEXT_remap_index 387 +#define CheckFramebufferStatusEXT_remap_index 388 +#define DeleteFramebuffersEXT_remap_index 389 +#define DeleteRenderbuffersEXT_remap_index 390 +#define FramebufferRenderbufferEXT_remap_index 391 +#define FramebufferTexture1DEXT_remap_index 392 +#define FramebufferTexture2DEXT_remap_index 393 +#define FramebufferTexture3DEXT_remap_index 394 +#define GenFramebuffersEXT_remap_index 395 +#define GenRenderbuffersEXT_remap_index 396 +#define GenerateMipmapEXT_remap_index 397 +#define GetFramebufferAttachmentParameterivEXT_remap_index 398 +#define GetRenderbufferParameterivEXT_remap_index 399 +#define IsFramebufferEXT_remap_index 400 +#define IsRenderbufferEXT_remap_index 401 +#define RenderbufferStorageEXT_remap_index 402 +#define BlitFramebufferEXT_remap_index 403 +#define BufferParameteriAPPLE_remap_index 404 +#define FlushMappedBufferRangeAPPLE_remap_index 405 +#define BindFragDataLocationEXT_remap_index 406 +#define GetFragDataLocationEXT_remap_index 407 +#define GetUniformuivEXT_remap_index 408 +#define GetVertexAttribIivEXT_remap_index 409 +#define GetVertexAttribIuivEXT_remap_index 410 +#define Uniform1uiEXT_remap_index 411 +#define Uniform1uivEXT_remap_index 412 +#define Uniform2uiEXT_remap_index 413 +#define Uniform2uivEXT_remap_index 414 +#define Uniform3uiEXT_remap_index 415 +#define Uniform3uivEXT_remap_index 416 +#define Uniform4uiEXT_remap_index 417 +#define Uniform4uivEXT_remap_index 418 +#define VertexAttribI1iEXT_remap_index 419 +#define VertexAttribI1ivEXT_remap_index 420 +#define VertexAttribI1uiEXT_remap_index 421 +#define VertexAttribI1uivEXT_remap_index 422 +#define VertexAttribI2iEXT_remap_index 423 +#define VertexAttribI2ivEXT_remap_index 424 +#define VertexAttribI2uiEXT_remap_index 425 +#define VertexAttribI2uivEXT_remap_index 426 +#define VertexAttribI3iEXT_remap_index 427 +#define VertexAttribI3ivEXT_remap_index 428 +#define VertexAttribI3uiEXT_remap_index 429 +#define VertexAttribI3uivEXT_remap_index 430 +#define VertexAttribI4bvEXT_remap_index 431 +#define VertexAttribI4iEXT_remap_index 432 +#define VertexAttribI4ivEXT_remap_index 433 +#define VertexAttribI4svEXT_remap_index 434 +#define VertexAttribI4ubvEXT_remap_index 435 +#define VertexAttribI4uiEXT_remap_index 436 +#define VertexAttribI4uivEXT_remap_index 437 +#define VertexAttribI4usvEXT_remap_index 438 +#define VertexAttribIPointerEXT_remap_index 439 +#define FramebufferTextureLayerEXT_remap_index 440 +#define ColorMaskIndexedEXT_remap_index 441 +#define DisableIndexedEXT_remap_index 442 +#define EnableIndexedEXT_remap_index 443 +#define GetBooleanIndexedvEXT_remap_index 444 +#define GetIntegerIndexedvEXT_remap_index 445 +#define IsEnabledIndexedEXT_remap_index 446 +#define ClearColorIiEXT_remap_index 447 +#define ClearColorIuiEXT_remap_index 448 +#define GetTexParameterIivEXT_remap_index 449 +#define GetTexParameterIuivEXT_remap_index 450 +#define TexParameterIivEXT_remap_index 451 +#define TexParameterIuivEXT_remap_index 452 +#define BeginConditionalRenderNV_remap_index 453 +#define EndConditionalRenderNV_remap_index 454 +#define BeginTransformFeedbackEXT_remap_index 455 +#define BindBufferBaseEXT_remap_index 456 +#define BindBufferOffsetEXT_remap_index 457 +#define BindBufferRangeEXT_remap_index 458 +#define EndTransformFeedbackEXT_remap_index 459 +#define GetTransformFeedbackVaryingEXT_remap_index 460 +#define TransformFeedbackVaryingsEXT_remap_index 461 +#define ProvokingVertexEXT_remap_index 462 +#define GetTexParameterPointervAPPLE_remap_index 463 +#define TextureRangeAPPLE_remap_index 464 +#define GetObjectParameterivAPPLE_remap_index 465 +#define ObjectPurgeableAPPLE_remap_index 466 +#define ObjectUnpurgeableAPPLE_remap_index 467 +#define ActiveProgramEXT_remap_index 468 +#define CreateShaderProgramEXT_remap_index 469 +#define UseShaderProgramEXT_remap_index 470 +#define StencilFuncSeparateATI_remap_index 471 +#define ProgramEnvParameters4fvEXT_remap_index 472 +#define ProgramLocalParameters4fvEXT_remap_index 473 +#define GetQueryObjecti64vEXT_remap_index 474 +#define GetQueryObjectui64vEXT_remap_index 475 +#define EGLImageTargetRenderbufferStorageOES_remap_index 476 +#define EGLImageTargetTexture2DOES_remap_index 477 #define _gloffset_AttachShader driDispatchRemapTable[AttachShader_remap_index] #define _gloffset_CreateProgram driDispatchRemapTable[CreateProgram_remap_index] @@ -1617,6 +1627,11 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define _gloffset_IsTransformFeedback driDispatchRemapTable[IsTransformFeedback_remap_index] #define _gloffset_PauseTransformFeedback driDispatchRemapTable[PauseTransformFeedback_remap_index] #define _gloffset_ResumeTransformFeedback driDispatchRemapTable[ResumeTransformFeedback_remap_index] +#define _gloffset_ClearDepthf driDispatchRemapTable[ClearDepthf_remap_index] +#define _gloffset_DepthRangef driDispatchRemapTable[DepthRangef_remap_index] +#define _gloffset_GetShaderPrecisionFormat driDispatchRemapTable[GetShaderPrecisionFormat_remap_index] +#define _gloffset_ReleaseShaderCompiler driDispatchRemapTable[ReleaseShaderCompiler_remap_index] +#define _gloffset_ShaderBinary driDispatchRemapTable[ShaderBinary_remap_index] #define _gloffset_PolygonOffsetEXT driDispatchRemapTable[PolygonOffsetEXT_remap_index] #define _gloffset_GetPixelTexGenParameterfvSGIS driDispatchRemapTable[GetPixelTexGenParameterfvSGIS_remap_index] #define _gloffset_GetPixelTexGenParameterivSGIS driDispatchRemapTable[GetPixelTexGenParameterivSGIS_remap_index] @@ -3701,6 +3716,21 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define CALL_ResumeTransformFeedback(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(void)), _gloffset_ResumeTransformFeedback, parameters) #define GET_ResumeTransformFeedback(disp) GET_by_offset(disp, _gloffset_ResumeTransformFeedback) #define SET_ResumeTransformFeedback(disp, fn) SET_by_offset(disp, _gloffset_ResumeTransformFeedback, fn) +#define CALL_ClearDepthf(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLclampf)), _gloffset_ClearDepthf, parameters) +#define GET_ClearDepthf(disp) GET_by_offset(disp, _gloffset_ClearDepthf) +#define SET_ClearDepthf(disp, fn) SET_by_offset(disp, _gloffset_ClearDepthf, fn) +#define CALL_DepthRangef(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLclampf, GLclampf)), _gloffset_DepthRangef, parameters) +#define GET_DepthRangef(disp) GET_by_offset(disp, _gloffset_DepthRangef) +#define SET_DepthRangef(disp, fn) SET_by_offset(disp, _gloffset_DepthRangef, fn) +#define CALL_GetShaderPrecisionFormat(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLint *, GLint *)), _gloffset_GetShaderPrecisionFormat, parameters) +#define GET_GetShaderPrecisionFormat(disp) GET_by_offset(disp, _gloffset_GetShaderPrecisionFormat) +#define SET_GetShaderPrecisionFormat(disp, fn) SET_by_offset(disp, _gloffset_GetShaderPrecisionFormat, fn) +#define CALL_ReleaseShaderCompiler(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(void)), _gloffset_ReleaseShaderCompiler, parameters) +#define GET_ReleaseShaderCompiler(disp) GET_by_offset(disp, _gloffset_ReleaseShaderCompiler) +#define SET_ReleaseShaderCompiler(disp, fn) SET_by_offset(disp, _gloffset_ReleaseShaderCompiler, fn) +#define CALL_ShaderBinary(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei)), _gloffset_ShaderBinary, parameters) +#define GET_ShaderBinary(disp) GET_by_offset(disp, _gloffset_ShaderBinary) +#define SET_ShaderBinary(disp, fn) SET_by_offset(disp, _gloffset_ShaderBinary, fn) #define CALL_PolygonOffsetEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLfloat, GLfloat)), _gloffset_PolygonOffsetEXT, parameters) #define GET_PolygonOffsetEXT(disp) GET_by_offset(disp, _gloffset_PolygonOffsetEXT) #define SET_PolygonOffsetEXT(disp, fn) SET_by_offset(disp, _gloffset_PolygonOffsetEXT, fn) diff --git a/src/mesa/main/hint.c b/src/mesa/main/hint.c index 878f10d4a4..bdbd7519d3 100644 --- a/src/mesa/main/hint.c +++ b/src/mesa/main/hint.c @@ -29,6 +29,7 @@ #include "context.h" #include "hint.h" #include "imports.h" +#include "mtypes.h" diff --git a/src/mesa/main/histogram.c b/src/mesa/main/histogram.c index b98e3219c5..75bb925941 100644 --- a/src/mesa/main/histogram.c +++ b/src/mesa/main/histogram.c @@ -28,6 +28,7 @@ #include "colormac.h" #include "histogram.h" #include "macros.h" +#include "mfeatures.h" #include "main/dispatch.h" diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index df1527b47f..909c18e7e6 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -35,6 +35,8 @@ #include "image.h" #include "imports.h" #include "macros.h" +#include "mfeatures.h" +#include "mtypes.h" /** @@ -154,6 +156,8 @@ _mesa_sizeof_type( GLenum type ) return sizeof(GLdouble); case GL_HALF_FLOAT_ARB: return sizeof(GLhalfARB); + case GL_FIXED: + return sizeof(GLfixed); default: return -1; } diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c index bcca4edc1a..bd1fd7cfbf 100644 --- a/src/mesa/main/imports.c +++ b/src/mesa/main/imports.c @@ -46,6 +46,7 @@ #include "imports.h" #include "context.h" +#include "mtypes.h" #include "version.h" #ifdef _GNU_SOURCE @@ -88,7 +89,8 @@ _mesa_align_malloc(size_t bytes, unsigned long alignment) #if defined(HAVE_POSIX_MEMALIGN) void *mem; int err = posix_memalign(& mem, alignment, bytes); - (void) err; + if (err) + return NULL; return mem; #elif defined(_WIN32) && defined(_MSC_VER) return _aligned_malloc(bytes, alignment); diff --git a/src/mesa/main/matrix.c b/src/mesa/main/matrix.c index 105d4a327f..76c7e1c9d1 100644 --- a/src/mesa/main/matrix.c +++ b/src/mesa/main/matrix.c @@ -40,6 +40,7 @@ #include "context.h" #include "enums.h" #include "macros.h" +#include "mfeatures.h" #include "matrix.h" #include "mtypes.h" #include "math/m_matrix.h" diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c index ad63b178df..e073e17039 100644 --- a/src/mesa/main/mipmap.c +++ b/src/mesa/main/mipmap.c @@ -30,6 +30,7 @@ #include "imports.h" #include "formats.h" #include "mipmap.h" +#include "mtypes.h" #include "teximage.h" #include "texstore.h" #include "image.h" diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 417f8df8e3..1522332e8a 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -40,6 +40,7 @@ #include "glapi/glapi.h" #include "math/m_matrix.h" /* GLmatrix */ #include "main/simple_list.h" /* struct simple_node */ +#include "main/formats.h" /* MESA_FORMAT_COUNT */ /** @@ -2211,6 +2212,7 @@ struct gl_shader_compiler_options GLboolean EmitNoCont; /**< Emit CONT opcode? */ GLboolean EmitNoMainReturn; /**< Emit CONT/RET opcodes? */ GLboolean EmitNoNoise; /**< Emit NOISE opcodes? */ + GLboolean EmitNoPow; /**< Emit POW opcodes? */ /** * \name Forms of indirect addressing the driver cannot do. @@ -2580,6 +2582,7 @@ struct gl_program_constants */ struct gl_constants { + GLint MaxTextureMbytes; /**< Max memory per image, in MB */ GLint MaxTextureLevels; /**< Max mipmap levels. */ GLint Max3DTextureLevels; /**< Max mipmap levels for 3D textures */ GLint MaxCubeTextureLevels; /**< Max mipmap levels for cube textures */ @@ -2666,6 +2669,9 @@ struct gl_constants struct gl_extensions { GLboolean dummy; /* don't remove this! */ + GLboolean dummy_true; /* Set true by _mesa_init_extensions(). */ + GLboolean dummy_false; /* Set false by _mesa_init_extensions(). */ + GLboolean ARB_ES2_compatibility; GLboolean ARB_blend_func_extended; GLboolean ARB_copy_buffer; GLboolean ARB_depth_buffer_float; @@ -2781,6 +2787,7 @@ struct gl_extensions GLboolean EXT_vertex_array; GLboolean EXT_vertex_array_bgra; GLboolean EXT_vertex_array_set; + GLboolean OES_standard_derivatives; /* vendor extensions */ GLboolean APPLE_client_storage; GLboolean APPLE_packed_pixels; @@ -2820,6 +2827,7 @@ struct gl_extensions GLboolean OES_EGL_image; GLboolean OES_draw_texture; GLboolean EXT_texture_format_BGRA8888; + GLboolean extension_sentinel; /** The extension string */ const GLubyte *String; /** Number of supported extensions */ @@ -3252,6 +3260,8 @@ struct gl_context /** software compression/decompression supported or not */ GLboolean Mesa_DXTn; + GLboolean TextureFormatSupported[MESA_FORMAT_COUNT]; + /** * Use dp4 (rather than mul/mad) instructions for position * transformation? diff --git a/src/mesa/main/multisample.c b/src/mesa/main/multisample.c index 5487d45f56..67fdb8c9db 100644 --- a/src/mesa/main/multisample.c +++ b/src/mesa/main/multisample.c @@ -27,6 +27,7 @@ #include "main/context.h" #include "main/macros.h" #include "main/multisample.h" +#include "main/mtypes.h" /** diff --git a/src/mesa/main/nvprogram.c b/src/mesa/main/nvprogram.c index 36cea3bb9a..dd198b8141 100644 --- a/src/mesa/main/nvprogram.c +++ b/src/mesa/main/nvprogram.c @@ -42,6 +42,7 @@ #include "main/hash.h" #include "main/imports.h" #include "main/macros.h" +#include "main/mtypes.h" #include "main/nvprogram.h" #include "program/arbprogparse.h" #include "program/nvfragparse.h" diff --git a/src/mesa/main/pack.c b/src/mesa/main/pack.c index fdb647c7ea..512835cb80 100644 --- a/src/mesa/main/pack.c +++ b/src/mesa/main/pack.c @@ -34,6 +34,7 @@ #include "enums.h" #include "image.h" #include "imports.h" +#include "mtypes.h" #include "pack.h" #include "pixeltransfer.h" #include "imports.h" @@ -484,11 +485,25 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4], const struct gl_pixelstore_attrib *dstPacking, GLbitfield transferOps) { - GLfloat luminance[MAX_WIDTH]; + GLfloat *luminance; const GLint comps = _mesa_components_in_format(dstFormat); const GLboolean intDstFormat = _mesa_is_integer_format(dstFormat); GLuint i; + if (dstFormat == GL_LUMINANCE || + dstFormat == GL_LUMINANCE_ALPHA || + dstFormat == GL_LUMINANCE_INTEGER_EXT || + dstFormat == GL_LUMINANCE_ALPHA_INTEGER_EXT) { + luminance = (GLfloat *) malloc(n * sizeof(GLfloat)); + if (!luminance) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel packing"); + return; + } + } + else { + luminance = NULL; + } + /* XXX * This test should probably go away. Have the caller set/clear the * IMAGE_CLAMP_BIT as needed. @@ -1907,6 +1922,8 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4], } } } + + free(luminance); } @@ -3462,7 +3479,12 @@ _mesa_unpack_color_span_chan( struct gl_context *ctx, { GLint dstComponents; GLint rDst, gDst, bDst, aDst, lDst, iDst; - GLfloat rgba[MAX_WIDTH][4]; + GLfloat (*rgba)[4] = (GLfloat (*)[4]) malloc(4 * n * sizeof(GLfloat)); + + if (!rgba) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking"); + return; + } dstComponents = _mesa_components_in_format( dstFormat ); /* source & dest image formats should have been error checked by now */ @@ -3471,9 +3493,14 @@ _mesa_unpack_color_span_chan( struct gl_context *ctx, /* * Extract image data and convert to RGBA floats */ - assert(n <= MAX_WIDTH); if (srcFormat == GL_COLOR_INDEX) { - GLuint indexes[MAX_WIDTH]; + GLuint *indexes = (GLuint *) malloc(n * sizeof(GLuint)); + + if (!indexes) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking"); + return; + } + extract_uint_indexes(n, indexes, srcFormat, srcType, source, srcPacking); @@ -3484,6 +3511,8 @@ _mesa_unpack_color_span_chan( struct gl_context *ctx, for (i = 0; i < n; i++) { dest[i] = (GLchan) (indexes[i] & 0xff); } + free(indexes); + free(rgba); return; } else { @@ -3498,6 +3527,8 @@ _mesa_unpack_color_span_chan( struct gl_context *ctx, * with color indexes. */ transferOps &= ~(IMAGE_SCALE_BIAS_BIT | IMAGE_MAP_COLOR_BIT); + + free(indexes); } else { /* non-color index data */ @@ -3575,6 +3606,8 @@ _mesa_unpack_color_span_chan( struct gl_context *ctx, dst += dstComponents; } } + + free(rgba); } } @@ -3652,7 +3685,12 @@ _mesa_unpack_color_span_float( struct gl_context *ctx, { GLint dstComponents; GLint rDst, gDst, bDst, aDst, lDst, iDst; - GLfloat rgba[MAX_WIDTH][4]; + GLfloat (*rgba)[4] = (GLfloat (*)[4]) malloc(4 * n * sizeof(GLfloat)); + + if (!rgba) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking"); + return; + } dstComponents = _mesa_components_in_format( dstFormat ); /* source & dest image formats should have been error checked by now */ @@ -3661,9 +3699,15 @@ _mesa_unpack_color_span_float( struct gl_context *ctx, /* * Extract image data and convert to RGBA floats */ - assert(n <= MAX_WIDTH); if (srcFormat == GL_COLOR_INDEX) { - GLuint indexes[MAX_WIDTH]; + GLuint *indexes = (GLuint *) malloc(n * sizeof(GLuint)); + + if (!indexes) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking"); + free(rgba); + return; + } + extract_uint_indexes(n, indexes, srcFormat, srcType, source, srcPacking); @@ -3674,6 +3718,8 @@ _mesa_unpack_color_span_float( struct gl_context *ctx, for (i = 0; i < n; i++) { dest[i] = (GLchan) (indexes[i] & 0xff); } + free(indexes); + free(rgba); return; } else { @@ -3688,6 +3734,8 @@ _mesa_unpack_color_span_float( struct gl_context *ctx, * with color indexes. */ transferOps &= ~(IMAGE_SCALE_BIAS_BIT | IMAGE_MAP_COLOR_BIT); + + free(indexes); } else { /* non-color index data */ @@ -3760,6 +3808,8 @@ _mesa_unpack_color_span_float( struct gl_context *ctx, dst += dstComponents; } } + + free(rgba); } } @@ -3776,9 +3826,12 @@ _mesa_unpack_color_span_uint(struct gl_context *ctx, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking) { - GLuint rgba[MAX_WIDTH][4]; + GLuint (*rgba)[4] = (GLuint (*)[4]) malloc(n * 4 * sizeof(GLfloat)); - ASSERT(n <= MAX_WIDTH); + if (!rgba) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking"); + return; + } ASSERT(dstFormat == GL_ALPHA || dstFormat == GL_LUMINANCE || @@ -3912,6 +3965,8 @@ _mesa_unpack_color_span_uint(struct gl_context *ctx, } } } + + free(rgba); } @@ -3943,9 +3998,14 @@ _mesa_unpack_dudv_span_byte( struct gl_context *ctx, /* general solution */ { GLint dstComponents; - GLfloat rgba[MAX_WIDTH][4]; GLbyte *dst = dest; GLuint i; + GLfloat (*rgba)[4] = (GLfloat (*)[4]) malloc(4 * n * sizeof(GLfloat)); + + if (!rgba) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking"); + return; + } dstComponents = _mesa_components_in_format( dstFormat ); /* source & dest image formats should have been error checked by now */ @@ -3954,7 +4014,6 @@ _mesa_unpack_dudv_span_byte( struct gl_context *ctx, /* * Extract image data and convert to RGBA floats */ - assert(n <= MAX_WIDTH); extract_float_rgba(n, rgba, srcFormat, srcType, source, srcPacking->SwapBytes); @@ -3970,6 +4029,8 @@ _mesa_unpack_dudv_span_byte( struct gl_context *ctx, dst[1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); dst += dstComponents; } + + free(rgba); } } @@ -3988,7 +4049,7 @@ _mesa_unpack_dudv_span_byte( struct gl_context *ctx, * transferOps - the pixel transfer operations to apply */ void -_mesa_unpack_index_span( const struct gl_context *ctx, GLuint n, +_mesa_unpack_index_span( struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking, @@ -4026,8 +4087,12 @@ _mesa_unpack_index_span( const struct gl_context *ctx, GLuint n, /* * general solution */ - GLuint indexes[MAX_WIDTH]; - assert(n <= MAX_WIDTH); + GLuint *indexes = (GLuint *) malloc(n * sizeof(GLuint)); + + if (!indexes) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking"); + return; + } extract_uint_indexes(n, indexes, GL_COLOR_INDEX, srcType, source, srcPacking); @@ -4061,19 +4126,24 @@ _mesa_unpack_index_span( const struct gl_context *ctx, GLuint n, default: _mesa_problem(ctx, "bad dstType in _mesa_unpack_index_span"); } + + free(indexes); } } void -_mesa_pack_index_span( const struct gl_context *ctx, GLuint n, +_mesa_pack_index_span( struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, const GLuint *source, const struct gl_pixelstore_attrib *dstPacking, GLbitfield transferOps ) { - GLuint indexes[MAX_WIDTH]; + GLuint *indexes = (GLuint *) malloc(n * sizeof(GLuint)); - ASSERT(n <= MAX_WIDTH); + if (!indexes) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel packing"); + return; + } transferOps &= (IMAGE_MAP_COLOR_BIT | IMAGE_SHIFT_OFFSET_BIT); @@ -4178,6 +4248,8 @@ _mesa_pack_index_span( const struct gl_context *ctx, GLuint n, default: _mesa_problem(ctx, "bad type in _mesa_pack_index_span"); } + + free(indexes); } @@ -4196,7 +4268,7 @@ _mesa_pack_index_span( const struct gl_context *ctx, GLuint n, * transferOps - apply offset/bias/lookup ops? */ void -_mesa_unpack_stencil_span( const struct gl_context *ctx, GLuint n, +_mesa_unpack_stencil_span( struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking, @@ -4240,8 +4312,12 @@ _mesa_unpack_stencil_span( const struct gl_context *ctx, GLuint n, /* * general solution */ - GLuint indexes[MAX_WIDTH]; - assert(n <= MAX_WIDTH); + GLuint *indexes = (GLuint *) malloc(n * sizeof(GLuint)); + + if (!indexes) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "stencil unpacking"); + return; + } extract_uint_indexes(n, indexes, GL_STENCIL_INDEX, srcType, source, srcPacking); @@ -4286,18 +4362,23 @@ _mesa_unpack_stencil_span( const struct gl_context *ctx, GLuint n, default: _mesa_problem(ctx, "bad dstType in _mesa_unpack_stencil_span"); } + + free(indexes); } } void -_mesa_pack_stencil_span( const struct gl_context *ctx, GLuint n, +_mesa_pack_stencil_span( struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, const GLstencil *source, const struct gl_pixelstore_attrib *dstPacking ) { - GLstencil stencil[MAX_WIDTH]; + GLstencil *stencil = (GLstencil *) malloc(n * sizeof(GLstencil)); - ASSERT(n <= MAX_WIDTH); + if (!stencil) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "stencil packing"); + return; + } if (ctx->Pixel.IndexShift || ctx->Pixel.IndexOffset || ctx->Pixel.MapStencilFlag) { @@ -4436,6 +4517,8 @@ _mesa_pack_stencil_span( const struct gl_context *ctx, GLuint n, default: _mesa_problem(ctx, "bad type in _mesa_pack_index_span"); } + + free(stencil); } #define DEPTH_VALUES(GLTYPE, GLTYPE2FLOAT) \ @@ -4466,12 +4549,12 @@ _mesa_pack_stencil_span( const struct gl_context *ctx, GLuint n, * (ignored for GLfloat). */ void -_mesa_unpack_depth_span( const struct gl_context *ctx, GLuint n, +_mesa_unpack_depth_span( struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLuint depthMax, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking ) { - GLfloat depthTemp[MAX_WIDTH], *depthValues; + GLfloat *depthTemp, *depthValues; GLboolean needClamp = GL_FALSE; /* Look for special cases first. @@ -4517,6 +4600,12 @@ _mesa_unpack_depth_span( const struct gl_context *ctx, GLuint n, /* general case path follows */ + depthTemp = (GLfloat *) malloc(n * sizeof(GLfloat)); + if (!depthTemp) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking"); + return; + } + if (dstType == GL_FLOAT) { depthValues = (GLfloat *) dest; } @@ -4599,6 +4688,7 @@ _mesa_unpack_depth_span( const struct gl_context *ctx, GLuint n, break; default: _mesa_problem(NULL, "bad type in _mesa_unpack_depth_span()"); + free(depthTemp); return; } @@ -4658,6 +4748,8 @@ _mesa_unpack_depth_span( const struct gl_context *ctx, GLuint n, ASSERT(dstType == GL_FLOAT); /*ASSERT(depthMax == 1.0F);*/ } + + free(depthTemp); } @@ -4665,13 +4757,15 @@ _mesa_unpack_depth_span( const struct gl_context *ctx, GLuint n, * Pack an array of depth values. The values are floats in [0,1]. */ void -_mesa_pack_depth_span( const struct gl_context *ctx, GLuint n, GLvoid *dest, +_mesa_pack_depth_span( struct gl_context *ctx, GLuint n, GLvoid *dest, GLenum dstType, const GLfloat *depthSpan, const struct gl_pixelstore_attrib *dstPacking ) { - GLfloat depthCopy[MAX_WIDTH]; - - ASSERT(n <= MAX_WIDTH); + GLfloat *depthCopy = (GLfloat *) malloc(n * sizeof(GLfloat)); + if (!depthCopy) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel packing"); + return; + } if (ctx->Pixel.DepthScale != 1.0 || ctx->Pixel.DepthBias != 0.0) { memcpy(depthCopy, depthSpan, n * sizeof(GLfloat)); @@ -4773,6 +4867,8 @@ _mesa_pack_depth_span( const struct gl_context *ctx, GLuint n, GLvoid *dest, default: _mesa_problem(ctx, "bad type in _mesa_pack_depth_span"); } + + free(depthCopy); } @@ -4781,16 +4877,21 @@ _mesa_pack_depth_span( const struct gl_context *ctx, GLuint n, GLvoid *dest, * Pack depth and stencil values as GL_DEPTH_STENCIL/GL_UNSIGNED_INT_24_8. */ void -_mesa_pack_depth_stencil_span(const struct gl_context *ctx, GLuint n, GLuint *dest, +_mesa_pack_depth_stencil_span(struct gl_context *ctx, GLuint n, GLuint *dest, const GLfloat *depthVals, const GLstencil *stencilVals, const struct gl_pixelstore_attrib *dstPacking) { - GLfloat depthCopy[MAX_WIDTH]; - GLstencil stencilCopy[MAX_WIDTH]; + GLfloat *depthCopy = (GLfloat *) malloc(n * sizeof(GLfloat)); + GLstencil *stencilCopy = (GLstencil *) malloc(n * sizeof(GLstencil)); GLuint i; - ASSERT(n <= MAX_WIDTH); + if (!depthCopy || !stencilCopy) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel packing"); + free(depthCopy); + free(stencilCopy); + return; + } if (ctx->Pixel.DepthScale != 1.0 || ctx->Pixel.DepthBias != 0.0) { memcpy(depthCopy, depthVals, n * sizeof(GLfloat)); @@ -4814,6 +4915,9 @@ _mesa_pack_depth_stencil_span(const struct gl_context *ctx, GLuint n, GLuint *de if (dstPacking->SwapBytes) { _mesa_swap4(dest, n); } + + free(depthCopy); + free(stencilCopy); } diff --git a/src/mesa/main/pack.h b/src/mesa/main/pack.h index 65d3f7a0fb..78238ea583 100644 --- a/src/mesa/main/pack.h +++ b/src/mesa/main/pack.h @@ -90,7 +90,7 @@ _mesa_unpack_dudv_span_byte(struct gl_context *ctx, GLbitfield transferOps); extern void -_mesa_unpack_index_span(const struct gl_context *ctx, GLuint n, +_mesa_unpack_index_span(struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking, @@ -98,39 +98,39 @@ _mesa_unpack_index_span(const struct gl_context *ctx, GLuint n, extern void -_mesa_pack_index_span(const struct gl_context *ctx, GLuint n, +_mesa_pack_index_span(struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, const GLuint *source, const struct gl_pixelstore_attrib *dstPacking, GLbitfield transferOps); extern void -_mesa_unpack_stencil_span(const struct gl_context *ctx, GLuint n, +_mesa_unpack_stencil_span(struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking, GLbitfield transferOps); extern void -_mesa_pack_stencil_span(const struct gl_context *ctx, GLuint n, +_mesa_pack_stencil_span(struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, const GLstencil *source, const struct gl_pixelstore_attrib *dstPacking); extern void -_mesa_unpack_depth_span(const struct gl_context *ctx, GLuint n, +_mesa_unpack_depth_span(struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLuint depthMax, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking); extern void -_mesa_pack_depth_span(const struct gl_context *ctx, GLuint n, GLvoid *dest, +_mesa_pack_depth_span(struct gl_context *ctx, GLuint n, GLvoid *dest, GLenum dstType, const GLfloat *depthSpan, const struct gl_pixelstore_attrib *dstPacking); extern void -_mesa_pack_depth_stencil_span(const struct gl_context *ctx, +_mesa_pack_depth_stencil_span(struct gl_context *ctx, GLuint n, GLuint *dest, const GLfloat *depthVals, const GLstencil *stencilVals, diff --git a/src/mesa/main/pixel.c b/src/mesa/main/pixel.c index 5f824b3429..0254980b89 100644 --- a/src/mesa/main/pixel.c +++ b/src/mesa/main/pixel.c @@ -33,6 +33,7 @@ #include "colormac.h" #include "context.h" #include "macros.h" +#include "mfeatures.h" #include "pixel.h" #include "mtypes.h" #include "main/dispatch.h" diff --git a/src/mesa/main/pixelstore.c b/src/mesa/main/pixelstore.c index b16d27a4ea..9d78eec7fe 100644 --- a/src/mesa/main/pixelstore.c +++ b/src/mesa/main/pixelstore.c @@ -32,6 +32,7 @@ #include "bufferobj.h" #include "context.h" #include "pixelstore.h" +#include "mfeatures.h" #include "mtypes.h" diff --git a/src/mesa/main/pixeltransfer.c b/src/mesa/main/pixeltransfer.c index 711181fd89..c1832972f5 100644 --- a/src/mesa/main/pixeltransfer.c +++ b/src/mesa/main/pixeltransfer.c @@ -33,6 +33,7 @@ #include "colormac.h" #include "pixeltransfer.h" #include "imports.h" +#include "mtypes.h" /* diff --git a/src/mesa/main/queryobj.c b/src/mesa/main/queryobj.c index 8874397720..ef6460b2f9 100644 --- a/src/mesa/main/queryobj.c +++ b/src/mesa/main/queryobj.c @@ -28,6 +28,7 @@ #include "hash.h" #include "imports.h" #include "queryobj.h" +#include "mfeatures.h" #include "mtypes.h" #include "main/dispatch.h" @@ -143,6 +144,11 @@ get_query_binding_point(struct gl_context *ctx, GLenum target) return &ctx->Query.CurrentOcclusionObject; else return NULL; + case GL_ANY_SAMPLES_PASSED: + if (ctx->Extensions.ARB_occlusion_query2) + return &ctx->Query.CurrentOcclusionObject; + else + return NULL; case GL_TIME_ELAPSED_EXT: if (ctx->Extensions.EXT_timer_query) return &ctx->Query.CurrentTimerObject; @@ -378,11 +384,18 @@ _mesa_GetQueryObjectivARB(GLuint id, GLenum pname, GLint *params) if (!q->Ready) ctx->Driver.WaitQuery(ctx, q); /* if result is too large for returned type, clamp to max value */ - if (q->Result > 0x7fffffff) { - *params = 0x7fffffff; - } - else { - *params = (GLint)q->Result; + if (q->Target == GL_ANY_SAMPLES_PASSED) { + if (q->Result) + *params = GL_TRUE; + else + *params = GL_FALSE; + } else { + if (q->Result > 0x7fffffff) { + *params = 0x7fffffff; + } + else { + *params = (GLint)q->Result; + } } break; case GL_QUERY_RESULT_AVAILABLE_ARB: @@ -418,11 +431,18 @@ _mesa_GetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params) if (!q->Ready) ctx->Driver.WaitQuery(ctx, q); /* if result is too large for returned type, clamp to max value */ - if (q->Result > 0xffffffff) { - *params = 0xffffffff; - } - else { - *params = (GLuint)q->Result; + if (q->Target == GL_ANY_SAMPLES_PASSED) { + if (q->Result) + *params = GL_TRUE; + else + *params = GL_FALSE; + } else { + if (q->Result > 0xffffffff) { + *params = 0xffffffff; + } + else { + *params = (GLuint)q->Result; + } } break; case GL_QUERY_RESULT_AVAILABLE_ARB: diff --git a/src/mesa/main/queryobj.h b/src/mesa/main/queryobj.h index e289625731..e4ad96ba5a 100644 --- a/src/mesa/main/queryobj.h +++ b/src/mesa/main/queryobj.h @@ -27,6 +27,7 @@ #define QUERYOBJ_H +#include "main/mfeatures.h" #include "main/mtypes.h" #include "main/hash.h" diff --git a/src/mesa/main/rastpos.c b/src/mesa/main/rastpos.c index 6f52f07dfa..a1f6f42341 100644 --- a/src/mesa/main/rastpos.c +++ b/src/mesa/main/rastpos.c @@ -32,6 +32,8 @@ #include "context.h" #include "feedback.h" #include "macros.h" +#include "mfeatures.h" +#include "mtypes.h" #include "rastpos.h" #include "state.h" #include "main/dispatch.h" diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c index a5612e34ec..e5b85ca32b 100644 --- a/src/mesa/main/readpix.c +++ b/src/mesa/main/readpix.c @@ -30,6 +30,7 @@ #include "framebuffer.h" #include "formats.h" #include "image.h" +#include "mtypes.h" #include "state.h" diff --git a/src/mesa/main/remap_helper.h b/src/mesa/main/remap_helper.h index 7368c76e7e..a332f5da64 100644 --- a/src/mesa/main/remap_helper.h +++ b/src/mesa/main/remap_helper.h @@ -70,4666 +70,4686 @@ 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]: VertexAttribI1ivEXT (will be remapped) */ + /* _mesa_function_pool[1004]: VertexAttribI1ivEXT (will be remapped) */ "ip\0" "glVertexAttribI1ivEXT\0" "glVertexAttribI1iv\0" "\0" - /* _mesa_function_pool[1010]: TexImage4DSGIS (dynamic) */ + /* _mesa_function_pool[1049]: TexImage4DSGIS (dynamic) */ "iiiiiiiiiip\0" "glTexImage4DSGIS\0" "\0" - /* _mesa_function_pool[1040]: PolygonStipple (offset 175) */ + /* _mesa_function_pool[1079]: PolygonStipple (offset 175) */ "p\0" "glPolygonStipple\0" "\0" - /* _mesa_function_pool[1060]: WindowPos2dvMESA (will be remapped) */ + /* _mesa_function_pool[1099]: WindowPos2dvMESA (will be remapped) */ "p\0" "glWindowPos2dv\0" "glWindowPos2dvARB\0" "glWindowPos2dvMESA\0" "\0" - /* _mesa_function_pool[1115]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1154]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1159]: BlendEquationSeparateEXT (will be remapped) */ + /* _mesa_function_pool[1198]: BlendEquationSeparateEXT (will be remapped) */ "ii\0" "glBlendEquationSeparate\0" "glBlendEquationSeparateEXT\0" "glBlendEquationSeparateATI\0" "\0" - /* _mesa_function_pool[1241]: ListParameterfSGIX (dynamic) */ + /* _mesa_function_pool[1280]: ListParameterfSGIX (dynamic) */ "iif\0" "glListParameterfSGIX\0" "\0" - /* _mesa_function_pool[1267]: SecondaryColor3bEXT (will be remapped) */ + /* _mesa_function_pool[1306]: SecondaryColor3bEXT (will be remapped) */ "iii\0" "glSecondaryColor3b\0" "glSecondaryColor3bEXT\0" "\0" - /* _mesa_function_pool[1313]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[1352]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */ "pppp\0" "glTexCoord4fColor4fNormal3fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[1359]: GetPixelMapfv (offset 271) */ + /* _mesa_function_pool[1398]: GetPixelMapfv (offset 271) */ "ip\0" "glGetPixelMapfv\0" "\0" - /* _mesa_function_pool[1379]: Color3uiv (offset 22) */ + /* _mesa_function_pool[1418]: Color3uiv (offset 22) */ "p\0" "glColor3uiv\0" "\0" - /* _mesa_function_pool[1394]: IsEnabled (offset 286) */ + /* _mesa_function_pool[1433]: IsEnabled (offset 286) */ "i\0" "glIsEnabled\0" "\0" - /* _mesa_function_pool[1409]: VertexAttrib4svNV (will be remapped) */ + /* _mesa_function_pool[1448]: VertexAttrib4svNV (will be remapped) */ "ip\0" "glVertexAttrib4svNV\0" "\0" - /* _mesa_function_pool[1433]: EvalCoord2fv (offset 235) */ + /* _mesa_function_pool[1472]: EvalCoord2fv (offset 235) */ "p\0" "glEvalCoord2fv\0" "\0" - /* _mesa_function_pool[1451]: GetBufferSubDataARB (will be remapped) */ + /* _mesa_function_pool[1490]: GetBufferSubDataARB (will be remapped) */ "iiip\0" "glGetBufferSubData\0" "glGetBufferSubDataARB\0" "\0" - /* _mesa_function_pool[1498]: BufferSubDataARB (will be remapped) */ + /* _mesa_function_pool[1537]: BufferSubDataARB (will be remapped) */ "iiip\0" "glBufferSubData\0" "glBufferSubDataARB\0" "\0" - /* _mesa_function_pool[1539]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1578]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1577]: AttachShader (will be remapped) */ + /* _mesa_function_pool[1616]: AttachShader (will be remapped) */ "ii\0" "glAttachShader\0" "\0" - /* _mesa_function_pool[1596]: VertexAttrib2fARB (will be remapped) */ + /* _mesa_function_pool[1635]: VertexAttrib2fARB (will be remapped) */ "iff\0" "glVertexAttrib2f\0" "glVertexAttrib2fARB\0" "\0" - /* _mesa_function_pool[1638]: GetDebugLogLengthMESA (dynamic) */ + /* _mesa_function_pool[1677]: GetDebugLogLengthMESA (dynamic) */ "iii\0" "glGetDebugLogLengthMESA\0" "\0" - /* _mesa_function_pool[1667]: GetMapiv (offset 268) */ + /* _mesa_function_pool[1706]: GetMapiv (offset 268) */ "iip\0" "glGetMapiv\0" "\0" - /* _mesa_function_pool[1683]: VertexAttrib3fARB (will be remapped) */ + /* _mesa_function_pool[1722]: VertexAttrib3fARB (will be remapped) */ "ifff\0" "glVertexAttrib3f\0" "glVertexAttrib3fARB\0" "\0" - /* _mesa_function_pool[1726]: Indexubv (offset 316) */ + /* _mesa_function_pool[1765]: Indexubv (offset 316) */ "p\0" "glIndexubv\0" "\0" - /* _mesa_function_pool[1740]: GetQueryivARB (will be remapped) */ + /* _mesa_function_pool[1779]: GetQueryivARB (will be remapped) */ "iip\0" "glGetQueryiv\0" "glGetQueryivARB\0" "\0" - /* _mesa_function_pool[1774]: TexImage3D (offset 371) */ + /* _mesa_function_pool[1813]: TexImage3D (offset 371) */ "iiiiiiiiip\0" "glTexImage3D\0" "glTexImage3DEXT\0" "\0" - /* _mesa_function_pool[1815]: BindFragDataLocationEXT (will be remapped) */ + /* _mesa_function_pool[1854]: BindFragDataLocationEXT (will be remapped) */ "iip\0" "glBindFragDataLocationEXT\0" "glBindFragDataLocation\0" "\0" - /* _mesa_function_pool[1869]: ReplacementCodeuiVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1908]: ReplacementCodeuiVertex3fvSUN (dynamic) */ "pp\0" "glReplacementCodeuiVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1905]: EdgeFlagPointer (offset 312) */ + /* _mesa_function_pool[1944]: EdgeFlagPointer (offset 312) */ "ip\0" "glEdgeFlagPointer\0" "\0" - /* _mesa_function_pool[1927]: Color3ubv (offset 20) */ + /* _mesa_function_pool[1966]: Color3ubv (offset 20) */ "p\0" "glColor3ubv\0" "\0" - /* _mesa_function_pool[1942]: GetQueryObjectivARB (will be remapped) */ + /* _mesa_function_pool[1981]: GetQueryObjectivARB (will be remapped) */ "iip\0" "glGetQueryObjectiv\0" "glGetQueryObjectivARB\0" "\0" - /* _mesa_function_pool[1988]: Vertex3dv (offset 135) */ + /* _mesa_function_pool[2027]: Vertex3dv (offset 135) */ "p\0" "glVertex3dv\0" "\0" - /* _mesa_function_pool[2003]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[2042]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiTexCoord2fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[2050]: CompressedTexSubImage2DARB (will be remapped) */ + /* _mesa_function_pool[2089]: CompressedTexSubImage2DARB (will be remapped) */ "iiiiiiiip\0" "glCompressedTexSubImage2D\0" "glCompressedTexSubImage2DARB\0" "\0" - /* _mesa_function_pool[2116]: CombinerOutputNV (will be remapped) */ + /* _mesa_function_pool[2155]: CombinerOutputNV (will be remapped) */ "iiiiiiiiii\0" "glCombinerOutputNV\0" "\0" - /* _mesa_function_pool[2147]: VertexAttribs3fvNV (will be remapped) */ + /* _mesa_function_pool[2186]: VertexAttribs3fvNV (will be remapped) */ "iip\0" "glVertexAttribs3fvNV\0" "\0" - /* _mesa_function_pool[2173]: Uniform2fARB (will be remapped) */ + /* _mesa_function_pool[2212]: Uniform2fARB (will be remapped) */ "iff\0" "glUniform2f\0" "glUniform2fARB\0" "\0" - /* _mesa_function_pool[2205]: LightModeliv (offset 166) */ + /* _mesa_function_pool[2244]: LightModeliv (offset 166) */ "ip\0" "glLightModeliv\0" "\0" - /* _mesa_function_pool[2224]: VertexAttrib1svARB (will be remapped) */ + /* _mesa_function_pool[2263]: VertexAttrib1svARB (will be remapped) */ "ip\0" "glVertexAttrib1sv\0" "glVertexAttrib1svARB\0" "\0" - /* _mesa_function_pool[2267]: VertexAttribs1dvNV (will be remapped) */ + /* _mesa_function_pool[2306]: VertexAttribs1dvNV (will be remapped) */ "iip\0" "glVertexAttribs1dvNV\0" "\0" - /* _mesa_function_pool[2293]: Uniform2ivARB (will be remapped) */ + /* _mesa_function_pool[2332]: Uniform2ivARB (will be remapped) */ "iip\0" "glUniform2iv\0" "glUniform2ivARB\0" "\0" - /* _mesa_function_pool[2327]: GetImageTransformParameterfvHP (dynamic) */ + /* _mesa_function_pool[2366]: GetImageTransformParameterfvHP (dynamic) */ "iip\0" "glGetImageTransformParameterfvHP\0" "\0" - /* _mesa_function_pool[2365]: Normal3bv (offset 53) */ + /* _mesa_function_pool[2404]: Normal3bv (offset 53) */ "p\0" "glNormal3bv\0" "\0" - /* _mesa_function_pool[2380]: TexGeniv (offset 193) */ + /* _mesa_function_pool[2419]: TexGeniv (offset 193) */ "iip\0" "glTexGeniv\0" "\0" - /* _mesa_function_pool[2396]: WeightubvARB (dynamic) */ + /* _mesa_function_pool[2435]: WeightubvARB (dynamic) */ "ip\0" "glWeightubvARB\0" "\0" - /* _mesa_function_pool[2415]: VertexAttrib1fvNV (will be remapped) */ + /* _mesa_function_pool[2454]: VertexAttrib1fvNV (will be remapped) */ "ip\0" "glVertexAttrib1fvNV\0" "\0" - /* _mesa_function_pool[2439]: Vertex3iv (offset 139) */ + /* _mesa_function_pool[2478]: Vertex3iv (offset 139) */ "p\0" "glVertex3iv\0" "\0" - /* _mesa_function_pool[2454]: CopyConvolutionFilter1D (offset 354) */ + /* _mesa_function_pool[2493]: CopyConvolutionFilter1D (offset 354) */ "iiiii\0" "glCopyConvolutionFilter1D\0" "glCopyConvolutionFilter1DEXT\0" "\0" - /* _mesa_function_pool[2516]: VertexAttribI1uiEXT (will be remapped) */ + /* _mesa_function_pool[2555]: VertexAttribI1uiEXT (will be remapped) */ "ii\0" "glVertexAttribI1uiEXT\0" "glVertexAttribI1ui\0" "\0" - /* _mesa_function_pool[2561]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[2600]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */ "iffffff\0" "glReplacementCodeuiNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[2609]: DeleteSync (will be remapped) */ + /* _mesa_function_pool[2648]: DeleteSync (will be remapped) */ "i\0" "glDeleteSync\0" "\0" - /* _mesa_function_pool[2625]: FragmentMaterialfvSGIX (dynamic) */ + /* _mesa_function_pool[2664]: FragmentMaterialfvSGIX (dynamic) */ "iip\0" "glFragmentMaterialfvSGIX\0" "\0" - /* _mesa_function_pool[2655]: BlendColor (offset 336) */ + /* _mesa_function_pool[2694]: BlendColor (offset 336) */ "ffff\0" "glBlendColor\0" "glBlendColorEXT\0" "\0" - /* _mesa_function_pool[2690]: UniformMatrix4fvARB (will be remapped) */ + /* _mesa_function_pool[2729]: UniformMatrix4fvARB (will be remapped) */ "iiip\0" "glUniformMatrix4fv\0" "glUniformMatrix4fvARB\0" "\0" - /* _mesa_function_pool[2737]: DeleteVertexArraysAPPLE (will be remapped) */ + /* _mesa_function_pool[2776]: DeleteVertexArraysAPPLE (will be remapped) */ "ip\0" "glDeleteVertexArrays\0" "glDeleteVertexArraysAPPLE\0" "\0" - /* _mesa_function_pool[2788]: TexBuffer (will be remapped) */ + /* _mesa_function_pool[2827]: TexBuffer (will be remapped) */ "iii\0" "glTexBuffer\0" "\0" - /* _mesa_function_pool[2805]: ReadInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[2844]: ReadInstrumentsSGIX (dynamic) */ "i\0" "glReadInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[2830]: CallLists (offset 3) */ + /* _mesa_function_pool[2869]: CallLists (offset 3) */ "iip\0" "glCallLists\0" "\0" - /* _mesa_function_pool[2847]: UniformMatrix2x4fv (will be remapped) */ + /* _mesa_function_pool[2886]: UniformMatrix2x4fv (will be remapped) */ "iiip\0" "glUniformMatrix2x4fv\0" "\0" - /* _mesa_function_pool[2874]: Color4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[2913]: Color4ubVertex3fvSUN (dynamic) */ "pp\0" "glColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[2901]: Normal3iv (offset 59) */ + /* _mesa_function_pool[2940]: Normal3iv (offset 59) */ "p\0" "glNormal3iv\0" "\0" - /* _mesa_function_pool[2916]: PassThrough (offset 199) */ + /* _mesa_function_pool[2955]: PassThrough (offset 199) */ "f\0" "glPassThrough\0" "\0" - /* _mesa_function_pool[2933]: GetVertexAttribIivEXT (will be remapped) */ + /* _mesa_function_pool[2972]: GetVertexAttribIivEXT (will be remapped) */ "iip\0" "glGetVertexAttribIivEXT\0" "glGetVertexAttribIiv\0" "\0" - /* _mesa_function_pool[2983]: TexParameterIivEXT (will be remapped) */ + /* _mesa_function_pool[3022]: TexParameterIivEXT (will be remapped) */ "iip\0" "glTexParameterIivEXT\0" "glTexParameterIiv\0" "\0" - /* _mesa_function_pool[3027]: FramebufferTextureLayerEXT (will be remapped) */ + /* _mesa_function_pool[3066]: FramebufferTextureLayerEXT (will be remapped) */ "iiiii\0" "glFramebufferTextureLayer\0" "glFramebufferTextureLayerEXT\0" "\0" - /* _mesa_function_pool[3089]: GetListParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[3128]: GetListParameterfvSGIX (dynamic) */ "iip\0" "glGetListParameterfvSGIX\0" "\0" - /* _mesa_function_pool[3119]: Viewport (offset 305) */ + /* _mesa_function_pool[3158]: Viewport (offset 305) */ "iiii\0" "glViewport\0" "\0" - /* _mesa_function_pool[3136]: VertexAttrib4NusvARB (will be remapped) */ + /* _mesa_function_pool[3175]: VertexAttrib4NusvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nusv\0" "glVertexAttrib4NusvARB\0" "\0" - /* _mesa_function_pool[3183]: WindowPos4svMESA (will be remapped) */ + /* _mesa_function_pool[3222]: WindowPos4svMESA (will be remapped) */ "p\0" "glWindowPos4svMESA\0" "\0" - /* _mesa_function_pool[3205]: CreateProgramObjectARB (will be remapped) */ + /* _mesa_function_pool[3244]: CreateProgramObjectARB (will be remapped) */ "\0" "glCreateProgramObjectARB\0" "\0" - /* _mesa_function_pool[3232]: DeleteTransformFeedbacks (will be remapped) */ + /* _mesa_function_pool[3271]: DeleteTransformFeedbacks (will be remapped) */ "ip\0" "glDeleteTransformFeedbacks\0" "\0" - /* _mesa_function_pool[3263]: UniformMatrix4x3fv (will be remapped) */ + /* _mesa_function_pool[3302]: UniformMatrix4x3fv (will be remapped) */ "iiip\0" "glUniformMatrix4x3fv\0" "\0" - /* _mesa_function_pool[3290]: PrioritizeTextures (offset 331) */ + /* _mesa_function_pool[3329]: PrioritizeTextures (offset 331) */ "ipp\0" "glPrioritizeTextures\0" "glPrioritizeTexturesEXT\0" "\0" - /* _mesa_function_pool[3340]: VertexAttribI3uiEXT (will be remapped) */ + /* _mesa_function_pool[3379]: VertexAttribI3uiEXT (will be remapped) */ "iiii\0" "glVertexAttribI3uiEXT\0" "glVertexAttribI3ui\0" "\0" - /* _mesa_function_pool[3387]: AsyncMarkerSGIX (dynamic) */ + /* _mesa_function_pool[3426]: AsyncMarkerSGIX (dynamic) */ "i\0" "glAsyncMarkerSGIX\0" "\0" - /* _mesa_function_pool[3408]: GlobalAlphaFactorubSUN (dynamic) */ + /* _mesa_function_pool[3447]: GlobalAlphaFactorubSUN (dynamic) */ "i\0" "glGlobalAlphaFactorubSUN\0" "\0" - /* _mesa_function_pool[3436]: ClearColorIuiEXT (will be remapped) */ + /* _mesa_function_pool[3475]: ClearColorIuiEXT (will be remapped) */ "iiii\0" "glClearColorIuiEXT\0" "\0" - /* _mesa_function_pool[3461]: ClearDebugLogMESA (dynamic) */ + /* _mesa_function_pool[3500]: ClearDebugLogMESA (dynamic) */ "iii\0" "glClearDebugLogMESA\0" "\0" - /* _mesa_function_pool[3486]: Uniform4uiEXT (will be remapped) */ + /* _mesa_function_pool[3525]: Uniform4uiEXT (will be remapped) */ "iiiii\0" "glUniform4uiEXT\0" "glUniform4ui\0" "\0" - /* _mesa_function_pool[3522]: ResetHistogram (offset 369) */ + /* _mesa_function_pool[3561]: ResetHistogram (offset 369) */ "i\0" "glResetHistogram\0" "glResetHistogramEXT\0" "\0" - /* _mesa_function_pool[3562]: GetProgramNamedParameterfvNV (will be remapped) */ + /* _mesa_function_pool[3601]: GetProgramNamedParameterfvNV (will be remapped) */ "iipp\0" "glGetProgramNamedParameterfvNV\0" "\0" - /* _mesa_function_pool[3599]: PointParameterfEXT (will be remapped) */ + /* _mesa_function_pool[3638]: PointParameterfEXT (will be remapped) */ "if\0" "glPointParameterf\0" "glPointParameterfARB\0" "glPointParameterfEXT\0" "glPointParameterfSGIS\0" "\0" - /* _mesa_function_pool[3685]: LoadIdentityDeformationMapSGIX (dynamic) */ + /* _mesa_function_pool[3724]: LoadIdentityDeformationMapSGIX (dynamic) */ "i\0" "glLoadIdentityDeformationMapSGIX\0" "\0" - /* _mesa_function_pool[3721]: GenFencesNV (will be remapped) */ + /* _mesa_function_pool[3760]: GenFencesNV (will be remapped) */ "ip\0" "glGenFencesNV\0" "\0" - /* _mesa_function_pool[3739]: ImageTransformParameterfHP (dynamic) */ + /* _mesa_function_pool[3778]: ImageTransformParameterfHP (dynamic) */ "iif\0" "glImageTransformParameterfHP\0" "\0" - /* _mesa_function_pool[3773]: MatrixIndexusvARB (dynamic) */ + /* _mesa_function_pool[3812]: MatrixIndexusvARB (dynamic) */ "ip\0" "glMatrixIndexusvARB\0" "\0" - /* _mesa_function_pool[3797]: DrawElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[3836]: DrawElementsBaseVertex (will be remapped) */ "iiipi\0" "glDrawElementsBaseVertex\0" "\0" - /* _mesa_function_pool[3829]: DisableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[3868]: DisableVertexAttribArrayARB (will be remapped) */ "i\0" "glDisableVertexAttribArray\0" "glDisableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[3889]: TexCoord2sv (offset 109) */ + /* _mesa_function_pool[3928]: TexCoord2sv (offset 109) */ "p\0" "glTexCoord2sv\0" "\0" - /* _mesa_function_pool[3906]: Vertex4dv (offset 143) */ + /* _mesa_function_pool[3945]: Vertex4dv (offset 143) */ "p\0" "glVertex4dv\0" "\0" - /* _mesa_function_pool[3921]: StencilMaskSeparate (will be remapped) */ + /* _mesa_function_pool[3960]: StencilMaskSeparate (will be remapped) */ "ii\0" "glStencilMaskSeparate\0" "\0" - /* _mesa_function_pool[3947]: ProgramLocalParameter4dARB (will be remapped) */ + /* _mesa_function_pool[3986]: ProgramLocalParameter4dARB (will be remapped) */ "iidddd\0" "glProgramLocalParameter4dARB\0" "\0" - /* _mesa_function_pool[3984]: CompressedTexImage3DARB (will be remapped) */ + /* _mesa_function_pool[4023]: CompressedTexImage3DARB (will be remapped) */ "iiiiiiiip\0" "glCompressedTexImage3D\0" "glCompressedTexImage3DARB\0" "\0" - /* _mesa_function_pool[4044]: Color3sv (offset 18) */ + /* _mesa_function_pool[4083]: Color3sv (offset 18) */ "p\0" "glColor3sv\0" "\0" - /* _mesa_function_pool[4058]: GetConvolutionParameteriv (offset 358) */ + /* _mesa_function_pool[4097]: GetConvolutionParameteriv (offset 358) */ "iip\0" "glGetConvolutionParameteriv\0" "glGetConvolutionParameterivEXT\0" "\0" - /* _mesa_function_pool[4122]: VertexAttrib1fARB (will be remapped) */ + /* _mesa_function_pool[4161]: VertexAttrib1fARB (will be remapped) */ "if\0" "glVertexAttrib1f\0" "glVertexAttrib1fARB\0" "\0" - /* _mesa_function_pool[4163]: Vertex2dv (offset 127) */ + /* _mesa_function_pool[4202]: Vertex2dv (offset 127) */ "p\0" "glVertex2dv\0" "\0" - /* _mesa_function_pool[4178]: TestFenceNV (will be remapped) */ + /* _mesa_function_pool[4217]: TestFenceNV (will be remapped) */ "i\0" "glTestFenceNV\0" "\0" - /* _mesa_function_pool[4195]: GetVertexAttribIuivEXT (will be remapped) */ - "iip\0" - "glGetVertexAttribIuivEXT\0" - "glGetVertexAttribIuiv\0" - "\0" - /* _mesa_function_pool[4247]: MultiTexCoord1fvARB (offset 379) */ + /* _mesa_function_pool[4234]: MultiTexCoord1fvARB (offset 379) */ "ip\0" "glMultiTexCoord1fv\0" "glMultiTexCoord1fvARB\0" "\0" - /* _mesa_function_pool[4292]: TexCoord3iv (offset 115) */ + /* _mesa_function_pool[4279]: TexCoord3iv (offset 115) */ "p\0" "glTexCoord3iv\0" "\0" - /* _mesa_function_pool[4309]: Uniform2uivEXT (will be remapped) */ + /* _mesa_function_pool[4296]: Uniform2uivEXT (will be remapped) */ "iip\0" "glUniform2uivEXT\0" "glUniform2uiv\0" "\0" - /* _mesa_function_pool[4345]: ColorFragmentOp2ATI (will be remapped) */ + /* _mesa_function_pool[4332]: ColorFragmentOp2ATI (will be remapped) */ "iiiiiiiiii\0" "glColorFragmentOp2ATI\0" "\0" - /* _mesa_function_pool[4379]: SecondaryColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[4366]: SecondaryColorPointerListIBM (dynamic) */ "iiipi\0" "glSecondaryColorPointerListIBM\0" "\0" - /* _mesa_function_pool[4417]: GetPixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[4404]: GetPixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glGetPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[4453]: Color3fv (offset 14) */ + /* _mesa_function_pool[4440]: Color3fv (offset 14) */ "p\0" "glColor3fv\0" "\0" - /* _mesa_function_pool[4467]: VertexAttrib4fNV (will be remapped) */ + /* _mesa_function_pool[4454]: VertexAttrib4fNV (will be remapped) */ "iffff\0" "glVertexAttrib4fNV\0" "\0" - /* _mesa_function_pool[4493]: ReplacementCodeubSUN (dynamic) */ + /* _mesa_function_pool[4480]: ReplacementCodeubSUN (dynamic) */ "i\0" "glReplacementCodeubSUN\0" "\0" - /* _mesa_function_pool[4519]: FinishAsyncSGIX (dynamic) */ + /* _mesa_function_pool[4506]: FinishAsyncSGIX (dynamic) */ "p\0" "glFinishAsyncSGIX\0" "\0" - /* _mesa_function_pool[4540]: GetDebugLogMESA (dynamic) */ + /* _mesa_function_pool[4527]: GetDebugLogMESA (dynamic) */ "iiiipp\0" "glGetDebugLogMESA\0" "\0" - /* _mesa_function_pool[4566]: FogCoorddEXT (will be remapped) */ + /* _mesa_function_pool[4553]: FogCoorddEXT (will be remapped) */ "d\0" "glFogCoordd\0" "glFogCoorddEXT\0" "\0" - /* _mesa_function_pool[4596]: BeginConditionalRenderNV (will be remapped) */ + /* _mesa_function_pool[4583]: BeginConditionalRenderNV (will be remapped) */ "ii\0" "glBeginConditionalRenderNV\0" "glBeginConditionalRender\0" "\0" - /* _mesa_function_pool[4652]: Color4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[4639]: Color4ubVertex3fSUN (dynamic) */ "iiiifff\0" "glColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[4683]: FogCoordfEXT (will be remapped) */ + /* _mesa_function_pool[4670]: FogCoordfEXT (will be remapped) */ "f\0" "glFogCoordf\0" "glFogCoordfEXT\0" "\0" - /* _mesa_function_pool[4713]: PointSize (offset 173) */ + /* _mesa_function_pool[4700]: PointSize (offset 173) */ "f\0" "glPointSize\0" "\0" - /* _mesa_function_pool[4728]: VertexAttribI2uivEXT (will be remapped) */ + /* _mesa_function_pool[4715]: VertexAttribI2uivEXT (will be remapped) */ "ip\0" "glVertexAttribI2uivEXT\0" "glVertexAttribI2uiv\0" "\0" - /* _mesa_function_pool[4775]: TexCoord2fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[4762]: TexCoord2fVertex3fSUN (dynamic) */ "fffff\0" "glTexCoord2fVertex3fSUN\0" "\0" - /* _mesa_function_pool[4806]: PopName (offset 200) */ + /* _mesa_function_pool[4793]: PopName (offset 200) */ "\0" "glPopName\0" "\0" - /* _mesa_function_pool[4818]: GlobalAlphaFactoriSUN (dynamic) */ + /* _mesa_function_pool[4805]: GlobalAlphaFactoriSUN (dynamic) */ "i\0" "glGlobalAlphaFactoriSUN\0" "\0" - /* _mesa_function_pool[4845]: VertexAttrib2dNV (will be remapped) */ + /* _mesa_function_pool[4832]: VertexAttrib2dNV (will be remapped) */ "idd\0" "glVertexAttrib2dNV\0" "\0" - /* _mesa_function_pool[4869]: GetProgramInfoLog (will be remapped) */ + /* _mesa_function_pool[4856]: GetProgramInfoLog (will be remapped) */ "iipp\0" "glGetProgramInfoLog\0" "\0" - /* _mesa_function_pool[4895]: VertexAttrib4NbvARB (will be remapped) */ + /* _mesa_function_pool[4882]: VertexAttrib4NbvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nbv\0" "glVertexAttrib4NbvARB\0" "\0" - /* _mesa_function_pool[4940]: GetActiveAttribARB (will be remapped) */ + /* _mesa_function_pool[4927]: GetActiveAttribARB (will be remapped) */ "iiipppp\0" "glGetActiveAttrib\0" "glGetActiveAttribARB\0" "\0" - /* _mesa_function_pool[4988]: Vertex4sv (offset 149) */ + /* _mesa_function_pool[4975]: Vertex4sv (offset 149) */ "p\0" "glVertex4sv\0" "\0" - /* _mesa_function_pool[5003]: VertexAttrib4ubNV (will be remapped) */ + /* _mesa_function_pool[4990]: VertexAttrib4ubNV (will be remapped) */ "iiiii\0" "glVertexAttrib4ubNV\0" "\0" - /* _mesa_function_pool[5030]: ClampColor (will be remapped) */ + /* _mesa_function_pool[5017]: ClampColor (will be remapped) */ "ii\0" "glClampColor\0" "\0" - /* _mesa_function_pool[5047]: TextureRangeAPPLE (will be remapped) */ + /* _mesa_function_pool[5034]: TextureRangeAPPLE (will be remapped) */ "iip\0" "glTextureRangeAPPLE\0" "\0" - /* _mesa_function_pool[5072]: GetTexEnvfv (offset 276) */ + /* _mesa_function_pool[5059]: GetTexEnvfv (offset 276) */ "iip\0" "glGetTexEnvfv\0" "\0" - /* _mesa_function_pool[5091]: BindTransformFeedback (will be remapped) */ + /* _mesa_function_pool[5078]: BindTransformFeedback (will be remapped) */ "ii\0" "glBindTransformFeedback\0" "\0" - /* _mesa_function_pool[5119]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[5106]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ "ffffffffffff\0" "glTexCoord2fColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[5172]: Indexub (offset 315) */ + /* _mesa_function_pool[5159]: Indexub (offset 315) */ "i\0" "glIndexub\0" "\0" - /* _mesa_function_pool[5185]: TexEnvi (offset 186) */ + /* _mesa_function_pool[5172]: ColorMaskIndexedEXT (will be remapped) */ + "iiiii\0" + "glColorMaskIndexedEXT\0" + "glColorMaski\0" + "\0" + /* _mesa_function_pool[5214]: TexEnvi (offset 186) */ "iii\0" "glTexEnvi\0" "\0" - /* _mesa_function_pool[5200]: GetClipPlane (offset 259) */ + /* _mesa_function_pool[5229]: GetClipPlane (offset 259) */ "ip\0" "glGetClipPlane\0" "\0" - /* _mesa_function_pool[5219]: CombinerParameterfvNV (will be remapped) */ + /* _mesa_function_pool[5248]: CombinerParameterfvNV (will be remapped) */ "ip\0" "glCombinerParameterfvNV\0" "\0" - /* _mesa_function_pool[5247]: VertexAttribs3dvNV (will be remapped) */ + /* _mesa_function_pool[5276]: VertexAttribs3dvNV (will be remapped) */ "iip\0" "glVertexAttribs3dvNV\0" "\0" - /* _mesa_function_pool[5273]: VertexAttribI2uiEXT (will be remapped) */ + /* _mesa_function_pool[5302]: VertexAttribI2uiEXT (will be remapped) */ "iii\0" "glVertexAttribI2uiEXT\0" "glVertexAttribI2ui\0" "\0" - /* _mesa_function_pool[5319]: VertexAttribs4fvNV (will be remapped) */ + /* _mesa_function_pool[5348]: VertexAttribs4fvNV (will be remapped) */ "iip\0" "glVertexAttribs4fvNV\0" "\0" - /* _mesa_function_pool[5345]: VertexArrayRangeNV (will be remapped) */ + /* _mesa_function_pool[5374]: VertexArrayRangeNV (will be remapped) */ "ip\0" "glVertexArrayRangeNV\0" "\0" - /* _mesa_function_pool[5370]: FragmentLightiSGIX (dynamic) */ + /* _mesa_function_pool[5399]: FragmentLightiSGIX (dynamic) */ "iii\0" "glFragmentLightiSGIX\0" "\0" - /* _mesa_function_pool[5396]: PolygonOffsetEXT (will be remapped) */ + /* _mesa_function_pool[5425]: PolygonOffsetEXT (will be remapped) */ "ff\0" "glPolygonOffsetEXT\0" "\0" - /* _mesa_function_pool[5419]: VertexAttribI4uivEXT (will be remapped) */ + /* _mesa_function_pool[5448]: VertexAttribI4uivEXT (will be remapped) */ "ip\0" "glVertexAttribI4uivEXT\0" "glVertexAttribI4uiv\0" "\0" - /* _mesa_function_pool[5466]: PollAsyncSGIX (dynamic) */ + /* _mesa_function_pool[5495]: PollAsyncSGIX (dynamic) */ "p\0" "glPollAsyncSGIX\0" "\0" - /* _mesa_function_pool[5485]: DeleteFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[5514]: DeleteFragmentShaderATI (will be remapped) */ "i\0" "glDeleteFragmentShaderATI\0" "\0" - /* _mesa_function_pool[5514]: Scaled (offset 301) */ + /* _mesa_function_pool[5543]: Scaled (offset 301) */ "ddd\0" "glScaled\0" "\0" - /* _mesa_function_pool[5528]: ResumeTransformFeedback (will be remapped) */ + /* _mesa_function_pool[5557]: ResumeTransformFeedback (will be remapped) */ "\0" "glResumeTransformFeedback\0" "\0" - /* _mesa_function_pool[5556]: Scalef (offset 302) */ + /* _mesa_function_pool[5585]: Scalef (offset 302) */ "fff\0" "glScalef\0" "\0" - /* _mesa_function_pool[5570]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[5599]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[5608]: MultTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[5637]: MultTransposeMatrixdARB (will be remapped) */ "p\0" "glMultTransposeMatrixd\0" "glMultTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[5660]: ColorMaskIndexedEXT (will be remapped) */ - "iiiii\0" - "glColorMaskIndexedEXT\0" - "glColorMaski\0" - "\0" - /* _mesa_function_pool[5702]: ObjectUnpurgeableAPPLE (will be remapped) */ + /* _mesa_function_pool[5689]: ObjectUnpurgeableAPPLE (will be remapped) */ "iii\0" "glObjectUnpurgeableAPPLE\0" "\0" - /* _mesa_function_pool[5732]: AlphaFunc (offset 240) */ + /* _mesa_function_pool[5719]: AlphaFunc (offset 240) */ "if\0" "glAlphaFunc\0" "\0" - /* _mesa_function_pool[5748]: WindowPos2svMESA (will be remapped) */ + /* _mesa_function_pool[5735]: WindowPos2svMESA (will be remapped) */ "p\0" "glWindowPos2sv\0" "glWindowPos2svARB\0" "glWindowPos2svMESA\0" "\0" - /* _mesa_function_pool[5803]: EdgeFlag (offset 41) */ + /* _mesa_function_pool[5790]: EdgeFlag (offset 41) */ "i\0" "glEdgeFlag\0" "\0" - /* _mesa_function_pool[5817]: TexCoord2iv (offset 107) */ + /* _mesa_function_pool[5804]: TexCoord2iv (offset 107) */ "p\0" "glTexCoord2iv\0" "\0" - /* _mesa_function_pool[5834]: CompressedTexImage1DARB (will be remapped) */ + /* _mesa_function_pool[5821]: CompressedTexImage1DARB (will be remapped) */ "iiiiiip\0" "glCompressedTexImage1D\0" "glCompressedTexImage1DARB\0" "\0" - /* _mesa_function_pool[5892]: Rotated (offset 299) */ + /* _mesa_function_pool[5879]: Rotated (offset 299) */ "dddd\0" "glRotated\0" "\0" - /* _mesa_function_pool[5908]: GetTexParameterIuivEXT (will be remapped) */ + /* _mesa_function_pool[5895]: GetTexParameterIuivEXT (will be remapped) */ "iip\0" "glGetTexParameterIuivEXT\0" "glGetTexParameterIuiv\0" "\0" - /* _mesa_function_pool[5960]: VertexAttrib2sNV (will be remapped) */ + /* _mesa_function_pool[5947]: VertexAttrib2sNV (will be remapped) */ "iii\0" "glVertexAttrib2sNV\0" "\0" - /* _mesa_function_pool[5984]: ReadPixels (offset 256) */ + /* _mesa_function_pool[5971]: ReadPixels (offset 256) */ "iiiiiip\0" "glReadPixels\0" "\0" - /* _mesa_function_pool[6006]: EdgeFlagv (offset 42) */ + /* _mesa_function_pool[5993]: EdgeFlagv (offset 42) */ "p\0" "glEdgeFlagv\0" "\0" - /* _mesa_function_pool[6021]: NormalPointerListIBM (dynamic) */ + /* _mesa_function_pool[6008]: NormalPointerListIBM (dynamic) */ "iipi\0" "glNormalPointerListIBM\0" "\0" - /* _mesa_function_pool[6050]: IndexPointerEXT (will be remapped) */ + /* _mesa_function_pool[6037]: IndexPointerEXT (will be remapped) */ "iiip\0" "glIndexPointerEXT\0" "\0" - /* _mesa_function_pool[6074]: Color4iv (offset 32) */ + /* _mesa_function_pool[6061]: Color4iv (offset 32) */ "p\0" "glColor4iv\0" "\0" - /* _mesa_function_pool[6088]: TexParameterf (offset 178) */ + /* _mesa_function_pool[6075]: TexParameterf (offset 178) */ "iif\0" "glTexParameterf\0" "\0" - /* _mesa_function_pool[6109]: TexParameteri (offset 180) */ + /* _mesa_function_pool[6096]: TexParameteri (offset 180) */ "iii\0" "glTexParameteri\0" "\0" - /* _mesa_function_pool[6130]: NormalPointerEXT (will be remapped) */ + /* _mesa_function_pool[6117]: NormalPointerEXT (will be remapped) */ "iiip\0" "glNormalPointerEXT\0" "\0" - /* _mesa_function_pool[6155]: MultiTexCoord3dARB (offset 392) */ + /* _mesa_function_pool[6142]: MultiTexCoord3dARB (offset 392) */ "iddd\0" "glMultiTexCoord3d\0" "glMultiTexCoord3dARB\0" "\0" - /* _mesa_function_pool[6200]: MultiTexCoord2iARB (offset 388) */ + /* _mesa_function_pool[6187]: MultiTexCoord2iARB (offset 388) */ "iii\0" "glMultiTexCoord2i\0" "glMultiTexCoord2iARB\0" "\0" - /* _mesa_function_pool[6244]: DrawPixels (offset 257) */ + /* _mesa_function_pool[6231]: DrawPixels (offset 257) */ "iiiip\0" "glDrawPixels\0" "\0" - /* _mesa_function_pool[6264]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[6251]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */ "iffffffff\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[6324]: MultiTexCoord2svARB (offset 391) */ + /* _mesa_function_pool[6311]: MultiTexCoord2svARB (offset 391) */ "ip\0" "glMultiTexCoord2sv\0" "glMultiTexCoord2svARB\0" "\0" - /* _mesa_function_pool[6369]: ReplacementCodeubvSUN (dynamic) */ + /* _mesa_function_pool[6356]: ReplacementCodeubvSUN (dynamic) */ "p\0" "glReplacementCodeubvSUN\0" "\0" - /* _mesa_function_pool[6396]: Uniform3iARB (will be remapped) */ + /* _mesa_function_pool[6383]: Uniform3iARB (will be remapped) */ "iiii\0" "glUniform3i\0" "glUniform3iARB\0" "\0" - /* _mesa_function_pool[6429]: DrawTransformFeedback (will be remapped) */ + /* _mesa_function_pool[6416]: DrawTransformFeedback (will be remapped) */ "ii\0" "glDrawTransformFeedback\0" "\0" - /* _mesa_function_pool[6457]: DrawElementsInstancedARB (will be remapped) */ + /* _mesa_function_pool[6444]: DrawElementsInstancedARB (will be remapped) */ "iiipi\0" "glDrawElementsInstancedARB\0" "glDrawElementsInstancedEXT\0" "glDrawElementsInstanced\0" "\0" - /* _mesa_function_pool[6542]: GetShaderInfoLog (will be remapped) */ + /* _mesa_function_pool[6529]: GetShaderInfoLog (will be remapped) */ "iipp\0" "glGetShaderInfoLog\0" "\0" - /* _mesa_function_pool[6567]: WeightivARB (dynamic) */ + /* _mesa_function_pool[6554]: WeightivARB (dynamic) */ "ip\0" "glWeightivARB\0" "\0" - /* _mesa_function_pool[6585]: PollInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[6572]: PollInstrumentsSGIX (dynamic) */ "p\0" "glPollInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[6610]: GlobalAlphaFactordSUN (dynamic) */ + /* _mesa_function_pool[6597]: GlobalAlphaFactordSUN (dynamic) */ "d\0" "glGlobalAlphaFactordSUN\0" "\0" - /* _mesa_function_pool[6637]: GetFinalCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[6624]: GetFinalCombinerInputParameterfvNV (will be remapped) */ "iip\0" "glGetFinalCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[6679]: GenerateMipmapEXT (will be remapped) */ + /* _mesa_function_pool[6666]: GenerateMipmapEXT (will be remapped) */ "i\0" "glGenerateMipmap\0" "glGenerateMipmapEXT\0" "\0" - /* _mesa_function_pool[6719]: GenLists (offset 5) */ + /* _mesa_function_pool[6706]: GenLists (offset 5) */ "i\0" "glGenLists\0" "\0" - /* _mesa_function_pool[6733]: SetFragmentShaderConstantATI (will be remapped) */ - "ip\0" - "glSetFragmentShaderConstantATI\0" + /* _mesa_function_pool[6720]: DepthRangef (will be remapped) */ + "ff\0" + "glDepthRangef\0" "\0" - /* _mesa_function_pool[6768]: GetMapAttribParameterivNV (dynamic) */ + /* _mesa_function_pool[6738]: GetMapAttribParameterivNV (dynamic) */ "iiip\0" "glGetMapAttribParameterivNV\0" "\0" - /* _mesa_function_pool[6802]: CreateShaderObjectARB (will be remapped) */ + /* _mesa_function_pool[6772]: CreateShaderObjectARB (will be remapped) */ "i\0" "glCreateShaderObjectARB\0" "\0" - /* _mesa_function_pool[6829]: GetSharpenTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[6799]: GetSharpenTexFuncSGIS (dynamic) */ "ip\0" "glGetSharpenTexFuncSGIS\0" "\0" - /* _mesa_function_pool[6857]: BufferDataARB (will be remapped) */ + /* _mesa_function_pool[6827]: BufferDataARB (will be remapped) */ "iipi\0" "glBufferData\0" "glBufferDataARB\0" "\0" - /* _mesa_function_pool[6892]: FlushVertexArrayRangeNV (will be remapped) */ + /* _mesa_function_pool[6862]: FlushVertexArrayRangeNV (will be remapped) */ "\0" "glFlushVertexArrayRangeNV\0" "\0" - /* _mesa_function_pool[6920]: MapGrid2d (offset 226) */ + /* _mesa_function_pool[6890]: MapGrid2d (offset 226) */ "iddidd\0" "glMapGrid2d\0" "\0" - /* _mesa_function_pool[6940]: MapGrid2f (offset 227) */ + /* _mesa_function_pool[6910]: MapGrid2f (offset 227) */ "iffiff\0" "glMapGrid2f\0" "\0" - /* _mesa_function_pool[6960]: SampleMapATI (will be remapped) */ + /* _mesa_function_pool[6930]: SampleMapATI (will be remapped) */ "iii\0" "glSampleMapATI\0" "\0" - /* _mesa_function_pool[6980]: VertexPointerEXT (will be remapped) */ + /* _mesa_function_pool[6950]: VertexPointerEXT (will be remapped) */ "iiiip\0" "glVertexPointerEXT\0" "\0" - /* _mesa_function_pool[7006]: GetTexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[6976]: GetTexFilterFuncSGIS (dynamic) */ "iip\0" "glGetTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[7034]: Scissor (offset 176) */ + /* _mesa_function_pool[7004]: Scissor (offset 176) */ "iiii\0" "glScissor\0" "\0" - /* _mesa_function_pool[7050]: Fogf (offset 153) */ + /* _mesa_function_pool[7020]: Fogf (offset 153) */ "if\0" "glFogf\0" "\0" - /* _mesa_function_pool[7061]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[7031]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[7106]: TexSubImage1D (offset 332) */ + /* _mesa_function_pool[7076]: TexSubImage1D (offset 332) */ "iiiiiip\0" "glTexSubImage1D\0" "glTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[7150]: VertexAttrib1sARB (will be remapped) */ + /* _mesa_function_pool[7120]: VertexAttrib1sARB (will be remapped) */ "ii\0" "glVertexAttrib1s\0" "glVertexAttrib1sARB\0" "\0" - /* _mesa_function_pool[7191]: FenceSync (will be remapped) */ + /* _mesa_function_pool[7161]: FenceSync (will be remapped) */ "ii\0" "glFenceSync\0" "\0" - /* _mesa_function_pool[7207]: Color4usv (offset 40) */ + /* _mesa_function_pool[7177]: Color4usv (offset 40) */ "p\0" "glColor4usv\0" "\0" - /* _mesa_function_pool[7222]: Fogi (offset 155) */ + /* _mesa_function_pool[7192]: Fogi (offset 155) */ "ii\0" "glFogi\0" "\0" - /* _mesa_function_pool[7233]: DepthRange (offset 288) */ + /* _mesa_function_pool[7203]: DepthRange (offset 288) */ "dd\0" "glDepthRange\0" "\0" - /* _mesa_function_pool[7250]: RasterPos3iv (offset 75) */ + /* _mesa_function_pool[7220]: RasterPos3iv (offset 75) */ "p\0" "glRasterPos3iv\0" "\0" - /* _mesa_function_pool[7268]: FinalCombinerInputNV (will be remapped) */ + /* _mesa_function_pool[7238]: FinalCombinerInputNV (will be remapped) */ "iiii\0" "glFinalCombinerInputNV\0" "\0" - /* _mesa_function_pool[7297]: TexCoord2i (offset 106) */ + /* _mesa_function_pool[7267]: TexCoord2i (offset 106) */ "ii\0" "glTexCoord2i\0" "\0" - /* _mesa_function_pool[7314]: PixelMapfv (offset 251) */ + /* _mesa_function_pool[7284]: PixelMapfv (offset 251) */ "iip\0" "glPixelMapfv\0" "\0" - /* _mesa_function_pool[7332]: Color4ui (offset 37) */ + /* _mesa_function_pool[7302]: Color4ui (offset 37) */ "iiii\0" "glColor4ui\0" "\0" - /* _mesa_function_pool[7349]: RasterPos3s (offset 76) */ + /* _mesa_function_pool[7319]: RasterPos3s (offset 76) */ "iii\0" "glRasterPos3s\0" "\0" - /* _mesa_function_pool[7368]: Color3usv (offset 24) */ + /* _mesa_function_pool[7338]: Color3usv (offset 24) */ "p\0" "glColor3usv\0" "\0" - /* _mesa_function_pool[7383]: FlushRasterSGIX (dynamic) */ + /* _mesa_function_pool[7353]: FlushRasterSGIX (dynamic) */ "\0" "glFlushRasterSGIX\0" "\0" - /* _mesa_function_pool[7403]: TexCoord2f (offset 104) */ + /* _mesa_function_pool[7373]: TexCoord2f (offset 104) */ "ff\0" "glTexCoord2f\0" "\0" - /* _mesa_function_pool[7420]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[7390]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */ "ifffff\0" "glReplacementCodeuiTexCoord2fVertex3fSUN\0" "\0" - /* _mesa_function_pool[7469]: TexCoord2d (offset 102) */ + /* _mesa_function_pool[7439]: TexCoord2d (offset 102) */ "dd\0" "glTexCoord2d\0" "\0" - /* _mesa_function_pool[7486]: RasterPos3d (offset 70) */ + /* _mesa_function_pool[7456]: RasterPos3d (offset 70) */ "ddd\0" "glRasterPos3d\0" "\0" - /* _mesa_function_pool[7505]: RasterPos3f (offset 72) */ + /* _mesa_function_pool[7475]: RasterPos3f (offset 72) */ "fff\0" "glRasterPos3f\0" "\0" - /* _mesa_function_pool[7524]: Uniform1fARB (will be remapped) */ + /* _mesa_function_pool[7494]: Uniform1fARB (will be remapped) */ "if\0" "glUniform1f\0" "glUniform1fARB\0" "\0" - /* _mesa_function_pool[7555]: AreTexturesResident (offset 322) */ + /* _mesa_function_pool[7525]: AreTexturesResident (offset 322) */ "ipp\0" "glAreTexturesResident\0" "glAreTexturesResidentEXT\0" "\0" - /* _mesa_function_pool[7607]: TexCoord2s (offset 108) */ + /* _mesa_function_pool[7577]: TexCoord2s (offset 108) */ "ii\0" "glTexCoord2s\0" "\0" - /* _mesa_function_pool[7624]: StencilOpSeparate (will be remapped) */ + /* _mesa_function_pool[7594]: StencilOpSeparate (will be remapped) */ "iiii\0" "glStencilOpSeparate\0" "glStencilOpSeparateATI\0" "\0" - /* _mesa_function_pool[7673]: ColorTableParameteriv (offset 341) */ + /* _mesa_function_pool[7643]: ColorTableParameteriv (offset 341) */ "iip\0" "glColorTableParameteriv\0" "glColorTableParameterivSGI\0" "\0" - /* _mesa_function_pool[7729]: FogCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[7699]: FogCoordPointerListIBM (dynamic) */ "iipi\0" "glFogCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[7760]: WindowPos3dMESA (will be remapped) */ + /* _mesa_function_pool[7730]: WindowPos3dMESA (will be remapped) */ "ddd\0" "glWindowPos3d\0" "glWindowPos3dARB\0" "glWindowPos3dMESA\0" "\0" - /* _mesa_function_pool[7814]: Color4us (offset 39) */ + /* _mesa_function_pool[7784]: Color4us (offset 39) */ "iiii\0" "glColor4us\0" "\0" - /* _mesa_function_pool[7831]: PointParameterfvEXT (will be remapped) */ + /* _mesa_function_pool[7801]: PointParameterfvEXT (will be remapped) */ "ip\0" "glPointParameterfv\0" "glPointParameterfvARB\0" "glPointParameterfvEXT\0" "glPointParameterfvSGIS\0" "\0" - /* _mesa_function_pool[7921]: Color3bv (offset 10) */ + /* _mesa_function_pool[7891]: Color3bv (offset 10) */ "p\0" "glColor3bv\0" "\0" - /* _mesa_function_pool[7935]: WindowPos2fvMESA (will be remapped) */ + /* _mesa_function_pool[7905]: WindowPos2fvMESA (will be remapped) */ "p\0" "glWindowPos2fv\0" "glWindowPos2fvARB\0" "glWindowPos2fvMESA\0" "\0" - /* _mesa_function_pool[7990]: SecondaryColor3bvEXT (will be remapped) */ + /* _mesa_function_pool[7960]: SecondaryColor3bvEXT (will be remapped) */ "p\0" "glSecondaryColor3bv\0" "glSecondaryColor3bvEXT\0" "\0" - /* _mesa_function_pool[8036]: VertexPointerListIBM (dynamic) */ + /* _mesa_function_pool[8006]: VertexPointerListIBM (dynamic) */ "iiipi\0" "glVertexPointerListIBM\0" "\0" - /* _mesa_function_pool[8066]: GetProgramLocalParameterfvARB (will be remapped) */ + /* _mesa_function_pool[8036]: GetProgramLocalParameterfvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterfvARB\0" "\0" - /* _mesa_function_pool[8103]: FragmentMaterialfSGIX (dynamic) */ + /* _mesa_function_pool[8073]: FragmentMaterialfSGIX (dynamic) */ "iif\0" "glFragmentMaterialfSGIX\0" "\0" - /* _mesa_function_pool[8132]: TexCoord2fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[8102]: TexCoord2fNormal3fVertex3fSUN (dynamic) */ "ffffffff\0" "glTexCoord2fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[8174]: RenderbufferStorageEXT (will be remapped) */ + /* _mesa_function_pool[8144]: RenderbufferStorageEXT (will be remapped) */ "iiii\0" "glRenderbufferStorage\0" "glRenderbufferStorageEXT\0" "\0" - /* _mesa_function_pool[8227]: IsFenceNV (will be remapped) */ + /* _mesa_function_pool[8197]: IsFenceNV (will be remapped) */ "i\0" "glIsFenceNV\0" "\0" - /* _mesa_function_pool[8242]: AttachObjectARB (will be remapped) */ + /* _mesa_function_pool[8212]: AttachObjectARB (will be remapped) */ "ii\0" "glAttachObjectARB\0" "\0" - /* _mesa_function_pool[8264]: GetFragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[8234]: GetFragmentLightivSGIX (dynamic) */ "iip\0" "glGetFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[8294]: UniformMatrix2fvARB (will be remapped) */ + /* _mesa_function_pool[8264]: UniformMatrix2fvARB (will be remapped) */ "iiip\0" "glUniformMatrix2fv\0" "glUniformMatrix2fvARB\0" "\0" - /* _mesa_function_pool[8341]: MultiTexCoord2fARB (offset 386) */ + /* _mesa_function_pool[8311]: MultiTexCoord2fARB (offset 386) */ "iff\0" "glMultiTexCoord2f\0" "glMultiTexCoord2fARB\0" "\0" - /* _mesa_function_pool[8385]: ColorTable (offset 339) */ + /* _mesa_function_pool[8355]: ColorTable (offset 339) */ "iiiiip\0" "glColorTable\0" "glColorTableSGI\0" "glColorTableEXT\0" "\0" - /* _mesa_function_pool[8438]: IndexPointer (offset 314) */ + /* _mesa_function_pool[8408]: IndexPointer (offset 314) */ "iip\0" "glIndexPointer\0" "\0" - /* _mesa_function_pool[8458]: Accum (offset 213) */ + /* _mesa_function_pool[8428]: Accum (offset 213) */ "if\0" "glAccum\0" "\0" - /* _mesa_function_pool[8470]: GetTexImage (offset 281) */ + /* _mesa_function_pool[8440]: GetTexImage (offset 281) */ "iiiip\0" "glGetTexImage\0" "\0" - /* _mesa_function_pool[8491]: MapControlPointsNV (dynamic) */ + /* _mesa_function_pool[8461]: MapControlPointsNV (dynamic) */ "iiiiiiiip\0" "glMapControlPointsNV\0" "\0" - /* _mesa_function_pool[8523]: ConvolutionFilter2D (offset 349) */ + /* _mesa_function_pool[8493]: ConvolutionFilter2D (offset 349) */ "iiiiiip\0" "glConvolutionFilter2D\0" "glConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[8579]: Finish (offset 216) */ + /* _mesa_function_pool[8549]: Finish (offset 216) */ "\0" "glFinish\0" "\0" - /* _mesa_function_pool[8590]: MapParameterfvNV (dynamic) */ + /* _mesa_function_pool[8560]: MapParameterfvNV (dynamic) */ "iip\0" "glMapParameterfvNV\0" "\0" - /* _mesa_function_pool[8614]: ClearStencil (offset 207) */ + /* _mesa_function_pool[8584]: ClearStencil (offset 207) */ "i\0" "glClearStencil\0" "\0" - /* _mesa_function_pool[8632]: VertexAttrib3dvARB (will be remapped) */ + /* _mesa_function_pool[8602]: VertexAttrib3dvARB (will be remapped) */ "ip\0" "glVertexAttrib3dv\0" "glVertexAttrib3dvARB\0" "\0" - /* _mesa_function_pool[8675]: Uniform4uivEXT (will be remapped) */ + /* _mesa_function_pool[8645]: Uniform4uivEXT (will be remapped) */ "iip\0" "glUniform4uivEXT\0" "glUniform4uiv\0" "\0" - /* _mesa_function_pool[8711]: HintPGI (dynamic) */ + /* _mesa_function_pool[8681]: HintPGI (dynamic) */ "ii\0" "glHintPGI\0" "\0" - /* _mesa_function_pool[8725]: ConvolutionParameteriv (offset 353) */ + /* _mesa_function_pool[8695]: ConvolutionParameteriv (offset 353) */ "iip\0" "glConvolutionParameteriv\0" "glConvolutionParameterivEXT\0" "\0" - /* _mesa_function_pool[8783]: Color4s (offset 33) */ + /* _mesa_function_pool[8753]: Color4s (offset 33) */ "iiii\0" "glColor4s\0" "\0" - /* _mesa_function_pool[8799]: InterleavedArrays (offset 317) */ + /* _mesa_function_pool[8769]: InterleavedArrays (offset 317) */ "iip\0" "glInterleavedArrays\0" "\0" - /* _mesa_function_pool[8824]: RasterPos2fv (offset 65) */ + /* _mesa_function_pool[8794]: RasterPos2fv (offset 65) */ "p\0" "glRasterPos2fv\0" "\0" - /* _mesa_function_pool[8842]: TexCoord1fv (offset 97) */ + /* _mesa_function_pool[8812]: TexCoord1fv (offset 97) */ "p\0" "glTexCoord1fv\0" "\0" - /* _mesa_function_pool[8859]: Vertex2d (offset 126) */ + /* _mesa_function_pool[8829]: Vertex2d (offset 126) */ "dd\0" "glVertex2d\0" "\0" - /* _mesa_function_pool[8874]: CullParameterdvEXT (dynamic) */ + /* _mesa_function_pool[8844]: CullParameterdvEXT (dynamic) */ "ip\0" "glCullParameterdvEXT\0" "\0" - /* _mesa_function_pool[8899]: ProgramNamedParameter4fNV (will be remapped) */ + /* _mesa_function_pool[8869]: ProgramNamedParameter4fNV (will be remapped) */ "iipffff\0" "glProgramNamedParameter4fNV\0" "\0" - /* _mesa_function_pool[8936]: Color3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[8906]: Color3fVertex3fSUN (dynamic) */ "ffffff\0" "glColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[8965]: ProgramEnvParameter4fvARB (will be remapped) */ + /* _mesa_function_pool[8935]: ProgramEnvParameter4fvARB (will be remapped) */ "iip\0" "glProgramEnvParameter4fvARB\0" "glProgramParameter4fvNV\0" "\0" - /* _mesa_function_pool[9022]: Color4i (offset 31) */ + /* _mesa_function_pool[8992]: Color4i (offset 31) */ "iiii\0" "glColor4i\0" "\0" - /* _mesa_function_pool[9038]: Color4f (offset 29) */ + /* _mesa_function_pool[9008]: Color4f (offset 29) */ "ffff\0" "glColor4f\0" "\0" - /* _mesa_function_pool[9054]: RasterPos4fv (offset 81) */ + /* _mesa_function_pool[9024]: RasterPos4fv (offset 81) */ "p\0" "glRasterPos4fv\0" "\0" - /* _mesa_function_pool[9072]: Color4d (offset 27) */ + /* _mesa_function_pool[9042]: Color4d (offset 27) */ "dddd\0" "glColor4d\0" "\0" - /* _mesa_function_pool[9088]: ClearIndex (offset 205) */ + /* _mesa_function_pool[9058]: ClearIndex (offset 205) */ "f\0" "glClearIndex\0" "\0" - /* _mesa_function_pool[9104]: Color4b (offset 25) */ + /* _mesa_function_pool[9074]: Color4b (offset 25) */ "iiii\0" "glColor4b\0" "\0" - /* _mesa_function_pool[9120]: LoadMatrixd (offset 292) */ + /* _mesa_function_pool[9090]: LoadMatrixd (offset 292) */ "p\0" "glLoadMatrixd\0" "\0" - /* _mesa_function_pool[9137]: FragmentLightModeliSGIX (dynamic) */ + /* _mesa_function_pool[9107]: FragmentLightModeliSGIX (dynamic) */ "ii\0" "glFragmentLightModeliSGIX\0" "\0" - /* _mesa_function_pool[9167]: RasterPos2dv (offset 63) */ + /* _mesa_function_pool[9137]: RasterPos2dv (offset 63) */ "p\0" "glRasterPos2dv\0" "\0" - /* _mesa_function_pool[9185]: ConvolutionParameterfv (offset 351) */ + /* _mesa_function_pool[9155]: ConvolutionParameterfv (offset 351) */ "iip\0" "glConvolutionParameterfv\0" "glConvolutionParameterfvEXT\0" "\0" - /* _mesa_function_pool[9243]: TbufferMask3DFX (dynamic) */ + /* _mesa_function_pool[9213]: TbufferMask3DFX (dynamic) */ "i\0" "glTbufferMask3DFX\0" "\0" - /* _mesa_function_pool[9264]: GetTexGendv (offset 278) */ + /* _mesa_function_pool[9234]: GetTexGendv (offset 278) */ "iip\0" "glGetTexGendv\0" "\0" - /* _mesa_function_pool[9283]: GetVertexAttribfvNV (will be remapped) */ + /* _mesa_function_pool[9253]: GetVertexAttribfvNV (will be remapped) */ "iip\0" "glGetVertexAttribfvNV\0" "\0" - /* _mesa_function_pool[9310]: BeginTransformFeedbackEXT (will be remapped) */ + /* _mesa_function_pool[9280]: BeginTransformFeedbackEXT (will be remapped) */ "i\0" "glBeginTransformFeedbackEXT\0" "glBeginTransformFeedback\0" "\0" - /* _mesa_function_pool[9366]: LoadProgramNV (will be remapped) */ + /* _mesa_function_pool[9336]: LoadProgramNV (will be remapped) */ "iiip\0" "glLoadProgramNV\0" "\0" - /* _mesa_function_pool[9388]: WaitSync (will be remapped) */ + /* _mesa_function_pool[9358]: WaitSync (will be remapped) */ "iii\0" "glWaitSync\0" "\0" - /* _mesa_function_pool[9404]: EndList (offset 1) */ + /* _mesa_function_pool[9374]: EndList (offset 1) */ "\0" "glEndList\0" "\0" - /* _mesa_function_pool[9416]: VertexAttrib4fvNV (will be remapped) */ + /* _mesa_function_pool[9386]: VertexAttrib4fvNV (will be remapped) */ "ip\0" "glVertexAttrib4fvNV\0" "\0" - /* _mesa_function_pool[9440]: GetAttachedObjectsARB (will be remapped) */ + /* _mesa_function_pool[9410]: GetAttachedObjectsARB (will be remapped) */ "iipp\0" "glGetAttachedObjectsARB\0" "\0" - /* _mesa_function_pool[9470]: Uniform3fvARB (will be remapped) */ + /* _mesa_function_pool[9440]: Uniform3fvARB (will be remapped) */ "iip\0" "glUniform3fv\0" "glUniform3fvARB\0" "\0" - /* _mesa_function_pool[9504]: EvalCoord1fv (offset 231) */ + /* _mesa_function_pool[9474]: EvalCoord1fv (offset 231) */ "p\0" "glEvalCoord1fv\0" "\0" - /* _mesa_function_pool[9522]: DrawRangeElements (offset 338) */ + /* _mesa_function_pool[9492]: DrawRangeElements (offset 338) */ "iiiiip\0" "glDrawRangeElements\0" "glDrawRangeElementsEXT\0" "\0" - /* _mesa_function_pool[9573]: EvalMesh2 (offset 238) */ + /* _mesa_function_pool[9543]: EvalMesh2 (offset 238) */ "iiiii\0" "glEvalMesh2\0" "\0" - /* _mesa_function_pool[9592]: Vertex4fv (offset 145) */ + /* _mesa_function_pool[9562]: Vertex4fv (offset 145) */ "p\0" "glVertex4fv\0" "\0" - /* _mesa_function_pool[9607]: GenTransformFeedbacks (will be remapped) */ + /* _mesa_function_pool[9577]: GenTransformFeedbacks (will be remapped) */ "ip\0" "glGenTransformFeedbacks\0" "\0" - /* _mesa_function_pool[9635]: SpriteParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[9605]: SpriteParameterfvSGIX (dynamic) */ "ip\0" "glSpriteParameterfvSGIX\0" "\0" - /* _mesa_function_pool[9663]: CheckFramebufferStatusEXT (will be remapped) */ + /* _mesa_function_pool[9633]: CheckFramebufferStatusEXT (will be remapped) */ "i\0" "glCheckFramebufferStatus\0" "glCheckFramebufferStatusEXT\0" "\0" - /* _mesa_function_pool[9719]: GlobalAlphaFactoruiSUN (dynamic) */ + /* _mesa_function_pool[9689]: GlobalAlphaFactoruiSUN (dynamic) */ "i\0" "glGlobalAlphaFactoruiSUN\0" "\0" - /* _mesa_function_pool[9747]: GetHandleARB (will be remapped) */ + /* _mesa_function_pool[9717]: GetHandleARB (will be remapped) */ "i\0" "glGetHandleARB\0" "\0" - /* _mesa_function_pool[9765]: GetVertexAttribivARB (will be remapped) */ + /* _mesa_function_pool[9735]: GetVertexAttribivARB (will be remapped) */ "iip\0" "glGetVertexAttribiv\0" "glGetVertexAttribivARB\0" "\0" - /* _mesa_function_pool[9813]: GetCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[9783]: GetCombinerInputParameterfvNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[9852]: GetTexParameterIivEXT (will be remapped) */ + /* _mesa_function_pool[9822]: GetTexParameterIivEXT (will be remapped) */ "iip\0" "glGetTexParameterIivEXT\0" "glGetTexParameterIiv\0" "\0" - /* _mesa_function_pool[9902]: CreateProgram (will be remapped) */ + /* _mesa_function_pool[9872]: CreateProgram (will be remapped) */ "\0" "glCreateProgram\0" "\0" - /* _mesa_function_pool[9920]: LoadTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[9890]: LoadTransposeMatrixdARB (will be remapped) */ "p\0" "glLoadTransposeMatrixd\0" "glLoadTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[9972]: GetMinmax (offset 364) */ + /* _mesa_function_pool[9942]: ReleaseShaderCompiler (will be remapped) */ + "\0" + "glReleaseShaderCompiler\0" + "\0" + /* _mesa_function_pool[9968]: GetMinmax (offset 364) */ "iiiip\0" "glGetMinmax\0" "glGetMinmaxEXT\0" "\0" - /* _mesa_function_pool[10006]: StencilFuncSeparate (will be remapped) */ + /* _mesa_function_pool[10002]: StencilFuncSeparate (will be remapped) */ "iiii\0" "glStencilFuncSeparate\0" "\0" - /* _mesa_function_pool[10034]: SecondaryColor3sEXT (will be remapped) */ + /* _mesa_function_pool[10030]: SecondaryColor3sEXT (will be remapped) */ "iii\0" "glSecondaryColor3s\0" "glSecondaryColor3sEXT\0" "\0" - /* _mesa_function_pool[10080]: Color3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[10076]: Color3fVertex3fvSUN (dynamic) */ "pp\0" "glColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[10106]: GetInteger64i_v (will be remapped) */ + /* _mesa_function_pool[10102]: GetInteger64i_v (will be remapped) */ "iip\0" "glGetInteger64i_v\0" "\0" - /* _mesa_function_pool[10129]: Normal3fv (offset 57) */ + /* _mesa_function_pool[10125]: Normal3fv (offset 57) */ "p\0" "glNormal3fv\0" "\0" - /* _mesa_function_pool[10144]: GlobalAlphaFactorbSUN (dynamic) */ + /* _mesa_function_pool[10140]: GlobalAlphaFactorbSUN (dynamic) */ "i\0" "glGlobalAlphaFactorbSUN\0" "\0" - /* _mesa_function_pool[10171]: Color3us (offset 23) */ + /* _mesa_function_pool[10167]: Color3us (offset 23) */ "iii\0" "glColor3us\0" "\0" - /* _mesa_function_pool[10187]: ImageTransformParameterfvHP (dynamic) */ + /* _mesa_function_pool[10183]: ImageTransformParameterfvHP (dynamic) */ "iip\0" "glImageTransformParameterfvHP\0" "\0" - /* _mesa_function_pool[10222]: VertexAttrib4ivARB (will be remapped) */ + /* _mesa_function_pool[10218]: VertexAttrib4ivARB (will be remapped) */ "ip\0" "glVertexAttrib4iv\0" "glVertexAttrib4ivARB\0" "\0" - /* _mesa_function_pool[10265]: End (offset 43) */ + /* _mesa_function_pool[10261]: End (offset 43) */ "\0" "glEnd\0" "\0" - /* _mesa_function_pool[10273]: VertexAttrib3fNV (will be remapped) */ + /* _mesa_function_pool[10269]: VertexAttrib3fNV (will be remapped) */ "ifff\0" "glVertexAttrib3fNV\0" "\0" - /* _mesa_function_pool[10298]: VertexAttribs2dvNV (will be remapped) */ + /* _mesa_function_pool[10294]: VertexAttribs2dvNV (will be remapped) */ "iip\0" "glVertexAttribs2dvNV\0" "\0" - /* _mesa_function_pool[10324]: GetQueryObjectui64vEXT (will be remapped) */ + /* _mesa_function_pool[10320]: GetQueryObjectui64vEXT (will be remapped) */ "iip\0" "glGetQueryObjectui64vEXT\0" "\0" - /* _mesa_function_pool[10354]: MultiTexCoord3fvARB (offset 395) */ + /* _mesa_function_pool[10350]: MultiTexCoord3fvARB (offset 395) */ "ip\0" "glMultiTexCoord3fv\0" "glMultiTexCoord3fvARB\0" "\0" - /* _mesa_function_pool[10399]: SecondaryColor3dEXT (will be remapped) */ + /* _mesa_function_pool[10395]: SecondaryColor3dEXT (will be remapped) */ "ddd\0" "glSecondaryColor3d\0" "glSecondaryColor3dEXT\0" "\0" - /* _mesa_function_pool[10445]: Color3ub (offset 19) */ + /* _mesa_function_pool[10441]: Color3ub (offset 19) */ "iii\0" "glColor3ub\0" "\0" - /* _mesa_function_pool[10461]: GetProgramParameterfvNV (will be remapped) */ + /* _mesa_function_pool[10457]: GetProgramParameterfvNV (will be remapped) */ "iiip\0" "glGetProgramParameterfvNV\0" "\0" - /* _mesa_function_pool[10493]: TangentPointerEXT (dynamic) */ + /* _mesa_function_pool[10489]: TangentPointerEXT (dynamic) */ "iip\0" "glTangentPointerEXT\0" "\0" - /* _mesa_function_pool[10518]: Color4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[10514]: Color4fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[10553]: GetInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[10549]: GetInstrumentsSGIX (dynamic) */ "\0" "glGetInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[10576]: GetUniformuivEXT (will be remapped) */ + /* _mesa_function_pool[10572]: GetUniformuivEXT (will be remapped) */ "iip\0" "glGetUniformuivEXT\0" "glGetUniformuiv\0" "\0" - /* _mesa_function_pool[10616]: Color3ui (offset 21) */ + /* _mesa_function_pool[10612]: Color3ui (offset 21) */ "iii\0" "glColor3ui\0" "\0" - /* _mesa_function_pool[10632]: EvalMapsNV (dynamic) */ + /* _mesa_function_pool[10628]: EvalMapsNV (dynamic) */ "ii\0" "glEvalMapsNV\0" "\0" - /* _mesa_function_pool[10649]: TexSubImage2D (offset 333) */ + /* _mesa_function_pool[10645]: TexSubImage2D (offset 333) */ "iiiiiiiip\0" "glTexSubImage2D\0" "glTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[10695]: FragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[10691]: FragmentLightivSGIX (dynamic) */ "iip\0" "glFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[10722]: GetTexParameterPointervAPPLE (will be remapped) */ + /* _mesa_function_pool[10718]: GetTexParameterPointervAPPLE (will be remapped) */ "iip\0" "glGetTexParameterPointervAPPLE\0" "\0" - /* _mesa_function_pool[10758]: TexGenfv (offset 191) */ + /* _mesa_function_pool[10754]: TexGenfv (offset 191) */ "iip\0" "glTexGenfv\0" "\0" - /* _mesa_function_pool[10774]: GetTransformFeedbackVaryingEXT (will be remapped) */ + /* _mesa_function_pool[10770]: GetTransformFeedbackVaryingEXT (will be remapped) */ "iiipppp\0" "glGetTransformFeedbackVaryingEXT\0" "glGetTransformFeedbackVarying\0" "\0" - /* _mesa_function_pool[10846]: VertexAttrib4bvARB (will be remapped) */ + /* _mesa_function_pool[10842]: VertexAttrib4bvARB (will be remapped) */ "ip\0" "glVertexAttrib4bv\0" "glVertexAttrib4bvARB\0" "\0" - /* _mesa_function_pool[10889]: AlphaFragmentOp2ATI (will be remapped) */ - "iiiiiiiii\0" - "glAlphaFragmentOp2ATI\0" + /* _mesa_function_pool[10885]: ShaderBinary (will be remapped) */ + "ipipi\0" + "glShaderBinary\0" "\0" - /* _mesa_function_pool[10922]: GetIntegerIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[10907]: GetIntegerIndexedvEXT (will be remapped) */ "iip\0" "glGetIntegerIndexedvEXT\0" "glGetIntegeri_v\0" "\0" - /* _mesa_function_pool[10967]: MultiTexCoord4sARB (offset 406) */ + /* _mesa_function_pool[10952]: MultiTexCoord4sARB (offset 406) */ "iiiii\0" "glMultiTexCoord4s\0" "glMultiTexCoord4sARB\0" "\0" - /* _mesa_function_pool[11013]: GetFragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[10998]: GetFragmentMaterialivSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[11046]: WindowPos4dMESA (will be remapped) */ + /* _mesa_function_pool[11031]: WindowPos4dMESA (will be remapped) */ "dddd\0" "glWindowPos4dMESA\0" "\0" - /* _mesa_function_pool[11070]: WeightPointerARB (dynamic) */ + /* _mesa_function_pool[11055]: WeightPointerARB (dynamic) */ "iiip\0" "glWeightPointerARB\0" "\0" - /* _mesa_function_pool[11095]: WindowPos2dMESA (will be remapped) */ + /* _mesa_function_pool[11080]: WindowPos2dMESA (will be remapped) */ "dd\0" "glWindowPos2d\0" "glWindowPos2dARB\0" "glWindowPos2dMESA\0" "\0" - /* _mesa_function_pool[11148]: FramebufferTexture3DEXT (will be remapped) */ + /* _mesa_function_pool[11133]: FramebufferTexture3DEXT (will be remapped) */ "iiiiii\0" "glFramebufferTexture3D\0" "glFramebufferTexture3DEXT\0" "\0" - /* _mesa_function_pool[11205]: BlendEquation (offset 337) */ + /* _mesa_function_pool[11190]: BlendEquation (offset 337) */ "i\0" "glBlendEquation\0" "glBlendEquationEXT\0" "\0" - /* _mesa_function_pool[11243]: VertexAttrib3dNV (will be remapped) */ + /* _mesa_function_pool[11228]: VertexAttrib3dNV (will be remapped) */ "iddd\0" "glVertexAttrib3dNV\0" "\0" - /* _mesa_function_pool[11268]: VertexAttrib3dARB (will be remapped) */ + /* _mesa_function_pool[11253]: VertexAttrib3dARB (will be remapped) */ "iddd\0" "glVertexAttrib3d\0" "glVertexAttrib3dARB\0" "\0" - /* _mesa_function_pool[11311]: VertexAttribI4usvEXT (will be remapped) */ + /* _mesa_function_pool[11296]: VertexAttribI4usvEXT (will be remapped) */ "ip\0" "glVertexAttribI4usvEXT\0" "glVertexAttribI4usv\0" "\0" - /* _mesa_function_pool[11358]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[11343]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "ppppp\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[11422]: VertexAttrib4fARB (will be remapped) */ + /* _mesa_function_pool[11407]: VertexAttrib4fARB (will be remapped) */ "iffff\0" "glVertexAttrib4f\0" "glVertexAttrib4fARB\0" "\0" - /* _mesa_function_pool[11466]: GetError (offset 261) */ + /* _mesa_function_pool[11451]: GetError (offset 261) */ "\0" "glGetError\0" "\0" - /* _mesa_function_pool[11479]: IndexFuncEXT (dynamic) */ + /* _mesa_function_pool[11464]: IndexFuncEXT (dynamic) */ "if\0" "glIndexFuncEXT\0" "\0" - /* _mesa_function_pool[11498]: TexCoord3dv (offset 111) */ + /* _mesa_function_pool[11483]: TexCoord3dv (offset 111) */ "p\0" "glTexCoord3dv\0" "\0" - /* _mesa_function_pool[11515]: Indexdv (offset 45) */ + /* _mesa_function_pool[11500]: Indexdv (offset 45) */ "p\0" "glIndexdv\0" "\0" - /* _mesa_function_pool[11528]: FramebufferTexture2DEXT (will be remapped) */ + /* _mesa_function_pool[11513]: FramebufferTexture2DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture2D\0" "glFramebufferTexture2DEXT\0" "\0" - /* _mesa_function_pool[11584]: Normal3s (offset 60) */ + /* _mesa_function_pool[11569]: Normal3s (offset 60) */ "iii\0" "glNormal3s\0" "\0" - /* _mesa_function_pool[11600]: GetObjectParameterivAPPLE (will be remapped) */ + /* _mesa_function_pool[11585]: GetObjectParameterivAPPLE (will be remapped) */ "iiip\0" "glGetObjectParameterivAPPLE\0" "\0" - /* _mesa_function_pool[11634]: PushName (offset 201) */ + /* _mesa_function_pool[11619]: PushName (offset 201) */ "i\0" "glPushName\0" "\0" - /* _mesa_function_pool[11648]: MultiTexCoord2dvARB (offset 385) */ + /* _mesa_function_pool[11633]: MultiTexCoord2dvARB (offset 385) */ "ip\0" "glMultiTexCoord2dv\0" "glMultiTexCoord2dvARB\0" "\0" - /* _mesa_function_pool[11693]: CullParameterfvEXT (dynamic) */ + /* _mesa_function_pool[11678]: CullParameterfvEXT (dynamic) */ "ip\0" "glCullParameterfvEXT\0" "\0" - /* _mesa_function_pool[11718]: Normal3i (offset 58) */ + /* _mesa_function_pool[11703]: Normal3i (offset 58) */ "iii\0" "glNormal3i\0" "\0" - /* _mesa_function_pool[11734]: ProgramNamedParameter4fvNV (will be remapped) */ + /* _mesa_function_pool[11719]: ProgramNamedParameter4fvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4fvNV\0" "\0" - /* _mesa_function_pool[11769]: SecondaryColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[11754]: SecondaryColorPointerEXT (will be remapped) */ "iiip\0" "glSecondaryColorPointer\0" "glSecondaryColorPointerEXT\0" "\0" - /* _mesa_function_pool[11826]: VertexAttrib4fvARB (will be remapped) */ + /* _mesa_function_pool[11811]: VertexAttrib4fvARB (will be remapped) */ "ip\0" "glVertexAttrib4fv\0" "glVertexAttrib4fvARB\0" "\0" - /* _mesa_function_pool[11869]: ColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[11854]: ColorPointerListIBM (dynamic) */ "iiipi\0" "glColorPointerListIBM\0" "\0" - /* _mesa_function_pool[11898]: GetActiveUniformARB (will be remapped) */ + /* _mesa_function_pool[11883]: GetActiveUniformARB (will be remapped) */ "iiipppp\0" "glGetActiveUniform\0" "glGetActiveUniformARB\0" "\0" - /* _mesa_function_pool[11948]: ImageTransformParameteriHP (dynamic) */ + /* _mesa_function_pool[11933]: ImageTransformParameteriHP (dynamic) */ "iii\0" "glImageTransformParameteriHP\0" "\0" - /* _mesa_function_pool[11982]: Normal3b (offset 52) */ + /* _mesa_function_pool[11967]: Normal3b (offset 52) */ "iii\0" "glNormal3b\0" "\0" - /* _mesa_function_pool[11998]: Normal3d (offset 54) */ + /* _mesa_function_pool[11983]: Normal3d (offset 54) */ "ddd\0" "glNormal3d\0" "\0" - /* _mesa_function_pool[12014]: Uniform1uiEXT (will be remapped) */ + /* _mesa_function_pool[11999]: Uniform1uiEXT (will be remapped) */ "ii\0" "glUniform1uiEXT\0" "glUniform1ui\0" "\0" - /* _mesa_function_pool[12047]: Normal3f (offset 56) */ + /* _mesa_function_pool[12032]: Normal3f (offset 56) */ "fff\0" "glNormal3f\0" "\0" - /* _mesa_function_pool[12063]: MultiTexCoord1svARB (offset 383) */ + /* _mesa_function_pool[12048]: MultiTexCoord1svARB (offset 383) */ "ip\0" "glMultiTexCoord1sv\0" "glMultiTexCoord1svARB\0" "\0" - /* _mesa_function_pool[12108]: Indexi (offset 48) */ + /* _mesa_function_pool[12093]: Indexi (offset 48) */ "i\0" "glIndexi\0" "\0" - /* _mesa_function_pool[12120]: EGLImageTargetTexture2DOES (will be remapped) */ + /* _mesa_function_pool[12105]: EGLImageTargetTexture2DOES (will be remapped) */ "ip\0" "glEGLImageTargetTexture2DOES\0" "\0" - /* _mesa_function_pool[12153]: EndQueryARB (will be remapped) */ + /* _mesa_function_pool[12138]: EndQueryARB (will be remapped) */ "i\0" "glEndQuery\0" "glEndQueryARB\0" "\0" - /* _mesa_function_pool[12181]: DeleteFencesNV (will be remapped) */ + /* _mesa_function_pool[12166]: DeleteFencesNV (will be remapped) */ "ip\0" "glDeleteFencesNV\0" "\0" - /* _mesa_function_pool[12202]: BindBufferRangeEXT (will be remapped) */ + /* _mesa_function_pool[12187]: DeformationMap3dSGIX (dynamic) */ + "iddiiddiiddiip\0" + "glDeformationMap3dSGIX\0" + "\0" + /* _mesa_function_pool[12226]: BindBufferRangeEXT (will be remapped) */ "iiiii\0" "glBindBufferRangeEXT\0" "glBindBufferRange\0" "\0" - /* _mesa_function_pool[12248]: DepthMask (offset 211) */ + /* _mesa_function_pool[12272]: DepthMask (offset 211) */ "i\0" "glDepthMask\0" "\0" - /* _mesa_function_pool[12263]: IsShader (will be remapped) */ + /* _mesa_function_pool[12287]: IsShader (will be remapped) */ "i\0" "glIsShader\0" "\0" - /* _mesa_function_pool[12277]: Indexf (offset 46) */ + /* _mesa_function_pool[12301]: Indexf (offset 46) */ "f\0" "glIndexf\0" "\0" - /* _mesa_function_pool[12289]: GetImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[12313]: GetImageTransformParameterivHP (dynamic) */ "iip\0" "glGetImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[12327]: Indexd (offset 44) */ + /* _mesa_function_pool[12351]: Indexd (offset 44) */ "d\0" "glIndexd\0" "\0" - /* _mesa_function_pool[12339]: GetMaterialiv (offset 270) */ + /* _mesa_function_pool[12363]: GetMaterialiv (offset 270) */ "iip\0" "glGetMaterialiv\0" "\0" - /* _mesa_function_pool[12360]: StencilOp (offset 244) */ + /* _mesa_function_pool[12384]: StencilOp (offset 244) */ "iii\0" "glStencilOp\0" "\0" - /* _mesa_function_pool[12377]: WindowPos4ivMESA (will be remapped) */ + /* _mesa_function_pool[12401]: WindowPos4ivMESA (will be remapped) */ "p\0" "glWindowPos4ivMESA\0" "\0" - /* _mesa_function_pool[12399]: FramebufferTextureLayer (dynamic) */ + /* _mesa_function_pool[12423]: FramebufferTextureLayer (dynamic) */ "iiiii\0" "glFramebufferTextureLayerARB\0" "\0" - /* _mesa_function_pool[12435]: MultiTexCoord3svARB (offset 399) */ + /* _mesa_function_pool[12459]: MultiTexCoord3svARB (offset 399) */ "ip\0" "glMultiTexCoord3sv\0" "glMultiTexCoord3svARB\0" "\0" - /* _mesa_function_pool[12480]: TexEnvfv (offset 185) */ + /* _mesa_function_pool[12504]: TexEnvfv (offset 185) */ "iip\0" "glTexEnvfv\0" "\0" - /* _mesa_function_pool[12496]: MultiTexCoord4iARB (offset 404) */ + /* _mesa_function_pool[12520]: MultiTexCoord4iARB (offset 404) */ "iiiii\0" "glMultiTexCoord4i\0" "glMultiTexCoord4iARB\0" "\0" - /* _mesa_function_pool[12542]: Indexs (offset 50) */ + /* _mesa_function_pool[12566]: Indexs (offset 50) */ "i\0" "glIndexs\0" "\0" - /* _mesa_function_pool[12554]: Binormal3ivEXT (dynamic) */ + /* _mesa_function_pool[12578]: Binormal3ivEXT (dynamic) */ "p\0" "glBinormal3ivEXT\0" "\0" - /* _mesa_function_pool[12574]: ResizeBuffersMESA (will be remapped) */ + /* _mesa_function_pool[12598]: ResizeBuffersMESA (will be remapped) */ "\0" "glResizeBuffersMESA\0" "\0" - /* _mesa_function_pool[12596]: GetUniformivARB (will be remapped) */ + /* _mesa_function_pool[12620]: GetUniformivARB (will be remapped) */ "iip\0" "glGetUniformiv\0" "glGetUniformivARB\0" "\0" - /* _mesa_function_pool[12634]: PixelTexGenParameteriSGIS (will be remapped) */ + /* _mesa_function_pool[12658]: PixelTexGenParameteriSGIS (will be remapped) */ "ii\0" "glPixelTexGenParameteriSGIS\0" "\0" - /* _mesa_function_pool[12666]: VertexPointervINTEL (dynamic) */ + /* _mesa_function_pool[12690]: VertexPointervINTEL (dynamic) */ "iip\0" "glVertexPointervINTEL\0" "\0" - /* _mesa_function_pool[12693]: Vertex2i (offset 130) */ + /* _mesa_function_pool[12717]: Vertex2i (offset 130) */ "ii\0" "glVertex2i\0" "\0" - /* _mesa_function_pool[12708]: LoadMatrixf (offset 291) */ + /* _mesa_function_pool[12732]: LoadMatrixf (offset 291) */ "p\0" "glLoadMatrixf\0" "\0" - /* _mesa_function_pool[12725]: VertexAttribI1uivEXT (will be remapped) */ + /* _mesa_function_pool[12749]: VertexAttribI1uivEXT (will be remapped) */ "ip\0" "glVertexAttribI1uivEXT\0" "glVertexAttribI1uiv\0" "\0" - /* _mesa_function_pool[12772]: Vertex2f (offset 128) */ + /* _mesa_function_pool[12796]: Vertex2f (offset 128) */ "ff\0" "glVertex2f\0" "\0" - /* _mesa_function_pool[12787]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[12811]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[12840]: Color4bv (offset 26) */ + /* _mesa_function_pool[12864]: Color4bv (offset 26) */ "p\0" "glColor4bv\0" "\0" - /* _mesa_function_pool[12854]: VertexPointer (offset 321) */ + /* _mesa_function_pool[12878]: VertexPointer (offset 321) */ "iiip\0" "glVertexPointer\0" "\0" - /* _mesa_function_pool[12876]: SecondaryColor3uiEXT (will be remapped) */ + /* _mesa_function_pool[12900]: SecondaryColor3uiEXT (will be remapped) */ "iii\0" "glSecondaryColor3ui\0" "glSecondaryColor3uiEXT\0" "\0" - /* _mesa_function_pool[12924]: StartInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[12948]: StartInstrumentsSGIX (dynamic) */ "\0" "glStartInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[12949]: SecondaryColor3usvEXT (will be remapped) */ + /* _mesa_function_pool[12973]: SecondaryColor3usvEXT (will be remapped) */ "p\0" "glSecondaryColor3usv\0" "glSecondaryColor3usvEXT\0" "\0" - /* _mesa_function_pool[12997]: VertexAttrib2fvNV (will be remapped) */ + /* _mesa_function_pool[13021]: VertexAttrib2fvNV (will be remapped) */ "ip\0" "glVertexAttrib2fvNV\0" "\0" - /* _mesa_function_pool[13021]: ProgramLocalParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[13045]: ProgramLocalParameter4dvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4dvARB\0" "\0" - /* _mesa_function_pool[13056]: DeleteLists (offset 4) */ + /* _mesa_function_pool[13080]: DeleteLists (offset 4) */ "ii\0" "glDeleteLists\0" "\0" - /* _mesa_function_pool[13074]: LogicOp (offset 242) */ + /* _mesa_function_pool[13098]: LogicOp (offset 242) */ "i\0" "glLogicOp\0" "\0" - /* _mesa_function_pool[13087]: MatrixIndexuivARB (dynamic) */ + /* _mesa_function_pool[13111]: MatrixIndexuivARB (dynamic) */ "ip\0" "glMatrixIndexuivARB\0" "\0" - /* _mesa_function_pool[13111]: Vertex2s (offset 132) */ + /* _mesa_function_pool[13135]: Vertex2s (offset 132) */ "ii\0" "glVertex2s\0" "\0" - /* _mesa_function_pool[13126]: RenderbufferStorageMultisample (will be remapped) */ + /* _mesa_function_pool[13150]: RenderbufferStorageMultisample (will be remapped) */ "iiiii\0" "glRenderbufferStorageMultisample\0" "glRenderbufferStorageMultisampleEXT\0" "\0" - /* _mesa_function_pool[13202]: TexCoord4fv (offset 121) */ + /* _mesa_function_pool[13226]: TexCoord4fv (offset 121) */ "p\0" "glTexCoord4fv\0" "\0" - /* _mesa_function_pool[13219]: Tangent3sEXT (dynamic) */ + /* _mesa_function_pool[13243]: Tangent3sEXT (dynamic) */ "iii\0" "glTangent3sEXT\0" "\0" - /* _mesa_function_pool[13239]: GlobalAlphaFactorfSUN (dynamic) */ + /* _mesa_function_pool[13263]: GlobalAlphaFactorfSUN (dynamic) */ "f\0" "glGlobalAlphaFactorfSUN\0" "\0" - /* _mesa_function_pool[13266]: MultiTexCoord3iARB (offset 396) */ + /* _mesa_function_pool[13290]: MultiTexCoord3iARB (offset 396) */ "iiii\0" "glMultiTexCoord3i\0" "glMultiTexCoord3iARB\0" "\0" - /* _mesa_function_pool[13311]: IsProgram (will be remapped) */ + /* _mesa_function_pool[13335]: IsProgram (will be remapped) */ "i\0" "glIsProgram\0" "\0" - /* _mesa_function_pool[13326]: TexCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[13350]: TexCoordPointerListIBM (dynamic) */ "iiipi\0" "glTexCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[13358]: VertexAttribI4svEXT (will be remapped) */ + /* _mesa_function_pool[13382]: VertexAttribI4svEXT (will be remapped) */ "ip\0" "glVertexAttribI4svEXT\0" "glVertexAttribI4sv\0" "\0" - /* _mesa_function_pool[13403]: GlobalAlphaFactorusSUN (dynamic) */ + /* _mesa_function_pool[13427]: GlobalAlphaFactorusSUN (dynamic) */ "i\0" "glGlobalAlphaFactorusSUN\0" "\0" - /* _mesa_function_pool[13431]: VertexAttrib2dvNV (will be remapped) */ + /* _mesa_function_pool[13455]: VertexAttrib2dvNV (will be remapped) */ "ip\0" "glVertexAttrib2dvNV\0" "\0" - /* _mesa_function_pool[13455]: FramebufferRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[13479]: FramebufferRenderbufferEXT (will be remapped) */ "iiii\0" "glFramebufferRenderbuffer\0" "glFramebufferRenderbufferEXT\0" "\0" - /* _mesa_function_pool[13516]: ClearBufferuiv (will be remapped) */ + /* _mesa_function_pool[13540]: ClearBufferuiv (will be remapped) */ "iip\0" "glClearBufferuiv\0" "\0" - /* _mesa_function_pool[13538]: VertexAttrib1dvNV (will be remapped) */ + /* _mesa_function_pool[13562]: VertexAttrib1dvNV (will be remapped) */ "ip\0" "glVertexAttrib1dvNV\0" "\0" - /* _mesa_function_pool[13562]: GenTextures (offset 328) */ + /* _mesa_function_pool[13586]: GenTextures (offset 328) */ "ip\0" "glGenTextures\0" "glGenTexturesEXT\0" "\0" - /* _mesa_function_pool[13597]: FramebufferTextureARB (will be remapped) */ + /* _mesa_function_pool[13621]: FramebufferTextureARB (will be remapped) */ "iiii\0" "glFramebufferTextureARB\0" "\0" - /* _mesa_function_pool[13627]: SetFenceNV (will be remapped) */ + /* _mesa_function_pool[13651]: SetFenceNV (will be remapped) */ "ii\0" "glSetFenceNV\0" "\0" - /* _mesa_function_pool[13644]: FramebufferTexture1DEXT (will be remapped) */ + /* _mesa_function_pool[13668]: FramebufferTexture1DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture1D\0" "glFramebufferTexture1DEXT\0" "\0" - /* _mesa_function_pool[13700]: GetCombinerOutputParameterivNV (will be remapped) */ + /* _mesa_function_pool[13724]: GetCombinerOutputParameterivNV (will be remapped) */ "iiip\0" "glGetCombinerOutputParameterivNV\0" "\0" - /* _mesa_function_pool[13739]: MultiModeDrawArraysIBM (will be remapped) */ - "pppii\0" - "glMultiModeDrawArraysIBM\0" - "\0" - /* _mesa_function_pool[13771]: PixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[13763]: PixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[13804]: TextureNormalEXT (dynamic) */ + /* _mesa_function_pool[13796]: TextureNormalEXT (dynamic) */ "i\0" "glTextureNormalEXT\0" "\0" - /* _mesa_function_pool[13826]: IndexPointerListIBM (dynamic) */ + /* _mesa_function_pool[13818]: IndexPointerListIBM (dynamic) */ "iipi\0" "glIndexPointerListIBM\0" "\0" - /* _mesa_function_pool[13854]: WeightfvARB (dynamic) */ + /* _mesa_function_pool[13846]: WeightfvARB (dynamic) */ "ip\0" "glWeightfvARB\0" "\0" - /* _mesa_function_pool[13872]: GetCombinerOutputParameterfvNV (will be remapped) */ - "iiip\0" - "glGetCombinerOutputParameterfvNV\0" - "\0" - /* _mesa_function_pool[13911]: RasterPos2sv (offset 69) */ + /* _mesa_function_pool[13864]: RasterPos2sv (offset 69) */ "p\0" "glRasterPos2sv\0" "\0" - /* _mesa_function_pool[13929]: Color4ubv (offset 36) */ + /* _mesa_function_pool[13882]: Color4ubv (offset 36) */ "p\0" "glColor4ubv\0" "\0" - /* _mesa_function_pool[13944]: DrawBuffer (offset 202) */ + /* _mesa_function_pool[13897]: DrawBuffer (offset 202) */ "i\0" "glDrawBuffer\0" "\0" - /* _mesa_function_pool[13960]: TexCoord2fv (offset 105) */ + /* _mesa_function_pool[13913]: TexCoord2fv (offset 105) */ "p\0" "glTexCoord2fv\0" "\0" - /* _mesa_function_pool[13977]: WindowPos4fMESA (will be remapped) */ + /* _mesa_function_pool[13930]: WindowPos4fMESA (will be remapped) */ "ffff\0" "glWindowPos4fMESA\0" "\0" - /* _mesa_function_pool[14001]: TexCoord1sv (offset 101) */ + /* _mesa_function_pool[13954]: TexCoord1sv (offset 101) */ "p\0" "glTexCoord1sv\0" "\0" - /* _mesa_function_pool[14018]: WindowPos3dvMESA (will be remapped) */ + /* _mesa_function_pool[13971]: WindowPos3dvMESA (will be remapped) */ "p\0" "glWindowPos3dv\0" "glWindowPos3dvARB\0" "glWindowPos3dvMESA\0" "\0" - /* _mesa_function_pool[14073]: DepthFunc (offset 245) */ + /* _mesa_function_pool[14026]: DepthFunc (offset 245) */ "i\0" "glDepthFunc\0" "\0" - /* _mesa_function_pool[14088]: PixelMapusv (offset 253) */ + /* _mesa_function_pool[14041]: PixelMapusv (offset 253) */ "iip\0" "glPixelMapusv\0" "\0" - /* _mesa_function_pool[14107]: GetQueryObjecti64vEXT (will be remapped) */ + /* _mesa_function_pool[14060]: GetQueryObjecti64vEXT (will be remapped) */ "iip\0" "glGetQueryObjecti64vEXT\0" "\0" - /* _mesa_function_pool[14136]: MultiTexCoord1dARB (offset 376) */ + /* _mesa_function_pool[14089]: MultiTexCoord1dARB (offset 376) */ "id\0" "glMultiTexCoord1d\0" "glMultiTexCoord1dARB\0" "\0" - /* _mesa_function_pool[14179]: PointParameterivNV (will be remapped) */ + /* _mesa_function_pool[14132]: PointParameterivNV (will be remapped) */ "ip\0" "glPointParameteriv\0" "glPointParameterivNV\0" "\0" - /* _mesa_function_pool[14223]: BlendFunc (offset 241) */ + /* _mesa_function_pool[14176]: BlendFunc (offset 241) */ "ii\0" "glBlendFunc\0" "\0" - /* _mesa_function_pool[14239]: EndTransformFeedbackEXT (will be remapped) */ + /* _mesa_function_pool[14192]: EndTransformFeedbackEXT (will be remapped) */ "\0" "glEndTransformFeedbackEXT\0" "glEndTransformFeedback\0" "\0" - /* _mesa_function_pool[14290]: Uniform2fvARB (will be remapped) */ + /* _mesa_function_pool[14243]: Uniform2fvARB (will be remapped) */ "iip\0" "glUniform2fv\0" "glUniform2fvARB\0" "\0" - /* _mesa_function_pool[14324]: BufferParameteriAPPLE (will be remapped) */ + /* _mesa_function_pool[14277]: BufferParameteriAPPLE (will be remapped) */ "iii\0" "glBufferParameteriAPPLE\0" "\0" - /* _mesa_function_pool[14353]: MultiTexCoord3dvARB (offset 393) */ + /* _mesa_function_pool[14306]: MultiTexCoord3dvARB (offset 393) */ "ip\0" "glMultiTexCoord3dv\0" "glMultiTexCoord3dvARB\0" "\0" - /* _mesa_function_pool[14398]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[14351]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[14454]: DeleteObjectARB (will be remapped) */ + /* _mesa_function_pool[14407]: DeleteObjectARB (will be remapped) */ "i\0" "glDeleteObjectARB\0" "\0" - /* _mesa_function_pool[14475]: MatrixIndexPointerARB (dynamic) */ + /* _mesa_function_pool[14428]: GetShaderPrecisionFormat (will be remapped) */ + "iipp\0" + "glGetShaderPrecisionFormat\0" + "\0" + /* _mesa_function_pool[14461]: MatrixIndexPointerARB (dynamic) */ "iiip\0" "glMatrixIndexPointerARB\0" "\0" - /* _mesa_function_pool[14505]: ProgramNamedParameter4dvNV (will be remapped) */ + /* _mesa_function_pool[14491]: ProgramNamedParameter4dvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4dvNV\0" "\0" - /* _mesa_function_pool[14540]: Tangent3fvEXT (dynamic) */ + /* _mesa_function_pool[14526]: Tangent3fvEXT (dynamic) */ "p\0" "glTangent3fvEXT\0" "\0" - /* _mesa_function_pool[14559]: Flush (offset 217) */ + /* _mesa_function_pool[14545]: Flush (offset 217) */ "\0" "glFlush\0" "\0" - /* _mesa_function_pool[14569]: Color4uiv (offset 38) */ + /* _mesa_function_pool[14555]: Color4uiv (offset 38) */ "p\0" "glColor4uiv\0" "\0" - /* _mesa_function_pool[14584]: VertexAttribI4iEXT (will be remapped) */ + /* _mesa_function_pool[14570]: VertexAttribI4iEXT (will be remapped) */ "iiiii\0" "glVertexAttribI4iEXT\0" "glVertexAttribI4i\0" "\0" - /* _mesa_function_pool[14630]: GenVertexArrays (will be remapped) */ + /* _mesa_function_pool[14616]: GenVertexArrays (will be remapped) */ "ip\0" "glGenVertexArrays\0" "\0" - /* _mesa_function_pool[14652]: Uniform3uivEXT (will be remapped) */ + /* _mesa_function_pool[14638]: Uniform3uivEXT (will be remapped) */ "iip\0" "glUniform3uivEXT\0" "glUniform3uiv\0" "\0" - /* _mesa_function_pool[14688]: RasterPos3sv (offset 77) */ + /* _mesa_function_pool[14674]: RasterPos3sv (offset 77) */ "p\0" "glRasterPos3sv\0" "\0" - /* _mesa_function_pool[14706]: BindFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[14692]: BindFramebufferEXT (will be remapped) */ "ii\0" "glBindFramebuffer\0" "glBindFramebufferEXT\0" "\0" - /* _mesa_function_pool[14749]: ReferencePlaneSGIX (dynamic) */ + /* _mesa_function_pool[14735]: ReferencePlaneSGIX (dynamic) */ "p\0" "glReferencePlaneSGIX\0" "\0" - /* _mesa_function_pool[14773]: PushAttrib (offset 219) */ + /* _mesa_function_pool[14759]: PushAttrib (offset 219) */ "i\0" "glPushAttrib\0" "\0" - /* _mesa_function_pool[14789]: RasterPos2i (offset 66) */ + /* _mesa_function_pool[14775]: RasterPos2i (offset 66) */ "ii\0" "glRasterPos2i\0" "\0" - /* _mesa_function_pool[14807]: ValidateProgramARB (will be remapped) */ + /* _mesa_function_pool[14793]: ValidateProgramARB (will be remapped) */ "i\0" "glValidateProgram\0" "glValidateProgramARB\0" "\0" - /* _mesa_function_pool[14849]: TexParameteriv (offset 181) */ + /* _mesa_function_pool[14835]: TexParameteriv (offset 181) */ "iip\0" "glTexParameteriv\0" "\0" - /* _mesa_function_pool[14871]: UnlockArraysEXT (will be remapped) */ + /* _mesa_function_pool[14857]: UnlockArraysEXT (will be remapped) */ "\0" "glUnlockArraysEXT\0" "\0" - /* _mesa_function_pool[14891]: TexCoord2fColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[14877]: TexCoord2fColor3fVertex3fSUN (dynamic) */ "ffffffff\0" "glTexCoord2fColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[14932]: WindowPos3fvMESA (will be remapped) */ + /* _mesa_function_pool[14918]: WindowPos3fvMESA (will be remapped) */ "p\0" "glWindowPos3fv\0" "glWindowPos3fvARB\0" "glWindowPos3fvMESA\0" "\0" - /* _mesa_function_pool[14987]: RasterPos2f (offset 64) */ + /* _mesa_function_pool[14973]: RasterPos2f (offset 64) */ "ff\0" "glRasterPos2f\0" "\0" - /* _mesa_function_pool[15005]: VertexAttrib1svNV (will be remapped) */ + /* _mesa_function_pool[14991]: VertexAttrib1svNV (will be remapped) */ "ip\0" "glVertexAttrib1svNV\0" "\0" - /* _mesa_function_pool[15029]: RasterPos2d (offset 62) */ + /* _mesa_function_pool[15015]: RasterPos2d (offset 62) */ "dd\0" "glRasterPos2d\0" "\0" - /* _mesa_function_pool[15047]: RasterPos3fv (offset 73) */ + /* _mesa_function_pool[15033]: RasterPos3fv (offset 73) */ "p\0" "glRasterPos3fv\0" "\0" - /* _mesa_function_pool[15065]: CopyTexSubImage3D (offset 373) */ + /* _mesa_function_pool[15051]: CopyTexSubImage3D (offset 373) */ "iiiiiiiii\0" "glCopyTexSubImage3D\0" "glCopyTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[15119]: VertexAttrib2dARB (will be remapped) */ + /* _mesa_function_pool[15105]: VertexAttrib2dARB (will be remapped) */ "idd\0" "glVertexAttrib2d\0" "glVertexAttrib2dARB\0" "\0" - /* _mesa_function_pool[15161]: Color4ub (offset 35) */ + /* _mesa_function_pool[15147]: Color4ub (offset 35) */ "iiii\0" "glColor4ub\0" "\0" - /* _mesa_function_pool[15178]: GetInteger64v (will be remapped) */ + /* _mesa_function_pool[15164]: GetInteger64v (will be remapped) */ "ip\0" "glGetInteger64v\0" "\0" - /* _mesa_function_pool[15198]: TextureColorMaskSGIS (dynamic) */ + /* _mesa_function_pool[15184]: TextureColorMaskSGIS (dynamic) */ "iiii\0" "glTextureColorMaskSGIS\0" "\0" - /* _mesa_function_pool[15227]: RasterPos2s (offset 68) */ + /* _mesa_function_pool[15213]: RasterPos2s (offset 68) */ "ii\0" "glRasterPos2s\0" "\0" - /* _mesa_function_pool[15245]: GetColorTable (offset 343) */ + /* _mesa_function_pool[15231]: GetColorTable (offset 343) */ "iiip\0" "glGetColorTable\0" "glGetColorTableSGI\0" "glGetColorTableEXT\0" "\0" - /* _mesa_function_pool[15305]: SelectBuffer (offset 195) */ + /* _mesa_function_pool[15291]: SelectBuffer (offset 195) */ "ip\0" "glSelectBuffer\0" "\0" - /* _mesa_function_pool[15324]: Indexiv (offset 49) */ + /* _mesa_function_pool[15310]: Indexiv (offset 49) */ "p\0" "glIndexiv\0" "\0" - /* _mesa_function_pool[15337]: TexCoord3i (offset 114) */ + /* _mesa_function_pool[15323]: TexCoord3i (offset 114) */ "iii\0" "glTexCoord3i\0" "\0" - /* _mesa_function_pool[15355]: CopyColorTable (offset 342) */ + /* _mesa_function_pool[15341]: CopyColorTable (offset 342) */ "iiiii\0" "glCopyColorTable\0" "glCopyColorTableSGI\0" "\0" - /* _mesa_function_pool[15399]: GetHistogramParameterfv (offset 362) */ + /* _mesa_function_pool[15385]: GetHistogramParameterfv (offset 362) */ "iip\0" "glGetHistogramParameterfv\0" "glGetHistogramParameterfvEXT\0" "\0" - /* _mesa_function_pool[15459]: Frustum (offset 289) */ + /* _mesa_function_pool[15445]: Frustum (offset 289) */ "dddddd\0" "glFrustum\0" "\0" - /* _mesa_function_pool[15477]: GetString (offset 275) */ + /* _mesa_function_pool[15463]: GetString (offset 275) */ "i\0" "glGetString\0" "\0" - /* _mesa_function_pool[15492]: ColorPointervINTEL (dynamic) */ + /* _mesa_function_pool[15478]: ColorPointervINTEL (dynamic) */ "iip\0" "glColorPointervINTEL\0" "\0" - /* _mesa_function_pool[15518]: TexEnvf (offset 184) */ + /* _mesa_function_pool[15504]: TexEnvf (offset 184) */ "iif\0" "glTexEnvf\0" "\0" - /* _mesa_function_pool[15533]: TexCoord3d (offset 110) */ + /* _mesa_function_pool[15519]: TexCoord3d (offset 110) */ "ddd\0" "glTexCoord3d\0" "\0" - /* _mesa_function_pool[15551]: AlphaFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[15537]: AlphaFragmentOp1ATI (will be remapped) */ "iiiiii\0" "glAlphaFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[15581]: TexCoord3f (offset 112) */ + /* _mesa_function_pool[15567]: TexCoord3f (offset 112) */ "fff\0" "glTexCoord3f\0" "\0" - /* _mesa_function_pool[15599]: MultiTexCoord3ivARB (offset 397) */ + /* _mesa_function_pool[15585]: MultiTexCoord3ivARB (offset 397) */ "ip\0" "glMultiTexCoord3iv\0" "glMultiTexCoord3ivARB\0" "\0" - /* _mesa_function_pool[15644]: MultiTexCoord2sARB (offset 390) */ + /* _mesa_function_pool[15630]: MultiTexCoord2sARB (offset 390) */ "iii\0" "glMultiTexCoord2s\0" "glMultiTexCoord2sARB\0" "\0" - /* _mesa_function_pool[15688]: VertexAttrib1dvARB (will be remapped) */ + /* _mesa_function_pool[15674]: VertexAttrib1dvARB (will be remapped) */ "ip\0" "glVertexAttrib1dv\0" "glVertexAttrib1dvARB\0" "\0" - /* _mesa_function_pool[15731]: DeleteTextures (offset 327) */ + /* _mesa_function_pool[15717]: DeleteTextures (offset 327) */ "ip\0" "glDeleteTextures\0" "glDeleteTexturesEXT\0" "\0" - /* _mesa_function_pool[15772]: TexCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[15758]: TexCoordPointerEXT (will be remapped) */ "iiiip\0" "glTexCoordPointerEXT\0" "\0" - /* _mesa_function_pool[15800]: TexSubImage4DSGIS (dynamic) */ + /* _mesa_function_pool[15786]: TexSubImage4DSGIS (dynamic) */ "iiiiiiiiiiiip\0" "glTexSubImage4DSGIS\0" "\0" - /* _mesa_function_pool[15835]: TexCoord3s (offset 116) */ + /* _mesa_function_pool[15821]: TexCoord3s (offset 116) */ "iii\0" "glTexCoord3s\0" "\0" - /* _mesa_function_pool[15853]: GetTexLevelParameteriv (offset 285) */ + /* _mesa_function_pool[15839]: GetTexLevelParameteriv (offset 285) */ "iiip\0" "glGetTexLevelParameteriv\0" "\0" - /* _mesa_function_pool[15884]: CombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[15870]: CombinerStageParameterfvNV (dynamic) */ "iip\0" "glCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[15918]: StopInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[15904]: StopInstrumentsSGIX (dynamic) */ "i\0" "glStopInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[15943]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[15929]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ "fffffffffffffff\0" "glTexCoord4fColor4fNormal3fVertex4fSUN\0" "\0" - /* _mesa_function_pool[15999]: ClearAccum (offset 204) */ + /* _mesa_function_pool[15985]: ClearAccum (offset 204) */ "ffff\0" "glClearAccum\0" "\0" - /* _mesa_function_pool[16018]: DeformSGIX (dynamic) */ + /* _mesa_function_pool[16004]: DeformSGIX (dynamic) */ "i\0" "glDeformSGIX\0" "\0" - /* _mesa_function_pool[16034]: GetVertexAttribfvARB (will be remapped) */ + /* _mesa_function_pool[16020]: GetVertexAttribfvARB (will be remapped) */ "iip\0" "glGetVertexAttribfv\0" "glGetVertexAttribfvARB\0" "\0" - /* _mesa_function_pool[16082]: SecondaryColor3ivEXT (will be remapped) */ + /* _mesa_function_pool[16068]: SecondaryColor3ivEXT (will be remapped) */ "p\0" "glSecondaryColor3iv\0" "glSecondaryColor3ivEXT\0" "\0" - /* _mesa_function_pool[16128]: TexCoord4iv (offset 123) */ + /* _mesa_function_pool[16114]: TexCoord4iv (offset 123) */ "p\0" "glTexCoord4iv\0" "\0" - /* _mesa_function_pool[16145]: VertexAttribI4uiEXT (will be remapped) */ + /* _mesa_function_pool[16131]: VertexAttribI4uiEXT (will be remapped) */ "iiiii\0" "glVertexAttribI4uiEXT\0" "glVertexAttribI4ui\0" "\0" - /* _mesa_function_pool[16193]: GetFragmentMaterialfvSGIX (dynamic) */ + /* _mesa_function_pool[16179]: GetFragmentMaterialfvSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialfvSGIX\0" "\0" - /* _mesa_function_pool[16226]: UniformMatrix4x2fv (will be remapped) */ + /* _mesa_function_pool[16212]: UniformMatrix4x2fv (will be remapped) */ "iiip\0" "glUniformMatrix4x2fv\0" "\0" - /* _mesa_function_pool[16253]: GetDetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[16239]: GetDetailTexFuncSGIS (dynamic) */ "ip\0" "glGetDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[16280]: GetCombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[16266]: GetCombinerStageParameterfvNV (dynamic) */ "iip\0" "glGetCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[16317]: PolygonOffset (offset 319) */ + /* _mesa_function_pool[16303]: PolygonOffset (offset 319) */ "ff\0" "glPolygonOffset\0" "\0" - /* _mesa_function_pool[16337]: BindVertexArray (will be remapped) */ + /* _mesa_function_pool[16323]: BindVertexArray (will be remapped) */ "i\0" "glBindVertexArray\0" "\0" - /* _mesa_function_pool[16358]: Color4ubVertex2fvSUN (dynamic) */ + /* _mesa_function_pool[16344]: Color4ubVertex2fvSUN (dynamic) */ "pp\0" "glColor4ubVertex2fvSUN\0" "\0" - /* _mesa_function_pool[16385]: Rectd (offset 86) */ + /* _mesa_function_pool[16371]: Rectd (offset 86) */ "dddd\0" "glRectd\0" "\0" - /* _mesa_function_pool[16399]: TexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[16385]: TexFilterFuncSGIS (dynamic) */ "iiip\0" "glTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[16425]: SampleMaskSGIS (will be remapped) */ + /* _mesa_function_pool[16411]: SampleMaskSGIS (will be remapped) */ "fi\0" "glSampleMaskSGIS\0" "glSampleMaskEXT\0" "\0" - /* _mesa_function_pool[16462]: VertexAttribI4ubvEXT (will be remapped) */ + /* _mesa_function_pool[16448]: VertexAttribI4ubvEXT (will be remapped) */ "ip\0" "glVertexAttribI4ubvEXT\0" "glVertexAttribI4ubv\0" "\0" - /* _mesa_function_pool[16509]: GetAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[16495]: GetAttribLocationARB (will be remapped) */ "ip\0" "glGetAttribLocation\0" "glGetAttribLocationARB\0" "\0" - /* _mesa_function_pool[16556]: RasterPos3i (offset 74) */ + /* _mesa_function_pool[16542]: RasterPos3i (offset 74) */ "iii\0" "glRasterPos3i\0" "\0" - /* _mesa_function_pool[16575]: VertexAttrib4ubvARB (will be remapped) */ + /* _mesa_function_pool[16561]: VertexAttrib4ubvARB (will be remapped) */ "ip\0" "glVertexAttrib4ubv\0" "glVertexAttrib4ubvARB\0" "\0" - /* _mesa_function_pool[16620]: DetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[16606]: DetailTexFuncSGIS (dynamic) */ "iip\0" "glDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[16645]: Normal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[16631]: Normal3fVertex3fSUN (dynamic) */ "ffffff\0" "glNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[16675]: CopyTexImage2D (offset 324) */ + /* _mesa_function_pool[16661]: CopyTexImage2D (offset 324) */ "iiiiiiii\0" "glCopyTexImage2D\0" "glCopyTexImage2DEXT\0" "\0" - /* _mesa_function_pool[16722]: GetBufferPointervARB (will be remapped) */ + /* _mesa_function_pool[16708]: GetBufferPointervARB (will be remapped) */ "iip\0" "glGetBufferPointerv\0" "glGetBufferPointervARB\0" "\0" - /* _mesa_function_pool[16770]: ProgramEnvParameter4fARB (will be remapped) */ + /* _mesa_function_pool[16756]: ProgramEnvParameter4fARB (will be remapped) */ "iiffff\0" "glProgramEnvParameter4fARB\0" "glProgramParameter4fNV\0" "\0" - /* _mesa_function_pool[16828]: Uniform3ivARB (will be remapped) */ + /* _mesa_function_pool[16814]: Uniform3ivARB (will be remapped) */ "iip\0" "glUniform3iv\0" "glUniform3ivARB\0" "\0" - /* _mesa_function_pool[16862]: Lightfv (offset 160) */ + /* _mesa_function_pool[16848]: Lightfv (offset 160) */ "iip\0" "glLightfv\0" "\0" - /* _mesa_function_pool[16877]: PrimitiveRestartIndexNV (will be remapped) */ + /* _mesa_function_pool[16863]: PrimitiveRestartIndexNV (will be remapped) */ "i\0" "glPrimitiveRestartIndexNV\0" "glPrimitiveRestartIndex\0" "\0" - /* _mesa_function_pool[16930]: ClearDepth (offset 208) */ + /* _mesa_function_pool[16916]: ClearDepth (offset 208) */ "d\0" "glClearDepth\0" "\0" - /* _mesa_function_pool[16946]: GetFenceivNV (will be remapped) */ + /* _mesa_function_pool[16932]: GetFenceivNV (will be remapped) */ "iip\0" "glGetFenceivNV\0" "\0" - /* _mesa_function_pool[16966]: WindowPos4dvMESA (will be remapped) */ + /* _mesa_function_pool[16952]: WindowPos4dvMESA (will be remapped) */ "p\0" "glWindowPos4dvMESA\0" "\0" - /* _mesa_function_pool[16988]: ColorSubTable (offset 346) */ + /* _mesa_function_pool[16974]: ColorSubTable (offset 346) */ "iiiiip\0" "glColorSubTable\0" "glColorSubTableEXT\0" "\0" - /* _mesa_function_pool[17031]: Color4fv (offset 30) */ + /* _mesa_function_pool[17017]: Color4fv (offset 30) */ "p\0" "glColor4fv\0" "\0" - /* _mesa_function_pool[17045]: MultiTexCoord4ivARB (offset 405) */ + /* _mesa_function_pool[17031]: MultiTexCoord4ivARB (offset 405) */ "ip\0" "glMultiTexCoord4iv\0" "glMultiTexCoord4ivARB\0" "\0" - /* _mesa_function_pool[17090]: ProgramLocalParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[17076]: ProgramLocalParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramLocalParameters4fvEXT\0" "\0" - /* _mesa_function_pool[17127]: ColorPointer (offset 308) */ + /* _mesa_function_pool[17113]: ColorPointer (offset 308) */ "iiip\0" "glColorPointer\0" "\0" - /* _mesa_function_pool[17148]: Rects (offset 92) */ + /* _mesa_function_pool[17134]: Rects (offset 92) */ "iiii\0" "glRects\0" "\0" - /* _mesa_function_pool[17162]: GetMapAttribParameterfvNV (dynamic) */ + /* _mesa_function_pool[17148]: GetMapAttribParameterfvNV (dynamic) */ "iiip\0" "glGetMapAttribParameterfvNV\0" "\0" - /* _mesa_function_pool[17196]: CreateShaderProgramEXT (will be remapped) */ + /* _mesa_function_pool[17182]: CreateShaderProgramEXT (will be remapped) */ "ip\0" "glCreateShaderProgramEXT\0" "\0" - /* _mesa_function_pool[17225]: ActiveProgramEXT (will be remapped) */ + /* _mesa_function_pool[17211]: ActiveProgramEXT (will be remapped) */ "i\0" "glActiveProgramEXT\0" "\0" - /* _mesa_function_pool[17247]: Lightiv (offset 162) */ + /* _mesa_function_pool[17233]: Lightiv (offset 162) */ "iip\0" "glLightiv\0" "\0" - /* _mesa_function_pool[17262]: VertexAttrib4sARB (will be remapped) */ + /* _mesa_function_pool[17248]: VertexAttrib4sARB (will be remapped) */ "iiiii\0" "glVertexAttrib4s\0" "glVertexAttrib4sARB\0" "\0" - /* _mesa_function_pool[17306]: GetQueryObjectuivARB (will be remapped) */ + /* _mesa_function_pool[17292]: GetQueryObjectuivARB (will be remapped) */ "iip\0" "glGetQueryObjectuiv\0" "glGetQueryObjectuivARB\0" "\0" - /* _mesa_function_pool[17354]: GetTexParameteriv (offset 283) */ + /* _mesa_function_pool[17340]: GetTexParameteriv (offset 283) */ "iip\0" "glGetTexParameteriv\0" "\0" - /* _mesa_function_pool[17379]: MapParameterivNV (dynamic) */ + /* _mesa_function_pool[17365]: MapParameterivNV (dynamic) */ "iip\0" "glMapParameterivNV\0" "\0" - /* _mesa_function_pool[17403]: GenRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[17389]: GenRenderbuffersEXT (will be remapped) */ "ip\0" "glGenRenderbuffers\0" "glGenRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[17448]: ClearBufferfv (will be remapped) */ + /* _mesa_function_pool[17434]: ClearBufferfv (will be remapped) */ "iip\0" "glClearBufferfv\0" "\0" - /* _mesa_function_pool[17469]: VertexAttrib2dvARB (will be remapped) */ + /* _mesa_function_pool[17455]: VertexAttrib2dvARB (will be remapped) */ "ip\0" "glVertexAttrib2dv\0" "glVertexAttrib2dvARB\0" "\0" - /* _mesa_function_pool[17512]: EdgeFlagPointerEXT (will be remapped) */ + /* _mesa_function_pool[17498]: EdgeFlagPointerEXT (will be remapped) */ "iip\0" "glEdgeFlagPointerEXT\0" "\0" - /* _mesa_function_pool[17538]: VertexAttribs2svNV (will be remapped) */ + /* _mesa_function_pool[17524]: VertexAttribs2svNV (will be remapped) */ "iip\0" "glVertexAttribs2svNV\0" "\0" - /* _mesa_function_pool[17564]: WeightbvARB (dynamic) */ + /* _mesa_function_pool[17550]: WeightbvARB (dynamic) */ "ip\0" "glWeightbvARB\0" "\0" - /* _mesa_function_pool[17582]: VertexAttrib2fvARB (will be remapped) */ + /* _mesa_function_pool[17568]: VertexAttrib2fvARB (will be remapped) */ "ip\0" "glVertexAttrib2fv\0" "glVertexAttrib2fvARB\0" "\0" - /* _mesa_function_pool[17625]: GetBufferParameterivARB (will be remapped) */ + /* _mesa_function_pool[17611]: GetBufferParameterivARB (will be remapped) */ "iip\0" "glGetBufferParameteriv\0" "glGetBufferParameterivARB\0" "\0" - /* _mesa_function_pool[17679]: Rectdv (offset 87) */ + /* _mesa_function_pool[17665]: Rectdv (offset 87) */ "pp\0" "glRectdv\0" "\0" - /* _mesa_function_pool[17692]: ListParameteriSGIX (dynamic) */ + /* _mesa_function_pool[17678]: ListParameteriSGIX (dynamic) */ "iii\0" "glListParameteriSGIX\0" "\0" - /* _mesa_function_pool[17718]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[17704]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffff\0" "glReplacementCodeuiColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[17777]: InstrumentsBufferSGIX (dynamic) */ + /* _mesa_function_pool[17763]: InstrumentsBufferSGIX (dynamic) */ "ip\0" "glInstrumentsBufferSGIX\0" "\0" - /* _mesa_function_pool[17805]: VertexAttrib4NivARB (will be remapped) */ + /* _mesa_function_pool[17791]: VertexAttrib4NivARB (will be remapped) */ "ip\0" "glVertexAttrib4Niv\0" "glVertexAttrib4NivARB\0" "\0" - /* _mesa_function_pool[17850]: DrawArraysInstancedARB (will be remapped) */ + /* _mesa_function_pool[17836]: DrawArraysInstancedARB (will be remapped) */ "iiii\0" "glDrawArraysInstancedARB\0" "glDrawArraysInstancedEXT\0" "glDrawArraysInstanced\0" "\0" - /* _mesa_function_pool[17928]: GetAttachedShaders (will be remapped) */ + /* _mesa_function_pool[17914]: GetAttachedShaders (will be remapped) */ "iipp\0" "glGetAttachedShaders\0" "\0" - /* _mesa_function_pool[17955]: GenVertexArraysAPPLE (will be remapped) */ + /* _mesa_function_pool[17941]: GenVertexArraysAPPLE (will be remapped) */ "ip\0" "glGenVertexArraysAPPLE\0" "\0" - /* _mesa_function_pool[17982]: ClearBufferfi (will be remapped) */ + /* _mesa_function_pool[17968]: ClearBufferfi (will be remapped) */ "iifi\0" "glClearBufferfi\0" "\0" - /* _mesa_function_pool[18004]: Materialiv (offset 172) */ + /* _mesa_function_pool[17990]: Materialiv (offset 172) */ "iip\0" "glMaterialiv\0" "\0" - /* _mesa_function_pool[18022]: PushClientAttrib (offset 335) */ + /* _mesa_function_pool[18008]: PushClientAttrib (offset 335) */ "i\0" "glPushClientAttrib\0" "\0" - /* _mesa_function_pool[18044]: ProgramEnvParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[18030]: ProgramEnvParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramEnvParameters4fvEXT\0" "\0" - /* _mesa_function_pool[18079]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[18065]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[18125]: WindowPos2iMESA (will be remapped) */ + /* _mesa_function_pool[18111]: WindowPos2iMESA (will be remapped) */ "ii\0" "glWindowPos2i\0" "glWindowPos2iARB\0" "glWindowPos2iMESA\0" "\0" - /* _mesa_function_pool[18178]: SecondaryColor3fvEXT (will be remapped) */ + /* _mesa_function_pool[18164]: SecondaryColor3fvEXT (will be remapped) */ "p\0" "glSecondaryColor3fv\0" "glSecondaryColor3fvEXT\0" "\0" - /* _mesa_function_pool[18224]: PolygonMode (offset 174) */ + /* _mesa_function_pool[18210]: PolygonMode (offset 174) */ "ii\0" "glPolygonMode\0" "\0" - /* _mesa_function_pool[18242]: CompressedTexSubImage1DARB (will be remapped) */ + /* _mesa_function_pool[18228]: CompressedTexSubImage1DARB (will be remapped) */ "iiiiiip\0" "glCompressedTexSubImage1D\0" "glCompressedTexSubImage1DARB\0" "\0" - /* _mesa_function_pool[18306]: VertexAttribI1iEXT (will be remapped) */ + /* _mesa_function_pool[18292]: VertexAttribI1iEXT (will be remapped) */ "ii\0" "glVertexAttribI1iEXT\0" "glVertexAttribI1i\0" "\0" - /* _mesa_function_pool[18349]: GetVertexAttribivNV (will be remapped) */ + /* _mesa_function_pool[18335]: GetVertexAttribivNV (will be remapped) */ "iip\0" "glGetVertexAttribivNV\0" "\0" - /* _mesa_function_pool[18376]: GetProgramStringARB (will be remapped) */ + /* _mesa_function_pool[18362]: GetProgramStringARB (will be remapped) */ "iip\0" "glGetProgramStringARB\0" "\0" - /* _mesa_function_pool[18403]: VertexAttribIPointerEXT (will be remapped) */ + /* _mesa_function_pool[18389]: VertexAttribIPointerEXT (will be remapped) */ "iiiip\0" "glVertexAttribIPointerEXT\0" "glVertexAttribIPointer\0" "\0" - /* _mesa_function_pool[18459]: TexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[18445]: TexBumpParameterfvATI (will be remapped) */ "ip\0" "glTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[18487]: CompileShaderARB (will be remapped) */ + /* _mesa_function_pool[18473]: CompileShaderARB (will be remapped) */ "i\0" "glCompileShader\0" "glCompileShaderARB\0" "\0" - /* _mesa_function_pool[18525]: DeleteShader (will be remapped) */ + /* _mesa_function_pool[18511]: DeleteShader (will be remapped) */ "i\0" "glDeleteShader\0" "\0" - /* _mesa_function_pool[18543]: DisableClientState (offset 309) */ + /* _mesa_function_pool[18529]: DisableClientState (offset 309) */ "i\0" "glDisableClientState\0" "\0" - /* _mesa_function_pool[18567]: TexGeni (offset 192) */ + /* _mesa_function_pool[18553]: TexGeni (offset 192) */ "iii\0" "glTexGeni\0" "\0" - /* _mesa_function_pool[18582]: TexGenf (offset 190) */ + /* _mesa_function_pool[18568]: TexGenf (offset 190) */ "iif\0" "glTexGenf\0" "\0" - /* _mesa_function_pool[18597]: Uniform3fARB (will be remapped) */ + /* _mesa_function_pool[18583]: Uniform3fARB (will be remapped) */ "ifff\0" "glUniform3f\0" "glUniform3fARB\0" "\0" - /* _mesa_function_pool[18630]: TexGend (offset 188) */ + /* _mesa_function_pool[18616]: TexGend (offset 188) */ "iid\0" "glTexGend\0" "\0" - /* _mesa_function_pool[18645]: ListParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[18631]: ListParameterfvSGIX (dynamic) */ "iip\0" "glListParameterfvSGIX\0" "\0" - /* _mesa_function_pool[18672]: GetPolygonStipple (offset 274) */ + /* _mesa_function_pool[18658]: GetPolygonStipple (offset 274) */ "p\0" "glGetPolygonStipple\0" "\0" - /* _mesa_function_pool[18695]: Tangent3dvEXT (dynamic) */ + /* _mesa_function_pool[18681]: Tangent3dvEXT (dynamic) */ "p\0" "glTangent3dvEXT\0" "\0" - /* _mesa_function_pool[18714]: BindBufferOffsetEXT (will be remapped) */ + /* _mesa_function_pool[18700]: BindBufferOffsetEXT (will be remapped) */ "iiii\0" "glBindBufferOffsetEXT\0" "\0" - /* _mesa_function_pool[18742]: WindowPos3sMESA (will be remapped) */ + /* _mesa_function_pool[18728]: WindowPos3sMESA (will be remapped) */ "iii\0" "glWindowPos3s\0" "glWindowPos3sARB\0" "glWindowPos3sMESA\0" "\0" - /* _mesa_function_pool[18796]: VertexAttrib2svNV (will be remapped) */ + /* _mesa_function_pool[18782]: VertexAttrib2svNV (will be remapped) */ "ip\0" "glVertexAttrib2svNV\0" "\0" - /* _mesa_function_pool[18820]: DisableIndexedEXT (will be remapped) */ + /* _mesa_function_pool[18806]: DisableIndexedEXT (will be remapped) */ "ii\0" "glDisableIndexedEXT\0" "glDisablei\0" "\0" - /* _mesa_function_pool[18855]: BindBufferBaseEXT (will be remapped) */ + /* _mesa_function_pool[18841]: BindBufferBaseEXT (will be remapped) */ "iii\0" "glBindBufferBaseEXT\0" "glBindBufferBase\0" "\0" - /* _mesa_function_pool[18897]: TexCoord2fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[18883]: TexCoord2fVertex3fvSUN (dynamic) */ "pp\0" "glTexCoord2fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[18926]: WindowPos4sMESA (will be remapped) */ + /* _mesa_function_pool[18912]: WindowPos4sMESA (will be remapped) */ "iiii\0" "glWindowPos4sMESA\0" "\0" - /* _mesa_function_pool[18950]: VertexAttrib4NuivARB (will be remapped) */ + /* _mesa_function_pool[18936]: VertexAttrib4NuivARB (will be remapped) */ "ip\0" "glVertexAttrib4Nuiv\0" "glVertexAttrib4NuivARB\0" "\0" - /* _mesa_function_pool[18997]: ClientActiveTextureARB (offset 375) */ + /* _mesa_function_pool[18983]: ClientActiveTextureARB (offset 375) */ "i\0" "glClientActiveTexture\0" "glClientActiveTextureARB\0" "\0" - /* _mesa_function_pool[19047]: PixelTexGenSGIX (will be remapped) */ + /* _mesa_function_pool[19033]: PixelTexGenSGIX (will be remapped) */ "i\0" "glPixelTexGenSGIX\0" "\0" - /* _mesa_function_pool[19068]: ReplacementCodeusvSUN (dynamic) */ + /* _mesa_function_pool[19054]: ReplacementCodeusvSUN (dynamic) */ "p\0" "glReplacementCodeusvSUN\0" "\0" - /* _mesa_function_pool[19095]: Uniform4fARB (will be remapped) */ + /* _mesa_function_pool[19081]: Uniform4fARB (will be remapped) */ "iffff\0" "glUniform4f\0" "glUniform4fARB\0" "\0" - /* _mesa_function_pool[19129]: Color4sv (offset 34) */ + /* _mesa_function_pool[19115]: Color4sv (offset 34) */ "p\0" "glColor4sv\0" "\0" - /* _mesa_function_pool[19143]: FlushMappedBufferRange (will be remapped) */ + /* _mesa_function_pool[19129]: FlushMappedBufferRange (will be remapped) */ "iii\0" "glFlushMappedBufferRange\0" "\0" - /* _mesa_function_pool[19173]: IsProgramNV (will be remapped) */ + /* _mesa_function_pool[19159]: IsProgramNV (will be remapped) */ "i\0" "glIsProgramARB\0" "glIsProgramNV\0" "\0" - /* _mesa_function_pool[19205]: FlushMappedBufferRangeAPPLE (will be remapped) */ + /* _mesa_function_pool[19191]: FlushMappedBufferRangeAPPLE (will be remapped) */ "iii\0" "glFlushMappedBufferRangeAPPLE\0" "\0" - /* _mesa_function_pool[19240]: PixelZoom (offset 246) */ + /* _mesa_function_pool[19226]: PixelZoom (offset 246) */ "ff\0" "glPixelZoom\0" "\0" - /* _mesa_function_pool[19256]: ReplacementCodePointerSUN (dynamic) */ + /* _mesa_function_pool[19242]: ReplacementCodePointerSUN (dynamic) */ "iip\0" "glReplacementCodePointerSUN\0" "\0" - /* _mesa_function_pool[19289]: ProgramEnvParameter4dARB (will be remapped) */ + /* _mesa_function_pool[19275]: ProgramEnvParameter4dARB (will be remapped) */ "iidddd\0" "glProgramEnvParameter4dARB\0" "glProgramParameter4dNV\0" "\0" - /* _mesa_function_pool[19347]: ColorTableParameterfv (offset 340) */ + /* _mesa_function_pool[19333]: ColorTableParameterfv (offset 340) */ "iip\0" "glColorTableParameterfv\0" "glColorTableParameterfvSGI\0" "\0" - /* _mesa_function_pool[19403]: FragmentLightModelfSGIX (dynamic) */ + /* _mesa_function_pool[19389]: FragmentLightModelfSGIX (dynamic) */ "if\0" "glFragmentLightModelfSGIX\0" "\0" - /* _mesa_function_pool[19433]: Binormal3bvEXT (dynamic) */ + /* _mesa_function_pool[19419]: Binormal3bvEXT (dynamic) */ "p\0" "glBinormal3bvEXT\0" "\0" - /* _mesa_function_pool[19453]: PixelMapuiv (offset 252) */ + /* _mesa_function_pool[19439]: PixelMapuiv (offset 252) */ "iip\0" "glPixelMapuiv\0" "\0" - /* _mesa_function_pool[19472]: Color3dv (offset 12) */ + /* _mesa_function_pool[19458]: Color3dv (offset 12) */ "p\0" "glColor3dv\0" "\0" - /* _mesa_function_pool[19486]: IsTexture (offset 330) */ + /* _mesa_function_pool[19472]: IsTexture (offset 330) */ "i\0" "glIsTexture\0" "glIsTextureEXT\0" "\0" - /* _mesa_function_pool[19516]: VertexWeightfvEXT (dynamic) */ + /* _mesa_function_pool[19502]: VertexWeightfvEXT (dynamic) */ "p\0" "glVertexWeightfvEXT\0" "\0" - /* _mesa_function_pool[19539]: VertexAttrib1dARB (will be remapped) */ + /* _mesa_function_pool[19525]: VertexAttrib1dARB (will be remapped) */ "id\0" "glVertexAttrib1d\0" "glVertexAttrib1dARB\0" "\0" - /* _mesa_function_pool[19580]: ImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[19566]: ImageTransformParameterivHP (dynamic) */ "iip\0" "glImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[19615]: TexCoord4i (offset 122) */ + /* _mesa_function_pool[19601]: TexCoord4i (offset 122) */ "iiii\0" "glTexCoord4i\0" "\0" - /* _mesa_function_pool[19634]: DeleteQueriesARB (will be remapped) */ + /* _mesa_function_pool[19620]: DeleteQueriesARB (will be remapped) */ "ip\0" "glDeleteQueries\0" "glDeleteQueriesARB\0" "\0" - /* _mesa_function_pool[19673]: Color4ubVertex2fSUN (dynamic) */ + /* _mesa_function_pool[19659]: Color4ubVertex2fSUN (dynamic) */ "iiiiff\0" "glColor4ubVertex2fSUN\0" "\0" - /* _mesa_function_pool[19703]: FragmentColorMaterialSGIX (dynamic) */ + /* _mesa_function_pool[19689]: FragmentColorMaterialSGIX (dynamic) */ "ii\0" "glFragmentColorMaterialSGIX\0" "\0" - /* _mesa_function_pool[19735]: CurrentPaletteMatrixARB (dynamic) */ + /* _mesa_function_pool[19721]: CurrentPaletteMatrixARB (dynamic) */ "i\0" "glCurrentPaletteMatrixARB\0" "\0" - /* _mesa_function_pool[19764]: GetMapdv (offset 266) */ + /* _mesa_function_pool[19750]: GetMapdv (offset 266) */ "iip\0" "glGetMapdv\0" "\0" - /* _mesa_function_pool[19780]: ObjectPurgeableAPPLE (will be remapped) */ + /* _mesa_function_pool[19766]: ObjectPurgeableAPPLE (will be remapped) */ "iii\0" "glObjectPurgeableAPPLE\0" "\0" - /* _mesa_function_pool[19808]: GetStringi (will be remapped) */ + /* _mesa_function_pool[19794]: GetStringi (will be remapped) */ "ii\0" "glGetStringi\0" "\0" - /* _mesa_function_pool[19825]: SamplePatternSGIS (will be remapped) */ + /* _mesa_function_pool[19811]: SamplePatternSGIS (will be remapped) */ "i\0" "glSamplePatternSGIS\0" "glSamplePatternEXT\0" "\0" - /* _mesa_function_pool[19867]: PixelStoref (offset 249) */ + /* _mesa_function_pool[19853]: PixelStoref (offset 249) */ "if\0" "glPixelStoref\0" "\0" - /* _mesa_function_pool[19885]: IsQueryARB (will be remapped) */ + /* _mesa_function_pool[19871]: IsQueryARB (will be remapped) */ "i\0" "glIsQuery\0" "glIsQueryARB\0" "\0" - /* _mesa_function_pool[19911]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[19897]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */ "iiiiifff\0" "glReplacementCodeuiColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[19960]: PixelStorei (offset 250) */ + /* _mesa_function_pool[19946]: PixelStorei (offset 250) */ "ii\0" "glPixelStorei\0" "\0" - /* _mesa_function_pool[19978]: VertexAttrib4usvARB (will be remapped) */ + /* _mesa_function_pool[19964]: VertexAttrib4usvARB (will be remapped) */ "ip\0" "glVertexAttrib4usv\0" "glVertexAttrib4usvARB\0" "\0" - /* _mesa_function_pool[20023]: LinkProgramARB (will be remapped) */ + /* _mesa_function_pool[20009]: LinkProgramARB (will be remapped) */ "i\0" "glLinkProgram\0" "glLinkProgramARB\0" "\0" - /* _mesa_function_pool[20057]: VertexAttrib2fNV (will be remapped) */ + /* _mesa_function_pool[20043]: VertexAttrib2fNV (will be remapped) */ "iff\0" "glVertexAttrib2fNV\0" "\0" - /* _mesa_function_pool[20081]: ShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[20067]: ShaderSourceARB (will be remapped) */ "iipp\0" "glShaderSource\0" "glShaderSourceARB\0" "\0" - /* _mesa_function_pool[20120]: FragmentMaterialiSGIX (dynamic) */ + /* _mesa_function_pool[20106]: FragmentMaterialiSGIX (dynamic) */ "iii\0" "glFragmentMaterialiSGIX\0" "\0" - /* _mesa_function_pool[20149]: EvalCoord2dv (offset 233) */ + /* _mesa_function_pool[20135]: EvalCoord2dv (offset 233) */ "p\0" "glEvalCoord2dv\0" "\0" - /* _mesa_function_pool[20167]: VertexAttrib3svARB (will be remapped) */ + /* _mesa_function_pool[20153]: VertexAttrib3svARB (will be remapped) */ "ip\0" "glVertexAttrib3sv\0" "glVertexAttrib3svARB\0" "\0" - /* _mesa_function_pool[20210]: ColorMaterial (offset 151) */ + /* _mesa_function_pool[20196]: ColorMaterial (offset 151) */ "ii\0" "glColorMaterial\0" "\0" - /* _mesa_function_pool[20230]: CompressedTexSubImage3DARB (will be remapped) */ + /* _mesa_function_pool[20216]: CompressedTexSubImage3DARB (will be remapped) */ "iiiiiiiiiip\0" "glCompressedTexSubImage3D\0" "glCompressedTexSubImage3DARB\0" "\0" - /* _mesa_function_pool[20298]: WindowPos2ivMESA (will be remapped) */ + /* _mesa_function_pool[20284]: WindowPos2ivMESA (will be remapped) */ "p\0" "glWindowPos2iv\0" "glWindowPos2ivARB\0" "glWindowPos2ivMESA\0" "\0" - /* _mesa_function_pool[20353]: IsFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[20339]: IsFramebufferEXT (will be remapped) */ "i\0" "glIsFramebuffer\0" "glIsFramebufferEXT\0" "\0" - /* _mesa_function_pool[20391]: Uniform4ivARB (will be remapped) */ + /* _mesa_function_pool[20377]: Uniform4ivARB (will be remapped) */ "iip\0" "glUniform4iv\0" "glUniform4ivARB\0" "\0" - /* _mesa_function_pool[20425]: GetVertexAttribdvARB (will be remapped) */ + /* _mesa_function_pool[20411]: GetVertexAttribdvARB (will be remapped) */ "iip\0" "glGetVertexAttribdv\0" "glGetVertexAttribdvARB\0" "\0" - /* _mesa_function_pool[20473]: TexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[20459]: TexBumpParameterivATI (will be remapped) */ "ip\0" "glTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[20501]: GetSeparableFilter (offset 359) */ + /* _mesa_function_pool[20487]: GetSeparableFilter (offset 359) */ "iiippp\0" "glGetSeparableFilter\0" "glGetSeparableFilterEXT\0" "\0" - /* _mesa_function_pool[20554]: Binormal3dEXT (dynamic) */ + /* _mesa_function_pool[20540]: Binormal3dEXT (dynamic) */ "ddd\0" "glBinormal3dEXT\0" "\0" - /* _mesa_function_pool[20575]: SpriteParameteriSGIX (dynamic) */ + /* _mesa_function_pool[20561]: SpriteParameteriSGIX (dynamic) */ "ii\0" "glSpriteParameteriSGIX\0" "\0" - /* _mesa_function_pool[20602]: RequestResidentProgramsNV (will be remapped) */ + /* _mesa_function_pool[20588]: RequestResidentProgramsNV (will be remapped) */ "ip\0" "glRequestResidentProgramsNV\0" "\0" - /* _mesa_function_pool[20634]: TagSampleBufferSGIX (dynamic) */ + /* _mesa_function_pool[20620]: TagSampleBufferSGIX (dynamic) */ "\0" "glTagSampleBufferSGIX\0" "\0" - /* _mesa_function_pool[20658]: TransformFeedbackVaryingsEXT (will be remapped) */ + /* _mesa_function_pool[20644]: TransformFeedbackVaryingsEXT (will be remapped) */ "iipi\0" "glTransformFeedbackVaryingsEXT\0" "glTransformFeedbackVaryings\0" "\0" - /* _mesa_function_pool[20723]: FeedbackBuffer (offset 194) */ + /* _mesa_function_pool[20709]: FeedbackBuffer (offset 194) */ "iip\0" "glFeedbackBuffer\0" "\0" - /* _mesa_function_pool[20745]: RasterPos2iv (offset 67) */ + /* _mesa_function_pool[20731]: RasterPos2iv (offset 67) */ "p\0" "glRasterPos2iv\0" "\0" - /* _mesa_function_pool[20763]: TexImage1D (offset 182) */ + /* _mesa_function_pool[20749]: TexImage1D (offset 182) */ "iiiiiiip\0" "glTexImage1D\0" "\0" - /* _mesa_function_pool[20786]: ListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[20772]: ListParameterivSGIX (dynamic) */ "iip\0" "glListParameterivSGIX\0" "\0" - /* _mesa_function_pool[20813]: MultiDrawElementsEXT (will be remapped) */ + /* _mesa_function_pool[20799]: MultiDrawElementsEXT (will be remapped) */ "ipipi\0" "glMultiDrawElements\0" "glMultiDrawElementsEXT\0" "\0" - /* _mesa_function_pool[20863]: Color3s (offset 17) */ + /* _mesa_function_pool[20849]: Color3s (offset 17) */ "iii\0" "glColor3s\0" "\0" - /* _mesa_function_pool[20878]: Uniform1ivARB (will be remapped) */ + /* _mesa_function_pool[20864]: Uniform1ivARB (will be remapped) */ "iip\0" "glUniform1iv\0" "glUniform1ivARB\0" "\0" - /* _mesa_function_pool[20912]: WindowPos2sMESA (will be remapped) */ + /* _mesa_function_pool[20898]: WindowPos2sMESA (will be remapped) */ "ii\0" "glWindowPos2s\0" "glWindowPos2sARB\0" "glWindowPos2sMESA\0" "\0" - /* _mesa_function_pool[20965]: WeightusvARB (dynamic) */ + /* _mesa_function_pool[20951]: WeightusvARB (dynamic) */ "ip\0" "glWeightusvARB\0" "\0" - /* _mesa_function_pool[20984]: TexCoordPointer (offset 320) */ + /* _mesa_function_pool[20970]: TexCoordPointer (offset 320) */ "iiip\0" "glTexCoordPointer\0" "\0" - /* _mesa_function_pool[21008]: FogCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[20994]: FogCoordPointerEXT (will be remapped) */ "iip\0" "glFogCoordPointer\0" "glFogCoordPointerEXT\0" "\0" - /* _mesa_function_pool[21052]: IndexMaterialEXT (dynamic) */ + /* _mesa_function_pool[21038]: IndexMaterialEXT (dynamic) */ "ii\0" "glIndexMaterialEXT\0" "\0" - /* _mesa_function_pool[21075]: Color3i (offset 15) */ + /* _mesa_function_pool[21061]: Color3i (offset 15) */ "iii\0" "glColor3i\0" "\0" - /* _mesa_function_pool[21090]: FrontFace (offset 157) */ + /* _mesa_function_pool[21076]: FrontFace (offset 157) */ "i\0" "glFrontFace\0" "\0" - /* _mesa_function_pool[21105]: EvalCoord2d (offset 232) */ + /* _mesa_function_pool[21091]: EvalCoord2d (offset 232) */ "dd\0" "glEvalCoord2d\0" "\0" - /* _mesa_function_pool[21123]: SecondaryColor3ubvEXT (will be remapped) */ + /* _mesa_function_pool[21109]: SecondaryColor3ubvEXT (will be remapped) */ "p\0" "glSecondaryColor3ubv\0" "glSecondaryColor3ubvEXT\0" "\0" - /* _mesa_function_pool[21171]: EvalCoord2f (offset 234) */ + /* _mesa_function_pool[21157]: EvalCoord2f (offset 234) */ "ff\0" "glEvalCoord2f\0" "\0" - /* _mesa_function_pool[21189]: VertexAttrib4dvARB (will be remapped) */ + /* _mesa_function_pool[21175]: VertexAttrib4dvARB (will be remapped) */ "ip\0" "glVertexAttrib4dv\0" "glVertexAttrib4dvARB\0" "\0" - /* _mesa_function_pool[21232]: BindAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[21218]: BindAttribLocationARB (will be remapped) */ "iip\0" "glBindAttribLocation\0" "glBindAttribLocationARB\0" "\0" - /* _mesa_function_pool[21282]: Color3b (offset 9) */ + /* _mesa_function_pool[21268]: Color3b (offset 9) */ "iii\0" "glColor3b\0" "\0" - /* _mesa_function_pool[21297]: MultiTexCoord2dARB (offset 384) */ + /* _mesa_function_pool[21283]: MultiTexCoord2dARB (offset 384) */ "idd\0" "glMultiTexCoord2d\0" "glMultiTexCoord2dARB\0" "\0" - /* _mesa_function_pool[21341]: ExecuteProgramNV (will be remapped) */ + /* _mesa_function_pool[21327]: ExecuteProgramNV (will be remapped) */ "iip\0" "glExecuteProgramNV\0" "\0" - /* _mesa_function_pool[21365]: Color3f (offset 13) */ + /* _mesa_function_pool[21351]: Color3f (offset 13) */ "fff\0" "glColor3f\0" "\0" - /* _mesa_function_pool[21380]: LightEnviSGIX (dynamic) */ + /* _mesa_function_pool[21366]: LightEnviSGIX (dynamic) */ "ii\0" "glLightEnviSGIX\0" "\0" - /* _mesa_function_pool[21400]: Color3d (offset 11) */ + /* _mesa_function_pool[21386]: Color3d (offset 11) */ "ddd\0" "glColor3d\0" "\0" - /* _mesa_function_pool[21415]: Normal3dv (offset 55) */ + /* _mesa_function_pool[21401]: Normal3dv (offset 55) */ "p\0" "glNormal3dv\0" "\0" - /* _mesa_function_pool[21430]: Lightf (offset 159) */ + /* _mesa_function_pool[21416]: Lightf (offset 159) */ "iif\0" "glLightf\0" "\0" - /* _mesa_function_pool[21444]: ReplacementCodeuiSUN (dynamic) */ + /* _mesa_function_pool[21430]: ReplacementCodeuiSUN (dynamic) */ "i\0" "glReplacementCodeuiSUN\0" "\0" - /* _mesa_function_pool[21470]: MatrixMode (offset 293) */ + /* _mesa_function_pool[21456]: MatrixMode (offset 293) */ "i\0" "glMatrixMode\0" "\0" - /* _mesa_function_pool[21486]: GetPixelMapusv (offset 273) */ + /* _mesa_function_pool[21472]: GetPixelMapusv (offset 273) */ "ip\0" "glGetPixelMapusv\0" "\0" - /* _mesa_function_pool[21507]: Lighti (offset 161) */ + /* _mesa_function_pool[21493]: Lighti (offset 161) */ "iii\0" "glLighti\0" "\0" - /* _mesa_function_pool[21521]: VertexAttribPointerNV (will be remapped) */ + /* _mesa_function_pool[21507]: VertexAttribPointerNV (will be remapped) */ "iiiip\0" "glVertexAttribPointerNV\0" "\0" - /* _mesa_function_pool[21552]: GetBooleanIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[21538]: ClearDepthf (will be remapped) */ + "f\0" + "glClearDepthf\0" + "\0" + /* _mesa_function_pool[21555]: GetBooleanIndexedvEXT (will be remapped) */ "iip\0" "glGetBooleanIndexedvEXT\0" "glGetBooleani_v\0" "\0" - /* _mesa_function_pool[21597]: GetFramebufferAttachmentParameterivEXT (will be remapped) */ + /* _mesa_function_pool[21600]: GetFramebufferAttachmentParameterivEXT (will be remapped) */ "iiip\0" "glGetFramebufferAttachmentParameteriv\0" "glGetFramebufferAttachmentParameterivEXT\0" "\0" - /* _mesa_function_pool[21682]: PixelTransformParameterfEXT (dynamic) */ + /* _mesa_function_pool[21685]: PixelTransformParameterfEXT (dynamic) */ "iif\0" "glPixelTransformParameterfEXT\0" "\0" - /* _mesa_function_pool[21717]: MultiTexCoord4dvARB (offset 401) */ + /* _mesa_function_pool[21720]: MultiTexCoord4dvARB (offset 401) */ "ip\0" "glMultiTexCoord4dv\0" "glMultiTexCoord4dvARB\0" "\0" - /* _mesa_function_pool[21762]: PixelTransformParameteriEXT (dynamic) */ + /* _mesa_function_pool[21765]: PixelTransformParameteriEXT (dynamic) */ "iii\0" "glPixelTransformParameteriEXT\0" "\0" - /* _mesa_function_pool[21797]: GetDoublev (offset 260) */ + /* _mesa_function_pool[21800]: GetDoublev (offset 260) */ "ip\0" "glGetDoublev\0" "\0" - /* _mesa_function_pool[21814]: MultMatrixd (offset 295) */ + /* _mesa_function_pool[21817]: MultMatrixd (offset 295) */ "p\0" "glMultMatrixd\0" "\0" - /* _mesa_function_pool[21831]: MultMatrixf (offset 294) */ + /* _mesa_function_pool[21834]: MultMatrixf (offset 294) */ "p\0" "glMultMatrixf\0" "\0" - /* _mesa_function_pool[21848]: VertexAttribI4bvEXT (will be remapped) */ + /* _mesa_function_pool[21851]: VertexAttribI4bvEXT (will be remapped) */ "ip\0" "glVertexAttribI4bvEXT\0" "glVertexAttribI4bv\0" "\0" - /* _mesa_function_pool[21893]: TexCoord2fColor4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[21896]: TexCoord2fColor4ubVertex3fSUN (dynamic) */ "ffiiiifff\0" "glTexCoord2fColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[21936]: Uniform1iARB (will be remapped) */ + /* _mesa_function_pool[21939]: Uniform1iARB (will be remapped) */ "ii\0" "glUniform1i\0" "glUniform1iARB\0" "\0" - /* _mesa_function_pool[21967]: VertexAttribPointerARB (will be remapped) */ + /* _mesa_function_pool[21970]: VertexAttribPointerARB (will be remapped) */ "iiiiip\0" "glVertexAttribPointer\0" "glVertexAttribPointerARB\0" "\0" - /* _mesa_function_pool[22022]: VertexAttrib3sNV (will be remapped) */ + /* _mesa_function_pool[22025]: VertexAttrib3sNV (will be remapped) */ "iiii\0" "glVertexAttrib3sNV\0" "\0" - /* _mesa_function_pool[22047]: SharpenTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[22050]: SharpenTexFuncSGIS (dynamic) */ "iip\0" "glSharpenTexFuncSGIS\0" "\0" - /* _mesa_function_pool[22073]: MultiTexCoord4fvARB (offset 403) */ + /* _mesa_function_pool[22076]: MultiTexCoord4fvARB (offset 403) */ "ip\0" "glMultiTexCoord4fv\0" "glMultiTexCoord4fvARB\0" "\0" - /* _mesa_function_pool[22118]: Uniform2uiEXT (will be remapped) */ + /* _mesa_function_pool[22121]: Uniform2uiEXT (will be remapped) */ "iii\0" "glUniform2uiEXT\0" "glUniform2ui\0" "\0" - /* _mesa_function_pool[22152]: UniformMatrix2x3fv (will be remapped) */ + /* _mesa_function_pool[22155]: UniformMatrix2x3fv (will be remapped) */ "iiip\0" "glUniformMatrix2x3fv\0" "\0" - /* _mesa_function_pool[22179]: TrackMatrixNV (will be remapped) */ + /* _mesa_function_pool[22182]: TrackMatrixNV (will be remapped) */ "iiii\0" "glTrackMatrixNV\0" "\0" - /* _mesa_function_pool[22201]: CombinerParameteriNV (will be remapped) */ + /* _mesa_function_pool[22204]: CombinerParameteriNV (will be remapped) */ "ii\0" "glCombinerParameteriNV\0" "\0" - /* _mesa_function_pool[22228]: DeleteAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[22231]: DeleteAsyncMarkersSGIX (dynamic) */ "ii\0" "glDeleteAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[22257]: ReplacementCodeusSUN (dynamic) */ + /* _mesa_function_pool[22260]: ReplacementCodeusSUN (dynamic) */ "i\0" "glReplacementCodeusSUN\0" "\0" - /* _mesa_function_pool[22283]: IsAsyncMarkerSGIX (dynamic) */ + /* _mesa_function_pool[22286]: IsAsyncMarkerSGIX (dynamic) */ "i\0" "glIsAsyncMarkerSGIX\0" "\0" - /* _mesa_function_pool[22306]: FrameZoomSGIX (dynamic) */ + /* _mesa_function_pool[22309]: FrameZoomSGIX (dynamic) */ "i\0" "glFrameZoomSGIX\0" "\0" - /* _mesa_function_pool[22325]: Normal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[22328]: Normal3fVertex3fvSUN (dynamic) */ "pp\0" "glNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[22352]: RasterPos4sv (offset 85) */ + /* _mesa_function_pool[22355]: RasterPos4sv (offset 85) */ "p\0" "glRasterPos4sv\0" "\0" - /* _mesa_function_pool[22370]: VertexAttrib4NsvARB (will be remapped) */ + /* _mesa_function_pool[22373]: VertexAttrib4NsvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nsv\0" "glVertexAttrib4NsvARB\0" "\0" - /* _mesa_function_pool[22415]: VertexAttrib3fvARB (will be remapped) */ + /* _mesa_function_pool[22418]: VertexAttrib3fvARB (will be remapped) */ "ip\0" "glVertexAttrib3fv\0" "glVertexAttrib3fvARB\0" "\0" - /* _mesa_function_pool[22458]: ClearColor (offset 206) */ + /* _mesa_function_pool[22461]: ClearColor (offset 206) */ "ffff\0" "glClearColor\0" "\0" - /* _mesa_function_pool[22477]: GetSynciv (will be remapped) */ + /* _mesa_function_pool[22480]: GetSynciv (will be remapped) */ "iiipp\0" "glGetSynciv\0" "\0" - /* _mesa_function_pool[22496]: ClearColorIiEXT (will be remapped) */ + /* _mesa_function_pool[22499]: ClearColorIiEXT (will be remapped) */ "iiii\0" "glClearColorIiEXT\0" "\0" - /* _mesa_function_pool[22520]: DeleteFramebuffersEXT (will be remapped) */ + /* _mesa_function_pool[22523]: DeleteFramebuffersEXT (will be remapped) */ "ip\0" "glDeleteFramebuffers\0" "glDeleteFramebuffersEXT\0" "\0" - /* _mesa_function_pool[22569]: GlobalAlphaFactorsSUN (dynamic) */ + /* _mesa_function_pool[22572]: GlobalAlphaFactorsSUN (dynamic) */ "i\0" "glGlobalAlphaFactorsSUN\0" "\0" - /* _mesa_function_pool[22596]: IsEnabledIndexedEXT (will be remapped) */ + /* _mesa_function_pool[22599]: IsEnabledIndexedEXT (will be remapped) */ "ii\0" "glIsEnabledIndexedEXT\0" "glIsEnabledi\0" "\0" - /* _mesa_function_pool[22635]: TexEnviv (offset 187) */ + /* _mesa_function_pool[22638]: TexEnviv (offset 187) */ "iip\0" "glTexEnviv\0" "\0" - /* _mesa_function_pool[22651]: TexSubImage3D (offset 372) */ + /* _mesa_function_pool[22654]: TexSubImage3D (offset 372) */ "iiiiiiiiiip\0" "glTexSubImage3D\0" "glTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[22699]: Tangent3fEXT (dynamic) */ + /* _mesa_function_pool[22702]: Tangent3fEXT (dynamic) */ "fff\0" "glTangent3fEXT\0" "\0" - /* _mesa_function_pool[22719]: SecondaryColor3uivEXT (will be remapped) */ + /* _mesa_function_pool[22722]: SecondaryColor3uivEXT (will be remapped) */ "p\0" "glSecondaryColor3uiv\0" "glSecondaryColor3uivEXT\0" "\0" - /* _mesa_function_pool[22767]: MatrixIndexubvARB (dynamic) */ + /* _mesa_function_pool[22770]: MatrixIndexubvARB (dynamic) */ "ip\0" "glMatrixIndexubvARB\0" "\0" - /* _mesa_function_pool[22791]: Color4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[22794]: Color4fNormal3fVertex3fSUN (dynamic) */ "ffffffffff\0" "glColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[22832]: PixelTexGenParameterfSGIS (will be remapped) */ + /* _mesa_function_pool[22835]: PixelTexGenParameterfSGIS (will be remapped) */ "if\0" "glPixelTexGenParameterfSGIS\0" "\0" - /* _mesa_function_pool[22864]: CreateShader (will be remapped) */ + /* _mesa_function_pool[22867]: CreateShader (will be remapped) */ "i\0" "glCreateShader\0" "\0" - /* _mesa_function_pool[22882]: GetColorTableParameterfv (offset 344) */ + /* _mesa_function_pool[22885]: GetColorTableParameterfv (offset 344) */ "iip\0" "glGetColorTableParameterfv\0" "glGetColorTableParameterfvSGI\0" "glGetColorTableParameterfvEXT\0" "\0" - /* _mesa_function_pool[22974]: FragmentLightModelfvSGIX (dynamic) */ + /* _mesa_function_pool[22977]: FragmentLightModelfvSGIX (dynamic) */ "ip\0" "glFragmentLightModelfvSGIX\0" "\0" - /* _mesa_function_pool[23005]: Bitmap (offset 8) */ + /* _mesa_function_pool[23008]: Bitmap (offset 8) */ "iiffffp\0" "glBitmap\0" "\0" - /* _mesa_function_pool[23023]: MultiTexCoord3fARB (offset 394) */ + /* _mesa_function_pool[23026]: MultiTexCoord3fARB (offset 394) */ "ifff\0" "glMultiTexCoord3f\0" "glMultiTexCoord3fARB\0" "\0" - /* _mesa_function_pool[23068]: GetTexLevelParameterfv (offset 284) */ + /* _mesa_function_pool[23071]: GetTexLevelParameterfv (offset 284) */ "iiip\0" "glGetTexLevelParameterfv\0" "\0" - /* _mesa_function_pool[23099]: GetPixelTexGenParameterfvSGIS (will be remapped) */ + /* _mesa_function_pool[23102]: GetPixelTexGenParameterfvSGIS (will be remapped) */ "ip\0" "glGetPixelTexGenParameterfvSGIS\0" "\0" - /* _mesa_function_pool[23135]: GenFramebuffersEXT (will be remapped) */ + /* _mesa_function_pool[23138]: GenFramebuffersEXT (will be remapped) */ "ip\0" "glGenFramebuffers\0" "glGenFramebuffersEXT\0" "\0" - /* _mesa_function_pool[23178]: VertexAttribDivisor (will be remapped) */ + /* _mesa_function_pool[23181]: VertexAttribDivisor (will be remapped) */ "ii\0" "glVertexAttribDivisor\0" "\0" - /* _mesa_function_pool[23204]: GetProgramParameterdvNV (will be remapped) */ + /* _mesa_function_pool[23207]: GetProgramParameterdvNV (will be remapped) */ "iiip\0" "glGetProgramParameterdvNV\0" "\0" - /* _mesa_function_pool[23236]: Vertex2sv (offset 133) */ + /* _mesa_function_pool[23239]: Vertex2sv (offset 133) */ "p\0" "glVertex2sv\0" "\0" - /* _mesa_function_pool[23251]: GetIntegerv (offset 263) */ + /* _mesa_function_pool[23254]: GetIntegerv (offset 263) */ "ip\0" "glGetIntegerv\0" "\0" - /* _mesa_function_pool[23269]: IsVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[23272]: IsVertexArrayAPPLE (will be remapped) */ "i\0" "glIsVertexArray\0" "glIsVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[23309]: FragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[23312]: FragmentLightfvSGIX (dynamic) */ "iip\0" "glFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[23336]: DetachShader (will be remapped) */ + /* _mesa_function_pool[23339]: DetachShader (will be remapped) */ "ii\0" "glDetachShader\0" "\0" - /* _mesa_function_pool[23355]: VertexAttrib4NubARB (will be remapped) */ + /* _mesa_function_pool[23358]: VertexAttrib4NubARB (will be remapped) */ "iiiii\0" "glVertexAttrib4Nub\0" "glVertexAttrib4NubARB\0" "\0" - /* _mesa_function_pool[23403]: GetProgramEnvParameterfvARB (will be remapped) */ + /* _mesa_function_pool[23406]: GetProgramEnvParameterfvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterfvARB\0" "\0" - /* _mesa_function_pool[23438]: GetTrackMatrixivNV (will be remapped) */ + /* _mesa_function_pool[23441]: GetTrackMatrixivNV (will be remapped) */ "iiip\0" "glGetTrackMatrixivNV\0" "\0" - /* _mesa_function_pool[23465]: VertexAttrib3svNV (will be remapped) */ + /* _mesa_function_pool[23468]: VertexAttrib3svNV (will be remapped) */ "ip\0" "glVertexAttrib3svNV\0" "\0" - /* _mesa_function_pool[23489]: Uniform4fvARB (will be remapped) */ + /* _mesa_function_pool[23492]: Uniform4fvARB (will be remapped) */ "iip\0" "glUniform4fv\0" "glUniform4fvARB\0" "\0" - /* _mesa_function_pool[23523]: MultTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[23526]: MultTransposeMatrixfARB (will be remapped) */ "p\0" "glMultTransposeMatrixf\0" "glMultTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[23575]: GetTexEnviv (offset 277) */ + /* _mesa_function_pool[23578]: GetTexEnviv (offset 277) */ "iip\0" "glGetTexEnviv\0" "\0" - /* _mesa_function_pool[23594]: ColorFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[23597]: ColorFragmentOp1ATI (will be remapped) */ "iiiiiii\0" "glColorFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[23625]: GetUniformfvARB (will be remapped) */ + /* _mesa_function_pool[23628]: GetUniformfvARB (will be remapped) */ "iip\0" "glGetUniformfv\0" "glGetUniformfvARB\0" "\0" - /* _mesa_function_pool[23663]: EGLImageTargetRenderbufferStorageOES (will be remapped) */ + /* _mesa_function_pool[23666]: EGLImageTargetRenderbufferStorageOES (will be remapped) */ "ip\0" "glEGLImageTargetRenderbufferStorageOES\0" "\0" - /* _mesa_function_pool[23706]: VertexAttribI2ivEXT (will be remapped) */ + /* _mesa_function_pool[23709]: VertexAttribI2ivEXT (will be remapped) */ "ip\0" "glVertexAttribI2ivEXT\0" "glVertexAttribI2iv\0" "\0" - /* _mesa_function_pool[23751]: PopClientAttrib (offset 334) */ + /* _mesa_function_pool[23754]: PopClientAttrib (offset 334) */ "\0" "glPopClientAttrib\0" "\0" - /* _mesa_function_pool[23771]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[23774]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffffff\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[23842]: DetachObjectARB (will be remapped) */ + /* _mesa_function_pool[23845]: DetachObjectARB (will be remapped) */ "ii\0" "glDetachObjectARB\0" "\0" - /* _mesa_function_pool[23864]: VertexBlendARB (dynamic) */ + /* _mesa_function_pool[23867]: VertexBlendARB (dynamic) */ "i\0" "glVertexBlendARB\0" "\0" - /* _mesa_function_pool[23884]: WindowPos3iMESA (will be remapped) */ + /* _mesa_function_pool[23887]: WindowPos3iMESA (will be remapped) */ "iii\0" "glWindowPos3i\0" "glWindowPos3iARB\0" "glWindowPos3iMESA\0" "\0" - /* _mesa_function_pool[23938]: SeparableFilter2D (offset 360) */ + /* _mesa_function_pool[23941]: SeparableFilter2D (offset 360) */ "iiiiiipp\0" "glSeparableFilter2D\0" "glSeparableFilter2DEXT\0" "\0" - /* _mesa_function_pool[23991]: ProgramParameteriARB (will be remapped) */ + /* _mesa_function_pool[23994]: ProgramParameteriARB (will be remapped) */ "iii\0" "glProgramParameteriARB\0" "\0" - /* _mesa_function_pool[24019]: Map1d (offset 220) */ + /* _mesa_function_pool[24022]: Map1d (offset 220) */ "iddiip\0" "glMap1d\0" "\0" - /* _mesa_function_pool[24035]: Map1f (offset 221) */ + /* _mesa_function_pool[24038]: Map1f (offset 221) */ "iffiip\0" "glMap1f\0" "\0" - /* _mesa_function_pool[24051]: CompressedTexImage2DARB (will be remapped) */ + /* _mesa_function_pool[24054]: CompressedTexImage2DARB (will be remapped) */ "iiiiiiip\0" "glCompressedTexImage2D\0" "glCompressedTexImage2DARB\0" "\0" - /* _mesa_function_pool[24110]: ArrayElement (offset 306) */ + /* _mesa_function_pool[24113]: ArrayElement (offset 306) */ "i\0" "glArrayElement\0" "glArrayElementEXT\0" "\0" - /* _mesa_function_pool[24146]: TexImage2D (offset 183) */ + /* _mesa_function_pool[24149]: TexImage2D (offset 183) */ "iiiiiiiip\0" "glTexImage2D\0" "\0" - /* _mesa_function_pool[24170]: DepthBoundsEXT (will be remapped) */ + /* _mesa_function_pool[24173]: DepthBoundsEXT (will be remapped) */ "dd\0" "glDepthBoundsEXT\0" "\0" - /* _mesa_function_pool[24191]: ProgramParameters4fvNV (will be remapped) */ + /* _mesa_function_pool[24194]: ProgramParameters4fvNV (will be remapped) */ "iiip\0" "glProgramParameters4fvNV\0" "\0" - /* _mesa_function_pool[24222]: DeformationMap3fSGIX (dynamic) */ + /* _mesa_function_pool[24225]: DeformationMap3fSGIX (dynamic) */ "iffiiffiiffiip\0" "glDeformationMap3fSGIX\0" "\0" - /* _mesa_function_pool[24261]: GetProgramivNV (will be remapped) */ + /* _mesa_function_pool[24264]: GetProgramivNV (will be remapped) */ "iip\0" "glGetProgramivNV\0" "\0" - /* _mesa_function_pool[24283]: GetFragDataLocationEXT (will be remapped) */ + /* _mesa_function_pool[24286]: GetFragDataLocationEXT (will be remapped) */ "ip\0" "glGetFragDataLocationEXT\0" "glGetFragDataLocation\0" "\0" - /* _mesa_function_pool[24334]: GetMinmaxParameteriv (offset 366) */ + /* _mesa_function_pool[24337]: GetMinmaxParameteriv (offset 366) */ "iip\0" "glGetMinmaxParameteriv\0" "glGetMinmaxParameterivEXT\0" "\0" - /* _mesa_function_pool[24388]: PixelTransferf (offset 247) */ + /* _mesa_function_pool[24391]: PixelTransferf (offset 247) */ "if\0" "glPixelTransferf\0" "\0" - /* _mesa_function_pool[24409]: CopyTexImage1D (offset 323) */ + /* _mesa_function_pool[24412]: CopyTexImage1D (offset 323) */ "iiiiiii\0" "glCopyTexImage1D\0" "glCopyTexImage1DEXT\0" "\0" - /* _mesa_function_pool[24455]: PushMatrix (offset 298) */ + /* _mesa_function_pool[24458]: PushMatrix (offset 298) */ "\0" "glPushMatrix\0" "\0" - /* _mesa_function_pool[24470]: Fogiv (offset 156) */ + /* _mesa_function_pool[24473]: Fogiv (offset 156) */ "ip\0" "glFogiv\0" "\0" - /* _mesa_function_pool[24482]: TexCoord1dv (offset 95) */ + /* _mesa_function_pool[24485]: TexCoord1dv (offset 95) */ "p\0" "glTexCoord1dv\0" "\0" - /* _mesa_function_pool[24499]: AlphaFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[24502]: AlphaFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiii\0" "glAlphaFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[24535]: PixelTransferi (offset 248) */ + /* _mesa_function_pool[24538]: PixelTransferi (offset 248) */ "ii\0" "glPixelTransferi\0" "\0" - /* _mesa_function_pool[24556]: GetVertexAttribdvNV (will be remapped) */ + /* _mesa_function_pool[24559]: GetVertexAttribdvNV (will be remapped) */ "iip\0" "glGetVertexAttribdvNV\0" "\0" - /* _mesa_function_pool[24583]: VertexAttrib3fvNV (will be remapped) */ + /* _mesa_function_pool[24586]: VertexAttrib3fvNV (will be remapped) */ "ip\0" "glVertexAttrib3fvNV\0" "\0" - /* _mesa_function_pool[24607]: Rotatef (offset 300) */ + /* _mesa_function_pool[24610]: Rotatef (offset 300) */ "ffff\0" "glRotatef\0" "\0" - /* _mesa_function_pool[24623]: GetFinalCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[24626]: GetFinalCombinerInputParameterivNV (will be remapped) */ "iip\0" "glGetFinalCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[24665]: Vertex3i (offset 138) */ + /* _mesa_function_pool[24668]: Vertex3i (offset 138) */ "iii\0" "glVertex3i\0" "\0" - /* _mesa_function_pool[24681]: Vertex3f (offset 136) */ + /* _mesa_function_pool[24684]: Vertex3f (offset 136) */ "fff\0" "glVertex3f\0" "\0" - /* _mesa_function_pool[24697]: Clear (offset 203) */ + /* _mesa_function_pool[24700]: Clear (offset 203) */ "i\0" "glClear\0" "\0" - /* _mesa_function_pool[24708]: Vertex3d (offset 134) */ + /* _mesa_function_pool[24711]: Vertex3d (offset 134) */ "ddd\0" "glVertex3d\0" "\0" - /* _mesa_function_pool[24724]: GetMapParameterivNV (dynamic) */ + /* _mesa_function_pool[24727]: GetMapParameterivNV (dynamic) */ "iip\0" "glGetMapParameterivNV\0" "\0" - /* _mesa_function_pool[24751]: Uniform4iARB (will be remapped) */ + /* _mesa_function_pool[24754]: Uniform4iARB (will be remapped) */ "iiiii\0" "glUniform4i\0" "glUniform4iARB\0" "\0" - /* _mesa_function_pool[24785]: ReadBuffer (offset 254) */ + /* _mesa_function_pool[24788]: ReadBuffer (offset 254) */ "i\0" "glReadBuffer\0" "\0" - /* _mesa_function_pool[24801]: ConvolutionParameteri (offset 352) */ + /* _mesa_function_pool[24804]: ConvolutionParameteri (offset 352) */ "iii\0" "glConvolutionParameteri\0" "glConvolutionParameteriEXT\0" "\0" - /* _mesa_function_pool[24857]: Ortho (offset 296) */ + /* _mesa_function_pool[24860]: Ortho (offset 296) */ "dddddd\0" "glOrtho\0" "\0" - /* _mesa_function_pool[24873]: Binormal3sEXT (dynamic) */ + /* _mesa_function_pool[24876]: Binormal3sEXT (dynamic) */ "iii\0" "glBinormal3sEXT\0" "\0" - /* _mesa_function_pool[24894]: ListBase (offset 6) */ + /* _mesa_function_pool[24897]: ListBase (offset 6) */ "i\0" "glListBase\0" "\0" - /* _mesa_function_pool[24908]: Vertex3s (offset 140) */ + /* _mesa_function_pool[24911]: Vertex3s (offset 140) */ "iii\0" "glVertex3s\0" "\0" - /* _mesa_function_pool[24924]: ConvolutionParameterf (offset 350) */ + /* _mesa_function_pool[24927]: ConvolutionParameterf (offset 350) */ "iif\0" "glConvolutionParameterf\0" "glConvolutionParameterfEXT\0" "\0" - /* _mesa_function_pool[24980]: GetColorTableParameteriv (offset 345) */ + /* _mesa_function_pool[24983]: GetColorTableParameteriv (offset 345) */ "iip\0" "glGetColorTableParameteriv\0" "glGetColorTableParameterivSGI\0" "glGetColorTableParameterivEXT\0" "\0" - /* _mesa_function_pool[25072]: ProgramEnvParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[25075]: ProgramEnvParameter4dvARB (will be remapped) */ "iip\0" "glProgramEnvParameter4dvARB\0" "glProgramParameter4dvNV\0" "\0" - /* _mesa_function_pool[25129]: ShadeModel (offset 177) */ + /* _mesa_function_pool[25132]: ShadeModel (offset 177) */ "i\0" "glShadeModel\0" "\0" - /* _mesa_function_pool[25145]: VertexAttribs2fvNV (will be remapped) */ + /* _mesa_function_pool[25148]: VertexAttribs2fvNV (will be remapped) */ "iip\0" "glVertexAttribs2fvNV\0" "\0" - /* _mesa_function_pool[25171]: Rectiv (offset 91) */ + /* _mesa_function_pool[25174]: Rectiv (offset 91) */ "pp\0" "glRectiv\0" "\0" - /* _mesa_function_pool[25184]: UseProgramObjectARB (will be remapped) */ + /* _mesa_function_pool[25187]: UseProgramObjectARB (will be remapped) */ "i\0" "glUseProgram\0" "glUseProgramObjectARB\0" "\0" - /* _mesa_function_pool[25222]: GetMapParameterfvNV (dynamic) */ + /* _mesa_function_pool[25225]: GetMapParameterfvNV (dynamic) */ "iip\0" "glGetMapParameterfvNV\0" "\0" - /* _mesa_function_pool[25249]: EndConditionalRenderNV (will be remapped) */ + /* _mesa_function_pool[25252]: EndConditionalRenderNV (will be remapped) */ "\0" "glEndConditionalRenderNV\0" "glEndConditionalRender\0" "\0" - /* _mesa_function_pool[25299]: PassTexCoordATI (will be remapped) */ + /* _mesa_function_pool[25302]: PassTexCoordATI (will be remapped) */ "iii\0" "glPassTexCoordATI\0" "\0" - /* _mesa_function_pool[25322]: DeleteProgram (will be remapped) */ + /* _mesa_function_pool[25325]: DeleteProgram (will be remapped) */ "i\0" "glDeleteProgram\0" "\0" - /* _mesa_function_pool[25341]: Tangent3ivEXT (dynamic) */ + /* _mesa_function_pool[25344]: Tangent3ivEXT (dynamic) */ "p\0" "glTangent3ivEXT\0" "\0" - /* _mesa_function_pool[25360]: Tangent3dEXT (dynamic) */ + /* _mesa_function_pool[25363]: Tangent3dEXT (dynamic) */ "ddd\0" "glTangent3dEXT\0" "\0" - /* _mesa_function_pool[25380]: SecondaryColor3dvEXT (will be remapped) */ + /* _mesa_function_pool[25383]: SecondaryColor3dvEXT (will be remapped) */ "p\0" "glSecondaryColor3dv\0" "glSecondaryColor3dvEXT\0" "\0" - /* _mesa_function_pool[25426]: Vertex2fv (offset 129) */ + /* _mesa_function_pool[25429]: AlphaFragmentOp2ATI (will be remapped) */ + "iiiiiiiii\0" + "glAlphaFragmentOp2ATI\0" + "\0" + /* _mesa_function_pool[25462]: Vertex2fv (offset 129) */ "p\0" "glVertex2fv\0" "\0" - /* _mesa_function_pool[25441]: MultiDrawArraysEXT (will be remapped) */ + /* _mesa_function_pool[25477]: MultiDrawArraysEXT (will be remapped) */ "ippi\0" "glMultiDrawArrays\0" "glMultiDrawArraysEXT\0" "\0" - /* _mesa_function_pool[25486]: BindRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[25522]: BindRenderbufferEXT (will be remapped) */ "ii\0" "glBindRenderbuffer\0" "glBindRenderbufferEXT\0" "\0" - /* _mesa_function_pool[25531]: MultiTexCoord4dARB (offset 400) */ + /* _mesa_function_pool[25567]: MultiTexCoord4dARB (offset 400) */ "idddd\0" "glMultiTexCoord4d\0" "glMultiTexCoord4dARB\0" "\0" - /* _mesa_function_pool[25577]: FramebufferTextureFaceARB (will be remapped) */ + /* _mesa_function_pool[25613]: FramebufferTextureFaceARB (will be remapped) */ "iiiii\0" "glFramebufferTextureFaceARB\0" "\0" - /* _mesa_function_pool[25612]: Vertex3sv (offset 141) */ + /* _mesa_function_pool[25648]: Vertex3sv (offset 141) */ "p\0" "glVertex3sv\0" "\0" - /* _mesa_function_pool[25627]: SecondaryColor3usEXT (will be remapped) */ + /* _mesa_function_pool[25663]: SecondaryColor3usEXT (will be remapped) */ "iii\0" "glSecondaryColor3us\0" "glSecondaryColor3usEXT\0" "\0" - /* _mesa_function_pool[25675]: ProgramLocalParameter4fvARB (will be remapped) */ + /* _mesa_function_pool[25711]: ProgramLocalParameter4fvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4fvARB\0" "\0" - /* _mesa_function_pool[25710]: DeleteProgramsNV (will be remapped) */ + /* _mesa_function_pool[25746]: DeleteProgramsNV (will be remapped) */ "ip\0" "glDeleteProgramsARB\0" "glDeleteProgramsNV\0" "\0" - /* _mesa_function_pool[25753]: EvalMesh1 (offset 236) */ + /* _mesa_function_pool[25789]: EvalMesh1 (offset 236) */ "iii\0" "glEvalMesh1\0" "\0" - /* _mesa_function_pool[25770]: PauseTransformFeedback (will be remapped) */ + /* _mesa_function_pool[25806]: PauseTransformFeedback (will be remapped) */ "\0" "glPauseTransformFeedback\0" "\0" - /* _mesa_function_pool[25797]: MultiTexCoord1sARB (offset 382) */ + /* _mesa_function_pool[25833]: MultiTexCoord1sARB (offset 382) */ "ii\0" "glMultiTexCoord1s\0" "glMultiTexCoord1sARB\0" "\0" - /* _mesa_function_pool[25840]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[25876]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */ "iffffff\0" "glReplacementCodeuiColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[25887]: GetVertexAttribPointervNV (will be remapped) */ + /* _mesa_function_pool[25923]: GetVertexAttribPointervNV (will be remapped) */ "iip\0" "glGetVertexAttribPointerv\0" "glGetVertexAttribPointervARB\0" "glGetVertexAttribPointervNV\0" "\0" - /* _mesa_function_pool[25975]: VertexAttribs1fvNV (will be remapped) */ + /* _mesa_function_pool[26011]: VertexAttribs1fvNV (will be remapped) */ "iip\0" "glVertexAttribs1fvNV\0" "\0" - /* _mesa_function_pool[26001]: MultiTexCoord1dvARB (offset 377) */ + /* _mesa_function_pool[26037]: MultiTexCoord1dvARB (offset 377) */ "ip\0" "glMultiTexCoord1dv\0" "glMultiTexCoord1dvARB\0" "\0" - /* _mesa_function_pool[26046]: Uniform2iARB (will be remapped) */ + /* _mesa_function_pool[26082]: Uniform2iARB (will be remapped) */ "iii\0" "glUniform2i\0" "glUniform2iARB\0" "\0" - /* _mesa_function_pool[26078]: Vertex2iv (offset 131) */ + /* _mesa_function_pool[26114]: Vertex2iv (offset 131) */ "p\0" "glVertex2iv\0" "\0" - /* _mesa_function_pool[26093]: GetProgramStringNV (will be remapped) */ + /* _mesa_function_pool[26129]: GetProgramStringNV (will be remapped) */ "iip\0" "glGetProgramStringNV\0" "\0" - /* _mesa_function_pool[26119]: ColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[26155]: ColorPointerEXT (will be remapped) */ "iiiip\0" "glColorPointerEXT\0" "\0" - /* _mesa_function_pool[26144]: LineWidth (offset 168) */ + /* _mesa_function_pool[26180]: LineWidth (offset 168) */ "f\0" "glLineWidth\0" "\0" - /* _mesa_function_pool[26159]: MapBufferARB (will be remapped) */ + /* _mesa_function_pool[26195]: MapBufferARB (will be remapped) */ "ii\0" "glMapBuffer\0" "glMapBufferARB\0" "\0" - /* _mesa_function_pool[26190]: MultiDrawElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[26226]: MultiDrawElementsBaseVertex (will be remapped) */ "ipipip\0" "glMultiDrawElementsBaseVertex\0" "\0" - /* _mesa_function_pool[26228]: TexParameterIuivEXT (will be remapped) */ + /* _mesa_function_pool[26264]: TexParameterIuivEXT (will be remapped) */ "iip\0" "glTexParameterIuivEXT\0" "glTexParameterIuiv\0" "\0" - /* _mesa_function_pool[26274]: Binormal3svEXT (dynamic) */ + /* _mesa_function_pool[26310]: Binormal3svEXT (dynamic) */ "p\0" "glBinormal3svEXT\0" "\0" - /* _mesa_function_pool[26294]: ApplyTextureEXT (dynamic) */ + /* _mesa_function_pool[26330]: ApplyTextureEXT (dynamic) */ "i\0" "glApplyTextureEXT\0" "\0" - /* _mesa_function_pool[26315]: GetBufferParameteri64v (will be remapped) */ + /* _mesa_function_pool[26351]: GetBufferParameteri64v (will be remapped) */ "iip\0" "glGetBufferParameteri64v\0" "\0" - /* _mesa_function_pool[26345]: TexGendv (offset 189) */ + /* _mesa_function_pool[26381]: TexGendv (offset 189) */ "iip\0" "glTexGendv\0" "\0" - /* _mesa_function_pool[26361]: VertexAttribI3iEXT (will be remapped) */ + /* _mesa_function_pool[26397]: VertexAttribI3iEXT (will be remapped) */ "iiii\0" "glVertexAttribI3iEXT\0" "glVertexAttribI3i\0" "\0" - /* _mesa_function_pool[26406]: EnableIndexedEXT (will be remapped) */ + /* _mesa_function_pool[26442]: EnableIndexedEXT (will be remapped) */ "ii\0" "glEnableIndexedEXT\0" "glEnablei\0" "\0" - /* _mesa_function_pool[26439]: TextureMaterialEXT (dynamic) */ + /* _mesa_function_pool[26475]: TextureMaterialEXT (dynamic) */ "ii\0" "glTextureMaterialEXT\0" "\0" - /* _mesa_function_pool[26464]: TextureLightEXT (dynamic) */ + /* _mesa_function_pool[26500]: TextureLightEXT (dynamic) */ "i\0" "glTextureLightEXT\0" "\0" - /* _mesa_function_pool[26485]: ResetMinmax (offset 370) */ + /* _mesa_function_pool[26521]: ResetMinmax (offset 370) */ "i\0" "glResetMinmax\0" "glResetMinmaxEXT\0" "\0" - /* _mesa_function_pool[26519]: SpriteParameterfSGIX (dynamic) */ + /* _mesa_function_pool[26555]: SpriteParameterfSGIX (dynamic) */ "if\0" "glSpriteParameterfSGIX\0" "\0" - /* _mesa_function_pool[26546]: EnableClientState (offset 313) */ + /* _mesa_function_pool[26582]: EnableClientState (offset 313) */ "i\0" "glEnableClientState\0" "\0" - /* _mesa_function_pool[26569]: VertexAttrib4sNV (will be remapped) */ + /* _mesa_function_pool[26605]: VertexAttrib4sNV (will be remapped) */ "iiiii\0" "glVertexAttrib4sNV\0" "\0" - /* _mesa_function_pool[26595]: GetConvolutionParameterfv (offset 357) */ + /* _mesa_function_pool[26631]: GetConvolutionParameterfv (offset 357) */ "iip\0" "glGetConvolutionParameterfv\0" "glGetConvolutionParameterfvEXT\0" "\0" - /* _mesa_function_pool[26659]: VertexAttribs4dvNV (will be remapped) */ + /* _mesa_function_pool[26695]: VertexAttribs4dvNV (will be remapped) */ "iip\0" "glVertexAttribs4dvNV\0" "\0" - /* _mesa_function_pool[26685]: VertexAttrib4dARB (will be remapped) */ + /* _mesa_function_pool[26721]: MultiModeDrawArraysIBM (will be remapped) */ + "pppii\0" + "glMultiModeDrawArraysIBM\0" + "\0" + /* _mesa_function_pool[26753]: VertexAttrib4dARB (will be remapped) */ "idddd\0" "glVertexAttrib4d\0" "glVertexAttrib4dARB\0" "\0" - /* _mesa_function_pool[26729]: GetTexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[26797]: GetTexBumpParameterfvATI (will be remapped) */ "ip\0" "glGetTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[26760]: ProgramNamedParameter4dNV (will be remapped) */ + /* _mesa_function_pool[26828]: ProgramNamedParameter4dNV (will be remapped) */ "iipdddd\0" "glProgramNamedParameter4dNV\0" "\0" - /* _mesa_function_pool[26797]: GetMaterialfv (offset 269) */ + /* _mesa_function_pool[26865]: GetMaterialfv (offset 269) */ "iip\0" "glGetMaterialfv\0" "\0" - /* _mesa_function_pool[26818]: VertexWeightfEXT (dynamic) */ + /* _mesa_function_pool[26886]: VertexWeightfEXT (dynamic) */ "f\0" "glVertexWeightfEXT\0" "\0" - /* _mesa_function_pool[26840]: Binormal3fEXT (dynamic) */ + /* _mesa_function_pool[26908]: SetFragmentShaderConstantATI (will be remapped) */ + "ip\0" + "glSetFragmentShaderConstantATI\0" + "\0" + /* _mesa_function_pool[26943]: Binormal3fEXT (dynamic) */ "fff\0" "glBinormal3fEXT\0" "\0" - /* _mesa_function_pool[26861]: CallList (offset 2) */ + /* _mesa_function_pool[26964]: CallList (offset 2) */ "i\0" "glCallList\0" "\0" - /* _mesa_function_pool[26875]: Materialfv (offset 170) */ + /* _mesa_function_pool[26978]: Materialfv (offset 170) */ "iip\0" "glMaterialfv\0" "\0" - /* _mesa_function_pool[26893]: TexCoord3fv (offset 113) */ + /* _mesa_function_pool[26996]: TexCoord3fv (offset 113) */ "p\0" "glTexCoord3fv\0" "\0" - /* _mesa_function_pool[26910]: FogCoordfvEXT (will be remapped) */ + /* _mesa_function_pool[27013]: FogCoordfvEXT (will be remapped) */ "p\0" "glFogCoordfv\0" "glFogCoordfvEXT\0" "\0" - /* _mesa_function_pool[26942]: MultiTexCoord1ivARB (offset 381) */ + /* _mesa_function_pool[27045]: MultiTexCoord1ivARB (offset 381) */ "ip\0" "glMultiTexCoord1iv\0" "glMultiTexCoord1ivARB\0" "\0" - /* _mesa_function_pool[26987]: SecondaryColor3ubEXT (will be remapped) */ + /* _mesa_function_pool[27090]: SecondaryColor3ubEXT (will be remapped) */ "iii\0" "glSecondaryColor3ub\0" "glSecondaryColor3ubEXT\0" "\0" - /* _mesa_function_pool[27035]: MultiTexCoord2ivARB (offset 389) */ + /* _mesa_function_pool[27138]: MultiTexCoord2ivARB (offset 389) */ "ip\0" "glMultiTexCoord2iv\0" "glMultiTexCoord2ivARB\0" "\0" - /* _mesa_function_pool[27080]: FogFuncSGIS (dynamic) */ + /* _mesa_function_pool[27183]: FogFuncSGIS (dynamic) */ "ip\0" "glFogFuncSGIS\0" "\0" - /* _mesa_function_pool[27098]: CopyTexSubImage2D (offset 326) */ + /* _mesa_function_pool[27201]: CopyTexSubImage2D (offset 326) */ "iiiiiiii\0" "glCopyTexSubImage2D\0" "glCopyTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[27151]: GetObjectParameterivARB (will be remapped) */ + /* _mesa_function_pool[27254]: GetObjectParameterivARB (will be remapped) */ "iip\0" "glGetObjectParameterivARB\0" "\0" - /* _mesa_function_pool[27182]: Color3iv (offset 16) */ + /* _mesa_function_pool[27285]: Color3iv (offset 16) */ "p\0" "glColor3iv\0" "\0" - /* _mesa_function_pool[27196]: TexCoord4fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[27299]: TexCoord4fVertex4fSUN (dynamic) */ "ffffffff\0" "glTexCoord4fVertex4fSUN\0" "\0" - /* _mesa_function_pool[27230]: DrawElements (offset 311) */ + /* _mesa_function_pool[27333]: DrawElements (offset 311) */ "iiip\0" "glDrawElements\0" "\0" - /* _mesa_function_pool[27251]: BindVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[27354]: BindVertexArrayAPPLE (will be remapped) */ "i\0" "glBindVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[27277]: GetProgramLocalParameterdvARB (will be remapped) */ + /* _mesa_function_pool[27380]: GetProgramLocalParameterdvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterdvARB\0" "\0" - /* _mesa_function_pool[27314]: GetHistogramParameteriv (offset 363) */ + /* _mesa_function_pool[27417]: GetHistogramParameteriv (offset 363) */ "iip\0" "glGetHistogramParameteriv\0" "glGetHistogramParameterivEXT\0" "\0" - /* _mesa_function_pool[27374]: MultiTexCoord1iARB (offset 380) */ + /* _mesa_function_pool[27477]: MultiTexCoord1iARB (offset 380) */ "ii\0" "glMultiTexCoord1i\0" "glMultiTexCoord1iARB\0" "\0" - /* _mesa_function_pool[27417]: GetConvolutionFilter (offset 356) */ + /* _mesa_function_pool[27520]: GetConvolutionFilter (offset 356) */ "iiip\0" "glGetConvolutionFilter\0" "glGetConvolutionFilterEXT\0" "\0" - /* _mesa_function_pool[27472]: GetProgramivARB (will be remapped) */ + /* _mesa_function_pool[27575]: GetProgramivARB (will be remapped) */ "iip\0" "glGetProgramivARB\0" "\0" - /* _mesa_function_pool[27495]: BlendFuncSeparateEXT (will be remapped) */ + /* _mesa_function_pool[27598]: BlendFuncSeparateEXT (will be remapped) */ "iiii\0" "glBlendFuncSeparate\0" "glBlendFuncSeparateEXT\0" "glBlendFuncSeparateINGR\0" "\0" - /* _mesa_function_pool[27568]: MapBufferRange (will be remapped) */ + /* _mesa_function_pool[27671]: MapBufferRange (will be remapped) */ "iiii\0" "glMapBufferRange\0" "\0" - /* _mesa_function_pool[27591]: ProgramParameters4dvNV (will be remapped) */ + /* _mesa_function_pool[27694]: ProgramParameters4dvNV (will be remapped) */ "iiip\0" "glProgramParameters4dvNV\0" "\0" - /* _mesa_function_pool[27622]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[27725]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[27659]: EvalPoint2 (offset 239) */ + /* _mesa_function_pool[27762]: EvalPoint2 (offset 239) */ "ii\0" "glEvalPoint2\0" "\0" - /* _mesa_function_pool[27676]: Uniform1uivEXT (will be remapped) */ + /* _mesa_function_pool[27779]: Uniform1uivEXT (will be remapped) */ "iip\0" "glUniform1uivEXT\0" "glUniform1uiv\0" "\0" - /* _mesa_function_pool[27712]: EvalPoint1 (offset 237) */ + /* _mesa_function_pool[27815]: EvalPoint1 (offset 237) */ "i\0" "glEvalPoint1\0" "\0" - /* _mesa_function_pool[27728]: Binormal3dvEXT (dynamic) */ + /* _mesa_function_pool[27831]: Binormal3dvEXT (dynamic) */ "p\0" "glBinormal3dvEXT\0" "\0" - /* _mesa_function_pool[27748]: PopMatrix (offset 297) */ + /* _mesa_function_pool[27851]: PopMatrix (offset 297) */ "\0" "glPopMatrix\0" "\0" - /* _mesa_function_pool[27762]: FinishFenceNV (will be remapped) */ + /* _mesa_function_pool[27865]: GetVertexAttribIuivEXT (will be remapped) */ + "iip\0" + "glGetVertexAttribIuivEXT\0" + "glGetVertexAttribIuiv\0" + "\0" + /* _mesa_function_pool[27917]: FinishFenceNV (will be remapped) */ "i\0" "glFinishFenceNV\0" "\0" - /* _mesa_function_pool[27781]: GetFogFuncSGIS (dynamic) */ + /* _mesa_function_pool[27936]: GetFogFuncSGIS (dynamic) */ "p\0" "glGetFogFuncSGIS\0" "\0" - /* _mesa_function_pool[27801]: GetUniformLocationARB (will be remapped) */ + /* _mesa_function_pool[27956]: GetUniformLocationARB (will be remapped) */ "ip\0" "glGetUniformLocation\0" "glGetUniformLocationARB\0" "\0" - /* _mesa_function_pool[27850]: SecondaryColor3fEXT (will be remapped) */ + /* _mesa_function_pool[28005]: SecondaryColor3fEXT (will be remapped) */ "fff\0" "glSecondaryColor3f\0" "glSecondaryColor3fEXT\0" "\0" - /* _mesa_function_pool[27896]: GetTexGeniv (offset 280) */ + /* _mesa_function_pool[28051]: GetTexGeniv (offset 280) */ "iip\0" "glGetTexGeniv\0" "\0" - /* _mesa_function_pool[27915]: CombinerInputNV (will be remapped) */ + /* _mesa_function_pool[28070]: CombinerInputNV (will be remapped) */ "iiiiii\0" "glCombinerInputNV\0" "\0" - /* _mesa_function_pool[27941]: VertexAttrib3sARB (will be remapped) */ + /* _mesa_function_pool[28096]: VertexAttrib3sARB (will be remapped) */ "iiii\0" "glVertexAttrib3s\0" "glVertexAttrib3sARB\0" "\0" - /* _mesa_function_pool[27984]: IsTransformFeedback (will be remapped) */ + /* _mesa_function_pool[28139]: IsTransformFeedback (will be remapped) */ "i\0" "glIsTransformFeedback\0" "\0" - /* _mesa_function_pool[28009]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[28164]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[28054]: Map2d (offset 222) */ + /* _mesa_function_pool[28209]: Map2d (offset 222) */ "iddiiddiip\0" "glMap2d\0" "\0" - /* _mesa_function_pool[28074]: Map2f (offset 223) */ + /* _mesa_function_pool[28229]: Map2f (offset 223) */ "iffiiffiip\0" "glMap2f\0" "\0" - /* _mesa_function_pool[28094]: ProgramStringARB (will be remapped) */ + /* _mesa_function_pool[28249]: ProgramStringARB (will be remapped) */ "iiip\0" "glProgramStringARB\0" "\0" - /* _mesa_function_pool[28119]: Vertex4s (offset 148) */ + /* _mesa_function_pool[28274]: Vertex4s (offset 148) */ "iiii\0" "glVertex4s\0" "\0" - /* _mesa_function_pool[28136]: TexCoord4fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[28291]: TexCoord4fVertex4fvSUN (dynamic) */ "pp\0" "glTexCoord4fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[28165]: FragmentLightModelivSGIX (dynamic) */ + /* _mesa_function_pool[28320]: FragmentLightModelivSGIX (dynamic) */ "ip\0" "glFragmentLightModelivSGIX\0" "\0" - /* _mesa_function_pool[28196]: VertexAttrib1fNV (will be remapped) */ + /* _mesa_function_pool[28351]: VertexAttrib1fNV (will be remapped) */ "if\0" "glVertexAttrib1fNV\0" "\0" - /* _mesa_function_pool[28219]: Vertex4f (offset 144) */ + /* _mesa_function_pool[28374]: Vertex4f (offset 144) */ "ffff\0" "glVertex4f\0" "\0" - /* _mesa_function_pool[28236]: EvalCoord1d (offset 228) */ + /* _mesa_function_pool[28391]: EvalCoord1d (offset 228) */ "d\0" "glEvalCoord1d\0" "\0" - /* _mesa_function_pool[28253]: Vertex4d (offset 142) */ + /* _mesa_function_pool[28408]: Vertex4d (offset 142) */ "dddd\0" "glVertex4d\0" "\0" - /* _mesa_function_pool[28270]: RasterPos4dv (offset 79) */ + /* _mesa_function_pool[28425]: RasterPos4dv (offset 79) */ "p\0" "glRasterPos4dv\0" "\0" - /* _mesa_function_pool[28288]: UseShaderProgramEXT (will be remapped) */ + /* _mesa_function_pool[28443]: UseShaderProgramEXT (will be remapped) */ "ii\0" "glUseShaderProgramEXT\0" "\0" - /* _mesa_function_pool[28314]: FragmentLightfSGIX (dynamic) */ + /* _mesa_function_pool[28469]: FragmentLightfSGIX (dynamic) */ "iif\0" "glFragmentLightfSGIX\0" "\0" - /* _mesa_function_pool[28340]: GetCompressedTexImageARB (will be remapped) */ + /* _mesa_function_pool[28495]: GetCompressedTexImageARB (will be remapped) */ "iip\0" "glGetCompressedTexImage\0" "glGetCompressedTexImageARB\0" "\0" - /* _mesa_function_pool[28396]: GetTexGenfv (offset 279) */ + /* _mesa_function_pool[28551]: GetTexGenfv (offset 279) */ "iip\0" "glGetTexGenfv\0" "\0" - /* _mesa_function_pool[28415]: Vertex4i (offset 146) */ + /* _mesa_function_pool[28570]: Vertex4i (offset 146) */ "iiii\0" "glVertex4i\0" "\0" - /* _mesa_function_pool[28432]: VertexWeightPointerEXT (dynamic) */ + /* _mesa_function_pool[28587]: VertexWeightPointerEXT (dynamic) */ "iiip\0" "glVertexWeightPointerEXT\0" "\0" - /* _mesa_function_pool[28463]: GetHistogram (offset 361) */ + /* _mesa_function_pool[28618]: GetHistogram (offset 361) */ "iiiip\0" "glGetHistogram\0" "glGetHistogramEXT\0" "\0" - /* _mesa_function_pool[28503]: ActiveStencilFaceEXT (will be remapped) */ + /* _mesa_function_pool[28658]: ActiveStencilFaceEXT (will be remapped) */ "i\0" "glActiveStencilFaceEXT\0" "\0" - /* _mesa_function_pool[28529]: StencilFuncSeparateATI (will be remapped) */ + /* _mesa_function_pool[28684]: StencilFuncSeparateATI (will be remapped) */ "iiii\0" "glStencilFuncSeparateATI\0" "\0" - /* _mesa_function_pool[28560]: Materialf (offset 169) */ + /* _mesa_function_pool[28715]: Materialf (offset 169) */ "iif\0" "glMaterialf\0" "\0" - /* _mesa_function_pool[28577]: GetShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[28732]: GetShaderSourceARB (will be remapped) */ "iipp\0" "glGetShaderSource\0" "glGetShaderSourceARB\0" "\0" - /* _mesa_function_pool[28622]: IglooInterfaceSGIX (dynamic) */ + /* _mesa_function_pool[28777]: IglooInterfaceSGIX (dynamic) */ "ip\0" "glIglooInterfaceSGIX\0" "\0" - /* _mesa_function_pool[28647]: Materiali (offset 171) */ + /* _mesa_function_pool[28802]: Materiali (offset 171) */ "iii\0" "glMateriali\0" "\0" - /* _mesa_function_pool[28664]: VertexAttrib4dNV (will be remapped) */ + /* _mesa_function_pool[28819]: VertexAttrib4dNV (will be remapped) */ "idddd\0" "glVertexAttrib4dNV\0" "\0" - /* _mesa_function_pool[28690]: MultiModeDrawElementsIBM (will be remapped) */ + /* _mesa_function_pool[28845]: MultiModeDrawElementsIBM (will be remapped) */ "ppipii\0" "glMultiModeDrawElementsIBM\0" "\0" - /* _mesa_function_pool[28725]: Indexsv (offset 51) */ + /* _mesa_function_pool[28880]: Indexsv (offset 51) */ "p\0" "glIndexsv\0" "\0" - /* _mesa_function_pool[28738]: MultiTexCoord4svARB (offset 407) */ + /* _mesa_function_pool[28893]: MultiTexCoord4svARB (offset 407) */ "ip\0" "glMultiTexCoord4sv\0" "glMultiTexCoord4svARB\0" "\0" - /* _mesa_function_pool[28783]: LightModelfv (offset 164) */ + /* _mesa_function_pool[28938]: LightModelfv (offset 164) */ "ip\0" "glLightModelfv\0" "\0" - /* _mesa_function_pool[28802]: TexCoord2dv (offset 103) */ + /* _mesa_function_pool[28957]: TexCoord2dv (offset 103) */ "p\0" "glTexCoord2dv\0" "\0" - /* _mesa_function_pool[28819]: GenQueriesARB (will be remapped) */ + /* _mesa_function_pool[28974]: GenQueriesARB (will be remapped) */ "ip\0" "glGenQueries\0" "glGenQueriesARB\0" "\0" - /* _mesa_function_pool[28852]: EvalCoord1dv (offset 229) */ + /* _mesa_function_pool[29007]: EvalCoord1dv (offset 229) */ "p\0" "glEvalCoord1dv\0" "\0" - /* _mesa_function_pool[28870]: ReplacementCodeuiVertex3fSUN (dynamic) */ + /* _mesa_function_pool[29025]: ReplacementCodeuiVertex3fSUN (dynamic) */ "ifff\0" "glReplacementCodeuiVertex3fSUN\0" "\0" - /* _mesa_function_pool[28907]: Translated (offset 303) */ + /* _mesa_function_pool[29062]: Translated (offset 303) */ "ddd\0" "glTranslated\0" "\0" - /* _mesa_function_pool[28925]: Translatef (offset 304) */ + /* _mesa_function_pool[29080]: Translatef (offset 304) */ "fff\0" "glTranslatef\0" "\0" - /* _mesa_function_pool[28943]: Uniform3uiEXT (will be remapped) */ + /* _mesa_function_pool[29098]: Uniform3uiEXT (will be remapped) */ "iiii\0" "glUniform3uiEXT\0" "glUniform3ui\0" "\0" - /* _mesa_function_pool[28978]: StencilMask (offset 209) */ + /* _mesa_function_pool[29133]: StencilMask (offset 209) */ "i\0" "glStencilMask\0" "\0" - /* _mesa_function_pool[28995]: Tangent3iEXT (dynamic) */ + /* _mesa_function_pool[29150]: Tangent3iEXT (dynamic) */ "iii\0" "glTangent3iEXT\0" "\0" - /* _mesa_function_pool[29015]: GetLightiv (offset 265) */ + /* _mesa_function_pool[29170]: GetLightiv (offset 265) */ "iip\0" "glGetLightiv\0" "\0" - /* _mesa_function_pool[29033]: DrawMeshArraysSUN (dynamic) */ + /* _mesa_function_pool[29188]: DrawMeshArraysSUN (dynamic) */ "iiii\0" "glDrawMeshArraysSUN\0" "\0" - /* _mesa_function_pool[29059]: IsList (offset 287) */ + /* _mesa_function_pool[29214]: IsList (offset 287) */ "i\0" "glIsList\0" "\0" - /* _mesa_function_pool[29071]: IsSync (will be remapped) */ + /* _mesa_function_pool[29226]: IsSync (will be remapped) */ "i\0" "glIsSync\0" "\0" - /* _mesa_function_pool[29083]: RenderMode (offset 196) */ + /* _mesa_function_pool[29238]: RenderMode (offset 196) */ "i\0" "glRenderMode\0" "\0" - /* _mesa_function_pool[29099]: GetMapControlPointsNV (dynamic) */ + /* _mesa_function_pool[29254]: GetMapControlPointsNV (dynamic) */ "iiiiiip\0" "glGetMapControlPointsNV\0" "\0" - /* _mesa_function_pool[29132]: DrawBuffersARB (will be remapped) */ + /* _mesa_function_pool[29287]: DrawBuffersARB (will be remapped) */ "ip\0" "glDrawBuffers\0" "glDrawBuffersARB\0" "glDrawBuffersATI\0" "\0" - /* _mesa_function_pool[29184]: ClearBufferiv (will be remapped) */ + /* _mesa_function_pool[29339]: ClearBufferiv (will be remapped) */ "iip\0" "glClearBufferiv\0" "\0" - /* _mesa_function_pool[29205]: ProgramLocalParameter4fARB (will be remapped) */ + /* _mesa_function_pool[29360]: ProgramLocalParameter4fARB (will be remapped) */ "iiffff\0" "glProgramLocalParameter4fARB\0" "\0" - /* _mesa_function_pool[29242]: SpriteParameterivSGIX (dynamic) */ + /* _mesa_function_pool[29397]: SpriteParameterivSGIX (dynamic) */ "ip\0" "glSpriteParameterivSGIX\0" "\0" - /* _mesa_function_pool[29270]: ProvokingVertexEXT (will be remapped) */ + /* _mesa_function_pool[29425]: ProvokingVertexEXT (will be remapped) */ "i\0" "glProvokingVertexEXT\0" "glProvokingVertex\0" "\0" - /* _mesa_function_pool[29312]: MultiTexCoord1fARB (offset 378) */ + /* _mesa_function_pool[29467]: MultiTexCoord1fARB (offset 378) */ "if\0" "glMultiTexCoord1f\0" "glMultiTexCoord1fARB\0" "\0" - /* _mesa_function_pool[29355]: LoadName (offset 198) */ + /* _mesa_function_pool[29510]: LoadName (offset 198) */ "i\0" "glLoadName\0" "\0" - /* _mesa_function_pool[29369]: VertexAttribs4ubvNV (will be remapped) */ + /* _mesa_function_pool[29524]: VertexAttribs4ubvNV (will be remapped) */ "iip\0" "glVertexAttribs4ubvNV\0" "\0" - /* _mesa_function_pool[29396]: WeightsvARB (dynamic) */ + /* _mesa_function_pool[29551]: WeightsvARB (dynamic) */ "ip\0" "glWeightsvARB\0" "\0" - /* _mesa_function_pool[29414]: Uniform1fvARB (will be remapped) */ + /* _mesa_function_pool[29569]: Uniform1fvARB (will be remapped) */ "iip\0" "glUniform1fv\0" "glUniform1fvARB\0" "\0" - /* _mesa_function_pool[29448]: CopyTexSubImage1D (offset 325) */ + /* _mesa_function_pool[29603]: CopyTexSubImage1D (offset 325) */ "iiiiii\0" "glCopyTexSubImage1D\0" "glCopyTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[29499]: CullFace (offset 152) */ + /* _mesa_function_pool[29654]: CullFace (offset 152) */ "i\0" "glCullFace\0" "\0" - /* _mesa_function_pool[29513]: BindTexture (offset 307) */ + /* _mesa_function_pool[29668]: BindTexture (offset 307) */ "ii\0" "glBindTexture\0" "glBindTextureEXT\0" "\0" - /* _mesa_function_pool[29548]: BeginFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[29703]: BeginFragmentShaderATI (will be remapped) */ "\0" "glBeginFragmentShaderATI\0" "\0" - /* _mesa_function_pool[29575]: MultiTexCoord4fARB (offset 402) */ + /* _mesa_function_pool[29730]: MultiTexCoord4fARB (offset 402) */ "iffff\0" "glMultiTexCoord4f\0" "glMultiTexCoord4fARB\0" "\0" - /* _mesa_function_pool[29621]: VertexAttribs3svNV (will be remapped) */ + /* _mesa_function_pool[29776]: VertexAttribs3svNV (will be remapped) */ "iip\0" "glVertexAttribs3svNV\0" "\0" - /* _mesa_function_pool[29647]: StencilFunc (offset 243) */ + /* _mesa_function_pool[29802]: StencilFunc (offset 243) */ "iii\0" "glStencilFunc\0" "\0" - /* _mesa_function_pool[29666]: CopyPixels (offset 255) */ + /* _mesa_function_pool[29821]: CopyPixels (offset 255) */ "iiiii\0" "glCopyPixels\0" "\0" - /* _mesa_function_pool[29686]: Rectsv (offset 93) */ + /* _mesa_function_pool[29841]: Rectsv (offset 93) */ "pp\0" "glRectsv\0" "\0" - /* _mesa_function_pool[29699]: ReplacementCodeuivSUN (dynamic) */ + /* _mesa_function_pool[29854]: ReplacementCodeuivSUN (dynamic) */ "p\0" "glReplacementCodeuivSUN\0" "\0" - /* _mesa_function_pool[29726]: EnableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[29881]: EnableVertexAttribArrayARB (will be remapped) */ "i\0" "glEnableVertexAttribArray\0" "glEnableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[29784]: NormalPointervINTEL (dynamic) */ + /* _mesa_function_pool[29939]: NormalPointervINTEL (dynamic) */ "ip\0" "glNormalPointervINTEL\0" "\0" - /* _mesa_function_pool[29810]: CopyConvolutionFilter2D (offset 355) */ + /* _mesa_function_pool[29965]: CopyConvolutionFilter2D (offset 355) */ "iiiiii\0" "glCopyConvolutionFilter2D\0" "glCopyConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[29873]: WindowPos3ivMESA (will be remapped) */ + /* _mesa_function_pool[30028]: WindowPos3ivMESA (will be remapped) */ "p\0" "glWindowPos3iv\0" "glWindowPos3ivARB\0" "glWindowPos3ivMESA\0" "\0" - /* _mesa_function_pool[29928]: CopyBufferSubData (will be remapped) */ + /* _mesa_function_pool[30083]: CopyBufferSubData (will be remapped) */ "iiiii\0" "glCopyBufferSubData\0" "\0" - /* _mesa_function_pool[29955]: NormalPointer (offset 318) */ + /* _mesa_function_pool[30110]: NormalPointer (offset 318) */ "iip\0" "glNormalPointer\0" "\0" - /* _mesa_function_pool[29976]: TexParameterfv (offset 179) */ + /* _mesa_function_pool[30131]: TexParameterfv (offset 179) */ "iip\0" "glTexParameterfv\0" "\0" - /* _mesa_function_pool[29998]: IsBufferARB (will be remapped) */ + /* _mesa_function_pool[30153]: IsBufferARB (will be remapped) */ "i\0" "glIsBuffer\0" "glIsBufferARB\0" "\0" - /* _mesa_function_pool[30026]: WindowPos4iMESA (will be remapped) */ + /* _mesa_function_pool[30181]: WindowPos4iMESA (will be remapped) */ "iiii\0" "glWindowPos4iMESA\0" "\0" - /* _mesa_function_pool[30050]: VertexAttrib4uivARB (will be remapped) */ + /* _mesa_function_pool[30205]: VertexAttrib4uivARB (will be remapped) */ "ip\0" "glVertexAttrib4uiv\0" "glVertexAttrib4uivARB\0" "\0" - /* _mesa_function_pool[30095]: Tangent3bvEXT (dynamic) */ + /* _mesa_function_pool[30250]: Tangent3bvEXT (dynamic) */ "p\0" "glTangent3bvEXT\0" "\0" - /* _mesa_function_pool[30114]: VertexAttribI3uivEXT (will be remapped) */ + /* _mesa_function_pool[30269]: VertexAttribI3uivEXT (will be remapped) */ "ip\0" "glVertexAttribI3uivEXT\0" "glVertexAttribI3uiv\0" "\0" - /* _mesa_function_pool[30161]: UniformMatrix3x4fv (will be remapped) */ + /* _mesa_function_pool[30316]: UniformMatrix3x4fv (will be remapped) */ "iiip\0" "glUniformMatrix3x4fv\0" "\0" - /* _mesa_function_pool[30188]: ClipPlane (offset 150) */ + /* _mesa_function_pool[30343]: ClipPlane (offset 150) */ "ip\0" "glClipPlane\0" "\0" - /* _mesa_function_pool[30204]: Recti (offset 90) */ + /* _mesa_function_pool[30359]: Recti (offset 90) */ "iiii\0" "glRecti\0" "\0" - /* _mesa_function_pool[30218]: VertexAttribI3ivEXT (will be remapped) */ + /* _mesa_function_pool[30373]: VertexAttribI3ivEXT (will be remapped) */ "ip\0" "glVertexAttribI3ivEXT\0" "glVertexAttribI3iv\0" "\0" - /* _mesa_function_pool[30263]: DrawRangeElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[30418]: DrawRangeElementsBaseVertex (will be remapped) */ "iiiiipi\0" "glDrawRangeElementsBaseVertex\0" "\0" - /* _mesa_function_pool[30302]: TexCoordPointervINTEL (dynamic) */ + /* _mesa_function_pool[30457]: TexCoordPointervINTEL (dynamic) */ "iip\0" "glTexCoordPointervINTEL\0" "\0" - /* _mesa_function_pool[30331]: DeleteBuffersARB (will be remapped) */ + /* _mesa_function_pool[30486]: DeleteBuffersARB (will be remapped) */ "ip\0" "glDeleteBuffers\0" "glDeleteBuffersARB\0" "\0" - /* _mesa_function_pool[30370]: PixelTransformParameterfvEXT (dynamic) */ + /* _mesa_function_pool[30525]: PixelTransformParameterfvEXT (dynamic) */ "iip\0" "glPixelTransformParameterfvEXT\0" "\0" - /* _mesa_function_pool[30406]: PrimitiveRestartNV (will be remapped) */ + /* _mesa_function_pool[30561]: PrimitiveRestartNV (will be remapped) */ "\0" "glPrimitiveRestartNV\0" "\0" - /* _mesa_function_pool[30429]: WindowPos4fvMESA (will be remapped) */ + /* _mesa_function_pool[30584]: WindowPos4fvMESA (will be remapped) */ "p\0" "glWindowPos4fvMESA\0" "\0" - /* _mesa_function_pool[30451]: GetPixelMapuiv (offset 272) */ + /* _mesa_function_pool[30606]: GetPixelMapuiv (offset 272) */ "ip\0" "glGetPixelMapuiv\0" "\0" - /* _mesa_function_pool[30472]: Rectf (offset 88) */ + /* _mesa_function_pool[30627]: Rectf (offset 88) */ "ffff\0" "glRectf\0" "\0" - /* _mesa_function_pool[30486]: VertexAttrib1sNV (will be remapped) */ + /* _mesa_function_pool[30641]: VertexAttrib1sNV (will be remapped) */ "ii\0" "glVertexAttrib1sNV\0" "\0" - /* _mesa_function_pool[30509]: Indexfv (offset 47) */ + /* _mesa_function_pool[30664]: Indexfv (offset 47) */ "p\0" "glIndexfv\0" "\0" - /* _mesa_function_pool[30522]: SecondaryColor3svEXT (will be remapped) */ + /* _mesa_function_pool[30677]: SecondaryColor3svEXT (will be remapped) */ "p\0" "glSecondaryColor3sv\0" "glSecondaryColor3svEXT\0" "\0" - /* _mesa_function_pool[30568]: LoadTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[30723]: LoadTransposeMatrixfARB (will be remapped) */ "p\0" "glLoadTransposeMatrixf\0" "glLoadTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[30620]: GetPointerv (offset 329) */ + /* _mesa_function_pool[30775]: GetPointerv (offset 329) */ "ip\0" "glGetPointerv\0" "glGetPointervEXT\0" "\0" - /* _mesa_function_pool[30655]: Tangent3bEXT (dynamic) */ + /* _mesa_function_pool[30810]: Tangent3bEXT (dynamic) */ "iii\0" "glTangent3bEXT\0" "\0" - /* _mesa_function_pool[30675]: CombinerParameterfNV (will be remapped) */ + /* _mesa_function_pool[30830]: CombinerParameterfNV (will be remapped) */ "if\0" "glCombinerParameterfNV\0" "\0" - /* _mesa_function_pool[30702]: IndexMask (offset 212) */ + /* _mesa_function_pool[30857]: IndexMask (offset 212) */ "i\0" "glIndexMask\0" "\0" - /* _mesa_function_pool[30717]: BindProgramNV (will be remapped) */ + /* _mesa_function_pool[30872]: BindProgramNV (will be remapped) */ "ii\0" "glBindProgramARB\0" "glBindProgramNV\0" "\0" - /* _mesa_function_pool[30754]: VertexAttrib4svARB (will be remapped) */ + /* _mesa_function_pool[30909]: VertexAttrib4svARB (will be remapped) */ "ip\0" "glVertexAttrib4sv\0" "glVertexAttrib4svARB\0" "\0" - /* _mesa_function_pool[30797]: GetFloatv (offset 262) */ + /* _mesa_function_pool[30952]: GetFloatv (offset 262) */ "ip\0" "glGetFloatv\0" "\0" - /* _mesa_function_pool[30813]: CreateDebugObjectMESA (dynamic) */ + /* _mesa_function_pool[30968]: CreateDebugObjectMESA (dynamic) */ "\0" "glCreateDebugObjectMESA\0" "\0" - /* _mesa_function_pool[30839]: GetShaderiv (will be remapped) */ + /* _mesa_function_pool[30994]: GetShaderiv (will be remapped) */ "iip\0" "glGetShaderiv\0" "\0" - /* _mesa_function_pool[30858]: ClientWaitSync (will be remapped) */ + /* _mesa_function_pool[31013]: ClientWaitSync (will be remapped) */ "iii\0" "glClientWaitSync\0" "\0" - /* _mesa_function_pool[30880]: TexCoord4s (offset 124) */ + /* _mesa_function_pool[31035]: TexCoord4s (offset 124) */ "iiii\0" "glTexCoord4s\0" "\0" - /* _mesa_function_pool[30899]: TexCoord3sv (offset 117) */ + /* _mesa_function_pool[31054]: TexCoord3sv (offset 117) */ "p\0" "glTexCoord3sv\0" "\0" - /* _mesa_function_pool[30916]: BindFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[31071]: BindFragmentShaderATI (will be remapped) */ "i\0" "glBindFragmentShaderATI\0" "\0" - /* _mesa_function_pool[30943]: PopAttrib (offset 218) */ + /* _mesa_function_pool[31098]: PopAttrib (offset 218) */ "\0" "glPopAttrib\0" "\0" - /* _mesa_function_pool[30957]: Fogfv (offset 154) */ + /* _mesa_function_pool[31112]: Fogfv (offset 154) */ "ip\0" "glFogfv\0" "\0" - /* _mesa_function_pool[30969]: UnmapBufferARB (will be remapped) */ + /* _mesa_function_pool[31124]: UnmapBufferARB (will be remapped) */ "i\0" "glUnmapBuffer\0" "glUnmapBufferARB\0" "\0" - /* _mesa_function_pool[31003]: InitNames (offset 197) */ + /* _mesa_function_pool[31158]: InitNames (offset 197) */ "\0" "glInitNames\0" "\0" - /* _mesa_function_pool[31017]: Normal3sv (offset 61) */ + /* _mesa_function_pool[31172]: Normal3sv (offset 61) */ "p\0" "glNormal3sv\0" "\0" - /* _mesa_function_pool[31032]: Minmax (offset 368) */ + /* _mesa_function_pool[31187]: Minmax (offset 368) */ "iii\0" "glMinmax\0" "glMinmaxEXT\0" "\0" - /* _mesa_function_pool[31058]: TexCoord4d (offset 118) */ + /* _mesa_function_pool[31213]: TexCoord4d (offset 118) */ "dddd\0" "glTexCoord4d\0" "\0" - /* _mesa_function_pool[31077]: DeformationMap3dSGIX (dynamic) */ - "iddiiddiiddiip\0" - "glDeformationMap3dSGIX\0" - "\0" - /* _mesa_function_pool[31116]: TexCoord4f (offset 120) */ + /* _mesa_function_pool[31232]: TexCoord4f (offset 120) */ "ffff\0" "glTexCoord4f\0" "\0" - /* _mesa_function_pool[31135]: FogCoorddvEXT (will be remapped) */ + /* _mesa_function_pool[31251]: FogCoorddvEXT (will be remapped) */ "p\0" "glFogCoorddv\0" "glFogCoorddvEXT\0" "\0" - /* _mesa_function_pool[31167]: FinishTextureSUNX (dynamic) */ + /* _mesa_function_pool[31283]: FinishTextureSUNX (dynamic) */ "\0" "glFinishTextureSUNX\0" "\0" - /* _mesa_function_pool[31189]: GetFragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[31305]: GetFragmentLightfvSGIX (dynamic) */ "iip\0" "glGetFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[31219]: Binormal3fvEXT (dynamic) */ + /* _mesa_function_pool[31335]: Binormal3fvEXT (dynamic) */ "p\0" "glBinormal3fvEXT\0" "\0" - /* _mesa_function_pool[31239]: GetBooleanv (offset 258) */ + /* _mesa_function_pool[31355]: GetBooleanv (offset 258) */ "ip\0" "glGetBooleanv\0" "\0" - /* _mesa_function_pool[31257]: ColorFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[31373]: ColorFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiiii\0" "glColorFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[31294]: Hint (offset 158) */ + /* _mesa_function_pool[31410]: Hint (offset 158) */ "ii\0" "glHint\0" "\0" - /* _mesa_function_pool[31305]: Color4dv (offset 28) */ + /* _mesa_function_pool[31421]: Color4dv (offset 28) */ "p\0" "glColor4dv\0" "\0" - /* _mesa_function_pool[31319]: VertexAttrib2svARB (will be remapped) */ + /* _mesa_function_pool[31435]: VertexAttrib2svARB (will be remapped) */ "ip\0" "glVertexAttrib2sv\0" "glVertexAttrib2svARB\0" "\0" - /* _mesa_function_pool[31362]: AreProgramsResidentNV (will be remapped) */ + /* _mesa_function_pool[31478]: AreProgramsResidentNV (will be remapped) */ "ipp\0" "glAreProgramsResidentNV\0" "\0" - /* _mesa_function_pool[31391]: WindowPos3svMESA (will be remapped) */ + /* _mesa_function_pool[31507]: WindowPos3svMESA (will be remapped) */ "p\0" "glWindowPos3sv\0" "glWindowPos3svARB\0" "glWindowPos3svMESA\0" "\0" - /* _mesa_function_pool[31446]: CopyColorSubTable (offset 347) */ + /* _mesa_function_pool[31562]: CopyColorSubTable (offset 347) */ "iiiii\0" "glCopyColorSubTable\0" "glCopyColorSubTableEXT\0" "\0" - /* _mesa_function_pool[31496]: WeightdvARB (dynamic) */ + /* _mesa_function_pool[31612]: WeightdvARB (dynamic) */ "ip\0" "glWeightdvARB\0" "\0" - /* _mesa_function_pool[31514]: DeleteRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[31630]: DeleteRenderbuffersEXT (will be remapped) */ "ip\0" "glDeleteRenderbuffers\0" "glDeleteRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[31565]: VertexAttrib4NubvARB (will be remapped) */ + /* _mesa_function_pool[31681]: VertexAttrib4NubvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nubv\0" "glVertexAttrib4NubvARB\0" "\0" - /* _mesa_function_pool[31612]: VertexAttrib3dvNV (will be remapped) */ + /* _mesa_function_pool[31728]: VertexAttrib3dvNV (will be remapped) */ "ip\0" "glVertexAttrib3dvNV\0" "\0" - /* _mesa_function_pool[31636]: GetObjectParameterfvARB (will be remapped) */ + /* _mesa_function_pool[31752]: GetObjectParameterfvARB (will be remapped) */ "iip\0" "glGetObjectParameterfvARB\0" "\0" - /* _mesa_function_pool[31667]: Vertex4iv (offset 147) */ + /* _mesa_function_pool[31783]: Vertex4iv (offset 147) */ "p\0" "glVertex4iv\0" "\0" - /* _mesa_function_pool[31682]: GetProgramEnvParameterdvARB (will be remapped) */ + /* _mesa_function_pool[31798]: GetProgramEnvParameterdvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterdvARB\0" "\0" - /* _mesa_function_pool[31717]: TexCoord4dv (offset 119) */ + /* _mesa_function_pool[31833]: TexCoord4dv (offset 119) */ "p\0" "glTexCoord4dv\0" "\0" - /* _mesa_function_pool[31734]: LockArraysEXT (will be remapped) */ + /* _mesa_function_pool[31850]: LockArraysEXT (will be remapped) */ "ii\0" "glLockArraysEXT\0" "\0" - /* _mesa_function_pool[31754]: Begin (offset 7) */ + /* _mesa_function_pool[31870]: Begin (offset 7) */ "i\0" "glBegin\0" "\0" - /* _mesa_function_pool[31765]: LightModeli (offset 165) */ + /* _mesa_function_pool[31881]: LightModeli (offset 165) */ "ii\0" "glLightModeli\0" "\0" - /* _mesa_function_pool[31783]: VertexAttribI4ivEXT (will be remapped) */ + /* _mesa_function_pool[31899]: VertexAttribI4ivEXT (will be remapped) */ "ip\0" "glVertexAttribI4ivEXT\0" "glVertexAttribI4iv\0" "\0" - /* _mesa_function_pool[31828]: Rectfv (offset 89) */ + /* _mesa_function_pool[31944]: Rectfv (offset 89) */ "pp\0" "glRectfv\0" "\0" - /* _mesa_function_pool[31841]: LightModelf (offset 163) */ + /* _mesa_function_pool[31957]: LightModelf (offset 163) */ "if\0" "glLightModelf\0" "\0" - /* _mesa_function_pool[31859]: GetTexParameterfv (offset 282) */ + /* _mesa_function_pool[31975]: GetTexParameterfv (offset 282) */ "iip\0" "glGetTexParameterfv\0" "\0" - /* _mesa_function_pool[31884]: GetLightfv (offset 264) */ + /* _mesa_function_pool[32000]: GetLightfv (offset 264) */ "iip\0" "glGetLightfv\0" "\0" - /* _mesa_function_pool[31902]: PixelTransformParameterivEXT (dynamic) */ + /* _mesa_function_pool[32018]: PixelTransformParameterivEXT (dynamic) */ "iip\0" "glPixelTransformParameterivEXT\0" "\0" - /* _mesa_function_pool[31938]: BinormalPointerEXT (dynamic) */ + /* _mesa_function_pool[32054]: BinormalPointerEXT (dynamic) */ "iip\0" "glBinormalPointerEXT\0" "\0" - /* _mesa_function_pool[31964]: VertexAttrib1dNV (will be remapped) */ + /* _mesa_function_pool[32080]: VertexAttrib1dNV (will be remapped) */ "id\0" "glVertexAttrib1dNV\0" "\0" - /* _mesa_function_pool[31987]: GetCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[32103]: GetCombinerInputParameterivNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[32026]: Disable (offset 214) */ + /* _mesa_function_pool[32142]: Disable (offset 214) */ "i\0" "glDisable\0" "\0" - /* _mesa_function_pool[32039]: MultiTexCoord2fvARB (offset 387) */ + /* _mesa_function_pool[32155]: MultiTexCoord2fvARB (offset 387) */ "ip\0" "glMultiTexCoord2fv\0" "glMultiTexCoord2fvARB\0" "\0" - /* _mesa_function_pool[32084]: GetRenderbufferParameterivEXT (will be remapped) */ + /* _mesa_function_pool[32200]: GetRenderbufferParameterivEXT (will be remapped) */ "iip\0" "glGetRenderbufferParameteriv\0" "glGetRenderbufferParameterivEXT\0" "\0" - /* _mesa_function_pool[32150]: CombinerParameterivNV (will be remapped) */ + /* _mesa_function_pool[32266]: CombinerParameterivNV (will be remapped) */ "ip\0" "glCombinerParameterivNV\0" "\0" - /* _mesa_function_pool[32178]: GenFragmentShadersATI (will be remapped) */ + /* _mesa_function_pool[32294]: GenFragmentShadersATI (will be remapped) */ "i\0" "glGenFragmentShadersATI\0" "\0" - /* _mesa_function_pool[32205]: DrawArrays (offset 310) */ + /* _mesa_function_pool[32321]: DrawArrays (offset 310) */ "iii\0" "glDrawArrays\0" "glDrawArraysEXT\0" "\0" - /* _mesa_function_pool[32239]: WeightuivARB (dynamic) */ + /* _mesa_function_pool[32355]: WeightuivARB (dynamic) */ "ip\0" "glWeightuivARB\0" "\0" - /* _mesa_function_pool[32258]: VertexAttrib2sARB (will be remapped) */ + /* _mesa_function_pool[32374]: VertexAttrib2sARB (will be remapped) */ "iii\0" "glVertexAttrib2s\0" "glVertexAttrib2sARB\0" "\0" - /* _mesa_function_pool[32300]: ColorMask (offset 210) */ + /* _mesa_function_pool[32416]: ColorMask (offset 210) */ "iiii\0" "glColorMask\0" "\0" - /* _mesa_function_pool[32318]: GenAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[32434]: GenAsyncMarkersSGIX (dynamic) */ "i\0" "glGenAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[32343]: Tangent3svEXT (dynamic) */ + /* _mesa_function_pool[32459]: Tangent3svEXT (dynamic) */ "p\0" "glTangent3svEXT\0" "\0" - /* _mesa_function_pool[32362]: GetListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[32478]: GetListParameterivSGIX (dynamic) */ "iip\0" "glGetListParameterivSGIX\0" "\0" - /* _mesa_function_pool[32392]: BindBufferARB (will be remapped) */ + /* _mesa_function_pool[32508]: BindBufferARB (will be remapped) */ "ii\0" "glBindBuffer\0" "glBindBufferARB\0" "\0" - /* _mesa_function_pool[32425]: GetInfoLogARB (will be remapped) */ + /* _mesa_function_pool[32541]: GetInfoLogARB (will be remapped) */ "iipp\0" "glGetInfoLogARB\0" "\0" - /* _mesa_function_pool[32447]: RasterPos4iv (offset 83) */ + /* _mesa_function_pool[32563]: RasterPos4iv (offset 83) */ "p\0" "glRasterPos4iv\0" "\0" - /* _mesa_function_pool[32465]: Enable (offset 215) */ + /* _mesa_function_pool[32581]: Enable (offset 215) */ "i\0" "glEnable\0" "\0" - /* _mesa_function_pool[32477]: LineStipple (offset 167) */ + /* _mesa_function_pool[32593]: LineStipple (offset 167) */ "ii\0" "glLineStipple\0" "\0" - /* _mesa_function_pool[32495]: VertexAttribs4svNV (will be remapped) */ + /* _mesa_function_pool[32611]: VertexAttribs4svNV (will be remapped) */ "iip\0" "glVertexAttribs4svNV\0" "\0" - /* _mesa_function_pool[32521]: EdgeFlagPointerListIBM (dynamic) */ + /* _mesa_function_pool[32637]: EdgeFlagPointerListIBM (dynamic) */ "ipi\0" "glEdgeFlagPointerListIBM\0" "\0" - /* _mesa_function_pool[32551]: UniformMatrix3x2fv (will be remapped) */ + /* _mesa_function_pool[32667]: UniformMatrix3x2fv (will be remapped) */ "iiip\0" "glUniformMatrix3x2fv\0" "\0" - /* _mesa_function_pool[32578]: GetMinmaxParameterfv (offset 365) */ + /* _mesa_function_pool[32694]: GetMinmaxParameterfv (offset 365) */ "iip\0" "glGetMinmaxParameterfv\0" "glGetMinmaxParameterfvEXT\0" "\0" - /* _mesa_function_pool[32632]: VertexAttrib1fvARB (will be remapped) */ + /* _mesa_function_pool[32748]: VertexAttrib1fvARB (will be remapped) */ "ip\0" "glVertexAttrib1fv\0" "glVertexAttrib1fvARB\0" "\0" - /* _mesa_function_pool[32675]: GenBuffersARB (will be remapped) */ + /* _mesa_function_pool[32791]: GenBuffersARB (will be remapped) */ "ip\0" "glGenBuffers\0" "glGenBuffersARB\0" "\0" - /* _mesa_function_pool[32708]: VertexAttribs1svNV (will be remapped) */ + /* _mesa_function_pool[32824]: VertexAttribs1svNV (will be remapped) */ "iip\0" "glVertexAttribs1svNV\0" "\0" - /* _mesa_function_pool[32734]: Vertex3fv (offset 137) */ + /* _mesa_function_pool[32850]: Vertex3fv (offset 137) */ "p\0" "glVertex3fv\0" "\0" - /* _mesa_function_pool[32749]: GetTexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[32865]: GetTexBumpParameterivATI (will be remapped) */ "ip\0" "glGetTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[32780]: Binormal3bEXT (dynamic) */ + /* _mesa_function_pool[32896]: Binormal3bEXT (dynamic) */ "iii\0" "glBinormal3bEXT\0" "\0" - /* _mesa_function_pool[32801]: FragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[32917]: FragmentMaterialivSGIX (dynamic) */ "iip\0" "glFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[32831]: IsRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[32947]: IsRenderbufferEXT (will be remapped) */ "i\0" "glIsRenderbuffer\0" "glIsRenderbufferEXT\0" "\0" - /* _mesa_function_pool[32871]: GenProgramsNV (will be remapped) */ + /* _mesa_function_pool[32987]: GenProgramsNV (will be remapped) */ "ip\0" "glGenProgramsARB\0" "glGenProgramsNV\0" "\0" - /* _mesa_function_pool[32908]: VertexAttrib4dvNV (will be remapped) */ + /* _mesa_function_pool[33024]: VertexAttrib4dvNV (will be remapped) */ "ip\0" "glVertexAttrib4dvNV\0" "\0" - /* _mesa_function_pool[32932]: EndFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[33048]: EndFragmentShaderATI (will be remapped) */ "\0" "glEndFragmentShaderATI\0" "\0" - /* _mesa_function_pool[32957]: Binormal3iEXT (dynamic) */ + /* _mesa_function_pool[33073]: Binormal3iEXT (dynamic) */ "iii\0" "glBinormal3iEXT\0" "\0" - /* _mesa_function_pool[32978]: WindowPos2fMESA (will be remapped) */ + /* _mesa_function_pool[33094]: WindowPos2fMESA (will be remapped) */ "ff\0" "glWindowPos2f\0" "glWindowPos2fARB\0" @@ -4739,589 +4759,594 @@ static const char _mesa_function_pool[] = /* these functions need to be remapped */ static const struct gl_function_pool_remap MESA_remap_table_functions[] = { - { 1577, AttachShader_remap_index }, - { 9902, CreateProgram_remap_index }, - { 22864, CreateShader_remap_index }, - { 25322, DeleteProgram_remap_index }, - { 18525, DeleteShader_remap_index }, - { 23336, DetachShader_remap_index }, - { 17928, GetAttachedShaders_remap_index }, - { 4869, GetProgramInfoLog_remap_index }, - { 405, GetProgramiv_remap_index }, - { 6542, GetShaderInfoLog_remap_index }, - { 30839, GetShaderiv_remap_index }, - { 13311, IsProgram_remap_index }, - { 12263, IsShader_remap_index }, - { 10006, StencilFuncSeparate_remap_index }, - { 3921, StencilMaskSeparate_remap_index }, - { 7624, StencilOpSeparate_remap_index }, - { 22152, UniformMatrix2x3fv_remap_index }, - { 2847, UniformMatrix2x4fv_remap_index }, - { 32551, UniformMatrix3x2fv_remap_index }, - { 30161, UniformMatrix3x4fv_remap_index }, - { 16226, UniformMatrix4x2fv_remap_index }, - { 3263, UniformMatrix4x3fv_remap_index }, - { 5030, ClampColor_remap_index }, - { 17982, ClearBufferfi_remap_index }, - { 17448, ClearBufferfv_remap_index }, - { 29184, ClearBufferiv_remap_index }, - { 13516, ClearBufferuiv_remap_index }, - { 19808, GetStringi_remap_index }, - { 2788, TexBuffer_remap_index }, - { 938, FramebufferTexture_remap_index }, - { 26315, GetBufferParameteri64v_remap_index }, - { 10106, GetInteger64i_v_remap_index }, - { 23178, VertexAttribDivisor_remap_index }, - { 9920, LoadTransposeMatrixdARB_remap_index }, - { 30568, LoadTransposeMatrixfARB_remap_index }, - { 5608, MultTransposeMatrixdARB_remap_index }, - { 23523, MultTransposeMatrixfARB_remap_index }, - { 216, SampleCoverageARB_remap_index }, - { 5834, CompressedTexImage1DARB_remap_index }, - { 24051, CompressedTexImage2DARB_remap_index }, - { 3984, CompressedTexImage3DARB_remap_index }, - { 18242, CompressedTexSubImage1DARB_remap_index }, - { 2050, CompressedTexSubImage2DARB_remap_index }, - { 20230, CompressedTexSubImage3DARB_remap_index }, - { 28340, GetCompressedTexImageARB_remap_index }, - { 3829, DisableVertexAttribArrayARB_remap_index }, - { 29726, EnableVertexAttribArrayARB_remap_index }, - { 31682, GetProgramEnvParameterdvARB_remap_index }, - { 23403, GetProgramEnvParameterfvARB_remap_index }, - { 27277, GetProgramLocalParameterdvARB_remap_index }, - { 8066, GetProgramLocalParameterfvARB_remap_index }, - { 18376, GetProgramStringARB_remap_index }, - { 27472, GetProgramivARB_remap_index }, - { 20425, GetVertexAttribdvARB_remap_index }, - { 16034, GetVertexAttribfvARB_remap_index }, - { 9765, GetVertexAttribivARB_remap_index }, - { 19289, ProgramEnvParameter4dARB_remap_index }, - { 25072, ProgramEnvParameter4dvARB_remap_index }, - { 16770, ProgramEnvParameter4fARB_remap_index }, - { 8965, ProgramEnvParameter4fvARB_remap_index }, - { 3947, ProgramLocalParameter4dARB_remap_index }, - { 13021, ProgramLocalParameter4dvARB_remap_index }, - { 29205, ProgramLocalParameter4fARB_remap_index }, - { 25675, ProgramLocalParameter4fvARB_remap_index }, - { 28094, ProgramStringARB_remap_index }, - { 19539, VertexAttrib1dARB_remap_index }, - { 15688, VertexAttrib1dvARB_remap_index }, - { 4122, VertexAttrib1fARB_remap_index }, - { 32632, VertexAttrib1fvARB_remap_index }, - { 7150, VertexAttrib1sARB_remap_index }, - { 2224, VertexAttrib1svARB_remap_index }, - { 15119, VertexAttrib2dARB_remap_index }, - { 17469, VertexAttrib2dvARB_remap_index }, - { 1596, VertexAttrib2fARB_remap_index }, - { 17582, VertexAttrib2fvARB_remap_index }, - { 32258, VertexAttrib2sARB_remap_index }, - { 31319, VertexAttrib2svARB_remap_index }, - { 11268, VertexAttrib3dARB_remap_index }, - { 8632, VertexAttrib3dvARB_remap_index }, - { 1683, VertexAttrib3fARB_remap_index }, - { 22415, VertexAttrib3fvARB_remap_index }, - { 27941, VertexAttrib3sARB_remap_index }, - { 20167, VertexAttrib3svARB_remap_index }, - { 4895, VertexAttrib4NbvARB_remap_index }, - { 17805, VertexAttrib4NivARB_remap_index }, - { 22370, VertexAttrib4NsvARB_remap_index }, - { 23355, VertexAttrib4NubARB_remap_index }, - { 31565, VertexAttrib4NubvARB_remap_index }, - { 18950, VertexAttrib4NuivARB_remap_index }, - { 3136, VertexAttrib4NusvARB_remap_index }, - { 10846, VertexAttrib4bvARB_remap_index }, - { 26685, VertexAttrib4dARB_remap_index }, - { 21189, VertexAttrib4dvARB_remap_index }, - { 11422, VertexAttrib4fARB_remap_index }, - { 11826, VertexAttrib4fvARB_remap_index }, - { 10222, VertexAttrib4ivARB_remap_index }, - { 17262, VertexAttrib4sARB_remap_index }, - { 30754, VertexAttrib4svARB_remap_index }, - { 16575, VertexAttrib4ubvARB_remap_index }, - { 30050, VertexAttrib4uivARB_remap_index }, - { 19978, VertexAttrib4usvARB_remap_index }, - { 21967, VertexAttribPointerARB_remap_index }, - { 32392, BindBufferARB_remap_index }, - { 6857, BufferDataARB_remap_index }, - { 1498, BufferSubDataARB_remap_index }, - { 30331, DeleteBuffersARB_remap_index }, - { 32675, GenBuffersARB_remap_index }, - { 17625, GetBufferParameterivARB_remap_index }, - { 16722, GetBufferPointervARB_remap_index }, - { 1451, GetBufferSubDataARB_remap_index }, - { 29998, IsBufferARB_remap_index }, - { 26159, MapBufferARB_remap_index }, - { 30969, UnmapBufferARB_remap_index }, - { 312, BeginQueryARB_remap_index }, - { 19634, DeleteQueriesARB_remap_index }, - { 12153, EndQueryARB_remap_index }, - { 28819, GenQueriesARB_remap_index }, - { 1942, GetQueryObjectivARB_remap_index }, - { 17306, GetQueryObjectuivARB_remap_index }, - { 1740, GetQueryivARB_remap_index }, - { 19885, IsQueryARB_remap_index }, - { 8242, AttachObjectARB_remap_index }, - { 18487, CompileShaderARB_remap_index }, - { 3205, CreateProgramObjectARB_remap_index }, - { 6802, CreateShaderObjectARB_remap_index }, - { 14454, DeleteObjectARB_remap_index }, - { 23842, DetachObjectARB_remap_index }, - { 11898, GetActiveUniformARB_remap_index }, - { 9440, GetAttachedObjectsARB_remap_index }, - { 9747, GetHandleARB_remap_index }, - { 32425, GetInfoLogARB_remap_index }, - { 31636, GetObjectParameterfvARB_remap_index }, - { 27151, GetObjectParameterivARB_remap_index }, - { 28577, GetShaderSourceARB_remap_index }, - { 27801, GetUniformLocationARB_remap_index }, - { 23625, GetUniformfvARB_remap_index }, - { 12596, GetUniformivARB_remap_index }, - { 20023, LinkProgramARB_remap_index }, - { 20081, ShaderSourceARB_remap_index }, - { 7524, Uniform1fARB_remap_index }, - { 29414, Uniform1fvARB_remap_index }, - { 21936, Uniform1iARB_remap_index }, - { 20878, Uniform1ivARB_remap_index }, - { 2173, Uniform2fARB_remap_index }, - { 14290, Uniform2fvARB_remap_index }, - { 26046, Uniform2iARB_remap_index }, - { 2293, Uniform2ivARB_remap_index }, - { 18597, Uniform3fARB_remap_index }, - { 9470, Uniform3fvARB_remap_index }, - { 6396, Uniform3iARB_remap_index }, - { 16828, Uniform3ivARB_remap_index }, - { 19095, Uniform4fARB_remap_index }, - { 23489, Uniform4fvARB_remap_index }, - { 24751, Uniform4iARB_remap_index }, - { 20391, Uniform4ivARB_remap_index }, - { 8294, UniformMatrix2fvARB_remap_index }, + { 1616, AttachShader_remap_index }, + { 9872, CreateProgram_remap_index }, + { 22867, CreateShader_remap_index }, + { 25325, DeleteProgram_remap_index }, + { 18511, DeleteShader_remap_index }, + { 23339, DetachShader_remap_index }, + { 17914, GetAttachedShaders_remap_index }, + { 4856, GetProgramInfoLog_remap_index }, + { 444, GetProgramiv_remap_index }, + { 6529, GetShaderInfoLog_remap_index }, + { 30994, GetShaderiv_remap_index }, + { 13335, IsProgram_remap_index }, + { 12287, IsShader_remap_index }, + { 10002, StencilFuncSeparate_remap_index }, + { 3960, StencilMaskSeparate_remap_index }, + { 7594, StencilOpSeparate_remap_index }, + { 22155, UniformMatrix2x3fv_remap_index }, + { 2886, UniformMatrix2x4fv_remap_index }, + { 32667, UniformMatrix3x2fv_remap_index }, + { 30316, UniformMatrix3x4fv_remap_index }, + { 16212, UniformMatrix4x2fv_remap_index }, + { 3302, UniformMatrix4x3fv_remap_index }, + { 5017, ClampColor_remap_index }, + { 17968, ClearBufferfi_remap_index }, + { 17434, ClearBufferfv_remap_index }, + { 29339, ClearBufferiv_remap_index }, + { 13540, ClearBufferuiv_remap_index }, + { 19794, GetStringi_remap_index }, + { 2827, TexBuffer_remap_index }, + { 977, FramebufferTexture_remap_index }, + { 26351, GetBufferParameteri64v_remap_index }, + { 10102, GetInteger64i_v_remap_index }, + { 23181, VertexAttribDivisor_remap_index }, + { 9890, LoadTransposeMatrixdARB_remap_index }, + { 30723, LoadTransposeMatrixfARB_remap_index }, + { 5637, MultTransposeMatrixdARB_remap_index }, + { 23526, MultTransposeMatrixfARB_remap_index }, + { 255, SampleCoverageARB_remap_index }, + { 5821, CompressedTexImage1DARB_remap_index }, + { 24054, CompressedTexImage2DARB_remap_index }, + { 4023, CompressedTexImage3DARB_remap_index }, + { 18228, CompressedTexSubImage1DARB_remap_index }, + { 2089, CompressedTexSubImage2DARB_remap_index }, + { 20216, CompressedTexSubImage3DARB_remap_index }, + { 28495, GetCompressedTexImageARB_remap_index }, + { 3868, DisableVertexAttribArrayARB_remap_index }, + { 29881, EnableVertexAttribArrayARB_remap_index }, + { 31798, GetProgramEnvParameterdvARB_remap_index }, + { 23406, GetProgramEnvParameterfvARB_remap_index }, + { 27380, GetProgramLocalParameterdvARB_remap_index }, + { 8036, GetProgramLocalParameterfvARB_remap_index }, + { 18362, GetProgramStringARB_remap_index }, + { 27575, GetProgramivARB_remap_index }, + { 20411, GetVertexAttribdvARB_remap_index }, + { 16020, GetVertexAttribfvARB_remap_index }, + { 9735, GetVertexAttribivARB_remap_index }, + { 19275, ProgramEnvParameter4dARB_remap_index }, + { 25075, ProgramEnvParameter4dvARB_remap_index }, + { 16756, ProgramEnvParameter4fARB_remap_index }, + { 8935, ProgramEnvParameter4fvARB_remap_index }, + { 3986, ProgramLocalParameter4dARB_remap_index }, + { 13045, ProgramLocalParameter4dvARB_remap_index }, + { 29360, ProgramLocalParameter4fARB_remap_index }, + { 25711, ProgramLocalParameter4fvARB_remap_index }, + { 28249, ProgramStringARB_remap_index }, + { 19525, VertexAttrib1dARB_remap_index }, + { 15674, VertexAttrib1dvARB_remap_index }, + { 4161, VertexAttrib1fARB_remap_index }, + { 32748, VertexAttrib1fvARB_remap_index }, + { 7120, VertexAttrib1sARB_remap_index }, + { 2263, VertexAttrib1svARB_remap_index }, + { 15105, VertexAttrib2dARB_remap_index }, + { 17455, VertexAttrib2dvARB_remap_index }, + { 1635, VertexAttrib2fARB_remap_index }, + { 17568, VertexAttrib2fvARB_remap_index }, + { 32374, VertexAttrib2sARB_remap_index }, + { 31435, VertexAttrib2svARB_remap_index }, + { 11253, VertexAttrib3dARB_remap_index }, + { 8602, VertexAttrib3dvARB_remap_index }, + { 1722, VertexAttrib3fARB_remap_index }, + { 22418, VertexAttrib3fvARB_remap_index }, + { 28096, VertexAttrib3sARB_remap_index }, + { 20153, VertexAttrib3svARB_remap_index }, + { 4882, VertexAttrib4NbvARB_remap_index }, + { 17791, VertexAttrib4NivARB_remap_index }, + { 22373, VertexAttrib4NsvARB_remap_index }, + { 23358, VertexAttrib4NubARB_remap_index }, + { 31681, VertexAttrib4NubvARB_remap_index }, + { 18936, VertexAttrib4NuivARB_remap_index }, + { 3175, VertexAttrib4NusvARB_remap_index }, + { 10842, VertexAttrib4bvARB_remap_index }, + { 26753, VertexAttrib4dARB_remap_index }, + { 21175, VertexAttrib4dvARB_remap_index }, + { 11407, VertexAttrib4fARB_remap_index }, + { 11811, VertexAttrib4fvARB_remap_index }, + { 10218, VertexAttrib4ivARB_remap_index }, + { 17248, VertexAttrib4sARB_remap_index }, + { 30909, VertexAttrib4svARB_remap_index }, + { 16561, VertexAttrib4ubvARB_remap_index }, + { 30205, VertexAttrib4uivARB_remap_index }, + { 19964, VertexAttrib4usvARB_remap_index }, + { 21970, VertexAttribPointerARB_remap_index }, + { 32508, BindBufferARB_remap_index }, + { 6827, BufferDataARB_remap_index }, + { 1537, BufferSubDataARB_remap_index }, + { 30486, DeleteBuffersARB_remap_index }, + { 32791, GenBuffersARB_remap_index }, + { 17611, GetBufferParameterivARB_remap_index }, + { 16708, GetBufferPointervARB_remap_index }, + { 1490, GetBufferSubDataARB_remap_index }, + { 30153, IsBufferARB_remap_index }, + { 26195, MapBufferARB_remap_index }, + { 31124, UnmapBufferARB_remap_index }, + { 351, BeginQueryARB_remap_index }, + { 19620, DeleteQueriesARB_remap_index }, + { 12138, EndQueryARB_remap_index }, + { 28974, GenQueriesARB_remap_index }, + { 1981, GetQueryObjectivARB_remap_index }, + { 17292, GetQueryObjectuivARB_remap_index }, + { 1779, GetQueryivARB_remap_index }, + { 19871, IsQueryARB_remap_index }, + { 8212, AttachObjectARB_remap_index }, + { 18473, CompileShaderARB_remap_index }, + { 3244, CreateProgramObjectARB_remap_index }, + { 6772, CreateShaderObjectARB_remap_index }, + { 14407, DeleteObjectARB_remap_index }, + { 23845, DetachObjectARB_remap_index }, + { 11883, GetActiveUniformARB_remap_index }, + { 9410, GetAttachedObjectsARB_remap_index }, + { 9717, GetHandleARB_remap_index }, + { 32541, GetInfoLogARB_remap_index }, + { 31752, GetObjectParameterfvARB_remap_index }, + { 27254, GetObjectParameterivARB_remap_index }, + { 28732, GetShaderSourceARB_remap_index }, + { 27956, GetUniformLocationARB_remap_index }, + { 23628, GetUniformfvARB_remap_index }, + { 12620, GetUniformivARB_remap_index }, + { 20009, LinkProgramARB_remap_index }, + { 20067, ShaderSourceARB_remap_index }, + { 7494, Uniform1fARB_remap_index }, + { 29569, Uniform1fvARB_remap_index }, + { 21939, Uniform1iARB_remap_index }, + { 20864, Uniform1ivARB_remap_index }, + { 2212, Uniform2fARB_remap_index }, + { 14243, Uniform2fvARB_remap_index }, + { 26082, Uniform2iARB_remap_index }, + { 2332, Uniform2ivARB_remap_index }, + { 18583, Uniform3fARB_remap_index }, + { 9440, Uniform3fvARB_remap_index }, + { 6383, Uniform3iARB_remap_index }, + { 16814, Uniform3ivARB_remap_index }, + { 19081, Uniform4fARB_remap_index }, + { 23492, Uniform4fvARB_remap_index }, + { 24754, Uniform4iARB_remap_index }, + { 20377, Uniform4ivARB_remap_index }, + { 8264, UniformMatrix2fvARB_remap_index }, { 17, UniformMatrix3fvARB_remap_index }, - { 2690, UniformMatrix4fvARB_remap_index }, - { 25184, UseProgramObjectARB_remap_index }, - { 14807, ValidateProgramARB_remap_index }, - { 21232, BindAttribLocationARB_remap_index }, - { 4940, GetActiveAttribARB_remap_index }, - { 16509, GetAttribLocationARB_remap_index }, - { 29132, DrawBuffersARB_remap_index }, - { 17850, DrawArraysInstancedARB_remap_index }, - { 6457, DrawElementsInstancedARB_remap_index }, - { 13126, RenderbufferStorageMultisample_remap_index }, - { 13597, FramebufferTextureARB_remap_index }, - { 25577, FramebufferTextureFaceARB_remap_index }, - { 23991, ProgramParameteriARB_remap_index }, - { 19143, FlushMappedBufferRange_remap_index }, - { 27568, MapBufferRange_remap_index }, - { 16337, BindVertexArray_remap_index }, - { 14630, GenVertexArrays_remap_index }, - { 29928, CopyBufferSubData_remap_index }, - { 30858, ClientWaitSync_remap_index }, - { 2609, DeleteSync_remap_index }, - { 7191, FenceSync_remap_index }, - { 15178, GetInteger64v_remap_index }, - { 22477, GetSynciv_remap_index }, - { 29071, IsSync_remap_index }, - { 9388, WaitSync_remap_index }, - { 3797, DrawElementsBaseVertex_remap_index }, - { 30263, DrawRangeElementsBaseVertex_remap_index }, - { 26190, MultiDrawElementsBaseVertex_remap_index }, - { 5091, BindTransformFeedback_remap_index }, - { 3232, DeleteTransformFeedbacks_remap_index }, - { 6429, DrawTransformFeedback_remap_index }, - { 9607, GenTransformFeedbacks_remap_index }, - { 27984, IsTransformFeedback_remap_index }, - { 25770, PauseTransformFeedback_remap_index }, - { 5528, ResumeTransformFeedback_remap_index }, - { 5396, PolygonOffsetEXT_remap_index }, - { 23099, GetPixelTexGenParameterfvSGIS_remap_index }, - { 4417, GetPixelTexGenParameterivSGIS_remap_index }, - { 22832, PixelTexGenParameterfSGIS_remap_index }, - { 624, PixelTexGenParameterfvSGIS_remap_index }, - { 12634, PixelTexGenParameteriSGIS_remap_index }, - { 13771, PixelTexGenParameterivSGIS_remap_index }, - { 16425, SampleMaskSGIS_remap_index }, - { 19825, SamplePatternSGIS_remap_index }, - { 26119, ColorPointerEXT_remap_index }, - { 17512, EdgeFlagPointerEXT_remap_index }, - { 6050, IndexPointerEXT_remap_index }, - { 6130, NormalPointerEXT_remap_index }, - { 15772, TexCoordPointerEXT_remap_index }, - { 6980, VertexPointerEXT_remap_index }, - { 3599, PointParameterfEXT_remap_index }, - { 7831, PointParameterfvEXT_remap_index }, - { 31734, LockArraysEXT_remap_index }, - { 14871, UnlockArraysEXT_remap_index }, - { 1267, SecondaryColor3bEXT_remap_index }, - { 7990, SecondaryColor3bvEXT_remap_index }, - { 10399, SecondaryColor3dEXT_remap_index }, - { 25380, SecondaryColor3dvEXT_remap_index }, - { 27850, SecondaryColor3fEXT_remap_index }, - { 18178, SecondaryColor3fvEXT_remap_index }, - { 470, SecondaryColor3iEXT_remap_index }, - { 16082, SecondaryColor3ivEXT_remap_index }, - { 10034, SecondaryColor3sEXT_remap_index }, - { 30522, SecondaryColor3svEXT_remap_index }, - { 26987, SecondaryColor3ubEXT_remap_index }, - { 21123, SecondaryColor3ubvEXT_remap_index }, - { 12876, SecondaryColor3uiEXT_remap_index }, - { 22719, SecondaryColor3uivEXT_remap_index }, - { 25627, SecondaryColor3usEXT_remap_index }, - { 12949, SecondaryColor3usvEXT_remap_index }, - { 11769, SecondaryColorPointerEXT_remap_index }, - { 25441, MultiDrawArraysEXT_remap_index }, - { 20813, MultiDrawElementsEXT_remap_index }, - { 21008, FogCoordPointerEXT_remap_index }, - { 4566, FogCoorddEXT_remap_index }, - { 31135, FogCoorddvEXT_remap_index }, - { 4683, FogCoordfEXT_remap_index }, - { 26910, FogCoordfvEXT_remap_index }, - { 19047, PixelTexGenSGIX_remap_index }, - { 27495, BlendFuncSeparateEXT_remap_index }, - { 6892, FlushVertexArrayRangeNV_remap_index }, - { 5345, VertexArrayRangeNV_remap_index }, - { 27915, CombinerInputNV_remap_index }, - { 2116, CombinerOutputNV_remap_index }, - { 30675, CombinerParameterfNV_remap_index }, - { 5219, CombinerParameterfvNV_remap_index }, - { 22201, CombinerParameteriNV_remap_index }, - { 32150, CombinerParameterivNV_remap_index }, - { 7268, FinalCombinerInputNV_remap_index }, - { 9813, GetCombinerInputParameterfvNV_remap_index }, - { 31987, GetCombinerInputParameterivNV_remap_index }, - { 13872, GetCombinerOutputParameterfvNV_remap_index }, - { 13700, GetCombinerOutputParameterivNV_remap_index }, - { 6637, GetFinalCombinerInputParameterfvNV_remap_index }, - { 24623, GetFinalCombinerInputParameterivNV_remap_index }, - { 12574, ResizeBuffersMESA_remap_index }, - { 11095, WindowPos2dMESA_remap_index }, - { 1060, WindowPos2dvMESA_remap_index }, - { 32978, WindowPos2fMESA_remap_index }, - { 7935, WindowPos2fvMESA_remap_index }, - { 18125, WindowPos2iMESA_remap_index }, - { 20298, WindowPos2ivMESA_remap_index }, - { 20912, WindowPos2sMESA_remap_index }, - { 5748, WindowPos2svMESA_remap_index }, - { 7760, WindowPos3dMESA_remap_index }, - { 14018, WindowPos3dvMESA_remap_index }, - { 516, WindowPos3fMESA_remap_index }, - { 14932, WindowPos3fvMESA_remap_index }, - { 23884, WindowPos3iMESA_remap_index }, - { 29873, WindowPos3ivMESA_remap_index }, - { 18742, WindowPos3sMESA_remap_index }, - { 31391, WindowPos3svMESA_remap_index }, - { 11046, WindowPos4dMESA_remap_index }, - { 16966, WindowPos4dvMESA_remap_index }, - { 13977, WindowPos4fMESA_remap_index }, - { 30429, WindowPos4fvMESA_remap_index }, - { 30026, WindowPos4iMESA_remap_index }, - { 12377, WindowPos4ivMESA_remap_index }, - { 18926, WindowPos4sMESA_remap_index }, - { 3183, WindowPos4svMESA_remap_index }, - { 13739, MultiModeDrawArraysIBM_remap_index }, - { 28690, MultiModeDrawElementsIBM_remap_index }, - { 12181, DeleteFencesNV_remap_index }, - { 27762, FinishFenceNV_remap_index }, - { 3721, GenFencesNV_remap_index }, - { 16946, GetFenceivNV_remap_index }, - { 8227, IsFenceNV_remap_index }, - { 13627, SetFenceNV_remap_index }, - { 4178, TestFenceNV_remap_index }, - { 31362, AreProgramsResidentNV_remap_index }, - { 30717, BindProgramNV_remap_index }, - { 25710, DeleteProgramsNV_remap_index }, - { 21341, ExecuteProgramNV_remap_index }, - { 32871, GenProgramsNV_remap_index }, - { 23204, GetProgramParameterdvNV_remap_index }, - { 10461, GetProgramParameterfvNV_remap_index }, - { 26093, GetProgramStringNV_remap_index }, - { 24261, GetProgramivNV_remap_index }, - { 23438, GetTrackMatrixivNV_remap_index }, - { 25887, GetVertexAttribPointervNV_remap_index }, - { 24556, GetVertexAttribdvNV_remap_index }, - { 9283, GetVertexAttribfvNV_remap_index }, - { 18349, GetVertexAttribivNV_remap_index }, - { 19173, IsProgramNV_remap_index }, - { 9366, LoadProgramNV_remap_index }, - { 27591, ProgramParameters4dvNV_remap_index }, - { 24191, ProgramParameters4fvNV_remap_index }, - { 20602, RequestResidentProgramsNV_remap_index }, - { 22179, TrackMatrixNV_remap_index }, - { 31964, VertexAttrib1dNV_remap_index }, - { 13538, VertexAttrib1dvNV_remap_index }, - { 28196, VertexAttrib1fNV_remap_index }, - { 2415, VertexAttrib1fvNV_remap_index }, - { 30486, VertexAttrib1sNV_remap_index }, - { 15005, VertexAttrib1svNV_remap_index }, - { 4845, VertexAttrib2dNV_remap_index }, - { 13431, VertexAttrib2dvNV_remap_index }, - { 20057, VertexAttrib2fNV_remap_index }, - { 12997, VertexAttrib2fvNV_remap_index }, - { 5960, VertexAttrib2sNV_remap_index }, - { 18796, VertexAttrib2svNV_remap_index }, - { 11243, VertexAttrib3dNV_remap_index }, - { 31612, VertexAttrib3dvNV_remap_index }, - { 10273, VertexAttrib3fNV_remap_index }, - { 24583, VertexAttrib3fvNV_remap_index }, - { 22022, VertexAttrib3sNV_remap_index }, - { 23465, VertexAttrib3svNV_remap_index }, - { 28664, VertexAttrib4dNV_remap_index }, - { 32908, VertexAttrib4dvNV_remap_index }, - { 4467, VertexAttrib4fNV_remap_index }, - { 9416, VertexAttrib4fvNV_remap_index }, - { 26569, VertexAttrib4sNV_remap_index }, - { 1409, VertexAttrib4svNV_remap_index }, - { 5003, VertexAttrib4ubNV_remap_index }, - { 778, VertexAttrib4ubvNV_remap_index }, - { 21521, VertexAttribPointerNV_remap_index }, - { 2267, VertexAttribs1dvNV_remap_index }, - { 25975, VertexAttribs1fvNV_remap_index }, - { 32708, VertexAttribs1svNV_remap_index }, - { 10298, VertexAttribs2dvNV_remap_index }, - { 25145, VertexAttribs2fvNV_remap_index }, - { 17538, VertexAttribs2svNV_remap_index }, - { 5247, VertexAttribs3dvNV_remap_index }, - { 2147, VertexAttribs3fvNV_remap_index }, - { 29621, VertexAttribs3svNV_remap_index }, - { 26659, VertexAttribs4dvNV_remap_index }, - { 5319, VertexAttribs4fvNV_remap_index }, - { 32495, VertexAttribs4svNV_remap_index }, - { 29369, VertexAttribs4ubvNV_remap_index }, - { 26729, GetTexBumpParameterfvATI_remap_index }, - { 32749, GetTexBumpParameterivATI_remap_index }, - { 18459, TexBumpParameterfvATI_remap_index }, - { 20473, TexBumpParameterivATI_remap_index }, - { 15551, AlphaFragmentOp1ATI_remap_index }, - { 10889, AlphaFragmentOp2ATI_remap_index }, - { 24499, AlphaFragmentOp3ATI_remap_index }, - { 29548, BeginFragmentShaderATI_remap_index }, - { 30916, BindFragmentShaderATI_remap_index }, - { 23594, ColorFragmentOp1ATI_remap_index }, - { 4345, ColorFragmentOp2ATI_remap_index }, - { 31257, ColorFragmentOp3ATI_remap_index }, - { 5485, DeleteFragmentShaderATI_remap_index }, - { 32932, EndFragmentShaderATI_remap_index }, - { 32178, GenFragmentShadersATI_remap_index }, - { 25299, PassTexCoordATI_remap_index }, - { 6960, SampleMapATI_remap_index }, - { 6733, SetFragmentShaderConstantATI_remap_index }, - { 363, PointParameteriNV_remap_index }, - { 14179, PointParameterivNV_remap_index }, - { 28503, ActiveStencilFaceEXT_remap_index }, - { 27251, BindVertexArrayAPPLE_remap_index }, - { 2737, DeleteVertexArraysAPPLE_remap_index }, - { 17955, GenVertexArraysAPPLE_remap_index }, - { 23269, IsVertexArrayAPPLE_remap_index }, - { 819, GetProgramNamedParameterdvNV_remap_index }, - { 3562, GetProgramNamedParameterfvNV_remap_index }, - { 26760, ProgramNamedParameter4dNV_remap_index }, - { 14505, ProgramNamedParameter4dvNV_remap_index }, - { 8899, ProgramNamedParameter4fNV_remap_index }, - { 11734, ProgramNamedParameter4fvNV_remap_index }, - { 16877, PrimitiveRestartIndexNV_remap_index }, - { 30406, PrimitiveRestartNV_remap_index }, - { 24170, DepthBoundsEXT_remap_index }, - { 1159, BlendEquationSeparateEXT_remap_index }, - { 14706, BindFramebufferEXT_remap_index }, - { 25486, BindRenderbufferEXT_remap_index }, - { 9663, CheckFramebufferStatusEXT_remap_index }, - { 22520, DeleteFramebuffersEXT_remap_index }, - { 31514, DeleteRenderbuffersEXT_remap_index }, - { 13455, FramebufferRenderbufferEXT_remap_index }, - { 13644, FramebufferTexture1DEXT_remap_index }, - { 11528, FramebufferTexture2DEXT_remap_index }, - { 11148, FramebufferTexture3DEXT_remap_index }, - { 23135, GenFramebuffersEXT_remap_index }, - { 17403, GenRenderbuffersEXT_remap_index }, - { 6679, GenerateMipmapEXT_remap_index }, - { 21597, GetFramebufferAttachmentParameterivEXT_remap_index }, - { 32084, GetRenderbufferParameterivEXT_remap_index }, - { 20353, IsFramebufferEXT_remap_index }, - { 32831, IsRenderbufferEXT_remap_index }, - { 8174, RenderbufferStorageEXT_remap_index }, - { 695, BlitFramebufferEXT_remap_index }, - { 14324, BufferParameteriAPPLE_remap_index }, - { 19205, FlushMappedBufferRangeAPPLE_remap_index }, - { 1815, BindFragDataLocationEXT_remap_index }, - { 24283, GetFragDataLocationEXT_remap_index }, - { 10576, GetUniformuivEXT_remap_index }, - { 2933, GetVertexAttribIivEXT_remap_index }, - { 4195, GetVertexAttribIuivEXT_remap_index }, - { 12014, Uniform1uiEXT_remap_index }, - { 27676, Uniform1uivEXT_remap_index }, - { 22118, Uniform2uiEXT_remap_index }, - { 4309, Uniform2uivEXT_remap_index }, - { 28943, Uniform3uiEXT_remap_index }, - { 14652, Uniform3uivEXT_remap_index }, - { 3486, Uniform4uiEXT_remap_index }, - { 8675, Uniform4uivEXT_remap_index }, - { 18306, VertexAttribI1iEXT_remap_index }, - { 965, VertexAttribI1ivEXT_remap_index }, - { 2516, VertexAttribI1uiEXT_remap_index }, - { 12725, VertexAttribI1uivEXT_remap_index }, + { 2729, UniformMatrix4fvARB_remap_index }, + { 25187, UseProgramObjectARB_remap_index }, + { 14793, ValidateProgramARB_remap_index }, + { 21218, BindAttribLocationARB_remap_index }, + { 4927, GetActiveAttribARB_remap_index }, + { 16495, GetAttribLocationARB_remap_index }, + { 29287, DrawBuffersARB_remap_index }, + { 17836, DrawArraysInstancedARB_remap_index }, + { 6444, DrawElementsInstancedARB_remap_index }, + { 13150, RenderbufferStorageMultisample_remap_index }, + { 13621, FramebufferTextureARB_remap_index }, + { 25613, FramebufferTextureFaceARB_remap_index }, + { 23994, ProgramParameteriARB_remap_index }, + { 19129, FlushMappedBufferRange_remap_index }, + { 27671, MapBufferRange_remap_index }, + { 16323, BindVertexArray_remap_index }, + { 14616, GenVertexArrays_remap_index }, + { 30083, CopyBufferSubData_remap_index }, + { 31013, ClientWaitSync_remap_index }, + { 2648, DeleteSync_remap_index }, + { 7161, FenceSync_remap_index }, + { 15164, GetInteger64v_remap_index }, + { 22480, GetSynciv_remap_index }, + { 29226, IsSync_remap_index }, + { 9358, WaitSync_remap_index }, + { 3836, DrawElementsBaseVertex_remap_index }, + { 30418, DrawRangeElementsBaseVertex_remap_index }, + { 26226, MultiDrawElementsBaseVertex_remap_index }, + { 5078, BindTransformFeedback_remap_index }, + { 3271, DeleteTransformFeedbacks_remap_index }, + { 6416, DrawTransformFeedback_remap_index }, + { 9577, GenTransformFeedbacks_remap_index }, + { 28139, IsTransformFeedback_remap_index }, + { 25806, PauseTransformFeedback_remap_index }, + { 5557, ResumeTransformFeedback_remap_index }, + { 21538, ClearDepthf_remap_index }, + { 6720, DepthRangef_remap_index }, + { 14428, GetShaderPrecisionFormat_remap_index }, + { 9942, ReleaseShaderCompiler_remap_index }, + { 10885, ShaderBinary_remap_index }, + { 5425, PolygonOffsetEXT_remap_index }, + { 23102, GetPixelTexGenParameterfvSGIS_remap_index }, + { 4404, GetPixelTexGenParameterivSGIS_remap_index }, + { 22835, PixelTexGenParameterfSGIS_remap_index }, + { 663, PixelTexGenParameterfvSGIS_remap_index }, + { 12658, PixelTexGenParameteriSGIS_remap_index }, + { 13763, PixelTexGenParameterivSGIS_remap_index }, + { 16411, SampleMaskSGIS_remap_index }, + { 19811, SamplePatternSGIS_remap_index }, + { 26155, ColorPointerEXT_remap_index }, + { 17498, EdgeFlagPointerEXT_remap_index }, + { 6037, IndexPointerEXT_remap_index }, + { 6117, NormalPointerEXT_remap_index }, + { 15758, TexCoordPointerEXT_remap_index }, + { 6950, VertexPointerEXT_remap_index }, + { 3638, PointParameterfEXT_remap_index }, + { 7801, PointParameterfvEXT_remap_index }, + { 31850, LockArraysEXT_remap_index }, + { 14857, UnlockArraysEXT_remap_index }, + { 1306, SecondaryColor3bEXT_remap_index }, + { 7960, SecondaryColor3bvEXT_remap_index }, + { 10395, SecondaryColor3dEXT_remap_index }, + { 25383, SecondaryColor3dvEXT_remap_index }, + { 28005, SecondaryColor3fEXT_remap_index }, + { 18164, SecondaryColor3fvEXT_remap_index }, + { 509, SecondaryColor3iEXT_remap_index }, + { 16068, SecondaryColor3ivEXT_remap_index }, + { 10030, SecondaryColor3sEXT_remap_index }, + { 30677, SecondaryColor3svEXT_remap_index }, + { 27090, SecondaryColor3ubEXT_remap_index }, + { 21109, SecondaryColor3ubvEXT_remap_index }, + { 12900, SecondaryColor3uiEXT_remap_index }, + { 22722, SecondaryColor3uivEXT_remap_index }, + { 25663, SecondaryColor3usEXT_remap_index }, + { 12973, SecondaryColor3usvEXT_remap_index }, + { 11754, SecondaryColorPointerEXT_remap_index }, + { 25477, MultiDrawArraysEXT_remap_index }, + { 20799, MultiDrawElementsEXT_remap_index }, + { 20994, FogCoordPointerEXT_remap_index }, + { 4553, FogCoorddEXT_remap_index }, + { 31251, FogCoorddvEXT_remap_index }, + { 4670, FogCoordfEXT_remap_index }, + { 27013, FogCoordfvEXT_remap_index }, + { 19033, PixelTexGenSGIX_remap_index }, + { 27598, BlendFuncSeparateEXT_remap_index }, + { 6862, FlushVertexArrayRangeNV_remap_index }, + { 5374, VertexArrayRangeNV_remap_index }, + { 28070, CombinerInputNV_remap_index }, + { 2155, CombinerOutputNV_remap_index }, + { 30830, CombinerParameterfNV_remap_index }, + { 5248, CombinerParameterfvNV_remap_index }, + { 22204, CombinerParameteriNV_remap_index }, + { 32266, CombinerParameterivNV_remap_index }, + { 7238, FinalCombinerInputNV_remap_index }, + { 9783, GetCombinerInputParameterfvNV_remap_index }, + { 32103, GetCombinerInputParameterivNV_remap_index }, + { 216, GetCombinerOutputParameterfvNV_remap_index }, + { 13724, GetCombinerOutputParameterivNV_remap_index }, + { 6624, GetFinalCombinerInputParameterfvNV_remap_index }, + { 24626, GetFinalCombinerInputParameterivNV_remap_index }, + { 12598, ResizeBuffersMESA_remap_index }, + { 11080, WindowPos2dMESA_remap_index }, + { 1099, WindowPos2dvMESA_remap_index }, + { 33094, WindowPos2fMESA_remap_index }, + { 7905, WindowPos2fvMESA_remap_index }, + { 18111, WindowPos2iMESA_remap_index }, + { 20284, WindowPos2ivMESA_remap_index }, + { 20898, WindowPos2sMESA_remap_index }, + { 5735, WindowPos2svMESA_remap_index }, + { 7730, WindowPos3dMESA_remap_index }, + { 13971, WindowPos3dvMESA_remap_index }, + { 555, WindowPos3fMESA_remap_index }, + { 14918, WindowPos3fvMESA_remap_index }, + { 23887, WindowPos3iMESA_remap_index }, + { 30028, WindowPos3ivMESA_remap_index }, + { 18728, WindowPos3sMESA_remap_index }, + { 31507, WindowPos3svMESA_remap_index }, + { 11031, WindowPos4dMESA_remap_index }, + { 16952, WindowPos4dvMESA_remap_index }, + { 13930, WindowPos4fMESA_remap_index }, + { 30584, WindowPos4fvMESA_remap_index }, + { 30181, WindowPos4iMESA_remap_index }, + { 12401, WindowPos4ivMESA_remap_index }, + { 18912, WindowPos4sMESA_remap_index }, + { 3222, WindowPos4svMESA_remap_index }, + { 26721, MultiModeDrawArraysIBM_remap_index }, + { 28845, MultiModeDrawElementsIBM_remap_index }, + { 12166, DeleteFencesNV_remap_index }, + { 27917, FinishFenceNV_remap_index }, + { 3760, GenFencesNV_remap_index }, + { 16932, GetFenceivNV_remap_index }, + { 8197, IsFenceNV_remap_index }, + { 13651, SetFenceNV_remap_index }, + { 4217, TestFenceNV_remap_index }, + { 31478, AreProgramsResidentNV_remap_index }, + { 30872, BindProgramNV_remap_index }, + { 25746, DeleteProgramsNV_remap_index }, + { 21327, ExecuteProgramNV_remap_index }, + { 32987, GenProgramsNV_remap_index }, + { 23207, GetProgramParameterdvNV_remap_index }, + { 10457, GetProgramParameterfvNV_remap_index }, + { 26129, GetProgramStringNV_remap_index }, + { 24264, GetProgramivNV_remap_index }, + { 23441, GetTrackMatrixivNV_remap_index }, + { 25923, GetVertexAttribPointervNV_remap_index }, + { 24559, GetVertexAttribdvNV_remap_index }, + { 9253, GetVertexAttribfvNV_remap_index }, + { 18335, GetVertexAttribivNV_remap_index }, + { 19159, IsProgramNV_remap_index }, + { 9336, LoadProgramNV_remap_index }, + { 27694, ProgramParameters4dvNV_remap_index }, + { 24194, ProgramParameters4fvNV_remap_index }, + { 20588, RequestResidentProgramsNV_remap_index }, + { 22182, TrackMatrixNV_remap_index }, + { 32080, VertexAttrib1dNV_remap_index }, + { 13562, VertexAttrib1dvNV_remap_index }, + { 28351, VertexAttrib1fNV_remap_index }, + { 2454, VertexAttrib1fvNV_remap_index }, + { 30641, VertexAttrib1sNV_remap_index }, + { 14991, VertexAttrib1svNV_remap_index }, + { 4832, VertexAttrib2dNV_remap_index }, + { 13455, VertexAttrib2dvNV_remap_index }, + { 20043, VertexAttrib2fNV_remap_index }, + { 13021, VertexAttrib2fvNV_remap_index }, + { 5947, VertexAttrib2sNV_remap_index }, + { 18782, VertexAttrib2svNV_remap_index }, + { 11228, VertexAttrib3dNV_remap_index }, + { 31728, VertexAttrib3dvNV_remap_index }, + { 10269, VertexAttrib3fNV_remap_index }, + { 24586, VertexAttrib3fvNV_remap_index }, + { 22025, VertexAttrib3sNV_remap_index }, + { 23468, VertexAttrib3svNV_remap_index }, + { 28819, VertexAttrib4dNV_remap_index }, + { 33024, VertexAttrib4dvNV_remap_index }, + { 4454, VertexAttrib4fNV_remap_index }, + { 9386, VertexAttrib4fvNV_remap_index }, + { 26605, VertexAttrib4sNV_remap_index }, + { 1448, VertexAttrib4svNV_remap_index }, + { 4990, VertexAttrib4ubNV_remap_index }, + { 817, VertexAttrib4ubvNV_remap_index }, + { 21507, VertexAttribPointerNV_remap_index }, + { 2306, VertexAttribs1dvNV_remap_index }, + { 26011, VertexAttribs1fvNV_remap_index }, + { 32824, VertexAttribs1svNV_remap_index }, + { 10294, VertexAttribs2dvNV_remap_index }, + { 25148, VertexAttribs2fvNV_remap_index }, + { 17524, VertexAttribs2svNV_remap_index }, + { 5276, VertexAttribs3dvNV_remap_index }, + { 2186, VertexAttribs3fvNV_remap_index }, + { 29776, VertexAttribs3svNV_remap_index }, + { 26695, VertexAttribs4dvNV_remap_index }, + { 5348, VertexAttribs4fvNV_remap_index }, + { 32611, VertexAttribs4svNV_remap_index }, + { 29524, VertexAttribs4ubvNV_remap_index }, + { 26797, GetTexBumpParameterfvATI_remap_index }, + { 32865, GetTexBumpParameterivATI_remap_index }, + { 18445, TexBumpParameterfvATI_remap_index }, + { 20459, TexBumpParameterivATI_remap_index }, + { 15537, AlphaFragmentOp1ATI_remap_index }, + { 25429, AlphaFragmentOp2ATI_remap_index }, + { 24502, AlphaFragmentOp3ATI_remap_index }, + { 29703, BeginFragmentShaderATI_remap_index }, + { 31071, BindFragmentShaderATI_remap_index }, + { 23597, ColorFragmentOp1ATI_remap_index }, + { 4332, ColorFragmentOp2ATI_remap_index }, + { 31373, ColorFragmentOp3ATI_remap_index }, + { 5514, DeleteFragmentShaderATI_remap_index }, + { 33048, EndFragmentShaderATI_remap_index }, + { 32294, GenFragmentShadersATI_remap_index }, + { 25302, PassTexCoordATI_remap_index }, + { 6930, SampleMapATI_remap_index }, + { 26908, SetFragmentShaderConstantATI_remap_index }, + { 402, PointParameteriNV_remap_index }, + { 14132, PointParameterivNV_remap_index }, + { 28658, ActiveStencilFaceEXT_remap_index }, + { 27354, BindVertexArrayAPPLE_remap_index }, + { 2776, DeleteVertexArraysAPPLE_remap_index }, + { 17941, GenVertexArraysAPPLE_remap_index }, + { 23272, IsVertexArrayAPPLE_remap_index }, + { 858, GetProgramNamedParameterdvNV_remap_index }, + { 3601, GetProgramNamedParameterfvNV_remap_index }, + { 26828, ProgramNamedParameter4dNV_remap_index }, + { 14491, ProgramNamedParameter4dvNV_remap_index }, + { 8869, ProgramNamedParameter4fNV_remap_index }, + { 11719, ProgramNamedParameter4fvNV_remap_index }, + { 16863, PrimitiveRestartIndexNV_remap_index }, + { 30561, PrimitiveRestartNV_remap_index }, + { 24173, DepthBoundsEXT_remap_index }, + { 1198, BlendEquationSeparateEXT_remap_index }, + { 14692, BindFramebufferEXT_remap_index }, + { 25522, BindRenderbufferEXT_remap_index }, + { 9633, CheckFramebufferStatusEXT_remap_index }, + { 22523, DeleteFramebuffersEXT_remap_index }, + { 31630, DeleteRenderbuffersEXT_remap_index }, + { 13479, FramebufferRenderbufferEXT_remap_index }, + { 13668, FramebufferTexture1DEXT_remap_index }, + { 11513, FramebufferTexture2DEXT_remap_index }, + { 11133, FramebufferTexture3DEXT_remap_index }, + { 23138, GenFramebuffersEXT_remap_index }, + { 17389, GenRenderbuffersEXT_remap_index }, + { 6666, GenerateMipmapEXT_remap_index }, + { 21600, GetFramebufferAttachmentParameterivEXT_remap_index }, + { 32200, GetRenderbufferParameterivEXT_remap_index }, + { 20339, IsFramebufferEXT_remap_index }, + { 32947, IsRenderbufferEXT_remap_index }, + { 8144, RenderbufferStorageEXT_remap_index }, + { 734, BlitFramebufferEXT_remap_index }, + { 14277, BufferParameteriAPPLE_remap_index }, + { 19191, FlushMappedBufferRangeAPPLE_remap_index }, + { 1854, BindFragDataLocationEXT_remap_index }, + { 24286, GetFragDataLocationEXT_remap_index }, + { 10572, GetUniformuivEXT_remap_index }, + { 2972, GetVertexAttribIivEXT_remap_index }, + { 27865, GetVertexAttribIuivEXT_remap_index }, + { 11999, Uniform1uiEXT_remap_index }, + { 27779, Uniform1uivEXT_remap_index }, + { 22121, Uniform2uiEXT_remap_index }, + { 4296, Uniform2uivEXT_remap_index }, + { 29098, Uniform3uiEXT_remap_index }, + { 14638, Uniform3uivEXT_remap_index }, + { 3525, Uniform4uiEXT_remap_index }, + { 8645, Uniform4uivEXT_remap_index }, + { 18292, VertexAttribI1iEXT_remap_index }, + { 1004, VertexAttribI1ivEXT_remap_index }, + { 2555, VertexAttribI1uiEXT_remap_index }, + { 12749, VertexAttribI1uivEXT_remap_index }, { 81, VertexAttribI2iEXT_remap_index }, - { 23706, VertexAttribI2ivEXT_remap_index }, - { 5273, VertexAttribI2uiEXT_remap_index }, - { 4728, VertexAttribI2uivEXT_remap_index }, - { 26361, VertexAttribI3iEXT_remap_index }, - { 30218, VertexAttribI3ivEXT_remap_index }, - { 3340, VertexAttribI3uiEXT_remap_index }, - { 30114, VertexAttribI3uivEXT_remap_index }, - { 21848, VertexAttribI4bvEXT_remap_index }, - { 14584, VertexAttribI4iEXT_remap_index }, - { 31783, VertexAttribI4ivEXT_remap_index }, - { 13358, VertexAttribI4svEXT_remap_index }, - { 16462, VertexAttribI4ubvEXT_remap_index }, - { 16145, VertexAttribI4uiEXT_remap_index }, - { 5419, VertexAttribI4uivEXT_remap_index }, - { 11311, VertexAttribI4usvEXT_remap_index }, - { 18403, VertexAttribIPointerEXT_remap_index }, - { 3027, FramebufferTextureLayerEXT_remap_index }, - { 5660, ColorMaskIndexedEXT_remap_index }, - { 18820, DisableIndexedEXT_remap_index }, - { 26406, EnableIndexedEXT_remap_index }, - { 21552, GetBooleanIndexedvEXT_remap_index }, - { 10922, GetIntegerIndexedvEXT_remap_index }, - { 22596, IsEnabledIndexedEXT_remap_index }, - { 22496, ClearColorIiEXT_remap_index }, - { 3436, ClearColorIuiEXT_remap_index }, - { 9852, GetTexParameterIivEXT_remap_index }, - { 5908, GetTexParameterIuivEXT_remap_index }, - { 2983, TexParameterIivEXT_remap_index }, - { 26228, TexParameterIuivEXT_remap_index }, - { 4596, BeginConditionalRenderNV_remap_index }, - { 25249, EndConditionalRenderNV_remap_index }, - { 9310, BeginTransformFeedbackEXT_remap_index }, - { 18855, BindBufferBaseEXT_remap_index }, - { 18714, BindBufferOffsetEXT_remap_index }, - { 12202, BindBufferRangeEXT_remap_index }, - { 14239, EndTransformFeedbackEXT_remap_index }, - { 10774, GetTransformFeedbackVaryingEXT_remap_index }, - { 20658, TransformFeedbackVaryingsEXT_remap_index }, - { 29270, ProvokingVertexEXT_remap_index }, - { 10722, GetTexParameterPointervAPPLE_remap_index }, - { 5047, TextureRangeAPPLE_remap_index }, - { 11600, GetObjectParameterivAPPLE_remap_index }, - { 19780, ObjectPurgeableAPPLE_remap_index }, - { 5702, ObjectUnpurgeableAPPLE_remap_index }, - { 17225, ActiveProgramEXT_remap_index }, - { 17196, CreateShaderProgramEXT_remap_index }, - { 28288, UseShaderProgramEXT_remap_index }, - { 28529, StencilFuncSeparateATI_remap_index }, - { 18044, ProgramEnvParameters4fvEXT_remap_index }, - { 17090, ProgramLocalParameters4fvEXT_remap_index }, - { 14107, GetQueryObjecti64vEXT_remap_index }, - { 10324, GetQueryObjectui64vEXT_remap_index }, - { 23663, EGLImageTargetRenderbufferStorageOES_remap_index }, - { 12120, EGLImageTargetTexture2DOES_remap_index }, + { 23709, VertexAttribI2ivEXT_remap_index }, + { 5302, VertexAttribI2uiEXT_remap_index }, + { 4715, VertexAttribI2uivEXT_remap_index }, + { 26397, VertexAttribI3iEXT_remap_index }, + { 30373, VertexAttribI3ivEXT_remap_index }, + { 3379, VertexAttribI3uiEXT_remap_index }, + { 30269, VertexAttribI3uivEXT_remap_index }, + { 21851, VertexAttribI4bvEXT_remap_index }, + { 14570, VertexAttribI4iEXT_remap_index }, + { 31899, VertexAttribI4ivEXT_remap_index }, + { 13382, VertexAttribI4svEXT_remap_index }, + { 16448, VertexAttribI4ubvEXT_remap_index }, + { 16131, VertexAttribI4uiEXT_remap_index }, + { 5448, VertexAttribI4uivEXT_remap_index }, + { 11296, VertexAttribI4usvEXT_remap_index }, + { 18389, VertexAttribIPointerEXT_remap_index }, + { 3066, FramebufferTextureLayerEXT_remap_index }, + { 5172, ColorMaskIndexedEXT_remap_index }, + { 18806, DisableIndexedEXT_remap_index }, + { 26442, EnableIndexedEXT_remap_index }, + { 21555, GetBooleanIndexedvEXT_remap_index }, + { 10907, GetIntegerIndexedvEXT_remap_index }, + { 22599, IsEnabledIndexedEXT_remap_index }, + { 22499, ClearColorIiEXT_remap_index }, + { 3475, ClearColorIuiEXT_remap_index }, + { 9822, GetTexParameterIivEXT_remap_index }, + { 5895, GetTexParameterIuivEXT_remap_index }, + { 3022, TexParameterIivEXT_remap_index }, + { 26264, TexParameterIuivEXT_remap_index }, + { 4583, BeginConditionalRenderNV_remap_index }, + { 25252, EndConditionalRenderNV_remap_index }, + { 9280, BeginTransformFeedbackEXT_remap_index }, + { 18841, BindBufferBaseEXT_remap_index }, + { 18700, BindBufferOffsetEXT_remap_index }, + { 12226, BindBufferRangeEXT_remap_index }, + { 14192, EndTransformFeedbackEXT_remap_index }, + { 10770, GetTransformFeedbackVaryingEXT_remap_index }, + { 20644, TransformFeedbackVaryingsEXT_remap_index }, + { 29425, ProvokingVertexEXT_remap_index }, + { 10718, GetTexParameterPointervAPPLE_remap_index }, + { 5034, TextureRangeAPPLE_remap_index }, + { 11585, GetObjectParameterivAPPLE_remap_index }, + { 19766, ObjectPurgeableAPPLE_remap_index }, + { 5689, ObjectUnpurgeableAPPLE_remap_index }, + { 17211, ActiveProgramEXT_remap_index }, + { 17182, CreateShaderProgramEXT_remap_index }, + { 28443, UseShaderProgramEXT_remap_index }, + { 28684, StencilFuncSeparateATI_remap_index }, + { 18030, ProgramEnvParameters4fvEXT_remap_index }, + { 17076, ProgramLocalParameters4fvEXT_remap_index }, + { 14060, GetQueryObjecti64vEXT_remap_index }, + { 10320, GetQueryObjectui64vEXT_remap_index }, + { 23666, EGLImageTargetRenderbufferStorageOES_remap_index }, + { 12105, 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 */ - { 2655, _gloffset_BlendColor }, + { 2694, _gloffset_BlendColor }, /* from GL_EXT_blend_minmax */ - { 11205, _gloffset_BlendEquation }, + { 11190, _gloffset_BlendEquation }, /* from GL_EXT_color_subtable */ - { 16988, _gloffset_ColorSubTable }, - { 31446, _gloffset_CopyColorSubTable }, + { 16974, _gloffset_ColorSubTable }, + { 31562, _gloffset_CopyColorSubTable }, /* from GL_EXT_convolution */ - { 257, _gloffset_ConvolutionFilter1D }, - { 2454, _gloffset_CopyConvolutionFilter1D }, - { 4058, _gloffset_GetConvolutionParameteriv }, - { 8523, _gloffset_ConvolutionFilter2D }, - { 8725, _gloffset_ConvolutionParameteriv }, - { 9185, _gloffset_ConvolutionParameterfv }, - { 20501, _gloffset_GetSeparableFilter }, - { 23938, _gloffset_SeparableFilter2D }, - { 24801, _gloffset_ConvolutionParameteri }, - { 24924, _gloffset_ConvolutionParameterf }, - { 26595, _gloffset_GetConvolutionParameterfv }, - { 27417, _gloffset_GetConvolutionFilter }, - { 29810, _gloffset_CopyConvolutionFilter2D }, + { 296, _gloffset_ConvolutionFilter1D }, + { 2493, _gloffset_CopyConvolutionFilter1D }, + { 4097, _gloffset_GetConvolutionParameteriv }, + { 8493, _gloffset_ConvolutionFilter2D }, + { 8695, _gloffset_ConvolutionParameteriv }, + { 9155, _gloffset_ConvolutionParameterfv }, + { 20487, _gloffset_GetSeparableFilter }, + { 23941, _gloffset_SeparableFilter2D }, + { 24804, _gloffset_ConvolutionParameteri }, + { 24927, _gloffset_ConvolutionParameterf }, + { 26631, _gloffset_GetConvolutionParameterfv }, + { 27520, _gloffset_GetConvolutionFilter }, + { 29965, _gloffset_CopyConvolutionFilter2D }, /* from GL_EXT_copy_texture */ - { 15065, _gloffset_CopyTexSubImage3D }, - { 16675, _gloffset_CopyTexImage2D }, - { 24409, _gloffset_CopyTexImage1D }, - { 27098, _gloffset_CopyTexSubImage2D }, - { 29448, _gloffset_CopyTexSubImage1D }, + { 15051, _gloffset_CopyTexSubImage3D }, + { 16661, _gloffset_CopyTexImage2D }, + { 24412, _gloffset_CopyTexImage1D }, + { 27201, _gloffset_CopyTexSubImage2D }, + { 29603, _gloffset_CopyTexSubImage1D }, /* from GL_EXT_draw_range_elements */ - { 9522, _gloffset_DrawRangeElements }, + { 9492, _gloffset_DrawRangeElements }, /* from GL_EXT_histogram */ - { 856, _gloffset_Histogram }, - { 3522, _gloffset_ResetHistogram }, - { 9972, _gloffset_GetMinmax }, - { 15399, _gloffset_GetHistogramParameterfv }, - { 24334, _gloffset_GetMinmaxParameteriv }, - { 26485, _gloffset_ResetMinmax }, - { 27314, _gloffset_GetHistogramParameteriv }, - { 28463, _gloffset_GetHistogram }, - { 31032, _gloffset_Minmax }, - { 32578, _gloffset_GetMinmaxParameterfv }, + { 895, _gloffset_Histogram }, + { 3561, _gloffset_ResetHistogram }, + { 9968, _gloffset_GetMinmax }, + { 15385, _gloffset_GetHistogramParameterfv }, + { 24337, _gloffset_GetMinmaxParameteriv }, + { 26521, _gloffset_ResetMinmax }, + { 27417, _gloffset_GetHistogramParameteriv }, + { 28618, _gloffset_GetHistogram }, + { 31187, _gloffset_Minmax }, + { 32694, _gloffset_GetMinmaxParameterfv }, /* from GL_EXT_paletted_texture */ - { 8385, _gloffset_ColorTable }, - { 15245, _gloffset_GetColorTable }, - { 22882, _gloffset_GetColorTableParameterfv }, - { 24980, _gloffset_GetColorTableParameteriv }, + { 8355, _gloffset_ColorTable }, + { 15231, _gloffset_GetColorTable }, + { 22885, _gloffset_GetColorTableParameterfv }, + { 24983, _gloffset_GetColorTableParameteriv }, /* from GL_EXT_subtexture */ - { 7106, _gloffset_TexSubImage1D }, - { 10649, _gloffset_TexSubImage2D }, + { 7076, _gloffset_TexSubImage1D }, + { 10645, _gloffset_TexSubImage2D }, /* from GL_EXT_texture3D */ - { 1774, _gloffset_TexImage3D }, - { 22651, _gloffset_TexSubImage3D }, + { 1813, _gloffset_TexImage3D }, + { 22654, _gloffset_TexSubImage3D }, /* from GL_EXT_texture_object */ - { 3290, _gloffset_PrioritizeTextures }, - { 7555, _gloffset_AreTexturesResident }, - { 13562, _gloffset_GenTextures }, - { 15731, _gloffset_DeleteTextures }, - { 19486, _gloffset_IsTexture }, - { 29513, _gloffset_BindTexture }, + { 3329, _gloffset_PrioritizeTextures }, + { 7525, _gloffset_AreTexturesResident }, + { 13586, _gloffset_GenTextures }, + { 15717, _gloffset_DeleteTextures }, + { 19472, _gloffset_IsTexture }, + { 29668, _gloffset_BindTexture }, /* from GL_EXT_vertex_array */ - { 24110, _gloffset_ArrayElement }, - { 30620, _gloffset_GetPointerv }, - { 32205, _gloffset_DrawArrays }, + { 24113, _gloffset_ArrayElement }, + { 30775, _gloffset_GetPointerv }, + { 32321, _gloffset_DrawArrays }, /* from GL_SGI_color_table */ - { 7673, _gloffset_ColorTableParameteriv }, - { 8385, _gloffset_ColorTable }, - { 15245, _gloffset_GetColorTable }, - { 15355, _gloffset_CopyColorTable }, - { 19347, _gloffset_ColorTableParameterfv }, - { 22882, _gloffset_GetColorTableParameterfv }, - { 24980, _gloffset_GetColorTableParameteriv }, + { 7643, _gloffset_ColorTableParameteriv }, + { 8355, _gloffset_ColorTable }, + { 15231, _gloffset_GetColorTable }, + { 15341, _gloffset_CopyColorTable }, + { 19333, _gloffset_ColorTableParameterfv }, + { 22885, _gloffset_GetColorTableParameterfv }, + { 24983, _gloffset_GetColorTableParameteriv }, /* from GL_VERSION_1_3 */ - { 425, _gloffset_MultiTexCoord3sARB }, - { 657, _gloffset_ActiveTextureARB }, - { 4247, _gloffset_MultiTexCoord1fvARB }, - { 6155, _gloffset_MultiTexCoord3dARB }, - { 6200, _gloffset_MultiTexCoord2iARB }, - { 6324, _gloffset_MultiTexCoord2svARB }, - { 8341, _gloffset_MultiTexCoord2fARB }, - { 10354, _gloffset_MultiTexCoord3fvARB }, - { 10967, _gloffset_MultiTexCoord4sARB }, - { 11648, _gloffset_MultiTexCoord2dvARB }, - { 12063, _gloffset_MultiTexCoord1svARB }, - { 12435, _gloffset_MultiTexCoord3svARB }, - { 12496, _gloffset_MultiTexCoord4iARB }, - { 13266, _gloffset_MultiTexCoord3iARB }, - { 14136, _gloffset_MultiTexCoord1dARB }, - { 14353, _gloffset_MultiTexCoord3dvARB }, - { 15599, _gloffset_MultiTexCoord3ivARB }, - { 15644, _gloffset_MultiTexCoord2sARB }, - { 17045, _gloffset_MultiTexCoord4ivARB }, - { 18997, _gloffset_ClientActiveTextureARB }, - { 21297, _gloffset_MultiTexCoord2dARB }, - { 21717, _gloffset_MultiTexCoord4dvARB }, - { 22073, _gloffset_MultiTexCoord4fvARB }, - { 23023, _gloffset_MultiTexCoord3fARB }, - { 25531, _gloffset_MultiTexCoord4dARB }, - { 25797, _gloffset_MultiTexCoord1sARB }, - { 26001, _gloffset_MultiTexCoord1dvARB }, - { 26942, _gloffset_MultiTexCoord1ivARB }, - { 27035, _gloffset_MultiTexCoord2ivARB }, - { 27374, _gloffset_MultiTexCoord1iARB }, - { 28738, _gloffset_MultiTexCoord4svARB }, - { 29312, _gloffset_MultiTexCoord1fARB }, - { 29575, _gloffset_MultiTexCoord4fARB }, - { 32039, _gloffset_MultiTexCoord2fvARB }, + { 464, _gloffset_MultiTexCoord3sARB }, + { 696, _gloffset_ActiveTextureARB }, + { 4234, _gloffset_MultiTexCoord1fvARB }, + { 6142, _gloffset_MultiTexCoord3dARB }, + { 6187, _gloffset_MultiTexCoord2iARB }, + { 6311, _gloffset_MultiTexCoord2svARB }, + { 8311, _gloffset_MultiTexCoord2fARB }, + { 10350, _gloffset_MultiTexCoord3fvARB }, + { 10952, _gloffset_MultiTexCoord4sARB }, + { 11633, _gloffset_MultiTexCoord2dvARB }, + { 12048, _gloffset_MultiTexCoord1svARB }, + { 12459, _gloffset_MultiTexCoord3svARB }, + { 12520, _gloffset_MultiTexCoord4iARB }, + { 13290, _gloffset_MultiTexCoord3iARB }, + { 14089, _gloffset_MultiTexCoord1dARB }, + { 14306, _gloffset_MultiTexCoord3dvARB }, + { 15585, _gloffset_MultiTexCoord3ivARB }, + { 15630, _gloffset_MultiTexCoord2sARB }, + { 17031, _gloffset_MultiTexCoord4ivARB }, + { 18983, _gloffset_ClientActiveTextureARB }, + { 21283, _gloffset_MultiTexCoord2dARB }, + { 21720, _gloffset_MultiTexCoord4dvARB }, + { 22076, _gloffset_MultiTexCoord4fvARB }, + { 23026, _gloffset_MultiTexCoord3fARB }, + { 25567, _gloffset_MultiTexCoord4dARB }, + { 25833, _gloffset_MultiTexCoord1sARB }, + { 26037, _gloffset_MultiTexCoord1dvARB }, + { 27045, _gloffset_MultiTexCoord1ivARB }, + { 27138, _gloffset_MultiTexCoord2ivARB }, + { 27477, _gloffset_MultiTexCoord1iARB }, + { 28893, _gloffset_MultiTexCoord4svARB }, + { 29467, _gloffset_MultiTexCoord1fARB }, + { 29730, _gloffset_MultiTexCoord4fARB }, + { 32155, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; @@ -5329,7 +5354,7 @@ 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[] = { - { 9243, -1 }, /* TbufferMask3DFX */ + { 9213, -1 }, /* TbufferMask3DFX */ { -1, -1 } }; #endif @@ -5362,6 +5387,13 @@ static const struct gl_function_remap GL_APPLE_vertex_array_object_functions[] = }; #endif +#if defined(need_GL_ARB_ES2_compatibility) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_ARB_ES2_compatibility_functions[] = { + { -1, -1 } +}; +#endif + #if defined(need_GL_ARB_copy_buffer) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_ARB_copy_buffer_functions[] = { @@ -5400,7 +5432,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[] = { - { 12399, -1 }, /* FramebufferTextureLayer */ + { 12423, -1 }, /* FramebufferTextureLayer */ { -1, -1 } }; #endif @@ -5414,11 +5446,11 @@ 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[] = { - { 3773, -1 }, /* MatrixIndexusvARB */ - { 13087, -1 }, /* MatrixIndexuivARB */ - { 14475, -1 }, /* MatrixIndexPointerARB */ - { 19735, -1 }, /* CurrentPaletteMatrixARB */ - { 22767, -1 }, /* MatrixIndexubvARB */ + { 3812, -1 }, /* MatrixIndexusvARB */ + { 13111, -1 }, /* MatrixIndexuivARB */ + { 14461, -1 }, /* MatrixIndexPointerARB */ + { 19721, -1 }, /* CurrentPaletteMatrixARB */ + { 22770, -1 }, /* MatrixIndexubvARB */ { -1, -1 } }; #endif @@ -5495,16 +5527,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[] = { - { 2396, -1 }, /* WeightubvARB */ - { 6567, -1 }, /* WeightivARB */ - { 11070, -1 }, /* WeightPointerARB */ - { 13854, -1 }, /* WeightfvARB */ - { 17564, -1 }, /* WeightbvARB */ - { 20965, -1 }, /* WeightusvARB */ - { 23864, -1 }, /* VertexBlendARB */ - { 29396, -1 }, /* WeightsvARB */ - { 31496, -1 }, /* WeightdvARB */ - { 32239, -1 }, /* WeightuivARB */ + { 2435, -1 }, /* WeightubvARB */ + { 6554, -1 }, /* WeightivARB */ + { 11055, -1 }, /* WeightPointerARB */ + { 13846, -1 }, /* WeightfvARB */ + { 17550, -1 }, /* WeightbvARB */ + { 20951, -1 }, /* WeightusvARB */ + { 23867, -1 }, /* VertexBlendARB */ + { 29551, -1 }, /* WeightsvARB */ + { 31612, -1 }, /* WeightdvARB */ + { 32355, -1 }, /* WeightuivARB */ { -1, -1 } }; #endif @@ -5574,7 +5606,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[] = { - { 2655, _gloffset_BlendColor }, + { 2694, _gloffset_BlendColor }, { -1, -1 } }; #endif @@ -5595,15 +5627,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[] = { - { 11205, _gloffset_BlendEquation }, + { 11190, _gloffset_BlendEquation }, { -1, -1 } }; #endif #if defined(need_GL_EXT_color_subtable) static const struct gl_function_remap GL_EXT_color_subtable_functions[] = { - { 16988, _gloffset_ColorSubTable }, - { 31446, _gloffset_CopyColorSubTable }, + { 16974, _gloffset_ColorSubTable }, + { 31562, _gloffset_CopyColorSubTable }, { -1, -1 } }; #endif @@ -5617,66 +5649,66 @@ 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 }, - { 2454, _gloffset_CopyConvolutionFilter1D }, - { 4058, _gloffset_GetConvolutionParameteriv }, - { 8523, _gloffset_ConvolutionFilter2D }, - { 8725, _gloffset_ConvolutionParameteriv }, - { 9185, _gloffset_ConvolutionParameterfv }, - { 20501, _gloffset_GetSeparableFilter }, - { 23938, _gloffset_SeparableFilter2D }, - { 24801, _gloffset_ConvolutionParameteri }, - { 24924, _gloffset_ConvolutionParameterf }, - { 26595, _gloffset_GetConvolutionParameterfv }, - { 27417, _gloffset_GetConvolutionFilter }, - { 29810, _gloffset_CopyConvolutionFilter2D }, + { 296, _gloffset_ConvolutionFilter1D }, + { 2493, _gloffset_CopyConvolutionFilter1D }, + { 4097, _gloffset_GetConvolutionParameteriv }, + { 8493, _gloffset_ConvolutionFilter2D }, + { 8695, _gloffset_ConvolutionParameteriv }, + { 9155, _gloffset_ConvolutionParameterfv }, + { 20487, _gloffset_GetSeparableFilter }, + { 23941, _gloffset_SeparableFilter2D }, + { 24804, _gloffset_ConvolutionParameteri }, + { 24927, _gloffset_ConvolutionParameterf }, + { 26631, _gloffset_GetConvolutionParameterfv }, + { 27520, _gloffset_GetConvolutionFilter }, + { 29965, _gloffset_CopyConvolutionFilter2D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_coordinate_frame) static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { - { 10493, -1 }, /* TangentPointerEXT */ - { 12554, -1 }, /* Binormal3ivEXT */ - { 13219, -1 }, /* Tangent3sEXT */ - { 14540, -1 }, /* Tangent3fvEXT */ - { 18695, -1 }, /* Tangent3dvEXT */ - { 19433, -1 }, /* Binormal3bvEXT */ - { 20554, -1 }, /* Binormal3dEXT */ - { 22699, -1 }, /* Tangent3fEXT */ - { 24873, -1 }, /* Binormal3sEXT */ - { 25341, -1 }, /* Tangent3ivEXT */ - { 25360, -1 }, /* Tangent3dEXT */ - { 26274, -1 }, /* Binormal3svEXT */ - { 26840, -1 }, /* Binormal3fEXT */ - { 27728, -1 }, /* Binormal3dvEXT */ - { 28995, -1 }, /* Tangent3iEXT */ - { 30095, -1 }, /* Tangent3bvEXT */ - { 30655, -1 }, /* Tangent3bEXT */ - { 31219, -1 }, /* Binormal3fvEXT */ - { 31938, -1 }, /* BinormalPointerEXT */ - { 32343, -1 }, /* Tangent3svEXT */ - { 32780, -1 }, /* Binormal3bEXT */ - { 32957, -1 }, /* Binormal3iEXT */ + { 10489, -1 }, /* TangentPointerEXT */ + { 12578, -1 }, /* Binormal3ivEXT */ + { 13243, -1 }, /* Tangent3sEXT */ + { 14526, -1 }, /* Tangent3fvEXT */ + { 18681, -1 }, /* Tangent3dvEXT */ + { 19419, -1 }, /* Binormal3bvEXT */ + { 20540, -1 }, /* Binormal3dEXT */ + { 22702, -1 }, /* Tangent3fEXT */ + { 24876, -1 }, /* Binormal3sEXT */ + { 25344, -1 }, /* Tangent3ivEXT */ + { 25363, -1 }, /* Tangent3dEXT */ + { 26310, -1 }, /* Binormal3svEXT */ + { 26943, -1 }, /* Binormal3fEXT */ + { 27831, -1 }, /* Binormal3dvEXT */ + { 29150, -1 }, /* Tangent3iEXT */ + { 30250, -1 }, /* Tangent3bvEXT */ + { 30810, -1 }, /* Tangent3bEXT */ + { 31335, -1 }, /* Binormal3fvEXT */ + { 32054, -1 }, /* BinormalPointerEXT */ + { 32459, -1 }, /* Tangent3svEXT */ + { 32896, -1 }, /* Binormal3bEXT */ + { 33073, -1 }, /* Binormal3iEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_copy_texture) static const struct gl_function_remap GL_EXT_copy_texture_functions[] = { - { 15065, _gloffset_CopyTexSubImage3D }, - { 16675, _gloffset_CopyTexImage2D }, - { 24409, _gloffset_CopyTexImage1D }, - { 27098, _gloffset_CopyTexSubImage2D }, - { 29448, _gloffset_CopyTexSubImage1D }, + { 15051, _gloffset_CopyTexSubImage3D }, + { 16661, _gloffset_CopyTexImage2D }, + { 24412, _gloffset_CopyTexImage1D }, + { 27201, _gloffset_CopyTexSubImage2D }, + { 29603, _gloffset_CopyTexSubImage1D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_cull_vertex) static const struct gl_function_remap GL_EXT_cull_vertex_functions[] = { - { 8874, -1 }, /* CullParameterdvEXT */ - { 11693, -1 }, /* CullParameterfvEXT */ + { 8844, -1 }, /* CullParameterdvEXT */ + { 11678, -1 }, /* CullParameterfvEXT */ { -1, -1 } }; #endif @@ -5704,7 +5736,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[] = { - { 9522, _gloffset_DrawRangeElements }, + { 9492, _gloffset_DrawRangeElements }, { -1, -1 } }; #endif @@ -5753,39 +5785,39 @@ 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 }, - { 3522, _gloffset_ResetHistogram }, - { 9972, _gloffset_GetMinmax }, - { 15399, _gloffset_GetHistogramParameterfv }, - { 24334, _gloffset_GetMinmaxParameteriv }, - { 26485, _gloffset_ResetMinmax }, - { 27314, _gloffset_GetHistogramParameteriv }, - { 28463, _gloffset_GetHistogram }, - { 31032, _gloffset_Minmax }, - { 32578, _gloffset_GetMinmaxParameterfv }, + { 895, _gloffset_Histogram }, + { 3561, _gloffset_ResetHistogram }, + { 9968, _gloffset_GetMinmax }, + { 15385, _gloffset_GetHistogramParameterfv }, + { 24337, _gloffset_GetMinmaxParameteriv }, + { 26521, _gloffset_ResetMinmax }, + { 27417, _gloffset_GetHistogramParameteriv }, + { 28618, _gloffset_GetHistogram }, + { 31187, _gloffset_Minmax }, + { 32694, _gloffset_GetMinmaxParameterfv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_index_func) static const struct gl_function_remap GL_EXT_index_func_functions[] = { - { 11479, -1 }, /* IndexFuncEXT */ + { 11464, -1 }, /* IndexFuncEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_index_material) static const struct gl_function_remap GL_EXT_index_material_functions[] = { - { 21052, -1 }, /* IndexMaterialEXT */ + { 21038, -1 }, /* IndexMaterialEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_light_texture) static const struct gl_function_remap GL_EXT_light_texture_functions[] = { - { 26294, -1 }, /* ApplyTextureEXT */ - { 26439, -1 }, /* TextureMaterialEXT */ - { 26464, -1 }, /* TextureLightEXT */ + { 26330, -1 }, /* ApplyTextureEXT */ + { 26475, -1 }, /* TextureMaterialEXT */ + { 26500, -1 }, /* TextureLightEXT */ { -1, -1 } }; #endif @@ -5806,20 +5838,20 @@ 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[] = { - { 8385, _gloffset_ColorTable }, - { 15245, _gloffset_GetColorTable }, - { 22882, _gloffset_GetColorTableParameterfv }, - { 24980, _gloffset_GetColorTableParameteriv }, + { 8355, _gloffset_ColorTable }, + { 15231, _gloffset_GetColorTable }, + { 22885, _gloffset_GetColorTableParameterfv }, + { 24983, _gloffset_GetColorTableParameteriv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_pixel_transform) static const struct gl_function_remap GL_EXT_pixel_transform_functions[] = { - { 21682, -1 }, /* PixelTransformParameterfEXT */ - { 21762, -1 }, /* PixelTransformParameteriEXT */ - { 30370, -1 }, /* PixelTransformParameterfvEXT */ - { 31902, -1 }, /* PixelTransformParameterivEXT */ + { 21685, -1 }, /* PixelTransformParameterfEXT */ + { 21765, -1 }, /* PixelTransformParameteriEXT */ + { 30525, -1 }, /* PixelTransformParameterfvEXT */ + { 32018, -1 }, /* PixelTransformParameterivEXT */ { -1, -1 } }; #endif @@ -5868,16 +5900,16 @@ 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[] = { - { 7106, _gloffset_TexSubImage1D }, - { 10649, _gloffset_TexSubImage2D }, + { 7076, _gloffset_TexSubImage1D }, + { 10645, _gloffset_TexSubImage2D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_texture3D) static const struct gl_function_remap GL_EXT_texture3D_functions[] = { - { 1774, _gloffset_TexImage3D }, - { 22651, _gloffset_TexSubImage3D }, + { 1813, _gloffset_TexImage3D }, + { 22654, _gloffset_TexSubImage3D }, { -1, -1 } }; #endif @@ -5898,19 +5930,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[] = { - { 3290, _gloffset_PrioritizeTextures }, - { 7555, _gloffset_AreTexturesResident }, - { 13562, _gloffset_GenTextures }, - { 15731, _gloffset_DeleteTextures }, - { 19486, _gloffset_IsTexture }, - { 29513, _gloffset_BindTexture }, + { 3329, _gloffset_PrioritizeTextures }, + { 7525, _gloffset_AreTexturesResident }, + { 13586, _gloffset_GenTextures }, + { 15717, _gloffset_DeleteTextures }, + { 19472, _gloffset_IsTexture }, + { 29668, _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[] = { - { 13804, -1 }, /* TextureNormalEXT */ + { 13796, -1 }, /* TextureNormalEXT */ { -1, -1 } }; #endif @@ -5932,30 +5964,30 @@ static const struct gl_function_remap GL_EXT_transform_feedback_functions[] = { #if defined(need_GL_EXT_vertex_array) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_EXT_vertex_array_functions[] = { - { 24110, _gloffset_ArrayElement }, - { 30620, _gloffset_GetPointerv }, - { 32205, _gloffset_DrawArrays }, + { 24113, _gloffset_ArrayElement }, + { 30775, _gloffset_GetPointerv }, + { 32321, _gloffset_DrawArrays }, { -1, -1 } }; #endif #if defined(need_GL_EXT_vertex_weighting) static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = { - { 19516, -1 }, /* VertexWeightfvEXT */ - { 26818, -1 }, /* VertexWeightfEXT */ - { 28432, -1 }, /* VertexWeightPointerEXT */ + { 19502, -1 }, /* VertexWeightfvEXT */ + { 26886, -1 }, /* VertexWeightfEXT */ + { 28587, -1 }, /* VertexWeightPointerEXT */ { -1, -1 } }; #endif #if defined(need_GL_HP_image_transform) static const struct gl_function_remap GL_HP_image_transform_functions[] = { - { 2327, -1 }, /* GetImageTransformParameterfvHP */ - { 3739, -1 }, /* ImageTransformParameterfHP */ - { 10187, -1 }, /* ImageTransformParameterfvHP */ - { 11948, -1 }, /* ImageTransformParameteriHP */ - { 12289, -1 }, /* GetImageTransformParameterivHP */ - { 19580, -1 }, /* ImageTransformParameterivHP */ + { 2366, -1 }, /* GetImageTransformParameterfvHP */ + { 3778, -1 }, /* ImageTransformParameterfHP */ + { 10183, -1 }, /* ImageTransformParameterfvHP */ + { 11933, -1 }, /* ImageTransformParameteriHP */ + { 12313, -1 }, /* GetImageTransformParameterivHP */ + { 19566, -1 }, /* ImageTransformParameterivHP */ { -1, -1 } }; #endif @@ -5969,14 +6001,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[] = { - { 4379, -1 }, /* SecondaryColorPointerListIBM */ - { 6021, -1 }, /* NormalPointerListIBM */ - { 7729, -1 }, /* FogCoordPointerListIBM */ - { 8036, -1 }, /* VertexPointerListIBM */ - { 11869, -1 }, /* ColorPointerListIBM */ - { 13326, -1 }, /* TexCoordPointerListIBM */ - { 13826, -1 }, /* IndexPointerListIBM */ - { 32521, -1 }, /* EdgeFlagPointerListIBM */ + { 4366, -1 }, /* SecondaryColorPointerListIBM */ + { 6008, -1 }, /* NormalPointerListIBM */ + { 7699, -1 }, /* FogCoordPointerListIBM */ + { 8006, -1 }, /* VertexPointerListIBM */ + { 11854, -1 }, /* ColorPointerListIBM */ + { 13350, -1 }, /* TexCoordPointerListIBM */ + { 13818, -1 }, /* IndexPointerListIBM */ + { 32637, -1 }, /* EdgeFlagPointerListIBM */ { -1, -1 } }; #endif @@ -5990,10 +6022,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[] = { - { 12666, -1 }, /* VertexPointervINTEL */ - { 15492, -1 }, /* ColorPointervINTEL */ - { 29784, -1 }, /* NormalPointervINTEL */ - { 30302, -1 }, /* TexCoordPointervINTEL */ + { 12690, -1 }, /* VertexPointervINTEL */ + { 15478, -1 }, /* ColorPointervINTEL */ + { 29939, -1 }, /* NormalPointervINTEL */ + { 30457, -1 }, /* TexCoordPointervINTEL */ { -1, -1 } }; #endif @@ -6007,10 +6039,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[] = { - { 1638, -1 }, /* GetDebugLogLengthMESA */ - { 3461, -1 }, /* ClearDebugLogMESA */ - { 4540, -1 }, /* GetDebugLogMESA */ - { 30813, -1 }, /* CreateDebugObjectMESA */ + { 1677, -1 }, /* GetDebugLogLengthMESA */ + { 3500, -1 }, /* ClearDebugLogMESA */ + { 4527, -1 }, /* GetDebugLogMESA */ + { 30968, -1 }, /* CreateDebugObjectMESA */ { -1, -1 } }; #endif @@ -6031,15 +6063,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[] = { - { 6768, -1 }, /* GetMapAttribParameterivNV */ - { 8491, -1 }, /* MapControlPointsNV */ - { 8590, -1 }, /* MapParameterfvNV */ - { 10632, -1 }, /* EvalMapsNV */ - { 17162, -1 }, /* GetMapAttribParameterfvNV */ - { 17379, -1 }, /* MapParameterivNV */ - { 24724, -1 }, /* GetMapParameterivNV */ - { 25222, -1 }, /* GetMapParameterfvNV */ - { 29099, -1 }, /* GetMapControlPointsNV */ + { 6738, -1 }, /* GetMapAttribParameterivNV */ + { 8461, -1 }, /* MapControlPointsNV */ + { 8560, -1 }, /* MapParameterfvNV */ + { 10628, -1 }, /* EvalMapsNV */ + { 17148, -1 }, /* GetMapAttribParameterfvNV */ + { 17365, -1 }, /* MapParameterivNV */ + { 24727, -1 }, /* GetMapParameterivNV */ + { 25225, -1 }, /* GetMapParameterfvNV */ + { 29254, -1 }, /* GetMapControlPointsNV */ { -1, -1 } }; #endif @@ -6081,8 +6113,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[] = { - { 15884, -1 }, /* CombinerStageParameterfvNV */ - { 16280, -1 }, /* GetCombinerStageParameterfvNV */ + { 15870, -1 }, /* CombinerStageParameterfvNV */ + { 16266, -1 }, /* GetCombinerStageParameterfvNV */ { -1, -1 } }; #endif @@ -6110,23 +6142,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[] = { - { 8711, -1 }, /* HintPGI */ + { 8681, -1 }, /* HintPGI */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_detail_texture) static const struct gl_function_remap GL_SGIS_detail_texture_functions[] = { - { 16253, -1 }, /* GetDetailTexFuncSGIS */ - { 16620, -1 }, /* DetailTexFuncSGIS */ + { 16239, -1 }, /* GetDetailTexFuncSGIS */ + { 16606, -1 }, /* DetailTexFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_fog_function) static const struct gl_function_remap GL_SGIS_fog_function_functions[] = { - { 27080, -1 }, /* FogFuncSGIS */ - { 27781, -1 }, /* GetFogFuncSGIS */ + { 27183, -1 }, /* FogFuncSGIS */ + { 27936, -1 }, /* GetFogFuncSGIS */ { -1, -1 } }; #endif @@ -6154,112 +6186,112 @@ 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[] = { - { 6829, -1 }, /* GetSharpenTexFuncSGIS */ - { 22047, -1 }, /* SharpenTexFuncSGIS */ + { 6799, -1 }, /* GetSharpenTexFuncSGIS */ + { 22050, -1 }, /* SharpenTexFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_texture4D) static const struct gl_function_remap GL_SGIS_texture4D_functions[] = { - { 1010, -1 }, /* TexImage4DSGIS */ - { 15800, -1 }, /* TexSubImage4DSGIS */ + { 1049, -1 }, /* TexImage4DSGIS */ + { 15786, -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[] = { - { 15198, -1 }, /* TextureColorMaskSGIS */ + { 15184, -1 }, /* TextureColorMaskSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_texture_filter4) static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = { - { 7006, -1 }, /* GetTexFilterFuncSGIS */ - { 16399, -1 }, /* TexFilterFuncSGIS */ + { 6976, -1 }, /* GetTexFilterFuncSGIS */ + { 16385, -1 }, /* TexFilterFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_async) static const struct gl_function_remap GL_SGIX_async_functions[] = { - { 3387, -1 }, /* AsyncMarkerSGIX */ - { 4519, -1 }, /* FinishAsyncSGIX */ - { 5466, -1 }, /* PollAsyncSGIX */ - { 22228, -1 }, /* DeleteAsyncMarkersSGIX */ - { 22283, -1 }, /* IsAsyncMarkerSGIX */ - { 32318, -1 }, /* GenAsyncMarkersSGIX */ + { 3426, -1 }, /* AsyncMarkerSGIX */ + { 4506, -1 }, /* FinishAsyncSGIX */ + { 5495, -1 }, /* PollAsyncSGIX */ + { 22231, -1 }, /* DeleteAsyncMarkersSGIX */ + { 22286, -1 }, /* IsAsyncMarkerSGIX */ + { 32434, -1 }, /* GenAsyncMarkersSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_flush_raster) static const struct gl_function_remap GL_SGIX_flush_raster_functions[] = { - { 7383, -1 }, /* FlushRasterSGIX */ + { 7353, -1 }, /* FlushRasterSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_fragment_lighting) static const struct gl_function_remap GL_SGIX_fragment_lighting_functions[] = { - { 2625, -1 }, /* FragmentMaterialfvSGIX */ - { 5370, -1 }, /* FragmentLightiSGIX */ - { 8103, -1 }, /* FragmentMaterialfSGIX */ - { 8264, -1 }, /* GetFragmentLightivSGIX */ - { 9137, -1 }, /* FragmentLightModeliSGIX */ - { 10695, -1 }, /* FragmentLightivSGIX */ - { 11013, -1 }, /* GetFragmentMaterialivSGIX */ - { 16193, -1 }, /* GetFragmentMaterialfvSGIX */ - { 19403, -1 }, /* FragmentLightModelfSGIX */ - { 19703, -1 }, /* FragmentColorMaterialSGIX */ - { 20120, -1 }, /* FragmentMaterialiSGIX */ - { 21380, -1 }, /* LightEnviSGIX */ - { 22974, -1 }, /* FragmentLightModelfvSGIX */ - { 23309, -1 }, /* FragmentLightfvSGIX */ - { 28165, -1 }, /* FragmentLightModelivSGIX */ - { 28314, -1 }, /* FragmentLightfSGIX */ - { 31189, -1 }, /* GetFragmentLightfvSGIX */ - { 32801, -1 }, /* FragmentMaterialivSGIX */ + { 2664, -1 }, /* FragmentMaterialfvSGIX */ + { 5399, -1 }, /* FragmentLightiSGIX */ + { 8073, -1 }, /* FragmentMaterialfSGIX */ + { 8234, -1 }, /* GetFragmentLightivSGIX */ + { 9107, -1 }, /* FragmentLightModeliSGIX */ + { 10691, -1 }, /* FragmentLightivSGIX */ + { 10998, -1 }, /* GetFragmentMaterialivSGIX */ + { 16179, -1 }, /* GetFragmentMaterialfvSGIX */ + { 19389, -1 }, /* FragmentLightModelfSGIX */ + { 19689, -1 }, /* FragmentColorMaterialSGIX */ + { 20106, -1 }, /* FragmentMaterialiSGIX */ + { 21366, -1 }, /* LightEnviSGIX */ + { 22977, -1 }, /* FragmentLightModelfvSGIX */ + { 23312, -1 }, /* FragmentLightfvSGIX */ + { 28320, -1 }, /* FragmentLightModelivSGIX */ + { 28469, -1 }, /* FragmentLightfSGIX */ + { 31305, -1 }, /* GetFragmentLightfvSGIX */ + { 32917, -1 }, /* FragmentMaterialivSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_framezoom) static const struct gl_function_remap GL_SGIX_framezoom_functions[] = { - { 22306, -1 }, /* FrameZoomSGIX */ + { 22309, -1 }, /* FrameZoomSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_igloo_interface) static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = { - { 28622, -1 }, /* IglooInterfaceSGIX */ + { 28777, -1 }, /* IglooInterfaceSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_instruments) static const struct gl_function_remap GL_SGIX_instruments_functions[] = { - { 2805, -1 }, /* ReadInstrumentsSGIX */ - { 6585, -1 }, /* PollInstrumentsSGIX */ - { 10553, -1 }, /* GetInstrumentsSGIX */ - { 12924, -1 }, /* StartInstrumentsSGIX */ - { 15918, -1 }, /* StopInstrumentsSGIX */ - { 17777, -1 }, /* InstrumentsBufferSGIX */ + { 2844, -1 }, /* ReadInstrumentsSGIX */ + { 6572, -1 }, /* PollInstrumentsSGIX */ + { 10549, -1 }, /* GetInstrumentsSGIX */ + { 12948, -1 }, /* StartInstrumentsSGIX */ + { 15904, -1 }, /* StopInstrumentsSGIX */ + { 17763, -1 }, /* InstrumentsBufferSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_list_priority) static const struct gl_function_remap GL_SGIX_list_priority_functions[] = { - { 1241, -1 }, /* ListParameterfSGIX */ - { 3089, -1 }, /* GetListParameterfvSGIX */ - { 17692, -1 }, /* ListParameteriSGIX */ - { 18645, -1 }, /* ListParameterfvSGIX */ - { 20786, -1 }, /* ListParameterivSGIX */ - { 32362, -1 }, /* GetListParameterivSGIX */ + { 1280, -1 }, /* ListParameterfSGIX */ + { 3128, -1 }, /* GetListParameterfvSGIX */ + { 17678, -1 }, /* ListParameteriSGIX */ + { 18631, -1 }, /* ListParameterfvSGIX */ + { 20772, -1 }, /* ListParameterivSGIX */ + { 32478, -1 }, /* GetListParameterivSGIX */ { -1, -1 } }; #endif @@ -6273,134 +6305,134 @@ 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[] = { - { 3685, -1 }, /* LoadIdentityDeformationMapSGIX */ - { 16018, -1 }, /* DeformSGIX */ - { 24222, -1 }, /* DeformationMap3fSGIX */ - { 31077, -1 }, /* DeformationMap3dSGIX */ + { 3724, -1 }, /* LoadIdentityDeformationMapSGIX */ + { 12187, -1 }, /* DeformationMap3dSGIX */ + { 16004, -1 }, /* DeformSGIX */ + { 24225, -1 }, /* DeformationMap3fSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_reference_plane) static const struct gl_function_remap GL_SGIX_reference_plane_functions[] = { - { 14749, -1 }, /* ReferencePlaneSGIX */ + { 14735, -1 }, /* ReferencePlaneSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_sprite) static const struct gl_function_remap GL_SGIX_sprite_functions[] = { - { 9635, -1 }, /* SpriteParameterfvSGIX */ - { 20575, -1 }, /* SpriteParameteriSGIX */ - { 26519, -1 }, /* SpriteParameterfSGIX */ - { 29242, -1 }, /* SpriteParameterivSGIX */ + { 9605, -1 }, /* SpriteParameterfvSGIX */ + { 20561, -1 }, /* SpriteParameteriSGIX */ + { 26555, -1 }, /* SpriteParameterfSGIX */ + { 29397, -1 }, /* SpriteParameterivSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_tag_sample_buffer) static const struct gl_function_remap GL_SGIX_tag_sample_buffer_functions[] = { - { 20634, -1 }, /* TagSampleBufferSGIX */ + { 20620, -1 }, /* TagSampleBufferSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGI_color_table) static const struct gl_function_remap GL_SGI_color_table_functions[] = { - { 7673, _gloffset_ColorTableParameteriv }, - { 8385, _gloffset_ColorTable }, - { 15245, _gloffset_GetColorTable }, - { 15355, _gloffset_CopyColorTable }, - { 19347, _gloffset_ColorTableParameterfv }, - { 22882, _gloffset_GetColorTableParameterfv }, - { 24980, _gloffset_GetColorTableParameteriv }, + { 7643, _gloffset_ColorTableParameteriv }, + { 8355, _gloffset_ColorTable }, + { 15231, _gloffset_GetColorTable }, + { 15341, _gloffset_CopyColorTable }, + { 19333, _gloffset_ColorTableParameterfv }, + { 22885, _gloffset_GetColorTableParameterfv }, + { 24983, _gloffset_GetColorTableParameteriv }, { -1, -1 } }; #endif #if defined(need_GL_SUNX_constant_data) static const struct gl_function_remap GL_SUNX_constant_data_functions[] = { - { 31167, -1 }, /* FinishTextureSUNX */ + { 31283, -1 }, /* FinishTextureSUNX */ { -1, -1 } }; #endif #if defined(need_GL_SUN_global_alpha) static const struct gl_function_remap GL_SUN_global_alpha_functions[] = { - { 3408, -1 }, /* GlobalAlphaFactorubSUN */ - { 4818, -1 }, /* GlobalAlphaFactoriSUN */ - { 6610, -1 }, /* GlobalAlphaFactordSUN */ - { 9719, -1 }, /* GlobalAlphaFactoruiSUN */ - { 10144, -1 }, /* GlobalAlphaFactorbSUN */ - { 13239, -1 }, /* GlobalAlphaFactorfSUN */ - { 13403, -1 }, /* GlobalAlphaFactorusSUN */ - { 22569, -1 }, /* GlobalAlphaFactorsSUN */ + { 3447, -1 }, /* GlobalAlphaFactorubSUN */ + { 4805, -1 }, /* GlobalAlphaFactoriSUN */ + { 6597, -1 }, /* GlobalAlphaFactordSUN */ + { 9689, -1 }, /* GlobalAlphaFactoruiSUN */ + { 10140, -1 }, /* GlobalAlphaFactorbSUN */ + { 13263, -1 }, /* GlobalAlphaFactorfSUN */ + { 13427, -1 }, /* GlobalAlphaFactorusSUN */ + { 22572, -1 }, /* GlobalAlphaFactorsSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_mesh_array) static const struct gl_function_remap GL_SUN_mesh_array_functions[] = { - { 29033, -1 }, /* DrawMeshArraysSUN */ + { 29188, -1 }, /* DrawMeshArraysSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_triangle_list) static const struct gl_function_remap GL_SUN_triangle_list_functions[] = { - { 4493, -1 }, /* ReplacementCodeubSUN */ - { 6369, -1 }, /* ReplacementCodeubvSUN */ - { 19068, -1 }, /* ReplacementCodeusvSUN */ - { 19256, -1 }, /* ReplacementCodePointerSUN */ - { 21444, -1 }, /* ReplacementCodeuiSUN */ - { 22257, -1 }, /* ReplacementCodeusSUN */ - { 29699, -1 }, /* ReplacementCodeuivSUN */ + { 4480, -1 }, /* ReplacementCodeubSUN */ + { 6356, -1 }, /* ReplacementCodeubvSUN */ + { 19054, -1 }, /* ReplacementCodeusvSUN */ + { 19242, -1 }, /* ReplacementCodePointerSUN */ + { 21430, -1 }, /* ReplacementCodeuiSUN */ + { 22260, -1 }, /* ReplacementCodeusSUN */ + { 29854, -1 }, /* ReplacementCodeuivSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_vertex) static const struct gl_function_remap GL_SUN_vertex_functions[] = { - { 1115, -1 }, /* ReplacementCodeuiColor3fVertex3fvSUN */ - { 1313, -1 }, /* TexCoord4fColor4fNormal3fVertex4fvSUN */ - { 1539, -1 }, /* TexCoord2fColor4ubVertex3fvSUN */ - { 1869, -1 }, /* ReplacementCodeuiVertex3fvSUN */ - { 2003, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */ - { 2561, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */ - { 2874, -1 }, /* Color4ubVertex3fvSUN */ - { 4652, -1 }, /* Color4ubVertex3fSUN */ - { 4775, -1 }, /* TexCoord2fVertex3fSUN */ - { 5119, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */ - { 5570, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */ - { 6264, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */ - { 7061, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ - { 7420, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ - { 8132, -1 }, /* TexCoord2fNormal3fVertex3fSUN */ - { 8936, -1 }, /* Color3fVertex3fSUN */ - { 10080, -1 }, /* Color3fVertex3fvSUN */ - { 10518, -1 }, /* Color4fNormal3fVertex3fvSUN */ - { 11358, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ - { 12787, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ - { 14398, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ - { 14891, -1 }, /* TexCoord2fColor3fVertex3fSUN */ - { 15943, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ - { 16358, -1 }, /* Color4ubVertex2fvSUN */ - { 16645, -1 }, /* Normal3fVertex3fSUN */ - { 17718, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ - { 18079, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ - { 18897, -1 }, /* TexCoord2fVertex3fvSUN */ - { 19673, -1 }, /* Color4ubVertex2fSUN */ - { 19911, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */ - { 21893, -1 }, /* TexCoord2fColor4ubVertex3fSUN */ - { 22325, -1 }, /* Normal3fVertex3fvSUN */ - { 22791, -1 }, /* Color4fNormal3fVertex3fSUN */ - { 23771, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ - { 25840, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ - { 27196, -1 }, /* TexCoord4fVertex4fSUN */ - { 27622, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ - { 28009, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ - { 28136, -1 }, /* TexCoord4fVertex4fvSUN */ - { 28870, -1 }, /* ReplacementCodeuiVertex3fSUN */ + { 1154, -1 }, /* ReplacementCodeuiColor3fVertex3fvSUN */ + { 1352, -1 }, /* TexCoord4fColor4fNormal3fVertex4fvSUN */ + { 1578, -1 }, /* TexCoord2fColor4ubVertex3fvSUN */ + { 1908, -1 }, /* ReplacementCodeuiVertex3fvSUN */ + { 2042, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */ + { 2600, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */ + { 2913, -1 }, /* Color4ubVertex3fvSUN */ + { 4639, -1 }, /* Color4ubVertex3fSUN */ + { 4762, -1 }, /* TexCoord2fVertex3fSUN */ + { 5106, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */ + { 5599, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */ + { 6251, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */ + { 7031, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ + { 7390, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ + { 8102, -1 }, /* TexCoord2fNormal3fVertex3fSUN */ + { 8906, -1 }, /* Color3fVertex3fSUN */ + { 10076, -1 }, /* Color3fVertex3fvSUN */ + { 10514, -1 }, /* Color4fNormal3fVertex3fvSUN */ + { 11343, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ + { 12811, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ + { 14351, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ + { 14877, -1 }, /* TexCoord2fColor3fVertex3fSUN */ + { 15929, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ + { 16344, -1 }, /* Color4ubVertex2fvSUN */ + { 16631, -1 }, /* Normal3fVertex3fSUN */ + { 17704, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ + { 18065, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ + { 18883, -1 }, /* TexCoord2fVertex3fvSUN */ + { 19659, -1 }, /* Color4ubVertex2fSUN */ + { 19897, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */ + { 21896, -1 }, /* TexCoord2fColor4ubVertex3fSUN */ + { 22328, -1 }, /* Normal3fVertex3fvSUN */ + { 22794, -1 }, /* Color4fNormal3fVertex3fSUN */ + { 23774, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ + { 25876, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ + { 27299, -1 }, /* TexCoord4fVertex4fSUN */ + { 27725, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ + { 28164, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ + { 28291, -1 }, /* TexCoord4fVertex4fvSUN */ + { 29025, -1 }, /* ReplacementCodeuiVertex3fSUN */ { -1, -1 } }; #endif @@ -6408,40 +6440,40 @@ 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 }, - { 4247, _gloffset_MultiTexCoord1fvARB }, - { 6155, _gloffset_MultiTexCoord3dARB }, - { 6200, _gloffset_MultiTexCoord2iARB }, - { 6324, _gloffset_MultiTexCoord2svARB }, - { 8341, _gloffset_MultiTexCoord2fARB }, - { 10354, _gloffset_MultiTexCoord3fvARB }, - { 10967, _gloffset_MultiTexCoord4sARB }, - { 11648, _gloffset_MultiTexCoord2dvARB }, - { 12063, _gloffset_MultiTexCoord1svARB }, - { 12435, _gloffset_MultiTexCoord3svARB }, - { 12496, _gloffset_MultiTexCoord4iARB }, - { 13266, _gloffset_MultiTexCoord3iARB }, - { 14136, _gloffset_MultiTexCoord1dARB }, - { 14353, _gloffset_MultiTexCoord3dvARB }, - { 15599, _gloffset_MultiTexCoord3ivARB }, - { 15644, _gloffset_MultiTexCoord2sARB }, - { 17045, _gloffset_MultiTexCoord4ivARB }, - { 18997, _gloffset_ClientActiveTextureARB }, - { 21297, _gloffset_MultiTexCoord2dARB }, - { 21717, _gloffset_MultiTexCoord4dvARB }, - { 22073, _gloffset_MultiTexCoord4fvARB }, - { 23023, _gloffset_MultiTexCoord3fARB }, - { 25531, _gloffset_MultiTexCoord4dARB }, - { 25797, _gloffset_MultiTexCoord1sARB }, - { 26001, _gloffset_MultiTexCoord1dvARB }, - { 26942, _gloffset_MultiTexCoord1ivARB }, - { 27035, _gloffset_MultiTexCoord2ivARB }, - { 27374, _gloffset_MultiTexCoord1iARB }, - { 28738, _gloffset_MultiTexCoord4svARB }, - { 29312, _gloffset_MultiTexCoord1fARB }, - { 29575, _gloffset_MultiTexCoord4fARB }, - { 32039, _gloffset_MultiTexCoord2fvARB }, + { 464, _gloffset_MultiTexCoord3sARB }, + { 696, _gloffset_ActiveTextureARB }, + { 4234, _gloffset_MultiTexCoord1fvARB }, + { 6142, _gloffset_MultiTexCoord3dARB }, + { 6187, _gloffset_MultiTexCoord2iARB }, + { 6311, _gloffset_MultiTexCoord2svARB }, + { 8311, _gloffset_MultiTexCoord2fARB }, + { 10350, _gloffset_MultiTexCoord3fvARB }, + { 10952, _gloffset_MultiTexCoord4sARB }, + { 11633, _gloffset_MultiTexCoord2dvARB }, + { 12048, _gloffset_MultiTexCoord1svARB }, + { 12459, _gloffset_MultiTexCoord3svARB }, + { 12520, _gloffset_MultiTexCoord4iARB }, + { 13290, _gloffset_MultiTexCoord3iARB }, + { 14089, _gloffset_MultiTexCoord1dARB }, + { 14306, _gloffset_MultiTexCoord3dvARB }, + { 15585, _gloffset_MultiTexCoord3ivARB }, + { 15630, _gloffset_MultiTexCoord2sARB }, + { 17031, _gloffset_MultiTexCoord4ivARB }, + { 18983, _gloffset_ClientActiveTextureARB }, + { 21283, _gloffset_MultiTexCoord2dARB }, + { 21720, _gloffset_MultiTexCoord4dvARB }, + { 22076, _gloffset_MultiTexCoord4fvARB }, + { 23026, _gloffset_MultiTexCoord3fARB }, + { 25567, _gloffset_MultiTexCoord4dARB }, + { 25833, _gloffset_MultiTexCoord1sARB }, + { 26037, _gloffset_MultiTexCoord1dvARB }, + { 27045, _gloffset_MultiTexCoord1ivARB }, + { 27138, _gloffset_MultiTexCoord2ivARB }, + { 27477, _gloffset_MultiTexCoord1iARB }, + { 28893, _gloffset_MultiTexCoord4svARB }, + { 29467, _gloffset_MultiTexCoord1fARB }, + { 29730, _gloffset_MultiTexCoord4fARB }, + { 32155, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; #endif diff --git a/src/mesa/main/renderbuffer.c b/src/mesa/main/renderbuffer.c index 3d1a8f8592..23c662bab7 100644 --- a/src/mesa/main/renderbuffer.c +++ b/src/mesa/main/renderbuffer.c @@ -1481,7 +1481,7 @@ _mesa_add_color_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) { - GLuint b; + gl_buffer_index b; if (rgbBits > 16 || alphaBits > 16) { _mesa_problem(ctx, @@ -1545,7 +1545,7 @@ _mesa_add_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) { - GLuint b; + gl_buffer_index b; /* for window system framebuffers only! */ assert(fb->Name == 0); @@ -1883,10 +1883,11 @@ _mesa_add_soft_renderbuffers(struct gl_framebuffer *fb, /** * Attach a renderbuffer to a framebuffer. + * \param bufferName one of the BUFFER_x tokens */ void _mesa_add_renderbuffer(struct gl_framebuffer *fb, - GLuint bufferName, struct gl_renderbuffer *rb) + gl_buffer_index bufferName, struct gl_renderbuffer *rb) { assert(fb); assert(rb); @@ -1916,9 +1917,11 @@ _mesa_add_renderbuffer(struct gl_framebuffer *fb, /** * Remove the named renderbuffer from the given framebuffer. + * \param bufferName one of the BUFFER_x tokens */ void -_mesa_remove_renderbuffer(struct gl_framebuffer *fb, GLuint bufferName) +_mesa_remove_renderbuffer(struct gl_framebuffer *fb, + gl_buffer_index bufferName) { struct gl_renderbuffer *rb; diff --git a/src/mesa/main/renderbuffer.h b/src/mesa/main/renderbuffer.h index 62e812f93a..4702a8e952 100644 --- a/src/mesa/main/renderbuffer.h +++ b/src/mesa/main/renderbuffer.h @@ -27,6 +27,7 @@ #define RENDERBUFFER_H #include "glheader.h" +#include "mtypes.h" struct gl_context; struct gl_framebuffer; @@ -95,10 +96,11 @@ _mesa_add_soft_renderbuffers(struct gl_framebuffer *fb, extern void _mesa_add_renderbuffer(struct gl_framebuffer *fb, - GLuint bufferName, struct gl_renderbuffer *rb); + gl_buffer_index bufferName, struct gl_renderbuffer *rb); extern void -_mesa_remove_renderbuffer(struct gl_framebuffer *fb, GLuint bufferName); +_mesa_remove_renderbuffer(struct gl_framebuffer *fb, + gl_buffer_index bufferName); extern void _mesa_reference_renderbuffer(struct gl_renderbuffer **ptr, diff --git a/src/mesa/main/scissor.c b/src/mesa/main/scissor.c index 4cf0bc2528..df665994a9 100644 --- a/src/mesa/main/scissor.c +++ b/src/mesa/main/scissor.c @@ -25,6 +25,7 @@ #include "main/glheader.h" #include "main/context.h" +#include "main/mtypes.h" #include "main/scissor.h" diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index 96df58d35c..2ffd8be0eb 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -41,6 +41,8 @@ #include "main/dispatch.h" #include "main/enums.h" #include "main/hash.h" +#include "main/mfeatures.h" +#include "main/mtypes.h" #include "main/shaderapi.h" #include "main/shaderobj.h" #include "program/program.h" @@ -48,6 +50,7 @@ #include "program/prog_uniform.h" #include "talloc.h" #include <stdbool.h> +#include "../glsl/glsl_parser_extras.h" /** Define this to enable shader substitution (see below) */ #define SHADER_SUBST 0 @@ -1637,8 +1640,7 @@ _mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, void GLAPIENTRY _mesa_ReleaseShaderCompiler(void) { - GET_CURRENT_CONTEXT(ctx); - _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__); + _mesa_destroy_shader_compiler_caches(); } @@ -1881,6 +1883,9 @@ _mesa_init_shader_dispatch(struct _glapi_table *exec) SET_BindFragDataLocationEXT(exec, _mesa_BindFragDataLocation); SET_GetFragDataLocationEXT(exec, _mesa_GetFragDataLocation); + /* GL_ARB_ES2_compatibility */ + SET_ReleaseShaderCompiler(exec, _mesa_ReleaseShaderCompiler); + #endif /* FEATURE_GL */ } diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c index 216bbce003..647fd31cab 100644 --- a/src/mesa/main/shaderobj.c +++ b/src/mesa/main/shaderobj.c @@ -32,6 +32,8 @@ #include "main/glheader.h" #include "main/context.h" #include "main/hash.h" +#include "main/mfeatures.h" +#include "main/mtypes.h" #include "main/shaderobj.h" #include "program/program.h" #include "program/prog_parameter.h" diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c index 3abee0178e..ce9fc4de32 100644 --- a/src/mesa/main/shared.c +++ b/src/mesa/main/shared.c @@ -30,6 +30,7 @@ #include "imports.h" +#include "mfeatures.h" #include "mtypes.h" #include "hash.h" #if FEATURE_ATI_fragment_shader diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c index 2c8bcbeaf7..e1a5c6c0f9 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -59,8 +59,10 @@ #include "imports.h" #include "context.h" #include "macros.h" +#include "mfeatures.h" #include "get.h" #include "dispatch.h" +#include "mtypes.h" #if FEATURE_ARB_sync #include "syncobj.h" diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c index e3d2a786b3..7a0b522a2d 100644 --- a/src/mesa/main/texcompress.c +++ b/src/mesa/main/texcompress.c @@ -34,6 +34,8 @@ #include "imports.h" #include "colormac.h" #include "formats.h" +#include "mfeatures.h" +#include "mtypes.h" #include "texcompress.h" diff --git a/src/mesa/main/texcompress.h b/src/mesa/main/texcompress.h index 83856429c5..19b08bbadf 100644 --- a/src/mesa/main/texcompress.h +++ b/src/mesa/main/texcompress.h @@ -25,8 +25,11 @@ #ifndef TEXCOMPRESS_H #define TEXCOMPRESS_H -#include "mtypes.h" #include "formats.h" +#include "glheader.h" +#include "mfeatures.h" + +struct gl_context; #if _HAVE_FULL_GL diff --git a/src/mesa/main/texcompress_fxt1.c b/src/mesa/main/texcompress_fxt1.c index 33f46d4c8b..bb7fb567f2 100644 --- a/src/mesa/main/texcompress_fxt1.c +++ b/src/mesa/main/texcompress_fxt1.c @@ -34,6 +34,7 @@ #include "colormac.h" #include "image.h" #include "macros.h" +#include "mfeatures.h" #include "mipmap.h" #include "texcompress.h" #include "texcompress_fxt1.h" diff --git a/src/mesa/main/texcompress_fxt1.h b/src/mesa/main/texcompress_fxt1.h index 38048b26cc..b991f4c67e 100644 --- a/src/mesa/main/texcompress_fxt1.h +++ b/src/mesa/main/texcompress_fxt1.h @@ -26,6 +26,7 @@ #define TEXCOMPRESS_FXT1_H #include "glheader.h" +#include "mfeatures.h" #include "texstore.h" struct gl_texture_image; diff --git a/src/mesa/main/texcompress_s3tc.c b/src/mesa/main/texcompress_s3tc.c index 0e893a59fa..25257ecc3d 100644 --- a/src/mesa/main/texcompress_s3tc.c +++ b/src/mesa/main/texcompress_s3tc.c @@ -39,6 +39,8 @@ #include "dlopen.h" #include "image.h" #include "macros.h" +#include "mfeatures.h" +#include "mtypes.h" #include "texcompress.h" #include "texcompress_s3tc.h" #include "texstore.h" diff --git a/src/mesa/main/texcompress_s3tc.h b/src/mesa/main/texcompress_s3tc.h index d0a5b186b7..74a0343b9b 100644 --- a/src/mesa/main/texcompress_s3tc.h +++ b/src/mesa/main/texcompress_s3tc.h @@ -25,9 +25,13 @@ #ifndef TEXCOMPRESS_S3TC_H #define TEXCOMPRESS_S3TC_H -#include "main/mtypes.h" +#include "compiler.h" +#include "glheader.h" +#include "mfeatures.h" #include "texstore.h" +struct gl_context; +struct gl_texture_image; #if FEATURE_texture_s3tc diff --git a/src/mesa/main/texenv.c b/src/mesa/main/texenv.c index 508dbf4887..194bcbea98 100644 --- a/src/mesa/main/texenv.c +++ b/src/mesa/main/texenv.c @@ -34,6 +34,7 @@ #include "main/context.h" #include "main/enums.h" #include "main/macros.h" +#include "main/mtypes.h" #include "main/texenv.h" #include "main/texstate.h" diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index a8bffe416d..c1380f2a64 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -28,6 +28,7 @@ #include "glheader.h" #include "imports.h" +#include "mtypes.h" #include "program/program.h" #include "program/prog_parameter.h" #include "program/prog_cache.h" @@ -1466,7 +1467,7 @@ create_new_program(struct gl_context *ctx, struct state_key *key, p.last_tex_stage = 0; release_temps(ctx, &p); - if (key->enabled_units) { + if (key->enabled_units && key->num_draw_buffers) { GLboolean needbumpstage = GL_FALSE; /* Zeroth pass - bump map textures first */ @@ -1559,7 +1560,7 @@ create_new_program(struct gl_context *ctx, struct state_key *key, _mesa_copy_instructions(p.program->Base.Instructions, instBuffer, p.program->Base.NumInstructions); - if (p.program->FogOption) { + if (key->num_draw_buffers && p.program->FogOption) { _mesa_append_fog_code(ctx, p.program); p.program->FogOption = GL_NONE; } diff --git a/src/mesa/main/texenvprogram.h b/src/mesa/main/texenvprogram.h index abfb916d21..22e30a5194 100644 --- a/src/mesa/main/texenvprogram.h +++ b/src/mesa/main/texenvprogram.h @@ -27,7 +27,7 @@ #define TEXENVPROGRAM_H -#include "mtypes.h" +struct gl_context; extern struct gl_fragment_program * _mesa_get_fixed_func_fragment_program(struct gl_context *ctx); diff --git a/src/mesa/main/texfetch.c b/src/mesa/main/texfetch.c index 372ef2654a..113512090b 100644 --- a/src/mesa/main/texfetch.c +++ b/src/mesa/main/texfetch.c @@ -237,6 +237,13 @@ texfetch_funcs[MESA_FORMAT_COUNT] = store_texel_argb1555_rev }, { + MESA_FORMAT_AL44, + fetch_texel_1d_f_al44, + fetch_texel_2d_f_al44, + fetch_texel_3d_f_al44, + store_texel_al44 + }, + { MESA_FORMAT_AL88, fetch_texel_1d_f_al88, fetch_texel_2d_f_al88, @@ -279,6 +286,13 @@ texfetch_funcs[MESA_FORMAT_COUNT] = store_texel_a8 }, { + MESA_FORMAT_A16, + fetch_texel_1d_f_a16, + fetch_texel_2d_f_a16, + fetch_texel_3d_f_a16, + store_texel_a16 + }, + { MESA_FORMAT_L8, fetch_texel_1d_f_l8, fetch_texel_2d_f_l8, @@ -286,6 +300,13 @@ texfetch_funcs[MESA_FORMAT_COUNT] = store_texel_l8 }, { + MESA_FORMAT_L16, + fetch_texel_1d_f_l16, + fetch_texel_2d_f_l16, + fetch_texel_3d_f_l16, + store_texel_l16 + }, + { MESA_FORMAT_I8, fetch_texel_1d_f_i8, fetch_texel_2d_f_i8, @@ -293,6 +314,13 @@ texfetch_funcs[MESA_FORMAT_COUNT] = store_texel_i8 }, { + MESA_FORMAT_I16, + fetch_texel_1d_f_i16, + fetch_texel_2d_f_i16, + fetch_texel_3d_f_i16, + store_texel_i16 + }, + { MESA_FORMAT_CI8, fetch_texel_1d_f_ci8, fetch_texel_2d_f_ci8, @@ -356,6 +384,13 @@ texfetch_funcs[MESA_FORMAT_COUNT] = store_texel_rg1616_rev, }, { + MESA_FORMAT_ARGB2101010, + fetch_texel_1d_f_argb2101010, + fetch_texel_2d_f_argb2101010, + fetch_texel_3d_f_argb2101010, + store_texel_argb2101010 + }, + { MESA_FORMAT_Z24_S8, fetch_texel_1d_f_z24_s8, fetch_texel_2d_f_z24_s8, @@ -724,7 +759,7 @@ texfetch_funcs[MESA_FORMAT_COUNT] = }; -static FetchTexelFuncF +FetchTexelFuncF _mesa_get_texel_fetch_func(gl_format format, GLuint dims) { #ifdef DEBUG diff --git a/src/mesa/main/texfetch.h b/src/mesa/main/texfetch.h index ef13bf27fe..e78079ae5a 100644 --- a/src/mesa/main/texfetch.h +++ b/src/mesa/main/texfetch.h @@ -34,6 +34,9 @@ extern StoreTexelFunc _mesa_get_texel_store_func(gl_format format); +extern FetchTexelFuncF +_mesa_get_texel_fetch_func(gl_format format, GLuint dims); + extern void _mesa_set_fetch_functions(struct gl_texture_image *texImage, GLuint dims); diff --git a/src/mesa/main/texfetch_tmp.h b/src/mesa/main/texfetch_tmp.h index 2f583ed522..36dede57f0 100644 --- a/src/mesa/main/texfetch_tmp.h +++ b/src/mesa/main/texfetch_tmp.h @@ -135,7 +135,7 @@ static void store_texel_rgba_f32(struct gl_texture_image *texImage, GLint i, GLint j, GLint k, const void *texel) { const GLfloat *depth = (const GLfloat *) texel; - GLfloat *dst = TEXEL_ADDR(GLfloat, texImage, i, j, k, 1); + GLfloat *dst = TEXEL_ADDR(GLfloat, texImage, i, j, k, 4); dst[0] = depth[RCOMP]; dst[1] = depth[GCOMP]; dst[2] = depth[BCOMP]; @@ -163,9 +163,12 @@ static void FETCH(f_rgba_f16)( const struct gl_texture_image *texImage, static void store_texel_rgba_f16(struct gl_texture_image *texImage, GLint i, GLint j, GLint k, const void *texel) { - const GLfloat *depth = (const GLfloat *) texel; - GLhalfARB *dst = TEXEL_ADDR(GLhalfARB, texImage, i, j, k, 1); - dst[0] = _mesa_float_to_half(*depth); + const GLfloat *src = (const GLfloat *) texel; + GLhalfARB *dst = TEXEL_ADDR(GLhalfARB, texImage, i, j, k, 4); + dst[0] = _mesa_float_to_half(src[RCOMP]); + dst[1] = _mesa_float_to_half(src[GCOMP]); + dst[2] = _mesa_float_to_half(src[BCOMP]); + dst[3] = _mesa_float_to_half(src[ACOMP]); } #endif @@ -188,9 +191,11 @@ static void FETCH(f_rgb_f32)( const struct gl_texture_image *texImage, static void store_texel_rgb_f32(struct gl_texture_image *texImage, GLint i, GLint j, GLint k, const void *texel) { - const GLfloat *depth = (const GLfloat *) texel; - GLfloat *dst = TEXEL_ADDR(GLfloat, texImage, i, j, k, 1); - dst[0] = *depth; + const GLfloat *src = (const GLfloat *) texel; + GLfloat *dst = TEXEL_ADDR(GLfloat, texImage, i, j, k, 3); + dst[0] = src[RCOMP]; + dst[1] = src[GCOMP]; + dst[2] = src[BCOMP]; } #endif @@ -214,9 +219,11 @@ static void FETCH(f_rgb_f16)( const struct gl_texture_image *texImage, static void store_texel_rgb_f16(struct gl_texture_image *texImage, GLint i, GLint j, GLint k, const void *texel) { - const GLfloat *depth = (const GLfloat *) texel; - GLhalfARB *dst = TEXEL_ADDR(GLhalfARB, texImage, i, j, k, 1); - dst[0] = _mesa_float_to_half(*depth); + const GLfloat *src = (const GLfloat *) texel; + GLhalfARB *dst = TEXEL_ADDR(GLhalfARB, texImage, i, j, k, 3); + dst[0] = _mesa_float_to_half(src[RCOMP]); + dst[1] = _mesa_float_to_half(src[GCOMP]); + dst[2] = _mesa_float_to_half(src[BCOMP]); } #endif @@ -810,6 +817,31 @@ static void store_texel_argb1555_rev(struct gl_texture_image *texImage, #endif +/* MESA_FORMAT_ARGB2101010 ***************************************************/ + +/* Fetch texel from 1D, 2D or 3D argb2101010 texture, return 4 GLchans */ +static void FETCH(f_argb2101010)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLuint *src = TEXEL_ADDR(GLuint, texImage, i, j, k, 1); + const GLuint s = *src; + texel[RCOMP] = ((s >> 20) & 0x3ff) * (1.0F / 1023.0F); + texel[GCOMP] = ((s >> 10) & 0x3ff) * (1.0F / 1023.0F); + texel[BCOMP] = ((s >> 0) & 0x3ff) * (1.0F / 1023.0F); + texel[ACOMP] = ((s >> 30) & 0x03) * (1.0F / 3.0F); +} + +#if DIM == 3 +static void store_texel_argb2101010(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLubyte *rgba = (const GLubyte *) texel; + GLuint *dst = TEXEL_ADDR(GLuint, texImage, i, j, k, 1); + *dst = PACK_COLOR_2101010_UB(rgba[ACOMP], rgba[RCOMP], rgba[GCOMP], rgba[BCOMP]); +} +#endif + + /* MESA_FORMAT_RG88 **********************************************************/ /* Fetch texel from 1D, 2D or 3D rg88 texture, return 4 GLchans */ @@ -858,6 +890,30 @@ static void store_texel_rg88_rev(struct gl_texture_image *texImage, #endif +/* MESA_FORMAT_AL44 **********************************************************/ + +/* Fetch texel from 1D, 2D or 3D al44 texture, return 4 GLchans */ +static void FETCH(f_al44)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLubyte s = *TEXEL_ADDR(GLubyte, texImage, i, j, k, 1); + texel[RCOMP] = + texel[GCOMP] = + texel[BCOMP] = (s & 0xf) * (1.0F / 15.0F); + texel[ACOMP] = ((s >> 4) & 0xf) * (1.0F / 15.0F); +} + +#if DIM == 3 +static void store_texel_al44(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLubyte *rgba = (const GLubyte *) texel; + GLubyte *dst = TEXEL_ADDR(GLubyte, texImage, i, j, k, 1); + *dst = PACK_COLOR_44(rgba[ACOMP], rgba[RCOMP]); +} +#endif + + /* MESA_FORMAT_AL88 **********************************************************/ /* Fetch texel from 1D, 2D or 3D al88 texture, return 4 GLchans */ @@ -1099,6 +1155,30 @@ static void store_texel_a8(struct gl_texture_image *texImage, #endif +/* MESA_FORMAT_A16 ************************************************************/ + +/* Fetch texel from 1D, 2D or 3D a8 texture, return 4 GLchans */ +static void FETCH(f_a16)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLushort *src = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + texel[RCOMP] = + texel[GCOMP] = + texel[BCOMP] = 0.0F; + texel[ACOMP] = USHORT_TO_FLOAT( src[0] ); +} + +#if DIM == 3 +static void store_texel_a16(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLushort *rgba = (const GLushort *) texel; + GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + *dst = rgba[ACOMP]; +} +#endif + + /* MESA_FORMAT_L8 ************************************************************/ /* Fetch texel from 1D, 2D or 3D l8 texture, return 4 GLchans */ @@ -1123,6 +1203,30 @@ static void store_texel_l8(struct gl_texture_image *texImage, #endif +/* MESA_FORMAT_L16 ***********************************************************/ + +/* Fetch texel from 1D, 2D or 3D l16 texture, return 4 GLchans */ +static void FETCH(f_l16)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLushort *src = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + texel[RCOMP] = + texel[GCOMP] = + texel[BCOMP] = USHORT_TO_FLOAT( src[0] ); + texel[ACOMP] = 1.0F; +} + +#if DIM == 3 +static void store_texel_l16(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLushort *rgba = (const GLushort *) texel; + GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + *dst = rgba[RCOMP]; +} +#endif + + /* MESA_FORMAT_I8 ************************************************************/ /* Fetch texel from 1D, 2D or 3D i8 texture, return 4 GLchans */ @@ -1147,6 +1251,30 @@ static void store_texel_i8(struct gl_texture_image *texImage, #endif +/* MESA_FORMAT_I16 ***********************************************************/ + +/* Fetch texel from 1D, 2D or 3D i16 texture, return 4 GLchans */ +static void FETCH(f_i16)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLushort *src = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + texel[RCOMP] = + texel[GCOMP] = + texel[BCOMP] = + texel[ACOMP] = USHORT_TO_FLOAT( src[0] ); +} + +#if DIM == 3 +static void store_texel_i16(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLushort *rgba = (const GLushort *) texel; + GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + *dst = rgba[RCOMP]; +} +#endif + + /* MESA_FORMAT_CI8 ***********************************************************/ /* Fetch CI texel from 1D, 2D or 3D ci8 texture, lookup the index in a diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c index 894c0130b4..146b2b340e 100644 --- a/src/mesa/main/texformat.c +++ b/src/mesa/main/texformat.c @@ -34,9 +34,15 @@ #include "context.h" +#include "mfeatures.h" +#include "mtypes.h" #include "texcompress.h" #include "texformat.h" +#define RETURN_IF_SUPPORTED(f) do { \ + if (ctx->TextureFormatSupported[f]) \ + return f; \ +} while (0) /** * Choose an appropriate texture format given the format, type and @@ -64,75 +70,132 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, /* shallow RGBA formats */ case 4: case GL_RGBA: + if (type == GL_UNSIGNED_SHORT_4_4_4_4_REV) { + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB4444); + } else if (type == GL_UNSIGNED_SHORT_1_5_5_5_REV) { + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB1555); + } + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; + case GL_RGBA8: - return MESA_FORMAT_RGBA8888; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; case GL_RGB5_A1: - return MESA_FORMAT_ARGB1555; + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB1555); + break; case GL_RGBA2: - return MESA_FORMAT_ARGB4444_REV; /* just to test another format*/ + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB4444_REV); /* just to test another format*/ + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB4444); + break; case GL_RGBA4: - return MESA_FORMAT_ARGB4444; + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB4444); + break; /* deep RGBA formats */ case GL_RGB10_A2: + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB2101010); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; case GL_RGBA12: case GL_RGBA16: - return MESA_FORMAT_RGBA_16; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_16); + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_16); + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; /* shallow RGB formats */ case 3: case GL_RGB: case GL_RGB8: - return MESA_FORMAT_RGB888; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB888); + RETURN_IF_SUPPORTED(MESA_FORMAT_XRGB8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; case GL_R3_G3_B2: - return MESA_FORMAT_RGB332; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB332); + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB888); + RETURN_IF_SUPPORTED(MESA_FORMAT_XRGB8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; case GL_RGB4: - return MESA_FORMAT_RGB565_REV; /* just to test another format */ + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB565_REV); /* just to test another format */ + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB565); + break; case GL_RGB5: - return MESA_FORMAT_RGB565; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB565); + break; /* deep RGB formats */ case GL_RGB10: case GL_RGB12: case GL_RGB16: - return MESA_FORMAT_RGBA_16; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_16); + RETURN_IF_SUPPORTED(MESA_FORMAT_XRGB8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; /* Alpha formats */ case GL_ALPHA: case GL_ALPHA4: + case GL_ALPHA8: + RETURN_IF_SUPPORTED(MESA_FORMAT_A8); + break; + case GL_ALPHA12: case GL_ALPHA16: - case GL_ALPHA8: - return MESA_FORMAT_A8; + RETURN_IF_SUPPORTED(MESA_FORMAT_A16); + RETURN_IF_SUPPORTED(MESA_FORMAT_A8); + break; /* Luminance formats */ case 1: case GL_LUMINANCE: case GL_LUMINANCE4: + case GL_LUMINANCE8: + RETURN_IF_SUPPORTED(MESA_FORMAT_L8); + break; + case GL_LUMINANCE12: case GL_LUMINANCE16: - case GL_LUMINANCE8: - return MESA_FORMAT_L8; + RETURN_IF_SUPPORTED(MESA_FORMAT_L16); + RETURN_IF_SUPPORTED(MESA_FORMAT_L8); + break; /* Luminance/Alpha formats */ + case GL_LUMINANCE4_ALPHA4: + RETURN_IF_SUPPORTED(MESA_FORMAT_AL44); + RETURN_IF_SUPPORTED(MESA_FORMAT_AL88); + break; + case 2: case GL_LUMINANCE_ALPHA: - case GL_LUMINANCE4_ALPHA4: case GL_LUMINANCE6_ALPHA2: case GL_LUMINANCE8_ALPHA8: - return MESA_FORMAT_AL88; + RETURN_IF_SUPPORTED(MESA_FORMAT_AL88); + break; case GL_LUMINANCE12_ALPHA4: case GL_LUMINANCE12_ALPHA12: case GL_LUMINANCE16_ALPHA16: - return MESA_FORMAT_AL1616; + RETURN_IF_SUPPORTED(MESA_FORMAT_AL1616); + RETURN_IF_SUPPORTED(MESA_FORMAT_AL88); + break; case GL_INTENSITY: case GL_INTENSITY4: + case GL_INTENSITY8: + RETURN_IF_SUPPORTED(MESA_FORMAT_I8); + break; + case GL_INTENSITY12: case GL_INTENSITY16: - case GL_INTENSITY8: - return MESA_FORMAT_I8; + RETURN_IF_SUPPORTED(MESA_FORMAT_I16); + RETURN_IF_SUPPORTED(MESA_FORMAT_I8); + break; case GL_COLOR_INDEX: case GL_COLOR_INDEX1_EXT: @@ -141,7 +204,8 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, case GL_COLOR_INDEX12_EXT: case GL_COLOR_INDEX16_EXT: case GL_COLOR_INDEX8_EXT: - return MESA_FORMAT_CI8; + RETURN_IF_SUPPORTED(MESA_FORMAT_CI8); + break; default: ; /* fallthrough */ @@ -152,9 +216,12 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, case GL_DEPTH_COMPONENT: case GL_DEPTH_COMPONENT24: case GL_DEPTH_COMPONENT32: - return MESA_FORMAT_Z32; + RETURN_IF_SUPPORTED(MESA_FORMAT_Z32); + RETURN_IF_SUPPORTED(MESA_FORMAT_S8_Z24); + break; case GL_DEPTH_COMPONENT16: - return MESA_FORMAT_Z16; + RETURN_IF_SUPPORTED(MESA_FORMAT_Z16); + RETURN_IF_SUPPORTED(MESA_FORMAT_S8_Z24); default: ; /* fallthrough */ } @@ -162,27 +229,36 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, switch (internalFormat) { case GL_COMPRESSED_ALPHA_ARB: - return MESA_FORMAT_A8; + RETURN_IF_SUPPORTED(MESA_FORMAT_A8); + break; case GL_COMPRESSED_LUMINANCE_ARB: - return MESA_FORMAT_L8; + RETURN_IF_SUPPORTED(MESA_FORMAT_L8); + break; case GL_COMPRESSED_LUMINANCE_ALPHA_ARB: - return MESA_FORMAT_AL88; + RETURN_IF_SUPPORTED(MESA_FORMAT_AL88); + break; case GL_COMPRESSED_INTENSITY_ARB: - return MESA_FORMAT_I8; + RETURN_IF_SUPPORTED(MESA_FORMAT_I8); + break; case GL_COMPRESSED_RGB_ARB: if (ctx->Extensions.EXT_texture_compression_s3tc || ctx->Extensions.S3_s3tc) - return MESA_FORMAT_RGB_DXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_DXT1); if (ctx->Extensions.TDFX_texture_compression_FXT1) - return MESA_FORMAT_RGB_FXT1; - return MESA_FORMAT_RGB888; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FXT1); + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB888); + RETURN_IF_SUPPORTED(MESA_FORMAT_XRGB8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; case GL_COMPRESSED_RGBA_ARB: if (ctx->Extensions.EXT_texture_compression_s3tc || ctx->Extensions.S3_s3tc) - return MESA_FORMAT_RGBA_DXT3; /* Not rgba_dxt1, see spec */ + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_DXT3); /* Not rgba_dxt1, see spec */ if (ctx->Extensions.TDFX_texture_compression_FXT1) - return MESA_FORMAT_RGBA_FXT1; - return MESA_FORMAT_RGBA8888; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FXT1); + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); + break; default: ; /* fallthrough */ } @@ -190,9 +266,9 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, if (ctx->Extensions.MESA_ycbcr_texture) { if (internalFormat == GL_YCBCR_MESA) { if (type == GL_UNSIGNED_SHORT_8_8_MESA) - return MESA_FORMAT_YCBCR; + RETURN_IF_SUPPORTED(MESA_FORMAT_YCBCR); else - return MESA_FORMAT_YCBCR_REV; + RETURN_IF_SUPPORTED(MESA_FORMAT_YCBCR_REV); } } @@ -200,9 +276,11 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, if (ctx->Extensions.TDFX_texture_compression_FXT1) { switch (internalFormat) { case GL_COMPRESSED_RGB_FXT1_3DFX: - return MESA_FORMAT_RGB_FXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FXT1); + break; case GL_COMPRESSED_RGBA_FXT1_3DFX: - return MESA_FORMAT_RGBA_FXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FXT1); + break; default: ; /* fallthrough */ } @@ -213,13 +291,17 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, if (ctx->Extensions.EXT_texture_compression_s3tc) { switch (internalFormat) { case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: - return MESA_FORMAT_RGB_DXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_DXT1); + break; case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: - return MESA_FORMAT_RGBA_DXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_DXT1); + break; case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: - return MESA_FORMAT_RGBA_DXT3; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_DXT3); + break; case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: - return MESA_FORMAT_RGBA_DXT5; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_DXT5); + break; default: ; /* fallthrough */ } @@ -229,10 +311,12 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, switch (internalFormat) { case GL_RGB_S3TC: case GL_RGB4_S3TC: - return MESA_FORMAT_RGB_DXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_DXT1); + break; case GL_RGBA_S3TC: case GL_RGBA4_S3TC: - return MESA_FORMAT_RGBA_DXT3; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_DXT3); + break; default: ; /* fallthrough */ } @@ -242,29 +326,41 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, if (ctx->Extensions.ARB_texture_float) { switch (internalFormat) { case GL_ALPHA16F_ARB: - return MESA_FORMAT_ALPHA_FLOAT16; + RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_FLOAT16); + break; case GL_ALPHA32F_ARB: - return MESA_FORMAT_ALPHA_FLOAT32; + RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_FLOAT32); + break; case GL_LUMINANCE16F_ARB: - return MESA_FORMAT_LUMINANCE_FLOAT16; + RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_FLOAT16); + break; case GL_LUMINANCE32F_ARB: - return MESA_FORMAT_LUMINANCE_FLOAT32; + RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_FLOAT32); + break; case GL_LUMINANCE_ALPHA16F_ARB: - return MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16; + RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16); + break; case GL_LUMINANCE_ALPHA32F_ARB: - return MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32; + RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32); + break; case GL_INTENSITY16F_ARB: - return MESA_FORMAT_INTENSITY_FLOAT16; + RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_FLOAT16); + break; case GL_INTENSITY32F_ARB: - return MESA_FORMAT_INTENSITY_FLOAT32; + RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_FLOAT32); + break; case GL_RGB16F_ARB: - return MESA_FORMAT_RGB_FLOAT16; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FLOAT16); + break; case GL_RGB32F_ARB: - return MESA_FORMAT_RGB_FLOAT32; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FLOAT32); + break; case GL_RGBA16F_ARB: - return MESA_FORMAT_RGBA_FLOAT16; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16); + break; case GL_RGBA32F_ARB: - return MESA_FORMAT_RGBA_FLOAT32; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32); + break; default: ; /* fallthrough */ } @@ -274,7 +370,9 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, switch (internalFormat) { case GL_DEPTH_STENCIL_EXT: case GL_DEPTH24_STENCIL8_EXT: - return MESA_FORMAT_Z24_S8; + RETURN_IF_SUPPORTED(MESA_FORMAT_Z24_S8); + RETURN_IF_SUPPORTED(MESA_FORMAT_S8_Z24); + break; default: ; /* fallthrough */ } @@ -284,7 +382,8 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, switch (internalFormat) { case GL_DUDV_ATI: case GL_DU8DV8_ATI: - return MESA_FORMAT_DUDV8; + RETURN_IF_SUPPORTED(MESA_FORMAT_DUDV8); + break; default: ; /* fallthrough */ } @@ -294,7 +393,9 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, switch (internalFormat) { case GL_RGBA_SNORM: case GL_RGBA8_SNORM: - return MESA_FORMAT_SIGNED_RGBA8888; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBA8888); + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBA8888_REV); + break; default: ; /* fallthrough */ } @@ -304,24 +405,32 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, switch (internalFormat) { case GL_RED_SNORM: case GL_R8_SNORM: - return MESA_FORMAT_SIGNED_R8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_R8); + break; case GL_RG_SNORM: case GL_RG8_SNORM: - return MESA_FORMAT_SIGNED_RG88; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RG88); + break; case GL_RGB_SNORM: case GL_RGB8_SNORM: - return MESA_FORMAT_SIGNED_RGBX8888; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBX8888); + break; case GL_RGBA_SNORM: case GL_RGBA8_SNORM: - return MESA_FORMAT_SIGNED_RGBA8888; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBA8888); + break; case GL_R16_SNORM: - return MESA_FORMAT_SIGNED_R_16; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_R_16); + break; case GL_RG16_SNORM: - return MESA_FORMAT_SIGNED_RG_16; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RG_16); + break; case GL_RGB16_SNORM: - return MESA_FORMAT_SIGNED_RGB_16; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGB_16); + break; case GL_RGBA16_SNORM: - return MESA_FORMAT_SIGNED_RGBA_16; + RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBA_16); + break; default: ; /* fall-through */ } @@ -332,48 +441,68 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, switch (internalFormat) { case GL_SRGB_EXT: case GL_SRGB8_EXT: - return MESA_FORMAT_SRGB8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB8); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); + break; case GL_SRGB_ALPHA_EXT: case GL_SRGB8_ALPHA8_EXT: - return MESA_FORMAT_SRGBA8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA8); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); + break; case GL_SLUMINANCE_EXT: case GL_SLUMINANCE8_EXT: - return MESA_FORMAT_SL8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SL8); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); + break; case GL_SLUMINANCE_ALPHA_EXT: case GL_SLUMINANCE8_ALPHA8_EXT: - return MESA_FORMAT_SLA8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SLA8); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); + break; case GL_COMPRESSED_SLUMINANCE_EXT: - return MESA_FORMAT_SL8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SL8); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); + break; case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT: - return MESA_FORMAT_SLA8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SLA8); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); + break; case GL_COMPRESSED_SRGB_EXT: #if FEATURE_texture_s3tc if (ctx->Extensions.EXT_texture_compression_s3tc) - return MESA_FORMAT_SRGB_DXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB_DXT1); #endif - return MESA_FORMAT_SRGB8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB8); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); + break; case GL_COMPRESSED_SRGB_ALPHA_EXT: #if FEATURE_texture_s3tc if (ctx->Extensions.EXT_texture_compression_s3tc) - return MESA_FORMAT_SRGBA_DXT3; /* Not srgba_dxt1, see spec */ + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT3); /* Not srgba_dxt1, see spec */ #endif - return MESA_FORMAT_SRGBA8; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA8); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); + break; #if FEATURE_texture_s3tc case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: if (ctx->Extensions.EXT_texture_compression_s3tc) - return MESA_FORMAT_SRGB_DXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB_DXT1); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); break; case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: if (ctx->Extensions.EXT_texture_compression_s3tc) - return MESA_FORMAT_SRGBA_DXT1; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT1); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); break; case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: if (ctx->Extensions.EXT_texture_compression_s3tc) - return MESA_FORMAT_SRGBA_DXT3; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT3); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); break; case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: if (ctx->Extensions.EXT_texture_compression_s3tc) - return MESA_FORMAT_SRGBA_DXT5; + RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT5); + RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8); break; #endif default: @@ -390,42 +519,48 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, case GL_INTENSITY32UI_EXT: case GL_LUMINANCE32UI_EXT: case GL_LUMINANCE_ALPHA32UI_EXT: - return MESA_FORMAT_RGBA_UINT32; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT32); + break; case GL_RGBA16UI_EXT: case GL_RGB16UI_EXT: case GL_ALPHA16UI_EXT: case GL_INTENSITY16UI_EXT: case GL_LUMINANCE16UI_EXT: case GL_LUMINANCE_ALPHA16UI_EXT: - return MESA_FORMAT_RGBA_UINT16; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT16); + break; case GL_RGBA8UI_EXT: case GL_RGB8UI_EXT: case GL_ALPHA8UI_EXT: case GL_INTENSITY8UI_EXT: case GL_LUMINANCE8UI_EXT: case GL_LUMINANCE_ALPHA8UI_EXT: - return MESA_FORMAT_RGBA_UINT8; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8); + break; case GL_RGBA32I_EXT: case GL_RGB32I_EXT: case GL_ALPHA32I_EXT: case GL_INTENSITY32I_EXT: case GL_LUMINANCE32I_EXT: case GL_LUMINANCE_ALPHA32I_EXT: - return MESA_FORMAT_RGBA_INT32; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32); + break; case GL_RGBA16I_EXT: case GL_RGB16I_EXT: case GL_ALPHA16I_EXT: case GL_INTENSITY16I_EXT: case GL_LUMINANCE16I_EXT: case GL_LUMINANCE_ALPHA16I_EXT: - return MESA_FORMAT_RGBA_INT16; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT16); + break; case GL_RGBA8I_EXT: case GL_RGB8I_EXT: case GL_ALPHA8I_EXT: case GL_INTENSITY8I_EXT: case GL_LUMINANCE8I_EXT: case GL_LUMINANCE_ALPHA8I_EXT: - return MESA_FORMAT_RGBA_INT8; + RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT8); + break; } } @@ -434,18 +569,22 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, case GL_R8: case GL_RED: case GL_COMPRESSED_RED: - return MESA_FORMAT_R8; + RETURN_IF_SUPPORTED(MESA_FORMAT_R8); + break; case GL_R16: - return MESA_FORMAT_R16; + RETURN_IF_SUPPORTED(MESA_FORMAT_R16); + break; case GL_RG: case GL_RG8: case GL_COMPRESSED_RG: - return MESA_FORMAT_RG88; + RETURN_IF_SUPPORTED(MESA_FORMAT_RG88); + break; case GL_RG16: - return MESA_FORMAT_RG1616; + RETURN_IF_SUPPORTED(MESA_FORMAT_RG1616); + break; default: ; /* fallthrough */ diff --git a/src/mesa/main/texformat.h b/src/mesa/main/texformat.h index 8bd1507675..3cf09213ac 100644 --- a/src/mesa/main/texformat.h +++ b/src/mesa/main/texformat.h @@ -27,9 +27,9 @@ #define TEXFORMAT_H -#include "mtypes.h" #include "formats.h" +struct gl_context; extern gl_format _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, diff --git a/src/mesa/main/texgen.c b/src/mesa/main/texgen.c index 108ea4cd42..0ace0b9364 100644 --- a/src/mesa/main/texgen.c +++ b/src/mesa/main/texgen.c @@ -34,6 +34,7 @@ #include "main/context.h" #include "main/enums.h" #include "main/macros.h" +#include "main/mfeatures.h" #include "main/texgen.h" #include "main/texstate.h" #include "math/m_matrix.h" diff --git a/src/mesa/main/texgen.h b/src/mesa/main/texgen.h index 9ed8023836..336ffce924 100644 --- a/src/mesa/main/texgen.h +++ b/src/mesa/main/texgen.h @@ -29,6 +29,7 @@ #include "compiler.h" #include "glheader.h" +#include "mfeatures.h" struct _glapi_table; diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c index 879ac529a0..da610798e1 100644 --- a/src/mesa/main/texgetimage.c +++ b/src/mesa/main/texgetimage.c @@ -35,6 +35,8 @@ #include "context.h" #include "formats.h" #include "image.h" +#include "mfeatures.h" +#include "mtypes.h" #include "pack.h" #include "texgetimage.h" #include "teximage.h" @@ -120,10 +122,15 @@ get_tex_depth(struct gl_context *ctx, GLuint dimensions, const GLint height = texImage->Height; const GLint depth = texImage->Depth; GLint img, row, col; + GLfloat *depthRow = (GLfloat *) malloc(width * sizeof(GLfloat)); + + if (!depthRow) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage"); + return; + } for (img = 0; img < depth; img++) { for (row = 0; row < height; row++) { - GLfloat depthRow[MAX_WIDTH]; void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels, width, height, format, type, img, row, 0); @@ -135,6 +142,8 @@ get_tex_depth(struct gl_context *ctx, GLuint dimensions, _mesa_pack_depth_span(ctx, width, dest, type, depthRow, &ctx->Pack); } } + + free(depthRow); } @@ -244,6 +253,12 @@ get_tex_srgb(struct gl_context *ctx, GLuint dimensions, const GLint depth = texImage->Depth; const GLbitfield transferOps = 0x0; GLint img, row; + GLfloat (*rgba)[4] = (GLfloat (*)[4]) malloc(4 * width * sizeof(GLfloat)); + + if (!rgba) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage"); + return; + } for (img = 0; img < depth; img++) { for (row = 0; row < height; row++) { @@ -251,7 +266,6 @@ get_tex_srgb(struct gl_context *ctx, GLuint dimensions, width, height, format, type, img, row, 0); - GLfloat rgba[MAX_WIDTH][4]; GLint col; /* convert row to RGBA format */ @@ -279,6 +293,8 @@ get_tex_srgb(struct gl_context *ctx, GLuint dimensions, &ctx->Pack, transferOps); } } + + free(rgba); } @@ -314,13 +330,18 @@ get_tex_rgba(struct gl_context *ctx, GLuint dimensions, */ GLbitfield transferOps = 0x0; GLint img, row; + GLfloat (*rgba)[4] = (GLfloat (*)[4]) malloc(4 * width * sizeof(GLfloat)); + + if (!rgba) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage"); + return; + } for (img = 0; img < depth; img++) { for (row = 0; row < height; row++) { void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels, width, height, format, type, img, row, 0); - GLfloat rgba[MAX_WIDTH][4]; GLint col; GLenum dataType = _mesa_get_format_datatype(texImage->TexFormat); @@ -364,6 +385,8 @@ get_tex_rgba(struct gl_context *ctx, GLuint dimensions, &ctx->Pack, transferOps); } } + + free(rgba); } @@ -411,11 +434,21 @@ get_tex_memcpy(struct gl_context *ctx, GLenum format, GLenum type, GLvoid *pixel type == GL_UNSIGNED_BYTE) { memCopy = GL_TRUE; } + else if (texImage->TexFormat == MESA_FORMAT_L16 && + format == GL_LUMINANCE && + type == GL_UNSIGNED_SHORT) { + memCopy = GL_TRUE; + } else if (texImage->TexFormat == MESA_FORMAT_A8 && format == GL_ALPHA && type == GL_UNSIGNED_BYTE) { memCopy = GL_TRUE; } + else if (texImage->TexFormat == MESA_FORMAT_A16 && + format == GL_ALPHA && + type == GL_UNSIGNED_SHORT) { + memCopy = GL_TRUE; + } } if (memCopy) { diff --git a/src/mesa/main/texgetimage.h b/src/mesa/main/texgetimage.h index 81a3bbbd9a..ef420ddabf 100644 --- a/src/mesa/main/texgetimage.h +++ b/src/mesa/main/texgetimage.h @@ -27,7 +27,11 @@ #ifndef TEXGETIMAGE_H #define TEXGETIMAGE_H -#include "mtypes.h" +#include "glheader.h" + +struct gl_context; +struct gl_texture_image; +struct gl_texture_object; extern void _mesa_get_teximage(struct gl_context *ctx, GLenum target, GLint level, diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 060f34b7f9..47d509396a 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -40,6 +40,7 @@ #include "image.h" #include "imports.h" #include "macros.h" +#include "mfeatures.h" #include "state.h" #include "texcompress.h" #include "texfetch.h" @@ -340,11 +341,11 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat ) return GL_RGBA; case GL_SLUMINANCE_ALPHA_EXT: case GL_SLUMINANCE8_ALPHA8_EXT: - case GL_COMPRESSED_SLUMINANCE_EXT: case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT: return GL_LUMINANCE_ALPHA; case GL_SLUMINANCE_EXT: case GL_SLUMINANCE8_EXT: + case GL_COMPRESSED_SLUMINANCE_EXT: return GL_LUMINANCE; default: ; /* fallthrough */ @@ -636,6 +637,47 @@ _mesa_is_proxy_texture(GLenum target) /** + * Return the proxy target which corresponds to the given texture target + */ +static GLenum +get_proxy_target(GLenum target) +{ + switch (target) { + case GL_TEXTURE_1D: + case GL_PROXY_TEXTURE_1D: + return GL_PROXY_TEXTURE_1D; + case GL_TEXTURE_2D: + case GL_PROXY_TEXTURE_2D: + return GL_PROXY_TEXTURE_2D; + case GL_TEXTURE_3D: + case GL_PROXY_TEXTURE_3D: + return GL_PROXY_TEXTURE_3D; + case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB: + case GL_TEXTURE_CUBE_MAP_ARB: + case GL_PROXY_TEXTURE_CUBE_MAP_ARB: + return GL_PROXY_TEXTURE_CUBE_MAP_ARB; + case GL_TEXTURE_RECTANGLE_NV: + case GL_PROXY_TEXTURE_RECTANGLE_NV: + return GL_PROXY_TEXTURE_RECTANGLE_NV; + case GL_TEXTURE_1D_ARRAY_EXT: + case GL_PROXY_TEXTURE_1D_ARRAY_EXT: + return GL_PROXY_TEXTURE_1D_ARRAY_EXT; + case GL_TEXTURE_2D_ARRAY_EXT: + case GL_PROXY_TEXTURE_2D_ARRAY_EXT: + return GL_PROXY_TEXTURE_2D_ARRAY_EXT; + default: + _mesa_problem(NULL, "unexpected target in get_proxy_target()"); + return 0; + } +} + + +/** * Get the texture object that corresponds to the target of the given * texture unit. * @@ -890,8 +932,8 @@ _mesa_max_texture_levels(struct gl_context *ctx, GLenum target) /** * Return number of dimensions per mipmap level for the given texture target. */ -static GLint -get_texture_dimensions(GLenum target) +GLint +_mesa_get_texture_dimensions(GLenum target) { switch (target) { case GL_TEXTURE_1D: @@ -1116,7 +1158,7 @@ _mesa_init_teximage_fields(struct gl_context *ctx, GLenum target, img->TexFormat = format; - dims = get_texture_dimensions(target); + dims = _mesa_get_texture_dimensions(target); _mesa_set_fetch_functions(img, dims); } @@ -1178,94 +1220,110 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, switch (target) { case GL_PROXY_TEXTURE_1D: maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); - if (width < 2 * border || width > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - width >0 && !_mesa_is_pow_two(width - 2 * border)) || - level >= ctx->Const.MaxTextureLevels) { - /* bad width or level */ + if (width < 2 * border || width > 2 + maxSize) + return GL_FALSE; + if (level >= ctx->Const.MaxTextureLevels) return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; } return GL_TRUE; + case GL_PROXY_TEXTURE_2D: maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); - if (width < 2 * border || width > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - width > 0 && !_mesa_is_pow_two(width - 2 * border)) || - height < 2 * border || height > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - height > 0 && !_mesa_is_pow_two(height - 2 * border)) || - level >= ctx->Const.MaxTextureLevels) { - /* bad width or height or level */ + if (width < 2 * border || width > 2 + maxSize) + return GL_FALSE; + if (height < 2 * border || height > 2 + maxSize) + return GL_FALSE; + if (level >= ctx->Const.MaxTextureLevels) return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; + if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) + return GL_FALSE; } return GL_TRUE; + case GL_PROXY_TEXTURE_3D: maxSize = 1 << (ctx->Const.Max3DTextureLevels - 1); - if (width < 2 * border || width > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - width > 0 && !_mesa_is_pow_two(width - 2 * border)) || - height < 2 * border || height > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - height > 0 && !_mesa_is_pow_two(height - 2 * border)) || - depth < 2 * border || depth > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - depth > 0 && !_mesa_is_pow_two(depth - 2 * border)) || - level >= ctx->Const.Max3DTextureLevels) { - /* bad width or height or depth or level */ + if (width < 2 * border || width > 2 + maxSize) + return GL_FALSE; + if (height < 2 * border || height > 2 + maxSize) + return GL_FALSE; + if (depth < 2 * border || depth > 2 + maxSize) + return GL_FALSE; + if (level >= ctx->Const.Max3DTextureLevels) return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; + if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) + return GL_FALSE; + if (depth > 0 && !_mesa_is_pow_two(depth - 2 * border)) + return GL_FALSE; } return GL_TRUE; + case GL_PROXY_TEXTURE_RECTANGLE_NV: - if (width < 0 || width > ctx->Const.MaxTextureRectSize || - height < 0 || height > ctx->Const.MaxTextureRectSize || - level != 0) { - /* bad width or height or level */ + maxSize = ctx->Const.MaxTextureRectSize; + if (width < 0 || width > maxSize) + return GL_FALSE; + if (height < 0 || height > maxSize) + return GL_FALSE; + if (level != 0) return GL_FALSE; - } return GL_TRUE; + case GL_PROXY_TEXTURE_CUBE_MAP_ARB: maxSize = 1 << (ctx->Const.MaxCubeTextureLevels - 1); - if (width < 2 * border || width > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - width > 0 && !_mesa_is_pow_two(width - 2 * border)) || - height < 2 * border || height > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - height > 0 && !_mesa_is_pow_two(height - 2 * border)) || - level >= ctx->Const.MaxCubeTextureLevels) { - /* bad width or height */ + if (width < 2 * border || width > 2 + maxSize) + return GL_FALSE; + if (height < 2 * border || height > 2 + maxSize) + return GL_FALSE; + if (level >= ctx->Const.MaxCubeTextureLevels) return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; + if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) + return GL_FALSE; } return GL_TRUE; + case GL_PROXY_TEXTURE_1D_ARRAY_EXT: maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); - if (width < 2 * border || width > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - width > 0 && !_mesa_is_pow_two(width - 2 * border)) || - level >= ctx->Const.MaxTextureLevels) { - /* bad width or level */ + if (width < 2 * border || width > 2 + maxSize) return GL_FALSE; - } - - if (height < 1 || height > ctx->Const.MaxArrayTextureLayers) { + if (height < 1 || height > ctx->Const.MaxArrayTextureLayers) return GL_FALSE; + if (level >= ctx->Const.MaxTextureLevels) + return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; } return GL_TRUE; + case GL_PROXY_TEXTURE_2D_ARRAY_EXT: maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); - if (width < 2 * border || width > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - width > 0 && !_mesa_is_pow_two(width - 2 * border)) || - height < 2 * border || height > 2 + maxSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && - height > 0 && !_mesa_is_pow_two(height - 2 * border)) || - level >= ctx->Const.MaxTextureLevels) { - /* bad width or height or level */ + if (width < 2 * border || width > 2 + maxSize) return GL_FALSE; - } - if (depth < 1 || depth > ctx->Const.MaxArrayTextureLayers) { + if (height < 2 * border || height > 2 + maxSize) return GL_FALSE; + if (depth < 1 || depth > ctx->Const.MaxArrayTextureLayers) + return GL_FALSE; + if (level >= ctx->Const.MaxTextureLevels) + return GL_FALSE; + if (!ctx->Extensions.ARB_texture_non_power_of_two) { + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; + if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) + return GL_FALSE; } return GL_TRUE; + default: _mesa_problem(ctx, "Invalid target in _mesa_test_proxy_teximage"); return GL_FALSE; @@ -1274,15 +1332,37 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, /** - * Helper function to determine whether a target supports compressed textures + * Check if the memory used by the texture would exceed the driver's limit. + * This lets us support a max 3D texture size of 8K (for example) but + * prevents allocating a full 8K x 8K x 8K texture. + * XXX this could be rolled into the proxy texture size test (above) but + * we don't have the actual texture internal format at that point. */ static GLboolean -target_can_be_compressed(struct gl_context *ctx, GLenum target) +legal_texture_size(struct gl_context *ctx, gl_format format, + GLint width, GLint height, GLint depth) { + uint64_t bytes = _mesa_format_image_size64(format, width, height, depth); + uint64_t mbytes = bytes / (1024 * 1024); /* convert to MB */ + return mbytes <= (uint64_t) ctx->Const.MaxTextureMbytes; +} + + + +/** + * Helper function to determine whether a target and specific compression + * format are supported. + */ +static GLboolean +target_can_be_compressed(const struct gl_context *ctx, GLenum target, + GLenum intFormat) +{ + (void) intFormat; /* not used yet */ + switch (target) { case GL_TEXTURE_2D: case GL_PROXY_TEXTURE_2D: - return GL_TRUE; + return GL_TRUE; /* true for any compressed format so far */ case GL_PROXY_TEXTURE_CUBE_MAP: case GL_TEXTURE_CUBE_MAP_POSITIVE_X: case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: @@ -1301,6 +1381,109 @@ target_can_be_compressed(struct gl_context *ctx, GLenum target) /** + * Check if the given texture target value is legal for a + * glTexImage1/2/3D call. + */ +static GLboolean +legal_teximage_target(struct gl_context *ctx, GLuint dims, GLenum target) +{ + switch (dims) { + case 1: + switch (target) { + case GL_TEXTURE_1D: + case GL_PROXY_TEXTURE_1D: + return GL_TRUE; + default: + return GL_FALSE; + } + case 2: + switch (target) { + case GL_TEXTURE_2D: + case GL_PROXY_TEXTURE_2D: + return GL_TRUE; + case GL_PROXY_TEXTURE_CUBE_MAP: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + return ctx->Extensions.ARB_texture_cube_map; + case GL_TEXTURE_RECTANGLE_NV: + case GL_PROXY_TEXTURE_RECTANGLE_NV: + return ctx->Extensions.NV_texture_rectangle; + case GL_TEXTURE_1D_ARRAY_EXT: + case GL_PROXY_TEXTURE_1D_ARRAY_EXT: + return ctx->Extensions.MESA_texture_array; + default: + return GL_FALSE; + } + case 3: + switch (target) { + case GL_TEXTURE_3D: + case GL_PROXY_TEXTURE_3D: + return GL_TRUE; + case GL_TEXTURE_2D_ARRAY_EXT: + case GL_PROXY_TEXTURE_2D_ARRAY_EXT: + return ctx->Extensions.MESA_texture_array; + default: + return GL_FALSE; + } + default: + _mesa_problem(ctx, "invalid dims=%u in legal_teximage_target()", dims); + return GL_FALSE; + } +} + + +/** + * Check if the given texture target value is legal for a + * glTexSubImage, glCopyTexSubImage or glCopyTexImage call. + * The difference compared to legal_teximage_target() above is that + * proxy targets are not supported. + */ +static GLboolean +legal_texsubimage_target(struct gl_context *ctx, GLuint dims, GLenum target) +{ + switch (dims) { + case 1: + return target == GL_TEXTURE_1D; + case 2: + switch (target) { + case GL_TEXTURE_2D: + return GL_TRUE; + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + return ctx->Extensions.ARB_texture_cube_map; + case GL_TEXTURE_RECTANGLE_NV: + return ctx->Extensions.NV_texture_rectangle; + case GL_TEXTURE_1D_ARRAY_EXT: + return ctx->Extensions.MESA_texture_array; + default: + return GL_FALSE; + } + case 3: + switch (target) { + case GL_TEXTURE_3D: + return GL_TRUE; + case GL_TEXTURE_2D_ARRAY_EXT: + return ctx->Extensions.MESA_texture_array; + default: + return GL_FALSE; + } + default: + _mesa_problem(ctx, "invalid dims=%u in legal_texsubimage_target()", + dims); + return GL_FALSE; + } +} + + +/** * Test the glTexImage[123]D() parameters for errors. * * \param ctx GL context. @@ -1329,10 +1512,10 @@ texture_error_check( struct gl_context *ctx, GLint width, GLint height, GLint depth, GLint border ) { - const GLboolean isProxy = _mesa_is_proxy_texture(target); + const GLenum proxyTarget = get_proxy_target(target); + const GLboolean isProxy = target == proxyTarget; GLboolean sizeOK = GL_TRUE; GLboolean colorFormat, indexFormat; - GLenum proxy_target; /* Basic level check (more checking in ctx->Driver.TestProxyTexImage) */ if (level < 0 || level >= MAX_TEXTURE_LEVELS) { @@ -1362,71 +1545,16 @@ texture_error_check( struct gl_context *ctx, return GL_TRUE; } - /* Check target and call ctx->Driver.TestProxyTexImage() to check the - * level, width, height and depth. - */ - if (dimensions == 1) { - if (target == GL_PROXY_TEXTURE_1D || target == GL_TEXTURE_1D) { - proxy_target = GL_PROXY_TEXTURE_1D; - height = 1; - depth = 1; - } - else { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexImage1D(target)" ); - return GL_TRUE; - } - } - else if (dimensions == 2) { - depth = 1; - if (target == GL_PROXY_TEXTURE_2D || target == GL_TEXTURE_2D) { - proxy_target = GL_PROXY_TEXTURE_2D; - } - else if (target == GL_PROXY_TEXTURE_CUBE_MAP_ARB || - (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && - target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB)) { - if (!ctx->Extensions.ARB_texture_cube_map) { - _mesa_error(ctx, GL_INVALID_ENUM, "glTexImage2D(target)"); - return GL_TRUE; - } - proxy_target = GL_PROXY_TEXTURE_CUBE_MAP_ARB; - sizeOK = (width == height); - } - else if (target == GL_PROXY_TEXTURE_RECTANGLE_NV || - target == GL_TEXTURE_RECTANGLE_NV) { - if (!ctx->Extensions.NV_texture_rectangle) { - _mesa_error(ctx, GL_INVALID_ENUM, "glTexImage2D(target)"); - return GL_TRUE; - } - proxy_target = GL_PROXY_TEXTURE_RECTANGLE_NV; - } - else if (target == GL_PROXY_TEXTURE_1D_ARRAY_EXT || - target == GL_TEXTURE_1D_ARRAY_EXT) { - proxy_target = GL_PROXY_TEXTURE_1D_ARRAY_EXT; - } - else { - _mesa_error(ctx, GL_INVALID_ENUM, "glTexImage2D(target)"); - return GL_TRUE; - } - } - else if (dimensions == 3) { - if (target == GL_PROXY_TEXTURE_3D || target == GL_TEXTURE_3D) { - proxy_target = GL_PROXY_TEXTURE_3D; - } - else if (target == GL_PROXY_TEXTURE_2D_ARRAY_EXT || - target == GL_TEXTURE_2D_ARRAY_EXT) { - proxy_target = GL_PROXY_TEXTURE_2D_ARRAY_EXT; - } - else { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexImage3D(target)" ); - return GL_TRUE; - } - } - else { - _mesa_problem( ctx, "bad dims in texture_error_check" ); - return GL_TRUE; + /* Do this simple check before calling the TestProxyTexImage() function */ + if (proxyTarget == GL_PROXY_TEXTURE_CUBE_MAP_ARB) { + sizeOK = (width == height); } - sizeOK = sizeOK && ctx->Driver.TestProxyTexImage(ctx, proxy_target, level, + /* + * Use the proxy texture driver hook to see if the size/level/etc are + * legal. + */ + sizeOK = sizeOK && ctx->Driver.TestProxyTexImage(ctx, proxyTarget, level, internalFormat, format, type, width, height, depth, border); @@ -1531,9 +1659,10 @@ texture_error_check( struct gl_context *ctx, /* additional checks for compressed textures */ if (_mesa_is_compressed_format(ctx, internalFormat)) { - if (!target_can_be_compressed(ctx, target) && !isProxy) { - _mesa_error(ctx, GL_INVALID_ENUM, - "glTexImage%dD(target)", dimensions); + if (!target_can_be_compressed(ctx, target, internalFormat)) { + if (!isProxy) + _mesa_error(ctx, GL_INVALID_ENUM, + "glTexImage%dD(target)", dimensions); return GL_TRUE; } if (border != 0) { @@ -1591,61 +1720,13 @@ subtexture_error_check( struct gl_context *ctx, GLuint dimensions, GLint width, GLint height, GLint depth, GLenum format, GLenum type ) { - /* Check target */ - if (dimensions == 1) { - if (target != GL_TEXTURE_1D) { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(target)" ); - return GL_TRUE; - } - } - else if (dimensions == 2) { - if (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && - target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB) { - if (!ctx->Extensions.ARB_texture_cube_map) { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(target)" ); - return GL_TRUE; - } - } - else if (target == GL_TEXTURE_RECTANGLE_NV) { - if (!ctx->Extensions.NV_texture_rectangle) { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(target)" ); - return GL_TRUE; - } - } - else if (target == GL_TEXTURE_1D_ARRAY_EXT) { - if (!ctx->Extensions.MESA_texture_array) { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(target)" ); - return GL_TRUE; - } - } - else if (target != GL_TEXTURE_2D) { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(target)" ); - return GL_TRUE; - } - } - else if (dimensions == 3) { - if (target == GL_TEXTURE_2D_ARRAY_EXT) { - if (!ctx->Extensions.MESA_texture_array) { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage3D(target)" ); - return GL_TRUE; - } - } - else if (target != GL_TEXTURE_3D) { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage3D(target)" ); - return GL_TRUE; - } - } - else { - _mesa_problem( ctx, "invalid dims in texture_error_check" ); - return GL_TRUE; - } - /* Basic level check */ if (level < 0 || level >= MAX_TEXTURE_LEVELS) { _mesa_error(ctx, GL_INVALID_ENUM, "glTexSubImage2D(level=%d)", level); return GL_TRUE; } + /* Check for negative sizes */ if (width < 0) { _mesa_error(ctx, GL_INVALID_VALUE, "glTexSubImage%dD(width=%d)", dimensions, width); @@ -1732,13 +1813,6 @@ subtexture_error_check2( struct gl_context *ctx, GLuint dimensions, if (_mesa_is_format_compressed(destTex->TexFormat)) { GLuint bw, bh; - if (!target_can_be_compressed(ctx, target)) { - _mesa_error(ctx, GL_INVALID_ENUM, - "glTexSubImage%dD(target=%s)", dimensions, - _mesa_lookup_enum_by_nr(target)); - return GL_TRUE; - } - /* do tests which depend on compression block size */ _mesa_get_format_block_size(destTex->TexFormat, &bw, &bh); @@ -1789,10 +1863,18 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border ) { - GLenum type; + const GLenum proxyTarget = get_proxy_target(target); + const GLenum type = GL_FLOAT; GLboolean sizeOK; GLint format; + /* check target */ + if (!legal_texsubimage_target(ctx, dimensions, target)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glCopyTexImage%uD(target=%s)", + dimensions, _mesa_lookup_enum_by_nr(target)); + return GL_TRUE; + } + /* Basic level check (more checking in ctx->Driver.TestProxyTexImage) */ if (level < 0 || level >= MAX_TEXTURE_LEVELS) { _mesa_error(ctx, GL_INVALID_VALUE, @@ -1830,75 +1912,14 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions, return GL_TRUE; } - /* NOTE: the format and type aren't really significant for - * TestProxyTexImage(). Only the internalformat really matters. - */ - type = GL_FLOAT; + /* Do size, level checking */ + sizeOK = (proxyTarget == GL_PROXY_TEXTURE_CUBE_MAP_ARB) + ? (width == height) : 1; - /* Check target and call ctx->Driver.TestProxyTexImage() to check the - * level, width, height and depth. - */ - if (dimensions == 1) { - if (target == GL_TEXTURE_1D) { - sizeOK = ctx->Driver.TestProxyTexImage(ctx, GL_PROXY_TEXTURE_1D, - level, internalFormat, - format, type, - width, 1, 1, border); - } - else { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexImage1D(target)" ); - return GL_TRUE; - } - } - else if (dimensions == 2) { - if (target == GL_TEXTURE_2D) { - sizeOK = ctx->Driver.TestProxyTexImage(ctx, GL_PROXY_TEXTURE_2D, - level, internalFormat, - format, type, - width, height, 1, border); - } - else if (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && - target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB) { - if (!ctx->Extensions.ARB_texture_cube_map) { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexImage2D(target)" ); - return GL_TRUE; - } - sizeOK = (width == height) && - ctx->Driver.TestProxyTexImage(ctx, GL_PROXY_TEXTURE_CUBE_MAP_ARB, - level, internalFormat, format, type, - width, height, 1, border); - } - else if (target == GL_TEXTURE_RECTANGLE_NV) { - if (!ctx->Extensions.NV_texture_rectangle) { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexImage2D(target)" ); - return GL_TRUE; - } - sizeOK = ctx->Driver.TestProxyTexImage(ctx, - GL_PROXY_TEXTURE_RECTANGLE_NV, - level, internalFormat, - format, type, - width, height, 1, border); - } - else if (target == GL_TEXTURE_1D_ARRAY_EXT) { - if (!ctx->Extensions.MESA_texture_array) { - _mesa_error(ctx, GL_INVALID_ENUM, "glCopyTexImage2D(target)"); - return GL_TRUE; - } - sizeOK = ctx->Driver.TestProxyTexImage(ctx, - GL_PROXY_TEXTURE_1D_ARRAY_EXT, - level, internalFormat, - format, type, - width, height, 1, border); - } - else { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexImage2D(target)" ); - return GL_TRUE; - } - } - else { - _mesa_problem(ctx, "invalid dimensions in copytexture_error_check"); - return GL_TRUE; - } + sizeOK = sizeOK && ctx->Driver.TestProxyTexImage(ctx, proxyTarget, level, + internalFormat, format, + type, width, height, + 1, border); if (!sizeOK) { if (dimensions == 1) { @@ -1914,7 +1935,7 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions, } if (_mesa_is_compressed_format(ctx, internalFormat)) { - if (!target_can_be_compressed(ctx, target)) { + if (!target_can_be_compressed(ctx, target, internalFormat)) { _mesa_error(ctx, GL_INVALID_ENUM, "glCopyTexImage%dD(target)", dimensions); return GL_TRUE; @@ -1973,45 +1994,11 @@ copytexsubimage_error_check1( struct gl_context *ctx, GLuint dimensions, } } - /* Check target */ - if (dimensions == 1) { - if (target != GL_TEXTURE_1D) { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage1D(target)" ); - return GL_TRUE; - } - } - else if (dimensions == 2) { - if (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && - target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB) { - if (!ctx->Extensions.ARB_texture_cube_map) { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage2D(target)" ); - return GL_TRUE; - } - } - else if (target == GL_TEXTURE_RECTANGLE_NV) { - if (!ctx->Extensions.NV_texture_rectangle) { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage2D(target)" ); - return GL_TRUE; - } - } - else if (target == GL_TEXTURE_1D_ARRAY_EXT) { - if (!ctx->Extensions.MESA_texture_array) { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage2D(target)" ); - return GL_TRUE; - } - } - else if (target != GL_TEXTURE_2D) { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage2D(target)" ); - return GL_TRUE; - } - } - else if (dimensions == 3) { - if (((target != GL_TEXTURE_2D_ARRAY_EXT) || - (!ctx->Extensions.MESA_texture_array)) - && (target != GL_TEXTURE_3D)) { - _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage3D(target)" ); - return GL_TRUE; - } + /* check target (proxies not allowed) */ + if (!legal_texsubimage_target(ctx, dimensions, target)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glCopyTexSubImage%uD(target=%s)", + dimensions, _mesa_lookup_enum_by_nr(target)); + return GL_TRUE; } /* Check level */ @@ -2100,11 +2087,6 @@ copytexsubimage_error_check2( struct gl_context *ctx, GLuint dimensions, } if (_mesa_is_format_compressed(teximage->TexFormat)) { - if (!target_can_be_compressed(ctx, target)) { - _mesa_error(ctx, GL_INVALID_ENUM, - "glCopyTexSubImage%dD(target)", dimensions); - return GL_TRUE; - } /* offset must be multiple of 4 */ if ((xoffset & 3) || (yoffset & 3)) { _mesa_error(ctx, GL_INVALID_VALUE, @@ -2337,89 +2319,48 @@ _mesa_choose_texture_format(struct gl_context *ctx, } - -/* - * Called from the API. Note that width includes the border. +/** + * Common code to implement all the glTexImage1D/2D/3D functions. */ -void GLAPIENTRY -_mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, - GLsizei width, GLint border, GLenum format, - GLenum type, const GLvoid *pixels ) +static void +teximage(struct gl_context *ctx, GLuint dims, + GLenum target, GLint level, GLint internalFormat, + GLsizei width, GLsizei height, GLsizei depth, + GLint border, GLenum format, GLenum type, + const GLvoid *pixels) { - GET_CURRENT_CONTEXT(ctx); + GLboolean error; + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glTexImage1D %s %d %s %d %d %s %s %p\n", + _mesa_debug(ctx, "glTexImage%uD %s %d %s %d %d %d %d %s %s %p\n", + dims, _mesa_lookup_enum_by_nr(target), level, - _mesa_lookup_enum_by_nr(internalFormat), width, border, + _mesa_lookup_enum_by_nr(internalFormat), + width, height, depth, border, _mesa_lookup_enum_by_nr(format), _mesa_lookup_enum_by_nr(type), pixels); - internalFormat = override_internal_format(internalFormat, width, 1); - - if (target == GL_TEXTURE_1D) { - /* non-proxy target */ - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; - const GLuint face = _mesa_tex_target_to_face(target); - - if (texture_error_check(ctx, 1, target, level, internalFormat, - format, type, width, 1, 1, border)) { - return; /* error was recorded */ - } - - if (ctx->NewState & _MESA_NEW_TRANSFER_STATE) - _mesa_update_state(ctx); - - texObj = _mesa_get_current_tex_object(ctx, target); - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_get_tex_image(ctx, texObj, target, level); - if (!texImage) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage1D"); - } - else { - gl_format texFormat; - - if (texImage->Data) { - ctx->Driver.FreeTexImageData( ctx, texImage ); - } - - ASSERT(texImage->Data == NULL); - - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, format, - type); - - _mesa_init_teximage_fields(ctx, target, texImage, - width, 1, 1, - border, internalFormat, - texFormat); + internalFormat = override_internal_format(internalFormat, width, height); - /* Give the texture to the driver. <pixels> may be null. */ - ASSERT(ctx->Driver.TexImage1D); - ctx->Driver.TexImage1D(ctx, target, level, internalFormat, - width, border, format, type, pixels, - &ctx->Unpack, texObj, texImage); + /* target error checking */ + if (!legal_teximage_target(ctx, dims, target)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glTexImage%uD(target=%s)", + dims, _mesa_lookup_enum_by_nr(target)); + return; + } - check_gen_mipmap(ctx, target, texObj, level); + /* general error checking */ + error = texture_error_check(ctx, dims, target, level, internalFormat, + format, type, width, height, depth, border); - update_fbo_texture(ctx, texObj, face, level); + if (_mesa_is_proxy_texture(target)) { + /* Proxy texture: just clear or set state depending on error checking */ + struct gl_texture_image *texImage = + _mesa_get_proxy_tex_image(ctx, target, level); - /* state update */ - texObj->_Complete = GL_FALSE; - ctx->NewState |= _NEW_TEXTURE; - } - } - _mesa_unlock_texture(ctx, texObj); - } - else if (target == GL_PROXY_TEXTURE_1D) { - /* Proxy texture: check for errors and update proxy state */ - struct gl_texture_image *texImage; - texImage = _mesa_get_proxy_tex_image(ctx, target, level); - if (texture_error_check(ctx, 1, target, level, internalFormat, - format, type, width, 1, 1, border)) { + if (error) { /* when error, clear all proxy texture image parameters */ if (texImage) clear_teximage_fields(texImage); @@ -2428,54 +2369,28 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, /* no error, set the tex image parameters */ struct gl_texture_object *texObj = _mesa_get_current_tex_object(ctx, target); - gl_format texFormat = _mesa_choose_texture_format(ctx, texObj, target, - level, + gl_format texFormat = _mesa_choose_texture_format(ctx, texObj, + target, level, internalFormat, format, type); - _mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1, - border, internalFormat, texFormat); + + if (legal_texture_size(ctx, texFormat, width, height, depth)) { + _mesa_init_teximage_fields(ctx, target, texImage, width, height, + depth, border, internalFormat, + texFormat); + } + else if (texImage) { + clear_teximage_fields(texImage); + } } } else { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexImage1D(target)" ); - return; - } -} - - -void GLAPIENTRY -_mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, - GLsizei width, GLsizei height, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glTexImage2D %s %d %s %d %d %d %s %s %p\n", - _mesa_lookup_enum_by_nr(target), level, - _mesa_lookup_enum_by_nr(internalFormat), width, height, - border, _mesa_lookup_enum_by_nr(format), - _mesa_lookup_enum_by_nr(type), pixels); - - internalFormat = override_internal_format(internalFormat, width, height); - - if (target == GL_TEXTURE_2D || - (ctx->Extensions.ARB_texture_cube_map && - target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && - target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB) || - (ctx->Extensions.NV_texture_rectangle && - target == GL_TEXTURE_RECTANGLE_NV) || - (ctx->Extensions.MESA_texture_array && - target == GL_TEXTURE_1D_ARRAY_EXT)) { /* non-proxy target */ + const GLuint face = _mesa_tex_target_to_face(target); struct gl_texture_object *texObj; struct gl_texture_image *texImage; - const GLuint face = _mesa_tex_target_to_face(target); - if (texture_error_check(ctx, 2, target, level, internalFormat, - format, type, width, height, 1, border)) { + if (error) { return; /* error was recorded */ } @@ -2483,11 +2398,13 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, _mesa_update_state(ctx); texObj = _mesa_get_current_tex_object(ctx, target); + _mesa_lock_texture(ctx, texObj); { texImage = _mesa_get_tex_image(ctx, texObj, target, level); + if (!texImage) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage2D"); + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage%uD", dims); } else { gl_format texFormat; @@ -2497,63 +2414,81 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, } ASSERT(texImage->Data == NULL); - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, internalFormat, format, type); - _mesa_init_teximage_fields(ctx, target, texImage, width, height, 1, - border, internalFormat, texFormat); - - /* Give the texture to the driver. <pixels> may be null. */ - ASSERT(ctx->Driver.TexImage2D); - ctx->Driver.TexImage2D(ctx, target, level, internalFormat, - width, height, border, format, type, - pixels, &ctx->Unpack, texObj, texImage); + if (legal_texture_size(ctx, texFormat, width, height, depth)) { + _mesa_init_teximage_fields(ctx, target, texImage, + width, height, depth, + border, internalFormat, texFormat); + + /* Give the texture to the driver. <pixels> may be null. */ + ASSERT(ctx->Driver.TexImage3D); + switch (dims) { + case 1: + ctx->Driver.TexImage1D(ctx, target, level, internalFormat, + width, border, format, + type, pixels, &ctx->Unpack, texObj, + texImage); + break; + case 2: + ctx->Driver.TexImage2D(ctx, target, level, internalFormat, + width, height, border, format, + type, pixels, &ctx->Unpack, texObj, + texImage); + break; + case 3: + ctx->Driver.TexImage3D(ctx, target, level, internalFormat, + width, height, depth, border, format, + type, pixels, &ctx->Unpack, texObj, + texImage); + break; + default: + _mesa_problem(ctx, "invalid dims=%u in teximage()", dims); + } - check_gen_mipmap(ctx, target, texObj, level); + check_gen_mipmap(ctx, target, texObj, level); - update_fbo_texture(ctx, texObj, face, level); + update_fbo_texture(ctx, texObj, face, level); - /* state update */ - texObj->_Complete = GL_FALSE; - ctx->NewState |= _NEW_TEXTURE; + /* state update */ + texObj->_Complete = GL_FALSE; + ctx->NewState |= _NEW_TEXTURE; + } + else { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage%uD", dims); + } } } _mesa_unlock_texture(ctx, texObj); } - else if (target == GL_PROXY_TEXTURE_2D || - (target == GL_PROXY_TEXTURE_CUBE_MAP_ARB && - ctx->Extensions.ARB_texture_cube_map) || - (target == GL_PROXY_TEXTURE_RECTANGLE_NV && - ctx->Extensions.NV_texture_rectangle) || - (ctx->Extensions.MESA_texture_array && - target == GL_PROXY_TEXTURE_1D_ARRAY_EXT)) { - /* Proxy texture: check for errors and update proxy state */ - struct gl_texture_image *texImage; - texImage = _mesa_get_proxy_tex_image(ctx, target, level); - if (texture_error_check(ctx, 2, target, level, internalFormat, - format, type, width, height, 1, border)) { - /* when error, clear all proxy texture image parameters */ - if (texImage) - clear_teximage_fields(texImage); - } - else { - /* no error, set the tex image parameters */ - struct gl_texture_object *texObj = - _mesa_get_current_tex_object(ctx, target); - gl_format texFormat = _mesa_choose_texture_format(ctx, texObj, - target, level, - internalFormat, - format, type); - _mesa_init_teximage_fields(ctx, target, texImage, width, height, 1, - border, internalFormat, texFormat); - } - } - else { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexImage2D(target)" ); - return; - } +} + + +/* + * Called from the API. Note that width includes the border. + */ +void GLAPIENTRY +_mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, + GLsizei width, GLint border, GLenum format, + GLenum type, const GLvoid *pixels ) +{ + GET_CURRENT_CONTEXT(ctx); + teximage(ctx, 1, target, level, internalFormat, width, 1, 1, + border, format, type, pixels); +} + + +void GLAPIENTRY +_mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, + GLsizei width, GLsizei height, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ) +{ + GET_CURRENT_CONTEXT(ctx); + teximage(ctx, 2, target, level, internalFormat, width, height, 1, + border, format, type, pixels); } @@ -2568,100 +2503,8 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat, const GLvoid *pixels ) { GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glTexImage3D %s %d %s %d %d %d %d %s %s %p\n", - _mesa_lookup_enum_by_nr(target), level, - _mesa_lookup_enum_by_nr(internalFormat), width, height, - depth, border, _mesa_lookup_enum_by_nr(format), - _mesa_lookup_enum_by_nr(type), pixels); - - internalFormat = override_internal_format(internalFormat, width, height); - - if (target == GL_TEXTURE_3D || - (ctx->Extensions.MESA_texture_array && - target == GL_TEXTURE_2D_ARRAY_EXT)) { - /* non-proxy target */ - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; - const GLuint face = _mesa_tex_target_to_face(target); - - if (texture_error_check(ctx, 3, target, level, (GLint) internalFormat, - format, type, width, height, depth, border)) { - return; /* error was recorded */ - } - - if (ctx->NewState & _MESA_NEW_TRANSFER_STATE) - _mesa_update_state(ctx); - - texObj = _mesa_get_current_tex_object(ctx, target); - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_get_tex_image(ctx, texObj, target, level); - if (!texImage) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage3D"); - } - else { - gl_format texFormat; - - if (texImage->Data) { - ctx->Driver.FreeTexImageData( ctx, texImage ); - } - - ASSERT(texImage->Data == NULL); - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, format, - type); - _mesa_init_teximage_fields(ctx, target, texImage, - width, height, depth, - border, internalFormat, texFormat); - - /* Give the texture to the driver. <pixels> may be null. */ - ASSERT(ctx->Driver.TexImage3D); - ctx->Driver.TexImage3D(ctx, target, level, internalFormat, - width, height, depth, border, format, type, - pixels, &ctx->Unpack, texObj, texImage); - - check_gen_mipmap(ctx, target, texObj, level); - - update_fbo_texture(ctx, texObj, face, level); - - /* state update */ - texObj->_Complete = GL_FALSE; - ctx->NewState |= _NEW_TEXTURE; - } - } - _mesa_unlock_texture(ctx, texObj); - } - else if (target == GL_PROXY_TEXTURE_3D || - (ctx->Extensions.MESA_texture_array && - target == GL_PROXY_TEXTURE_2D_ARRAY_EXT)) { - /* Proxy texture: check for errors and update proxy state */ - struct gl_texture_image *texImage; - texImage = _mesa_get_proxy_tex_image(ctx, target, level); - if (texture_error_check(ctx, 3, target, level, internalFormat, - format, type, width, height, depth, border)) { - /* when error, clear all proxy texture image parameters */ - if (texImage) - clear_teximage_fields(texImage); - } - else { - /* no error, set the tex image parameters */ - struct gl_texture_object *texObj = - _mesa_get_current_tex_object(ctx, target); - gl_format texFormat = _mesa_choose_texture_format(ctx, texObj, - target, level, - internalFormat, - format, type); - _mesa_init_teximage_fields(ctx, target, texImage, width, height, - depth, border, internalFormat, texFormat); - } - } - else { - _mesa_error( ctx, GL_INVALID_ENUM, "glTexImage3D(target)" ); - return; - } + teximage(ctx, 3, target, level, internalFormat, width, height, depth, + border, format, type, pixels); } @@ -2724,51 +2567,92 @@ _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image) #endif -void GLAPIENTRY -_mesa_TexSubImage1D( GLenum target, GLint level, - GLint xoffset, GLsizei width, - GLenum format, GLenum type, - const GLvoid *pixels ) + +/** + * Implement all the glTexSubImage1/2/3D() functions. + */ +static void +texsubimage(struct gl_context *ctx, GLuint dims, GLenum target, GLint level, + GLint xoffset, GLint yoffset, GLint zoffset, + GLsizei width, GLsizei height, GLsizei depth, + GLenum format, GLenum type, const GLvoid *pixels ) { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glTexSubImage1D %s %d %d %d %s %s %p\n", + _mesa_debug(ctx, "glTexSubImage%uD %s %d %d %d %d %d %d %d %s %s %p\n", + dims, _mesa_lookup_enum_by_nr(target), level, - xoffset, width, _mesa_lookup_enum_by_nr(format), + xoffset, yoffset, zoffset, width, height, depth, + _mesa_lookup_enum_by_nr(format), _mesa_lookup_enum_by_nr(type), pixels); + /* check target (proxies not allowed) */ + if (!legal_texsubimage_target(ctx, dims, target)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glTexSubImage%uD(target=%s)", + dims, _mesa_lookup_enum_by_nr(target)); + return; + } + if (ctx->NewState & _MESA_NEW_TRANSFER_STATE) _mesa_update_state(ctx); - if (subtexture_error_check(ctx, 1, target, level, xoffset, 0, 0, - width, 1, 1, format, type)) { + if (subtexture_error_check(ctx, dims, target, level, xoffset, yoffset, zoffset, + width, height, depth, format, type)) { return; /* error was detected */ } - texObj = _mesa_get_current_tex_object(ctx, target); - assert(texObj); _mesa_lock_texture(ctx, texObj); { texImage = _mesa_select_tex_image(ctx, texObj, target, level); - if (subtexture_error_check2(ctx, 1, target, level, xoffset, 0, 0, - width, 1, 1, format, type, texImage)) { + if (subtexture_error_check2(ctx, dims, target, level, + xoffset, yoffset, zoffset, + width, height, depth, + format, type, texImage)) { /* error was recorded */ } - else if (width > 0) { - /* If we have a border, xoffset=-1 is legal. Bias by border width */ - xoffset += texImage->Border; + else if (width > 0 && height > 0 && height > 0) { + /* If we have a border, offset=-1 is legal. Bias by border width. */ + switch (dims) { + case 3: + zoffset += texImage->Border; + /* fall-through */ + case 2: + yoffset += texImage->Border; + /* fall-through */ + case 1: + xoffset += texImage->Border; + } - ASSERT(ctx->Driver.TexSubImage1D); - ctx->Driver.TexSubImage1D(ctx, target, level, xoffset, width, - format, type, pixels, &ctx->Unpack, - texObj, texImage); + switch (dims) { + case 1: + ctx->Driver.TexSubImage1D(ctx, target, level, + xoffset, width, + format, type, pixels, + &ctx->Unpack, texObj, texImage ); + break; + case 2: + ctx->Driver.TexSubImage2D(ctx, target, level, + xoffset, yoffset, width, height, + format, type, pixels, + &ctx->Unpack, texObj, texImage ); + break; + case 3: + ctx->Driver.TexSubImage3D(ctx, target, level, + xoffset, yoffset, zoffset, + width, height, depth, + format, type, pixels, + &ctx->Unpack, texObj, texImage ); + break; + default: + _mesa_problem(ctx, "unexpected dims in subteximage()"); + } check_gen_mipmap(ctx, target, texObj, level); @@ -2780,58 +2664,31 @@ _mesa_TexSubImage1D( GLenum target, GLint level, void GLAPIENTRY +_mesa_TexSubImage1D( GLenum target, GLint level, + GLint xoffset, GLsizei width, + GLenum format, GLenum type, + const GLvoid *pixels ) +{ + GET_CURRENT_CONTEXT(ctx); + texsubimage(ctx, 1, target, level, + xoffset, 0, 0, + width, 1, 1, + format, type, pixels); +} + + +void GLAPIENTRY _mesa_TexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) { - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glTexSubImage2D %s %d %d %d %d %d %s %s %p\n", - _mesa_lookup_enum_by_nr(target), level, - xoffset, yoffset, width, height, - _mesa_lookup_enum_by_nr(format), - _mesa_lookup_enum_by_nr(type), pixels); - - if (ctx->NewState & _MESA_NEW_TRANSFER_STATE) - _mesa_update_state(ctx); - - if (subtexture_error_check(ctx, 2, target, level, xoffset, yoffset, 0, - width, height, 1, format, type)) { - return; /* error was detected */ - } - - texObj = _mesa_get_current_tex_object(ctx, target); - - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_select_tex_image(ctx, texObj, target, level); - - if (subtexture_error_check2(ctx, 2, target, level, xoffset, yoffset, 0, - width, height, 1, format, type, texImage)) { - /* error was recorded */ - } - else if (width > 0 && height >= 0) { - /* If we have a border, xoffset=-1 is legal. Bias by border width */ - xoffset += texImage->Border; - yoffset += texImage->Border; - - ASSERT(ctx->Driver.TexSubImage2D); - ctx->Driver.TexSubImage2D(ctx, target, level, xoffset, yoffset, - width, height, format, type, pixels, - &ctx->Unpack, texObj, texImage); - - check_gen_mipmap(ctx, target, texObj, level); - - ctx->NewState |= _NEW_TEXTURE; - } - } - _mesa_unlock_texture(ctx, texObj); + texsubimage(ctx, 2, target, level, + xoffset, yoffset, 0, + width, height, 1, + format, type, pixels); } @@ -2843,84 +2700,41 @@ _mesa_TexSubImage3D( GLenum target, GLint level, GLenum format, GLenum type, const GLvoid *pixels ) { - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glTexSubImage3D %s %d %d %d %d %d %d %d %s %s %p\n", - _mesa_lookup_enum_by_nr(target), level, - xoffset, yoffset, zoffset, width, height, depth, - _mesa_lookup_enum_by_nr(format), - _mesa_lookup_enum_by_nr(type), pixels); - - if (ctx->NewState & _MESA_NEW_TRANSFER_STATE) - _mesa_update_state(ctx); - - if (subtexture_error_check(ctx, 3, target, level, xoffset, yoffset, zoffset, - width, height, depth, format, type)) { - return; /* error was detected */ - } - - texObj = _mesa_get_current_tex_object(ctx, target); - - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_select_tex_image(ctx, texObj, target, level); - - if (subtexture_error_check2(ctx, 3, target, level, - xoffset, yoffset, zoffset, - width, height, depth, - format, type, texImage)) { - /* error was recorded */ - } - else if (width > 0 && height > 0 && height > 0) { - /* If we have a border, xoffset=-1 is legal. Bias by border width */ - xoffset += texImage->Border; - yoffset += texImage->Border; - zoffset += texImage->Border; - - ASSERT(ctx->Driver.TexSubImage3D); - ctx->Driver.TexSubImage3D(ctx, target, level, - xoffset, yoffset, zoffset, - width, height, depth, - format, type, pixels, - &ctx->Unpack, texObj, texImage ); - - check_gen_mipmap(ctx, target, texObj, level); - - ctx->NewState |= _NEW_TEXTURE; - } - } - _mesa_unlock_texture(ctx, texObj); + texsubimage(ctx, 3, target, level, + xoffset, yoffset, zoffset, + width, height, depth, + format, type, pixels); } -void GLAPIENTRY -_mesa_CopyTexImage1D( GLenum target, GLint level, - GLenum internalFormat, - GLint x, GLint y, - GLsizei width, GLint border ) +/** + * Implement the glCopyTexImage1/2D() functions. + */ +static void +copyteximage(struct gl_context *ctx, GLuint dims, + GLenum target, GLint level, GLenum internalFormat, + GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) { struct gl_texture_object *texObj; struct gl_texture_image *texImage; const GLuint face = _mesa_tex_target_to_face(target); - GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glCopyTexImage1D %s %d %s %d %d %d %d\n", + _mesa_debug(ctx, "glCopyTexImage%uD %s %d %s %d %d %d %d %d\n", + dims, _mesa_lookup_enum_by_nr(target), level, _mesa_lookup_enum_by_nr(internalFormat), - x, y, width, border); + x, y, width, height, border); if (ctx->NewState & NEW_COPY_TEX_STATE) _mesa_update_state(ctx); - if (copytexture_error_check(ctx, 1, target, level, internalFormat, - width, 1, border)) + if (copytexture_error_check(ctx, dims, target, level, internalFormat, + width, height, border)) return; texObj = _mesa_get_current_tex_object(ctx, target); @@ -2928,8 +2742,9 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, _mesa_lock_texture(ctx, texObj); { texImage = _mesa_get_tex_image(ctx, texObj, target, level); + if (!texImage) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCopyTexImage1D"); + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCopyTexImage%uD", dims); } else { gl_format texFormat; @@ -2944,20 +2759,29 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, internalFormat, GL_NONE, GL_NONE); - _mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1, - border, internalFormat, texFormat); + if (legal_texture_size(ctx, texFormat, width, height, 1)) { + _mesa_init_teximage_fields(ctx, target, texImage, width, height, 1, + border, internalFormat, texFormat); - ASSERT(ctx->Driver.CopyTexImage1D); - ctx->Driver.CopyTexImage1D(ctx, target, level, internalFormat, - x, y, width, border); + ASSERT(ctx->Driver.CopyTexImage2D); + if (dims == 1) + ctx->Driver.CopyTexImage1D(ctx, target, level, internalFormat, + x, y, width, border); + else + ctx->Driver.CopyTexImage2D(ctx, target, level, internalFormat, + x, y, width, height, border); - check_gen_mipmap(ctx, target, texObj, level); + check_gen_mipmap(ctx, target, texObj, level); - update_fbo_texture(ctx, texObj, face, level); + update_fbo_texture(ctx, texObj, face, level); - /* state update */ - texObj->_Complete = GL_FALSE; - ctx->NewState |= _NEW_TEXTURE; + /* state update */ + texObj->_Complete = GL_FALSE; + ctx->NewState |= _NEW_TEXTURE; + } + else { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCopyTexImage%uD", dims); + } } } _mesa_unlock_texture(ctx, texObj); @@ -2966,92 +2790,52 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, void GLAPIENTRY -_mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, - GLint x, GLint y, GLsizei width, GLsizei height, - GLint border ) +_mesa_CopyTexImage1D( GLenum target, GLint level, + GLenum internalFormat, + GLint x, GLint y, + GLsizei width, GLint border ) { - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; - const GLuint face = _mesa_tex_target_to_face(target); GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glCopyTexImage2D %s %d %s %d %d %d %d %d\n", - _mesa_lookup_enum_by_nr(target), level, - _mesa_lookup_enum_by_nr(internalFormat), - x, y, width, height, border); - - if (ctx->NewState & NEW_COPY_TEX_STATE) - _mesa_update_state(ctx); - - if (copytexture_error_check(ctx, 2, target, level, internalFormat, - width, height, border)) - return; - - texObj = _mesa_get_current_tex_object(ctx, target); - - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_get_tex_image(ctx, texObj, target, level); - - if (!texImage) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCopyTexImage2D"); - } - else { - gl_format texFormat; - - if (texImage->Data) { - ctx->Driver.FreeTexImageData( ctx, texImage ); - } - - ASSERT(texImage->Data == NULL); - - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, GL_NONE, - GL_NONE); - - _mesa_init_teximage_fields(ctx, target, texImage, width, height, 1, - border, internalFormat, texFormat); - - ASSERT(ctx->Driver.CopyTexImage2D); - ctx->Driver.CopyTexImage2D(ctx, target, level, internalFormat, - x, y, width, height, border); + copyteximage(ctx, 1, target, level, internalFormat, x, y, width, 1, border); +} - check_gen_mipmap(ctx, target, texObj, level); - update_fbo_texture(ctx, texObj, face, level); - /* state update */ - texObj->_Complete = GL_FALSE; - ctx->NewState |= _NEW_TEXTURE; - } - } - _mesa_unlock_texture(ctx, texObj); +void GLAPIENTRY +_mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, + GLint x, GLint y, GLsizei width, GLsizei height, + GLint border ) +{ + GET_CURRENT_CONTEXT(ctx); + copyteximage(ctx, 2, target, level, internalFormat, + x, y, width, height, border); } -void GLAPIENTRY -_mesa_CopyTexSubImage1D( GLenum target, GLint level, - GLint xoffset, GLint x, GLint y, GLsizei width ) + +/** + * Implementation for glCopyTexSubImage1/2/3D() functions. + */ +static void +copytexsubimage(struct gl_context *ctx, GLuint dims, GLenum target, GLint level, + GLint xoffset, GLint yoffset, GLint zoffset, + GLint x, GLint y, GLsizei width, GLsizei height) { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLint yoffset = 0; - GLsizei height = 1; - GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glCopyTexSubImage1D %s %d %d %d %d %d\n", + _mesa_debug(ctx, "glCopyTexSubImage%uD %s %d %d %d %d %d %d %d %d\n", + dims, _mesa_lookup_enum_by_nr(target), - level, xoffset, x, y, width); + level, xoffset, yoffset, zoffset, x, y, width, height); if (ctx->NewState & NEW_COPY_TEX_STATE) _mesa_update_state(ctx); - if (copytexsubimage_error_check1(ctx, 1, target, level)) + if (copytexsubimage_error_check1(ctx, dims, target, level)) return; texObj = _mesa_get_current_tex_object(ctx, target); @@ -3060,19 +2844,43 @@ _mesa_CopyTexSubImage1D( GLenum target, GLint level, { texImage = _mesa_select_tex_image(ctx, texObj, target, level); - if (copytexsubimage_error_check2(ctx, 1, target, level, - xoffset, 0, 0, width, 1, texImage)) { - /* error was recorded */ + if (copytexsubimage_error_check2(ctx, dims, target, level, xoffset, yoffset, + zoffset, width, height, texImage)) { + /* error was recored */ } else { - /* If we have a border, xoffset=-1 is legal. Bias by border width */ - xoffset += texImage->Border; + /* If we have a border, offset=-1 is legal. Bias by border width. */ + switch (dims) { + case 3: + zoffset += texImage->Border; + /* fall-through */ + case 2: + yoffset += texImage->Border; + /* fall-through */ + case 1: + xoffset += texImage->Border; + } if (_mesa_clip_copytexsubimage(ctx, &xoffset, &yoffset, &x, &y, &width, &height)) { - ASSERT(ctx->Driver.CopyTexSubImage1D); - ctx->Driver.CopyTexSubImage1D(ctx, target, level, - xoffset, x, y, width); + switch (dims) { + case 1: + ctx->Driver.CopyTexSubImage1D(ctx, target, level, + xoffset, x, y, width); + break; + case 2: + ctx->Driver.CopyTexSubImage2D(ctx, target, level, + xoffset, yoffset, + x, y, width, height); + break; + case 3: + ctx->Driver.CopyTexSubImage3D(ctx, target, level, + xoffset, yoffset, zoffset, + x, y, width, height); + break; + default: + _mesa_problem(ctx, "bad dims in copytexsubimage()"); + } check_gen_mipmap(ctx, target, texObj, level); @@ -3084,57 +2892,24 @@ _mesa_CopyTexSubImage1D( GLenum target, GLint level, } +void GLAPIENTRY +_mesa_CopyTexSubImage1D( GLenum target, GLint level, + GLint xoffset, GLint x, GLint y, GLsizei width ) +{ + GET_CURRENT_CONTEXT(ctx); + copytexsubimage(ctx, 1, target, level, xoffset, 0, 0, x, y, width, 1); +} + + void GLAPIENTRY _mesa_CopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) { - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glCopyTexSubImage2D %s %d %d %d %d %d %d %d\n", - _mesa_lookup_enum_by_nr(target), - level, xoffset, yoffset, x, y, width, height); - - if (ctx->NewState & NEW_COPY_TEX_STATE) - _mesa_update_state(ctx); - - if (copytexsubimage_error_check1(ctx, 2, target, level)) - return; - - texObj = _mesa_get_current_tex_object(ctx, target); - - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_select_tex_image(ctx, texObj, target, level); - - if (copytexsubimage_error_check2(ctx, 2, target, level, - xoffset, yoffset, 0, - width, height, texImage)) { - /* error was recorded */ - } - else { - /* If we have a border, xoffset=-1 is legal. Bias by border width */ - xoffset += texImage->Border; - yoffset += texImage->Border; - - if (_mesa_clip_copytexsubimage(ctx, &xoffset, &yoffset, &x, &y, - &width, &height)) { - ASSERT(ctx->Driver.CopyTexSubImage2D); - ctx->Driver.CopyTexSubImage2D(ctx, target, level, xoffset, yoffset, - x, y, width, height); - - check_gen_mipmap(ctx, target, texObj, level); - - ctx->NewState |= _NEW_TEXTURE; - } - } - } - _mesa_unlock_texture(ctx, texObj); + copytexsubimage(ctx, 2, target, level, xoffset, yoffset, 0, x, y, + width, height); } @@ -3144,52 +2919,9 @@ _mesa_CopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ) { - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glCopyTexSubImage3D %s %d %d %d %d %d %d %d %d\n", - _mesa_lookup_enum_by_nr(target), - level, xoffset, yoffset, zoffset, x, y, width, height); - - if (ctx->NewState & NEW_COPY_TEX_STATE) - _mesa_update_state(ctx); - - if (copytexsubimage_error_check1(ctx, 3, target, level)) - return; - - texObj = _mesa_get_current_tex_object(ctx, target); - - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_select_tex_image(ctx, texObj, target, level); - - if (copytexsubimage_error_check2(ctx, 3, target, level, xoffset, yoffset, - zoffset, width, height, texImage)) { - /* error was recored */ - } - else { - /* If we have a border, xoffset=-1 is legal. Bias by border width */ - xoffset += texImage->Border; - yoffset += texImage->Border; - zoffset += texImage->Border; - - if (_mesa_clip_copytexsubimage(ctx, &xoffset, &yoffset, &x, &y, - &width, &height)) { - ASSERT(ctx->Driver.CopyTexSubImage3D); - ctx->Driver.CopyTexSubImage3D(ctx, target, level, - xoffset, yoffset, zoffset, - x, y, width, height); - - check_gen_mipmap(ctx, target, texObj, level); - - ctx->NewState |= _NEW_TEXTURE; - } - } - } - _mesa_unlock_texture(ctx, texObj); + copytexsubimage(ctx, 3, target, level, xoffset, yoffset, zoffset, + x, y, width, height); } @@ -3234,45 +2966,18 @@ compressed_texture_error_check(struct gl_context *ctx, GLint dimensions, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize) { - GLint expectedSize, maxLevels = 0, maxTextureSize; + const GLenum proxyTarget = get_proxy_target(target); + const GLint maxLevels = _mesa_max_texture_levels(ctx, target); + GLint expectedSize; - if (dimensions == 1) { - /* 1D compressed textures not allowed */ - return GL_INVALID_ENUM; - } - else if (dimensions == 2) { - if (target == GL_PROXY_TEXTURE_2D) { - maxLevels = ctx->Const.MaxTextureLevels; - } - else if (target == GL_TEXTURE_2D) { - maxLevels = ctx->Const.MaxTextureLevels; - } - else if (target == GL_PROXY_TEXTURE_CUBE_MAP_ARB) { - if (!ctx->Extensions.ARB_texture_cube_map) - return GL_INVALID_ENUM; /*target*/ - maxLevels = ctx->Const.MaxCubeTextureLevels; - } - else if (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && - target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB) { - if (!ctx->Extensions.ARB_texture_cube_map) - return GL_INVALID_ENUM; /*target*/ - maxLevels = ctx->Const.MaxCubeTextureLevels; - } - else { - return GL_INVALID_ENUM; /*target*/ - } - } - else if (dimensions == 3) { - /* 3D compressed textures not allowed */ - return GL_INVALID_ENUM; - } - else { - assert(0); + /* check level */ + if (level < 0 || level >= maxLevels) + return GL_INVALID_VALUE; + + if (!target_can_be_compressed(ctx, target, internalFormat)) { return GL_INVALID_ENUM; } - maxTextureSize = 1 << (maxLevels - 1); - /* This will detect any invalid internalFormat value */ if (!_mesa_is_compressed_format(ctx, internalFormat)) return GL_INVALID_ENUM; @@ -3281,47 +2986,51 @@ compressed_texture_error_check(struct gl_context *ctx, GLint dimensions, if (_mesa_base_tex_format(ctx, internalFormat) < 0) return GL_INVALID_ENUM; + /* No compressed formats support borders at this time */ if (border != 0) return GL_INVALID_VALUE; - /* - * XXX We should probably use the proxy texture error check function here. - */ - if (width < 1 || width > maxTextureSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && !_mesa_is_pow_two(width))) - return GL_INVALID_VALUE; - - if ((height < 1 || height > maxTextureSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && !_mesa_is_pow_two(height))) - && dimensions > 1) - return GL_INVALID_VALUE; - - if ((depth < 1 || depth > maxTextureSize || - (!ctx->Extensions.ARB_texture_non_power_of_two && !_mesa_is_pow_two(depth))) - && dimensions > 2) - return GL_INVALID_VALUE; - /* For cube map, width must equal height */ if (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB && width != height) return GL_INVALID_VALUE; - if (level < 0 || level >= maxLevels) - return GL_INVALID_VALUE; + /* check image size against compression block size */ + { + gl_format texFormat = + ctx->Driver.ChooseTextureFormat(ctx, internalFormat, + GL_NONE, GL_NONE); + GLuint bw, bh; - expectedSize = compressed_tex_size(width, height, depth, internalFormat); - if (expectedSize != imageSize) - return GL_INVALID_VALUE; + _mesa_get_format_block_size(texFormat, &bw, &bh); + if ((width > bw && width % bw > 0) || + (height > bh && height % bh > 0)) { + /* + * Per GL_ARB_texture_compression: GL_INVALID_OPERATION is + * generated [...] if any parameter combinations are not + * supported by the specific compressed internal format. + */ + return GL_INVALID_OPERATION; + } + } -#if FEATURE_EXT_texture_sRGB - if ((internalFormat == GL_COMPRESSED_SRGB_S3TC_DXT1_EXT || - internalFormat == GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT || - internalFormat == GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT || - internalFormat == GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT) - && border != 0) { + /* check image sizes */ + if (!ctx->Driver.TestProxyTexImage(ctx, proxyTarget, level, + internalFormat, GL_NONE, GL_NONE, + width, height, depth, border)) { + /* See error comment above */ return GL_INVALID_OPERATION; } -#endif + + /* check image size in bytes */ + expectedSize = compressed_tex_size(width, height, depth, internalFormat); + if (expectedSize != imageSize) { + /* Per GL_ARB_texture_compression: GL_INVALID_VALUE is generated [...] + * if <imageSize> is not consistent with the format, dimensions, and + * contents of the specified image. + */ + return GL_INVALID_VALUE; + } return GL_NO_ERROR; } @@ -3463,159 +3172,101 @@ compressed_subtexture_error_check2(struct gl_context *ctx, GLuint dims, } - -void GLAPIENTRY -_mesa_CompressedTexImage1DARB(GLenum target, GLint level, - GLenum internalFormat, GLsizei width, - GLint border, GLsizei imageSize, - const GLvoid *data) +/** + * Implementation of the glCompressedTexImage1/2/3D() functions. + */ +static void +compressedteximage(struct gl_context *ctx, GLuint dims, + GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLsizei height, GLsizei depth, GLint border, + GLsizei imageSize, const GLvoid *data) { - GET_CURRENT_CONTEXT(ctx); + GLenum error; + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glCompressedTexImage1DARB %s %d %s %d %d %d %p\n", + _mesa_debug(ctx, + "glCompressedTexImage%uDARB %s %d %s %d %d %d %d %d %p\n", + dims, _mesa_lookup_enum_by_nr(target), level, _mesa_lookup_enum_by_nr(internalFormat), - width, border, imageSize, data); - - if (target == GL_TEXTURE_1D) { - /* non-proxy target */ - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; - GLenum error = compressed_texture_error_check(ctx, 1, target, level, - internalFormat, width, 1, 1, border, imageSize); - if (error) { - _mesa_error(ctx, error, "glCompressedTexImage1D"); - return; - } - - texObj = _mesa_get_current_tex_object(ctx, target); - - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_get_tex_image(ctx, texObj, target, level); - if (!texImage) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCompressedTexImage1D"); - } - else { - gl_format texFormat; - - if (texImage->Data) { - ctx->Driver.FreeTexImageData( ctx, texImage ); - } - ASSERT(texImage->Data == NULL); - - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, GL_NONE, - GL_NONE); + width, height, depth, border, imageSize, data); - _mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1, - border, internalFormat, texFormat); + /* check target */ + if (!legal_teximage_target(ctx, dims, target)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glCompressedTexImage%uD(target=%s)", + dims, _mesa_lookup_enum_by_nr(target)); + return; + } - ASSERT(ctx->Driver.CompressedTexImage1D); - ctx->Driver.CompressedTexImage1D(ctx, target, level, - internalFormat, width, border, - imageSize, data, - texObj, texImage); + error = compressed_texture_error_check(ctx, dims, target, level, + internalFormat, width, height, depth, + border, imageSize); - check_gen_mipmap(ctx, target, texObj, level); +#if FEATURE_ES + /* XXX this is kind of a hack */ + if (error) { + _mesa_error(ctx, error, "glTexImage2D"); + return; + } - /* state update */ - texObj->_Complete = GL_FALSE; - ctx->NewState |= _NEW_TEXTURE; - } + if (dims == 2) { + switch (internalFormat) { + case GL_PALETTE4_RGB8_OES: + case GL_PALETTE4_RGBA8_OES: + case GL_PALETTE4_R5_G6_B5_OES: + case GL_PALETTE4_RGBA4_OES: + case GL_PALETTE4_RGB5_A1_OES: + case GL_PALETTE8_RGB8_OES: + case GL_PALETTE8_RGBA8_OES: + case GL_PALETTE8_R5_G6_B5_OES: + case GL_PALETTE8_RGBA4_OES: + case GL_PALETTE8_RGB5_A1_OES: + _mesa_cpal_compressed_teximage2d(target, level, internalFormat, + width, height, imageSize, data); + return; } - _mesa_unlock_texture(ctx, texObj); } - else if (target == GL_PROXY_TEXTURE_1D) { - /* Proxy texture: check for errors and update proxy state */ - GLenum error = compressed_texture_error_check(ctx, 1, target, level, - internalFormat, width, 1, 1, border, imageSize); +#endif + + if (_mesa_is_proxy_texture(target)) { + /* Proxy texture: just check for errors and update proxy state */ + struct gl_texture_image *texImage; + if (!error) { - ASSERT(ctx->Driver.TestProxyTexImage); - error = !(*ctx->Driver.TestProxyTexImage)(ctx, target, level, - internalFormat, GL_NONE, GL_NONE, - width, 1, 1, border); - } - if (error) { - /* if error, clear all proxy texture image parameters */ - struct gl_texture_image *texImage; - texImage = _mesa_get_proxy_tex_image(ctx, target, level); - if (texImage) - clear_teximage_fields(texImage); + struct gl_texture_object *texObj = + _mesa_get_current_tex_object(ctx, target); + gl_format texFormat = + _mesa_choose_texture_format(ctx, texObj, target, level, + internalFormat, GL_NONE, GL_NONE); + if (!legal_texture_size(ctx, texFormat, width, height, depth)) { + error = GL_OUT_OF_MEMORY; + } } - else { - /* store the teximage parameters */ - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; - gl_format texFormat; - - texObj = _mesa_get_current_tex_object(ctx, target); - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_select_tex_image(ctx, texObj, target, level); - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, GL_NONE, - GL_NONE); - _mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1, - border, internalFormat, texFormat); - } - _mesa_unlock_texture(ctx, texObj); + texImage = _mesa_get_proxy_tex_image(ctx, target, level); + if (texImage) { + if (error) { + /* if error, clear all proxy texture image parameters */ + clear_teximage_fields(texImage); + } + else { + /* no error: store the teximage parameters */ + _mesa_init_teximage_fields(ctx, target, texImage, width, height, + depth, border, internalFormat, + MESA_FORMAT_NONE); + } } } else { - _mesa_error(ctx, GL_INVALID_ENUM, "glCompressedTexImage1D(target)"); - return; - } -} - -void GLAPIENTRY -_mesa_CompressedTexImage2DARB(GLenum target, GLint level, - GLenum internalFormat, GLsizei width, - GLsizei height, GLint border, GLsizei imageSize, - const GLvoid *data) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glCompressedTexImage2DARB %s %d %s %d %d %d %d %p\n", - _mesa_lookup_enum_by_nr(target), level, - _mesa_lookup_enum_by_nr(internalFormat), - width, height, border, imageSize, data); - -#if FEATURE_ES - switch (internalFormat) { - case GL_PALETTE4_RGB8_OES: - case GL_PALETTE4_RGBA8_OES: - case GL_PALETTE4_R5_G6_B5_OES: - case GL_PALETTE4_RGBA4_OES: - case GL_PALETTE4_RGB5_A1_OES: - case GL_PALETTE8_RGB8_OES: - case GL_PALETTE8_RGBA8_OES: - case GL_PALETTE8_R5_G6_B5_OES: - case GL_PALETTE8_RGBA4_OES: - case GL_PALETTE8_RGB5_A1_OES: - _mesa_cpal_compressed_teximage2d(target, level, internalFormat, - width, height, imageSize, data); - return; - } -#endif - - if (target == GL_TEXTURE_2D || - (ctx->Extensions.ARB_texture_cube_map && - target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && - target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB)) { /* non-proxy target */ struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLenum error = compressed_texture_error_check(ctx, 2, target, level, - internalFormat, width, height, 1, border, imageSize); if (error) { - _mesa_error(ctx, error, "glCompressedTexImage2D"); + _mesa_error(ctx, error, "glCompressedTexImage%uD", dims); return; } @@ -3625,7 +3276,8 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level, { texImage = _mesa_get_tex_image(ctx, texObj, target, level); if (!texImage) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCompressedTexImage2D"); + _mesa_error(ctx, GL_OUT_OF_MEMORY, + "glCompressedTexImage%uD", dims); } else { gl_format texFormat; @@ -3639,67 +3291,78 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level, internalFormat, GL_NONE, GL_NONE); - _mesa_init_teximage_fields(ctx, target, texImage, width, height, 1, - border, internalFormat, texFormat); - - ASSERT(ctx->Driver.CompressedTexImage2D); - ctx->Driver.CompressedTexImage2D(ctx, target, level, - internalFormat, width, height, - border, imageSize, data, - texObj, texImage); + if (legal_texture_size(ctx, texFormat, width, height, depth)) { + _mesa_init_teximage_fields(ctx, target, texImage, + width, height, depth, + border, internalFormat, texFormat); + + switch (dims) { + case 1: + ASSERT(ctx->Driver.CompressedTexImage1D); + ctx->Driver.CompressedTexImage1D(ctx, target, level, + internalFormat, + width, + border, imageSize, data, + texObj, texImage); + break; + case 2: + ASSERT(ctx->Driver.CompressedTexImage2D); + ctx->Driver.CompressedTexImage2D(ctx, target, level, + internalFormat, + width, height, + border, imageSize, data, + texObj, texImage); + break; + case 3: + ASSERT(ctx->Driver.CompressedTexImage3D); + ctx->Driver.CompressedTexImage3D(ctx, target, level, + internalFormat, + width, height, depth, + border, imageSize, data, + texObj, texImage); + break; + default: + _mesa_problem(ctx, "bad dims in compressedteximage"); + } - check_gen_mipmap(ctx, target, texObj, level); + check_gen_mipmap(ctx, target, texObj, level); - /* state update */ - texObj->_Complete = GL_FALSE; - ctx->NewState |= _NEW_TEXTURE; + /* state update */ + texObj->_Complete = GL_FALSE; + ctx->NewState |= _NEW_TEXTURE; + } + else { + _mesa_error(ctx, GL_OUT_OF_MEMORY, + "glCompressedTexImage%uD", dims); + } } } _mesa_unlock_texture(ctx, texObj); } - else if (target == GL_PROXY_TEXTURE_2D || - (target == GL_PROXY_TEXTURE_CUBE_MAP_ARB && - ctx->Extensions.ARB_texture_cube_map)) { - /* Proxy texture: check for errors and update proxy state */ - GLenum error = compressed_texture_error_check(ctx, 2, target, level, - internalFormat, width, height, 1, border, imageSize); - if (!error) { - ASSERT(ctx->Driver.TestProxyTexImage); - error = !(*ctx->Driver.TestProxyTexImage)(ctx, target, level, - internalFormat, GL_NONE, GL_NONE, - width, height, 1, border); - } - if (error) { - /* if error, clear all proxy texture image parameters */ - struct gl_texture_image *texImage; - texImage = _mesa_get_proxy_tex_image(ctx, target, level); - if (texImage) - clear_teximage_fields(texImage); - } - else { - /* store the teximage parameters */ - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; - gl_format texFormat; +} - texObj = _mesa_get_current_tex_object(ctx, target); - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_select_tex_image(ctx, texObj, target, level); - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, GL_NONE, - GL_NONE); - _mesa_init_teximage_fields(ctx, target, texImage, width, height, 1, - border, internalFormat, texFormat); - } - _mesa_unlock_texture(ctx, texObj); - } - } - else { - _mesa_error(ctx, GL_INVALID_ENUM, "glCompressedTexImage2D(target)"); - return; - } +void GLAPIENTRY +_mesa_CompressedTexImage1DARB(GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLint border, GLsizei imageSize, + const GLvoid *data) +{ + GET_CURRENT_CONTEXT(ctx); + compressedteximage(ctx, 1, target, level, internalFormat, + width, 1, 1, border, imageSize, data); +} + + +void GLAPIENTRY +_mesa_CompressedTexImage2DARB(GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLsizei height, GLint border, GLsizei imageSize, + const GLvoid *data) +{ + GET_CURRENT_CONTEXT(ctx); + compressedteximage(ctx, 2, target, level, internalFormat, + width, height, 1, border, imageSize, data); } @@ -3710,107 +3373,8 @@ _mesa_CompressedTexImage3DARB(GLenum target, GLint level, GLsizei imageSize, const GLvoid *data) { GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "glCompressedTexImage3DARB %s %d %s %d %d %d %d %d %p\n", - _mesa_lookup_enum_by_nr(target), level, - _mesa_lookup_enum_by_nr(internalFormat), - width, height, depth, border, imageSize, data); - - if (target == GL_TEXTURE_3D) { - /* non-proxy target */ - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; - GLenum error = compressed_texture_error_check(ctx, 3, target, level, - internalFormat, width, height, depth, border, imageSize); - if (error) { - _mesa_error(ctx, error, "glCompressedTexImage3D"); - return; - } - - texObj = _mesa_get_current_tex_object(ctx, target); - - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_get_tex_image(ctx, texObj, target, level); - if (!texImage) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCompressedTexImage3D"); - } - else { - gl_format texFormat; - - if (texImage->Data) { - ctx->Driver.FreeTexImageData( ctx, texImage ); - } - ASSERT(texImage->Data == NULL); - - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, GL_NONE, - GL_NONE); - - _mesa_init_teximage_fields(ctx, target, texImage, - width, height, depth, - border, internalFormat, texFormat); - - ASSERT(ctx->Driver.CompressedTexImage3D); - ctx->Driver.CompressedTexImage3D(ctx, target, level, - internalFormat, - width, height, depth, - border, imageSize, data, - texObj, texImage); - - check_gen_mipmap(ctx, target, texObj, level); - - /* state update */ - texObj->_Complete = GL_FALSE; - ctx->NewState |= _NEW_TEXTURE; - } - } - _mesa_unlock_texture(ctx, texObj); - } - else if (target == GL_PROXY_TEXTURE_3D) { - /* Proxy texture: check for errors and update proxy state */ - GLenum error = compressed_texture_error_check(ctx, 3, target, level, - internalFormat, width, height, depth, border, imageSize); - if (!error) { - ASSERT(ctx->Driver.TestProxyTexImage); - error = !(*ctx->Driver.TestProxyTexImage)(ctx, target, level, - internalFormat, GL_NONE, GL_NONE, - width, height, depth, border); - } - if (error) { - /* if error, clear all proxy texture image parameters */ - struct gl_texture_image *texImage; - texImage = _mesa_get_proxy_tex_image(ctx, target, level); - if (texImage) - clear_teximage_fields(texImage); - } - else { - /* store the teximage parameters */ - struct gl_texture_object *texObj; - struct gl_texture_image *texImage; - gl_format texFormat; - - texObj = _mesa_get_current_tex_object(ctx, target); - - _mesa_lock_texture(ctx, texObj); - { - texImage = _mesa_select_tex_image(ctx, texObj, target, level); - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, GL_NONE, - GL_NONE); - _mesa_init_teximage_fields(ctx, target, texImage, width, height, - depth, border, internalFormat, - texFormat); - } - _mesa_unlock_texture(ctx, texObj); - } - } - else { - _mesa_error(ctx, GL_INVALID_ENUM, "glCompressedTexImage3D(target)"); - return; - } + compressedteximage(ctx, 3, target, level, internalFormat, + width, height, depth, border, imageSize, data); } diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h index 5bb9d492e9..bb5509e5be 100644 --- a/src/mesa/main/teximage.h +++ b/src/mesa/main/teximage.h @@ -126,6 +126,8 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, extern GLuint _mesa_tex_target_to_face(GLenum target); +extern GLint +_mesa_get_texture_dimensions(GLenum target); /** * Lock a texture for updating. See also _mesa_lock_context_textures(). diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 72dbf10cc4..f61e0237ad 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -372,15 +372,12 @@ _mesa_reference_texobj(struct gl_texture_object **ptr, /** - * Report why a texture object is incomplete. - * - * \param t texture object. - * \param why string describing why it's incomplete. - * - * \note For debug purposes only. + * Mark a texture object as incomplete. + * \param t texture object + * \param fmt... string describing why it's incomplete (for debugging). */ static void -incomplete(const struct gl_texture_object *t, const char *fmt, ...) +incomplete(struct gl_texture_object *t, const char *fmt, ...) { #if 0 va_list args; @@ -392,6 +389,7 @@ incomplete(const struct gl_texture_object *t, const char *fmt, ...) printf("Texture Obj %d incomplete because: %s\n", t->Name, s); #endif + t->_Complete = GL_FALSE; } @@ -421,14 +419,12 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, */ if ((baseLevel < 0) || (baseLevel >= MAX_TEXTURE_LEVELS)) { incomplete(t, "base level = %d is invalid", baseLevel); - t->_Complete = GL_FALSE; return; } /* Always need the base level image */ if (!t->Image[0][baseLevel]) { incomplete(t, "Image[baseLevel=%d] == NULL", baseLevel); - t->_Complete = GL_FALSE; return; } @@ -437,7 +433,6 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, t->Image[0][baseLevel]->Height == 0 || t->Image[0][baseLevel]->Depth == 0) { incomplete(t, "texture width = 0"); - t->_Complete = GL_FALSE; return; } @@ -475,6 +470,12 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, ASSERT(maxLevels > 0); + if (t->MaxLevel < t->BaseLevel) { + incomplete(t, "MAX_LEVEL (%d) < BASE_LEVEL (%d)", + t->MaxLevel, t->BaseLevel); + return; + } + t->_MaxLevel = baseLevel + maxLog2; t->_MaxLevel = MIN2(t->_MaxLevel, t->MaxLevel); t->_MaxLevel = MIN2(t->_MaxLevel, maxLevels - 1); @@ -491,7 +492,6 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, if (t->Image[face][baseLevel] == NULL || t->Image[face][baseLevel]->Width2 != w || t->Image[face][baseLevel]->Height2 != h) { - t->_Complete = GL_FALSE; incomplete(t, "Cube face missing or mismatched size"); return; } @@ -508,7 +508,6 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, GLint maxLevel = t->_MaxLevel; if (minLevel > maxLevel) { - t->_Complete = GL_FALSE; incomplete(t, "minLevel > maxLevel"); return; } @@ -517,12 +516,10 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, for (i = minLevel; i <= maxLevel; i++) { if (t->Image[0][i]) { if (t->Image[0][i]->TexFormat != t->Image[0][baseLevel]->TexFormat) { - t->_Complete = GL_FALSE; incomplete(t, "Format[i] != Format[baseLevel]"); return; } if (t->Image[0][i]->Border != t->Image[0][baseLevel]->Border) { - t->_Complete = GL_FALSE; incomplete(t, "Border[i] != Border[baseLevel]"); return; } @@ -540,12 +537,10 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, } if (i >= minLevel && i <= maxLevel) { if (!t->Image[0][i]) { - t->_Complete = GL_FALSE; incomplete(t, "1D Image[0][i] == NULL"); return; } if (t->Image[0][i]->Width2 != width ) { - t->_Complete = GL_FALSE; incomplete(t, "1D Image[0][i] bad width"); return; } @@ -569,17 +564,14 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, } if (i >= minLevel && i <= maxLevel) { if (!t->Image[0][i]) { - t->_Complete = GL_FALSE; incomplete(t, "2D Image[0][i] == NULL"); return; } if (t->Image[0][i]->Width2 != width) { - t->_Complete = GL_FALSE; incomplete(t, "2D Image[0][i] bad width"); return; } if (t->Image[0][i]->Height2 != height) { - t->_Complete = GL_FALSE; incomplete(t, "2D Image[0][i] bad height"); return; } @@ -607,26 +599,21 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, if (i >= minLevel && i <= maxLevel) { if (!t->Image[0][i]) { incomplete(t, "3D Image[0][i] == NULL"); - t->_Complete = GL_FALSE; return; } if (t->Image[0][i]->_BaseFormat == GL_DEPTH_COMPONENT) { - t->_Complete = GL_FALSE; incomplete(t, "GL_DEPTH_COMPONENT only works with 1/2D tex"); return; } if (t->Image[0][i]->Width2 != width) { - t->_Complete = GL_FALSE; incomplete(t, "3D Image[0][i] bad width"); return; } if (t->Image[0][i]->Height2 != height) { - t->_Complete = GL_FALSE; incomplete(t, "3D Image[0][i] bad height"); return; } if (t->Image[0][i]->Depth2 != depth) { - t->_Complete = GL_FALSE; incomplete(t, "3D Image[0][i] bad depth"); return; } @@ -652,20 +639,17 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, for (face = 0; face < 6; face++) { /* check that we have images defined */ if (!t->Image[face][i]) { - t->_Complete = GL_FALSE; incomplete(t, "CubeMap Image[n][i] == NULL"); return; } /* Don't support GL_DEPTH_COMPONENT for cube maps */ if (t->Image[face][i]->_BaseFormat == GL_DEPTH_COMPONENT) { - t->_Complete = GL_FALSE; incomplete(t, "GL_DEPTH_COMPONENT only works with 1/2D tex"); return; } /* check that all six images have same size */ if (t->Image[face][i]->Width2 != width || t->Image[face][i]->Height2 != height) { - t->_Complete = GL_FALSE; incomplete(t, "CubeMap Image[n][i] bad size"); return; } @@ -688,6 +672,44 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, /** + * Check if the given cube map texture is "cube complete" as defined in + * the OpenGL specification. + */ +GLboolean +_mesa_cube_complete(const struct gl_texture_object *texObj) +{ + const GLint baseLevel = texObj->BaseLevel; + const struct gl_texture_image *img0, *img; + GLuint face; + + if (texObj->Target != GL_TEXTURE_CUBE_MAP) + return GL_FALSE; + + if ((baseLevel < 0) || (baseLevel >= MAX_TEXTURE_LEVELS)) + return GL_FALSE; + + /* check first face */ + img0 = texObj->Image[0][baseLevel]; + if (!img0 || + img0->Width < 1 || + img0->Width != img0->Height) + return GL_FALSE; + + /* check remaining faces vs. first face */ + for (face = 1; face < 6; face++) { + img = texObj->Image[face][baseLevel]; + if (!img || + img->Width != img0->Width || + img->Height != img0->Height || + img->TexFormat != img0->TexFormat) + return GL_FALSE; + } + + return GL_TRUE; +} + + +/** * Mark a texture object dirty. It forces the object to be incomplete * and optionally forces the context to re-validate its state. * diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h index 821b35caa3..2461b063ef 100644 --- a/src/mesa/main/texobj.h +++ b/src/mesa/main/texobj.h @@ -32,8 +32,9 @@ #define TEXTOBJ_H -#include "mtypes.h" +#include "glheader.h" +struct gl_context; /** * \name Internal functions @@ -68,6 +69,9 @@ extern void _mesa_test_texobj_completeness( const struct gl_context *ctx, struct gl_texture_object *obj ); +extern GLboolean +_mesa_cube_complete(const struct gl_texture_object *texObj); + extern void _mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj, GLboolean invalidate_state); diff --git a/src/mesa/main/texpal.c b/src/mesa/main/texpal.c index a25e7aa4ff..b2112f957a 100644 --- a/src/mesa/main/texpal.c +++ b/src/mesa/main/texpal.c @@ -18,6 +18,7 @@ #include "glheader.h" #include "compiler.h" /* for ASSERT */ #include "context.h" +#include "mfeatures.h" #include "mtypes.h" #include "imports.h" #include "pixelstore.h" diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c index d5c83de97f..d2b8b5ca4a 100644 --- a/src/mesa/main/texparam.c +++ b/src/mesa/main/texparam.c @@ -35,6 +35,8 @@ #include "main/context.h" #include "main/formats.h" #include "main/macros.h" +#include "main/mfeatures.h" +#include "main/mtypes.h" #include "main/texcompress.h" #include "main/texparam.h" #include "main/teximage.h" diff --git a/src/mesa/main/texrender.c b/src/mesa/main/texrender.c index 8961b92648..8cec24c3e2 100644 --- a/src/mesa/main/texrender.c +++ b/src/mesa/main/texrender.c @@ -3,6 +3,7 @@ #include "colormac.h" #include "macros.h" #include "texfetch.h" +#include "teximage.h" #include "texrender.h" #include "renderbuffer.h" @@ -20,6 +21,7 @@ struct texture_renderbuffer struct gl_renderbuffer Base; /**< Base class object */ struct gl_texture_image *TexImage; StoreTexelFunc Store; + FetchTexelFuncF Fetchf; GLint Yoffset; /**< Layer for 1D array textures. */ GLint Zoffset; /**< Layer for 2D array textures, or slice * for 3D textures @@ -48,7 +50,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count GLchan *rgbaOut = (GLchan *) values; for (i = 0; i < count; i++) { GLfloat rgba[4]; - trb->TexImage->FetchTexelf(trb->TexImage, x + i, y, z, rgba); + trb->Fetchf(trb->TexImage, x + i, y, z, rgba); UNCLAMPED_FLOAT_TO_RGBA_CHAN(rgbaOut + 4 * i, rgba); } } @@ -56,7 +58,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count GLushort *zValues = (GLushort *) values; for (i = 0; i < count; i++) { GLfloat flt; - trb->TexImage->FetchTexelf(trb->TexImage, x + i, y, z, &flt); + trb->Fetchf(trb->TexImage, x + i, y, z, &flt); zValues[i] = (GLushort) (flt * 0xffff); } } @@ -67,7 +69,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count */ for (i = 0; i < count; i++) { GLfloat flt; - trb->TexImage->FetchTexelf(trb->TexImage, x + i, y, z, &flt); + trb->Fetchf(trb->TexImage, x + i, y, z, &flt); #if 0 /* this should work, but doesn't (overflow due to low precision) */ zValues[i] = (GLuint) (flt * scale); @@ -81,7 +83,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count GLuint *zValues = (GLuint *) values; for (i = 0; i < count; i++) { GLfloat flt; - trb->TexImage->FetchTexelf(trb->TexImage, x + i, y, z, &flt); + trb->Fetchf(trb->TexImage, x + i, y, z, &flt); zValues[i] = ((GLuint) (flt * 0xffffff)) << 8; } } @@ -89,7 +91,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count GLuint *zValues = (GLuint *) values; for (i = 0; i < count; i++) { GLfloat flt; - trb->TexImage->FetchTexelf(trb->TexImage, x + i, y, z, &flt); + trb->Fetchf(trb->TexImage, x + i, y, z, &flt); zValues[i] = (GLuint) (flt * 0xffffff); } } @@ -112,7 +114,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co GLchan *rgbaOut = (GLchan *) values; for (i = 0; i < count; i++) { GLfloat rgba[4]; - trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i] + trb->Yoffset, + trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset, z, rgba); UNCLAMPED_FLOAT_TO_RGBA_CHAN(rgbaOut + 4 * i, rgba); } @@ -121,7 +123,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co GLushort *zValues = (GLushort *) values; for (i = 0; i < count; i++) { GLfloat flt; - trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i] + trb->Yoffset, + trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset, z, &flt); zValues[i] = (GLushort) (flt * 0xffff); } @@ -130,7 +132,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co GLuint *zValues = (GLuint *) values; for (i = 0; i < count; i++) { GLfloat flt; - trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i] + trb->Yoffset, + trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset, z, &flt); #if 0 zValues[i] = (GLuint) (flt * 0xffffffff); @@ -143,7 +145,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co GLuint *zValues = (GLuint *) values; for (i = 0; i < count; i++) { GLfloat flt; - trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i] + trb->Yoffset, + trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset, z, &flt); zValues[i] = ((GLuint) (flt * 0xffffff)) << 8; } @@ -152,7 +154,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co GLuint *zValues = (GLuint *) values; for (i = 0; i < count; i++) { GLfloat flt; - trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i] + trb->Yoffset, + trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset, z, &flt); zValues[i] = (GLuint) (flt * 0xffffff); } @@ -517,8 +519,6 @@ wrap_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att) _mesa_reference_renderbuffer(&att->Renderbuffer, &(trb->Base)); } - - /** * Update the renderbuffer wrapper for rendering to a texture. * For example, update the width, height of the RB based on the texture size, @@ -542,6 +542,8 @@ update_wrapper(struct gl_context *ctx, const struct gl_renderbuffer_attachment * trb->Store = store_nop; } + trb->Fetchf = trb->TexImage->FetchTexelf; + if (att->Texture->Target == GL_TEXTURE_1D_ARRAY_EXT) { trb->Yoffset = att->Zoffset; trb->Zoffset = 0; @@ -582,6 +584,22 @@ update_wrapper(struct gl_context *ctx, const struct gl_renderbuffer_attachment * trb->Base.DataType = GL_UNSIGNED_INT; trb->Base._BaseFormat = GL_DEPTH_COMPONENT; break; + /* SRGB formats pre EXT_framebuffer_sRGB don't do sRGB translations on FBO readback */ + case MESA_FORMAT_SRGB8: + trb->Fetchf = _mesa_get_texel_fetch_func(MESA_FORMAT_RGB888, _mesa_get_texture_dimensions(att->Texture->Target)); + trb->Base.DataType = CHAN_TYPE; + trb->Base._BaseFormat = GL_RGBA; + break; + case MESA_FORMAT_SRGBA8: + trb->Fetchf = _mesa_get_texel_fetch_func(MESA_FORMAT_RGBA8888, _mesa_get_texture_dimensions(att->Texture->Target)); + trb->Base.DataType = CHAN_TYPE; + trb->Base._BaseFormat = GL_RGBA; + break; + case MESA_FORMAT_SARGB8: + trb->Fetchf = _mesa_get_texel_fetch_func(MESA_FORMAT_ARGB8888, _mesa_get_texture_dimensions(att->Texture->Target)); + trb->Base.DataType = CHAN_TYPE; + trb->Base._BaseFormat = GL_RGBA; + break; default: trb->Base.DataType = CHAN_TYPE; trb->Base._BaseFormat = GL_RGBA; diff --git a/src/mesa/main/texrender.h b/src/mesa/main/texrender.h index 5e68fb03b5..cacd091160 100644 --- a/src/mesa/main/texrender.h +++ b/src/mesa/main/texrender.h @@ -1,7 +1,9 @@ #ifndef TEXRENDER_H #define TEXRENDER_H -#include "mtypes.h" +struct gl_context; +struct gl_framebuffer; +struct gl_renderbuffer_attachment; extern void _mesa_render_texture(struct gl_context *ctx, diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index 89677c519e..7dd4a1fa65 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -58,6 +58,8 @@ #include "image.h" #include "macros.h" #include "mipmap.h" +#include "mfeatures.h" +#include "mtypes.h" #include "pack.h" #include "imports.h" #include "pack.h" @@ -2038,6 +2040,132 @@ _mesa_texstore_argb1555(TEXSTORE_PARAMS) } +static GLboolean +_mesa_texstore_argb2101010(TEXSTORE_PARAMS) +{ + const GLuint texelBytes = _mesa_get_format_bytes(dstFormat); + const GLenum baseFormat = _mesa_get_format_base_format(dstFormat); + + ASSERT(dstFormat == MESA_FORMAT_ARGB2101010); + ASSERT(texelBytes == 4); + + if (!ctx->_ImageTransferState && + !srcPacking->SwapBytes && + dstFormat == MESA_FORMAT_ARGB2101010 && + srcFormat == GL_BGRA && + srcType == GL_UNSIGNED_INT_2_10_10_10_REV && + baseInternalFormat == GL_RGBA) { + /* simple memcpy path */ + memcpy_texture(ctx, dims, + dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset, + dstRowStride, + dstImageOffsets, + srcWidth, srcHeight, srcDepth, srcFormat, srcType, + srcAddr, srcPacking); + } + else { + /* general path */ + const GLfloat *tempImage = make_temp_float_image(ctx, dims, + baseInternalFormat, + baseFormat, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, srcAddr, + srcPacking, + ctx->_ImageTransferState); + const GLfloat *src = tempImage; + GLint img, row, col; + if (!tempImage) + return GL_FALSE; + for (img = 0; img < srcDepth; img++) { + GLubyte *dstRow = (GLubyte *) dstAddr + + dstImageOffsets[dstZoffset + img] * texelBytes + + dstYoffset * dstRowStride + + dstXoffset * texelBytes; + if (baseInternalFormat == GL_RGBA) { + for (row = 0; row < srcHeight; row++) { + GLuint *dstUI = (GLuint *) dstRow; + for (col = 0; col < srcWidth; col++) { + GLushort a,r,g,b; + + UNCLAMPED_FLOAT_TO_USHORT(a, src[ACOMP]); + UNCLAMPED_FLOAT_TO_USHORT(r, src[RCOMP]); + UNCLAMPED_FLOAT_TO_USHORT(g, src[GCOMP]); + UNCLAMPED_FLOAT_TO_USHORT(b, src[BCOMP]); + dstUI[col] = PACK_COLOR_2101010_US(a, r, g, b); + src += 4; + } + dstRow += dstRowStride; + } + } else if (baseInternalFormat == GL_RGB) { + for (row = 0; row < srcHeight; row++) { + GLuint *dstUI = (GLuint *) dstRow; + for (col = 0; col < srcWidth; col++) { + GLushort r,g,b; + + UNCLAMPED_FLOAT_TO_USHORT(r, src[RCOMP]); + UNCLAMPED_FLOAT_TO_USHORT(g, src[GCOMP]); + UNCLAMPED_FLOAT_TO_USHORT(b, src[BCOMP]); + dstUI[col] = PACK_COLOR_2101010_US(0xffff, r, g, b); + src += 4; + } + dstRow += dstRowStride; + } + } else { + ASSERT(0); + } + } + free((void *) tempImage); + } + return GL_TRUE; +} + + +/** + * Do texstore for 2-channel, 4-bit/channel, unsigned normalized formats. + */ +static GLboolean +_mesa_texstore_unorm44(TEXSTORE_PARAMS) +{ + const GLuint texelBytes = _mesa_get_format_bytes(dstFormat); + const GLenum baseFormat = _mesa_get_format_base_format(dstFormat); + + ASSERT(dstFormat == MESA_FORMAT_AL44); + ASSERT(texelBytes == 1); + + { + /* general path */ + const GLchan *tempImage = _mesa_make_temp_chan_image(ctx, dims, + baseInternalFormat, + baseFormat, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, srcAddr, + srcPacking); + const GLchan *src = tempImage; + GLint img, row, col; + if (!tempImage) + return GL_FALSE; + for (img = 0; img < srcDepth; img++) { + GLubyte *dstRow = (GLubyte *) dstAddr + + dstImageOffsets[dstZoffset + img] * texelBytes + + dstYoffset * dstRowStride + + dstXoffset * texelBytes; + for (row = 0; row < srcHeight; row++) { + GLubyte *dstUS = (GLubyte *) dstRow; + for (col = 0; col < srcWidth; col++) { + /* src[0] is luminance, src[1] is alpha */ + dstUS[col] = PACK_COLOR_44( CHAN_TO_UBYTE(src[1]), + CHAN_TO_UBYTE(src[0]) ); + src += 2; + } + dstRow += dstRowStride; + } + } + free((void *) tempImage); + } + return GL_TRUE; +} + + /** * Do texstore for 2-channel, 8-bit/channel, unsigned normalized formats. */ @@ -2237,21 +2365,23 @@ _mesa_texstore_unorm1616(TEXSTORE_PARAMS) } +/* Texstore for R16, A16, L16, I16. */ static GLboolean -_mesa_texstore_r16(TEXSTORE_PARAMS) +_mesa_texstore_unorm16(TEXSTORE_PARAMS) { const GLboolean littleEndian = _mesa_little_endian(); const GLuint texelBytes = _mesa_get_format_bytes(dstFormat); const GLenum baseFormat = _mesa_get_format_base_format(dstFormat); - ASSERT(dstFormat == MESA_FORMAT_R16); + ASSERT(dstFormat == MESA_FORMAT_R16 || + dstFormat == MESA_FORMAT_A16 || + dstFormat == MESA_FORMAT_L16 || + dstFormat == MESA_FORMAT_I16); ASSERT(texelBytes == 2); if (!ctx->_ImageTransferState && !srcPacking->SwapBytes && - dstFormat == MESA_FORMAT_R16 && - baseInternalFormat == GL_RED && - srcFormat == GL_RED && + baseInternalFormat == srcFormat && srcType == GL_UNSIGNED_SHORT && littleEndian) { /* simple memcpy path */ @@ -3921,23 +4051,28 @@ texstore_funcs[MESA_FORMAT_COUNT] = { MESA_FORMAT_RGBA5551, _mesa_texstore_rgba5551 }, { MESA_FORMAT_ARGB1555, _mesa_texstore_argb1555 }, { MESA_FORMAT_ARGB1555_REV, _mesa_texstore_argb1555 }, + { MESA_FORMAT_AL44, _mesa_texstore_unorm44 }, { MESA_FORMAT_AL88, _mesa_texstore_unorm88 }, { MESA_FORMAT_AL88_REV, _mesa_texstore_unorm88 }, { MESA_FORMAT_AL1616, _mesa_texstore_unorm1616 }, { MESA_FORMAT_AL1616_REV, _mesa_texstore_unorm1616 }, { MESA_FORMAT_RGB332, _mesa_texstore_rgb332 }, { MESA_FORMAT_A8, _mesa_texstore_a8 }, + { MESA_FORMAT_A16, _mesa_texstore_unorm16 }, { MESA_FORMAT_L8, _mesa_texstore_a8 }, + { MESA_FORMAT_L16, _mesa_texstore_unorm16 }, { MESA_FORMAT_I8, _mesa_texstore_a8 }, + { MESA_FORMAT_I16, _mesa_texstore_unorm16 }, { MESA_FORMAT_CI8, _mesa_texstore_ci8 }, { MESA_FORMAT_YCBCR, _mesa_texstore_ycbcr }, { MESA_FORMAT_YCBCR_REV, _mesa_texstore_ycbcr }, { MESA_FORMAT_R8, _mesa_texstore_a8 }, { MESA_FORMAT_RG88, _mesa_texstore_unorm88 }, { MESA_FORMAT_RG88_REV, _mesa_texstore_unorm88 }, - { MESA_FORMAT_R16, _mesa_texstore_r16 }, + { MESA_FORMAT_R16, _mesa_texstore_unorm16 }, { MESA_FORMAT_RG1616, _mesa_texstore_unorm1616 }, { MESA_FORMAT_RG1616_REV, _mesa_texstore_unorm1616 }, + { MESA_FORMAT_ARGB2101010, _mesa_texstore_argb2101010 }, { MESA_FORMAT_Z24_S8, _mesa_texstore_z24_s8 }, { MESA_FORMAT_S8_Z24, _mesa_texstore_s8_z24 }, { MESA_FORMAT_Z16, _mesa_texstore_z16 }, diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c index d297b5ed71..fbd70d56ca 100644 --- a/src/mesa/main/transformfeedback.c +++ b/src/mesa/main/transformfeedback.c @@ -34,6 +34,8 @@ #include "bufferobj.h" #include "context.h" #include "hash.h" +#include "mfeatures.h" +#include "mtypes.h" #include "transformfeedback.h" #include "shaderapi.h" #include "shaderobj.h" diff --git a/src/mesa/main/transformfeedback.h b/src/mesa/main/transformfeedback.h index 752cd4e201..b0d5b70f2b 100644 --- a/src/mesa/main/transformfeedback.h +++ b/src/mesa/main/transformfeedback.h @@ -25,8 +25,13 @@ #ifndef TRANSFORM_FEEDBACK_H #define TRANSFORM_FEEDBACK_H -#include "main/mtypes.h" +#include "compiler.h" +#include "glheader.h" +#include "mfeatures.h" +struct _glapi_table; +struct dd_function_table; +struct gl_context; extern void _mesa_init_transform_feedback(struct gl_context *ctx); diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c index d61856d0eb..aee2e6b4e9 100644 --- a/src/mesa/main/uniforms.c +++ b/src/mesa/main/uniforms.c @@ -39,6 +39,8 @@ #include "main/glheader.h" #include "main/context.h" #include "main/dispatch.h" +#include "main/mfeatures.h" +#include "main/mtypes.h" #include "main/shaderapi.h" #include "main/shaderobj.h" #include "main/uniforms.h" @@ -511,7 +513,7 @@ get_uniform_rows_cols(const struct gl_program_parameter *p, *cols = p->Size; } else { - *rows = p->Size / 4 + 1; + *rows = (p->Size + 3) / 4; if (p->Size % 4 == 0) *cols = 4; else diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index 340c3fe1d3..bcde65adc7 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -33,6 +33,7 @@ #include "hash.h" #include "image.h" #include "macros.h" +#include "mfeatures.h" #include "mtypes.h" #include "varray.h" #include "arrayobj.h" @@ -127,8 +128,8 @@ update_array(struct gl_context *ctx, GLsizei elementSize; GLenum format = GL_RGBA; - if (ctx->API != API_OPENGLES) { - /* fixed point arrays / data is only allowed with OpenGL ES 1.x */ + if (ctx->API != API_OPENGLES && ctx->API != API_OPENGLES2) { + /* fixed point arrays / data is only allowed with OpenGL ES 1.x/2.0 */ legalTypesMask &= ~FIXED_BIT; } @@ -297,7 +298,8 @@ _mesa_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr) { GLbitfield legalTypes = (SHORT_BIT | INT_BIT | - HALF_BIT | FLOAT_BIT | DOUBLE_BIT); + HALF_BIT | FLOAT_BIT | DOUBLE_BIT | + FIXED_BIT); GET_CURRENT_CONTEXT(ctx); const GLuint unit = ctx->Array.ActiveTexture; ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h index fb96478cfc..af9324134e 100644 --- a/src/mesa/main/varray.h +++ b/src/mesa/main/varray.h @@ -28,7 +28,11 @@ #define VARRAY_H -#include "mtypes.h" +#include "glheader.h" +#include "mfeatures.h" + +struct gl_client_array; +struct gl_context; #if _HAVE_FULL_GL diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c index 69a28da84c..a10b86e761 100644 --- a/src/mesa/main/version.c +++ b/src/mesa/main/version.c @@ -22,7 +22,8 @@ */ -#include "context.h" +#include "imports.h" +#include "mtypes.h" #include "version.h" diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h index 1b53508099..2e6335846e 100644 --- a/src/mesa/main/version.h +++ b/src/mesa/main/version.h @@ -1,6 +1,6 @@ /* * Mesa 3-D graphics library - * Version: 7.10 + * Version: 7.11 * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. @@ -33,9 +33,9 @@ struct gl_context; /* Mesa version */ #define MESA_MAJOR 7 -#define MESA_MINOR 10 +#define MESA_MINOR 11 #define MESA_PATCH 0 -#define MESA_VERSION_STRING "7.10-devel" +#define MESA_VERSION_STRING "7.11-devel" /* To make version comparison easy */ #define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c index 4747022d0b..a58697ab37 100644 --- a/src/mesa/main/viewport.c +++ b/src/mesa/main/viewport.c @@ -31,6 +31,7 @@ #include "context.h" #include "macros.h" +#include "mtypes.h" #include "viewport.h" @@ -145,7 +146,11 @@ _mesa_DepthRange(GLclampd nearval, GLclampd farval) } } - +void GLAPIENTRY +_mesa_DepthRangef(GLclampf nearval, GLclampf farval) +{ + _mesa_DepthRange(nearval, farval); +} /** * Initialize the context viewport attribute group. diff --git a/src/mesa/main/viewport.h b/src/mesa/main/viewport.h index ccfa37588b..db4507beaa 100644 --- a/src/mesa/main/viewport.h +++ b/src/mesa/main/viewport.h @@ -28,7 +28,8 @@ #define VIEWPORT_H #include "glheader.h" -#include "mtypes.h" + +struct gl_context; extern void GLAPIENTRY _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height); @@ -42,6 +43,9 @@ _mesa_set_viewport(struct gl_context *ctx, GLint x, GLint y, extern void GLAPIENTRY _mesa_DepthRange(GLclampd nearval, GLclampd farval); +extern void GLAPIENTRY +_mesa_DepthRangef(GLclampf nearval, GLclampf farval); + extern void _mesa_init_viewport(struct gl_context *ctx); diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c index 8a72641862..692ce080c9 100644 --- a/src/mesa/main/vtxfmt.c +++ b/src/mesa/main/vtxfmt.c @@ -30,6 +30,7 @@ #include "api_arrayelt.h" #include "context.h" #include "imports.h" +#include "mfeatures.h" #include "mtypes.h" #include "vtxfmt.h" #include "eval.h" diff --git a/src/mesa/main/vtxfmt.h b/src/mesa/main/vtxfmt.h index 147385cee9..8bbc54964d 100644 --- a/src/mesa/main/vtxfmt.h +++ b/src/mesa/main/vtxfmt.h @@ -34,6 +34,7 @@ #define _VTXFMT_H_ #include "compiler.h" +#include "mfeatures.h" #include "mtypes.h" #if FEATURE_beginend |