diff options
Diffstat (limited to 'src/mesa/main')
151 files changed, 13068 insertions, 11924 deletions
diff --git a/src/mesa/main/accum.c b/src/mesa/main/accum.c index 2012d00fd5f..9026110f3ef 100644 --- a/src/mesa/main/accum.c +++ b/src/mesa/main/accum.c @@ -115,7 +115,7 @@ _mesa_init_accum_dispatch(struct _glapi_table *disp) void -_mesa_init_accum( GLcontext *ctx ) +_mesa_init_accum( struct gl_context *ctx ) { /* Accumulate buffer group */ ASSIGN_4V( ctx->Accum.ClearColor, 0.0, 0.0, 0.0, 0.0 ); diff --git a/src/mesa/main/accum.h b/src/mesa/main/accum.h index 4b628bafa02..def692a73a5 100644 --- a/src/mesa/main/accum.h +++ b/src/mesa/main/accum.h @@ -67,6 +67,6 @@ _mesa_init_accum_dispatch(struct _glapi_table *disp) #endif /* FEATURE_accum */ extern void -_mesa_init_accum( GLcontext *ctx ); +_mesa_init_accum( struct gl_context *ctx ); #endif /* ACCUM_H */ diff --git a/src/mesa/main/api_arrayelt.c b/src/mesa/main/api_arrayelt.c index ffcd194240f..172c33b47bf 100644 --- a/src/mesa/main/api_arrayelt.c +++ b/src/mesa/main/api_arrayelt.c @@ -1031,7 +1031,7 @@ static attrib_func AttribFuncsARB[2][4][8] = { /**********************************************************************/ -GLboolean _ae_create_context( GLcontext *ctx ) +GLboolean _ae_create_context( struct gl_context *ctx ) { if (ctx->aelt_context) return GL_TRUE; @@ -1064,7 +1064,7 @@ GLboolean _ae_create_context( GLcontext *ctx ) } -void _ae_destroy_context( GLcontext *ctx ) +void _ae_destroy_context( struct gl_context *ctx ) { if ( AE_CONTEXT( ctx ) ) { FREE( ctx->aelt_context ); @@ -1092,7 +1092,7 @@ static void check_vbo( AEcontext *actx, * etc). * Note: this may be called during display list construction. */ -static void _ae_update_state( GLcontext *ctx ) +static void _ae_update_state( struct gl_context *ctx ) { AEcontext *actx = AE_CONTEXT(ctx); AEarray *aa = actx->arrays; @@ -1211,7 +1211,7 @@ static void _ae_update_state( GLcontext *ctx ) actx->NewState = 0; } -void _ae_map_vbos( GLcontext *ctx ) +void _ae_map_vbos( struct gl_context *ctx ) { AEcontext *actx = AE_CONTEXT(ctx); GLuint i; @@ -1232,7 +1232,7 @@ void _ae_map_vbos( GLcontext *ctx ) actx->mapped_vbos = GL_TRUE; } -void _ae_unmap_vbos( GLcontext *ctx ) +void _ae_unmap_vbos( struct gl_context *ctx ) { AEcontext *actx = AE_CONTEXT(ctx); GLuint i; @@ -1300,7 +1300,7 @@ void GLAPIENTRY _ae_ArrayElement( GLint elt ) } -void _ae_invalidate_state( GLcontext *ctx, GLuint new_state ) +void _ae_invalidate_state( struct gl_context *ctx, GLuint new_state ) { AEcontext *actx = AE_CONTEXT(ctx); diff --git a/src/mesa/main/api_arrayelt.h b/src/mesa/main/api_arrayelt.h index d18c0792c35..610e522a943 100644 --- a/src/mesa/main/api_arrayelt.h +++ b/src/mesa/main/api_arrayelt.h @@ -37,15 +37,15 @@ (vfmt)->ArrayElement = impl ## ArrayElement; \ } while (0) -extern GLboolean _ae_create_context( GLcontext *ctx ); -extern void _ae_destroy_context( GLcontext *ctx ); -extern void _ae_invalidate_state( GLcontext *ctx, GLuint new_state ); +extern GLboolean _ae_create_context( struct gl_context *ctx ); +extern void _ae_destroy_context( struct gl_context *ctx ); +extern void _ae_invalidate_state( struct gl_context *ctx, GLuint new_state ); extern void GLAPIENTRY _ae_ArrayElement( GLint elt ); /* May optionally be called before a batch of element calls: */ -extern void _ae_map_vbos( GLcontext *ctx ); -extern void _ae_unmap_vbos( GLcontext *ctx ); +extern void _ae_map_vbos( struct gl_context *ctx ); +extern void _ae_unmap_vbos( struct gl_context *ctx ); extern void _mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp, @@ -56,18 +56,18 @@ _mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp, #define _MESA_INIT_ARRAYELT_VTXFMT(vfmt, impl) do { } while (0) static INLINE GLboolean -_ae_create_context( GLcontext *ctx ) +_ae_create_context( struct gl_context *ctx ) { return GL_TRUE; } static INLINE void -_ae_destroy_context( GLcontext *ctx ) +_ae_destroy_context( struct gl_context *ctx ) { } static INLINE void -_ae_invalidate_state( GLcontext *ctx, GLuint new_state ) +_ae_invalidate_state( struct gl_context *ctx, GLuint new_state ) { } diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c index ae653e1914e..cd002f6bc27 100644 --- a/src/mesa/main/api_exec.c +++ b/src/mesa/main/api_exec.c @@ -494,6 +494,9 @@ _mesa_create_exec_table(void) SET_ActiveStencilFaceEXT(exec, _mesa_ActiveStencilFaceEXT); #endif + /* 285. GL_NV_primitive_restart */ + SET_PrimitiveRestartIndexNV(exec, _mesa_PrimitiveRestartIndex); + /* ???. GL_EXT_depth_bounds_test */ SET_DepthBoundsEXT(exec, _mesa_DepthBoundsEXT); @@ -723,6 +726,13 @@ _mesa_create_exec_table(void) SET_FramebufferTextureFaceARB(exec, _mesa_FramebufferTextureFaceARB); #endif + /* GL_EXT_texture_integer */ + SET_ClearColorIiEXT(exec, _mesa_ClearColorIiEXT); + SET_ClearColorIuiEXT(exec, _mesa_ClearColorIuiEXT); + SET_GetTexParameterIivEXT(exec, _mesa_GetTexParameterIiv); + SET_GetTexParameterIuivEXT(exec, _mesa_GetTexParameterIuiv); + SET_TexParameterIivEXT(exec, _mesa_TexParameterIiv); + SET_TexParameterIuivEXT(exec, _mesa_TexParameterIuiv); return exec; } diff --git a/src/mesa/main/api_noop.c b/src/mesa/main/api_noop.c index 9a36394d65e..08b4b4a3b67 100644 --- a/src/mesa/main/api_noop.c +++ b/src/mesa/main/api_noop.c @@ -679,6 +679,16 @@ static void GLAPIENTRY _mesa_noop_End( void ) } +/*** + * PrimitiveRestart called outside glBegin()/End(): raise an error + */ +static void GLAPIENTRY _mesa_noop_PrimitiveRestartNV( void ) +{ + GET_CURRENT_CONTEXT(ctx); + _mesa_error(ctx, GL_INVALID_OPERATION, "glPrimitiveRestartNV(no glBegin)"); +} + + /** * Execute a glRectf() function. This is not suitable for GL_COMPILE * modes (as the test for outside begin/end is not compiled), @@ -1007,6 +1017,8 @@ _mesa_noop_vtxfmt_init( GLvertexformat *vfmt ) vfmt->EdgeFlag = _mesa_noop_EdgeFlag; vfmt->End = _mesa_noop_End; + vfmt->PrimitiveRestartNV = _mesa_noop_PrimitiveRestartNV; + _MESA_INIT_EVAL_VTXFMT(vfmt, _mesa_noop_); vfmt->FogCoordfEXT = _mesa_noop_FogCoordfEXT; diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index b3b5c6cc053..4929a9310d4 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -54,7 +54,7 @@ index_bytes(GLenum type, GLsizei count) * Find the max index in the given element/index buffer */ GLuint -_mesa_max_buffer_index(GLcontext *ctx, GLuint count, GLenum type, +_mesa_max_buffer_index(struct gl_context *ctx, GLuint count, GLenum type, const void *indices, struct gl_buffer_object *elementBuf) { @@ -99,7 +99,7 @@ _mesa_max_buffer_index(GLcontext *ctx, GLuint count, GLenum type, * Check if OK to draw arrays/elements. */ static GLboolean -check_valid_to_render(GLcontext *ctx, const char *function) +check_valid_to_render(struct gl_context *ctx, const char *function) { if (!_mesa_valid_to_render(ctx, function)) { return GL_FALSE; @@ -140,7 +140,7 @@ check_valid_to_render(GLcontext *ctx, const char *function) * \return GL_TRUE if OK, GL_FALSE if any indexed vertex goes is out of bounds */ static GLboolean -check_index_bounds(GLcontext *ctx, GLsizei count, GLenum type, +check_index_bounds(struct gl_context *ctx, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex) { struct _mesa_prim prim; @@ -181,7 +181,7 @@ check_index_bounds(GLcontext *ctx, GLsizei count, GLenum type, * \return GL_TRUE if OK to render, GL_FALSE if error found */ GLboolean -_mesa_validate_DrawElements(GLcontext *ctx, +_mesa_validate_DrawElements(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex) { @@ -237,7 +237,7 @@ _mesa_validate_DrawElements(GLcontext *ctx, * \return GL_TRUE if OK to render, GL_FALSE if error found */ GLboolean -_mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode, +_mesa_validate_DrawRangeElements(struct gl_context *ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex) @@ -298,7 +298,7 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode, * \return GL_TRUE if OK to render, GL_FALSE if error found */ GLboolean -_mesa_validate_DrawArrays(GLcontext *ctx, +_mesa_validate_DrawArrays(struct gl_context *ctx, GLenum mode, GLint start, GLsizei count) { ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); @@ -327,7 +327,7 @@ _mesa_validate_DrawArrays(GLcontext *ctx, GLboolean -_mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first, +_mesa_validate_DrawArraysInstanced(struct gl_context *ctx, GLenum mode, GLint first, GLsizei count, GLsizei primcount) { ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); @@ -371,7 +371,7 @@ _mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first, GLboolean -_mesa_validate_DrawElementsInstanced(GLcontext *ctx, +_mesa_validate_DrawElementsInstanced(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount) { diff --git a/src/mesa/main/api_validate.h b/src/mesa/main/api_validate.h index cd27d58aa7d..b232a90843e 100644 --- a/src/mesa/main/api_validate.h +++ b/src/mesa/main/api_validate.h @@ -32,32 +32,32 @@ extern GLuint -_mesa_max_buffer_index(GLcontext *ctx, GLuint count, GLenum type, +_mesa_max_buffer_index(struct gl_context *ctx, GLuint count, GLenum type, const void *indices, struct gl_buffer_object *elementBuf); extern GLboolean -_mesa_validate_DrawArrays(GLcontext *ctx, +_mesa_validate_DrawArrays(struct gl_context *ctx, GLenum mode, GLint start, GLsizei count); extern GLboolean -_mesa_validate_DrawElements(GLcontext *ctx, +_mesa_validate_DrawElements(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); extern GLboolean -_mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode, +_mesa_validate_DrawRangeElements(struct gl_context *ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); extern GLboolean -_mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first, +_mesa_validate_DrawArraysInstanced(struct gl_context *ctx, GLenum mode, GLint first, GLsizei count, GLsizei primcount); extern GLboolean -_mesa_validate_DrawElementsInstanced(GLcontext *ctx, +_mesa_validate_DrawElementsInstanced(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c index 0069cd3dcfd..0d64b7de8dd 100644 --- a/src/mesa/main/arrayobj.c +++ b/src/mesa/main/arrayobj.c @@ -61,7 +61,7 @@ */ static INLINE struct gl_array_object * -lookup_arrayobj(GLcontext *ctx, GLuint id) +lookup_arrayobj(struct gl_context *ctx, GLuint id) { if (id == 0) return NULL; @@ -77,7 +77,7 @@ lookup_arrayobj(GLcontext *ctx, GLuint id) * This is done just prior to array object destruction. */ static void -unbind_array_object_vbos(GLcontext *ctx, struct gl_array_object *obj) +unbind_array_object_vbos(struct gl_context *ctx, struct gl_array_object *obj) { GLuint i; @@ -109,7 +109,7 @@ unbind_array_object_vbos(GLcontext *ctx, struct gl_array_object *obj) * \c dd_function_table::NewArrayObject. */ struct gl_array_object * -_mesa_new_array_object( GLcontext *ctx, GLuint name ) +_mesa_new_array_object( struct gl_context *ctx, GLuint name ) { struct gl_array_object *obj = CALLOC_STRUCT(gl_array_object); if (obj) @@ -125,7 +125,7 @@ _mesa_new_array_object( GLcontext *ctx, GLuint name ) * \c dd_function_table::DeleteArrayObject. */ void -_mesa_delete_array_object( GLcontext *ctx, struct gl_array_object *obj ) +_mesa_delete_array_object( struct gl_context *ctx, struct gl_array_object *obj ) { (void) ctx; unbind_array_object_vbos(ctx, obj); @@ -138,7 +138,7 @@ _mesa_delete_array_object( GLcontext *ctx, struct gl_array_object *obj ) * Set ptr to arrayObj w/ reference counting. */ void -_mesa_reference_array_object(GLcontext *ctx, +_mesa_reference_array_object(struct gl_context *ctx, struct gl_array_object **ptr, struct gl_array_object *arrayObj) { @@ -193,7 +193,7 @@ _mesa_reference_array_object(GLcontext *ctx, static void -init_array(GLcontext *ctx, +init_array(struct gl_context *ctx, struct gl_client_array *array, GLint size, GLint type) { array->Size = size; @@ -216,7 +216,7 @@ init_array(GLcontext *ctx, * Initialize a gl_array_object's arrays. */ void -_mesa_initialize_array_object( GLcontext *ctx, +_mesa_initialize_array_object( struct gl_context *ctx, struct gl_array_object *obj, GLuint name ) { @@ -253,7 +253,7 @@ _mesa_initialize_array_object( GLcontext *ctx, * Add the given array object to the array object pool. */ static void -save_array_object( GLcontext *ctx, struct gl_array_object *obj ) +save_array_object( struct gl_context *ctx, struct gl_array_object *obj ) { if (obj->Name > 0) { /* insert into hash table */ @@ -267,7 +267,7 @@ save_array_object( GLcontext *ctx, struct gl_array_object *obj ) * Do not deallocate the array object though. */ static void -remove_array_object( GLcontext *ctx, struct gl_array_object *obj ) +remove_array_object( struct gl_context *ctx, struct gl_array_object *obj ) { if (obj->Name > 0) { /* remove from hash table */ @@ -327,7 +327,7 @@ update_min(GLuint min, struct gl_client_array *array) * Examine vertex arrays to update the gl_array_object::_MaxElement field. */ void -_mesa_update_array_object_max_element(GLcontext *ctx, +_mesa_update_array_object_max_element(struct gl_context *ctx, struct gl_array_object *arrayObj) { GLuint i, min = ~0; @@ -364,7 +364,7 @@ _mesa_update_array_object_max_element(GLcontext *ctx, * glGenVertexArrays(). */ static void -bind_vertex_array(GLcontext *ctx, GLuint id, GLboolean genRequired) +bind_vertex_array(struct gl_context *ctx, GLuint id, GLboolean genRequired) { struct gl_array_object * const oldObj = ctx->Array.ArrayObj; struct gl_array_object *newObj = NULL; @@ -495,7 +495,7 @@ _mesa_DeleteVertexArraysAPPLE(GLsizei n, const GLuint *ids) * \param vboOnly Will arrays have to reside in VBOs? */ static void -gen_vertex_arrays(GLcontext *ctx, GLsizei n, GLuint *arrays, GLboolean vboOnly) +gen_vertex_arrays(struct gl_context *ctx, GLsizei n, GLuint *arrays, GLboolean vboOnly) { GLuint first; GLint i; diff --git a/src/mesa/main/arrayobj.h b/src/mesa/main/arrayobj.h index fdf7e2bca46..26e3af19c91 100644 --- a/src/mesa/main/arrayobj.h +++ b/src/mesa/main/arrayobj.h @@ -43,23 +43,23 @@ */ extern struct gl_array_object * -_mesa_new_array_object( GLcontext *ctx, GLuint name ); +_mesa_new_array_object( struct gl_context *ctx, GLuint name ); extern void -_mesa_delete_array_object( GLcontext *ctx, struct gl_array_object *obj ); +_mesa_delete_array_object( struct gl_context *ctx, struct gl_array_object *obj ); extern void -_mesa_reference_array_object(GLcontext *ctx, +_mesa_reference_array_object(struct gl_context *ctx, struct gl_array_object **ptr, struct gl_array_object *arrayObj); extern void -_mesa_initialize_array_object( GLcontext *ctx, +_mesa_initialize_array_object( struct gl_context *ctx, struct gl_array_object *obj, GLuint name ); extern void -_mesa_update_array_object_max_element(GLcontext *ctx, +_mesa_update_array_object_max_element(struct gl_context *ctx, struct gl_array_object *arrayObj); diff --git a/src/mesa/main/atifragshader.c b/src/mesa/main/atifragshader.c index 550f50b7a00..ae2feb3229a 100644 --- a/src/mesa/main/atifragshader.c +++ b/src/mesa/main/atifragshader.c @@ -62,7 +62,7 @@ _mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp) * Allocate and initialize a new ATI fragment shader object. */ struct ati_fragment_shader * -_mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id) +_mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id) { struct ati_fragment_shader *s = CALLOC_STRUCT(ati_fragment_shader); (void) ctx; @@ -78,7 +78,7 @@ _mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id) * Delete the given ati fragment shader */ void -_mesa_delete_ati_fragment_shader(GLcontext *ctx, struct ati_fragment_shader *s) +_mesa_delete_ati_fragment_shader(struct gl_context *ctx, struct ati_fragment_shader *s) { GLuint i; for (i = 0; i < MAX_NUM_PASSES_ATI; i++) { diff --git a/src/mesa/main/atifragshader.h b/src/mesa/main/atifragshader.h index 31c335ec815..6911bba5aee 100644 --- a/src/mesa/main/atifragshader.h +++ b/src/mesa/main/atifragshader.h @@ -66,10 +66,10 @@ extern void _mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp); extern struct ati_fragment_shader * -_mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id); +_mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id); extern void -_mesa_delete_ati_fragment_shader(GLcontext *ctx, +_mesa_delete_ati_fragment_shader(struct gl_context *ctx, struct ati_fragment_shader *s); @@ -133,13 +133,13 @@ _mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp) } static INLINE struct ati_fragment_shader * -_mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id) +_mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id) { return NULL; } static INLINE void -_mesa_delete_ati_fragment_shader(GLcontext *ctx, +_mesa_delete_ati_fragment_shader(struct gl_context *ctx, struct ati_fragment_shader *s) { } diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 0299525f46b..fb6fbe5b6db 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -473,7 +473,7 @@ end: static void -pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable) +pop_enable_group(struct gl_context *ctx, const struct gl_enable_attrib *enable) { const GLuint curTexUnitSave = ctx->Texture.CurrentUnit; GLuint i; @@ -669,7 +669,7 @@ pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable) * Pop/restore texture attribute/group state. */ static void -pop_texture_group(GLcontext *ctx, struct texture_state *texstate) +pop_texture_group(struct gl_context *ctx, struct texture_state *texstate) { GLuint u; @@ -1323,7 +1323,7 @@ adjust_buffer_object_ref_counts(struct gl_array_object *arrayObj, GLint step) * object refcounts. */ static void -copy_pixelstore(GLcontext *ctx, +copy_pixelstore(struct gl_context *ctx, struct gl_pixelstore_attrib *dst, const struct gl_pixelstore_attrib *src) { @@ -1506,7 +1506,7 @@ _mesa_init_attrib_dispatch(struct _glapi_table *disp) * Free any attribute state data that might be attached to the context. */ void -_mesa_free_attrib_data(GLcontext *ctx) +_mesa_free_attrib_data(struct gl_context *ctx) { while (ctx->AttribStackDepth > 0) { struct gl_attrib_node *attr, *next; @@ -1538,7 +1538,7 @@ _mesa_free_attrib_data(GLcontext *ctx) } -void _mesa_init_attrib( GLcontext *ctx ) +void _mesa_init_attrib( struct gl_context *ctx ) { /* Renderer and client attribute stacks */ ctx->AttribStackDepth = 0; diff --git a/src/mesa/main/attrib.h b/src/mesa/main/attrib.h index 83b28a65b77..777781bdf0d 100644 --- a/src/mesa/main/attrib.h +++ b/src/mesa/main/attrib.h @@ -70,9 +70,9 @@ _mesa_init_attrib_dispatch(struct _glapi_table *disp) #endif /* FEATURE_attrib_stack */ extern void -_mesa_init_attrib( GLcontext *ctx ); +_mesa_init_attrib( struct gl_context *ctx ); extern void -_mesa_free_attrib_data( GLcontext *ctx ); +_mesa_free_attrib_data( struct gl_context *ctx ); #endif /* ATTRIB_H */ diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c index 736a94c052a..ec778b7244d 100644 --- a/src/mesa/main/blend.c +++ b/src/mesa/main/blend.c @@ -207,7 +207,7 @@ _mesa_BlendFuncSeparateEXT( GLenum sfactorRGB, GLenum dfactorRGB, #if _HAVE_FULL_GL static GLboolean -_mesa_validate_blend_equation( GLcontext *ctx, +_mesa_validate_blend_equation( struct gl_context *ctx, GLenum mode, GLboolean is_separate ) { switch (mode) { @@ -589,9 +589,9 @@ _mesa_ClampColorARB(GLenum target, GLenum clamp) * \param ctx GL context. * * Initializes the related fields in the context color attribute group, - * __GLcontextRec::Color. + * __struct gl_contextRec::Color. */ -void _mesa_init_color( GLcontext * ctx ) +void _mesa_init_color( struct gl_context * ctx ) { /* Color buffer group */ ctx->Color.IndexMask = ~0u; diff --git a/src/mesa/main/blend.h b/src/mesa/main/blend.h index b4fd7470ebe..677b01cc9fc 100644 --- a/src/mesa/main/blend.h +++ b/src/mesa/main/blend.h @@ -82,6 +82,6 @@ _mesa_ClampColorARB(GLenum target, GLenum clamp); extern void -_mesa_init_color( GLcontext * ctx ); +_mesa_init_color( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 61d46b936b2..0a68008a100 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -62,7 +62,7 @@ * specified context or \c NULL if \c target is invalid. */ static INLINE struct gl_buffer_object ** -get_buffer_target(GLcontext *ctx, GLenum target) +get_buffer_target(struct gl_context *ctx, GLenum target) { switch (target) { case GL_ARRAY_BUFFER_ARB: @@ -99,7 +99,7 @@ get_buffer_target(GLcontext *ctx, GLenum target) * specified context or \c NULL if \c target is invalid. */ static INLINE struct gl_buffer_object * -get_buffer(GLcontext *ctx, GLenum target) +get_buffer(struct gl_context *ctx, GLenum target) { struct gl_buffer_object **bufObj = get_buffer_target(ctx, target); if (bufObj) @@ -143,7 +143,7 @@ simplified_access_mode(GLbitfield access) * \sa glBufferSubDataARB, glGetBufferSubDataARB */ static struct gl_buffer_object * -buffer_object_subdata_range_good( GLcontext * ctx, GLenum target, +buffer_object_subdata_range_good( struct gl_context * ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const char *caller ) { @@ -189,7 +189,7 @@ buffer_object_subdata_range_good( GLcontext * ctx, GLenum target, * Default callback for the \c dd_function_table::NewBufferObject() hook. */ static struct gl_buffer_object * -_mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target ) +_mesa_new_buffer_object( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_buffer_object *obj; @@ -207,7 +207,7 @@ _mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target ) * Default callback for the \c dd_function_table::DeleteBuffer() hook. */ static void -_mesa_delete_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj ) +_mesa_delete_buffer_object( struct gl_context *ctx, struct gl_buffer_object *bufObj ) { (void) ctx; @@ -228,7 +228,7 @@ _mesa_delete_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj ) * Set ptr to bufObj w/ reference counting. */ void -_mesa_reference_buffer_object(GLcontext *ctx, +_mesa_reference_buffer_object(struct gl_context *ctx, struct gl_buffer_object **ptr, struct gl_buffer_object *bufObj) { @@ -328,7 +328,7 @@ _mesa_initialize_buffer_object( struct gl_buffer_object *obj, * \sa glBufferDataARB, dd_function_table::BufferData. */ static GLboolean -_mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size, +_mesa_buffer_data( struct gl_context *ctx, GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage, struct gl_buffer_object * bufObj ) { @@ -372,7 +372,7 @@ _mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size, * \sa glBufferSubDataARB, dd_function_table::BufferSubData. */ static void -_mesa_buffer_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, +_mesa_buffer_subdata( struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data, struct gl_buffer_object * bufObj ) { @@ -405,7 +405,7 @@ _mesa_buffer_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, * \sa glBufferGetSubDataARB, dd_function_table::GetBufferSubData. */ static void -_mesa_buffer_get_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, +_mesa_buffer_get_subdata( struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data, struct gl_buffer_object * bufObj ) { @@ -432,7 +432,7 @@ _mesa_buffer_get_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, * \sa glMapBufferARB, dd_function_table::MapBuffer */ static void * -_mesa_buffer_map( GLcontext *ctx, GLenum target, GLenum access, +_mesa_buffer_map( struct gl_context *ctx, GLenum target, GLenum access, struct gl_buffer_object *bufObj ) { (void) ctx; @@ -455,7 +455,7 @@ _mesa_buffer_map( GLcontext *ctx, GLenum target, GLenum access, * Called via glMapBufferRange(). */ static void * -_mesa_buffer_map_range( GLcontext *ctx, GLenum target, GLintptr offset, +_mesa_buffer_map_range( struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, struct gl_buffer_object *bufObj ) { @@ -476,7 +476,7 @@ _mesa_buffer_map_range( GLcontext *ctx, GLenum target, GLintptr offset, * Called via glFlushMappedBufferRange(). */ static void -_mesa_buffer_flush_mapped_range( GLcontext *ctx, GLenum target, +_mesa_buffer_flush_mapped_range( struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, struct gl_buffer_object *obj ) { @@ -497,7 +497,7 @@ _mesa_buffer_flush_mapped_range( GLcontext *ctx, GLenum target, * \sa glUnmapBufferARB, dd_function_table::UnmapBuffer */ static GLboolean -_mesa_buffer_unmap( GLcontext *ctx, GLenum target, +_mesa_buffer_unmap( struct gl_context *ctx, GLenum target, struct gl_buffer_object *bufObj ) { (void) ctx; @@ -516,7 +516,7 @@ _mesa_buffer_unmap( GLcontext *ctx, GLenum target, * Called via glCopyBuffserSubData(). */ static void -_mesa_copy_buffer_subdata(GLcontext *ctx, +_mesa_copy_buffer_subdata(struct gl_context *ctx, struct gl_buffer_object *src, struct gl_buffer_object *dst, GLintptr readOffset, GLintptr writeOffset, @@ -546,7 +546,7 @@ _mesa_copy_buffer_subdata(GLcontext *ctx, * Initialize the state associated with buffer objects */ void -_mesa_init_buffer_objects( GLcontext *ctx ) +_mesa_init_buffer_objects( struct gl_context *ctx ) { _mesa_reference_buffer_object(ctx, &ctx->Array.ArrayBufferObj, ctx->Shared->NullBufferObj); @@ -561,7 +561,7 @@ _mesa_init_buffer_objects( GLcontext *ctx ) void -_mesa_free_buffer_objects( GLcontext *ctx ) +_mesa_free_buffer_objects( struct gl_context *ctx ) { _mesa_reference_buffer_object(ctx, &ctx->Array.ArrayBufferObj, NULL); _mesa_reference_buffer_object(ctx, &ctx->Array.ElementArrayBufferObj, NULL); @@ -576,7 +576,7 @@ _mesa_free_buffer_objects( GLcontext *ctx ) * Called by glBindBuffer() and other functions. */ static void -bind_buffer_object(GLcontext *ctx, GLenum target, GLuint buffer) +bind_buffer_object(struct gl_context *ctx, GLenum target, GLuint buffer) { struct gl_buffer_object *oldBufObj; struct gl_buffer_object *newBufObj = NULL; @@ -632,7 +632,7 @@ bind_buffer_object(GLcontext *ctx, GLenum target, GLuint buffer) * shared state. */ void -_mesa_update_default_objects_buffer_objects(GLcontext *ctx) +_mesa_update_default_objects_buffer_objects(struct gl_context *ctx) { /* Bind the NullBufferObj to remove references to those * in the shared context hash table. @@ -716,7 +716,7 @@ _mesa_validate_pbo_access(GLuint dimensions, * \return NULL if error, else pointer to start of data */ const GLvoid * -_mesa_map_pbo_source(GLcontext *ctx, +_mesa_map_pbo_source(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack, const GLvoid *src) { @@ -750,7 +750,7 @@ _mesa_map_pbo_source(GLcontext *ctx, * _mesa_unmap_pbo_source(). */ const GLvoid * -_mesa_map_validate_pbo_source(GLcontext *ctx, +_mesa_map_validate_pbo_source(struct gl_context *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, @@ -786,7 +786,7 @@ _mesa_map_validate_pbo_source(GLcontext *ctx, * Counterpart to _mesa_map_pbo_source() */ void -_mesa_unmap_pbo_source(GLcontext *ctx, +_mesa_unmap_pbo_source(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack) { ASSERT(unpack != &ctx->Pack); /* catch pack/unpack mismatch */ @@ -806,7 +806,7 @@ _mesa_unmap_pbo_source(GLcontext *ctx, * \return NULL if error, else pointer to start of data */ void * -_mesa_map_pbo_dest(GLcontext *ctx, +_mesa_map_pbo_dest(struct gl_context *ctx, const struct gl_pixelstore_attrib *pack, GLvoid *dest) { @@ -840,7 +840,7 @@ _mesa_map_pbo_dest(GLcontext *ctx, * _mesa_unmap_pbo_dest(). */ GLvoid * -_mesa_map_validate_pbo_dest(GLcontext *ctx, +_mesa_map_validate_pbo_dest(struct gl_context *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, @@ -876,7 +876,7 @@ _mesa_map_validate_pbo_dest(GLcontext *ctx, * Counterpart to _mesa_map_pbo_dest() */ void -_mesa_unmap_pbo_dest(GLcontext *ctx, +_mesa_unmap_pbo_dest(struct gl_context *ctx, const struct gl_pixelstore_attrib *pack) { ASSERT(pack != &ctx->Unpack); /* catch pack/unpack mismatch */ @@ -892,7 +892,7 @@ _mesa_unmap_pbo_dest(GLcontext *ctx, * Always return NULL for ID 0. */ struct gl_buffer_object * -_mesa_lookup_bufferobj(GLcontext *ctx, GLuint buffer) +_mesa_lookup_bufferobj(struct gl_context *ctx, GLuint buffer) { if (buffer == 0) return NULL; @@ -909,7 +909,7 @@ _mesa_lookup_bufferobj(GLcontext *ctx, GLuint buffer) * unbound from all arrays in the current context. */ static void -unbind(GLcontext *ctx, +unbind(struct gl_context *ctx, struct gl_buffer_object **ptr, struct gl_buffer_object *obj) { @@ -1754,7 +1754,7 @@ _mesa_FlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length) #if FEATURE_APPLE_object_purgeable static GLenum -_mesa_BufferObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_BufferObjectPurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_buffer_object *bufObj; GLenum retval; @@ -1787,7 +1787,7 @@ _mesa_BufferObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) static GLenum -_mesa_RenderObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_RenderObjectPurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_renderbuffer *bufObj; GLenum retval; @@ -1816,7 +1816,7 @@ _mesa_RenderObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) static GLenum -_mesa_TextureObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_TextureObjectPurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_texture_object *bufObj; GLenum retval; @@ -1897,7 +1897,7 @@ _mesa_ObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option) static GLenum -_mesa_BufferObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_BufferObjectUnpurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_buffer_object *bufObj; GLenum retval; @@ -1927,7 +1927,7 @@ _mesa_BufferObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) static GLenum -_mesa_RenderObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_RenderObjectUnpurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_renderbuffer *bufObj; GLenum retval; @@ -1957,7 +1957,7 @@ _mesa_RenderObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) static GLenum -_mesa_TextureObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_TextureObjectUnpurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_texture_object *bufObj; GLenum retval; @@ -2027,7 +2027,7 @@ _mesa_ObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option) static void -_mesa_GetBufferObjectParameterivAPPLE(GLcontext *ctx, GLuint name, +_mesa_GetBufferObjectParameterivAPPLE(struct gl_context *ctx, GLuint name, GLenum pname, GLint* params) { struct gl_buffer_object *bufObj; @@ -2053,7 +2053,7 @@ _mesa_GetBufferObjectParameterivAPPLE(GLcontext *ctx, GLuint name, static void -_mesa_GetRenderObjectParameterivAPPLE(GLcontext *ctx, GLuint name, +_mesa_GetRenderObjectParameterivAPPLE(struct gl_context *ctx, GLuint name, GLenum pname, GLint* params) { struct gl_renderbuffer *bufObj; @@ -2079,7 +2079,7 @@ _mesa_GetRenderObjectParameterivAPPLE(GLcontext *ctx, GLuint name, static void -_mesa_GetTextureObjectParameterivAPPLE(GLcontext *ctx, GLuint name, +_mesa_GetTextureObjectParameterivAPPLE(struct gl_context *ctx, GLuint name, GLenum pname, GLint* params) { struct gl_texture_object *bufObj; diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h index f234d06c6cc..4b97e34767e 100644 --- a/src/mesa/main/bufferobj.h +++ b/src/mesa/main/bufferobj.h @@ -57,24 +57,24 @@ _mesa_is_bufferobj(const struct gl_buffer_object *obj) extern void -_mesa_init_buffer_objects( GLcontext *ctx ); +_mesa_init_buffer_objects( struct gl_context *ctx ); extern void -_mesa_free_buffer_objects( GLcontext *ctx ); +_mesa_free_buffer_objects( struct gl_context *ctx ); extern void -_mesa_update_default_objects_buffer_objects(GLcontext *ctx); +_mesa_update_default_objects_buffer_objects(struct gl_context *ctx); extern struct gl_buffer_object * -_mesa_lookup_bufferobj(GLcontext *ctx, GLuint buffer); +_mesa_lookup_bufferobj(struct gl_context *ctx, GLuint buffer); extern void _mesa_initialize_buffer_object( struct gl_buffer_object *obj, GLuint name, GLenum target ); extern void -_mesa_reference_buffer_object(GLcontext *ctx, +_mesa_reference_buffer_object(struct gl_context *ctx, struct gl_buffer_object **ptr, struct gl_buffer_object *bufObj); @@ -85,12 +85,12 @@ _mesa_validate_pbo_access(GLuint dimensions, GLenum format, GLenum type, const GLvoid *ptr); extern const GLvoid * -_mesa_map_pbo_source(GLcontext *ctx, +_mesa_map_pbo_source(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack, const GLvoid *src); extern const GLvoid * -_mesa_map_validate_pbo_source(GLcontext *ctx, +_mesa_map_validate_pbo_source(struct gl_context *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, @@ -98,16 +98,16 @@ _mesa_map_validate_pbo_source(GLcontext *ctx, const char *where); extern void -_mesa_unmap_pbo_source(GLcontext *ctx, +_mesa_unmap_pbo_source(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack); extern void * -_mesa_map_pbo_dest(GLcontext *ctx, +_mesa_map_pbo_dest(struct gl_context *ctx, const struct gl_pixelstore_attrib *pack, GLvoid *dest); extern GLvoid * -_mesa_map_validate_pbo_dest(GLcontext *ctx, +_mesa_map_validate_pbo_dest(struct gl_context *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, @@ -115,7 +115,7 @@ _mesa_map_validate_pbo_dest(GLcontext *ctx, const char *where); extern void -_mesa_unmap_pbo_dest(GLcontext *ctx, +_mesa_unmap_pbo_dest(struct gl_context *ctx, const struct gl_pixelstore_attrib *pack); diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index fb30b599609..86446311fe3 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -50,7 +50,7 @@ * \return bitmask of BUFFER_BIT_* flags */ static GLbitfield -supported_buffer_bitmask(const GLcontext *ctx, const struct gl_framebuffer *fb) +supported_buffer_bitmask(const struct gl_context *ctx, const struct gl_framebuffer *fb) { GLbitfield mask = 0x0; @@ -355,7 +355,7 @@ _mesa_DrawBuffersARB(GLsizei n, const GLenum *buffers) * BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT). */ void -_mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers, +_mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers, const GLbitfield *destMask) { struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -452,7 +452,7 @@ _mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers, * \param bufferIndex the numerical index corresponding to 'buffer' */ void -_mesa_readbuffer(GLcontext *ctx, GLenum buffer, GLint bufferIndex) +_mesa_readbuffer(struct gl_context *ctx, GLenum buffer, GLint bufferIndex) { struct gl_framebuffer *fb = ctx->ReadBuffer; diff --git a/src/mesa/main/buffers.h b/src/mesa/main/buffers.h index 8a7e7b5c1f0..36d6c8b6608 100644 --- a/src/mesa/main/buffers.h +++ b/src/mesa/main/buffers.h @@ -43,11 +43,11 @@ extern void GLAPIENTRY _mesa_DrawBuffersARB(GLsizei n, const GLenum *buffers); extern void -_mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers, +_mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers, const GLbitfield *destMask); extern void -_mesa_readbuffer(GLcontext *ctx, GLenum buffer, GLint bufferIndex); +_mesa_readbuffer(struct gl_context *ctx, GLenum buffer, GLint bufferIndex); extern void GLAPIENTRY _mesa_ReadBuffer( GLenum mode ); diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c index 49d86b3b1f1..61bc836a38d 100644 --- a/src/mesa/main/clear.c +++ b/src/mesa/main/clear.c @@ -96,11 +96,73 @@ _mesa_ClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) /** + * GL_EXT_texture_integer + */ +void GLAPIENTRY +_mesa_ClearColorIiEXT(GLint r, GLint g, GLint b, GLint a) +{ + GLfloat tmp[4]; + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + + tmp[0] = (GLfloat) r; + tmp[1] = (GLfloat) g; + tmp[2] = (GLfloat) b; + tmp[3] = (GLfloat) a; + + if (TEST_EQ_4V(tmp, ctx->Color.ClearColor)) + return; /* no change */ + + FLUSH_VERTICES(ctx, _NEW_COLOR); + + /* XXX we should eventually have a float/int/uint union for + * the ctx->Color.ClearColor state. + */ + COPY_4V(ctx->Color.ClearColor, tmp); + + if (ctx->Driver.ClearColor) { + ctx->Driver.ClearColor(ctx, ctx->Color.ClearColor); + } +} + + +/** + * GL_EXT_texture_integer + */ +void GLAPIENTRY +_mesa_ClearColorIuiEXT(GLuint r, GLuint g, GLuint b, GLuint a) +{ + GLfloat tmp[4]; + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + + tmp[0] = (GLfloat) r; + tmp[1] = (GLfloat) g; + tmp[2] = (GLfloat) b; + tmp[3] = (GLfloat) a; + + if (TEST_EQ_4V(tmp, ctx->Color.ClearColor)) + return; /* no change */ + + FLUSH_VERTICES(ctx, _NEW_COLOR); + + /* XXX we should eventually have a float/int/uint union for + * the ctx->Color.ClearColor state. + */ + COPY_4V(ctx->Color.ClearColor, tmp); + + if (ctx->Driver.ClearColor) { + ctx->Driver.ClearColor(ctx, ctx->Color.ClearColor); + } +} + + +/** * Clear buffers. * * \param mask bit-mask indicating the buffers to be cleared. * - * Flushes the vertices and verifies the parameter. If __GLcontextRec::NewState + * Flushes the vertices and verifies the parameter. If __struct gl_contextRec::NewState * is set then calls _mesa_update_state() to update gl_frame_buffer::_Xmin, * etc. If the rasterization mode is set to GL_RENDER then requests the driver * to clear the buffers, via the dd_function_table::Clear callback. @@ -191,7 +253,7 @@ _mesa_Clear( GLbitfield mask ) * Return INVALID_MASK if the drawbuffer value is invalid. */ static GLbitfield -make_color_buffer_mask(GLcontext *ctx, GLint drawbuffer) +make_color_buffer_mask(struct gl_context *ctx, GLint drawbuffer) { const struct gl_renderbuffer_attachment *att = ctx->DrawBuffer->Attachment; GLbitfield mask = 0x0; diff --git a/src/mesa/main/clear.h b/src/mesa/main/clear.h index 6657370c4b6..78327192034 100644 --- a/src/mesa/main/clear.h +++ b/src/mesa/main/clear.h @@ -38,6 +38,13 @@ _mesa_ClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); extern void GLAPIENTRY +_mesa_ClearColorIiEXT(GLint r, GLint g, GLint b, GLint a); + +extern void GLAPIENTRY +_mesa_ClearColorIuiEXT(GLuint r, GLuint g, GLuint b, GLuint a); + + +extern void GLAPIENTRY _mesa_Clear( GLbitfield mask ); diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c index 5c2697d40af..caa95835bc2 100644 --- a/src/mesa/main/colortab.c +++ b/src/mesa/main/colortab.c @@ -29,6 +29,7 @@ #include "context.h" #include "image.h" #include "macros.h" +#include "pack.h" #include "state.h" #include "teximage.h" #include "texstate.h" @@ -176,7 +177,7 @@ set_component_sizes( struct gl_color_table *table ) * \param [rgba]Bias - RGBA bias factors */ static void -store_colortable_entries(GLcontext *ctx, struct gl_color_table *table, +store_colortable_entries(struct gl_context *ctx, struct gl_color_table *table, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data, GLfloat rScale, GLfloat rBias, diff --git a/src/mesa/main/condrender.c b/src/mesa/main/condrender.c index 8d9a91d5478..25b3dd678dc 100644 --- a/src/mesa/main/condrender.c +++ b/src/mesa/main/condrender.c @@ -117,7 +117,7 @@ _mesa_EndConditionalRender(void) * \return GL_TRUE if we should render, GL_FALSE if we should discard */ GLboolean -_mesa_check_conditional_render(GLcontext *ctx) +_mesa_check_conditional_render(struct gl_context *ctx) { struct gl_query_object *q = ctx->Query.CondRenderQuery; diff --git a/src/mesa/main/condrender.h b/src/mesa/main/condrender.h index d55e9805fe9..cf6d4ca2893 100644 --- a/src/mesa/main/condrender.h +++ b/src/mesa/main/condrender.h @@ -39,7 +39,7 @@ extern void APIENTRY _mesa_EndConditionalRender(void); extern GLboolean -_mesa_check_conditional_render(GLcontext *ctx); +_mesa_check_conditional_render(struct gl_context *ctx); #endif /* CONDRENDER_H */ diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 00132514d77..3ebe54926ff 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -137,7 +137,7 @@ #endif #include "glsl_parser_extras.h" - +#include <stdbool.h> #ifndef MESA_VERBOSE @@ -163,7 +163,7 @@ GLfloat _mesa_ubyte_to_float_color_tab[256]; * We have to finish any pending rendering. */ void -_mesa_notifySwapBuffers(__GLcontext *ctx) +_mesa_notifySwapBuffers(struct gl_context *ctx) { if (MESA_VERBOSE & VERBOSE_SWAPBUFFERS) _mesa_debug(ctx, "SwapBuffers\n"); @@ -180,7 +180,7 @@ _mesa_notifySwapBuffers(__GLcontext *ctx) /*@{*/ /** - * Allocates a GLvisual structure and initializes it via + * Allocates a struct gl_config structure and initializes it via * _mesa_initialize_visual(). * * \param dbFlag double buffering @@ -198,12 +198,12 @@ _mesa_notifySwapBuffers(__GLcontext *ctx) * \param alphaBits same as above. * \param numSamples not really used. * - * \return pointer to new GLvisual or NULL if requested parameters can't be + * \return pointer to new struct gl_config or NULL if requested parameters can't be * met. * * \note Need to add params for level and numAuxBuffers (at least) */ -GLvisual * +struct gl_config * _mesa_create_visual( GLboolean dbFlag, GLboolean stereoFlag, GLint redBits, @@ -218,7 +218,7 @@ _mesa_create_visual( GLboolean dbFlag, GLint accumAlphaBits, GLint numSamples ) { - GLvisual *vis = (GLvisual *) calloc(1, sizeof(GLvisual)); + struct gl_config *vis = (struct gl_config *) calloc(1, sizeof(struct gl_config)); if (vis) { if (!_mesa_initialize_visual(vis, dbFlag, stereoFlag, redBits, greenBits, blueBits, alphaBits, @@ -235,15 +235,15 @@ _mesa_create_visual( GLboolean dbFlag, /** * Makes some sanity checks and fills in the fields of the - * GLvisual object with the given parameters. If the caller needs - * to set additional fields, he should just probably init the whole GLvisual + * struct gl_config object with the given parameters. If the caller needs + * to set additional fields, he should just probably init the whole struct gl_config * object himself. * \return GL_TRUE on success, or GL_FALSE on failure. * * \sa _mesa_create_visual() above for the parameter description. */ GLboolean -_mesa_initialize_visual( GLvisual *vis, +_mesa_initialize_visual( struct gl_config *vis, GLboolean dbFlag, GLboolean stereoFlag, GLint redBits, @@ -296,7 +296,6 @@ _mesa_initialize_visual( GLvisual *vis, vis->numAuxBuffers = 0; vis->level = 0; - vis->pixmapMode = 0; vis->sampleBuffers = numSamples > 0 ? 1 : 0; vis->samples = numSamples; @@ -312,7 +311,7 @@ _mesa_initialize_visual( GLvisual *vis, * Frees the visual structure. */ void -_mesa_destroy_visual( GLvisual *vis ) +_mesa_destroy_visual( struct gl_config *vis ) { free(vis); } @@ -378,7 +377,7 @@ _glthread_DECLARE_STATIC_MUTEX(OneTimeLock); * \sa _math_init(). */ static void -one_time_init( GLcontext *ctx ) +one_time_init( struct gl_context *ctx ) { static GLboolean alreadyCalled = GL_FALSE; (void) ctx; @@ -445,7 +444,7 @@ one_time_init( GLcontext *ctx ) * Initialize fields of gl_current_attrib (aka ctx->Current.*) */ static void -_mesa_init_current(GLcontext *ctx) +_mesa_init_current(struct gl_context *ctx) { GLuint i; @@ -527,7 +526,7 @@ init_program_limits(GLenum type, struct gl_program_constants *prog) * some of these values (such as number of texture units). */ static void -_mesa_init_constants(GLcontext *ctx) +_mesa_init_constants(struct gl_context *ctx) { assert(ctx); @@ -593,11 +592,7 @@ _mesa_init_constants(GLcontext *ctx) /* Shading language version */ if (ctx->API == API_OPENGL) { -#if FEATURE_ARB_shading_language_120 ctx->Const.GLSLVersion = 120; -#else - ctx->Const.GLSLVersion = 110; -#endif } else if (ctx->API == API_OPENGLES2) { ctx->Const.GLSLVersion = 100; @@ -633,7 +628,7 @@ _mesa_init_constants(GLcontext *ctx) * Only called the first time a context is bound. */ static void -check_context_limits(GLcontext *ctx) +check_context_limits(struct gl_context *ctx) { /* check that we don't exceed the size of various bitfields */ assert(VERT_RESULT_MAX <= @@ -708,7 +703,7 @@ check_context_limits(GLcontext *ctx) * functions for the more complex data structures. */ static GLboolean -init_attrib_groups(GLcontext *ctx) +init_attrib_groups(struct gl_context *ctx) { assert(ctx); @@ -776,7 +771,7 @@ init_attrib_groups(GLcontext *ctx) * state. */ static GLboolean -update_default_objects(GLcontext *ctx) +update_default_objects(struct gl_context *ctx) { assert(ctx); @@ -828,7 +823,7 @@ _mesa_alloc_dispatch_table(int size) /** - * Initialize a GLcontext struct (rendering context). + * Initialize a struct gl_context struct (rendering context). * * This includes allocating all the other structs and arrays which hang off of * the context by pointers. @@ -855,10 +850,10 @@ _mesa_alloc_dispatch_table(int size) * \param driverContext pointer to driver-specific context data */ GLboolean -_mesa_initialize_context_for_api(GLcontext *ctx, +_mesa_initialize_context_for_api(struct gl_context *ctx, gl_api api, - const GLvisual *visual, - GLcontext *share_list, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext) { @@ -950,11 +945,6 @@ _mesa_initialize_context_for_api(GLcontext *ctx, switch (ctx->API) { case API_OPENGL: - /* Neutral tnl module stuff */ - _mesa_init_exec_vtxfmt( ctx ); - ctx->TnlModule.Current = NULL; - ctx->TnlModule.SwapCount = 0; - #if FEATURE_dlist ctx->Save = _mesa_create_save_table(); if (!ctx->Save) { @@ -994,9 +984,9 @@ _mesa_initialize_context_for_api(GLcontext *ctx, } GLboolean -_mesa_initialize_context(GLcontext *ctx, - const GLvisual *visual, - GLcontext *share_list, +_mesa_initialize_context(struct gl_context *ctx, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext) { @@ -1009,33 +999,33 @@ _mesa_initialize_context(GLcontext *ctx, } /** - * Allocate and initialize a GLcontext structure. + * Allocate and initialize a struct gl_context structure. * Note that the driver needs to pass in its dd_function_table here since * we need to at least call driverFunctions->NewTextureObject to initialize * the rendering context. * * \param api the GL API type to create the context for - * \param visual a GLvisual pointer (we copy the struct contents) + * \param visual a struct gl_config pointer (we copy the struct contents) * \param share_list another context to share display lists with or NULL * \param driverFunctions points to the dd_function_table into which the * driver has plugged in all its special functions. * \param driverContext points to the device driver's private context state * - * \return pointer to a new __GLcontextRec or NULL if error. + * \return pointer to a new __struct gl_contextRec or NULL if error. */ -GLcontext * +struct gl_context * _mesa_create_context_for_api(gl_api api, - const GLvisual *visual, - GLcontext *share_list, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext) { - GLcontext *ctx; + struct gl_context *ctx; ASSERT(visual); /*ASSERT(driverContext);*/ - ctx = (GLcontext *) calloc(1, sizeof(GLcontext)); + ctx = (struct gl_context *) calloc(1, sizeof(struct gl_context)); if (!ctx) return NULL; @@ -1049,9 +1039,9 @@ _mesa_create_context_for_api(gl_api api, } } -GLcontext * -_mesa_create_context(const GLvisual *visual, - GLcontext *share_list, +struct gl_context * +_mesa_create_context(const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext) { @@ -1064,12 +1054,12 @@ _mesa_create_context(const GLvisual *visual, /** * Free the data associated with the given context. * - * But doesn't free the GLcontext struct itself. + * But doesn't free the struct gl_context struct itself. * * \sa _mesa_initialize_context() and init_attrib_groups(). */ void -_mesa_free_context_data( GLcontext *ctx ) +_mesa_free_context_data( struct gl_context *ctx ) { if (!_mesa_get_current_context()){ /* No current context, but we may need one in order to delete @@ -1143,14 +1133,14 @@ _mesa_free_context_data( GLcontext *ctx ) /** - * Destroy a GLcontext structure. + * Destroy a struct gl_context structure. * * \param ctx GL context. * - * Calls _mesa_free_context_data() and frees the GLcontext structure itself. + * Calls _mesa_free_context_data() and frees the struct gl_context structure itself. */ void -_mesa_destroy_context( GLcontext *ctx ) +_mesa_destroy_context( struct gl_context *ctx ) { if (ctx) { _mesa_free_context_data(ctx); @@ -1173,7 +1163,7 @@ _mesa_destroy_context( GLcontext *ctx ) * structures. */ void -_mesa_copy_context( const GLcontext *src, GLcontext *dst, GLuint mask ) +_mesa_copy_context( const struct gl_context *src, struct gl_context *dst, GLuint mask ) { if (mask & GL_ACCUM_BUFFER_BIT) { /* OK to memcpy */ @@ -1292,10 +1282,10 @@ _mesa_copy_context( const GLcontext *src, GLcontext *dst, GLuint mask ) * \return GL_TRUE if compatible, GL_FALSE otherwise. */ static GLboolean -check_compatible(const GLcontext *ctx, const GLframebuffer *buffer) +check_compatible(const struct gl_context *ctx, const struct gl_framebuffer *buffer) { - const GLvisual *ctxvis = &ctx->Visual; - const GLvisual *bufvis = &buffer->Visual; + const struct gl_config *ctxvis = &ctx->Visual; + const struct gl_config *bufvis = &buffer->Visual; if (ctxvis == bufvis) return GL_TRUE; @@ -1341,7 +1331,7 @@ check_compatible(const GLcontext *ctx, const GLframebuffer *buffer) * Really, the device driver should totally take care of this. */ static void -initialize_framebuffer_size(GLcontext *ctx, GLframebuffer *fb) +initialize_framebuffer_size(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint width, height; if (ctx->Driver.GetBufferSize) { @@ -1358,7 +1348,7 @@ initialize_framebuffer_size(GLcontext *ctx, GLframebuffer *fb) * Initialize the size if the given width and height are non-zero. */ void -_mesa_check_init_viewport(GLcontext *ctx, GLuint width, GLuint height) +_mesa_check_init_viewport(struct gl_context *ctx, GLuint width, GLuint height) { if (!ctx->ViewportInitialized && width > 0 && height > 0) { /* Note: set flag here, before calling _mesa_set_viewport(), to prevent @@ -1386,8 +1376,8 @@ _mesa_check_init_viewport(GLcontext *ctx, GLuint width, GLuint height) * \param readBuffer the reading framebuffer */ GLboolean -_mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer, - GLframebuffer *readBuffer ) +_mesa_make_current( struct gl_context *newCtx, struct gl_framebuffer *drawBuffer, + struct gl_framebuffer *readBuffer ) { if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(newCtx, "_mesa_make_current()\n"); @@ -1525,7 +1515,7 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer, * be deleted if nobody else is sharing them. */ GLboolean -_mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare) +_mesa_share_state(struct gl_context *ctx, struct gl_context *ctxToShare) { if (ctx && ctxToShare && ctx->Shared && ctxToShare->Shared) { struct gl_shared_state *oldSharedState = ctx->Shared; @@ -1556,10 +1546,10 @@ _mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare) * context. If you need speed, see the #GET_CURRENT_CONTEXT macro in * context.h. */ -GLcontext * +struct gl_context * _mesa_get_current_context( void ) { - return (GLcontext *) _glapi_get_context(); + return (struct gl_context *) _glapi_get_context(); } @@ -1573,10 +1563,10 @@ _mesa_get_current_context( void ) * * \return pointer to dispatch_table. * - * Simply returns __GLcontextRec::CurrentDispatch. + * Simply returns __struct gl_contextRec::CurrentDispatch. */ struct _glapi_table * -_mesa_get_dispatch(GLcontext *ctx) +_mesa_get_dispatch(struct gl_context *ctx) { return ctx->CurrentDispatch; } @@ -1602,7 +1592,7 @@ _mesa_get_dispatch(GLcontext *ctx) * This is called via _mesa_error(). */ void -_mesa_record_error(GLcontext *ctx, GLenum error) +_mesa_record_error(struct gl_context *ctx, GLenum error) { if (!ctx) return; @@ -1622,7 +1612,7 @@ _mesa_record_error(GLcontext *ctx, GLenum error) * Flush commands and wait for completion. */ void -_mesa_finish(GLcontext *ctx) +_mesa_finish(struct gl_context *ctx) { FLUSH_CURRENT( ctx, 0 ); if (ctx->Driver.Finish) { @@ -1635,7 +1625,7 @@ _mesa_finish(GLcontext *ctx) * Flush commands. */ void -_mesa_flush(GLcontext *ctx) +_mesa_flush(struct gl_context *ctx) { FLUSH_CURRENT( ctx, 0 ); if (ctx->Driver.Flush) { @@ -1681,7 +1671,7 @@ _mesa_Flush(void) * Otherwise we default to MUL/MAD. */ void -_mesa_set_mvp_with_dp4( GLcontext *ctx, +_mesa_set_mvp_with_dp4( struct gl_context *ctx, GLboolean flag ) { ctx->mvp_with_dp4 = flag; @@ -1697,15 +1687,20 @@ _mesa_set_mvp_with_dp4( GLcontext *ctx, * \return GL_TRUE if OK to render, GL_FALSE if not */ GLboolean -_mesa_valid_to_render(GLcontext *ctx, const char *where) +_mesa_valid_to_render(struct gl_context *ctx, const char *where) { + bool vert_from_glsl_shader = false; + bool geom_from_glsl_shader = false; + bool frag_from_glsl_shader = false; + /* This depends on having up to date derived state (shaders) */ if (ctx->NewState) _mesa_update_state(ctx); - if (ctx->Shader.CurrentProgram) { - /* using shaders */ - if (!ctx->Shader.CurrentProgram->LinkStatus) { + if (ctx->Shader.CurrentVertexProgram) { + vert_from_glsl_shader = true; + + if (!ctx->Shader.CurrentVertexProgram->LinkStatus) { _mesa_error(ctx, GL_INVALID_OPERATION, "%s(shader not linked)", where); return GL_FALSE; @@ -1713,23 +1708,86 @@ _mesa_valid_to_render(GLcontext *ctx, const char *where) #if 0 /* not normally enabled */ { char errMsg[100]; - if (!_mesa_validate_shader_program(ctx, ctx->Shader.CurrentProgram, + if (!_mesa_validate_shader_program(ctx, + ctx->Shader.CurrentVertexProgram, errMsg)) { _mesa_warning(ctx, "Shader program %u is invalid: %s", - ctx->Shader.CurrentProgram->Name, errMsg); + ctx->Shader.CurrentVertexProgram->Name, errMsg); } } #endif } - else { - if (ctx->VertexProgram.Enabled && !ctx->VertexProgram._Enabled) { + + if (ctx->Shader.CurrentGeometryProgram) { + geom_from_glsl_shader = true; + + if (!ctx->Shader.CurrentGeometryProgram->LinkStatus) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "%s(shader not linked)", where); + return GL_FALSE; + } +#if 0 /* not normally enabled */ + { + char errMsg[100]; + if (!_mesa_validate_shader_program(ctx, + ctx->Shader.CurrentGeometryProgram, + errMsg)) { + _mesa_warning(ctx, "Shader program %u is invalid: %s", + ctx->Shader.CurrentGeometryProgram->Name, errMsg); + } + } +#endif + } + + if (ctx->Shader.CurrentFragmentProgram) { + frag_from_glsl_shader = true; + + if (!ctx->Shader.CurrentFragmentProgram->LinkStatus) { _mesa_error(ctx, GL_INVALID_OPERATION, - "%s(vertex program not valid)", where); + "%s(shader not linked)", where); return GL_FALSE; } +#if 0 /* not normally enabled */ + { + char errMsg[100]; + if (!_mesa_validate_shader_program(ctx, + ctx->Shader.CurrentFragmentProgram, + errMsg)) { + _mesa_warning(ctx, "Shader program %u is invalid: %s", + ctx->Shader.CurrentFragmentProgram->Name, errMsg); + } + } +#endif + } + + /* Any shader stages that are not supplied by the GLSL shader and have + * assembly shaders enabled must now be validated. + */ + if (!vert_from_glsl_shader + && ctx->VertexProgram.Enabled && !ctx->VertexProgram._Enabled) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "%s(vertex program not valid)", where); + return GL_FALSE; + } + + /* FINISHME: If GL_NV_geometry_program4 is ever supported, the current + * FINISHME: geometry program should validated here. + */ + (void) geom_from_glsl_shader; + + if (!frag_from_glsl_shader) { if (ctx->FragmentProgram.Enabled && !ctx->FragmentProgram._Enabled) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "%s(fragment program not valid)", where); + return GL_FALSE; + } + + /* If drawing to integer-valued color buffers, there must be an + * active fragment shader (GL_EXT_texture_integer). + */ + if (ctx->DrawBuffer && ctx->DrawBuffer->_IntegerColor) { _mesa_error(ctx, GL_INVALID_OPERATION, - "%s(fragment program not valid)", where); + "%s(integer format but no fragment shader)", where); return GL_FALSE; } } @@ -1742,26 +1800,51 @@ _mesa_valid_to_render(GLcontext *ctx, const char *where) #ifdef DEBUG if (ctx->Shader.Flags & GLSL_LOG) { - struct gl_shader_program *shProg = ctx->Shader.CurrentProgram; - if (shProg) { - if (!shProg->_Used) { - /* This is the first time this shader is being used. - * Append shader's constants/uniforms to log file. - */ - GLuint i; - for (i = 0; i < shProg->NumShaders; i++) { - struct gl_shader *sh = shProg->Shaders[i]; - if (sh->Type == GL_VERTEX_SHADER) { - _mesa_append_uniforms_to_file(sh, - &shProg->VertexProgram->Base); - } - else if (sh->Type == GL_FRAGMENT_SHADER) { - _mesa_append_uniforms_to_file(sh, - &shProg->FragmentProgram->Base); - } - } - shProg->_Used = GL_TRUE; - } + struct gl_shader_program *shProg[MESA_SHADER_TYPES]; + unsigned i; + + shProg[MESA_SHADER_VERTEX] = ctx->Shader.CurrentVertexProgram; + shProg[MESA_SHADER_GEOMETRY] = ctx->Shader.CurrentGeometryProgram; + shProg[MESA_SHADER_FRAGMENT] = ctx->Shader.CurrentFragmentProgram; + + for (i = 0; i < MESA_SHADER_TYPES; i++) { + struct gl_shader *sh; + + if (shProg[i] == NULL || shProg[i]->_Used + || shProg[i]->_LinkedShaders[i] == NULL) + continue; + + /* This is the first time this shader is being used. + * Append shader's constants/uniforms to log file. + * + * The logic is a little odd here. We only want to log data for each + * shader target that will actually be used, and we only want to log + * it once. It's possible to have a program bound to the vertex + * shader target that also supplied a fragment shader. If that + * program isn't also bound to the fragment shader target we don't + * want to log its fragment data. + */ + sh = shProg[i]->_LinkedShaders[i]; + switch (sh->Type) { + case GL_VERTEX_SHADER: + _mesa_append_uniforms_to_file(sh, &shProg[i]->VertexProgram->Base); + break; + + case GL_GEOMETRY_SHADER_ARB: + _mesa_append_uniforms_to_file(sh, + &shProg[i]->GeometryProgram->Base); + break; + + case GL_FRAGMENT_SHADER: + _mesa_append_uniforms_to_file(sh, + &shProg[i]->FragmentProgram->Base); + break; + } + } + + for (i = 0; i < MESA_SHADER_TYPES; i++) { + if (shProg[i] != NULL) + shProg[i]->_Used = GL_TRUE; } } #endif diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h index c61da62826f..42d98a33a8d 100644 --- a/src/mesa/main/context.h +++ b/src/mesa/main/context.h @@ -29,16 +29,16 @@ * * There are three large Mesa data types/classes which are meant to be * used by device drivers: - * - GLcontext: this contains the Mesa rendering state - * - GLvisual: this describes the color buffer (RGB vs. ci), whether or not + * - struct gl_context: this contains the Mesa rendering state + * - struct gl_config: this describes the color buffer (RGB vs. ci), whether or not * there's a depth buffer, stencil buffer, etc. - * - GLframebuffer: contains pointers to the depth buffer, stencil buffer, + * - struct gl_framebuffer: contains pointers to the depth buffer, stencil buffer, * accum buffer and alpha buffers. * * These types should be encapsulated by corresponding device driver * data types. See xmesa.h and xmesaP.h for an example. * - * In OOP terms, GLcontext, GLvisual, and GLframebuffer are base classes + * In OOP terms, struct gl_context, struct gl_config, and struct gl_framebuffer are base classes * which the device driver must derive from. * * The following functions create and destroy these data types. @@ -59,7 +59,7 @@ struct _glapi_table; /** \name Visual-related functions */ /*@{*/ -extern GLvisual * +extern struct gl_config * _mesa_create_visual( GLboolean dbFlag, GLboolean stereoFlag, GLint redBits, @@ -75,7 +75,7 @@ _mesa_create_visual( GLboolean dbFlag, GLint numSamples ); extern GLboolean -_mesa_initialize_visual( GLvisual *v, +_mesa_initialize_visual( struct gl_config *v, GLboolean dbFlag, GLboolean stereoFlag, GLint redBits, @@ -91,7 +91,7 @@ _mesa_initialize_visual( GLvisual *v, GLint numSamples ); extern void -_mesa_destroy_visual( GLvisual *vis ); +_mesa_destroy_visual( struct gl_config *vis ); /*@}*/ @@ -99,78 +99,78 @@ _mesa_destroy_visual( GLvisual *vis ); /** \name Context-related functions */ /*@{*/ -extern GLcontext * -_mesa_create_context( const GLvisual *visual, - GLcontext *share_list, +extern struct gl_context * +_mesa_create_context( const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext ); extern GLboolean -_mesa_initialize_context( GLcontext *ctx, - const GLvisual *visual, - GLcontext *share_list, +_mesa_initialize_context( struct gl_context *ctx, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext ); -extern GLcontext * +extern struct gl_context * _mesa_create_context_for_api(gl_api api, - const GLvisual *visual, - GLcontext *share_list, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext); extern GLboolean -_mesa_initialize_context_for_api(GLcontext *ctx, +_mesa_initialize_context_for_api(struct gl_context *ctx, gl_api api, - const GLvisual *visual, - GLcontext *share_list, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext); extern void -_mesa_free_context_data( GLcontext *ctx ); +_mesa_free_context_data( struct gl_context *ctx ); extern void -_mesa_destroy_context( GLcontext *ctx ); +_mesa_destroy_context( struct gl_context *ctx ); extern void -_mesa_copy_context(const GLcontext *src, GLcontext *dst, GLuint mask); +_mesa_copy_context(const struct gl_context *src, struct gl_context *dst, GLuint mask); extern void -_mesa_check_init_viewport(GLcontext *ctx, GLuint width, GLuint height); +_mesa_check_init_viewport(struct gl_context *ctx, GLuint width, GLuint height); extern GLboolean -_mesa_make_current( GLcontext *ctx, GLframebuffer *drawBuffer, - GLframebuffer *readBuffer ); +_mesa_make_current( struct gl_context *ctx, struct gl_framebuffer *drawBuffer, + struct gl_framebuffer *readBuffer ); extern GLboolean -_mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare); +_mesa_share_state(struct gl_context *ctx, struct gl_context *ctxToShare); -extern GLcontext * +extern struct gl_context * _mesa_get_current_context(void); /*@}*/ extern void -_mesa_init_get_hash(GLcontext *ctx); +_mesa_init_get_hash(struct gl_context *ctx); extern void -_mesa_notifySwapBuffers(__GLcontext *gc); +_mesa_notifySwapBuffers(struct gl_context *gc); extern struct _glapi_table * -_mesa_get_dispatch(GLcontext *ctx); +_mesa_get_dispatch(struct gl_context *ctx); void -_mesa_set_mvp_with_dp4( GLcontext *ctx, +_mesa_set_mvp_with_dp4( struct gl_context *ctx, GLboolean flag ); extern GLboolean -_mesa_valid_to_render(GLcontext *ctx, const char *where); +_mesa_valid_to_render(struct gl_context *ctx, const char *where); @@ -178,14 +178,14 @@ _mesa_valid_to_render(GLcontext *ctx, const char *where); /*@{*/ extern void -_mesa_record_error( GLcontext *ctx, GLenum error ); +_mesa_record_error( struct gl_context *ctx, GLenum error ); extern void -_mesa_finish(GLcontext *ctx); +_mesa_finish(struct gl_context *ctx); extern void -_mesa_flush(GLcontext *ctx); +_mesa_flush(struct gl_context *ctx); extern void GLAPIENTRY @@ -211,7 +211,7 @@ _mesa_Flush( void ); * * Checks if dd_function_table::NeedFlush is marked to flush stored vertices, * and calls dd_function_table::FlushVertices if so. Marks - * __GLcontextRec::NewState with \p newstate. + * __struct gl_contextRec::NewState with \p newstate. */ #define FLUSH_VERTICES(ctx, newstate) \ do { \ @@ -230,7 +230,7 @@ do { \ * * Checks if dd_function_table::NeedFlush is marked to flush current state, * and calls dd_function_table::FlushVertices if so. Marks - * __GLcontextRec::NewState with \p newstate. + * __struct gl_contextRec::NewState with \p newstate. */ #define FLUSH_CURRENT(ctx, newstate) \ do { \ diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 46d26cf901d..5e006e0ad30 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -70,7 +70,7 @@ struct dd_function_table { * Only the GL_RENDERER query must be implemented. Otherwise, NULL can be * returned. */ - const GLubyte * (*GetString)( GLcontext *ctx, GLenum name ); + const GLubyte * (*GetString)( struct gl_context *ctx, GLenum name ); /** * Notify the driver after Mesa has made some internal state changes. @@ -78,7 +78,7 @@ struct dd_function_table { * This is in addition to any state change callbacks Mesa may already have * made. */ - void (*UpdateState)( GLcontext *ctx, GLbitfield new_state ); + void (*UpdateState)( struct gl_context *ctx, GLbitfield new_state ); /** * Get the width and height of the named buffer/window. @@ -86,49 +86,49 @@ struct dd_function_table { * Mesa uses this to determine when the driver's window size has changed. * XXX OBSOLETE: this function will be removed in the future. */ - void (*GetBufferSize)( GLframebuffer *buffer, + void (*GetBufferSize)( struct gl_framebuffer *buffer, GLuint *width, GLuint *height ); /** * Resize the given framebuffer to the given size. * XXX OBSOLETE: this function will be removed in the future. */ - void (*ResizeBuffers)( GLcontext *ctx, GLframebuffer *fb, + void (*ResizeBuffers)( struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height); /** * Called whenever an error is generated. - * __GLcontextRec::ErrorValue contains the error value. + * __struct gl_contextRec::ErrorValue contains the error value. */ - void (*Error)( GLcontext *ctx ); + void (*Error)( struct gl_context *ctx ); /** * This is called whenever glFinish() is called. */ - void (*Finish)( GLcontext *ctx ); + void (*Finish)( struct gl_context *ctx ); /** * This is called whenever glFlush() is called. */ - void (*Flush)( GLcontext *ctx ); + void (*Flush)( struct gl_context *ctx ); /** * Clear the color/depth/stencil/accum buffer(s). * \param buffers a bitmask of BUFFER_BIT_* flags indicating which * renderbuffers need to be cleared. */ - void (*Clear)( GLcontext *ctx, GLbitfield buffers ); + void (*Clear)( struct gl_context *ctx, GLbitfield buffers ); /** * Execute glAccum command. */ - void (*Accum)( GLcontext *ctx, GLenum op, GLfloat value ); + void (*Accum)( struct gl_context *ctx, GLenum op, GLfloat value ); /** * Execute glRasterPos, updating the ctx->Current.Raster fields */ - void (*RasterPos)( GLcontext *ctx, const GLfloat v[4] ); + void (*RasterPos)( struct gl_context *ctx, const GLfloat v[4] ); /** * \name Image-related functions @@ -139,7 +139,7 @@ struct dd_function_table { * Called by glDrawPixels(). * \p unpack describes how to unpack the source image data. */ - void (*DrawPixels)( GLcontext *ctx, + void (*DrawPixels)( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -148,7 +148,7 @@ struct dd_function_table { /** * Called by glReadPixels(). */ - void (*ReadPixels)( GLcontext *ctx, + void (*ReadPixels)( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -157,14 +157,14 @@ struct dd_function_table { /** * Called by glCopyPixels(). */ - void (*CopyPixels)( GLcontext *ctx, GLint srcx, GLint srcy, + void (*CopyPixels)( struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type ); /** * Called by glBitmap(). */ - void (*Bitmap)( GLcontext *ctx, + void (*Bitmap)( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ); @@ -183,7 +183,7 @@ struct dd_function_table { * functions. The driver should examine \p internalFormat and return a * gl_format value. */ - GLuint (*ChooseTextureFormat)( GLcontext *ctx, GLint internalFormat, + GLuint (*ChooseTextureFormat)( struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType ); /** @@ -203,7 +203,7 @@ struct dd_function_table { * * Drivers should call a fallback routine from texstore.c if needed. */ - void (*TexImage1D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -216,7 +216,7 @@ struct dd_function_table { * * \sa dd_function_table::TexImage1D. */ - void (*TexImage2D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -229,7 +229,7 @@ struct dd_function_table { * * \sa dd_function_table::TexImage1D. */ - void (*TexImage3D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexImage3D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -258,7 +258,7 @@ struct dd_function_table { * * The driver should use a fallback routine from texstore.c if needed. */ - void (*TexSubImage1D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexSubImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, @@ -271,7 +271,7 @@ struct dd_function_table { * * \sa dd_function_table::TexSubImage1D. */ - void (*TexSubImage2D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexSubImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -285,7 +285,7 @@ struct dd_function_table { * * \sa dd_function_table::TexSubImage1D. */ - void (*TexSubImage3D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexSubImage3D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLint depth, GLenum format, GLenum type, @@ -297,7 +297,7 @@ struct dd_function_table { /** * Called by glGetTexImage(). */ - void (*GetTexImage)( GLcontext *ctx, GLenum target, GLint level, + void (*GetTexImage)( struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); @@ -307,7 +307,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexImage1D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border ); @@ -316,7 +316,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexImage2D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ); @@ -325,7 +325,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexSubImage1D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexSubImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); /** @@ -333,7 +333,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexSubImage2D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexSubImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); @@ -342,7 +342,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexSubImage3D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexSubImage3D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); @@ -350,7 +350,7 @@ struct dd_function_table { /** * Called by glGenerateMipmap() or when GL_GENERATE_MIPMAP_SGIS is enabled. */ - void (*GenerateMipmap)(GLcontext *ctx, GLenum target, + void (*GenerateMipmap)(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj); /** @@ -359,7 +359,7 @@ struct dd_function_table { * * \return GL_TRUE if the proxy test passes, or GL_FALSE if the test fails. */ - GLboolean (*TestProxyTexImage)(GLcontext *ctx, GLenum target, + GLboolean (*TestProxyTexImage)(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, @@ -387,7 +387,7 @@ struct dd_function_table { * \a retainInternalCopy is returned by this function and indicates whether * core Mesa should keep an internal copy of the texture image. */ - void (*CompressedTexImage1D)( GLcontext *ctx, GLenum target, + void (*CompressedTexImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data, @@ -398,7 +398,7 @@ struct dd_function_table { * * \sa dd_function_table::CompressedTexImage1D. */ - void (*CompressedTexImage2D)( GLcontext *ctx, GLenum target, + void (*CompressedTexImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -409,7 +409,7 @@ struct dd_function_table { * * \sa dd_function_table::CompressedTexImage3D. */ - void (*CompressedTexImage3D)( GLcontext *ctx, GLenum target, + void (*CompressedTexImage3D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, @@ -434,7 +434,7 @@ struct dd_function_table { * \param texImage is the target texture image. It will have the texture \p * width, \p height, \p depth, \p border and \p internalFormat information. */ - void (*CompressedTexSubImage1D)(GLcontext *ctx, GLenum target, GLint level, + void (*CompressedTexSubImage1D)(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data, @@ -445,7 +445,7 @@ struct dd_function_table { * * \sa dd_function_table::CompressedTexImage3D. */ - void (*CompressedTexSubImage2D)(GLcontext *ctx, GLenum target, GLint level, + void (*CompressedTexSubImage2D)(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLint height, GLenum format, @@ -457,7 +457,7 @@ struct dd_function_table { * * \sa dd_function_table::CompressedTexImage3D. */ - void (*CompressedTexSubImage3D)(GLcontext *ctx, GLenum target, GLint level, + void (*CompressedTexSubImage3D)(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLint height, GLint depth, GLenum format, @@ -469,7 +469,7 @@ struct dd_function_table { /** * Called by glGetCompressedTexImage. */ - void (*GetCompressedTexImage)(GLcontext *ctx, GLenum target, GLint level, + void (*GetCompressedTexImage)(struct gl_context *ctx, GLenum target, GLint level, GLvoid *img, struct gl_texture_object *texObj, struct gl_texture_image *texImage); @@ -484,7 +484,7 @@ struct dd_function_table { /** * Called by glBindTexture(). */ - void (*BindTexture)( GLcontext *ctx, GLenum target, + void (*BindTexture)( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj ); /** @@ -492,7 +492,7 @@ struct dd_function_table { * A new gl_texture_object should be returned. The driver should * attach to it any device-specific info it needs. */ - struct gl_texture_object * (*NewTextureObject)( GLcontext *ctx, GLuint name, + struct gl_texture_object * (*NewTextureObject)( struct gl_context *ctx, GLuint name, GLenum target ); /** * Called when a texture object is about to be deallocated. @@ -500,22 +500,22 @@ struct dd_function_table { * Driver should delete the gl_texture_object object and anything * hanging off of it. */ - void (*DeleteTexture)( GLcontext *ctx, struct gl_texture_object *tObj ); + void (*DeleteTexture)( struct gl_context *ctx, struct gl_texture_object *tObj ); /** * Called to allocate a new texture image object. */ - struct gl_texture_image * (*NewTextureImage)( GLcontext *ctx ); + struct gl_texture_image * (*NewTextureImage)( struct gl_context *ctx ); /** * Called to free tImage->Data. */ - void (*FreeTexImageData)( GLcontext *ctx, struct gl_texture_image *tImage ); + void (*FreeTexImageData)( struct gl_context *ctx, struct gl_texture_image *tImage ); /** Map texture image data into user space */ - void (*MapTexture)( GLcontext *ctx, struct gl_texture_object *tObj ); + void (*MapTexture)( struct gl_context *ctx, struct gl_texture_object *tObj ); /** Unmap texture images from user space */ - void (*UnmapTexture)( GLcontext *ctx, struct gl_texture_object *tObj ); + void (*UnmapTexture)( struct gl_context *ctx, struct gl_texture_object *tObj ); /** * Note: no context argument. This function doesn't initially look @@ -533,7 +533,7 @@ struct dd_function_table { /** * Called by glAreTextureResident(). */ - GLboolean (*IsTextureResident)( GLcontext *ctx, + GLboolean (*IsTextureResident)( struct gl_context *ctx, struct gl_texture_object *t ); /** @@ -542,7 +542,7 @@ struct dd_function_table { * If \p tObj is NULL then the shared texture palette * gl_texture_object::Palette is to be updated. */ - void (*UpdateTexturePalette)( GLcontext *ctx, + void (*UpdateTexturePalette)( struct gl_context *ctx, struct gl_texture_object *tObj ); /*@}*/ @@ -551,11 +551,11 @@ struct dd_function_table { * \name Imaging functionality */ /*@{*/ - void (*CopyColorTable)( GLcontext *ctx, + void (*CopyColorTable)( struct gl_context *ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width ); - void (*CopyColorSubTable)( GLcontext *ctx, + void (*CopyColorSubTable)( struct gl_context *ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width ); /*@}*/ @@ -566,21 +566,21 @@ struct dd_function_table { */ /*@{*/ /** Bind a vertex/fragment program */ - void (*BindProgram)(GLcontext *ctx, GLenum target, struct gl_program *prog); + void (*BindProgram)(struct gl_context *ctx, GLenum target, struct gl_program *prog); /** Allocate a new program */ - struct gl_program * (*NewProgram)(GLcontext *ctx, GLenum target, GLuint id); + struct gl_program * (*NewProgram)(struct gl_context *ctx, GLenum target, GLuint id); /** Delete a program */ - void (*DeleteProgram)(GLcontext *ctx, struct gl_program *prog); + void (*DeleteProgram)(struct gl_context *ctx, struct gl_program *prog); /** * Notify driver that a program string (and GPU code) has been specified * or modified. Return GL_TRUE or GL_FALSE to indicate if the program is * supported by the driver. */ - GLboolean (*ProgramStringNotify)(GLcontext *ctx, GLenum target, + GLboolean (*ProgramStringNotify)(struct gl_context *ctx, GLenum target, struct gl_program *prog); /** Query if program can be loaded onto hardware */ - GLboolean (*IsProgramNative)(GLcontext *ctx, GLenum target, + GLboolean (*IsProgramNative)(struct gl_context *ctx, GLenum target, struct gl_program *prog); /*@}*/ @@ -597,14 +597,14 @@ struct dd_function_table { * have CompileShader() called, so if lowering passes are done they * need to also be performed in LinkShader(). */ - GLboolean (*CompileShader)(GLcontext *ctx, struct gl_shader *shader); + GLboolean (*CompileShader)(struct gl_context *ctx, struct gl_shader *shader); /** * Called when a shader program is linked. * * This gives drivers an opportunity to clone the IR and make their * own transformations on it for the purposes of code generation. */ - GLboolean (*LinkShader)(GLcontext *ctx, struct gl_shader_program *shader); + GLboolean (*LinkShader)(struct gl_context *ctx, struct gl_shader_program *shader); /*@}*/ /** @@ -618,102 +618,102 @@ struct dd_function_table { */ /*@{*/ /** Specify the alpha test function */ - void (*AlphaFunc)(GLcontext *ctx, GLenum func, GLfloat ref); + void (*AlphaFunc)(struct gl_context *ctx, GLenum func, GLfloat ref); /** Set the blend color */ - void (*BlendColor)(GLcontext *ctx, const GLfloat color[4]); + void (*BlendColor)(struct gl_context *ctx, const GLfloat color[4]); /** Set the blend equation */ - void (*BlendEquationSeparate)(GLcontext *ctx, GLenum modeRGB, GLenum modeA); + void (*BlendEquationSeparate)(struct gl_context *ctx, GLenum modeRGB, GLenum modeA); /** Specify pixel arithmetic */ - void (*BlendFuncSeparate)(GLcontext *ctx, + void (*BlendFuncSeparate)(struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA); /** Specify clear values for the color buffers */ - void (*ClearColor)(GLcontext *ctx, const GLfloat color[4]); + void (*ClearColor)(struct gl_context *ctx, const GLfloat color[4]); /** Specify the clear value for the depth buffer */ - void (*ClearDepth)(GLcontext *ctx, GLclampd d); + void (*ClearDepth)(struct gl_context *ctx, GLclampd d); /** Specify the clear value for the stencil buffer */ - void (*ClearStencil)(GLcontext *ctx, GLint s); + void (*ClearStencil)(struct gl_context *ctx, GLint s); /** Specify a plane against which all geometry is clipped */ - void (*ClipPlane)(GLcontext *ctx, GLenum plane, const GLfloat *equation ); + void (*ClipPlane)(struct gl_context *ctx, GLenum plane, const GLfloat *equation ); /** Enable and disable writing of frame buffer color components */ - void (*ColorMask)(GLcontext *ctx, GLboolean rmask, GLboolean gmask, + void (*ColorMask)(struct gl_context *ctx, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask ); - void (*ColorMaskIndexed)(GLcontext *ctx, GLuint buf, GLboolean rmask, + void (*ColorMaskIndexed)(struct gl_context *ctx, GLuint buf, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask); /** Cause a material color to track the current color */ - void (*ColorMaterial)(GLcontext *ctx, GLenum face, GLenum mode); + void (*ColorMaterial)(struct gl_context *ctx, GLenum face, GLenum mode); /** Specify whether front- or back-facing facets can be culled */ - void (*CullFace)(GLcontext *ctx, GLenum mode); + void (*CullFace)(struct gl_context *ctx, GLenum mode); /** Define front- and back-facing polygons */ - void (*FrontFace)(GLcontext *ctx, GLenum mode); + void (*FrontFace)(struct gl_context *ctx, GLenum mode); /** Specify the value used for depth buffer comparisons */ - void (*DepthFunc)(GLcontext *ctx, GLenum func); + void (*DepthFunc)(struct gl_context *ctx, GLenum func); /** Enable or disable writing into the depth buffer */ - void (*DepthMask)(GLcontext *ctx, GLboolean flag); + void (*DepthMask)(struct gl_context *ctx, GLboolean flag); /** Specify mapping of depth values from NDC to window coordinates */ - void (*DepthRange)(GLcontext *ctx, GLclampd nearval, GLclampd farval); + void (*DepthRange)(struct gl_context *ctx, GLclampd nearval, GLclampd farval); /** Specify the current buffer for writing */ - void (*DrawBuffer)( GLcontext *ctx, GLenum buffer ); + void (*DrawBuffer)( struct gl_context *ctx, GLenum buffer ); /** Specify the buffers for writing for fragment programs*/ - void (*DrawBuffers)( GLcontext *ctx, GLsizei n, const GLenum *buffers ); + void (*DrawBuffers)( struct gl_context *ctx, GLsizei n, const GLenum *buffers ); /** Enable or disable server-side gl capabilities */ - void (*Enable)(GLcontext *ctx, GLenum cap, GLboolean state); + void (*Enable)(struct gl_context *ctx, GLenum cap, GLboolean state); /** Specify fog parameters */ - void (*Fogfv)(GLcontext *ctx, GLenum pname, const GLfloat *params); + void (*Fogfv)(struct gl_context *ctx, GLenum pname, const GLfloat *params); /** Specify implementation-specific hints */ - void (*Hint)(GLcontext *ctx, GLenum target, GLenum mode); + void (*Hint)(struct gl_context *ctx, GLenum target, GLenum mode); /** Set light source parameters. * Note: for GL_POSITION and GL_SPOT_DIRECTION, params will have already * been transformed to eye-space. */ - void (*Lightfv)(GLcontext *ctx, GLenum light, + void (*Lightfv)(struct gl_context *ctx, GLenum light, GLenum pname, const GLfloat *params ); /** Set the lighting model parameters */ - void (*LightModelfv)(GLcontext *ctx, GLenum pname, const GLfloat *params); + void (*LightModelfv)(struct gl_context *ctx, GLenum pname, const GLfloat *params); /** Specify the line stipple pattern */ - void (*LineStipple)(GLcontext *ctx, GLint factor, GLushort pattern ); + void (*LineStipple)(struct gl_context *ctx, GLint factor, GLushort pattern ); /** Specify the width of rasterized lines */ - void (*LineWidth)(GLcontext *ctx, GLfloat width); + void (*LineWidth)(struct gl_context *ctx, GLfloat width); /** Specify a logical pixel operation for color index rendering */ - void (*LogicOpcode)(GLcontext *ctx, GLenum opcode); - void (*PointParameterfv)(GLcontext *ctx, GLenum pname, + void (*LogicOpcode)(struct gl_context *ctx, GLenum opcode); + void (*PointParameterfv)(struct gl_context *ctx, GLenum pname, const GLfloat *params); /** Specify the diameter of rasterized points */ - void (*PointSize)(GLcontext *ctx, GLfloat size); + void (*PointSize)(struct gl_context *ctx, GLfloat size); /** Select a polygon rasterization mode */ - void (*PolygonMode)(GLcontext *ctx, GLenum face, GLenum mode); + void (*PolygonMode)(struct gl_context *ctx, GLenum face, GLenum mode); /** Set the scale and units used to calculate depth values */ - void (*PolygonOffset)(GLcontext *ctx, GLfloat factor, GLfloat units); + void (*PolygonOffset)(struct gl_context *ctx, GLfloat factor, GLfloat units); /** Set the polygon stippling pattern */ - void (*PolygonStipple)(GLcontext *ctx, const GLubyte *mask ); + void (*PolygonStipple)(struct gl_context *ctx, const GLubyte *mask ); /* Specifies the current buffer for reading */ - void (*ReadBuffer)( GLcontext *ctx, GLenum buffer ); + void (*ReadBuffer)( struct gl_context *ctx, GLenum buffer ); /** Set rasterization mode */ - void (*RenderMode)(GLcontext *ctx, GLenum mode ); + void (*RenderMode)(struct gl_context *ctx, GLenum mode ); /** Define the scissor box */ - void (*Scissor)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); + void (*Scissor)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h); /** Select flat or smooth shading */ - void (*ShadeModel)(GLcontext *ctx, GLenum mode); + void (*ShadeModel)(struct gl_context *ctx, GLenum mode); /** OpenGL 2.0 two-sided StencilFunc */ - void (*StencilFuncSeparate)(GLcontext *ctx, GLenum face, GLenum func, + void (*StencilFuncSeparate)(struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask); /** OpenGL 2.0 two-sided StencilMask */ - void (*StencilMaskSeparate)(GLcontext *ctx, GLenum face, GLuint mask); + void (*StencilMaskSeparate)(struct gl_context *ctx, GLenum face, GLuint mask); /** OpenGL 2.0 two-sided StencilOp */ - void (*StencilOpSeparate)(GLcontext *ctx, GLenum face, GLenum fail, + void (*StencilOpSeparate)(struct gl_context *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass); /** Control the generation of texture coordinates */ - void (*TexGen)(GLcontext *ctx, GLenum coord, GLenum pname, + void (*TexGen)(struct gl_context *ctx, GLenum coord, GLenum pname, const GLfloat *params); /** Set texture environment parameters */ - void (*TexEnv)(GLcontext *ctx, GLenum target, GLenum pname, + void (*TexEnv)(struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param); /** Set texture parameters */ - void (*TexParameter)(GLcontext *ctx, GLenum target, + void (*TexParameter)(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params); /** Set the viewport */ - void (*Viewport)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); + void (*Viewport)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h); /*@}*/ @@ -721,30 +721,30 @@ struct dd_function_table { * \name Vertex/pixel buffer object functions */ /*@{*/ - void (*BindBuffer)( GLcontext *ctx, GLenum target, + void (*BindBuffer)( struct gl_context *ctx, GLenum target, struct gl_buffer_object *obj ); - struct gl_buffer_object * (*NewBufferObject)( GLcontext *ctx, GLuint buffer, + struct gl_buffer_object * (*NewBufferObject)( struct gl_context *ctx, GLuint buffer, GLenum target ); - void (*DeleteBuffer)( GLcontext *ctx, struct gl_buffer_object *obj ); + void (*DeleteBuffer)( struct gl_context *ctx, struct gl_buffer_object *obj ); - GLboolean (*BufferData)( GLcontext *ctx, GLenum target, GLsizeiptrARB size, + GLboolean (*BufferData)( struct gl_context *ctx, GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage, struct gl_buffer_object *obj ); - void (*BufferSubData)( GLcontext *ctx, GLenum target, GLintptrARB offset, + void (*BufferSubData)( struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data, struct gl_buffer_object *obj ); - void (*GetBufferSubData)( GLcontext *ctx, GLenum target, + void (*GetBufferSubData)( struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data, struct gl_buffer_object *obj ); - void * (*MapBuffer)( GLcontext *ctx, GLenum target, GLenum access, + void * (*MapBuffer)( struct gl_context *ctx, GLenum target, GLenum access, struct gl_buffer_object *obj ); - void (*CopyBufferSubData)( GLcontext *ctx, + void (*CopyBufferSubData)( struct gl_context *ctx, struct gl_buffer_object *src, struct gl_buffer_object *dst, GLintptr readOffset, GLintptr writeOffset, @@ -752,15 +752,15 @@ struct dd_function_table { /* May return NULL if MESA_MAP_NOWAIT_BIT is set in access: */ - void * (*MapBufferRange)( GLcontext *ctx, GLenum target, GLintptr offset, + void * (*MapBufferRange)( struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, struct gl_buffer_object *obj); - void (*FlushMappedBufferRange)(GLcontext *ctx, GLenum target, + void (*FlushMappedBufferRange)(struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, struct gl_buffer_object *obj); - GLboolean (*UnmapBuffer)( GLcontext *ctx, GLenum target, + GLboolean (*UnmapBuffer)( struct gl_context *ctx, GLenum target, struct gl_buffer_object *obj ); /*@}*/ @@ -769,38 +769,38 @@ struct dd_function_table { */ /*@{*/ /* variations on ObjectPurgeable */ - GLenum (*BufferObjectPurgeable)( GLcontext *ctx, struct gl_buffer_object *obj, GLenum option ); - GLenum (*RenderObjectPurgeable)( GLcontext *ctx, struct gl_renderbuffer *obj, GLenum option ); - GLenum (*TextureObjectPurgeable)( GLcontext *ctx, struct gl_texture_object *obj, GLenum option ); + GLenum (*BufferObjectPurgeable)( struct gl_context *ctx, struct gl_buffer_object *obj, GLenum option ); + GLenum (*RenderObjectPurgeable)( struct gl_context *ctx, struct gl_renderbuffer *obj, GLenum option ); + GLenum (*TextureObjectPurgeable)( struct gl_context *ctx, struct gl_texture_object *obj, GLenum option ); /* variations on ObjectUnpurgeable */ - GLenum (*BufferObjectUnpurgeable)( GLcontext *ctx, struct gl_buffer_object *obj, GLenum option ); - GLenum (*RenderObjectUnpurgeable)( GLcontext *ctx, struct gl_renderbuffer *obj, GLenum option ); - GLenum (*TextureObjectUnpurgeable)( GLcontext *ctx, struct gl_texture_object *obj, GLenum option ); + GLenum (*BufferObjectUnpurgeable)( struct gl_context *ctx, struct gl_buffer_object *obj, GLenum option ); + GLenum (*RenderObjectUnpurgeable)( struct gl_context *ctx, struct gl_renderbuffer *obj, GLenum option ); + GLenum (*TextureObjectUnpurgeable)( struct gl_context *ctx, struct gl_texture_object *obj, GLenum option ); /*@}*/ /** * \name Functions for GL_EXT_framebuffer_{object,blit}. */ /*@{*/ - struct gl_framebuffer * (*NewFramebuffer)(GLcontext *ctx, GLuint name); - struct gl_renderbuffer * (*NewRenderbuffer)(GLcontext *ctx, GLuint name); - void (*BindFramebuffer)(GLcontext *ctx, GLenum target, + struct gl_framebuffer * (*NewFramebuffer)(struct gl_context *ctx, GLuint name); + struct gl_renderbuffer * (*NewRenderbuffer)(struct gl_context *ctx, GLuint name); + void (*BindFramebuffer)(struct gl_context *ctx, GLenum target, struct gl_framebuffer *drawFb, struct gl_framebuffer *readFb); - void (*FramebufferRenderbuffer)(GLcontext *ctx, + void (*FramebufferRenderbuffer)(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb); - void (*RenderTexture)(GLcontext *ctx, + void (*RenderTexture)(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att); - void (*FinishRenderTexture)(GLcontext *ctx, + void (*FinishRenderTexture)(struct gl_context *ctx, struct gl_renderbuffer_attachment *att); - void (*ValidateFramebuffer)(GLcontext *ctx, + void (*ValidateFramebuffer)(struct gl_context *ctx, struct gl_framebuffer *fb); /*@}*/ - void (*BlitFramebuffer)(GLcontext *ctx, + void (*BlitFramebuffer)(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); @@ -809,12 +809,12 @@ struct dd_function_table { * \name Query objects */ /*@{*/ - struct gl_query_object * (*NewQueryObject)(GLcontext *ctx, GLuint id); - void (*DeleteQuery)(GLcontext *ctx, struct gl_query_object *q); - void (*BeginQuery)(GLcontext *ctx, struct gl_query_object *q); - void (*EndQuery)(GLcontext *ctx, struct gl_query_object *q); - void (*CheckQuery)(GLcontext *ctx, struct gl_query_object *q); - void (*WaitQuery)(GLcontext *ctx, struct gl_query_object *q); + struct gl_query_object * (*NewQueryObject)(struct gl_context *ctx, GLuint id); + void (*DeleteQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*BeginQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*EndQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*CheckQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*WaitQuery)(struct gl_context *ctx, struct gl_query_object *q); /*@}*/ @@ -822,21 +822,21 @@ struct dd_function_table { * \name Vertex Array objects */ /*@{*/ - struct gl_array_object * (*NewArrayObject)(GLcontext *ctx, GLuint id); - void (*DeleteArrayObject)(GLcontext *ctx, struct gl_array_object *obj); - void (*BindArrayObject)(GLcontext *ctx, struct gl_array_object *obj); + struct gl_array_object * (*NewArrayObject)(struct gl_context *ctx, GLuint id); + void (*DeleteArrayObject)(struct gl_context *ctx, struct gl_array_object *obj); + void (*BindArrayObject)(struct gl_context *ctx, struct gl_array_object *obj); /*@}*/ /** * \name GLSL-related functions (ARB extensions and OpenGL 2.x) */ /*@{*/ - struct gl_shader *(*NewShader)(GLcontext *ctx, GLuint name, GLenum type); - void (*DeleteShader)(GLcontext *ctx, struct gl_shader *shader); - struct gl_shader_program *(*NewShaderProgram)(GLcontext *ctx, GLuint name); - void (*DeleteShaderProgram)(GLcontext *ctx, + struct gl_shader *(*NewShader)(struct gl_context *ctx, GLuint name, GLenum type); + void (*DeleteShader)(struct gl_context *ctx, struct gl_shader *shader); + struct gl_shader_program *(*NewShaderProgram)(struct gl_context *ctx, GLuint name); + void (*DeleteShaderProgram)(struct gl_context *ctx, struct gl_shader_program *shProg); - void (*UseProgram)(GLcontext *ctx, struct gl_shader_program *shProg); + void (*UseProgram)(struct gl_context *ctx, struct gl_shader_program *shProg); /*@}*/ @@ -862,7 +862,7 @@ struct dd_function_table { * This must be non-NULL if a driver installs a custom T&L module and sets * the dd_function_table::NeedValidate bitmask, but may be NULL otherwise. */ - void (*ValidateTnlModule)( GLcontext *ctx, GLuint new_state ); + void (*ValidateTnlModule)( struct gl_context *ctx, GLuint new_state ); #define PRIM_OUTSIDE_BEGIN_END (GL_POLYGON+1) @@ -889,7 +889,7 @@ struct dd_function_table { #define FLUSH_UPDATE_CURRENT 0x2 /** * Set by the driver-supplied T&L engine whenever vertices are buffered - * between glBegin()/glEnd() objects or __GLcontextRec::Current is not + * between glBegin()/glEnd() objects or __struct gl_contextRec::Current is not * updated. * * The dd_function_table::FlushVertices call below may be used to resolve @@ -902,32 +902,32 @@ struct dd_function_table { /* Called prior to any of the GLvertexformat functions being * called. Paired with Driver.FlushVertices(). */ - void (*BeginVertices)( GLcontext *ctx ); + void (*BeginVertices)( struct gl_context *ctx ); /** * If inside glBegin()/glEnd(), it should ASSERT(0). Otherwise, if * FLUSH_STORED_VERTICES bit in \p flags is set flushes any buffered * vertices, if FLUSH_UPDATE_CURRENT bit is set updates - * __GLcontextRec::Current and gl_light_attrib::Material + * __struct gl_contextRec::Current and gl_light_attrib::Material * * Note that the default T&L engine never clears the * FLUSH_UPDATE_CURRENT bit, even after performing the update. */ - void (*FlushVertices)( GLcontext *ctx, GLuint flags ); - void (*SaveFlushVertices)( GLcontext *ctx ); + void (*FlushVertices)( struct gl_context *ctx, GLuint flags ); + void (*SaveFlushVertices)( struct gl_context *ctx ); /** * Give the driver the opportunity to hook in its own vtxfmt for * compiling optimized display lists. This is called on each valid * glBegin() during list compilation. */ - GLboolean (*NotifySaveBegin)( GLcontext *ctx, GLenum mode ); + GLboolean (*NotifySaveBegin)( struct gl_context *ctx, GLenum mode ); /** * Notify driver that the special derived value _NeedEyeCoords has * changed. */ - void (*LightingSpaceChange)( GLcontext *ctx ); + void (*LightingSpaceChange)( struct gl_context *ctx ); /** * Called by glNewList(). @@ -935,64 +935,64 @@ struct dd_function_table { * Let the T&L component know what is going on with display lists * in time to make changes to dispatch tables, etc. */ - void (*NewList)( GLcontext *ctx, GLuint list, GLenum mode ); + void (*NewList)( struct gl_context *ctx, GLuint list, GLenum mode ); /** * Called by glEndList(). * * \sa dd_function_table::NewList. */ - void (*EndList)( GLcontext *ctx ); + void (*EndList)( struct gl_context *ctx ); /** * Called by glCallList(s). * * Notify the T&L component before and after calling a display list. */ - void (*BeginCallList)( GLcontext *ctx, + void (*BeginCallList)( struct gl_context *ctx, struct gl_display_list *dlist ); /** * Called by glEndCallList(). * * \sa dd_function_table::BeginCallList. */ - void (*EndCallList)( GLcontext *ctx ); + void (*EndCallList)( struct gl_context *ctx ); /** * \name GL_ARB_sync interfaces */ /*@{*/ - struct gl_sync_object * (*NewSyncObject)(GLcontext *, GLenum); - void (*FenceSync)(GLcontext *, struct gl_sync_object *, GLenum, GLbitfield); - void (*DeleteSyncObject)(GLcontext *, struct gl_sync_object *); - void (*CheckSync)(GLcontext *, struct gl_sync_object *); - void (*ClientWaitSync)(GLcontext *, struct gl_sync_object *, + struct gl_sync_object * (*NewSyncObject)(struct gl_context *, GLenum); + void (*FenceSync)(struct gl_context *, struct gl_sync_object *, GLenum, GLbitfield); + void (*DeleteSyncObject)(struct gl_context *, struct gl_sync_object *); + void (*CheckSync)(struct gl_context *, struct gl_sync_object *); + void (*ClientWaitSync)(struct gl_context *, struct gl_sync_object *, GLbitfield, GLuint64); - void (*ServerWaitSync)(GLcontext *, struct gl_sync_object *, + void (*ServerWaitSync)(struct gl_context *, struct gl_sync_object *, GLbitfield, GLuint64); /*@}*/ /** GL_NV_conditional_render */ - void (*BeginConditionalRender)(GLcontext *ctx, struct gl_query_object *q, + void (*BeginConditionalRender)(struct gl_context *ctx, struct gl_query_object *q, GLenum mode); - void (*EndConditionalRender)(GLcontext *ctx, struct gl_query_object *q); + void (*EndConditionalRender)(struct gl_context *ctx, struct gl_query_object *q); /** * \name GL_OES_draw_texture interface */ /*@{*/ - void (*DrawTex)(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z, + void (*DrawTex)(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); /*@}*/ /** * \name GL_OES_EGL_image interface */ - void (*EGLImageTargetTexture2D)(GLcontext *ctx, GLenum target, + void (*EGLImageTargetTexture2D)(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLeglImageOES image_handle); - void (*EGLImageTargetRenderbufferStorage)(GLcontext *ctx, + void (*EGLImageTargetRenderbufferStorage)(struct gl_context *ctx, struct gl_renderbuffer *rb, void *image_handle); @@ -1000,18 +1000,18 @@ struct dd_function_table { * \name GL_EXT_transform_feedback interface */ struct gl_transform_feedback_object * - (*NewTransformFeedback)(GLcontext *ctx, GLuint name); - void (*DeleteTransformFeedback)(GLcontext *ctx, + (*NewTransformFeedback)(struct gl_context *ctx, GLuint name); + void (*DeleteTransformFeedback)(struct gl_context *ctx, struct gl_transform_feedback_object *obj); - void (*BeginTransformFeedback)(GLcontext *ctx, GLenum mode, + void (*BeginTransformFeedback)(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj); - void (*EndTransformFeedback)(GLcontext *ctx, + void (*EndTransformFeedback)(struct gl_context *ctx, struct gl_transform_feedback_object *obj); - void (*PauseTransformFeedback)(GLcontext *ctx, + void (*PauseTransformFeedback)(struct gl_context *ctx, struct gl_transform_feedback_object *obj); - void (*ResumeTransformFeedback)(GLcontext *ctx, + void (*ResumeTransformFeedback)(struct gl_context *ctx, struct gl_transform_feedback_object *obj); - void (*DrawTransformFeedback)(GLcontext *ctx, GLenum mode, + void (*DrawTransformFeedback)(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj); }; @@ -1086,6 +1086,7 @@ typedef struct { void (GLAPIENTRYP CallLists)( GLsizei, GLenum, const GLvoid * ); void (GLAPIENTRYP Begin)( GLenum ); void (GLAPIENTRYP End)( void ); + void (GLAPIENTRYP PrimitiveRestartNV)( void ); /* GL_NV_vertex_program */ void (GLAPIENTRYP VertexAttrib1fNV)( GLuint index, GLfloat x ); void (GLAPIENTRYP VertexAttrib1fvNV)( GLuint index, const GLfloat *v ); diff --git a/src/mesa/main/debug.c b/src/mesa/main/debug.c index 4205c7a4b71..a7e65f8d3aa 100644 --- a/src/mesa/main/debug.c +++ b/src/mesa/main/debug.c @@ -233,7 +233,7 @@ static void add_debug_flags( const char *debug ) void -_mesa_init_debug( GLcontext *ctx ) +_mesa_init_debug( struct gl_context *ctx ) { char *c; @@ -578,7 +578,7 @@ _mesa_dump_stencil_buffer(const char *filename) * Quick and dirty function to "print" a texture to stdout. */ void -_mesa_print_texture(GLcontext *ctx, const struct gl_texture_image *img) +_mesa_print_texture(struct gl_context *ctx, const struct gl_texture_image *img) { #if CHAN_TYPE != GL_UNSIGNED_BYTE _mesa_problem(NULL, "PrintTexture not supported"); diff --git a/src/mesa/main/debug.h b/src/mesa/main/debug.h index b517cc8259f..e3bb4dfe813 100644 --- a/src/mesa/main/debug.h +++ b/src/mesa/main/debug.h @@ -45,7 +45,7 @@ extern void _mesa_print_tri_caps( const char *name, GLuint flags ); extern void _mesa_print_enable_flags( const char *msg, GLuint flags ); extern void _mesa_print_state( const char *msg, GLuint state ); extern void _mesa_print_info( void ); -extern void _mesa_init_debug( GLcontext *ctx ); +extern void _mesa_init_debug( struct gl_context *ctx ); #else @@ -79,6 +79,6 @@ extern void _mesa_dump_stencil_buffer(const char *filename); extern void -_mesa_print_texture(GLcontext *ctx, const struct gl_texture_image *img); +_mesa_print_texture(struct gl_context *ctx, const struct gl_texture_image *img); #endif diff --git a/src/mesa/main/depth.c b/src/mesa/main/depth.c index f187205b978..c5a910e144a 100644 --- a/src/mesa/main/depth.c +++ b/src/mesa/main/depth.c @@ -153,7 +153,7 @@ _mesa_DepthBoundsEXT( GLclampd zmin, GLclampd zmax ) * Initialize the depth buffer attribute group in the given context. */ void -_mesa_init_depth(GLcontext *ctx) +_mesa_init_depth(struct gl_context *ctx) { ctx->Depth.Test = GL_FALSE; ctx->Depth.Clear = 1.0; diff --git a/src/mesa/main/depth.h b/src/mesa/main/depth.h index dcc0b4637a7..d61d3b121ba 100644 --- a/src/mesa/main/depth.h +++ b/src/mesa/main/depth.h @@ -50,7 +50,7 @@ extern void GLAPIENTRY _mesa_DepthBoundsEXT( GLclampd zmin, GLclampd zmax ); extern void -_mesa_init_depth( GLcontext * ctx ); +_mesa_init_depth( struct gl_context * ctx ); #else diff --git a/src/mesa/main/depthstencil.c b/src/mesa/main/depthstencil.c index dbaa8416457..c5466dc9fcc 100644 --- a/src/mesa/main/depthstencil.c +++ b/src/mesa/main/depthstencil.c @@ -46,7 +46,7 @@ static void * -nop_get_pointer(GLcontext *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) +nop_get_pointer(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { (void) ctx; (void) rb; @@ -73,7 +73,7 @@ delete_wrapper(struct gl_renderbuffer *rb) * Realloc storage for wrapper. */ static GLboolean -alloc_wrapper_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +alloc_wrapper_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { /* just pass this on to the wrapped renderbuffer */ @@ -103,7 +103,7 @@ alloc_wrapper_storage(GLcontext *ctx, struct gl_renderbuffer *rb, */ static void -get_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +get_row_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, GLint x, GLint y, void *values) { struct gl_renderbuffer *dsrb = z24rb->Wrapped; @@ -130,7 +130,7 @@ get_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -get_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +get_values_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, const GLint x[], const GLint y[], void *values) { struct gl_renderbuffer *dsrb = z24rb->Wrapped; @@ -155,7 +155,7 @@ get_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -put_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +put_row_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { struct gl_renderbuffer *dsrb = z24rb->Wrapped; @@ -206,7 +206,7 @@ put_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -put_mono_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +put_mono_row_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { struct gl_renderbuffer *dsrb = z24rb->Wrapped; @@ -260,7 +260,7 @@ put_mono_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -put_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +put_values_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -313,7 +313,7 @@ put_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -put_mono_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, +put_mono_values_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -348,7 +348,7 @@ put_mono_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, * \return new depth renderbuffer */ struct gl_renderbuffer * -_mesa_new_z24_renderbuffer_wrapper(GLcontext *ctx, +_mesa_new_z24_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb) { struct gl_renderbuffer *z24rb; @@ -396,7 +396,7 @@ _mesa_new_z24_renderbuffer_wrapper(GLcontext *ctx, */ static void -get_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +get_row_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, GLint x, GLint y, void *values) { struct gl_renderbuffer *dsrb = s8rb->Wrapped; @@ -423,7 +423,7 @@ get_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -get_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +get_values_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, const GLint x[], const GLint y[], void *values) { struct gl_renderbuffer *dsrb = s8rb->Wrapped; @@ -448,7 +448,7 @@ get_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -put_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +put_row_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { struct gl_renderbuffer *dsrb = s8rb->Wrapped; @@ -499,7 +499,7 @@ put_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -put_mono_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +put_mono_row_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { struct gl_renderbuffer *dsrb = s8rb->Wrapped; @@ -550,7 +550,7 @@ put_mono_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -put_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +put_values_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -603,7 +603,7 @@ put_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -put_mono_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +put_mono_values_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -637,7 +637,7 @@ put_mono_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, * \return new stencil renderbuffer */ struct gl_renderbuffer * -_mesa_new_s8_renderbuffer_wrapper(GLcontext *ctx, struct gl_renderbuffer *dsrb) +_mesa_new_s8_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb) { struct gl_renderbuffer *s8rb; @@ -698,7 +698,7 @@ _mesa_new_s8_renderbuffer_wrapper(GLcontext *ctx, struct gl_renderbuffer *dsrb) * (either 8-bit or 32-bit) */ void -_mesa_extract_stencil(GLcontext *ctx, +_mesa_extract_stencil(struct gl_context *ctx, struct gl_renderbuffer *dsRb, struct gl_renderbuffer *stencilRb) { @@ -747,7 +747,7 @@ _mesa_extract_stencil(GLcontext *ctx, * \param stencilRb the source stencil buffer (either 8-bit or 32-bit) */ void -_mesa_insert_stencil(GLcontext *ctx, +_mesa_insert_stencil(struct gl_context *ctx, struct gl_renderbuffer *dsRb, struct gl_renderbuffer *stencilRb) { @@ -803,7 +803,7 @@ _mesa_insert_stencil(GLcontext *ctx, * \param stencilRb the stencil renderbuffer to promote */ void -_mesa_promote_stencil(GLcontext *ctx, struct gl_renderbuffer *stencilRb) +_mesa_promote_stencil(struct gl_context *ctx, struct gl_renderbuffer *stencilRb) { const GLsizei width = stencilRb->Width; const GLsizei height = stencilRb->Height; diff --git a/src/mesa/main/depthstencil.h b/src/mesa/main/depthstencil.h index afbac77f0e2..4db5868263a 100644 --- a/src/mesa/main/depthstencil.h +++ b/src/mesa/main/depthstencil.h @@ -29,29 +29,29 @@ #include "mtypes.h" extern struct gl_renderbuffer * -_mesa_new_z24_renderbuffer_wrapper(GLcontext *ctx, +_mesa_new_z24_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb); extern struct gl_renderbuffer * -_mesa_new_s8_renderbuffer_wrapper(GLcontext *ctx, +_mesa_new_s8_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb); extern void -_mesa_extract_stencil(GLcontext *ctx, +_mesa_extract_stencil(struct gl_context *ctx, struct gl_renderbuffer *dsRb, struct gl_renderbuffer *stencilRb); extern void -_mesa_insert_stencil(GLcontext *ctx, +_mesa_insert_stencil(struct gl_context *ctx, struct gl_renderbuffer *dsRb, struct gl_renderbuffer *stencilRb); extern void -_mesa_promote_stencil(GLcontext *ctx, struct gl_renderbuffer *stencilRb); +_mesa_promote_stencil(struct gl_context *ctx, struct gl_renderbuffer *stencilRb); #endif /* DEPTHSTENCIL_H */ diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index cccec248539..e824226ca67 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -53,6 +53,7 @@ #include "image.h" #include "light.h" #include "macros.h" +#include "pack.h" #include "queryobj.h" #include "teximage.h" #include "mtypes.h" @@ -77,9 +78,9 @@ struct gl_list_instruction { GLuint Size; - void (*Execute)( GLcontext *ctx, void *data ); - void (*Destroy)( GLcontext *ctx, void *data ); - void (*Print)( GLcontext *ctx, void *data ); + void (*Execute)( struct gl_context *ctx, void *data ); + void (*Destroy)( struct gl_context *ctx, void *data ); + void (*Print)( struct gl_context *ctx, void *data ); }; @@ -410,6 +411,16 @@ typedef enum OPCODE_BEGIN_TRANSFORM_FEEDBACK, OPCODE_END_TRANSFORM_FEEDBACK, + /* GL_EXT_texture_integer */ + OPCODE_CLEARCOLOR_I, + OPCODE_CLEARCOLOR_UI, + OPCODE_TEXPARAMETER_I, + OPCODE_TEXPARAMETER_UI, + + /* GL_EXT_separate_shader_objects */ + OPCODE_ACTIVE_PROGRAM_EXT, + OPCODE_USE_SHADER_PROGRAM_EXT, + /* The following three are meta instructions */ OPCODE_ERROR, /* raise compiled-in error */ OPCODE_CONTINUE, @@ -496,7 +507,7 @@ make_list(GLuint name, GLuint count) * Lookup function to just encapsulate casting. */ static INLINE struct gl_display_list * -lookup_list(GLcontext *ctx, GLuint list) +lookup_list(struct gl_context *ctx, GLuint list) { return (struct gl_display_list *) _mesa_HashLookup(ctx->Shared->DisplayList, list); @@ -513,7 +524,7 @@ is_ext_opcode(OpCode opcode) /** Destroy an extended opcode instruction */ static GLint -ext_opcode_destroy(GLcontext *ctx, Node *node) +ext_opcode_destroy(struct gl_context *ctx, Node *node) { const GLint i = node[0].opcode - OPCODE_EXT_0; GLint step; @@ -525,7 +536,7 @@ ext_opcode_destroy(GLcontext *ctx, Node *node) /** Execute an extended opcode instruction */ static GLint -ext_opcode_execute(GLcontext *ctx, Node *node) +ext_opcode_execute(struct gl_context *ctx, Node *node) { const GLint i = node[0].opcode - OPCODE_EXT_0; GLint step; @@ -537,7 +548,7 @@ ext_opcode_execute(GLcontext *ctx, Node *node) /** Print an extended opcode instruction */ static GLint -ext_opcode_print(GLcontext *ctx, Node *node) +ext_opcode_print(struct gl_context *ctx, Node *node) { const GLint i = node[0].opcode - OPCODE_EXT_0; GLint step; @@ -552,7 +563,7 @@ ext_opcode_print(GLcontext *ctx, Node *node) * \param dlist - display list pointer */ void -_mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist) +_mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist) { Node *n, *block; GLboolean done; @@ -730,7 +741,7 @@ _mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist) * \param list - display list number */ static void -destroy_list(GLcontext *ctx, GLuint list) +destroy_list(struct gl_context *ctx, GLuint list) { struct gl_display_list *dlist; @@ -814,7 +825,7 @@ translate_id(GLsizei n, GLenum type, const GLvoid * list) * If we run out of memory, GL_OUT_OF_MEMORY will be recorded. */ static GLvoid * -unpack_image(GLcontext *ctx, GLuint dimensions, +unpack_image(struct gl_context *ctx, GLuint dimensions, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels, const struct gl_pixelstore_attrib *unpack) @@ -866,7 +877,7 @@ unpack_image(GLcontext *ctx, GLuint dimensions, * \return pointer to allocated memory (the opcode space) */ static Node * -dlist_alloc(GLcontext *ctx, OpCode opcode, GLuint bytes) +dlist_alloc(struct gl_context *ctx, OpCode opcode, GLuint bytes) { const GLuint numNodes = 1 + (bytes + sizeof(Node) - 1) / sizeof(Node); Node *n; @@ -917,7 +928,7 @@ dlist_alloc(GLcontext *ctx, OpCode opcode, GLuint bytes) * opcode). */ void * -_mesa_dlist_alloc(GLcontext *ctx, GLuint opcode, GLuint bytes) +_mesa_dlist_alloc(struct gl_context *ctx, GLuint opcode, GLuint bytes) { Node *n = dlist_alloc(ctx, (OpCode) opcode, bytes); if (n) @@ -938,11 +949,11 @@ _mesa_dlist_alloc(GLcontext *ctx, GLuint opcode, GLuint bytes) * \return the new opcode number or -1 if error */ GLint -_mesa_dlist_alloc_opcode(GLcontext *ctx, +_mesa_dlist_alloc_opcode(struct gl_context *ctx, GLuint size, - void (*execute) (GLcontext *, void *), - void (*destroy) (GLcontext *, void *), - void (*print) (GLcontext *, void *)) + void (*execute) (struct gl_context *, void *), + void (*destroy) (struct gl_context *, void *), + void (*print) (struct gl_context *, void *)) { if (ctx->ListExt->NumOpcodes < MAX_DLIST_EXT_OPCODES) { const GLuint i = ctx->ListExt->NumOpcodes++; @@ -967,7 +978,7 @@ _mesa_dlist_alloc_opcode(GLcontext *ctx, * \return pointer to start of instruction space */ static INLINE Node * -alloc_instruction(GLcontext *ctx, OpCode opcode, GLuint nparams) +alloc_instruction(struct gl_context *ctx, OpCode opcode, GLuint nparams) { return dlist_alloc(ctx, opcode, nparams * sizeof(Node)); } @@ -1132,7 +1143,7 @@ save_BlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) } } -static void invalidate_saved_current_state( GLcontext *ctx ) +static void invalidate_saved_current_state( struct gl_context *ctx ) { GLint i; @@ -6786,6 +6797,137 @@ save_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, } } +static void GLAPIENTRY +save_UseShaderProgramEXT(GLenum type, GLuint program) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + n = alloc_instruction(ctx, OPCODE_USE_SHADER_PROGRAM_EXT, 2); + if (n) { + n[1].ui = type; + n[2].ui = program; + } + if (ctx->ExecuteFlag) { + CALL_UseShaderProgramEXT(ctx->Exec, (type, program)); + } +} + +static void GLAPIENTRY +save_ActiveProgramEXT(GLuint program) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + n = alloc_instruction(ctx, OPCODE_ACTIVE_PROGRAM_EXT, 1); + if (n) { + n[1].ui = program; + } + if (ctx->ExecuteFlag) { + CALL_ActiveProgramEXT(ctx->Exec, (program)); + } +} + +/** GL_EXT_texture_integer */ +static void GLAPIENTRY +save_ClearColorIi(GLint red, GLint green, GLint blue, GLint alpha) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + n = alloc_instruction(ctx, OPCODE_CLEARCOLOR_I, 4); + if (n) { + n[1].i = red; + n[2].i = green; + n[3].i = blue; + n[4].i = alpha; + } + if (ctx->ExecuteFlag) { + CALL_ClearColorIiEXT(ctx->Exec, (red, green, blue, alpha)); + } +} + +/** GL_EXT_texture_integer */ +static void GLAPIENTRY +save_ClearColorIui(GLuint red, GLuint green, GLuint blue, GLuint alpha) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + n = alloc_instruction(ctx, OPCODE_CLEARCOLOR_UI, 4); + if (n) { + n[1].ui = red; + n[2].ui = green; + n[3].ui = blue; + n[4].ui = alpha; + } + if (ctx->ExecuteFlag) { + CALL_ClearColorIuiEXT(ctx->Exec, (red, green, blue, alpha)); + } +} + +/** GL_EXT_texture_integer */ +static void GLAPIENTRY +save_TexParameterIiv(GLenum target, GLenum pname, const GLint *params) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + n = alloc_instruction(ctx, OPCODE_TEXPARAMETER_I, 6); + if (n) { + n[1].e = target; + n[2].e = pname; + n[3].i = params[0]; + n[4].i = params[1]; + n[5].i = params[2]; + n[6].i = params[3]; + } + if (ctx->ExecuteFlag) { + CALL_TexParameterIivEXT(ctx->Exec, (target, pname, params)); + } +} + +/** GL_EXT_texture_integer */ +static void GLAPIENTRY +save_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + n = alloc_instruction(ctx, OPCODE_TEXPARAMETER_UI, 6); + if (n) { + n[1].e = target; + n[2].e = pname; + n[3].ui = params[0]; + n[4].ui = params[1]; + n[5].ui = params[2]; + n[6].ui = params[3]; + } + if (ctx->ExecuteFlag) { + CALL_TexParameterIuivEXT(ctx->Exec, (target, pname, params)); + } +} + +/** GL_EXT_texture_integer */ +static void GLAPIENTRY +exec_GetTexParameterIiv(GLenum target, GLenum pname, GLint *params) +{ + GET_CURRENT_CONTEXT(ctx); + FLUSH_VERTICES(ctx, 0); + CALL_GetTexParameterIivEXT(ctx->Exec, (target, pname, params)); +} + +/** GL_EXT_texture_integer */ +static void GLAPIENTRY +exec_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params) +{ + GET_CURRENT_CONTEXT(ctx); + FLUSH_VERTICES(ctx, 0); + CALL_GetTexParameterIuivEXT(ctx->Exec, (target, pname, params)); +} + + + /** @@ -6795,7 +6937,7 @@ save_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, * command that provoked the error. I don't see this as a problem. */ static void -save_error(GLcontext *ctx, GLenum error, const char *s) +save_error(struct gl_context *ctx, GLenum error, const char *s) { Node *n; n = alloc_instruction(ctx, OPCODE_ERROR, 2); @@ -6810,7 +6952,7 @@ save_error(GLcontext *ctx, GLenum error, const char *s) * Compile an error into current display list. */ void -_mesa_compile_error(GLcontext *ctx, GLenum error, const char *s) +_mesa_compile_error(struct gl_context *ctx, GLenum error, const char *s) { if (ctx->CompileFlag) save_error(ctx, error, s); @@ -6823,7 +6965,7 @@ _mesa_compile_error(GLcontext *ctx, GLenum error, const char *s) * Test if ID names a display list. */ static GLboolean -islist(GLcontext *ctx, GLuint list) +islist(struct gl_context *ctx, GLuint list) { if (list > 0 && lookup_list(ctx, list)) { return GL_TRUE; @@ -6847,7 +6989,7 @@ islist(GLcontext *ctx, GLuint list) * \param list - display list number */ static void -execute_list(GLcontext *ctx, GLuint list) +execute_list(struct gl_context *ctx, GLuint list) { struct gl_display_list *dlist; Node *n; @@ -7673,6 +7815,12 @@ execute_list(GLcontext *ctx, GLuint list) case OPCODE_USE_PROGRAM: CALL_UseProgramObjectARB(ctx->Exec, (n[1].ui)); break; + case OPCODE_USE_SHADER_PROGRAM_EXT: + CALL_UseShaderProgramEXT(ctx->Exec, (n[1].ui, n[2].ui)); + break; + case OPCODE_ACTIVE_PROGRAM_EXT: + CALL_ActiveProgramEXT(ctx->Exec, (n[1].ui)); + break; case OPCODE_UNIFORM_1F: CALL_Uniform1fARB(ctx->Exec, (n[1].i, n[2].f)); break; @@ -7903,6 +8051,35 @@ execute_list(GLcontext *ctx, GLuint list) CALL_EvalPoint2(ctx->Exec, (n[1].i, n[2].i)); break; + /* GL_EXT_texture_integer */ + case OPCODE_CLEARCOLOR_I: + CALL_ClearColorIiEXT(ctx->Exec, (n[1].i, n[2].i, n[3].i, n[4].i)); + break; + case OPCODE_CLEARCOLOR_UI: + CALL_ClearColorIuiEXT(ctx->Exec, + (n[1].ui, n[2].ui, n[3].ui, n[4].ui)); + break; + case OPCODE_TEXPARAMETER_I: + { + GLint params[4]; + params[0] = n[3].i; + params[1] = n[4].i; + params[2] = n[5].i; + params[3] = n[6].i; + CALL_TexParameterIivEXT(ctx->Exec, (n[1].e, n[2].e, params)); + } + break; + case OPCODE_TEXPARAMETER_UI: + { + GLuint params[4]; + params[0] = n[3].ui; + params[1] = n[4].ui; + params[2] = n[5].ui; + params[3] = n[6].ui; + CALL_TexParameterIuivEXT(ctx->Exec, (n[1].e, n[2].e, params)); + } + break; + case OPCODE_CONTINUE: n = (Node *) n[1].next; break; @@ -9531,6 +9708,18 @@ _mesa_create_save_table(void) SET_ObjectUnpurgeableAPPLE(table, _mesa_ObjectUnpurgeableAPPLE); #endif + /* GL_EXT_texture_integer */ + SET_ClearColorIiEXT(table, save_ClearColorIi); + SET_ClearColorIuiEXT(table, save_ClearColorIui); + SET_TexParameterIivEXT(table, save_TexParameterIiv); + SET_TexParameterIuivEXT(table, save_TexParameterIuiv); + SET_GetTexParameterIivEXT(table, exec_GetTexParameterIiv); + SET_GetTexParameterIuivEXT(table, exec_GetTexParameterIuiv); + + /* 377. GL_EXT_separate_shader_objects */ + SET_UseShaderProgramEXT(table, save_UseShaderProgramEXT); + SET_ActiveProgramEXT(table, save_ActiveProgramEXT); + /* GL 3.0 */ #if 0 SET_ClearBufferiv(table, save_ClearBufferiv); @@ -9577,7 +9766,7 @@ enum_string(GLenum k) * TODO: many commands aren't handled yet. */ static void GLAPIENTRY -print_list(GLcontext *ctx, GLuint list) +print_list(struct gl_context *ctx, GLuint list) { struct gl_display_list *dlist; Node *n; @@ -9969,7 +10158,7 @@ void _mesa_init_dlist_dispatch(struct _glapi_table *disp) * Initialize display list state for given context. */ void -_mesa_init_display_list(GLcontext *ctx) +_mesa_init_display_list(struct gl_context *ctx) { static GLboolean tableInitialized = GL_FALSE; @@ -9999,7 +10188,7 @@ _mesa_init_display_list(GLcontext *ctx) void -_mesa_free_display_list_data(GLcontext *ctx) +_mesa_free_display_list_data(struct gl_context *ctx) { free(ctx->ListExt); ctx->ListExt = NULL; diff --git a/src/mesa/main/dlist.h b/src/mesa/main/dlist.h index 86bb132e56e..24241a4bd4f 100644 --- a/src/mesa/main/dlist.h +++ b/src/mesa/main/dlist.h @@ -49,16 +49,16 @@ extern void GLAPIENTRY _mesa_CallList( GLuint list ); extern void GLAPIENTRY _mesa_CallLists( GLsizei n, GLenum type, const GLvoid *lists ); -extern void _mesa_compile_error( GLcontext *ctx, GLenum error, const char *s ); +extern void _mesa_compile_error( struct gl_context *ctx, GLenum error, const char *s ); -extern void *_mesa_dlist_alloc(GLcontext *ctx, GLuint opcode, GLuint sz); +extern void *_mesa_dlist_alloc(struct gl_context *ctx, GLuint opcode, GLuint sz); -extern GLint _mesa_dlist_alloc_opcode( GLcontext *ctx, GLuint sz, - void (*execute)( GLcontext *, void * ), - void (*destroy)( GLcontext *, void * ), - void (*print)( GLcontext *, void * ) ); +extern GLint _mesa_dlist_alloc_opcode( struct gl_context *ctx, GLuint sz, + void (*execute)( struct gl_context *, void * ), + void (*destroy)( struct gl_context *, void * ), + void (*print)( struct gl_context *, void * ) ); -extern void _mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist); +extern void _mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist); extern void _mesa_save_vtxfmt_init( GLvertexformat *vfmt ); @@ -76,7 +76,7 @@ extern void _mesa_init_dlist_dispatch(struct _glapi_table *disp); #define _MESA_INIT_DLIST_VTXFMT(vfmt, impl) do { } while (0) static INLINE void -_mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist) +_mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist) { /* there should be no list to delete */ ASSERT_NO_FEATURE(); @@ -95,9 +95,9 @@ _mesa_init_dlist_dispatch(struct _glapi_table *disp) #endif /* FEATURE_dlist */ -extern void _mesa_init_display_list( GLcontext * ctx ); +extern void _mesa_init_display_list( struct gl_context * ctx ); -extern void _mesa_free_display_list_data(GLcontext *ctx); +extern void _mesa_free_display_list_data(struct gl_context *ctx); #endif /* DLIST_H */ diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c index bf36a7e7a49..757aae6e703 100644 --- a/src/mesa/main/drawpix.c +++ b/src/mesa/main/drawpix.c @@ -32,23 +32,12 @@ #include "framebuffer.h" #include "readpix.h" #include "state.h" -#include "main/dispatch.h" +#include "dispatch.h" #if FEATURE_drawpix -/** - * If a fragment program is enabled, check that it's valid. - * \return GL_TRUE if valid, GL_FALSE otherwise - */ -static GLboolean -valid_fragment_program(GLcontext *ctx) -{ - return !(ctx->FragmentProgram.Enabled && !ctx->FragmentProgram._Enabled); -} - - /* * Execute glDrawPixels */ @@ -65,33 +54,21 @@ _mesa_DrawPixels( GLsizei width, GLsizei height, } /* We're not using the current vertex program, and the driver may install - * it's own. + * its own. Note: this may dirty some state. */ _mesa_set_vp_override(ctx, GL_TRUE); - if (ctx->NewState) { - _mesa_update_state(ctx); - } - - if (!valid_fragment_program(ctx)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glDrawPixels (invalid fragment program)"); - goto end; + /* Note: this call does state validation */ + if (!_mesa_valid_to_render(ctx, "glDrawPixels")) { + goto end; /* the error code was recorded */ } if (_mesa_error_check_format_type(ctx, format, type, GL_TRUE)) { - /* the error was already recorded */ - goto end; - } - - if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { - _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, - "glDrawPixels(incomplete framebuffer)" ); - goto end; + goto end; /* the error code was recorded */ } if (!ctx->Current.RasterPosValid) { - goto end; /* no-op, not an error */ + goto end; /* no-op, not an error */ } if (ctx->RenderMode == GL_RENDER) { @@ -165,22 +142,17 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, } /* We're not using the current vertex program, and the driver may install - * it's own. + * it's own. Note: this may dirty some state. */ _mesa_set_vp_override(ctx, GL_TRUE); - if (ctx->NewState) { - _mesa_update_state(ctx); + /* Note: this call does state validation */ + if (!_mesa_valid_to_render(ctx, "glCopyPixels")) { + goto end; /* the error code was recorded */ } - if (!valid_fragment_program(ctx)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glCopyPixels (invalid fragment program)"); - goto end; - } - - if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT || - ctx->ReadBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { + /* Check read buffer's status (draw buffer was already checked) */ + if (ctx->ReadBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "glCopyPixels(incomplete framebuffer)" ); goto end; @@ -241,19 +213,9 @@ _mesa_Bitmap( GLsizei width, GLsizei height, return; /* do nothing */ } - if (ctx->NewState) { - _mesa_update_state(ctx); - } - - if (!valid_fragment_program(ctx)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glBitmap (invalid fragment program)"); - return; - } - - if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { - _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, - "glBitmap(incomplete framebuffer)"); + /* Note: this call does state validation */ + if (!_mesa_valid_to_render(ctx, "glBitmap")) { + /* the error code was recorded */ return; } diff --git a/src/mesa/main/drawtex.c b/src/mesa/main/drawtex.c index c2ad5f23862..b9afc9974e0 100644 --- a/src/mesa/main/drawtex.c +++ b/src/mesa/main/drawtex.c @@ -30,7 +30,7 @@ static void -draw_texture(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z, +draw_texture(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) { if (!ctx->Extensions.OES_draw_texture) { diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c index b2be44830a0..a038a95c55a 100644 --- a/src/mesa/main/enable.c +++ b/src/mesa/main/enable.c @@ -50,7 +50,7 @@ * Helper to enable/disable client-side state. */ static void -client_state(GLcontext *ctx, GLenum cap, GLboolean state) +client_state(struct gl_context *ctx, GLenum cap, GLboolean state) { struct gl_array_object *arrayObj = ctx->Array.ArrayObj; GLuint flag; @@ -124,6 +124,15 @@ client_state(GLcontext *ctx, GLenum cap, GLboolean state) break; #endif /* FEATURE_NV_vertex_program */ + /* GL_NV_primitive_restart */ + case GL_PRIMITIVE_RESTART_NV: + if (!ctx->Extensions.NV_primitive_restart) { + goto invalid_enum_error; + } + var = &ctx->Array.PrimitiveRestart; + flag = 0; + break; + default: goto invalid_enum_error; } @@ -207,7 +216,7 @@ _mesa_DisableClientState( GLenum cap ) * higher than the number of supported coordinate units. And we'll return NULL. */ static struct gl_texture_unit * -get_texcoord_unit(GLcontext *ctx) +get_texcoord_unit(struct gl_context *ctx) { if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) { _mesa_error(ctx, GL_INVALID_OPERATION, "glEnable/Disable(texcoord unit)"); @@ -225,7 +234,7 @@ get_texcoord_unit(GLcontext *ctx) * \return GL_TRUE if state is changing or GL_FALSE if no change */ static GLboolean -enable_texture(GLcontext *ctx, GLboolean state, GLbitfield texBit) +enable_texture(struct gl_context *ctx, GLboolean state, GLbitfield texBit) { struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); const GLbitfield newenabled = state @@ -253,7 +262,7 @@ enable_texture(GLcontext *ctx, GLboolean state, GLbitfield texBit) * dd_function_table::Enable. */ void -_mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state) +_mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state) { if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, "%s %s (newstate is %x)\n", @@ -945,9 +954,11 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state) break; #endif - /* GL 3.1 primitive restart */ + /* GL 3.1 primitive restart. Note: this enum is different from + * GL_PRIMITIVE_RESTART_NV (which is client state). + */ case GL_PRIMITIVE_RESTART: - if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { + if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { goto invalid_enum_error; } if (ctx->Array.PrimitiveRestart != state) { @@ -1005,7 +1016,7 @@ _mesa_Disable( GLenum cap ) * Enable/disable an indexed state var. */ void -_mesa_set_enablei(GLcontext *ctx, GLenum cap, GLuint index, GLboolean state) +_mesa_set_enablei(struct gl_context *ctx, GLenum cap, GLuint index, GLboolean state) { ASSERT(state == 0 || state == 1); switch (cap) { @@ -1095,7 +1106,7 @@ _mesa_IsEnabledIndexed( GLenum cap, GLuint index ) * Helper function to determine whether a texture target is enabled. */ static GLboolean -is_texture_enabled(GLcontext *ctx, GLbitfield bit) +is_texture_enabled(struct gl_context *ctx, GLbitfield bit) { const struct gl_texture_unit *const texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; @@ -1454,9 +1465,16 @@ _mesa_IsEnabled( GLenum cap ) return ctx->TransformFeedback.RasterDiscard; #endif + /* GL_NV_primitive_restart */ + case GL_PRIMITIVE_RESTART_NV: + if (!ctx->Extensions.NV_primitive_restart) { + goto invalid_enum_error; + } + return ctx->Array.PrimitiveRestart; + /* GL 3.1 primitive restart */ case GL_PRIMITIVE_RESTART: - if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { + if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { goto invalid_enum_error; } return ctx->Array.PrimitiveRestart; diff --git a/src/mesa/main/enable.h b/src/mesa/main/enable.h index 24e3181a8ba..69e52b1cb26 100644 --- a/src/mesa/main/enable.h +++ b/src/mesa/main/enable.h @@ -36,7 +36,7 @@ extern void -_mesa_set_enable( GLcontext* ctx, GLenum cap, GLboolean state ); +_mesa_set_enable( struct gl_context* ctx, GLenum cap, GLboolean state ); extern void GLAPIENTRY _mesa_Disable( GLenum cap ); @@ -48,7 +48,7 @@ extern GLboolean GLAPIENTRY _mesa_IsEnabled( GLenum cap ); extern void -_mesa_set_enablei(GLcontext *ctx, GLenum cap, GLuint index, GLboolean state); +_mesa_set_enablei(struct gl_context *ctx, GLenum cap, GLuint index, GLboolean state); extern void GLAPIENTRY _mesa_DisableIndexed( GLenum cap, GLuint index ); diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c index bc18e1b1131..48291cfa7af 100644 --- a/src/mesa/main/enums.c +++ b/src/mesa/main/enums.c @@ -53,6 +53,7 @@ LONGSTRING static const char enum_string_table[] = "GL_ACCUM_RED_BITS\0" "GL_ACTIVE_ATTRIBUTES\0" "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH\0" + "GL_ACTIVE_PROGRAM_EXT\0" "GL_ACTIVE_STENCIL_FACE_EXT\0" "GL_ACTIVE_TEXTURE\0" "GL_ACTIVE_TEXTURE_ARB\0" @@ -71,13 +72,20 @@ LONGSTRING static const char enum_string_table[] = "GL_ALPHA12\0" "GL_ALPHA12_EXT\0" "GL_ALPHA16\0" + "GL_ALPHA16I_EXT\0" + "GL_ALPHA16UI_EXT\0" "GL_ALPHA16_EXT\0" + "GL_ALPHA32I_EXT\0" + "GL_ALPHA32UI_EXT\0" "GL_ALPHA4\0" "GL_ALPHA4_EXT\0" "GL_ALPHA8\0" + "GL_ALPHA8I_EXT\0" + "GL_ALPHA8UI_EXT\0" "GL_ALPHA8_EXT\0" "GL_ALPHA_BIAS\0" "GL_ALPHA_BITS\0" + "GL_ALPHA_INTEGER_EXT\0" "GL_ALPHA_SCALE\0" "GL_ALPHA_TEST\0" "GL_ALPHA_TEST_FUNC\0" @@ -110,6 +118,8 @@ LONGSTRING static const char enum_string_table[] = "GL_BGR\0" "GL_BGRA\0" "GL_BGRA_EXT\0" + "GL_BGRA_INTEGER_EXT\0" + "GL_BGR_INTEGER_EXT\0" "GL_BITMAP\0" "GL_BITMAP_TOKEN\0" "GL_BLEND\0" @@ -137,6 +147,7 @@ LONGSTRING static const char enum_string_table[] = "GL_BLUE\0" "GL_BLUE_BIAS\0" "GL_BLUE_BITS\0" + "GL_BLUE_INTEGER_EXT\0" "GL_BLUE_SCALE\0" "GL_BOOL\0" "GL_BOOL_ARB\0" @@ -689,6 +700,7 @@ LONGSTRING static const char enum_string_table[] = "GL_GREEN\0" "GL_GREEN_BIAS\0" "GL_GREEN_BITS\0" + "GL_GREEN_INTEGER_EXT\0" "GL_GREEN_SCALE\0" "GL_HALF_FLOAT\0" "GL_HALF_FLOAT_OES\0" @@ -742,10 +754,16 @@ LONGSTRING static const char enum_string_table[] = "GL_INTENSITY12\0" "GL_INTENSITY12_EXT\0" "GL_INTENSITY16\0" + "GL_INTENSITY16I_EXT\0" + "GL_INTENSITY16UI_EXT\0" "GL_INTENSITY16_EXT\0" + "GL_INTENSITY32I_EXT\0" + "GL_INTENSITY32UI_EXT\0" "GL_INTENSITY4\0" "GL_INTENSITY4_EXT\0" "GL_INTENSITY8\0" + "GL_INTENSITY8I_EXT\0" + "GL_INTENSITY8UI_EXT\0" "GL_INTENSITY8_EXT\0" "GL_INTENSITY_EXT\0" "GL_INTERLEAVED_ATTRIBS_EXT\0" @@ -831,9 +849,13 @@ LONGSTRING static const char enum_string_table[] = "GL_LUMINANCE12_ALPHA4_EXT\0" "GL_LUMINANCE12_EXT\0" "GL_LUMINANCE16\0" + "GL_LUMINANCE16I_EXT\0" + "GL_LUMINANCE16UI_EXT\0" "GL_LUMINANCE16_ALPHA16\0" "GL_LUMINANCE16_ALPHA16_EXT\0" "GL_LUMINANCE16_EXT\0" + "GL_LUMINANCE32I_EXT\0" + "GL_LUMINANCE32UI_EXT\0" "GL_LUMINANCE4\0" "GL_LUMINANCE4_ALPHA4\0" "GL_LUMINANCE4_ALPHA4_EXT\0" @@ -841,10 +863,20 @@ LONGSTRING static const char enum_string_table[] = "GL_LUMINANCE6_ALPHA2\0" "GL_LUMINANCE6_ALPHA2_EXT\0" "GL_LUMINANCE8\0" + "GL_LUMINANCE8I_EXT\0" + "GL_LUMINANCE8UI_EXT\0" "GL_LUMINANCE8_ALPHA8\0" "GL_LUMINANCE8_ALPHA8_EXT\0" "GL_LUMINANCE8_EXT\0" "GL_LUMINANCE_ALPHA\0" + "GL_LUMINANCE_ALPHA16I_EXT\0" + "GL_LUMINANCE_ALPHA16UI_EXT\0" + "GL_LUMINANCE_ALPHA32I_EXT\0" + "GL_LUMINANCE_ALPHA32UI_EXT\0" + "GL_LUMINANCE_ALPHA8I_EXT\0" + "GL_LUMINANCE_ALPHA8UI_EXT\0" + "GL_LUMINANCE_ALPHA_INTEGER_EXT\0" + "GL_LUMINANCE_INTEGER_EXT\0" "GL_MAP1_COLOR_4\0" "GL_MAP1_GRID_DOMAIN\0" "GL_MAP1_GRID_SEGMENTS\0" @@ -1369,6 +1401,8 @@ LONGSTRING static const char enum_string_table[] = "GL_PRIMARY_COLOR_ARB\0" "GL_PRIMARY_COLOR_EXT\0" "GL_PRIMITIVES_GENERATED_EXT\0" + "GL_PRIMITIVE_RESTART_INDEX_NV\0" + "GL_PRIMITIVE_RESTART_NV\0" "GL_PROGRAM_ADDRESS_REGISTERS_ARB\0" "GL_PROGRAM_ALU_INSTRUCTIONS_ARB\0" "GL_PROGRAM_ATTRIBS_ARB\0" @@ -1462,6 +1496,7 @@ LONGSTRING static const char enum_string_table[] = "GL_REDUCE_EXT\0" "GL_RED_BIAS\0" "GL_RED_BITS\0" + "GL_RED_INTEGER_EXT\0" "GL_RED_SCALE\0" "GL_REFLECTION_MAP\0" "GL_REFLECTION_MAP_ARB\0" @@ -1516,8 +1551,12 @@ LONGSTRING static const char enum_string_table[] = "GL_RGB12\0" "GL_RGB12_EXT\0" "GL_RGB16\0" + "GL_RGB16I_EXT\0" + "GL_RGB16UI_EXT\0" "GL_RGB16_EXT\0" "GL_RGB2_EXT\0" + "GL_RGB32I_EXT\0" + "GL_RGB32UI_EXT\0" "GL_RGB4\0" "GL_RGB4_EXT\0" "GL_RGB4_S3TC\0" @@ -1529,28 +1568,39 @@ LONGSTRING static const char enum_string_table[] = "GL_RGB5_A1_OES\0" "GL_RGB5_EXT\0" "GL_RGB8\0" + "GL_RGB8I_EXT\0" + "GL_RGB8UI_EXT\0" "GL_RGB8_EXT\0" "GL_RGB8_OES\0" "GL_RGBA\0" "GL_RGBA12\0" "GL_RGBA12_EXT\0" "GL_RGBA16\0" + "GL_RGBA16I_EXT\0" + "GL_RGBA16UI_EXT\0" "GL_RGBA16_EXT\0" "GL_RGBA2\0" "GL_RGBA2_EXT\0" + "GL_RGBA32I_EXT\0" + "GL_RGBA32UI_EXT\0" "GL_RGBA4\0" "GL_RGBA4_DXT5_S3TC\0" "GL_RGBA4_EXT\0" "GL_RGBA4_OES\0" "GL_RGBA4_S3TC\0" "GL_RGBA8\0" + "GL_RGBA8I_EXT\0" + "GL_RGBA8UI_EXT\0" "GL_RGBA8_EXT\0" "GL_RGBA8_OES\0" "GL_RGBA8_SNORM\0" "GL_RGBA_DXT5_S3TC\0" + "GL_RGBA_INTEGER_EXT\0" + "GL_RGBA_INTEGER_MODE_EXT\0" "GL_RGBA_MODE\0" "GL_RGBA_S3TC\0" "GL_RGBA_SNORM\0" + "GL_RGB_INTEGER_EXT\0" "GL_RGB_S3TC\0" "GL_RGB_SCALE\0" "GL_RGB_SCALE_ARB\0" @@ -2103,7 +2153,7 @@ LONGSTRING static const char enum_string_table[] = "GL_ZOOM_Y\0" ; -static const enum_elt all_enums[2065] = +static const enum_elt all_enums[2115] = { { 0, 0x00000600 }, /* GL_2D */ { 6, 0x00001407 }, /* GL_2_BYTES */ @@ -2122,3481 +2172,3580 @@ static const enum_elt all_enums[2065] = { 206, 0x00000D58 }, /* GL_ACCUM_RED_BITS */ { 224, 0x00008B89 }, /* GL_ACTIVE_ATTRIBUTES */ { 245, 0x00008B8A }, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */ - { 276, 0x00008911 }, /* GL_ACTIVE_STENCIL_FACE_EXT */ - { 303, 0x000084E0 }, /* GL_ACTIVE_TEXTURE */ - { 321, 0x000084E0 }, /* GL_ACTIVE_TEXTURE_ARB */ - { 343, 0x00008B86 }, /* GL_ACTIVE_UNIFORMS */ - { 362, 0x00008B87 }, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */ - { 391, 0x000086A5 }, /* GL_ACTIVE_VERTEX_UNITS_ARB */ - { 418, 0x00000104 }, /* GL_ADD */ - { 425, 0x00008574 }, /* GL_ADD_SIGNED */ - { 439, 0x00008574 }, /* GL_ADD_SIGNED_ARB */ - { 457, 0x00008574 }, /* GL_ADD_SIGNED_EXT */ - { 475, 0x0000846E }, /* GL_ALIASED_LINE_WIDTH_RANGE */ - { 503, 0x0000846D }, /* GL_ALIASED_POINT_SIZE_RANGE */ - { 531, 0x000FFFFF }, /* GL_ALL_ATTRIB_BITS */ - { 550, 0xFFFFFFFF }, /* GL_ALL_CLIENT_ATTRIB_BITS */ - { 576, 0x00001906 }, /* GL_ALPHA */ - { 585, 0x0000803D }, /* GL_ALPHA12 */ - { 596, 0x0000803D }, /* GL_ALPHA12_EXT */ - { 611, 0x0000803E }, /* GL_ALPHA16 */ - { 622, 0x0000803E }, /* GL_ALPHA16_EXT */ - { 637, 0x0000803B }, /* GL_ALPHA4 */ - { 647, 0x0000803B }, /* GL_ALPHA4_EXT */ - { 661, 0x0000803C }, /* GL_ALPHA8 */ - { 671, 0x0000803C }, /* GL_ALPHA8_EXT */ - { 685, 0x00000D1D }, /* GL_ALPHA_BIAS */ - { 699, 0x00000D55 }, /* GL_ALPHA_BITS */ - { 713, 0x00000D1C }, /* GL_ALPHA_SCALE */ - { 728, 0x00000BC0 }, /* GL_ALPHA_TEST */ - { 742, 0x00000BC1 }, /* GL_ALPHA_TEST_FUNC */ - { 761, 0x00000BC2 }, /* GL_ALPHA_TEST_REF */ - { 779, 0x0000911A }, /* GL_ALREADY_SIGNALED */ - { 799, 0x00000207 }, /* GL_ALWAYS */ - { 809, 0x00001200 }, /* GL_AMBIENT */ - { 820, 0x00001602 }, /* GL_AMBIENT_AND_DIFFUSE */ - { 843, 0x00001501 }, /* GL_AND */ - { 850, 0x00001504 }, /* GL_AND_INVERTED */ - { 866, 0x00001502 }, /* GL_AND_REVERSE */ - { 881, 0x00008892 }, /* GL_ARRAY_BUFFER */ - { 897, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING */ - { 921, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING_ARB */ - { 949, 0x00008B85 }, /* GL_ATTACHED_SHADERS */ - { 969, 0x00008645 }, /* GL_ATTRIB_ARRAY_POINTER_NV */ - { 996, 0x00008623 }, /* GL_ATTRIB_ARRAY_SIZE_NV */ - { 1020, 0x00008624 }, /* GL_ATTRIB_ARRAY_STRIDE_NV */ - { 1046, 0x00008625 }, /* GL_ATTRIB_ARRAY_TYPE_NV */ - { 1070, 0x00000BB0 }, /* GL_ATTRIB_STACK_DEPTH */ - { 1092, 0x00000D80 }, /* GL_AUTO_NORMAL */ - { 1107, 0x00000409 }, /* GL_AUX0 */ - { 1115, 0x0000040A }, /* GL_AUX1 */ - { 1123, 0x0000040B }, /* GL_AUX2 */ - { 1131, 0x0000040C }, /* GL_AUX3 */ - { 1139, 0x00000C00 }, /* GL_AUX_BUFFERS */ - { 1154, 0x00000405 }, /* GL_BACK */ - { 1162, 0x00000402 }, /* GL_BACK_LEFT */ - { 1175, 0x00000403 }, /* GL_BACK_RIGHT */ - { 1189, 0x000080E0 }, /* GL_BGR */ - { 1196, 0x000080E1 }, /* GL_BGRA */ - { 1204, 0x000080E1 }, /* GL_BGRA_EXT */ - { 1216, 0x00001A00 }, /* GL_BITMAP */ - { 1226, 0x00000704 }, /* GL_BITMAP_TOKEN */ - { 1242, 0x00000BE2 }, /* GL_BLEND */ - { 1251, 0x00008005 }, /* GL_BLEND_COLOR */ - { 1266, 0x00008005 }, /* GL_BLEND_COLOR_EXT */ - { 1285, 0x00000BE0 }, /* GL_BLEND_DST */ - { 1298, 0x000080CA }, /* GL_BLEND_DST_ALPHA */ - { 1317, 0x000080CA }, /* GL_BLEND_DST_ALPHA_OES */ - { 1340, 0x000080C8 }, /* GL_BLEND_DST_RGB */ - { 1357, 0x000080C8 }, /* GL_BLEND_DST_RGB_OES */ - { 1378, 0x00008009 }, /* GL_BLEND_EQUATION */ - { 1396, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA */ - { 1420, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_EXT */ - { 1448, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_OES */ - { 1476, 0x00008009 }, /* GL_BLEND_EQUATION_EXT */ - { 1498, 0x00008009 }, /* GL_BLEND_EQUATION_OES */ - { 1520, 0x00008009 }, /* GL_BLEND_EQUATION_RGB */ - { 1542, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_EXT */ - { 1568, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_OES */ - { 1594, 0x00000BE1 }, /* GL_BLEND_SRC */ - { 1607, 0x000080CB }, /* GL_BLEND_SRC_ALPHA */ - { 1626, 0x000080CB }, /* GL_BLEND_SRC_ALPHA_OES */ - { 1649, 0x000080C9 }, /* GL_BLEND_SRC_RGB */ - { 1666, 0x000080C9 }, /* GL_BLEND_SRC_RGB_OES */ - { 1687, 0x00001905 }, /* GL_BLUE */ - { 1695, 0x00000D1B }, /* GL_BLUE_BIAS */ - { 1708, 0x00000D54 }, /* GL_BLUE_BITS */ - { 1721, 0x00000D1A }, /* GL_BLUE_SCALE */ - { 1735, 0x00008B56 }, /* GL_BOOL */ - { 1743, 0x00008B56 }, /* GL_BOOL_ARB */ - { 1755, 0x00008B57 }, /* GL_BOOL_VEC2 */ - { 1768, 0x00008B57 }, /* GL_BOOL_VEC2_ARB */ - { 1785, 0x00008B58 }, /* GL_BOOL_VEC3 */ - { 1798, 0x00008B58 }, /* GL_BOOL_VEC3_ARB */ - { 1815, 0x00008B59 }, /* GL_BOOL_VEC4 */ - { 1828, 0x00008B59 }, /* GL_BOOL_VEC4_ARB */ - { 1845, 0x000088BB }, /* GL_BUFFER_ACCESS */ - { 1862, 0x000088BB }, /* GL_BUFFER_ACCESS_ARB */ - { 1883, 0x000088BB }, /* GL_BUFFER_ACCESS_OES */ - { 1904, 0x00008A13 }, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */ - { 1935, 0x000088BC }, /* GL_BUFFER_MAPPED */ - { 1952, 0x000088BC }, /* GL_BUFFER_MAPPED_ARB */ - { 1973, 0x000088BC }, /* GL_BUFFER_MAPPED_OES */ - { 1994, 0x000088BD }, /* GL_BUFFER_MAP_POINTER */ - { 2016, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_ARB */ - { 2042, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_OES */ - { 2068, 0x000085B3 }, /* GL_BUFFER_OBJECT_APPLE */ - { 2091, 0x00008A12 }, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */ - { 2125, 0x00008764 }, /* GL_BUFFER_SIZE */ - { 2140, 0x00008764 }, /* GL_BUFFER_SIZE_ARB */ - { 2159, 0x00008765 }, /* GL_BUFFER_USAGE */ - { 2175, 0x00008765 }, /* GL_BUFFER_USAGE_ARB */ - { 2195, 0x0000877B }, /* GL_BUMP_ENVMAP_ATI */ - { 2214, 0x00008777 }, /* GL_BUMP_NUM_TEX_UNITS_ATI */ - { 2240, 0x00008775 }, /* GL_BUMP_ROT_MATRIX_ATI */ - { 2263, 0x00008776 }, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */ - { 2291, 0x0000877C }, /* GL_BUMP_TARGET_ATI */ - { 2310, 0x00008778 }, /* GL_BUMP_TEX_UNITS_ATI */ - { 2332, 0x00001400 }, /* GL_BYTE */ - { 2340, 0x00002A24 }, /* GL_C3F_V3F */ - { 2351, 0x00002A26 }, /* GL_C4F_N3F_V3F */ - { 2366, 0x00002A22 }, /* GL_C4UB_V2F */ - { 2378, 0x00002A23 }, /* GL_C4UB_V3F */ - { 2390, 0x00000901 }, /* GL_CCW */ - { 2397, 0x00002900 }, /* GL_CLAMP */ - { 2406, 0x0000812D }, /* GL_CLAMP_TO_BORDER */ - { 2425, 0x0000812D }, /* GL_CLAMP_TO_BORDER_ARB */ - { 2448, 0x0000812D }, /* GL_CLAMP_TO_BORDER_SGIS */ - { 2472, 0x0000812F }, /* GL_CLAMP_TO_EDGE */ - { 2489, 0x0000812F }, /* GL_CLAMP_TO_EDGE_SGIS */ - { 2511, 0x00001500 }, /* GL_CLEAR */ - { 2520, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE */ - { 2545, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE_ARB */ - { 2574, 0xFFFFFFFF }, /* GL_CLIENT_ALL_ATTRIB_BITS */ - { 2600, 0x00000BB1 }, /* GL_CLIENT_ATTRIB_STACK_DEPTH */ - { 2629, 0x00000001 }, /* GL_CLIENT_PIXEL_STORE_BIT */ - { 2655, 0x00000002 }, /* GL_CLIENT_VERTEX_ARRAY_BIT */ - { 2682, 0x00003000 }, /* GL_CLIP_PLANE0 */ - { 2697, 0x00003001 }, /* GL_CLIP_PLANE1 */ - { 2712, 0x00003002 }, /* GL_CLIP_PLANE2 */ - { 2727, 0x00003003 }, /* GL_CLIP_PLANE3 */ - { 2742, 0x00003004 }, /* GL_CLIP_PLANE4 */ - { 2757, 0x00003005 }, /* GL_CLIP_PLANE5 */ - { 2772, 0x000080F0 }, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */ - { 2805, 0x00000A00 }, /* GL_COEFF */ - { 2814, 0x00001800 }, /* GL_COLOR */ - { 2823, 0x00008076 }, /* GL_COLOR_ARRAY */ - { 2838, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING */ - { 2868, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING_ARB */ - { 2902, 0x00008090 }, /* GL_COLOR_ARRAY_POINTER */ - { 2925, 0x00008081 }, /* GL_COLOR_ARRAY_SIZE */ - { 2945, 0x00008083 }, /* GL_COLOR_ARRAY_STRIDE */ - { 2967, 0x00008082 }, /* GL_COLOR_ARRAY_TYPE */ - { 2987, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0 */ - { 3008, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_EXT */ - { 3033, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_OES */ - { 3058, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1 */ - { 3079, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10 */ - { 3101, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10_EXT */ - { 3127, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11 */ - { 3149, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11_EXT */ - { 3175, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12 */ - { 3197, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12_EXT */ - { 3223, 0x00008CED }, /* GL_COLOR_ATTACHMENT13 */ - { 3245, 0x00008CED }, /* GL_COLOR_ATTACHMENT13_EXT */ - { 3271, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14 */ - { 3293, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14_EXT */ - { 3319, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15 */ - { 3341, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15_EXT */ - { 3367, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1_EXT */ - { 3392, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2 */ - { 3413, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2_EXT */ - { 3438, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3 */ - { 3459, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3_EXT */ - { 3484, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4 */ - { 3505, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4_EXT */ - { 3530, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5 */ - { 3551, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5_EXT */ - { 3576, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6 */ - { 3597, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6_EXT */ - { 3622, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7 */ - { 3643, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7_EXT */ - { 3668, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8 */ - { 3689, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8_EXT */ - { 3714, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9 */ - { 3735, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9_EXT */ - { 3760, 0x00004000 }, /* GL_COLOR_BUFFER_BIT */ - { 3780, 0x00000C22 }, /* GL_COLOR_CLEAR_VALUE */ - { 3801, 0x00001900 }, /* GL_COLOR_INDEX */ - { 3816, 0x00001603 }, /* GL_COLOR_INDEXES */ - { 3833, 0x00000BF2 }, /* GL_COLOR_LOGIC_OP */ - { 3851, 0x00000B57 }, /* GL_COLOR_MATERIAL */ - { 3869, 0x00000B55 }, /* GL_COLOR_MATERIAL_FACE */ - { 3892, 0x00000B56 }, /* GL_COLOR_MATERIAL_PARAMETER */ - { 3920, 0x000080B1 }, /* GL_COLOR_MATRIX */ - { 3936, 0x000080B1 }, /* GL_COLOR_MATRIX_SGI */ - { 3956, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH */ - { 3984, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH_SGI */ - { 4016, 0x00008458 }, /* GL_COLOR_SUM */ - { 4029, 0x00008458 }, /* GL_COLOR_SUM_ARB */ - { 4046, 0x000080D0 }, /* GL_COLOR_TABLE */ - { 4061, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE */ - { 4087, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_EXT */ - { 4117, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_SGI */ - { 4147, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS */ - { 4167, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS_SGI */ - { 4191, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE */ - { 4216, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_EXT */ - { 4245, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_SGI */ - { 4274, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT */ - { 4296, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_EXT */ - { 4322, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_SGI */ - { 4348, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE */ - { 4374, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_EXT */ - { 4404, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_SGI */ - { 4434, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE */ - { 4464, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_EXT */ - { 4498, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_SGI */ - { 4532, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE */ - { 4562, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_EXT */ - { 4596, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_SGI */ - { 4630, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE */ - { 4654, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_EXT */ - { 4682, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_SGI */ - { 4710, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE */ - { 4731, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE_SGI */ - { 4756, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH */ - { 4777, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_EXT */ - { 4802, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_SGI */ - { 4827, 0x00000C23 }, /* GL_COLOR_WRITEMASK */ - { 4846, 0x00008570 }, /* GL_COMBINE */ - { 4857, 0x00008503 }, /* GL_COMBINE4 */ - { 4869, 0x00008572 }, /* GL_COMBINE_ALPHA */ - { 4886, 0x00008572 }, /* GL_COMBINE_ALPHA_ARB */ - { 4907, 0x00008572 }, /* GL_COMBINE_ALPHA_EXT */ - { 4928, 0x00008570 }, /* GL_COMBINE_ARB */ - { 4943, 0x00008570 }, /* GL_COMBINE_EXT */ - { 4958, 0x00008571 }, /* GL_COMBINE_RGB */ - { 4973, 0x00008571 }, /* GL_COMBINE_RGB_ARB */ - { 4992, 0x00008571 }, /* GL_COMBINE_RGB_EXT */ - { 5011, 0x0000884E }, /* GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT */ - { 5047, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE */ - { 5071, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE_ARB */ - { 5099, 0x00001300 }, /* GL_COMPILE */ - { 5110, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */ - { 5133, 0x00008B81 }, /* GL_COMPILE_STATUS */ - { 5151, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */ - { 5171, 0x000084E9 }, /* GL_COMPRESSED_ALPHA_ARB */ - { 5195, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */ - { 5219, 0x000084EC }, /* GL_COMPRESSED_INTENSITY_ARB */ - { 5247, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */ - { 5271, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */ - { 5301, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA_ARB */ - { 5335, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE_ARB */ - { 5363, 0x000084ED }, /* GL_COMPRESSED_RGB */ - { 5381, 0x000084EE }, /* GL_COMPRESSED_RGBA */ - { 5400, 0x000084EE }, /* GL_COMPRESSED_RGBA_ARB */ - { 5423, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */ - { 5452, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */ - { 5485, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */ - { 5518, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */ - { 5551, 0x000084ED }, /* GL_COMPRESSED_RGB_ARB */ - { 5573, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */ - { 5601, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */ - { 5633, 0x00008C4A }, /* GL_COMPRESSED_SLUMINANCE */ - { 5658, 0x00008C4B }, /* GL_COMPRESSED_SLUMINANCE_ALPHA */ - { 5689, 0x00008C48 }, /* GL_COMPRESSED_SRGB */ - { 5708, 0x00008C49 }, /* GL_COMPRESSED_SRGB_ALPHA */ - { 5733, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */ - { 5763, 0x0000911C }, /* GL_CONDITION_SATISFIED */ - { 5786, 0x00008576 }, /* GL_CONSTANT */ - { 5798, 0x00008003 }, /* GL_CONSTANT_ALPHA */ - { 5816, 0x00008003 }, /* GL_CONSTANT_ALPHA_EXT */ - { 5838, 0x00008576 }, /* GL_CONSTANT_ARB */ - { 5854, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */ - { 5878, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */ - { 5900, 0x00008001 }, /* GL_CONSTANT_COLOR */ - { 5918, 0x00008001 }, /* GL_CONSTANT_COLOR_EXT */ - { 5940, 0x00008576 }, /* GL_CONSTANT_EXT */ - { 5956, 0x00008010 }, /* GL_CONVOLUTION_1D */ - { 5974, 0x00008011 }, /* GL_CONVOLUTION_2D */ - { 5992, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */ - { 6020, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */ - { 6051, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */ - { 6078, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */ - { 6109, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */ - { 6136, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */ - { 6167, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */ - { 6195, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */ - { 6227, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */ - { 6249, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */ - { 6275, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */ - { 6297, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */ - { 6323, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */ - { 6344, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */ - { 6369, 0x00008862 }, /* GL_COORD_REPLACE */ - { 6386, 0x00008862 }, /* GL_COORD_REPLACE_ARB */ - { 6407, 0x00008862 }, /* GL_COORD_REPLACE_NV */ - { 6427, 0x00008862 }, /* GL_COORD_REPLACE_OES */ - { 6448, 0x00001503 }, /* GL_COPY */ - { 6456, 0x0000150C }, /* GL_COPY_INVERTED */ - { 6473, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */ - { 6493, 0x00008F36 }, /* GL_COPY_READ_BUFFER */ - { 6513, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */ - { 6534, 0x00000B44 }, /* GL_CULL_FACE */ - { 6547, 0x00000B45 }, /* GL_CULL_FACE_MODE */ - { 6565, 0x000081AA }, /* GL_CULL_VERTEX_EXT */ - { 6584, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */ - { 6616, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */ - { 6651, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */ - { 6672, 0x00000001 }, /* GL_CURRENT_BIT */ - { 6687, 0x00000B00 }, /* GL_CURRENT_COLOR */ - { 6704, 0x00008453 }, /* GL_CURRENT_FOG_COORD */ - { 6725, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */ - { 6751, 0x00000B01 }, /* GL_CURRENT_INDEX */ - { 6768, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */ - { 6790, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */ - { 6818, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */ - { 6839, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */ - { 6873, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */ - { 6906, 0x00000B02 }, /* GL_CURRENT_NORMAL */ - { 6924, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */ - { 6954, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_OES */ - { 6984, 0x00008B8D }, /* GL_CURRENT_PROGRAM */ - { 7003, 0x00008865 }, /* GL_CURRENT_QUERY */ - { 7020, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */ - { 7041, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */ - { 7065, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */ - { 7092, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */ - { 7116, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */ - { 7143, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */ - { 7176, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */ - { 7210, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */ - { 7243, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */ - { 7270, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */ - { 7296, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */ - { 7321, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */ - { 7350, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */ - { 7372, 0x00000900 }, /* GL_CW */ - { 7378, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */ - { 7399, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */ - { 7420, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */ - { 7440, 0x00002101 }, /* GL_DECAL */ - { 7449, 0x00001E03 }, /* GL_DECR */ - { 7457, 0x00008508 }, /* GL_DECR_WRAP */ - { 7470, 0x00008508 }, /* GL_DECR_WRAP_EXT */ - { 7487, 0x00008B80 }, /* GL_DELETE_STATUS */ - { 7504, 0x00001801 }, /* GL_DEPTH */ - { 7513, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */ - { 7533, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_EXT */ - { 7557, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_OES */ - { 7581, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */ - { 7601, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */ - { 7625, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_OES */ - { 7649, 0x00000D1F }, /* GL_DEPTH_BIAS */ - { 7663, 0x00000D56 }, /* GL_DEPTH_BITS */ - { 7677, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */ - { 7697, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */ - { 7722, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */ - { 7742, 0x0000864F }, /* GL_DEPTH_CLAMP */ - { 7757, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */ - { 7775, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */ - { 7796, 0x00001902 }, /* GL_DEPTH_COMPONENT */ - { 7815, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */ - { 7836, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */ - { 7861, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_OES */ - { 7886, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */ - { 7912, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */ - { 7933, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */ - { 7958, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_OES */ - { 7983, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */ - { 8009, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */ - { 8030, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */ - { 8055, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_OES */ - { 8080, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */ - { 8106, 0x00000B74 }, /* GL_DEPTH_FUNC */ - { 8120, 0x00000B70 }, /* GL_DEPTH_RANGE */ - { 8135, 0x00000D1E }, /* GL_DEPTH_SCALE */ - { 8150, 0x000084F9 }, /* GL_DEPTH_STENCIL */ - { 8167, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */ - { 8195, 0x000084F9 }, /* GL_DEPTH_STENCIL_EXT */ - { 8216, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */ - { 8236, 0x000084F9 }, /* GL_DEPTH_STENCIL_OES */ - { 8257, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */ - { 8285, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */ - { 8313, 0x00000B71 }, /* GL_DEPTH_TEST */ - { 8327, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */ - { 8349, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */ - { 8375, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */ - { 8394, 0x00001201 }, /* GL_DIFFUSE */ - { 8405, 0x00000BD0 }, /* GL_DITHER */ - { 8415, 0x00000A02 }, /* GL_DOMAIN */ - { 8425, 0x00001100 }, /* GL_DONT_CARE */ - { 8438, 0x000086AE }, /* GL_DOT3_RGB */ - { 8450, 0x000086AF }, /* GL_DOT3_RGBA */ - { 8463, 0x000086AF }, /* GL_DOT3_RGBA_ARB */ - { 8480, 0x00008741 }, /* GL_DOT3_RGBA_EXT */ - { 8497, 0x000086AE }, /* GL_DOT3_RGB_ARB */ - { 8513, 0x00008740 }, /* GL_DOT3_RGB_EXT */ - { 8529, 0x0000140A }, /* GL_DOUBLE */ - { 8539, 0x00000C32 }, /* GL_DOUBLEBUFFER */ - { 8555, 0x00000C01 }, /* GL_DRAW_BUFFER */ - { 8570, 0x00008825 }, /* GL_DRAW_BUFFER0 */ - { 8586, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */ - { 8606, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */ - { 8626, 0x00008826 }, /* GL_DRAW_BUFFER1 */ - { 8642, 0x0000882F }, /* GL_DRAW_BUFFER10 */ - { 8659, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */ - { 8680, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */ - { 8701, 0x00008830 }, /* GL_DRAW_BUFFER11 */ - { 8718, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */ - { 8739, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */ - { 8760, 0x00008831 }, /* GL_DRAW_BUFFER12 */ - { 8777, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */ - { 8798, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */ - { 8819, 0x00008832 }, /* GL_DRAW_BUFFER13 */ - { 8836, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */ - { 8857, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */ - { 8878, 0x00008833 }, /* GL_DRAW_BUFFER14 */ - { 8895, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */ - { 8916, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */ - { 8937, 0x00008834 }, /* GL_DRAW_BUFFER15 */ - { 8954, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */ - { 8975, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */ - { 8996, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */ - { 9016, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */ - { 9036, 0x00008827 }, /* GL_DRAW_BUFFER2 */ - { 9052, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */ - { 9072, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */ - { 9092, 0x00008828 }, /* GL_DRAW_BUFFER3 */ - { 9108, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */ - { 9128, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */ - { 9148, 0x00008829 }, /* GL_DRAW_BUFFER4 */ - { 9164, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */ - { 9184, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */ - { 9204, 0x0000882A }, /* GL_DRAW_BUFFER5 */ - { 9220, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */ - { 9240, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */ - { 9260, 0x0000882B }, /* GL_DRAW_BUFFER6 */ - { 9276, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */ - { 9296, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */ - { 9316, 0x0000882C }, /* GL_DRAW_BUFFER7 */ - { 9332, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */ - { 9352, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */ - { 9372, 0x0000882D }, /* GL_DRAW_BUFFER8 */ - { 9388, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */ - { 9408, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */ - { 9428, 0x0000882E }, /* GL_DRAW_BUFFER9 */ - { 9444, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */ - { 9464, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */ - { 9484, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */ - { 9504, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING */ - { 9532, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */ - { 9564, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */ - { 9588, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */ - { 9608, 0x00000304 }, /* GL_DST_ALPHA */ - { 9621, 0x00000306 }, /* GL_DST_COLOR */ - { 9634, 0x0000877A }, /* GL_DU8DV8_ATI */ - { 9648, 0x00008779 }, /* GL_DUDV_ATI */ - { 9660, 0x000088EA }, /* GL_DYNAMIC_COPY */ - { 9676, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */ - { 9696, 0x000088E8 }, /* GL_DYNAMIC_DRAW */ - { 9712, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */ - { 9732, 0x000088E9 }, /* GL_DYNAMIC_READ */ - { 9748, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */ - { 9768, 0x00000B43 }, /* GL_EDGE_FLAG */ - { 9781, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */ - { 9800, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */ - { 9834, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */ - { 9872, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */ - { 9899, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */ - { 9925, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */ - { 9949, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */ - { 9981, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */ - { 10017, 0x00001600 }, /* GL_EMISSION */ - { 10029, 0x00002000 }, /* GL_ENABLE_BIT */ - { 10043, 0x00000202 }, /* GL_EQUAL */ - { 10052, 0x00001509 }, /* GL_EQUIV */ - { 10061, 0x00010000 }, /* GL_EVAL_BIT */ - { 10073, 0x00000800 }, /* GL_EXP */ - { 10080, 0x00000801 }, /* GL_EXP2 */ - { 10088, 0x00001F03 }, /* GL_EXTENSIONS */ - { 10102, 0x00002400 }, /* GL_EYE_LINEAR */ - { 10116, 0x00002502 }, /* GL_EYE_PLANE */ - { 10129, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */ - { 10154, 0x0000855B }, /* GL_EYE_RADIAL_NV */ - { 10171, 0x00000000 }, /* GL_FALSE */ - { 10180, 0x00001101 }, /* GL_FASTEST */ - { 10191, 0x00001C01 }, /* GL_FEEDBACK */ - { 10203, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */ - { 10230, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */ - { 10254, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */ - { 10278, 0x00001B02 }, /* GL_FILL */ - { 10286, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION */ - { 10313, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION_EXT */ - { 10344, 0x0000140C }, /* GL_FIXED */ - { 10353, 0x0000140C }, /* GL_FIXED_OES */ - { 10366, 0x00001D00 }, /* GL_FLAT */ - { 10374, 0x00001406 }, /* GL_FLOAT */ - { 10383, 0x00008B5A }, /* GL_FLOAT_MAT2 */ - { 10397, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */ - { 10415, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */ - { 10431, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */ - { 10447, 0x00008B5B }, /* GL_FLOAT_MAT3 */ - { 10461, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */ - { 10479, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */ - { 10495, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */ - { 10511, 0x00008B5C }, /* GL_FLOAT_MAT4 */ - { 10525, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */ - { 10543, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */ - { 10559, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */ - { 10575, 0x00008B50 }, /* GL_FLOAT_VEC2 */ - { 10589, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */ - { 10607, 0x00008B51 }, /* GL_FLOAT_VEC3 */ - { 10621, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */ - { 10639, 0x00008B52 }, /* GL_FLOAT_VEC4 */ - { 10653, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */ - { 10671, 0x00000B60 }, /* GL_FOG */ - { 10678, 0x00000080 }, /* GL_FOG_BIT */ - { 10689, 0x00000B66 }, /* GL_FOG_COLOR */ - { 10702, 0x00008451 }, /* GL_FOG_COORD */ - { 10715, 0x00008451 }, /* GL_FOG_COORDINATE */ - { 10733, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */ - { 10757, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */ - { 10796, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */ - { 10839, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */ - { 10871, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */ - { 10902, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */ - { 10931, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */ - { 10956, 0x00008457 }, /* GL_FOG_COORD_ARRAY */ - { 10975, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */ - { 11009, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */ - { 11036, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */ - { 11062, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */ - { 11086, 0x00008450 }, /* GL_FOG_COORD_SRC */ - { 11103, 0x00000B62 }, /* GL_FOG_DENSITY */ - { 11118, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */ - { 11142, 0x00000B64 }, /* GL_FOG_END */ - { 11153, 0x00000C54 }, /* GL_FOG_HINT */ - { 11165, 0x00000B61 }, /* GL_FOG_INDEX */ - { 11178, 0x00000B65 }, /* GL_FOG_MODE */ - { 11190, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */ - { 11209, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */ - { 11234, 0x00000B63 }, /* GL_FOG_START */ - { 11247, 0x00008452 }, /* GL_FRAGMENT_DEPTH */ - { 11265, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */ - { 11289, 0x00008B30 }, /* GL_FRAGMENT_SHADER */ - { 11308, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */ - { 11331, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */ - { 11366, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES */ - { 11405, 0x00008D40 }, /* GL_FRAMEBUFFER */ - { 11420, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ - { 11457, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ - { 11493, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ - { 11534, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ - { 11575, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ - { 11612, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ - { 11649, 0x00008DA7 }, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB */ - { 11687, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ - { 11725, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */ - { 11767, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES */ - { 11809, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ - { 11847, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */ - { 11889, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES */ - { 11931, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ - { 11966, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ - { 12005, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */ - { 12054, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES */ - { 12103, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ - { 12151, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */ - { 12203, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES */ - { 12255, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ - { 12295, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ - { 12339, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ - { 12379, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */ - { 12423, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES */ - { 12467, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING */ - { 12490, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */ - { 12517, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_OES */ - { 12544, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */ - { 12568, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */ - { 12596, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_OES */ - { 12624, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */ - { 12647, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */ - { 12666, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ - { 12703, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */ - { 12744, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES */ - { 12785, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS */ - { 12822, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */ - { 12863, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES */ - { 12904, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ - { 12942, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */ - { 12984, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES */ - { 13026, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */ - { 13077, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */ - { 13115, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES */ - { 13153, 0x00008DA9 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */ - { 13195, 0x00008DA8 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB */ - { 13239, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ - { 13284, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */ - { 13333, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES */ - { 13382, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ - { 13420, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT */ - { 13462, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ - { 13500, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */ - { 13542, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES */ - { 13584, 0x00008D40 }, /* GL_FRAMEBUFFER_OES */ - { 13603, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */ - { 13635, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */ - { 13660, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */ - { 13687, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */ - { 13718, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_OES */ - { 13749, 0x00000404 }, /* GL_FRONT */ - { 13758, 0x00000408 }, /* GL_FRONT_AND_BACK */ - { 13776, 0x00000B46 }, /* GL_FRONT_FACE */ - { 13790, 0x00000400 }, /* GL_FRONT_LEFT */ - { 13804, 0x00000401 }, /* GL_FRONT_RIGHT */ - { 13819, 0x00008006 }, /* GL_FUNC_ADD */ - { 13831, 0x00008006 }, /* GL_FUNC_ADD_EXT */ - { 13847, 0x00008006 }, /* GL_FUNC_ADD_OES */ - { 13863, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */ - { 13888, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */ - { 13917, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_OES */ - { 13946, 0x0000800A }, /* GL_FUNC_SUBTRACT */ - { 13963, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */ - { 13984, 0x0000800A }, /* GL_FUNC_SUBTRACT_OES */ - { 14005, 0x00008191 }, /* GL_GENERATE_MIPMAP */ - { 14024, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */ - { 14048, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */ - { 14077, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */ - { 14101, 0x00008DDB }, /* GL_GEOMETRY_INPUT_TYPE_ARB */ - { 14128, 0x00008DDC }, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */ - { 14156, 0x00008DD9 }, /* GL_GEOMETRY_SHADER_ARB */ - { 14179, 0x00008DDA }, /* GL_GEOMETRY_VERTICES_OUT_ARB */ - { 14208, 0x00000206 }, /* GL_GEQUAL */ - { 14218, 0x00000204 }, /* GL_GREATER */ - { 14229, 0x00001904 }, /* GL_GREEN */ - { 14238, 0x00000D19 }, /* GL_GREEN_BIAS */ - { 14252, 0x00000D53 }, /* GL_GREEN_BITS */ - { 14266, 0x00000D18 }, /* GL_GREEN_SCALE */ - { 14281, 0x0000140B }, /* GL_HALF_FLOAT */ - { 14295, 0x00008D61 }, /* GL_HALF_FLOAT_OES */ - { 14313, 0x00008DF2 }, /* GL_HIGH_FLOAT */ - { 14327, 0x00008DF5 }, /* GL_HIGH_INT */ - { 14339, 0x00008000 }, /* GL_HINT_BIT */ - { 14351, 0x00008024 }, /* GL_HISTOGRAM */ - { 14364, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */ - { 14388, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */ - { 14416, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */ - { 14439, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */ - { 14466, 0x00008024 }, /* GL_HISTOGRAM_EXT */ - { 14483, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */ - { 14503, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */ - { 14527, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */ - { 14551, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */ - { 14579, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */ - { 14607, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */ - { 14639, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */ - { 14661, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */ - { 14687, 0x0000802D }, /* GL_HISTOGRAM_SINK */ - { 14705, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */ - { 14727, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */ - { 14746, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */ - { 14769, 0x0000862A }, /* GL_IDENTITY_NV */ - { 14784, 0x00008150 }, /* GL_IGNORE_BORDER_HP */ - { 14804, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */ - { 14840, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */ - { 14880, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */ - { 14914, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */ - { 14952, 0x00001E02 }, /* GL_INCR */ - { 14960, 0x00008507 }, /* GL_INCR_WRAP */ - { 14973, 0x00008507 }, /* GL_INCR_WRAP_EXT */ - { 14990, 0x00008222 }, /* GL_INDEX */ - { 14999, 0x00008077 }, /* GL_INDEX_ARRAY */ - { 15014, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */ - { 15044, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */ - { 15078, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */ - { 15101, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */ - { 15123, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */ - { 15143, 0x00000D51 }, /* GL_INDEX_BITS */ - { 15157, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */ - { 15178, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */ - { 15196, 0x00000C30 }, /* GL_INDEX_MODE */ - { 15210, 0x00000D13 }, /* GL_INDEX_OFFSET */ - { 15226, 0x00000D12 }, /* GL_INDEX_SHIFT */ - { 15241, 0x00000C21 }, /* GL_INDEX_WRITEMASK */ - { 15260, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */ - { 15279, 0x00001404 }, /* GL_INT */ - { 15286, 0x00008049 }, /* GL_INTENSITY */ - { 15299, 0x0000804C }, /* GL_INTENSITY12 */ - { 15314, 0x0000804C }, /* GL_INTENSITY12_EXT */ - { 15333, 0x0000804D }, /* GL_INTENSITY16 */ - { 15348, 0x0000804D }, /* GL_INTENSITY16_EXT */ - { 15367, 0x0000804A }, /* GL_INTENSITY4 */ - { 15381, 0x0000804A }, /* GL_INTENSITY4_EXT */ - { 15399, 0x0000804B }, /* GL_INTENSITY8 */ - { 15413, 0x0000804B }, /* GL_INTENSITY8_EXT */ - { 15431, 0x00008049 }, /* GL_INTENSITY_EXT */ - { 15448, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS_EXT */ - { 15475, 0x00008575 }, /* GL_INTERPOLATE */ - { 15490, 0x00008575 }, /* GL_INTERPOLATE_ARB */ - { 15509, 0x00008575 }, /* GL_INTERPOLATE_EXT */ - { 15528, 0x00008DF7 }, /* GL_INT_10_10_10_2_OES */ - { 15550, 0x00008B53 }, /* GL_INT_VEC2 */ - { 15562, 0x00008B53 }, /* GL_INT_VEC2_ARB */ - { 15578, 0x00008B54 }, /* GL_INT_VEC3 */ - { 15590, 0x00008B54 }, /* GL_INT_VEC3_ARB */ - { 15606, 0x00008B55 }, /* GL_INT_VEC4 */ - { 15618, 0x00008B55 }, /* GL_INT_VEC4_ARB */ - { 15634, 0x00000500 }, /* GL_INVALID_ENUM */ - { 15650, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */ - { 15683, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */ - { 15720, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_OES */ - { 15757, 0x00000502 }, /* GL_INVALID_OPERATION */ - { 15778, 0x00000501 }, /* GL_INVALID_VALUE */ - { 15795, 0x0000862B }, /* GL_INVERSE_NV */ - { 15809, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */ - { 15833, 0x0000150A }, /* GL_INVERT */ - { 15843, 0x00001E00 }, /* GL_KEEP */ - { 15851, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */ - { 15877, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */ - { 15907, 0x00000406 }, /* GL_LEFT */ - { 15915, 0x00000203 }, /* GL_LEQUAL */ - { 15925, 0x00000201 }, /* GL_LESS */ - { 15933, 0x00004000 }, /* GL_LIGHT0 */ - { 15943, 0x00004001 }, /* GL_LIGHT1 */ - { 15953, 0x00004002 }, /* GL_LIGHT2 */ - { 15963, 0x00004003 }, /* GL_LIGHT3 */ - { 15973, 0x00004004 }, /* GL_LIGHT4 */ - { 15983, 0x00004005 }, /* GL_LIGHT5 */ - { 15993, 0x00004006 }, /* GL_LIGHT6 */ - { 16003, 0x00004007 }, /* GL_LIGHT7 */ - { 16013, 0x00000B50 }, /* GL_LIGHTING */ - { 16025, 0x00000040 }, /* GL_LIGHTING_BIT */ - { 16041, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */ - { 16064, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */ - { 16093, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */ - { 16126, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ - { 16154, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */ - { 16178, 0x00001B01 }, /* GL_LINE */ - { 16186, 0x00002601 }, /* GL_LINEAR */ - { 16196, 0x00001208 }, /* GL_LINEAR_ATTENUATION */ - { 16218, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ - { 16248, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ - { 16279, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */ - { 16303, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */ - { 16328, 0x00000001 }, /* GL_LINES */ - { 16337, 0x0000000A }, /* GL_LINES_ADJACENCY_ARB */ - { 16360, 0x00000004 }, /* GL_LINE_BIT */ - { 16372, 0x00000002 }, /* GL_LINE_LOOP */ - { 16385, 0x00000707 }, /* GL_LINE_RESET_TOKEN */ - { 16405, 0x00000B20 }, /* GL_LINE_SMOOTH */ - { 16420, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */ - { 16440, 0x00000B24 }, /* GL_LINE_STIPPLE */ - { 16456, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */ - { 16480, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */ - { 16503, 0x00000003 }, /* GL_LINE_STRIP */ - { 16517, 0x0000000B }, /* GL_LINE_STRIP_ADJACENCY_ARB */ - { 16545, 0x00000702 }, /* GL_LINE_TOKEN */ - { 16559, 0x00000B21 }, /* GL_LINE_WIDTH */ - { 16573, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */ - { 16599, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */ - { 16619, 0x00008B82 }, /* GL_LINK_STATUS */ - { 16634, 0x00000B32 }, /* GL_LIST_BASE */ - { 16647, 0x00020000 }, /* GL_LIST_BIT */ - { 16659, 0x00000B33 }, /* GL_LIST_INDEX */ - { 16673, 0x00000B30 }, /* GL_LIST_MODE */ - { 16686, 0x00000101 }, /* GL_LOAD */ - { 16694, 0x00000BF1 }, /* GL_LOGIC_OP */ - { 16706, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */ - { 16723, 0x00008CA1 }, /* GL_LOWER_LEFT */ - { 16737, 0x00008DF0 }, /* GL_LOW_FLOAT */ - { 16750, 0x00008DF3 }, /* GL_LOW_INT */ - { 16761, 0x00001909 }, /* GL_LUMINANCE */ - { 16774, 0x00008041 }, /* GL_LUMINANCE12 */ - { 16789, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */ - { 16812, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */ - { 16839, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */ - { 16861, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */ - { 16887, 0x00008041 }, /* GL_LUMINANCE12_EXT */ - { 16906, 0x00008042 }, /* GL_LUMINANCE16 */ - { 16921, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */ - { 16944, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */ - { 16971, 0x00008042 }, /* GL_LUMINANCE16_EXT */ - { 16990, 0x0000803F }, /* GL_LUMINANCE4 */ - { 17004, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */ - { 17025, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */ - { 17050, 0x0000803F }, /* GL_LUMINANCE4_EXT */ - { 17068, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */ - { 17089, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */ - { 17114, 0x00008040 }, /* GL_LUMINANCE8 */ - { 17128, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */ - { 17149, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */ - { 17174, 0x00008040 }, /* GL_LUMINANCE8_EXT */ - { 17192, 0x0000190A }, /* GL_LUMINANCE_ALPHA */ - { 17211, 0x00000D90 }, /* GL_MAP1_COLOR_4 */ - { 17227, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */ - { 17247, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */ - { 17269, 0x00000D91 }, /* GL_MAP1_INDEX */ - { 17283, 0x00000D92 }, /* GL_MAP1_NORMAL */ - { 17298, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */ - { 17322, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */ - { 17346, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */ - { 17370, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */ - { 17394, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */ - { 17411, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */ - { 17428, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ - { 17456, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ - { 17485, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ - { 17514, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ - { 17543, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ - { 17572, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ - { 17601, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ - { 17630, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ - { 17658, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ - { 17686, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ - { 17714, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ - { 17742, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ - { 17770, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ - { 17798, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ - { 17826, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ - { 17854, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ - { 17882, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */ - { 17898, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */ - { 17918, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */ - { 17940, 0x00000DB1 }, /* GL_MAP2_INDEX */ - { 17954, 0x00000DB2 }, /* GL_MAP2_NORMAL */ - { 17969, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */ - { 17993, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */ - { 18017, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */ - { 18041, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */ - { 18065, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */ - { 18082, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */ - { 18099, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ - { 18127, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ - { 18156, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ - { 18185, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ - { 18214, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ - { 18243, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ - { 18272, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ - { 18301, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ - { 18329, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ - { 18357, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ - { 18385, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ - { 18413, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ - { 18441, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ - { 18469, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */ - { 18497, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ - { 18525, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ - { 18553, 0x00000D10 }, /* GL_MAP_COLOR */ - { 18566, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */ - { 18592, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */ - { 18621, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */ - { 18649, 0x00000001 }, /* GL_MAP_READ_BIT */ - { 18665, 0x00000D11 }, /* GL_MAP_STENCIL */ - { 18680, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */ - { 18706, 0x00000002 }, /* GL_MAP_WRITE_BIT */ - { 18723, 0x000088C0 }, /* GL_MATRIX0_ARB */ - { 18738, 0x00008630 }, /* GL_MATRIX0_NV */ - { 18752, 0x000088CA }, /* GL_MATRIX10_ARB */ - { 18768, 0x000088CB }, /* GL_MATRIX11_ARB */ - { 18784, 0x000088CC }, /* GL_MATRIX12_ARB */ - { 18800, 0x000088CD }, /* GL_MATRIX13_ARB */ - { 18816, 0x000088CE }, /* GL_MATRIX14_ARB */ - { 18832, 0x000088CF }, /* GL_MATRIX15_ARB */ - { 18848, 0x000088D0 }, /* GL_MATRIX16_ARB */ - { 18864, 0x000088D1 }, /* GL_MATRIX17_ARB */ - { 18880, 0x000088D2 }, /* GL_MATRIX18_ARB */ - { 18896, 0x000088D3 }, /* GL_MATRIX19_ARB */ - { 18912, 0x000088C1 }, /* GL_MATRIX1_ARB */ - { 18927, 0x00008631 }, /* GL_MATRIX1_NV */ - { 18941, 0x000088D4 }, /* GL_MATRIX20_ARB */ - { 18957, 0x000088D5 }, /* GL_MATRIX21_ARB */ - { 18973, 0x000088D6 }, /* GL_MATRIX22_ARB */ - { 18989, 0x000088D7 }, /* GL_MATRIX23_ARB */ - { 19005, 0x000088D8 }, /* GL_MATRIX24_ARB */ - { 19021, 0x000088D9 }, /* GL_MATRIX25_ARB */ - { 19037, 0x000088DA }, /* GL_MATRIX26_ARB */ - { 19053, 0x000088DB }, /* GL_MATRIX27_ARB */ - { 19069, 0x000088DC }, /* GL_MATRIX28_ARB */ - { 19085, 0x000088DD }, /* GL_MATRIX29_ARB */ - { 19101, 0x000088C2 }, /* GL_MATRIX2_ARB */ - { 19116, 0x00008632 }, /* GL_MATRIX2_NV */ - { 19130, 0x000088DE }, /* GL_MATRIX30_ARB */ - { 19146, 0x000088DF }, /* GL_MATRIX31_ARB */ - { 19162, 0x000088C3 }, /* GL_MATRIX3_ARB */ - { 19177, 0x00008633 }, /* GL_MATRIX3_NV */ - { 19191, 0x000088C4 }, /* GL_MATRIX4_ARB */ - { 19206, 0x00008634 }, /* GL_MATRIX4_NV */ - { 19220, 0x000088C5 }, /* GL_MATRIX5_ARB */ - { 19235, 0x00008635 }, /* GL_MATRIX5_NV */ - { 19249, 0x000088C6 }, /* GL_MATRIX6_ARB */ - { 19264, 0x00008636 }, /* GL_MATRIX6_NV */ - { 19278, 0x000088C7 }, /* GL_MATRIX7_ARB */ - { 19293, 0x00008637 }, /* GL_MATRIX7_NV */ - { 19307, 0x000088C8 }, /* GL_MATRIX8_ARB */ - { 19322, 0x000088C9 }, /* GL_MATRIX9_ARB */ - { 19337, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */ - { 19363, 0x00008B9E }, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */ - { 19404, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_OES */ - { 19430, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ - { 19464, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_OES */ - { 19498, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ - { 19529, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_OES */ - { 19560, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ - { 19593, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_OES */ - { 19626, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ - { 19657, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_OES */ - { 19688, 0x00000BA0 }, /* GL_MATRIX_MODE */ - { 19703, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */ - { 19725, 0x00008840 }, /* GL_MATRIX_PALETTE_OES */ - { 19747, 0x00008008 }, /* GL_MAX */ - { 19754, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */ - { 19777, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE_OES */ - { 19804, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */ - { 19836, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */ - { 19862, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ - { 19895, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ - { 19921, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - { 19955, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */ - { 19974, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */ - { 19999, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */ - { 20028, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ - { 20060, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */ - { 20096, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ - { 20132, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */ - { 20172, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */ - { 20198, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */ - { 20228, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */ - { 20253, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */ - { 20282, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ - { 20311, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */ - { 20344, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES */ - { 20377, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */ - { 20397, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */ - { 20421, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */ - { 20445, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */ - { 20469, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */ - { 20494, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */ - { 20512, 0x00008008 }, /* GL_MAX_EXT */ - { 20523, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ - { 20558, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */ - { 20597, 0x00008DFD }, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */ - { 20629, 0x00008DE0 }, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB */ - { 20665, 0x00008C29 }, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB */ - { 20705, 0x00008DE1 }, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB */ - { 20749, 0x00008DDF }, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB */ - { 20788, 0x00008DDD }, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */ - { 20827, 0x00000D31 }, /* GL_MAX_LIGHTS */ - { 20841, 0x00000B31 }, /* GL_MAX_LIST_NESTING */ - { 20861, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ - { 20899, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */ - { 20928, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */ - { 20952, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */ - { 20980, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_OES */ - { 21008, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */ - { 21031, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ - { 21068, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ - { 21104, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ - { 21131, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ - { 21160, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ - { 21194, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ - { 21230, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ - { 21257, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ - { 21289, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ - { 21325, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ - { 21354, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ - { 21383, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */ - { 21411, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ - { 21449, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - { 21493, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - { 21536, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ - { 21570, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - { 21609, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ - { 21646, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ - { 21684, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - { 21727, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - { 21770, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ - { 21800, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ - { 21831, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ - { 21867, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ - { 21903, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */ - { 21933, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ - { 21967, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */ - { 22000, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */ - { 22025, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */ - { 22054, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_OES */ - { 22083, 0x00008D57 }, /* GL_MAX_SAMPLES */ - { 22098, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */ - { 22117, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */ - { 22144, 0x00008504 }, /* GL_MAX_SHININESS_NV */ - { 22164, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */ - { 22188, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */ - { 22210, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */ - { 22236, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */ - { 22263, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */ - { 22294, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */ - { 22318, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS_EXT */ - { 22346, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ - { 22380, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */ - { 22400, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */ - { 22427, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */ - { 22448, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */ - { 22473, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */ - { 22498, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */ - { 22533, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */ - { 22586, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */ - { 22633, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */ - { 22683, 0x00008B4B }, /* GL_MAX_VARYING_COMPONENTS */ - { 22709, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */ - { 22731, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */ - { 22757, 0x00008DFC }, /* GL_MAX_VARYING_VECTORS */ - { 22780, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */ - { 22802, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */ - { 22828, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ - { 22862, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ - { 22900, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ - { 22933, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */ - { 22970, 0x00008DFB }, /* GL_MAX_VERTEX_UNIFORM_VECTORS */ - { 23000, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */ - { 23024, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_OES */ - { 23048, 0x00008DDE }, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */ - { 23085, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */ - { 23106, 0x00008DF1 }, /* GL_MEDIUM_FLOAT */ - { 23122, 0x00008DF4 }, /* GL_MEDIUM_INT */ - { 23136, 0x00008007 }, /* GL_MIN */ - { 23143, 0x0000802E }, /* GL_MINMAX */ - { 23153, 0x0000802E }, /* GL_MINMAX_EXT */ - { 23167, 0x0000802F }, /* GL_MINMAX_FORMAT */ - { 23184, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */ - { 23205, 0x00008030 }, /* GL_MINMAX_SINK */ - { 23220, 0x00008030 }, /* GL_MINMAX_SINK_EXT */ - { 23239, 0x00008007 }, /* GL_MIN_EXT */ - { 23250, 0x00008370 }, /* GL_MIRRORED_REPEAT */ - { 23269, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */ - { 23292, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */ - { 23315, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */ - { 23335, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */ - { 23355, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ - { 23385, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */ - { 23413, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ - { 23441, 0x00001700 }, /* GL_MODELVIEW */ - { 23454, 0x00001700 }, /* GL_MODELVIEW0_ARB */ - { 23472, 0x0000872A }, /* GL_MODELVIEW10_ARB */ - { 23491, 0x0000872B }, /* GL_MODELVIEW11_ARB */ - { 23510, 0x0000872C }, /* GL_MODELVIEW12_ARB */ - { 23529, 0x0000872D }, /* GL_MODELVIEW13_ARB */ - { 23548, 0x0000872E }, /* GL_MODELVIEW14_ARB */ - { 23567, 0x0000872F }, /* GL_MODELVIEW15_ARB */ - { 23586, 0x00008730 }, /* GL_MODELVIEW16_ARB */ - { 23605, 0x00008731 }, /* GL_MODELVIEW17_ARB */ - { 23624, 0x00008732 }, /* GL_MODELVIEW18_ARB */ - { 23643, 0x00008733 }, /* GL_MODELVIEW19_ARB */ - { 23662, 0x0000850A }, /* GL_MODELVIEW1_ARB */ - { 23680, 0x00008734 }, /* GL_MODELVIEW20_ARB */ - { 23699, 0x00008735 }, /* GL_MODELVIEW21_ARB */ - { 23718, 0x00008736 }, /* GL_MODELVIEW22_ARB */ - { 23737, 0x00008737 }, /* GL_MODELVIEW23_ARB */ - { 23756, 0x00008738 }, /* GL_MODELVIEW24_ARB */ - { 23775, 0x00008739 }, /* GL_MODELVIEW25_ARB */ - { 23794, 0x0000873A }, /* GL_MODELVIEW26_ARB */ - { 23813, 0x0000873B }, /* GL_MODELVIEW27_ARB */ - { 23832, 0x0000873C }, /* GL_MODELVIEW28_ARB */ - { 23851, 0x0000873D }, /* GL_MODELVIEW29_ARB */ - { 23870, 0x00008722 }, /* GL_MODELVIEW2_ARB */ - { 23888, 0x0000873E }, /* GL_MODELVIEW30_ARB */ - { 23907, 0x0000873F }, /* GL_MODELVIEW31_ARB */ - { 23926, 0x00008723 }, /* GL_MODELVIEW3_ARB */ - { 23944, 0x00008724 }, /* GL_MODELVIEW4_ARB */ - { 23962, 0x00008725 }, /* GL_MODELVIEW5_ARB */ - { 23980, 0x00008726 }, /* GL_MODELVIEW6_ARB */ - { 23998, 0x00008727 }, /* GL_MODELVIEW7_ARB */ - { 24016, 0x00008728 }, /* GL_MODELVIEW8_ARB */ - { 24034, 0x00008729 }, /* GL_MODELVIEW9_ARB */ - { 24052, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */ - { 24072, 0x0000898D }, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */ - { 24114, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */ - { 24141, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */ - { 24166, 0x00002100 }, /* GL_MODULATE */ - { 24178, 0x00008744 }, /* GL_MODULATE_ADD_ATI */ - { 24198, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */ - { 24225, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */ - { 24250, 0x00000103 }, /* GL_MULT */ - { 24258, 0x0000809D }, /* GL_MULTISAMPLE */ - { 24273, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */ - { 24293, 0x0000809D }, /* GL_MULTISAMPLE_ARB */ - { 24312, 0x20000000 }, /* GL_MULTISAMPLE_BIT */ - { 24331, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */ - { 24355, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */ - { 24378, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */ - { 24408, 0x00002A25 }, /* GL_N3F_V3F */ - { 24419, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */ - { 24439, 0x0000150E }, /* GL_NAND */ - { 24447, 0x00002600 }, /* GL_NEAREST */ - { 24458, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ - { 24489, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ - { 24521, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */ - { 24546, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */ - { 24572, 0x00000200 }, /* GL_NEVER */ - { 24581, 0x00001102 }, /* GL_NICEST */ - { 24591, 0x00000000 }, /* GL_NONE */ - { 24599, 0x00000000 }, /* GL_NONE_OES */ - { 24611, 0x00001505 }, /* GL_NOOP */ - { 24619, 0x00001508 }, /* GL_NOR */ - { 24626, 0x00000BA1 }, /* GL_NORMALIZE */ - { 24639, 0x00008075 }, /* GL_NORMAL_ARRAY */ - { 24655, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ - { 24686, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */ - { 24721, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */ - { 24745, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */ - { 24768, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */ - { 24789, 0x00008511 }, /* GL_NORMAL_MAP */ - { 24803, 0x00008511 }, /* GL_NORMAL_MAP_ARB */ - { 24821, 0x00008511 }, /* GL_NORMAL_MAP_NV */ - { 24838, 0x00008511 }, /* GL_NORMAL_MAP_OES */ - { 24856, 0x00000205 }, /* GL_NOTEQUAL */ - { 24868, 0x00000000 }, /* GL_NO_ERROR */ - { 24880, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ - { 24914, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */ - { 24952, 0x000087FE }, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */ - { 24986, 0x00008DF9 }, /* GL_NUM_SHADER_BINARY_FORMATS */ - { 25015, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */ - { 25047, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */ - { 25089, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */ - { 25119, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */ - { 25159, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */ - { 25190, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */ - { 25219, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */ - { 25247, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */ - { 25277, 0x00002401 }, /* GL_OBJECT_LINEAR */ - { 25294, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */ - { 25320, 0x00002501 }, /* GL_OBJECT_PLANE */ - { 25336, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */ - { 25371, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */ - { 25393, 0x00009112 }, /* GL_OBJECT_TYPE */ - { 25408, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */ - { 25427, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */ - { 25457, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */ - { 25478, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */ - { 25506, 0x00000001 }, /* GL_ONE */ - { 25513, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */ - { 25541, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */ - { 25573, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */ - { 25601, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */ - { 25633, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */ - { 25656, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */ - { 25679, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */ - { 25702, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */ - { 25725, 0x00008598 }, /* GL_OPERAND0_ALPHA */ - { 25743, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */ - { 25765, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */ - { 25787, 0x00008590 }, /* GL_OPERAND0_RGB */ - { 25803, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */ - { 25823, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */ - { 25843, 0x00008599 }, /* GL_OPERAND1_ALPHA */ - { 25861, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */ - { 25883, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */ - { 25905, 0x00008591 }, /* GL_OPERAND1_RGB */ - { 25921, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */ - { 25941, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */ - { 25961, 0x0000859A }, /* GL_OPERAND2_ALPHA */ - { 25979, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */ - { 26001, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */ - { 26023, 0x00008592 }, /* GL_OPERAND2_RGB */ - { 26039, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */ - { 26059, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */ - { 26079, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */ - { 26100, 0x00008593 }, /* GL_OPERAND3_RGB_NV */ - { 26119, 0x00001507 }, /* GL_OR */ - { 26125, 0x00000A01 }, /* GL_ORDER */ - { 26134, 0x0000150D }, /* GL_OR_INVERTED */ - { 26149, 0x0000150B }, /* GL_OR_REVERSE */ - { 26163, 0x00000505 }, /* GL_OUT_OF_MEMORY */ - { 26180, 0x00000D05 }, /* GL_PACK_ALIGNMENT */ - { 26198, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */ - { 26219, 0x00008758 }, /* GL_PACK_INVERT_MESA */ - { 26239, 0x00000D01 }, /* GL_PACK_LSB_FIRST */ - { 26257, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */ - { 26276, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */ - { 26296, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */ - { 26316, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */ - { 26334, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */ - { 26353, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */ - { 26378, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */ - { 26402, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */ - { 26423, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */ - { 26445, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */ - { 26467, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */ - { 26492, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */ - { 26516, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */ - { 26537, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */ - { 26559, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */ - { 26581, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */ - { 26603, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */ - { 26634, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */ - { 26654, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */ - { 26679, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */ - { 26699, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */ - { 26724, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */ - { 26744, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */ - { 26769, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */ - { 26789, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */ - { 26814, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */ - { 26834, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */ - { 26859, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */ - { 26879, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */ - { 26904, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */ - { 26924, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */ - { 26949, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */ - { 26969, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */ - { 26994, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */ - { 27014, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */ - { 27039, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */ - { 27059, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */ - { 27084, 0x00000020 }, /* GL_PIXEL_MODE_BIT */ - { 27102, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */ - { 27123, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */ - { 27152, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */ - { 27185, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */ - { 27210, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */ - { 27233, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ - { 27264, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */ - { 27299, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */ - { 27326, 0x00001B00 }, /* GL_POINT */ - { 27335, 0x00000000 }, /* GL_POINTS */ - { 27345, 0x00000002 }, /* GL_POINT_BIT */ - { 27358, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */ - { 27388, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */ - { 27422, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */ - { 27456, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */ - { 27491, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */ - { 27520, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */ - { 27553, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */ - { 27586, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */ - { 27620, 0x00000B11 }, /* GL_POINT_SIZE */ - { 27634, 0x00008B9F }, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */ - { 27673, 0x00008B9C }, /* GL_POINT_SIZE_ARRAY_OES */ - { 27697, 0x0000898C }, /* GL_POINT_SIZE_ARRAY_POINTER_OES */ - { 27729, 0x0000898B }, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */ - { 27760, 0x0000898A }, /* GL_POINT_SIZE_ARRAY_TYPE_OES */ - { 27789, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */ - { 27815, 0x00008127 }, /* GL_POINT_SIZE_MAX */ - { 27833, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */ - { 27855, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */ - { 27877, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */ - { 27900, 0x00008126 }, /* GL_POINT_SIZE_MIN */ - { 27918, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */ - { 27940, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */ - { 27962, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */ - { 27985, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */ - { 28005, 0x00000B10 }, /* GL_POINT_SMOOTH */ - { 28021, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */ - { 28042, 0x00008861 }, /* GL_POINT_SPRITE */ - { 28058, 0x00008861 }, /* GL_POINT_SPRITE_ARB */ - { 28078, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */ - { 28107, 0x00008861 }, /* GL_POINT_SPRITE_NV */ - { 28126, 0x00008861 }, /* GL_POINT_SPRITE_OES */ - { 28146, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */ - { 28172, 0x00000701 }, /* GL_POINT_TOKEN */ - { 28187, 0x00000009 }, /* GL_POLYGON */ - { 28198, 0x00000008 }, /* GL_POLYGON_BIT */ - { 28213, 0x00000B40 }, /* GL_POLYGON_MODE */ - { 28229, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */ - { 28252, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */ - { 28277, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */ - { 28300, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */ - { 28323, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */ - { 28347, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */ - { 28371, 0x00000B41 }, /* GL_POLYGON_SMOOTH */ - { 28389, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */ - { 28412, 0x00000B42 }, /* GL_POLYGON_STIPPLE */ - { 28431, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */ - { 28454, 0x00000703 }, /* GL_POLYGON_TOKEN */ - { 28471, 0x00001203 }, /* GL_POSITION */ - { 28483, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ - { 28515, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */ - { 28551, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ - { 28584, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */ - { 28621, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ - { 28652, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */ - { 28687, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ - { 28719, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */ - { 28755, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ - { 28788, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ - { 28820, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */ - { 28856, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ - { 28889, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */ - { 28926, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */ - { 28956, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */ - { 28990, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */ - { 29021, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */ - { 29056, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ - { 29087, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */ - { 29122, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ - { 29154, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */ - { 29190, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */ - { 29220, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */ - { 29254, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */ - { 29285, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */ - { 29320, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */ - { 29352, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */ - { 29383, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */ - { 29418, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */ - { 29450, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */ - { 29486, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */ - { 29515, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */ - { 29548, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */ - { 29578, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */ - { 29612, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ - { 29651, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ - { 29684, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ - { 29724, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ - { 29758, 0x00008578 }, /* GL_PREVIOUS */ - { 29770, 0x00008578 }, /* GL_PREVIOUS_ARB */ - { 29786, 0x00008578 }, /* GL_PREVIOUS_EXT */ - { 29802, 0x00008577 }, /* GL_PRIMARY_COLOR */ - { 29819, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */ - { 29840, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */ - { 29861, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED_EXT */ - { 29889, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ - { 29922, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ - { 29954, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */ - { 29977, 0x000087FF }, /* GL_PROGRAM_BINARY_FORMATS_OES */ - { 30007, 0x00008741 }, /* GL_PROGRAM_BINARY_LENGTH_OES */ - { 30036, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */ - { 30059, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */ - { 30089, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */ - { 30118, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */ - { 30146, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */ - { 30168, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */ - { 30196, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */ - { 30224, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */ - { 30246, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */ - { 30267, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - { 30307, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - { 30346, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ - { 30376, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - { 30411, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ - { 30444, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ - { 30478, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - { 30517, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - { 30556, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */ - { 30578, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */ - { 30604, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */ - { 30628, 0x00008642 }, /* GL_PROGRAM_POINT_SIZE_ARB */ - { 30654, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */ - { 30677, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */ - { 30699, 0x00008628 }, /* GL_PROGRAM_STRING_NV */ - { 30720, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */ - { 30741, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */ - { 30768, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ - { 30800, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ - { 30832, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ - { 30867, 0x00001701 }, /* GL_PROJECTION */ - { 30881, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */ - { 30902, 0x0000898E }, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */ - { 30945, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */ - { 30971, 0x00008E4F }, /* GL_PROVOKING_VERTEX */ - { 30991, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */ - { 31015, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */ - { 31036, 0x00008025 }, /* GL_PROXY_HISTOGRAM */ - { 31055, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */ - { 31078, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ - { 31117, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ - { 31155, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */ - { 31175, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ - { 31205, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */ - { 31229, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */ - { 31249, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */ - { 31279, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */ - { 31303, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */ - { 31323, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ - { 31356, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */ - { 31382, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */ - { 31412, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ - { 31443, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */ - { 31473, 0x00008A1D }, /* GL_PURGEABLE_APPLE */ - { 31492, 0x00002003 }, /* GL_Q */ - { 31497, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */ - { 31522, 0x00000007 }, /* GL_QUADS */ - { 31531, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ - { 31575, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */ - { 31623, 0x00008614 }, /* GL_QUAD_MESH_SUN */ - { 31640, 0x00000008 }, /* GL_QUAD_STRIP */ - { 31654, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */ - { 31684, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */ - { 31711, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */ - { 31733, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */ - { 31759, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */ - { 31779, 0x00008866 }, /* GL_QUERY_RESULT */ - { 31795, 0x00008866 }, /* GL_QUERY_RESULT_ARB */ - { 31815, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */ - { 31841, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */ - { 31871, 0x00008E13 }, /* GL_QUERY_WAIT_NV */ - { 31888, 0x00002002 }, /* GL_R */ - { 31893, 0x00002A10 }, /* GL_R3_G3_B2 */ - { 31905, 0x00008C89 }, /* GL_RASTERIZER_DISCARD_EXT */ - { 31931, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ - { 31964, 0x00000C02 }, /* GL_READ_BUFFER */ - { 31979, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */ - { 31999, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */ - { 32027, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */ - { 32059, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */ - { 32083, 0x000088B8 }, /* GL_READ_ONLY */ - { 32096, 0x000088B8 }, /* GL_READ_ONLY_ARB */ - { 32113, 0x000088BA }, /* GL_READ_WRITE */ - { 32127, 0x000088BA }, /* GL_READ_WRITE_ARB */ - { 32145, 0x00001903 }, /* GL_RED */ - { 32152, 0x00008016 }, /* GL_REDUCE */ - { 32162, 0x00008016 }, /* GL_REDUCE_EXT */ - { 32176, 0x00000D15 }, /* GL_RED_BIAS */ - { 32188, 0x00000D52 }, /* GL_RED_BITS */ - { 32200, 0x00000D14 }, /* GL_RED_SCALE */ - { 32213, 0x00008512 }, /* GL_REFLECTION_MAP */ - { 32231, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */ - { 32253, 0x00008512 }, /* GL_REFLECTION_MAP_NV */ - { 32274, 0x00008512 }, /* GL_REFLECTION_MAP_OES */ - { 32296, 0x00008A19 }, /* GL_RELEASED_APPLE */ - { 32314, 0x00001C00 }, /* GL_RENDER */ - { 32324, 0x00008D41 }, /* GL_RENDERBUFFER */ - { 32340, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */ - { 32367, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE_OES */ - { 32398, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */ - { 32422, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */ - { 32450, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_OES */ - { 32478, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */ - { 32504, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE_OES */ - { 32534, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */ - { 32561, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE_OES */ - { 32592, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */ - { 32612, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */ - { 32639, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE_OES */ - { 32670, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */ - { 32693, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */ - { 32720, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_OES */ - { 32747, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ - { 32779, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */ - { 32815, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_OES */ - { 32851, 0x00008D41 }, /* GL_RENDERBUFFER_OES */ - { 32871, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */ - { 32896, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE_OES */ - { 32925, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */ - { 32949, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */ - { 32977, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */ - { 33006, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE_OES */ - { 33039, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */ - { 33061, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */ - { 33087, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_OES */ - { 33113, 0x00001F01 }, /* GL_RENDERER */ - { 33125, 0x00000C40 }, /* GL_RENDER_MODE */ - { 33140, 0x00002901 }, /* GL_REPEAT */ - { 33150, 0x00001E01 }, /* GL_REPLACE */ - { 33161, 0x00008062 }, /* GL_REPLACE_EXT */ - { 33176, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */ - { 33199, 0x0000803A }, /* GL_RESCALE_NORMAL */ - { 33217, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */ - { 33239, 0x00008A1B }, /* GL_RETAINED_APPLE */ - { 33257, 0x00000102 }, /* GL_RETURN */ - { 33267, 0x00001907 }, /* GL_RGB */ - { 33274, 0x00008052 }, /* GL_RGB10 */ - { 33283, 0x00008059 }, /* GL_RGB10_A2 */ - { 33295, 0x00008059 }, /* GL_RGB10_A2_EXT */ - { 33311, 0x00008052 }, /* GL_RGB10_EXT */ - { 33324, 0x00008053 }, /* GL_RGB12 */ - { 33333, 0x00008053 }, /* GL_RGB12_EXT */ - { 33346, 0x00008054 }, /* GL_RGB16 */ - { 33355, 0x00008054 }, /* GL_RGB16_EXT */ - { 33368, 0x0000804E }, /* GL_RGB2_EXT */ - { 33380, 0x0000804F }, /* GL_RGB4 */ - { 33388, 0x0000804F }, /* GL_RGB4_EXT */ - { 33400, 0x000083A1 }, /* GL_RGB4_S3TC */ - { 33413, 0x00008050 }, /* GL_RGB5 */ - { 33421, 0x00008D62 }, /* GL_RGB565 */ - { 33431, 0x00008D62 }, /* GL_RGB565_OES */ - { 33445, 0x00008057 }, /* GL_RGB5_A1 */ - { 33456, 0x00008057 }, /* GL_RGB5_A1_EXT */ - { 33471, 0x00008057 }, /* GL_RGB5_A1_OES */ - { 33486, 0x00008050 }, /* GL_RGB5_EXT */ - { 33498, 0x00008051 }, /* GL_RGB8 */ - { 33506, 0x00008051 }, /* GL_RGB8_EXT */ - { 33518, 0x00008051 }, /* GL_RGB8_OES */ - { 33530, 0x00001908 }, /* GL_RGBA */ - { 33538, 0x0000805A }, /* GL_RGBA12 */ - { 33548, 0x0000805A }, /* GL_RGBA12_EXT */ - { 33562, 0x0000805B }, /* GL_RGBA16 */ - { 33572, 0x0000805B }, /* GL_RGBA16_EXT */ - { 33586, 0x00008055 }, /* GL_RGBA2 */ - { 33595, 0x00008055 }, /* GL_RGBA2_EXT */ - { 33608, 0x00008056 }, /* GL_RGBA4 */ - { 33617, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */ - { 33636, 0x00008056 }, /* GL_RGBA4_EXT */ - { 33649, 0x00008056 }, /* GL_RGBA4_OES */ - { 33662, 0x000083A3 }, /* GL_RGBA4_S3TC */ - { 33676, 0x00008058 }, /* GL_RGBA8 */ - { 33685, 0x00008058 }, /* GL_RGBA8_EXT */ - { 33698, 0x00008058 }, /* GL_RGBA8_OES */ - { 33711, 0x00008F97 }, /* GL_RGBA8_SNORM */ - { 33726, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */ - { 33744, 0x00000C31 }, /* GL_RGBA_MODE */ - { 33757, 0x000083A2 }, /* GL_RGBA_S3TC */ - { 33770, 0x00008F93 }, /* GL_RGBA_SNORM */ - { 33784, 0x000083A0 }, /* GL_RGB_S3TC */ - { 33796, 0x00008573 }, /* GL_RGB_SCALE */ - { 33809, 0x00008573 }, /* GL_RGB_SCALE_ARB */ - { 33826, 0x00008573 }, /* GL_RGB_SCALE_EXT */ - { 33843, 0x00000407 }, /* GL_RIGHT */ - { 33852, 0x00002000 }, /* GL_S */ - { 33857, 0x00008B5D }, /* GL_SAMPLER_1D */ - { 33871, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */ - { 33892, 0x00008B5E }, /* GL_SAMPLER_2D */ - { 33906, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */ - { 33927, 0x00008B5F }, /* GL_SAMPLER_3D */ - { 33941, 0x00008B5F }, /* GL_SAMPLER_3D_OES */ - { 33959, 0x00008B60 }, /* GL_SAMPLER_CUBE */ - { 33975, 0x000080A9 }, /* GL_SAMPLES */ - { 33986, 0x000086B4 }, /* GL_SAMPLES_3DFX */ - { 34002, 0x000080A9 }, /* GL_SAMPLES_ARB */ - { 34017, 0x00008914 }, /* GL_SAMPLES_PASSED */ - { 34035, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */ - { 34057, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ - { 34085, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */ - { 34117, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */ - { 34140, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */ - { 34167, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */ - { 34185, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */ - { 34208, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */ - { 34230, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */ - { 34249, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */ - { 34272, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */ - { 34298, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */ - { 34328, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */ - { 34353, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */ - { 34382, 0x00080000 }, /* GL_SCISSOR_BIT */ - { 34397, 0x00000C10 }, /* GL_SCISSOR_BOX */ - { 34412, 0x00000C11 }, /* GL_SCISSOR_TEST */ - { 34428, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */ - { 34453, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ - { 34493, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */ - { 34537, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ - { 34570, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ - { 34600, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ - { 34632, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ - { 34662, 0x00001C02 }, /* GL_SELECT */ - { 34672, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */ - { 34700, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */ - { 34725, 0x00008012 }, /* GL_SEPARABLE_2D */ - { 34741, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS_EXT */ - { 34765, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */ - { 34792, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */ - { 34823, 0x0000150F }, /* GL_SET */ - { 34830, 0x00008DF8 }, /* GL_SHADER_BINARY_FORMATS */ - { 34855, 0x00008DFA }, /* GL_SHADER_COMPILER */ - { 34874, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */ - { 34895, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */ - { 34919, 0x00008B4F }, /* GL_SHADER_TYPE */ - { 34934, 0x00000B54 }, /* GL_SHADE_MODEL */ - { 34949, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */ - { 34977, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */ - { 35000, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */ - { 35030, 0x00001601 }, /* GL_SHININESS */ - { 35043, 0x00001402 }, /* GL_SHORT */ - { 35052, 0x00009119 }, /* GL_SIGNALED */ - { 35064, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */ - { 35085, 0x000081F9 }, /* GL_SINGLE_COLOR */ - { 35101, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */ - { 35121, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */ - { 35140, 0x00008C46 }, /* GL_SLUMINANCE */ - { 35154, 0x00008C47 }, /* GL_SLUMINANCE8 */ - { 35169, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */ - { 35191, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */ - { 35211, 0x00001D01 }, /* GL_SMOOTH */ - { 35221, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ - { 35254, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */ - { 35281, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */ - { 35314, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */ - { 35341, 0x00008588 }, /* GL_SOURCE0_ALPHA */ - { 35358, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */ - { 35379, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */ - { 35400, 0x00008580 }, /* GL_SOURCE0_RGB */ - { 35415, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */ - { 35434, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */ - { 35453, 0x00008589 }, /* GL_SOURCE1_ALPHA */ - { 35470, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */ - { 35491, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */ - { 35512, 0x00008581 }, /* GL_SOURCE1_RGB */ - { 35527, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */ - { 35546, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */ - { 35565, 0x0000858A }, /* GL_SOURCE2_ALPHA */ - { 35582, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */ - { 35603, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */ - { 35624, 0x00008582 }, /* GL_SOURCE2_RGB */ - { 35639, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */ - { 35658, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */ - { 35677, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */ - { 35697, 0x00008583 }, /* GL_SOURCE3_RGB_NV */ - { 35715, 0x00001202 }, /* GL_SPECULAR */ - { 35727, 0x00002402 }, /* GL_SPHERE_MAP */ - { 35741, 0x00001206 }, /* GL_SPOT_CUTOFF */ - { 35756, 0x00001204 }, /* GL_SPOT_DIRECTION */ - { 35774, 0x00001205 }, /* GL_SPOT_EXPONENT */ - { 35791, 0x00008588 }, /* GL_SRC0_ALPHA */ - { 35805, 0x00008580 }, /* GL_SRC0_RGB */ - { 35817, 0x00008589 }, /* GL_SRC1_ALPHA */ - { 35831, 0x00008581 }, /* GL_SRC1_RGB */ - { 35843, 0x0000858A }, /* GL_SRC2_ALPHA */ - { 35857, 0x00008582 }, /* GL_SRC2_RGB */ - { 35869, 0x00000302 }, /* GL_SRC_ALPHA */ - { 35882, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */ - { 35904, 0x00000300 }, /* GL_SRC_COLOR */ - { 35917, 0x00008C40 }, /* GL_SRGB */ - { 35925, 0x00008C41 }, /* GL_SRGB8 */ - { 35934, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */ - { 35950, 0x00008C42 }, /* GL_SRGB_ALPHA */ - { 35964, 0x00000503 }, /* GL_STACK_OVERFLOW */ - { 35982, 0x00000504 }, /* GL_STACK_UNDERFLOW */ - { 36001, 0x000088E6 }, /* GL_STATIC_COPY */ - { 36016, 0x000088E6 }, /* GL_STATIC_COPY_ARB */ - { 36035, 0x000088E4 }, /* GL_STATIC_DRAW */ - { 36050, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */ - { 36069, 0x000088E5 }, /* GL_STATIC_READ */ - { 36084, 0x000088E5 }, /* GL_STATIC_READ_ARB */ - { 36103, 0x00001802 }, /* GL_STENCIL */ - { 36114, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */ - { 36136, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */ - { 36162, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_OES */ - { 36188, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */ - { 36209, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */ - { 36234, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */ - { 36255, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */ - { 36280, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ - { 36312, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */ - { 36348, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ - { 36380, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */ - { 36416, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */ - { 36436, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */ - { 36463, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */ - { 36489, 0x00000D57 }, /* GL_STENCIL_BITS */ - { 36505, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */ - { 36527, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */ - { 36550, 0x00000B94 }, /* GL_STENCIL_FAIL */ - { 36566, 0x00000B92 }, /* GL_STENCIL_FUNC */ - { 36582, 0x00001901 }, /* GL_STENCIL_INDEX */ - { 36599, 0x00008D46 }, /* GL_STENCIL_INDEX1 */ - { 36617, 0x00008D49 }, /* GL_STENCIL_INDEX16 */ - { 36636, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */ - { 36659, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */ - { 36681, 0x00008D46 }, /* GL_STENCIL_INDEX1_OES */ - { 36703, 0x00008D47 }, /* GL_STENCIL_INDEX4 */ - { 36721, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */ - { 36743, 0x00008D47 }, /* GL_STENCIL_INDEX4_OES */ - { 36765, 0x00008D48 }, /* GL_STENCIL_INDEX8 */ - { 36783, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */ - { 36805, 0x00008D48 }, /* GL_STENCIL_INDEX8_OES */ - { 36827, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */ - { 36848, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */ - { 36875, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */ - { 36902, 0x00000B97 }, /* GL_STENCIL_REF */ - { 36917, 0x00000B90 }, /* GL_STENCIL_TEST */ - { 36933, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ - { 36962, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */ - { 36984, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */ - { 37005, 0x00000C33 }, /* GL_STEREO */ - { 37015, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */ - { 37039, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */ - { 37064, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */ - { 37088, 0x000088E2 }, /* GL_STREAM_COPY */ - { 37103, 0x000088E2 }, /* GL_STREAM_COPY_ARB */ - { 37122, 0x000088E0 }, /* GL_STREAM_DRAW */ - { 37137, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */ - { 37156, 0x000088E1 }, /* GL_STREAM_READ */ - { 37171, 0x000088E1 }, /* GL_STREAM_READ_ARB */ - { 37190, 0x00000D50 }, /* GL_SUBPIXEL_BITS */ - { 37207, 0x000084E7 }, /* GL_SUBTRACT */ - { 37219, 0x000084E7 }, /* GL_SUBTRACT_ARB */ - { 37235, 0x00009113 }, /* GL_SYNC_CONDITION */ - { 37253, 0x00009116 }, /* GL_SYNC_FENCE */ - { 37267, 0x00009115 }, /* GL_SYNC_FLAGS */ - { 37281, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */ - { 37308, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ - { 37338, 0x00009114 }, /* GL_SYNC_STATUS */ - { 37353, 0x00002001 }, /* GL_T */ - { 37358, 0x00002A2A }, /* GL_T2F_C3F_V3F */ - { 37373, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */ - { 37392, 0x00002A29 }, /* GL_T2F_C4UB_V3F */ - { 37408, 0x00002A2B }, /* GL_T2F_N3F_V3F */ - { 37423, 0x00002A27 }, /* GL_T2F_V3F */ - { 37434, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */ - { 37453, 0x00002A28 }, /* GL_T4F_V4F */ - { 37464, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */ - { 37487, 0x00001702 }, /* GL_TEXTURE */ - { 37498, 0x000084C0 }, /* GL_TEXTURE0 */ - { 37510, 0x000084C0 }, /* GL_TEXTURE0_ARB */ - { 37526, 0x000084C1 }, /* GL_TEXTURE1 */ - { 37538, 0x000084CA }, /* GL_TEXTURE10 */ - { 37551, 0x000084CA }, /* GL_TEXTURE10_ARB */ - { 37568, 0x000084CB }, /* GL_TEXTURE11 */ - { 37581, 0x000084CB }, /* GL_TEXTURE11_ARB */ - { 37598, 0x000084CC }, /* GL_TEXTURE12 */ - { 37611, 0x000084CC }, /* GL_TEXTURE12_ARB */ - { 37628, 0x000084CD }, /* GL_TEXTURE13 */ - { 37641, 0x000084CD }, /* GL_TEXTURE13_ARB */ - { 37658, 0x000084CE }, /* GL_TEXTURE14 */ - { 37671, 0x000084CE }, /* GL_TEXTURE14_ARB */ - { 37688, 0x000084CF }, /* GL_TEXTURE15 */ - { 37701, 0x000084CF }, /* GL_TEXTURE15_ARB */ - { 37718, 0x000084D0 }, /* GL_TEXTURE16 */ - { 37731, 0x000084D0 }, /* GL_TEXTURE16_ARB */ - { 37748, 0x000084D1 }, /* GL_TEXTURE17 */ - { 37761, 0x000084D1 }, /* GL_TEXTURE17_ARB */ - { 37778, 0x000084D2 }, /* GL_TEXTURE18 */ - { 37791, 0x000084D2 }, /* GL_TEXTURE18_ARB */ - { 37808, 0x000084D3 }, /* GL_TEXTURE19 */ - { 37821, 0x000084D3 }, /* GL_TEXTURE19_ARB */ - { 37838, 0x000084C1 }, /* GL_TEXTURE1_ARB */ - { 37854, 0x000084C2 }, /* GL_TEXTURE2 */ - { 37866, 0x000084D4 }, /* GL_TEXTURE20 */ - { 37879, 0x000084D4 }, /* GL_TEXTURE20_ARB */ - { 37896, 0x000084D5 }, /* GL_TEXTURE21 */ - { 37909, 0x000084D5 }, /* GL_TEXTURE21_ARB */ - { 37926, 0x000084D6 }, /* GL_TEXTURE22 */ - { 37939, 0x000084D6 }, /* GL_TEXTURE22_ARB */ - { 37956, 0x000084D7 }, /* GL_TEXTURE23 */ - { 37969, 0x000084D7 }, /* GL_TEXTURE23_ARB */ - { 37986, 0x000084D8 }, /* GL_TEXTURE24 */ - { 37999, 0x000084D8 }, /* GL_TEXTURE24_ARB */ - { 38016, 0x000084D9 }, /* GL_TEXTURE25 */ - { 38029, 0x000084D9 }, /* GL_TEXTURE25_ARB */ - { 38046, 0x000084DA }, /* GL_TEXTURE26 */ - { 38059, 0x000084DA }, /* GL_TEXTURE26_ARB */ - { 38076, 0x000084DB }, /* GL_TEXTURE27 */ - { 38089, 0x000084DB }, /* GL_TEXTURE27_ARB */ - { 38106, 0x000084DC }, /* GL_TEXTURE28 */ - { 38119, 0x000084DC }, /* GL_TEXTURE28_ARB */ - { 38136, 0x000084DD }, /* GL_TEXTURE29 */ - { 38149, 0x000084DD }, /* GL_TEXTURE29_ARB */ - { 38166, 0x000084C2 }, /* GL_TEXTURE2_ARB */ - { 38182, 0x000084C3 }, /* GL_TEXTURE3 */ - { 38194, 0x000084DE }, /* GL_TEXTURE30 */ - { 38207, 0x000084DE }, /* GL_TEXTURE30_ARB */ - { 38224, 0x000084DF }, /* GL_TEXTURE31 */ - { 38237, 0x000084DF }, /* GL_TEXTURE31_ARB */ - { 38254, 0x000084C3 }, /* GL_TEXTURE3_ARB */ - { 38270, 0x000084C4 }, /* GL_TEXTURE4 */ - { 38282, 0x000084C4 }, /* GL_TEXTURE4_ARB */ - { 38298, 0x000084C5 }, /* GL_TEXTURE5 */ - { 38310, 0x000084C5 }, /* GL_TEXTURE5_ARB */ - { 38326, 0x000084C6 }, /* GL_TEXTURE6 */ - { 38338, 0x000084C6 }, /* GL_TEXTURE6_ARB */ - { 38354, 0x000084C7 }, /* GL_TEXTURE7 */ - { 38366, 0x000084C7 }, /* GL_TEXTURE7_ARB */ - { 38382, 0x000084C8 }, /* GL_TEXTURE8 */ - { 38394, 0x000084C8 }, /* GL_TEXTURE8_ARB */ - { 38410, 0x000084C9 }, /* GL_TEXTURE9 */ - { 38422, 0x000084C9 }, /* GL_TEXTURE9_ARB */ - { 38438, 0x00000DE0 }, /* GL_TEXTURE_1D */ - { 38452, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */ - { 38476, 0x00000DE1 }, /* GL_TEXTURE_2D */ - { 38490, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */ - { 38514, 0x0000806F }, /* GL_TEXTURE_3D */ - { 38528, 0x0000806F }, /* GL_TEXTURE_3D_OES */ - { 38546, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */ - { 38568, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */ - { 38594, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */ - { 38616, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */ - { 38638, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */ - { 38670, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */ - { 38692, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */ - { 38724, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */ - { 38746, 0x0000806A }, /* GL_TEXTURE_BINDING_3D_OES */ - { 38772, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */ - { 38800, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */ - { 38832, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_OES */ - { 38864, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */ - { 38897, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */ - { 38929, 0x00040000 }, /* GL_TEXTURE_BIT */ - { 38944, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */ - { 38965, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */ - { 38990, 0x00001005 }, /* GL_TEXTURE_BORDER */ - { 39008, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */ - { 39032, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ - { 39063, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ - { 39093, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ - { 39123, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ - { 39158, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ - { 39189, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - { 39227, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */ - { 39254, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ - { 39286, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ - { 39320, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */ - { 39344, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */ - { 39372, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */ - { 39396, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */ - { 39424, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ - { 39457, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */ - { 39481, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */ - { 39503, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */ - { 39525, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */ - { 39551, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */ - { 39585, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ - { 39618, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */ - { 39655, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */ - { 39683, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */ - { 39715, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */ - { 39738, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ - { 39776, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */ - { 39818, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */ - { 39849, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */ - { 39877, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ - { 39907, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */ - { 39935, 0x00008B9D }, /* GL_TEXTURE_CROP_RECT_OES */ - { 39960, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */ - { 39980, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */ - { 40004, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ - { 40035, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */ - { 40070, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES */ - { 40105, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ - { 40136, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */ - { 40171, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES */ - { 40206, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ - { 40237, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */ - { 40272, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES */ - { 40307, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_OES */ - { 40331, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ - { 40362, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */ - { 40397, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES */ - { 40432, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ - { 40463, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */ - { 40498, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES */ - { 40533, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ - { 40564, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */ - { 40599, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES */ - { 40634, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ - { 40663, 0x00008071 }, /* GL_TEXTURE_DEPTH */ - { 40680, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */ - { 40702, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */ - { 40728, 0x00002300 }, /* GL_TEXTURE_ENV */ - { 40743, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */ - { 40764, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */ - { 40784, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */ - { 40810, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL_EXT */ - { 40840, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */ - { 40860, 0x00002500 }, /* GL_TEXTURE_GEN_MODE_OES */ - { 40884, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */ - { 40901, 0x00000C62 }, /* GL_TEXTURE_GEN_R */ - { 40918, 0x00000C60 }, /* GL_TEXTURE_GEN_S */ - { 40935, 0x00008D60 }, /* GL_TEXTURE_GEN_STR_OES */ - { 40958, 0x00000C61 }, /* GL_TEXTURE_GEN_T */ - { 40975, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */ - { 41000, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */ - { 41022, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */ - { 41048, 0x00001001 }, /* GL_TEXTURE_HEIGHT */ - { 41066, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */ - { 41092, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */ - { 41118, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */ - { 41148, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */ - { 41175, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */ - { 41200, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */ - { 41220, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */ - { 41244, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ - { 41271, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ - { 41298, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ - { 41325, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */ - { 41351, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */ - { 41381, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */ - { 41403, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */ - { 41421, 0x0000898F }, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */ - { 41461, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ - { 41491, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ - { 41519, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ - { 41547, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ - { 41575, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */ - { 41596, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */ - { 41615, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */ - { 41637, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */ - { 41656, 0x00008066 }, /* GL_TEXTURE_PRIORITY */ - { 41676, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ - { 41706, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */ - { 41737, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */ - { 41762, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */ - { 41786, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */ - { 41806, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */ - { 41830, 0x00008067 }, /* GL_TEXTURE_RESIDENT */ - { 41850, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */ - { 41873, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */ - { 41897, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */ - { 41925, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */ - { 41955, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */ - { 41980, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ - { 42014, 0x00001000 }, /* GL_TEXTURE_WIDTH */ - { 42031, 0x00008072 }, /* GL_TEXTURE_WRAP_R */ - { 42049, 0x00008072 }, /* GL_TEXTURE_WRAP_R_OES */ - { 42071, 0x00002802 }, /* GL_TEXTURE_WRAP_S */ - { 42089, 0x00002803 }, /* GL_TEXTURE_WRAP_T */ - { 42107, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */ - { 42126, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */ - { 42146, 0x00008648 }, /* GL_TRACK_MATRIX_NV */ - { 42165, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */ - { 42194, 0x00001000 }, /* GL_TRANSFORM_BIT */ - { 42211, 0x00008E22 }, /* GL_TRANSFORM_FEEDBACK */ - { 42233, 0x00008E25 }, /* GL_TRANSFORM_FEEDBACK_BINDING */ - { 42263, 0x00008E24 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ - { 42299, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */ - { 42340, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */ - { 42373, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */ - { 42411, 0x00008E23 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ - { 42447, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */ - { 42485, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */ - { 42524, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */ - { 42569, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */ - { 42604, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */ - { 42649, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */ - { 42675, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */ - { 42705, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ - { 42737, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ - { 42767, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */ - { 42801, 0x0000862C }, /* GL_TRANSPOSE_NV */ - { 42817, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */ - { 42848, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */ - { 42883, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */ - { 42911, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */ - { 42943, 0x00000004 }, /* GL_TRIANGLES */ - { 42956, 0x0000000C }, /* GL_TRIANGLES_ADJACENCY_ARB */ - { 42983, 0x00000006 }, /* GL_TRIANGLE_FAN */ - { 42999, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */ - { 43020, 0x00000005 }, /* GL_TRIANGLE_STRIP */ - { 43038, 0x0000000D }, /* GL_TRIANGLE_STRIP_ADJACENCY_ARB */ - { 43070, 0x00000001 }, /* GL_TRUE */ - { 43078, 0x00008A1C }, /* GL_UNDEFINED_APPLE */ - { 43097, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */ - { 43117, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */ - { 43140, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */ - { 43160, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */ - { 43181, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */ - { 43203, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */ - { 43225, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */ - { 43245, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */ - { 43266, 0x00009118 }, /* GL_UNSIGNALED */ - { 43280, 0x00001401 }, /* GL_UNSIGNED_BYTE */ - { 43297, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */ - { 43324, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */ - { 43347, 0x00001405 }, /* GL_UNSIGNED_INT */ - { 43363, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */ - { 43390, 0x00008DF6 }, /* GL_UNSIGNED_INT_10_10_10_2_OES */ - { 43421, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */ - { 43442, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */ - { 43467, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */ - { 43491, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_OES */ - { 43516, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */ - { 43547, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV_EXT */ - { 43582, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */ - { 43606, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */ - { 43634, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */ - { 43657, 0x00001403 }, /* GL_UNSIGNED_SHORT */ - { 43675, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ - { 43705, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT */ - { 43739, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */ - { 43765, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ - { 43795, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT */ - { 43829, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */ - { 43855, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */ - { 43879, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */ - { 43907, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */ - { 43935, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */ - { 43962, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ - { 43994, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */ - { 44025, 0x00008CA2 }, /* GL_UPPER_LEFT */ - { 44039, 0x00002A20 }, /* GL_V2F */ - { 44046, 0x00002A21 }, /* GL_V3F */ - { 44053, 0x00008B83 }, /* GL_VALIDATE_STATUS */ - { 44072, 0x00001F00 }, /* GL_VENDOR */ - { 44082, 0x00001F02 }, /* GL_VERSION */ - { 44093, 0x00008074 }, /* GL_VERTEX_ARRAY */ - { 44109, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */ - { 44133, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */ - { 44163, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ - { 44194, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */ - { 44229, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */ - { 44253, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */ - { 44274, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */ - { 44297, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */ - { 44318, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ - { 44345, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ - { 44373, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ - { 44401, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ - { 44429, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ - { 44457, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ - { 44485, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ - { 44513, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ - { 44540, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ - { 44567, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ - { 44594, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ - { 44621, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ - { 44648, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ - { 44675, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ - { 44702, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ - { 44729, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ - { 44756, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ - { 44794, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */ - { 44836, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ - { 44867, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */ - { 44902, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ - { 44936, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */ - { 44974, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ - { 45005, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */ - { 45040, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ - { 45068, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */ - { 45100, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ - { 45130, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */ - { 45164, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ - { 45192, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */ - { 45224, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */ - { 45244, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */ - { 45266, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */ - { 45295, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */ - { 45316, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */ - { 45345, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */ - { 45378, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */ - { 45410, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */ - { 45437, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */ - { 45468, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */ - { 45498, 0x00008B31 }, /* GL_VERTEX_SHADER */ - { 45515, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */ - { 45536, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */ - { 45563, 0x00000BA2 }, /* GL_VIEWPORT */ - { 45575, 0x00000800 }, /* GL_VIEWPORT_BIT */ - { 45591, 0x00008A1A }, /* GL_VOLATILE_APPLE */ - { 45609, 0x0000911D }, /* GL_WAIT_FAILED */ - { 45624, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */ - { 45644, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ - { 45675, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */ - { 45710, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_OES */ - { 45745, 0x000086AD }, /* GL_WEIGHT_ARRAY_OES */ - { 45765, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */ - { 45793, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_OES */ - { 45821, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */ - { 45846, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_OES */ - { 45871, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ - { 45898, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_OES */ - { 45925, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */ - { 45950, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_OES */ - { 45975, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */ - { 45999, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */ - { 46018, 0x000088B9 }, /* GL_WRITE_ONLY */ - { 46032, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */ - { 46050, 0x000088B9 }, /* GL_WRITE_ONLY_OES */ - { 46068, 0x00001506 }, /* GL_XOR */ - { 46075, 0x000085B9 }, /* GL_YCBCR_422_APPLE */ - { 46094, 0x00008757 }, /* GL_YCBCR_MESA */ - { 46108, 0x00000000 }, /* GL_ZERO */ - { 46116, 0x00000D16 }, /* GL_ZOOM_X */ - { 46126, 0x00000D17 }, /* GL_ZOOM_Y */ + { 276, 0x00008B8D }, /* GL_ACTIVE_PROGRAM_EXT */ + { 298, 0x00008911 }, /* GL_ACTIVE_STENCIL_FACE_EXT */ + { 325, 0x000084E0 }, /* GL_ACTIVE_TEXTURE */ + { 343, 0x000084E0 }, /* GL_ACTIVE_TEXTURE_ARB */ + { 365, 0x00008B86 }, /* GL_ACTIVE_UNIFORMS */ + { 384, 0x00008B87 }, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */ + { 413, 0x000086A5 }, /* GL_ACTIVE_VERTEX_UNITS_ARB */ + { 440, 0x00000104 }, /* GL_ADD */ + { 447, 0x00008574 }, /* GL_ADD_SIGNED */ + { 461, 0x00008574 }, /* GL_ADD_SIGNED_ARB */ + { 479, 0x00008574 }, /* GL_ADD_SIGNED_EXT */ + { 497, 0x0000846E }, /* GL_ALIASED_LINE_WIDTH_RANGE */ + { 525, 0x0000846D }, /* GL_ALIASED_POINT_SIZE_RANGE */ + { 553, 0x000FFFFF }, /* GL_ALL_ATTRIB_BITS */ + { 572, 0xFFFFFFFF }, /* GL_ALL_CLIENT_ATTRIB_BITS */ + { 598, 0x00001906 }, /* GL_ALPHA */ + { 607, 0x0000803D }, /* GL_ALPHA12 */ + { 618, 0x0000803D }, /* GL_ALPHA12_EXT */ + { 633, 0x0000803E }, /* GL_ALPHA16 */ + { 644, 0x00008D8A }, /* GL_ALPHA16I_EXT */ + { 660, 0x00008D78 }, /* GL_ALPHA16UI_EXT */ + { 677, 0x0000803E }, /* GL_ALPHA16_EXT */ + { 692, 0x00008D84 }, /* GL_ALPHA32I_EXT */ + { 708, 0x00008D72 }, /* GL_ALPHA32UI_EXT */ + { 725, 0x0000803B }, /* GL_ALPHA4 */ + { 735, 0x0000803B }, /* GL_ALPHA4_EXT */ + { 749, 0x0000803C }, /* GL_ALPHA8 */ + { 759, 0x00008D90 }, /* GL_ALPHA8I_EXT */ + { 774, 0x00008D7E }, /* GL_ALPHA8UI_EXT */ + { 790, 0x0000803C }, /* GL_ALPHA8_EXT */ + { 804, 0x00000D1D }, /* GL_ALPHA_BIAS */ + { 818, 0x00000D55 }, /* GL_ALPHA_BITS */ + { 832, 0x00008D97 }, /* GL_ALPHA_INTEGER_EXT */ + { 853, 0x00000D1C }, /* GL_ALPHA_SCALE */ + { 868, 0x00000BC0 }, /* GL_ALPHA_TEST */ + { 882, 0x00000BC1 }, /* GL_ALPHA_TEST_FUNC */ + { 901, 0x00000BC2 }, /* GL_ALPHA_TEST_REF */ + { 919, 0x0000911A }, /* GL_ALREADY_SIGNALED */ + { 939, 0x00000207 }, /* GL_ALWAYS */ + { 949, 0x00001200 }, /* GL_AMBIENT */ + { 960, 0x00001602 }, /* GL_AMBIENT_AND_DIFFUSE */ + { 983, 0x00001501 }, /* GL_AND */ + { 990, 0x00001504 }, /* GL_AND_INVERTED */ + { 1006, 0x00001502 }, /* GL_AND_REVERSE */ + { 1021, 0x00008892 }, /* GL_ARRAY_BUFFER */ + { 1037, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING */ + { 1061, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING_ARB */ + { 1089, 0x00008B85 }, /* GL_ATTACHED_SHADERS */ + { 1109, 0x00008645 }, /* GL_ATTRIB_ARRAY_POINTER_NV */ + { 1136, 0x00008623 }, /* GL_ATTRIB_ARRAY_SIZE_NV */ + { 1160, 0x00008624 }, /* GL_ATTRIB_ARRAY_STRIDE_NV */ + { 1186, 0x00008625 }, /* GL_ATTRIB_ARRAY_TYPE_NV */ + { 1210, 0x00000BB0 }, /* GL_ATTRIB_STACK_DEPTH */ + { 1232, 0x00000D80 }, /* GL_AUTO_NORMAL */ + { 1247, 0x00000409 }, /* GL_AUX0 */ + { 1255, 0x0000040A }, /* GL_AUX1 */ + { 1263, 0x0000040B }, /* GL_AUX2 */ + { 1271, 0x0000040C }, /* GL_AUX3 */ + { 1279, 0x00000C00 }, /* GL_AUX_BUFFERS */ + { 1294, 0x00000405 }, /* GL_BACK */ + { 1302, 0x00000402 }, /* GL_BACK_LEFT */ + { 1315, 0x00000403 }, /* GL_BACK_RIGHT */ + { 1329, 0x000080E0 }, /* GL_BGR */ + { 1336, 0x000080E1 }, /* GL_BGRA */ + { 1344, 0x000080E1 }, /* GL_BGRA_EXT */ + { 1356, 0x00008D9B }, /* GL_BGRA_INTEGER_EXT */ + { 1376, 0x00008D9A }, /* GL_BGR_INTEGER_EXT */ + { 1395, 0x00001A00 }, /* GL_BITMAP */ + { 1405, 0x00000704 }, /* GL_BITMAP_TOKEN */ + { 1421, 0x00000BE2 }, /* GL_BLEND */ + { 1430, 0x00008005 }, /* GL_BLEND_COLOR */ + { 1445, 0x00008005 }, /* GL_BLEND_COLOR_EXT */ + { 1464, 0x00000BE0 }, /* GL_BLEND_DST */ + { 1477, 0x000080CA }, /* GL_BLEND_DST_ALPHA */ + { 1496, 0x000080CA }, /* GL_BLEND_DST_ALPHA_OES */ + { 1519, 0x000080C8 }, /* GL_BLEND_DST_RGB */ + { 1536, 0x000080C8 }, /* GL_BLEND_DST_RGB_OES */ + { 1557, 0x00008009 }, /* GL_BLEND_EQUATION */ + { 1575, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA */ + { 1599, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_EXT */ + { 1627, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_OES */ + { 1655, 0x00008009 }, /* GL_BLEND_EQUATION_EXT */ + { 1677, 0x00008009 }, /* GL_BLEND_EQUATION_OES */ + { 1699, 0x00008009 }, /* GL_BLEND_EQUATION_RGB */ + { 1721, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_EXT */ + { 1747, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_OES */ + { 1773, 0x00000BE1 }, /* GL_BLEND_SRC */ + { 1786, 0x000080CB }, /* GL_BLEND_SRC_ALPHA */ + { 1805, 0x000080CB }, /* GL_BLEND_SRC_ALPHA_OES */ + { 1828, 0x000080C9 }, /* GL_BLEND_SRC_RGB */ + { 1845, 0x000080C9 }, /* GL_BLEND_SRC_RGB_OES */ + { 1866, 0x00001905 }, /* GL_BLUE */ + { 1874, 0x00000D1B }, /* GL_BLUE_BIAS */ + { 1887, 0x00000D54 }, /* GL_BLUE_BITS */ + { 1900, 0x00008D96 }, /* GL_BLUE_INTEGER_EXT */ + { 1920, 0x00000D1A }, /* GL_BLUE_SCALE */ + { 1934, 0x00008B56 }, /* GL_BOOL */ + { 1942, 0x00008B56 }, /* GL_BOOL_ARB */ + { 1954, 0x00008B57 }, /* GL_BOOL_VEC2 */ + { 1967, 0x00008B57 }, /* GL_BOOL_VEC2_ARB */ + { 1984, 0x00008B58 }, /* GL_BOOL_VEC3 */ + { 1997, 0x00008B58 }, /* GL_BOOL_VEC3_ARB */ + { 2014, 0x00008B59 }, /* GL_BOOL_VEC4 */ + { 2027, 0x00008B59 }, /* GL_BOOL_VEC4_ARB */ + { 2044, 0x000088BB }, /* GL_BUFFER_ACCESS */ + { 2061, 0x000088BB }, /* GL_BUFFER_ACCESS_ARB */ + { 2082, 0x000088BB }, /* GL_BUFFER_ACCESS_OES */ + { 2103, 0x00008A13 }, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */ + { 2134, 0x000088BC }, /* GL_BUFFER_MAPPED */ + { 2151, 0x000088BC }, /* GL_BUFFER_MAPPED_ARB */ + { 2172, 0x000088BC }, /* GL_BUFFER_MAPPED_OES */ + { 2193, 0x000088BD }, /* GL_BUFFER_MAP_POINTER */ + { 2215, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_ARB */ + { 2241, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_OES */ + { 2267, 0x000085B3 }, /* GL_BUFFER_OBJECT_APPLE */ + { 2290, 0x00008A12 }, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */ + { 2324, 0x00008764 }, /* GL_BUFFER_SIZE */ + { 2339, 0x00008764 }, /* GL_BUFFER_SIZE_ARB */ + { 2358, 0x00008765 }, /* GL_BUFFER_USAGE */ + { 2374, 0x00008765 }, /* GL_BUFFER_USAGE_ARB */ + { 2394, 0x0000877B }, /* GL_BUMP_ENVMAP_ATI */ + { 2413, 0x00008777 }, /* GL_BUMP_NUM_TEX_UNITS_ATI */ + { 2439, 0x00008775 }, /* GL_BUMP_ROT_MATRIX_ATI */ + { 2462, 0x00008776 }, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */ + { 2490, 0x0000877C }, /* GL_BUMP_TARGET_ATI */ + { 2509, 0x00008778 }, /* GL_BUMP_TEX_UNITS_ATI */ + { 2531, 0x00001400 }, /* GL_BYTE */ + { 2539, 0x00002A24 }, /* GL_C3F_V3F */ + { 2550, 0x00002A26 }, /* GL_C4F_N3F_V3F */ + { 2565, 0x00002A22 }, /* GL_C4UB_V2F */ + { 2577, 0x00002A23 }, /* GL_C4UB_V3F */ + { 2589, 0x00000901 }, /* GL_CCW */ + { 2596, 0x00002900 }, /* GL_CLAMP */ + { 2605, 0x0000812D }, /* GL_CLAMP_TO_BORDER */ + { 2624, 0x0000812D }, /* GL_CLAMP_TO_BORDER_ARB */ + { 2647, 0x0000812D }, /* GL_CLAMP_TO_BORDER_SGIS */ + { 2671, 0x0000812F }, /* GL_CLAMP_TO_EDGE */ + { 2688, 0x0000812F }, /* GL_CLAMP_TO_EDGE_SGIS */ + { 2710, 0x00001500 }, /* GL_CLEAR */ + { 2719, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE */ + { 2744, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE_ARB */ + { 2773, 0xFFFFFFFF }, /* GL_CLIENT_ALL_ATTRIB_BITS */ + { 2799, 0x00000BB1 }, /* GL_CLIENT_ATTRIB_STACK_DEPTH */ + { 2828, 0x00000001 }, /* GL_CLIENT_PIXEL_STORE_BIT */ + { 2854, 0x00000002 }, /* GL_CLIENT_VERTEX_ARRAY_BIT */ + { 2881, 0x00003000 }, /* GL_CLIP_PLANE0 */ + { 2896, 0x00003001 }, /* GL_CLIP_PLANE1 */ + { 2911, 0x00003002 }, /* GL_CLIP_PLANE2 */ + { 2926, 0x00003003 }, /* GL_CLIP_PLANE3 */ + { 2941, 0x00003004 }, /* GL_CLIP_PLANE4 */ + { 2956, 0x00003005 }, /* GL_CLIP_PLANE5 */ + { 2971, 0x000080F0 }, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */ + { 3004, 0x00000A00 }, /* GL_COEFF */ + { 3013, 0x00001800 }, /* GL_COLOR */ + { 3022, 0x00008076 }, /* GL_COLOR_ARRAY */ + { 3037, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING */ + { 3067, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING_ARB */ + { 3101, 0x00008090 }, /* GL_COLOR_ARRAY_POINTER */ + { 3124, 0x00008081 }, /* GL_COLOR_ARRAY_SIZE */ + { 3144, 0x00008083 }, /* GL_COLOR_ARRAY_STRIDE */ + { 3166, 0x00008082 }, /* GL_COLOR_ARRAY_TYPE */ + { 3186, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0 */ + { 3207, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_EXT */ + { 3232, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_OES */ + { 3257, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1 */ + { 3278, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10 */ + { 3300, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10_EXT */ + { 3326, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11 */ + { 3348, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11_EXT */ + { 3374, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12 */ + { 3396, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12_EXT */ + { 3422, 0x00008CED }, /* GL_COLOR_ATTACHMENT13 */ + { 3444, 0x00008CED }, /* GL_COLOR_ATTACHMENT13_EXT */ + { 3470, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14 */ + { 3492, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14_EXT */ + { 3518, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15 */ + { 3540, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15_EXT */ + { 3566, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1_EXT */ + { 3591, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2 */ + { 3612, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2_EXT */ + { 3637, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3 */ + { 3658, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3_EXT */ + { 3683, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4 */ + { 3704, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4_EXT */ + { 3729, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5 */ + { 3750, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5_EXT */ + { 3775, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6 */ + { 3796, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6_EXT */ + { 3821, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7 */ + { 3842, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7_EXT */ + { 3867, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8 */ + { 3888, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8_EXT */ + { 3913, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9 */ + { 3934, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9_EXT */ + { 3959, 0x00004000 }, /* GL_COLOR_BUFFER_BIT */ + { 3979, 0x00000C22 }, /* GL_COLOR_CLEAR_VALUE */ + { 4000, 0x00001900 }, /* GL_COLOR_INDEX */ + { 4015, 0x00001603 }, /* GL_COLOR_INDEXES */ + { 4032, 0x00000BF2 }, /* GL_COLOR_LOGIC_OP */ + { 4050, 0x00000B57 }, /* GL_COLOR_MATERIAL */ + { 4068, 0x00000B55 }, /* GL_COLOR_MATERIAL_FACE */ + { 4091, 0x00000B56 }, /* GL_COLOR_MATERIAL_PARAMETER */ + { 4119, 0x000080B1 }, /* GL_COLOR_MATRIX */ + { 4135, 0x000080B1 }, /* GL_COLOR_MATRIX_SGI */ + { 4155, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH */ + { 4183, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH_SGI */ + { 4215, 0x00008458 }, /* GL_COLOR_SUM */ + { 4228, 0x00008458 }, /* GL_COLOR_SUM_ARB */ + { 4245, 0x000080D0 }, /* GL_COLOR_TABLE */ + { 4260, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE */ + { 4286, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_EXT */ + { 4316, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_SGI */ + { 4346, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS */ + { 4366, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS_SGI */ + { 4390, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE */ + { 4415, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_EXT */ + { 4444, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_SGI */ + { 4473, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT */ + { 4495, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_EXT */ + { 4521, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_SGI */ + { 4547, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE */ + { 4573, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_EXT */ + { 4603, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_SGI */ + { 4633, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE */ + { 4663, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_EXT */ + { 4697, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_SGI */ + { 4731, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE */ + { 4761, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_EXT */ + { 4795, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_SGI */ + { 4829, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE */ + { 4853, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_EXT */ + { 4881, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_SGI */ + { 4909, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE */ + { 4930, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE_SGI */ + { 4955, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH */ + { 4976, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_EXT */ + { 5001, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_SGI */ + { 5026, 0x00000C23 }, /* GL_COLOR_WRITEMASK */ + { 5045, 0x00008570 }, /* GL_COMBINE */ + { 5056, 0x00008503 }, /* GL_COMBINE4 */ + { 5068, 0x00008572 }, /* GL_COMBINE_ALPHA */ + { 5085, 0x00008572 }, /* GL_COMBINE_ALPHA_ARB */ + { 5106, 0x00008572 }, /* GL_COMBINE_ALPHA_EXT */ + { 5127, 0x00008570 }, /* GL_COMBINE_ARB */ + { 5142, 0x00008570 }, /* GL_COMBINE_EXT */ + { 5157, 0x00008571 }, /* GL_COMBINE_RGB */ + { 5172, 0x00008571 }, /* GL_COMBINE_RGB_ARB */ + { 5191, 0x00008571 }, /* GL_COMBINE_RGB_EXT */ + { 5210, 0x0000884E }, /* GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT */ + { 5246, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE */ + { 5270, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE_ARB */ + { 5298, 0x00001300 }, /* GL_COMPILE */ + { 5309, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */ + { 5332, 0x00008B81 }, /* GL_COMPILE_STATUS */ + { 5350, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */ + { 5370, 0x000084E9 }, /* GL_COMPRESSED_ALPHA_ARB */ + { 5394, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */ + { 5418, 0x000084EC }, /* GL_COMPRESSED_INTENSITY_ARB */ + { 5446, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */ + { 5470, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */ + { 5500, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA_ARB */ + { 5534, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE_ARB */ + { 5562, 0x000084ED }, /* GL_COMPRESSED_RGB */ + { 5580, 0x000084EE }, /* GL_COMPRESSED_RGBA */ + { 5599, 0x000084EE }, /* GL_COMPRESSED_RGBA_ARB */ + { 5622, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */ + { 5651, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */ + { 5684, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */ + { 5717, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */ + { 5750, 0x000084ED }, /* GL_COMPRESSED_RGB_ARB */ + { 5772, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */ + { 5800, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */ + { 5832, 0x00008C4A }, /* GL_COMPRESSED_SLUMINANCE */ + { 5857, 0x00008C4B }, /* GL_COMPRESSED_SLUMINANCE_ALPHA */ + { 5888, 0x00008C48 }, /* GL_COMPRESSED_SRGB */ + { 5907, 0x00008C49 }, /* GL_COMPRESSED_SRGB_ALPHA */ + { 5932, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */ + { 5962, 0x0000911C }, /* GL_CONDITION_SATISFIED */ + { 5985, 0x00008576 }, /* GL_CONSTANT */ + { 5997, 0x00008003 }, /* GL_CONSTANT_ALPHA */ + { 6015, 0x00008003 }, /* GL_CONSTANT_ALPHA_EXT */ + { 6037, 0x00008576 }, /* GL_CONSTANT_ARB */ + { 6053, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */ + { 6077, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */ + { 6099, 0x00008001 }, /* GL_CONSTANT_COLOR */ + { 6117, 0x00008001 }, /* GL_CONSTANT_COLOR_EXT */ + { 6139, 0x00008576 }, /* GL_CONSTANT_EXT */ + { 6155, 0x00008010 }, /* GL_CONVOLUTION_1D */ + { 6173, 0x00008011 }, /* GL_CONVOLUTION_2D */ + { 6191, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */ + { 6219, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */ + { 6250, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */ + { 6277, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */ + { 6308, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */ + { 6335, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */ + { 6366, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */ + { 6394, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */ + { 6426, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */ + { 6448, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */ + { 6474, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */ + { 6496, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */ + { 6522, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */ + { 6543, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */ + { 6568, 0x00008862 }, /* GL_COORD_REPLACE */ + { 6585, 0x00008862 }, /* GL_COORD_REPLACE_ARB */ + { 6606, 0x00008862 }, /* GL_COORD_REPLACE_NV */ + { 6626, 0x00008862 }, /* GL_COORD_REPLACE_OES */ + { 6647, 0x00001503 }, /* GL_COPY */ + { 6655, 0x0000150C }, /* GL_COPY_INVERTED */ + { 6672, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */ + { 6692, 0x00008F36 }, /* GL_COPY_READ_BUFFER */ + { 6712, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */ + { 6733, 0x00000B44 }, /* GL_CULL_FACE */ + { 6746, 0x00000B45 }, /* GL_CULL_FACE_MODE */ + { 6764, 0x000081AA }, /* GL_CULL_VERTEX_EXT */ + { 6783, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */ + { 6815, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */ + { 6850, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */ + { 6871, 0x00000001 }, /* GL_CURRENT_BIT */ + { 6886, 0x00000B00 }, /* GL_CURRENT_COLOR */ + { 6903, 0x00008453 }, /* GL_CURRENT_FOG_COORD */ + { 6924, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */ + { 6950, 0x00000B01 }, /* GL_CURRENT_INDEX */ + { 6967, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */ + { 6989, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */ + { 7017, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */ + { 7038, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */ + { 7072, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */ + { 7105, 0x00000B02 }, /* GL_CURRENT_NORMAL */ + { 7123, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */ + { 7153, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_OES */ + { 7183, 0x00008B8D }, /* GL_CURRENT_PROGRAM */ + { 7202, 0x00008865 }, /* GL_CURRENT_QUERY */ + { 7219, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */ + { 7240, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */ + { 7264, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */ + { 7291, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */ + { 7315, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */ + { 7342, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */ + { 7375, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */ + { 7409, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */ + { 7442, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */ + { 7469, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */ + { 7495, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */ + { 7520, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */ + { 7549, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */ + { 7571, 0x00000900 }, /* GL_CW */ + { 7577, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */ + { 7598, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */ + { 7619, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */ + { 7639, 0x00002101 }, /* GL_DECAL */ + { 7648, 0x00001E03 }, /* GL_DECR */ + { 7656, 0x00008508 }, /* GL_DECR_WRAP */ + { 7669, 0x00008508 }, /* GL_DECR_WRAP_EXT */ + { 7686, 0x00008B80 }, /* GL_DELETE_STATUS */ + { 7703, 0x00001801 }, /* GL_DEPTH */ + { 7712, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */ + { 7732, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_EXT */ + { 7756, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_OES */ + { 7780, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */ + { 7800, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */ + { 7824, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_OES */ + { 7848, 0x00000D1F }, /* GL_DEPTH_BIAS */ + { 7862, 0x00000D56 }, /* GL_DEPTH_BITS */ + { 7876, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */ + { 7896, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */ + { 7921, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */ + { 7941, 0x0000864F }, /* GL_DEPTH_CLAMP */ + { 7956, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */ + { 7974, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */ + { 7995, 0x00001902 }, /* GL_DEPTH_COMPONENT */ + { 8014, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */ + { 8035, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */ + { 8060, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_OES */ + { 8085, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */ + { 8111, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */ + { 8132, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */ + { 8157, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_OES */ + { 8182, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */ + { 8208, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */ + { 8229, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */ + { 8254, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_OES */ + { 8279, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */ + { 8305, 0x00000B74 }, /* GL_DEPTH_FUNC */ + { 8319, 0x00000B70 }, /* GL_DEPTH_RANGE */ + { 8334, 0x00000D1E }, /* GL_DEPTH_SCALE */ + { 8349, 0x000084F9 }, /* GL_DEPTH_STENCIL */ + { 8366, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */ + { 8394, 0x000084F9 }, /* GL_DEPTH_STENCIL_EXT */ + { 8415, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */ + { 8435, 0x000084F9 }, /* GL_DEPTH_STENCIL_OES */ + { 8456, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */ + { 8484, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */ + { 8512, 0x00000B71 }, /* GL_DEPTH_TEST */ + { 8526, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */ + { 8548, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */ + { 8574, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */ + { 8593, 0x00001201 }, /* GL_DIFFUSE */ + { 8604, 0x00000BD0 }, /* GL_DITHER */ + { 8614, 0x00000A02 }, /* GL_DOMAIN */ + { 8624, 0x00001100 }, /* GL_DONT_CARE */ + { 8637, 0x000086AE }, /* GL_DOT3_RGB */ + { 8649, 0x000086AF }, /* GL_DOT3_RGBA */ + { 8662, 0x000086AF }, /* GL_DOT3_RGBA_ARB */ + { 8679, 0x00008741 }, /* GL_DOT3_RGBA_EXT */ + { 8696, 0x000086AE }, /* GL_DOT3_RGB_ARB */ + { 8712, 0x00008740 }, /* GL_DOT3_RGB_EXT */ + { 8728, 0x0000140A }, /* GL_DOUBLE */ + { 8738, 0x00000C32 }, /* GL_DOUBLEBUFFER */ + { 8754, 0x00000C01 }, /* GL_DRAW_BUFFER */ + { 8769, 0x00008825 }, /* GL_DRAW_BUFFER0 */ + { 8785, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */ + { 8805, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */ + { 8825, 0x00008826 }, /* GL_DRAW_BUFFER1 */ + { 8841, 0x0000882F }, /* GL_DRAW_BUFFER10 */ + { 8858, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */ + { 8879, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */ + { 8900, 0x00008830 }, /* GL_DRAW_BUFFER11 */ + { 8917, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */ + { 8938, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */ + { 8959, 0x00008831 }, /* GL_DRAW_BUFFER12 */ + { 8976, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */ + { 8997, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */ + { 9018, 0x00008832 }, /* GL_DRAW_BUFFER13 */ + { 9035, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */ + { 9056, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */ + { 9077, 0x00008833 }, /* GL_DRAW_BUFFER14 */ + { 9094, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */ + { 9115, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */ + { 9136, 0x00008834 }, /* GL_DRAW_BUFFER15 */ + { 9153, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */ + { 9174, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */ + { 9195, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */ + { 9215, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */ + { 9235, 0x00008827 }, /* GL_DRAW_BUFFER2 */ + { 9251, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */ + { 9271, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */ + { 9291, 0x00008828 }, /* GL_DRAW_BUFFER3 */ + { 9307, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */ + { 9327, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */ + { 9347, 0x00008829 }, /* GL_DRAW_BUFFER4 */ + { 9363, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */ + { 9383, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */ + { 9403, 0x0000882A }, /* GL_DRAW_BUFFER5 */ + { 9419, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */ + { 9439, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */ + { 9459, 0x0000882B }, /* GL_DRAW_BUFFER6 */ + { 9475, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */ + { 9495, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */ + { 9515, 0x0000882C }, /* GL_DRAW_BUFFER7 */ + { 9531, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */ + { 9551, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */ + { 9571, 0x0000882D }, /* GL_DRAW_BUFFER8 */ + { 9587, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */ + { 9607, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */ + { 9627, 0x0000882E }, /* GL_DRAW_BUFFER9 */ + { 9643, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */ + { 9663, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */ + { 9683, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */ + { 9703, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING */ + { 9731, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */ + { 9763, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */ + { 9787, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */ + { 9807, 0x00000304 }, /* GL_DST_ALPHA */ + { 9820, 0x00000306 }, /* GL_DST_COLOR */ + { 9833, 0x0000877A }, /* GL_DU8DV8_ATI */ + { 9847, 0x00008779 }, /* GL_DUDV_ATI */ + { 9859, 0x000088EA }, /* GL_DYNAMIC_COPY */ + { 9875, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */ + { 9895, 0x000088E8 }, /* GL_DYNAMIC_DRAW */ + { 9911, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */ + { 9931, 0x000088E9 }, /* GL_DYNAMIC_READ */ + { 9947, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */ + { 9967, 0x00000B43 }, /* GL_EDGE_FLAG */ + { 9980, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */ + { 9999, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */ + { 10033, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */ + { 10071, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */ + { 10098, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */ + { 10124, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */ + { 10148, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */ + { 10180, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */ + { 10216, 0x00001600 }, /* GL_EMISSION */ + { 10228, 0x00002000 }, /* GL_ENABLE_BIT */ + { 10242, 0x00000202 }, /* GL_EQUAL */ + { 10251, 0x00001509 }, /* GL_EQUIV */ + { 10260, 0x00010000 }, /* GL_EVAL_BIT */ + { 10272, 0x00000800 }, /* GL_EXP */ + { 10279, 0x00000801 }, /* GL_EXP2 */ + { 10287, 0x00001F03 }, /* GL_EXTENSIONS */ + { 10301, 0x00002400 }, /* GL_EYE_LINEAR */ + { 10315, 0x00002502 }, /* GL_EYE_PLANE */ + { 10328, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */ + { 10353, 0x0000855B }, /* GL_EYE_RADIAL_NV */ + { 10370, 0x00000000 }, /* GL_FALSE */ + { 10379, 0x00001101 }, /* GL_FASTEST */ + { 10390, 0x00001C01 }, /* GL_FEEDBACK */ + { 10402, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */ + { 10429, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */ + { 10453, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */ + { 10477, 0x00001B02 }, /* GL_FILL */ + { 10485, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION */ + { 10512, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION_EXT */ + { 10543, 0x0000140C }, /* GL_FIXED */ + { 10552, 0x0000140C }, /* GL_FIXED_OES */ + { 10565, 0x00001D00 }, /* GL_FLAT */ + { 10573, 0x00001406 }, /* GL_FLOAT */ + { 10582, 0x00008B5A }, /* GL_FLOAT_MAT2 */ + { 10596, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */ + { 10614, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */ + { 10630, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */ + { 10646, 0x00008B5B }, /* GL_FLOAT_MAT3 */ + { 10660, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */ + { 10678, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */ + { 10694, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */ + { 10710, 0x00008B5C }, /* GL_FLOAT_MAT4 */ + { 10724, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */ + { 10742, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */ + { 10758, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */ + { 10774, 0x00008B50 }, /* GL_FLOAT_VEC2 */ + { 10788, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */ + { 10806, 0x00008B51 }, /* GL_FLOAT_VEC3 */ + { 10820, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */ + { 10838, 0x00008B52 }, /* GL_FLOAT_VEC4 */ + { 10852, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */ + { 10870, 0x00000B60 }, /* GL_FOG */ + { 10877, 0x00000080 }, /* GL_FOG_BIT */ + { 10888, 0x00000B66 }, /* GL_FOG_COLOR */ + { 10901, 0x00008451 }, /* GL_FOG_COORD */ + { 10914, 0x00008451 }, /* GL_FOG_COORDINATE */ + { 10932, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */ + { 10956, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */ + { 10995, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */ + { 11038, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */ + { 11070, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */ + { 11101, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */ + { 11130, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */ + { 11155, 0x00008457 }, /* GL_FOG_COORD_ARRAY */ + { 11174, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */ + { 11208, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */ + { 11235, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */ + { 11261, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */ + { 11285, 0x00008450 }, /* GL_FOG_COORD_SRC */ + { 11302, 0x00000B62 }, /* GL_FOG_DENSITY */ + { 11317, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */ + { 11341, 0x00000B64 }, /* GL_FOG_END */ + { 11352, 0x00000C54 }, /* GL_FOG_HINT */ + { 11364, 0x00000B61 }, /* GL_FOG_INDEX */ + { 11377, 0x00000B65 }, /* GL_FOG_MODE */ + { 11389, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */ + { 11408, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */ + { 11433, 0x00000B63 }, /* GL_FOG_START */ + { 11446, 0x00008452 }, /* GL_FRAGMENT_DEPTH */ + { 11464, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */ + { 11488, 0x00008B30 }, /* GL_FRAGMENT_SHADER */ + { 11507, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */ + { 11530, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */ + { 11565, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES */ + { 11604, 0x00008D40 }, /* GL_FRAMEBUFFER */ + { 11619, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ + { 11656, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ + { 11692, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ + { 11733, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ + { 11774, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ + { 11811, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ + { 11848, 0x00008DA7 }, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB */ + { 11886, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ + { 11924, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */ + { 11966, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES */ + { 12008, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ + { 12046, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */ + { 12088, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES */ + { 12130, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ + { 12165, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ + { 12204, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */ + { 12253, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES */ + { 12302, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ + { 12350, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */ + { 12402, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES */ + { 12454, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ + { 12494, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ + { 12538, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ + { 12578, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */ + { 12622, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES */ + { 12666, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING */ + { 12689, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */ + { 12716, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_OES */ + { 12743, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */ + { 12767, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */ + { 12795, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_OES */ + { 12823, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */ + { 12846, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */ + { 12865, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ + { 12902, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */ + { 12943, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES */ + { 12984, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS */ + { 13021, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */ + { 13062, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES */ + { 13103, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ + { 13141, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */ + { 13183, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES */ + { 13225, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */ + { 13276, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */ + { 13314, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES */ + { 13352, 0x00008DA9 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */ + { 13394, 0x00008DA8 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB */ + { 13438, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ + { 13483, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */ + { 13532, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES */ + { 13581, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ + { 13619, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT */ + { 13661, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ + { 13699, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */ + { 13741, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES */ + { 13783, 0x00008D40 }, /* GL_FRAMEBUFFER_OES */ + { 13802, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */ + { 13834, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */ + { 13859, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */ + { 13886, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */ + { 13917, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_OES */ + { 13948, 0x00000404 }, /* GL_FRONT */ + { 13957, 0x00000408 }, /* GL_FRONT_AND_BACK */ + { 13975, 0x00000B46 }, /* GL_FRONT_FACE */ + { 13989, 0x00000400 }, /* GL_FRONT_LEFT */ + { 14003, 0x00000401 }, /* GL_FRONT_RIGHT */ + { 14018, 0x00008006 }, /* GL_FUNC_ADD */ + { 14030, 0x00008006 }, /* GL_FUNC_ADD_EXT */ + { 14046, 0x00008006 }, /* GL_FUNC_ADD_OES */ + { 14062, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */ + { 14087, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */ + { 14116, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_OES */ + { 14145, 0x0000800A }, /* GL_FUNC_SUBTRACT */ + { 14162, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */ + { 14183, 0x0000800A }, /* GL_FUNC_SUBTRACT_OES */ + { 14204, 0x00008191 }, /* GL_GENERATE_MIPMAP */ + { 14223, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */ + { 14247, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */ + { 14276, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */ + { 14300, 0x00008DDB }, /* GL_GEOMETRY_INPUT_TYPE_ARB */ + { 14327, 0x00008DDC }, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */ + { 14355, 0x00008DD9 }, /* GL_GEOMETRY_SHADER_ARB */ + { 14378, 0x00008DDA }, /* GL_GEOMETRY_VERTICES_OUT_ARB */ + { 14407, 0x00000206 }, /* GL_GEQUAL */ + { 14417, 0x00000204 }, /* GL_GREATER */ + { 14428, 0x00001904 }, /* GL_GREEN */ + { 14437, 0x00000D19 }, /* GL_GREEN_BIAS */ + { 14451, 0x00000D53 }, /* GL_GREEN_BITS */ + { 14465, 0x00008D95 }, /* GL_GREEN_INTEGER_EXT */ + { 14486, 0x00000D18 }, /* GL_GREEN_SCALE */ + { 14501, 0x0000140B }, /* GL_HALF_FLOAT */ + { 14515, 0x00008D61 }, /* GL_HALF_FLOAT_OES */ + { 14533, 0x00008DF2 }, /* GL_HIGH_FLOAT */ + { 14547, 0x00008DF5 }, /* GL_HIGH_INT */ + { 14559, 0x00008000 }, /* GL_HINT_BIT */ + { 14571, 0x00008024 }, /* GL_HISTOGRAM */ + { 14584, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */ + { 14608, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */ + { 14636, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */ + { 14659, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */ + { 14686, 0x00008024 }, /* GL_HISTOGRAM_EXT */ + { 14703, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */ + { 14723, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */ + { 14747, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */ + { 14771, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */ + { 14799, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */ + { 14827, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */ + { 14859, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */ + { 14881, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */ + { 14907, 0x0000802D }, /* GL_HISTOGRAM_SINK */ + { 14925, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */ + { 14947, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */ + { 14966, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */ + { 14989, 0x0000862A }, /* GL_IDENTITY_NV */ + { 15004, 0x00008150 }, /* GL_IGNORE_BORDER_HP */ + { 15024, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */ + { 15060, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */ + { 15100, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */ + { 15134, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */ + { 15172, 0x00001E02 }, /* GL_INCR */ + { 15180, 0x00008507 }, /* GL_INCR_WRAP */ + { 15193, 0x00008507 }, /* GL_INCR_WRAP_EXT */ + { 15210, 0x00008222 }, /* GL_INDEX */ + { 15219, 0x00008077 }, /* GL_INDEX_ARRAY */ + { 15234, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */ + { 15264, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */ + { 15298, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */ + { 15321, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */ + { 15343, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */ + { 15363, 0x00000D51 }, /* GL_INDEX_BITS */ + { 15377, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */ + { 15398, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */ + { 15416, 0x00000C30 }, /* GL_INDEX_MODE */ + { 15430, 0x00000D13 }, /* GL_INDEX_OFFSET */ + { 15446, 0x00000D12 }, /* GL_INDEX_SHIFT */ + { 15461, 0x00000C21 }, /* GL_INDEX_WRITEMASK */ + { 15480, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */ + { 15499, 0x00001404 }, /* GL_INT */ + { 15506, 0x00008049 }, /* GL_INTENSITY */ + { 15519, 0x0000804C }, /* GL_INTENSITY12 */ + { 15534, 0x0000804C }, /* GL_INTENSITY12_EXT */ + { 15553, 0x0000804D }, /* GL_INTENSITY16 */ + { 15568, 0x00008D8B }, /* GL_INTENSITY16I_EXT */ + { 15588, 0x00008D79 }, /* GL_INTENSITY16UI_EXT */ + { 15609, 0x0000804D }, /* GL_INTENSITY16_EXT */ + { 15628, 0x00008D85 }, /* GL_INTENSITY32I_EXT */ + { 15648, 0x00008D73 }, /* GL_INTENSITY32UI_EXT */ + { 15669, 0x0000804A }, /* GL_INTENSITY4 */ + { 15683, 0x0000804A }, /* GL_INTENSITY4_EXT */ + { 15701, 0x0000804B }, /* GL_INTENSITY8 */ + { 15715, 0x00008D91 }, /* GL_INTENSITY8I_EXT */ + { 15734, 0x00008D7F }, /* GL_INTENSITY8UI_EXT */ + { 15754, 0x0000804B }, /* GL_INTENSITY8_EXT */ + { 15772, 0x00008049 }, /* GL_INTENSITY_EXT */ + { 15789, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS_EXT */ + { 15816, 0x00008575 }, /* GL_INTERPOLATE */ + { 15831, 0x00008575 }, /* GL_INTERPOLATE_ARB */ + { 15850, 0x00008575 }, /* GL_INTERPOLATE_EXT */ + { 15869, 0x00008DF7 }, /* GL_INT_10_10_10_2_OES */ + { 15891, 0x00008B53 }, /* GL_INT_VEC2 */ + { 15903, 0x00008B53 }, /* GL_INT_VEC2_ARB */ + { 15919, 0x00008B54 }, /* GL_INT_VEC3 */ + { 15931, 0x00008B54 }, /* GL_INT_VEC3_ARB */ + { 15947, 0x00008B55 }, /* GL_INT_VEC4 */ + { 15959, 0x00008B55 }, /* GL_INT_VEC4_ARB */ + { 15975, 0x00000500 }, /* GL_INVALID_ENUM */ + { 15991, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */ + { 16024, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */ + { 16061, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_OES */ + { 16098, 0x00000502 }, /* GL_INVALID_OPERATION */ + { 16119, 0x00000501 }, /* GL_INVALID_VALUE */ + { 16136, 0x0000862B }, /* GL_INVERSE_NV */ + { 16150, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */ + { 16174, 0x0000150A }, /* GL_INVERT */ + { 16184, 0x00001E00 }, /* GL_KEEP */ + { 16192, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */ + { 16218, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */ + { 16248, 0x00000406 }, /* GL_LEFT */ + { 16256, 0x00000203 }, /* GL_LEQUAL */ + { 16266, 0x00000201 }, /* GL_LESS */ + { 16274, 0x00004000 }, /* GL_LIGHT0 */ + { 16284, 0x00004001 }, /* GL_LIGHT1 */ + { 16294, 0x00004002 }, /* GL_LIGHT2 */ + { 16304, 0x00004003 }, /* GL_LIGHT3 */ + { 16314, 0x00004004 }, /* GL_LIGHT4 */ + { 16324, 0x00004005 }, /* GL_LIGHT5 */ + { 16334, 0x00004006 }, /* GL_LIGHT6 */ + { 16344, 0x00004007 }, /* GL_LIGHT7 */ + { 16354, 0x00000B50 }, /* GL_LIGHTING */ + { 16366, 0x00000040 }, /* GL_LIGHTING_BIT */ + { 16382, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */ + { 16405, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */ + { 16434, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */ + { 16467, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ + { 16495, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */ + { 16519, 0x00001B01 }, /* GL_LINE */ + { 16527, 0x00002601 }, /* GL_LINEAR */ + { 16537, 0x00001208 }, /* GL_LINEAR_ATTENUATION */ + { 16559, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ + { 16589, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ + { 16620, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */ + { 16644, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */ + { 16669, 0x00000001 }, /* GL_LINES */ + { 16678, 0x0000000A }, /* GL_LINES_ADJACENCY_ARB */ + { 16701, 0x00000004 }, /* GL_LINE_BIT */ + { 16713, 0x00000002 }, /* GL_LINE_LOOP */ + { 16726, 0x00000707 }, /* GL_LINE_RESET_TOKEN */ + { 16746, 0x00000B20 }, /* GL_LINE_SMOOTH */ + { 16761, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */ + { 16781, 0x00000B24 }, /* GL_LINE_STIPPLE */ + { 16797, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */ + { 16821, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */ + { 16844, 0x00000003 }, /* GL_LINE_STRIP */ + { 16858, 0x0000000B }, /* GL_LINE_STRIP_ADJACENCY_ARB */ + { 16886, 0x00000702 }, /* GL_LINE_TOKEN */ + { 16900, 0x00000B21 }, /* GL_LINE_WIDTH */ + { 16914, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */ + { 16940, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */ + { 16960, 0x00008B82 }, /* GL_LINK_STATUS */ + { 16975, 0x00000B32 }, /* GL_LIST_BASE */ + { 16988, 0x00020000 }, /* GL_LIST_BIT */ + { 17000, 0x00000B33 }, /* GL_LIST_INDEX */ + { 17014, 0x00000B30 }, /* GL_LIST_MODE */ + { 17027, 0x00000101 }, /* GL_LOAD */ + { 17035, 0x00000BF1 }, /* GL_LOGIC_OP */ + { 17047, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */ + { 17064, 0x00008CA1 }, /* GL_LOWER_LEFT */ + { 17078, 0x00008DF0 }, /* GL_LOW_FLOAT */ + { 17091, 0x00008DF3 }, /* GL_LOW_INT */ + { 17102, 0x00001909 }, /* GL_LUMINANCE */ + { 17115, 0x00008041 }, /* GL_LUMINANCE12 */ + { 17130, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */ + { 17153, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */ + { 17180, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */ + { 17202, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */ + { 17228, 0x00008041 }, /* GL_LUMINANCE12_EXT */ + { 17247, 0x00008042 }, /* GL_LUMINANCE16 */ + { 17262, 0x00008D8C }, /* GL_LUMINANCE16I_EXT */ + { 17282, 0x00008D7A }, /* GL_LUMINANCE16UI_EXT */ + { 17303, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */ + { 17326, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */ + { 17353, 0x00008042 }, /* GL_LUMINANCE16_EXT */ + { 17372, 0x00008D86 }, /* GL_LUMINANCE32I_EXT */ + { 17392, 0x00008D74 }, /* GL_LUMINANCE32UI_EXT */ + { 17413, 0x0000803F }, /* GL_LUMINANCE4 */ + { 17427, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */ + { 17448, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */ + { 17473, 0x0000803F }, /* GL_LUMINANCE4_EXT */ + { 17491, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */ + { 17512, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */ + { 17537, 0x00008040 }, /* GL_LUMINANCE8 */ + { 17551, 0x00008D92 }, /* GL_LUMINANCE8I_EXT */ + { 17570, 0x00008D80 }, /* GL_LUMINANCE8UI_EXT */ + { 17590, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */ + { 17611, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */ + { 17636, 0x00008040 }, /* GL_LUMINANCE8_EXT */ + { 17654, 0x0000190A }, /* GL_LUMINANCE_ALPHA */ + { 17673, 0x00008D8D }, /* GL_LUMINANCE_ALPHA16I_EXT */ + { 17699, 0x00008D7B }, /* GL_LUMINANCE_ALPHA16UI_EXT */ + { 17726, 0x00008D87 }, /* GL_LUMINANCE_ALPHA32I_EXT */ + { 17752, 0x00008D75 }, /* GL_LUMINANCE_ALPHA32UI_EXT */ + { 17779, 0x00008D93 }, /* GL_LUMINANCE_ALPHA8I_EXT */ + { 17804, 0x00008D81 }, /* GL_LUMINANCE_ALPHA8UI_EXT */ + { 17830, 0x00008D9D }, /* GL_LUMINANCE_ALPHA_INTEGER_EXT */ + { 17861, 0x00008D9C }, /* GL_LUMINANCE_INTEGER_EXT */ + { 17886, 0x00000D90 }, /* GL_MAP1_COLOR_4 */ + { 17902, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */ + { 17922, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */ + { 17944, 0x00000D91 }, /* GL_MAP1_INDEX */ + { 17958, 0x00000D92 }, /* GL_MAP1_NORMAL */ + { 17973, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */ + { 17997, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */ + { 18021, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */ + { 18045, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */ + { 18069, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */ + { 18086, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */ + { 18103, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ + { 18131, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ + { 18160, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ + { 18189, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ + { 18218, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ + { 18247, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ + { 18276, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ + { 18305, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ + { 18333, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ + { 18361, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ + { 18389, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ + { 18417, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ + { 18445, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ + { 18473, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ + { 18501, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ + { 18529, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ + { 18557, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */ + { 18573, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */ + { 18593, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */ + { 18615, 0x00000DB1 }, /* GL_MAP2_INDEX */ + { 18629, 0x00000DB2 }, /* GL_MAP2_NORMAL */ + { 18644, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */ + { 18668, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */ + { 18692, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */ + { 18716, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */ + { 18740, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */ + { 18757, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */ + { 18774, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ + { 18802, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ + { 18831, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ + { 18860, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ + { 18889, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ + { 18918, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ + { 18947, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ + { 18976, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ + { 19004, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ + { 19032, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ + { 19060, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ + { 19088, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ + { 19116, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ + { 19144, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */ + { 19172, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ + { 19200, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ + { 19228, 0x00000D10 }, /* GL_MAP_COLOR */ + { 19241, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */ + { 19267, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */ + { 19296, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */ + { 19324, 0x00000001 }, /* GL_MAP_READ_BIT */ + { 19340, 0x00000D11 }, /* GL_MAP_STENCIL */ + { 19355, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */ + { 19381, 0x00000002 }, /* GL_MAP_WRITE_BIT */ + { 19398, 0x000088C0 }, /* GL_MATRIX0_ARB */ + { 19413, 0x00008630 }, /* GL_MATRIX0_NV */ + { 19427, 0x000088CA }, /* GL_MATRIX10_ARB */ + { 19443, 0x000088CB }, /* GL_MATRIX11_ARB */ + { 19459, 0x000088CC }, /* GL_MATRIX12_ARB */ + { 19475, 0x000088CD }, /* GL_MATRIX13_ARB */ + { 19491, 0x000088CE }, /* GL_MATRIX14_ARB */ + { 19507, 0x000088CF }, /* GL_MATRIX15_ARB */ + { 19523, 0x000088D0 }, /* GL_MATRIX16_ARB */ + { 19539, 0x000088D1 }, /* GL_MATRIX17_ARB */ + { 19555, 0x000088D2 }, /* GL_MATRIX18_ARB */ + { 19571, 0x000088D3 }, /* GL_MATRIX19_ARB */ + { 19587, 0x000088C1 }, /* GL_MATRIX1_ARB */ + { 19602, 0x00008631 }, /* GL_MATRIX1_NV */ + { 19616, 0x000088D4 }, /* GL_MATRIX20_ARB */ + { 19632, 0x000088D5 }, /* GL_MATRIX21_ARB */ + { 19648, 0x000088D6 }, /* GL_MATRIX22_ARB */ + { 19664, 0x000088D7 }, /* GL_MATRIX23_ARB */ + { 19680, 0x000088D8 }, /* GL_MATRIX24_ARB */ + { 19696, 0x000088D9 }, /* GL_MATRIX25_ARB */ + { 19712, 0x000088DA }, /* GL_MATRIX26_ARB */ + { 19728, 0x000088DB }, /* GL_MATRIX27_ARB */ + { 19744, 0x000088DC }, /* GL_MATRIX28_ARB */ + { 19760, 0x000088DD }, /* GL_MATRIX29_ARB */ + { 19776, 0x000088C2 }, /* GL_MATRIX2_ARB */ + { 19791, 0x00008632 }, /* GL_MATRIX2_NV */ + { 19805, 0x000088DE }, /* GL_MATRIX30_ARB */ + { 19821, 0x000088DF }, /* GL_MATRIX31_ARB */ + { 19837, 0x000088C3 }, /* GL_MATRIX3_ARB */ + { 19852, 0x00008633 }, /* GL_MATRIX3_NV */ + { 19866, 0x000088C4 }, /* GL_MATRIX4_ARB */ + { 19881, 0x00008634 }, /* GL_MATRIX4_NV */ + { 19895, 0x000088C5 }, /* GL_MATRIX5_ARB */ + { 19910, 0x00008635 }, /* GL_MATRIX5_NV */ + { 19924, 0x000088C6 }, /* GL_MATRIX6_ARB */ + { 19939, 0x00008636 }, /* GL_MATRIX6_NV */ + { 19953, 0x000088C7 }, /* GL_MATRIX7_ARB */ + { 19968, 0x00008637 }, /* GL_MATRIX7_NV */ + { 19982, 0x000088C8 }, /* GL_MATRIX8_ARB */ + { 19997, 0x000088C9 }, /* GL_MATRIX9_ARB */ + { 20012, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */ + { 20038, 0x00008B9E }, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */ + { 20079, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_OES */ + { 20105, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ + { 20139, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_OES */ + { 20173, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ + { 20204, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_OES */ + { 20235, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ + { 20268, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_OES */ + { 20301, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ + { 20332, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_OES */ + { 20363, 0x00000BA0 }, /* GL_MATRIX_MODE */ + { 20378, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */ + { 20400, 0x00008840 }, /* GL_MATRIX_PALETTE_OES */ + { 20422, 0x00008008 }, /* GL_MAX */ + { 20429, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */ + { 20452, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE_OES */ + { 20479, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */ + { 20511, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */ + { 20537, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ + { 20570, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ + { 20596, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + { 20630, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */ + { 20649, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */ + { 20674, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */ + { 20703, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ + { 20735, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */ + { 20771, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ + { 20807, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */ + { 20847, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */ + { 20873, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */ + { 20903, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */ + { 20928, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */ + { 20957, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ + { 20986, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */ + { 21019, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES */ + { 21052, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */ + { 21072, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */ + { 21096, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */ + { 21120, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */ + { 21144, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */ + { 21169, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */ + { 21187, 0x00008008 }, /* GL_MAX_EXT */ + { 21198, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ + { 21233, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */ + { 21272, 0x00008DFD }, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */ + { 21304, 0x00008DE0 }, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB */ + { 21340, 0x00008C29 }, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB */ + { 21380, 0x00008DE1 }, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB */ + { 21424, 0x00008DDF }, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB */ + { 21463, 0x00008DDD }, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */ + { 21502, 0x00000D31 }, /* GL_MAX_LIGHTS */ + { 21516, 0x00000B31 }, /* GL_MAX_LIST_NESTING */ + { 21536, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ + { 21574, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */ + { 21603, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */ + { 21627, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */ + { 21655, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_OES */ + { 21683, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */ + { 21706, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ + { 21743, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ + { 21779, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ + { 21806, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ + { 21835, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ + { 21869, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ + { 21905, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ + { 21932, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ + { 21964, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ + { 22000, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ + { 22029, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ + { 22058, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */ + { 22086, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ + { 22124, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + { 22168, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + { 22211, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ + { 22245, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + { 22284, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ + { 22321, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ + { 22359, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + { 22402, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + { 22445, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ + { 22475, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ + { 22506, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ + { 22542, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ + { 22578, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */ + { 22608, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ + { 22642, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */ + { 22675, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */ + { 22700, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */ + { 22729, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_OES */ + { 22758, 0x00008D57 }, /* GL_MAX_SAMPLES */ + { 22773, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */ + { 22792, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */ + { 22819, 0x00008504 }, /* GL_MAX_SHININESS_NV */ + { 22839, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */ + { 22863, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */ + { 22885, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */ + { 22911, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */ + { 22938, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */ + { 22969, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */ + { 22993, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS_EXT */ + { 23021, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ + { 23055, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */ + { 23075, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */ + { 23102, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */ + { 23123, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */ + { 23148, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */ + { 23173, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */ + { 23208, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */ + { 23261, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */ + { 23308, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */ + { 23358, 0x00008B4B }, /* GL_MAX_VARYING_COMPONENTS */ + { 23384, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */ + { 23406, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */ + { 23432, 0x00008DFC }, /* GL_MAX_VARYING_VECTORS */ + { 23455, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */ + { 23477, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */ + { 23503, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ + { 23537, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ + { 23575, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ + { 23608, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */ + { 23645, 0x00008DFB }, /* GL_MAX_VERTEX_UNIFORM_VECTORS */ + { 23675, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */ + { 23699, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_OES */ + { 23723, 0x00008DDE }, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */ + { 23760, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */ + { 23781, 0x00008DF1 }, /* GL_MEDIUM_FLOAT */ + { 23797, 0x00008DF4 }, /* GL_MEDIUM_INT */ + { 23811, 0x00008007 }, /* GL_MIN */ + { 23818, 0x0000802E }, /* GL_MINMAX */ + { 23828, 0x0000802E }, /* GL_MINMAX_EXT */ + { 23842, 0x0000802F }, /* GL_MINMAX_FORMAT */ + { 23859, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */ + { 23880, 0x00008030 }, /* GL_MINMAX_SINK */ + { 23895, 0x00008030 }, /* GL_MINMAX_SINK_EXT */ + { 23914, 0x00008007 }, /* GL_MIN_EXT */ + { 23925, 0x00008370 }, /* GL_MIRRORED_REPEAT */ + { 23944, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */ + { 23967, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */ + { 23990, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */ + { 24010, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */ + { 24030, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ + { 24060, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */ + { 24088, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ + { 24116, 0x00001700 }, /* GL_MODELVIEW */ + { 24129, 0x00001700 }, /* GL_MODELVIEW0_ARB */ + { 24147, 0x0000872A }, /* GL_MODELVIEW10_ARB */ + { 24166, 0x0000872B }, /* GL_MODELVIEW11_ARB */ + { 24185, 0x0000872C }, /* GL_MODELVIEW12_ARB */ + { 24204, 0x0000872D }, /* GL_MODELVIEW13_ARB */ + { 24223, 0x0000872E }, /* GL_MODELVIEW14_ARB */ + { 24242, 0x0000872F }, /* GL_MODELVIEW15_ARB */ + { 24261, 0x00008730 }, /* GL_MODELVIEW16_ARB */ + { 24280, 0x00008731 }, /* GL_MODELVIEW17_ARB */ + { 24299, 0x00008732 }, /* GL_MODELVIEW18_ARB */ + { 24318, 0x00008733 }, /* GL_MODELVIEW19_ARB */ + { 24337, 0x0000850A }, /* GL_MODELVIEW1_ARB */ + { 24355, 0x00008734 }, /* GL_MODELVIEW20_ARB */ + { 24374, 0x00008735 }, /* GL_MODELVIEW21_ARB */ + { 24393, 0x00008736 }, /* GL_MODELVIEW22_ARB */ + { 24412, 0x00008737 }, /* GL_MODELVIEW23_ARB */ + { 24431, 0x00008738 }, /* GL_MODELVIEW24_ARB */ + { 24450, 0x00008739 }, /* GL_MODELVIEW25_ARB */ + { 24469, 0x0000873A }, /* GL_MODELVIEW26_ARB */ + { 24488, 0x0000873B }, /* GL_MODELVIEW27_ARB */ + { 24507, 0x0000873C }, /* GL_MODELVIEW28_ARB */ + { 24526, 0x0000873D }, /* GL_MODELVIEW29_ARB */ + { 24545, 0x00008722 }, /* GL_MODELVIEW2_ARB */ + { 24563, 0x0000873E }, /* GL_MODELVIEW30_ARB */ + { 24582, 0x0000873F }, /* GL_MODELVIEW31_ARB */ + { 24601, 0x00008723 }, /* GL_MODELVIEW3_ARB */ + { 24619, 0x00008724 }, /* GL_MODELVIEW4_ARB */ + { 24637, 0x00008725 }, /* GL_MODELVIEW5_ARB */ + { 24655, 0x00008726 }, /* GL_MODELVIEW6_ARB */ + { 24673, 0x00008727 }, /* GL_MODELVIEW7_ARB */ + { 24691, 0x00008728 }, /* GL_MODELVIEW8_ARB */ + { 24709, 0x00008729 }, /* GL_MODELVIEW9_ARB */ + { 24727, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */ + { 24747, 0x0000898D }, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */ + { 24789, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */ + { 24816, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */ + { 24841, 0x00002100 }, /* GL_MODULATE */ + { 24853, 0x00008744 }, /* GL_MODULATE_ADD_ATI */ + { 24873, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */ + { 24900, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */ + { 24925, 0x00000103 }, /* GL_MULT */ + { 24933, 0x0000809D }, /* GL_MULTISAMPLE */ + { 24948, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */ + { 24968, 0x0000809D }, /* GL_MULTISAMPLE_ARB */ + { 24987, 0x20000000 }, /* GL_MULTISAMPLE_BIT */ + { 25006, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */ + { 25030, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */ + { 25053, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */ + { 25083, 0x00002A25 }, /* GL_N3F_V3F */ + { 25094, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */ + { 25114, 0x0000150E }, /* GL_NAND */ + { 25122, 0x00002600 }, /* GL_NEAREST */ + { 25133, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ + { 25164, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ + { 25196, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */ + { 25221, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */ + { 25247, 0x00000200 }, /* GL_NEVER */ + { 25256, 0x00001102 }, /* GL_NICEST */ + { 25266, 0x00000000 }, /* GL_NONE */ + { 25274, 0x00000000 }, /* GL_NONE_OES */ + { 25286, 0x00001505 }, /* GL_NOOP */ + { 25294, 0x00001508 }, /* GL_NOR */ + { 25301, 0x00000BA1 }, /* GL_NORMALIZE */ + { 25314, 0x00008075 }, /* GL_NORMAL_ARRAY */ + { 25330, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ + { 25361, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */ + { 25396, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */ + { 25420, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */ + { 25443, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */ + { 25464, 0x00008511 }, /* GL_NORMAL_MAP */ + { 25478, 0x00008511 }, /* GL_NORMAL_MAP_ARB */ + { 25496, 0x00008511 }, /* GL_NORMAL_MAP_NV */ + { 25513, 0x00008511 }, /* GL_NORMAL_MAP_OES */ + { 25531, 0x00000205 }, /* GL_NOTEQUAL */ + { 25543, 0x00000000 }, /* GL_NO_ERROR */ + { 25555, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ + { 25589, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */ + { 25627, 0x000087FE }, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */ + { 25661, 0x00008DF9 }, /* GL_NUM_SHADER_BINARY_FORMATS */ + { 25690, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */ + { 25722, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */ + { 25764, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */ + { 25794, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */ + { 25834, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */ + { 25865, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */ + { 25894, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */ + { 25922, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */ + { 25952, 0x00002401 }, /* GL_OBJECT_LINEAR */ + { 25969, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */ + { 25995, 0x00002501 }, /* GL_OBJECT_PLANE */ + { 26011, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */ + { 26046, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */ + { 26068, 0x00009112 }, /* GL_OBJECT_TYPE */ + { 26083, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */ + { 26102, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */ + { 26132, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */ + { 26153, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */ + { 26181, 0x00000001 }, /* GL_ONE */ + { 26188, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */ + { 26216, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */ + { 26248, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */ + { 26276, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */ + { 26308, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */ + { 26331, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */ + { 26354, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */ + { 26377, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */ + { 26400, 0x00008598 }, /* GL_OPERAND0_ALPHA */ + { 26418, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */ + { 26440, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */ + { 26462, 0x00008590 }, /* GL_OPERAND0_RGB */ + { 26478, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */ + { 26498, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */ + { 26518, 0x00008599 }, /* GL_OPERAND1_ALPHA */ + { 26536, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */ + { 26558, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */ + { 26580, 0x00008591 }, /* GL_OPERAND1_RGB */ + { 26596, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */ + { 26616, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */ + { 26636, 0x0000859A }, /* GL_OPERAND2_ALPHA */ + { 26654, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */ + { 26676, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */ + { 26698, 0x00008592 }, /* GL_OPERAND2_RGB */ + { 26714, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */ + { 26734, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */ + { 26754, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */ + { 26775, 0x00008593 }, /* GL_OPERAND3_RGB_NV */ + { 26794, 0x00001507 }, /* GL_OR */ + { 26800, 0x00000A01 }, /* GL_ORDER */ + { 26809, 0x0000150D }, /* GL_OR_INVERTED */ + { 26824, 0x0000150B }, /* GL_OR_REVERSE */ + { 26838, 0x00000505 }, /* GL_OUT_OF_MEMORY */ + { 26855, 0x00000D05 }, /* GL_PACK_ALIGNMENT */ + { 26873, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */ + { 26894, 0x00008758 }, /* GL_PACK_INVERT_MESA */ + { 26914, 0x00000D01 }, /* GL_PACK_LSB_FIRST */ + { 26932, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */ + { 26951, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */ + { 26971, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */ + { 26991, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */ + { 27009, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */ + { 27028, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */ + { 27053, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */ + { 27077, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */ + { 27098, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */ + { 27120, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */ + { 27142, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */ + { 27167, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */ + { 27191, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */ + { 27212, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */ + { 27234, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */ + { 27256, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */ + { 27278, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */ + { 27309, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */ + { 27329, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */ + { 27354, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */ + { 27374, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */ + { 27399, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */ + { 27419, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */ + { 27444, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */ + { 27464, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */ + { 27489, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */ + { 27509, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */ + { 27534, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */ + { 27554, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */ + { 27579, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */ + { 27599, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */ + { 27624, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */ + { 27644, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */ + { 27669, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */ + { 27689, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */ + { 27714, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */ + { 27734, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */ + { 27759, 0x00000020 }, /* GL_PIXEL_MODE_BIT */ + { 27777, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */ + { 27798, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */ + { 27827, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */ + { 27860, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */ + { 27885, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */ + { 27908, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ + { 27939, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */ + { 27974, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */ + { 28001, 0x00001B00 }, /* GL_POINT */ + { 28010, 0x00000000 }, /* GL_POINTS */ + { 28020, 0x00000002 }, /* GL_POINT_BIT */ + { 28033, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */ + { 28063, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */ + { 28097, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */ + { 28131, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */ + { 28166, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */ + { 28195, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */ + { 28228, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */ + { 28261, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */ + { 28295, 0x00000B11 }, /* GL_POINT_SIZE */ + { 28309, 0x00008B9F }, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */ + { 28348, 0x00008B9C }, /* GL_POINT_SIZE_ARRAY_OES */ + { 28372, 0x0000898C }, /* GL_POINT_SIZE_ARRAY_POINTER_OES */ + { 28404, 0x0000898B }, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */ + { 28435, 0x0000898A }, /* GL_POINT_SIZE_ARRAY_TYPE_OES */ + { 28464, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */ + { 28490, 0x00008127 }, /* GL_POINT_SIZE_MAX */ + { 28508, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */ + { 28530, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */ + { 28552, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */ + { 28575, 0x00008126 }, /* GL_POINT_SIZE_MIN */ + { 28593, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */ + { 28615, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */ + { 28637, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */ + { 28660, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */ + { 28680, 0x00000B10 }, /* GL_POINT_SMOOTH */ + { 28696, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */ + { 28717, 0x00008861 }, /* GL_POINT_SPRITE */ + { 28733, 0x00008861 }, /* GL_POINT_SPRITE_ARB */ + { 28753, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */ + { 28782, 0x00008861 }, /* GL_POINT_SPRITE_NV */ + { 28801, 0x00008861 }, /* GL_POINT_SPRITE_OES */ + { 28821, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */ + { 28847, 0x00000701 }, /* GL_POINT_TOKEN */ + { 28862, 0x00000009 }, /* GL_POLYGON */ + { 28873, 0x00000008 }, /* GL_POLYGON_BIT */ + { 28888, 0x00000B40 }, /* GL_POLYGON_MODE */ + { 28904, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */ + { 28927, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */ + { 28952, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */ + { 28975, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */ + { 28998, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */ + { 29022, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */ + { 29046, 0x00000B41 }, /* GL_POLYGON_SMOOTH */ + { 29064, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */ + { 29087, 0x00000B42 }, /* GL_POLYGON_STIPPLE */ + { 29106, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */ + { 29129, 0x00000703 }, /* GL_POLYGON_TOKEN */ + { 29146, 0x00001203 }, /* GL_POSITION */ + { 29158, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ + { 29190, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */ + { 29226, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ + { 29259, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */ + { 29296, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ + { 29327, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */ + { 29362, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ + { 29394, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */ + { 29430, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ + { 29463, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ + { 29495, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */ + { 29531, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ + { 29564, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */ + { 29601, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */ + { 29631, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */ + { 29665, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */ + { 29696, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */ + { 29731, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ + { 29762, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */ + { 29797, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ + { 29829, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */ + { 29865, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */ + { 29895, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */ + { 29929, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */ + { 29960, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */ + { 29995, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */ + { 30027, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */ + { 30058, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */ + { 30093, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */ + { 30125, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */ + { 30161, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */ + { 30190, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */ + { 30223, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */ + { 30253, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */ + { 30287, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ + { 30326, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ + { 30359, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ + { 30399, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ + { 30433, 0x00008578 }, /* GL_PREVIOUS */ + { 30445, 0x00008578 }, /* GL_PREVIOUS_ARB */ + { 30461, 0x00008578 }, /* GL_PREVIOUS_EXT */ + { 30477, 0x00008577 }, /* GL_PRIMARY_COLOR */ + { 30494, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */ + { 30515, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */ + { 30536, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED_EXT */ + { 30564, 0x00008559 }, /* GL_PRIMITIVE_RESTART_INDEX_NV */ + { 30594, 0x00008558 }, /* GL_PRIMITIVE_RESTART_NV */ + { 30618, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ + { 30651, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ + { 30683, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */ + { 30706, 0x000087FF }, /* GL_PROGRAM_BINARY_FORMATS_OES */ + { 30736, 0x00008741 }, /* GL_PROGRAM_BINARY_LENGTH_OES */ + { 30765, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */ + { 30788, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */ + { 30818, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */ + { 30847, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */ + { 30875, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */ + { 30897, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */ + { 30925, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */ + { 30953, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */ + { 30975, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */ + { 30996, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + { 31036, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + { 31075, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ + { 31105, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + { 31140, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ + { 31173, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ + { 31207, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + { 31246, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + { 31285, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */ + { 31307, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */ + { 31333, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */ + { 31357, 0x00008642 }, /* GL_PROGRAM_POINT_SIZE_ARB */ + { 31383, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */ + { 31406, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */ + { 31428, 0x00008628 }, /* GL_PROGRAM_STRING_NV */ + { 31449, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */ + { 31470, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */ + { 31497, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ + { 31529, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ + { 31561, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ + { 31596, 0x00001701 }, /* GL_PROJECTION */ + { 31610, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */ + { 31631, 0x0000898E }, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */ + { 31674, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */ + { 31700, 0x00008E4F }, /* GL_PROVOKING_VERTEX */ + { 31720, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */ + { 31744, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */ + { 31765, 0x00008025 }, /* GL_PROXY_HISTOGRAM */ + { 31784, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */ + { 31807, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ + { 31846, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ + { 31884, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */ + { 31904, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ + { 31934, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */ + { 31958, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */ + { 31978, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */ + { 32008, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */ + { 32032, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */ + { 32052, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ + { 32085, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */ + { 32111, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */ + { 32141, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ + { 32172, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */ + { 32202, 0x00008A1D }, /* GL_PURGEABLE_APPLE */ + { 32221, 0x00002003 }, /* GL_Q */ + { 32226, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */ + { 32251, 0x00000007 }, /* GL_QUADS */ + { 32260, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ + { 32304, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */ + { 32352, 0x00008614 }, /* GL_QUAD_MESH_SUN */ + { 32369, 0x00000008 }, /* GL_QUAD_STRIP */ + { 32383, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */ + { 32413, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */ + { 32440, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */ + { 32462, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */ + { 32488, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */ + { 32508, 0x00008866 }, /* GL_QUERY_RESULT */ + { 32524, 0x00008866 }, /* GL_QUERY_RESULT_ARB */ + { 32544, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */ + { 32570, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */ + { 32600, 0x00008E13 }, /* GL_QUERY_WAIT_NV */ + { 32617, 0x00002002 }, /* GL_R */ + { 32622, 0x00002A10 }, /* GL_R3_G3_B2 */ + { 32634, 0x00008C89 }, /* GL_RASTERIZER_DISCARD_EXT */ + { 32660, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ + { 32693, 0x00000C02 }, /* GL_READ_BUFFER */ + { 32708, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */ + { 32728, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */ + { 32756, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */ + { 32788, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */ + { 32812, 0x000088B8 }, /* GL_READ_ONLY */ + { 32825, 0x000088B8 }, /* GL_READ_ONLY_ARB */ + { 32842, 0x000088BA }, /* GL_READ_WRITE */ + { 32856, 0x000088BA }, /* GL_READ_WRITE_ARB */ + { 32874, 0x00001903 }, /* GL_RED */ + { 32881, 0x00008016 }, /* GL_REDUCE */ + { 32891, 0x00008016 }, /* GL_REDUCE_EXT */ + { 32905, 0x00000D15 }, /* GL_RED_BIAS */ + { 32917, 0x00000D52 }, /* GL_RED_BITS */ + { 32929, 0x00008D94 }, /* GL_RED_INTEGER_EXT */ + { 32948, 0x00000D14 }, /* GL_RED_SCALE */ + { 32961, 0x00008512 }, /* GL_REFLECTION_MAP */ + { 32979, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */ + { 33001, 0x00008512 }, /* GL_REFLECTION_MAP_NV */ + { 33022, 0x00008512 }, /* GL_REFLECTION_MAP_OES */ + { 33044, 0x00008A19 }, /* GL_RELEASED_APPLE */ + { 33062, 0x00001C00 }, /* GL_RENDER */ + { 33072, 0x00008D41 }, /* GL_RENDERBUFFER */ + { 33088, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */ + { 33115, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE_OES */ + { 33146, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */ + { 33170, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */ + { 33198, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_OES */ + { 33226, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */ + { 33252, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE_OES */ + { 33282, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */ + { 33309, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE_OES */ + { 33340, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */ + { 33360, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */ + { 33387, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE_OES */ + { 33418, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */ + { 33441, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */ + { 33468, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_OES */ + { 33495, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ + { 33527, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */ + { 33563, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_OES */ + { 33599, 0x00008D41 }, /* GL_RENDERBUFFER_OES */ + { 33619, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */ + { 33644, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE_OES */ + { 33673, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */ + { 33697, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */ + { 33725, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */ + { 33754, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE_OES */ + { 33787, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */ + { 33809, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */ + { 33835, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_OES */ + { 33861, 0x00001F01 }, /* GL_RENDERER */ + { 33873, 0x00000C40 }, /* GL_RENDER_MODE */ + { 33888, 0x00002901 }, /* GL_REPEAT */ + { 33898, 0x00001E01 }, /* GL_REPLACE */ + { 33909, 0x00008062 }, /* GL_REPLACE_EXT */ + { 33924, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */ + { 33947, 0x0000803A }, /* GL_RESCALE_NORMAL */ + { 33965, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */ + { 33987, 0x00008A1B }, /* GL_RETAINED_APPLE */ + { 34005, 0x00000102 }, /* GL_RETURN */ + { 34015, 0x00001907 }, /* GL_RGB */ + { 34022, 0x00008052 }, /* GL_RGB10 */ + { 34031, 0x00008059 }, /* GL_RGB10_A2 */ + { 34043, 0x00008059 }, /* GL_RGB10_A2_EXT */ + { 34059, 0x00008052 }, /* GL_RGB10_EXT */ + { 34072, 0x00008053 }, /* GL_RGB12 */ + { 34081, 0x00008053 }, /* GL_RGB12_EXT */ + { 34094, 0x00008054 }, /* GL_RGB16 */ + { 34103, 0x00008D89 }, /* GL_RGB16I_EXT */ + { 34117, 0x00008D77 }, /* GL_RGB16UI_EXT */ + { 34132, 0x00008054 }, /* GL_RGB16_EXT */ + { 34145, 0x0000804E }, /* GL_RGB2_EXT */ + { 34157, 0x00008D83 }, /* GL_RGB32I_EXT */ + { 34171, 0x00008D71 }, /* GL_RGB32UI_EXT */ + { 34186, 0x0000804F }, /* GL_RGB4 */ + { 34194, 0x0000804F }, /* GL_RGB4_EXT */ + { 34206, 0x000083A1 }, /* GL_RGB4_S3TC */ + { 34219, 0x00008050 }, /* GL_RGB5 */ + { 34227, 0x00008D62 }, /* GL_RGB565 */ + { 34237, 0x00008D62 }, /* GL_RGB565_OES */ + { 34251, 0x00008057 }, /* GL_RGB5_A1 */ + { 34262, 0x00008057 }, /* GL_RGB5_A1_EXT */ + { 34277, 0x00008057 }, /* GL_RGB5_A1_OES */ + { 34292, 0x00008050 }, /* GL_RGB5_EXT */ + { 34304, 0x00008051 }, /* GL_RGB8 */ + { 34312, 0x00008D8F }, /* GL_RGB8I_EXT */ + { 34325, 0x00008D7D }, /* GL_RGB8UI_EXT */ + { 34339, 0x00008051 }, /* GL_RGB8_EXT */ + { 34351, 0x00008051 }, /* GL_RGB8_OES */ + { 34363, 0x00001908 }, /* GL_RGBA */ + { 34371, 0x0000805A }, /* GL_RGBA12 */ + { 34381, 0x0000805A }, /* GL_RGBA12_EXT */ + { 34395, 0x0000805B }, /* GL_RGBA16 */ + { 34405, 0x00008D88 }, /* GL_RGBA16I_EXT */ + { 34420, 0x00008D76 }, /* GL_RGBA16UI_EXT */ + { 34436, 0x0000805B }, /* GL_RGBA16_EXT */ + { 34450, 0x00008055 }, /* GL_RGBA2 */ + { 34459, 0x00008055 }, /* GL_RGBA2_EXT */ + { 34472, 0x00008D82 }, /* GL_RGBA32I_EXT */ + { 34487, 0x00008D70 }, /* GL_RGBA32UI_EXT */ + { 34503, 0x00008056 }, /* GL_RGBA4 */ + { 34512, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */ + { 34531, 0x00008056 }, /* GL_RGBA4_EXT */ + { 34544, 0x00008056 }, /* GL_RGBA4_OES */ + { 34557, 0x000083A3 }, /* GL_RGBA4_S3TC */ + { 34571, 0x00008058 }, /* GL_RGBA8 */ + { 34580, 0x00008D8E }, /* GL_RGBA8I_EXT */ + { 34594, 0x00008D7C }, /* GL_RGBA8UI_EXT */ + { 34609, 0x00008058 }, /* GL_RGBA8_EXT */ + { 34622, 0x00008058 }, /* GL_RGBA8_OES */ + { 34635, 0x00008F97 }, /* GL_RGBA8_SNORM */ + { 34650, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */ + { 34668, 0x00008D99 }, /* GL_RGBA_INTEGER_EXT */ + { 34688, 0x00008D9E }, /* GL_RGBA_INTEGER_MODE_EXT */ + { 34713, 0x00000C31 }, /* GL_RGBA_MODE */ + { 34726, 0x000083A2 }, /* GL_RGBA_S3TC */ + { 34739, 0x00008F93 }, /* GL_RGBA_SNORM */ + { 34753, 0x00008D98 }, /* GL_RGB_INTEGER_EXT */ + { 34772, 0x000083A0 }, /* GL_RGB_S3TC */ + { 34784, 0x00008573 }, /* GL_RGB_SCALE */ + { 34797, 0x00008573 }, /* GL_RGB_SCALE_ARB */ + { 34814, 0x00008573 }, /* GL_RGB_SCALE_EXT */ + { 34831, 0x00000407 }, /* GL_RIGHT */ + { 34840, 0x00002000 }, /* GL_S */ + { 34845, 0x00008B5D }, /* GL_SAMPLER_1D */ + { 34859, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */ + { 34880, 0x00008B5E }, /* GL_SAMPLER_2D */ + { 34894, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */ + { 34915, 0x00008B5F }, /* GL_SAMPLER_3D */ + { 34929, 0x00008B5F }, /* GL_SAMPLER_3D_OES */ + { 34947, 0x00008B60 }, /* GL_SAMPLER_CUBE */ + { 34963, 0x000080A9 }, /* GL_SAMPLES */ + { 34974, 0x000086B4 }, /* GL_SAMPLES_3DFX */ + { 34990, 0x000080A9 }, /* GL_SAMPLES_ARB */ + { 35005, 0x00008914 }, /* GL_SAMPLES_PASSED */ + { 35023, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */ + { 35045, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ + { 35073, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */ + { 35105, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */ + { 35128, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */ + { 35155, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */ + { 35173, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */ + { 35196, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */ + { 35218, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */ + { 35237, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */ + { 35260, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */ + { 35286, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */ + { 35316, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */ + { 35341, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */ + { 35370, 0x00080000 }, /* GL_SCISSOR_BIT */ + { 35385, 0x00000C10 }, /* GL_SCISSOR_BOX */ + { 35400, 0x00000C11 }, /* GL_SCISSOR_TEST */ + { 35416, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */ + { 35441, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ + { 35481, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */ + { 35525, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ + { 35558, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ + { 35588, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ + { 35620, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ + { 35650, 0x00001C02 }, /* GL_SELECT */ + { 35660, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */ + { 35688, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */ + { 35713, 0x00008012 }, /* GL_SEPARABLE_2D */ + { 35729, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS_EXT */ + { 35753, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */ + { 35780, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */ + { 35811, 0x0000150F }, /* GL_SET */ + { 35818, 0x00008DF8 }, /* GL_SHADER_BINARY_FORMATS */ + { 35843, 0x00008DFA }, /* GL_SHADER_COMPILER */ + { 35862, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */ + { 35883, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */ + { 35907, 0x00008B4F }, /* GL_SHADER_TYPE */ + { 35922, 0x00000B54 }, /* GL_SHADE_MODEL */ + { 35937, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */ + { 35965, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */ + { 35988, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */ + { 36018, 0x00001601 }, /* GL_SHININESS */ + { 36031, 0x00001402 }, /* GL_SHORT */ + { 36040, 0x00009119 }, /* GL_SIGNALED */ + { 36052, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */ + { 36073, 0x000081F9 }, /* GL_SINGLE_COLOR */ + { 36089, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */ + { 36109, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */ + { 36128, 0x00008C46 }, /* GL_SLUMINANCE */ + { 36142, 0x00008C47 }, /* GL_SLUMINANCE8 */ + { 36157, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */ + { 36179, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */ + { 36199, 0x00001D01 }, /* GL_SMOOTH */ + { 36209, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ + { 36242, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */ + { 36269, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */ + { 36302, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */ + { 36329, 0x00008588 }, /* GL_SOURCE0_ALPHA */ + { 36346, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */ + { 36367, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */ + { 36388, 0x00008580 }, /* GL_SOURCE0_RGB */ + { 36403, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */ + { 36422, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */ + { 36441, 0x00008589 }, /* GL_SOURCE1_ALPHA */ + { 36458, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */ + { 36479, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */ + { 36500, 0x00008581 }, /* GL_SOURCE1_RGB */ + { 36515, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */ + { 36534, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */ + { 36553, 0x0000858A }, /* GL_SOURCE2_ALPHA */ + { 36570, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */ + { 36591, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */ + { 36612, 0x00008582 }, /* GL_SOURCE2_RGB */ + { 36627, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */ + { 36646, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */ + { 36665, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */ + { 36685, 0x00008583 }, /* GL_SOURCE3_RGB_NV */ + { 36703, 0x00001202 }, /* GL_SPECULAR */ + { 36715, 0x00002402 }, /* GL_SPHERE_MAP */ + { 36729, 0x00001206 }, /* GL_SPOT_CUTOFF */ + { 36744, 0x00001204 }, /* GL_SPOT_DIRECTION */ + { 36762, 0x00001205 }, /* GL_SPOT_EXPONENT */ + { 36779, 0x00008588 }, /* GL_SRC0_ALPHA */ + { 36793, 0x00008580 }, /* GL_SRC0_RGB */ + { 36805, 0x00008589 }, /* GL_SRC1_ALPHA */ + { 36819, 0x00008581 }, /* GL_SRC1_RGB */ + { 36831, 0x0000858A }, /* GL_SRC2_ALPHA */ + { 36845, 0x00008582 }, /* GL_SRC2_RGB */ + { 36857, 0x00000302 }, /* GL_SRC_ALPHA */ + { 36870, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */ + { 36892, 0x00000300 }, /* GL_SRC_COLOR */ + { 36905, 0x00008C40 }, /* GL_SRGB */ + { 36913, 0x00008C41 }, /* GL_SRGB8 */ + { 36922, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */ + { 36938, 0x00008C42 }, /* GL_SRGB_ALPHA */ + { 36952, 0x00000503 }, /* GL_STACK_OVERFLOW */ + { 36970, 0x00000504 }, /* GL_STACK_UNDERFLOW */ + { 36989, 0x000088E6 }, /* GL_STATIC_COPY */ + { 37004, 0x000088E6 }, /* GL_STATIC_COPY_ARB */ + { 37023, 0x000088E4 }, /* GL_STATIC_DRAW */ + { 37038, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */ + { 37057, 0x000088E5 }, /* GL_STATIC_READ */ + { 37072, 0x000088E5 }, /* GL_STATIC_READ_ARB */ + { 37091, 0x00001802 }, /* GL_STENCIL */ + { 37102, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */ + { 37124, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */ + { 37150, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_OES */ + { 37176, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */ + { 37197, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */ + { 37222, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */ + { 37243, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */ + { 37268, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ + { 37300, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */ + { 37336, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ + { 37368, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */ + { 37404, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */ + { 37424, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */ + { 37451, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */ + { 37477, 0x00000D57 }, /* GL_STENCIL_BITS */ + { 37493, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */ + { 37515, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */ + { 37538, 0x00000B94 }, /* GL_STENCIL_FAIL */ + { 37554, 0x00000B92 }, /* GL_STENCIL_FUNC */ + { 37570, 0x00001901 }, /* GL_STENCIL_INDEX */ + { 37587, 0x00008D46 }, /* GL_STENCIL_INDEX1 */ + { 37605, 0x00008D49 }, /* GL_STENCIL_INDEX16 */ + { 37624, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */ + { 37647, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */ + { 37669, 0x00008D46 }, /* GL_STENCIL_INDEX1_OES */ + { 37691, 0x00008D47 }, /* GL_STENCIL_INDEX4 */ + { 37709, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */ + { 37731, 0x00008D47 }, /* GL_STENCIL_INDEX4_OES */ + { 37753, 0x00008D48 }, /* GL_STENCIL_INDEX8 */ + { 37771, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */ + { 37793, 0x00008D48 }, /* GL_STENCIL_INDEX8_OES */ + { 37815, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */ + { 37836, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */ + { 37863, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */ + { 37890, 0x00000B97 }, /* GL_STENCIL_REF */ + { 37905, 0x00000B90 }, /* GL_STENCIL_TEST */ + { 37921, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ + { 37950, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */ + { 37972, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */ + { 37993, 0x00000C33 }, /* GL_STEREO */ + { 38003, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */ + { 38027, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */ + { 38052, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */ + { 38076, 0x000088E2 }, /* GL_STREAM_COPY */ + { 38091, 0x000088E2 }, /* GL_STREAM_COPY_ARB */ + { 38110, 0x000088E0 }, /* GL_STREAM_DRAW */ + { 38125, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */ + { 38144, 0x000088E1 }, /* GL_STREAM_READ */ + { 38159, 0x000088E1 }, /* GL_STREAM_READ_ARB */ + { 38178, 0x00000D50 }, /* GL_SUBPIXEL_BITS */ + { 38195, 0x000084E7 }, /* GL_SUBTRACT */ + { 38207, 0x000084E7 }, /* GL_SUBTRACT_ARB */ + { 38223, 0x00009113 }, /* GL_SYNC_CONDITION */ + { 38241, 0x00009116 }, /* GL_SYNC_FENCE */ + { 38255, 0x00009115 }, /* GL_SYNC_FLAGS */ + { 38269, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */ + { 38296, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ + { 38326, 0x00009114 }, /* GL_SYNC_STATUS */ + { 38341, 0x00002001 }, /* GL_T */ + { 38346, 0x00002A2A }, /* GL_T2F_C3F_V3F */ + { 38361, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */ + { 38380, 0x00002A29 }, /* GL_T2F_C4UB_V3F */ + { 38396, 0x00002A2B }, /* GL_T2F_N3F_V3F */ + { 38411, 0x00002A27 }, /* GL_T2F_V3F */ + { 38422, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */ + { 38441, 0x00002A28 }, /* GL_T4F_V4F */ + { 38452, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */ + { 38475, 0x00001702 }, /* GL_TEXTURE */ + { 38486, 0x000084C0 }, /* GL_TEXTURE0 */ + { 38498, 0x000084C0 }, /* GL_TEXTURE0_ARB */ + { 38514, 0x000084C1 }, /* GL_TEXTURE1 */ + { 38526, 0x000084CA }, /* GL_TEXTURE10 */ + { 38539, 0x000084CA }, /* GL_TEXTURE10_ARB */ + { 38556, 0x000084CB }, /* GL_TEXTURE11 */ + { 38569, 0x000084CB }, /* GL_TEXTURE11_ARB */ + { 38586, 0x000084CC }, /* GL_TEXTURE12 */ + { 38599, 0x000084CC }, /* GL_TEXTURE12_ARB */ + { 38616, 0x000084CD }, /* GL_TEXTURE13 */ + { 38629, 0x000084CD }, /* GL_TEXTURE13_ARB */ + { 38646, 0x000084CE }, /* GL_TEXTURE14 */ + { 38659, 0x000084CE }, /* GL_TEXTURE14_ARB */ + { 38676, 0x000084CF }, /* GL_TEXTURE15 */ + { 38689, 0x000084CF }, /* GL_TEXTURE15_ARB */ + { 38706, 0x000084D0 }, /* GL_TEXTURE16 */ + { 38719, 0x000084D0 }, /* GL_TEXTURE16_ARB */ + { 38736, 0x000084D1 }, /* GL_TEXTURE17 */ + { 38749, 0x000084D1 }, /* GL_TEXTURE17_ARB */ + { 38766, 0x000084D2 }, /* GL_TEXTURE18 */ + { 38779, 0x000084D2 }, /* GL_TEXTURE18_ARB */ + { 38796, 0x000084D3 }, /* GL_TEXTURE19 */ + { 38809, 0x000084D3 }, /* GL_TEXTURE19_ARB */ + { 38826, 0x000084C1 }, /* GL_TEXTURE1_ARB */ + { 38842, 0x000084C2 }, /* GL_TEXTURE2 */ + { 38854, 0x000084D4 }, /* GL_TEXTURE20 */ + { 38867, 0x000084D4 }, /* GL_TEXTURE20_ARB */ + { 38884, 0x000084D5 }, /* GL_TEXTURE21 */ + { 38897, 0x000084D5 }, /* GL_TEXTURE21_ARB */ + { 38914, 0x000084D6 }, /* GL_TEXTURE22 */ + { 38927, 0x000084D6 }, /* GL_TEXTURE22_ARB */ + { 38944, 0x000084D7 }, /* GL_TEXTURE23 */ + { 38957, 0x000084D7 }, /* GL_TEXTURE23_ARB */ + { 38974, 0x000084D8 }, /* GL_TEXTURE24 */ + { 38987, 0x000084D8 }, /* GL_TEXTURE24_ARB */ + { 39004, 0x000084D9 }, /* GL_TEXTURE25 */ + { 39017, 0x000084D9 }, /* GL_TEXTURE25_ARB */ + { 39034, 0x000084DA }, /* GL_TEXTURE26 */ + { 39047, 0x000084DA }, /* GL_TEXTURE26_ARB */ + { 39064, 0x000084DB }, /* GL_TEXTURE27 */ + { 39077, 0x000084DB }, /* GL_TEXTURE27_ARB */ + { 39094, 0x000084DC }, /* GL_TEXTURE28 */ + { 39107, 0x000084DC }, /* GL_TEXTURE28_ARB */ + { 39124, 0x000084DD }, /* GL_TEXTURE29 */ + { 39137, 0x000084DD }, /* GL_TEXTURE29_ARB */ + { 39154, 0x000084C2 }, /* GL_TEXTURE2_ARB */ + { 39170, 0x000084C3 }, /* GL_TEXTURE3 */ + { 39182, 0x000084DE }, /* GL_TEXTURE30 */ + { 39195, 0x000084DE }, /* GL_TEXTURE30_ARB */ + { 39212, 0x000084DF }, /* GL_TEXTURE31 */ + { 39225, 0x000084DF }, /* GL_TEXTURE31_ARB */ + { 39242, 0x000084C3 }, /* GL_TEXTURE3_ARB */ + { 39258, 0x000084C4 }, /* GL_TEXTURE4 */ + { 39270, 0x000084C4 }, /* GL_TEXTURE4_ARB */ + { 39286, 0x000084C5 }, /* GL_TEXTURE5 */ + { 39298, 0x000084C5 }, /* GL_TEXTURE5_ARB */ + { 39314, 0x000084C6 }, /* GL_TEXTURE6 */ + { 39326, 0x000084C6 }, /* GL_TEXTURE6_ARB */ + { 39342, 0x000084C7 }, /* GL_TEXTURE7 */ + { 39354, 0x000084C7 }, /* GL_TEXTURE7_ARB */ + { 39370, 0x000084C8 }, /* GL_TEXTURE8 */ + { 39382, 0x000084C8 }, /* GL_TEXTURE8_ARB */ + { 39398, 0x000084C9 }, /* GL_TEXTURE9 */ + { 39410, 0x000084C9 }, /* GL_TEXTURE9_ARB */ + { 39426, 0x00000DE0 }, /* GL_TEXTURE_1D */ + { 39440, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */ + { 39464, 0x00000DE1 }, /* GL_TEXTURE_2D */ + { 39478, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */ + { 39502, 0x0000806F }, /* GL_TEXTURE_3D */ + { 39516, 0x0000806F }, /* GL_TEXTURE_3D_OES */ + { 39534, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */ + { 39556, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */ + { 39582, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */ + { 39604, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */ + { 39626, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */ + { 39658, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */ + { 39680, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */ + { 39712, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */ + { 39734, 0x0000806A }, /* GL_TEXTURE_BINDING_3D_OES */ + { 39760, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */ + { 39788, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */ + { 39820, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_OES */ + { 39852, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */ + { 39885, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */ + { 39917, 0x00040000 }, /* GL_TEXTURE_BIT */ + { 39932, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */ + { 39953, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */ + { 39978, 0x00001005 }, /* GL_TEXTURE_BORDER */ + { 39996, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */ + { 40020, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ + { 40051, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ + { 40081, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ + { 40111, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ + { 40146, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ + { 40177, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + { 40215, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */ + { 40242, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ + { 40274, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ + { 40308, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */ + { 40332, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */ + { 40360, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */ + { 40384, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */ + { 40412, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ + { 40445, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */ + { 40469, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */ + { 40491, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */ + { 40513, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */ + { 40539, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */ + { 40573, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ + { 40606, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */ + { 40643, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */ + { 40671, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */ + { 40703, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */ + { 40726, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ + { 40764, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */ + { 40806, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */ + { 40837, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */ + { 40865, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ + { 40895, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */ + { 40923, 0x00008B9D }, /* GL_TEXTURE_CROP_RECT_OES */ + { 40948, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */ + { 40968, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */ + { 40992, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ + { 41023, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */ + { 41058, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES */ + { 41093, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ + { 41124, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */ + { 41159, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES */ + { 41194, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ + { 41225, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */ + { 41260, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES */ + { 41295, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_OES */ + { 41319, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ + { 41350, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */ + { 41385, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES */ + { 41420, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ + { 41451, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */ + { 41486, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES */ + { 41521, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ + { 41552, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */ + { 41587, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES */ + { 41622, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ + { 41651, 0x00008071 }, /* GL_TEXTURE_DEPTH */ + { 41668, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */ + { 41690, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */ + { 41716, 0x00002300 }, /* GL_TEXTURE_ENV */ + { 41731, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */ + { 41752, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */ + { 41772, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */ + { 41798, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL_EXT */ + { 41828, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */ + { 41848, 0x00002500 }, /* GL_TEXTURE_GEN_MODE_OES */ + { 41872, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */ + { 41889, 0x00000C62 }, /* GL_TEXTURE_GEN_R */ + { 41906, 0x00000C60 }, /* GL_TEXTURE_GEN_S */ + { 41923, 0x00008D60 }, /* GL_TEXTURE_GEN_STR_OES */ + { 41946, 0x00000C61 }, /* GL_TEXTURE_GEN_T */ + { 41963, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */ + { 41988, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */ + { 42010, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */ + { 42036, 0x00001001 }, /* GL_TEXTURE_HEIGHT */ + { 42054, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */ + { 42080, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */ + { 42106, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */ + { 42136, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */ + { 42163, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */ + { 42188, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */ + { 42208, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */ + { 42232, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ + { 42259, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ + { 42286, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ + { 42313, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */ + { 42339, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */ + { 42369, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */ + { 42391, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */ + { 42409, 0x0000898F }, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */ + { 42449, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ + { 42479, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ + { 42507, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ + { 42535, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ + { 42563, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */ + { 42584, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */ + { 42603, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */ + { 42625, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */ + { 42644, 0x00008066 }, /* GL_TEXTURE_PRIORITY */ + { 42664, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ + { 42694, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */ + { 42725, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */ + { 42750, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */ + { 42774, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */ + { 42794, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */ + { 42818, 0x00008067 }, /* GL_TEXTURE_RESIDENT */ + { 42838, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */ + { 42861, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */ + { 42885, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */ + { 42913, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */ + { 42943, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */ + { 42968, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ + { 43002, 0x00001000 }, /* GL_TEXTURE_WIDTH */ + { 43019, 0x00008072 }, /* GL_TEXTURE_WRAP_R */ + { 43037, 0x00008072 }, /* GL_TEXTURE_WRAP_R_OES */ + { 43059, 0x00002802 }, /* GL_TEXTURE_WRAP_S */ + { 43077, 0x00002803 }, /* GL_TEXTURE_WRAP_T */ + { 43095, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */ + { 43114, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */ + { 43134, 0x00008648 }, /* GL_TRACK_MATRIX_NV */ + { 43153, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */ + { 43182, 0x00001000 }, /* GL_TRANSFORM_BIT */ + { 43199, 0x00008E22 }, /* GL_TRANSFORM_FEEDBACK */ + { 43221, 0x00008E25 }, /* GL_TRANSFORM_FEEDBACK_BINDING */ + { 43251, 0x00008E24 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ + { 43287, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */ + { 43328, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */ + { 43361, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */ + { 43399, 0x00008E23 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ + { 43435, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */ + { 43473, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */ + { 43512, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */ + { 43557, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */ + { 43592, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */ + { 43637, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */ + { 43663, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */ + { 43693, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ + { 43725, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ + { 43755, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */ + { 43789, 0x0000862C }, /* GL_TRANSPOSE_NV */ + { 43805, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */ + { 43836, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */ + { 43871, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */ + { 43899, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */ + { 43931, 0x00000004 }, /* GL_TRIANGLES */ + { 43944, 0x0000000C }, /* GL_TRIANGLES_ADJACENCY_ARB */ + { 43971, 0x00000006 }, /* GL_TRIANGLE_FAN */ + { 43987, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */ + { 44008, 0x00000005 }, /* GL_TRIANGLE_STRIP */ + { 44026, 0x0000000D }, /* GL_TRIANGLE_STRIP_ADJACENCY_ARB */ + { 44058, 0x00000001 }, /* GL_TRUE */ + { 44066, 0x00008A1C }, /* GL_UNDEFINED_APPLE */ + { 44085, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */ + { 44105, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */ + { 44128, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */ + { 44148, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */ + { 44169, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */ + { 44191, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */ + { 44213, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */ + { 44233, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */ + { 44254, 0x00009118 }, /* GL_UNSIGNALED */ + { 44268, 0x00001401 }, /* GL_UNSIGNED_BYTE */ + { 44285, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */ + { 44312, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */ + { 44335, 0x00001405 }, /* GL_UNSIGNED_INT */ + { 44351, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */ + { 44378, 0x00008DF6 }, /* GL_UNSIGNED_INT_10_10_10_2_OES */ + { 44409, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */ + { 44430, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */ + { 44455, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */ + { 44479, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_OES */ + { 44504, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */ + { 44535, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV_EXT */ + { 44570, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */ + { 44594, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */ + { 44622, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */ + { 44645, 0x00001403 }, /* GL_UNSIGNED_SHORT */ + { 44663, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ + { 44693, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT */ + { 44727, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */ + { 44753, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ + { 44783, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT */ + { 44817, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */ + { 44843, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */ + { 44867, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */ + { 44895, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */ + { 44923, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */ + { 44950, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ + { 44982, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */ + { 45013, 0x00008CA2 }, /* GL_UPPER_LEFT */ + { 45027, 0x00002A20 }, /* GL_V2F */ + { 45034, 0x00002A21 }, /* GL_V3F */ + { 45041, 0x00008B83 }, /* GL_VALIDATE_STATUS */ + { 45060, 0x00001F00 }, /* GL_VENDOR */ + { 45070, 0x00001F02 }, /* GL_VERSION */ + { 45081, 0x00008074 }, /* GL_VERTEX_ARRAY */ + { 45097, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */ + { 45121, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */ + { 45151, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ + { 45182, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */ + { 45217, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */ + { 45241, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */ + { 45262, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */ + { 45285, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */ + { 45306, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ + { 45333, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ + { 45361, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ + { 45389, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ + { 45417, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ + { 45445, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ + { 45473, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ + { 45501, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ + { 45528, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ + { 45555, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ + { 45582, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ + { 45609, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ + { 45636, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ + { 45663, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ + { 45690, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ + { 45717, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ + { 45744, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ + { 45782, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */ + { 45824, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ + { 45855, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */ + { 45890, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ + { 45924, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */ + { 45962, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ + { 45993, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */ + { 46028, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ + { 46056, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */ + { 46088, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ + { 46118, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */ + { 46152, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ + { 46180, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */ + { 46212, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */ + { 46232, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */ + { 46254, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */ + { 46283, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */ + { 46304, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */ + { 46333, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */ + { 46366, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */ + { 46398, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */ + { 46425, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */ + { 46456, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */ + { 46486, 0x00008B31 }, /* GL_VERTEX_SHADER */ + { 46503, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */ + { 46524, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */ + { 46551, 0x00000BA2 }, /* GL_VIEWPORT */ + { 46563, 0x00000800 }, /* GL_VIEWPORT_BIT */ + { 46579, 0x00008A1A }, /* GL_VOLATILE_APPLE */ + { 46597, 0x0000911D }, /* GL_WAIT_FAILED */ + { 46612, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */ + { 46632, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ + { 46663, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */ + { 46698, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_OES */ + { 46733, 0x000086AD }, /* GL_WEIGHT_ARRAY_OES */ + { 46753, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */ + { 46781, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_OES */ + { 46809, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */ + { 46834, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_OES */ + { 46859, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ + { 46886, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_OES */ + { 46913, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */ + { 46938, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_OES */ + { 46963, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */ + { 46987, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */ + { 47006, 0x000088B9 }, /* GL_WRITE_ONLY */ + { 47020, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */ + { 47038, 0x000088B9 }, /* GL_WRITE_ONLY_OES */ + { 47056, 0x00001506 }, /* GL_XOR */ + { 47063, 0x000085B9 }, /* GL_YCBCR_422_APPLE */ + { 47082, 0x00008757 }, /* GL_YCBCR_MESA */ + { 47096, 0x00000000 }, /* GL_ZERO */ + { 47104, 0x00000D16 }, /* GL_ZOOM_X */ + { 47114, 0x00000D17 }, /* GL_ZOOM_Y */ }; -static const unsigned reduced_enums[1423] = +static const unsigned reduced_enums[1472] = { - 500, /* GL_FALSE */ - 760, /* GL_LINES */ - 763, /* GL_LINE_LOOP */ - 770, /* GL_LINE_STRIP */ - 1934, /* GL_TRIANGLES */ - 1938, /* GL_TRIANGLE_STRIP */ - 1936, /* GL_TRIANGLE_FAN */ - 1393, /* GL_QUADS */ - 1397, /* GL_QUAD_STRIP */ - 1273, /* GL_POLYGON */ - 761, /* GL_LINES_ADJACENCY_ARB */ - 771, /* GL_LINE_STRIP_ADJACENCY_ARB */ - 1935, /* GL_TRIANGLES_ADJACENCY_ARB */ - 1939, /* GL_TRIANGLE_STRIP_ADJACENCY_ARB */ - 1285, /* GL_POLYGON_STIPPLE_BIT */ - 1228, /* GL_PIXEL_MODE_BIT */ - 747, /* GL_LIGHTING_BIT */ - 532, /* GL_FOG_BIT */ + 511, /* GL_FALSE */ + 778, /* GL_LINES */ + 781, /* GL_LINE_LOOP */ + 788, /* GL_LINE_STRIP */ + 1984, /* GL_TRIANGLES */ + 1988, /* GL_TRIANGLE_STRIP */ + 1986, /* GL_TRIANGLE_FAN */ + 1427, /* GL_QUADS */ + 1431, /* GL_QUAD_STRIP */ + 1305, /* GL_POLYGON */ + 779, /* GL_LINES_ADJACENCY_ARB */ + 789, /* GL_LINE_STRIP_ADJACENCY_ARB */ + 1985, /* GL_TRIANGLES_ADJACENCY_ARB */ + 1989, /* GL_TRIANGLE_STRIP_ADJACENCY_ARB */ + 1317, /* GL_POLYGON_STIPPLE_BIT */ + 1260, /* GL_PIXEL_MODE_BIT */ + 765, /* GL_LIGHTING_BIT */ + 543, /* GL_FOG_BIT */ 8, /* GL_ACCUM */ - 781, /* GL_LOAD */ - 1471, /* GL_RETURN */ - 1096, /* GL_MULT */ - 23, /* GL_ADD */ - 1112, /* GL_NEVER */ - 737, /* GL_LESS */ - 490, /* GL_EQUAL */ - 736, /* GL_LEQUAL */ - 649, /* GL_GREATER */ - 1129, /* GL_NOTEQUAL */ - 648, /* GL_GEQUAL */ - 47, /* GL_ALWAYS */ - 1622, /* GL_SRC_COLOR */ - 1161, /* GL_ONE_MINUS_SRC_COLOR */ - 1620, /* GL_SRC_ALPHA */ - 1160, /* GL_ONE_MINUS_SRC_ALPHA */ - 469, /* GL_DST_ALPHA */ - 1158, /* GL_ONE_MINUS_DST_ALPHA */ - 470, /* GL_DST_COLOR */ - 1159, /* GL_ONE_MINUS_DST_COLOR */ - 1621, /* GL_SRC_ALPHA_SATURATE */ - 629, /* GL_FRONT_LEFT */ - 630, /* GL_FRONT_RIGHT */ - 69, /* GL_BACK_LEFT */ - 70, /* GL_BACK_RIGHT */ - 626, /* GL_FRONT */ - 68, /* GL_BACK */ - 735, /* GL_LEFT */ - 1519, /* GL_RIGHT */ - 627, /* GL_FRONT_AND_BACK */ - 63, /* GL_AUX0 */ - 64, /* GL_AUX1 */ - 65, /* GL_AUX2 */ - 66, /* GL_AUX3 */ - 723, /* GL_INVALID_ENUM */ - 728, /* GL_INVALID_VALUE */ - 727, /* GL_INVALID_OPERATION */ - 1627, /* GL_STACK_OVERFLOW */ - 1628, /* GL_STACK_UNDERFLOW */ - 1186, /* GL_OUT_OF_MEMORY */ - 724, /* GL_INVALID_FRAMEBUFFER_OPERATION */ + 799, /* GL_LOAD */ + 1506, /* GL_RETURN */ + 1128, /* GL_MULT */ + 24, /* GL_ADD */ + 1144, /* GL_NEVER */ + 755, /* GL_LESS */ + 501, /* GL_EQUAL */ + 754, /* GL_LEQUAL */ + 660, /* GL_GREATER */ + 1161, /* GL_NOTEQUAL */ + 659, /* GL_GEQUAL */ + 55, /* GL_ALWAYS */ + 1672, /* GL_SRC_COLOR */ + 1193, /* GL_ONE_MINUS_SRC_COLOR */ + 1670, /* GL_SRC_ALPHA */ + 1192, /* GL_ONE_MINUS_SRC_ALPHA */ + 480, /* GL_DST_ALPHA */ + 1190, /* GL_ONE_MINUS_DST_ALPHA */ + 481, /* GL_DST_COLOR */ + 1191, /* GL_ONE_MINUS_DST_COLOR */ + 1671, /* GL_SRC_ALPHA_SATURATE */ + 640, /* GL_FRONT_LEFT */ + 641, /* GL_FRONT_RIGHT */ + 77, /* GL_BACK_LEFT */ + 78, /* GL_BACK_RIGHT */ + 637, /* GL_FRONT */ + 76, /* GL_BACK */ + 753, /* GL_LEFT */ + 1569, /* GL_RIGHT */ + 638, /* GL_FRONT_AND_BACK */ + 71, /* GL_AUX0 */ + 72, /* GL_AUX1 */ + 73, /* GL_AUX2 */ + 74, /* GL_AUX3 */ + 741, /* GL_INVALID_ENUM */ + 746, /* GL_INVALID_VALUE */ + 745, /* GL_INVALID_OPERATION */ + 1677, /* GL_STACK_OVERFLOW */ + 1678, /* GL_STACK_UNDERFLOW */ + 1218, /* GL_OUT_OF_MEMORY */ + 742, /* GL_INVALID_FRAMEBUFFER_OPERATION */ 0, /* GL_2D */ 2, /* GL_3D */ 3, /* GL_3D_COLOR */ 4, /* GL_3D_COLOR_TEXTURE */ 6, /* GL_4D_COLOR_TEXTURE */ - 1206, /* GL_PASS_THROUGH_TOKEN */ - 1272, /* GL_POINT_TOKEN */ - 772, /* GL_LINE_TOKEN */ - 1286, /* GL_POLYGON_TOKEN */ - 75, /* GL_BITMAP_TOKEN */ - 468, /* GL_DRAW_PIXEL_TOKEN */ - 315, /* GL_COPY_PIXEL_TOKEN */ - 764, /* GL_LINE_RESET_TOKEN */ - 493, /* GL_EXP */ - 494, /* GL_EXP2 */ - 352, /* GL_CW */ - 137, /* GL_CCW */ - 158, /* GL_COEFF */ - 1183, /* GL_ORDER */ - 405, /* GL_DOMAIN */ - 325, /* GL_CURRENT_COLOR */ - 328, /* GL_CURRENT_INDEX */ - 334, /* GL_CURRENT_NORMAL */ - 348, /* GL_CURRENT_TEXTURE_COORDS */ - 340, /* GL_CURRENT_RASTER_COLOR */ - 342, /* GL_CURRENT_RASTER_INDEX */ - 346, /* GL_CURRENT_RASTER_TEXTURE_COORDS */ - 343, /* GL_CURRENT_RASTER_POSITION */ - 344, /* GL_CURRENT_RASTER_POSITION_VALID */ - 341, /* GL_CURRENT_RASTER_DISTANCE */ - 1264, /* GL_POINT_SMOOTH */ - 1248, /* GL_POINT_SIZE */ - 1263, /* GL_POINT_SIZE_RANGE */ - 1254, /* GL_POINT_SIZE_GRANULARITY */ - 765, /* GL_LINE_SMOOTH */ - 773, /* GL_LINE_WIDTH */ - 775, /* GL_LINE_WIDTH_RANGE */ - 774, /* GL_LINE_WIDTH_GRANULARITY */ - 767, /* GL_LINE_STIPPLE */ - 768, /* GL_LINE_STIPPLE_PATTERN */ - 769, /* GL_LINE_STIPPLE_REPEAT */ - 780, /* GL_LIST_MODE */ - 963, /* GL_MAX_LIST_NESTING */ - 777, /* GL_LIST_BASE */ - 779, /* GL_LIST_INDEX */ - 1275, /* GL_POLYGON_MODE */ - 1282, /* GL_POLYGON_SMOOTH */ - 1284, /* GL_POLYGON_STIPPLE */ - 479, /* GL_EDGE_FLAG */ - 318, /* GL_CULL_FACE */ - 319, /* GL_CULL_FACE_MODE */ - 628, /* GL_FRONT_FACE */ - 746, /* GL_LIGHTING */ - 751, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ - 752, /* GL_LIGHT_MODEL_TWO_SIDE */ - 748, /* GL_LIGHT_MODEL_AMBIENT */ - 1569, /* GL_SHADE_MODEL */ - 206, /* GL_COLOR_MATERIAL_FACE */ - 207, /* GL_COLOR_MATERIAL_PARAMETER */ - 205, /* GL_COLOR_MATERIAL */ - 531, /* GL_FOG */ - 553, /* GL_FOG_INDEX */ - 549, /* GL_FOG_DENSITY */ - 557, /* GL_FOG_START */ - 551, /* GL_FOG_END */ - 554, /* GL_FOG_MODE */ - 533, /* GL_FOG_COLOR */ - 390, /* GL_DEPTH_RANGE */ - 399, /* GL_DEPTH_TEST */ - 402, /* GL_DEPTH_WRITEMASK */ - 375, /* GL_DEPTH_CLEAR_VALUE */ - 389, /* GL_DEPTH_FUNC */ + 1238, /* GL_PASS_THROUGH_TOKEN */ + 1304, /* GL_POINT_TOKEN */ + 790, /* GL_LINE_TOKEN */ + 1318, /* GL_POLYGON_TOKEN */ + 85, /* GL_BITMAP_TOKEN */ + 479, /* GL_DRAW_PIXEL_TOKEN */ + 326, /* GL_COPY_PIXEL_TOKEN */ + 782, /* GL_LINE_RESET_TOKEN */ + 504, /* GL_EXP */ + 505, /* GL_EXP2 */ + 363, /* GL_CW */ + 148, /* GL_CCW */ + 169, /* GL_COEFF */ + 1215, /* GL_ORDER */ + 416, /* GL_DOMAIN */ + 336, /* GL_CURRENT_COLOR */ + 339, /* GL_CURRENT_INDEX */ + 345, /* GL_CURRENT_NORMAL */ + 359, /* GL_CURRENT_TEXTURE_COORDS */ + 351, /* GL_CURRENT_RASTER_COLOR */ + 353, /* GL_CURRENT_RASTER_INDEX */ + 357, /* GL_CURRENT_RASTER_TEXTURE_COORDS */ + 354, /* GL_CURRENT_RASTER_POSITION */ + 355, /* GL_CURRENT_RASTER_POSITION_VALID */ + 352, /* GL_CURRENT_RASTER_DISTANCE */ + 1296, /* GL_POINT_SMOOTH */ + 1280, /* GL_POINT_SIZE */ + 1295, /* GL_POINT_SIZE_RANGE */ + 1286, /* GL_POINT_SIZE_GRANULARITY */ + 783, /* GL_LINE_SMOOTH */ + 791, /* GL_LINE_WIDTH */ + 793, /* GL_LINE_WIDTH_RANGE */ + 792, /* GL_LINE_WIDTH_GRANULARITY */ + 785, /* GL_LINE_STIPPLE */ + 786, /* GL_LINE_STIPPLE_PATTERN */ + 787, /* GL_LINE_STIPPLE_REPEAT */ + 798, /* GL_LIST_MODE */ + 995, /* GL_MAX_LIST_NESTING */ + 795, /* GL_LIST_BASE */ + 797, /* GL_LIST_INDEX */ + 1307, /* GL_POLYGON_MODE */ + 1314, /* GL_POLYGON_SMOOTH */ + 1316, /* GL_POLYGON_STIPPLE */ + 490, /* GL_EDGE_FLAG */ + 329, /* GL_CULL_FACE */ + 330, /* GL_CULL_FACE_MODE */ + 639, /* GL_FRONT_FACE */ + 764, /* GL_LIGHTING */ + 769, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ + 770, /* GL_LIGHT_MODEL_TWO_SIDE */ + 766, /* GL_LIGHT_MODEL_AMBIENT */ + 1619, /* GL_SHADE_MODEL */ + 217, /* GL_COLOR_MATERIAL_FACE */ + 218, /* GL_COLOR_MATERIAL_PARAMETER */ + 216, /* GL_COLOR_MATERIAL */ + 542, /* GL_FOG */ + 564, /* GL_FOG_INDEX */ + 560, /* GL_FOG_DENSITY */ + 568, /* GL_FOG_START */ + 562, /* GL_FOG_END */ + 565, /* GL_FOG_MODE */ + 544, /* GL_FOG_COLOR */ + 401, /* GL_DEPTH_RANGE */ + 410, /* GL_DEPTH_TEST */ + 413, /* GL_DEPTH_WRITEMASK */ + 386, /* GL_DEPTH_CLEAR_VALUE */ + 400, /* GL_DEPTH_FUNC */ 12, /* GL_ACCUM_CLEAR_VALUE */ - 1671, /* GL_STENCIL_TEST */ - 1652, /* GL_STENCIL_CLEAR_VALUE */ - 1654, /* GL_STENCIL_FUNC */ - 1673, /* GL_STENCIL_VALUE_MASK */ - 1653, /* GL_STENCIL_FAIL */ - 1668, /* GL_STENCIL_PASS_DEPTH_FAIL */ - 1669, /* GL_STENCIL_PASS_DEPTH_PASS */ - 1670, /* GL_STENCIL_REF */ - 1674, /* GL_STENCIL_WRITEMASK */ - 922, /* GL_MATRIX_MODE */ - 1118, /* GL_NORMALIZE */ - 2037, /* GL_VIEWPORT */ - 1091, /* GL_MODELVIEW_STACK_DEPTH */ - 1370, /* GL_PROJECTION_STACK_DEPTH */ - 1896, /* GL_TEXTURE_STACK_DEPTH */ - 1088, /* GL_MODELVIEW_MATRIX */ - 1368, /* GL_PROJECTION_MATRIX */ - 1878, /* GL_TEXTURE_MATRIX */ - 61, /* GL_ATTRIB_STACK_DEPTH */ - 148, /* GL_CLIENT_ATTRIB_STACK_DEPTH */ - 43, /* GL_ALPHA_TEST */ - 44, /* GL_ALPHA_TEST_FUNC */ - 45, /* GL_ALPHA_TEST_REF */ - 404, /* GL_DITHER */ - 79, /* GL_BLEND_DST */ - 93, /* GL_BLEND_SRC */ - 76, /* GL_BLEND */ - 783, /* GL_LOGIC_OP_MODE */ - 695, /* GL_INDEX_LOGIC_OP */ - 204, /* GL_COLOR_LOGIC_OP */ - 67, /* GL_AUX_BUFFERS */ - 415, /* GL_DRAW_BUFFER */ - 1412, /* GL_READ_BUFFER */ - 1547, /* GL_SCISSOR_BOX */ - 1548, /* GL_SCISSOR_TEST */ - 694, /* GL_INDEX_CLEAR_VALUE */ - 699, /* GL_INDEX_WRITEMASK */ - 201, /* GL_COLOR_CLEAR_VALUE */ - 243, /* GL_COLOR_WRITEMASK */ - 696, /* GL_INDEX_MODE */ - 1512, /* GL_RGBA_MODE */ - 414, /* GL_DOUBLEBUFFER */ - 1675, /* GL_STEREO */ - 1463, /* GL_RENDER_MODE */ - 1207, /* GL_PERSPECTIVE_CORRECTION_HINT */ - 1265, /* GL_POINT_SMOOTH_HINT */ - 766, /* GL_LINE_SMOOTH_HINT */ - 1283, /* GL_POLYGON_SMOOTH_HINT */ - 552, /* GL_FOG_HINT */ - 1858, /* GL_TEXTURE_GEN_S */ - 1860, /* GL_TEXTURE_GEN_T */ - 1857, /* GL_TEXTURE_GEN_R */ - 1856, /* GL_TEXTURE_GEN_Q */ - 1220, /* GL_PIXEL_MAP_I_TO_I */ - 1226, /* GL_PIXEL_MAP_S_TO_S */ - 1222, /* GL_PIXEL_MAP_I_TO_R */ - 1218, /* GL_PIXEL_MAP_I_TO_G */ - 1216, /* GL_PIXEL_MAP_I_TO_B */ - 1214, /* GL_PIXEL_MAP_I_TO_A */ - 1224, /* GL_PIXEL_MAP_R_TO_R */ - 1212, /* GL_PIXEL_MAP_G_TO_G */ - 1210, /* GL_PIXEL_MAP_B_TO_B */ - 1208, /* GL_PIXEL_MAP_A_TO_A */ - 1221, /* GL_PIXEL_MAP_I_TO_I_SIZE */ - 1227, /* GL_PIXEL_MAP_S_TO_S_SIZE */ - 1223, /* GL_PIXEL_MAP_I_TO_R_SIZE */ - 1219, /* GL_PIXEL_MAP_I_TO_G_SIZE */ - 1217, /* GL_PIXEL_MAP_I_TO_B_SIZE */ - 1215, /* GL_PIXEL_MAP_I_TO_A_SIZE */ - 1225, /* GL_PIXEL_MAP_R_TO_R_SIZE */ - 1213, /* GL_PIXEL_MAP_G_TO_G_SIZE */ - 1211, /* GL_PIXEL_MAP_B_TO_B_SIZE */ - 1209, /* GL_PIXEL_MAP_A_TO_A_SIZE */ - 1949, /* GL_UNPACK_SWAP_BYTES */ - 1944, /* GL_UNPACK_LSB_FIRST */ - 1945, /* GL_UNPACK_ROW_LENGTH */ - 1948, /* GL_UNPACK_SKIP_ROWS */ - 1947, /* GL_UNPACK_SKIP_PIXELS */ - 1942, /* GL_UNPACK_ALIGNMENT */ - 1195, /* GL_PACK_SWAP_BYTES */ - 1190, /* GL_PACK_LSB_FIRST */ - 1191, /* GL_PACK_ROW_LENGTH */ - 1194, /* GL_PACK_SKIP_ROWS */ - 1193, /* GL_PACK_SKIP_PIXELS */ - 1187, /* GL_PACK_ALIGNMENT */ - 863, /* GL_MAP_COLOR */ - 868, /* GL_MAP_STENCIL */ - 698, /* GL_INDEX_SHIFT */ - 697, /* GL_INDEX_OFFSET */ - 1426, /* GL_RED_SCALE */ - 1424, /* GL_RED_BIAS */ - 2063, /* GL_ZOOM_X */ - 2064, /* GL_ZOOM_Y */ - 653, /* GL_GREEN_SCALE */ - 651, /* GL_GREEN_BIAS */ - 101, /* GL_BLUE_SCALE */ - 99, /* GL_BLUE_BIAS */ - 42, /* GL_ALPHA_SCALE */ - 40, /* GL_ALPHA_BIAS */ - 391, /* GL_DEPTH_SCALE */ - 368, /* GL_DEPTH_BIAS */ - 952, /* GL_MAX_EVAL_ORDER */ - 962, /* GL_MAX_LIGHTS */ - 933, /* GL_MAX_CLIP_PLANES */ - 1013, /* GL_MAX_TEXTURE_SIZE */ - 969, /* GL_MAX_PIXEL_MAP_TABLE */ - 929, /* GL_MAX_ATTRIB_STACK_DEPTH */ - 965, /* GL_MAX_MODELVIEW_STACK_DEPTH */ - 966, /* GL_MAX_NAME_STACK_DEPTH */ - 995, /* GL_MAX_PROJECTION_STACK_DEPTH */ - 1014, /* GL_MAX_TEXTURE_STACK_DEPTH */ - 1036, /* GL_MAX_VIEWPORT_DIMS */ - 930, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ - 1685, /* GL_SUBPIXEL_BITS */ - 693, /* GL_INDEX_BITS */ - 1425, /* GL_RED_BITS */ - 652, /* GL_GREEN_BITS */ - 100, /* GL_BLUE_BITS */ - 41, /* GL_ALPHA_BITS */ - 369, /* GL_DEPTH_BITS */ - 1650, /* GL_STENCIL_BITS */ + 1721, /* GL_STENCIL_TEST */ + 1702, /* GL_STENCIL_CLEAR_VALUE */ + 1704, /* GL_STENCIL_FUNC */ + 1723, /* GL_STENCIL_VALUE_MASK */ + 1703, /* GL_STENCIL_FAIL */ + 1718, /* GL_STENCIL_PASS_DEPTH_FAIL */ + 1719, /* GL_STENCIL_PASS_DEPTH_PASS */ + 1720, /* GL_STENCIL_REF */ + 1724, /* GL_STENCIL_WRITEMASK */ + 954, /* GL_MATRIX_MODE */ + 1150, /* GL_NORMALIZE */ + 2087, /* GL_VIEWPORT */ + 1123, /* GL_MODELVIEW_STACK_DEPTH */ + 1404, /* GL_PROJECTION_STACK_DEPTH */ + 1946, /* GL_TEXTURE_STACK_DEPTH */ + 1120, /* GL_MODELVIEW_MATRIX */ + 1402, /* GL_PROJECTION_MATRIX */ + 1928, /* GL_TEXTURE_MATRIX */ + 69, /* GL_ATTRIB_STACK_DEPTH */ + 159, /* GL_CLIENT_ATTRIB_STACK_DEPTH */ + 51, /* GL_ALPHA_TEST */ + 52, /* GL_ALPHA_TEST_FUNC */ + 53, /* GL_ALPHA_TEST_REF */ + 415, /* GL_DITHER */ + 89, /* GL_BLEND_DST */ + 103, /* GL_BLEND_SRC */ + 86, /* GL_BLEND */ + 801, /* GL_LOGIC_OP_MODE */ + 707, /* GL_INDEX_LOGIC_OP */ + 215, /* GL_COLOR_LOGIC_OP */ + 75, /* GL_AUX_BUFFERS */ + 426, /* GL_DRAW_BUFFER */ + 1446, /* GL_READ_BUFFER */ + 1597, /* GL_SCISSOR_BOX */ + 1598, /* GL_SCISSOR_TEST */ + 706, /* GL_INDEX_CLEAR_VALUE */ + 711, /* GL_INDEX_WRITEMASK */ + 212, /* GL_COLOR_CLEAR_VALUE */ + 254, /* GL_COLOR_WRITEMASK */ + 708, /* GL_INDEX_MODE */ + 1561, /* GL_RGBA_MODE */ + 425, /* GL_DOUBLEBUFFER */ + 1725, /* GL_STEREO */ + 1498, /* GL_RENDER_MODE */ + 1239, /* GL_PERSPECTIVE_CORRECTION_HINT */ + 1297, /* GL_POINT_SMOOTH_HINT */ + 784, /* GL_LINE_SMOOTH_HINT */ + 1315, /* GL_POLYGON_SMOOTH_HINT */ + 563, /* GL_FOG_HINT */ + 1908, /* GL_TEXTURE_GEN_S */ + 1910, /* GL_TEXTURE_GEN_T */ + 1907, /* GL_TEXTURE_GEN_R */ + 1906, /* GL_TEXTURE_GEN_Q */ + 1252, /* GL_PIXEL_MAP_I_TO_I */ + 1258, /* GL_PIXEL_MAP_S_TO_S */ + 1254, /* GL_PIXEL_MAP_I_TO_R */ + 1250, /* GL_PIXEL_MAP_I_TO_G */ + 1248, /* GL_PIXEL_MAP_I_TO_B */ + 1246, /* GL_PIXEL_MAP_I_TO_A */ + 1256, /* GL_PIXEL_MAP_R_TO_R */ + 1244, /* GL_PIXEL_MAP_G_TO_G */ + 1242, /* GL_PIXEL_MAP_B_TO_B */ + 1240, /* GL_PIXEL_MAP_A_TO_A */ + 1253, /* GL_PIXEL_MAP_I_TO_I_SIZE */ + 1259, /* GL_PIXEL_MAP_S_TO_S_SIZE */ + 1255, /* GL_PIXEL_MAP_I_TO_R_SIZE */ + 1251, /* GL_PIXEL_MAP_I_TO_G_SIZE */ + 1249, /* GL_PIXEL_MAP_I_TO_B_SIZE */ + 1247, /* GL_PIXEL_MAP_I_TO_A_SIZE */ + 1257, /* GL_PIXEL_MAP_R_TO_R_SIZE */ + 1245, /* GL_PIXEL_MAP_G_TO_G_SIZE */ + 1243, /* GL_PIXEL_MAP_B_TO_B_SIZE */ + 1241, /* GL_PIXEL_MAP_A_TO_A_SIZE */ + 1999, /* GL_UNPACK_SWAP_BYTES */ + 1994, /* GL_UNPACK_LSB_FIRST */ + 1995, /* GL_UNPACK_ROW_LENGTH */ + 1998, /* GL_UNPACK_SKIP_ROWS */ + 1997, /* GL_UNPACK_SKIP_PIXELS */ + 1992, /* GL_UNPACK_ALIGNMENT */ + 1227, /* GL_PACK_SWAP_BYTES */ + 1222, /* GL_PACK_LSB_FIRST */ + 1223, /* GL_PACK_ROW_LENGTH */ + 1226, /* GL_PACK_SKIP_ROWS */ + 1225, /* GL_PACK_SKIP_PIXELS */ + 1219, /* GL_PACK_ALIGNMENT */ + 895, /* GL_MAP_COLOR */ + 900, /* GL_MAP_STENCIL */ + 710, /* GL_INDEX_SHIFT */ + 709, /* GL_INDEX_OFFSET */ + 1461, /* GL_RED_SCALE */ + 1458, /* GL_RED_BIAS */ + 2113, /* GL_ZOOM_X */ + 2114, /* GL_ZOOM_Y */ + 665, /* GL_GREEN_SCALE */ + 662, /* GL_GREEN_BIAS */ + 112, /* GL_BLUE_SCALE */ + 109, /* GL_BLUE_BIAS */ + 50, /* GL_ALPHA_SCALE */ + 47, /* GL_ALPHA_BIAS */ + 402, /* GL_DEPTH_SCALE */ + 379, /* GL_DEPTH_BIAS */ + 984, /* GL_MAX_EVAL_ORDER */ + 994, /* GL_MAX_LIGHTS */ + 965, /* GL_MAX_CLIP_PLANES */ + 1045, /* GL_MAX_TEXTURE_SIZE */ + 1001, /* GL_MAX_PIXEL_MAP_TABLE */ + 961, /* GL_MAX_ATTRIB_STACK_DEPTH */ + 997, /* GL_MAX_MODELVIEW_STACK_DEPTH */ + 998, /* GL_MAX_NAME_STACK_DEPTH */ + 1027, /* GL_MAX_PROJECTION_STACK_DEPTH */ + 1046, /* GL_MAX_TEXTURE_STACK_DEPTH */ + 1068, /* GL_MAX_VIEWPORT_DIMS */ + 962, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ + 1735, /* GL_SUBPIXEL_BITS */ + 705, /* GL_INDEX_BITS */ + 1459, /* GL_RED_BITS */ + 663, /* GL_GREEN_BITS */ + 110, /* GL_BLUE_BITS */ + 48, /* GL_ALPHA_BITS */ + 380, /* GL_DEPTH_BITS */ + 1700, /* GL_STENCIL_BITS */ 14, /* GL_ACCUM_RED_BITS */ 13, /* GL_ACCUM_GREEN_BITS */ 10, /* GL_ACCUM_BLUE_BITS */ 9, /* GL_ACCUM_ALPHA_BITS */ - 1105, /* GL_NAME_STACK_DEPTH */ - 62, /* GL_AUTO_NORMAL */ - 809, /* GL_MAP1_COLOR_4 */ - 812, /* GL_MAP1_INDEX */ - 813, /* GL_MAP1_NORMAL */ - 814, /* GL_MAP1_TEXTURE_COORD_1 */ - 815, /* GL_MAP1_TEXTURE_COORD_2 */ - 816, /* GL_MAP1_TEXTURE_COORD_3 */ - 817, /* GL_MAP1_TEXTURE_COORD_4 */ - 818, /* GL_MAP1_VERTEX_3 */ - 819, /* GL_MAP1_VERTEX_4 */ - 836, /* GL_MAP2_COLOR_4 */ - 839, /* GL_MAP2_INDEX */ - 840, /* GL_MAP2_NORMAL */ - 841, /* GL_MAP2_TEXTURE_COORD_1 */ - 842, /* GL_MAP2_TEXTURE_COORD_2 */ - 843, /* GL_MAP2_TEXTURE_COORD_3 */ - 844, /* GL_MAP2_TEXTURE_COORD_4 */ - 845, /* GL_MAP2_VERTEX_3 */ - 846, /* GL_MAP2_VERTEX_4 */ - 810, /* GL_MAP1_GRID_DOMAIN */ - 811, /* GL_MAP1_GRID_SEGMENTS */ - 837, /* GL_MAP2_GRID_DOMAIN */ - 838, /* GL_MAP2_GRID_SEGMENTS */ - 1768, /* GL_TEXTURE_1D */ - 1770, /* GL_TEXTURE_2D */ - 503, /* GL_FEEDBACK_BUFFER_POINTER */ - 504, /* GL_FEEDBACK_BUFFER_SIZE */ - 505, /* GL_FEEDBACK_BUFFER_TYPE */ - 1557, /* GL_SELECTION_BUFFER_POINTER */ - 1558, /* GL_SELECTION_BUFFER_SIZE */ - 1902, /* GL_TEXTURE_WIDTH */ - 1864, /* GL_TEXTURE_HEIGHT */ - 1808, /* GL_TEXTURE_COMPONENTS */ - 1792, /* GL_TEXTURE_BORDER_COLOR */ - 1791, /* GL_TEXTURE_BORDER */ - 406, /* GL_DONT_CARE */ - 501, /* GL_FASTEST */ - 1113, /* GL_NICEST */ - 48, /* GL_AMBIENT */ - 403, /* GL_DIFFUSE */ - 1609, /* GL_SPECULAR */ - 1287, /* GL_POSITION */ - 1612, /* GL_SPOT_DIRECTION */ - 1613, /* GL_SPOT_EXPONENT */ - 1611, /* GL_SPOT_CUTOFF */ - 288, /* GL_CONSTANT_ATTENUATION */ - 755, /* GL_LINEAR_ATTENUATION */ - 1392, /* GL_QUADRATIC_ATTENUATION */ - 257, /* GL_COMPILE */ - 258, /* GL_COMPILE_AND_EXECUTE */ - 132, /* GL_BYTE */ - 1951, /* GL_UNSIGNED_BYTE */ - 1574, /* GL_SHORT */ - 1966, /* GL_UNSIGNED_SHORT */ - 701, /* GL_INT */ - 1954, /* GL_UNSIGNED_INT */ - 512, /* GL_FLOAT */ + 1137, /* GL_NAME_STACK_DEPTH */ + 70, /* GL_AUTO_NORMAL */ + 841, /* GL_MAP1_COLOR_4 */ + 844, /* GL_MAP1_INDEX */ + 845, /* GL_MAP1_NORMAL */ + 846, /* GL_MAP1_TEXTURE_COORD_1 */ + 847, /* GL_MAP1_TEXTURE_COORD_2 */ + 848, /* GL_MAP1_TEXTURE_COORD_3 */ + 849, /* GL_MAP1_TEXTURE_COORD_4 */ + 850, /* GL_MAP1_VERTEX_3 */ + 851, /* GL_MAP1_VERTEX_4 */ + 868, /* GL_MAP2_COLOR_4 */ + 871, /* GL_MAP2_INDEX */ + 872, /* GL_MAP2_NORMAL */ + 873, /* GL_MAP2_TEXTURE_COORD_1 */ + 874, /* GL_MAP2_TEXTURE_COORD_2 */ + 875, /* GL_MAP2_TEXTURE_COORD_3 */ + 876, /* GL_MAP2_TEXTURE_COORD_4 */ + 877, /* GL_MAP2_VERTEX_3 */ + 878, /* GL_MAP2_VERTEX_4 */ + 842, /* GL_MAP1_GRID_DOMAIN */ + 843, /* GL_MAP1_GRID_SEGMENTS */ + 869, /* GL_MAP2_GRID_DOMAIN */ + 870, /* GL_MAP2_GRID_SEGMENTS */ + 1818, /* GL_TEXTURE_1D */ + 1820, /* GL_TEXTURE_2D */ + 514, /* GL_FEEDBACK_BUFFER_POINTER */ + 515, /* GL_FEEDBACK_BUFFER_SIZE */ + 516, /* GL_FEEDBACK_BUFFER_TYPE */ + 1607, /* GL_SELECTION_BUFFER_POINTER */ + 1608, /* GL_SELECTION_BUFFER_SIZE */ + 1952, /* GL_TEXTURE_WIDTH */ + 1914, /* GL_TEXTURE_HEIGHT */ + 1858, /* GL_TEXTURE_COMPONENTS */ + 1842, /* GL_TEXTURE_BORDER_COLOR */ + 1841, /* GL_TEXTURE_BORDER */ + 417, /* GL_DONT_CARE */ + 512, /* GL_FASTEST */ + 1145, /* GL_NICEST */ + 56, /* GL_AMBIENT */ + 414, /* GL_DIFFUSE */ + 1659, /* GL_SPECULAR */ + 1319, /* GL_POSITION */ + 1662, /* GL_SPOT_DIRECTION */ + 1663, /* GL_SPOT_EXPONENT */ + 1661, /* GL_SPOT_CUTOFF */ + 299, /* GL_CONSTANT_ATTENUATION */ + 773, /* GL_LINEAR_ATTENUATION */ + 1426, /* GL_QUADRATIC_ATTENUATION */ + 268, /* GL_COMPILE */ + 269, /* GL_COMPILE_AND_EXECUTE */ + 143, /* GL_BYTE */ + 2001, /* GL_UNSIGNED_BYTE */ + 1624, /* GL_SHORT */ + 2016, /* GL_UNSIGNED_SHORT */ + 713, /* GL_INT */ + 2004, /* GL_UNSIGNED_INT */ + 523, /* GL_FLOAT */ 1, /* GL_2_BYTES */ 5, /* GL_3_BYTES */ 7, /* GL_4_BYTES */ - 413, /* GL_DOUBLE */ - 654, /* GL_HALF_FLOAT */ - 509, /* GL_FIXED */ - 144, /* GL_CLEAR */ - 50, /* GL_AND */ - 52, /* GL_AND_REVERSE */ - 313, /* GL_COPY */ - 51, /* GL_AND_INVERTED */ - 1116, /* GL_NOOP */ - 2059, /* GL_XOR */ - 1182, /* GL_OR */ - 1117, /* GL_NOR */ - 491, /* GL_EQUIV */ - 731, /* GL_INVERT */ - 1185, /* GL_OR_REVERSE */ - 314, /* GL_COPY_INVERTED */ - 1184, /* GL_OR_INVERTED */ - 1106, /* GL_NAND */ - 1563, /* GL_SET */ - 488, /* GL_EMISSION */ - 1573, /* GL_SHININESS */ - 49, /* GL_AMBIENT_AND_DIFFUSE */ - 203, /* GL_COLOR_INDEXES */ - 1055, /* GL_MODELVIEW */ - 1367, /* GL_PROJECTION */ - 1703, /* GL_TEXTURE */ - 159, /* GL_COLOR */ - 361, /* GL_DEPTH */ - 1635, /* GL_STENCIL */ - 202, /* GL_COLOR_INDEX */ - 1655, /* GL_STENCIL_INDEX */ - 376, /* GL_DEPTH_COMPONENT */ - 1421, /* GL_RED */ - 650, /* GL_GREEN */ - 98, /* GL_BLUE */ - 31, /* GL_ALPHA */ - 1472, /* GL_RGB */ - 1495, /* GL_RGBA */ - 787, /* GL_LUMINANCE */ - 808, /* GL_LUMINANCE_ALPHA */ - 74, /* GL_BITMAP */ - 1237, /* GL_POINT */ - 753, /* GL_LINE */ - 506, /* GL_FILL */ - 1432, /* GL_RENDER */ - 502, /* GL_FEEDBACK */ - 1556, /* GL_SELECT */ - 511, /* GL_FLAT */ - 1584, /* GL_SMOOTH */ - 732, /* GL_KEEP */ - 1465, /* GL_REPLACE */ - 683, /* GL_INCR */ - 357, /* GL_DECR */ - 1983, /* GL_VENDOR */ - 1462, /* GL_RENDERER */ - 1984, /* GL_VERSION */ - 495, /* GL_EXTENSIONS */ - 1520, /* GL_S */ - 1694, /* GL_T */ - 1408, /* GL_R */ - 1391, /* GL_Q */ - 1092, /* GL_MODULATE */ - 356, /* GL_DECAL */ - 1851, /* GL_TEXTURE_ENV_MODE */ - 1850, /* GL_TEXTURE_ENV_COLOR */ - 1849, /* GL_TEXTURE_ENV */ - 496, /* GL_EYE_LINEAR */ - 1143, /* GL_OBJECT_LINEAR */ - 1610, /* GL_SPHERE_MAP */ - 1854, /* GL_TEXTURE_GEN_MODE */ - 1145, /* GL_OBJECT_PLANE */ - 497, /* GL_EYE_PLANE */ - 1107, /* GL_NEAREST */ - 754, /* GL_LINEAR */ - 1111, /* GL_NEAREST_MIPMAP_NEAREST */ - 759, /* GL_LINEAR_MIPMAP_NEAREST */ - 1110, /* GL_NEAREST_MIPMAP_LINEAR */ - 758, /* GL_LINEAR_MIPMAP_LINEAR */ - 1877, /* GL_TEXTURE_MAG_FILTER */ - 1886, /* GL_TEXTURE_MIN_FILTER */ - 1905, /* GL_TEXTURE_WRAP_S */ - 1906, /* GL_TEXTURE_WRAP_T */ - 138, /* GL_CLAMP */ - 1464, /* GL_REPEAT */ - 1281, /* GL_POLYGON_OFFSET_UNITS */ - 1280, /* GL_POLYGON_OFFSET_POINT */ - 1279, /* GL_POLYGON_OFFSET_LINE */ - 1409, /* GL_R3_G3_B2 */ - 1980, /* GL_V2F */ - 1981, /* GL_V3F */ - 135, /* GL_C4UB_V2F */ - 136, /* GL_C4UB_V3F */ - 133, /* GL_C3F_V3F */ - 1104, /* GL_N3F_V3F */ - 134, /* GL_C4F_N3F_V3F */ - 1699, /* GL_T2F_V3F */ - 1701, /* GL_T4F_V4F */ - 1697, /* GL_T2F_C4UB_V3F */ - 1695, /* GL_T2F_C3F_V3F */ - 1698, /* GL_T2F_N3F_V3F */ - 1696, /* GL_T2F_C4F_N3F_V3F */ - 1700, /* GL_T4F_C4F_N3F_V4F */ - 151, /* GL_CLIP_PLANE0 */ - 152, /* GL_CLIP_PLANE1 */ - 153, /* GL_CLIP_PLANE2 */ - 154, /* GL_CLIP_PLANE3 */ - 155, /* GL_CLIP_PLANE4 */ - 156, /* GL_CLIP_PLANE5 */ - 738, /* GL_LIGHT0 */ - 739, /* GL_LIGHT1 */ - 740, /* GL_LIGHT2 */ - 741, /* GL_LIGHT3 */ - 742, /* GL_LIGHT4 */ - 743, /* GL_LIGHT5 */ - 744, /* GL_LIGHT6 */ - 745, /* GL_LIGHT7 */ - 658, /* GL_HINT_BIT */ - 290, /* GL_CONSTANT_COLOR */ - 1156, /* GL_ONE_MINUS_CONSTANT_COLOR */ - 285, /* GL_CONSTANT_ALPHA */ - 1154, /* GL_ONE_MINUS_CONSTANT_ALPHA */ - 77, /* GL_BLEND_COLOR */ - 631, /* GL_FUNC_ADD */ - 1039, /* GL_MIN */ - 925, /* GL_MAX */ - 84, /* GL_BLEND_EQUATION */ - 637, /* GL_FUNC_SUBTRACT */ - 634, /* GL_FUNC_REVERSE_SUBTRACT */ - 293, /* GL_CONVOLUTION_1D */ - 294, /* GL_CONVOLUTION_2D */ - 1559, /* GL_SEPARABLE_2D */ - 297, /* GL_CONVOLUTION_BORDER_MODE */ - 301, /* GL_CONVOLUTION_FILTER_SCALE */ - 299, /* GL_CONVOLUTION_FILTER_BIAS */ - 1422, /* GL_REDUCE */ - 303, /* GL_CONVOLUTION_FORMAT */ - 307, /* GL_CONVOLUTION_WIDTH */ - 305, /* GL_CONVOLUTION_HEIGHT */ - 942, /* GL_MAX_CONVOLUTION_WIDTH */ - 940, /* GL_MAX_CONVOLUTION_HEIGHT */ - 1320, /* GL_POST_CONVOLUTION_RED_SCALE */ - 1316, /* GL_POST_CONVOLUTION_GREEN_SCALE */ - 1311, /* GL_POST_CONVOLUTION_BLUE_SCALE */ - 1307, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ - 1318, /* GL_POST_CONVOLUTION_RED_BIAS */ - 1314, /* GL_POST_CONVOLUTION_GREEN_BIAS */ - 1309, /* GL_POST_CONVOLUTION_BLUE_BIAS */ - 1305, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ - 659, /* GL_HISTOGRAM */ - 1374, /* GL_PROXY_HISTOGRAM */ - 675, /* GL_HISTOGRAM_WIDTH */ - 665, /* GL_HISTOGRAM_FORMAT */ - 671, /* GL_HISTOGRAM_RED_SIZE */ - 667, /* GL_HISTOGRAM_GREEN_SIZE */ - 662, /* GL_HISTOGRAM_BLUE_SIZE */ - 660, /* GL_HISTOGRAM_ALPHA_SIZE */ - 669, /* GL_HISTOGRAM_LUMINANCE_SIZE */ - 673, /* GL_HISTOGRAM_SINK */ - 1040, /* GL_MINMAX */ - 1042, /* GL_MINMAX_FORMAT */ - 1044, /* GL_MINMAX_SINK */ - 1702, /* GL_TABLE_TOO_LARGE_EXT */ - 1953, /* GL_UNSIGNED_BYTE_3_3_2 */ - 1969, /* GL_UNSIGNED_SHORT_4_4_4_4 */ - 1972, /* GL_UNSIGNED_SHORT_5_5_5_1 */ - 1963, /* GL_UNSIGNED_INT_8_8_8_8 */ - 1955, /* GL_UNSIGNED_INT_10_10_10_2 */ - 1278, /* GL_POLYGON_OFFSET_FILL */ - 1277, /* GL_POLYGON_OFFSET_FACTOR */ - 1276, /* GL_POLYGON_OFFSET_BIAS */ - 1468, /* GL_RESCALE_NORMAL */ - 36, /* GL_ALPHA4 */ - 38, /* GL_ALPHA8 */ - 32, /* GL_ALPHA12 */ - 34, /* GL_ALPHA16 */ - 798, /* GL_LUMINANCE4 */ - 804, /* GL_LUMINANCE8 */ - 788, /* GL_LUMINANCE12 */ - 794, /* GL_LUMINANCE16 */ - 799, /* GL_LUMINANCE4_ALPHA4 */ - 802, /* GL_LUMINANCE6_ALPHA2 */ - 805, /* GL_LUMINANCE8_ALPHA8 */ - 791, /* GL_LUMINANCE12_ALPHA4 */ - 789, /* GL_LUMINANCE12_ALPHA12 */ - 795, /* GL_LUMINANCE16_ALPHA16 */ - 702, /* GL_INTENSITY */ - 707, /* GL_INTENSITY4 */ - 709, /* GL_INTENSITY8 */ - 703, /* GL_INTENSITY12 */ - 705, /* GL_INTENSITY16 */ - 1481, /* GL_RGB2_EXT */ - 1482, /* GL_RGB4 */ - 1485, /* GL_RGB5 */ - 1492, /* GL_RGB8 */ - 1473, /* GL_RGB10 */ - 1477, /* GL_RGB12 */ - 1479, /* GL_RGB16 */ - 1500, /* GL_RGBA2 */ - 1502, /* GL_RGBA4 */ - 1488, /* GL_RGB5_A1 */ - 1507, /* GL_RGBA8 */ - 1474, /* GL_RGB10_A2 */ - 1496, /* GL_RGBA12 */ - 1498, /* GL_RGBA16 */ - 1893, /* GL_TEXTURE_RED_SIZE */ - 1862, /* GL_TEXTURE_GREEN_SIZE */ - 1789, /* GL_TEXTURE_BLUE_SIZE */ - 1774, /* GL_TEXTURE_ALPHA_SIZE */ - 1875, /* GL_TEXTURE_LUMINANCE_SIZE */ - 1866, /* GL_TEXTURE_INTENSITY_SIZE */ - 1466, /* GL_REPLACE_EXT */ - 1378, /* GL_PROXY_TEXTURE_1D */ - 1381, /* GL_PROXY_TEXTURE_2D */ - 1900, /* GL_TEXTURE_TOO_LARGE_EXT */ - 1888, /* GL_TEXTURE_PRIORITY */ - 1895, /* GL_TEXTURE_RESIDENT */ - 1777, /* GL_TEXTURE_BINDING_1D */ - 1779, /* GL_TEXTURE_BINDING_2D */ - 1781, /* GL_TEXTURE_BINDING_3D */ - 1192, /* GL_PACK_SKIP_IMAGES */ - 1188, /* GL_PACK_IMAGE_HEIGHT */ - 1946, /* GL_UNPACK_SKIP_IMAGES */ - 1943, /* GL_UNPACK_IMAGE_HEIGHT */ - 1772, /* GL_TEXTURE_3D */ - 1384, /* GL_PROXY_TEXTURE_3D */ - 1846, /* GL_TEXTURE_DEPTH */ - 1903, /* GL_TEXTURE_WRAP_R */ - 926, /* GL_MAX_3D_TEXTURE_SIZE */ - 1985, /* GL_VERTEX_ARRAY */ - 1119, /* GL_NORMAL_ARRAY */ - 160, /* GL_COLOR_ARRAY */ - 687, /* GL_INDEX_ARRAY */ - 1816, /* GL_TEXTURE_COORD_ARRAY */ - 480, /* GL_EDGE_FLAG_ARRAY */ - 1991, /* GL_VERTEX_ARRAY_SIZE */ - 1993, /* GL_VERTEX_ARRAY_TYPE */ - 1992, /* GL_VERTEX_ARRAY_STRIDE */ - 1124, /* GL_NORMAL_ARRAY_TYPE */ - 1123, /* GL_NORMAL_ARRAY_STRIDE */ - 164, /* GL_COLOR_ARRAY_SIZE */ - 166, /* GL_COLOR_ARRAY_TYPE */ - 165, /* GL_COLOR_ARRAY_STRIDE */ - 692, /* GL_INDEX_ARRAY_TYPE */ - 691, /* GL_INDEX_ARRAY_STRIDE */ - 1820, /* GL_TEXTURE_COORD_ARRAY_SIZE */ - 1822, /* GL_TEXTURE_COORD_ARRAY_TYPE */ - 1821, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ - 484, /* GL_EDGE_FLAG_ARRAY_STRIDE */ - 1990, /* GL_VERTEX_ARRAY_POINTER */ - 1122, /* GL_NORMAL_ARRAY_POINTER */ - 163, /* GL_COLOR_ARRAY_POINTER */ - 690, /* GL_INDEX_ARRAY_POINTER */ - 1819, /* GL_TEXTURE_COORD_ARRAY_POINTER */ - 483, /* GL_EDGE_FLAG_ARRAY_POINTER */ - 1097, /* GL_MULTISAMPLE */ - 1533, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ - 1535, /* GL_SAMPLE_ALPHA_TO_ONE */ - 1540, /* GL_SAMPLE_COVERAGE */ - 1537, /* GL_SAMPLE_BUFFERS */ - 1528, /* GL_SAMPLES */ - 1544, /* GL_SAMPLE_COVERAGE_VALUE */ - 1542, /* GL_SAMPLE_COVERAGE_INVERT */ - 208, /* GL_COLOR_MATRIX */ - 210, /* GL_COLOR_MATRIX_STACK_DEPTH */ - 936, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ - 1303, /* GL_POST_COLOR_MATRIX_RED_SCALE */ - 1299, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ - 1294, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ - 1290, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ - 1301, /* GL_POST_COLOR_MATRIX_RED_BIAS */ - 1297, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ - 1292, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ - 1288, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ - 1799, /* GL_TEXTURE_COLOR_TABLE_SGI */ - 1385, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ - 1801, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ - 82, /* GL_BLEND_DST_RGB */ - 96, /* GL_BLEND_SRC_RGB */ - 80, /* GL_BLEND_DST_ALPHA */ - 94, /* GL_BLEND_SRC_ALPHA */ - 214, /* GL_COLOR_TABLE */ - 1313, /* GL_POST_CONVOLUTION_COLOR_TABLE */ - 1296, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ - 1373, /* GL_PROXY_COLOR_TABLE */ - 1377, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ - 1376, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ - 238, /* GL_COLOR_TABLE_SCALE */ - 218, /* GL_COLOR_TABLE_BIAS */ - 223, /* GL_COLOR_TABLE_FORMAT */ - 240, /* GL_COLOR_TABLE_WIDTH */ - 235, /* GL_COLOR_TABLE_RED_SIZE */ - 226, /* GL_COLOR_TABLE_GREEN_SIZE */ - 220, /* GL_COLOR_TABLE_BLUE_SIZE */ - 215, /* GL_COLOR_TABLE_ALPHA_SIZE */ - 232, /* GL_COLOR_TABLE_LUMINANCE_SIZE */ - 229, /* GL_COLOR_TABLE_INTENSITY_SIZE */ - 71, /* GL_BGR */ - 72, /* GL_BGRA */ - 951, /* GL_MAX_ELEMENTS_VERTICES */ - 950, /* GL_MAX_ELEMENTS_INDICES */ - 1865, /* GL_TEXTURE_INDEX_SIZE_EXT */ - 157, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */ - 1259, /* GL_POINT_SIZE_MIN */ - 1255, /* GL_POINT_SIZE_MAX */ - 1244, /* GL_POINT_FADE_THRESHOLD_SIZE */ - 1240, /* GL_POINT_DISTANCE_ATTENUATION */ - 139, /* GL_CLAMP_TO_BORDER */ - 142, /* GL_CLAMP_TO_EDGE */ - 1887, /* GL_TEXTURE_MIN_LOD */ - 1885, /* GL_TEXTURE_MAX_LOD */ - 1776, /* GL_TEXTURE_BASE_LEVEL */ - 1884, /* GL_TEXTURE_MAX_LEVEL */ - 678, /* GL_IGNORE_BORDER_HP */ - 289, /* GL_CONSTANT_BORDER_HP */ - 1467, /* GL_REPLICATE_BORDER_HP */ - 295, /* GL_CONVOLUTION_BORDER_COLOR */ - 1151, /* GL_OCCLUSION_TEST_HP */ - 1152, /* GL_OCCLUSION_TEST_RESULT_HP */ - 756, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ - 1793, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ - 1795, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ - 1797, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ - 1798, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - 1796, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ - 1794, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ - 931, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ - 932, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - 1323, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ - 1325, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ - 1322, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ - 1324, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ - 1873, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ - 1874, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ - 1872, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ - 640, /* GL_GENERATE_MIPMAP */ - 641, /* GL_GENERATE_MIPMAP_HINT */ - 555, /* GL_FOG_OFFSET_SGIX */ - 556, /* GL_FOG_OFFSET_VALUE_SGIX */ - 1807, /* GL_TEXTURE_COMPARE_SGIX */ - 1806, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ - 1869, /* GL_TEXTURE_LEQUAL_R_SGIX */ - 1861, /* GL_TEXTURE_GEQUAL_R_SGIX */ - 377, /* GL_DEPTH_COMPONENT16 */ - 381, /* GL_DEPTH_COMPONENT24 */ - 385, /* GL_DEPTH_COMPONENT32 */ - 320, /* GL_CULL_VERTEX_EXT */ - 322, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */ - 321, /* GL_CULL_VERTEX_EYE_POSITION_EXT */ - 2055, /* GL_WRAP_BORDER_SUN */ - 1800, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ - 749, /* GL_LIGHT_MODEL_COLOR_CONTROL */ - 1577, /* GL_SINGLE_COLOR */ - 1561, /* GL_SEPARATE_SPECULAR_COLOR */ - 1572, /* GL_SHARED_TEXTURE_PALETTE_EXT */ - 567, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ - 568, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ - 578, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ - 570, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ - 566, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ - 565, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ - 569, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ - 579, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ - 596, /* GL_FRAMEBUFFER_DEFAULT */ - 622, /* GL_FRAMEBUFFER_UNDEFINED */ - 393, /* GL_DEPTH_STENCIL_ATTACHMENT */ - 686, /* GL_INDEX */ - 1952, /* GL_UNSIGNED_BYTE_2_3_3_REV */ - 1973, /* GL_UNSIGNED_SHORT_5_6_5 */ - 1974, /* GL_UNSIGNED_SHORT_5_6_5_REV */ - 1970, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ - 1967, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ - 1964, /* GL_UNSIGNED_INT_8_8_8_8_REV */ - 1961, /* GL_UNSIGNED_INT_2_10_10_10_REV */ - 1882, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ - 1883, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ - 1881, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ - 1047, /* GL_MIRRORED_REPEAT */ - 1515, /* GL_RGB_S3TC */ - 1484, /* GL_RGB4_S3TC */ - 1513, /* GL_RGBA_S3TC */ - 1506, /* GL_RGBA4_S3TC */ - 1511, /* GL_RGBA_DXT5_S3TC */ - 1503, /* GL_RGBA4_DXT5_S3TC */ - 277, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */ - 272, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */ - 273, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */ - 274, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */ - 1109, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ - 1108, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ - 757, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ - 542, /* GL_FOG_COORDINATE_SOURCE */ - 534, /* GL_FOG_COORD */ - 558, /* GL_FRAGMENT_DEPTH */ - 326, /* GL_CURRENT_FOG_COORD */ - 541, /* GL_FOG_COORDINATE_ARRAY_TYPE */ - 540, /* GL_FOG_COORDINATE_ARRAY_STRIDE */ - 539, /* GL_FOG_COORDINATE_ARRAY_POINTER */ - 536, /* GL_FOG_COORDINATE_ARRAY */ - 212, /* GL_COLOR_SUM */ - 347, /* GL_CURRENT_SECONDARY_COLOR */ - 1553, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ - 1555, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ - 1554, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ - 1552, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ - 1549, /* GL_SECONDARY_COLOR_ARRAY */ - 345, /* GL_CURRENT_RASTER_SECONDARY_COLOR */ - 28, /* GL_ALIASED_POINT_SIZE_RANGE */ - 27, /* GL_ALIASED_LINE_WIDTH_RANGE */ - 1704, /* GL_TEXTURE0 */ - 1706, /* GL_TEXTURE1 */ - 1728, /* GL_TEXTURE2 */ - 1750, /* GL_TEXTURE3 */ - 1756, /* GL_TEXTURE4 */ - 1758, /* GL_TEXTURE5 */ - 1760, /* GL_TEXTURE6 */ - 1762, /* GL_TEXTURE7 */ - 1764, /* GL_TEXTURE8 */ - 1766, /* GL_TEXTURE9 */ - 1707, /* GL_TEXTURE10 */ - 1709, /* GL_TEXTURE11 */ - 1711, /* GL_TEXTURE12 */ - 1713, /* GL_TEXTURE13 */ - 1715, /* GL_TEXTURE14 */ - 1717, /* GL_TEXTURE15 */ - 1719, /* GL_TEXTURE16 */ - 1721, /* GL_TEXTURE17 */ - 1723, /* GL_TEXTURE18 */ - 1725, /* GL_TEXTURE19 */ - 1729, /* GL_TEXTURE20 */ - 1731, /* GL_TEXTURE21 */ - 1733, /* GL_TEXTURE22 */ - 1735, /* GL_TEXTURE23 */ - 1737, /* GL_TEXTURE24 */ - 1739, /* GL_TEXTURE25 */ - 1741, /* GL_TEXTURE26 */ - 1743, /* GL_TEXTURE27 */ - 1745, /* GL_TEXTURE28 */ - 1747, /* GL_TEXTURE29 */ - 1751, /* GL_TEXTURE30 */ - 1753, /* GL_TEXTURE31 */ - 18, /* GL_ACTIVE_TEXTURE */ - 145, /* GL_CLIENT_ACTIVE_TEXTURE */ - 1015, /* GL_MAX_TEXTURE_UNITS */ - 1927, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ - 1930, /* GL_TRANSPOSE_PROJECTION_MATRIX */ - 1932, /* GL_TRANSPOSE_TEXTURE_MATRIX */ - 1924, /* GL_TRANSPOSE_COLOR_MATRIX */ - 1686, /* GL_SUBTRACT */ - 998, /* GL_MAX_RENDERBUFFER_SIZE */ - 260, /* GL_COMPRESSED_ALPHA */ - 264, /* GL_COMPRESSED_LUMINANCE */ - 265, /* GL_COMPRESSED_LUMINANCE_ALPHA */ - 262, /* GL_COMPRESSED_INTENSITY */ - 268, /* GL_COMPRESSED_RGB */ - 269, /* GL_COMPRESSED_RGBA */ - 1814, /* GL_TEXTURE_COMPRESSION_HINT */ - 1891, /* GL_TEXTURE_RECTANGLE_ARB */ - 1786, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */ - 1388, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ - 996, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ - 392, /* GL_DEPTH_STENCIL */ - 1957, /* GL_UNSIGNED_INT_24_8 */ - 1010, /* GL_MAX_TEXTURE_LOD_BIAS */ - 1880, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ - 1012, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ - 1852, /* GL_TEXTURE_FILTER_CONTROL */ - 1870, /* GL_TEXTURE_LOD_BIAS */ - 245, /* GL_COMBINE4 */ - 1004, /* GL_MAX_SHININESS_NV */ - 1005, /* GL_MAX_SPOT_EXPONENT_NV */ - 684, /* GL_INCR_WRAP */ - 358, /* GL_DECR_WRAP */ - 1067, /* GL_MODELVIEW1_ARB */ - 1125, /* GL_NORMAL_MAP */ - 1427, /* GL_REFLECTION_MAP */ - 1824, /* GL_TEXTURE_CUBE_MAP */ - 1783, /* GL_TEXTURE_BINDING_CUBE_MAP */ - 1836, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ - 1826, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ - 1839, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ - 1829, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ - 1842, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ - 1832, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ - 1386, /* GL_PROXY_TEXTURE_CUBE_MAP */ - 944, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ - 1103, /* GL_MULTISAMPLE_FILTER_HINT_NV */ - 550, /* GL_FOG_DISTANCE_MODE_NV */ - 499, /* GL_EYE_RADIAL_NV */ - 498, /* GL_EYE_PLANE_ABSOLUTE_NV */ - 244, /* GL_COMBINE */ - 251, /* GL_COMBINE_RGB */ - 246, /* GL_COMBINE_ALPHA */ - 1516, /* GL_RGB_SCALE */ - 24, /* GL_ADD_SIGNED */ - 713, /* GL_INTERPOLATE */ - 284, /* GL_CONSTANT */ - 1329, /* GL_PRIMARY_COLOR */ - 1326, /* GL_PREVIOUS */ - 1592, /* GL_SOURCE0_RGB */ - 1598, /* GL_SOURCE1_RGB */ - 1604, /* GL_SOURCE2_RGB */ - 1608, /* GL_SOURCE3_RGB_NV */ - 1589, /* GL_SOURCE0_ALPHA */ - 1595, /* GL_SOURCE1_ALPHA */ - 1601, /* GL_SOURCE2_ALPHA */ - 1607, /* GL_SOURCE3_ALPHA_NV */ - 1165, /* GL_OPERAND0_RGB */ - 1171, /* GL_OPERAND1_RGB */ - 1177, /* GL_OPERAND2_RGB */ - 1181, /* GL_OPERAND3_RGB_NV */ - 1162, /* GL_OPERAND0_ALPHA */ - 1168, /* GL_OPERAND1_ALPHA */ - 1174, /* GL_OPERAND2_ALPHA */ - 1180, /* GL_OPERAND3_ALPHA_NV */ - 120, /* GL_BUFFER_OBJECT_APPLE */ - 1986, /* GL_VERTEX_ARRAY_BINDING */ - 1889, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ - 1890, /* GL_TEXTURE_RANGE_POINTER_APPLE */ - 2060, /* GL_YCBCR_422_APPLE */ - 1975, /* GL_UNSIGNED_SHORT_8_8_APPLE */ - 1977, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ - 1899, /* GL_TEXTURE_STORAGE_HINT_APPLE */ - 1677, /* GL_STORAGE_PRIVATE_APPLE */ - 1676, /* GL_STORAGE_CACHED_APPLE */ - 1678, /* GL_STORAGE_SHARED_APPLE */ - 1579, /* GL_SLICE_ACCUM_SUN */ - 1396, /* GL_QUAD_MESH_SUN */ - 1937, /* GL_TRIANGLE_MESH_SUN */ - 2025, /* GL_VERTEX_PROGRAM_ARB */ - 2036, /* GL_VERTEX_STATE_PROGRAM_NV */ - 2012, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ - 2018, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ - 2020, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ - 2022, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ - 349, /* GL_CURRENT_VERTEX_ATTRIB */ - 1345, /* GL_PROGRAM_LENGTH_ARB */ - 1360, /* GL_PROGRAM_STRING_ARB */ - 1090, /* GL_MODELVIEW_PROJECTION_NV */ - 677, /* GL_IDENTITY_NV */ - 729, /* GL_INVERSE_NV */ - 1929, /* GL_TRANSPOSE_NV */ - 730, /* GL_INVERSE_TRANSPOSE_NV */ - 982, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ - 981, /* GL_MAX_PROGRAM_MATRICES_ARB */ - 872, /* GL_MATRIX0_NV */ - 884, /* GL_MATRIX1_NV */ - 896, /* GL_MATRIX2_NV */ - 900, /* GL_MATRIX3_NV */ - 902, /* GL_MATRIX4_NV */ - 904, /* GL_MATRIX5_NV */ - 906, /* GL_MATRIX6_NV */ - 908, /* GL_MATRIX7_NV */ - 332, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */ - 329, /* GL_CURRENT_MATRIX_ARB */ - 2028, /* GL_VERTEX_PROGRAM_POINT_SIZE */ - 2031, /* GL_VERTEX_PROGRAM_TWO_SIDE */ - 1357, /* GL_PROGRAM_PARAMETER_NV */ - 2016, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ - 1362, /* GL_PROGRAM_TARGET_NV */ - 1359, /* GL_PROGRAM_RESIDENT_NV */ - 1909, /* GL_TRACK_MATRIX_NV */ - 1910, /* GL_TRACK_MATRIX_TRANSFORM_NV */ - 2026, /* GL_VERTEX_PROGRAM_BINDING_NV */ - 1339, /* GL_PROGRAM_ERROR_POSITION_ARB */ - 373, /* GL_DEPTH_CLAMP */ - 1994, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ - 2001, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ - 2002, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ - 2003, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ - 2004, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ - 2005, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ - 2006, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ - 2007, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ - 2008, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ - 2009, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ - 1995, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ - 1996, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ - 1997, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ - 1998, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ - 1999, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ - 2000, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ - 820, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ - 827, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ - 828, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ - 829, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ - 830, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ - 831, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ - 832, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ - 833, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ - 834, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ - 835, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ - 821, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ - 822, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ - 823, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ - 824, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ - 825, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ - 826, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ - 847, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ - 854, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ - 855, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ - 856, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ - 857, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ - 858, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ - 859, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ - 1338, /* GL_PROGRAM_BINDING_ARB */ - 861, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ - 862, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ - 848, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ - 849, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ - 850, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ - 851, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ - 852, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ - 853, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ - 1812, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ - 1809, /* GL_TEXTURE_COMPRESSED */ - 1131, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ - 282, /* GL_COMPRESSED_TEXTURE_FORMATS */ - 1033, /* GL_MAX_VERTEX_UNITS_ARB */ - 22, /* GL_ACTIVE_VERTEX_UNITS_ARB */ - 2054, /* GL_WEIGHT_SUM_UNITY_ARB */ - 2024, /* GL_VERTEX_BLEND_ARB */ - 351, /* GL_CURRENT_WEIGHT_ARB */ - 2052, /* GL_WEIGHT_ARRAY_TYPE_ARB */ - 2050, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ - 2048, /* GL_WEIGHT_ARRAY_SIZE_ARB */ - 2046, /* GL_WEIGHT_ARRAY_POINTER_ARB */ - 2041, /* GL_WEIGHT_ARRAY_ARB */ - 407, /* GL_DOT3_RGB */ - 408, /* GL_DOT3_RGBA */ - 276, /* GL_COMPRESSED_RGB_FXT1_3DFX */ - 271, /* GL_COMPRESSED_RGBA_FXT1_3DFX */ - 1098, /* GL_MULTISAMPLE_3DFX */ - 1538, /* GL_SAMPLE_BUFFERS_3DFX */ - 1529, /* GL_SAMPLES_3DFX */ - 1078, /* GL_MODELVIEW2_ARB */ - 1081, /* GL_MODELVIEW3_ARB */ - 1082, /* GL_MODELVIEW4_ARB */ - 1083, /* GL_MODELVIEW5_ARB */ - 1084, /* GL_MODELVIEW6_ARB */ - 1085, /* GL_MODELVIEW7_ARB */ - 1086, /* GL_MODELVIEW8_ARB */ - 1087, /* GL_MODELVIEW9_ARB */ - 1057, /* GL_MODELVIEW10_ARB */ - 1058, /* GL_MODELVIEW11_ARB */ - 1059, /* GL_MODELVIEW12_ARB */ - 1060, /* GL_MODELVIEW13_ARB */ - 1061, /* GL_MODELVIEW14_ARB */ - 1062, /* GL_MODELVIEW15_ARB */ - 1063, /* GL_MODELVIEW16_ARB */ - 1064, /* GL_MODELVIEW17_ARB */ - 1065, /* GL_MODELVIEW18_ARB */ - 1066, /* GL_MODELVIEW19_ARB */ - 1068, /* GL_MODELVIEW20_ARB */ - 1069, /* GL_MODELVIEW21_ARB */ - 1070, /* GL_MODELVIEW22_ARB */ - 1071, /* GL_MODELVIEW23_ARB */ - 1072, /* GL_MODELVIEW24_ARB */ - 1073, /* GL_MODELVIEW25_ARB */ - 1074, /* GL_MODELVIEW26_ARB */ - 1075, /* GL_MODELVIEW27_ARB */ - 1076, /* GL_MODELVIEW28_ARB */ - 1077, /* GL_MODELVIEW29_ARB */ - 1079, /* GL_MODELVIEW30_ARB */ - 1080, /* GL_MODELVIEW31_ARB */ - 412, /* GL_DOT3_RGB_EXT */ - 410, /* GL_DOT3_RGBA_EXT */ - 1051, /* GL_MIRROR_CLAMP_EXT */ - 1054, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ - 1093, /* GL_MODULATE_ADD_ATI */ - 1094, /* GL_MODULATE_SIGNED_ADD_ATI */ - 1095, /* GL_MODULATE_SUBTRACT_ATI */ - 2061, /* GL_YCBCR_MESA */ - 1189, /* GL_PACK_INVERT_MESA */ - 354, /* GL_DEBUG_OBJECT_MESA */ - 355, /* GL_DEBUG_PRINT_MESA */ - 353, /* GL_DEBUG_ASSERT_MESA */ - 122, /* GL_BUFFER_SIZE */ - 124, /* GL_BUFFER_USAGE */ - 128, /* GL_BUMP_ROT_MATRIX_ATI */ - 129, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */ - 127, /* GL_BUMP_NUM_TEX_UNITS_ATI */ - 131, /* GL_BUMP_TEX_UNITS_ATI */ - 472, /* GL_DUDV_ATI */ - 471, /* GL_DU8DV8_ATI */ - 126, /* GL_BUMP_ENVMAP_ATI */ - 130, /* GL_BUMP_TARGET_ATI */ - 1133, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */ - 1336, /* GL_PROGRAM_BINARY_FORMATS_OES */ - 1641, /* GL_STENCIL_BACK_FUNC */ - 1639, /* GL_STENCIL_BACK_FAIL */ - 1643, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ - 1645, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ - 559, /* GL_FRAGMENT_PROGRAM_ARB */ - 1334, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ - 1365, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ - 1364, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ - 1348, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - 1354, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - 1353, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - 971, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ - 994, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ - 993, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ - 984, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - 990, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - 989, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - 947, /* GL_MAX_DRAW_BUFFERS */ - 416, /* GL_DRAW_BUFFER0 */ - 419, /* GL_DRAW_BUFFER1 */ - 440, /* GL_DRAW_BUFFER2 */ - 443, /* GL_DRAW_BUFFER3 */ - 446, /* GL_DRAW_BUFFER4 */ - 449, /* GL_DRAW_BUFFER5 */ - 452, /* GL_DRAW_BUFFER6 */ - 455, /* GL_DRAW_BUFFER7 */ - 458, /* GL_DRAW_BUFFER8 */ - 461, /* GL_DRAW_BUFFER9 */ - 420, /* GL_DRAW_BUFFER10 */ - 423, /* GL_DRAW_BUFFER11 */ - 426, /* GL_DRAW_BUFFER12 */ - 429, /* GL_DRAW_BUFFER13 */ - 432, /* GL_DRAW_BUFFER14 */ - 435, /* GL_DRAW_BUFFER15 */ - 85, /* GL_BLEND_EQUATION_ALPHA */ - 923, /* GL_MATRIX_PALETTE_ARB */ - 964, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ - 967, /* GL_MAX_PALETTE_MATRICES_ARB */ - 335, /* GL_CURRENT_PALETTE_MATRIX_ARB */ - 911, /* GL_MATRIX_INDEX_ARRAY_ARB */ - 330, /* GL_CURRENT_MATRIX_INDEX_ARB */ - 916, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ - 920, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ - 918, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ - 914, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ - 1847, /* GL_TEXTURE_DEPTH_SIZE */ - 400, /* GL_DEPTH_TEXTURE_MODE */ - 1804, /* GL_TEXTURE_COMPARE_MODE */ - 1802, /* GL_TEXTURE_COMPARE_FUNC */ - 255, /* GL_COMPARE_R_TO_TEXTURE */ - 1266, /* GL_POINT_SPRITE */ - 309, /* GL_COORD_REPLACE */ - 1271, /* GL_POINT_SPRITE_R_MODE_NV */ - 1400, /* GL_QUERY_COUNTER_BITS */ - 338, /* GL_CURRENT_QUERY */ - 1403, /* GL_QUERY_RESULT */ - 1405, /* GL_QUERY_RESULT_AVAILABLE */ - 1026, /* GL_MAX_VERTEX_ATTRIBS */ - 2014, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ - 398, /* GL_DEPTH_STENCIL_TO_RGBA_NV */ - 397, /* GL_DEPTH_STENCIL_TO_BGRA_NV */ - 1006, /* GL_MAX_TEXTURE_COORDS */ - 1008, /* GL_MAX_TEXTURE_IMAGE_UNITS */ - 1341, /* GL_PROGRAM_ERROR_STRING_ARB */ - 1343, /* GL_PROGRAM_FORMAT_ASCII_ARB */ - 1342, /* GL_PROGRAM_FORMAT_ARB */ - 1901, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ - 371, /* GL_DEPTH_BOUNDS_TEST_EXT */ - 370, /* GL_DEPTH_BOUNDS_EXT */ - 53, /* GL_ARRAY_BUFFER */ - 485, /* GL_ELEMENT_ARRAY_BUFFER */ - 54, /* GL_ARRAY_BUFFER_BINDING */ - 486, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */ - 1988, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ - 1120, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ - 161, /* GL_COLOR_ARRAY_BUFFER_BINDING */ - 688, /* GL_INDEX_ARRAY_BUFFER_BINDING */ - 1817, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ - 481, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */ - 1550, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ - 537, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */ - 2042, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ - 2010, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ - 1344, /* GL_PROGRAM_INSTRUCTIONS_ARB */ - 977, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ - 1350, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - 986, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - 1363, /* GL_PROGRAM_TEMPORARIES_ARB */ - 992, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ - 1352, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ - 988, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ - 1356, /* GL_PROGRAM_PARAMETERS_ARB */ - 991, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ - 1351, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ - 987, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ - 1335, /* GL_PROGRAM_ATTRIBS_ARB */ - 972, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ - 1349, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ - 985, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ - 1333, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ - 970, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ - 1347, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - 983, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - 978, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ - 974, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ - 1366, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ - 1926, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ - 1417, /* GL_READ_ONLY */ - 2056, /* GL_WRITE_ONLY */ - 1419, /* GL_READ_WRITE */ - 110, /* GL_BUFFER_ACCESS */ - 114, /* GL_BUFFER_MAPPED */ - 117, /* GL_BUFFER_MAP_POINTER */ - 1908, /* GL_TIME_ELAPSED_EXT */ - 871, /* GL_MATRIX0_ARB */ - 883, /* GL_MATRIX1_ARB */ - 895, /* GL_MATRIX2_ARB */ - 899, /* GL_MATRIX3_ARB */ - 901, /* GL_MATRIX4_ARB */ - 903, /* GL_MATRIX5_ARB */ - 905, /* GL_MATRIX6_ARB */ - 907, /* GL_MATRIX7_ARB */ - 909, /* GL_MATRIX8_ARB */ - 910, /* GL_MATRIX9_ARB */ - 873, /* GL_MATRIX10_ARB */ - 874, /* GL_MATRIX11_ARB */ - 875, /* GL_MATRIX12_ARB */ - 876, /* GL_MATRIX13_ARB */ - 877, /* GL_MATRIX14_ARB */ - 878, /* GL_MATRIX15_ARB */ - 879, /* GL_MATRIX16_ARB */ - 880, /* GL_MATRIX17_ARB */ - 881, /* GL_MATRIX18_ARB */ - 882, /* GL_MATRIX19_ARB */ - 885, /* GL_MATRIX20_ARB */ - 886, /* GL_MATRIX21_ARB */ - 887, /* GL_MATRIX22_ARB */ - 888, /* GL_MATRIX23_ARB */ - 889, /* GL_MATRIX24_ARB */ - 890, /* GL_MATRIX25_ARB */ - 891, /* GL_MATRIX26_ARB */ - 892, /* GL_MATRIX27_ARB */ - 893, /* GL_MATRIX28_ARB */ - 894, /* GL_MATRIX29_ARB */ - 897, /* GL_MATRIX30_ARB */ - 898, /* GL_MATRIX31_ARB */ - 1681, /* GL_STREAM_DRAW */ - 1683, /* GL_STREAM_READ */ - 1679, /* GL_STREAM_COPY */ - 1631, /* GL_STATIC_DRAW */ - 1633, /* GL_STATIC_READ */ - 1629, /* GL_STATIC_COPY */ - 475, /* GL_DYNAMIC_DRAW */ - 477, /* GL_DYNAMIC_READ */ - 473, /* GL_DYNAMIC_COPY */ - 1229, /* GL_PIXEL_PACK_BUFFER */ - 1233, /* GL_PIXEL_UNPACK_BUFFER */ - 1230, /* GL_PIXEL_PACK_BUFFER_BINDING */ - 1234, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ - 362, /* GL_DEPTH24_STENCIL8 */ - 1897, /* GL_TEXTURE_STENCIL_SIZE */ - 1845, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ - 973, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ - 976, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ - 980, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ - 979, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ - 928, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */ - 1672, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ - 17, /* GL_ACTIVE_STENCIL_FACE_EXT */ - 1052, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ - 1531, /* GL_SAMPLES_PASSED */ - 1253, /* GL_POINT_SIZE_ARRAY_TYPE_OES */ - 1252, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */ - 1251, /* GL_POINT_SIZE_ARRAY_POINTER_OES */ - 1089, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */ - 1369, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */ - 1879, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */ - 121, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */ - 113, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */ - 1431, /* GL_RELEASED_APPLE */ - 2039, /* GL_VOLATILE_APPLE */ - 1470, /* GL_RETAINED_APPLE */ - 1941, /* GL_UNDEFINED_APPLE */ - 1390, /* GL_PURGEABLE_APPLE */ - 560, /* GL_FRAGMENT_SHADER */ - 2034, /* GL_VERTEX_SHADER */ - 1355, /* GL_PROGRAM_OBJECT_ARB */ - 1566, /* GL_SHADER_OBJECT_ARB */ - 954, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ - 1030, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ - 1023, /* GL_MAX_VARYING_FLOATS */ - 1028, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ - 938, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ - 1149, /* GL_OBJECT_TYPE_ARB */ - 1568, /* GL_SHADER_TYPE */ - 525, /* GL_FLOAT_VEC2 */ - 527, /* GL_FLOAT_VEC3 */ - 529, /* GL_FLOAT_VEC4 */ - 717, /* GL_INT_VEC2 */ - 719, /* GL_INT_VEC3 */ - 721, /* GL_INT_VEC4 */ - 102, /* GL_BOOL */ - 104, /* GL_BOOL_VEC2 */ - 106, /* GL_BOOL_VEC3 */ - 108, /* GL_BOOL_VEC4 */ - 513, /* GL_FLOAT_MAT2 */ - 517, /* GL_FLOAT_MAT3 */ - 521, /* GL_FLOAT_MAT4 */ - 1521, /* GL_SAMPLER_1D */ - 1523, /* GL_SAMPLER_2D */ - 1525, /* GL_SAMPLER_3D */ - 1527, /* GL_SAMPLER_CUBE */ - 1522, /* GL_SAMPLER_1D_SHADOW */ - 1524, /* GL_SAMPLER_2D_SHADOW */ - 515, /* GL_FLOAT_MAT2x3 */ - 516, /* GL_FLOAT_MAT2x4 */ - 519, /* GL_FLOAT_MAT3x2 */ - 520, /* GL_FLOAT_MAT3x4 */ - 523, /* GL_FLOAT_MAT4x2 */ - 524, /* GL_FLOAT_MAT4x3 */ - 360, /* GL_DELETE_STATUS */ - 259, /* GL_COMPILE_STATUS */ - 776, /* GL_LINK_STATUS */ - 1982, /* GL_VALIDATE_STATUS */ - 700, /* GL_INFO_LOG_LENGTH */ - 56, /* GL_ATTACHED_SHADERS */ - 20, /* GL_ACTIVE_UNIFORMS */ - 21, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */ - 1567, /* GL_SHADER_SOURCE_LENGTH */ + 424, /* GL_DOUBLE */ + 666, /* GL_HALF_FLOAT */ + 520, /* GL_FIXED */ + 155, /* GL_CLEAR */ + 58, /* GL_AND */ + 60, /* GL_AND_REVERSE */ + 324, /* GL_COPY */ + 59, /* GL_AND_INVERTED */ + 1148, /* GL_NOOP */ + 2109, /* GL_XOR */ + 1214, /* GL_OR */ + 1149, /* GL_NOR */ + 502, /* GL_EQUIV */ + 749, /* GL_INVERT */ + 1217, /* GL_OR_REVERSE */ + 325, /* GL_COPY_INVERTED */ + 1216, /* GL_OR_INVERTED */ + 1138, /* GL_NAND */ + 1613, /* GL_SET */ + 499, /* GL_EMISSION */ + 1623, /* GL_SHININESS */ + 57, /* GL_AMBIENT_AND_DIFFUSE */ + 214, /* GL_COLOR_INDEXES */ + 1087, /* GL_MODELVIEW */ + 1401, /* GL_PROJECTION */ + 1753, /* GL_TEXTURE */ + 170, /* GL_COLOR */ + 372, /* GL_DEPTH */ + 1685, /* GL_STENCIL */ + 213, /* GL_COLOR_INDEX */ + 1705, /* GL_STENCIL_INDEX */ + 387, /* GL_DEPTH_COMPONENT */ + 1455, /* GL_RED */ + 661, /* GL_GREEN */ + 108, /* GL_BLUE */ + 32, /* GL_ALPHA */ + 1507, /* GL_RGB */ + 1536, /* GL_RGBA */ + 805, /* GL_LUMINANCE */ + 832, /* GL_LUMINANCE_ALPHA */ + 84, /* GL_BITMAP */ + 1269, /* GL_POINT */ + 771, /* GL_LINE */ + 517, /* GL_FILL */ + 1467, /* GL_RENDER */ + 513, /* GL_FEEDBACK */ + 1606, /* GL_SELECT */ + 522, /* GL_FLAT */ + 1634, /* GL_SMOOTH */ + 750, /* GL_KEEP */ + 1500, /* GL_REPLACE */ + 695, /* GL_INCR */ + 368, /* GL_DECR */ + 2033, /* GL_VENDOR */ + 1497, /* GL_RENDERER */ + 2034, /* GL_VERSION */ + 506, /* GL_EXTENSIONS */ + 1570, /* GL_S */ + 1744, /* GL_T */ + 1442, /* GL_R */ + 1425, /* GL_Q */ + 1124, /* GL_MODULATE */ + 367, /* GL_DECAL */ + 1901, /* GL_TEXTURE_ENV_MODE */ + 1900, /* GL_TEXTURE_ENV_COLOR */ + 1899, /* GL_TEXTURE_ENV */ + 507, /* GL_EYE_LINEAR */ + 1175, /* GL_OBJECT_LINEAR */ + 1660, /* GL_SPHERE_MAP */ + 1904, /* GL_TEXTURE_GEN_MODE */ + 1177, /* GL_OBJECT_PLANE */ + 508, /* GL_EYE_PLANE */ + 1139, /* GL_NEAREST */ + 772, /* GL_LINEAR */ + 1143, /* GL_NEAREST_MIPMAP_NEAREST */ + 777, /* GL_LINEAR_MIPMAP_NEAREST */ + 1142, /* GL_NEAREST_MIPMAP_LINEAR */ + 776, /* GL_LINEAR_MIPMAP_LINEAR */ + 1927, /* GL_TEXTURE_MAG_FILTER */ + 1936, /* GL_TEXTURE_MIN_FILTER */ + 1955, /* GL_TEXTURE_WRAP_S */ + 1956, /* GL_TEXTURE_WRAP_T */ + 149, /* GL_CLAMP */ + 1499, /* GL_REPEAT */ + 1313, /* GL_POLYGON_OFFSET_UNITS */ + 1312, /* GL_POLYGON_OFFSET_POINT */ + 1311, /* GL_POLYGON_OFFSET_LINE */ + 1443, /* GL_R3_G3_B2 */ + 2030, /* GL_V2F */ + 2031, /* GL_V3F */ + 146, /* GL_C4UB_V2F */ + 147, /* GL_C4UB_V3F */ + 144, /* GL_C3F_V3F */ + 1136, /* GL_N3F_V3F */ + 145, /* GL_C4F_N3F_V3F */ + 1749, /* GL_T2F_V3F */ + 1751, /* GL_T4F_V4F */ + 1747, /* GL_T2F_C4UB_V3F */ + 1745, /* GL_T2F_C3F_V3F */ + 1748, /* GL_T2F_N3F_V3F */ + 1746, /* GL_T2F_C4F_N3F_V3F */ + 1750, /* GL_T4F_C4F_N3F_V4F */ + 162, /* GL_CLIP_PLANE0 */ + 163, /* GL_CLIP_PLANE1 */ + 164, /* GL_CLIP_PLANE2 */ + 165, /* GL_CLIP_PLANE3 */ + 166, /* GL_CLIP_PLANE4 */ + 167, /* GL_CLIP_PLANE5 */ + 756, /* GL_LIGHT0 */ + 757, /* GL_LIGHT1 */ + 758, /* GL_LIGHT2 */ + 759, /* GL_LIGHT3 */ + 760, /* GL_LIGHT4 */ + 761, /* GL_LIGHT5 */ + 762, /* GL_LIGHT6 */ + 763, /* GL_LIGHT7 */ + 670, /* GL_HINT_BIT */ + 301, /* GL_CONSTANT_COLOR */ + 1188, /* GL_ONE_MINUS_CONSTANT_COLOR */ + 296, /* GL_CONSTANT_ALPHA */ + 1186, /* GL_ONE_MINUS_CONSTANT_ALPHA */ + 87, /* GL_BLEND_COLOR */ + 642, /* GL_FUNC_ADD */ + 1071, /* GL_MIN */ + 957, /* GL_MAX */ + 94, /* GL_BLEND_EQUATION */ + 648, /* GL_FUNC_SUBTRACT */ + 645, /* GL_FUNC_REVERSE_SUBTRACT */ + 304, /* GL_CONVOLUTION_1D */ + 305, /* GL_CONVOLUTION_2D */ + 1609, /* GL_SEPARABLE_2D */ + 308, /* GL_CONVOLUTION_BORDER_MODE */ + 312, /* GL_CONVOLUTION_FILTER_SCALE */ + 310, /* GL_CONVOLUTION_FILTER_BIAS */ + 1456, /* GL_REDUCE */ + 314, /* GL_CONVOLUTION_FORMAT */ + 318, /* GL_CONVOLUTION_WIDTH */ + 316, /* GL_CONVOLUTION_HEIGHT */ + 974, /* GL_MAX_CONVOLUTION_WIDTH */ + 972, /* GL_MAX_CONVOLUTION_HEIGHT */ + 1352, /* GL_POST_CONVOLUTION_RED_SCALE */ + 1348, /* GL_POST_CONVOLUTION_GREEN_SCALE */ + 1343, /* GL_POST_CONVOLUTION_BLUE_SCALE */ + 1339, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ + 1350, /* GL_POST_CONVOLUTION_RED_BIAS */ + 1346, /* GL_POST_CONVOLUTION_GREEN_BIAS */ + 1341, /* GL_POST_CONVOLUTION_BLUE_BIAS */ + 1337, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ + 671, /* GL_HISTOGRAM */ + 1408, /* GL_PROXY_HISTOGRAM */ + 687, /* GL_HISTOGRAM_WIDTH */ + 677, /* GL_HISTOGRAM_FORMAT */ + 683, /* GL_HISTOGRAM_RED_SIZE */ + 679, /* GL_HISTOGRAM_GREEN_SIZE */ + 674, /* GL_HISTOGRAM_BLUE_SIZE */ + 672, /* GL_HISTOGRAM_ALPHA_SIZE */ + 681, /* GL_HISTOGRAM_LUMINANCE_SIZE */ + 685, /* GL_HISTOGRAM_SINK */ + 1072, /* GL_MINMAX */ + 1074, /* GL_MINMAX_FORMAT */ + 1076, /* GL_MINMAX_SINK */ + 1752, /* GL_TABLE_TOO_LARGE_EXT */ + 2003, /* GL_UNSIGNED_BYTE_3_3_2 */ + 2019, /* GL_UNSIGNED_SHORT_4_4_4_4 */ + 2022, /* GL_UNSIGNED_SHORT_5_5_5_1 */ + 2013, /* GL_UNSIGNED_INT_8_8_8_8 */ + 2005, /* GL_UNSIGNED_INT_10_10_10_2 */ + 1310, /* GL_POLYGON_OFFSET_FILL */ + 1309, /* GL_POLYGON_OFFSET_FACTOR */ + 1308, /* GL_POLYGON_OFFSET_BIAS */ + 1503, /* GL_RESCALE_NORMAL */ + 41, /* GL_ALPHA4 */ + 43, /* GL_ALPHA8 */ + 33, /* GL_ALPHA12 */ + 35, /* GL_ALPHA16 */ + 820, /* GL_LUMINANCE4 */ + 826, /* GL_LUMINANCE8 */ + 806, /* GL_LUMINANCE12 */ + 812, /* GL_LUMINANCE16 */ + 821, /* GL_LUMINANCE4_ALPHA4 */ + 824, /* GL_LUMINANCE6_ALPHA2 */ + 829, /* GL_LUMINANCE8_ALPHA8 */ + 809, /* GL_LUMINANCE12_ALPHA4 */ + 807, /* GL_LUMINANCE12_ALPHA12 */ + 815, /* GL_LUMINANCE16_ALPHA16 */ + 714, /* GL_INTENSITY */ + 723, /* GL_INTENSITY4 */ + 725, /* GL_INTENSITY8 */ + 715, /* GL_INTENSITY12 */ + 717, /* GL_INTENSITY16 */ + 1518, /* GL_RGB2_EXT */ + 1521, /* GL_RGB4 */ + 1524, /* GL_RGB5 */ + 1531, /* GL_RGB8 */ + 1508, /* GL_RGB10 */ + 1512, /* GL_RGB12 */ + 1514, /* GL_RGB16 */ + 1543, /* GL_RGBA2 */ + 1547, /* GL_RGBA4 */ + 1527, /* GL_RGB5_A1 */ + 1552, /* GL_RGBA8 */ + 1509, /* GL_RGB10_A2 */ + 1537, /* GL_RGBA12 */ + 1539, /* GL_RGBA16 */ + 1943, /* GL_TEXTURE_RED_SIZE */ + 1912, /* GL_TEXTURE_GREEN_SIZE */ + 1839, /* GL_TEXTURE_BLUE_SIZE */ + 1824, /* GL_TEXTURE_ALPHA_SIZE */ + 1925, /* GL_TEXTURE_LUMINANCE_SIZE */ + 1916, /* GL_TEXTURE_INTENSITY_SIZE */ + 1501, /* GL_REPLACE_EXT */ + 1412, /* GL_PROXY_TEXTURE_1D */ + 1415, /* GL_PROXY_TEXTURE_2D */ + 1950, /* GL_TEXTURE_TOO_LARGE_EXT */ + 1938, /* GL_TEXTURE_PRIORITY */ + 1945, /* GL_TEXTURE_RESIDENT */ + 1827, /* GL_TEXTURE_BINDING_1D */ + 1829, /* GL_TEXTURE_BINDING_2D */ + 1831, /* GL_TEXTURE_BINDING_3D */ + 1224, /* GL_PACK_SKIP_IMAGES */ + 1220, /* GL_PACK_IMAGE_HEIGHT */ + 1996, /* GL_UNPACK_SKIP_IMAGES */ + 1993, /* GL_UNPACK_IMAGE_HEIGHT */ + 1822, /* GL_TEXTURE_3D */ + 1418, /* GL_PROXY_TEXTURE_3D */ + 1896, /* GL_TEXTURE_DEPTH */ + 1953, /* GL_TEXTURE_WRAP_R */ + 958, /* GL_MAX_3D_TEXTURE_SIZE */ + 2035, /* GL_VERTEX_ARRAY */ + 1151, /* GL_NORMAL_ARRAY */ + 171, /* GL_COLOR_ARRAY */ + 699, /* GL_INDEX_ARRAY */ + 1866, /* GL_TEXTURE_COORD_ARRAY */ + 491, /* GL_EDGE_FLAG_ARRAY */ + 2041, /* GL_VERTEX_ARRAY_SIZE */ + 2043, /* GL_VERTEX_ARRAY_TYPE */ + 2042, /* GL_VERTEX_ARRAY_STRIDE */ + 1156, /* GL_NORMAL_ARRAY_TYPE */ + 1155, /* GL_NORMAL_ARRAY_STRIDE */ + 175, /* GL_COLOR_ARRAY_SIZE */ + 177, /* GL_COLOR_ARRAY_TYPE */ + 176, /* GL_COLOR_ARRAY_STRIDE */ + 704, /* GL_INDEX_ARRAY_TYPE */ + 703, /* GL_INDEX_ARRAY_STRIDE */ + 1870, /* GL_TEXTURE_COORD_ARRAY_SIZE */ + 1872, /* GL_TEXTURE_COORD_ARRAY_TYPE */ + 1871, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ + 495, /* GL_EDGE_FLAG_ARRAY_STRIDE */ + 2040, /* GL_VERTEX_ARRAY_POINTER */ + 1154, /* GL_NORMAL_ARRAY_POINTER */ + 174, /* GL_COLOR_ARRAY_POINTER */ + 702, /* GL_INDEX_ARRAY_POINTER */ + 1869, /* GL_TEXTURE_COORD_ARRAY_POINTER */ + 494, /* GL_EDGE_FLAG_ARRAY_POINTER */ + 1129, /* GL_MULTISAMPLE */ + 1583, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ + 1585, /* GL_SAMPLE_ALPHA_TO_ONE */ + 1590, /* GL_SAMPLE_COVERAGE */ + 1587, /* GL_SAMPLE_BUFFERS */ + 1578, /* GL_SAMPLES */ + 1594, /* GL_SAMPLE_COVERAGE_VALUE */ + 1592, /* GL_SAMPLE_COVERAGE_INVERT */ + 219, /* GL_COLOR_MATRIX */ + 221, /* GL_COLOR_MATRIX_STACK_DEPTH */ + 968, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ + 1335, /* GL_POST_COLOR_MATRIX_RED_SCALE */ + 1331, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ + 1326, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ + 1322, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ + 1333, /* GL_POST_COLOR_MATRIX_RED_BIAS */ + 1329, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ + 1324, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ + 1320, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ + 1849, /* GL_TEXTURE_COLOR_TABLE_SGI */ + 1419, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ + 1851, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ + 92, /* GL_BLEND_DST_RGB */ + 106, /* GL_BLEND_SRC_RGB */ + 90, /* GL_BLEND_DST_ALPHA */ + 104, /* GL_BLEND_SRC_ALPHA */ + 225, /* GL_COLOR_TABLE */ + 1345, /* GL_POST_CONVOLUTION_COLOR_TABLE */ + 1328, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ + 1407, /* GL_PROXY_COLOR_TABLE */ + 1411, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ + 1410, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ + 249, /* GL_COLOR_TABLE_SCALE */ + 229, /* GL_COLOR_TABLE_BIAS */ + 234, /* GL_COLOR_TABLE_FORMAT */ + 251, /* GL_COLOR_TABLE_WIDTH */ + 246, /* GL_COLOR_TABLE_RED_SIZE */ + 237, /* GL_COLOR_TABLE_GREEN_SIZE */ + 231, /* GL_COLOR_TABLE_BLUE_SIZE */ + 226, /* GL_COLOR_TABLE_ALPHA_SIZE */ + 243, /* GL_COLOR_TABLE_LUMINANCE_SIZE */ + 240, /* GL_COLOR_TABLE_INTENSITY_SIZE */ + 79, /* GL_BGR */ + 80, /* GL_BGRA */ + 983, /* GL_MAX_ELEMENTS_VERTICES */ + 982, /* GL_MAX_ELEMENTS_INDICES */ + 1915, /* GL_TEXTURE_INDEX_SIZE_EXT */ + 168, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */ + 1291, /* GL_POINT_SIZE_MIN */ + 1287, /* GL_POINT_SIZE_MAX */ + 1276, /* GL_POINT_FADE_THRESHOLD_SIZE */ + 1272, /* GL_POINT_DISTANCE_ATTENUATION */ + 150, /* GL_CLAMP_TO_BORDER */ + 153, /* GL_CLAMP_TO_EDGE */ + 1937, /* GL_TEXTURE_MIN_LOD */ + 1935, /* GL_TEXTURE_MAX_LOD */ + 1826, /* GL_TEXTURE_BASE_LEVEL */ + 1934, /* GL_TEXTURE_MAX_LEVEL */ + 690, /* GL_IGNORE_BORDER_HP */ + 300, /* GL_CONSTANT_BORDER_HP */ + 1502, /* GL_REPLICATE_BORDER_HP */ + 306, /* GL_CONVOLUTION_BORDER_COLOR */ + 1183, /* GL_OCCLUSION_TEST_HP */ + 1184, /* GL_OCCLUSION_TEST_RESULT_HP */ + 774, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ + 1843, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ + 1845, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ + 1847, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ + 1848, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + 1846, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ + 1844, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ + 963, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ + 964, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + 1355, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ + 1357, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ + 1354, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ + 1356, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ + 1923, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ + 1924, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ + 1922, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ + 651, /* GL_GENERATE_MIPMAP */ + 652, /* GL_GENERATE_MIPMAP_HINT */ + 566, /* GL_FOG_OFFSET_SGIX */ + 567, /* GL_FOG_OFFSET_VALUE_SGIX */ + 1857, /* GL_TEXTURE_COMPARE_SGIX */ + 1856, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ + 1919, /* GL_TEXTURE_LEQUAL_R_SGIX */ + 1911, /* GL_TEXTURE_GEQUAL_R_SGIX */ + 388, /* GL_DEPTH_COMPONENT16 */ + 392, /* GL_DEPTH_COMPONENT24 */ + 396, /* GL_DEPTH_COMPONENT32 */ + 331, /* GL_CULL_VERTEX_EXT */ + 333, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */ + 332, /* GL_CULL_VERTEX_EYE_POSITION_EXT */ + 2105, /* GL_WRAP_BORDER_SUN */ + 1850, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ + 767, /* GL_LIGHT_MODEL_COLOR_CONTROL */ + 1627, /* GL_SINGLE_COLOR */ + 1611, /* GL_SEPARATE_SPECULAR_COLOR */ + 1622, /* GL_SHARED_TEXTURE_PALETTE_EXT */ + 578, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ + 579, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ + 589, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ + 581, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ + 577, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ + 576, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ + 580, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ + 590, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ + 607, /* GL_FRAMEBUFFER_DEFAULT */ + 633, /* GL_FRAMEBUFFER_UNDEFINED */ + 404, /* GL_DEPTH_STENCIL_ATTACHMENT */ + 698, /* GL_INDEX */ + 2002, /* GL_UNSIGNED_BYTE_2_3_3_REV */ + 2023, /* GL_UNSIGNED_SHORT_5_6_5 */ + 2024, /* GL_UNSIGNED_SHORT_5_6_5_REV */ + 2020, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ + 2017, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ + 2014, /* GL_UNSIGNED_INT_8_8_8_8_REV */ + 2011, /* GL_UNSIGNED_INT_2_10_10_10_REV */ + 1932, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ + 1933, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ + 1931, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ + 1079, /* GL_MIRRORED_REPEAT */ + 1565, /* GL_RGB_S3TC */ + 1523, /* GL_RGB4_S3TC */ + 1562, /* GL_RGBA_S3TC */ + 1551, /* GL_RGBA4_S3TC */ + 1558, /* GL_RGBA_DXT5_S3TC */ + 1548, /* GL_RGBA4_DXT5_S3TC */ + 288, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */ + 283, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */ + 284, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */ + 285, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */ + 1141, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ + 1140, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ + 775, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ + 553, /* GL_FOG_COORDINATE_SOURCE */ + 545, /* GL_FOG_COORD */ + 569, /* GL_FRAGMENT_DEPTH */ + 337, /* GL_CURRENT_FOG_COORD */ + 552, /* GL_FOG_COORDINATE_ARRAY_TYPE */ + 551, /* GL_FOG_COORDINATE_ARRAY_STRIDE */ + 550, /* GL_FOG_COORDINATE_ARRAY_POINTER */ + 547, /* GL_FOG_COORDINATE_ARRAY */ + 223, /* GL_COLOR_SUM */ + 358, /* GL_CURRENT_SECONDARY_COLOR */ + 1603, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ + 1605, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ + 1604, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ + 1602, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ + 1599, /* GL_SECONDARY_COLOR_ARRAY */ + 356, /* GL_CURRENT_RASTER_SECONDARY_COLOR */ + 29, /* GL_ALIASED_POINT_SIZE_RANGE */ + 28, /* GL_ALIASED_LINE_WIDTH_RANGE */ + 1754, /* GL_TEXTURE0 */ + 1756, /* GL_TEXTURE1 */ + 1778, /* GL_TEXTURE2 */ + 1800, /* GL_TEXTURE3 */ + 1806, /* GL_TEXTURE4 */ + 1808, /* GL_TEXTURE5 */ + 1810, /* GL_TEXTURE6 */ + 1812, /* GL_TEXTURE7 */ + 1814, /* GL_TEXTURE8 */ + 1816, /* GL_TEXTURE9 */ + 1757, /* GL_TEXTURE10 */ + 1759, /* GL_TEXTURE11 */ + 1761, /* GL_TEXTURE12 */ + 1763, /* GL_TEXTURE13 */ + 1765, /* GL_TEXTURE14 */ + 1767, /* GL_TEXTURE15 */ + 1769, /* GL_TEXTURE16 */ + 1771, /* GL_TEXTURE17 */ + 1773, /* GL_TEXTURE18 */ + 1775, /* GL_TEXTURE19 */ + 1779, /* GL_TEXTURE20 */ + 1781, /* GL_TEXTURE21 */ + 1783, /* GL_TEXTURE22 */ + 1785, /* GL_TEXTURE23 */ + 1787, /* GL_TEXTURE24 */ + 1789, /* GL_TEXTURE25 */ + 1791, /* GL_TEXTURE26 */ + 1793, /* GL_TEXTURE27 */ + 1795, /* GL_TEXTURE28 */ + 1797, /* GL_TEXTURE29 */ + 1801, /* GL_TEXTURE30 */ + 1803, /* GL_TEXTURE31 */ + 19, /* GL_ACTIVE_TEXTURE */ + 156, /* GL_CLIENT_ACTIVE_TEXTURE */ + 1047, /* GL_MAX_TEXTURE_UNITS */ + 1977, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ + 1980, /* GL_TRANSPOSE_PROJECTION_MATRIX */ + 1982, /* GL_TRANSPOSE_TEXTURE_MATRIX */ + 1974, /* GL_TRANSPOSE_COLOR_MATRIX */ + 1736, /* GL_SUBTRACT */ + 1030, /* GL_MAX_RENDERBUFFER_SIZE */ + 271, /* GL_COMPRESSED_ALPHA */ + 275, /* GL_COMPRESSED_LUMINANCE */ + 276, /* GL_COMPRESSED_LUMINANCE_ALPHA */ + 273, /* GL_COMPRESSED_INTENSITY */ + 279, /* GL_COMPRESSED_RGB */ + 280, /* GL_COMPRESSED_RGBA */ + 1864, /* GL_TEXTURE_COMPRESSION_HINT */ + 1941, /* GL_TEXTURE_RECTANGLE_ARB */ + 1836, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */ + 1422, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ + 1028, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ + 403, /* GL_DEPTH_STENCIL */ + 2007, /* GL_UNSIGNED_INT_24_8 */ + 1042, /* GL_MAX_TEXTURE_LOD_BIAS */ + 1930, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ + 1044, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ + 1902, /* GL_TEXTURE_FILTER_CONTROL */ + 1920, /* GL_TEXTURE_LOD_BIAS */ + 256, /* GL_COMBINE4 */ + 1036, /* GL_MAX_SHININESS_NV */ + 1037, /* GL_MAX_SPOT_EXPONENT_NV */ + 696, /* GL_INCR_WRAP */ + 369, /* GL_DECR_WRAP */ + 1099, /* GL_MODELVIEW1_ARB */ + 1157, /* GL_NORMAL_MAP */ + 1462, /* GL_REFLECTION_MAP */ + 1874, /* GL_TEXTURE_CUBE_MAP */ + 1833, /* GL_TEXTURE_BINDING_CUBE_MAP */ + 1886, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ + 1876, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ + 1889, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ + 1879, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ + 1892, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ + 1882, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ + 1420, /* GL_PROXY_TEXTURE_CUBE_MAP */ + 976, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ + 1135, /* GL_MULTISAMPLE_FILTER_HINT_NV */ + 1366, /* GL_PRIMITIVE_RESTART_NV */ + 1365, /* GL_PRIMITIVE_RESTART_INDEX_NV */ + 561, /* GL_FOG_DISTANCE_MODE_NV */ + 510, /* GL_EYE_RADIAL_NV */ + 509, /* GL_EYE_PLANE_ABSOLUTE_NV */ + 255, /* GL_COMBINE */ + 262, /* GL_COMBINE_RGB */ + 257, /* GL_COMBINE_ALPHA */ + 1566, /* GL_RGB_SCALE */ + 25, /* GL_ADD_SIGNED */ + 731, /* GL_INTERPOLATE */ + 295, /* GL_CONSTANT */ + 1361, /* GL_PRIMARY_COLOR */ + 1358, /* GL_PREVIOUS */ + 1642, /* GL_SOURCE0_RGB */ + 1648, /* GL_SOURCE1_RGB */ + 1654, /* GL_SOURCE2_RGB */ + 1658, /* GL_SOURCE3_RGB_NV */ + 1639, /* GL_SOURCE0_ALPHA */ + 1645, /* GL_SOURCE1_ALPHA */ + 1651, /* GL_SOURCE2_ALPHA */ + 1657, /* GL_SOURCE3_ALPHA_NV */ + 1197, /* GL_OPERAND0_RGB */ + 1203, /* GL_OPERAND1_RGB */ + 1209, /* GL_OPERAND2_RGB */ + 1213, /* GL_OPERAND3_RGB_NV */ + 1194, /* GL_OPERAND0_ALPHA */ + 1200, /* GL_OPERAND1_ALPHA */ + 1206, /* GL_OPERAND2_ALPHA */ + 1212, /* GL_OPERAND3_ALPHA_NV */ + 131, /* GL_BUFFER_OBJECT_APPLE */ + 2036, /* GL_VERTEX_ARRAY_BINDING */ + 1939, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ + 1940, /* GL_TEXTURE_RANGE_POINTER_APPLE */ + 2110, /* GL_YCBCR_422_APPLE */ + 2025, /* GL_UNSIGNED_SHORT_8_8_APPLE */ + 2027, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ + 1949, /* GL_TEXTURE_STORAGE_HINT_APPLE */ + 1727, /* GL_STORAGE_PRIVATE_APPLE */ + 1726, /* GL_STORAGE_CACHED_APPLE */ + 1728, /* GL_STORAGE_SHARED_APPLE */ + 1629, /* GL_SLICE_ACCUM_SUN */ + 1430, /* GL_QUAD_MESH_SUN */ + 1987, /* GL_TRIANGLE_MESH_SUN */ + 2075, /* GL_VERTEX_PROGRAM_ARB */ + 2086, /* GL_VERTEX_STATE_PROGRAM_NV */ + 2062, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ + 2068, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ + 2070, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ + 2072, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ + 360, /* GL_CURRENT_VERTEX_ATTRIB */ + 1379, /* GL_PROGRAM_LENGTH_ARB */ + 1394, /* GL_PROGRAM_STRING_ARB */ + 1122, /* GL_MODELVIEW_PROJECTION_NV */ + 689, /* GL_IDENTITY_NV */ + 747, /* GL_INVERSE_NV */ + 1979, /* GL_TRANSPOSE_NV */ + 748, /* GL_INVERSE_TRANSPOSE_NV */ + 1014, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ + 1013, /* GL_MAX_PROGRAM_MATRICES_ARB */ + 904, /* GL_MATRIX0_NV */ + 916, /* GL_MATRIX1_NV */ + 928, /* GL_MATRIX2_NV */ + 932, /* GL_MATRIX3_NV */ + 934, /* GL_MATRIX4_NV */ + 936, /* GL_MATRIX5_NV */ + 938, /* GL_MATRIX6_NV */ + 940, /* GL_MATRIX7_NV */ + 343, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */ + 340, /* GL_CURRENT_MATRIX_ARB */ + 2078, /* GL_VERTEX_PROGRAM_POINT_SIZE */ + 2081, /* GL_VERTEX_PROGRAM_TWO_SIDE */ + 1391, /* GL_PROGRAM_PARAMETER_NV */ + 2066, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ + 1396, /* GL_PROGRAM_TARGET_NV */ + 1393, /* GL_PROGRAM_RESIDENT_NV */ + 1959, /* GL_TRACK_MATRIX_NV */ + 1960, /* GL_TRACK_MATRIX_TRANSFORM_NV */ + 2076, /* GL_VERTEX_PROGRAM_BINDING_NV */ + 1373, /* GL_PROGRAM_ERROR_POSITION_ARB */ + 384, /* GL_DEPTH_CLAMP */ + 2044, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ + 2051, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ + 2052, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ + 2053, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ + 2054, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ + 2055, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ + 2056, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ + 2057, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ + 2058, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ + 2059, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ + 2045, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ + 2046, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ + 2047, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ + 2048, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ + 2049, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ + 2050, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ + 852, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ + 859, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ + 860, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ + 861, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ + 862, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ + 863, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ + 864, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ + 865, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ + 866, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ + 867, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ + 853, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ + 854, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ + 855, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ + 856, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ + 857, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ + 858, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ + 879, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ + 886, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ + 887, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ + 888, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ + 889, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ + 890, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ + 891, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ + 1372, /* GL_PROGRAM_BINDING_ARB */ + 893, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ + 894, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ + 880, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ + 881, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ + 882, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ + 883, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ + 884, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ + 885, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ + 1862, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ + 1859, /* GL_TEXTURE_COMPRESSED */ + 1163, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ + 293, /* GL_COMPRESSED_TEXTURE_FORMATS */ + 1065, /* GL_MAX_VERTEX_UNITS_ARB */ + 23, /* GL_ACTIVE_VERTEX_UNITS_ARB */ + 2104, /* GL_WEIGHT_SUM_UNITY_ARB */ + 2074, /* GL_VERTEX_BLEND_ARB */ + 362, /* GL_CURRENT_WEIGHT_ARB */ + 2102, /* GL_WEIGHT_ARRAY_TYPE_ARB */ + 2100, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ + 2098, /* GL_WEIGHT_ARRAY_SIZE_ARB */ + 2096, /* GL_WEIGHT_ARRAY_POINTER_ARB */ + 2091, /* GL_WEIGHT_ARRAY_ARB */ + 418, /* GL_DOT3_RGB */ + 419, /* GL_DOT3_RGBA */ + 287, /* GL_COMPRESSED_RGB_FXT1_3DFX */ + 282, /* GL_COMPRESSED_RGBA_FXT1_3DFX */ + 1130, /* GL_MULTISAMPLE_3DFX */ + 1588, /* GL_SAMPLE_BUFFERS_3DFX */ + 1579, /* GL_SAMPLES_3DFX */ + 1110, /* GL_MODELVIEW2_ARB */ + 1113, /* GL_MODELVIEW3_ARB */ + 1114, /* GL_MODELVIEW4_ARB */ + 1115, /* GL_MODELVIEW5_ARB */ + 1116, /* GL_MODELVIEW6_ARB */ + 1117, /* GL_MODELVIEW7_ARB */ + 1118, /* GL_MODELVIEW8_ARB */ + 1119, /* GL_MODELVIEW9_ARB */ + 1089, /* GL_MODELVIEW10_ARB */ + 1090, /* GL_MODELVIEW11_ARB */ + 1091, /* GL_MODELVIEW12_ARB */ + 1092, /* GL_MODELVIEW13_ARB */ + 1093, /* GL_MODELVIEW14_ARB */ + 1094, /* GL_MODELVIEW15_ARB */ + 1095, /* GL_MODELVIEW16_ARB */ + 1096, /* GL_MODELVIEW17_ARB */ + 1097, /* GL_MODELVIEW18_ARB */ + 1098, /* GL_MODELVIEW19_ARB */ + 1100, /* GL_MODELVIEW20_ARB */ + 1101, /* GL_MODELVIEW21_ARB */ + 1102, /* GL_MODELVIEW22_ARB */ + 1103, /* GL_MODELVIEW23_ARB */ + 1104, /* GL_MODELVIEW24_ARB */ + 1105, /* GL_MODELVIEW25_ARB */ + 1106, /* GL_MODELVIEW26_ARB */ + 1107, /* GL_MODELVIEW27_ARB */ + 1108, /* GL_MODELVIEW28_ARB */ + 1109, /* GL_MODELVIEW29_ARB */ + 1111, /* GL_MODELVIEW30_ARB */ + 1112, /* GL_MODELVIEW31_ARB */ + 423, /* GL_DOT3_RGB_EXT */ + 421, /* GL_DOT3_RGBA_EXT */ + 1083, /* GL_MIRROR_CLAMP_EXT */ + 1086, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ + 1125, /* GL_MODULATE_ADD_ATI */ + 1126, /* GL_MODULATE_SIGNED_ADD_ATI */ + 1127, /* GL_MODULATE_SUBTRACT_ATI */ + 2111, /* GL_YCBCR_MESA */ + 1221, /* GL_PACK_INVERT_MESA */ + 365, /* GL_DEBUG_OBJECT_MESA */ + 366, /* GL_DEBUG_PRINT_MESA */ + 364, /* GL_DEBUG_ASSERT_MESA */ + 133, /* GL_BUFFER_SIZE */ + 135, /* GL_BUFFER_USAGE */ + 139, /* GL_BUMP_ROT_MATRIX_ATI */ + 140, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */ + 138, /* GL_BUMP_NUM_TEX_UNITS_ATI */ + 142, /* GL_BUMP_TEX_UNITS_ATI */ + 483, /* GL_DUDV_ATI */ + 482, /* GL_DU8DV8_ATI */ + 137, /* GL_BUMP_ENVMAP_ATI */ + 141, /* GL_BUMP_TARGET_ATI */ + 1165, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */ + 1370, /* GL_PROGRAM_BINARY_FORMATS_OES */ + 1691, /* GL_STENCIL_BACK_FUNC */ + 1689, /* GL_STENCIL_BACK_FAIL */ + 1693, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ + 1695, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ + 570, /* GL_FRAGMENT_PROGRAM_ARB */ + 1368, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ + 1399, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ + 1398, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ + 1382, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + 1388, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + 1387, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + 1003, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ + 1026, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ + 1025, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ + 1016, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + 1022, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + 1021, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + 979, /* GL_MAX_DRAW_BUFFERS */ + 427, /* GL_DRAW_BUFFER0 */ + 430, /* GL_DRAW_BUFFER1 */ + 451, /* GL_DRAW_BUFFER2 */ + 454, /* GL_DRAW_BUFFER3 */ + 457, /* GL_DRAW_BUFFER4 */ + 460, /* GL_DRAW_BUFFER5 */ + 463, /* GL_DRAW_BUFFER6 */ + 466, /* GL_DRAW_BUFFER7 */ + 469, /* GL_DRAW_BUFFER8 */ + 472, /* GL_DRAW_BUFFER9 */ + 431, /* GL_DRAW_BUFFER10 */ + 434, /* GL_DRAW_BUFFER11 */ + 437, /* GL_DRAW_BUFFER12 */ + 440, /* GL_DRAW_BUFFER13 */ + 443, /* GL_DRAW_BUFFER14 */ + 446, /* GL_DRAW_BUFFER15 */ + 95, /* GL_BLEND_EQUATION_ALPHA */ + 955, /* GL_MATRIX_PALETTE_ARB */ + 996, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ + 999, /* GL_MAX_PALETTE_MATRICES_ARB */ + 346, /* GL_CURRENT_PALETTE_MATRIX_ARB */ + 943, /* GL_MATRIX_INDEX_ARRAY_ARB */ + 341, /* GL_CURRENT_MATRIX_INDEX_ARB */ + 948, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ + 952, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ + 950, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ + 946, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ + 1897, /* GL_TEXTURE_DEPTH_SIZE */ + 411, /* GL_DEPTH_TEXTURE_MODE */ + 1854, /* GL_TEXTURE_COMPARE_MODE */ + 1852, /* GL_TEXTURE_COMPARE_FUNC */ + 266, /* GL_COMPARE_R_TO_TEXTURE */ + 1298, /* GL_POINT_SPRITE */ + 320, /* GL_COORD_REPLACE */ + 1303, /* GL_POINT_SPRITE_R_MODE_NV */ + 1434, /* GL_QUERY_COUNTER_BITS */ + 349, /* GL_CURRENT_QUERY */ + 1437, /* GL_QUERY_RESULT */ + 1439, /* GL_QUERY_RESULT_AVAILABLE */ + 1058, /* GL_MAX_VERTEX_ATTRIBS */ + 2064, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ + 409, /* GL_DEPTH_STENCIL_TO_RGBA_NV */ + 408, /* GL_DEPTH_STENCIL_TO_BGRA_NV */ + 1038, /* GL_MAX_TEXTURE_COORDS */ + 1040, /* GL_MAX_TEXTURE_IMAGE_UNITS */ + 1375, /* GL_PROGRAM_ERROR_STRING_ARB */ + 1377, /* GL_PROGRAM_FORMAT_ASCII_ARB */ + 1376, /* GL_PROGRAM_FORMAT_ARB */ + 1951, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ + 382, /* GL_DEPTH_BOUNDS_TEST_EXT */ + 381, /* GL_DEPTH_BOUNDS_EXT */ + 61, /* GL_ARRAY_BUFFER */ + 496, /* GL_ELEMENT_ARRAY_BUFFER */ + 62, /* GL_ARRAY_BUFFER_BINDING */ + 497, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */ + 2038, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ + 1152, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ + 172, /* GL_COLOR_ARRAY_BUFFER_BINDING */ + 700, /* GL_INDEX_ARRAY_BUFFER_BINDING */ + 1867, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ + 492, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */ + 1600, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ + 548, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */ + 2092, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ + 2060, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ + 1378, /* GL_PROGRAM_INSTRUCTIONS_ARB */ + 1009, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ + 1384, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + 1018, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + 1397, /* GL_PROGRAM_TEMPORARIES_ARB */ + 1024, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ + 1386, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ + 1020, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ + 1390, /* GL_PROGRAM_PARAMETERS_ARB */ + 1023, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ + 1385, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ + 1019, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ + 1369, /* GL_PROGRAM_ATTRIBS_ARB */ + 1004, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ + 1383, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ + 1017, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ + 1367, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ + 1002, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ + 1381, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + 1015, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + 1010, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ + 1006, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ + 1400, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ + 1976, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ + 1451, /* GL_READ_ONLY */ + 2106, /* GL_WRITE_ONLY */ + 1453, /* GL_READ_WRITE */ + 121, /* GL_BUFFER_ACCESS */ + 125, /* GL_BUFFER_MAPPED */ + 128, /* GL_BUFFER_MAP_POINTER */ + 1958, /* GL_TIME_ELAPSED_EXT */ + 903, /* GL_MATRIX0_ARB */ + 915, /* GL_MATRIX1_ARB */ + 927, /* GL_MATRIX2_ARB */ + 931, /* GL_MATRIX3_ARB */ + 933, /* GL_MATRIX4_ARB */ + 935, /* GL_MATRIX5_ARB */ + 937, /* GL_MATRIX6_ARB */ + 939, /* GL_MATRIX7_ARB */ + 941, /* GL_MATRIX8_ARB */ + 942, /* GL_MATRIX9_ARB */ + 905, /* GL_MATRIX10_ARB */ + 906, /* GL_MATRIX11_ARB */ + 907, /* GL_MATRIX12_ARB */ + 908, /* GL_MATRIX13_ARB */ + 909, /* GL_MATRIX14_ARB */ + 910, /* GL_MATRIX15_ARB */ + 911, /* GL_MATRIX16_ARB */ + 912, /* GL_MATRIX17_ARB */ + 913, /* GL_MATRIX18_ARB */ + 914, /* GL_MATRIX19_ARB */ + 917, /* GL_MATRIX20_ARB */ + 918, /* GL_MATRIX21_ARB */ + 919, /* GL_MATRIX22_ARB */ + 920, /* GL_MATRIX23_ARB */ + 921, /* GL_MATRIX24_ARB */ + 922, /* GL_MATRIX25_ARB */ + 923, /* GL_MATRIX26_ARB */ + 924, /* GL_MATRIX27_ARB */ + 925, /* GL_MATRIX28_ARB */ + 926, /* GL_MATRIX29_ARB */ + 929, /* GL_MATRIX30_ARB */ + 930, /* GL_MATRIX31_ARB */ + 1731, /* GL_STREAM_DRAW */ + 1733, /* GL_STREAM_READ */ + 1729, /* GL_STREAM_COPY */ + 1681, /* GL_STATIC_DRAW */ + 1683, /* GL_STATIC_READ */ + 1679, /* GL_STATIC_COPY */ + 486, /* GL_DYNAMIC_DRAW */ + 488, /* GL_DYNAMIC_READ */ + 484, /* GL_DYNAMIC_COPY */ + 1261, /* GL_PIXEL_PACK_BUFFER */ + 1265, /* GL_PIXEL_UNPACK_BUFFER */ + 1262, /* GL_PIXEL_PACK_BUFFER_BINDING */ + 1266, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ + 373, /* GL_DEPTH24_STENCIL8 */ + 1947, /* GL_TEXTURE_STENCIL_SIZE */ + 1895, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ + 1005, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ + 1008, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ + 1012, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ + 1011, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ + 960, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */ + 1722, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ + 18, /* GL_ACTIVE_STENCIL_FACE_EXT */ + 1084, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ + 1581, /* GL_SAMPLES_PASSED */ + 1285, /* GL_POINT_SIZE_ARRAY_TYPE_OES */ + 1284, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */ + 1283, /* GL_POINT_SIZE_ARRAY_POINTER_OES */ + 1121, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */ + 1403, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */ + 1929, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */ + 132, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */ + 124, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */ + 1466, /* GL_RELEASED_APPLE */ + 2089, /* GL_VOLATILE_APPLE */ + 1505, /* GL_RETAINED_APPLE */ + 1991, /* GL_UNDEFINED_APPLE */ + 1424, /* GL_PURGEABLE_APPLE */ + 571, /* GL_FRAGMENT_SHADER */ + 2084, /* GL_VERTEX_SHADER */ + 1389, /* GL_PROGRAM_OBJECT_ARB */ + 1616, /* GL_SHADER_OBJECT_ARB */ + 986, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ + 1062, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ + 1055, /* GL_MAX_VARYING_FLOATS */ + 1060, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ + 970, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ + 1181, /* GL_OBJECT_TYPE_ARB */ + 1618, /* GL_SHADER_TYPE */ + 536, /* GL_FLOAT_VEC2 */ + 538, /* GL_FLOAT_VEC3 */ + 540, /* GL_FLOAT_VEC4 */ + 735, /* GL_INT_VEC2 */ + 737, /* GL_INT_VEC3 */ + 739, /* GL_INT_VEC4 */ + 113, /* GL_BOOL */ + 115, /* GL_BOOL_VEC2 */ + 117, /* GL_BOOL_VEC3 */ + 119, /* GL_BOOL_VEC4 */ + 524, /* GL_FLOAT_MAT2 */ + 528, /* GL_FLOAT_MAT3 */ + 532, /* GL_FLOAT_MAT4 */ + 1571, /* GL_SAMPLER_1D */ + 1573, /* GL_SAMPLER_2D */ + 1575, /* GL_SAMPLER_3D */ + 1577, /* GL_SAMPLER_CUBE */ + 1572, /* GL_SAMPLER_1D_SHADOW */ + 1574, /* GL_SAMPLER_2D_SHADOW */ + 526, /* GL_FLOAT_MAT2x3 */ + 527, /* GL_FLOAT_MAT2x4 */ + 530, /* GL_FLOAT_MAT3x2 */ + 531, /* GL_FLOAT_MAT3x4 */ + 534, /* GL_FLOAT_MAT4x2 */ + 535, /* GL_FLOAT_MAT4x3 */ + 371, /* GL_DELETE_STATUS */ + 270, /* GL_COMPILE_STATUS */ + 794, /* GL_LINK_STATUS */ + 2032, /* GL_VALIDATE_STATUS */ + 712, /* GL_INFO_LOG_LENGTH */ + 64, /* GL_ATTACHED_SHADERS */ + 21, /* GL_ACTIVE_UNIFORMS */ + 22, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */ + 1617, /* GL_SHADER_SOURCE_LENGTH */ 15, /* GL_ACTIVE_ATTRIBUTES */ 16, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */ - 562, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */ - 1570, /* GL_SHADING_LANGUAGE_VERSION */ - 337, /* GL_CURRENT_PROGRAM */ - 1198, /* GL_PALETTE4_RGB8_OES */ - 1200, /* GL_PALETTE4_RGBA8_OES */ - 1196, /* GL_PALETTE4_R5_G6_B5_OES */ - 1199, /* GL_PALETTE4_RGBA4_OES */ - 1197, /* GL_PALETTE4_RGB5_A1_OES */ - 1203, /* GL_PALETTE8_RGB8_OES */ - 1205, /* GL_PALETTE8_RGBA8_OES */ - 1201, /* GL_PALETTE8_R5_G6_B5_OES */ - 1204, /* GL_PALETTE8_RGBA4_OES */ - 1202, /* GL_PALETTE8_RGB5_A1_OES */ - 682, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */ - 680, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */ - 1250, /* GL_POINT_SIZE_ARRAY_OES */ - 1823, /* GL_TEXTURE_CROP_RECT_OES */ - 912, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */ - 1249, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */ - 1965, /* GL_UNSIGNED_NORMALIZED */ - 1769, /* GL_TEXTURE_1D_ARRAY_EXT */ - 1379, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ - 1771, /* GL_TEXTURE_2D_ARRAY_EXT */ - 1382, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */ - 1778, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */ - 1780, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */ - 958, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB */ - 1623, /* GL_SRGB */ - 1624, /* GL_SRGB8 */ - 1626, /* GL_SRGB_ALPHA */ - 1625, /* GL_SRGB8_ALPHA8 */ - 1583, /* GL_SLUMINANCE_ALPHA */ - 1582, /* GL_SLUMINANCE8_ALPHA8 */ - 1580, /* GL_SLUMINANCE */ - 1581, /* GL_SLUMINANCE8 */ - 280, /* GL_COMPRESSED_SRGB */ - 281, /* GL_COMPRESSED_SRGB_ALPHA */ - 278, /* GL_COMPRESSED_SLUMINANCE */ - 279, /* GL_COMPRESSED_SLUMINANCE_ALPHA */ - 1923, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */ - 1917, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */ - 1021, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */ - 1922, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */ - 1920, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */ - 1919, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */ - 1332, /* GL_PRIMITIVES_GENERATED_EXT */ - 1921, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */ - 1410, /* GL_RASTERIZER_DISCARD_EXT */ - 1019, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */ - 1020, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */ - 712, /* GL_INTERLEAVED_ATTRIBS_EXT */ - 1560, /* GL_SEPARATE_ATTRIBS_EXT */ - 1916, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */ - 1915, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */ - 1268, /* GL_POINT_SPRITE_COORD_ORIGIN */ - 784, /* GL_LOWER_LEFT */ - 1979, /* GL_UPPER_LEFT */ - 1647, /* GL_STENCIL_BACK_REF */ - 1648, /* GL_STENCIL_BACK_VALUE_MASK */ - 1649, /* GL_STENCIL_BACK_WRITEMASK */ - 465, /* GL_DRAW_FRAMEBUFFER_BINDING */ - 1436, /* GL_RENDERBUFFER_BINDING */ - 1413, /* GL_READ_FRAMEBUFFER */ - 464, /* GL_DRAW_FRAMEBUFFER */ - 1414, /* GL_READ_FRAMEBUFFER_BINDING */ - 1455, /* GL_RENDERBUFFER_SAMPLES */ - 575, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ - 572, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ - 587, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ - 582, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ - 585, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ - 593, /* GL_FRAMEBUFFER_COMPLETE */ - 598, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ - 612, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ - 607, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */ - 602, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */ - 608, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */ - 604, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ - 617, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ - 623, /* GL_FRAMEBUFFER_UNSUPPORTED */ - 621, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */ - 934, /* GL_MAX_COLOR_ATTACHMENTS */ - 167, /* GL_COLOR_ATTACHMENT0 */ - 170, /* GL_COLOR_ATTACHMENT1 */ - 184, /* GL_COLOR_ATTACHMENT2 */ - 186, /* GL_COLOR_ATTACHMENT3 */ - 188, /* GL_COLOR_ATTACHMENT4 */ - 190, /* GL_COLOR_ATTACHMENT5 */ - 192, /* GL_COLOR_ATTACHMENT6 */ - 194, /* GL_COLOR_ATTACHMENT7 */ - 196, /* GL_COLOR_ATTACHMENT8 */ - 198, /* GL_COLOR_ATTACHMENT9 */ - 171, /* GL_COLOR_ATTACHMENT10 */ - 173, /* GL_COLOR_ATTACHMENT11 */ - 175, /* GL_COLOR_ATTACHMENT12 */ - 177, /* GL_COLOR_ATTACHMENT13 */ - 179, /* GL_COLOR_ATTACHMENT14 */ - 181, /* GL_COLOR_ATTACHMENT15 */ - 365, /* GL_DEPTH_ATTACHMENT */ - 1636, /* GL_STENCIL_ATTACHMENT */ - 564, /* GL_FRAMEBUFFER */ - 1433, /* GL_RENDERBUFFER */ - 1459, /* GL_RENDERBUFFER_WIDTH */ - 1446, /* GL_RENDERBUFFER_HEIGHT */ - 1449, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ - 1667, /* GL_STENCIL_INDEX_EXT */ - 1656, /* GL_STENCIL_INDEX1 */ - 1661, /* GL_STENCIL_INDEX4 */ - 1664, /* GL_STENCIL_INDEX8 */ - 1657, /* GL_STENCIL_INDEX16 */ - 1453, /* GL_RENDERBUFFER_RED_SIZE */ - 1444, /* GL_RENDERBUFFER_GREEN_SIZE */ - 1439, /* GL_RENDERBUFFER_BLUE_SIZE */ - 1434, /* GL_RENDERBUFFER_ALPHA_SIZE */ - 1441, /* GL_RENDERBUFFER_DEPTH_SIZE */ - 1457, /* GL_RENDERBUFFER_STENCIL_SIZE */ - 615, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ - 1001, /* GL_MAX_SAMPLES */ - 1859, /* GL_TEXTURE_GEN_STR_OES */ - 655, /* GL_HALF_FLOAT_OES */ - 1487, /* GL_RGB565_OES */ - 571, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB */ - 611, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB */ - 610, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */ - 646, /* GL_GEOMETRY_SHADER_ARB */ - 647, /* GL_GEOMETRY_VERTICES_OUT_ARB */ - 644, /* GL_GEOMETRY_INPUT_TYPE_ARB */ - 645, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */ - 961, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */ - 1035, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */ - 960, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB */ - 957, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB */ - 959, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB */ - 785, /* GL_LOW_FLOAT */ - 1037, /* GL_MEDIUM_FLOAT */ - 656, /* GL_HIGH_FLOAT */ - 786, /* GL_LOW_INT */ - 1038, /* GL_MEDIUM_INT */ - 657, /* GL_HIGH_INT */ - 1956, /* GL_UNSIGNED_INT_10_10_10_2_OES */ - 716, /* GL_INT_10_10_10_2_OES */ - 1564, /* GL_SHADER_BINARY_FORMATS */ - 1134, /* GL_NUM_SHADER_BINARY_FORMATS */ - 1565, /* GL_SHADER_COMPILER */ - 1032, /* GL_MAX_VERTEX_UNIFORM_VECTORS */ - 1025, /* GL_MAX_VARYING_VECTORS */ - 956, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */ - 1407, /* GL_QUERY_WAIT_NV */ - 1402, /* GL_QUERY_NO_WAIT_NV */ - 1399, /* GL_QUERY_BY_REGION_WAIT_NV */ - 1398, /* GL_QUERY_BY_REGION_NO_WAIT_NV */ - 1912, /* GL_TRANSFORM_FEEDBACK */ - 1918, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ - 1914, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ - 1913, /* GL_TRANSFORM_FEEDBACK_BINDING */ - 1394, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ - 507, /* GL_FIRST_VERTEX_CONVENTION */ - 733, /* GL_LAST_VERTEX_CONVENTION */ - 1371, /* GL_PROVOKING_VERTEX */ - 316, /* GL_COPY_READ_BUFFER */ - 317, /* GL_COPY_WRITE_BUFFER */ - 1514, /* GL_RGBA_SNORM */ - 1510, /* GL_RGBA8_SNORM */ - 1576, /* GL_SIGNED_NORMALIZED */ - 1003, /* GL_MAX_SERVER_WAIT_TIMEOUT */ - 1148, /* GL_OBJECT_TYPE */ - 1688, /* GL_SYNC_CONDITION */ - 1693, /* GL_SYNC_STATUS */ - 1690, /* GL_SYNC_FLAGS */ - 1689, /* GL_SYNC_FENCE */ - 1692, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ - 1950, /* GL_UNSIGNALED */ - 1575, /* GL_SIGNALED */ - 46, /* GL_ALREADY_SIGNALED */ - 1907, /* GL_TIMEOUT_EXPIRED */ - 283, /* GL_CONDITION_SATISFIED */ - 2040, /* GL_WAIT_FAILED */ - 492, /* GL_EVAL_BIT */ - 1411, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ - 778, /* GL_LIST_BIT */ - 1788, /* GL_TEXTURE_BIT */ - 1546, /* GL_SCISSOR_BIT */ - 29, /* GL_ALL_ATTRIB_BITS */ - 1100, /* GL_MULTISAMPLE_BIT */ - 30, /* GL_ALL_CLIENT_ATTRIB_BITS */ + 573, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */ + 1620, /* GL_SHADING_LANGUAGE_VERSION */ + 348, /* GL_CURRENT_PROGRAM */ + 1230, /* GL_PALETTE4_RGB8_OES */ + 1232, /* GL_PALETTE4_RGBA8_OES */ + 1228, /* GL_PALETTE4_R5_G6_B5_OES */ + 1231, /* GL_PALETTE4_RGBA4_OES */ + 1229, /* GL_PALETTE4_RGB5_A1_OES */ + 1235, /* GL_PALETTE8_RGB8_OES */ + 1237, /* GL_PALETTE8_RGBA8_OES */ + 1233, /* GL_PALETTE8_R5_G6_B5_OES */ + 1236, /* GL_PALETTE8_RGBA4_OES */ + 1234, /* GL_PALETTE8_RGB5_A1_OES */ + 694, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */ + 692, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */ + 1282, /* GL_POINT_SIZE_ARRAY_OES */ + 1873, /* GL_TEXTURE_CROP_RECT_OES */ + 944, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */ + 1281, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */ + 2015, /* GL_UNSIGNED_NORMALIZED */ + 1819, /* GL_TEXTURE_1D_ARRAY_EXT */ + 1413, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ + 1821, /* GL_TEXTURE_2D_ARRAY_EXT */ + 1416, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */ + 1828, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */ + 1830, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */ + 990, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB */ + 1673, /* GL_SRGB */ + 1674, /* GL_SRGB8 */ + 1676, /* GL_SRGB_ALPHA */ + 1675, /* GL_SRGB8_ALPHA8 */ + 1633, /* GL_SLUMINANCE_ALPHA */ + 1632, /* GL_SLUMINANCE8_ALPHA8 */ + 1630, /* GL_SLUMINANCE */ + 1631, /* GL_SLUMINANCE8 */ + 291, /* GL_COMPRESSED_SRGB */ + 292, /* GL_COMPRESSED_SRGB_ALPHA */ + 289, /* GL_COMPRESSED_SLUMINANCE */ + 290, /* GL_COMPRESSED_SLUMINANCE_ALPHA */ + 1973, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */ + 1967, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */ + 1053, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */ + 1972, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */ + 1970, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */ + 1969, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */ + 1364, /* GL_PRIMITIVES_GENERATED_EXT */ + 1971, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */ + 1444, /* GL_RASTERIZER_DISCARD_EXT */ + 1051, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */ + 1052, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */ + 730, /* GL_INTERLEAVED_ATTRIBS_EXT */ + 1610, /* GL_SEPARATE_ATTRIBS_EXT */ + 1966, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */ + 1965, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */ + 1300, /* GL_POINT_SPRITE_COORD_ORIGIN */ + 802, /* GL_LOWER_LEFT */ + 2029, /* GL_UPPER_LEFT */ + 1697, /* GL_STENCIL_BACK_REF */ + 1698, /* GL_STENCIL_BACK_VALUE_MASK */ + 1699, /* GL_STENCIL_BACK_WRITEMASK */ + 476, /* GL_DRAW_FRAMEBUFFER_BINDING */ + 1471, /* GL_RENDERBUFFER_BINDING */ + 1447, /* GL_READ_FRAMEBUFFER */ + 475, /* GL_DRAW_FRAMEBUFFER */ + 1448, /* GL_READ_FRAMEBUFFER_BINDING */ + 1490, /* GL_RENDERBUFFER_SAMPLES */ + 586, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ + 583, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ + 598, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ + 593, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ + 596, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ + 604, /* GL_FRAMEBUFFER_COMPLETE */ + 609, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ + 623, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ + 618, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */ + 613, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */ + 619, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */ + 615, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ + 628, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ + 634, /* GL_FRAMEBUFFER_UNSUPPORTED */ + 632, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */ + 966, /* GL_MAX_COLOR_ATTACHMENTS */ + 178, /* GL_COLOR_ATTACHMENT0 */ + 181, /* GL_COLOR_ATTACHMENT1 */ + 195, /* GL_COLOR_ATTACHMENT2 */ + 197, /* GL_COLOR_ATTACHMENT3 */ + 199, /* GL_COLOR_ATTACHMENT4 */ + 201, /* GL_COLOR_ATTACHMENT5 */ + 203, /* GL_COLOR_ATTACHMENT6 */ + 205, /* GL_COLOR_ATTACHMENT7 */ + 207, /* GL_COLOR_ATTACHMENT8 */ + 209, /* GL_COLOR_ATTACHMENT9 */ + 182, /* GL_COLOR_ATTACHMENT10 */ + 184, /* GL_COLOR_ATTACHMENT11 */ + 186, /* GL_COLOR_ATTACHMENT12 */ + 188, /* GL_COLOR_ATTACHMENT13 */ + 190, /* GL_COLOR_ATTACHMENT14 */ + 192, /* GL_COLOR_ATTACHMENT15 */ + 376, /* GL_DEPTH_ATTACHMENT */ + 1686, /* GL_STENCIL_ATTACHMENT */ + 575, /* GL_FRAMEBUFFER */ + 1468, /* GL_RENDERBUFFER */ + 1494, /* GL_RENDERBUFFER_WIDTH */ + 1481, /* GL_RENDERBUFFER_HEIGHT */ + 1484, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ + 1717, /* GL_STENCIL_INDEX_EXT */ + 1706, /* GL_STENCIL_INDEX1 */ + 1711, /* GL_STENCIL_INDEX4 */ + 1714, /* GL_STENCIL_INDEX8 */ + 1707, /* GL_STENCIL_INDEX16 */ + 1488, /* GL_RENDERBUFFER_RED_SIZE */ + 1479, /* GL_RENDERBUFFER_GREEN_SIZE */ + 1474, /* GL_RENDERBUFFER_BLUE_SIZE */ + 1469, /* GL_RENDERBUFFER_ALPHA_SIZE */ + 1476, /* GL_RENDERBUFFER_DEPTH_SIZE */ + 1492, /* GL_RENDERBUFFER_STENCIL_SIZE */ + 626, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ + 1033, /* GL_MAX_SAMPLES */ + 1909, /* GL_TEXTURE_GEN_STR_OES */ + 667, /* GL_HALF_FLOAT_OES */ + 1526, /* GL_RGB565_OES */ + 1546, /* GL_RGBA32UI_EXT */ + 1520, /* GL_RGB32UI_EXT */ + 40, /* GL_ALPHA32UI_EXT */ + 722, /* GL_INTENSITY32UI_EXT */ + 819, /* GL_LUMINANCE32UI_EXT */ + 836, /* GL_LUMINANCE_ALPHA32UI_EXT */ + 1541, /* GL_RGBA16UI_EXT */ + 1516, /* GL_RGB16UI_EXT */ + 37, /* GL_ALPHA16UI_EXT */ + 719, /* GL_INTENSITY16UI_EXT */ + 814, /* GL_LUMINANCE16UI_EXT */ + 834, /* GL_LUMINANCE_ALPHA16UI_EXT */ + 1554, /* GL_RGBA8UI_EXT */ + 1533, /* GL_RGB8UI_EXT */ + 45, /* GL_ALPHA8UI_EXT */ + 727, /* GL_INTENSITY8UI_EXT */ + 828, /* GL_LUMINANCE8UI_EXT */ + 838, /* GL_LUMINANCE_ALPHA8UI_EXT */ + 1545, /* GL_RGBA32I_EXT */ + 1519, /* GL_RGB32I_EXT */ + 39, /* GL_ALPHA32I_EXT */ + 721, /* GL_INTENSITY32I_EXT */ + 818, /* GL_LUMINANCE32I_EXT */ + 835, /* GL_LUMINANCE_ALPHA32I_EXT */ + 1540, /* GL_RGBA16I_EXT */ + 1515, /* GL_RGB16I_EXT */ + 36, /* GL_ALPHA16I_EXT */ + 718, /* GL_INTENSITY16I_EXT */ + 813, /* GL_LUMINANCE16I_EXT */ + 833, /* GL_LUMINANCE_ALPHA16I_EXT */ + 1553, /* GL_RGBA8I_EXT */ + 1532, /* GL_RGB8I_EXT */ + 44, /* GL_ALPHA8I_EXT */ + 726, /* GL_INTENSITY8I_EXT */ + 827, /* GL_LUMINANCE8I_EXT */ + 837, /* GL_LUMINANCE_ALPHA8I_EXT */ + 1460, /* GL_RED_INTEGER_EXT */ + 664, /* GL_GREEN_INTEGER_EXT */ + 111, /* GL_BLUE_INTEGER_EXT */ + 49, /* GL_ALPHA_INTEGER_EXT */ + 1564, /* GL_RGB_INTEGER_EXT */ + 1559, /* GL_RGBA_INTEGER_EXT */ + 83, /* GL_BGR_INTEGER_EXT */ + 82, /* GL_BGRA_INTEGER_EXT */ + 840, /* GL_LUMINANCE_INTEGER_EXT */ + 839, /* GL_LUMINANCE_ALPHA_INTEGER_EXT */ + 1560, /* GL_RGBA_INTEGER_MODE_EXT */ + 582, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB */ + 622, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB */ + 621, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */ + 657, /* GL_GEOMETRY_SHADER_ARB */ + 658, /* GL_GEOMETRY_VERTICES_OUT_ARB */ + 655, /* GL_GEOMETRY_INPUT_TYPE_ARB */ + 656, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */ + 993, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */ + 1067, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */ + 992, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB */ + 989, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB */ + 991, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB */ + 803, /* GL_LOW_FLOAT */ + 1069, /* GL_MEDIUM_FLOAT */ + 668, /* GL_HIGH_FLOAT */ + 804, /* GL_LOW_INT */ + 1070, /* GL_MEDIUM_INT */ + 669, /* GL_HIGH_INT */ + 2006, /* GL_UNSIGNED_INT_10_10_10_2_OES */ + 734, /* GL_INT_10_10_10_2_OES */ + 1614, /* GL_SHADER_BINARY_FORMATS */ + 1166, /* GL_NUM_SHADER_BINARY_FORMATS */ + 1615, /* GL_SHADER_COMPILER */ + 1064, /* GL_MAX_VERTEX_UNIFORM_VECTORS */ + 1057, /* GL_MAX_VARYING_VECTORS */ + 988, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */ + 1441, /* GL_QUERY_WAIT_NV */ + 1436, /* GL_QUERY_NO_WAIT_NV */ + 1433, /* GL_QUERY_BY_REGION_WAIT_NV */ + 1432, /* GL_QUERY_BY_REGION_NO_WAIT_NV */ + 1962, /* GL_TRANSFORM_FEEDBACK */ + 1968, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ + 1964, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ + 1963, /* GL_TRANSFORM_FEEDBACK_BINDING */ + 1428, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ + 518, /* GL_FIRST_VERTEX_CONVENTION */ + 751, /* GL_LAST_VERTEX_CONVENTION */ + 1405, /* GL_PROVOKING_VERTEX */ + 327, /* GL_COPY_READ_BUFFER */ + 328, /* GL_COPY_WRITE_BUFFER */ + 1563, /* GL_RGBA_SNORM */ + 1557, /* GL_RGBA8_SNORM */ + 1626, /* GL_SIGNED_NORMALIZED */ + 1035, /* GL_MAX_SERVER_WAIT_TIMEOUT */ + 1180, /* GL_OBJECT_TYPE */ + 1738, /* GL_SYNC_CONDITION */ + 1743, /* GL_SYNC_STATUS */ + 1740, /* GL_SYNC_FLAGS */ + 1739, /* GL_SYNC_FENCE */ + 1742, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ + 2000, /* GL_UNSIGNALED */ + 1625, /* GL_SIGNALED */ + 54, /* GL_ALREADY_SIGNALED */ + 1957, /* GL_TIMEOUT_EXPIRED */ + 294, /* GL_CONDITION_SATISFIED */ + 2090, /* GL_WAIT_FAILED */ + 503, /* GL_EVAL_BIT */ + 1445, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ + 796, /* GL_LIST_BIT */ + 1838, /* GL_TEXTURE_BIT */ + 1596, /* GL_SCISSOR_BIT */ + 30, /* GL_ALL_ATTRIB_BITS */ + 1132, /* GL_MULTISAMPLE_BIT */ + 31, /* GL_ALL_CLIENT_ATTRIB_BITS */ }; typedef int (*cfunc)(const void *, const void *); diff --git a/src/mesa/main/eval.c b/src/mesa/main/eval.c index bd2e1177fd2..c607e6a26af 100644 --- a/src/mesa/main/eval.c +++ b/src/mesa/main/eval.c @@ -100,7 +100,7 @@ GLuint _mesa_evaluator_components( GLenum target ) * Return pointer to the gl_1d_map struct for the named target. */ static struct gl_1d_map * -get_1d_map( GLcontext *ctx, GLenum target ) +get_1d_map( struct gl_context *ctx, GLenum target ) { switch (target) { case GL_MAP1_VERTEX_3: @@ -150,7 +150,7 @@ get_1d_map( GLcontext *ctx, GLenum target ) * Return pointer to the gl_2d_map struct for the named target. */ static struct gl_2d_map * -get_2d_map( GLcontext *ctx, GLenum target ) +get_2d_map( struct gl_context *ctx, GLenum target ) { switch (target) { case GL_MAP2_VERTEX_3: @@ -880,7 +880,7 @@ init_2d_map( struct gl_2d_map *map, int n, const float *initial ) } -void _mesa_init_eval( GLcontext *ctx ) +void _mesa_init_eval( struct gl_context *ctx ) { int i; @@ -952,7 +952,7 @@ void _mesa_init_eval( GLcontext *ctx ) } -void _mesa_free_eval_data( GLcontext *ctx ) +void _mesa_free_eval_data( struct gl_context *ctx ) { int i; diff --git a/src/mesa/main/eval.h b/src/mesa/main/eval.h index ffd1bab76da..bd908f00cdd 100644 --- a/src/mesa/main/eval.h +++ b/src/mesa/main/eval.h @@ -57,7 +57,7 @@ extern GLuint _mesa_evaluator_components( GLenum target ); -extern void gl_free_control_points( GLcontext *ctx, +extern void gl_free_control_points( struct gl_context *ctx, GLenum target, GLfloat *data ); @@ -103,8 +103,8 @@ _mesa_init_eval_dispatch(struct _glapi_table *disp) #endif /* FEATURE_evaluators */ -extern void _mesa_init_eval( GLcontext *ctx ); -extern void _mesa_free_eval_data( GLcontext *ctx ); +extern void _mesa_init_eval( struct gl_context *ctx ); +extern void _mesa_free_eval_data( struct gl_context *ctx ); #endif /* EVAL_H */ diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 9df0ae4598a..caa5dad950a 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -75,6 +75,7 @@ static const struct { { 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) }, @@ -138,6 +139,7 @@ static const struct { { 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) }, @@ -227,7 +229,7 @@ static const struct { * This is a convenience function used by the XMesa, OSMesa, GGI drivers, etc. */ void -_mesa_enable_sw_extensions(GLcontext *ctx) +_mesa_enable_sw_extensions(struct gl_context *ctx) { /*ctx->Extensions.ARB_copy_buffer = GL_TRUE;*/ ctx->Extensions.ARB_depth_clamp = GL_TRUE; @@ -259,6 +261,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx) ctx->Extensions.ARB_point_sprite = GL_TRUE; #if FEATURE_ARB_shader_objects ctx->Extensions.ARB_shader_objects = GL_TRUE; + ctx->Extensions.EXT_separate_shader_objects = GL_TRUE; #endif #if FEATURE_ARB_shading_language_100 ctx->Extensions.ARB_shading_language_100 = GL_TRUE; @@ -387,7 +390,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx) * Enable common EXT extensions in the ARB_imaging subset. */ void -_mesa_enable_imaging_extensions(GLcontext *ctx) +_mesa_enable_imaging_extensions(struct gl_context *ctx) { ctx->Extensions.EXT_blend_color = GL_TRUE; ctx->Extensions.EXT_blend_logic_op = GL_TRUE; @@ -402,7 +405,7 @@ _mesa_enable_imaging_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_1_3_extensions(GLcontext *ctx) +_mesa_enable_1_3_extensions(struct gl_context *ctx) { /*ctx->Extensions.ARB_multisample = GL_TRUE;*/ ctx->Extensions.ARB_multitexture = GL_TRUE; @@ -422,7 +425,7 @@ _mesa_enable_1_3_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_1_4_extensions(GLcontext *ctx) +_mesa_enable_1_4_extensions(struct gl_context *ctx) { ctx->Extensions.ARB_depth_texture = GL_TRUE; ctx->Extensions.ARB_shadow = GL_TRUE; @@ -448,7 +451,7 @@ _mesa_enable_1_4_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_1_5_extensions(GLcontext *ctx) +_mesa_enable_1_5_extensions(struct gl_context *ctx) { ctx->Extensions.ARB_occlusion_query = GL_TRUE; /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/ @@ -461,7 +464,7 @@ _mesa_enable_1_5_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_2_0_extensions(GLcontext *ctx) +_mesa_enable_2_0_extensions(struct gl_context *ctx) { /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ #if FEATURE_ARB_fragment_shader @@ -488,7 +491,7 @@ _mesa_enable_2_0_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_2_1_extensions(GLcontext *ctx) +_mesa_enable_2_1_extensions(struct gl_context *ctx) { #if FEATURE_EXT_pixel_buffer_object ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; @@ -504,7 +507,7 @@ _mesa_enable_2_1_extensions(GLcontext *ctx) * \return GL_TRUE for success, GL_FALSE if invalid extension name */ static GLboolean -set_extension( GLcontext *ctx, const char *name, GLboolean state ) +set_extension( struct gl_context *ctx, const char *name, GLboolean state ) { GLboolean *base = (GLboolean *) &ctx->Extensions; GLuint i; @@ -533,7 +536,7 @@ set_extension( GLcontext *ctx, const char *name, GLboolean state ) * Typically called by drivers. */ void -_mesa_enable_extension( GLcontext *ctx, const char *name ) +_mesa_enable_extension( struct gl_context *ctx, const char *name ) { if (!set_extension(ctx, name, GL_TRUE)) _mesa_problem(ctx, "Trying to enable unknown extension: %s", name); @@ -545,7 +548,7 @@ _mesa_enable_extension( GLcontext *ctx, const char *name ) * XXX is this really needed??? */ void -_mesa_disable_extension( GLcontext *ctx, const char *name ) +_mesa_disable_extension( struct gl_context *ctx, const char *name ) { if (!set_extension(ctx, name, GL_FALSE)) _mesa_problem(ctx, "Trying to disable unknown extension: %s", name); @@ -556,7 +559,7 @@ _mesa_disable_extension( GLcontext *ctx, const char *name ) * Check if the i-th extension is enabled. */ static GLboolean -extension_enabled(GLcontext *ctx, GLuint index) +extension_enabled(struct gl_context *ctx, GLuint index) { const GLboolean *base = (const GLboolean *) &ctx->Extensions; if (!default_extensions[index].flag_offset || @@ -573,7 +576,7 @@ extension_enabled(GLcontext *ctx, GLuint index) * Test if the named extension is enabled in this context. */ GLboolean -_mesa_extension_is_enabled( GLcontext *ctx, const char *name ) +_mesa_extension_is_enabled( struct gl_context *ctx, const char *name ) { GLuint i; @@ -615,7 +618,7 @@ append(const char *a, const char *b) * Return a string of the unknown/leftover names. */ static const char * -get_extension_override( GLcontext *ctx ) +get_extension_override( struct gl_context *ctx ) { const char *envExt = _mesa_getenv("MESA_EXTENSION_OVERRIDE"); char *extraExt = NULL; @@ -666,7 +669,7 @@ get_extension_override( GLcontext *ctx ) * To be called during context initialization. */ void -_mesa_init_extensions( GLcontext *ctx ) +_mesa_init_extensions( struct gl_context *ctx ) { GLboolean *base = (GLboolean *) &ctx->Extensions; GLuint i; @@ -685,7 +688,7 @@ _mesa_init_extensions( GLcontext *ctx ) * glGetString(GL_EXTENSIONS) is called. */ static GLubyte * -compute_extensions( GLcontext *ctx ) +compute_extensions( struct gl_context *ctx ) { const char *extraExt = get_extension_override(ctx); GLuint extStrLen = 0; @@ -752,7 +755,7 @@ append_extension(GLubyte **str, const char *ext) static size_t -make_extension_string_es1(const GLcontext *ctx, GLubyte *str) +make_extension_string_es1(const struct gl_context *ctx, GLubyte *str) { size_t len = 0; @@ -834,7 +837,7 @@ make_extension_string_es1(const GLcontext *ctx, GLubyte *str) static GLubyte * -compute_extensions_es1(const GLcontext *ctx) +compute_extensions_es1(const struct gl_context *ctx) { GLubyte *s; unsigned int len; @@ -849,7 +852,7 @@ compute_extensions_es1(const GLcontext *ctx) } static size_t -make_extension_string_es2(const GLcontext *ctx, GLubyte *str) +make_extension_string_es2(const struct gl_context *ctx, GLubyte *str) { size_t len = 0; @@ -903,7 +906,7 @@ make_extension_string_es2(const GLcontext *ctx, GLubyte *str) } static GLubyte * -compute_extensions_es2(GLcontext *ctx) +compute_extensions_es2(struct gl_context *ctx) { GLubyte *s; unsigned int len; @@ -919,7 +922,7 @@ compute_extensions_es2(GLcontext *ctx) GLubyte * -_mesa_make_extension_string(GLcontext *ctx) +_mesa_make_extension_string(struct gl_context *ctx) { switch (ctx->API) { case API_OPENGL: @@ -938,7 +941,7 @@ _mesa_make_extension_string(GLcontext *ctx) * Return number of enabled extensions. */ GLuint -_mesa_get_extension_count(GLcontext *ctx) +_mesa_get_extension_count(struct gl_context *ctx) { GLuint i; @@ -963,7 +966,7 @@ _mesa_get_extension_count(GLcontext *ctx) * Return name of i-th enabled extension */ const GLubyte * -_mesa_get_enabled_extension(GLcontext *ctx, GLuint index) +_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index) { GLuint i; diff --git a/src/mesa/main/extensions.h b/src/mesa/main/extensions.h index a25472440d6..6eb85393965 100644 --- a/src/mesa/main/extensions.h +++ b/src/mesa/main/extensions.h @@ -40,35 +40,35 @@ #if _HAVE_FULL_GL -extern void _mesa_enable_sw_extensions(GLcontext *ctx); +extern void _mesa_enable_sw_extensions(struct gl_context *ctx); -extern void _mesa_enable_imaging_extensions(GLcontext *ctx); +extern void _mesa_enable_imaging_extensions(struct gl_context *ctx); -extern void _mesa_enable_1_3_extensions(GLcontext *ctx); +extern void _mesa_enable_1_3_extensions(struct gl_context *ctx); -extern void _mesa_enable_1_4_extensions(GLcontext *ctx); +extern void _mesa_enable_1_4_extensions(struct gl_context *ctx); -extern void _mesa_enable_1_5_extensions(GLcontext *ctx); +extern void _mesa_enable_1_5_extensions(struct gl_context *ctx); -extern void _mesa_enable_2_0_extensions(GLcontext *ctx); +extern void _mesa_enable_2_0_extensions(struct gl_context *ctx); -extern void _mesa_enable_2_1_extensions(GLcontext *ctx); +extern void _mesa_enable_2_1_extensions(struct gl_context *ctx); -extern void _mesa_enable_extension(GLcontext *ctx, const char *name); +extern void _mesa_enable_extension(struct gl_context *ctx, const char *name); -extern void _mesa_disable_extension(GLcontext *ctx, const char *name); +extern void _mesa_disable_extension(struct gl_context *ctx, const char *name); -extern GLboolean _mesa_extension_is_enabled(GLcontext *ctx, const char *name); +extern GLboolean _mesa_extension_is_enabled(struct gl_context *ctx, const char *name); -extern void _mesa_init_extensions(GLcontext *ctx); +extern void _mesa_init_extensions(struct gl_context *ctx); -extern GLubyte *_mesa_make_extension_string(GLcontext *ctx); +extern GLubyte *_mesa_make_extension_string(struct gl_context *ctx); extern GLuint -_mesa_get_extension_count(GLcontext *ctx); +_mesa_get_extension_count(struct gl_context *ctx); extern const GLubyte * -_mesa_get_enabled_extension(GLcontext *ctx, GLuint index); +_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index); #else diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index f28846c4c99..7c3357043fa 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -95,7 +95,7 @@ delete_dummy_framebuffer(struct gl_framebuffer *fb) void -_mesa_init_fbobjects(GLcontext *ctx) +_mesa_init_fbobjects(struct gl_context *ctx) { _glthread_INIT_MUTEX(DummyFramebuffer.Mutex); _glthread_INIT_MUTEX(DummyRenderbuffer.Mutex); @@ -115,7 +115,7 @@ _mesa_get_incomplete_framebuffer(void) * Helper routine for getting a gl_renderbuffer. */ struct gl_renderbuffer * -_mesa_lookup_renderbuffer(GLcontext *ctx, GLuint id) +_mesa_lookup_renderbuffer(struct gl_context *ctx, GLuint id) { struct gl_renderbuffer *rb; @@ -132,7 +132,7 @@ _mesa_lookup_renderbuffer(GLcontext *ctx, GLuint id) * Helper routine for getting a gl_framebuffer. */ struct gl_framebuffer * -_mesa_lookup_framebuffer(GLcontext *ctx, GLuint id) +_mesa_lookup_framebuffer(struct gl_context *ctx, GLuint id) { struct gl_framebuffer *fb; @@ -166,7 +166,7 @@ invalidate_framebuffer(struct gl_framebuffer *fb) * the depth buffer attachment point. */ struct gl_renderbuffer_attachment * -_mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_get_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment) { GLuint i; @@ -216,7 +216,7 @@ _mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb, * window-system framebuffer (not user-created framebuffer objects). */ static struct gl_renderbuffer_attachment * -_mesa_get_fb0_attachment(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_get_fb0_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment) { assert(fb->Name == 0); @@ -255,7 +255,8 @@ _mesa_get_fb0_attachment(GLcontext *ctx, struct gl_framebuffer *fb, * point. Update reference counts, etc. */ void -_mesa_remove_attachment(GLcontext *ctx, struct gl_renderbuffer_attachment *att) +_mesa_remove_attachment(struct gl_context *ctx, + struct gl_renderbuffer_attachment *att) { if (att->Type == GL_TEXTURE) { ASSERT(att->Texture); @@ -281,7 +282,7 @@ _mesa_remove_attachment(GLcontext *ctx, struct gl_renderbuffer_attachment *att) * The previous binding, if any, will be removed first. */ void -_mesa_set_texture_attachment(GLcontext *ctx, +_mesa_set_texture_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att, struct gl_texture_object *texObj, @@ -322,7 +323,7 @@ _mesa_set_texture_attachment(GLcontext *ctx, * The previous binding, if any, will be removed first. */ void -_mesa_set_renderbuffer_attachment(GLcontext *ctx, +_mesa_set_renderbuffer_attachment(struct gl_context *ctx, struct gl_renderbuffer_attachment *att, struct gl_renderbuffer *rb) { @@ -340,7 +341,8 @@ _mesa_set_renderbuffer_attachment(GLcontext *ctx, * Attach a renderbuffer object to a framebuffer object. */ void -_mesa_framebuffer_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_framebuffer_renderbuffer(struct gl_context *ctx, + struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb) { struct gl_renderbuffer_attachment *att; @@ -397,6 +399,44 @@ 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) +{ + switch (baseFormat) { + case GL_RGB: + case GL_RGBA: + return GL_TRUE; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + case GL_INTENSITY: + case GL_ALPHA: + return ctx->Extensions.ARB_framebuffer_object; + case GL_RED: + case GL_RG: + return ctx->Extensions.ARB_texture_rg; + default: + return GL_FALSE; + } +} + + +/** + * Is the given base format a legal format for a depth/stencil renderbuffer? + */ +static GLboolean +is_legal_depth_format(const struct gl_context *ctx, GLenum baseFormat) +{ + switch (baseFormat) { + case GL_DEPTH_COMPONENT: + case GL_DEPTH_STENCIL_EXT: + return GL_TRUE; + default: + return GL_FALSE; + } +} /** @@ -406,7 +446,7 @@ fbo_incomplete(const char *msg, int index) * if GL_STENCIL, this is a stencil component attachment point. */ static void -test_attachment_completeness(const GLcontext *ctx, GLenum format, +test_attachment_completeness(const struct gl_context *ctx, GLenum format, struct gl_renderbuffer_attachment *att) { assert(format == GL_COLOR || format == GL_DEPTH || format == GL_STENCIL); @@ -448,14 +488,7 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format, baseFormat = _mesa_get_format_base_format(texImage->TexFormat); if (format == GL_COLOR) { - if (baseFormat != GL_RGB && - baseFormat != GL_RGBA && - (!ctx->Extensions.ARB_framebuffer_object || - baseFormat != GL_ALPHA) && - (!ctx->Extensions.ARB_texture_rg || - baseFormat != GL_RED) && - (!ctx->Extensions.ARB_texture_rg || - baseFormat != GL_RG)) { + if (!is_legal_color_format(ctx, baseFormat)) { att_incomplete("bad format"); att->Complete = GL_FALSE; return; @@ -563,7 +596,8 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format, * framebuffer is complete. */ void -_mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb) +_mesa_test_framebuffer_completeness(struct gl_context *ctx, + struct gl_framebuffer *fb) { GLuint numImages; GLenum intFormat = GL_NONE; /* color buffers' internal format */ @@ -586,6 +620,7 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb) for (i = -2; i < (GLint) ctx->Const.MaxColorAttachments; i++) { struct gl_renderbuffer_attachment *att; GLenum f; + gl_format mesaFormat; /* * XXX for ARB_fbo, only check color buffers that are named by @@ -632,12 +667,10 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb) minHeight = MIN2(minHeight, texImg->Height); maxHeight = MAX2(maxHeight, texImg->Height); f = texImg->_BaseFormat; + mesaFormat = texImg->TexFormat; numImages++; - if (f != GL_RGB && f != GL_RGBA && f != GL_DEPTH_COMPONENT - && f != GL_DEPTH_STENCIL_EXT - && (!ctx->Extensions.ARB_framebuffer_object || f != GL_ALPHA) - && (!ctx->Extensions.ARB_texture_rg || f != GL_RED) - && (!ctx->Extensions.ARB_texture_rg || f != GL_RG)) { + if (!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); return; @@ -649,6 +682,7 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb) minHeight = MIN2(minHeight, att->Renderbuffer->Height); maxHeight = MAX2(minHeight, att->Renderbuffer->Height); f = att->Renderbuffer->InternalFormat; + mesaFormat = att->Renderbuffer->Format; numImages++; } else { @@ -661,6 +695,9 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb) numSamples = att->Renderbuffer->NumSamples; } + /* check if integer color */ + fb->_IntegerColor = _mesa_is_format_integer_color(mesaFormat); + /* Error-check width, height, format, samples */ if (numImages == 1) { @@ -833,7 +870,7 @@ _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer) * The spec calls for unbinding. */ static void -detach_renderbuffer(GLcontext *ctx, +detach_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer *rb) { @@ -934,7 +971,7 @@ _mesa_GenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers) * we'll also return GL_RED and GL_RG. */ GLenum -_mesa_base_fbo_format(GLcontext *ctx, GLenum internalFormat) +_mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat) { switch (internalFormat) { case GL_ALPHA: @@ -1287,7 +1324,7 @@ _mesa_IsFramebufferEXT(GLuint framebuffer) * attachments. */ static void -check_begin_texture_render(GLcontext *ctx, struct gl_framebuffer *fb) +check_begin_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint i; ASSERT(ctx->Driver.RenderTexture); @@ -1312,7 +1349,7 @@ check_begin_texture_render(GLcontext *ctx, struct gl_framebuffer *fb) * notify the device driver that the texture image may have changed. */ static void -check_end_texture_render(GLcontext *ctx, struct gl_framebuffer *fb) +check_end_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb) { if (fb->Name == 0) return; /* can't render to texture with winsys framebuffers */ @@ -1606,7 +1643,7 @@ _mesa_CheckFramebufferStatusEXT(GLenum target) * Common code called by glFramebufferTexture1D/2D/3DEXT(). */ static void -framebuffer_texture(GLcontext *ctx, const char *caller, GLenum target, +framebuffer_texture(struct gl_context *ctx, const char *caller, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) { diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h index 9850ee9aa23..9e18e538a6f 100644 --- a/src/mesa/main/fbobject.h +++ b/src/mesa/main/fbobject.h @@ -29,47 +29,47 @@ #include "mtypes.h" extern void -_mesa_init_fbobjects(GLcontext *ctx); +_mesa_init_fbobjects(struct gl_context *ctx); extern struct gl_framebuffer * _mesa_get_incomplete_framebuffer(void); extern struct gl_renderbuffer * -_mesa_lookup_renderbuffer(GLcontext *ctx, GLuint id); +_mesa_lookup_renderbuffer(struct gl_context *ctx, GLuint id); extern struct gl_framebuffer * -_mesa_lookup_framebuffer(GLcontext *ctx, GLuint id); +_mesa_lookup_framebuffer(struct gl_context *ctx, GLuint id); extern struct gl_renderbuffer_attachment * -_mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_get_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment); extern void -_mesa_remove_attachment(GLcontext *ctx, +_mesa_remove_attachment(struct gl_context *ctx, struct gl_renderbuffer_attachment *att); extern void -_mesa_set_texture_attachment(GLcontext *ctx, +_mesa_set_texture_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att, struct gl_texture_object *texObj, GLenum texTarget, GLuint level, GLuint zoffset); extern void -_mesa_set_renderbuffer_attachment(GLcontext *ctx, +_mesa_set_renderbuffer_attachment(struct gl_context *ctx, struct gl_renderbuffer_attachment *att, struct gl_renderbuffer *rb); extern void -_mesa_framebuffer_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb); extern void -_mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb); +_mesa_test_framebuffer_completeness(struct gl_context *ctx, struct gl_framebuffer *fb); extern GLenum -_mesa_base_fbo_format(GLcontext *ctx, GLenum internalFormat); +_mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat); extern GLboolean GLAPIENTRY _mesa_IsRenderbufferEXT(GLuint renderbuffer); diff --git a/src/mesa/main/feedback.c b/src/mesa/main/feedback.c index c72b91280ed..ffdecaecc29 100644 --- a/src/mesa/main/feedback.c +++ b/src/mesa/main/feedback.c @@ -116,7 +116,7 @@ _mesa_PassThrough( GLfloat token ) * Put a vertex into the feedback buffer. */ void -_mesa_feedback_vertex(GLcontext *ctx, +_mesa_feedback_vertex(struct gl_context *ctx, const GLfloat win[4], const GLfloat color[4], const GLfloat texcoord[4]) @@ -159,7 +159,7 @@ _mesa_feedback_vertex(GLcontext *ctx, * \note this function can't be put in a display list. * * Verifies we're not in selection mode, flushes the vertices and initialize - * the fields in __GLcontextRec::Select with the given buffer. + * the fields in __struct gl_contextRec::Select with the given buffer. */ static void GLAPIENTRY _mesa_SelectBuffer( GLsizei size, GLuint *buffer ) @@ -192,7 +192,7 @@ _mesa_SelectBuffer( GLsizei size, GLuint *buffer ) * increments the pointer. */ static INLINE void -write_record(GLcontext *ctx, GLuint value) +write_record(struct gl_context *ctx, GLuint value) { if (ctx->Select.BufferCount < ctx->Select.BufferSize) { ctx->Select.Buffer[ctx->Select.BufferCount] = value; @@ -211,7 +211,7 @@ write_record(GLcontext *ctx, GLuint value) * gl_selection::HitMaxZ. */ void -_mesa_update_hitflag(GLcontext *ctx, GLfloat z) +_mesa_update_hitflag(struct gl_context *ctx, GLfloat z) { ctx->Select.HitFlag = GL_TRUE; if (z < ctx->Select.HitMinZ) { @@ -235,7 +235,7 @@ _mesa_update_hitflag(GLcontext *ctx, GLfloat z) * \sa gl_selection. */ static void -write_hit_record(GLcontext *ctx) +write_hit_record(struct gl_context *ctx) { GLuint i; GLuint zmin, zmax, zscale = (~0u); @@ -266,7 +266,7 @@ write_hit_record(GLcontext *ctx) * * Verifies we are in select mode and resets the name stack depth and resets * the hit record data in gl_selection. Marks new render mode in - * __GLcontextRec::NewState. + * __struct gl_contextRec::NewState. */ static void GLAPIENTRY _mesa_InitNames( void ) @@ -297,7 +297,7 @@ _mesa_InitNames( void ) * Flushes vertices. If there is a hit flag writes it (via write_hit_record()), * and replace the top-most name in the stack. * - * sa __GLcontextRec::Select. + * sa __struct gl_contextRec::Select. */ static void GLAPIENTRY _mesa_LoadName( GLuint name ) @@ -336,7 +336,7 @@ _mesa_LoadName( GLuint name ) * Flushes vertices. If there is a hit flag writes it (via write_hit_record()), * and adds the name to the top of the name stack. * - * sa __GLcontextRec::Select. + * sa __struct gl_contextRec::Select. */ static void GLAPIENTRY _mesa_PushName( GLuint name ) @@ -367,7 +367,7 @@ _mesa_PushName( GLuint name ) * Flushes vertices. If there is a hit flag writes it (via write_hit_record()), * and removes top-most name in the name stack. * - * sa __GLcontextRec::Select. + * sa __struct gl_contextRec::Select. */ static void GLAPIENTRY _mesa_PopName( void ) @@ -409,7 +409,7 @@ _mesa_PopName( void ) * Flushes the vertices and do the necessary cleanup according to the previous * rasterization mode, such as writing the hit record or resent the select * buffer index when exiting the select mode. Updates - * __GLcontextRec::RenderMode and notifies the driver via the + * __struct gl_contextRec::RenderMode and notifies the driver via the * dd_function_table::RenderMode callback. */ static GLint GLAPIENTRY @@ -519,7 +519,7 @@ _mesa_init_feedback_dispatch(struct _glapi_table *disp) /** * Initialize context feedback data. */ -void _mesa_init_feedback( GLcontext * ctx ) +void _mesa_init_feedback( struct gl_context * ctx ) { /* Feedback */ ctx->Feedback.Type = GL_2D; /* TODO: verify */ diff --git a/src/mesa/main/feedback.h b/src/mesa/main/feedback.h index c6354b97bcd..f9fbbce70b9 100644 --- a/src/mesa/main/feedback.h +++ b/src/mesa/main/feedback.h @@ -33,14 +33,14 @@ #if FEATURE_feedback extern void -_mesa_feedback_vertex( GLcontext *ctx, +_mesa_feedback_vertex( struct gl_context *ctx, const GLfloat win[4], const GLfloat color[4], const GLfloat texcoord[4] ); static INLINE void -_mesa_feedback_token( GLcontext *ctx, GLfloat token ) +_mesa_feedback_token( struct gl_context *ctx, GLfloat token ) { if (ctx->Feedback.Count < ctx->Feedback.BufferSize) { ctx->Feedback.Buffer[ctx->Feedback.Count] = token; @@ -50,7 +50,7 @@ _mesa_feedback_token( GLcontext *ctx, GLfloat token ) extern void -_mesa_update_hitflag( GLcontext *ctx, GLfloat z ); +_mesa_update_hitflag( struct gl_context *ctx, GLfloat z ); extern void @@ -61,7 +61,7 @@ _mesa_init_feedback_dispatch(struct _glapi_table *disp); #include "main/compiler.h" static INLINE void -_mesa_feedback_vertex( GLcontext *ctx, +_mesa_feedback_vertex( struct gl_context *ctx, const GLfloat win[4], const GLfloat color[4], const GLfloat texcoord[4] ) @@ -72,14 +72,14 @@ _mesa_feedback_vertex( GLcontext *ctx, static INLINE void -_mesa_feedback_token( GLcontext *ctx, GLfloat token ) +_mesa_feedback_token( struct gl_context *ctx, GLfloat token ) { /* render mode is always GL_RENDER */ ASSERT_NO_FEATURE(); } static INLINE void -_mesa_update_hitflag( GLcontext *ctx, GLfloat z ) +_mesa_update_hitflag( struct gl_context *ctx, GLfloat z ) { /* render mode is always GL_RENDER */ ASSERT_NO_FEATURE(); @@ -93,6 +93,6 @@ _mesa_init_feedback_dispatch(struct _glapi_table *disp) #endif /* FEATURE_feedback */ extern void -_mesa_init_feedback( GLcontext *ctx ); +_mesa_init_feedback( struct gl_context *ctx ); #endif /* FEEDBACK_H */ diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c index 92fec09bad0..0f2c313c819 100644 --- a/src/mesa/main/ffvertex_prog.c +++ b/src/mesa/main/ffvertex_prog.c @@ -109,7 +109,7 @@ static GLuint translate_texgen( GLboolean enabled, GLenum mode ) -static GLboolean check_active_shininess( GLcontext *ctx, +static GLboolean check_active_shininess( struct gl_context *ctx, const struct state_key *key, GLuint side ) { @@ -129,7 +129,7 @@ static GLboolean check_active_shininess( GLcontext *ctx, } -static void make_state_key( GLcontext *ctx, struct state_key *key ) +static void make_state_key( struct gl_context *ctx, struct state_key *key ) { const struct gl_fragment_program *fp; GLuint i; @@ -1638,7 +1638,7 @@ create_new_program( const struct state_key *key, * XXX move this into core mesa (main/) */ struct gl_vertex_program * -_mesa_get_fixed_func_vertex_program(GLcontext *ctx) +_mesa_get_fixed_func_vertex_program(struct gl_context *ctx) { struct gl_vertex_program *prog; struct state_key key; diff --git a/src/mesa/main/ffvertex_prog.h b/src/mesa/main/ffvertex_prog.h index 38dc5fbb8d3..72cd6ea115d 100644 --- a/src/mesa/main/ffvertex_prog.h +++ b/src/mesa/main/ffvertex_prog.h @@ -33,7 +33,7 @@ #include "main/mtypes.h" struct gl_vertex_program * -_mesa_get_fixed_func_vertex_program(GLcontext *ctx); +_mesa_get_fixed_func_vertex_program(struct gl_context *ctx); diff --git a/src/mesa/main/fog.c b/src/mesa/main/fog.c index 9f26c012d66..fd64bd1fd89 100644 --- a/src/mesa/main/fog.c +++ b/src/mesa/main/fog.c @@ -178,7 +178,7 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params ) /***** Initialization *****/ /**********************************************************************/ -void _mesa_init_fog( GLcontext * ctx ) +void _mesa_init_fog( struct gl_context * ctx ) { /* Fog group */ ctx->Fog.Enabled = GL_FALSE; diff --git a/src/mesa/main/fog.h b/src/mesa/main/fog.h index a14d19cdb39..7df4f0b6735 100644 --- a/src/mesa/main/fog.h +++ b/src/mesa/main/fog.h @@ -54,7 +54,7 @@ _mesa_Fogfv(GLenum pname, const GLfloat *params ); extern void GLAPIENTRY _mesa_Fogiv(GLenum pname, const GLint *params ); -extern void _mesa_init_fog( GLcontext * ctx ); +extern void _mesa_init_fog( struct gl_context * ctx ); #else diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c index 654ea038a55..e18a9fc9977 100644 --- a/src/mesa/main/formats.c +++ b/src/mesa/main/formats.c @@ -945,6 +945,7 @@ _mesa_get_format_bits(gl_format format, GLenum pname) * GL_UNSIGNED_NORMALIZED = unsigned int representing [0,1] * GL_SIGNED_NORMALIZED = signed int representing [-1, 1] * GL_UNSIGNED_INT = an ordinary unsigned integer + * GL_INT = an ordinary signed integer * GL_FLOAT = an ordinary float */ GLenum @@ -1007,6 +1008,20 @@ _mesa_is_format_packed_depth_stencil(gl_format format) /** + * Is the given format a signed/unsigned integer color format? + */ +GLboolean +_mesa_is_format_integer_color(gl_format format) +{ + const struct gl_format_info *info = _mesa_get_format_info(format); + return (info->DataType == GL_INT || info->DataType == GL_UNSIGNED_INT) && + info->BaseFormat != GL_DEPTH_COMPONENT && + info->BaseFormat != GL_DEPTH_STENCIL && + info->BaseFormat != GL_STENCIL_INDEX; +} + + +/** * Return color encoding for given format. * \return GL_LINEAR or GL_SRGB */ diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h index 7674d8eaa4e..eeb460dabe7 100644 --- a/src/mesa/main/formats.h +++ b/src/mesa/main/formats.h @@ -199,6 +199,9 @@ _mesa_is_format_compressed(gl_format format); extern GLboolean _mesa_is_format_packed_depth_stencil(gl_format format); +extern GLboolean +_mesa_is_format_integer_color(gl_format format); + extern GLenum _mesa_get_format_color_encoding(gl_format format); diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c index a98c09cfbf3..5530c51c892 100644 --- a/src/mesa/main/framebuffer.c +++ b/src/mesa/main/framebuffer.c @@ -83,7 +83,7 @@ compute_depth_max(struct gl_framebuffer *fb) * \sa _mesa_new_framebuffer */ struct gl_framebuffer * -_mesa_create_framebuffer(const GLvisual *visual) +_mesa_create_framebuffer(const struct gl_config *visual) { struct gl_framebuffer *fb = CALLOC_STRUCT(gl_framebuffer); assert(visual); @@ -102,7 +102,7 @@ _mesa_create_framebuffer(const GLvisual *visual) * \sa _mesa_create_framebuffer */ struct gl_framebuffer * -_mesa_new_framebuffer(GLcontext *ctx, GLuint name) +_mesa_new_framebuffer(struct gl_context *ctx, GLuint name) { struct gl_framebuffer *fb; (void) ctx; @@ -122,7 +122,7 @@ _mesa_new_framebuffer(GLcontext *ctx, GLuint name) */ void _mesa_initialize_window_framebuffer(struct gl_framebuffer *fb, - const GLvisual *visual) + const struct gl_config *visual) { assert(fb); assert(visual); @@ -281,7 +281,7 @@ _mesa_reference_framebuffer(struct gl_framebuffer **ptr, * without a currently bound rendering context. */ void -_mesa_resize_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_resize_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height) { GLuint i; @@ -359,7 +359,7 @@ _mesa_resize_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb, * from device drivers (as was done in the past). */ void -_mesa_resizebuffers( GLcontext *ctx ) +_mesa_resizebuffers( struct gl_context *ctx ) { ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx ); @@ -372,7 +372,7 @@ _mesa_resizebuffers( GLcontext *ctx ) if (ctx->WinSysDrawBuffer) { GLuint newWidth, newHeight; - GLframebuffer *buffer = ctx->WinSysDrawBuffer; + struct gl_framebuffer *buffer = ctx->WinSysDrawBuffer; assert(buffer->Name == 0); @@ -389,7 +389,7 @@ _mesa_resizebuffers( GLcontext *ctx ) if (ctx->WinSysReadBuffer && ctx->WinSysReadBuffer != ctx->WinSysDrawBuffer) { GLuint newWidth, newHeight; - GLframebuffer *buffer = ctx->WinSysReadBuffer; + struct gl_framebuffer *buffer = ctx->WinSysReadBuffer; assert(buffer->Name == 0); @@ -429,7 +429,7 @@ _mesa_ResizeBuffersMESA( void ) * window-system framebuffes. */ static void -update_framebuffer_size(GLcontext *ctx, struct gl_framebuffer *fb) +update_framebuffer_size(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint minWidth = ~0, minHeight = ~0; GLuint i; @@ -464,7 +464,7 @@ update_framebuffer_size(GLcontext *ctx, struct gl_framebuffer *fb) * \param ctx the GL context. */ void -_mesa_update_draw_buffer_bounds(GLcontext *ctx) +_mesa_update_draw_buffer_bounds(struct gl_context *ctx) { struct gl_framebuffer *buffer = ctx->DrawBuffer; @@ -600,7 +600,7 @@ _mesa_update_framebuffer_visual(struct gl_framebuffer *fb) * \param attIndex indicates the renderbuffer to possibly wrap */ void -_mesa_update_depth_buffer(GLcontext *ctx, +_mesa_update_depth_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint attIndex) { @@ -641,7 +641,7 @@ _mesa_update_depth_buffer(GLcontext *ctx, * \param attIndex indicates the renderbuffer to possibly wrap */ void -_mesa_update_stencil_buffer(GLcontext *ctx, +_mesa_update_stencil_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint attIndex) { @@ -722,7 +722,7 @@ _mesa_update_stencil_buffer(GLcontext *ctx, * writing colors. */ static void -update_color_draw_buffers(GLcontext *ctx, struct gl_framebuffer *fb) +update_color_draw_buffers(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint output; @@ -746,7 +746,7 @@ update_color_draw_buffers(GLcontext *ctx, struct gl_framebuffer *fb) * Unlike the DrawBuffer, we can only read from one (or zero) color buffers. */ static void -update_color_read_buffer(GLcontext *ctx, struct gl_framebuffer *fb) +update_color_read_buffer(struct gl_context *ctx, struct gl_framebuffer *fb) { (void) ctx; if (fb->_ColorReadBufferIndex == -1 || @@ -781,7 +781,7 @@ update_color_read_buffer(GLcontext *ctx, struct gl_framebuffer *fb) * glRenderbufferStorageEXT. */ static void -update_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) +update_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb) { if (fb->Name == 0) { /* This is a window-system framebuffer */ @@ -823,7 +823,7 @@ update_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) * Update state related to the current draw/read framebuffers. */ void -_mesa_update_framebuffer(GLcontext *ctx) +_mesa_update_framebuffer(struct gl_context *ctx) { struct gl_framebuffer *drawFb; struct gl_framebuffer *readFb; @@ -846,7 +846,7 @@ _mesa_update_framebuffer(GLcontext *ctx) * \return GL_TRUE if buffer exists, GL_FALSE otherwise */ GLboolean -_mesa_source_buffer_exists(GLcontext *ctx, GLenum format) +_mesa_source_buffer_exists(struct gl_context *ctx, GLenum format) { const struct gl_renderbuffer_attachment *att = ctx->ReadBuffer->Attachment; @@ -868,12 +868,23 @@ _mesa_source_buffer_exists(GLcontext *ctx, GLenum format) case GL_LUMINANCE: case GL_LUMINANCE_ALPHA: case GL_INTENSITY: + case GL_RG: case GL_RGB: case GL_BGR: case GL_RGBA: case GL_BGRA: case GL_ABGR_EXT: case GL_COLOR_INDEX: + case GL_RED_INTEGER_EXT: + case GL_GREEN_INTEGER_EXT: + case GL_BLUE_INTEGER_EXT: + case GL_ALPHA_INTEGER_EXT: + case GL_RGB_INTEGER_EXT: + case GL_RGBA_INTEGER_EXT: + case GL_BGR_INTEGER_EXT: + case GL_BGRA_INTEGER_EXT: + case GL_LUMINANCE_INTEGER_EXT: + case GL_LUMINANCE_ALPHA_INTEGER_EXT: if (ctx->ReadBuffer->_ColorReadBuffer == NULL) { return GL_FALSE; } @@ -922,7 +933,7 @@ _mesa_source_buffer_exists(GLcontext *ctx, GLenum format) * XXX could do some code merging w/ above function. */ GLboolean -_mesa_dest_buffer_exists(GLcontext *ctx, GLenum format) +_mesa_dest_buffer_exists(struct gl_context *ctx, GLenum format) { const struct gl_renderbuffer_attachment *att = ctx->DrawBuffer->Attachment; @@ -950,6 +961,16 @@ _mesa_dest_buffer_exists(GLcontext *ctx, GLenum format) case GL_BGRA: case GL_ABGR_EXT: case GL_COLOR_INDEX: + case GL_RED_INTEGER_EXT: + case GL_GREEN_INTEGER_EXT: + case GL_BLUE_INTEGER_EXT: + case GL_ALPHA_INTEGER_EXT: + case GL_RGB_INTEGER_EXT: + case GL_RGBA_INTEGER_EXT: + case GL_BGR_INTEGER_EXT: + case GL_BGRA_INTEGER_EXT: + case GL_LUMINANCE_INTEGER_EXT: + case GL_LUMINANCE_ALPHA_INTEGER_EXT: /* Nothing special since GL_DRAW_BUFFER could be GL_NONE. */ /* Could assert that colorbuffer has RedBits > 0 */ break; @@ -993,7 +1014,7 @@ _mesa_dest_buffer_exists(GLcontext *ctx, GLenum format) * Used to answer the GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES query. */ GLenum -_mesa_get_color_read_format(GLcontext *ctx) +_mesa_get_color_read_format(struct gl_context *ctx) { switch (ctx->ReadBuffer->_ColorReadBuffer->Format) { case MESA_FORMAT_ARGB8888: @@ -1010,7 +1031,7 @@ _mesa_get_color_read_format(GLcontext *ctx) * Used to answer the GL_IMPLEMENTATION_COLOR_READ_TYPE_OES query. */ GLenum -_mesa_get_color_read_type(GLcontext *ctx) +_mesa_get_color_read_type(struct gl_context *ctx) { switch (ctx->ReadBuffer->_ColorReadBuffer->Format) { case MESA_FORMAT_ARGB8888: diff --git a/src/mesa/main/framebuffer.h b/src/mesa/main/framebuffer.h index 2e9844282f8..13722ea457a 100644 --- a/src/mesa/main/framebuffer.h +++ b/src/mesa/main/framebuffer.h @@ -29,14 +29,14 @@ #include "mtypes.h" extern struct gl_framebuffer * -_mesa_create_framebuffer(const GLvisual *visual); +_mesa_create_framebuffer(const struct gl_config *visual); extern struct gl_framebuffer * -_mesa_new_framebuffer(GLcontext *ctx, GLuint name); +_mesa_new_framebuffer(struct gl_context *ctx, GLuint name); extern void _mesa_initialize_window_framebuffer(struct gl_framebuffer *fb, - const GLvisual *visual); + const struct gl_config *visual); extern void _mesa_initialize_user_framebuffer(struct gl_framebuffer *fb, GLuint name); @@ -52,45 +52,45 @@ _mesa_reference_framebuffer(struct gl_framebuffer **ptr, struct gl_framebuffer *fb); extern void -_mesa_resize_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_resize_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height); extern void -_mesa_resizebuffers( GLcontext *ctx ); +_mesa_resizebuffers( struct gl_context *ctx ); extern void GLAPIENTRY _mesa_ResizeBuffersMESA( void ); extern void -_mesa_update_draw_buffer_bounds(GLcontext *ctx); +_mesa_update_draw_buffer_bounds(struct gl_context *ctx); extern void _mesa_update_framebuffer_visual(struct gl_framebuffer *fb); extern void -_mesa_update_depth_buffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_update_depth_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint attIndex); extern void -_mesa_update_stencil_buffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_update_stencil_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint attIndex); extern void -_mesa_update_framebuffer(GLcontext *ctx); +_mesa_update_framebuffer(struct gl_context *ctx); extern GLboolean -_mesa_source_buffer_exists(GLcontext *ctx, GLenum format); +_mesa_source_buffer_exists(struct gl_context *ctx, GLenum format); extern GLboolean -_mesa_dest_buffer_exists(GLcontext *ctx, GLenum format); +_mesa_dest_buffer_exists(struct gl_context *ctx, GLenum format); extern GLenum -_mesa_get_color_read_type(GLcontext *ctx); +_mesa_get_color_read_type(struct gl_context *ctx); extern GLenum -_mesa_get_color_read_format(GLcontext *ctx); +_mesa_get_color_read_format(struct gl_context *ctx); extern void _mesa_print_framebuffer(const struct gl_framebuffer *fb); diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index cb456fb64d8..da9df27bdb6 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -36,17 +36,17 @@ /* This is a table driven implemetation of the glGet*v() functions. * The basic idea is that most getters just look up an int somewhere - * in GLcontext and then convert it to a bool or float according to + * in struct gl_context and then convert it to a bool or float according to * which of glGetIntegerv() glGetBooleanv() etc is being called. * Instead of generating code to do this, we can just record the enum - * value and the offset into GLcontext in an array of structs. Then + * value and the offset into struct gl_context in an array of structs. Then * in glGet*(), we lookup the struct for the enum in question, and use * the offset to get the int we need. * * Sometimes we need to look up a float, a boolean, a bit in a * bitfield, a matrix or other types instead, so we need to track the - * type of the value in GLcontext. And sometimes the value isn't in - * GLcontext but in the drawbuffer, the array object, current texture + * type of the value in struct gl_context. And sometimes the value isn't in + * struct gl_context but in the drawbuffer, the array object, current texture * unit, or maybe it's a computed value. So we need to also track * where or how to find the value. Finally, we sometimes need to * check that one of a number of extensions are enabled, the GL @@ -165,7 +165,7 @@ union value { #define BUFFER_FIELD(field, type) \ LOC_BUFFER, type, offsetof(struct gl_framebuffer, field) #define CONTEXT_FIELD(field, type) \ - LOC_CONTEXT, type, offsetof(GLcontext, field) + LOC_CONTEXT, type, offsetof(struct gl_context, field) #define ARRAY_FIELD(field, type) \ LOC_ARRAY, type, offsetof(struct gl_array_object, field) #define CONST(value) \ @@ -173,6 +173,7 @@ union value { #define BUFFER_INT(field) BUFFER_FIELD(field, TYPE_INT) #define BUFFER_ENUM(field) BUFFER_FIELD(field, TYPE_ENUM) +#define BUFFER_BOOL(field) BUFFER_FIELD(field, TYPE_BOOLEAN) #define CONTEXT_INT(field) CONTEXT_FIELD(field, TYPE_INT) #define CONTEXT_INT2(field) CONTEXT_FIELD(field, TYPE_INT_2) @@ -260,6 +261,12 @@ static const int extra_EXT_fog_coord_flush_current[] = { EXTRA_END }; +static const int extra_EXT_texture_integer[] = { + EXT(EXT_texture_integer), + EXTRA_END +}; + + EXTRA_EXT(ARB_multitexture); EXTRA_EXT(ARB_texture_cube_map); EXTRA_EXT(MESA_texture_array); @@ -320,6 +327,12 @@ extra_NV_vertex_program_ARB_vertex_program_ARB_fragment_program_NV_vertex_progra EXTRA_END }; +static const int +extra_NV_primitive_restart[] = { + EXT(NV_primitive_restart), + EXTRA_END +}; + static const int extra_version_30[] = { EXTRA_VERSION_30, EXTRA_END }; static const int extra_version_31[] = { EXTRA_VERSION_31, EXTRA_END }; static const int extra_version_32[] = { EXTRA_VERSION_32, EXTRA_END }; @@ -371,7 +384,7 @@ static const struct value_desc values[] = { { GL_MAX_ELEMENTS_VERTICES, CONTEXT_INT(Const.MaxArrayLockSize), NO_EXTRA }, { GL_MAX_ELEMENTS_INDICES, CONTEXT_INT(Const.MaxArrayLockSize), NO_EXTRA }, { GL_MAX_TEXTURE_SIZE, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.MaxTextureLevels), NO_EXTRA }, + offsetof(struct gl_context, Const.MaxTextureLevels), NO_EXTRA }, { GL_MAX_VIEWPORT_DIMS, CONTEXT_INT2(Const.MaxViewportWidth), NO_EXTRA }, { GL_PACK_ALIGNMENT, CONTEXT_INT(Pack.Alignment), NO_EXTRA }, { GL_ALIASED_POINT_SIZE_RANGE, CONTEXT_FLOAT2(Const.MinPointSize), NO_EXTRA }, @@ -410,7 +423,7 @@ static const struct value_desc values[] = { { GL_TEXTURE_BINDING_CUBE_MAP_ARB, LOC_CUSTOM, TYPE_INT, TEXTURE_CUBE_INDEX, extra_ARB_texture_cube_map }, { GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.MaxCubeTextureLevels), + offsetof(struct gl_context, Const.MaxCubeTextureLevels), extra_ARB_texture_cube_map }, /* XXX: OES_texture_cube_map */ /* XXX: OES_blend_subtract */ @@ -522,7 +535,7 @@ static const struct value_desc values[] = { { GL_MAX_TEXTURE_STACK_DEPTH, CONST(MAX_TEXTURE_STACK_DEPTH), NO_EXTRA }, { GL_MODELVIEW_MATRIX, CONTEXT_MATRIX(ModelviewMatrixStack.Top), NO_EXTRA }, { GL_MODELVIEW_STACK_DEPTH, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, ModelviewMatrixStack.Depth), NO_EXTRA }, + offsetof(struct gl_context, ModelviewMatrixStack.Depth), NO_EXTRA }, { GL_NORMALIZE, CONTEXT_BOOL(Transform.Normalize), NO_EXTRA }, { GL_PACK_SKIP_IMAGES_EXT, CONTEXT_INT(Pack.SkipImages), NO_EXTRA }, { GL_PERSPECTIVE_CORRECTION_HINT, CONTEXT_ENUM(Hint.PerspectiveCorrection), NO_EXTRA }, @@ -535,7 +548,7 @@ static const struct value_desc values[] = { { GL_POINT_FADE_THRESHOLD_SIZE_EXT, CONTEXT_FLOAT(Point.Threshold), NO_EXTRA }, { GL_PROJECTION_MATRIX, CONTEXT_MATRIX(ProjectionMatrixStack.Top), NO_EXTRA }, { GL_PROJECTION_STACK_DEPTH, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, ProjectionMatrixStack.Depth), NO_EXTRA }, + offsetof(struct gl_context, ProjectionMatrixStack.Depth), NO_EXTRA }, { GL_RESCALE_NORMAL, CONTEXT_BOOL(Transform.RescaleNormals), NO_EXTRA }, { GL_SHADE_MODEL, CONTEXT_ENUM(Light.ShadeModel), NO_EXTRA }, { GL_TEXTURE_2D, LOC_CUSTOM, TYPE_BOOLEAN, 0, NO_EXTRA }, @@ -672,7 +685,7 @@ static const struct value_desc values[] = { /* OES_texture_3D */ { GL_TEXTURE_BINDING_3D, LOC_CUSTOM, TYPE_INT, TEXTURE_3D_INDEX, NO_EXTRA }, { GL_MAX_3D_TEXTURE_SIZE, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.Max3DTextureLevels), NO_EXTRA }, + offsetof(struct gl_context, Const.Max3DTextureLevels), NO_EXTRA }, /* GL_ARB_fragment_program/OES_standard_derivatives */ { GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB, @@ -683,11 +696,11 @@ static const struct value_desc values[] = { /* 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(GLcontext, Const.FragmentProgram.MaxUniformComponents), NO_EXTRA }, + offsetof(struct gl_context, Const.FragmentProgram.MaxUniformComponents), NO_EXTRA }, { GL_MAX_VARYING_VECTORS, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.MaxVarying), NO_EXTRA }, + offsetof(struct gl_context, Const.MaxVarying), NO_EXTRA }, { GL_MAX_VERTEX_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.VertexProgram.MaxUniformComponents), NO_EXTRA }, + offsetof(struct gl_context, Const.VertexProgram.MaxUniformComponents), NO_EXTRA }, { GL_SHADER_COMPILER, CONST(1), NO_EXTRA }, /* OES_get_program_binary */ { GL_NUM_SHADER_BINARY_FORMATS, CONST(0), NO_EXTRA }, @@ -1019,6 +1032,12 @@ static const struct value_desc values[] = { { GL_MAX_SPOT_EXPONENT_NV, CONTEXT_FLOAT(Const.MaxSpotExponent), extra_NV_light_max_exponent }, + /* GL_NV_primitive_restart */ + { GL_PRIMITIVE_RESTART_NV, CONTEXT_BOOL(Array.PrimitiveRestart), + extra_NV_primitive_restart }, + { GL_PRIMITIVE_RESTART_INDEX_NV, CONTEXT_INT(Array.RestartIndex), + extra_NV_primitive_restart }, + /* GL_ARB_vertex_buffer_object */ { GL_INDEX_ARRAY_BUFFER_BINDING_ARB, LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_object, Index.BufferObj), NO_EXTRA }, @@ -1132,6 +1151,10 @@ static const struct value_desc values[] = { { GL_MAX_SERVER_WAIT_TIMEOUT, CONTEXT_INT64(Const.MaxServerWaitTimeout), extra_ARB_sync }, + /* GL_EXT_texture_integer */ + { GL_RGBA_INTEGER_MODE_EXT, BUFFER_BOOL(_IntegerColor), + extra_EXT_texture_integer }, + /* GL_EXT_transform_feedback */ { GL_TRANSFORM_FEEDBACK_BUFFER_BINDING, LOC_CUSTOM, TYPE_INT, 0, extra_EXT_transform_feedback }, @@ -1182,11 +1205,15 @@ static const struct value_desc values[] = { { GL_CONTEXT_FLAGS, CONTEXT_INT(Const.ContextFlags), extra_version_30 }, /* GL 3.1 */ + /* NOTE: different enum values for GL_PRIMITIVE_RESTART_NV + * vs. GL_PRIMITIVE_RESTART! + */ { GL_PRIMITIVE_RESTART, CONTEXT_BOOL(Array.PrimitiveRestart), extra_version_31 }, { GL_PRIMITIVE_RESTART_INDEX, CONTEXT_INT(Array.RestartIndex), extra_version_31 }, + /* GL 3.2 */ { GL_CONTEXT_PROFILE_MASK, CONTEXT_INT(Const.ProfileMask), extra_version_32 }, @@ -1256,7 +1283,7 @@ print_table_stats(void) * * \param the current context, for determining the API in question */ -void _mesa_init_get_hash(GLcontext *ctx) +void _mesa_init_get_hash(struct gl_context *ctx) { int i, hash, index, mask; int api_mask = 0, api_bit; @@ -1305,7 +1332,7 @@ void _mesa_init_get_hash(GLcontext *ctx) * \param v pointer to the tmp declared in the calling glGet*v() function */ static void -find_custom_value(GLcontext *ctx, const struct value_desc *d, union value *v) +find_custom_value(struct gl_context *ctx, const struct value_desc *d, union value *v) { struct gl_buffer_object *buffer_obj; struct gl_client_array *array; @@ -1552,7 +1579,7 @@ find_custom_value(GLcontext *ctx, const struct value_desc *d, union value *v) break; case GL_CURRENT_PROGRAM: v->value_int = - ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0; + ctx->Shader.ActiveProgram ? ctx->Shader.ActiveProgram->Name : 0; break; case GL_READ_FRAMEBUFFER_BINDING_EXT: v->value_int = ctx->ReadBuffer->Name; @@ -1583,7 +1610,7 @@ find_custom_value(GLcontext *ctx, const struct value_desc *d, union value *v) * otherwise GL_TRUE. */ static GLboolean -check_extra(GLcontext *ctx, const char *func, const struct value_desc *d) +check_extra(struct gl_context *ctx, const char *func, const struct value_desc *d) { const GLuint version = ctx->VersionMajor * 10 + ctx->VersionMinor; int total, enabled; diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c index 3910047fb5d..bfa283f6a30 100644 --- a/src/mesa/main/getstring.c +++ b/src/mesa/main/getstring.c @@ -35,7 +35,7 @@ * Return the string for a glGetString(GL_SHADING_LANGUAGE_VERSION) query. */ static const GLubyte * -shading_language_version(GLcontext *ctx) +shading_language_version(struct gl_context *ctx) { switch (ctx->API) { case API_OPENGL: @@ -233,7 +233,7 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params ) * Returns the current GL error code, or GL_NO_ERROR. * \return current error code * - * Returns __GLcontextRec::ErrorValue. + * Returns __struct gl_contextRec::ErrorValue. */ GLenum GLAPIENTRY _mesa_GetError( void ) diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h index 45f7b55ad2a..08ad5f32018 100644 --- a/src/mesa/main/glheader.h +++ b/src/mesa/main/glheader.h @@ -52,7 +52,6 @@ #define GL_GLEXT_PROTOTYPES #include "GL/gl.h" #include "GL/glext.h" -#include "GL/internal/glcore.h" /** @@ -140,6 +139,25 @@ typedef void *GLeglImageOES; */ #define MESA_GEOMETRY_PROGRAM 0x8c26 - +/* Several fields of struct gl_config can take these as values. Since + * GLX header files may not be available everywhere they need to be used, + * redefine them here. + */ +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_SWAP_EXCHANGE_OML 0x8061 +#define GLX_SWAP_COPY_OML 0x8062 +#define GLX_SWAP_UNDEFINED_OML 0x8063 + +#define GLX_DONT_CARE 0xFFFFFFFF #endif /* GLHEADER_H */ diff --git a/src/mesa/main/hash.c b/src/mesa/main/hash.c index b624e6ecac1..72d924dcc38 100644 --- a/src/mesa/main/hash.c +++ b/src/mesa/main/hash.c @@ -277,7 +277,7 @@ _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key) * \param table the hash table to delete * \param callback the callback function * \param userData arbitrary pointer to pass along to the callback - * (this is typically a GLcontext pointer) + * (this is typically a struct gl_context pointer) */ void _mesa_HashDeleteAll(struct _mesa_HashTable *table, @@ -313,7 +313,7 @@ _mesa_HashDeleteAll(struct _mesa_HashTable *table, * \param table the hash table to walk * \param callback the callback function * \param userData arbitrary pointer to pass along to the callback - * (this is typically a GLcontext pointer) + * (this is typically a struct gl_context pointer) */ void _mesa_HashWalk(const struct _mesa_HashTable *table, diff --git a/src/mesa/main/hint.c b/src/mesa/main/hint.c index 8902ae37763..878f10d4a43 100644 --- a/src/mesa/main/hint.c +++ b/src/mesa/main/hint.c @@ -130,7 +130,7 @@ _mesa_Hint( GLenum target, GLenum mode ) /***** Initialization *****/ /**********************************************************************/ -void _mesa_init_hint( GLcontext * ctx ) +void _mesa_init_hint( struct gl_context * ctx ) { /* Hint group */ ctx->Hint.PerspectiveCorrection = GL_DONT_CARE; diff --git a/src/mesa/main/hint.h b/src/mesa/main/hint.h index bfc3887107d..66e78ad6557 100644 --- a/src/mesa/main/hint.h +++ b/src/mesa/main/hint.h @@ -45,7 +45,7 @@ extern void GLAPIENTRY _mesa_Hint( GLenum target, GLenum mode ); extern void -_mesa_init_hint( GLcontext * ctx ); +_mesa_init_hint( struct gl_context * ctx ); #else diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index ce10b3b1f85..43cc06d7196 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -32,7 +32,6 @@ #include "glheader.h" #include "colormac.h" -#include "enums.h" #include "image.h" #include "imports.h" #include "macros.h" @@ -86,36 +85,6 @@ _mesa_type_is_packed(GLenum type) return GL_FALSE; } -/** - * Flip the 8 bits in each byte of the given array. - * - * \param p array. - * \param n number of bytes. - * - * \todo try this trick to flip bytes someday: - * \code - * v = ((v & 0x55555555) << 1) | ((v >> 1) & 0x55555555); - * v = ((v & 0x33333333) << 2) | ((v >> 2) & 0x33333333); - * v = ((v & 0x0f0f0f0f) << 4) | ((v >> 4) & 0x0f0f0f0f); - * \endcode - */ -static void -flip_bytes( GLubyte *p, GLuint n ) -{ - GLuint i, a, b; - for (i = 0; i < n; i++) { - b = (GLuint) p[i]; /* words are often faster than bytes */ - a = ((b & 0x01) << 7) | - ((b & 0x02) << 5) | - ((b & 0x04) << 3) | - ((b & 0x08) << 1) | - ((b & 0x10) >> 1) | - ((b & 0x20) >> 3) | - ((b & 0x40) >> 5) | - ((b & 0x80) >> 7); - p[i] = (GLubyte) a; - } -} /** @@ -399,7 +368,7 @@ _mesa_bytes_per_pixel( GLenum format, GLenum type ) * otherwise. */ GLboolean -_mesa_is_legal_format_and_type( GLcontext *ctx, GLenum format, GLenum type ) +_mesa_is_legal_format_and_type( struct gl_context *ctx, GLenum format, GLenum type ) { switch (format) { case GL_COLOR_INDEX: @@ -699,10 +668,57 @@ _mesa_is_color_format(GLenum format) case GL_COMPRESSED_SIGNED_RED_RGTC1: case GL_COMPRESSED_RG_RGTC2: case GL_COMPRESSED_SIGNED_RG_RGTC2: - return GL_TRUE; - /* signed texture formats */ + /* signed, normalized texture formats */ case GL_RGBA_SNORM: case GL_RGBA8_SNORM: + /* generic integer formats */ + case GL_RED_INTEGER_EXT: + case GL_GREEN_INTEGER_EXT: + case GL_BLUE_INTEGER_EXT: + case GL_ALPHA_INTEGER_EXT: + case GL_RGB_INTEGER_EXT: + case GL_RGBA_INTEGER_EXT: + case GL_BGR_INTEGER_EXT: + case GL_BGRA_INTEGER_EXT: + case GL_LUMINANCE_INTEGER_EXT: + case GL_LUMINANCE_ALPHA_INTEGER_EXT: + /* sized integer formats */ + case GL_RGBA32UI_EXT: + case GL_RGB32UI_EXT: + case GL_ALPHA32UI_EXT: + case GL_INTENSITY32UI_EXT: + case GL_LUMINANCE32UI_EXT: + case GL_LUMINANCE_ALPHA32UI_EXT: + 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: + 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: + 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: + 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: + 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 GL_TRUE; case GL_YCBCR_MESA: /* not considered to be RGB */ /* fall-through */ @@ -846,6 +862,7 @@ GLboolean _mesa_is_integer_format(GLenum format) { switch (format) { + /* generic integer formats */ case GL_RED_INTEGER_EXT: case GL_GREEN_INTEGER_EXT: case GL_BLUE_INTEGER_EXT: @@ -856,6 +873,43 @@ _mesa_is_integer_format(GLenum format) case GL_BGRA_INTEGER_EXT: case GL_LUMINANCE_INTEGER_EXT: case GL_LUMINANCE_ALPHA_INTEGER_EXT: + /* specific integer formats */ + case GL_RGBA32UI_EXT: + case GL_RGB32UI_EXT: + case GL_ALPHA32UI_EXT: + case GL_INTENSITY32UI_EXT: + case GL_LUMINANCE32UI_EXT: + case GL_LUMINANCE_ALPHA32UI_EXT: + 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: + 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: + 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: + 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: + 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 GL_TRUE; default: return GL_FALSE; @@ -869,7 +923,7 @@ _mesa_is_integer_format(GLenum format) * \return GL_TRUE if compressed, GL_FALSE if uncompressed */ GLboolean -_mesa_is_compressed_format(GLcontext *ctx, GLenum format) +_mesa_is_compressed_format(struct gl_context *ctx, GLenum format) { switch (format) { case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: @@ -1119,8 +1173,6 @@ _mesa_image_row_stride( const struct gl_pixelstore_attrib *packing, } -#if _HAVE_FULL_GL - /* * Compute the stride between images in a 3D texture (in bytes) for the given * pixel packing parameters and image width, format and type. @@ -1168,248 +1220,6 @@ _mesa_image_image_stride( const struct gl_pixelstore_attrib *packing, } -/* - * Unpack a 32x32 pixel polygon stipple from user memory using the - * current pixel unpack settings. - */ -void -_mesa_unpack_polygon_stipple( const GLubyte *pattern, GLuint dest[32], - const struct gl_pixelstore_attrib *unpacking ) -{ - GLubyte *ptrn = (GLubyte *) _mesa_unpack_bitmap(32, 32, pattern, unpacking); - if (ptrn) { - /* Convert pattern from GLubytes to GLuints and handle big/little - * endian differences - */ - GLubyte *p = ptrn; - GLint i; - for (i = 0; i < 32; i++) { - dest[i] = (p[0] << 24) - | (p[1] << 16) - | (p[2] << 8) - | (p[3] ); - p += 4; - } - free(ptrn); - } -} - - -/* - * Pack polygon stipple into user memory given current pixel packing - * settings. - */ -void -_mesa_pack_polygon_stipple( const GLuint pattern[32], GLubyte *dest, - const struct gl_pixelstore_attrib *packing ) -{ - /* Convert pattern from GLuints to GLubytes to handle big/little - * endian differences. - */ - GLubyte ptrn[32*4]; - GLint i; - for (i = 0; i < 32; i++) { - ptrn[i * 4 + 0] = (GLubyte) ((pattern[i] >> 24) & 0xff); - ptrn[i * 4 + 1] = (GLubyte) ((pattern[i] >> 16) & 0xff); - ptrn[i * 4 + 2] = (GLubyte) ((pattern[i] >> 8 ) & 0xff); - ptrn[i * 4 + 3] = (GLubyte) ((pattern[i] ) & 0xff); - } - - _mesa_pack_bitmap(32, 32, ptrn, dest, packing); -} - - -/* - * Unpack bitmap data. Resulting data will be in most-significant-bit-first - * order with row alignment = 1 byte. - */ -GLvoid * -_mesa_unpack_bitmap( GLint width, GLint height, const GLubyte *pixels, - const struct gl_pixelstore_attrib *packing ) -{ - GLint bytes, row, width_in_bytes; - GLubyte *buffer, *dst; - - if (!pixels) - return NULL; - - /* Alloc dest storage */ - bytes = ((width + 7) / 8 * height); - buffer = (GLubyte *) malloc( bytes ); - if (!buffer) - return NULL; - - width_in_bytes = CEILING( width, 8 ); - dst = buffer; - for (row = 0; row < height; row++) { - const GLubyte *src = (const GLubyte *) - _mesa_image_address2d(packing, pixels, width, height, - GL_COLOR_INDEX, GL_BITMAP, row, 0); - if (!src) { - free(buffer); - return NULL; - } - - if ((packing->SkipPixels & 7) == 0) { - memcpy( dst, src, width_in_bytes ); - if (packing->LsbFirst) { - flip_bytes( dst, width_in_bytes ); - } - } - else { - /* handling SkipPixels is a bit tricky (no pun intended!) */ - GLint i; - if (packing->LsbFirst) { - GLubyte srcMask = 1 << (packing->SkipPixels & 0x7); - GLubyte dstMask = 128; - const GLubyte *s = src; - GLubyte *d = dst; - *d = 0; - for (i = 0; i < width; i++) { - if (*s & srcMask) { - *d |= dstMask; - } - if (srcMask == 128) { - srcMask = 1; - s++; - } - else { - srcMask = srcMask << 1; - } - if (dstMask == 1) { - dstMask = 128; - d++; - *d = 0; - } - else { - dstMask = dstMask >> 1; - } - } - } - else { - GLubyte srcMask = 128 >> (packing->SkipPixels & 0x7); - GLubyte dstMask = 128; - const GLubyte *s = src; - GLubyte *d = dst; - *d = 0; - for (i = 0; i < width; i++) { - if (*s & srcMask) { - *d |= dstMask; - } - if (srcMask == 1) { - srcMask = 128; - s++; - } - else { - srcMask = srcMask >> 1; - } - if (dstMask == 1) { - dstMask = 128; - d++; - *d = 0; - } - else { - dstMask = dstMask >> 1; - } - } - } - } - dst += width_in_bytes; - } - - return buffer; -} - - -/* - * Pack bitmap data. - */ -void -_mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source, - GLubyte *dest, const struct gl_pixelstore_attrib *packing ) -{ - GLint row, width_in_bytes; - const GLubyte *src; - - if (!source) - return; - - width_in_bytes = CEILING( width, 8 ); - src = source; - for (row = 0; row < height; row++) { - GLubyte *dst = (GLubyte *) _mesa_image_address2d(packing, dest, - width, height, GL_COLOR_INDEX, GL_BITMAP, row, 0); - if (!dst) - return; - - if ((packing->SkipPixels & 7) == 0) { - memcpy( dst, src, width_in_bytes ); - if (packing->LsbFirst) { - flip_bytes( dst, width_in_bytes ); - } - } - else { - /* handling SkipPixels is a bit tricky (no pun intended!) */ - GLint i; - if (packing->LsbFirst) { - GLubyte srcMask = 128; - GLubyte dstMask = 1 << (packing->SkipPixels & 0x7); - const GLubyte *s = src; - GLubyte *d = dst; - *d = 0; - for (i = 0; i < width; i++) { - if (*s & srcMask) { - *d |= dstMask; - } - if (srcMask == 1) { - srcMask = 128; - s++; - } - else { - srcMask = srcMask >> 1; - } - if (dstMask == 128) { - dstMask = 1; - d++; - *d = 0; - } - else { - dstMask = dstMask << 1; - } - } - } - else { - GLubyte srcMask = 128; - GLubyte dstMask = 128 >> (packing->SkipPixels & 0x7); - const GLubyte *s = src; - GLubyte *d = dst; - *d = 0; - for (i = 0; i < width; i++) { - if (*s & srcMask) { - *d |= dstMask; - } - if (srcMask == 1) { - srcMask = 128; - s++; - } - else { - srcMask = srcMask >> 1; - } - if (dstMask == 1) { - dstMask = 128; - d++; - *d = 0; - } - else { - dstMask = dstMask >> 1; - } - } - } - } - src += width_in_bytes; - } -} - /** * "Expand" a bitmap from 1-bit per pixel to 8-bits per pixel. @@ -1496,4047 +1306,6 @@ _mesa_expand_bitmap(GLsizei width, GLsizei height, } -/**********************************************************************/ -/***** Pixel processing functions ******/ -/**********************************************************************/ - -/* - * Apply scale and bias factors to an array of RGBA pixels. - */ -void -_mesa_scale_and_bias_rgba(GLuint n, GLfloat rgba[][4], - GLfloat rScale, GLfloat gScale, - GLfloat bScale, GLfloat aScale, - GLfloat rBias, GLfloat gBias, - GLfloat bBias, GLfloat aBias) -{ - if (rScale != 1.0 || rBias != 0.0) { - GLuint i; - for (i = 0; i < n; i++) { - rgba[i][RCOMP] = rgba[i][RCOMP] * rScale + rBias; - } - } - if (gScale != 1.0 || gBias != 0.0) { - GLuint i; - for (i = 0; i < n; i++) { - rgba[i][GCOMP] = rgba[i][GCOMP] * gScale + gBias; - } - } - if (bScale != 1.0 || bBias != 0.0) { - GLuint i; - for (i = 0; i < n; i++) { - rgba[i][BCOMP] = rgba[i][BCOMP] * bScale + bBias; - } - } - if (aScale != 1.0 || aBias != 0.0) { - GLuint i; - for (i = 0; i < n; i++) { - rgba[i][ACOMP] = rgba[i][ACOMP] * aScale + aBias; - } - } -} - - -/* - * Apply pixel mapping to an array of floating point RGBA pixels. - */ -void -_mesa_map_rgba( const GLcontext *ctx, GLuint n, GLfloat rgba[][4] ) -{ - const GLfloat rscale = (GLfloat) (ctx->PixelMaps.RtoR.Size - 1); - const GLfloat gscale = (GLfloat) (ctx->PixelMaps.GtoG.Size - 1); - const GLfloat bscale = (GLfloat) (ctx->PixelMaps.BtoB.Size - 1); - const GLfloat ascale = (GLfloat) (ctx->PixelMaps.AtoA.Size - 1); - const GLfloat *rMap = ctx->PixelMaps.RtoR.Map; - const GLfloat *gMap = ctx->PixelMaps.GtoG.Map; - const GLfloat *bMap = ctx->PixelMaps.BtoB.Map; - const GLfloat *aMap = ctx->PixelMaps.AtoA.Map; - GLuint i; - for (i=0;i<n;i++) { - GLfloat r = CLAMP(rgba[i][RCOMP], 0.0F, 1.0F); - GLfloat g = CLAMP(rgba[i][GCOMP], 0.0F, 1.0F); - GLfloat b = CLAMP(rgba[i][BCOMP], 0.0F, 1.0F); - GLfloat a = CLAMP(rgba[i][ACOMP], 0.0F, 1.0F); - rgba[i][RCOMP] = rMap[IROUND(r * rscale)]; - rgba[i][GCOMP] = gMap[IROUND(g * gscale)]; - rgba[i][BCOMP] = bMap[IROUND(b * bscale)]; - rgba[i][ACOMP] = aMap[IROUND(a * ascale)]; - } -} - -/** - * Apply a color table lookup to an array of floating point RGBA colors. - */ -void -_mesa_lookup_rgba_float(const struct gl_color_table *table, - GLuint n, GLfloat rgba[][4]) -{ - const GLint max = table->Size - 1; - const GLfloat scale = (GLfloat) max; - const GLfloat *lut = table->TableF; - GLuint i; - - if (!table->TableF || table->Size == 0) - return; - - switch (table->_BaseFormat) { - case GL_INTENSITY: - /* replace RGBA with I */ - for (i = 0; i < n; i++) { - GLint j = IROUND(rgba[i][RCOMP] * scale); - GLfloat c = lut[CLAMP(j, 0, max)]; - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = - rgba[i][ACOMP] = c; - } - break; - case GL_LUMINANCE: - /* replace RGB with L */ - for (i = 0; i < n; i++) { - GLint j = IROUND(rgba[i][RCOMP] * scale); - GLfloat c = lut[CLAMP(j, 0, max)]; - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = c; - } - break; - case GL_ALPHA: - /* replace A with A */ - for (i = 0; i < n; i++) { - GLint j = IROUND(rgba[i][ACOMP] * scale); - rgba[i][ACOMP] = lut[CLAMP(j, 0, max)]; - } - break; - case GL_LUMINANCE_ALPHA: - /* replace RGBA with LLLA */ - for (i = 0; i < n; i++) { - GLint jL = IROUND(rgba[i][RCOMP] * scale); - GLint jA = IROUND(rgba[i][ACOMP] * scale); - GLfloat luminance, alpha; - jL = CLAMP(jL, 0, max); - jA = CLAMP(jA, 0, max); - luminance = lut[jL * 2 + 0]; - alpha = lut[jA * 2 + 1]; - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = luminance; - rgba[i][ACOMP] = alpha;; - } - break; - case GL_RED: - /* replace RGB with RGB */ - for (i = 0; i < n; i++) { - GLint jR = IROUND(rgba[i][RCOMP] * scale); - jR = CLAMP(jR, 0, max); - rgba[i][RCOMP] = lut[jR * 3 + 0]; - } - break; - case GL_RG: - /* replace RG with RG */ - for (i = 0; i < n; i++) { - GLint jR = IROUND(rgba[i][RCOMP] * scale); - GLint jG = IROUND(rgba[i][GCOMP] * scale); - jR = CLAMP(jR, 0, max); - jG = CLAMP(jG, 0, max); - rgba[i][RCOMP] = lut[jR * 3 + 0]; - rgba[i][GCOMP] = lut[jG * 3 + 1]; - } - break; - case GL_RGB: - /* replace RGB with RGB */ - for (i = 0; i < n; i++) { - GLint jR = IROUND(rgba[i][RCOMP] * scale); - GLint jG = IROUND(rgba[i][GCOMP] * scale); - GLint jB = IROUND(rgba[i][BCOMP] * scale); - jR = CLAMP(jR, 0, max); - jG = CLAMP(jG, 0, max); - jB = CLAMP(jB, 0, max); - rgba[i][RCOMP] = lut[jR * 3 + 0]; - rgba[i][GCOMP] = lut[jG * 3 + 1]; - rgba[i][BCOMP] = lut[jB * 3 + 2]; - } - break; - case GL_RGBA: - /* replace RGBA with RGBA */ - for (i = 0; i < n; i++) { - GLint jR = IROUND(rgba[i][RCOMP] * scale); - GLint jG = IROUND(rgba[i][GCOMP] * scale); - GLint jB = IROUND(rgba[i][BCOMP] * scale); - GLint jA = IROUND(rgba[i][ACOMP] * scale); - jR = CLAMP(jR, 0, max); - jG = CLAMP(jG, 0, max); - jB = CLAMP(jB, 0, max); - jA = CLAMP(jA, 0, max); - rgba[i][RCOMP] = lut[jR * 4 + 0]; - rgba[i][GCOMP] = lut[jG * 4 + 1]; - rgba[i][BCOMP] = lut[jB * 4 + 2]; - rgba[i][ACOMP] = lut[jA * 4 + 3]; - } - break; - default: - _mesa_problem(NULL, "Bad format in _mesa_lookup_rgba_float"); - return; - } -} - - - -/** - * Apply a color table lookup to an array of ubyte/RGBA colors. - */ -void -_mesa_lookup_rgba_ubyte(const struct gl_color_table *table, - GLuint n, GLubyte rgba[][4]) -{ - const GLubyte *lut = table->TableUB; - const GLfloat scale = (GLfloat) (table->Size - 1) / (GLfloat)255.0; - GLuint i; - - if (!table->TableUB || table->Size == 0) - return; - - switch (table->_BaseFormat) { - case GL_INTENSITY: - /* replace RGBA with I */ - if (table->Size == 256) { - for (i = 0; i < n; i++) { - const GLubyte c = lut[rgba[i][RCOMP]]; - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = - rgba[i][ACOMP] = c; - } - } - else { - for (i = 0; i < n; i++) { - GLint j = IROUND((GLfloat) rgba[i][RCOMP] * scale); - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = - rgba[i][ACOMP] = lut[j]; - } - } - break; - case GL_LUMINANCE: - /* replace RGB with L */ - if (table->Size == 256) { - for (i = 0; i < n; i++) { - const GLubyte c = lut[rgba[i][RCOMP]]; - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = c; - } - } - else { - for (i = 0; i < n; i++) { - GLint j = IROUND((GLfloat) rgba[i][RCOMP] * scale); - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = lut[j]; - } - } - break; - case GL_ALPHA: - /* replace A with A */ - if (table->Size == 256) { - for (i = 0; i < n; i++) { - rgba[i][ACOMP] = lut[rgba[i][ACOMP]]; - } - } - else { - for (i = 0; i < n; i++) { - GLint j = IROUND((GLfloat) rgba[i][ACOMP] * scale); - rgba[i][ACOMP] = lut[j]; - } - } - break; - case GL_LUMINANCE_ALPHA: - /* replace RGBA with LLLA */ - if (table->Size == 256) { - for (i = 0; i < n; i++) { - GLubyte l = lut[rgba[i][RCOMP] * 2 + 0]; - GLubyte a = lut[rgba[i][ACOMP] * 2 + 1];; - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = l; - rgba[i][ACOMP] = a; - } - } - else { - for (i = 0; i < n; i++) { - GLint jL = IROUND((GLfloat) rgba[i][RCOMP] * scale); - GLint jA = IROUND((GLfloat) rgba[i][ACOMP] * scale); - GLubyte luminance = lut[jL * 2 + 0]; - GLubyte alpha = lut[jA * 2 + 1]; - rgba[i][RCOMP] = - rgba[i][GCOMP] = - rgba[i][BCOMP] = luminance; - rgba[i][ACOMP] = alpha; - } - } - break; - case GL_RGB: - if (table->Size == 256) { - for (i = 0; i < n; i++) { - rgba[i][RCOMP] = lut[rgba[i][RCOMP] * 3 + 0]; - rgba[i][GCOMP] = lut[rgba[i][GCOMP] * 3 + 1]; - rgba[i][BCOMP] = lut[rgba[i][BCOMP] * 3 + 2]; - } - } - else { - for (i = 0; i < n; i++) { - GLint jR = IROUND((GLfloat) rgba[i][RCOMP] * scale); - GLint jG = IROUND((GLfloat) rgba[i][GCOMP] * scale); - GLint jB = IROUND((GLfloat) rgba[i][BCOMP] * scale); - rgba[i][RCOMP] = lut[jR * 3 + 0]; - rgba[i][GCOMP] = lut[jG * 3 + 1]; - rgba[i][BCOMP] = lut[jB * 3 + 2]; - } - } - break; - case GL_RGBA: - if (table->Size == 256) { - for (i = 0; i < n; i++) { - rgba[i][RCOMP] = lut[rgba[i][RCOMP] * 4 + 0]; - rgba[i][GCOMP] = lut[rgba[i][GCOMP] * 4 + 1]; - rgba[i][BCOMP] = lut[rgba[i][BCOMP] * 4 + 2]; - rgba[i][ACOMP] = lut[rgba[i][ACOMP] * 4 + 3]; - } - } - else { - for (i = 0; i < n; i++) { - GLint jR = IROUND((GLfloat) rgba[i][RCOMP] * scale); - GLint jG = IROUND((GLfloat) rgba[i][GCOMP] * scale); - GLint jB = IROUND((GLfloat) rgba[i][BCOMP] * scale); - GLint jA = IROUND((GLfloat) rgba[i][ACOMP] * scale); - CLAMPED_FLOAT_TO_CHAN(rgba[i][RCOMP], lut[jR * 4 + 0]); - CLAMPED_FLOAT_TO_CHAN(rgba[i][GCOMP], lut[jG * 4 + 1]); - CLAMPED_FLOAT_TO_CHAN(rgba[i][BCOMP], lut[jB * 4 + 2]); - CLAMPED_FLOAT_TO_CHAN(rgba[i][ACOMP], lut[jA * 4 + 3]); - } - } - break; - default: - _mesa_problem(NULL, "Bad format in _mesa_lookup_rgba_chan"); - return; - } -} - - - -/* - * Map color indexes to float rgba values. - */ -void -_mesa_map_ci_to_rgba( const GLcontext *ctx, GLuint n, - const GLuint index[], GLfloat rgba[][4] ) -{ - GLuint rmask = ctx->PixelMaps.ItoR.Size - 1; - GLuint gmask = ctx->PixelMaps.ItoG.Size - 1; - GLuint bmask = ctx->PixelMaps.ItoB.Size - 1; - GLuint amask = ctx->PixelMaps.ItoA.Size - 1; - const GLfloat *rMap = ctx->PixelMaps.ItoR.Map; - const GLfloat *gMap = ctx->PixelMaps.ItoG.Map; - const GLfloat *bMap = ctx->PixelMaps.ItoB.Map; - const GLfloat *aMap = ctx->PixelMaps.ItoA.Map; - GLuint i; - for (i=0;i<n;i++) { - rgba[i][RCOMP] = rMap[index[i] & rmask]; - rgba[i][GCOMP] = gMap[index[i] & gmask]; - rgba[i][BCOMP] = bMap[index[i] & bmask]; - rgba[i][ACOMP] = aMap[index[i] & amask]; - } -} - - -/** - * Map ubyte color indexes to ubyte/RGBA values. - */ -void -_mesa_map_ci8_to_rgba8(const GLcontext *ctx, GLuint n, const GLubyte index[], - GLubyte rgba[][4]) -{ - GLuint rmask = ctx->PixelMaps.ItoR.Size - 1; - GLuint gmask = ctx->PixelMaps.ItoG.Size - 1; - GLuint bmask = ctx->PixelMaps.ItoB.Size - 1; - GLuint amask = ctx->PixelMaps.ItoA.Size - 1; - const GLubyte *rMap = ctx->PixelMaps.ItoR.Map8; - const GLubyte *gMap = ctx->PixelMaps.ItoG.Map8; - const GLubyte *bMap = ctx->PixelMaps.ItoB.Map8; - const GLubyte *aMap = ctx->PixelMaps.ItoA.Map8; - GLuint i; - for (i=0;i<n;i++) { - rgba[i][RCOMP] = rMap[index[i] & rmask]; - rgba[i][GCOMP] = gMap[index[i] & gmask]; - rgba[i][BCOMP] = bMap[index[i] & bmask]; - rgba[i][ACOMP] = aMap[index[i] & amask]; - } -} - - -void -_mesa_scale_and_bias_depth(const GLcontext *ctx, GLuint n, - GLfloat depthValues[]) -{ - const GLfloat scale = ctx->Pixel.DepthScale; - const GLfloat bias = ctx->Pixel.DepthBias; - GLuint i; - for (i = 0; i < n; i++) { - GLfloat d = depthValues[i] * scale + bias; - depthValues[i] = CLAMP(d, 0.0F, 1.0F); - } -} - - -void -_mesa_scale_and_bias_depth_uint(const GLcontext *ctx, GLuint n, - GLuint depthValues[]) -{ - const GLdouble max = (double) 0xffffffff; - const GLdouble scale = ctx->Pixel.DepthScale; - const GLdouble bias = ctx->Pixel.DepthBias * max; - GLuint i; - for (i = 0; i < n; i++) { - GLdouble d = (GLdouble) depthValues[i] * scale + bias; - d = CLAMP(d, 0.0, max); - depthValues[i] = (GLuint) d; - } -} - -/** - * Apply various pixel transfer operations to an array of RGBA pixels - * as indicated by the transferOps bitmask - */ -void -_mesa_apply_rgba_transfer_ops(GLcontext *ctx, GLbitfield transferOps, - GLuint n, GLfloat rgba[][4]) -{ - /* scale & bias */ - if (transferOps & IMAGE_SCALE_BIAS_BIT) { - _mesa_scale_and_bias_rgba(n, rgba, - ctx->Pixel.RedScale, ctx->Pixel.GreenScale, - ctx->Pixel.BlueScale, ctx->Pixel.AlphaScale, - ctx->Pixel.RedBias, ctx->Pixel.GreenBias, - ctx->Pixel.BlueBias, ctx->Pixel.AlphaBias); - } - /* color map lookup */ - if (transferOps & IMAGE_MAP_COLOR_BIT) { - _mesa_map_rgba( ctx, n, rgba ); - } - - /* clamping to [0,1] */ - if (transferOps & IMAGE_CLAMP_BIT) { - GLuint i; - for (i = 0; i < n; i++) { - rgba[i][RCOMP] = CLAMP(rgba[i][RCOMP], 0.0F, 1.0F); - rgba[i][GCOMP] = CLAMP(rgba[i][GCOMP], 0.0F, 1.0F); - rgba[i][BCOMP] = CLAMP(rgba[i][BCOMP], 0.0F, 1.0F); - rgba[i][ACOMP] = CLAMP(rgba[i][ACOMP], 0.0F, 1.0F); - } - } -} - - -/* - * Apply color index shift and offset to an array of pixels. - */ -static void -shift_and_offset_ci( const GLcontext *ctx, GLuint n, GLuint indexes[] ) -{ - GLint shift = ctx->Pixel.IndexShift; - GLint offset = ctx->Pixel.IndexOffset; - GLuint i; - if (shift > 0) { - for (i=0;i<n;i++) { - indexes[i] = (indexes[i] << shift) + offset; - } - } - else if (shift < 0) { - shift = -shift; - for (i=0;i<n;i++) { - indexes[i] = (indexes[i] >> shift) + offset; - } - } - else { - for (i=0;i<n;i++) { - indexes[i] = indexes[i] + offset; - } - } -} - - - -/** - * Apply color index shift, offset and table lookup to an array - * of color indexes; - */ -void -_mesa_apply_ci_transfer_ops(const GLcontext *ctx, GLbitfield transferOps, - GLuint n, GLuint indexes[]) -{ - if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { - shift_and_offset_ci(ctx, n, indexes); - } - if (transferOps & IMAGE_MAP_COLOR_BIT) { - const GLuint mask = ctx->PixelMaps.ItoI.Size - 1; - GLuint i; - for (i = 0; i < n; i++) { - const GLuint j = indexes[i] & mask; - indexes[i] = IROUND(ctx->PixelMaps.ItoI.Map[j]); - } - } -} - - -/** - * Apply stencil index shift, offset and table lookup to an array - * of stencil values. - */ -void -_mesa_apply_stencil_transfer_ops(const GLcontext *ctx, GLuint n, - GLstencil stencil[]) -{ - if (ctx->Pixel.IndexShift != 0 || ctx->Pixel.IndexOffset != 0) { - const GLint offset = ctx->Pixel.IndexOffset; - GLint shift = ctx->Pixel.IndexShift; - GLuint i; - if (shift > 0) { - for (i = 0; i < n; i++) { - stencil[i] = (stencil[i] << shift) + offset; - } - } - else if (shift < 0) { - shift = -shift; - for (i = 0; i < n; i++) { - stencil[i] = (stencil[i] >> shift) + offset; - } - } - else { - for (i = 0; i < n; i++) { - stencil[i] = stencil[i] + offset; - } - } - } - if (ctx->Pixel.MapStencilFlag) { - GLuint mask = ctx->PixelMaps.StoS.Size - 1; - GLuint i; - for (i = 0; i < n; i++) { - stencil[i] = (GLstencil)ctx->PixelMaps.StoS.Map[ stencil[i] & mask ]; - } - } -} - - -/** - * Used to pack an array [][4] of RGBA float colors as specified - * by the dstFormat, dstType and dstPacking. Used by glReadPixels. - * Note: the rgba values will be modified by this function when any pixel - * transfer ops are enabled. - */ -void -_mesa_pack_rgba_span_float(GLcontext *ctx, GLuint n, GLfloat rgba[][4], - GLenum dstFormat, GLenum dstType, - GLvoid *dstAddr, - const struct gl_pixelstore_attrib *dstPacking, - GLbitfield transferOps) -{ - GLfloat luminance[MAX_WIDTH]; - const GLint comps = _mesa_components_in_format(dstFormat); - GLuint i; - - /* XXX - * This test should probably go away. Have the caller set/clear the - * IMAGE_CLAMP_BIT as needed. - */ - if (dstType != GL_FLOAT || ctx->Color.ClampReadColor == GL_TRUE) { - /* need to clamp to [0, 1] */ - transferOps |= IMAGE_CLAMP_BIT; - } - - if (transferOps) { - _mesa_apply_rgba_transfer_ops(ctx, transferOps, n, rgba); - } - - if (dstFormat == GL_LUMINANCE || dstFormat == GL_LUMINANCE_ALPHA) { - /* compute luminance values */ - if (transferOps & IMAGE_CLAMP_BIT) { - for (i = 0; i < n; i++) { - GLfloat sum = rgba[i][RCOMP] + rgba[i][GCOMP] + rgba[i][BCOMP]; - luminance[i] = CLAMP(sum, 0.0F, 1.0F); - } - } - else { - for (i = 0; i < n; i++) { - luminance[i] = rgba[i][RCOMP] + rgba[i][GCOMP] + rgba[i][BCOMP]; - } - } - } - - /* - * Pack/store the pixels. Ugh! Lots of cases!!! - */ - switch (dstType) { - case GL_UNSIGNED_BYTE: - { - GLubyte *dst = (GLubyte *) dstAddr; - switch (dstFormat) { - case GL_RED: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); - break; - case GL_GREEN: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); - break; - case GL_BLUE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); - break; - case GL_ALPHA: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); - break; - case GL_LUMINANCE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UBYTE(luminance[i]); - break; - case GL_LUMINANCE_ALPHA: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_UBYTE(luminance[i]); - dst[i*2+1] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); - } - break; - case GL_RGB: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); - dst[i*3+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); - } - break; - case GL_RGBA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); - dst[i*4+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); - dst[i*4+3] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); - } - break; - case GL_BGR: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); - dst[i*3+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); - } - break; - case GL_BGRA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); - dst[i*4+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); - dst[i*4+3] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); - } - break; - case GL_ABGR_EXT: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); - dst[i*4+1] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); - dst[i*4+2] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); - dst[i*4+3] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); - } - break; - case GL_DUDV_ATI: - case GL_DU8DV8_ATI: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); - dst[i*2+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); - } - break; - default: - _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); - } - } - break; - case GL_BYTE: - { - GLbyte *dst = (GLbyte *) dstAddr; - switch (dstFormat) { - case GL_RED: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_BYTE(rgba[i][RCOMP]); - break; - case GL_GREEN: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_BYTE(rgba[i][GCOMP]); - break; - case GL_BLUE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_BYTE(rgba[i][BCOMP]); - break; - case GL_ALPHA: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_BYTE(rgba[i][ACOMP]); - break; - case GL_LUMINANCE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_BYTE(luminance[i]); - break; - case GL_LUMINANCE_ALPHA: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_BYTE(luminance[i]); - dst[i*2+1] = FLOAT_TO_BYTE(rgba[i][ACOMP]); - } - break; - case GL_RGB: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); - dst[i*3+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_BYTE(rgba[i][BCOMP]); - } - break; - case GL_RGBA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); - dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][BCOMP]); - dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][ACOMP]); - } - break; - case GL_BGR: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_BYTE(rgba[i][BCOMP]); - dst[i*3+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_BYTE(rgba[i][RCOMP]); - } - break; - case GL_BGRA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][BCOMP]); - dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][RCOMP]); - dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][ACOMP]); - } - break; - case GL_ABGR_EXT: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][ACOMP]); - dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][BCOMP]); - dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][GCOMP]); - dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][RCOMP]); - } - break; - case GL_DUDV_ATI: - case GL_DU8DV8_ATI: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); - dst[i*2+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); - } - break; - default: - _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); - } - } - break; - case GL_UNSIGNED_SHORT: - { - GLushort *dst = (GLushort *) dstAddr; - switch (dstFormat) { - case GL_RED: - for (i=0;i<n;i++) - CLAMPED_FLOAT_TO_USHORT(dst[i], rgba[i][RCOMP]); - break; - case GL_GREEN: - for (i=0;i<n;i++) - CLAMPED_FLOAT_TO_USHORT(dst[i], rgba[i][GCOMP]); - break; - case GL_BLUE: - for (i=0;i<n;i++) - CLAMPED_FLOAT_TO_USHORT(dst[i], rgba[i][BCOMP]); - break; - case GL_ALPHA: - for (i=0;i<n;i++) - CLAMPED_FLOAT_TO_USHORT(dst[i], rgba[i][ACOMP]); - break; - case GL_LUMINANCE: - for (i=0;i<n;i++) - UNCLAMPED_FLOAT_TO_USHORT(dst[i], luminance[i]); - break; - case GL_LUMINANCE_ALPHA: - for (i=0;i<n;i++) { - UNCLAMPED_FLOAT_TO_USHORT(dst[i*2+0], luminance[i]); - CLAMPED_FLOAT_TO_USHORT(dst[i*2+1], rgba[i][ACOMP]); - } - break; - case GL_RGB: - for (i=0;i<n;i++) { - CLAMPED_FLOAT_TO_USHORT(dst[i*3+0], rgba[i][RCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*3+1], rgba[i][GCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*3+2], rgba[i][BCOMP]); - } - break; - case GL_RGBA: - for (i=0;i<n;i++) { - CLAMPED_FLOAT_TO_USHORT(dst[i*4+0], rgba[i][RCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+1], rgba[i][GCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+2], rgba[i][BCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+3], rgba[i][ACOMP]); - } - break; - case GL_BGR: - for (i=0;i<n;i++) { - CLAMPED_FLOAT_TO_USHORT(dst[i*3+0], rgba[i][BCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*3+1], rgba[i][GCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*3+2], rgba[i][RCOMP]); - } - break; - case GL_BGRA: - for (i=0;i<n;i++) { - CLAMPED_FLOAT_TO_USHORT(dst[i*4+0], rgba[i][BCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+1], rgba[i][GCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+2], rgba[i][RCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+3], rgba[i][ACOMP]); - } - break; - case GL_ABGR_EXT: - for (i=0;i<n;i++) { - CLAMPED_FLOAT_TO_USHORT(dst[i*4+0], rgba[i][ACOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+1], rgba[i][BCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+2], rgba[i][GCOMP]); - CLAMPED_FLOAT_TO_USHORT(dst[i*4+3], rgba[i][RCOMP]); - } - break; - case GL_DUDV_ATI: - case GL_DU8DV8_ATI: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_USHORT(rgba[i][RCOMP]); - dst[i*2+1] = FLOAT_TO_USHORT(rgba[i][GCOMP]); - } - break; - default: - _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); - } - } - break; - case GL_SHORT: - { - GLshort *dst = (GLshort *) dstAddr; - switch (dstFormat) { - case GL_RED: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_SHORT(rgba[i][RCOMP]); - break; - case GL_GREEN: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_SHORT(rgba[i][GCOMP]); - break; - case GL_BLUE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_SHORT(rgba[i][BCOMP]); - break; - case GL_ALPHA: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_SHORT(rgba[i][ACOMP]); - break; - case GL_LUMINANCE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_SHORT(luminance[i]); - break; - case GL_LUMINANCE_ALPHA: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_SHORT(luminance[i]); - dst[i*2+1] = FLOAT_TO_SHORT(rgba[i][ACOMP]); - } - break; - case GL_RGB: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]); - dst[i*3+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_SHORT(rgba[i][BCOMP]); - } - break; - case GL_RGBA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]); - dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][BCOMP]); - dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][ACOMP]); - } - break; - case GL_BGR: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_SHORT(rgba[i][BCOMP]); - dst[i*3+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_SHORT(rgba[i][RCOMP]); - } - break; - case GL_BGRA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][BCOMP]); - dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][RCOMP]); - dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][ACOMP]); - } - break; - case GL_ABGR_EXT: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][ACOMP]); - dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][BCOMP]); - dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][GCOMP]); - dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][RCOMP]); - } - break; - case GL_DUDV_ATI: - case GL_DU8DV8_ATI: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]); - dst[i*2+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); - } - break; - default: - _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); - } - } - break; - case GL_UNSIGNED_INT: - { - GLuint *dst = (GLuint *) dstAddr; - switch (dstFormat) { - case GL_RED: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UINT(rgba[i][RCOMP]); - break; - case GL_GREEN: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UINT(rgba[i][GCOMP]); - break; - case GL_BLUE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UINT(rgba[i][BCOMP]); - break; - case GL_ALPHA: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UINT(rgba[i][ACOMP]); - break; - case GL_LUMINANCE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_UINT(luminance[i]); - break; - case GL_LUMINANCE_ALPHA: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_UINT(luminance[i]); - dst[i*2+1] = FLOAT_TO_UINT(rgba[i][ACOMP]); - } - break; - case GL_RGB: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_UINT(rgba[i][RCOMP]); - dst[i*3+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_UINT(rgba[i][BCOMP]); - } - break; - case GL_RGBA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_UINT(rgba[i][RCOMP]); - dst[i*4+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_UINT(rgba[i][BCOMP]); - dst[i*4+3] = FLOAT_TO_UINT(rgba[i][ACOMP]); - } - break; - case GL_BGR: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_UINT(rgba[i][BCOMP]); - dst[i*3+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_UINT(rgba[i][RCOMP]); - } - break; - case GL_BGRA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_UINT(rgba[i][BCOMP]); - dst[i*4+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_UINT(rgba[i][RCOMP]); - dst[i*4+3] = FLOAT_TO_UINT(rgba[i][ACOMP]); - } - break; - case GL_ABGR_EXT: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_UINT(rgba[i][ACOMP]); - dst[i*4+1] = FLOAT_TO_UINT(rgba[i][BCOMP]); - dst[i*4+2] = FLOAT_TO_UINT(rgba[i][GCOMP]); - dst[i*4+3] = FLOAT_TO_UINT(rgba[i][RCOMP]); - } - break; - case GL_DUDV_ATI: - case GL_DU8DV8_ATI: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_UINT(rgba[i][RCOMP]); - dst[i*2+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); - } - break; - default: - _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); - } - } - break; - case GL_INT: - { - GLint *dst = (GLint *) dstAddr; - switch (dstFormat) { - case GL_RED: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_INT(rgba[i][RCOMP]); - break; - case GL_GREEN: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_INT(rgba[i][GCOMP]); - break; - case GL_BLUE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_INT(rgba[i][BCOMP]); - break; - case GL_ALPHA: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_INT(rgba[i][ACOMP]); - break; - case GL_LUMINANCE: - for (i=0;i<n;i++) - dst[i] = FLOAT_TO_INT(luminance[i]); - break; - case GL_LUMINANCE_ALPHA: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_INT(luminance[i]); - dst[i*2+1] = FLOAT_TO_INT(rgba[i][ACOMP]); - } - break; - case GL_RGB: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_INT(rgba[i][RCOMP]); - dst[i*3+1] = FLOAT_TO_INT(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_INT(rgba[i][BCOMP]); - } - break; - case GL_RGBA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_INT(rgba[i][RCOMP]); - dst[i*4+1] = FLOAT_TO_INT(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_INT(rgba[i][BCOMP]); - dst[i*4+3] = FLOAT_TO_INT(rgba[i][ACOMP]); - } - break; - case GL_BGR: - for (i=0;i<n;i++) { - dst[i*3+0] = FLOAT_TO_INT(rgba[i][BCOMP]); - dst[i*3+1] = FLOAT_TO_INT(rgba[i][GCOMP]); - dst[i*3+2] = FLOAT_TO_INT(rgba[i][RCOMP]); - } - break; - case GL_BGRA: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_INT(rgba[i][BCOMP]); - dst[i*4+1] = FLOAT_TO_INT(rgba[i][GCOMP]); - dst[i*4+2] = FLOAT_TO_INT(rgba[i][RCOMP]); - dst[i*4+3] = FLOAT_TO_INT(rgba[i][ACOMP]); - } - break; - case GL_ABGR_EXT: - for (i=0;i<n;i++) { - dst[i*4+0] = FLOAT_TO_INT(rgba[i][ACOMP]); - dst[i*4+1] = FLOAT_TO_INT(rgba[i][BCOMP]); - dst[i*4+2] = FLOAT_TO_INT(rgba[i][GCOMP]); - dst[i*4+3] = FLOAT_TO_INT(rgba[i][RCOMP]); - } - break; - case GL_DUDV_ATI: - case GL_DU8DV8_ATI: - for (i=0;i<n;i++) { - dst[i*2+0] = FLOAT_TO_INT(rgba[i][RCOMP]); - dst[i*2+1] = FLOAT_TO_INT(rgba[i][GCOMP]); - } - break; - default: - _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); - } - } - break; - case GL_FLOAT: - { - GLfloat *dst = (GLfloat *) dstAddr; - switch (dstFormat) { - case GL_RED: - for (i=0;i<n;i++) - dst[i] = rgba[i][RCOMP]; - break; - case GL_GREEN: - for (i=0;i<n;i++) - dst[i] = rgba[i][GCOMP]; - break; - case GL_BLUE: - for (i=0;i<n;i++) - dst[i] = rgba[i][BCOMP]; - break; - case GL_ALPHA: - for (i=0;i<n;i++) - dst[i] = rgba[i][ACOMP]; - break; - case GL_LUMINANCE: - for (i=0;i<n;i++) - dst[i] = luminance[i]; - break; - case GL_LUMINANCE_ALPHA: - for (i=0;i<n;i++) { - dst[i*2+0] = luminance[i]; - dst[i*2+1] = rgba[i][ACOMP]; - } - break; - case GL_RGB: - for (i=0;i<n;i++) { - dst[i*3+0] = rgba[i][RCOMP]; - dst[i*3+1] = rgba[i][GCOMP]; - dst[i*3+2] = rgba[i][BCOMP]; - } - break; - case GL_RGBA: - for (i=0;i<n;i++) { - dst[i*4+0] = rgba[i][RCOMP]; - dst[i*4+1] = rgba[i][GCOMP]; - dst[i*4+2] = rgba[i][BCOMP]; - dst[i*4+3] = rgba[i][ACOMP]; - } - break; - case GL_BGR: - for (i=0;i<n;i++) { - dst[i*3+0] = rgba[i][BCOMP]; - dst[i*3+1] = rgba[i][GCOMP]; - dst[i*3+2] = rgba[i][RCOMP]; - } - break; - case GL_BGRA: - for (i=0;i<n;i++) { - dst[i*4+0] = rgba[i][BCOMP]; - dst[i*4+1] = rgba[i][GCOMP]; - dst[i*4+2] = rgba[i][RCOMP]; - dst[i*4+3] = rgba[i][ACOMP]; - } - break; - case GL_ABGR_EXT: - for (i=0;i<n;i++) { - dst[i*4+0] = rgba[i][ACOMP]; - dst[i*4+1] = rgba[i][BCOMP]; - dst[i*4+2] = rgba[i][GCOMP]; - dst[i*4+3] = rgba[i][RCOMP]; - } - break; - case GL_DUDV_ATI: - case GL_DU8DV8_ATI: - for (i=0;i<n;i++) { - dst[i*2+0] = rgba[i][RCOMP]; - dst[i*2+1] = rgba[i][GCOMP]; - } - break; - default: - _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); - } - } - break; - case GL_HALF_FLOAT_ARB: - { - GLhalfARB *dst = (GLhalfARB *) dstAddr; - switch (dstFormat) { - case GL_RED: - for (i=0;i<n;i++) - dst[i] = _mesa_float_to_half(rgba[i][RCOMP]); - break; - case GL_GREEN: - for (i=0;i<n;i++) - dst[i] = _mesa_float_to_half(rgba[i][GCOMP]); - break; - case GL_BLUE: - for (i=0;i<n;i++) - dst[i] = _mesa_float_to_half(rgba[i][BCOMP]); - break; - case GL_ALPHA: - for (i=0;i<n;i++) - dst[i] = _mesa_float_to_half(rgba[i][ACOMP]); - break; - case GL_LUMINANCE: - for (i=0;i<n;i++) - dst[i] = _mesa_float_to_half(luminance[i]); - break; - case GL_LUMINANCE_ALPHA: - for (i=0;i<n;i++) { - dst[i*2+0] = _mesa_float_to_half(luminance[i]); - dst[i*2+1] = _mesa_float_to_half(rgba[i][ACOMP]); - } - break; - case GL_RGB: - for (i=0;i<n;i++) { - dst[i*3+0] = _mesa_float_to_half(rgba[i][RCOMP]); - dst[i*3+1] = _mesa_float_to_half(rgba[i][GCOMP]); - dst[i*3+2] = _mesa_float_to_half(rgba[i][BCOMP]); - } - break; - case GL_RGBA: - for (i=0;i<n;i++) { - dst[i*4+0] = _mesa_float_to_half(rgba[i][RCOMP]); - dst[i*4+1] = _mesa_float_to_half(rgba[i][GCOMP]); - dst[i*4+2] = _mesa_float_to_half(rgba[i][BCOMP]); - dst[i*4+3] = _mesa_float_to_half(rgba[i][ACOMP]); - } - break; - case GL_BGR: - for (i=0;i<n;i++) { - dst[i*3+0] = _mesa_float_to_half(rgba[i][BCOMP]); - dst[i*3+1] = _mesa_float_to_half(rgba[i][GCOMP]); - dst[i*3+2] = _mesa_float_to_half(rgba[i][RCOMP]); - } - break; - case GL_BGRA: - for (i=0;i<n;i++) { - dst[i*4+0] = _mesa_float_to_half(rgba[i][BCOMP]); - dst[i*4+1] = _mesa_float_to_half(rgba[i][GCOMP]); - dst[i*4+2] = _mesa_float_to_half(rgba[i][RCOMP]); - dst[i*4+3] = _mesa_float_to_half(rgba[i][ACOMP]); - } - break; - case GL_ABGR_EXT: - for (i=0;i<n;i++) { - dst[i*4+0] = _mesa_float_to_half(rgba[i][ACOMP]); - dst[i*4+1] = _mesa_float_to_half(rgba[i][BCOMP]); - dst[i*4+2] = _mesa_float_to_half(rgba[i][GCOMP]); - dst[i*4+3] = _mesa_float_to_half(rgba[i][RCOMP]); - } - break; - case GL_DUDV_ATI: - case GL_DU8DV8_ATI: - for (i=0;i<n;i++) { - dst[i*2+0] = _mesa_float_to_half(rgba[i][RCOMP]); - dst[i*2+1] = _mesa_float_to_half(rgba[i][GCOMP]); - } - break; - default: - _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); - } - } - break; - case GL_UNSIGNED_BYTE_3_3_2: - if (dstFormat == GL_RGB) { - GLubyte *dst = (GLubyte *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 7.0F) << 5) - | (IROUND(rgba[i][GCOMP] * 7.0F) << 2) - | (IROUND(rgba[i][BCOMP] * 3.0F) ); - } - } - break; - case GL_UNSIGNED_BYTE_2_3_3_REV: - if (dstFormat == GL_RGB) { - GLubyte *dst = (GLubyte *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 7.0F) ) - | (IROUND(rgba[i][GCOMP] * 7.0F) << 3) - | (IROUND(rgba[i][BCOMP] * 3.0F) << 6); - } - } - break; - case GL_UNSIGNED_SHORT_5_6_5: - if (dstFormat == GL_RGB) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 31.0F) << 11) - | (IROUND(rgba[i][GCOMP] * 63.0F) << 5) - | (IROUND(rgba[i][BCOMP] * 31.0F) ); - } - } - break; - case GL_UNSIGNED_SHORT_5_6_5_REV: - if (dstFormat == GL_RGB) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 31.0F) ) - | (IROUND(rgba[i][GCOMP] * 63.0F) << 5) - | (IROUND(rgba[i][BCOMP] * 31.0F) << 11); - } - } - break; - case GL_UNSIGNED_SHORT_4_4_4_4: - if (dstFormat == GL_RGBA) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 15.0F) << 12) - | (IROUND(rgba[i][GCOMP] * 15.0F) << 8) - | (IROUND(rgba[i][BCOMP] * 15.0F) << 4) - | (IROUND(rgba[i][ACOMP] * 15.0F) ); - } - } - else if (dstFormat == GL_BGRA) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][BCOMP] * 15.0F) << 12) - | (IROUND(rgba[i][GCOMP] * 15.0F) << 8) - | (IROUND(rgba[i][RCOMP] * 15.0F) << 4) - | (IROUND(rgba[i][ACOMP] * 15.0F) ); - } - } - else if (dstFormat == GL_ABGR_EXT) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][ACOMP] * 15.0F) << 12) - | (IROUND(rgba[i][BCOMP] * 15.0F) << 8) - | (IROUND(rgba[i][GCOMP] * 15.0F) << 4) - | (IROUND(rgba[i][RCOMP] * 15.0F) ); - } - } - break; - case GL_UNSIGNED_SHORT_4_4_4_4_REV: - if (dstFormat == GL_RGBA) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 15.0F) ) - | (IROUND(rgba[i][GCOMP] * 15.0F) << 4) - | (IROUND(rgba[i][BCOMP] * 15.0F) << 8) - | (IROUND(rgba[i][ACOMP] * 15.0F) << 12); - } - } - else if (dstFormat == GL_BGRA) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][BCOMP] * 15.0F) ) - | (IROUND(rgba[i][GCOMP] * 15.0F) << 4) - | (IROUND(rgba[i][RCOMP] * 15.0F) << 8) - | (IROUND(rgba[i][ACOMP] * 15.0F) << 12); - } - } - else if (dstFormat == GL_ABGR_EXT) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][ACOMP] * 15.0F) ) - | (IROUND(rgba[i][BCOMP] * 15.0F) << 4) - | (IROUND(rgba[i][GCOMP] * 15.0F) << 8) - | (IROUND(rgba[i][RCOMP] * 15.0F) << 12); - } - } - break; - case GL_UNSIGNED_SHORT_5_5_5_1: - if (dstFormat == GL_RGBA) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 31.0F) << 11) - | (IROUND(rgba[i][GCOMP] * 31.0F) << 6) - | (IROUND(rgba[i][BCOMP] * 31.0F) << 1) - | (IROUND(rgba[i][ACOMP] * 1.0F) ); - } - } - else if (dstFormat == GL_BGRA) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][BCOMP] * 31.0F) << 11) - | (IROUND(rgba[i][GCOMP] * 31.0F) << 6) - | (IROUND(rgba[i][RCOMP] * 31.0F) << 1) - | (IROUND(rgba[i][ACOMP] * 1.0F) ); - } - } - else if (dstFormat == GL_ABGR_EXT) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][ACOMP] * 31.0F) << 11) - | (IROUND(rgba[i][BCOMP] * 31.0F) << 6) - | (IROUND(rgba[i][GCOMP] * 31.0F) << 1) - | (IROUND(rgba[i][RCOMP] * 1.0F) ); - } - } - break; - case GL_UNSIGNED_SHORT_1_5_5_5_REV: - if (dstFormat == GL_RGBA) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 31.0F) ) - | (IROUND(rgba[i][GCOMP] * 31.0F) << 5) - | (IROUND(rgba[i][BCOMP] * 31.0F) << 10) - | (IROUND(rgba[i][ACOMP] * 1.0F) << 15); - } - } - else if (dstFormat == GL_BGRA) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][BCOMP] * 31.0F) ) - | (IROUND(rgba[i][GCOMP] * 31.0F) << 5) - | (IROUND(rgba[i][RCOMP] * 31.0F) << 10) - | (IROUND(rgba[i][ACOMP] * 1.0F) << 15); - } - } - else if (dstFormat == GL_ABGR_EXT) { - GLushort *dst = (GLushort *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][ACOMP] * 31.0F) ) - | (IROUND(rgba[i][BCOMP] * 31.0F) << 5) - | (IROUND(rgba[i][GCOMP] * 31.0F) << 10) - | (IROUND(rgba[i][RCOMP] * 1.0F) << 15); - } - } - break; - case GL_UNSIGNED_INT_8_8_8_8: - if (dstFormat == GL_RGBA) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 255.F) << 24) - | (IROUND(rgba[i][GCOMP] * 255.F) << 16) - | (IROUND(rgba[i][BCOMP] * 255.F) << 8) - | (IROUND(rgba[i][ACOMP] * 255.F) ); - } - } - else if (dstFormat == GL_BGRA) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][BCOMP] * 255.F) << 24) - | (IROUND(rgba[i][GCOMP] * 255.F) << 16) - | (IROUND(rgba[i][RCOMP] * 255.F) << 8) - | (IROUND(rgba[i][ACOMP] * 255.F) ); - } - } - else if (dstFormat == GL_ABGR_EXT) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][ACOMP] * 255.F) << 24) - | (IROUND(rgba[i][BCOMP] * 255.F) << 16) - | (IROUND(rgba[i][GCOMP] * 255.F) << 8) - | (IROUND(rgba[i][RCOMP] * 255.F) ); - } - } - break; - case GL_UNSIGNED_INT_8_8_8_8_REV: - if (dstFormat == GL_RGBA) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 255.0F) ) - | (IROUND(rgba[i][GCOMP] * 255.0F) << 8) - | (IROUND(rgba[i][BCOMP] * 255.0F) << 16) - | (IROUND(rgba[i][ACOMP] * 255.0F) << 24); - } - } - else if (dstFormat == GL_BGRA) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][BCOMP] * 255.0F) ) - | (IROUND(rgba[i][GCOMP] * 255.0F) << 8) - | (IROUND(rgba[i][RCOMP] * 255.0F) << 16) - | (IROUND(rgba[i][ACOMP] * 255.0F) << 24); - } - } - else if (dstFormat == GL_ABGR_EXT) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][ACOMP] * 255.0F) ) - | (IROUND(rgba[i][BCOMP] * 255.0F) << 8) - | (IROUND(rgba[i][GCOMP] * 255.0F) << 16) - | (IROUND(rgba[i][RCOMP] * 255.0F) << 24); - } - } - break; - case GL_UNSIGNED_INT_10_10_10_2: - if (dstFormat == GL_RGBA) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 1023.0F) << 22) - | (IROUND(rgba[i][GCOMP] * 1023.0F) << 12) - | (IROUND(rgba[i][BCOMP] * 1023.0F) << 2) - | (IROUND(rgba[i][ACOMP] * 3.0F) ); - } - } - else if (dstFormat == GL_BGRA) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][BCOMP] * 1023.0F) << 22) - | (IROUND(rgba[i][GCOMP] * 1023.0F) << 12) - | (IROUND(rgba[i][RCOMP] * 1023.0F) << 2) - | (IROUND(rgba[i][ACOMP] * 3.0F) ); - } - } - else if (dstFormat == GL_ABGR_EXT) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][ACOMP] * 1023.0F) << 22) - | (IROUND(rgba[i][BCOMP] * 1023.0F) << 12) - | (IROUND(rgba[i][GCOMP] * 1023.0F) << 2) - | (IROUND(rgba[i][RCOMP] * 3.0F) ); - } - } - break; - case GL_UNSIGNED_INT_2_10_10_10_REV: - if (dstFormat == GL_RGBA) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][RCOMP] * 1023.0F) ) - | (IROUND(rgba[i][GCOMP] * 1023.0F) << 10) - | (IROUND(rgba[i][BCOMP] * 1023.0F) << 20) - | (IROUND(rgba[i][ACOMP] * 3.0F) << 30); - } - } - else if (dstFormat == GL_BGRA) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][BCOMP] * 1023.0F) ) - | (IROUND(rgba[i][GCOMP] * 1023.0F) << 10) - | (IROUND(rgba[i][RCOMP] * 1023.0F) << 20) - | (IROUND(rgba[i][ACOMP] * 3.0F) << 30); - } - } - else if (dstFormat == GL_ABGR_EXT) { - GLuint *dst = (GLuint *) dstAddr; - for (i=0;i<n;i++) { - dst[i] = (IROUND(rgba[i][ACOMP] * 1023.0F) ) - | (IROUND(rgba[i][BCOMP] * 1023.0F) << 10) - | (IROUND(rgba[i][GCOMP] * 1023.0F) << 20) - | (IROUND(rgba[i][RCOMP] * 3.0F) << 30); - } - } - break; - default: - _mesa_problem(ctx, "bad type in _mesa_pack_rgba_span_float"); - return; - } - - if (dstPacking->SwapBytes) { - GLint swapSize = _mesa_sizeof_packed_type(dstType); - if (swapSize == 2) { - if (dstPacking->SwapBytes) { - _mesa_swap2((GLushort *) dstAddr, n * comps); - } - } - else if (swapSize == 4) { - if (dstPacking->SwapBytes) { - _mesa_swap4((GLuint *) dstAddr, n * comps); - } - } - } -} - - -#define SWAP2BYTE(VALUE) \ - { \ - GLubyte *bytes = (GLubyte *) &(VALUE); \ - GLubyte tmp = bytes[0]; \ - bytes[0] = bytes[1]; \ - bytes[1] = tmp; \ - } - -#define SWAP4BYTE(VALUE) \ - { \ - GLubyte *bytes = (GLubyte *) &(VALUE); \ - GLubyte tmp = bytes[0]; \ - bytes[0] = bytes[3]; \ - bytes[3] = tmp; \ - tmp = bytes[1]; \ - bytes[1] = bytes[2]; \ - bytes[2] = tmp; \ - } - - -static void -extract_uint_indexes(GLuint n, GLuint indexes[], - GLenum srcFormat, GLenum srcType, const GLvoid *src, - const struct gl_pixelstore_attrib *unpack ) -{ - ASSERT(srcFormat == GL_COLOR_INDEX || srcFormat == GL_STENCIL_INDEX); - - ASSERT(srcType == GL_BITMAP || - srcType == GL_UNSIGNED_BYTE || - srcType == GL_BYTE || - srcType == GL_UNSIGNED_SHORT || - srcType == GL_SHORT || - srcType == GL_UNSIGNED_INT || - srcType == GL_INT || - srcType == GL_UNSIGNED_INT_24_8_EXT || - srcType == GL_HALF_FLOAT_ARB || - srcType == GL_FLOAT); - - switch (srcType) { - case GL_BITMAP: - { - GLubyte *ubsrc = (GLubyte *) src; - if (unpack->LsbFirst) { - GLubyte mask = 1 << (unpack->SkipPixels & 0x7); - GLuint i; - for (i = 0; i < n; i++) { - indexes[i] = (*ubsrc & mask) ? 1 : 0; - if (mask == 128) { - mask = 1; - ubsrc++; - } - else { - mask = mask << 1; - } - } - } - else { - GLubyte mask = 128 >> (unpack->SkipPixels & 0x7); - GLuint i; - for (i = 0; i < n; i++) { - indexes[i] = (*ubsrc & mask) ? 1 : 0; - if (mask == 1) { - mask = 128; - ubsrc++; - } - else { - mask = mask >> 1; - } - } - } - } - break; - case GL_UNSIGNED_BYTE: - { - GLuint i; - const GLubyte *s = (const GLubyte *) src; - for (i = 0; i < n; i++) - indexes[i] = s[i]; - } - break; - case GL_BYTE: - { - GLuint i; - const GLbyte *s = (const GLbyte *) src; - for (i = 0; i < n; i++) - indexes[i] = s[i]; - } - break; - case GL_UNSIGNED_SHORT: - { - GLuint i; - const GLushort *s = (const GLushort *) src; - if (unpack->SwapBytes) { - for (i = 0; i < n; i++) { - GLushort value = s[i]; - SWAP2BYTE(value); - indexes[i] = value; - } - } - else { - for (i = 0; i < n; i++) - indexes[i] = s[i]; - } - } - break; - case GL_SHORT: - { - GLuint i; - const GLshort *s = (const GLshort *) src; - if (unpack->SwapBytes) { - for (i = 0; i < n; i++) { - GLshort value = s[i]; - SWAP2BYTE(value); - indexes[i] = value; - } - } - else { - for (i = 0; i < n; i++) - indexes[i] = s[i]; - } - } - break; - case GL_UNSIGNED_INT: - { - GLuint i; - const GLuint *s = (const GLuint *) src; - if (unpack->SwapBytes) { - for (i = 0; i < n; i++) { - GLuint value = s[i]; - SWAP4BYTE(value); - indexes[i] = value; - } - } - else { - for (i = 0; i < n; i++) - indexes[i] = s[i]; - } - } - break; - case GL_INT: - { - GLuint i; - const GLint *s = (const GLint *) src; - if (unpack->SwapBytes) { - for (i = 0; i < n; i++) { - GLint value = s[i]; - SWAP4BYTE(value); - indexes[i] = value; - } - } - else { - for (i = 0; i < n; i++) - indexes[i] = s[i]; - } - } - break; - case GL_FLOAT: - { - GLuint i; - const GLfloat *s = (const GLfloat *) src; - if (unpack->SwapBytes) { - for (i = 0; i < n; i++) { - GLfloat value = s[i]; - SWAP4BYTE(value); - indexes[i] = (GLuint) value; - } - } - else { - for (i = 0; i < n; i++) - indexes[i] = (GLuint) s[i]; - } - } - break; - case GL_HALF_FLOAT_ARB: - { - GLuint i; - const GLhalfARB *s = (const GLhalfARB *) src; - if (unpack->SwapBytes) { - for (i = 0; i < n; i++) { - GLhalfARB value = s[i]; - SWAP2BYTE(value); - indexes[i] = (GLuint) _mesa_half_to_float(value); - } - } - else { - for (i = 0; i < n; i++) - indexes[i] = (GLuint) _mesa_half_to_float(s[i]); - } - } - break; - case GL_UNSIGNED_INT_24_8_EXT: - { - GLuint i; - const GLuint *s = (const GLuint *) src; - if (unpack->SwapBytes) { - for (i = 0; i < n; i++) { - GLuint value = s[i]; - SWAP4BYTE(value); - indexes[i] = value & 0xff; /* lower 8 bits */ - } - } - else { - for (i = 0; i < n; i++) - indexes[i] = s[i] & 0xff; /* lower 8 bits */ - } - } - break; - - default: - _mesa_problem(NULL, "bad srcType in extract_uint_indexes"); - return; - } -} - - -/* - * This function extracts floating point RGBA values from arbitrary - * image data. srcFormat and srcType are the format and type parameters - * passed to glDrawPixels, glTexImage[123]D, glTexSubImage[123]D, etc. - * - * Refering to section 3.6.4 of the OpenGL 1.2 spec, this function - * implements the "Conversion to floating point", "Conversion to RGB", - * and "Final Expansion to RGBA" operations. - * - * Args: n - number of pixels - * rgba - output colors - * srcFormat - format of incoming data - * srcType - data type of incoming data - * src - source data pointer - * swapBytes - perform byteswapping of incoming data? - */ -static void -extract_float_rgba(GLuint n, GLfloat rgba[][4], - GLenum srcFormat, GLenum srcType, const GLvoid *src, - GLboolean swapBytes) -{ - GLint redIndex, greenIndex, blueIndex, alphaIndex; - GLint stride; - GLint rComp, bComp, gComp, aComp; - GLboolean intFormat; - GLfloat rs = 1.0f, gs = 1.0f, bs = 1.0f, as = 1.0f; /* scale factors */ - - ASSERT(srcFormat == GL_RED || - srcFormat == GL_GREEN || - srcFormat == GL_BLUE || - srcFormat == GL_ALPHA || - srcFormat == GL_LUMINANCE || - srcFormat == GL_LUMINANCE_ALPHA || - srcFormat == GL_INTENSITY || - srcFormat == GL_RG || - srcFormat == GL_RGB || - srcFormat == GL_BGR || - srcFormat == GL_RGBA || - srcFormat == GL_BGRA || - srcFormat == GL_ABGR_EXT || - srcFormat == GL_DU8DV8_ATI || - srcFormat == GL_DUDV_ATI || - srcFormat == GL_RED_INTEGER_EXT || - srcFormat == GL_GREEN_INTEGER_EXT || - srcFormat == GL_BLUE_INTEGER_EXT || - srcFormat == GL_ALPHA_INTEGER_EXT || - srcFormat == GL_RGB_INTEGER_EXT || - srcFormat == GL_RGBA_INTEGER_EXT || - srcFormat == GL_BGR_INTEGER_EXT || - srcFormat == GL_BGRA_INTEGER_EXT || - srcFormat == GL_LUMINANCE_INTEGER_EXT || - srcFormat == GL_LUMINANCE_ALPHA_INTEGER_EXT); - - ASSERT(srcType == GL_UNSIGNED_BYTE || - srcType == GL_BYTE || - srcType == GL_UNSIGNED_SHORT || - srcType == GL_SHORT || - srcType == GL_UNSIGNED_INT || - srcType == GL_INT || - srcType == GL_HALF_FLOAT_ARB || - srcType == GL_FLOAT || - srcType == GL_UNSIGNED_BYTE_3_3_2 || - srcType == GL_UNSIGNED_BYTE_2_3_3_REV || - srcType == GL_UNSIGNED_SHORT_5_6_5 || - srcType == GL_UNSIGNED_SHORT_5_6_5_REV || - srcType == GL_UNSIGNED_SHORT_4_4_4_4 || - srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV || - srcType == GL_UNSIGNED_SHORT_5_5_5_1 || - srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV || - srcType == GL_UNSIGNED_INT_8_8_8_8 || - srcType == GL_UNSIGNED_INT_8_8_8_8_REV || - srcType == GL_UNSIGNED_INT_10_10_10_2 || - srcType == GL_UNSIGNED_INT_2_10_10_10_REV); - - rComp = gComp = bComp = aComp = -1; - - switch (srcFormat) { - case GL_RED: - case GL_RED_INTEGER_EXT: - redIndex = 0; - greenIndex = blueIndex = alphaIndex = -1; - stride = 1; - break; - case GL_GREEN: - case GL_GREEN_INTEGER_EXT: - greenIndex = 0; - redIndex = blueIndex = alphaIndex = -1; - stride = 1; - break; - case GL_BLUE: - case GL_BLUE_INTEGER_EXT: - blueIndex = 0; - redIndex = greenIndex = alphaIndex = -1; - stride = 1; - break; - case GL_ALPHA: - case GL_ALPHA_INTEGER_EXT: - redIndex = greenIndex = blueIndex = -1; - alphaIndex = 0; - stride = 1; - break; - case GL_LUMINANCE: - case GL_LUMINANCE_INTEGER_EXT: - redIndex = greenIndex = blueIndex = 0; - alphaIndex = -1; - stride = 1; - break; - case GL_LUMINANCE_ALPHA: - case GL_LUMINANCE_ALPHA_INTEGER_EXT: - redIndex = greenIndex = blueIndex = 0; - alphaIndex = 1; - stride = 2; - break; - case GL_INTENSITY: - redIndex = greenIndex = blueIndex = alphaIndex = 0; - stride = 1; - break; - case GL_RG: - case GL_RG_INTEGER: - redIndex = 0; - greenIndex = 1; - blueIndex = -1; - alphaIndex = -1; - rComp = 0; - gComp = 1; - bComp = 2; - aComp = 3; - stride = 2; - break; - case GL_RGB: - case GL_RGB_INTEGER: - redIndex = 0; - greenIndex = 1; - blueIndex = 2; - alphaIndex = -1; - rComp = 0; - gComp = 1; - bComp = 2; - aComp = 3; - stride = 3; - break; - case GL_BGR: - redIndex = 2; - greenIndex = 1; - blueIndex = 0; - alphaIndex = -1; - rComp = 2; - gComp = 1; - bComp = 0; - aComp = 3; - stride = 3; - break; - case GL_RGBA: - case GL_RGBA_INTEGER: - redIndex = 0; - greenIndex = 1; - blueIndex = 2; - alphaIndex = 3; - rComp = 0; - gComp = 1; - bComp = 2; - aComp = 3; - stride = 4; - break; - case GL_BGRA: - redIndex = 2; - greenIndex = 1; - blueIndex = 0; - alphaIndex = 3; - rComp = 2; - gComp = 1; - bComp = 0; - aComp = 3; - stride = 4; - break; - case GL_ABGR_EXT: - redIndex = 3; - greenIndex = 2; - blueIndex = 1; - alphaIndex = 0; - rComp = 3; - gComp = 2; - bComp = 1; - aComp = 0; - stride = 4; - break; - case GL_DU8DV8_ATI: - case GL_DUDV_ATI: - redIndex = 0; - greenIndex = 1; - blueIndex = -1; - alphaIndex = -1; - stride = 2; - break; - default: - _mesa_problem(NULL, "bad srcFormat %s in extract float data", - _mesa_lookup_enum_by_nr(srcFormat)); - return; - } - - intFormat = _mesa_is_integer_format(srcFormat); - -#define PROCESS(INDEX, CHANNEL, DEFAULT, DEFAULT_INT, TYPE, CONVERSION) \ - if ((INDEX) < 0) { \ - GLuint i; \ - if (intFormat) { \ - for (i = 0; i < n; i++) { \ - rgba[i][CHANNEL] = DEFAULT_INT; \ - } \ - } \ - else { \ - for (i = 0; i < n; i++) { \ - rgba[i][CHANNEL] = DEFAULT; \ - } \ - } \ - } \ - else if (swapBytes) { \ - const TYPE *s = (const TYPE *) src; \ - GLuint i; \ - for (i = 0; i < n; i++) { \ - TYPE value = s[INDEX]; \ - if (sizeof(TYPE) == 2) { \ - SWAP2BYTE(value); \ - } \ - else if (sizeof(TYPE) == 4) { \ - SWAP4BYTE(value); \ - } \ - if (intFormat) \ - rgba[i][CHANNEL] = (GLfloat) value; \ - else \ - rgba[i][CHANNEL] = (GLfloat) CONVERSION(value); \ - s += stride; \ - } \ - } \ - else { \ - const TYPE *s = (const TYPE *) src; \ - GLuint i; \ - if (intFormat) { \ - for (i = 0; i < n; i++) { \ - rgba[i][CHANNEL] = (GLfloat) s[INDEX]; \ - s += stride; \ - } \ - } \ - else { \ - for (i = 0; i < n; i++) { \ - rgba[i][CHANNEL] = (GLfloat) CONVERSION(s[INDEX]); \ - s += stride; \ - } \ - } \ - } - - switch (srcType) { - case GL_UNSIGNED_BYTE: - PROCESS(redIndex, RCOMP, 0.0F, 0, GLubyte, UBYTE_TO_FLOAT); - PROCESS(greenIndex, GCOMP, 0.0F, 0, GLubyte, UBYTE_TO_FLOAT); - PROCESS(blueIndex, BCOMP, 0.0F, 0, GLubyte, UBYTE_TO_FLOAT); - PROCESS(alphaIndex, ACOMP, 1.0F, 255, GLubyte, UBYTE_TO_FLOAT); - break; - case GL_BYTE: - PROCESS(redIndex, RCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT); - PROCESS(greenIndex, GCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT); - PROCESS(blueIndex, BCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT); - PROCESS(alphaIndex, ACOMP, 1.0F, 127, GLbyte, BYTE_TO_FLOAT); - break; - case GL_UNSIGNED_SHORT: - PROCESS(redIndex, RCOMP, 0.0F, 0, GLushort, USHORT_TO_FLOAT); - PROCESS(greenIndex, GCOMP, 0.0F, 0, GLushort, USHORT_TO_FLOAT); - PROCESS(blueIndex, BCOMP, 0.0F, 0, GLushort, USHORT_TO_FLOAT); - PROCESS(alphaIndex, ACOMP, 1.0F, 0xffff, GLushort, USHORT_TO_FLOAT); - break; - case GL_SHORT: - PROCESS(redIndex, RCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT); - PROCESS(greenIndex, GCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT); - PROCESS(blueIndex, BCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT); - PROCESS(alphaIndex, ACOMP, 1.0F, 32767, GLshort, SHORT_TO_FLOAT); - break; - case GL_UNSIGNED_INT: - PROCESS(redIndex, RCOMP, 0.0F, 0, GLuint, UINT_TO_FLOAT); - PROCESS(greenIndex, GCOMP, 0.0F, 0, GLuint, UINT_TO_FLOAT); - PROCESS(blueIndex, BCOMP, 0.0F, 0, GLuint, UINT_TO_FLOAT); - PROCESS(alphaIndex, ACOMP, 1.0F, 0xffffffff, GLuint, UINT_TO_FLOAT); - break; - case GL_INT: - PROCESS(redIndex, RCOMP, 0.0F, 0, GLint, INT_TO_FLOAT); - PROCESS(greenIndex, GCOMP, 0.0F, 0, GLint, INT_TO_FLOAT); - PROCESS(blueIndex, BCOMP, 0.0F, 0, GLint, INT_TO_FLOAT); - PROCESS(alphaIndex, ACOMP, 1.0F, 2147483647, GLint, INT_TO_FLOAT); - break; - case GL_FLOAT: - PROCESS(redIndex, RCOMP, 0.0F, 0.0F, GLfloat, (GLfloat)); - PROCESS(greenIndex, GCOMP, 0.0F, 0.0F, GLfloat, (GLfloat)); - PROCESS(blueIndex, BCOMP, 0.0F, 0.0F, GLfloat, (GLfloat)); - PROCESS(alphaIndex, ACOMP, 1.0F, 1.0F, GLfloat, (GLfloat)); - break; - case GL_HALF_FLOAT_ARB: - PROCESS(redIndex, RCOMP, 0.0F, 0.0F, GLhalfARB, _mesa_half_to_float); - PROCESS(greenIndex, GCOMP, 0.0F, 0.0F, GLhalfARB, _mesa_half_to_float); - PROCESS(blueIndex, BCOMP, 0.0F, 0.0F, GLhalfARB, _mesa_half_to_float); - PROCESS(alphaIndex, ACOMP, 1.0F, 1.0F, GLhalfARB, _mesa_half_to_float); - break; - case GL_UNSIGNED_BYTE_3_3_2: - { - const GLubyte *ubsrc = (const GLubyte *) src; - GLuint i; - if (!intFormat) { - rs = 1.0F / 7.0F; - gs = 1.0F / 7.0F; - bs = 1.0F / 3.0F; - } - for (i = 0; i < n; i ++) { - GLubyte p = ubsrc[i]; - rgba[i][rComp] = ((p >> 5) ) * rs; - rgba[i][gComp] = ((p >> 2) & 0x7) * gs; - rgba[i][bComp] = ((p ) & 0x3) * bs; - rgba[i][aComp] = 1.0F; - } - } - break; - case GL_UNSIGNED_BYTE_2_3_3_REV: - { - const GLubyte *ubsrc = (const GLubyte *) src; - GLuint i; - if (!intFormat) { - rs = 1.0F / 7.0F; - gs = 1.0F / 7.0F; - bs = 1.0F / 3.0F; - } - for (i = 0; i < n; i ++) { - GLubyte p = ubsrc[i]; - rgba[i][rComp] = ((p ) & 0x7) * rs; - rgba[i][gComp] = ((p >> 3) & 0x7) * gs; - rgba[i][bComp] = ((p >> 6) ) * bs; - rgba[i][aComp] = 1.0F; - } - } - break; - case GL_UNSIGNED_SHORT_5_6_5: - if (!intFormat) { - rs = 1.0F / 31.0F; - gs = 1.0F / 63.0F; - bs = 1.0F / 31.0F; - } - if (swapBytes) { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - SWAP2BYTE(p); - rgba[i][rComp] = ((p >> 11) ) * rs; - rgba[i][gComp] = ((p >> 5) & 0x3f) * gs; - rgba[i][bComp] = ((p ) & 0x1f) * bs; - rgba[i][aComp] = 1.0F; - } - } - else { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - rgba[i][rComp] = ((p >> 11) ) * rs; - rgba[i][gComp] = ((p >> 5) & 0x3f) * gs; - rgba[i][bComp] = ((p ) & 0x1f) * bs; - rgba[i][aComp] = 1.0F; - } - } - break; - case GL_UNSIGNED_SHORT_5_6_5_REV: - if (!intFormat) { - rs = 1.0F / 31.0F; - gs = 1.0F / 63.0F; - bs = 1.0F / 31.0F; - } - if (swapBytes) { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - SWAP2BYTE(p); - rgba[i][rComp] = ((p ) & 0x1f) * rs; - rgba[i][gComp] = ((p >> 5) & 0x3f) * gs; - rgba[i][bComp] = ((p >> 11) ) * bs; - rgba[i][aComp] = 1.0F; - } - } - else { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - rgba[i][rComp] = ((p ) & 0x1f) * rs; - rgba[i][gComp] = ((p >> 5) & 0x3f) * gs; - rgba[i][bComp] = ((p >> 11) ) * bs; - rgba[i][aComp] = 1.0F; - } - } - break; - case GL_UNSIGNED_SHORT_4_4_4_4: - if (!intFormat) { - rs = gs = bs = as = 1.0F / 15.0F; - } - if (swapBytes) { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - SWAP2BYTE(p); - rgba[i][rComp] = ((p >> 12) ) * rs; - rgba[i][gComp] = ((p >> 8) & 0xf) * gs; - rgba[i][bComp] = ((p >> 4) & 0xf) * bs; - rgba[i][aComp] = ((p ) & 0xf) * as; - } - } - else { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - rgba[i][rComp] = ((p >> 12) ) * rs; - rgba[i][gComp] = ((p >> 8) & 0xf) * gs; - rgba[i][bComp] = ((p >> 4) & 0xf) * bs; - rgba[i][aComp] = ((p ) & 0xf) * as; - } - } - break; - case GL_UNSIGNED_SHORT_4_4_4_4_REV: - if (!intFormat) { - rs = gs = bs = as = 1.0F / 15.0F; - } - if (swapBytes) { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - SWAP2BYTE(p); - rgba[i][rComp] = ((p ) & 0xf) * rs; - rgba[i][gComp] = ((p >> 4) & 0xf) * gs; - rgba[i][bComp] = ((p >> 8) & 0xf) * bs; - rgba[i][aComp] = ((p >> 12) ) * as; - } - } - else { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - rgba[i][rComp] = ((p ) & 0xf) * rs; - rgba[i][gComp] = ((p >> 4) & 0xf) * gs; - rgba[i][bComp] = ((p >> 8) & 0xf) * bs; - rgba[i][aComp] = ((p >> 12) ) * as; - } - } - break; - case GL_UNSIGNED_SHORT_5_5_5_1: - if (!intFormat) { - rs = gs = bs = 1.0F / 31.0F; - } - if (swapBytes) { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - SWAP2BYTE(p); - rgba[i][rComp] = ((p >> 11) ) * rs; - rgba[i][gComp] = ((p >> 6) & 0x1f) * gs; - rgba[i][bComp] = ((p >> 1) & 0x1f) * bs; - rgba[i][aComp] = ((p ) & 0x1) * as; - } - } - else { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - rgba[i][rComp] = ((p >> 11) ) * rs; - rgba[i][gComp] = ((p >> 6) & 0x1f) * gs; - rgba[i][bComp] = ((p >> 1) & 0x1f) * bs; - rgba[i][aComp] = ((p ) & 0x1) * as; - } - } - break; - case GL_UNSIGNED_SHORT_1_5_5_5_REV: - if (!intFormat) { - rs = gs = bs = 1.0F / 31.0F; - } - if (swapBytes) { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - SWAP2BYTE(p); - rgba[i][rComp] = ((p ) & 0x1f) * rs; - rgba[i][gComp] = ((p >> 5) & 0x1f) * gs; - rgba[i][bComp] = ((p >> 10) & 0x1f) * bs; - rgba[i][aComp] = ((p >> 15) ) * as; - } - } - else { - const GLushort *ussrc = (const GLushort *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLushort p = ussrc[i]; - rgba[i][rComp] = ((p ) & 0x1f) * rs; - rgba[i][gComp] = ((p >> 5) & 0x1f) * gs; - rgba[i][bComp] = ((p >> 10) & 0x1f) * bs; - rgba[i][aComp] = ((p >> 15) ) * as; - } - } - break; - case GL_UNSIGNED_INT_8_8_8_8: - if (swapBytes) { - const GLuint *uisrc = (const GLuint *) src; - GLuint i; - if (intFormat) { - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = (GLfloat) ((p ) & 0xff); - rgba[i][gComp] = (GLfloat) ((p >> 8) & 0xff); - rgba[i][bComp] = (GLfloat) ((p >> 16) & 0xff); - rgba[i][aComp] = (GLfloat) ((p >> 24) ); - } - } - else { - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = UBYTE_TO_FLOAT((p ) & 0xff); - rgba[i][gComp] = UBYTE_TO_FLOAT((p >> 8) & 0xff); - rgba[i][bComp] = UBYTE_TO_FLOAT((p >> 16) & 0xff); - rgba[i][aComp] = UBYTE_TO_FLOAT((p >> 24) ); - } - } - } - else { - const GLuint *uisrc = (const GLuint *) src; - GLuint i; - if (intFormat) { - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = (GLfloat) ((p >> 24) ); - rgba[i][gComp] = (GLfloat) ((p >> 16) & 0xff); - rgba[i][bComp] = (GLfloat) ((p >> 8) & 0xff); - rgba[i][aComp] = (GLfloat) ((p ) & 0xff); - } - } - else { - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = UBYTE_TO_FLOAT((p >> 24) ); - rgba[i][gComp] = UBYTE_TO_FLOAT((p >> 16) & 0xff); - rgba[i][bComp] = UBYTE_TO_FLOAT((p >> 8) & 0xff); - rgba[i][aComp] = UBYTE_TO_FLOAT((p ) & 0xff); - } - } - } - break; - case GL_UNSIGNED_INT_8_8_8_8_REV: - if (swapBytes) { - const GLuint *uisrc = (const GLuint *) src; - GLuint i; - if (intFormat) { - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = (GLfloat) ((p >> 24) ); - rgba[i][gComp] = (GLfloat) ((p >> 16) & 0xff); - rgba[i][bComp] = (GLfloat) ((p >> 8) & 0xff); - rgba[i][aComp] = (GLfloat) ((p ) & 0xff); - } - } - else { - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = UBYTE_TO_FLOAT((p >> 24) ); - rgba[i][gComp] = UBYTE_TO_FLOAT((p >> 16) & 0xff); - rgba[i][bComp] = UBYTE_TO_FLOAT((p >> 8) & 0xff); - rgba[i][aComp] = UBYTE_TO_FLOAT((p ) & 0xff); - } - } - } - else { - const GLuint *uisrc = (const GLuint *) src; - GLuint i; - if (intFormat) { - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = (GLfloat) ((p ) & 0xff); - rgba[i][gComp] = (GLfloat) ((p >> 8) & 0xff); - rgba[i][bComp] = (GLfloat) ((p >> 16) & 0xff); - rgba[i][aComp] = (GLfloat) ((p >> 24) ); - } - } - else { - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = UBYTE_TO_FLOAT((p ) & 0xff); - rgba[i][gComp] = UBYTE_TO_FLOAT((p >> 8) & 0xff); - rgba[i][bComp] = UBYTE_TO_FLOAT((p >> 16) & 0xff); - rgba[i][aComp] = UBYTE_TO_FLOAT((p >> 24) ); - } - } - } - break; - case GL_UNSIGNED_INT_10_10_10_2: - if (!intFormat) { - rs = 1.0F / 1023.0F; - gs = 1.0F / 1023.0F; - bs = 1.0F / 1023.0F; - as = 1.0F / 3.0F; - } - if (swapBytes) { - const GLuint *uisrc = (const GLuint *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - SWAP4BYTE(p); - rgba[i][rComp] = ((p >> 22) ) * rs; - rgba[i][gComp] = ((p >> 12) & 0x3ff) * gs; - rgba[i][bComp] = ((p >> 2) & 0x3ff) * bs; - rgba[i][aComp] = ((p ) & 0x3 ) * as; - } - } - else { - const GLuint *uisrc = (const GLuint *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = ((p >> 22) ) * rs; - rgba[i][gComp] = ((p >> 12) & 0x3ff) * gs; - rgba[i][bComp] = ((p >> 2) & 0x3ff) * bs; - rgba[i][aComp] = ((p ) & 0x3 ) * as; - } - } - break; - case GL_UNSIGNED_INT_2_10_10_10_REV: - if (!intFormat) { - rs = 1.0F / 1023.0F; - gs = 1.0F / 1023.0F; - bs = 1.0F / 1023.0F; - as = 1.0F / 3.0F; - } - if (swapBytes) { - const GLuint *uisrc = (const GLuint *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - SWAP4BYTE(p); - rgba[i][rComp] = ((p ) & 0x3ff) * rs; - rgba[i][gComp] = ((p >> 10) & 0x3ff) * gs; - rgba[i][bComp] = ((p >> 20) & 0x3ff) * bs; - rgba[i][aComp] = ((p >> 30) ) * as; - } - } - else { - const GLuint *uisrc = (const GLuint *) src; - GLuint i; - for (i = 0; i < n; i ++) { - GLuint p = uisrc[i]; - rgba[i][rComp] = ((p ) & 0x3ff) * rs; - rgba[i][gComp] = ((p >> 10) & 0x3ff) * gs; - rgba[i][bComp] = ((p >> 20) & 0x3ff) * bs; - rgba[i][aComp] = ((p >> 30) ) * as; - } - } - break; - default: - _mesa_problem(NULL, "bad srcType in extract float data"); - break; - } -} - - -/* - * Unpack a row of color image data from a client buffer according to - * the pixel unpacking parameters. - * Return GLchan values in the specified dest image format. - * This is used by glDrawPixels and glTexImage?D(). - * \param ctx - the context - * n - number of pixels in the span - * dstFormat - format of destination color array - * dest - the destination color array - * srcFormat - source image format - * srcType - source image data type - * source - source image pointer - * srcPacking - pixel unpacking parameters - * transferOps - bitmask of IMAGE_*_BIT values of operations to apply - * - * XXX perhaps expand this to process whole images someday. - */ -void -_mesa_unpack_color_span_chan( GLcontext *ctx, - GLuint n, GLenum dstFormat, GLchan dest[], - GLenum srcFormat, GLenum srcType, - const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ) -{ - ASSERT(dstFormat == GL_ALPHA || - dstFormat == GL_LUMINANCE || - dstFormat == GL_LUMINANCE_ALPHA || - dstFormat == GL_INTENSITY || - dstFormat == GL_RED || - dstFormat == GL_RG || - dstFormat == GL_RGB || - dstFormat == GL_RGBA || - dstFormat == GL_COLOR_INDEX); - - ASSERT(srcFormat == GL_RED || - srcFormat == GL_GREEN || - srcFormat == GL_BLUE || - srcFormat == GL_ALPHA || - srcFormat == GL_LUMINANCE || - srcFormat == GL_LUMINANCE_ALPHA || - srcFormat == GL_INTENSITY || - srcFormat == GL_RG || - srcFormat == GL_RGB || - srcFormat == GL_BGR || - srcFormat == GL_RGBA || - srcFormat == GL_BGRA || - srcFormat == GL_ABGR_EXT || - srcFormat == GL_COLOR_INDEX); - - ASSERT(srcType == GL_BITMAP || - srcType == GL_UNSIGNED_BYTE || - srcType == GL_BYTE || - srcType == GL_UNSIGNED_SHORT || - srcType == GL_SHORT || - srcType == GL_UNSIGNED_INT || - srcType == GL_INT || - srcType == GL_HALF_FLOAT_ARB || - srcType == GL_FLOAT || - srcType == GL_UNSIGNED_BYTE_3_3_2 || - srcType == GL_UNSIGNED_BYTE_2_3_3_REV || - srcType == GL_UNSIGNED_SHORT_5_6_5 || - srcType == GL_UNSIGNED_SHORT_5_6_5_REV || - srcType == GL_UNSIGNED_SHORT_4_4_4_4 || - srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV || - srcType == GL_UNSIGNED_SHORT_5_5_5_1 || - srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV || - srcType == GL_UNSIGNED_INT_8_8_8_8 || - srcType == GL_UNSIGNED_INT_8_8_8_8_REV || - srcType == GL_UNSIGNED_INT_10_10_10_2 || - srcType == GL_UNSIGNED_INT_2_10_10_10_REV); - - /* Try simple cases first */ - if (transferOps == 0) { - if (srcType == CHAN_TYPE) { - if (dstFormat == GL_RGBA) { - if (srcFormat == GL_RGBA) { - memcpy( dest, source, n * 4 * sizeof(GLchan) ); - return; - } - else if (srcFormat == GL_RGB) { - GLuint i; - const GLchan *src = (const GLchan *) source; - GLchan *dst = dest; - for (i = 0; i < n; i++) { - dst[0] = src[0]; - dst[1] = src[1]; - dst[2] = src[2]; - dst[3] = CHAN_MAX; - src += 3; - dst += 4; - } - return; - } - } - else if (dstFormat == GL_RGB) { - if (srcFormat == GL_RGB) { - memcpy( dest, source, n * 3 * sizeof(GLchan) ); - return; - } - else if (srcFormat == GL_RGBA) { - GLuint i; - const GLchan *src = (const GLchan *) source; - GLchan *dst = dest; - for (i = 0; i < n; i++) { - dst[0] = src[0]; - dst[1] = src[1]; - dst[2] = src[2]; - src += 4; - dst += 3; - } - return; - } - } - else if (dstFormat == srcFormat) { - GLint comps = _mesa_components_in_format(srcFormat); - assert(comps > 0); - memcpy( dest, source, n * comps * sizeof(GLchan) ); - return; - } - } - /* - * Common situation, loading 8bit RGBA/RGB source images - * into 16/32 bit destination. (OSMesa16/32) - */ - else if (srcType == GL_UNSIGNED_BYTE) { - if (dstFormat == GL_RGBA) { - if (srcFormat == GL_RGB) { - GLuint i; - const GLubyte *src = (const GLubyte *) source; - GLchan *dst = dest; - for (i = 0; i < n; i++) { - dst[0] = UBYTE_TO_CHAN(src[0]); - dst[1] = UBYTE_TO_CHAN(src[1]); - dst[2] = UBYTE_TO_CHAN(src[2]); - dst[3] = CHAN_MAX; - src += 3; - dst += 4; - } - return; - } - else if (srcFormat == GL_RGBA) { - GLuint i; - const GLubyte *src = (const GLubyte *) source; - GLchan *dst = dest; - for (i = 0; i < n; i++) { - dst[0] = UBYTE_TO_CHAN(src[0]); - dst[1] = UBYTE_TO_CHAN(src[1]); - dst[2] = UBYTE_TO_CHAN(src[2]); - dst[3] = UBYTE_TO_CHAN(src[3]); - src += 4; - dst += 4; - } - return; - } - } - else if (dstFormat == GL_RGB) { - if (srcFormat == GL_RGB) { - GLuint i; - const GLubyte *src = (const GLubyte *) source; - GLchan *dst = dest; - for (i = 0; i < n; i++) { - dst[0] = UBYTE_TO_CHAN(src[0]); - dst[1] = UBYTE_TO_CHAN(src[1]); - dst[2] = UBYTE_TO_CHAN(src[2]); - src += 3; - dst += 3; - } - return; - } - else if (srcFormat == GL_RGBA) { - GLuint i; - const GLubyte *src = (const GLubyte *) source; - GLchan *dst = dest; - for (i = 0; i < n; i++) { - dst[0] = UBYTE_TO_CHAN(src[0]); - dst[1] = UBYTE_TO_CHAN(src[1]); - dst[2] = UBYTE_TO_CHAN(src[2]); - src += 4; - dst += 3; - } - return; - } - } - } - } - - - /* general solution begins here */ - { - GLint dstComponents; - GLint dstRedIndex, dstGreenIndex, dstBlueIndex, dstAlphaIndex; - GLint dstLuminanceIndex, dstIntensityIndex; - GLfloat rgba[MAX_WIDTH][4]; - - dstComponents = _mesa_components_in_format( dstFormat ); - /* source & dest image formats should have been error checked by now */ - assert(dstComponents > 0); - - /* - * Extract image data and convert to RGBA floats - */ - assert(n <= MAX_WIDTH); - if (srcFormat == GL_COLOR_INDEX) { - GLuint indexes[MAX_WIDTH]; - extract_uint_indexes(n, indexes, srcFormat, srcType, source, - srcPacking); - - if (dstFormat == GL_COLOR_INDEX) { - GLuint i; - _mesa_apply_ci_transfer_ops(ctx, transferOps, n, indexes); - /* convert to GLchan and return */ - for (i = 0; i < n; i++) { - dest[i] = (GLchan) (indexes[i] & 0xff); - } - return; - } - else { - /* Convert indexes to RGBA */ - if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { - shift_and_offset_ci(ctx, n, indexes); - } - _mesa_map_ci_to_rgba(ctx, n, indexes, rgba); - } - - /* Don't do RGBA scale/bias or RGBA->RGBA mapping if starting - * with color indexes. - */ - transferOps &= ~(IMAGE_SCALE_BIAS_BIT | IMAGE_MAP_COLOR_BIT); - } - else { - /* non-color index data */ - extract_float_rgba(n, rgba, srcFormat, srcType, source, - srcPacking->SwapBytes); - } - - /* Need to clamp if returning GLubytes or GLushorts */ -#if CHAN_TYPE != GL_FLOAT - transferOps |= IMAGE_CLAMP_BIT; -#endif - - if (transferOps) { - _mesa_apply_rgba_transfer_ops(ctx, transferOps, n, rgba); - } - - /* Now determine which color channels we need to produce. - * And determine the dest index (offset) within each color tuple. - */ - switch (dstFormat) { - case GL_ALPHA: - dstAlphaIndex = 0; - dstRedIndex = dstGreenIndex = dstBlueIndex = -1; - dstLuminanceIndex = dstIntensityIndex = -1; - break; - case GL_LUMINANCE: - dstLuminanceIndex = 0; - dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; - dstIntensityIndex = -1; - break; - case GL_LUMINANCE_ALPHA: - dstLuminanceIndex = 0; - dstAlphaIndex = 1; - dstRedIndex = dstGreenIndex = dstBlueIndex = -1; - dstIntensityIndex = -1; - break; - case GL_INTENSITY: - dstIntensityIndex = 0; - dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; - dstLuminanceIndex = -1; - break; - case GL_RED: - dstRedIndex = 0; - dstGreenIndex = dstBlueIndex = -1; - dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; - break; - case GL_RG: - dstRedIndex = 0; - dstGreenIndex = 1; - dstBlueIndex = -1; - dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; - break; - case GL_RGB: - dstRedIndex = 0; - dstGreenIndex = 1; - dstBlueIndex = 2; - dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; - break; - case GL_RGBA: - dstRedIndex = 0; - dstGreenIndex = 1; - dstBlueIndex = 2; - dstAlphaIndex = 3; - dstLuminanceIndex = dstIntensityIndex = -1; - break; - default: - _mesa_problem(ctx, "bad dstFormat in _mesa_unpack_chan_span()"); - return; - } - - - /* Now return the GLchan data in the requested dstFormat */ - - if (dstRedIndex >= 0) { - GLchan *dst = dest; - GLuint i; - for (i = 0; i < n; i++) { - CLAMPED_FLOAT_TO_CHAN(dst[dstRedIndex], rgba[i][RCOMP]); - dst += dstComponents; - } - } - - if (dstGreenIndex >= 0) { - GLchan *dst = dest; - GLuint i; - for (i = 0; i < n; i++) { - CLAMPED_FLOAT_TO_CHAN(dst[dstGreenIndex], rgba[i][GCOMP]); - dst += dstComponents; - } - } - - if (dstBlueIndex >= 0) { - GLchan *dst = dest; - GLuint i; - for (i = 0; i < n; i++) { - CLAMPED_FLOAT_TO_CHAN(dst[dstBlueIndex], rgba[i][BCOMP]); - dst += dstComponents; - } - } - - if (dstAlphaIndex >= 0) { - GLchan *dst = dest; - GLuint i; - for (i = 0; i < n; i++) { - CLAMPED_FLOAT_TO_CHAN(dst[dstAlphaIndex], rgba[i][ACOMP]); - dst += dstComponents; - } - } - - if (dstIntensityIndex >= 0) { - GLchan *dst = dest; - GLuint i; - assert(dstIntensityIndex == 0); - assert(dstComponents == 1); - for (i = 0; i < n; i++) { - /* Intensity comes from red channel */ - CLAMPED_FLOAT_TO_CHAN(dst[i], rgba[i][RCOMP]); - } - } - - if (dstLuminanceIndex >= 0) { - GLchan *dst = dest; - GLuint i; - assert(dstLuminanceIndex == 0); - for (i = 0; i < n; i++) { - /* Luminance comes from red channel */ - CLAMPED_FLOAT_TO_CHAN(dst[0], rgba[i][RCOMP]); - dst += dstComponents; - } - } - } -} - - -/** - * Same as _mesa_unpack_color_span_chan(), but return GLfloat data - * instead of GLchan. - */ -void -_mesa_unpack_color_span_float( GLcontext *ctx, - GLuint n, GLenum dstFormat, GLfloat dest[], - GLenum srcFormat, GLenum srcType, - const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ) -{ - ASSERT(dstFormat == GL_ALPHA || - dstFormat == GL_LUMINANCE || - dstFormat == GL_LUMINANCE_ALPHA || - dstFormat == GL_INTENSITY || - dstFormat == GL_RED || - dstFormat == GL_RG || - dstFormat == GL_RGB || - dstFormat == GL_RGBA || - dstFormat == GL_COLOR_INDEX); - - ASSERT(srcFormat == GL_RED || - srcFormat == GL_GREEN || - srcFormat == GL_BLUE || - srcFormat == GL_ALPHA || - srcFormat == GL_LUMINANCE || - srcFormat == GL_LUMINANCE_ALPHA || - srcFormat == GL_INTENSITY || - srcFormat == GL_RG || - srcFormat == GL_RGB || - srcFormat == GL_BGR || - srcFormat == GL_RGBA || - srcFormat == GL_BGRA || - srcFormat == GL_ABGR_EXT || - srcFormat == GL_RED_INTEGER_EXT || - srcFormat == GL_GREEN_INTEGER_EXT || - srcFormat == GL_BLUE_INTEGER_EXT || - srcFormat == GL_ALPHA_INTEGER_EXT || - srcFormat == GL_RGB_INTEGER_EXT || - srcFormat == GL_RGBA_INTEGER_EXT || - srcFormat == GL_BGR_INTEGER_EXT || - srcFormat == GL_BGRA_INTEGER_EXT || - srcFormat == GL_LUMINANCE_INTEGER_EXT || - srcFormat == GL_LUMINANCE_ALPHA_INTEGER_EXT || - srcFormat == GL_COLOR_INDEX); - - ASSERT(srcType == GL_BITMAP || - srcType == GL_UNSIGNED_BYTE || - srcType == GL_BYTE || - srcType == GL_UNSIGNED_SHORT || - srcType == GL_SHORT || - srcType == GL_UNSIGNED_INT || - srcType == GL_INT || - srcType == GL_HALF_FLOAT_ARB || - srcType == GL_FLOAT || - srcType == GL_UNSIGNED_BYTE_3_3_2 || - srcType == GL_UNSIGNED_BYTE_2_3_3_REV || - srcType == GL_UNSIGNED_SHORT_5_6_5 || - srcType == GL_UNSIGNED_SHORT_5_6_5_REV || - srcType == GL_UNSIGNED_SHORT_4_4_4_4 || - srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV || - srcType == GL_UNSIGNED_SHORT_5_5_5_1 || - srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV || - srcType == GL_UNSIGNED_INT_8_8_8_8 || - srcType == GL_UNSIGNED_INT_8_8_8_8_REV || - srcType == GL_UNSIGNED_INT_10_10_10_2 || - srcType == GL_UNSIGNED_INT_2_10_10_10_REV); - - /* general solution, no special cases, yet */ - { - GLint dstComponents; - GLint dstRedIndex, dstGreenIndex, dstBlueIndex, dstAlphaIndex; - GLint dstLuminanceIndex, dstIntensityIndex; - GLfloat rgba[MAX_WIDTH][4]; - - dstComponents = _mesa_components_in_format( dstFormat ); - /* source & dest image formats should have been error checked by now */ - assert(dstComponents > 0); - - /* - * Extract image data and convert to RGBA floats - */ - assert(n <= MAX_WIDTH); - if (srcFormat == GL_COLOR_INDEX) { - GLuint indexes[MAX_WIDTH]; - extract_uint_indexes(n, indexes, srcFormat, srcType, source, - srcPacking); - - if (dstFormat == GL_COLOR_INDEX) { - GLuint i; - _mesa_apply_ci_transfer_ops(ctx, transferOps, n, indexes); - /* convert to GLchan and return */ - for (i = 0; i < n; i++) { - dest[i] = (GLchan) (indexes[i] & 0xff); - } - return; - } - else { - /* Convert indexes to RGBA */ - if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { - shift_and_offset_ci(ctx, n, indexes); - } - _mesa_map_ci_to_rgba(ctx, n, indexes, rgba); - } - - /* Don't do RGBA scale/bias or RGBA->RGBA mapping if starting - * with color indexes. - */ - transferOps &= ~(IMAGE_SCALE_BIAS_BIT | IMAGE_MAP_COLOR_BIT); - } - else { - /* non-color index data */ - extract_float_rgba(n, rgba, srcFormat, srcType, source, - srcPacking->SwapBytes); - } - - if (transferOps) { - _mesa_apply_rgba_transfer_ops(ctx, transferOps, n, rgba); - } - - /* Now determine which color channels we need to produce. - * And determine the dest index (offset) within each color tuple. - */ - switch (dstFormat) { - case GL_ALPHA: - dstAlphaIndex = 0; - dstRedIndex = dstGreenIndex = dstBlueIndex = -1; - dstLuminanceIndex = dstIntensityIndex = -1; - break; - case GL_LUMINANCE: - dstLuminanceIndex = 0; - dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; - dstIntensityIndex = -1; - break; - case GL_LUMINANCE_ALPHA: - dstLuminanceIndex = 0; - dstAlphaIndex = 1; - dstRedIndex = dstGreenIndex = dstBlueIndex = -1; - dstIntensityIndex = -1; - break; - case GL_INTENSITY: - dstIntensityIndex = 0; - dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; - dstLuminanceIndex = -1; - break; - case GL_RED: - dstRedIndex = 0; - dstGreenIndex = dstBlueIndex = -1; - dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; - break; - case GL_RG: - dstRedIndex = 0; - dstGreenIndex = 1; - dstBlueIndex = -1; - dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; - break; - case GL_RGB: - dstRedIndex = 0; - dstGreenIndex = 1; - dstBlueIndex = 2; - dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; - break; - case GL_RGBA: - dstRedIndex = 0; - dstGreenIndex = 1; - dstBlueIndex = 2; - dstAlphaIndex = 3; - dstLuminanceIndex = dstIntensityIndex = -1; - break; - default: - _mesa_problem(ctx, "bad dstFormat in _mesa_unpack_color_span_float()"); - return; - } - - /* Now pack results in the requested dstFormat */ - if (dstRedIndex >= 0) { - GLfloat *dst = dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[dstRedIndex] = rgba[i][RCOMP]; - dst += dstComponents; - } - } - - if (dstGreenIndex >= 0) { - GLfloat *dst = dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[dstGreenIndex] = rgba[i][GCOMP]; - dst += dstComponents; - } - } - - if (dstBlueIndex >= 0) { - GLfloat *dst = dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[dstBlueIndex] = rgba[i][BCOMP]; - dst += dstComponents; - } - } - - if (dstAlphaIndex >= 0) { - GLfloat *dst = dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[dstAlphaIndex] = rgba[i][ACOMP]; - dst += dstComponents; - } - } - - if (dstIntensityIndex >= 0) { - GLfloat *dst = dest; - GLuint i; - assert(dstIntensityIndex == 0); - assert(dstComponents == 1); - for (i = 0; i < n; i++) { - /* Intensity comes from red channel */ - dst[i] = rgba[i][RCOMP]; - } - } - - if (dstLuminanceIndex >= 0) { - GLfloat *dst = dest; - GLuint i; - assert(dstLuminanceIndex == 0); - for (i = 0; i < n; i++) { - /* Luminance comes from red channel */ - dst[0] = rgba[i][RCOMP]; - dst += dstComponents; - } - } - } -} - -/** - * Similar to _mesa_unpack_color_span_float(), but for dudv data instead of rgba, - * directly return GLbyte data, no transfer ops apply. - */ -void -_mesa_unpack_dudv_span_byte( GLcontext *ctx, - GLuint n, GLenum dstFormat, GLbyte dest[], - GLenum srcFormat, GLenum srcType, - const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ) -{ - ASSERT(dstFormat == GL_DUDV_ATI); - ASSERT(srcFormat == GL_DUDV_ATI); - - ASSERT(srcType == GL_UNSIGNED_BYTE || - srcType == GL_BYTE || - srcType == GL_UNSIGNED_SHORT || - srcType == GL_SHORT || - srcType == GL_UNSIGNED_INT || - srcType == GL_INT || - srcType == GL_HALF_FLOAT_ARB || - srcType == GL_FLOAT); - - /* general solution */ - { - GLint dstComponents; - GLfloat rgba[MAX_WIDTH][4]; - GLbyte *dst = dest; - GLuint i; - - dstComponents = _mesa_components_in_format( dstFormat ); - /* source & dest image formats should have been error checked by now */ - assert(dstComponents > 0); - - /* - * Extract image data and convert to RGBA floats - */ - assert(n <= MAX_WIDTH); - extract_float_rgba(n, rgba, srcFormat, srcType, source, - srcPacking->SwapBytes); - - - /* Now determine which color channels we need to produce. - * And determine the dest index (offset) within each color tuple. - */ - - /* Now pack results in the requested dstFormat */ - for (i = 0; i < n; i++) { - /* not sure - need clamp[-1,1] here? */ - dst[0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); - dst[1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); - dst += dstComponents; - } - } -} - -/* - * Unpack a row of color index data from a client buffer according to - * the pixel unpacking parameters. - * This is (or will be) used by glDrawPixels, glTexImage[123]D, etc. - * - * Args: ctx - the context - * n - number of pixels - * dstType - destination data type - * dest - destination array - * srcType - source pixel type - * source - source data pointer - * srcPacking - pixel unpacking parameters - * transferOps - the pixel transfer operations to apply - */ -void -_mesa_unpack_index_span( const GLcontext *ctx, GLuint n, - GLenum dstType, GLvoid *dest, - GLenum srcType, const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ) -{ - ASSERT(srcType == GL_BITMAP || - srcType == GL_UNSIGNED_BYTE || - srcType == GL_BYTE || - srcType == GL_UNSIGNED_SHORT || - srcType == GL_SHORT || - srcType == GL_UNSIGNED_INT || - srcType == GL_INT || - srcType == GL_HALF_FLOAT_ARB || - srcType == GL_FLOAT); - - ASSERT(dstType == GL_UNSIGNED_BYTE || - dstType == GL_UNSIGNED_SHORT || - dstType == GL_UNSIGNED_INT); - - - transferOps &= (IMAGE_MAP_COLOR_BIT | IMAGE_SHIFT_OFFSET_BIT); - - /* - * Try simple cases first - */ - if (transferOps == 0 && srcType == GL_UNSIGNED_BYTE - && dstType == GL_UNSIGNED_BYTE) { - memcpy(dest, source, n * sizeof(GLubyte)); - } - else if (transferOps == 0 && srcType == GL_UNSIGNED_INT - && dstType == GL_UNSIGNED_INT && !srcPacking->SwapBytes) { - memcpy(dest, source, n * sizeof(GLuint)); - } - else { - /* - * general solution - */ - GLuint indexes[MAX_WIDTH]; - assert(n <= MAX_WIDTH); - - extract_uint_indexes(n, indexes, GL_COLOR_INDEX, srcType, source, - srcPacking); - - if (transferOps) - _mesa_apply_ci_transfer_ops(ctx, transferOps, n, indexes); - - /* convert to dest type */ - switch (dstType) { - case GL_UNSIGNED_BYTE: - { - GLubyte *dst = (GLubyte *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLubyte) (indexes[i] & 0xff); - } - } - break; - case GL_UNSIGNED_SHORT: - { - GLuint *dst = (GLuint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLushort) (indexes[i] & 0xffff); - } - } - break; - case GL_UNSIGNED_INT: - memcpy(dest, indexes, n * sizeof(GLuint)); - break; - default: - _mesa_problem(ctx, "bad dstType in _mesa_unpack_index_span"); - } - } -} - - -void -_mesa_pack_index_span( const GLcontext *ctx, GLuint n, - GLenum dstType, GLvoid *dest, const GLuint *source, - const struct gl_pixelstore_attrib *dstPacking, - GLbitfield transferOps ) -{ - GLuint indexes[MAX_WIDTH]; - - ASSERT(n <= MAX_WIDTH); - - transferOps &= (IMAGE_MAP_COLOR_BIT | IMAGE_SHIFT_OFFSET_BIT); - - if (transferOps & (IMAGE_MAP_COLOR_BIT | IMAGE_SHIFT_OFFSET_BIT)) { - /* make a copy of input */ - memcpy(indexes, source, n * sizeof(GLuint)); - _mesa_apply_ci_transfer_ops(ctx, transferOps, n, indexes); - source = indexes; - } - - switch (dstType) { - case GL_UNSIGNED_BYTE: - { - GLubyte *dst = (GLubyte *) dest; - GLuint i; - for (i = 0; i < n; i++) { - *dst++ = (GLubyte) source[i]; - } - } - break; - case GL_BYTE: - { - GLbyte *dst = (GLbyte *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLbyte) source[i]; - } - } - break; - case GL_UNSIGNED_SHORT: - { - GLushort *dst = (GLushort *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLushort) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - case GL_SHORT: - { - GLshort *dst = (GLshort *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLshort) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - case GL_UNSIGNED_INT: - { - GLuint *dst = (GLuint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLuint) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_INT: - { - GLint *dst = (GLint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLint) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_FLOAT: - { - GLfloat *dst = (GLfloat *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLfloat) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_HALF_FLOAT_ARB: - { - GLhalfARB *dst = (GLhalfARB *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = _mesa_float_to_half((GLfloat) source[i]); - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - default: - _mesa_problem(ctx, "bad type in _mesa_pack_index_span"); - } -} - - -/* - * Unpack a row of stencil data from a client buffer according to - * the pixel unpacking parameters. - * This is (or will be) used by glDrawPixels - * - * Args: ctx - the context - * n - number of pixels - * dstType - destination data type - * dest - destination array - * srcType - source pixel type - * source - source data pointer - * srcPacking - pixel unpacking parameters - * transferOps - apply offset/bias/lookup ops? - */ -void -_mesa_unpack_stencil_span( const GLcontext *ctx, GLuint n, - GLenum dstType, GLvoid *dest, - GLenum srcType, const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ) -{ - ASSERT(srcType == GL_BITMAP || - srcType == GL_UNSIGNED_BYTE || - srcType == GL_BYTE || - srcType == GL_UNSIGNED_SHORT || - srcType == GL_SHORT || - srcType == GL_UNSIGNED_INT || - srcType == GL_INT || - srcType == GL_UNSIGNED_INT_24_8_EXT || - srcType == GL_HALF_FLOAT_ARB || - srcType == GL_FLOAT); - - ASSERT(dstType == GL_UNSIGNED_BYTE || - dstType == GL_UNSIGNED_SHORT || - dstType == GL_UNSIGNED_INT); - - /* only shift and offset apply to stencil */ - transferOps &= IMAGE_SHIFT_OFFSET_BIT; - - /* - * Try simple cases first - */ - if (transferOps == 0 && - !ctx->Pixel.MapStencilFlag && - srcType == GL_UNSIGNED_BYTE && - dstType == GL_UNSIGNED_BYTE) { - memcpy(dest, source, n * sizeof(GLubyte)); - } - else if (transferOps == 0 && - !ctx->Pixel.MapStencilFlag && - srcType == GL_UNSIGNED_INT && - dstType == GL_UNSIGNED_INT && - !srcPacking->SwapBytes) { - memcpy(dest, source, n * sizeof(GLuint)); - } - else { - /* - * general solution - */ - GLuint indexes[MAX_WIDTH]; - assert(n <= MAX_WIDTH); - - extract_uint_indexes(n, indexes, GL_STENCIL_INDEX, srcType, source, - srcPacking); - - if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { - /* shift and offset indexes */ - shift_and_offset_ci(ctx, n, indexes); - } - - if (ctx->Pixel.MapStencilFlag) { - /* Apply stencil lookup table */ - const GLuint mask = ctx->PixelMaps.StoS.Size - 1; - GLuint i; - for (i = 0; i < n; i++) { - indexes[i] = (GLuint)ctx->PixelMaps.StoS.Map[ indexes[i] & mask ]; - } - } - - /* convert to dest type */ - switch (dstType) { - case GL_UNSIGNED_BYTE: - { - GLubyte *dst = (GLubyte *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLubyte) (indexes[i] & 0xff); - } - } - break; - case GL_UNSIGNED_SHORT: - { - GLuint *dst = (GLuint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = (GLushort) (indexes[i] & 0xffff); - } - } - break; - case GL_UNSIGNED_INT: - memcpy(dest, indexes, n * sizeof(GLuint)); - break; - default: - _mesa_problem(ctx, "bad dstType in _mesa_unpack_stencil_span"); - } - } -} - - -void -_mesa_pack_stencil_span( const GLcontext *ctx, GLuint n, - GLenum dstType, GLvoid *dest, const GLstencil *source, - const struct gl_pixelstore_attrib *dstPacking ) -{ - GLstencil stencil[MAX_WIDTH]; - - ASSERT(n <= MAX_WIDTH); - - if (ctx->Pixel.IndexShift || ctx->Pixel.IndexOffset || - ctx->Pixel.MapStencilFlag) { - /* make a copy of input */ - memcpy(stencil, source, n * sizeof(GLstencil)); - _mesa_apply_stencil_transfer_ops(ctx, n, stencil); - source = stencil; - } - - switch (dstType) { - case GL_UNSIGNED_BYTE: - if (sizeof(GLstencil) == 1) { - memcpy( dest, source, n ); - } - else { - GLubyte *dst = (GLubyte *) dest; - GLuint i; - for (i=0;i<n;i++) { - dst[i] = (GLubyte) source[i]; - } - } - break; - case GL_BYTE: - { - GLbyte *dst = (GLbyte *) dest; - GLuint i; - for (i=0;i<n;i++) { - dst[i] = (GLbyte) (source[i] & 0x7f); - } - } - break; - case GL_UNSIGNED_SHORT: - { - GLushort *dst = (GLushort *) dest; - GLuint i; - for (i=0;i<n;i++) { - dst[i] = (GLushort) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - case GL_SHORT: - { - GLshort *dst = (GLshort *) dest; - GLuint i; - for (i=0;i<n;i++) { - dst[i] = (GLshort) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - case GL_UNSIGNED_INT: - { - GLuint *dst = (GLuint *) dest; - GLuint i; - for (i=0;i<n;i++) { - dst[i] = (GLuint) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_INT: - { - GLint *dst = (GLint *) dest; - GLuint i; - for (i=0;i<n;i++) { - dst[i] = (GLint) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_FLOAT: - { - GLfloat *dst = (GLfloat *) dest; - GLuint i; - for (i=0;i<n;i++) { - dst[i] = (GLfloat) source[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_HALF_FLOAT_ARB: - { - GLhalfARB *dst = (GLhalfARB *) dest; - GLuint i; - for (i=0;i<n;i++) { - dst[i] = _mesa_float_to_half( (float) source[i] ); - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - case GL_BITMAP: - if (dstPacking->LsbFirst) { - GLubyte *dst = (GLubyte *) dest; - GLint shift = 0; - GLuint i; - for (i = 0; i < n; i++) { - if (shift == 0) - *dst = 0; - *dst |= ((source[i] != 0) << shift); - shift++; - if (shift == 8) { - shift = 0; - dst++; - } - } - } - else { - GLubyte *dst = (GLubyte *) dest; - GLint shift = 7; - GLuint i; - for (i = 0; i < n; i++) { - if (shift == 7) - *dst = 0; - *dst |= ((source[i] != 0) << shift); - shift--; - if (shift < 0) { - shift = 7; - dst++; - } - } - } - break; - default: - _mesa_problem(ctx, "bad type in _mesa_pack_index_span"); - } -} - -#define DEPTH_VALUES(GLTYPE, GLTYPE2FLOAT) \ - do { \ - GLuint i; \ - const GLTYPE *src = (const GLTYPE *)source; \ - for (i = 0; i < n; i++) { \ - GLTYPE value = src[i]; \ - if (srcPacking->SwapBytes) { \ - if (sizeof(GLTYPE) == 2) { \ - SWAP2BYTE(value); \ - } else if (sizeof(GLTYPE) == 4) { \ - SWAP4BYTE(value); \ - } \ - } \ - depthValues[i] = GLTYPE2FLOAT(value); \ - } \ - } while (0) - - -/** - * Unpack a row of depth/z values from memory, returning GLushort, GLuint - * or GLfloat values. - * The glPixelTransfer (scale/bias) params will be applied. - * - * \param dstType one of GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, GL_FLOAT - * \param depthMax max value for returned GLushort or GLuint values - * (ignored for GLfloat). - */ -void -_mesa_unpack_depth_span( const GLcontext *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; - GLboolean needClamp = GL_FALSE; - - /* Look for special cases first. - * Not only are these faster, they're less prone to numeric conversion - * problems. Otherwise, converting from an int type to a float then - * back to an int type can introduce errors that will show up as - * artifacts in things like depth peeling which uses glCopyTexImage. - */ - if (ctx->Pixel.DepthScale == 1.0 && ctx->Pixel.DepthBias == 0.0) { - if (srcType == GL_UNSIGNED_INT && dstType == GL_UNSIGNED_SHORT) { - const GLuint *src = (const GLuint *) source; - GLushort *dst = (GLushort *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = src[i] >> 16; - } - return; - } - if (srcType == GL_UNSIGNED_SHORT - && dstType == GL_UNSIGNED_INT - && depthMax == 0xffffffff) { - const GLushort *src = (const GLushort *) source; - GLuint *dst = (GLuint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = src[i] | (src[i] << 16); - } - return; - } - if (srcType == GL_UNSIGNED_INT_24_8 - && dstType == GL_UNSIGNED_INT - && depthMax == 0xffffff) { - const GLuint *src = (const GLuint *) source; - GLuint *dst = (GLuint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = src[i] >> 8; - } - return; - } - /* XXX may want to add additional cases here someday */ - } - - /* general case path follows */ - - if (dstType == GL_FLOAT) { - depthValues = (GLfloat *) dest; - } - else { - depthValues = depthTemp; - } - - /* Convert incoming values to GLfloat. Some conversions will require - * clamping, below. - */ - switch (srcType) { - case GL_BYTE: - DEPTH_VALUES(GLbyte, BYTE_TO_FLOAT); - needClamp = GL_TRUE; - break; - case GL_UNSIGNED_BYTE: - DEPTH_VALUES(GLubyte, UBYTE_TO_FLOAT); - break; - case GL_SHORT: - DEPTH_VALUES(GLshort, SHORT_TO_FLOAT); - needClamp = GL_TRUE; - break; - case GL_UNSIGNED_SHORT: - DEPTH_VALUES(GLushort, USHORT_TO_FLOAT); - break; - case GL_INT: - DEPTH_VALUES(GLint, INT_TO_FLOAT); - needClamp = GL_TRUE; - break; - case GL_UNSIGNED_INT: - DEPTH_VALUES(GLuint, UINT_TO_FLOAT); - break; - case GL_UNSIGNED_INT_24_8_EXT: /* GL_EXT_packed_depth_stencil */ - if (dstType == GL_UNSIGNED_INT_24_8_EXT && - depthMax == 0xffffff && - ctx->Pixel.DepthScale == 1.0 && - ctx->Pixel.DepthBias == 0.0) { - const GLuint *src = (const GLuint *) source; - GLuint *zValues = (GLuint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - GLuint value = src[i]; - if (srcPacking->SwapBytes) { - SWAP4BYTE(value); - } - zValues[i] = value & 0xffffff00; - } - return; - } - else { - const GLuint *src = (const GLuint *) source; - const GLfloat scale = 1.0f / 0xffffff; - GLuint i; - for (i = 0; i < n; i++) { - GLuint value = src[i]; - if (srcPacking->SwapBytes) { - SWAP4BYTE(value); - } - depthValues[i] = (value >> 8) * scale; - } - } - break; - case GL_FLOAT: - DEPTH_VALUES(GLfloat, 1*); - needClamp = GL_TRUE; - break; - case GL_HALF_FLOAT_ARB: - { - GLuint i; - const GLhalfARB *src = (const GLhalfARB *) source; - for (i = 0; i < n; i++) { - GLhalfARB value = src[i]; - if (srcPacking->SwapBytes) { - SWAP2BYTE(value); - } - depthValues[i] = _mesa_half_to_float(value); - } - needClamp = GL_TRUE; - } - break; - default: - _mesa_problem(NULL, "bad type in _mesa_unpack_depth_span()"); - return; - } - - /* apply depth scale and bias */ - { - const GLfloat scale = ctx->Pixel.DepthScale; - const GLfloat bias = ctx->Pixel.DepthBias; - if (scale != 1.0 || bias != 0.0) { - GLuint i; - for (i = 0; i < n; i++) { - depthValues[i] = depthValues[i] * scale + bias; - } - needClamp = GL_TRUE; - } - } - - /* clamp to [0, 1] */ - if (needClamp) { - GLuint i; - for (i = 0; i < n; i++) { - depthValues[i] = (GLfloat)CLAMP(depthValues[i], 0.0, 1.0); - } - } - - /* - * Convert values to dstType - */ - if (dstType == GL_UNSIGNED_INT) { - GLuint *zValues = (GLuint *) dest; - GLuint i; - if (depthMax <= 0xffffff) { - /* no overflow worries */ - for (i = 0; i < n; i++) { - zValues[i] = (GLuint) (depthValues[i] * (GLfloat) depthMax); - } - } - else { - /* need to use double precision to prevent overflow problems */ - for (i = 0; i < n; i++) { - GLdouble z = depthValues[i] * (GLfloat) depthMax; - if (z >= (GLdouble) 0xffffffff) - zValues[i] = 0xffffffff; - else - zValues[i] = (GLuint) z; - } - } - } - else if (dstType == GL_UNSIGNED_SHORT) { - GLushort *zValues = (GLushort *) dest; - GLuint i; - ASSERT(depthMax <= 0xffff); - for (i = 0; i < n; i++) { - zValues[i] = (GLushort) (depthValues[i] * (GLfloat) depthMax); - } - } - else { - ASSERT(dstType == GL_FLOAT); - /*ASSERT(depthMax == 1.0F);*/ - } -} - - -/* - * Pack an array of depth values. The values are floats in [0,1]. - */ -void -_mesa_pack_depth_span( const GLcontext *ctx, GLuint n, GLvoid *dest, - GLenum dstType, const GLfloat *depthSpan, - const struct gl_pixelstore_attrib *dstPacking ) -{ - GLfloat depthCopy[MAX_WIDTH]; - - ASSERT(n <= MAX_WIDTH); - - if (ctx->Pixel.DepthScale != 1.0 || ctx->Pixel.DepthBias != 0.0) { - memcpy(depthCopy, depthSpan, n * sizeof(GLfloat)); - _mesa_scale_and_bias_depth(ctx, n, depthCopy); - depthSpan = depthCopy; - } - - switch (dstType) { - case GL_UNSIGNED_BYTE: - { - GLubyte *dst = (GLubyte *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = FLOAT_TO_UBYTE( depthSpan[i] ); - } - } - break; - case GL_BYTE: - { - GLbyte *dst = (GLbyte *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = FLOAT_TO_BYTE( depthSpan[i] ); - } - } - break; - case GL_UNSIGNED_SHORT: - { - GLushort *dst = (GLushort *) dest; - GLuint i; - for (i = 0; i < n; i++) { - CLAMPED_FLOAT_TO_USHORT(dst[i], depthSpan[i]); - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - case GL_SHORT: - { - GLshort *dst = (GLshort *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = FLOAT_TO_SHORT( depthSpan[i] ); - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - case GL_UNSIGNED_INT: - { - GLuint *dst = (GLuint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = FLOAT_TO_UINT( depthSpan[i] ); - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_INT: - { - GLint *dst = (GLint *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = FLOAT_TO_INT( depthSpan[i] ); - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_FLOAT: - { - GLfloat *dst = (GLfloat *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = depthSpan[i]; - } - if (dstPacking->SwapBytes) { - _mesa_swap4( (GLuint *) dst, n ); - } - } - break; - case GL_HALF_FLOAT_ARB: - { - GLhalfARB *dst = (GLhalfARB *) dest; - GLuint i; - for (i = 0; i < n; i++) { - dst[i] = _mesa_float_to_half(depthSpan[i]); - } - if (dstPacking->SwapBytes) { - _mesa_swap2( (GLushort *) dst, n ); - } - } - break; - default: - _mesa_problem(ctx, "bad type in _mesa_pack_depth_span"); - } -} - - - -/** - * Pack depth and stencil values as GL_DEPTH_STENCIL/GL_UNSIGNED_INT_24_8. - */ -void -_mesa_pack_depth_stencil_span(const GLcontext *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]; - GLuint i; - - ASSERT(n <= MAX_WIDTH); - - if (ctx->Pixel.DepthScale != 1.0 || ctx->Pixel.DepthBias != 0.0) { - memcpy(depthCopy, depthVals, n * sizeof(GLfloat)); - _mesa_scale_and_bias_depth(ctx, n, depthCopy); - depthVals = depthCopy; - } - - if (ctx->Pixel.IndexShift || - ctx->Pixel.IndexOffset || - ctx->Pixel.MapStencilFlag) { - memcpy(stencilCopy, stencilVals, n * sizeof(GLstencil)); - _mesa_apply_stencil_transfer_ops(ctx, n, stencilCopy); - stencilVals = stencilCopy; - } - - for (i = 0; i < n; i++) { - GLuint z = (GLuint) (depthVals[i] * 0xffffff); - dest[i] = (z << 8) | (stencilVals[i] & 0xff); - } - - if (dstPacking->SwapBytes) { - _mesa_swap4(dest, n); - } -} - - - - -/** - * Unpack image data. Apply byte swapping, byte flipping (bitmap). - * Return all image data in a contiguous block. This is used when we - * compile glDrawPixels, glTexImage, etc into a display list. We - * need a copy of the data in a standard format. - */ -void * -_mesa_unpack_image( GLuint dimensions, - GLsizei width, GLsizei height, GLsizei depth, - GLenum format, GLenum type, const GLvoid *pixels, - const struct gl_pixelstore_attrib *unpack ) -{ - GLint bytesPerRow, compsPerRow; - GLboolean flipBytes, swap2, swap4; - - if (!pixels) - return NULL; /* not necessarily an error */ - - if (width <= 0 || height <= 0 || depth <= 0) - return NULL; /* generate error later */ - - if (type == GL_BITMAP) { - bytesPerRow = (width + 7) >> 3; - flipBytes = unpack->LsbFirst; - swap2 = swap4 = GL_FALSE; - compsPerRow = 0; - } - else { - const GLint bytesPerPixel = _mesa_bytes_per_pixel(format, type); - GLint components = _mesa_components_in_format(format); - GLint bytesPerComp; - - if (_mesa_type_is_packed(type)) - components = 1; - - if (bytesPerPixel <= 0 || components <= 0) - return NULL; /* bad format or type. generate error later */ - bytesPerRow = bytesPerPixel * width; - bytesPerComp = bytesPerPixel / components; - flipBytes = GL_FALSE; - swap2 = (bytesPerComp == 2) && unpack->SwapBytes; - swap4 = (bytesPerComp == 4) && unpack->SwapBytes; - compsPerRow = components * width; - assert(compsPerRow >= width); - } - - { - GLubyte *destBuffer - = (GLubyte *) malloc(bytesPerRow * height * depth); - GLubyte *dst; - GLint img, row; - if (!destBuffer) - return NULL; /* generate GL_OUT_OF_MEMORY later */ - - dst = destBuffer; - for (img = 0; img < depth; img++) { - for (row = 0; row < height; row++) { - const GLvoid *src = _mesa_image_address(dimensions, unpack, pixels, - width, height, format, type, img, row, 0); - - if ((type == GL_BITMAP) && (unpack->SkipPixels & 0x7)) { - GLint i; - flipBytes = GL_FALSE; - if (unpack->LsbFirst) { - GLubyte srcMask = 1 << (unpack->SkipPixels & 0x7); - GLubyte dstMask = 128; - const GLubyte *s = src; - GLubyte *d = dst; - *d = 0; - for (i = 0; i < width; i++) { - if (*s & srcMask) { - *d |= dstMask; - } - if (srcMask == 128) { - srcMask = 1; - s++; - } - else { - srcMask = srcMask << 1; - } - if (dstMask == 1) { - dstMask = 128; - d++; - *d = 0; - } - else { - dstMask = dstMask >> 1; - } - } - } - else { - GLubyte srcMask = 128 >> (unpack->SkipPixels & 0x7); - GLubyte dstMask = 128; - const GLubyte *s = src; - GLubyte *d = dst; - *d = 0; - for (i = 0; i < width; i++) { - if (*s & srcMask) { - *d |= dstMask; - } - if (srcMask == 1) { - srcMask = 128; - s++; - } - else { - srcMask = srcMask >> 1; - } - if (dstMask == 1) { - dstMask = 128; - d++; - *d = 0; - } - else { - dstMask = dstMask >> 1; - } - } - } - } - else { - memcpy(dst, src, bytesPerRow); - } - - /* byte flipping/swapping */ - if (flipBytes) { - flip_bytes((GLubyte *) dst, bytesPerRow); - } - else if (swap2) { - _mesa_swap2((GLushort*) dst, compsPerRow); - } - else if (swap4) { - _mesa_swap4((GLuint*) dst, compsPerRow); - } - dst += bytesPerRow; - } - } - return destBuffer; - } -} - -#endif /* _HAVE_FULL_GL */ - /** @@ -5673,12 +1442,12 @@ _mesa_convert_colors(GLenum srcType, const GLvoid *src, * GL_FALSE if image was completely clipped away (draw nothing) */ GLboolean -_mesa_clip_drawpixels(const GLcontext *ctx, +_mesa_clip_drawpixels(const struct gl_context *ctx, GLint *destX, GLint *destY, GLsizei *width, GLsizei *height, struct gl_pixelstore_attrib *unpack) { - const GLframebuffer *buffer = ctx->DrawBuffer; + const struct gl_framebuffer *buffer = ctx->DrawBuffer; if (unpack->RowLength == 0) { unpack->RowLength = *width; @@ -5744,12 +1513,12 @@ _mesa_clip_drawpixels(const GLcontext *ctx, * GL_FALSE if image was completely clipped away (draw nothing) */ GLboolean -_mesa_clip_readpixels(const GLcontext *ctx, +_mesa_clip_readpixels(const struct gl_context *ctx, GLint *srcX, GLint *srcY, GLsizei *width, GLsizei *height, struct gl_pixelstore_attrib *pack) { - const GLframebuffer *buffer = ctx->ReadBuffer; + const struct gl_framebuffer *buffer = ctx->ReadBuffer; if (pack->RowLength == 0) { pack->RowLength = *width; @@ -5794,7 +1563,7 @@ _mesa_clip_readpixels(const GLcontext *ctx, * \return GL_FALSE if region is totally clipped, GL_TRUE otherwise. */ GLboolean -_mesa_clip_copytexsubimage(const GLcontext *ctx, +_mesa_clip_copytexsubimage(const struct gl_context *ctx, GLint *destX, GLint *destY, GLint *srcX, GLint *srcY, GLsizei *width, GLsizei *height) @@ -5937,7 +1706,7 @@ clip_left_or_bottom(GLint *srcX0, GLint *srcX1, * \return GL_TRUE if anything is left to draw, GL_FALSE if totally clipped */ GLboolean -_mesa_clip_blit(GLcontext *ctx, +_mesa_clip_blit(struct gl_context *ctx, GLint *srcX0, GLint *srcY0, GLint *srcX1, GLint *srcY1, GLint *dstX0, GLint *dstY0, GLint *dstX1, GLint *dstY1) { diff --git a/src/mesa/main/image.h b/src/mesa/main/image.h index 672dbf2823e..b40717223e1 100644 --- a/src/mesa/main/image.h +++ b/src/mesa/main/image.h @@ -52,7 +52,7 @@ extern GLint _mesa_bytes_per_pixel( GLenum format, GLenum type ); extern GLboolean -_mesa_is_legal_format_and_type( GLcontext *ctx, GLenum format, GLenum type ); +_mesa_is_legal_format_and_type( struct gl_context *ctx, GLenum format, GLenum type ); extern GLboolean _mesa_is_color_format(GLenum format); @@ -82,7 +82,7 @@ extern GLboolean _mesa_is_integer_format(GLenum format); extern GLboolean -_mesa_is_compressed_format(GLcontext *ctx, GLenum format); +_mesa_is_compressed_format(struct gl_context *ctx, GLenum format); extern GLvoid * _mesa_image_address( GLuint dimensions, @@ -124,23 +124,6 @@ _mesa_image_image_stride( const struct gl_pixelstore_attrib *packing, GLint width, GLint height, GLenum format, GLenum type ); -extern void -_mesa_unpack_polygon_stipple( const GLubyte *pattern, GLuint dest[32], - const struct gl_pixelstore_attrib *unpacking ); - - -extern void -_mesa_pack_polygon_stipple( const GLuint pattern[32], GLubyte *dest, - const struct gl_pixelstore_attrib *packing ); - - -extern GLvoid * -_mesa_unpack_bitmap( GLint width, GLint height, const GLubyte *pixels, - const struct gl_pixelstore_attrib *packing ); - -extern void -_mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source, - GLubyte *dest, const struct gl_pixelstore_attrib *packing ); extern void _mesa_expand_bitmap(GLsizei width, GLsizei height, @@ -150,147 +133,6 @@ _mesa_expand_bitmap(GLsizei width, GLsizei height, GLubyte onValue); -/** \name Pixel processing functions */ -/*@{*/ - -extern void -_mesa_scale_and_bias_rgba(GLuint n, GLfloat rgba[][4], - GLfloat rScale, GLfloat gScale, - GLfloat bScale, GLfloat aScale, - GLfloat rBias, GLfloat gBias, - GLfloat bBias, GLfloat aBias); - -extern void -_mesa_map_rgba(const GLcontext *ctx, GLuint n, GLfloat rgba[][4]); - -extern void -_mesa_lookup_rgba_float(const struct gl_color_table *table, - GLuint n, GLfloat rgba[][4]); - -extern void -_mesa_lookup_rgba_ubyte(const struct gl_color_table *table, - GLuint n, GLubyte rgba[][4]); - - -extern void -_mesa_map_ci_to_rgba(const GLcontext *ctx, - GLuint n, const GLuint index[], GLfloat rgba[][4]); - - -extern void -_mesa_map_ci8_to_rgba8(const GLcontext *ctx, GLuint n, const GLubyte index[], - GLubyte rgba[][4]); - - -extern void -_mesa_scale_and_bias_depth(const GLcontext *ctx, GLuint n, - GLfloat depthValues[]); - -extern void -_mesa_scale_and_bias_depth_uint(const GLcontext *ctx, GLuint n, - GLuint depthValues[]); - -extern void -_mesa_apply_rgba_transfer_ops(GLcontext *ctx, GLbitfield transferOps, - GLuint n, GLfloat rgba[][4]); - - -extern void -_mesa_apply_ci_transfer_ops(const GLcontext *ctx, GLbitfield transferOps, - GLuint n, GLuint indexes[]); - - -extern void -_mesa_apply_stencil_transfer_ops(const GLcontext *ctx, GLuint n, - GLstencil stencil[]); - - -extern void -_mesa_pack_rgba_span_float( GLcontext *ctx, GLuint n, GLfloat rgba[][4], - GLenum dstFormat, GLenum dstType, GLvoid *dstAddr, - const struct gl_pixelstore_attrib *dstPacking, - GLbitfield transferOps ); - - -extern void -_mesa_unpack_color_span_chan( GLcontext *ctx, - GLuint n, GLenum dstFormat, GLchan dest[], - GLenum srcFormat, GLenum srcType, - const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ); - - -extern void -_mesa_unpack_color_span_float( GLcontext *ctx, - GLuint n, GLenum dstFormat, GLfloat dest[], - GLenum srcFormat, GLenum srcType, - const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ); - -extern void -_mesa_unpack_dudv_span_byte( GLcontext *ctx, - GLuint n, GLenum dstFormat, GLbyte dest[], - GLenum srcFormat, GLenum srcType, - const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ); - -extern void -_mesa_unpack_index_span( const GLcontext *ctx, GLuint n, - GLenum dstType, GLvoid *dest, - GLenum srcType, const GLvoid *source, - const struct gl_pixelstore_attrib *srcPacking, - GLbitfield transferOps ); - - -extern void -_mesa_pack_index_span( const GLcontext *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 GLcontext *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 GLcontext *ctx, GLuint n, - GLenum dstType, GLvoid *dest, const GLstencil *source, - const struct gl_pixelstore_attrib *dstPacking ); - - -extern void -_mesa_unpack_depth_span( const GLcontext *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 GLcontext *ctx, GLuint n, GLvoid *dest, - GLenum dstType, const GLfloat *depthSpan, - const struct gl_pixelstore_attrib *dstPacking ); - - -extern void -_mesa_pack_depth_stencil_span(const GLcontext *ctx, GLuint n, GLuint *dest, - const GLfloat *depthVals, - const GLstencil *stencilVals, - const struct gl_pixelstore_attrib *dstPacking); - - -extern void * -_mesa_unpack_image( GLuint dimensions, - GLsizei width, GLsizei height, GLsizei depth, - GLenum format, GLenum type, const GLvoid *pixels, - const struct gl_pixelstore_attrib *unpack ); - - extern void _mesa_convert_colors(GLenum srcType, const GLvoid *src, GLenum dstType, GLvoid *dst, @@ -298,20 +140,20 @@ _mesa_convert_colors(GLenum srcType, const GLvoid *src, extern GLboolean -_mesa_clip_drawpixels(const GLcontext *ctx, +_mesa_clip_drawpixels(const struct gl_context *ctx, GLint *destX, GLint *destY, GLsizei *width, GLsizei *height, struct gl_pixelstore_attrib *unpack); extern GLboolean -_mesa_clip_readpixels(const GLcontext *ctx, +_mesa_clip_readpixels(const struct gl_context *ctx, GLint *srcX, GLint *srcY, GLsizei *width, GLsizei *height, struct gl_pixelstore_attrib *pack); extern GLboolean -_mesa_clip_copytexsubimage(const GLcontext *ctx, +_mesa_clip_copytexsubimage(const struct gl_context *ctx, GLint *destX, GLint *destY, GLint *srcX, GLint *srcY, GLsizei *width, GLsizei *height); @@ -323,7 +165,7 @@ _mesa_clip_to_region(GLint xmin, GLint ymin, GLsizei *width, GLsizei *height ); extern GLboolean -_mesa_clip_blit(GLcontext *ctx, +_mesa_clip_blit(struct gl_context *ctx, GLint *srcX0, GLint *srcY0, GLint *srcX1, GLint *srcY1, GLint *dstX0, GLint *dstY0, GLint *dstX1, GLint *dstY1); diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c index 46e5c932d0f..bcca4edc1aa 100644 --- a/src/mesa/main/imports.c +++ b/src/mesa/main/imports.c @@ -882,7 +882,7 @@ error_string( GLenum error ) * previous errors which were accumulated. */ static void -flush_delayed_errors( GLcontext *ctx ) +flush_delayed_errors( struct gl_context *ctx ) { char s[MAXSTRING]; @@ -906,7 +906,7 @@ flush_delayed_errors( GLcontext *ctx ) * \param fmtString printf()-like format string. */ void -_mesa_warning( GLcontext *ctx, const char *fmtString, ... ) +_mesa_warning( struct gl_context *ctx, const char *fmtString, ... ) { char str[MAXSTRING]; va_list args; @@ -929,7 +929,7 @@ _mesa_warning( GLcontext *ctx, const char *fmtString, ... ) * \param fmtString problem description string. */ void -_mesa_problem( const GLcontext *ctx, const char *fmtString, ... ) +_mesa_problem( const struct gl_context *ctx, const char *fmtString, ... ) { va_list args; char str[MAXSTRING]; @@ -957,7 +957,7 @@ _mesa_problem( const GLcontext *ctx, const char *fmtString, ... ) * \param fmtString printf() style format string, followed by optional args */ void -_mesa_error( GLcontext *ctx, GLenum error, const char *fmtString, ... ) +_mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) { static GLint debug = -1; @@ -1014,7 +1014,7 @@ _mesa_error( GLcontext *ctx, GLenum error, const char *fmtString, ... ) * \param fmtString printf()-style format string, followed by optional args. */ void -_mesa_debug( const GLcontext *ctx, const char *fmtString, ... ) +_mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) { #ifdef DEBUG char s[MAXSTRING]; diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h index 751f2065011..30fc152389d 100644 --- a/src/mesa/main/imports.h +++ b/src/mesa/main/imports.h @@ -568,17 +568,19 @@ _mesa_str_checksum(const char *str); extern int _mesa_snprintf( char *str, size_t size, const char *fmt, ... ) PRINTFLIKE(3, 4); +struct gl_context; + extern void -_mesa_warning( __GLcontext *gc, const char *fmtString, ... ) PRINTFLIKE(2, 3); +_mesa_warning( struct gl_context *gc, const char *fmtString, ... ) PRINTFLIKE(2, 3); extern void -_mesa_problem( const __GLcontext *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); +_mesa_problem( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); extern void -_mesa_error( __GLcontext *ctx, GLenum error, const char *fmtString, ... ) PRINTFLIKE(3, 4); +_mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) PRINTFLIKE(3, 4); extern void -_mesa_debug( const __GLcontext *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); +_mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); #if defined(_MSC_VER) && !defined(snprintf) diff --git a/src/mesa/main/light.c b/src/mesa/main/light.c index 43ae28c25ab..c27cf1dd38b 100644 --- a/src/mesa/main/light.c +++ b/src/mesa/main/light.c @@ -103,7 +103,7 @@ _mesa_ProvokingVertexEXT(GLenum mode) * Also, all error checking should have already been done. */ void -_mesa_light(GLcontext *ctx, GLuint lnum, GLenum pname, const GLfloat *params) +_mesa_light(struct gl_context *ctx, GLuint lnum, GLenum pname, const GLfloat *params) { struct gl_light *light; @@ -569,7 +569,7 @@ _mesa_LightModelf( GLenum pname, GLfloat param ) * of the targeted material values. */ GLuint -_mesa_material_bitmask( GLcontext *ctx, GLenum face, GLenum pname, +_mesa_material_bitmask( struct gl_context *ctx, GLenum face, GLenum pname, GLuint legal, const char *where ) { GLuint bitmask = 0; @@ -643,7 +643,7 @@ _mesa_copy_materials( struct gl_material *dst, /* Update derived values following a change in ctx->Light.Material */ void -_mesa_update_material( GLcontext *ctx, GLuint bitmask ) +_mesa_update_material( struct gl_context *ctx, GLuint bitmask ) { struct gl_light *light, *list = &ctx->Light.EnabledList; GLfloat (*mat)[4] = ctx->Light.Material.Attrib; @@ -728,7 +728,7 @@ _mesa_update_material( GLcontext *ctx, GLuint bitmask ) * set by glColorMaterial(). */ void -_mesa_update_color_material( GLcontext *ctx, const GLfloat color[4] ) +_mesa_update_color_material( struct gl_context *ctx, const GLfloat color[4] ) { GLuint bitmask = ctx->Light.ColorMaterialBitmask; struct gl_material *mat = &ctx->Light.Material; @@ -972,7 +972,7 @@ validate_spot_exp_table( struct gl_light *l ) * by keeping a MRU cache of shine tables for various shine values. */ void -_mesa_invalidate_shine_table( GLcontext *ctx, GLuint side ) +_mesa_invalidate_shine_table( struct gl_context *ctx, GLuint side ) { ASSERT(side < 2); if (ctx->_ShineTable[side]) @@ -982,7 +982,7 @@ _mesa_invalidate_shine_table( GLcontext *ctx, GLuint side ) static void -validate_shine_table( GLcontext *ctx, GLuint side, GLfloat shininess ) +validate_shine_table( struct gl_context *ctx, GLuint side, GLfloat shininess ) { struct gl_shine_tab *list = ctx->_ShineTabList; struct gl_shine_tab *s; @@ -1034,7 +1034,7 @@ validate_shine_table( GLcontext *ctx, GLuint side, GLfloat shininess ) void -_mesa_validate_all_lighting_tables( GLcontext *ctx ) +_mesa_validate_all_lighting_tables( struct gl_context *ctx ) { GLuint i; GLfloat shininess; @@ -1060,7 +1060,7 @@ _mesa_validate_all_lighting_tables( GLcontext *ctx ) * source and material ambient, diffuse and specular coefficients. */ void -_mesa_update_lighting( GLcontext *ctx ) +_mesa_update_lighting( struct gl_context *ctx ) { struct gl_light *light; ctx->Light._NeedEyeCoords = GL_FALSE; @@ -1123,7 +1123,7 @@ _mesa_update_lighting( GLcontext *ctx ) * Also update on lighting space changes. */ static void -compute_light_positions( GLcontext *ctx ) +compute_light_positions( struct gl_context *ctx ) { struct gl_light *light; static const GLfloat eye_z[3] = { 0, 0, 1 }; @@ -1210,7 +1210,7 @@ compute_light_positions( GLcontext *ctx ) static void -update_modelview_scale( GLcontext *ctx ) +update_modelview_scale( struct gl_context *ctx ) { ctx->_ModelViewInvScale = 1.0F; if (!_math_matrix_is_length_preserving(ctx->ModelviewMatrixStack.Top)) { @@ -1229,7 +1229,7 @@ update_modelview_scale( GLcontext *ctx ) * Bring up to date any state that relies on _NeedEyeCoords. */ void -_mesa_update_tnl_spaces( GLcontext *ctx, GLuint new_state ) +_mesa_update_tnl_spaces( struct gl_context *ctx, GLuint new_state ) { const GLuint oldneedeyecoords = ctx->_NeedEyeCoords; @@ -1278,7 +1278,7 @@ _mesa_update_tnl_spaces( GLcontext *ctx, GLuint new_state ) * light-in-modelspace optimization. It's also useful for debugging. */ void -_mesa_allow_light_in_model( GLcontext *ctx, GLboolean flag ) +_mesa_allow_light_in_model( struct gl_context *ctx, GLboolean flag ) { ctx->_ForceEyeCoords = !flag; ctx->NewState |= _NEW_POINT; /* one of the bits from @@ -1370,7 +1370,7 @@ init_material( struct gl_material *m ) * Initialize all lighting state for the given context. */ void -_mesa_init_lighting( GLcontext *ctx ) +_mesa_init_lighting( struct gl_context *ctx ) { GLuint i; @@ -1418,7 +1418,7 @@ _mesa_init_lighting( GLcontext *ctx ) * Deallocate malloc'd lighting state attached to given context. */ void -_mesa_free_lighting_data( GLcontext *ctx ) +_mesa_free_lighting_data( struct gl_context *ctx ) { struct gl_shine_tab *s, *tmps; diff --git a/src/mesa/main/light.h b/src/mesa/main/light.h index b3436114d40..021f5ea1939 100644 --- a/src/mesa/main/light.h +++ b/src/mesa/main/light.h @@ -79,7 +79,7 @@ _mesa_GetMaterialiv( GLenum face, GLenum pname, GLint *params ); extern void -_mesa_light(GLcontext *ctx, GLuint lnum, GLenum pname, const GLfloat *params); +_mesa_light(struct gl_context *ctx, GLuint lnum, GLenum pname, const GLfloat *params); /* Lerp between adjacent values in the f(x) lookup table, giving a @@ -100,36 +100,36 @@ do { \ } while (0) -extern GLuint _mesa_material_bitmask( GLcontext *ctx, +extern GLuint _mesa_material_bitmask( struct gl_context *ctx, GLenum face, GLenum pname, GLuint legal, const char * ); extern void _mesa_invalidate_spot_exp_table( struct gl_light *l ); -extern void _mesa_invalidate_shine_table( GLcontext *ctx, GLuint i ); +extern void _mesa_invalidate_shine_table( struct gl_context *ctx, GLuint i ); -extern void _mesa_validate_all_lighting_tables( GLcontext *ctx ); +extern void _mesa_validate_all_lighting_tables( struct gl_context *ctx ); -extern void _mesa_update_lighting( GLcontext *ctx ); +extern void _mesa_update_lighting( struct gl_context *ctx ); -extern void _mesa_update_tnl_spaces( GLcontext *ctx, GLuint new_state ); +extern void _mesa_update_tnl_spaces( struct gl_context *ctx, GLuint new_state ); -extern void _mesa_update_material( GLcontext *ctx, +extern void _mesa_update_material( struct gl_context *ctx, GLuint bitmask ); extern void _mesa_copy_materials( struct gl_material *dst, const struct gl_material *src, GLuint bitmask ); -extern void _mesa_update_color_material( GLcontext *ctx, +extern void _mesa_update_color_material( struct gl_context *ctx, const GLfloat rgba[4] ); -extern void _mesa_init_lighting( GLcontext *ctx ); +extern void _mesa_init_lighting( struct gl_context *ctx ); -extern void _mesa_free_lighting_data( GLcontext *ctx ); +extern void _mesa_free_lighting_data( struct gl_context *ctx ); -extern void _mesa_allow_light_in_model( GLcontext *ctx, GLboolean flag ); +extern void _mesa_allow_light_in_model( struct gl_context *ctx, GLboolean flag ); #else #define _mesa_update_color_material( c, r ) ((void)0) diff --git a/src/mesa/main/lines.c b/src/mesa/main/lines.c index cc63a759ec0..505f840ba5a 100644 --- a/src/mesa/main/lines.c +++ b/src/mesa/main/lines.c @@ -102,11 +102,11 @@ _mesa_LineStipple( GLint factor, GLushort pattern ) * * \param ctx GL context. * - * Initializes __GLcontextRec::Line and line related constants in - * __GLcontextRec::Const. + * Initializes __struct gl_contextRec::Line and line related constants in + * __struct gl_contextRec::Const. */ void GLAPIENTRY -_mesa_init_line( GLcontext * ctx ) +_mesa_init_line( struct gl_context * ctx ) { ctx->Line.SmoothFlag = GL_FALSE; ctx->Line.StippleFlag = GL_FALSE; diff --git a/src/mesa/main/lines.h b/src/mesa/main/lines.h index 5a47e9858d5..3accdd78004 100644 --- a/src/mesa/main/lines.h +++ b/src/mesa/main/lines.h @@ -43,6 +43,6 @@ extern void GLAPIENTRY _mesa_LineStipple( GLint factor, GLushort pattern ); extern void GLAPIENTRY -_mesa_init_line( GLcontext * ctx ); +_mesa_init_line( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/matrix.c b/src/mesa/main/matrix.c index 8ed718cd38e..105d4a327fb 100644 --- a/src/mesa/main/matrix.c +++ b/src/mesa/main/matrix.c @@ -59,7 +59,7 @@ * * Flushes vertices and validates parameters. Calls _math_matrix_frustum() with * the top matrix of the current matrix stack and sets - * __GLcontextRec::NewState. + * __struct gl_contextRec::NewState. */ void GLAPIENTRY _mesa_Frustum( GLdouble left, GLdouble right, @@ -101,7 +101,7 @@ _mesa_Frustum( GLdouble left, GLdouble right, * * Flushes vertices and validates parameters. Calls _math_matrix_ortho() with * the top matrix of the current matrix stack and sets - * __GLcontextRec::NewState. + * __struct gl_contextRec::NewState. */ void GLAPIENTRY _mesa_Ortho( GLdouble left, GLdouble right, @@ -139,7 +139,7 @@ _mesa_Ortho( GLdouble left, GLdouble right, * \sa glMatrixMode(). * * Flushes the vertices, validates the parameter and updates - * __GLcontextRec::CurrentStack and gl_transform_attrib::MatrixMode with the + * __struct gl_contextRec::CurrentStack and gl_transform_attrib::MatrixMode with the * specified matrix stack. */ void GLAPIENTRY @@ -231,7 +231,7 @@ _mesa_MatrixMode( GLenum mode ) * \sa glPushMatrix(). * * Verifies the current matrix stack is not full, and duplicates the top-most - * matrix in the stack. Marks __GLcontextRec::NewState with the stack dirty + * matrix in the stack. Marks __struct gl_contextRec::NewState with the stack dirty * flag. */ void GLAPIENTRY @@ -271,7 +271,7 @@ _mesa_PushMatrix( void ) * \sa glPopMatrix(). * * Flushes the vertices, verifies the current matrix stack is not empty, and - * moves the stack head down. Marks __GLcontextRec::NewState with the dirty + * moves the stack head down. Marks __struct gl_contextRec::NewState with the dirty * stack flag. */ void GLAPIENTRY @@ -309,7 +309,7 @@ _mesa_PopMatrix( void ) * \sa glLoadIdentity(). * * Flushes the vertices and calls _math_matrix_set_identity() with the top-most - * matrix in the current stack. Marks __GLcontextRec::NewState with the stack + * matrix in the current stack. Marks __struct gl_contextRec::NewState with the stack * dirty flag. */ void GLAPIENTRY @@ -334,7 +334,7 @@ _mesa_LoadIdentity( void ) * \sa glLoadMatrixf(). * * Flushes the vertices and calls _math_matrix_loadf() with the top-most matrix - * in the current stack and the given matrix. Marks __GLcontextRec::NewState + * in the current stack and the given matrix. Marks __struct gl_contextRec::NewState * with the dirty stack flag. */ void GLAPIENTRY @@ -365,7 +365,7 @@ _mesa_LoadMatrixf( const GLfloat *m ) * * Flushes the vertices and calls _math_matrix_mul_floats() with the top-most * matrix in the current stack and the given matrix. Marks - * __GLcontextRec::NewState with the dirty stack flag. + * __struct gl_contextRec::NewState with the dirty stack flag. */ void GLAPIENTRY _mesa_MultMatrixf( const GLfloat *m ) @@ -397,7 +397,7 @@ _mesa_MultMatrixf( const GLfloat *m ) * * Flushes the vertices and calls _math_matrix_rotate() with the top-most * matrix in the current stack and the given parameters. Marks - * __GLcontextRec::NewState with the dirty stack flag. + * __struct gl_contextRec::NewState with the dirty stack flag. */ void GLAPIENTRY _mesa_Rotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) @@ -422,7 +422,7 @@ _mesa_Rotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) * * Flushes the vertices and calls _math_matrix_scale() with the top-most * matrix in the current stack and the given parameters. Marks - * __GLcontextRec::NewState with the dirty stack flag. + * __struct gl_contextRec::NewState with the dirty stack flag. */ void GLAPIENTRY _mesa_Scalef( GLfloat x, GLfloat y, GLfloat z ) @@ -445,7 +445,7 @@ _mesa_Scalef( GLfloat x, GLfloat y, GLfloat z ) * * Flushes the vertices and calls _math_matrix_translate() with the top-most * matrix in the current stack and the given parameters. Marks - * __GLcontextRec::NewState with the dirty stack flag. + * __struct gl_contextRec::NewState with the dirty stack flag. */ void GLAPIENTRY _mesa_Translatef( GLfloat x, GLfloat y, GLfloat z ) @@ -559,13 +559,13 @@ _mesa_MultTransposeMatrixdARB( const GLdouble *m ) * Calls _math_matrix_analyse() with the top-matrix of the projection matrix * stack, and recomputes user clip positions if necessary. * - * \note This routine references __GLcontextRec::Tranform attribute values to + * \note This routine references __struct gl_contextRec::Tranform attribute values to * compute userclip positions in clip space, but is only called on * _NEW_PROJECTION. The _mesa_ClipPlane() function keeps these values up to - * date across changes to the __GLcontextRec::Transform attributes. + * date across changes to the __struct gl_contextRec::Transform attributes. */ static void -update_projection( GLcontext *ctx ) +update_projection( struct gl_context *ctx ) { _math_matrix_analyse( ctx->ProjectionMatrixStack.Top ); @@ -593,11 +593,11 @@ update_projection( GLcontext *ctx ) * \param ctx GL context. * * Multiplies the top matrices of the projection and model view stacks into - * __GLcontextRec::_ModelProjectMatrix via _math_matrix_mul_matrix() and + * __struct gl_contextRec::_ModelProjectMatrix via _math_matrix_mul_matrix() and * analyzes the resulting matrix via _math_matrix_analyse(). */ static void -calculate_model_project_matrix( GLcontext *ctx ) +calculate_model_project_matrix( struct gl_context *ctx ) { _math_matrix_mul_matrix( &ctx->_ModelProjectMatrix, ctx->ProjectionMatrixStack.Top, @@ -618,7 +618,7 @@ calculate_model_project_matrix( GLcontext *ctx ) * calculate_model_project_matrix() to recalculate the modelview-projection * matrix. */ -void _mesa_update_modelview_project( GLcontext *ctx, GLuint new_state ) +void _mesa_update_modelview_project( struct gl_context *ctx, GLuint new_state ) { if (new_state & _NEW_MODELVIEW) { _math_matrix_analyse( ctx->ModelviewMatrixStack.Top ); @@ -712,7 +712,7 @@ free_matrix_stack( struct gl_matrix_stack *stack ) * Initializes each of the matrix stacks and the combined modelview-projection * matrix. */ -void _mesa_init_matrix( GLcontext * ctx ) +void _mesa_init_matrix( struct gl_context * ctx ) { GLint i; @@ -742,7 +742,7 @@ void _mesa_init_matrix( GLcontext * ctx ) * Frees each of the matrix stacks and the combined modelview-projection * matrix. */ -void _mesa_free_matrix_data( GLcontext *ctx ) +void _mesa_free_matrix_data( struct gl_context *ctx ) { GLint i; @@ -765,7 +765,7 @@ void _mesa_free_matrix_data( GLcontext *ctx ) * * \todo Move this to a new file with other 'transform' routines. */ -void _mesa_init_transform( GLcontext *ctx ) +void _mesa_init_transform( struct gl_context *ctx ) { GLint i; diff --git a/src/mesa/main/matrix.h b/src/mesa/main/matrix.h index a53d1045c7d..38fd235b117 100644 --- a/src/mesa/main/matrix.h +++ b/src/mesa/main/matrix.h @@ -97,16 +97,16 @@ _mesa_MultTransposeMatrixdARB( const GLdouble *m ); extern void -_mesa_init_matrix( GLcontext * ctx ); +_mesa_init_matrix( struct gl_context * ctx ); extern void -_mesa_init_transform( GLcontext *ctx ); +_mesa_init_transform( struct gl_context *ctx ); extern void -_mesa_free_matrix_data( GLcontext *ctx ); +_mesa_free_matrix_data( struct gl_context *ctx ); extern void -_mesa_update_modelview_project( GLcontext *ctx, GLuint newstate ); +_mesa_update_modelview_project( struct gl_context *ctx, GLuint newstate ); #endif diff --git a/src/mesa/main/mfeatures.h b/src/mesa/main/mfeatures.h index 9b9b6d0420b..5afd65d9766 100644 --- a/src/mesa/main/mfeatures.h +++ b/src/mesa/main/mfeatures.h @@ -119,7 +119,6 @@ #define FEATURE_ARB_fragment_shader 1 #define FEATURE_ARB_shader_objects (FEATURE_ARB_vertex_shader || FEATURE_ARB_fragment_shader) #define FEATURE_ARB_shading_language_100 FEATURE_ARB_shader_objects -#define FEATURE_ARB_shading_language_120 FEATURE_ARB_shader_objects #define FEATURE_ARB_geometry_shader4 FEATURE_ARB_shader_objects #define FEATURE_ARB_framebuffer_object (FEATURE_GL && FEATURE_EXT_framebuffer_object) diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c index 3d1a4c49c49..11d5a0519e0 100644 --- a/src/mesa/main/mipmap.c +++ b/src/mesa/main/mipmap.c @@ -606,7 +606,7 @@ do_row_3D(GLenum datatype, GLuint comps, GLint srcWidth, FILTER_3D(0); } } - if ((datatype == GL_BYTE) && (comps == 4)) { + else if ((datatype == GL_BYTE) && (comps == 4)) { DECLARE_ROW_POINTERS(GLbyte, 4); for (i = j = 0, k = k0; i < (GLuint) dstWidth; @@ -1504,7 +1504,7 @@ next_mipmap_level_size(GLenum target, GLint border, * GL_TEXTURE_CUBE_MAP_POSITIVE/NEGATIVE_X/Y/Z; never GL_TEXTURE_CUBE_MAP. */ void -_mesa_generate_mipmap(GLcontext *ctx, GLenum target, +_mesa_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { const struct gl_texture_image *srcImage; diff --git a/src/mesa/main/mipmap.h b/src/mesa/main/mipmap.h index 22094c34372..4c7ee635aee 100644 --- a/src/mesa/main/mipmap.h +++ b/src/mesa/main/mipmap.h @@ -42,7 +42,7 @@ _mesa_generate_mipmap_level(GLenum target, extern void -_mesa_generate_mipmap(GLcontext *ctx, GLenum target, +_mesa_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj); diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index aa9676665ff..1b8a80416c9 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -123,10 +123,8 @@ struct gl_program_cache; struct gl_texture_format; struct gl_texture_image; struct gl_texture_object; +struct gl_context; struct st_context; -typedef struct __GLcontextRec GLcontext; -typedef struct __GLcontextModesRec GLvisual; -typedef struct gl_framebuffer GLframebuffer; /*@}*/ @@ -380,8 +378,9 @@ typedef enum typedef enum { FRAG_RESULT_DEPTH = 0, - FRAG_RESULT_COLOR = 1, - FRAG_RESULT_DATA0 = 2, + FRAG_RESULT_STENCIL = 1, + FRAG_RESULT_COLOR = 2, + FRAG_RESULT_DATA0 = 3, FRAG_RESULT_MAX = (FRAG_RESULT_DATA0 + MAX_DRAW_BUFFERS) } gl_frag_result; @@ -548,6 +547,60 @@ struct gl_shine_tab GLuint refcount; }; +struct gl_config { + GLboolean rgbMode; + GLboolean floatMode; + GLboolean colorIndexMode; + GLuint doubleBufferMode; + GLuint stereoMode; + + GLboolean haveAccumBuffer; + GLboolean haveDepthBuffer; + GLboolean haveStencilBuffer; + + GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ + GLuint redMask, greenMask, blueMask, alphaMask; + GLint rgbBits; /* total bits for rgb */ + GLint indexBits; /* total bits for colorindex */ + + GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; + GLint depthBits; + GLint stencilBits; + + GLint numAuxBuffers; + + GLint level; + + /* EXT_visual_rating / GLX 1.2 */ + GLint visualRating; + + /* EXT_visual_info / GLX 1.2 */ + GLint transparentPixel; + /* colors are floats scaled to ints */ + GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha; + GLint transparentIndex; + + /* ARB_multisample / SGIS_multisample */ + GLint sampleBuffers; + GLint samples; + + /* SGIX_pbuffer / GLX 1.3 */ + GLint maxPbufferWidth; + GLint maxPbufferHeight; + GLint maxPbufferPixels; + GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */ + GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */ + + /* OML_swap_method */ + GLint swapMethod; + + /* EXT_texture_from_pixmap */ + GLint bindToTextureRgb; + GLint bindToTextureRgba; + GLint bindToMipmapTexture; + GLint bindToTextureTargets; + GLint yInverted; +}; /** * Light source state. @@ -2064,11 +2117,12 @@ struct gl_shader_program /** * Per-stage shaders resulting from the first stage of linking. + * + * Set of linked shaders for this program. The array is accessed using the + * \c MESA_SHADER_* defines. Entries for non-existent stages will be + * \c NULL. */ - /*@{*/ - GLuint _NumLinkedShaders; - struct gl_shader *_LinkedShaders[2]; - /*@}*/ + struct gl_shader *_LinkedShaders[MESA_SHADER_TYPES]; }; @@ -2087,7 +2141,24 @@ struct gl_shader_program */ struct gl_shader_state { - struct gl_shader_program *CurrentProgram; /**< The user-bound program */ + /** + * Programs used for rendering + * + * There is a separate program set for each shader stage. If + * GL_EXT_separate_shader_objects is not supported, each of these must point + * to \c NULL or to the same program. + */ + struct gl_shader_program *CurrentVertexProgram; + struct gl_shader_program *CurrentGeometryProgram; + struct gl_shader_program *CurrentFragmentProgram; + + /** + * Program used by glUniform calls. + * + * Explicitly set by \c glUseProgram and \c glActiveProgramEXT. + */ + struct gl_shader_program *ActiveProgram; + void *MemPool; GLbitfield Flags; /**< Mask of GLSL_x flags */ @@ -2271,38 +2342,38 @@ struct gl_renderbuffer void (*Delete)(struct gl_renderbuffer *rb); /* Allocate new storage for this renderbuffer */ - GLboolean (*AllocStorage)(GLcontext *ctx, struct gl_renderbuffer *rb, + GLboolean (*AllocStorage)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height); /* Lock/Unlock are called before/after calling the Get/Put functions. * Not sure this is the right place for these yet. - void (*Lock)(GLcontext *ctx, struct gl_renderbuffer *rb); - void (*Unlock)(GLcontext *ctx, struct gl_renderbuffer *rb); + void (*Lock)(struct gl_context *ctx, struct gl_renderbuffer *rb); + void (*Unlock)(struct gl_context *ctx, struct gl_renderbuffer *rb); */ /* Return a pointer to the element/pixel at (x,y). * Should return NULL if the buffer memory can't be directly addressed. */ - void *(*GetPointer)(GLcontext *ctx, struct gl_renderbuffer *rb, + void *(*GetPointer)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y); /* Get/Read a row of values. * The values will be of format _BaseFormat and type DataType. */ - void (*GetRow)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*GetRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values); /* Get/Read values at arbitrary locations. * The values will be of format _BaseFormat and type DataType. */ - void (*GetValues)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*GetValues)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values); /* Put/Write a row of values. * The values will be of format _BaseFormat and type DataType. */ - void (*PutRow)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*PutRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask); /* Put/Write a row of RGB values. This is a special-case routine that's @@ -2310,26 +2381,26 @@ struct gl_renderbuffer * a common case for glDrawPixels and some triangle routines. * The values will be of format GL_RGB and type DataType. */ - void (*PutRowRGB)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*PutRowRGB)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask); /* Put/Write a row of identical values. * The values will be of format _BaseFormat and type DataType. */ - void (*PutMonoRow)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*PutMonoRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask); /* Put/Write values at arbitrary locations. * The values will be of format _BaseFormat and type DataType. */ - void (*PutValues)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*PutValues)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask); /* Put/Write identical values at arbitrary locations. * The values will be of format _BaseFormat and type DataType. */ - void (*PutMonoValues)(GLcontext *ctx, struct gl_renderbuffer *rb, + void (*PutMonoValues)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask); }; @@ -2386,7 +2457,7 @@ struct gl_framebuffer * The framebuffer's visual. Immutable if this is a window system buffer. * Computed from attachments if user-made FBO. */ - GLvisual Visual; + struct gl_config Visual; GLboolean Initialized; @@ -2408,6 +2479,9 @@ struct gl_framebuffer /** One of the GL_FRAMEBUFFER_(IN)COMPLETE_* tokens */ GLenum _Status; + /** Integer color values */ + GLboolean _IntegerColor; + /** Array of all renderbuffer attachments, indexed by BUFFER_* tokens. */ struct gl_renderbuffer_attachment Attachment[BUFFER_COUNT]; @@ -2587,6 +2661,7 @@ struct gl_extensions GLboolean ARB_sampler_objects; GLboolean ARB_seamless_cube_map; GLboolean ARB_shader_objects; + GLboolean ARB_shader_stencil_export; GLboolean ARB_shading_language_100; GLboolean ARB_shadow; GLboolean ARB_shadow_ambient; @@ -2635,6 +2710,7 @@ struct gl_extensions GLboolean EXT_framebuffer_object; GLboolean EXT_framebuffer_sRGB; GLboolean EXT_gpu_program_parameters; + GLboolean EXT_gpu_shader4; GLboolean EXT_multi_draw_arrays; GLboolean EXT_paletted_texture; GLboolean EXT_packed_depth_stencil; @@ -2647,6 +2723,7 @@ struct gl_extensions GLboolean EXT_rescale_normal; GLboolean EXT_shadow_funcs; GLboolean EXT_secondary_color; + GLboolean EXT_separate_shader_objects; GLboolean EXT_separate_specular_color; GLboolean EXT_shared_texture_palette; GLboolean EXT_stencil_wrap; @@ -2733,7 +2810,7 @@ struct gl_matrix_stack /** * \name Bits for image transfer operations - * \sa __GLcontextRec::ImageTransferState. + * \sa __struct gl_contextRec::ImageTransferState. */ /*@{*/ #define IMAGE_SCALE_BIAS_BIT 0x1 @@ -2753,34 +2830,34 @@ struct gl_matrix_stack * 4 unused flags. */ /*@{*/ -#define _NEW_MODELVIEW 0x1 /**< __GLcontextRec::ModelView */ -#define _NEW_PROJECTION 0x2 /**< __GLcontextRec::Projection */ -#define _NEW_TEXTURE_MATRIX 0x4 /**< __GLcontextRec::TextureMatrix */ -#define _NEW_ACCUM 0x10 /**< __GLcontextRec::Accum */ -#define _NEW_COLOR 0x20 /**< __GLcontextRec::Color */ -#define _NEW_DEPTH 0x40 /**< __GLcontextRec::Depth */ -#define _NEW_EVAL 0x80 /**< __GLcontextRec::Eval, __GLcontextRec::EvalMap */ -#define _NEW_FOG 0x100 /**< __GLcontextRec::Fog */ -#define _NEW_HINT 0x200 /**< __GLcontextRec::Hint */ -#define _NEW_LIGHT 0x400 /**< __GLcontextRec::Light */ -#define _NEW_LINE 0x800 /**< __GLcontextRec::Line */ -#define _NEW_PIXEL 0x1000 /**< __GLcontextRec::Pixel */ -#define _NEW_POINT 0x2000 /**< __GLcontextRec::Point */ -#define _NEW_POLYGON 0x4000 /**< __GLcontextRec::Polygon */ -#define _NEW_POLYGONSTIPPLE 0x8000 /**< __GLcontextRec::PolygonStipple */ -#define _NEW_SCISSOR 0x10000 /**< __GLcontextRec::Scissor */ -#define _NEW_STENCIL 0x20000 /**< __GLcontextRec::Stencil */ -#define _NEW_TEXTURE 0x40000 /**< __GLcontextRec::Texture */ -#define _NEW_TRANSFORM 0x80000 /**< __GLcontextRec::Transform */ -#define _NEW_VIEWPORT 0x100000 /**< __GLcontextRec::Viewport */ -#define _NEW_PACKUNPACK 0x200000 /**< __GLcontextRec::Pack, __GLcontextRec::Unpack */ -#define _NEW_ARRAY 0x400000 /**< __GLcontextRec::Array */ -#define _NEW_RENDERMODE 0x800000 /**< __GLcontextRec::RenderMode, __GLcontextRec::Feedback, __GLcontextRec::Select */ -#define _NEW_BUFFERS 0x1000000 /**< __GLcontextRec::Visual, __GLcontextRec::DrawBuffer, */ -#define _NEW_MULTISAMPLE 0x2000000 /**< __GLcontextRec::Multisample */ -#define _NEW_TRACK_MATRIX 0x4000000 /**< __GLcontextRec::VertexProgram */ -#define _NEW_PROGRAM 0x8000000 /**< __GLcontextRec::VertexProgram */ -#define _NEW_CURRENT_ATTRIB 0x10000000 /**< __GLcontextRec::Current */ +#define _NEW_MODELVIEW 0x1 /**< __struct gl_contextRec::ModelView */ +#define _NEW_PROJECTION 0x2 /**< __struct gl_contextRec::Projection */ +#define _NEW_TEXTURE_MATRIX 0x4 /**< __struct gl_contextRec::TextureMatrix */ +#define _NEW_ACCUM 0x10 /**< __struct gl_contextRec::Accum */ +#define _NEW_COLOR 0x20 /**< __struct gl_contextRec::Color */ +#define _NEW_DEPTH 0x40 /**< __struct gl_contextRec::Depth */ +#define _NEW_EVAL 0x80 /**< __struct gl_contextRec::Eval, __struct gl_contextRec::EvalMap */ +#define _NEW_FOG 0x100 /**< __struct gl_contextRec::Fog */ +#define _NEW_HINT 0x200 /**< __struct gl_contextRec::Hint */ +#define _NEW_LIGHT 0x400 /**< __struct gl_contextRec::Light */ +#define _NEW_LINE 0x800 /**< __struct gl_contextRec::Line */ +#define _NEW_PIXEL 0x1000 /**< __struct gl_contextRec::Pixel */ +#define _NEW_POINT 0x2000 /**< __struct gl_contextRec::Point */ +#define _NEW_POLYGON 0x4000 /**< __struct gl_contextRec::Polygon */ +#define _NEW_POLYGONSTIPPLE 0x8000 /**< __struct gl_contextRec::PolygonStipple */ +#define _NEW_SCISSOR 0x10000 /**< __struct gl_contextRec::Scissor */ +#define _NEW_STENCIL 0x20000 /**< __struct gl_contextRec::Stencil */ +#define _NEW_TEXTURE 0x40000 /**< __struct gl_contextRec::Texture */ +#define _NEW_TRANSFORM 0x80000 /**< __struct gl_contextRec::Transform */ +#define _NEW_VIEWPORT 0x100000 /**< __struct gl_contextRec::Viewport */ +#define _NEW_PACKUNPACK 0x200000 /**< __struct gl_contextRec::Pack, __struct gl_contextRec::Unpack */ +#define _NEW_ARRAY 0x400000 /**< __struct gl_contextRec::Array */ +#define _NEW_RENDERMODE 0x800000 /**< __struct gl_contextRec::RenderMode, __struct gl_contextRec::Feedback, __struct gl_contextRec::Select */ +#define _NEW_BUFFERS 0x1000000 /**< __struct gl_contextRec::Visual, __struct gl_contextRec::DrawBuffer, */ +#define _NEW_MULTISAMPLE 0x2000000 /**< __struct gl_contextRec::Multisample */ +#define _NEW_TRACK_MATRIX 0x4000000 /**< __struct gl_contextRec::VertexProgram */ +#define _NEW_PROGRAM 0x8000000 /**< __struct gl_contextRec::VertexProgram */ +#define _NEW_CURRENT_ATTRIB 0x10000000 /**< __struct gl_contextRec::Current */ #define _NEW_PROGRAM_CONSTANTS 0x20000000 #define _NEW_BUFFER_OBJECT 0x40000000 #define _NEW_ALL ~0 @@ -2823,7 +2900,7 @@ struct gl_matrix_stack /** * \name A bunch of flags that we think might be useful to drivers. * - * Set in the __GLcontextRec::_TriangleCaps bitfield. + * Set in the __struct gl_contextRec::_TriangleCaps bitfield. */ /*@{*/ #define DD_FLATSHADE 0x1 @@ -2888,32 +2965,6 @@ struct gl_matrix_stack #include "dd.h" -#define NUM_VERTEX_FORMAT_ENTRIES (sizeof(GLvertexformat) / sizeof(void *)) - -/** - * Core Mesa's support for tnl modules: - */ -struct gl_tnl_module -{ - /** - * Vertex format to be lazily swapped into current dispatch. - */ - const GLvertexformat *Current; - - /** - * \name Record of functions swapped out. - * On restore, only need to swap these functions back in. - */ - /*@{*/ - struct { - _glapi_proc * location; - _glapi_proc function; - } Swapped[NUM_VERTEX_FORMAT_ENTRIES]; - GLuint SwapCount; - /*@}*/ -}; - - /** * Display list flags. * Strictly this is a tnl-private concept, but it doesn't seem @@ -2991,9 +3042,9 @@ typedef enum { * Think of this as a base class from which device drivers will derive * sub classes. * - * The GLcontext typedef names this structure. + * The struct gl_context typedef names this structure. */ -struct __GLcontextRec +struct gl_context { /** State possibly shared with other contexts in the address space */ struct gl_shared_state *Shared; @@ -3006,11 +3057,11 @@ struct __GLcontextRec struct _glapi_table *CurrentDispatch; /**< == Save or Exec !! */ /*@}*/ - GLvisual Visual; - GLframebuffer *DrawBuffer; /**< buffer for writing */ - GLframebuffer *ReadBuffer; /**< buffer for reading */ - GLframebuffer *WinSysDrawBuffer; /**< set with MakeCurrent */ - GLframebuffer *WinSysReadBuffer; /**< set with MakeCurrent */ + struct gl_config Visual; + struct gl_framebuffer *DrawBuffer; /**< buffer for writing */ + struct gl_framebuffer *ReadBuffer; /**< buffer for reading */ + struct gl_framebuffer *WinSysDrawBuffer; /**< set with MakeCurrent */ + struct gl_framebuffer *WinSysReadBuffer; /**< set with MakeCurrent */ /** * Device driver function pointer table @@ -3177,9 +3228,6 @@ struct __GLcontextRec */ GLboolean mvp_with_dp4; - /** Core tnl module support */ - struct gl_tnl_module TnlModule; - /** * \name Hooks for module contexts. * diff --git a/src/mesa/main/multisample.c b/src/mesa/main/multisample.c index 01b68df7afc..5487d45f56b 100644 --- a/src/mesa/main/multisample.c +++ b/src/mesa/main/multisample.c @@ -50,7 +50,7 @@ _mesa_SampleCoverageARB(GLclampf value, GLboolean invert) * \param ctx the GL context. */ void -_mesa_init_multisample(GLcontext *ctx) +_mesa_init_multisample(struct gl_context *ctx) { ctx->Multisample.Enabled = GL_TRUE; ctx->Multisample.SampleAlphaToCoverage = GL_FALSE; diff --git a/src/mesa/main/multisample.h b/src/mesa/main/multisample.h index 998488ef420..c7cc432daac 100644 --- a/src/mesa/main/multisample.h +++ b/src/mesa/main/multisample.h @@ -33,7 +33,7 @@ _mesa_SampleCoverageARB(GLclampf value, GLboolean invert); extern void -_mesa_init_multisample(GLcontext *ctx); +_mesa_init_multisample(struct gl_context *ctx); #endif diff --git a/src/mesa/main/nvprogram.c b/src/mesa/main/nvprogram.c index 3a570b7dda6..833bf916ecf 100644 --- a/src/mesa/main/nvprogram.c +++ b/src/mesa/main/nvprogram.c @@ -511,7 +511,7 @@ _mesa_GetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer) } void -_mesa_emit_nv_temp_initialization(GLcontext *ctx, +_mesa_emit_nv_temp_initialization(struct gl_context *ctx, struct gl_program *program) { struct prog_instruction *inst; @@ -559,7 +559,7 @@ _mesa_emit_nv_temp_initialization(GLcontext *ctx, } void -_mesa_setup_nv_temporary_count(GLcontext *ctx, struct gl_program *program) +_mesa_setup_nv_temporary_count(struct gl_context *ctx, struct gl_program *program) { GLuint i; diff --git a/src/mesa/main/nvprogram.h b/src/mesa/main/nvprogram.h index 260a25ba9e9..035f2fe2426 100644 --- a/src/mesa/main/nvprogram.h +++ b/src/mesa/main/nvprogram.h @@ -106,10 +106,10 @@ _mesa_GetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); extern void -_mesa_setup_nv_temporary_count(GLcontext *ctx, struct gl_program *program); +_mesa_setup_nv_temporary_count(struct gl_context *ctx, struct gl_program *program); extern void -_mesa_emit_nv_temp_initialization(GLcontext *ctx, +_mesa_emit_nv_temp_initialization(struct gl_context *ctx, struct gl_program *program); #endif diff --git a/src/mesa/main/pack.c b/src/mesa/main/pack.c new file mode 100644 index 00000000000..877d27ce1e4 --- /dev/null +++ b/src/mesa/main/pack.c @@ -0,0 +1,4339 @@ +/* + * Mesa 3-D graphics library + * + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. + * Copyright (C) 2009-2010 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THEA AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +/** + * \file pack.c + * Image and pixel span packing and unpacking. + */ + + +#include "glheader.h" +#include "colormac.h" +#include "enums.h" +#include "image.h" +#include "pack.h" +#include "pixeltransfer.h" +#include "imports.h" + + +/** + * NOTE: + * Normally, BYTE_TO_FLOAT(0) returns 0.00392 That causes problems when + * we later convert the float to a packed integer value (such as for + * GL_RGB5_A1) because we'll wind up with a non-zero value. + * + * We redefine the macros here so zero is handled correctly. + */ +#undef BYTE_TO_FLOAT +#define BYTE_TO_FLOAT(B) ((B) == 0 ? 0.0F : ((2.0F * (B) + 1.0F) * (1.0F/255.0F))) + +#undef SHORT_TO_FLOAT +#define SHORT_TO_FLOAT(S) ((S) == 0 ? 0.0F : ((2.0F * (S) + 1.0F) * (1.0F/65535.0F))) + + + +/** Compute ceiling of integer quotient of A divided by B. */ +#define CEILING( A, B ) ( (A) % (B) == 0 ? (A)/(B) : (A)/(B)+1 ) + + +/** + * Flip the 8 bits in each byte of the given array. + * + * \param p array. + * \param n number of bytes. + * + * \todo try this trick to flip bytes someday: + * \code + * v = ((v & 0x55555555) << 1) | ((v >> 1) & 0x55555555); + * v = ((v & 0x33333333) << 2) | ((v >> 2) & 0x33333333); + * v = ((v & 0x0f0f0f0f) << 4) | ((v >> 4) & 0x0f0f0f0f); + * \endcode + */ +static void +flip_bytes( GLubyte *p, GLuint n ) +{ + GLuint i, a, b; + for (i = 0; i < n; i++) { + b = (GLuint) p[i]; /* words are often faster than bytes */ + a = ((b & 0x01) << 7) | + ((b & 0x02) << 5) | + ((b & 0x04) << 3) | + ((b & 0x08) << 1) | + ((b & 0x10) >> 1) | + ((b & 0x20) >> 3) | + ((b & 0x40) >> 5) | + ((b & 0x80) >> 7); + p[i] = (GLubyte) a; + } +} + + + +/* + * Unpack a 32x32 pixel polygon stipple from user memory using the + * current pixel unpack settings. + */ +void +_mesa_unpack_polygon_stipple( const GLubyte *pattern, GLuint dest[32], + const struct gl_pixelstore_attrib *unpacking ) +{ + GLubyte *ptrn = (GLubyte *) _mesa_unpack_bitmap(32, 32, pattern, unpacking); + if (ptrn) { + /* Convert pattern from GLubytes to GLuints and handle big/little + * endian differences + */ + GLubyte *p = ptrn; + GLint i; + for (i = 0; i < 32; i++) { + dest[i] = (p[0] << 24) + | (p[1] << 16) + | (p[2] << 8) + | (p[3] ); + p += 4; + } + free(ptrn); + } +} + + +/* + * Pack polygon stipple into user memory given current pixel packing + * settings. + */ +void +_mesa_pack_polygon_stipple( const GLuint pattern[32], GLubyte *dest, + const struct gl_pixelstore_attrib *packing ) +{ + /* Convert pattern from GLuints to GLubytes to handle big/little + * endian differences. + */ + GLubyte ptrn[32*4]; + GLint i; + for (i = 0; i < 32; i++) { + ptrn[i * 4 + 0] = (GLubyte) ((pattern[i] >> 24) & 0xff); + ptrn[i * 4 + 1] = (GLubyte) ((pattern[i] >> 16) & 0xff); + ptrn[i * 4 + 2] = (GLubyte) ((pattern[i] >> 8 ) & 0xff); + ptrn[i * 4 + 3] = (GLubyte) ((pattern[i] ) & 0xff); + } + + _mesa_pack_bitmap(32, 32, ptrn, dest, packing); +} + + +/* + * Unpack bitmap data. Resulting data will be in most-significant-bit-first + * order with row alignment = 1 byte. + */ +GLvoid * +_mesa_unpack_bitmap( GLint width, GLint height, const GLubyte *pixels, + const struct gl_pixelstore_attrib *packing ) +{ + GLint bytes, row, width_in_bytes; + GLubyte *buffer, *dst; + + if (!pixels) + return NULL; + + /* Alloc dest storage */ + bytes = ((width + 7) / 8 * height); + buffer = (GLubyte *) malloc( bytes ); + if (!buffer) + return NULL; + + width_in_bytes = CEILING( width, 8 ); + dst = buffer; + for (row = 0; row < height; row++) { + const GLubyte *src = (const GLubyte *) + _mesa_image_address2d(packing, pixels, width, height, + GL_COLOR_INDEX, GL_BITMAP, row, 0); + if (!src) { + free(buffer); + return NULL; + } + + if ((packing->SkipPixels & 7) == 0) { + memcpy( dst, src, width_in_bytes ); + if (packing->LsbFirst) { + flip_bytes( dst, width_in_bytes ); + } + } + else { + /* handling SkipPixels is a bit tricky (no pun intended!) */ + GLint i; + if (packing->LsbFirst) { + GLubyte srcMask = 1 << (packing->SkipPixels & 0x7); + GLubyte dstMask = 128; + const GLubyte *s = src; + GLubyte *d = dst; + *d = 0; + for (i = 0; i < width; i++) { + if (*s & srcMask) { + *d |= dstMask; + } + if (srcMask == 128) { + srcMask = 1; + s++; + } + else { + srcMask = srcMask << 1; + } + if (dstMask == 1) { + dstMask = 128; + d++; + *d = 0; + } + else { + dstMask = dstMask >> 1; + } + } + } + else { + GLubyte srcMask = 128 >> (packing->SkipPixels & 0x7); + GLubyte dstMask = 128; + const GLubyte *s = src; + GLubyte *d = dst; + *d = 0; + for (i = 0; i < width; i++) { + if (*s & srcMask) { + *d |= dstMask; + } + if (srcMask == 1) { + srcMask = 128; + s++; + } + else { + srcMask = srcMask >> 1; + } + if (dstMask == 1) { + dstMask = 128; + d++; + *d = 0; + } + else { + dstMask = dstMask >> 1; + } + } + } + } + dst += width_in_bytes; + } + + return buffer; +} + + +/* + * Pack bitmap data. + */ +void +_mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source, + GLubyte *dest, const struct gl_pixelstore_attrib *packing ) +{ + GLint row, width_in_bytes; + const GLubyte *src; + + if (!source) + return; + + width_in_bytes = CEILING( width, 8 ); + src = source; + for (row = 0; row < height; row++) { + GLubyte *dst = (GLubyte *) _mesa_image_address2d(packing, dest, + width, height, GL_COLOR_INDEX, GL_BITMAP, row, 0); + if (!dst) + return; + + if ((packing->SkipPixels & 7) == 0) { + memcpy( dst, src, width_in_bytes ); + if (packing->LsbFirst) { + flip_bytes( dst, width_in_bytes ); + } + } + else { + /* handling SkipPixels is a bit tricky (no pun intended!) */ + GLint i; + if (packing->LsbFirst) { + GLubyte srcMask = 128; + GLubyte dstMask = 1 << (packing->SkipPixels & 0x7); + const GLubyte *s = src; + GLubyte *d = dst; + *d = 0; + for (i = 0; i < width; i++) { + if (*s & srcMask) { + *d |= dstMask; + } + if (srcMask == 1) { + srcMask = 128; + s++; + } + else { + srcMask = srcMask >> 1; + } + if (dstMask == 128) { + dstMask = 1; + d++; + *d = 0; + } + else { + dstMask = dstMask << 1; + } + } + } + else { + GLubyte srcMask = 128; + GLubyte dstMask = 128 >> (packing->SkipPixels & 0x7); + const GLubyte *s = src; + GLubyte *d = dst; + *d = 0; + for (i = 0; i < width; i++) { + if (*s & srcMask) { + *d |= dstMask; + } + if (srcMask == 1) { + srcMask = 128; + s++; + } + else { + srcMask = srcMask >> 1; + } + if (dstMask == 1) { + dstMask = 128; + d++; + *d = 0; + } + else { + dstMask = dstMask >> 1; + } + } + } + } + src += width_in_bytes; + } +} + + + +/** + * For small integer types, return the min and max possible values. + * Used for clamping floats to unscaled integer types. + * \return GL_TRUE if type is handled, GL_FALSE otherwise. + */ +static GLboolean +get_type_min_max(GLenum type, GLfloat *min, GLfloat *max) +{ + switch (type) { + case GL_BYTE: + *min = -128.0; + *max = 127.0; + return GL_TRUE; + case GL_UNSIGNED_BYTE: + *min = 0.0; + *max = 255.0; + return GL_TRUE; + case GL_SHORT: + *min = -32768.0; + *max = 32767.0; + return GL_TRUE; + case GL_UNSIGNED_SHORT: + *min = 0.0; + *max = 65535.0; + return GL_TRUE; + default: + return GL_FALSE; + } +} + + + +/** + * Used to pack an array [][4] of RGBA float colors as specified + * by the dstFormat, dstType and dstPacking. Used by glReadPixels. + * Historically, the RGBA values were in [0,1] and rescaled to fit + * into GLubytes, etc. But with new integer formats, the RGBA values + * may have any value and we don't always rescale when converting to + * integers. + * + * Note: the rgba values will be modified by this function when any pixel + * transfer ops are enabled. + */ +void +_mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4], + GLenum dstFormat, GLenum dstType, + GLvoid *dstAddr, + const struct gl_pixelstore_attrib *dstPacking, + GLbitfield transferOps) +{ + GLfloat luminance[MAX_WIDTH]; + const GLint comps = _mesa_components_in_format(dstFormat); + const GLboolean intDstFormat = _mesa_is_integer_format(dstFormat); + GLuint i; + + /* XXX + * This test should probably go away. Have the caller set/clear the + * IMAGE_CLAMP_BIT as needed. + */ + if (dstType != GL_FLOAT || ctx->Color.ClampReadColor == GL_TRUE) { + if (!intDstFormat) { + /* need to clamp to [0, 1] */ + transferOps |= IMAGE_CLAMP_BIT; + } + } + + if (transferOps) { + _mesa_apply_rgba_transfer_ops(ctx, transferOps, n, rgba); + } + + /* + * Component clamping (besides clamping to [0,1] in + * _mesa_apply_rgba_transfer_ops()). + */ + if (intDstFormat) { + /* clamping to dest type's min/max values */ + GLfloat min, max; + if (get_type_min_max(dstType, &min, &max)) { + for (i = 0; i < n; i++) { + rgba[i][RCOMP] = CLAMP(rgba[i][RCOMP], min, max); + rgba[i][GCOMP] = CLAMP(rgba[i][GCOMP], min, max); + rgba[i][BCOMP] = CLAMP(rgba[i][BCOMP], min, max); + rgba[i][ACOMP] = CLAMP(rgba[i][ACOMP], min, max); + } + } + } + else if (dstFormat == GL_LUMINANCE || dstFormat == GL_LUMINANCE_ALPHA) { + /* compute luminance values */ + if (transferOps & IMAGE_CLAMP_BIT) { + for (i = 0; i < n; i++) { + GLfloat sum = rgba[i][RCOMP] + rgba[i][GCOMP] + rgba[i][BCOMP]; + luminance[i] = CLAMP(sum, 0.0F, 1.0F); + } + } + else { + for (i = 0; i < n; i++) { + luminance[i] = rgba[i][RCOMP] + rgba[i][GCOMP] + rgba[i][BCOMP]; + } + } + } + + /* + * Pack/store the pixels. Ugh! Lots of cases!!! + */ + switch (dstType) { + case GL_UNSIGNED_BYTE: + { + GLubyte *dst = (GLubyte *) dstAddr; + switch (dstFormat) { + case GL_RED: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); + break; + case GL_GREEN: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); + break; + case GL_BLUE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); + break; + case GL_ALPHA: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); + break; + case GL_LUMINANCE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UBYTE(luminance[i]); + break; + case GL_LUMINANCE_ALPHA: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_UBYTE(luminance[i]); + dst[i*2+1] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); + } + break; + case GL_RG: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); + } + break; + case GL_RGB: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); + dst[i*3+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); + } + break; + case GL_RGBA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); + dst[i*4+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); + dst[i*4+3] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); + } + break; + case GL_BGR: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); + dst[i*3+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); + } + break; + case GL_BGRA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); + dst[i*4+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); + dst[i*4+3] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); + } + break; + case GL_ABGR_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_UBYTE(rgba[i][ACOMP]); + dst[i*4+1] = FLOAT_TO_UBYTE(rgba[i][BCOMP]); + dst[i*4+2] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); + dst[i*4+3] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); + } + break; + case GL_RED_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLubyte) rgba[i][RCOMP]; + } + break; + case GL_GREEN_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLubyte) rgba[i][GCOMP]; + } + break; + case GL_BLUE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLubyte) rgba[i][BCOMP]; + } + break; + case GL_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLubyte) rgba[i][ACOMP]; + } + break; + case GL_RGB_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLubyte) rgba[i][RCOMP]; + dst[i*3+1] = (GLubyte) rgba[i][GCOMP]; + dst[i*3+2] = (GLubyte) rgba[i][BCOMP]; + } + break; + case GL_RGBA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLubyte) rgba[i][RCOMP]; + dst[i*4+1] = (GLubyte) rgba[i][GCOMP]; + dst[i*4+2] = (GLubyte) rgba[i][BCOMP]; + dst[i*4+3] = (GLubyte) rgba[i][ACOMP]; + } + break; + case GL_BGR_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLubyte) rgba[i][BCOMP]; + dst[i*3+1] = (GLubyte) rgba[i][GCOMP]; + dst[i*3+2] = (GLubyte) rgba[i][RCOMP]; + } + break; + case GL_BGRA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLubyte) rgba[i][BCOMP]; + dst[i*4+1] = (GLubyte) rgba[i][GCOMP]; + dst[i*4+2] = (GLubyte) rgba[i][RCOMP]; + dst[i*4+3] = (GLubyte) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*2+0] = (GLubyte) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + dst[i*2+1] = (GLubyte) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLubyte) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + } + break; + case GL_DUDV_ATI: + case GL_DU8DV8_ATI: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_UBYTE(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]); + } + break; + default: + _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); + } + } + break; + case GL_BYTE: + { + GLbyte *dst = (GLbyte *) dstAddr; + switch (dstFormat) { + case GL_RED: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + break; + case GL_GREEN: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + break; + case GL_BLUE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_BYTE(rgba[i][BCOMP]); + break; + case GL_ALPHA: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_BYTE(rgba[i][ACOMP]); + break; + case GL_LUMINANCE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_BYTE(luminance[i]); + break; + case GL_LUMINANCE_ALPHA: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_BYTE(luminance[i]); + dst[i*2+1] = FLOAT_TO_BYTE(rgba[i][ACOMP]); + } + break; + case GL_RG: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + } + break; + case GL_RGB: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + dst[i*3+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_BYTE(rgba[i][BCOMP]); + } + break; + case GL_RGBA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][BCOMP]); + dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][ACOMP]); + } + break; + case GL_BGR: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_BYTE(rgba[i][BCOMP]); + dst[i*3+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + } + break; + case GL_BGRA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][BCOMP]); + dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][ACOMP]); + } + break; + case GL_ABGR_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][ACOMP]); + dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][BCOMP]); + dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + } + break; + case GL_RED_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLbyte) rgba[i][RCOMP]; + } + break; + case GL_GREEN_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLbyte) rgba[i][GCOMP]; + } + break; + case GL_BLUE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLbyte) rgba[i][BCOMP]; + } + break; + case GL_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLbyte) rgba[i][ACOMP]; + } + break; + case GL_RGB_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLbyte) rgba[i][RCOMP]; + dst[i*3+1] = (GLbyte) rgba[i][GCOMP]; + dst[i*3+2] = (GLbyte) rgba[i][BCOMP]; + } + break; + case GL_RGBA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLbyte) rgba[i][RCOMP]; + dst[i*4+1] = (GLbyte) rgba[i][GCOMP]; + dst[i*4+2] = (GLbyte) rgba[i][BCOMP]; + dst[i*4+3] = (GLbyte) rgba[i][ACOMP]; + } + break; + case GL_BGR_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLbyte) rgba[i][BCOMP]; + dst[i*3+1] = (GLbyte) rgba[i][GCOMP]; + dst[i*3+2] = (GLbyte) rgba[i][RCOMP]; + } + break; + case GL_BGRA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLbyte) rgba[i][BCOMP]; + dst[i*4+1] = (GLbyte) rgba[i][GCOMP]; + dst[i*4+2] = (GLbyte) rgba[i][RCOMP]; + dst[i*4+3] = (GLbyte) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*2+0] = (GLbyte) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + dst[i*2+1] = (GLbyte) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLbyte) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + } + break; + case GL_DUDV_ATI: + case GL_DU8DV8_ATI: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + } + break; + default: + _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); + } + } + break; + case GL_UNSIGNED_SHORT: + { + GLushort *dst = (GLushort *) dstAddr; + switch (dstFormat) { + case GL_RED: + for (i=0;i<n;i++) + CLAMPED_FLOAT_TO_USHORT(dst[i], rgba[i][RCOMP]); + break; + case GL_GREEN: + for (i=0;i<n;i++) + CLAMPED_FLOAT_TO_USHORT(dst[i], rgba[i][GCOMP]); + break; + case GL_BLUE: + for (i=0;i<n;i++) + CLAMPED_FLOAT_TO_USHORT(dst[i], rgba[i][BCOMP]); + break; + case GL_ALPHA: + for (i=0;i<n;i++) + CLAMPED_FLOAT_TO_USHORT(dst[i], rgba[i][ACOMP]); + break; + case GL_LUMINANCE: + for (i=0;i<n;i++) + UNCLAMPED_FLOAT_TO_USHORT(dst[i], luminance[i]); + break; + case GL_LUMINANCE_ALPHA: + for (i=0;i<n;i++) { + UNCLAMPED_FLOAT_TO_USHORT(dst[i*2+0], luminance[i]); + CLAMPED_FLOAT_TO_USHORT(dst[i*2+1], rgba[i][ACOMP]); + } + break; + case GL_RG: + for (i=0;i<n;i++) { + CLAMPED_FLOAT_TO_USHORT(dst[i*2+0], rgba[i][RCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*2+1], rgba[i][GCOMP]); + } + break; + case GL_RGB: + for (i=0;i<n;i++) { + CLAMPED_FLOAT_TO_USHORT(dst[i*3+0], rgba[i][RCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*3+1], rgba[i][GCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*3+2], rgba[i][BCOMP]); + } + break; + case GL_RGBA: + for (i=0;i<n;i++) { + CLAMPED_FLOAT_TO_USHORT(dst[i*4+0], rgba[i][RCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+1], rgba[i][GCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+2], rgba[i][BCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+3], rgba[i][ACOMP]); + } + break; + case GL_BGR: + for (i=0;i<n;i++) { + CLAMPED_FLOAT_TO_USHORT(dst[i*3+0], rgba[i][BCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*3+1], rgba[i][GCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*3+2], rgba[i][RCOMP]); + } + break; + case GL_BGRA: + for (i=0;i<n;i++) { + CLAMPED_FLOAT_TO_USHORT(dst[i*4+0], rgba[i][BCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+1], rgba[i][GCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+2], rgba[i][RCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+3], rgba[i][ACOMP]); + } + break; + case GL_ABGR_EXT: + for (i=0;i<n;i++) { + CLAMPED_FLOAT_TO_USHORT(dst[i*4+0], rgba[i][ACOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+1], rgba[i][BCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+2], rgba[i][GCOMP]); + CLAMPED_FLOAT_TO_USHORT(dst[i*4+3], rgba[i][RCOMP]); + } + break; + case GL_RED_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLushort) rgba[i][RCOMP]; + } + break; + case GL_GREEN_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLushort) rgba[i][GCOMP]; + } + break; + case GL_BLUE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLushort) rgba[i][BCOMP]; + } + break; + case GL_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLushort) rgba[i][ACOMP]; + } + break; + case GL_RGB_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLushort) rgba[i][RCOMP]; + dst[i*3+1] = (GLushort) rgba[i][GCOMP]; + dst[i*3+2] = (GLushort) rgba[i][BCOMP]; + } + break; + case GL_RGBA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLushort) rgba[i][RCOMP]; + dst[i*4+1] = (GLushort) rgba[i][GCOMP]; + dst[i*4+2] = (GLushort) rgba[i][BCOMP]; + dst[i*4+3] = (GLushort) rgba[i][ACOMP]; + } + break; + case GL_BGR_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLushort) rgba[i][BCOMP]; + dst[i*3+1] = (GLushort) rgba[i][GCOMP]; + dst[i*3+2] = (GLushort) rgba[i][RCOMP]; + } + break; + case GL_BGRA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLushort) rgba[i][BCOMP]; + dst[i*4+1] = (GLushort) rgba[i][GCOMP]; + dst[i*4+2] = (GLushort) rgba[i][RCOMP]; + dst[i*4+3] = (GLushort) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*2+0] = (GLushort) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + dst[i*2+1] = (GLushort) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLushort) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + } + break; + case GL_DUDV_ATI: + case GL_DU8DV8_ATI: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_USHORT(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_USHORT(rgba[i][GCOMP]); + } + break; + default: + _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); + } + } + break; + case GL_SHORT: + { + GLshort *dst = (GLshort *) dstAddr; + switch (dstFormat) { + case GL_RED: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_SHORT(rgba[i][RCOMP]); + break; + case GL_GREEN: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_SHORT(rgba[i][GCOMP]); + break; + case GL_BLUE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_SHORT(rgba[i][BCOMP]); + break; + case GL_ALPHA: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_SHORT(rgba[i][ACOMP]); + break; + case GL_LUMINANCE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_SHORT(luminance[i]); + break; + case GL_LUMINANCE_ALPHA: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_SHORT(luminance[i]); + dst[i*2+1] = FLOAT_TO_SHORT(rgba[i][ACOMP]); + } + break; + case GL_RG: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); + } + break; + case GL_RGB: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]); + dst[i*3+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_SHORT(rgba[i][BCOMP]); + } + break; + case GL_RGBA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]); + dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][BCOMP]); + dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][ACOMP]); + } + break; + case GL_BGR: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_SHORT(rgba[i][BCOMP]); + dst[i*3+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_SHORT(rgba[i][RCOMP]); + } + break; + case GL_BGRA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][BCOMP]); + dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][RCOMP]); + dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][ACOMP]); + } + break; + case GL_ABGR_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][ACOMP]); + dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][BCOMP]); + dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][GCOMP]); + dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][RCOMP]); + } + break; + case GL_RED_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLshort) rgba[i][RCOMP]; + } + break; + case GL_GREEN_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLshort) rgba[i][GCOMP]; + } + break; + case GL_BLUE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLshort) rgba[i][BCOMP]; + } + break; + case GL_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLshort) rgba[i][ACOMP]; + } + break; + case GL_RGB_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLshort) rgba[i][RCOMP]; + dst[i*3+1] = (GLshort) rgba[i][GCOMP]; + dst[i*3+2] = (GLshort) rgba[i][BCOMP]; + } + break; + case GL_RGBA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLshort) rgba[i][RCOMP]; + dst[i*4+1] = (GLshort) rgba[i][GCOMP]; + dst[i*4+2] = (GLshort) rgba[i][BCOMP]; + dst[i*4+3] = (GLshort) rgba[i][ACOMP]; + } + break; + case GL_BGR_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLshort) rgba[i][BCOMP]; + dst[i*3+1] = (GLshort) rgba[i][GCOMP]; + dst[i*3+2] = (GLshort) rgba[i][RCOMP]; + } + break; + case GL_BGRA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLshort) rgba[i][BCOMP]; + dst[i*4+1] = (GLshort) rgba[i][GCOMP]; + dst[i*4+2] = (GLshort) rgba[i][RCOMP]; + dst[i*4+3] = (GLshort) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*2+0] = (GLshort) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + dst[i*2+1] = (GLshort) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLshort) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + } + break; + case GL_DUDV_ATI: + case GL_DU8DV8_ATI: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]); + } + break; + default: + _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); + } + } + break; + case GL_UNSIGNED_INT: + { + GLuint *dst = (GLuint *) dstAddr; + switch (dstFormat) { + case GL_RED: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UINT(rgba[i][RCOMP]); + break; + case GL_GREEN: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UINT(rgba[i][GCOMP]); + break; + case GL_BLUE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UINT(rgba[i][BCOMP]); + break; + case GL_ALPHA: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UINT(rgba[i][ACOMP]); + break; + case GL_LUMINANCE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_UINT(luminance[i]); + break; + case GL_LUMINANCE_ALPHA: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_UINT(luminance[i]); + dst[i*2+1] = FLOAT_TO_UINT(rgba[i][ACOMP]); + } + break; + case GL_RG: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_UINT(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); + } + break; + case GL_RGB: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_UINT(rgba[i][RCOMP]); + dst[i*3+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_UINT(rgba[i][BCOMP]); + } + break; + case GL_RGBA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_UINT(rgba[i][RCOMP]); + dst[i*4+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_UINT(rgba[i][BCOMP]); + dst[i*4+3] = FLOAT_TO_UINT(rgba[i][ACOMP]); + } + break; + case GL_BGR: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_UINT(rgba[i][BCOMP]); + dst[i*3+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_UINT(rgba[i][RCOMP]); + } + break; + case GL_BGRA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_UINT(rgba[i][BCOMP]); + dst[i*4+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_UINT(rgba[i][RCOMP]); + dst[i*4+3] = FLOAT_TO_UINT(rgba[i][ACOMP]); + } + break; + case GL_ABGR_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_UINT(rgba[i][ACOMP]); + dst[i*4+1] = FLOAT_TO_UINT(rgba[i][BCOMP]); + dst[i*4+2] = FLOAT_TO_UINT(rgba[i][GCOMP]); + dst[i*4+3] = FLOAT_TO_UINT(rgba[i][RCOMP]); + } + break; + case GL_RED_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLuint) rgba[i][RCOMP]; + } + break; + case GL_GREEN_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLuint) rgba[i][GCOMP]; + } + break; + case GL_BLUE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLuint) rgba[i][BCOMP]; + } + break; + case GL_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLuint) rgba[i][ACOMP]; + } + break; + case GL_RGB_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLuint) rgba[i][RCOMP]; + dst[i*3+1] = (GLuint) rgba[i][GCOMP]; + dst[i*3+2] = (GLuint) rgba[i][BCOMP]; + } + break; + case GL_RGBA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLuint) rgba[i][RCOMP]; + dst[i*4+1] = (GLuint) rgba[i][GCOMP]; + dst[i*4+2] = (GLuint) rgba[i][BCOMP]; + dst[i*4+3] = (GLuint) rgba[i][ACOMP]; + } + break; + case GL_BGR_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLuint) rgba[i][BCOMP]; + dst[i*3+1] = (GLuint) rgba[i][GCOMP]; + dst[i*3+2] = (GLuint) rgba[i][RCOMP]; + } + break; + case GL_BGRA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLuint) rgba[i][BCOMP]; + dst[i*4+1] = (GLuint) rgba[i][GCOMP]; + dst[i*4+2] = (GLuint) rgba[i][RCOMP]; + dst[i*4+3] = (GLuint) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*2+0] = (GLuint) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + dst[i*2+1] = (GLuint) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLuint) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + } + break; + case GL_DUDV_ATI: + case GL_DU8DV8_ATI: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_UINT(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_UINT(rgba[i][GCOMP]); + } + break; + default: + _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); + } + } + break; + case GL_INT: + { + GLint *dst = (GLint *) dstAddr; + switch (dstFormat) { + case GL_RED: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_INT(rgba[i][RCOMP]); + break; + case GL_GREEN: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_INT(rgba[i][GCOMP]); + break; + case GL_BLUE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_INT(rgba[i][BCOMP]); + break; + case GL_ALPHA: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_INT(rgba[i][ACOMP]); + break; + case GL_LUMINANCE: + for (i=0;i<n;i++) + dst[i] = FLOAT_TO_INT(luminance[i]); + break; + case GL_LUMINANCE_ALPHA: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_INT(luminance[i]); + dst[i*2+1] = FLOAT_TO_INT(rgba[i][ACOMP]); + } + break; + case GL_RG: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_INT(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_INT(rgba[i][GCOMP]); + } + break; + case GL_RGB: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_INT(rgba[i][RCOMP]); + dst[i*3+1] = FLOAT_TO_INT(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_INT(rgba[i][BCOMP]); + } + break; + case GL_RGBA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_INT(rgba[i][RCOMP]); + dst[i*4+1] = FLOAT_TO_INT(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_INT(rgba[i][BCOMP]); + dst[i*4+3] = FLOAT_TO_INT(rgba[i][ACOMP]); + } + break; + case GL_BGR: + for (i=0;i<n;i++) { + dst[i*3+0] = FLOAT_TO_INT(rgba[i][BCOMP]); + dst[i*3+1] = FLOAT_TO_INT(rgba[i][GCOMP]); + dst[i*3+2] = FLOAT_TO_INT(rgba[i][RCOMP]); + } + break; + case GL_BGRA: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_INT(rgba[i][BCOMP]); + dst[i*4+1] = FLOAT_TO_INT(rgba[i][GCOMP]); + dst[i*4+2] = FLOAT_TO_INT(rgba[i][RCOMP]); + dst[i*4+3] = FLOAT_TO_INT(rgba[i][ACOMP]); + } + break; + case GL_ABGR_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = FLOAT_TO_INT(rgba[i][ACOMP]); + dst[i*4+1] = FLOAT_TO_INT(rgba[i][BCOMP]); + dst[i*4+2] = FLOAT_TO_INT(rgba[i][GCOMP]); + dst[i*4+3] = FLOAT_TO_INT(rgba[i][RCOMP]); + } + break; + case GL_DUDV_ATI: + case GL_DU8DV8_ATI: + for (i=0;i<n;i++) { + dst[i*2+0] = FLOAT_TO_INT(rgba[i][RCOMP]); + dst[i*2+1] = FLOAT_TO_INT(rgba[i][GCOMP]); + } + break; + case GL_RED_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLint) rgba[i][RCOMP]; + } + break; + case GL_GREEN_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLint) rgba[i][GCOMP]; + } + break; + case GL_BLUE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLint) rgba[i][BCOMP]; + } + break; + case GL_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLint) rgba[i][ACOMP]; + } + break; + case GL_RGB_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLint) rgba[i][RCOMP]; + dst[i*3+1] = (GLint) rgba[i][GCOMP]; + dst[i*3+2] = (GLint) rgba[i][BCOMP]; + } + break; + case GL_RGBA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLint) rgba[i][RCOMP]; + dst[i*4+1] = (GLint) rgba[i][GCOMP]; + dst[i*4+2] = (GLint) rgba[i][BCOMP]; + dst[i*4+3] = (GLint) rgba[i][ACOMP]; + } + break; + case GL_BGR_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*3+0] = (GLint) rgba[i][BCOMP]; + dst[i*3+1] = (GLint) rgba[i][GCOMP]; + dst[i*3+2] = (GLint) rgba[i][RCOMP]; + } + break; + case GL_BGRA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = (GLint) rgba[i][BCOMP]; + dst[i*4+1] = (GLint) rgba[i][GCOMP]; + dst[i*4+2] = (GLint) rgba[i][RCOMP]; + dst[i*4+3] = (GLint) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i*2+0] = (GLint) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + dst[i*2+1] = (GLint) rgba[i][ACOMP]; + } + break; + case GL_LUMINANCE_ALPHA_INTEGER_EXT: + for (i=0;i<n;i++) { + dst[i] = (GLint) (rgba[i][RCOMP] + + rgba[i][GCOMP] + + rgba[i][BCOMP]); + } + break; + default: + _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); + } + } + break; + case GL_FLOAT: + { + GLfloat *dst = (GLfloat *) dstAddr; + switch (dstFormat) { + case GL_RED: + for (i=0;i<n;i++) + dst[i] = rgba[i][RCOMP]; + break; + case GL_GREEN: + for (i=0;i<n;i++) + dst[i] = rgba[i][GCOMP]; + break; + case GL_BLUE: + for (i=0;i<n;i++) + dst[i] = rgba[i][BCOMP]; + break; + case GL_ALPHA: + for (i=0;i<n;i++) + dst[i] = rgba[i][ACOMP]; + break; + case GL_LUMINANCE: + for (i=0;i<n;i++) + dst[i] = luminance[i]; + break; + case GL_LUMINANCE_ALPHA: + for (i=0;i<n;i++) { + dst[i*2+0] = luminance[i]; + dst[i*2+1] = rgba[i][ACOMP]; + } + break; + case GL_RG: + for (i=0;i<n;i++) { + dst[i*2+0] = rgba[i][RCOMP]; + dst[i*2+1] = rgba[i][GCOMP]; + } + break; + case GL_RGB: + for (i=0;i<n;i++) { + dst[i*3+0] = rgba[i][RCOMP]; + dst[i*3+1] = rgba[i][GCOMP]; + dst[i*3+2] = rgba[i][BCOMP]; + } + break; + case GL_RGBA: + for (i=0;i<n;i++) { + dst[i*4+0] = rgba[i][RCOMP]; + dst[i*4+1] = rgba[i][GCOMP]; + dst[i*4+2] = rgba[i][BCOMP]; + dst[i*4+3] = rgba[i][ACOMP]; + } + break; + case GL_BGR: + for (i=0;i<n;i++) { + dst[i*3+0] = rgba[i][BCOMP]; + dst[i*3+1] = rgba[i][GCOMP]; + dst[i*3+2] = rgba[i][RCOMP]; + } + break; + case GL_BGRA: + for (i=0;i<n;i++) { + dst[i*4+0] = rgba[i][BCOMP]; + dst[i*4+1] = rgba[i][GCOMP]; + dst[i*4+2] = rgba[i][RCOMP]; + dst[i*4+3] = rgba[i][ACOMP]; + } + break; + case GL_ABGR_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = rgba[i][ACOMP]; + dst[i*4+1] = rgba[i][BCOMP]; + dst[i*4+2] = rgba[i][GCOMP]; + dst[i*4+3] = rgba[i][RCOMP]; + } + break; + case GL_DUDV_ATI: + case GL_DU8DV8_ATI: + for (i=0;i<n;i++) { + dst[i*2+0] = rgba[i][RCOMP]; + dst[i*2+1] = rgba[i][GCOMP]; + } + break; + default: + _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); + } + } + break; + case GL_HALF_FLOAT_ARB: + { + GLhalfARB *dst = (GLhalfARB *) dstAddr; + switch (dstFormat) { + case GL_RED: + for (i=0;i<n;i++) + dst[i] = _mesa_float_to_half(rgba[i][RCOMP]); + break; + case GL_GREEN: + for (i=0;i<n;i++) + dst[i] = _mesa_float_to_half(rgba[i][GCOMP]); + break; + case GL_BLUE: + for (i=0;i<n;i++) + dst[i] = _mesa_float_to_half(rgba[i][BCOMP]); + break; + case GL_ALPHA: + for (i=0;i<n;i++) + dst[i] = _mesa_float_to_half(rgba[i][ACOMP]); + break; + case GL_LUMINANCE: + for (i=0;i<n;i++) + dst[i] = _mesa_float_to_half(luminance[i]); + break; + case GL_LUMINANCE_ALPHA: + for (i=0;i<n;i++) { + dst[i*2+0] = _mesa_float_to_half(luminance[i]); + dst[i*2+1] = _mesa_float_to_half(rgba[i][ACOMP]); + } + break; + case GL_RG: + for (i=0;i<n;i++) { + dst[i*2+0] = _mesa_float_to_half(rgba[i][RCOMP]); + dst[i*2+1] = _mesa_float_to_half(rgba[i][GCOMP]); + } + break; + case GL_RGB: + for (i=0;i<n;i++) { + dst[i*3+0] = _mesa_float_to_half(rgba[i][RCOMP]); + dst[i*3+1] = _mesa_float_to_half(rgba[i][GCOMP]); + dst[i*3+2] = _mesa_float_to_half(rgba[i][BCOMP]); + } + break; + case GL_RGBA: + for (i=0;i<n;i++) { + dst[i*4+0] = _mesa_float_to_half(rgba[i][RCOMP]); + dst[i*4+1] = _mesa_float_to_half(rgba[i][GCOMP]); + dst[i*4+2] = _mesa_float_to_half(rgba[i][BCOMP]); + dst[i*4+3] = _mesa_float_to_half(rgba[i][ACOMP]); + } + break; + case GL_BGR: + for (i=0;i<n;i++) { + dst[i*3+0] = _mesa_float_to_half(rgba[i][BCOMP]); + dst[i*3+1] = _mesa_float_to_half(rgba[i][GCOMP]); + dst[i*3+2] = _mesa_float_to_half(rgba[i][RCOMP]); + } + break; + case GL_BGRA: + for (i=0;i<n;i++) { + dst[i*4+0] = _mesa_float_to_half(rgba[i][BCOMP]); + dst[i*4+1] = _mesa_float_to_half(rgba[i][GCOMP]); + dst[i*4+2] = _mesa_float_to_half(rgba[i][RCOMP]); + dst[i*4+3] = _mesa_float_to_half(rgba[i][ACOMP]); + } + break; + case GL_ABGR_EXT: + for (i=0;i<n;i++) { + dst[i*4+0] = _mesa_float_to_half(rgba[i][ACOMP]); + dst[i*4+1] = _mesa_float_to_half(rgba[i][BCOMP]); + dst[i*4+2] = _mesa_float_to_half(rgba[i][GCOMP]); + dst[i*4+3] = _mesa_float_to_half(rgba[i][RCOMP]); + } + break; + case GL_DUDV_ATI: + case GL_DU8DV8_ATI: + for (i=0;i<n;i++) { + dst[i*2+0] = _mesa_float_to_half(rgba[i][RCOMP]); + dst[i*2+1] = _mesa_float_to_half(rgba[i][GCOMP]); + } + break; + default: + _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n"); + } + } + break; + case GL_UNSIGNED_BYTE_3_3_2: + if (dstFormat == GL_RGB) { + GLubyte *dst = (GLubyte *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 7.0F) << 5) + | (IROUND(rgba[i][GCOMP] * 7.0F) << 2) + | (IROUND(rgba[i][BCOMP] * 3.0F) ); + } + } + break; + case GL_UNSIGNED_BYTE_2_3_3_REV: + if (dstFormat == GL_RGB) { + GLubyte *dst = (GLubyte *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 7.0F) ) + | (IROUND(rgba[i][GCOMP] * 7.0F) << 3) + | (IROUND(rgba[i][BCOMP] * 3.0F) << 6); + } + } + break; + case GL_UNSIGNED_SHORT_5_6_5: + if (dstFormat == GL_RGB) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 31.0F) << 11) + | (IROUND(rgba[i][GCOMP] * 63.0F) << 5) + | (IROUND(rgba[i][BCOMP] * 31.0F) ); + } + } + break; + case GL_UNSIGNED_SHORT_5_6_5_REV: + if (dstFormat == GL_RGB) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 31.0F) ) + | (IROUND(rgba[i][GCOMP] * 63.0F) << 5) + | (IROUND(rgba[i][BCOMP] * 31.0F) << 11); + } + } + break; + case GL_UNSIGNED_SHORT_4_4_4_4: + if (dstFormat == GL_RGBA) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 15.0F) << 12) + | (IROUND(rgba[i][GCOMP] * 15.0F) << 8) + | (IROUND(rgba[i][BCOMP] * 15.0F) << 4) + | (IROUND(rgba[i][ACOMP] * 15.0F) ); + } + } + else if (dstFormat == GL_BGRA) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][BCOMP] * 15.0F) << 12) + | (IROUND(rgba[i][GCOMP] * 15.0F) << 8) + | (IROUND(rgba[i][RCOMP] * 15.0F) << 4) + | (IROUND(rgba[i][ACOMP] * 15.0F) ); + } + } + else if (dstFormat == GL_ABGR_EXT) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][ACOMP] * 15.0F) << 12) + | (IROUND(rgba[i][BCOMP] * 15.0F) << 8) + | (IROUND(rgba[i][GCOMP] * 15.0F) << 4) + | (IROUND(rgba[i][RCOMP] * 15.0F) ); + } + } + break; + case GL_UNSIGNED_SHORT_4_4_4_4_REV: + if (dstFormat == GL_RGBA) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 15.0F) ) + | (IROUND(rgba[i][GCOMP] * 15.0F) << 4) + | (IROUND(rgba[i][BCOMP] * 15.0F) << 8) + | (IROUND(rgba[i][ACOMP] * 15.0F) << 12); + } + } + else if (dstFormat == GL_BGRA) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][BCOMP] * 15.0F) ) + | (IROUND(rgba[i][GCOMP] * 15.0F) << 4) + | (IROUND(rgba[i][RCOMP] * 15.0F) << 8) + | (IROUND(rgba[i][ACOMP] * 15.0F) << 12); + } + } + else if (dstFormat == GL_ABGR_EXT) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][ACOMP] * 15.0F) ) + | (IROUND(rgba[i][BCOMP] * 15.0F) << 4) + | (IROUND(rgba[i][GCOMP] * 15.0F) << 8) + | (IROUND(rgba[i][RCOMP] * 15.0F) << 12); + } + } + break; + case GL_UNSIGNED_SHORT_5_5_5_1: + if (dstFormat == GL_RGBA) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 31.0F) << 11) + | (IROUND(rgba[i][GCOMP] * 31.0F) << 6) + | (IROUND(rgba[i][BCOMP] * 31.0F) << 1) + | (IROUND(rgba[i][ACOMP] * 1.0F) ); + } + } + else if (dstFormat == GL_BGRA) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][BCOMP] * 31.0F) << 11) + | (IROUND(rgba[i][GCOMP] * 31.0F) << 6) + | (IROUND(rgba[i][RCOMP] * 31.0F) << 1) + | (IROUND(rgba[i][ACOMP] * 1.0F) ); + } + } + else if (dstFormat == GL_ABGR_EXT) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][ACOMP] * 31.0F) << 11) + | (IROUND(rgba[i][BCOMP] * 31.0F) << 6) + | (IROUND(rgba[i][GCOMP] * 31.0F) << 1) + | (IROUND(rgba[i][RCOMP] * 1.0F) ); + } + } + break; + case GL_UNSIGNED_SHORT_1_5_5_5_REV: + if (dstFormat == GL_RGBA) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 31.0F) ) + | (IROUND(rgba[i][GCOMP] * 31.0F) << 5) + | (IROUND(rgba[i][BCOMP] * 31.0F) << 10) + | (IROUND(rgba[i][ACOMP] * 1.0F) << 15); + } + } + else if (dstFormat == GL_BGRA) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][BCOMP] * 31.0F) ) + | (IROUND(rgba[i][GCOMP] * 31.0F) << 5) + | (IROUND(rgba[i][RCOMP] * 31.0F) << 10) + | (IROUND(rgba[i][ACOMP] * 1.0F) << 15); + } + } + else if (dstFormat == GL_ABGR_EXT) { + GLushort *dst = (GLushort *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][ACOMP] * 31.0F) ) + | (IROUND(rgba[i][BCOMP] * 31.0F) << 5) + | (IROUND(rgba[i][GCOMP] * 31.0F) << 10) + | (IROUND(rgba[i][RCOMP] * 1.0F) << 15); + } + } + break; + case GL_UNSIGNED_INT_8_8_8_8: + if (dstFormat == GL_RGBA) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 255.F) << 24) + | (IROUND(rgba[i][GCOMP] * 255.F) << 16) + | (IROUND(rgba[i][BCOMP] * 255.F) << 8) + | (IROUND(rgba[i][ACOMP] * 255.F) ); + } + } + else if (dstFormat == GL_BGRA) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][BCOMP] * 255.F) << 24) + | (IROUND(rgba[i][GCOMP] * 255.F) << 16) + | (IROUND(rgba[i][RCOMP] * 255.F) << 8) + | (IROUND(rgba[i][ACOMP] * 255.F) ); + } + } + else if (dstFormat == GL_ABGR_EXT) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][ACOMP] * 255.F) << 24) + | (IROUND(rgba[i][BCOMP] * 255.F) << 16) + | (IROUND(rgba[i][GCOMP] * 255.F) << 8) + | (IROUND(rgba[i][RCOMP] * 255.F) ); + } + } + break; + case GL_UNSIGNED_INT_8_8_8_8_REV: + if (dstFormat == GL_RGBA) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 255.0F) ) + | (IROUND(rgba[i][GCOMP] * 255.0F) << 8) + | (IROUND(rgba[i][BCOMP] * 255.0F) << 16) + | (IROUND(rgba[i][ACOMP] * 255.0F) << 24); + } + } + else if (dstFormat == GL_BGRA) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][BCOMP] * 255.0F) ) + | (IROUND(rgba[i][GCOMP] * 255.0F) << 8) + | (IROUND(rgba[i][RCOMP] * 255.0F) << 16) + | (IROUND(rgba[i][ACOMP] * 255.0F) << 24); + } + } + else if (dstFormat == GL_ABGR_EXT) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][ACOMP] * 255.0F) ) + | (IROUND(rgba[i][BCOMP] * 255.0F) << 8) + | (IROUND(rgba[i][GCOMP] * 255.0F) << 16) + | (IROUND(rgba[i][RCOMP] * 255.0F) << 24); + } + } + break; + case GL_UNSIGNED_INT_10_10_10_2: + if (dstFormat == GL_RGBA) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 1023.0F) << 22) + | (IROUND(rgba[i][GCOMP] * 1023.0F) << 12) + | (IROUND(rgba[i][BCOMP] * 1023.0F) << 2) + | (IROUND(rgba[i][ACOMP] * 3.0F) ); + } + } + else if (dstFormat == GL_BGRA) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][BCOMP] * 1023.0F) << 22) + | (IROUND(rgba[i][GCOMP] * 1023.0F) << 12) + | (IROUND(rgba[i][RCOMP] * 1023.0F) << 2) + | (IROUND(rgba[i][ACOMP] * 3.0F) ); + } + } + else if (dstFormat == GL_ABGR_EXT) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][ACOMP] * 1023.0F) << 22) + | (IROUND(rgba[i][BCOMP] * 1023.0F) << 12) + | (IROUND(rgba[i][GCOMP] * 1023.0F) << 2) + | (IROUND(rgba[i][RCOMP] * 3.0F) ); + } + } + break; + case GL_UNSIGNED_INT_2_10_10_10_REV: + if (dstFormat == GL_RGBA) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][RCOMP] * 1023.0F) ) + | (IROUND(rgba[i][GCOMP] * 1023.0F) << 10) + | (IROUND(rgba[i][BCOMP] * 1023.0F) << 20) + | (IROUND(rgba[i][ACOMP] * 3.0F) << 30); + } + } + else if (dstFormat == GL_BGRA) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][BCOMP] * 1023.0F) ) + | (IROUND(rgba[i][GCOMP] * 1023.0F) << 10) + | (IROUND(rgba[i][RCOMP] * 1023.0F) << 20) + | (IROUND(rgba[i][ACOMP] * 3.0F) << 30); + } + } + else if (dstFormat == GL_ABGR_EXT) { + GLuint *dst = (GLuint *) dstAddr; + for (i=0;i<n;i++) { + dst[i] = (IROUND(rgba[i][ACOMP] * 1023.0F) ) + | (IROUND(rgba[i][BCOMP] * 1023.0F) << 10) + | (IROUND(rgba[i][GCOMP] * 1023.0F) << 20) + | (IROUND(rgba[i][RCOMP] * 3.0F) << 30); + } + } + break; + default: + _mesa_problem(ctx, "bad type in _mesa_pack_rgba_span_float"); + return; + } + + if (dstPacking->SwapBytes) { + GLint swapSize = _mesa_sizeof_packed_type(dstType); + if (swapSize == 2) { + if (dstPacking->SwapBytes) { + _mesa_swap2((GLushort *) dstAddr, n * comps); + } + } + else if (swapSize == 4) { + if (dstPacking->SwapBytes) { + _mesa_swap4((GLuint *) dstAddr, n * comps); + } + } + } +} + + + +#define SWAP2BYTE(VALUE) \ + { \ + GLubyte *bytes = (GLubyte *) &(VALUE); \ + GLubyte tmp = bytes[0]; \ + bytes[0] = bytes[1]; \ + bytes[1] = tmp; \ + } + +#define SWAP4BYTE(VALUE) \ + { \ + GLubyte *bytes = (GLubyte *) &(VALUE); \ + GLubyte tmp = bytes[0]; \ + bytes[0] = bytes[3]; \ + bytes[3] = tmp; \ + tmp = bytes[1]; \ + bytes[1] = bytes[2]; \ + bytes[2] = tmp; \ + } + + +static void +extract_uint_indexes(GLuint n, GLuint indexes[], + GLenum srcFormat, GLenum srcType, const GLvoid *src, + const struct gl_pixelstore_attrib *unpack ) +{ + ASSERT(srcFormat == GL_COLOR_INDEX || srcFormat == GL_STENCIL_INDEX); + + ASSERT(srcType == GL_BITMAP || + srcType == GL_UNSIGNED_BYTE || + srcType == GL_BYTE || + srcType == GL_UNSIGNED_SHORT || + srcType == GL_SHORT || + srcType == GL_UNSIGNED_INT || + srcType == GL_INT || + srcType == GL_UNSIGNED_INT_24_8_EXT || + srcType == GL_HALF_FLOAT_ARB || + srcType == GL_FLOAT); + + switch (srcType) { + case GL_BITMAP: + { + GLubyte *ubsrc = (GLubyte *) src; + if (unpack->LsbFirst) { + GLubyte mask = 1 << (unpack->SkipPixels & 0x7); + GLuint i; + for (i = 0; i < n; i++) { + indexes[i] = (*ubsrc & mask) ? 1 : 0; + if (mask == 128) { + mask = 1; + ubsrc++; + } + else { + mask = mask << 1; + } + } + } + else { + GLubyte mask = 128 >> (unpack->SkipPixels & 0x7); + GLuint i; + for (i = 0; i < n; i++) { + indexes[i] = (*ubsrc & mask) ? 1 : 0; + if (mask == 1) { + mask = 128; + ubsrc++; + } + else { + mask = mask >> 1; + } + } + } + } + break; + case GL_UNSIGNED_BYTE: + { + GLuint i; + const GLubyte *s = (const GLubyte *) src; + for (i = 0; i < n; i++) + indexes[i] = s[i]; + } + break; + case GL_BYTE: + { + GLuint i; + const GLbyte *s = (const GLbyte *) src; + for (i = 0; i < n; i++) + indexes[i] = s[i]; + } + break; + case GL_UNSIGNED_SHORT: + { + GLuint i; + const GLushort *s = (const GLushort *) src; + if (unpack->SwapBytes) { + for (i = 0; i < n; i++) { + GLushort value = s[i]; + SWAP2BYTE(value); + indexes[i] = value; + } + } + else { + for (i = 0; i < n; i++) + indexes[i] = s[i]; + } + } + break; + case GL_SHORT: + { + GLuint i; + const GLshort *s = (const GLshort *) src; + if (unpack->SwapBytes) { + for (i = 0; i < n; i++) { + GLshort value = s[i]; + SWAP2BYTE(value); + indexes[i] = value; + } + } + else { + for (i = 0; i < n; i++) + indexes[i] = s[i]; + } + } + break; + case GL_UNSIGNED_INT: + { + GLuint i; + const GLuint *s = (const GLuint *) src; + if (unpack->SwapBytes) { + for (i = 0; i < n; i++) { + GLuint value = s[i]; + SWAP4BYTE(value); + indexes[i] = value; + } + } + else { + for (i = 0; i < n; i++) + indexes[i] = s[i]; + } + } + break; + case GL_INT: + { + GLuint i; + const GLint *s = (const GLint *) src; + if (unpack->SwapBytes) { + for (i = 0; i < n; i++) { + GLint value = s[i]; + SWAP4BYTE(value); + indexes[i] = value; + } + } + else { + for (i = 0; i < n; i++) + indexes[i] = s[i]; + } + } + break; + case GL_FLOAT: + { + GLuint i; + const GLfloat *s = (const GLfloat *) src; + if (unpack->SwapBytes) { + for (i = 0; i < n; i++) { + GLfloat value = s[i]; + SWAP4BYTE(value); + indexes[i] = (GLuint) value; + } + } + else { + for (i = 0; i < n; i++) + indexes[i] = (GLuint) s[i]; + } + } + break; + case GL_HALF_FLOAT_ARB: + { + GLuint i; + const GLhalfARB *s = (const GLhalfARB *) src; + if (unpack->SwapBytes) { + for (i = 0; i < n; i++) { + GLhalfARB value = s[i]; + SWAP2BYTE(value); + indexes[i] = (GLuint) _mesa_half_to_float(value); + } + } + else { + for (i = 0; i < n; i++) + indexes[i] = (GLuint) _mesa_half_to_float(s[i]); + } + } + break; + case GL_UNSIGNED_INT_24_8_EXT: + { + GLuint i; + const GLuint *s = (const GLuint *) src; + if (unpack->SwapBytes) { + for (i = 0; i < n; i++) { + GLuint value = s[i]; + SWAP4BYTE(value); + indexes[i] = value & 0xff; /* lower 8 bits */ + } + } + else { + for (i = 0; i < n; i++) + indexes[i] = s[i] & 0xff; /* lower 8 bits */ + } + } + break; + + default: + _mesa_problem(NULL, "bad srcType in extract_uint_indexes"); + return; + } +} + + +/* + * This function extracts floating point RGBA values from arbitrary + * image data. srcFormat and srcType are the format and type parameters + * passed to glDrawPixels, glTexImage[123]D, glTexSubImage[123]D, etc. + * + * Refering to section 3.6.4 of the OpenGL 1.2 spec, this function + * implements the "Conversion to floating point", "Conversion to RGB", + * and "Final Expansion to RGBA" operations. + * + * Args: n - number of pixels + * rgba - output colors + * srcFormat - format of incoming data + * srcType - data type of incoming data + * src - source data pointer + * swapBytes - perform byteswapping of incoming data? + */ +static void +extract_float_rgba(GLuint n, GLfloat rgba[][4], + GLenum srcFormat, GLenum srcType, const GLvoid *src, + GLboolean swapBytes) +{ + GLint redIndex, greenIndex, blueIndex, alphaIndex; + GLint stride; + GLint rComp, bComp, gComp, aComp; + GLboolean intFormat; + GLfloat rs = 1.0f, gs = 1.0f, bs = 1.0f, as = 1.0f; /* scale factors */ + + ASSERT(srcFormat == GL_RED || + srcFormat == GL_GREEN || + srcFormat == GL_BLUE || + srcFormat == GL_ALPHA || + srcFormat == GL_LUMINANCE || + srcFormat == GL_LUMINANCE_ALPHA || + srcFormat == GL_INTENSITY || + srcFormat == GL_RG || + srcFormat == GL_RGB || + srcFormat == GL_BGR || + srcFormat == GL_RGBA || + srcFormat == GL_BGRA || + srcFormat == GL_ABGR_EXT || + srcFormat == GL_DU8DV8_ATI || + srcFormat == GL_DUDV_ATI || + srcFormat == GL_RED_INTEGER_EXT || + srcFormat == GL_GREEN_INTEGER_EXT || + srcFormat == GL_BLUE_INTEGER_EXT || + srcFormat == GL_ALPHA_INTEGER_EXT || + srcFormat == GL_RGB_INTEGER_EXT || + srcFormat == GL_RGBA_INTEGER_EXT || + srcFormat == GL_BGR_INTEGER_EXT || + srcFormat == GL_BGRA_INTEGER_EXT || + srcFormat == GL_LUMINANCE_INTEGER_EXT || + srcFormat == GL_LUMINANCE_ALPHA_INTEGER_EXT); + + ASSERT(srcType == GL_UNSIGNED_BYTE || + srcType == GL_BYTE || + srcType == GL_UNSIGNED_SHORT || + srcType == GL_SHORT || + srcType == GL_UNSIGNED_INT || + srcType == GL_INT || + srcType == GL_HALF_FLOAT_ARB || + srcType == GL_FLOAT || + srcType == GL_UNSIGNED_BYTE_3_3_2 || + srcType == GL_UNSIGNED_BYTE_2_3_3_REV || + srcType == GL_UNSIGNED_SHORT_5_6_5 || + srcType == GL_UNSIGNED_SHORT_5_6_5_REV || + srcType == GL_UNSIGNED_SHORT_4_4_4_4 || + srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV || + srcType == GL_UNSIGNED_SHORT_5_5_5_1 || + srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV || + srcType == GL_UNSIGNED_INT_8_8_8_8 || + srcType == GL_UNSIGNED_INT_8_8_8_8_REV || + srcType == GL_UNSIGNED_INT_10_10_10_2 || + srcType == GL_UNSIGNED_INT_2_10_10_10_REV); + + rComp = gComp = bComp = aComp = -1; + + switch (srcFormat) { + case GL_RED: + case GL_RED_INTEGER_EXT: + redIndex = 0; + greenIndex = blueIndex = alphaIndex = -1; + stride = 1; + break; + case GL_GREEN: + case GL_GREEN_INTEGER_EXT: + greenIndex = 0; + redIndex = blueIndex = alphaIndex = -1; + stride = 1; + break; + case GL_BLUE: + case GL_BLUE_INTEGER_EXT: + blueIndex = 0; + redIndex = greenIndex = alphaIndex = -1; + stride = 1; + break; + case GL_ALPHA: + case GL_ALPHA_INTEGER_EXT: + redIndex = greenIndex = blueIndex = -1; + alphaIndex = 0; + stride = 1; + break; + case GL_LUMINANCE: + case GL_LUMINANCE_INTEGER_EXT: + redIndex = greenIndex = blueIndex = 0; + alphaIndex = -1; + stride = 1; + break; + case GL_LUMINANCE_ALPHA: + case GL_LUMINANCE_ALPHA_INTEGER_EXT: + redIndex = greenIndex = blueIndex = 0; + alphaIndex = 1; + stride = 2; + break; + case GL_INTENSITY: + redIndex = greenIndex = blueIndex = alphaIndex = 0; + stride = 1; + break; + case GL_RG: + case GL_RG_INTEGER: + redIndex = 0; + greenIndex = 1; + blueIndex = -1; + alphaIndex = -1; + rComp = 0; + gComp = 1; + bComp = 2; + aComp = 3; + stride = 2; + break; + case GL_RGB: + case GL_RGB_INTEGER: + redIndex = 0; + greenIndex = 1; + blueIndex = 2; + alphaIndex = -1; + rComp = 0; + gComp = 1; + bComp = 2; + aComp = 3; + stride = 3; + break; + case GL_BGR: + redIndex = 2; + greenIndex = 1; + blueIndex = 0; + alphaIndex = -1; + rComp = 2; + gComp = 1; + bComp = 0; + aComp = 3; + stride = 3; + break; + case GL_RGBA: + case GL_RGBA_INTEGER: + redIndex = 0; + greenIndex = 1; + blueIndex = 2; + alphaIndex = 3; + rComp = 0; + gComp = 1; + bComp = 2; + aComp = 3; + stride = 4; + break; + case GL_BGRA: + redIndex = 2; + greenIndex = 1; + blueIndex = 0; + alphaIndex = 3; + rComp = 2; + gComp = 1; + bComp = 0; + aComp = 3; + stride = 4; + break; + case GL_ABGR_EXT: + redIndex = 3; + greenIndex = 2; + blueIndex = 1; + alphaIndex = 0; + rComp = 3; + gComp = 2; + bComp = 1; + aComp = 0; + stride = 4; + break; + case GL_DU8DV8_ATI: + case GL_DUDV_ATI: + redIndex = 0; + greenIndex = 1; + blueIndex = -1; + alphaIndex = -1; + stride = 2; + break; + default: + _mesa_problem(NULL, "bad srcFormat %s in extract float data", + _mesa_lookup_enum_by_nr(srcFormat)); + return; + } + + intFormat = _mesa_is_integer_format(srcFormat); + +#define PROCESS(INDEX, CHANNEL, DEFAULT, DEFAULT_INT, TYPE, CONVERSION) \ + if ((INDEX) < 0) { \ + GLuint i; \ + if (intFormat) { \ + for (i = 0; i < n; i++) { \ + rgba[i][CHANNEL] = DEFAULT_INT; \ + } \ + } \ + else { \ + for (i = 0; i < n; i++) { \ + rgba[i][CHANNEL] = DEFAULT; \ + } \ + } \ + } \ + else if (swapBytes) { \ + const TYPE *s = (const TYPE *) src; \ + GLuint i; \ + for (i = 0; i < n; i++) { \ + TYPE value = s[INDEX]; \ + if (sizeof(TYPE) == 2) { \ + SWAP2BYTE(value); \ + } \ + else if (sizeof(TYPE) == 4) { \ + SWAP4BYTE(value); \ + } \ + if (intFormat) \ + rgba[i][CHANNEL] = (GLfloat) value; \ + else \ + rgba[i][CHANNEL] = (GLfloat) CONVERSION(value); \ + s += stride; \ + } \ + } \ + else { \ + const TYPE *s = (const TYPE *) src; \ + GLuint i; \ + if (intFormat) { \ + for (i = 0; i < n; i++) { \ + rgba[i][CHANNEL] = (GLfloat) s[INDEX]; \ + s += stride; \ + } \ + } \ + else { \ + for (i = 0; i < n; i++) { \ + rgba[i][CHANNEL] = (GLfloat) CONVERSION(s[INDEX]); \ + s += stride; \ + } \ + } \ + } + + switch (srcType) { + case GL_UNSIGNED_BYTE: + PROCESS(redIndex, RCOMP, 0.0F, 0, GLubyte, UBYTE_TO_FLOAT); + PROCESS(greenIndex, GCOMP, 0.0F, 0, GLubyte, UBYTE_TO_FLOAT); + PROCESS(blueIndex, BCOMP, 0.0F, 0, GLubyte, UBYTE_TO_FLOAT); + PROCESS(alphaIndex, ACOMP, 1.0F, 255, GLubyte, UBYTE_TO_FLOAT); + break; + case GL_BYTE: + PROCESS(redIndex, RCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT); + PROCESS(greenIndex, GCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT); + PROCESS(blueIndex, BCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT); + PROCESS(alphaIndex, ACOMP, 1.0F, 127, GLbyte, BYTE_TO_FLOAT); + break; + case GL_UNSIGNED_SHORT: + PROCESS(redIndex, RCOMP, 0.0F, 0, GLushort, USHORT_TO_FLOAT); + PROCESS(greenIndex, GCOMP, 0.0F, 0, GLushort, USHORT_TO_FLOAT); + PROCESS(blueIndex, BCOMP, 0.0F, 0, GLushort, USHORT_TO_FLOAT); + PROCESS(alphaIndex, ACOMP, 1.0F, 0xffff, GLushort, USHORT_TO_FLOAT); + break; + case GL_SHORT: + PROCESS(redIndex, RCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT); + PROCESS(greenIndex, GCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT); + PROCESS(blueIndex, BCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT); + PROCESS(alphaIndex, ACOMP, 1.0F, 32767, GLshort, SHORT_TO_FLOAT); + break; + case GL_UNSIGNED_INT: + PROCESS(redIndex, RCOMP, 0.0F, 0, GLuint, UINT_TO_FLOAT); + PROCESS(greenIndex, GCOMP, 0.0F, 0, GLuint, UINT_TO_FLOAT); + PROCESS(blueIndex, BCOMP, 0.0F, 0, GLuint, UINT_TO_FLOAT); + PROCESS(alphaIndex, ACOMP, 1.0F, 0xffffffff, GLuint, UINT_TO_FLOAT); + break; + case GL_INT: + PROCESS(redIndex, RCOMP, 0.0F, 0, GLint, INT_TO_FLOAT); + PROCESS(greenIndex, GCOMP, 0.0F, 0, GLint, INT_TO_FLOAT); + PROCESS(blueIndex, BCOMP, 0.0F, 0, GLint, INT_TO_FLOAT); + PROCESS(alphaIndex, ACOMP, 1.0F, 2147483647, GLint, INT_TO_FLOAT); + break; + case GL_FLOAT: + PROCESS(redIndex, RCOMP, 0.0F, 0.0F, GLfloat, (GLfloat)); + PROCESS(greenIndex, GCOMP, 0.0F, 0.0F, GLfloat, (GLfloat)); + PROCESS(blueIndex, BCOMP, 0.0F, 0.0F, GLfloat, (GLfloat)); + PROCESS(alphaIndex, ACOMP, 1.0F, 1.0F, GLfloat, (GLfloat)); + break; + case GL_HALF_FLOAT_ARB: + PROCESS(redIndex, RCOMP, 0.0F, 0.0F, GLhalfARB, _mesa_half_to_float); + PROCESS(greenIndex, GCOMP, 0.0F, 0.0F, GLhalfARB, _mesa_half_to_float); + PROCESS(blueIndex, BCOMP, 0.0F, 0.0F, GLhalfARB, _mesa_half_to_float); + PROCESS(alphaIndex, ACOMP, 1.0F, 1.0F, GLhalfARB, _mesa_half_to_float); + break; + case GL_UNSIGNED_BYTE_3_3_2: + { + const GLubyte *ubsrc = (const GLubyte *) src; + GLuint i; + if (!intFormat) { + rs = 1.0F / 7.0F; + gs = 1.0F / 7.0F; + bs = 1.0F / 3.0F; + } + for (i = 0; i < n; i ++) { + GLubyte p = ubsrc[i]; + rgba[i][rComp] = ((p >> 5) ) * rs; + rgba[i][gComp] = ((p >> 2) & 0x7) * gs; + rgba[i][bComp] = ((p ) & 0x3) * bs; + rgba[i][aComp] = 1.0F; + } + } + break; + case GL_UNSIGNED_BYTE_2_3_3_REV: + { + const GLubyte *ubsrc = (const GLubyte *) src; + GLuint i; + if (!intFormat) { + rs = 1.0F / 7.0F; + gs = 1.0F / 7.0F; + bs = 1.0F / 3.0F; + } + for (i = 0; i < n; i ++) { + GLubyte p = ubsrc[i]; + rgba[i][rComp] = ((p ) & 0x7) * rs; + rgba[i][gComp] = ((p >> 3) & 0x7) * gs; + rgba[i][bComp] = ((p >> 6) ) * bs; + rgba[i][aComp] = 1.0F; + } + } + break; + case GL_UNSIGNED_SHORT_5_6_5: + if (!intFormat) { + rs = 1.0F / 31.0F; + gs = 1.0F / 63.0F; + bs = 1.0F / 31.0F; + } + if (swapBytes) { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + SWAP2BYTE(p); + rgba[i][rComp] = ((p >> 11) ) * rs; + rgba[i][gComp] = ((p >> 5) & 0x3f) * gs; + rgba[i][bComp] = ((p ) & 0x1f) * bs; + rgba[i][aComp] = 1.0F; + } + } + else { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + rgba[i][rComp] = ((p >> 11) ) * rs; + rgba[i][gComp] = ((p >> 5) & 0x3f) * gs; + rgba[i][bComp] = ((p ) & 0x1f) * bs; + rgba[i][aComp] = 1.0F; + } + } + break; + case GL_UNSIGNED_SHORT_5_6_5_REV: + if (!intFormat) { + rs = 1.0F / 31.0F; + gs = 1.0F / 63.0F; + bs = 1.0F / 31.0F; + } + if (swapBytes) { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + SWAP2BYTE(p); + rgba[i][rComp] = ((p ) & 0x1f) * rs; + rgba[i][gComp] = ((p >> 5) & 0x3f) * gs; + rgba[i][bComp] = ((p >> 11) ) * bs; + rgba[i][aComp] = 1.0F; + } + } + else { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + rgba[i][rComp] = ((p ) & 0x1f) * rs; + rgba[i][gComp] = ((p >> 5) & 0x3f) * gs; + rgba[i][bComp] = ((p >> 11) ) * bs; + rgba[i][aComp] = 1.0F; + } + } + break; + case GL_UNSIGNED_SHORT_4_4_4_4: + if (!intFormat) { + rs = gs = bs = as = 1.0F / 15.0F; + } + if (swapBytes) { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + SWAP2BYTE(p); + rgba[i][rComp] = ((p >> 12) ) * rs; + rgba[i][gComp] = ((p >> 8) & 0xf) * gs; + rgba[i][bComp] = ((p >> 4) & 0xf) * bs; + rgba[i][aComp] = ((p ) & 0xf) * as; + } + } + else { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + rgba[i][rComp] = ((p >> 12) ) * rs; + rgba[i][gComp] = ((p >> 8) & 0xf) * gs; + rgba[i][bComp] = ((p >> 4) & 0xf) * bs; + rgba[i][aComp] = ((p ) & 0xf) * as; + } + } + break; + case GL_UNSIGNED_SHORT_4_4_4_4_REV: + if (!intFormat) { + rs = gs = bs = as = 1.0F / 15.0F; + } + if (swapBytes) { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + SWAP2BYTE(p); + rgba[i][rComp] = ((p ) & 0xf) * rs; + rgba[i][gComp] = ((p >> 4) & 0xf) * gs; + rgba[i][bComp] = ((p >> 8) & 0xf) * bs; + rgba[i][aComp] = ((p >> 12) ) * as; + } + } + else { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + rgba[i][rComp] = ((p ) & 0xf) * rs; + rgba[i][gComp] = ((p >> 4) & 0xf) * gs; + rgba[i][bComp] = ((p >> 8) & 0xf) * bs; + rgba[i][aComp] = ((p >> 12) ) * as; + } + } + break; + case GL_UNSIGNED_SHORT_5_5_5_1: + if (!intFormat) { + rs = gs = bs = 1.0F / 31.0F; + } + if (swapBytes) { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + SWAP2BYTE(p); + rgba[i][rComp] = ((p >> 11) ) * rs; + rgba[i][gComp] = ((p >> 6) & 0x1f) * gs; + rgba[i][bComp] = ((p >> 1) & 0x1f) * bs; + rgba[i][aComp] = ((p ) & 0x1) * as; + } + } + else { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + rgba[i][rComp] = ((p >> 11) ) * rs; + rgba[i][gComp] = ((p >> 6) & 0x1f) * gs; + rgba[i][bComp] = ((p >> 1) & 0x1f) * bs; + rgba[i][aComp] = ((p ) & 0x1) * as; + } + } + break; + case GL_UNSIGNED_SHORT_1_5_5_5_REV: + if (!intFormat) { + rs = gs = bs = 1.0F / 31.0F; + } + if (swapBytes) { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + SWAP2BYTE(p); + rgba[i][rComp] = ((p ) & 0x1f) * rs; + rgba[i][gComp] = ((p >> 5) & 0x1f) * gs; + rgba[i][bComp] = ((p >> 10) & 0x1f) * bs; + rgba[i][aComp] = ((p >> 15) ) * as; + } + } + else { + const GLushort *ussrc = (const GLushort *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLushort p = ussrc[i]; + rgba[i][rComp] = ((p ) & 0x1f) * rs; + rgba[i][gComp] = ((p >> 5) & 0x1f) * gs; + rgba[i][bComp] = ((p >> 10) & 0x1f) * bs; + rgba[i][aComp] = ((p >> 15) ) * as; + } + } + break; + case GL_UNSIGNED_INT_8_8_8_8: + if (swapBytes) { + const GLuint *uisrc = (const GLuint *) src; + GLuint i; + if (intFormat) { + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = (GLfloat) ((p ) & 0xff); + rgba[i][gComp] = (GLfloat) ((p >> 8) & 0xff); + rgba[i][bComp] = (GLfloat) ((p >> 16) & 0xff); + rgba[i][aComp] = (GLfloat) ((p >> 24) ); + } + } + else { + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = UBYTE_TO_FLOAT((p ) & 0xff); + rgba[i][gComp] = UBYTE_TO_FLOAT((p >> 8) & 0xff); + rgba[i][bComp] = UBYTE_TO_FLOAT((p >> 16) & 0xff); + rgba[i][aComp] = UBYTE_TO_FLOAT((p >> 24) ); + } + } + } + else { + const GLuint *uisrc = (const GLuint *) src; + GLuint i; + if (intFormat) { + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = (GLfloat) ((p >> 24) ); + rgba[i][gComp] = (GLfloat) ((p >> 16) & 0xff); + rgba[i][bComp] = (GLfloat) ((p >> 8) & 0xff); + rgba[i][aComp] = (GLfloat) ((p ) & 0xff); + } + } + else { + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = UBYTE_TO_FLOAT((p >> 24) ); + rgba[i][gComp] = UBYTE_TO_FLOAT((p >> 16) & 0xff); + rgba[i][bComp] = UBYTE_TO_FLOAT((p >> 8) & 0xff); + rgba[i][aComp] = UBYTE_TO_FLOAT((p ) & 0xff); + } + } + } + break; + case GL_UNSIGNED_INT_8_8_8_8_REV: + if (swapBytes) { + const GLuint *uisrc = (const GLuint *) src; + GLuint i; + if (intFormat) { + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = (GLfloat) ((p >> 24) ); + rgba[i][gComp] = (GLfloat) ((p >> 16) & 0xff); + rgba[i][bComp] = (GLfloat) ((p >> 8) & 0xff); + rgba[i][aComp] = (GLfloat) ((p ) & 0xff); + } + } + else { + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = UBYTE_TO_FLOAT((p >> 24) ); + rgba[i][gComp] = UBYTE_TO_FLOAT((p >> 16) & 0xff); + rgba[i][bComp] = UBYTE_TO_FLOAT((p >> 8) & 0xff); + rgba[i][aComp] = UBYTE_TO_FLOAT((p ) & 0xff); + } + } + } + else { + const GLuint *uisrc = (const GLuint *) src; + GLuint i; + if (intFormat) { + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = (GLfloat) ((p ) & 0xff); + rgba[i][gComp] = (GLfloat) ((p >> 8) & 0xff); + rgba[i][bComp] = (GLfloat) ((p >> 16) & 0xff); + rgba[i][aComp] = (GLfloat) ((p >> 24) ); + } + } + else { + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = UBYTE_TO_FLOAT((p ) & 0xff); + rgba[i][gComp] = UBYTE_TO_FLOAT((p >> 8) & 0xff); + rgba[i][bComp] = UBYTE_TO_FLOAT((p >> 16) & 0xff); + rgba[i][aComp] = UBYTE_TO_FLOAT((p >> 24) ); + } + } + } + break; + case GL_UNSIGNED_INT_10_10_10_2: + if (!intFormat) { + rs = 1.0F / 1023.0F; + gs = 1.0F / 1023.0F; + bs = 1.0F / 1023.0F; + as = 1.0F / 3.0F; + } + if (swapBytes) { + const GLuint *uisrc = (const GLuint *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + SWAP4BYTE(p); + rgba[i][rComp] = ((p >> 22) ) * rs; + rgba[i][gComp] = ((p >> 12) & 0x3ff) * gs; + rgba[i][bComp] = ((p >> 2) & 0x3ff) * bs; + rgba[i][aComp] = ((p ) & 0x3 ) * as; + } + } + else { + const GLuint *uisrc = (const GLuint *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = ((p >> 22) ) * rs; + rgba[i][gComp] = ((p >> 12) & 0x3ff) * gs; + rgba[i][bComp] = ((p >> 2) & 0x3ff) * bs; + rgba[i][aComp] = ((p ) & 0x3 ) * as; + } + } + break; + case GL_UNSIGNED_INT_2_10_10_10_REV: + if (!intFormat) { + rs = 1.0F / 1023.0F; + gs = 1.0F / 1023.0F; + bs = 1.0F / 1023.0F; + as = 1.0F / 3.0F; + } + if (swapBytes) { + const GLuint *uisrc = (const GLuint *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + SWAP4BYTE(p); + rgba[i][rComp] = ((p ) & 0x3ff) * rs; + rgba[i][gComp] = ((p >> 10) & 0x3ff) * gs; + rgba[i][bComp] = ((p >> 20) & 0x3ff) * bs; + rgba[i][aComp] = ((p >> 30) ) * as; + } + } + else { + const GLuint *uisrc = (const GLuint *) src; + GLuint i; + for (i = 0; i < n; i ++) { + GLuint p = uisrc[i]; + rgba[i][rComp] = ((p ) & 0x3ff) * rs; + rgba[i][gComp] = ((p >> 10) & 0x3ff) * gs; + rgba[i][bComp] = ((p >> 20) & 0x3ff) * bs; + rgba[i][aComp] = ((p >> 30) ) * as; + } + } + break; + default: + _mesa_problem(NULL, "bad srcType in extract float data"); + break; + } +} + + +/* + * Unpack a row of color image data from a client buffer according to + * the pixel unpacking parameters. + * Return GLchan values in the specified dest image format. + * This is used by glDrawPixels and glTexImage?D(). + * \param ctx - the context + * n - number of pixels in the span + * dstFormat - format of destination color array + * dest - the destination color array + * srcFormat - source image format + * srcType - source image data type + * source - source image pointer + * srcPacking - pixel unpacking parameters + * transferOps - bitmask of IMAGE_*_BIT values of operations to apply + * + * XXX perhaps expand this to process whole images someday. + */ +void +_mesa_unpack_color_span_chan( struct gl_context *ctx, + GLuint n, GLenum dstFormat, GLchan dest[], + GLenum srcFormat, GLenum srcType, + const GLvoid *source, + const struct gl_pixelstore_attrib *srcPacking, + GLbitfield transferOps ) +{ + ASSERT(dstFormat == GL_ALPHA || + dstFormat == GL_LUMINANCE || + dstFormat == GL_LUMINANCE_ALPHA || + dstFormat == GL_INTENSITY || + dstFormat == GL_RED || + dstFormat == GL_RG || + dstFormat == GL_RGB || + dstFormat == GL_RGBA || + dstFormat == GL_COLOR_INDEX); + + ASSERT(srcFormat == GL_RED || + srcFormat == GL_GREEN || + srcFormat == GL_BLUE || + srcFormat == GL_ALPHA || + srcFormat == GL_LUMINANCE || + srcFormat == GL_LUMINANCE_ALPHA || + srcFormat == GL_INTENSITY || + srcFormat == GL_RG || + srcFormat == GL_RGB || + srcFormat == GL_BGR || + srcFormat == GL_RGBA || + srcFormat == GL_BGRA || + srcFormat == GL_ABGR_EXT || + srcFormat == GL_COLOR_INDEX); + + ASSERT(srcType == GL_BITMAP || + srcType == GL_UNSIGNED_BYTE || + srcType == GL_BYTE || + srcType == GL_UNSIGNED_SHORT || + srcType == GL_SHORT || + srcType == GL_UNSIGNED_INT || + srcType == GL_INT || + srcType == GL_HALF_FLOAT_ARB || + srcType == GL_FLOAT || + srcType == GL_UNSIGNED_BYTE_3_3_2 || + srcType == GL_UNSIGNED_BYTE_2_3_3_REV || + srcType == GL_UNSIGNED_SHORT_5_6_5 || + srcType == GL_UNSIGNED_SHORT_5_6_5_REV || + srcType == GL_UNSIGNED_SHORT_4_4_4_4 || + srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV || + srcType == GL_UNSIGNED_SHORT_5_5_5_1 || + srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV || + srcType == GL_UNSIGNED_INT_8_8_8_8 || + srcType == GL_UNSIGNED_INT_8_8_8_8_REV || + srcType == GL_UNSIGNED_INT_10_10_10_2 || + srcType == GL_UNSIGNED_INT_2_10_10_10_REV); + + /* Try simple cases first */ + if (transferOps == 0) { + if (srcType == CHAN_TYPE) { + if (dstFormat == GL_RGBA) { + if (srcFormat == GL_RGBA) { + memcpy( dest, source, n * 4 * sizeof(GLchan) ); + return; + } + else if (srcFormat == GL_RGB) { + GLuint i; + const GLchan *src = (const GLchan *) source; + GLchan *dst = dest; + for (i = 0; i < n; i++) { + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = CHAN_MAX; + src += 3; + dst += 4; + } + return; + } + } + else if (dstFormat == GL_RGB) { + if (srcFormat == GL_RGB) { + memcpy( dest, source, n * 3 * sizeof(GLchan) ); + return; + } + else if (srcFormat == GL_RGBA) { + GLuint i; + const GLchan *src = (const GLchan *) source; + GLchan *dst = dest; + for (i = 0; i < n; i++) { + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + src += 4; + dst += 3; + } + return; + } + } + else if (dstFormat == srcFormat) { + GLint comps = _mesa_components_in_format(srcFormat); + assert(comps > 0); + memcpy( dest, source, n * comps * sizeof(GLchan) ); + return; + } + } + /* + * Common situation, loading 8bit RGBA/RGB source images + * into 16/32 bit destination. (OSMesa16/32) + */ + else if (srcType == GL_UNSIGNED_BYTE) { + if (dstFormat == GL_RGBA) { + if (srcFormat == GL_RGB) { + GLuint i; + const GLubyte *src = (const GLubyte *) source; + GLchan *dst = dest; + for (i = 0; i < n; i++) { + dst[0] = UBYTE_TO_CHAN(src[0]); + dst[1] = UBYTE_TO_CHAN(src[1]); + dst[2] = UBYTE_TO_CHAN(src[2]); + dst[3] = CHAN_MAX; + src += 3; + dst += 4; + } + return; + } + else if (srcFormat == GL_RGBA) { + GLuint i; + const GLubyte *src = (const GLubyte *) source; + GLchan *dst = dest; + for (i = 0; i < n; i++) { + dst[0] = UBYTE_TO_CHAN(src[0]); + dst[1] = UBYTE_TO_CHAN(src[1]); + dst[2] = UBYTE_TO_CHAN(src[2]); + dst[3] = UBYTE_TO_CHAN(src[3]); + src += 4; + dst += 4; + } + return; + } + } + else if (dstFormat == GL_RGB) { + if (srcFormat == GL_RGB) { + GLuint i; + const GLubyte *src = (const GLubyte *) source; + GLchan *dst = dest; + for (i = 0; i < n; i++) { + dst[0] = UBYTE_TO_CHAN(src[0]); + dst[1] = UBYTE_TO_CHAN(src[1]); + dst[2] = UBYTE_TO_CHAN(src[2]); + src += 3; + dst += 3; + } + return; + } + else if (srcFormat == GL_RGBA) { + GLuint i; + const GLubyte *src = (const GLubyte *) source; + GLchan *dst = dest; + for (i = 0; i < n; i++) { + dst[0] = UBYTE_TO_CHAN(src[0]); + dst[1] = UBYTE_TO_CHAN(src[1]); + dst[2] = UBYTE_TO_CHAN(src[2]); + src += 4; + dst += 3; + } + return; + } + } + } + } + + + /* general solution begins here */ + { + GLint dstComponents; + GLint dstRedIndex, dstGreenIndex, dstBlueIndex, dstAlphaIndex; + GLint dstLuminanceIndex, dstIntensityIndex; + GLfloat rgba[MAX_WIDTH][4]; + + dstComponents = _mesa_components_in_format( dstFormat ); + /* source & dest image formats should have been error checked by now */ + assert(dstComponents > 0); + + /* + * Extract image data and convert to RGBA floats + */ + assert(n <= MAX_WIDTH); + if (srcFormat == GL_COLOR_INDEX) { + GLuint indexes[MAX_WIDTH]; + extract_uint_indexes(n, indexes, srcFormat, srcType, source, + srcPacking); + + if (dstFormat == GL_COLOR_INDEX) { + GLuint i; + _mesa_apply_ci_transfer_ops(ctx, transferOps, n, indexes); + /* convert to GLchan and return */ + for (i = 0; i < n; i++) { + dest[i] = (GLchan) (indexes[i] & 0xff); + } + return; + } + else { + /* Convert indexes to RGBA */ + if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { + _mesa_shift_and_offset_ci(ctx, n, indexes); + } + _mesa_map_ci_to_rgba(ctx, n, indexes, rgba); + } + + /* Don't do RGBA scale/bias or RGBA->RGBA mapping if starting + * with color indexes. + */ + transferOps &= ~(IMAGE_SCALE_BIAS_BIT | IMAGE_MAP_COLOR_BIT); + } + else { + /* non-color index data */ + extract_float_rgba(n, rgba, srcFormat, srcType, source, + srcPacking->SwapBytes); + } + + /* Need to clamp if returning GLubytes or GLushorts */ +#if CHAN_TYPE != GL_FLOAT + transferOps |= IMAGE_CLAMP_BIT; +#endif + + if (transferOps) { + _mesa_apply_rgba_transfer_ops(ctx, transferOps, n, rgba); + } + + /* Now determine which color channels we need to produce. + * And determine the dest index (offset) within each color tuple. + */ + switch (dstFormat) { + case GL_ALPHA: + dstAlphaIndex = 0; + dstRedIndex = dstGreenIndex = dstBlueIndex = -1; + dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_LUMINANCE: + dstLuminanceIndex = 0; + dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; + dstIntensityIndex = -1; + break; + case GL_LUMINANCE_ALPHA: + dstLuminanceIndex = 0; + dstAlphaIndex = 1; + dstRedIndex = dstGreenIndex = dstBlueIndex = -1; + dstIntensityIndex = -1; + break; + case GL_INTENSITY: + dstIntensityIndex = 0; + dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; + dstLuminanceIndex = -1; + break; + case GL_RED: + dstRedIndex = 0; + dstGreenIndex = dstBlueIndex = -1; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_RG: + dstRedIndex = 0; + dstGreenIndex = 1; + dstBlueIndex = -1; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_RGB: + dstRedIndex = 0; + dstGreenIndex = 1; + dstBlueIndex = 2; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_RGBA: + dstRedIndex = 0; + dstGreenIndex = 1; + dstBlueIndex = 2; + dstAlphaIndex = 3; + dstLuminanceIndex = dstIntensityIndex = -1; + break; + default: + _mesa_problem(ctx, "bad dstFormat in _mesa_unpack_chan_span()"); + return; + } + + + /* Now return the GLchan data in the requested dstFormat */ + + if (dstRedIndex >= 0) { + GLchan *dst = dest; + GLuint i; + for (i = 0; i < n; i++) { + CLAMPED_FLOAT_TO_CHAN(dst[dstRedIndex], rgba[i][RCOMP]); + dst += dstComponents; + } + } + + if (dstGreenIndex >= 0) { + GLchan *dst = dest; + GLuint i; + for (i = 0; i < n; i++) { + CLAMPED_FLOAT_TO_CHAN(dst[dstGreenIndex], rgba[i][GCOMP]); + dst += dstComponents; + } + } + + if (dstBlueIndex >= 0) { + GLchan *dst = dest; + GLuint i; + for (i = 0; i < n; i++) { + CLAMPED_FLOAT_TO_CHAN(dst[dstBlueIndex], rgba[i][BCOMP]); + dst += dstComponents; + } + } + + if (dstAlphaIndex >= 0) { + GLchan *dst = dest; + GLuint i; + for (i = 0; i < n; i++) { + CLAMPED_FLOAT_TO_CHAN(dst[dstAlphaIndex], rgba[i][ACOMP]); + dst += dstComponents; + } + } + + if (dstIntensityIndex >= 0) { + GLchan *dst = dest; + GLuint i; + assert(dstIntensityIndex == 0); + assert(dstComponents == 1); + for (i = 0; i < n; i++) { + /* Intensity comes from red channel */ + CLAMPED_FLOAT_TO_CHAN(dst[i], rgba[i][RCOMP]); + } + } + + if (dstLuminanceIndex >= 0) { + GLchan *dst = dest; + GLuint i; + assert(dstLuminanceIndex == 0); + for (i = 0; i < n; i++) { + /* Luminance comes from red channel */ + CLAMPED_FLOAT_TO_CHAN(dst[0], rgba[i][RCOMP]); + dst += dstComponents; + } + } + } +} + + +/** + * Same as _mesa_unpack_color_span_chan(), but return GLfloat data + * instead of GLchan. + */ +void +_mesa_unpack_color_span_float( struct gl_context *ctx, + GLuint n, GLenum dstFormat, GLfloat dest[], + GLenum srcFormat, GLenum srcType, + const GLvoid *source, + const struct gl_pixelstore_attrib *srcPacking, + GLbitfield transferOps ) +{ + ASSERT(dstFormat == GL_ALPHA || + dstFormat == GL_LUMINANCE || + dstFormat == GL_LUMINANCE_ALPHA || + dstFormat == GL_INTENSITY || + dstFormat == GL_RED || + dstFormat == GL_RG || + dstFormat == GL_RGB || + dstFormat == GL_RGBA || + dstFormat == GL_COLOR_INDEX); + + ASSERT(srcFormat == GL_RED || + srcFormat == GL_GREEN || + srcFormat == GL_BLUE || + srcFormat == GL_ALPHA || + srcFormat == GL_LUMINANCE || + srcFormat == GL_LUMINANCE_ALPHA || + srcFormat == GL_INTENSITY || + srcFormat == GL_RG || + srcFormat == GL_RGB || + srcFormat == GL_BGR || + srcFormat == GL_RGBA || + srcFormat == GL_BGRA || + srcFormat == GL_ABGR_EXT || + srcFormat == GL_RED_INTEGER_EXT || + srcFormat == GL_GREEN_INTEGER_EXT || + srcFormat == GL_BLUE_INTEGER_EXT || + srcFormat == GL_ALPHA_INTEGER_EXT || + srcFormat == GL_RGB_INTEGER_EXT || + srcFormat == GL_RGBA_INTEGER_EXT || + srcFormat == GL_BGR_INTEGER_EXT || + srcFormat == GL_BGRA_INTEGER_EXT || + srcFormat == GL_LUMINANCE_INTEGER_EXT || + srcFormat == GL_LUMINANCE_ALPHA_INTEGER_EXT || + srcFormat == GL_COLOR_INDEX); + + ASSERT(srcType == GL_BITMAP || + srcType == GL_UNSIGNED_BYTE || + srcType == GL_BYTE || + srcType == GL_UNSIGNED_SHORT || + srcType == GL_SHORT || + srcType == GL_UNSIGNED_INT || + srcType == GL_INT || + srcType == GL_HALF_FLOAT_ARB || + srcType == GL_FLOAT || + srcType == GL_UNSIGNED_BYTE_3_3_2 || + srcType == GL_UNSIGNED_BYTE_2_3_3_REV || + srcType == GL_UNSIGNED_SHORT_5_6_5 || + srcType == GL_UNSIGNED_SHORT_5_6_5_REV || + srcType == GL_UNSIGNED_SHORT_4_4_4_4 || + srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV || + srcType == GL_UNSIGNED_SHORT_5_5_5_1 || + srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV || + srcType == GL_UNSIGNED_INT_8_8_8_8 || + srcType == GL_UNSIGNED_INT_8_8_8_8_REV || + srcType == GL_UNSIGNED_INT_10_10_10_2 || + srcType == GL_UNSIGNED_INT_2_10_10_10_REV); + + /* general solution, no special cases, yet */ + { + GLint dstComponents; + GLint dstRedIndex, dstGreenIndex, dstBlueIndex, dstAlphaIndex; + GLint dstLuminanceIndex, dstIntensityIndex; + GLfloat rgba[MAX_WIDTH][4]; + + dstComponents = _mesa_components_in_format( dstFormat ); + /* source & dest image formats should have been error checked by now */ + assert(dstComponents > 0); + + /* + * Extract image data and convert to RGBA floats + */ + assert(n <= MAX_WIDTH); + if (srcFormat == GL_COLOR_INDEX) { + GLuint indexes[MAX_WIDTH]; + extract_uint_indexes(n, indexes, srcFormat, srcType, source, + srcPacking); + + if (dstFormat == GL_COLOR_INDEX) { + GLuint i; + _mesa_apply_ci_transfer_ops(ctx, transferOps, n, indexes); + /* convert to GLchan and return */ + for (i = 0; i < n; i++) { + dest[i] = (GLchan) (indexes[i] & 0xff); + } + return; + } + else { + /* Convert indexes to RGBA */ + if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { + _mesa_shift_and_offset_ci(ctx, n, indexes); + } + _mesa_map_ci_to_rgba(ctx, n, indexes, rgba); + } + + /* Don't do RGBA scale/bias or RGBA->RGBA mapping if starting + * with color indexes. + */ + transferOps &= ~(IMAGE_SCALE_BIAS_BIT | IMAGE_MAP_COLOR_BIT); + } + else { + /* non-color index data */ + extract_float_rgba(n, rgba, srcFormat, srcType, source, + srcPacking->SwapBytes); + } + + if (transferOps) { + _mesa_apply_rgba_transfer_ops(ctx, transferOps, n, rgba); + } + + /* Now determine which color channels we need to produce. + * And determine the dest index (offset) within each color tuple. + */ + switch (dstFormat) { + case GL_ALPHA: + dstAlphaIndex = 0; + dstRedIndex = dstGreenIndex = dstBlueIndex = -1; + dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_LUMINANCE: + dstLuminanceIndex = 0; + dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; + dstIntensityIndex = -1; + break; + case GL_LUMINANCE_ALPHA: + dstLuminanceIndex = 0; + dstAlphaIndex = 1; + dstRedIndex = dstGreenIndex = dstBlueIndex = -1; + dstIntensityIndex = -1; + break; + case GL_INTENSITY: + dstIntensityIndex = 0; + dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; + dstLuminanceIndex = -1; + break; + case GL_RED: + dstRedIndex = 0; + dstGreenIndex = dstBlueIndex = -1; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_RG: + dstRedIndex = 0; + dstGreenIndex = 1; + dstBlueIndex = -1; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_RGB: + dstRedIndex = 0; + dstGreenIndex = 1; + dstBlueIndex = 2; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_RGBA: + dstRedIndex = 0; + dstGreenIndex = 1; + dstBlueIndex = 2; + dstAlphaIndex = 3; + dstLuminanceIndex = dstIntensityIndex = -1; + break; + default: + _mesa_problem(ctx, "bad dstFormat in _mesa_unpack_color_span_float()"); + return; + } + + /* Now pack results in the requested dstFormat */ + if (dstRedIndex >= 0) { + GLfloat *dst = dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[dstRedIndex] = rgba[i][RCOMP]; + dst += dstComponents; + } + } + + if (dstGreenIndex >= 0) { + GLfloat *dst = dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[dstGreenIndex] = rgba[i][GCOMP]; + dst += dstComponents; + } + } + + if (dstBlueIndex >= 0) { + GLfloat *dst = dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[dstBlueIndex] = rgba[i][BCOMP]; + dst += dstComponents; + } + } + + if (dstAlphaIndex >= 0) { + GLfloat *dst = dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[dstAlphaIndex] = rgba[i][ACOMP]; + dst += dstComponents; + } + } + + if (dstIntensityIndex >= 0) { + GLfloat *dst = dest; + GLuint i; + assert(dstIntensityIndex == 0); + assert(dstComponents == 1); + for (i = 0; i < n; i++) { + /* Intensity comes from red channel */ + dst[i] = rgba[i][RCOMP]; + } + } + + if (dstLuminanceIndex >= 0) { + GLfloat *dst = dest; + GLuint i; + assert(dstLuminanceIndex == 0); + for (i = 0; i < n; i++) { + /* Luminance comes from red channel */ + dst[0] = rgba[i][RCOMP]; + dst += dstComponents; + } + } + } +} + +/** + * Similar to _mesa_unpack_color_span_float(), but for dudv data instead of rgba, + * directly return GLbyte data, no transfer ops apply. + */ +void +_mesa_unpack_dudv_span_byte( struct gl_context *ctx, + GLuint n, GLenum dstFormat, GLbyte dest[], + GLenum srcFormat, GLenum srcType, + const GLvoid *source, + const struct gl_pixelstore_attrib *srcPacking, + GLbitfield transferOps ) +{ + ASSERT(dstFormat == GL_DUDV_ATI); + ASSERT(srcFormat == GL_DUDV_ATI); + + ASSERT(srcType == GL_UNSIGNED_BYTE || + srcType == GL_BYTE || + srcType == GL_UNSIGNED_SHORT || + srcType == GL_SHORT || + srcType == GL_UNSIGNED_INT || + srcType == GL_INT || + srcType == GL_HALF_FLOAT_ARB || + srcType == GL_FLOAT); + + /* general solution */ + { + GLint dstComponents; + GLfloat rgba[MAX_WIDTH][4]; + GLbyte *dst = dest; + GLuint i; + + dstComponents = _mesa_components_in_format( dstFormat ); + /* source & dest image formats should have been error checked by now */ + assert(dstComponents > 0); + + /* + * Extract image data and convert to RGBA floats + */ + assert(n <= MAX_WIDTH); + extract_float_rgba(n, rgba, srcFormat, srcType, source, + srcPacking->SwapBytes); + + + /* Now determine which color channels we need to produce. + * And determine the dest index (offset) within each color tuple. + */ + + /* Now pack results in the requested dstFormat */ + for (i = 0; i < n; i++) { + /* not sure - need clamp[-1,1] here? */ + dst[0] = FLOAT_TO_BYTE(rgba[i][RCOMP]); + dst[1] = FLOAT_TO_BYTE(rgba[i][GCOMP]); + dst += dstComponents; + } + } +} + +/* + * Unpack a row of color index data from a client buffer according to + * the pixel unpacking parameters. + * This is (or will be) used by glDrawPixels, glTexImage[123]D, etc. + * + * Args: ctx - the context + * n - number of pixels + * dstType - destination data type + * dest - destination array + * srcType - source pixel type + * source - source data pointer + * srcPacking - pixel unpacking parameters + * transferOps - the pixel transfer operations to apply + */ +void +_mesa_unpack_index_span( const struct gl_context *ctx, GLuint n, + GLenum dstType, GLvoid *dest, + GLenum srcType, const GLvoid *source, + const struct gl_pixelstore_attrib *srcPacking, + GLbitfield transferOps ) +{ + ASSERT(srcType == GL_BITMAP || + srcType == GL_UNSIGNED_BYTE || + srcType == GL_BYTE || + srcType == GL_UNSIGNED_SHORT || + srcType == GL_SHORT || + srcType == GL_UNSIGNED_INT || + srcType == GL_INT || + srcType == GL_HALF_FLOAT_ARB || + srcType == GL_FLOAT); + + ASSERT(dstType == GL_UNSIGNED_BYTE || + dstType == GL_UNSIGNED_SHORT || + dstType == GL_UNSIGNED_INT); + + + transferOps &= (IMAGE_MAP_COLOR_BIT | IMAGE_SHIFT_OFFSET_BIT); + + /* + * Try simple cases first + */ + if (transferOps == 0 && srcType == GL_UNSIGNED_BYTE + && dstType == GL_UNSIGNED_BYTE) { + memcpy(dest, source, n * sizeof(GLubyte)); + } + else if (transferOps == 0 && srcType == GL_UNSIGNED_INT + && dstType == GL_UNSIGNED_INT && !srcPacking->SwapBytes) { + memcpy(dest, source, n * sizeof(GLuint)); + } + else { + /* + * general solution + */ + GLuint indexes[MAX_WIDTH]; + assert(n <= MAX_WIDTH); + + extract_uint_indexes(n, indexes, GL_COLOR_INDEX, srcType, source, + srcPacking); + + if (transferOps) + _mesa_apply_ci_transfer_ops(ctx, transferOps, n, indexes); + + /* convert to dest type */ + switch (dstType) { + case GL_UNSIGNED_BYTE: + { + GLubyte *dst = (GLubyte *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLubyte) (indexes[i] & 0xff); + } + } + break; + case GL_UNSIGNED_SHORT: + { + GLuint *dst = (GLuint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLushort) (indexes[i] & 0xffff); + } + } + break; + case GL_UNSIGNED_INT: + memcpy(dest, indexes, n * sizeof(GLuint)); + break; + default: + _mesa_problem(ctx, "bad dstType in _mesa_unpack_index_span"); + } + } +} + + +void +_mesa_pack_index_span( const 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]; + + ASSERT(n <= MAX_WIDTH); + + transferOps &= (IMAGE_MAP_COLOR_BIT | IMAGE_SHIFT_OFFSET_BIT); + + if (transferOps & (IMAGE_MAP_COLOR_BIT | IMAGE_SHIFT_OFFSET_BIT)) { + /* make a copy of input */ + memcpy(indexes, source, n * sizeof(GLuint)); + _mesa_apply_ci_transfer_ops(ctx, transferOps, n, indexes); + source = indexes; + } + + switch (dstType) { + case GL_UNSIGNED_BYTE: + { + GLubyte *dst = (GLubyte *) dest; + GLuint i; + for (i = 0; i < n; i++) { + *dst++ = (GLubyte) source[i]; + } + } + break; + case GL_BYTE: + { + GLbyte *dst = (GLbyte *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLbyte) source[i]; + } + } + break; + case GL_UNSIGNED_SHORT: + { + GLushort *dst = (GLushort *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLushort) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + case GL_SHORT: + { + GLshort *dst = (GLshort *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLshort) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + case GL_UNSIGNED_INT: + { + GLuint *dst = (GLuint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLuint) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_INT: + { + GLint *dst = (GLint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLint) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_FLOAT: + { + GLfloat *dst = (GLfloat *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLfloat) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_HALF_FLOAT_ARB: + { + GLhalfARB *dst = (GLhalfARB *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = _mesa_float_to_half((GLfloat) source[i]); + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + default: + _mesa_problem(ctx, "bad type in _mesa_pack_index_span"); + } +} + + +/* + * Unpack a row of stencil data from a client buffer according to + * the pixel unpacking parameters. + * This is (or will be) used by glDrawPixels + * + * Args: ctx - the context + * n - number of pixels + * dstType - destination data type + * dest - destination array + * srcType - source pixel type + * source - source data pointer + * srcPacking - pixel unpacking parameters + * transferOps - apply offset/bias/lookup ops? + */ +void +_mesa_unpack_stencil_span( const struct gl_context *ctx, GLuint n, + GLenum dstType, GLvoid *dest, + GLenum srcType, const GLvoid *source, + const struct gl_pixelstore_attrib *srcPacking, + GLbitfield transferOps ) +{ + ASSERT(srcType == GL_BITMAP || + srcType == GL_UNSIGNED_BYTE || + srcType == GL_BYTE || + srcType == GL_UNSIGNED_SHORT || + srcType == GL_SHORT || + srcType == GL_UNSIGNED_INT || + srcType == GL_INT || + srcType == GL_UNSIGNED_INT_24_8_EXT || + srcType == GL_HALF_FLOAT_ARB || + srcType == GL_FLOAT); + + ASSERT(dstType == GL_UNSIGNED_BYTE || + dstType == GL_UNSIGNED_SHORT || + dstType == GL_UNSIGNED_INT); + + /* only shift and offset apply to stencil */ + transferOps &= IMAGE_SHIFT_OFFSET_BIT; + + /* + * Try simple cases first + */ + if (transferOps == 0 && + !ctx->Pixel.MapStencilFlag && + srcType == GL_UNSIGNED_BYTE && + dstType == GL_UNSIGNED_BYTE) { + memcpy(dest, source, n * sizeof(GLubyte)); + } + else if (transferOps == 0 && + !ctx->Pixel.MapStencilFlag && + srcType == GL_UNSIGNED_INT && + dstType == GL_UNSIGNED_INT && + !srcPacking->SwapBytes) { + memcpy(dest, source, n * sizeof(GLuint)); + } + else { + /* + * general solution + */ + GLuint indexes[MAX_WIDTH]; + assert(n <= MAX_WIDTH); + + extract_uint_indexes(n, indexes, GL_STENCIL_INDEX, srcType, source, + srcPacking); + + if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { + /* shift and offset indexes */ + _mesa_shift_and_offset_ci(ctx, n, indexes); + } + + if (ctx->Pixel.MapStencilFlag) { + /* Apply stencil lookup table */ + const GLuint mask = ctx->PixelMaps.StoS.Size - 1; + GLuint i; + for (i = 0; i < n; i++) { + indexes[i] = (GLuint)ctx->PixelMaps.StoS.Map[ indexes[i] & mask ]; + } + } + + /* convert to dest type */ + switch (dstType) { + case GL_UNSIGNED_BYTE: + { + GLubyte *dst = (GLubyte *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLubyte) (indexes[i] & 0xff); + } + } + break; + case GL_UNSIGNED_SHORT: + { + GLuint *dst = (GLuint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = (GLushort) (indexes[i] & 0xffff); + } + } + break; + case GL_UNSIGNED_INT: + memcpy(dest, indexes, n * sizeof(GLuint)); + break; + default: + _mesa_problem(ctx, "bad dstType in _mesa_unpack_stencil_span"); + } + } +} + + +void +_mesa_pack_stencil_span( const struct gl_context *ctx, GLuint n, + GLenum dstType, GLvoid *dest, const GLstencil *source, + const struct gl_pixelstore_attrib *dstPacking ) +{ + GLstencil stencil[MAX_WIDTH]; + + ASSERT(n <= MAX_WIDTH); + + if (ctx->Pixel.IndexShift || ctx->Pixel.IndexOffset || + ctx->Pixel.MapStencilFlag) { + /* make a copy of input */ + memcpy(stencil, source, n * sizeof(GLstencil)); + _mesa_apply_stencil_transfer_ops(ctx, n, stencil); + source = stencil; + } + + switch (dstType) { + case GL_UNSIGNED_BYTE: + if (sizeof(GLstencil) == 1) { + memcpy( dest, source, n ); + } + else { + GLubyte *dst = (GLubyte *) dest; + GLuint i; + for (i=0;i<n;i++) { + dst[i] = (GLubyte) source[i]; + } + } + break; + case GL_BYTE: + { + GLbyte *dst = (GLbyte *) dest; + GLuint i; + for (i=0;i<n;i++) { + dst[i] = (GLbyte) (source[i] & 0x7f); + } + } + break; + case GL_UNSIGNED_SHORT: + { + GLushort *dst = (GLushort *) dest; + GLuint i; + for (i=0;i<n;i++) { + dst[i] = (GLushort) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + case GL_SHORT: + { + GLshort *dst = (GLshort *) dest; + GLuint i; + for (i=0;i<n;i++) { + dst[i] = (GLshort) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + case GL_UNSIGNED_INT: + { + GLuint *dst = (GLuint *) dest; + GLuint i; + for (i=0;i<n;i++) { + dst[i] = (GLuint) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_INT: + { + GLint *dst = (GLint *) dest; + GLuint i; + for (i=0;i<n;i++) { + dst[i] = (GLint) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_FLOAT: + { + GLfloat *dst = (GLfloat *) dest; + GLuint i; + for (i=0;i<n;i++) { + dst[i] = (GLfloat) source[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_HALF_FLOAT_ARB: + { + GLhalfARB *dst = (GLhalfARB *) dest; + GLuint i; + for (i=0;i<n;i++) { + dst[i] = _mesa_float_to_half( (float) source[i] ); + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + case GL_BITMAP: + if (dstPacking->LsbFirst) { + GLubyte *dst = (GLubyte *) dest; + GLint shift = 0; + GLuint i; + for (i = 0; i < n; i++) { + if (shift == 0) + *dst = 0; + *dst |= ((source[i] != 0) << shift); + shift++; + if (shift == 8) { + shift = 0; + dst++; + } + } + } + else { + GLubyte *dst = (GLubyte *) dest; + GLint shift = 7; + GLuint i; + for (i = 0; i < n; i++) { + if (shift == 7) + *dst = 0; + *dst |= ((source[i] != 0) << shift); + shift--; + if (shift < 0) { + shift = 7; + dst++; + } + } + } + break; + default: + _mesa_problem(ctx, "bad type in _mesa_pack_index_span"); + } +} + +#define DEPTH_VALUES(GLTYPE, GLTYPE2FLOAT) \ + do { \ + GLuint i; \ + const GLTYPE *src = (const GLTYPE *)source; \ + for (i = 0; i < n; i++) { \ + GLTYPE value = src[i]; \ + if (srcPacking->SwapBytes) { \ + if (sizeof(GLTYPE) == 2) { \ + SWAP2BYTE(value); \ + } else if (sizeof(GLTYPE) == 4) { \ + SWAP4BYTE(value); \ + } \ + } \ + depthValues[i] = GLTYPE2FLOAT(value); \ + } \ + } while (0) + + +/** + * Unpack a row of depth/z values from memory, returning GLushort, GLuint + * or GLfloat values. + * The glPixelTransfer (scale/bias) params will be applied. + * + * \param dstType one of GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, GL_FLOAT + * \param depthMax max value for returned GLushort or GLuint values + * (ignored for GLfloat). + */ +void +_mesa_unpack_depth_span( const 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; + GLboolean needClamp = GL_FALSE; + + /* Look for special cases first. + * Not only are these faster, they're less prone to numeric conversion + * problems. Otherwise, converting from an int type to a float then + * back to an int type can introduce errors that will show up as + * artifacts in things like depth peeling which uses glCopyTexImage. + */ + if (ctx->Pixel.DepthScale == 1.0 && ctx->Pixel.DepthBias == 0.0) { + if (srcType == GL_UNSIGNED_INT && dstType == GL_UNSIGNED_SHORT) { + const GLuint *src = (const GLuint *) source; + GLushort *dst = (GLushort *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = src[i] >> 16; + } + return; + } + if (srcType == GL_UNSIGNED_SHORT + && dstType == GL_UNSIGNED_INT + && depthMax == 0xffffffff) { + const GLushort *src = (const GLushort *) source; + GLuint *dst = (GLuint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = src[i] | (src[i] << 16); + } + return; + } + if (srcType == GL_UNSIGNED_INT_24_8 + && dstType == GL_UNSIGNED_INT + && depthMax == 0xffffff) { + const GLuint *src = (const GLuint *) source; + GLuint *dst = (GLuint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = src[i] >> 8; + } + return; + } + /* XXX may want to add additional cases here someday */ + } + + /* general case path follows */ + + if (dstType == GL_FLOAT) { + depthValues = (GLfloat *) dest; + } + else { + depthValues = depthTemp; + } + + /* Convert incoming values to GLfloat. Some conversions will require + * clamping, below. + */ + switch (srcType) { + case GL_BYTE: + DEPTH_VALUES(GLbyte, BYTE_TO_FLOAT); + needClamp = GL_TRUE; + break; + case GL_UNSIGNED_BYTE: + DEPTH_VALUES(GLubyte, UBYTE_TO_FLOAT); + break; + case GL_SHORT: + DEPTH_VALUES(GLshort, SHORT_TO_FLOAT); + needClamp = GL_TRUE; + break; + case GL_UNSIGNED_SHORT: + DEPTH_VALUES(GLushort, USHORT_TO_FLOAT); + break; + case GL_INT: + DEPTH_VALUES(GLint, INT_TO_FLOAT); + needClamp = GL_TRUE; + break; + case GL_UNSIGNED_INT: + DEPTH_VALUES(GLuint, UINT_TO_FLOAT); + break; + case GL_UNSIGNED_INT_24_8_EXT: /* GL_EXT_packed_depth_stencil */ + if (dstType == GL_UNSIGNED_INT_24_8_EXT && + depthMax == 0xffffff && + ctx->Pixel.DepthScale == 1.0 && + ctx->Pixel.DepthBias == 0.0) { + const GLuint *src = (const GLuint *) source; + GLuint *zValues = (GLuint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + GLuint value = src[i]; + if (srcPacking->SwapBytes) { + SWAP4BYTE(value); + } + zValues[i] = value & 0xffffff00; + } + return; + } + else { + const GLuint *src = (const GLuint *) source; + const GLfloat scale = 1.0f / 0xffffff; + GLuint i; + for (i = 0; i < n; i++) { + GLuint value = src[i]; + if (srcPacking->SwapBytes) { + SWAP4BYTE(value); + } + depthValues[i] = (value >> 8) * scale; + } + } + break; + case GL_FLOAT: + DEPTH_VALUES(GLfloat, 1*); + needClamp = GL_TRUE; + break; + case GL_HALF_FLOAT_ARB: + { + GLuint i; + const GLhalfARB *src = (const GLhalfARB *) source; + for (i = 0; i < n; i++) { + GLhalfARB value = src[i]; + if (srcPacking->SwapBytes) { + SWAP2BYTE(value); + } + depthValues[i] = _mesa_half_to_float(value); + } + needClamp = GL_TRUE; + } + break; + default: + _mesa_problem(NULL, "bad type in _mesa_unpack_depth_span()"); + return; + } + + /* apply depth scale and bias */ + { + const GLfloat scale = ctx->Pixel.DepthScale; + const GLfloat bias = ctx->Pixel.DepthBias; + if (scale != 1.0 || bias != 0.0) { + GLuint i; + for (i = 0; i < n; i++) { + depthValues[i] = depthValues[i] * scale + bias; + } + needClamp = GL_TRUE; + } + } + + /* clamp to [0, 1] */ + if (needClamp) { + GLuint i; + for (i = 0; i < n; i++) { + depthValues[i] = (GLfloat)CLAMP(depthValues[i], 0.0, 1.0); + } + } + + /* + * Convert values to dstType + */ + if (dstType == GL_UNSIGNED_INT) { + GLuint *zValues = (GLuint *) dest; + GLuint i; + if (depthMax <= 0xffffff) { + /* no overflow worries */ + for (i = 0; i < n; i++) { + zValues[i] = (GLuint) (depthValues[i] * (GLfloat) depthMax); + } + } + else { + /* need to use double precision to prevent overflow problems */ + for (i = 0; i < n; i++) { + GLdouble z = depthValues[i] * (GLfloat) depthMax; + if (z >= (GLdouble) 0xffffffff) + zValues[i] = 0xffffffff; + else + zValues[i] = (GLuint) z; + } + } + } + else if (dstType == GL_UNSIGNED_SHORT) { + GLushort *zValues = (GLushort *) dest; + GLuint i; + ASSERT(depthMax <= 0xffff); + for (i = 0; i < n; i++) { + zValues[i] = (GLushort) (depthValues[i] * (GLfloat) depthMax); + } + } + else { + ASSERT(dstType == GL_FLOAT); + /*ASSERT(depthMax == 1.0F);*/ + } +} + + +/* + * 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, + GLenum dstType, const GLfloat *depthSpan, + const struct gl_pixelstore_attrib *dstPacking ) +{ + GLfloat depthCopy[MAX_WIDTH]; + + ASSERT(n <= MAX_WIDTH); + + if (ctx->Pixel.DepthScale != 1.0 || ctx->Pixel.DepthBias != 0.0) { + memcpy(depthCopy, depthSpan, n * sizeof(GLfloat)); + _mesa_scale_and_bias_depth(ctx, n, depthCopy); + depthSpan = depthCopy; + } + + switch (dstType) { + case GL_UNSIGNED_BYTE: + { + GLubyte *dst = (GLubyte *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = FLOAT_TO_UBYTE( depthSpan[i] ); + } + } + break; + case GL_BYTE: + { + GLbyte *dst = (GLbyte *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = FLOAT_TO_BYTE( depthSpan[i] ); + } + } + break; + case GL_UNSIGNED_SHORT: + { + GLushort *dst = (GLushort *) dest; + GLuint i; + for (i = 0; i < n; i++) { + CLAMPED_FLOAT_TO_USHORT(dst[i], depthSpan[i]); + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + case GL_SHORT: + { + GLshort *dst = (GLshort *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = FLOAT_TO_SHORT( depthSpan[i] ); + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + case GL_UNSIGNED_INT: + { + GLuint *dst = (GLuint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = FLOAT_TO_UINT( depthSpan[i] ); + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_INT: + { + GLint *dst = (GLint *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = FLOAT_TO_INT( depthSpan[i] ); + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_FLOAT: + { + GLfloat *dst = (GLfloat *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = depthSpan[i]; + } + if (dstPacking->SwapBytes) { + _mesa_swap4( (GLuint *) dst, n ); + } + } + break; + case GL_HALF_FLOAT_ARB: + { + GLhalfARB *dst = (GLhalfARB *) dest; + GLuint i; + for (i = 0; i < n; i++) { + dst[i] = _mesa_float_to_half(depthSpan[i]); + } + if (dstPacking->SwapBytes) { + _mesa_swap2( (GLushort *) dst, n ); + } + } + break; + default: + _mesa_problem(ctx, "bad type in _mesa_pack_depth_span"); + } +} + + + +/** + * 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, + const GLfloat *depthVals, + const GLstencil *stencilVals, + const struct gl_pixelstore_attrib *dstPacking) +{ + GLfloat depthCopy[MAX_WIDTH]; + GLstencil stencilCopy[MAX_WIDTH]; + GLuint i; + + ASSERT(n <= MAX_WIDTH); + + if (ctx->Pixel.DepthScale != 1.0 || ctx->Pixel.DepthBias != 0.0) { + memcpy(depthCopy, depthVals, n * sizeof(GLfloat)); + _mesa_scale_and_bias_depth(ctx, n, depthCopy); + depthVals = depthCopy; + } + + if (ctx->Pixel.IndexShift || + ctx->Pixel.IndexOffset || + ctx->Pixel.MapStencilFlag) { + memcpy(stencilCopy, stencilVals, n * sizeof(GLstencil)); + _mesa_apply_stencil_transfer_ops(ctx, n, stencilCopy); + stencilVals = stencilCopy; + } + + for (i = 0; i < n; i++) { + GLuint z = (GLuint) (depthVals[i] * 0xffffff); + dest[i] = (z << 8) | (stencilVals[i] & 0xff); + } + + if (dstPacking->SwapBytes) { + _mesa_swap4(dest, n); + } +} + + + + +/** + * Unpack image data. Apply byte swapping, byte flipping (bitmap). + * Return all image data in a contiguous block. This is used when we + * compile glDrawPixels, glTexImage, etc into a display list. We + * need a copy of the data in a standard format. + */ +void * +_mesa_unpack_image( GLuint dimensions, + GLsizei width, GLsizei height, GLsizei depth, + GLenum format, GLenum type, const GLvoid *pixels, + const struct gl_pixelstore_attrib *unpack ) +{ + GLint bytesPerRow, compsPerRow; + GLboolean flipBytes, swap2, swap4; + + if (!pixels) + return NULL; /* not necessarily an error */ + + if (width <= 0 || height <= 0 || depth <= 0) + return NULL; /* generate error later */ + + if (type == GL_BITMAP) { + bytesPerRow = (width + 7) >> 3; + flipBytes = unpack->LsbFirst; + swap2 = swap4 = GL_FALSE; + compsPerRow = 0; + } + else { + const GLint bytesPerPixel = _mesa_bytes_per_pixel(format, type); + GLint components = _mesa_components_in_format(format); + GLint bytesPerComp; + + if (_mesa_type_is_packed(type)) + components = 1; + + if (bytesPerPixel <= 0 || components <= 0) + return NULL; /* bad format or type. generate error later */ + bytesPerRow = bytesPerPixel * width; + bytesPerComp = bytesPerPixel / components; + flipBytes = GL_FALSE; + swap2 = (bytesPerComp == 2) && unpack->SwapBytes; + swap4 = (bytesPerComp == 4) && unpack->SwapBytes; + compsPerRow = components * width; + assert(compsPerRow >= width); + } + + { + GLubyte *destBuffer + = (GLubyte *) malloc(bytesPerRow * height * depth); + GLubyte *dst; + GLint img, row; + if (!destBuffer) + return NULL; /* generate GL_OUT_OF_MEMORY later */ + + dst = destBuffer; + for (img = 0; img < depth; img++) { + for (row = 0; row < height; row++) { + const GLvoid *src = _mesa_image_address(dimensions, unpack, pixels, + width, height, format, type, img, row, 0); + + if ((type == GL_BITMAP) && (unpack->SkipPixels & 0x7)) { + GLint i; + flipBytes = GL_FALSE; + if (unpack->LsbFirst) { + GLubyte srcMask = 1 << (unpack->SkipPixels & 0x7); + GLubyte dstMask = 128; + const GLubyte *s = src; + GLubyte *d = dst; + *d = 0; + for (i = 0; i < width; i++) { + if (*s & srcMask) { + *d |= dstMask; + } + if (srcMask == 128) { + srcMask = 1; + s++; + } + else { + srcMask = srcMask << 1; + } + if (dstMask == 1) { + dstMask = 128; + d++; + *d = 0; + } + else { + dstMask = dstMask >> 1; + } + } + } + else { + GLubyte srcMask = 128 >> (unpack->SkipPixels & 0x7); + GLubyte dstMask = 128; + const GLubyte *s = src; + GLubyte *d = dst; + *d = 0; + for (i = 0; i < width; i++) { + if (*s & srcMask) { + *d |= dstMask; + } + if (srcMask == 1) { + srcMask = 128; + s++; + } + else { + srcMask = srcMask >> 1; + } + if (dstMask == 1) { + dstMask = 128; + d++; + *d = 0; + } + else { + dstMask = dstMask >> 1; + } + } + } + } + else { + memcpy(dst, src, bytesPerRow); + } + + /* byte flipping/swapping */ + if (flipBytes) { + flip_bytes((GLubyte *) dst, bytesPerRow); + } + else if (swap2) { + _mesa_swap2((GLushort*) dst, compsPerRow); + } + else if (swap4) { + _mesa_swap4((GLuint*) dst, compsPerRow); + } + dst += bytesPerRow; + } + } + return destBuffer; + } +} + diff --git a/src/mesa/main/pack.h b/src/mesa/main/pack.h new file mode 100644 index 00000000000..3b24159fc2b --- /dev/null +++ b/src/mesa/main/pack.h @@ -0,0 +1,140 @@ +/* + * Mesa 3-D graphics library + * + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2010 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef PACK_H +#define PACK_H + + +#include "mtypes.h" + + +extern void +_mesa_unpack_polygon_stipple(const GLubyte *pattern, GLuint dest[32], + const struct gl_pixelstore_attrib *unpacking); + + +extern void +_mesa_pack_polygon_stipple(const GLuint pattern[32], GLubyte *dest, + const struct gl_pixelstore_attrib *packing); + + +extern GLvoid * +_mesa_unpack_bitmap(GLint width, GLint height, const GLubyte *pixels, + const struct gl_pixelstore_attrib *packing); + +extern void +_mesa_pack_bitmap(GLint width, GLint height, const GLubyte *source, + GLubyte *dest, const struct gl_pixelstore_attrib *packing); + + +extern void +_mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, + GLfloat rgba[][4], + GLenum dstFormat, GLenum dstType, GLvoid *dstAddr, + const struct gl_pixelstore_attrib *dstPacking, + GLbitfield transferOps); + + +extern void +_mesa_unpack_color_span_chan(struct gl_context *ctx, + GLuint n, GLenum dstFormat, GLchan dest[], + GLenum srcFormat, GLenum srcType, + const GLvoid *source, + const struct gl_pixelstore_attrib *srcPacking, + GLbitfield transferOps); + + +extern void +_mesa_unpack_color_span_float(struct gl_context *ctx, + GLuint n, GLenum dstFormat, GLfloat dest[], + GLenum srcFormat, GLenum srcType, + const GLvoid *source, + const struct gl_pixelstore_attrib *srcPacking, + GLbitfield transferOps); + +extern void +_mesa_unpack_dudv_span_byte(struct gl_context *ctx, + GLuint n, GLenum dstFormat, GLbyte dest[], + GLenum srcFormat, GLenum srcType, + const GLvoid *source, + const struct gl_pixelstore_attrib *srcPacking, + GLbitfield transferOps); + +extern void +_mesa_unpack_index_span(const 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_index_span(const 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, + 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, + 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, + 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, + GLenum dstType, const GLfloat *depthSpan, + const struct gl_pixelstore_attrib *dstPacking); + + +extern void +_mesa_pack_depth_stencil_span(const struct gl_context *ctx, + GLuint n, GLuint *dest, + const GLfloat *depthVals, + const GLstencil *stencilVals, + const struct gl_pixelstore_attrib *dstPacking); + + +extern void * +_mesa_unpack_image(GLuint dimensions, + GLsizei width, GLsizei height, GLsizei depth, + GLenum format, GLenum type, const GLvoid *pixels, + const struct gl_pixelstore_attrib *unpack); + + +#endif diff --git a/src/mesa/main/pixel.c b/src/mesa/main/pixel.c index 1d378e4d9f7..5f824b34294 100644 --- a/src/mesa/main/pixel.c +++ b/src/mesa/main/pixel.c @@ -69,7 +69,7 @@ _mesa_PixelZoom( GLfloat xfactor, GLfloat yfactor ) * Return pointer to a pixelmap by name. */ static struct gl_pixelmap * -get_pixelmap(GLcontext *ctx, GLenum map) +get_pixelmap(struct gl_context *ctx, GLenum map) { switch (map) { case GL_PIXEL_MAP_I_TO_I: @@ -102,7 +102,7 @@ get_pixelmap(GLcontext *ctx, GLenum map) * Helper routine used by the other _mesa_PixelMap() functions. */ static void -store_pixelmap(GLcontext *ctx, GLenum map, GLsizei mapsize, +store_pixelmap(struct gl_context *ctx, GLenum map, GLsizei mapsize, const GLfloat *values) { GLint i; @@ -143,7 +143,7 @@ store_pixelmap(GLcontext *ctx, GLenum map, GLsizei mapsize, * Convenience wrapper for _mesa_validate_pbo_access() for gl[Get]PixelMap(). */ static GLboolean -validate_pbo_access(GLcontext *ctx, struct gl_pixelstore_attrib *pack, +validate_pbo_access(struct gl_context *ctx, struct gl_pixelstore_attrib *pack, GLsizei mapsize, GLenum format, GLenum type, const GLvoid *ptr) { @@ -590,7 +590,7 @@ _mesa_PixelTransferi( GLenum pname, GLint param ) * pixel transfer operations are enabled. */ static void -update_image_transfer_state(GLcontext *ctx) +update_image_transfer_state(struct gl_context *ctx) { GLuint mask = 0; @@ -613,7 +613,7 @@ update_image_transfer_state(GLcontext *ctx) /** * Update mesa pixel transfer derived state. */ -void _mesa_update_pixel( GLcontext *ctx, GLuint new_state ) +void _mesa_update_pixel( struct gl_context *ctx, GLuint new_state ) { if (new_state & _MESA_NEW_TRANSFER_STATE) update_image_transfer_state(ctx); @@ -655,7 +655,7 @@ init_pixelmap(struct gl_pixelmap *map) * Initialize the context's PIXEL attribute group. */ void -_mesa_init_pixel( GLcontext *ctx ) +_mesa_init_pixel( struct gl_context *ctx ) { /* Pixel group */ ctx->Pixel.RedBias = 0.0; diff --git a/src/mesa/main/pixel.h b/src/mesa/main/pixel.h index f4d3f1efdb0..03560835a8c 100644 --- a/src/mesa/main/pixel.h +++ b/src/mesa/main/pixel.h @@ -39,7 +39,7 @@ #if FEATURE_pixel_transfer extern void -_mesa_update_pixel( GLcontext *ctx, GLuint newstate ); +_mesa_update_pixel( struct gl_context *ctx, GLuint newstate ); extern void _mesa_init_pixel_dispatch( struct _glapi_table * disp ); @@ -47,7 +47,7 @@ _mesa_init_pixel_dispatch( struct _glapi_table * disp ); #else /* FEATURE_pixel_transfer */ static INLINE void -_mesa_update_pixel(GLcontext *ctx, GLuint newstate) +_mesa_update_pixel(struct gl_context *ctx, GLuint newstate) { } @@ -60,7 +60,7 @@ _mesa_init_pixel_dispatch(struct _glapi_table *disp) extern void -_mesa_init_pixel( GLcontext * ctx ); +_mesa_init_pixel( struct gl_context * ctx ); /*@}*/ diff --git a/src/mesa/main/pixelstore.c b/src/mesa/main/pixelstore.c index ec585ef0cce..b16d27a4ea5 100644 --- a/src/mesa/main/pixelstore.c +++ b/src/mesa/main/pixelstore.c @@ -228,7 +228,7 @@ _mesa_PixelStoref( GLenum pname, GLfloat param ) * Initialize the context's pixel store state. */ void -_mesa_init_pixelstore( GLcontext *ctx ) +_mesa_init_pixelstore( struct gl_context *ctx ) { /* Pixel transfer */ ctx->Pack.Alignment = 4; diff --git a/src/mesa/main/pixelstore.h b/src/mesa/main/pixelstore.h index 47bff4276d1..cdef7de2613 100644 --- a/src/mesa/main/pixelstore.h +++ b/src/mesa/main/pixelstore.h @@ -45,7 +45,7 @@ _mesa_PixelStoref( GLenum pname, GLfloat param ); extern void -_mesa_init_pixelstore( GLcontext *ctx ); +_mesa_init_pixelstore( struct gl_context *ctx ); #endif diff --git a/src/mesa/main/pixeltransfer.c b/src/mesa/main/pixeltransfer.c new file mode 100644 index 00000000000..711181fd89e --- /dev/null +++ b/src/mesa/main/pixeltransfer.c @@ -0,0 +1,566 @@ +/* + * Mesa 3-D graphics library + * + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. + * Copyright (C) 2009-2010 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +/** + * \file pixeltransfer.c + * Pixel transfer operations (scale, bias, table lookups, etc) + */ + + +#include "glheader.h" +#include "colormac.h" +#include "pixeltransfer.h" +#include "imports.h" + + +/* + * Apply scale and bias factors to an array of RGBA pixels. + */ +void +_mesa_scale_and_bias_rgba(GLuint n, GLfloat rgba[][4], + GLfloat rScale, GLfloat gScale, + GLfloat bScale, GLfloat aScale, + GLfloat rBias, GLfloat gBias, + GLfloat bBias, GLfloat aBias) +{ + if (rScale != 1.0 || rBias != 0.0) { + GLuint i; + for (i = 0; i < n; i++) { + rgba[i][RCOMP] = rgba[i][RCOMP] * rScale + rBias; + } + } + if (gScale != 1.0 || gBias != 0.0) { + GLuint i; + for (i = 0; i < n; i++) { + rgba[i][GCOMP] = rgba[i][GCOMP] * gScale + gBias; + } + } + if (bScale != 1.0 || bBias != 0.0) { + GLuint i; + for (i = 0; i < n; i++) { + rgba[i][BCOMP] = rgba[i][BCOMP] * bScale + bBias; + } + } + if (aScale != 1.0 || aBias != 0.0) { + GLuint i; + for (i = 0; i < n; i++) { + rgba[i][ACOMP] = rgba[i][ACOMP] * aScale + aBias; + } + } +} + + +/* + * Apply pixel mapping to an array of floating point RGBA pixels. + */ +void +_mesa_map_rgba( const struct gl_context *ctx, GLuint n, GLfloat rgba[][4] ) +{ + const GLfloat rscale = (GLfloat) (ctx->PixelMaps.RtoR.Size - 1); + const GLfloat gscale = (GLfloat) (ctx->PixelMaps.GtoG.Size - 1); + const GLfloat bscale = (GLfloat) (ctx->PixelMaps.BtoB.Size - 1); + const GLfloat ascale = (GLfloat) (ctx->PixelMaps.AtoA.Size - 1); + const GLfloat *rMap = ctx->PixelMaps.RtoR.Map; + const GLfloat *gMap = ctx->PixelMaps.GtoG.Map; + const GLfloat *bMap = ctx->PixelMaps.BtoB.Map; + const GLfloat *aMap = ctx->PixelMaps.AtoA.Map; + GLuint i; + for (i=0;i<n;i++) { + GLfloat r = CLAMP(rgba[i][RCOMP], 0.0F, 1.0F); + GLfloat g = CLAMP(rgba[i][GCOMP], 0.0F, 1.0F); + GLfloat b = CLAMP(rgba[i][BCOMP], 0.0F, 1.0F); + GLfloat a = CLAMP(rgba[i][ACOMP], 0.0F, 1.0F); + rgba[i][RCOMP] = rMap[IROUND(r * rscale)]; + rgba[i][GCOMP] = gMap[IROUND(g * gscale)]; + rgba[i][BCOMP] = bMap[IROUND(b * bscale)]; + rgba[i][ACOMP] = aMap[IROUND(a * ascale)]; + } +} + +/** + * Apply a color table lookup to an array of floating point RGBA colors. + */ +void +_mesa_lookup_rgba_float(const struct gl_color_table *table, + GLuint n, GLfloat rgba[][4]) +{ + const GLint max = table->Size - 1; + const GLfloat scale = (GLfloat) max; + const GLfloat *lut = table->TableF; + GLuint i; + + if (!table->TableF || table->Size == 0) + return; + + switch (table->_BaseFormat) { + case GL_INTENSITY: + /* replace RGBA with I */ + for (i = 0; i < n; i++) { + GLint j = IROUND(rgba[i][RCOMP] * scale); + GLfloat c = lut[CLAMP(j, 0, max)]; + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = + rgba[i][ACOMP] = c; + } + break; + case GL_LUMINANCE: + /* replace RGB with L */ + for (i = 0; i < n; i++) { + GLint j = IROUND(rgba[i][RCOMP] * scale); + GLfloat c = lut[CLAMP(j, 0, max)]; + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = c; + } + break; + case GL_ALPHA: + /* replace A with A */ + for (i = 0; i < n; i++) { + GLint j = IROUND(rgba[i][ACOMP] * scale); + rgba[i][ACOMP] = lut[CLAMP(j, 0, max)]; + } + break; + case GL_LUMINANCE_ALPHA: + /* replace RGBA with LLLA */ + for (i = 0; i < n; i++) { + GLint jL = IROUND(rgba[i][RCOMP] * scale); + GLint jA = IROUND(rgba[i][ACOMP] * scale); + GLfloat luminance, alpha; + jL = CLAMP(jL, 0, max); + jA = CLAMP(jA, 0, max); + luminance = lut[jL * 2 + 0]; + alpha = lut[jA * 2 + 1]; + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = luminance; + rgba[i][ACOMP] = alpha;; + } + break; + case GL_RED: + /* replace RGB with RGB */ + for (i = 0; i < n; i++) { + GLint jR = IROUND(rgba[i][RCOMP] * scale); + jR = CLAMP(jR, 0, max); + rgba[i][RCOMP] = lut[jR * 3 + 0]; + } + break; + case GL_RG: + /* replace RG with RG */ + for (i = 0; i < n; i++) { + GLint jR = IROUND(rgba[i][RCOMP] * scale); + GLint jG = IROUND(rgba[i][GCOMP] * scale); + jR = CLAMP(jR, 0, max); + jG = CLAMP(jG, 0, max); + rgba[i][RCOMP] = lut[jR * 3 + 0]; + rgba[i][GCOMP] = lut[jG * 3 + 1]; + } + break; + case GL_RGB: + /* replace RGB with RGB */ + for (i = 0; i < n; i++) { + GLint jR = IROUND(rgba[i][RCOMP] * scale); + GLint jG = IROUND(rgba[i][GCOMP] * scale); + GLint jB = IROUND(rgba[i][BCOMP] * scale); + jR = CLAMP(jR, 0, max); + jG = CLAMP(jG, 0, max); + jB = CLAMP(jB, 0, max); + rgba[i][RCOMP] = lut[jR * 3 + 0]; + rgba[i][GCOMP] = lut[jG * 3 + 1]; + rgba[i][BCOMP] = lut[jB * 3 + 2]; + } + break; + case GL_RGBA: + /* replace RGBA with RGBA */ + for (i = 0; i < n; i++) { + GLint jR = IROUND(rgba[i][RCOMP] * scale); + GLint jG = IROUND(rgba[i][GCOMP] * scale); + GLint jB = IROUND(rgba[i][BCOMP] * scale); + GLint jA = IROUND(rgba[i][ACOMP] * scale); + jR = CLAMP(jR, 0, max); + jG = CLAMP(jG, 0, max); + jB = CLAMP(jB, 0, max); + jA = CLAMP(jA, 0, max); + rgba[i][RCOMP] = lut[jR * 4 + 0]; + rgba[i][GCOMP] = lut[jG * 4 + 1]; + rgba[i][BCOMP] = lut[jB * 4 + 2]; + rgba[i][ACOMP] = lut[jA * 4 + 3]; + } + break; + default: + _mesa_problem(NULL, "Bad format in _mesa_lookup_rgba_float"); + return; + } +} + + + +/** + * Apply a color table lookup to an array of ubyte/RGBA colors. + */ +void +_mesa_lookup_rgba_ubyte(const struct gl_color_table *table, + GLuint n, GLubyte rgba[][4]) +{ + const GLubyte *lut = table->TableUB; + const GLfloat scale = (GLfloat) (table->Size - 1) / (GLfloat)255.0; + GLuint i; + + if (!table->TableUB || table->Size == 0) + return; + + switch (table->_BaseFormat) { + case GL_INTENSITY: + /* replace RGBA with I */ + if (table->Size == 256) { + for (i = 0; i < n; i++) { + const GLubyte c = lut[rgba[i][RCOMP]]; + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = + rgba[i][ACOMP] = c; + } + } + else { + for (i = 0; i < n; i++) { + GLint j = IROUND((GLfloat) rgba[i][RCOMP] * scale); + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = + rgba[i][ACOMP] = lut[j]; + } + } + break; + case GL_LUMINANCE: + /* replace RGB with L */ + if (table->Size == 256) { + for (i = 0; i < n; i++) { + const GLubyte c = lut[rgba[i][RCOMP]]; + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = c; + } + } + else { + for (i = 0; i < n; i++) { + GLint j = IROUND((GLfloat) rgba[i][RCOMP] * scale); + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = lut[j]; + } + } + break; + case GL_ALPHA: + /* replace A with A */ + if (table->Size == 256) { + for (i = 0; i < n; i++) { + rgba[i][ACOMP] = lut[rgba[i][ACOMP]]; + } + } + else { + for (i = 0; i < n; i++) { + GLint j = IROUND((GLfloat) rgba[i][ACOMP] * scale); + rgba[i][ACOMP] = lut[j]; + } + } + break; + case GL_LUMINANCE_ALPHA: + /* replace RGBA with LLLA */ + if (table->Size == 256) { + for (i = 0; i < n; i++) { + GLubyte l = lut[rgba[i][RCOMP] * 2 + 0]; + GLubyte a = lut[rgba[i][ACOMP] * 2 + 1];; + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = l; + rgba[i][ACOMP] = a; + } + } + else { + for (i = 0; i < n; i++) { + GLint jL = IROUND((GLfloat) rgba[i][RCOMP] * scale); + GLint jA = IROUND((GLfloat) rgba[i][ACOMP] * scale); + GLubyte luminance = lut[jL * 2 + 0]; + GLubyte alpha = lut[jA * 2 + 1]; + rgba[i][RCOMP] = + rgba[i][GCOMP] = + rgba[i][BCOMP] = luminance; + rgba[i][ACOMP] = alpha; + } + } + break; + case GL_RGB: + if (table->Size == 256) { + for (i = 0; i < n; i++) { + rgba[i][RCOMP] = lut[rgba[i][RCOMP] * 3 + 0]; + rgba[i][GCOMP] = lut[rgba[i][GCOMP] * 3 + 1]; + rgba[i][BCOMP] = lut[rgba[i][BCOMP] * 3 + 2]; + } + } + else { + for (i = 0; i < n; i++) { + GLint jR = IROUND((GLfloat) rgba[i][RCOMP] * scale); + GLint jG = IROUND((GLfloat) rgba[i][GCOMP] * scale); + GLint jB = IROUND((GLfloat) rgba[i][BCOMP] * scale); + rgba[i][RCOMP] = lut[jR * 3 + 0]; + rgba[i][GCOMP] = lut[jG * 3 + 1]; + rgba[i][BCOMP] = lut[jB * 3 + 2]; + } + } + break; + case GL_RGBA: + if (table->Size == 256) { + for (i = 0; i < n; i++) { + rgba[i][RCOMP] = lut[rgba[i][RCOMP] * 4 + 0]; + rgba[i][GCOMP] = lut[rgba[i][GCOMP] * 4 + 1]; + rgba[i][BCOMP] = lut[rgba[i][BCOMP] * 4 + 2]; + rgba[i][ACOMP] = lut[rgba[i][ACOMP] * 4 + 3]; + } + } + else { + for (i = 0; i < n; i++) { + GLint jR = IROUND((GLfloat) rgba[i][RCOMP] * scale); + GLint jG = IROUND((GLfloat) rgba[i][GCOMP] * scale); + GLint jB = IROUND((GLfloat) rgba[i][BCOMP] * scale); + GLint jA = IROUND((GLfloat) rgba[i][ACOMP] * scale); + CLAMPED_FLOAT_TO_CHAN(rgba[i][RCOMP], lut[jR * 4 + 0]); + CLAMPED_FLOAT_TO_CHAN(rgba[i][GCOMP], lut[jG * 4 + 1]); + CLAMPED_FLOAT_TO_CHAN(rgba[i][BCOMP], lut[jB * 4 + 2]); + CLAMPED_FLOAT_TO_CHAN(rgba[i][ACOMP], lut[jA * 4 + 3]); + } + } + break; + default: + _mesa_problem(NULL, "Bad format in _mesa_lookup_rgba_chan"); + return; + } +} + + + +/* + * Map color indexes to float rgba values. + */ +void +_mesa_map_ci_to_rgba( const struct gl_context *ctx, GLuint n, + const GLuint index[], GLfloat rgba[][4] ) +{ + GLuint rmask = ctx->PixelMaps.ItoR.Size - 1; + GLuint gmask = ctx->PixelMaps.ItoG.Size - 1; + GLuint bmask = ctx->PixelMaps.ItoB.Size - 1; + GLuint amask = ctx->PixelMaps.ItoA.Size - 1; + const GLfloat *rMap = ctx->PixelMaps.ItoR.Map; + const GLfloat *gMap = ctx->PixelMaps.ItoG.Map; + const GLfloat *bMap = ctx->PixelMaps.ItoB.Map; + const GLfloat *aMap = ctx->PixelMaps.ItoA.Map; + GLuint i; + for (i=0;i<n;i++) { + rgba[i][RCOMP] = rMap[index[i] & rmask]; + rgba[i][GCOMP] = gMap[index[i] & gmask]; + rgba[i][BCOMP] = bMap[index[i] & bmask]; + rgba[i][ACOMP] = aMap[index[i] & amask]; + } +} + + +/** + * Map ubyte color indexes to ubyte/RGBA values. + */ +void +_mesa_map_ci8_to_rgba8(const struct gl_context *ctx, + GLuint n, const GLubyte index[], + GLubyte rgba[][4]) +{ + GLuint rmask = ctx->PixelMaps.ItoR.Size - 1; + GLuint gmask = ctx->PixelMaps.ItoG.Size - 1; + GLuint bmask = ctx->PixelMaps.ItoB.Size - 1; + GLuint amask = ctx->PixelMaps.ItoA.Size - 1; + const GLubyte *rMap = ctx->PixelMaps.ItoR.Map8; + const GLubyte *gMap = ctx->PixelMaps.ItoG.Map8; + const GLubyte *bMap = ctx->PixelMaps.ItoB.Map8; + const GLubyte *aMap = ctx->PixelMaps.ItoA.Map8; + GLuint i; + for (i=0;i<n;i++) { + rgba[i][RCOMP] = rMap[index[i] & rmask]; + rgba[i][GCOMP] = gMap[index[i] & gmask]; + rgba[i][BCOMP] = bMap[index[i] & bmask]; + rgba[i][ACOMP] = aMap[index[i] & amask]; + } +} + + +void +_mesa_scale_and_bias_depth(const struct gl_context *ctx, GLuint n, + GLfloat depthValues[]) +{ + const GLfloat scale = ctx->Pixel.DepthScale; + const GLfloat bias = ctx->Pixel.DepthBias; + GLuint i; + for (i = 0; i < n; i++) { + GLfloat d = depthValues[i] * scale + bias; + depthValues[i] = CLAMP(d, 0.0F, 1.0F); + } +} + + +void +_mesa_scale_and_bias_depth_uint(const struct gl_context *ctx, GLuint n, + GLuint depthValues[]) +{ + const GLdouble max = (double) 0xffffffff; + const GLdouble scale = ctx->Pixel.DepthScale; + const GLdouble bias = ctx->Pixel.DepthBias * max; + GLuint i; + for (i = 0; i < n; i++) { + GLdouble d = (GLdouble) depthValues[i] * scale + bias; + d = CLAMP(d, 0.0, max); + depthValues[i] = (GLuint) d; + } +} + +/** + * Apply various pixel transfer operations to an array of RGBA pixels + * as indicated by the transferOps bitmask + */ +void +_mesa_apply_rgba_transfer_ops(struct gl_context *ctx, GLbitfield transferOps, + GLuint n, GLfloat rgba[][4]) +{ + /* scale & bias */ + if (transferOps & IMAGE_SCALE_BIAS_BIT) { + _mesa_scale_and_bias_rgba(n, rgba, + ctx->Pixel.RedScale, ctx->Pixel.GreenScale, + ctx->Pixel.BlueScale, ctx->Pixel.AlphaScale, + ctx->Pixel.RedBias, ctx->Pixel.GreenBias, + ctx->Pixel.BlueBias, ctx->Pixel.AlphaBias); + } + /* color map lookup */ + if (transferOps & IMAGE_MAP_COLOR_BIT) { + _mesa_map_rgba( ctx, n, rgba ); + } + + /* clamping to [0,1] */ + if (transferOps & IMAGE_CLAMP_BIT) { + GLuint i; + for (i = 0; i < n; i++) { + rgba[i][RCOMP] = CLAMP(rgba[i][RCOMP], 0.0F, 1.0F); + rgba[i][GCOMP] = CLAMP(rgba[i][GCOMP], 0.0F, 1.0F); + rgba[i][BCOMP] = CLAMP(rgba[i][BCOMP], 0.0F, 1.0F); + rgba[i][ACOMP] = CLAMP(rgba[i][ACOMP], 0.0F, 1.0F); + } + } +} + + +/* + * Apply color index shift and offset to an array of pixels. + */ +void +_mesa_shift_and_offset_ci(const struct gl_context *ctx, + GLuint n, GLuint indexes[]) +{ + GLint shift = ctx->Pixel.IndexShift; + GLint offset = ctx->Pixel.IndexOffset; + GLuint i; + if (shift > 0) { + for (i=0;i<n;i++) { + indexes[i] = (indexes[i] << shift) + offset; + } + } + else if (shift < 0) { + shift = -shift; + for (i=0;i<n;i++) { + indexes[i] = (indexes[i] >> shift) + offset; + } + } + else { + for (i=0;i<n;i++) { + indexes[i] = indexes[i] + offset; + } + } +} + + + +/** + * Apply color index shift, offset and table lookup to an array + * of color indexes; + */ +void +_mesa_apply_ci_transfer_ops(const struct gl_context *ctx, + GLbitfield transferOps, + GLuint n, GLuint indexes[]) +{ + if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { + _mesa_shift_and_offset_ci(ctx, n, indexes); + } + if (transferOps & IMAGE_MAP_COLOR_BIT) { + const GLuint mask = ctx->PixelMaps.ItoI.Size - 1; + GLuint i; + for (i = 0; i < n; i++) { + const GLuint j = indexes[i] & mask; + indexes[i] = IROUND(ctx->PixelMaps.ItoI.Map[j]); + } + } +} + + +/** + * Apply stencil index shift, offset and table lookup to an array + * of stencil values. + */ +void +_mesa_apply_stencil_transfer_ops(const struct gl_context *ctx, GLuint n, + GLstencil stencil[]) +{ + if (ctx->Pixel.IndexShift != 0 || ctx->Pixel.IndexOffset != 0) { + const GLint offset = ctx->Pixel.IndexOffset; + GLint shift = ctx->Pixel.IndexShift; + GLuint i; + if (shift > 0) { + for (i = 0; i < n; i++) { + stencil[i] = (stencil[i] << shift) + offset; + } + } + else if (shift < 0) { + shift = -shift; + for (i = 0; i < n; i++) { + stencil[i] = (stencil[i] >> shift) + offset; + } + } + else { + for (i = 0; i < n; i++) { + stencil[i] = stencil[i] + offset; + } + } + } + if (ctx->Pixel.MapStencilFlag) { + GLuint mask = ctx->PixelMaps.StoS.Size - 1; + GLuint i; + for (i = 0; i < n; i++) { + stencil[i] = (GLstencil)ctx->PixelMaps.StoS.Map[ stencil[i] & mask ]; + } + } +} diff --git a/src/mesa/main/pixeltransfer.h b/src/mesa/main/pixeltransfer.h new file mode 100644 index 00000000000..34f3e49ba76 --- /dev/null +++ b/src/mesa/main/pixeltransfer.h @@ -0,0 +1,90 @@ +/* + * Mesa 3-D graphics library + * + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. + * Copyright (C) 2009-2010 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef PIXELTRANSFER_H +#define PIXELTRANSFER_H + + +#include "mtypes.h" + + +extern void +_mesa_scale_and_bias_rgba(GLuint n, GLfloat rgba[][4], + GLfloat rScale, GLfloat gScale, + GLfloat bScale, GLfloat aScale, + GLfloat rBias, GLfloat gBias, + GLfloat bBias, GLfloat aBias); + +extern void +_mesa_map_rgba(const struct gl_context *ctx, GLuint n, GLfloat rgba[][4]); + +extern void +_mesa_lookup_rgba_float(const struct gl_color_table *table, + GLuint n, GLfloat rgba[][4]); + +extern void +_mesa_lookup_rgba_ubyte(const struct gl_color_table *table, + GLuint n, GLubyte rgba[][4]); + + +extern void +_mesa_map_ci_to_rgba(const struct gl_context *ctx, + GLuint n, const GLuint index[], GLfloat rgba[][4]); + + +extern void +_mesa_map_ci8_to_rgba8(const struct gl_context *ctx, + GLuint n, const GLubyte index[], + GLubyte rgba[][4]); + + +extern void +_mesa_scale_and_bias_depth(const struct gl_context *ctx, GLuint n, + GLfloat depthValues[]); + +extern void +_mesa_scale_and_bias_depth_uint(const struct gl_context *ctx, GLuint n, + GLuint depthValues[]); + +extern void +_mesa_apply_rgba_transfer_ops(struct gl_context *ctx, GLbitfield transferOps, + GLuint n, GLfloat rgba[][4]); + +extern void +_mesa_shift_and_offset_ci(const struct gl_context *ctx, + GLuint n, GLuint indexes[]); + +extern void +_mesa_apply_ci_transfer_ops(const struct gl_context *ctx, + GLbitfield transferOps, + GLuint n, GLuint indexes[]); + + +extern void +_mesa_apply_stencil_transfer_ops(const struct gl_context *ctx, GLuint n, + GLstencil stencil[]); + + +#endif diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c index eab9d13d6d9..87bfae27eba 100644 --- a/src/mesa/main/points.c +++ b/src/mesa/main/points.c @@ -245,11 +245,11 @@ _mesa_PointParameterfv( GLenum pname, const GLfloat *params) * * \param ctx GL context. * - * Initializes __GLcontextRec::Point and point related constants in - * __GLcontextRec::Const. + * Initializes __struct gl_contextRec::Point and point related constants in + * __struct gl_contextRec::Const. */ void -_mesa_init_point(GLcontext *ctx) +_mesa_init_point(struct gl_context *ctx) { GLuint i; diff --git a/src/mesa/main/points.h b/src/mesa/main/points.h index 156641eab91..b222379b1b5 100644 --- a/src/mesa/main/points.h +++ b/src/mesa/main/points.h @@ -51,7 +51,7 @@ extern void GLAPIENTRY _mesa_PointParameterfv( GLenum pname, const GLfloat *params ); extern void -_mesa_init_point( GLcontext * ctx ); +_mesa_init_point( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/polygon.c b/src/mesa/main/polygon.c index 30e4a606bb7..9c213b9b4c0 100644 --- a/src/mesa/main/polygon.c +++ b/src/mesa/main/polygon.c @@ -34,6 +34,7 @@ #include "context.h" #include "image.h" #include "enums.h" +#include "pack.h" #include "polygon.h" #include "mtypes.h" @@ -190,7 +191,7 @@ _mesa_PolygonMode( GLenum face, GLenum mode ) * too. */ void -_mesa_polygon_stipple(GLcontext *ctx, const GLubyte *pattern) +_mesa_polygon_stipple(struct gl_context *ctx, const GLubyte *pattern) { pattern = _mesa_map_validate_pbo_source(ctx, 2, &ctx->Unpack, 32, 32, 1, @@ -293,10 +294,10 @@ _mesa_PolygonOffsetEXT( GLfloat factor, GLfloat bias ) * * \param ctx GL context. * - * Initializes __GLcontextRec::Polygon and __GLcontextRec::PolygonStipple + * Initializes __struct gl_contextRec::Polygon and __struct gl_contextRec::PolygonStipple * attribute groups. */ -void _mesa_init_polygon( GLcontext * ctx ) +void _mesa_init_polygon( struct gl_context * ctx ) { /* Polygon group */ ctx->Polygon.CullFlag = GL_FALSE; diff --git a/src/mesa/main/polygon.h b/src/mesa/main/polygon.h index 78e8394d053..ad0ac4cc3a7 100644 --- a/src/mesa/main/polygon.h +++ b/src/mesa/main/polygon.h @@ -36,7 +36,7 @@ extern void -_mesa_polygon_stipple(GLcontext *ctx, const GLubyte *pattern); +_mesa_polygon_stipple(struct gl_context *ctx, const GLubyte *pattern); extern void GLAPIENTRY @@ -61,6 +61,6 @@ extern void GLAPIENTRY _mesa_GetPolygonStipple( GLubyte *mask ); extern void -_mesa_init_polygon( GLcontext * ctx ); +_mesa_init_polygon( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/queryobj.c b/src/mesa/main/queryobj.c index a907dac836b..88743977206 100644 --- a/src/mesa/main/queryobj.c +++ b/src/mesa/main/queryobj.c @@ -43,7 +43,7 @@ * \return pointer to new query_object object or NULL if out of memory. */ static struct gl_query_object * -_mesa_new_query_object(GLcontext *ctx, GLuint id) +_mesa_new_query_object(struct gl_context *ctx, GLuint id) { struct gl_query_object *q = MALLOC_STRUCT(gl_query_object); (void) ctx; @@ -62,7 +62,7 @@ _mesa_new_query_object(GLcontext *ctx, GLuint id) * Called via ctx->Driver.BeginQuery(). */ static void -_mesa_begin_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_begin_query(struct gl_context *ctx, struct gl_query_object *q) { /* no-op */ } @@ -73,7 +73,7 @@ _mesa_begin_query(GLcontext *ctx, struct gl_query_object *q) * Called via ctx->Driver.EndQuery(). */ static void -_mesa_end_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_end_query(struct gl_context *ctx, struct gl_query_object *q) { q->Ready = GL_TRUE; } @@ -84,7 +84,7 @@ _mesa_end_query(GLcontext *ctx, struct gl_query_object *q) * Called via ctx->Driver.WaitQuery(). */ static void -_mesa_wait_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_wait_query(struct gl_context *ctx, struct gl_query_object *q) { /* For software drivers, _mesa_end_query() should have completed the query. * For real hardware, implement a proper WaitQuery() driver function, @@ -99,7 +99,7 @@ _mesa_wait_query(GLcontext *ctx, struct gl_query_object *q) * Called via ctx->Driver.CheckQuery(). */ static void -_mesa_check_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_check_query(struct gl_context *ctx, struct gl_query_object *q) { /* No-op for sw rendering. * HW drivers may need to flush at this time. @@ -112,7 +112,7 @@ _mesa_check_query(GLcontext *ctx, struct gl_query_object *q) * Not removed from hash table here. */ static void -_mesa_delete_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_delete_query(struct gl_context *ctx, struct gl_query_object *q) { free(q); } @@ -135,7 +135,7 @@ _mesa_init_query_object_functions(struct dd_function_table *driver) * \return NULL if invalid target, else the address of binding point */ static struct gl_query_object ** -get_query_binding_point(GLcontext *ctx, GLenum target) +get_query_binding_point(struct gl_context *ctx, GLenum target) { switch (target) { case GL_SAMPLES_PASSED_ARB: @@ -535,7 +535,7 @@ _mesa_init_queryobj_dispatch(struct _glapi_table *disp) * Allocate/init the context state related to query objects. */ void -_mesa_init_queryobj(GLcontext *ctx) +_mesa_init_queryobj(struct gl_context *ctx) { ctx->Query.QueryObjects = _mesa_NewHashTable(); ctx->Query.CurrentOcclusionObject = NULL; @@ -549,7 +549,7 @@ static void delete_queryobj_cb(GLuint id, void *data, void *userData) { struct gl_query_object *q= (struct gl_query_object *) data; - GLcontext *ctx = (GLcontext *)userData; + struct gl_context *ctx = (struct gl_context *)userData; ctx->Driver.DeleteQuery(ctx, q); } @@ -558,7 +558,7 @@ delete_queryobj_cb(GLuint id, void *data, void *userData) * Free the context state related to query objects. */ void -_mesa_free_queryobj_data(GLcontext *ctx) +_mesa_free_queryobj_data(struct gl_context *ctx) { _mesa_HashDeleteAll(ctx->Query.QueryObjects, delete_queryobj_cb, ctx); _mesa_DeleteHashTable(ctx->Query.QueryObjects); diff --git a/src/mesa/main/queryobj.h b/src/mesa/main/queryobj.h index 8746ed15e99..e289625731a 100644 --- a/src/mesa/main/queryobj.h +++ b/src/mesa/main/queryobj.h @@ -34,7 +34,7 @@ #if FEATURE_queryobj static INLINE struct gl_query_object * -_mesa_lookup_query_object(GLcontext *ctx, GLuint id) +_mesa_lookup_query_object(struct gl_context *ctx, GLuint id) { return (struct gl_query_object *) _mesa_HashLookup(ctx->Query.QueryObjects, id); @@ -68,7 +68,7 @@ _mesa_init_queryobj_dispatch(struct _glapi_table *disp); #else /* FEATURE_queryobj */ static INLINE struct gl_query_object * -_mesa_lookup_query_object(GLcontext *ctx, GLuint id) +_mesa_lookup_query_object(struct gl_context *ctx, GLuint id) { return NULL; } @@ -86,10 +86,10 @@ _mesa_init_queryobj_dispatch(struct _glapi_table *disp) #endif /* FEATURE_queryobj */ extern void -_mesa_init_queryobj(GLcontext *ctx); +_mesa_init_queryobj(struct gl_context *ctx); extern void -_mesa_free_queryobj_data(GLcontext *ctx); +_mesa_free_queryobj_data(struct gl_context *ctx); #endif /* QUERYOBJ_H */ diff --git a/src/mesa/main/rastpos.c b/src/mesa/main/rastpos.c index 75c67f2693e..6f52f07dfab 100644 --- a/src/mesa/main/rastpos.c +++ b/src/mesa/main/rastpos.c @@ -545,10 +545,10 @@ _mesa_init_rastpos_dispatch(struct _glapi_table *disp) * \param ctx GL context. * * Initialize the current raster position information in - * __GLcontextRec::Current, and adds the extension entry points to the + * __struct gl_contextRec::Current, and adds the extension entry points to the * dispatcher. */ -void _mesa_init_rastpos( GLcontext * ctx ) +void _mesa_init_rastpos( struct gl_context * ctx ) { int i; diff --git a/src/mesa/main/rastpos.h b/src/mesa/main/rastpos.h index 4994616d40a..9b508eaedf5 100644 --- a/src/mesa/main/rastpos.h +++ b/src/mesa/main/rastpos.h @@ -50,7 +50,7 @@ _mesa_init_rastpos_dispatch(struct _glapi_table *disp) #endif /* FEATURE_rastpos */ extern void -_mesa_init_rastpos(GLcontext *ctx); +_mesa_init_rastpos(struct gl_context *ctx); /*@}*/ diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c index bb3fb9eb662..a5612e34ecf 100644 --- a/src/mesa/main/readpix.c +++ b/src/mesa/main/readpix.c @@ -28,6 +28,7 @@ #include "context.h" #include "readpix.h" #include "framebuffer.h" +#include "formats.h" #include "image.h" #include "state.h" @@ -40,7 +41,7 @@ * \return GL_TRUE if error detected, GL_FALSE if no errors */ GLboolean -_mesa_error_check_format_type(GLcontext *ctx, GLenum format, GLenum type, +_mesa_error_check_format_type(struct gl_context *ctx, GLenum format, GLenum type, GLboolean drawing) { const char *readDraw = drawing ? "Draw" : "Read"; @@ -78,6 +79,16 @@ _mesa_error_check_format_type(GLcontext *ctx, GLenum format, GLenum type, case GL_RGBA: case GL_BGRA: case GL_ABGR_EXT: + case GL_RED_INTEGER_EXT: + case GL_GREEN_INTEGER_EXT: + case GL_BLUE_INTEGER_EXT: + case GL_ALPHA_INTEGER_EXT: + case GL_RGB_INTEGER_EXT: + case GL_RGBA_INTEGER_EXT: + case GL_BGR_INTEGER_EXT: + case GL_BGRA_INTEGER_EXT: + case GL_LUMINANCE_INTEGER_EXT: + case GL_LUMINANCE_ALPHA_INTEGER_EXT: if (!drawing) { /* reading */ if (!_mesa_source_buffer_exists(ctx, GL_COLOR)) { @@ -175,6 +186,20 @@ _mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, return; } + /* Check that the destination format and source buffer are both + * integer-valued or both non-integer-valued. + */ + if (ctx->Extensions.EXT_texture_integer && _mesa_is_color_format(format)) { + const struct gl_renderbuffer *rb = ctx->ReadBuffer->_ColorReadBuffer; + const GLboolean srcInteger = _mesa_is_format_integer_color(rb->Format); + const GLboolean dstInteger = _mesa_is_integer_format(format); + if (dstInteger != srcInteger) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glReadPixels(integer / non-integer format mismatch"); + return; + } + } + if (ctx->ReadBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "glReadPixels(incomplete framebuffer)" ); diff --git a/src/mesa/main/readpix.h b/src/mesa/main/readpix.h index 1bf02fb8e4d..0753e619fed 100644 --- a/src/mesa/main/readpix.h +++ b/src/mesa/main/readpix.h @@ -31,7 +31,7 @@ extern GLboolean -_mesa_error_check_format_type(GLcontext *ctx, GLenum format, GLenum type, +_mesa_error_check_format_type(struct gl_context *ctx, GLenum format, GLenum type, GLboolean drawing); extern void GLAPIENTRY diff --git a/src/mesa/main/remap_helper.h b/src/mesa/main/remap_helper.h index fe3e0fd9123..9034b10d488 100644 --- a/src/mesa/main/remap_helper.h +++ b/src/mesa/main/remap_helper.h @@ -424,4041 +424,4085 @@ static const char _mesa_function_pool[] = "f\0" "glPassThrough\0" "\0" - /* _mesa_function_pool[2740]: FramebufferTextureLayerEXT (will be remapped) */ + /* _mesa_function_pool[2740]: TexParameterIivEXT (will be remapped) */ + "iip\0" + "glTexParameterIivEXT\0" + "\0" + /* _mesa_function_pool[2766]: FramebufferTextureLayerEXT (will be remapped) */ "iiiii\0" "glFramebufferTextureLayer\0" "glFramebufferTextureLayerEXT\0" "\0" - /* _mesa_function_pool[2802]: GetListParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[2828]: GetListParameterfvSGIX (dynamic) */ "iip\0" "glGetListParameterfvSGIX\0" "\0" - /* _mesa_function_pool[2832]: Viewport (offset 305) */ + /* _mesa_function_pool[2858]: Viewport (offset 305) */ "iiii\0" "glViewport\0" "\0" - /* _mesa_function_pool[2849]: VertexAttrib4NusvARB (will be remapped) */ + /* _mesa_function_pool[2875]: VertexAttrib4NusvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nusv\0" "glVertexAttrib4NusvARB\0" "\0" - /* _mesa_function_pool[2896]: WindowPos4svMESA (will be remapped) */ + /* _mesa_function_pool[2922]: WindowPos4svMESA (will be remapped) */ "p\0" "glWindowPos4svMESA\0" "\0" - /* _mesa_function_pool[2918]: CreateProgramObjectARB (will be remapped) */ + /* _mesa_function_pool[2944]: CreateProgramObjectARB (will be remapped) */ "\0" "glCreateProgramObjectARB\0" "\0" - /* _mesa_function_pool[2945]: DeleteTransformFeedbacks (will be remapped) */ + /* _mesa_function_pool[2971]: DeleteTransformFeedbacks (will be remapped) */ "ip\0" "glDeleteTransformFeedbacks\0" "\0" - /* _mesa_function_pool[2976]: UniformMatrix4x3fv (will be remapped) */ + /* _mesa_function_pool[3002]: UniformMatrix4x3fv (will be remapped) */ "iiip\0" "glUniformMatrix4x3fv\0" "\0" - /* _mesa_function_pool[3003]: PrioritizeTextures (offset 331) */ + /* _mesa_function_pool[3029]: PrioritizeTextures (offset 331) */ "ipp\0" "glPrioritizeTextures\0" "glPrioritizeTexturesEXT\0" "\0" - /* _mesa_function_pool[3053]: AsyncMarkerSGIX (dynamic) */ + /* _mesa_function_pool[3079]: AsyncMarkerSGIX (dynamic) */ "i\0" "glAsyncMarkerSGIX\0" "\0" - /* _mesa_function_pool[3074]: GlobalAlphaFactorubSUN (dynamic) */ + /* _mesa_function_pool[3100]: GlobalAlphaFactorubSUN (dynamic) */ "i\0" "glGlobalAlphaFactorubSUN\0" "\0" - /* _mesa_function_pool[3102]: ClearDebugLogMESA (dynamic) */ + /* _mesa_function_pool[3128]: ClearColorIuiEXT (will be remapped) */ + "iiii\0" + "glClearColorIuiEXT\0" + "\0" + /* _mesa_function_pool[3153]: ClearDebugLogMESA (dynamic) */ "iii\0" "glClearDebugLogMESA\0" "\0" - /* _mesa_function_pool[3127]: ResetHistogram (offset 369) */ + /* _mesa_function_pool[3178]: ResetHistogram (offset 369) */ "i\0" "glResetHistogram\0" "glResetHistogramEXT\0" "\0" - /* _mesa_function_pool[3167]: GetProgramNamedParameterfvNV (will be remapped) */ + /* _mesa_function_pool[3218]: GetProgramNamedParameterfvNV (will be remapped) */ "iipp\0" "glGetProgramNamedParameterfvNV\0" "\0" - /* _mesa_function_pool[3204]: PointParameterfEXT (will be remapped) */ + /* _mesa_function_pool[3255]: PointParameterfEXT (will be remapped) */ "if\0" "glPointParameterf\0" "glPointParameterfARB\0" "glPointParameterfEXT\0" "glPointParameterfSGIS\0" "\0" - /* _mesa_function_pool[3290]: LoadIdentityDeformationMapSGIX (dynamic) */ + /* _mesa_function_pool[3341]: LoadIdentityDeformationMapSGIX (dynamic) */ "i\0" "glLoadIdentityDeformationMapSGIX\0" "\0" - /* _mesa_function_pool[3326]: GenFencesNV (will be remapped) */ + /* _mesa_function_pool[3377]: GenFencesNV (will be remapped) */ "ip\0" "glGenFencesNV\0" "\0" - /* _mesa_function_pool[3344]: ImageTransformParameterfHP (dynamic) */ + /* _mesa_function_pool[3395]: ImageTransformParameterfHP (dynamic) */ "iif\0" "glImageTransformParameterfHP\0" "\0" - /* _mesa_function_pool[3378]: MatrixIndexusvARB (dynamic) */ + /* _mesa_function_pool[3429]: MatrixIndexusvARB (dynamic) */ "ip\0" "glMatrixIndexusvARB\0" "\0" - /* _mesa_function_pool[3402]: DrawElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[3453]: DrawElementsBaseVertex (will be remapped) */ "iiipi\0" "glDrawElementsBaseVertex\0" "\0" - /* _mesa_function_pool[3434]: DisableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[3485]: DisableVertexAttribArrayARB (will be remapped) */ "i\0" "glDisableVertexAttribArray\0" "glDisableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[3494]: TexCoord2sv (offset 109) */ + /* _mesa_function_pool[3545]: TexCoord2sv (offset 109) */ "p\0" "glTexCoord2sv\0" "\0" - /* _mesa_function_pool[3511]: Vertex4dv (offset 143) */ + /* _mesa_function_pool[3562]: Vertex4dv (offset 143) */ "p\0" "glVertex4dv\0" "\0" - /* _mesa_function_pool[3526]: StencilMaskSeparate (will be remapped) */ + /* _mesa_function_pool[3577]: StencilMaskSeparate (will be remapped) */ "ii\0" "glStencilMaskSeparate\0" "\0" - /* _mesa_function_pool[3552]: ProgramLocalParameter4dARB (will be remapped) */ + /* _mesa_function_pool[3603]: ProgramLocalParameter4dARB (will be remapped) */ "iidddd\0" "glProgramLocalParameter4dARB\0" "\0" - /* _mesa_function_pool[3589]: CompressedTexImage3DARB (will be remapped) */ + /* _mesa_function_pool[3640]: CompressedTexImage3DARB (will be remapped) */ "iiiiiiiip\0" "glCompressedTexImage3D\0" "glCompressedTexImage3DARB\0" "\0" - /* _mesa_function_pool[3649]: Color3sv (offset 18) */ + /* _mesa_function_pool[3700]: Color3sv (offset 18) */ "p\0" "glColor3sv\0" "\0" - /* _mesa_function_pool[3663]: GetConvolutionParameteriv (offset 358) */ + /* _mesa_function_pool[3714]: GetConvolutionParameteriv (offset 358) */ "iip\0" "glGetConvolutionParameteriv\0" "glGetConvolutionParameterivEXT\0" "\0" - /* _mesa_function_pool[3727]: VertexAttrib1fARB (will be remapped) */ + /* _mesa_function_pool[3778]: VertexAttrib1fARB (will be remapped) */ "if\0" "glVertexAttrib1f\0" "glVertexAttrib1fARB\0" "\0" - /* _mesa_function_pool[3768]: Vertex2dv (offset 127) */ + /* _mesa_function_pool[3819]: Vertex2dv (offset 127) */ "p\0" "glVertex2dv\0" "\0" - /* _mesa_function_pool[3783]: TestFenceNV (will be remapped) */ + /* _mesa_function_pool[3834]: TestFenceNV (will be remapped) */ "i\0" "glTestFenceNV\0" "\0" - /* _mesa_function_pool[3800]: MultiTexCoord1fvARB (offset 379) */ + /* _mesa_function_pool[3851]: MultiTexCoord1fvARB (offset 379) */ "ip\0" "glMultiTexCoord1fv\0" "glMultiTexCoord1fvARB\0" "\0" - /* _mesa_function_pool[3845]: TexCoord3iv (offset 115) */ + /* _mesa_function_pool[3896]: TexCoord3iv (offset 115) */ "p\0" "glTexCoord3iv\0" "\0" - /* _mesa_function_pool[3862]: ColorFragmentOp2ATI (will be remapped) */ + /* _mesa_function_pool[3913]: ColorFragmentOp2ATI (will be remapped) */ "iiiiiiiiii\0" "glColorFragmentOp2ATI\0" "\0" - /* _mesa_function_pool[3896]: SecondaryColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[3947]: SecondaryColorPointerListIBM (dynamic) */ "iiipi\0" "glSecondaryColorPointerListIBM\0" "\0" - /* _mesa_function_pool[3934]: GetPixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[3985]: GetPixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glGetPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[3970]: Color3fv (offset 14) */ + /* _mesa_function_pool[4021]: Color3fv (offset 14) */ "p\0" "glColor3fv\0" "\0" - /* _mesa_function_pool[3984]: VertexAttrib4fNV (will be remapped) */ + /* _mesa_function_pool[4035]: VertexAttrib4fNV (will be remapped) */ "iffff\0" "glVertexAttrib4fNV\0" "\0" - /* _mesa_function_pool[4010]: ReplacementCodeubSUN (dynamic) */ + /* _mesa_function_pool[4061]: ReplacementCodeubSUN (dynamic) */ "i\0" "glReplacementCodeubSUN\0" "\0" - /* _mesa_function_pool[4036]: FinishAsyncSGIX (dynamic) */ + /* _mesa_function_pool[4087]: FinishAsyncSGIX (dynamic) */ "p\0" "glFinishAsyncSGIX\0" "\0" - /* _mesa_function_pool[4057]: GetDebugLogMESA (dynamic) */ + /* _mesa_function_pool[4108]: GetDebugLogMESA (dynamic) */ "iiiipp\0" "glGetDebugLogMESA\0" "\0" - /* _mesa_function_pool[4083]: FogCoorddEXT (will be remapped) */ + /* _mesa_function_pool[4134]: FogCoorddEXT (will be remapped) */ "d\0" "glFogCoordd\0" "glFogCoorddEXT\0" "\0" - /* _mesa_function_pool[4113]: BeginConditionalRenderNV (will be remapped) */ + /* _mesa_function_pool[4164]: BeginConditionalRenderNV (will be remapped) */ "ii\0" "glBeginConditionalRenderNV\0" "\0" - /* _mesa_function_pool[4144]: Color4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[4195]: Color4ubVertex3fSUN (dynamic) */ "iiiifff\0" "glColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[4175]: FogCoordfEXT (will be remapped) */ + /* _mesa_function_pool[4226]: FogCoordfEXT (will be remapped) */ "f\0" "glFogCoordf\0" "glFogCoordfEXT\0" "\0" - /* _mesa_function_pool[4205]: PointSize (offset 173) */ + /* _mesa_function_pool[4256]: PointSize (offset 173) */ "f\0" "glPointSize\0" "\0" - /* _mesa_function_pool[4220]: TexCoord2fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[4271]: TexCoord2fVertex3fSUN (dynamic) */ "fffff\0" "glTexCoord2fVertex3fSUN\0" "\0" - /* _mesa_function_pool[4251]: PopName (offset 200) */ + /* _mesa_function_pool[4302]: PopName (offset 200) */ "\0" "glPopName\0" "\0" - /* _mesa_function_pool[4263]: GlobalAlphaFactoriSUN (dynamic) */ + /* _mesa_function_pool[4314]: GlobalAlphaFactoriSUN (dynamic) */ "i\0" "glGlobalAlphaFactoriSUN\0" "\0" - /* _mesa_function_pool[4290]: VertexAttrib2dNV (will be remapped) */ + /* _mesa_function_pool[4341]: VertexAttrib2dNV (will be remapped) */ "idd\0" "glVertexAttrib2dNV\0" "\0" - /* _mesa_function_pool[4314]: GetProgramInfoLog (will be remapped) */ + /* _mesa_function_pool[4365]: GetProgramInfoLog (will be remapped) */ "iipp\0" "glGetProgramInfoLog\0" "\0" - /* _mesa_function_pool[4340]: VertexAttrib4NbvARB (will be remapped) */ + /* _mesa_function_pool[4391]: VertexAttrib4NbvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nbv\0" "glVertexAttrib4NbvARB\0" "\0" - /* _mesa_function_pool[4385]: GetActiveAttribARB (will be remapped) */ + /* _mesa_function_pool[4436]: GetActiveAttribARB (will be remapped) */ "iiipppp\0" "glGetActiveAttrib\0" "glGetActiveAttribARB\0" "\0" - /* _mesa_function_pool[4433]: Vertex4sv (offset 149) */ + /* _mesa_function_pool[4484]: Vertex4sv (offset 149) */ "p\0" "glVertex4sv\0" "\0" - /* _mesa_function_pool[4448]: VertexAttrib4ubNV (will be remapped) */ + /* _mesa_function_pool[4499]: VertexAttrib4ubNV (will be remapped) */ "iiiii\0" "glVertexAttrib4ubNV\0" "\0" - /* _mesa_function_pool[4475]: TextureRangeAPPLE (will be remapped) */ + /* _mesa_function_pool[4526]: TextureRangeAPPLE (will be remapped) */ "iip\0" "glTextureRangeAPPLE\0" "\0" - /* _mesa_function_pool[4500]: GetTexEnvfv (offset 276) */ + /* _mesa_function_pool[4551]: GetTexEnvfv (offset 276) */ "iip\0" "glGetTexEnvfv\0" "\0" - /* _mesa_function_pool[4519]: BindTransformFeedback (will be remapped) */ + /* _mesa_function_pool[4570]: BindTransformFeedback (will be remapped) */ "ii\0" "glBindTransformFeedback\0" "\0" - /* _mesa_function_pool[4547]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[4598]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ "ffffffffffff\0" "glTexCoord2fColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[4600]: Indexub (offset 315) */ + /* _mesa_function_pool[4651]: Indexub (offset 315) */ "i\0" "glIndexub\0" "\0" - /* _mesa_function_pool[4613]: ColorMaskIndexedEXT (will be remapped) */ + /* _mesa_function_pool[4664]: ColorMaskIndexedEXT (will be remapped) */ "iiiii\0" "glColorMaskIndexedEXT\0" "\0" - /* _mesa_function_pool[4642]: TexEnvi (offset 186) */ + /* _mesa_function_pool[4693]: TexEnvi (offset 186) */ "iii\0" "glTexEnvi\0" "\0" - /* _mesa_function_pool[4657]: GetClipPlane (offset 259) */ + /* _mesa_function_pool[4708]: GetClipPlane (offset 259) */ "ip\0" "glGetClipPlane\0" "\0" - /* _mesa_function_pool[4676]: CombinerParameterfvNV (will be remapped) */ + /* _mesa_function_pool[4727]: CombinerParameterfvNV (will be remapped) */ "ip\0" "glCombinerParameterfvNV\0" "\0" - /* _mesa_function_pool[4704]: VertexAttribs3dvNV (will be remapped) */ + /* _mesa_function_pool[4755]: VertexAttribs3dvNV (will be remapped) */ "iip\0" "glVertexAttribs3dvNV\0" "\0" - /* _mesa_function_pool[4730]: VertexAttribs4fvNV (will be remapped) */ + /* _mesa_function_pool[4781]: VertexAttribs4fvNV (will be remapped) */ "iip\0" "glVertexAttribs4fvNV\0" "\0" - /* _mesa_function_pool[4756]: VertexArrayRangeNV (will be remapped) */ + /* _mesa_function_pool[4807]: VertexArrayRangeNV (will be remapped) */ "ip\0" "glVertexArrayRangeNV\0" "\0" - /* _mesa_function_pool[4781]: FragmentLightiSGIX (dynamic) */ + /* _mesa_function_pool[4832]: FragmentLightiSGIX (dynamic) */ "iii\0" "glFragmentLightiSGIX\0" "\0" - /* _mesa_function_pool[4807]: PolygonOffsetEXT (will be remapped) */ + /* _mesa_function_pool[4858]: PolygonOffsetEXT (will be remapped) */ "ff\0" "glPolygonOffsetEXT\0" "\0" - /* _mesa_function_pool[4830]: PollAsyncSGIX (dynamic) */ + /* _mesa_function_pool[4881]: PollAsyncSGIX (dynamic) */ "p\0" "glPollAsyncSGIX\0" "\0" - /* _mesa_function_pool[4849]: DeleteFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[4900]: DeleteFragmentShaderATI (will be remapped) */ "i\0" "glDeleteFragmentShaderATI\0" "\0" - /* _mesa_function_pool[4878]: Scaled (offset 301) */ + /* _mesa_function_pool[4929]: Scaled (offset 301) */ "ddd\0" "glScaled\0" "\0" - /* _mesa_function_pool[4892]: ResumeTransformFeedback (will be remapped) */ + /* _mesa_function_pool[4943]: ResumeTransformFeedback (will be remapped) */ "\0" "glResumeTransformFeedback\0" "\0" - /* _mesa_function_pool[4920]: Scalef (offset 302) */ + /* _mesa_function_pool[4971]: Scalef (offset 302) */ "fff\0" "glScalef\0" "\0" - /* _mesa_function_pool[4934]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[4985]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[4972]: MultTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[5023]: MultTransposeMatrixdARB (will be remapped) */ "p\0" "glMultTransposeMatrixd\0" "glMultTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[5024]: ObjectUnpurgeableAPPLE (will be remapped) */ + /* _mesa_function_pool[5075]: ObjectUnpurgeableAPPLE (will be remapped) */ "iii\0" "glObjectUnpurgeableAPPLE\0" "\0" - /* _mesa_function_pool[5054]: AlphaFunc (offset 240) */ + /* _mesa_function_pool[5105]: AlphaFunc (offset 240) */ "if\0" "glAlphaFunc\0" "\0" - /* _mesa_function_pool[5070]: WindowPos2svMESA (will be remapped) */ + /* _mesa_function_pool[5121]: WindowPos2svMESA (will be remapped) */ "p\0" "glWindowPos2sv\0" "glWindowPos2svARB\0" "glWindowPos2svMESA\0" "\0" - /* _mesa_function_pool[5125]: EdgeFlag (offset 41) */ + /* _mesa_function_pool[5176]: EdgeFlag (offset 41) */ "i\0" "glEdgeFlag\0" "\0" - /* _mesa_function_pool[5139]: TexCoord2iv (offset 107) */ + /* _mesa_function_pool[5190]: TexCoord2iv (offset 107) */ "p\0" "glTexCoord2iv\0" "\0" - /* _mesa_function_pool[5156]: CompressedTexImage1DARB (will be remapped) */ + /* _mesa_function_pool[5207]: CompressedTexImage1DARB (will be remapped) */ "iiiiiip\0" "glCompressedTexImage1D\0" "glCompressedTexImage1DARB\0" "\0" - /* _mesa_function_pool[5214]: Rotated (offset 299) */ + /* _mesa_function_pool[5265]: Rotated (offset 299) */ "dddd\0" "glRotated\0" "\0" - /* _mesa_function_pool[5230]: VertexAttrib2sNV (will be remapped) */ + /* _mesa_function_pool[5281]: GetTexParameterIuivEXT (will be remapped) */ + "iip\0" + "glGetTexParameterIuivEXT\0" + "\0" + /* _mesa_function_pool[5311]: VertexAttrib2sNV (will be remapped) */ "iii\0" "glVertexAttrib2sNV\0" "\0" - /* _mesa_function_pool[5254]: ReadPixels (offset 256) */ + /* _mesa_function_pool[5335]: ReadPixels (offset 256) */ "iiiiiip\0" "glReadPixels\0" "\0" - /* _mesa_function_pool[5276]: EdgeFlagv (offset 42) */ + /* _mesa_function_pool[5357]: EdgeFlagv (offset 42) */ "p\0" "glEdgeFlagv\0" "\0" - /* _mesa_function_pool[5291]: NormalPointerListIBM (dynamic) */ + /* _mesa_function_pool[5372]: NormalPointerListIBM (dynamic) */ "iipi\0" "glNormalPointerListIBM\0" "\0" - /* _mesa_function_pool[5320]: IndexPointerEXT (will be remapped) */ + /* _mesa_function_pool[5401]: IndexPointerEXT (will be remapped) */ "iiip\0" "glIndexPointerEXT\0" "\0" - /* _mesa_function_pool[5344]: Color4iv (offset 32) */ + /* _mesa_function_pool[5425]: Color4iv (offset 32) */ "p\0" "glColor4iv\0" "\0" - /* _mesa_function_pool[5358]: TexParameterf (offset 178) */ + /* _mesa_function_pool[5439]: TexParameterf (offset 178) */ "iif\0" "glTexParameterf\0" "\0" - /* _mesa_function_pool[5379]: TexParameteri (offset 180) */ + /* _mesa_function_pool[5460]: TexParameteri (offset 180) */ "iii\0" "glTexParameteri\0" "\0" - /* _mesa_function_pool[5400]: NormalPointerEXT (will be remapped) */ + /* _mesa_function_pool[5481]: NormalPointerEXT (will be remapped) */ "iiip\0" "glNormalPointerEXT\0" "\0" - /* _mesa_function_pool[5425]: MultiTexCoord3dARB (offset 392) */ + /* _mesa_function_pool[5506]: MultiTexCoord3dARB (offset 392) */ "iddd\0" "glMultiTexCoord3d\0" "glMultiTexCoord3dARB\0" "\0" - /* _mesa_function_pool[5470]: MultiTexCoord2iARB (offset 388) */ + /* _mesa_function_pool[5551]: MultiTexCoord2iARB (offset 388) */ "iii\0" "glMultiTexCoord2i\0" "glMultiTexCoord2iARB\0" "\0" - /* _mesa_function_pool[5514]: DrawPixels (offset 257) */ + /* _mesa_function_pool[5595]: DrawPixels (offset 257) */ "iiiip\0" "glDrawPixels\0" "\0" - /* _mesa_function_pool[5534]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[5615]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */ "iffffffff\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[5594]: MultiTexCoord2svARB (offset 391) */ + /* _mesa_function_pool[5675]: MultiTexCoord2svARB (offset 391) */ "ip\0" "glMultiTexCoord2sv\0" "glMultiTexCoord2svARB\0" "\0" - /* _mesa_function_pool[5639]: ReplacementCodeubvSUN (dynamic) */ + /* _mesa_function_pool[5720]: ReplacementCodeubvSUN (dynamic) */ "p\0" "glReplacementCodeubvSUN\0" "\0" - /* _mesa_function_pool[5666]: Uniform3iARB (will be remapped) */ + /* _mesa_function_pool[5747]: Uniform3iARB (will be remapped) */ "iiii\0" "glUniform3i\0" "glUniform3iARB\0" "\0" - /* _mesa_function_pool[5699]: DrawTransformFeedback (will be remapped) */ + /* _mesa_function_pool[5780]: DrawTransformFeedback (will be remapped) */ "ii\0" "glDrawTransformFeedback\0" "\0" - /* _mesa_function_pool[5727]: GetFragmentMaterialfvSGIX (dynamic) */ + /* _mesa_function_pool[5808]: GetFragmentMaterialfvSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialfvSGIX\0" "\0" - /* _mesa_function_pool[5760]: GetShaderInfoLog (will be remapped) */ + /* _mesa_function_pool[5841]: GetShaderInfoLog (will be remapped) */ "iipp\0" "glGetShaderInfoLog\0" "\0" - /* _mesa_function_pool[5785]: WeightivARB (dynamic) */ + /* _mesa_function_pool[5866]: WeightivARB (dynamic) */ "ip\0" "glWeightivARB\0" "\0" - /* _mesa_function_pool[5803]: PollInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[5884]: PollInstrumentsSGIX (dynamic) */ "p\0" "glPollInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[5828]: GlobalAlphaFactordSUN (dynamic) */ + /* _mesa_function_pool[5909]: GlobalAlphaFactordSUN (dynamic) */ "d\0" "glGlobalAlphaFactordSUN\0" "\0" - /* _mesa_function_pool[5855]: GetFinalCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[5936]: GetFinalCombinerInputParameterfvNV (will be remapped) */ "iip\0" "glGetFinalCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[5897]: GenerateMipmapEXT (will be remapped) */ + /* _mesa_function_pool[5978]: GenerateMipmapEXT (will be remapped) */ "i\0" "glGenerateMipmap\0" "glGenerateMipmapEXT\0" "\0" - /* _mesa_function_pool[5937]: GenLists (offset 5) */ + /* _mesa_function_pool[6018]: GenLists (offset 5) */ "i\0" "glGenLists\0" "\0" - /* _mesa_function_pool[5951]: SetFragmentShaderConstantATI (will be remapped) */ + /* _mesa_function_pool[6032]: SetFragmentShaderConstantATI (will be remapped) */ "ip\0" "glSetFragmentShaderConstantATI\0" "\0" - /* _mesa_function_pool[5986]: GetMapAttribParameterivNV (dynamic) */ + /* _mesa_function_pool[6067]: GetMapAttribParameterivNV (dynamic) */ "iiip\0" "glGetMapAttribParameterivNV\0" "\0" - /* _mesa_function_pool[6020]: CreateShaderObjectARB (will be remapped) */ + /* _mesa_function_pool[6101]: CreateShaderObjectARB (will be remapped) */ "i\0" "glCreateShaderObjectARB\0" "\0" - /* _mesa_function_pool[6047]: GetSharpenTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[6128]: GetSharpenTexFuncSGIS (dynamic) */ "ip\0" "glGetSharpenTexFuncSGIS\0" "\0" - /* _mesa_function_pool[6075]: BufferDataARB (will be remapped) */ + /* _mesa_function_pool[6156]: BufferDataARB (will be remapped) */ "iipi\0" "glBufferData\0" "glBufferDataARB\0" "\0" - /* _mesa_function_pool[6110]: FlushVertexArrayRangeNV (will be remapped) */ + /* _mesa_function_pool[6191]: FlushVertexArrayRangeNV (will be remapped) */ "\0" "glFlushVertexArrayRangeNV\0" "\0" - /* _mesa_function_pool[6138]: MapGrid2d (offset 226) */ + /* _mesa_function_pool[6219]: MapGrid2d (offset 226) */ "iddidd\0" "glMapGrid2d\0" "\0" - /* _mesa_function_pool[6158]: MapGrid2f (offset 227) */ + /* _mesa_function_pool[6239]: MapGrid2f (offset 227) */ "iffiff\0" "glMapGrid2f\0" "\0" - /* _mesa_function_pool[6178]: SampleMapATI (will be remapped) */ + /* _mesa_function_pool[6259]: SampleMapATI (will be remapped) */ "iii\0" "glSampleMapATI\0" "\0" - /* _mesa_function_pool[6198]: VertexPointerEXT (will be remapped) */ + /* _mesa_function_pool[6279]: VertexPointerEXT (will be remapped) */ "iiiip\0" "glVertexPointerEXT\0" "\0" - /* _mesa_function_pool[6224]: GetTexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[6305]: GetTexFilterFuncSGIS (dynamic) */ "iip\0" "glGetTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[6252]: Scissor (offset 176) */ + /* _mesa_function_pool[6333]: Scissor (offset 176) */ "iiii\0" "glScissor\0" "\0" - /* _mesa_function_pool[6268]: Fogf (offset 153) */ + /* _mesa_function_pool[6349]: Fogf (offset 153) */ "if\0" "glFogf\0" "\0" - /* _mesa_function_pool[6279]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[6360]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[6324]: TexSubImage1D (offset 332) */ + /* _mesa_function_pool[6405]: TexSubImage1D (offset 332) */ "iiiiiip\0" "glTexSubImage1D\0" "glTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[6368]: VertexAttrib1sARB (will be remapped) */ + /* _mesa_function_pool[6449]: VertexAttrib1sARB (will be remapped) */ "ii\0" "glVertexAttrib1s\0" "glVertexAttrib1sARB\0" "\0" - /* _mesa_function_pool[6409]: FenceSync (will be remapped) */ + /* _mesa_function_pool[6490]: FenceSync (will be remapped) */ "ii\0" "glFenceSync\0" "\0" - /* _mesa_function_pool[6425]: Color4usv (offset 40) */ + /* _mesa_function_pool[6506]: Color4usv (offset 40) */ "p\0" "glColor4usv\0" "\0" - /* _mesa_function_pool[6440]: Fogi (offset 155) */ + /* _mesa_function_pool[6521]: Fogi (offset 155) */ "ii\0" "glFogi\0" "\0" - /* _mesa_function_pool[6451]: DepthRange (offset 288) */ + /* _mesa_function_pool[6532]: DepthRange (offset 288) */ "dd\0" "glDepthRange\0" "\0" - /* _mesa_function_pool[6468]: RasterPos3iv (offset 75) */ + /* _mesa_function_pool[6549]: RasterPos3iv (offset 75) */ "p\0" "glRasterPos3iv\0" "\0" - /* _mesa_function_pool[6486]: FinalCombinerInputNV (will be remapped) */ + /* _mesa_function_pool[6567]: FinalCombinerInputNV (will be remapped) */ "iiii\0" "glFinalCombinerInputNV\0" "\0" - /* _mesa_function_pool[6515]: TexCoord2i (offset 106) */ + /* _mesa_function_pool[6596]: TexCoord2i (offset 106) */ "ii\0" "glTexCoord2i\0" "\0" - /* _mesa_function_pool[6532]: PixelMapfv (offset 251) */ + /* _mesa_function_pool[6613]: PixelMapfv (offset 251) */ "iip\0" "glPixelMapfv\0" "\0" - /* _mesa_function_pool[6550]: Color4ui (offset 37) */ + /* _mesa_function_pool[6631]: Color4ui (offset 37) */ "iiii\0" "glColor4ui\0" "\0" - /* _mesa_function_pool[6567]: RasterPos3s (offset 76) */ + /* _mesa_function_pool[6648]: RasterPos3s (offset 76) */ "iii\0" "glRasterPos3s\0" "\0" - /* _mesa_function_pool[6586]: Color3usv (offset 24) */ + /* _mesa_function_pool[6667]: Color3usv (offset 24) */ "p\0" "glColor3usv\0" "\0" - /* _mesa_function_pool[6601]: FlushRasterSGIX (dynamic) */ + /* _mesa_function_pool[6682]: FlushRasterSGIX (dynamic) */ "\0" "glFlushRasterSGIX\0" "\0" - /* _mesa_function_pool[6621]: TexCoord2f (offset 104) */ + /* _mesa_function_pool[6702]: TexCoord2f (offset 104) */ "ff\0" "glTexCoord2f\0" "\0" - /* _mesa_function_pool[6638]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[6719]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */ "ifffff\0" "glReplacementCodeuiTexCoord2fVertex3fSUN\0" "\0" - /* _mesa_function_pool[6687]: TexCoord2d (offset 102) */ + /* _mesa_function_pool[6768]: TexCoord2d (offset 102) */ "dd\0" "glTexCoord2d\0" "\0" - /* _mesa_function_pool[6704]: RasterPos3d (offset 70) */ + /* _mesa_function_pool[6785]: RasterPos3d (offset 70) */ "ddd\0" "glRasterPos3d\0" "\0" - /* _mesa_function_pool[6723]: RasterPos3f (offset 72) */ + /* _mesa_function_pool[6804]: RasterPos3f (offset 72) */ "fff\0" "glRasterPos3f\0" "\0" - /* _mesa_function_pool[6742]: Uniform1fARB (will be remapped) */ + /* _mesa_function_pool[6823]: Uniform1fARB (will be remapped) */ "if\0" "glUniform1f\0" "glUniform1fARB\0" "\0" - /* _mesa_function_pool[6773]: AreTexturesResident (offset 322) */ + /* _mesa_function_pool[6854]: AreTexturesResident (offset 322) */ "ipp\0" "glAreTexturesResident\0" "glAreTexturesResidentEXT\0" "\0" - /* _mesa_function_pool[6825]: TexCoord2s (offset 108) */ + /* _mesa_function_pool[6906]: TexCoord2s (offset 108) */ "ii\0" "glTexCoord2s\0" "\0" - /* _mesa_function_pool[6842]: StencilOpSeparate (will be remapped) */ + /* _mesa_function_pool[6923]: StencilOpSeparate (will be remapped) */ "iiii\0" "glStencilOpSeparate\0" "glStencilOpSeparateATI\0" "\0" - /* _mesa_function_pool[6891]: ColorTableParameteriv (offset 341) */ + /* _mesa_function_pool[6972]: ColorTableParameteriv (offset 341) */ "iip\0" "glColorTableParameteriv\0" "glColorTableParameterivSGI\0" "\0" - /* _mesa_function_pool[6947]: FogCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[7028]: FogCoordPointerListIBM (dynamic) */ "iipi\0" "glFogCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[6978]: WindowPos3dMESA (will be remapped) */ + /* _mesa_function_pool[7059]: WindowPos3dMESA (will be remapped) */ "ddd\0" "glWindowPos3d\0" "glWindowPos3dARB\0" "glWindowPos3dMESA\0" "\0" - /* _mesa_function_pool[7032]: Color4us (offset 39) */ + /* _mesa_function_pool[7113]: Color4us (offset 39) */ "iiii\0" "glColor4us\0" "\0" - /* _mesa_function_pool[7049]: PointParameterfvEXT (will be remapped) */ + /* _mesa_function_pool[7130]: PointParameterfvEXT (will be remapped) */ "ip\0" "glPointParameterfv\0" "glPointParameterfvARB\0" "glPointParameterfvEXT\0" "glPointParameterfvSGIS\0" "\0" - /* _mesa_function_pool[7139]: Color3bv (offset 10) */ + /* _mesa_function_pool[7220]: Color3bv (offset 10) */ "p\0" "glColor3bv\0" "\0" - /* _mesa_function_pool[7153]: WindowPos2fvMESA (will be remapped) */ + /* _mesa_function_pool[7234]: WindowPos2fvMESA (will be remapped) */ "p\0" "glWindowPos2fv\0" "glWindowPos2fvARB\0" "glWindowPos2fvMESA\0" "\0" - /* _mesa_function_pool[7208]: SecondaryColor3bvEXT (will be remapped) */ + /* _mesa_function_pool[7289]: SecondaryColor3bvEXT (will be remapped) */ "p\0" "glSecondaryColor3bv\0" "glSecondaryColor3bvEXT\0" "\0" - /* _mesa_function_pool[7254]: VertexPointerListIBM (dynamic) */ + /* _mesa_function_pool[7335]: VertexPointerListIBM (dynamic) */ "iiipi\0" "glVertexPointerListIBM\0" "\0" - /* _mesa_function_pool[7284]: GetProgramLocalParameterfvARB (will be remapped) */ + /* _mesa_function_pool[7365]: GetProgramLocalParameterfvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterfvARB\0" "\0" - /* _mesa_function_pool[7321]: FragmentMaterialfSGIX (dynamic) */ + /* _mesa_function_pool[7402]: FragmentMaterialfSGIX (dynamic) */ "iif\0" "glFragmentMaterialfSGIX\0" "\0" - /* _mesa_function_pool[7350]: TexCoord2fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[7431]: TexCoord2fNormal3fVertex3fSUN (dynamic) */ "ffffffff\0" "glTexCoord2fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[7392]: RenderbufferStorageEXT (will be remapped) */ + /* _mesa_function_pool[7473]: RenderbufferStorageEXT (will be remapped) */ "iiii\0" "glRenderbufferStorage\0" "glRenderbufferStorageEXT\0" "\0" - /* _mesa_function_pool[7445]: IsFenceNV (will be remapped) */ + /* _mesa_function_pool[7526]: IsFenceNV (will be remapped) */ "i\0" "glIsFenceNV\0" "\0" - /* _mesa_function_pool[7460]: AttachObjectARB (will be remapped) */ + /* _mesa_function_pool[7541]: AttachObjectARB (will be remapped) */ "ii\0" "glAttachObjectARB\0" "\0" - /* _mesa_function_pool[7482]: GetFragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[7563]: GetFragmentLightivSGIX (dynamic) */ "iip\0" "glGetFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[7512]: UniformMatrix2fvARB (will be remapped) */ + /* _mesa_function_pool[7593]: UniformMatrix2fvARB (will be remapped) */ "iiip\0" "glUniformMatrix2fv\0" "glUniformMatrix2fvARB\0" "\0" - /* _mesa_function_pool[7559]: MultiTexCoord2fARB (offset 386) */ + /* _mesa_function_pool[7640]: MultiTexCoord2fARB (offset 386) */ "iff\0" "glMultiTexCoord2f\0" "glMultiTexCoord2fARB\0" "\0" - /* _mesa_function_pool[7603]: ColorTable (offset 339) */ + /* _mesa_function_pool[7684]: ColorTable (offset 339) */ "iiiiip\0" "glColorTable\0" "glColorTableSGI\0" "glColorTableEXT\0" "\0" - /* _mesa_function_pool[7656]: IndexPointer (offset 314) */ + /* _mesa_function_pool[7737]: IndexPointer (offset 314) */ "iip\0" "glIndexPointer\0" "\0" - /* _mesa_function_pool[7676]: Accum (offset 213) */ + /* _mesa_function_pool[7757]: Accum (offset 213) */ "if\0" "glAccum\0" "\0" - /* _mesa_function_pool[7688]: GetTexImage (offset 281) */ + /* _mesa_function_pool[7769]: GetTexImage (offset 281) */ "iiiip\0" "glGetTexImage\0" "\0" - /* _mesa_function_pool[7709]: MapControlPointsNV (dynamic) */ + /* _mesa_function_pool[7790]: MapControlPointsNV (dynamic) */ "iiiiiiiip\0" "glMapControlPointsNV\0" "\0" - /* _mesa_function_pool[7741]: ConvolutionFilter2D (offset 349) */ + /* _mesa_function_pool[7822]: ConvolutionFilter2D (offset 349) */ "iiiiiip\0" "glConvolutionFilter2D\0" "glConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[7797]: Finish (offset 216) */ + /* _mesa_function_pool[7878]: Finish (offset 216) */ "\0" "glFinish\0" "\0" - /* _mesa_function_pool[7808]: MapParameterfvNV (dynamic) */ + /* _mesa_function_pool[7889]: MapParameterfvNV (dynamic) */ "iip\0" "glMapParameterfvNV\0" "\0" - /* _mesa_function_pool[7832]: ClearStencil (offset 207) */ + /* _mesa_function_pool[7913]: ClearStencil (offset 207) */ "i\0" "glClearStencil\0" "\0" - /* _mesa_function_pool[7850]: VertexAttrib3dvARB (will be remapped) */ + /* _mesa_function_pool[7931]: VertexAttrib3dvARB (will be remapped) */ "ip\0" "glVertexAttrib3dv\0" "glVertexAttrib3dvARB\0" "\0" - /* _mesa_function_pool[7893]: HintPGI (dynamic) */ + /* _mesa_function_pool[7974]: HintPGI (dynamic) */ "ii\0" "glHintPGI\0" "\0" - /* _mesa_function_pool[7907]: ConvolutionParameteriv (offset 353) */ + /* _mesa_function_pool[7988]: ConvolutionParameteriv (offset 353) */ "iip\0" "glConvolutionParameteriv\0" "glConvolutionParameterivEXT\0" "\0" - /* _mesa_function_pool[7965]: Color4s (offset 33) */ + /* _mesa_function_pool[8046]: Color4s (offset 33) */ "iiii\0" "glColor4s\0" "\0" - /* _mesa_function_pool[7981]: InterleavedArrays (offset 317) */ + /* _mesa_function_pool[8062]: InterleavedArrays (offset 317) */ "iip\0" "glInterleavedArrays\0" "\0" - /* _mesa_function_pool[8006]: RasterPos2fv (offset 65) */ + /* _mesa_function_pool[8087]: RasterPos2fv (offset 65) */ "p\0" "glRasterPos2fv\0" "\0" - /* _mesa_function_pool[8024]: TexCoord1fv (offset 97) */ + /* _mesa_function_pool[8105]: TexCoord1fv (offset 97) */ "p\0" "glTexCoord1fv\0" "\0" - /* _mesa_function_pool[8041]: Vertex2d (offset 126) */ + /* _mesa_function_pool[8122]: Vertex2d (offset 126) */ "dd\0" "glVertex2d\0" "\0" - /* _mesa_function_pool[8056]: CullParameterdvEXT (dynamic) */ + /* _mesa_function_pool[8137]: CullParameterdvEXT (dynamic) */ "ip\0" "glCullParameterdvEXT\0" "\0" - /* _mesa_function_pool[8081]: ProgramNamedParameter4fNV (will be remapped) */ + /* _mesa_function_pool[8162]: ProgramNamedParameter4fNV (will be remapped) */ "iipffff\0" "glProgramNamedParameter4fNV\0" "\0" - /* _mesa_function_pool[8118]: Color3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[8199]: Color3fVertex3fSUN (dynamic) */ "ffffff\0" "glColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[8147]: ProgramEnvParameter4fvARB (will be remapped) */ + /* _mesa_function_pool[8228]: ProgramEnvParameter4fvARB (will be remapped) */ "iip\0" "glProgramEnvParameter4fvARB\0" "glProgramParameter4fvNV\0" "\0" - /* _mesa_function_pool[8204]: Color4i (offset 31) */ + /* _mesa_function_pool[8285]: Color4i (offset 31) */ "iiii\0" "glColor4i\0" "\0" - /* _mesa_function_pool[8220]: Color4f (offset 29) */ + /* _mesa_function_pool[8301]: Color4f (offset 29) */ "ffff\0" "glColor4f\0" "\0" - /* _mesa_function_pool[8236]: RasterPos4fv (offset 81) */ + /* _mesa_function_pool[8317]: RasterPos4fv (offset 81) */ "p\0" "glRasterPos4fv\0" "\0" - /* _mesa_function_pool[8254]: Color4d (offset 27) */ + /* _mesa_function_pool[8335]: Color4d (offset 27) */ "dddd\0" "glColor4d\0" "\0" - /* _mesa_function_pool[8270]: ClearIndex (offset 205) */ + /* _mesa_function_pool[8351]: ClearIndex (offset 205) */ "f\0" "glClearIndex\0" "\0" - /* _mesa_function_pool[8286]: Color4b (offset 25) */ + /* _mesa_function_pool[8367]: Color4b (offset 25) */ "iiii\0" "glColor4b\0" "\0" - /* _mesa_function_pool[8302]: LoadMatrixd (offset 292) */ + /* _mesa_function_pool[8383]: LoadMatrixd (offset 292) */ "p\0" "glLoadMatrixd\0" "\0" - /* _mesa_function_pool[8319]: FragmentLightModeliSGIX (dynamic) */ + /* _mesa_function_pool[8400]: FragmentLightModeliSGIX (dynamic) */ "ii\0" "glFragmentLightModeliSGIX\0" "\0" - /* _mesa_function_pool[8349]: RasterPos2dv (offset 63) */ + /* _mesa_function_pool[8430]: RasterPos2dv (offset 63) */ "p\0" "glRasterPos2dv\0" "\0" - /* _mesa_function_pool[8367]: ConvolutionParameterfv (offset 351) */ + /* _mesa_function_pool[8448]: ConvolutionParameterfv (offset 351) */ "iip\0" "glConvolutionParameterfv\0" "glConvolutionParameterfvEXT\0" "\0" - /* _mesa_function_pool[8425]: TbufferMask3DFX (dynamic) */ + /* _mesa_function_pool[8506]: TbufferMask3DFX (dynamic) */ "i\0" "glTbufferMask3DFX\0" "\0" - /* _mesa_function_pool[8446]: GetTexGendv (offset 278) */ + /* _mesa_function_pool[8527]: GetTexGendv (offset 278) */ "iip\0" "glGetTexGendv\0" "\0" - /* _mesa_function_pool[8465]: GetVertexAttribfvNV (will be remapped) */ + /* _mesa_function_pool[8546]: GetVertexAttribfvNV (will be remapped) */ "iip\0" "glGetVertexAttribfvNV\0" "\0" - /* _mesa_function_pool[8492]: BeginTransformFeedbackEXT (will be remapped) */ + /* _mesa_function_pool[8573]: BeginTransformFeedbackEXT (will be remapped) */ "i\0" "glBeginTransformFeedbackEXT\0" "glBeginTransformFeedback\0" "\0" - /* _mesa_function_pool[8548]: LoadProgramNV (will be remapped) */ + /* _mesa_function_pool[8629]: LoadProgramNV (will be remapped) */ "iiip\0" "glLoadProgramNV\0" "\0" - /* _mesa_function_pool[8570]: WaitSync (will be remapped) */ + /* _mesa_function_pool[8651]: WaitSync (will be remapped) */ "iii\0" "glWaitSync\0" "\0" - /* _mesa_function_pool[8586]: EndList (offset 1) */ + /* _mesa_function_pool[8667]: EndList (offset 1) */ "\0" "glEndList\0" "\0" - /* _mesa_function_pool[8598]: VertexAttrib4fvNV (will be remapped) */ + /* _mesa_function_pool[8679]: VertexAttrib4fvNV (will be remapped) */ "ip\0" "glVertexAttrib4fvNV\0" "\0" - /* _mesa_function_pool[8622]: GetAttachedObjectsARB (will be remapped) */ + /* _mesa_function_pool[8703]: GetAttachedObjectsARB (will be remapped) */ "iipp\0" "glGetAttachedObjectsARB\0" "\0" - /* _mesa_function_pool[8652]: Uniform3fvARB (will be remapped) */ + /* _mesa_function_pool[8733]: Uniform3fvARB (will be remapped) */ "iip\0" "glUniform3fv\0" "glUniform3fvARB\0" "\0" - /* _mesa_function_pool[8686]: EvalCoord1fv (offset 231) */ + /* _mesa_function_pool[8767]: EvalCoord1fv (offset 231) */ "p\0" "glEvalCoord1fv\0" "\0" - /* _mesa_function_pool[8704]: DrawRangeElements (offset 338) */ + /* _mesa_function_pool[8785]: DrawRangeElements (offset 338) */ "iiiiip\0" "glDrawRangeElements\0" "glDrawRangeElementsEXT\0" "\0" - /* _mesa_function_pool[8755]: EvalMesh2 (offset 238) */ + /* _mesa_function_pool[8836]: EvalMesh2 (offset 238) */ "iiiii\0" "glEvalMesh2\0" "\0" - /* _mesa_function_pool[8774]: Vertex4fv (offset 145) */ + /* _mesa_function_pool[8855]: Vertex4fv (offset 145) */ "p\0" "glVertex4fv\0" "\0" - /* _mesa_function_pool[8789]: GenTransformFeedbacks (will be remapped) */ + /* _mesa_function_pool[8870]: GenTransformFeedbacks (will be remapped) */ "ip\0" "glGenTransformFeedbacks\0" "\0" - /* _mesa_function_pool[8817]: SpriteParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[8898]: SpriteParameterfvSGIX (dynamic) */ "ip\0" "glSpriteParameterfvSGIX\0" "\0" - /* _mesa_function_pool[8845]: CheckFramebufferStatusEXT (will be remapped) */ + /* _mesa_function_pool[8926]: CheckFramebufferStatusEXT (will be remapped) */ "i\0" "glCheckFramebufferStatus\0" "glCheckFramebufferStatusEXT\0" "\0" - /* _mesa_function_pool[8901]: GlobalAlphaFactoruiSUN (dynamic) */ + /* _mesa_function_pool[8982]: GlobalAlphaFactoruiSUN (dynamic) */ "i\0" "glGlobalAlphaFactoruiSUN\0" "\0" - /* _mesa_function_pool[8929]: GetHandleARB (will be remapped) */ + /* _mesa_function_pool[9010]: GetHandleARB (will be remapped) */ "i\0" "glGetHandleARB\0" "\0" - /* _mesa_function_pool[8947]: GetVertexAttribivARB (will be remapped) */ + /* _mesa_function_pool[9028]: GetVertexAttribivARB (will be remapped) */ "iip\0" "glGetVertexAttribiv\0" "glGetVertexAttribivARB\0" "\0" - /* _mesa_function_pool[8995]: GetCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[9076]: GetCombinerInputParameterfvNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[9034]: CreateProgram (will be remapped) */ + /* _mesa_function_pool[9115]: GetTexParameterIivEXT (will be remapped) */ + "iip\0" + "glGetTexParameterIivEXT\0" + "\0" + /* _mesa_function_pool[9144]: CreateProgram (will be remapped) */ "\0" "glCreateProgram\0" "\0" - /* _mesa_function_pool[9052]: LoadTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[9162]: LoadTransposeMatrixdARB (will be remapped) */ "p\0" "glLoadTransposeMatrixd\0" "glLoadTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[9104]: GetMinmax (offset 364) */ + /* _mesa_function_pool[9214]: GetMinmax (offset 364) */ "iiiip\0" "glGetMinmax\0" "glGetMinmaxEXT\0" "\0" - /* _mesa_function_pool[9138]: StencilFuncSeparate (will be remapped) */ + /* _mesa_function_pool[9248]: StencilFuncSeparate (will be remapped) */ "iiii\0" "glStencilFuncSeparate\0" "\0" - /* _mesa_function_pool[9166]: SecondaryColor3sEXT (will be remapped) */ + /* _mesa_function_pool[9276]: SecondaryColor3sEXT (will be remapped) */ "iii\0" "glSecondaryColor3s\0" "glSecondaryColor3sEXT\0" "\0" - /* _mesa_function_pool[9212]: Color3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[9322]: Color3fVertex3fvSUN (dynamic) */ "pp\0" "glColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[9238]: Normal3fv (offset 57) */ + /* _mesa_function_pool[9348]: Normal3fv (offset 57) */ "p\0" "glNormal3fv\0" "\0" - /* _mesa_function_pool[9253]: GlobalAlphaFactorbSUN (dynamic) */ + /* _mesa_function_pool[9363]: GlobalAlphaFactorbSUN (dynamic) */ "i\0" "glGlobalAlphaFactorbSUN\0" "\0" - /* _mesa_function_pool[9280]: Color3us (offset 23) */ + /* _mesa_function_pool[9390]: Color3us (offset 23) */ "iii\0" "glColor3us\0" "\0" - /* _mesa_function_pool[9296]: ImageTransformParameterfvHP (dynamic) */ + /* _mesa_function_pool[9406]: ImageTransformParameterfvHP (dynamic) */ "iip\0" "glImageTransformParameterfvHP\0" "\0" - /* _mesa_function_pool[9331]: VertexAttrib4ivARB (will be remapped) */ + /* _mesa_function_pool[9441]: VertexAttrib4ivARB (will be remapped) */ "ip\0" "glVertexAttrib4iv\0" "glVertexAttrib4ivARB\0" "\0" - /* _mesa_function_pool[9374]: End (offset 43) */ + /* _mesa_function_pool[9484]: End (offset 43) */ "\0" "glEnd\0" "\0" - /* _mesa_function_pool[9382]: VertexAttrib3fNV (will be remapped) */ + /* _mesa_function_pool[9492]: VertexAttrib3fNV (will be remapped) */ "ifff\0" "glVertexAttrib3fNV\0" "\0" - /* _mesa_function_pool[9407]: VertexAttribs2dvNV (will be remapped) */ + /* _mesa_function_pool[9517]: VertexAttribs2dvNV (will be remapped) */ "iip\0" "glVertexAttribs2dvNV\0" "\0" - /* _mesa_function_pool[9433]: GetQueryObjectui64vEXT (will be remapped) */ + /* _mesa_function_pool[9543]: GetQueryObjectui64vEXT (will be remapped) */ "iip\0" "glGetQueryObjectui64vEXT\0" "\0" - /* _mesa_function_pool[9463]: MultiTexCoord3fvARB (offset 395) */ + /* _mesa_function_pool[9573]: MultiTexCoord3fvARB (offset 395) */ "ip\0" "glMultiTexCoord3fv\0" "glMultiTexCoord3fvARB\0" "\0" - /* _mesa_function_pool[9508]: SecondaryColor3dEXT (will be remapped) */ + /* _mesa_function_pool[9618]: SecondaryColor3dEXT (will be remapped) */ "ddd\0" "glSecondaryColor3d\0" "glSecondaryColor3dEXT\0" "\0" - /* _mesa_function_pool[9554]: Color3ub (offset 19) */ + /* _mesa_function_pool[9664]: Color3ub (offset 19) */ "iii\0" "glColor3ub\0" "\0" - /* _mesa_function_pool[9570]: GetProgramParameterfvNV (will be remapped) */ + /* _mesa_function_pool[9680]: GetProgramParameterfvNV (will be remapped) */ "iiip\0" "glGetProgramParameterfvNV\0" "\0" - /* _mesa_function_pool[9602]: TangentPointerEXT (dynamic) */ + /* _mesa_function_pool[9712]: TangentPointerEXT (dynamic) */ "iip\0" "glTangentPointerEXT\0" "\0" - /* _mesa_function_pool[9627]: Color4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[9737]: Color4fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[9662]: GetInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[9772]: GetInstrumentsSGIX (dynamic) */ "\0" "glGetInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[9685]: Color3ui (offset 21) */ + /* _mesa_function_pool[9795]: Color3ui (offset 21) */ "iii\0" "glColor3ui\0" "\0" - /* _mesa_function_pool[9701]: EvalMapsNV (dynamic) */ + /* _mesa_function_pool[9811]: EvalMapsNV (dynamic) */ "ii\0" "glEvalMapsNV\0" "\0" - /* _mesa_function_pool[9718]: TexSubImage2D (offset 333) */ + /* _mesa_function_pool[9828]: TexSubImage2D (offset 333) */ "iiiiiiiip\0" "glTexSubImage2D\0" "glTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[9764]: FragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[9874]: FragmentLightivSGIX (dynamic) */ "iip\0" "glFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[9791]: GetTexParameterPointervAPPLE (will be remapped) */ + /* _mesa_function_pool[9901]: GetTexParameterPointervAPPLE (will be remapped) */ "iip\0" "glGetTexParameterPointervAPPLE\0" "\0" - /* _mesa_function_pool[9827]: TexGenfv (offset 191) */ + /* _mesa_function_pool[9937]: TexGenfv (offset 191) */ "iip\0" "glTexGenfv\0" "\0" - /* _mesa_function_pool[9843]: GetTransformFeedbackVaryingEXT (will be remapped) */ + /* _mesa_function_pool[9953]: GetTransformFeedbackVaryingEXT (will be remapped) */ "iiipppp\0" "glGetTransformFeedbackVaryingEXT\0" "glGetTransformFeedbackVarying\0" "\0" - /* _mesa_function_pool[9915]: VertexAttrib4bvARB (will be remapped) */ + /* _mesa_function_pool[10025]: VertexAttrib4bvARB (will be remapped) */ "ip\0" "glVertexAttrib4bv\0" "glVertexAttrib4bvARB\0" "\0" - /* _mesa_function_pool[9958]: AlphaFragmentOp2ATI (will be remapped) */ + /* _mesa_function_pool[10068]: AlphaFragmentOp2ATI (will be remapped) */ "iiiiiiiii\0" "glAlphaFragmentOp2ATI\0" "\0" - /* _mesa_function_pool[9991]: GetIntegerIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[10101]: GetIntegerIndexedvEXT (will be remapped) */ "iip\0" "glGetIntegerIndexedvEXT\0" "\0" - /* _mesa_function_pool[10020]: MultiTexCoord4sARB (offset 406) */ + /* _mesa_function_pool[10130]: MultiTexCoord4sARB (offset 406) */ "iiiii\0" "glMultiTexCoord4s\0" "glMultiTexCoord4sARB\0" "\0" - /* _mesa_function_pool[10066]: GetFragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[10176]: GetFragmentMaterialivSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[10099]: WindowPos4dMESA (will be remapped) */ + /* _mesa_function_pool[10209]: WindowPos4dMESA (will be remapped) */ "dddd\0" "glWindowPos4dMESA\0" "\0" - /* _mesa_function_pool[10123]: WeightPointerARB (dynamic) */ + /* _mesa_function_pool[10233]: WeightPointerARB (dynamic) */ "iiip\0" "glWeightPointerARB\0" "\0" - /* _mesa_function_pool[10148]: WindowPos2dMESA (will be remapped) */ + /* _mesa_function_pool[10258]: WindowPos2dMESA (will be remapped) */ "dd\0" "glWindowPos2d\0" "glWindowPos2dARB\0" "glWindowPos2dMESA\0" "\0" - /* _mesa_function_pool[10201]: FramebufferTexture3DEXT (will be remapped) */ + /* _mesa_function_pool[10311]: FramebufferTexture3DEXT (will be remapped) */ "iiiiii\0" "glFramebufferTexture3D\0" "glFramebufferTexture3DEXT\0" "\0" - /* _mesa_function_pool[10258]: BlendEquation (offset 337) */ + /* _mesa_function_pool[10368]: BlendEquation (offset 337) */ "i\0" "glBlendEquation\0" "glBlendEquationEXT\0" "\0" - /* _mesa_function_pool[10296]: VertexAttrib3dNV (will be remapped) */ + /* _mesa_function_pool[10406]: VertexAttrib3dNV (will be remapped) */ "iddd\0" "glVertexAttrib3dNV\0" "\0" - /* _mesa_function_pool[10321]: VertexAttrib3dARB (will be remapped) */ + /* _mesa_function_pool[10431]: VertexAttrib3dARB (will be remapped) */ "iddd\0" "glVertexAttrib3d\0" "glVertexAttrib3dARB\0" "\0" - /* _mesa_function_pool[10364]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[10474]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "ppppp\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[10428]: VertexAttrib4fARB (will be remapped) */ + /* _mesa_function_pool[10538]: VertexAttrib4fARB (will be remapped) */ "iffff\0" "glVertexAttrib4f\0" "glVertexAttrib4fARB\0" "\0" - /* _mesa_function_pool[10472]: GetError (offset 261) */ + /* _mesa_function_pool[10582]: GetError (offset 261) */ "\0" "glGetError\0" "\0" - /* _mesa_function_pool[10485]: IndexFuncEXT (dynamic) */ + /* _mesa_function_pool[10595]: IndexFuncEXT (dynamic) */ "if\0" "glIndexFuncEXT\0" "\0" - /* _mesa_function_pool[10504]: TexCoord3dv (offset 111) */ + /* _mesa_function_pool[10614]: TexCoord3dv (offset 111) */ "p\0" "glTexCoord3dv\0" "\0" - /* _mesa_function_pool[10521]: Indexdv (offset 45) */ + /* _mesa_function_pool[10631]: Indexdv (offset 45) */ "p\0" "glIndexdv\0" "\0" - /* _mesa_function_pool[10534]: FramebufferTexture2DEXT (will be remapped) */ + /* _mesa_function_pool[10644]: FramebufferTexture2DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture2D\0" "glFramebufferTexture2DEXT\0" "\0" - /* _mesa_function_pool[10590]: Normal3s (offset 60) */ + /* _mesa_function_pool[10700]: Normal3s (offset 60) */ "iii\0" "glNormal3s\0" "\0" - /* _mesa_function_pool[10606]: GetObjectParameterivAPPLE (will be remapped) */ + /* _mesa_function_pool[10716]: GetObjectParameterivAPPLE (will be remapped) */ "iiip\0" "glGetObjectParameterivAPPLE\0" "\0" - /* _mesa_function_pool[10640]: PushName (offset 201) */ + /* _mesa_function_pool[10750]: PushName (offset 201) */ "i\0" "glPushName\0" "\0" - /* _mesa_function_pool[10654]: MultiTexCoord2dvARB (offset 385) */ + /* _mesa_function_pool[10764]: MultiTexCoord2dvARB (offset 385) */ "ip\0" "glMultiTexCoord2dv\0" "glMultiTexCoord2dvARB\0" "\0" - /* _mesa_function_pool[10699]: CullParameterfvEXT (dynamic) */ + /* _mesa_function_pool[10809]: CullParameterfvEXT (dynamic) */ "ip\0" "glCullParameterfvEXT\0" "\0" - /* _mesa_function_pool[10724]: Normal3i (offset 58) */ + /* _mesa_function_pool[10834]: Normal3i (offset 58) */ "iii\0" "glNormal3i\0" "\0" - /* _mesa_function_pool[10740]: ProgramNamedParameter4fvNV (will be remapped) */ + /* _mesa_function_pool[10850]: ProgramNamedParameter4fvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4fvNV\0" "\0" - /* _mesa_function_pool[10775]: SecondaryColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[10885]: SecondaryColorPointerEXT (will be remapped) */ "iiip\0" "glSecondaryColorPointer\0" "glSecondaryColorPointerEXT\0" "\0" - /* _mesa_function_pool[10832]: VertexAttrib4fvARB (will be remapped) */ + /* _mesa_function_pool[10942]: VertexAttrib4fvARB (will be remapped) */ "ip\0" "glVertexAttrib4fv\0" "glVertexAttrib4fvARB\0" "\0" - /* _mesa_function_pool[10875]: ColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[10985]: ColorPointerListIBM (dynamic) */ "iiipi\0" "glColorPointerListIBM\0" "\0" - /* _mesa_function_pool[10904]: GetActiveUniformARB (will be remapped) */ + /* _mesa_function_pool[11014]: GetActiveUniformARB (will be remapped) */ "iiipppp\0" "glGetActiveUniform\0" "glGetActiveUniformARB\0" "\0" - /* _mesa_function_pool[10954]: ImageTransformParameteriHP (dynamic) */ + /* _mesa_function_pool[11064]: ImageTransformParameteriHP (dynamic) */ "iii\0" "glImageTransformParameteriHP\0" "\0" - /* _mesa_function_pool[10988]: Normal3b (offset 52) */ + /* _mesa_function_pool[11098]: Normal3b (offset 52) */ "iii\0" "glNormal3b\0" "\0" - /* _mesa_function_pool[11004]: Normal3d (offset 54) */ + /* _mesa_function_pool[11114]: Normal3d (offset 54) */ "ddd\0" "glNormal3d\0" "\0" - /* _mesa_function_pool[11020]: Normal3f (offset 56) */ + /* _mesa_function_pool[11130]: Normal3f (offset 56) */ "fff\0" "glNormal3f\0" "\0" - /* _mesa_function_pool[11036]: MultiTexCoord1svARB (offset 383) */ + /* _mesa_function_pool[11146]: MultiTexCoord1svARB (offset 383) */ "ip\0" "glMultiTexCoord1sv\0" "glMultiTexCoord1svARB\0" "\0" - /* _mesa_function_pool[11081]: Indexi (offset 48) */ + /* _mesa_function_pool[11191]: Indexi (offset 48) */ "i\0" "glIndexi\0" "\0" - /* _mesa_function_pool[11093]: EGLImageTargetTexture2DOES (will be remapped) */ + /* _mesa_function_pool[11203]: EGLImageTargetTexture2DOES (will be remapped) */ "ip\0" "glEGLImageTargetTexture2DOES\0" "\0" - /* _mesa_function_pool[11126]: EndQueryARB (will be remapped) */ + /* _mesa_function_pool[11236]: EndQueryARB (will be remapped) */ "i\0" "glEndQuery\0" "glEndQueryARB\0" "\0" - /* _mesa_function_pool[11154]: DeleteFencesNV (will be remapped) */ + /* _mesa_function_pool[11264]: DeleteFencesNV (will be remapped) */ "ip\0" "glDeleteFencesNV\0" "\0" - /* _mesa_function_pool[11175]: DeformationMap3dSGIX (dynamic) */ + /* _mesa_function_pool[11285]: DeformationMap3dSGIX (dynamic) */ "iddiiddiiddiip\0" "glDeformationMap3dSGIX\0" "\0" - /* _mesa_function_pool[11214]: BindBufferRangeEXT (will be remapped) */ + /* _mesa_function_pool[11324]: BindBufferRangeEXT (will be remapped) */ "iiiii\0" "glBindBufferRangeEXT\0" "glBindBufferRange\0" "\0" - /* _mesa_function_pool[11260]: DepthMask (offset 211) */ + /* _mesa_function_pool[11370]: DepthMask (offset 211) */ "i\0" "glDepthMask\0" "\0" - /* _mesa_function_pool[11275]: IsShader (will be remapped) */ + /* _mesa_function_pool[11385]: IsShader (will be remapped) */ "i\0" "glIsShader\0" "\0" - /* _mesa_function_pool[11289]: Indexf (offset 46) */ + /* _mesa_function_pool[11399]: Indexf (offset 46) */ "f\0" "glIndexf\0" "\0" - /* _mesa_function_pool[11301]: GetImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[11411]: GetImageTransformParameterivHP (dynamic) */ "iip\0" "glGetImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[11339]: Indexd (offset 44) */ + /* _mesa_function_pool[11449]: Indexd (offset 44) */ "d\0" "glIndexd\0" "\0" - /* _mesa_function_pool[11351]: GetMaterialiv (offset 270) */ + /* _mesa_function_pool[11461]: GetMaterialiv (offset 270) */ "iip\0" "glGetMaterialiv\0" "\0" - /* _mesa_function_pool[11372]: StencilOp (offset 244) */ + /* _mesa_function_pool[11482]: StencilOp (offset 244) */ "iii\0" "glStencilOp\0" "\0" - /* _mesa_function_pool[11389]: WindowPos4ivMESA (will be remapped) */ + /* _mesa_function_pool[11499]: WindowPos4ivMESA (will be remapped) */ "p\0" "glWindowPos4ivMESA\0" "\0" - /* _mesa_function_pool[11411]: FramebufferTextureLayer (dynamic) */ + /* _mesa_function_pool[11521]: FramebufferTextureLayer (dynamic) */ "iiiii\0" "glFramebufferTextureLayerARB\0" "\0" - /* _mesa_function_pool[11447]: MultiTexCoord3svARB (offset 399) */ + /* _mesa_function_pool[11557]: MultiTexCoord3svARB (offset 399) */ "ip\0" "glMultiTexCoord3sv\0" "glMultiTexCoord3svARB\0" "\0" - /* _mesa_function_pool[11492]: TexEnvfv (offset 185) */ + /* _mesa_function_pool[11602]: TexEnvfv (offset 185) */ "iip\0" "glTexEnvfv\0" "\0" - /* _mesa_function_pool[11508]: MultiTexCoord4iARB (offset 404) */ + /* _mesa_function_pool[11618]: MultiTexCoord4iARB (offset 404) */ "iiiii\0" "glMultiTexCoord4i\0" "glMultiTexCoord4iARB\0" "\0" - /* _mesa_function_pool[11554]: Indexs (offset 50) */ + /* _mesa_function_pool[11664]: Indexs (offset 50) */ "i\0" "glIndexs\0" "\0" - /* _mesa_function_pool[11566]: Binormal3ivEXT (dynamic) */ + /* _mesa_function_pool[11676]: Binormal3ivEXT (dynamic) */ "p\0" "glBinormal3ivEXT\0" "\0" - /* _mesa_function_pool[11586]: ResizeBuffersMESA (will be remapped) */ + /* _mesa_function_pool[11696]: ResizeBuffersMESA (will be remapped) */ "\0" "glResizeBuffersMESA\0" "\0" - /* _mesa_function_pool[11608]: GetUniformivARB (will be remapped) */ + /* _mesa_function_pool[11718]: GetUniformivARB (will be remapped) */ "iip\0" "glGetUniformiv\0" "glGetUniformivARB\0" "\0" - /* _mesa_function_pool[11646]: PixelTexGenParameteriSGIS (will be remapped) */ + /* _mesa_function_pool[11756]: PixelTexGenParameteriSGIS (will be remapped) */ "ii\0" "glPixelTexGenParameteriSGIS\0" "\0" - /* _mesa_function_pool[11678]: VertexPointervINTEL (dynamic) */ + /* _mesa_function_pool[11788]: VertexPointervINTEL (dynamic) */ "iip\0" "glVertexPointervINTEL\0" "\0" - /* _mesa_function_pool[11705]: Vertex2i (offset 130) */ + /* _mesa_function_pool[11815]: Vertex2i (offset 130) */ "ii\0" "glVertex2i\0" "\0" - /* _mesa_function_pool[11720]: LoadMatrixf (offset 291) */ + /* _mesa_function_pool[11830]: LoadMatrixf (offset 291) */ "p\0" "glLoadMatrixf\0" "\0" - /* _mesa_function_pool[11737]: Vertex2f (offset 128) */ + /* _mesa_function_pool[11847]: Vertex2f (offset 128) */ "ff\0" "glVertex2f\0" "\0" - /* _mesa_function_pool[11752]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[11862]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[11805]: Color4bv (offset 26) */ + /* _mesa_function_pool[11915]: Color4bv (offset 26) */ "p\0" "glColor4bv\0" "\0" - /* _mesa_function_pool[11819]: VertexPointer (offset 321) */ + /* _mesa_function_pool[11929]: VertexPointer (offset 321) */ "iiip\0" "glVertexPointer\0" "\0" - /* _mesa_function_pool[11841]: SecondaryColor3uiEXT (will be remapped) */ + /* _mesa_function_pool[11951]: SecondaryColor3uiEXT (will be remapped) */ "iii\0" "glSecondaryColor3ui\0" "glSecondaryColor3uiEXT\0" "\0" - /* _mesa_function_pool[11889]: StartInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[11999]: StartInstrumentsSGIX (dynamic) */ "\0" "glStartInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[11914]: SecondaryColor3usvEXT (will be remapped) */ + /* _mesa_function_pool[12024]: SecondaryColor3usvEXT (will be remapped) */ "p\0" "glSecondaryColor3usv\0" "glSecondaryColor3usvEXT\0" "\0" - /* _mesa_function_pool[11962]: VertexAttrib2fvNV (will be remapped) */ + /* _mesa_function_pool[12072]: VertexAttrib2fvNV (will be remapped) */ "ip\0" "glVertexAttrib2fvNV\0" "\0" - /* _mesa_function_pool[11986]: ProgramLocalParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[12096]: ProgramLocalParameter4dvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4dvARB\0" "\0" - /* _mesa_function_pool[12021]: DeleteLists (offset 4) */ + /* _mesa_function_pool[12131]: DeleteLists (offset 4) */ "ii\0" "glDeleteLists\0" "\0" - /* _mesa_function_pool[12039]: LogicOp (offset 242) */ + /* _mesa_function_pool[12149]: LogicOp (offset 242) */ "i\0" "glLogicOp\0" "\0" - /* _mesa_function_pool[12052]: MatrixIndexuivARB (dynamic) */ + /* _mesa_function_pool[12162]: MatrixIndexuivARB (dynamic) */ "ip\0" "glMatrixIndexuivARB\0" "\0" - /* _mesa_function_pool[12076]: Vertex2s (offset 132) */ + /* _mesa_function_pool[12186]: Vertex2s (offset 132) */ "ii\0" "glVertex2s\0" "\0" - /* _mesa_function_pool[12091]: RenderbufferStorageMultisample (will be remapped) */ + /* _mesa_function_pool[12201]: RenderbufferStorageMultisample (will be remapped) */ "iiiii\0" "glRenderbufferStorageMultisample\0" "glRenderbufferStorageMultisampleEXT\0" "\0" - /* _mesa_function_pool[12167]: TexCoord4fv (offset 121) */ + /* _mesa_function_pool[12277]: TexCoord4fv (offset 121) */ "p\0" "glTexCoord4fv\0" "\0" - /* _mesa_function_pool[12184]: Tangent3sEXT (dynamic) */ + /* _mesa_function_pool[12294]: Tangent3sEXT (dynamic) */ "iii\0" "glTangent3sEXT\0" "\0" - /* _mesa_function_pool[12204]: GlobalAlphaFactorfSUN (dynamic) */ + /* _mesa_function_pool[12314]: GlobalAlphaFactorfSUN (dynamic) */ "f\0" "glGlobalAlphaFactorfSUN\0" "\0" - /* _mesa_function_pool[12231]: MultiTexCoord3iARB (offset 396) */ + /* _mesa_function_pool[12341]: MultiTexCoord3iARB (offset 396) */ "iiii\0" "glMultiTexCoord3i\0" "glMultiTexCoord3iARB\0" "\0" - /* _mesa_function_pool[12276]: IsProgram (will be remapped) */ + /* _mesa_function_pool[12386]: IsProgram (will be remapped) */ "i\0" "glIsProgram\0" "\0" - /* _mesa_function_pool[12291]: TexCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[12401]: TexCoordPointerListIBM (dynamic) */ "iiipi\0" "glTexCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[12323]: GlobalAlphaFactorusSUN (dynamic) */ + /* _mesa_function_pool[12433]: GlobalAlphaFactorusSUN (dynamic) */ "i\0" "glGlobalAlphaFactorusSUN\0" "\0" - /* _mesa_function_pool[12351]: VertexAttrib2dvNV (will be remapped) */ + /* _mesa_function_pool[12461]: VertexAttrib2dvNV (will be remapped) */ "ip\0" "glVertexAttrib2dvNV\0" "\0" - /* _mesa_function_pool[12375]: FramebufferRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[12485]: FramebufferRenderbufferEXT (will be remapped) */ "iiii\0" "glFramebufferRenderbuffer\0" "glFramebufferRenderbufferEXT\0" "\0" - /* _mesa_function_pool[12436]: VertexAttrib1dvNV (will be remapped) */ + /* _mesa_function_pool[12546]: VertexAttrib1dvNV (will be remapped) */ "ip\0" "glVertexAttrib1dvNV\0" "\0" - /* _mesa_function_pool[12460]: GenTextures (offset 328) */ + /* _mesa_function_pool[12570]: GenTextures (offset 328) */ "ip\0" "glGenTextures\0" "glGenTexturesEXT\0" "\0" - /* _mesa_function_pool[12495]: FramebufferTextureARB (will be remapped) */ + /* _mesa_function_pool[12605]: FramebufferTextureARB (will be remapped) */ "iiii\0" "glFramebufferTextureARB\0" "\0" - /* _mesa_function_pool[12525]: SetFenceNV (will be remapped) */ + /* _mesa_function_pool[12635]: SetFenceNV (will be remapped) */ "ii\0" "glSetFenceNV\0" "\0" - /* _mesa_function_pool[12542]: FramebufferTexture1DEXT (will be remapped) */ + /* _mesa_function_pool[12652]: FramebufferTexture1DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture1D\0" "glFramebufferTexture1DEXT\0" "\0" - /* _mesa_function_pool[12598]: GetCombinerOutputParameterivNV (will be remapped) */ + /* _mesa_function_pool[12708]: GetCombinerOutputParameterivNV (will be remapped) */ "iiip\0" "glGetCombinerOutputParameterivNV\0" "\0" - /* _mesa_function_pool[12637]: PixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[12747]: PixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[12670]: TextureNormalEXT (dynamic) */ + /* _mesa_function_pool[12780]: TextureNormalEXT (dynamic) */ "i\0" "glTextureNormalEXT\0" "\0" - /* _mesa_function_pool[12692]: IndexPointerListIBM (dynamic) */ + /* _mesa_function_pool[12802]: IndexPointerListIBM (dynamic) */ "iipi\0" "glIndexPointerListIBM\0" "\0" - /* _mesa_function_pool[12720]: WeightfvARB (dynamic) */ + /* _mesa_function_pool[12830]: WeightfvARB (dynamic) */ "ip\0" "glWeightfvARB\0" "\0" - /* _mesa_function_pool[12738]: RasterPos2sv (offset 69) */ + /* _mesa_function_pool[12848]: RasterPos2sv (offset 69) */ "p\0" "glRasterPos2sv\0" "\0" - /* _mesa_function_pool[12756]: Color4ubv (offset 36) */ + /* _mesa_function_pool[12866]: Color4ubv (offset 36) */ "p\0" "glColor4ubv\0" "\0" - /* _mesa_function_pool[12771]: DrawBuffer (offset 202) */ + /* _mesa_function_pool[12881]: DrawBuffer (offset 202) */ "i\0" "glDrawBuffer\0" "\0" - /* _mesa_function_pool[12787]: TexCoord2fv (offset 105) */ + /* _mesa_function_pool[12897]: TexCoord2fv (offset 105) */ "p\0" "glTexCoord2fv\0" "\0" - /* _mesa_function_pool[12804]: WindowPos4fMESA (will be remapped) */ + /* _mesa_function_pool[12914]: WindowPos4fMESA (will be remapped) */ "ffff\0" "glWindowPos4fMESA\0" "\0" - /* _mesa_function_pool[12828]: TexCoord1sv (offset 101) */ + /* _mesa_function_pool[12938]: TexCoord1sv (offset 101) */ "p\0" "glTexCoord1sv\0" "\0" - /* _mesa_function_pool[12845]: WindowPos3dvMESA (will be remapped) */ + /* _mesa_function_pool[12955]: WindowPos3dvMESA (will be remapped) */ "p\0" "glWindowPos3dv\0" "glWindowPos3dvARB\0" "glWindowPos3dvMESA\0" "\0" - /* _mesa_function_pool[12900]: DepthFunc (offset 245) */ + /* _mesa_function_pool[13010]: DepthFunc (offset 245) */ "i\0" "glDepthFunc\0" "\0" - /* _mesa_function_pool[12915]: PixelMapusv (offset 253) */ + /* _mesa_function_pool[13025]: PixelMapusv (offset 253) */ "iip\0" "glPixelMapusv\0" "\0" - /* _mesa_function_pool[12934]: GetQueryObjecti64vEXT (will be remapped) */ + /* _mesa_function_pool[13044]: GetQueryObjecti64vEXT (will be remapped) */ "iip\0" "glGetQueryObjecti64vEXT\0" "\0" - /* _mesa_function_pool[12963]: MultiTexCoord1dARB (offset 376) */ + /* _mesa_function_pool[13073]: MultiTexCoord1dARB (offset 376) */ "id\0" "glMultiTexCoord1d\0" "glMultiTexCoord1dARB\0" "\0" - /* _mesa_function_pool[13006]: PointParameterivNV (will be remapped) */ + /* _mesa_function_pool[13116]: PointParameterivNV (will be remapped) */ "ip\0" "glPointParameteriv\0" "glPointParameterivNV\0" "\0" - /* _mesa_function_pool[13050]: BlendFunc (offset 241) */ + /* _mesa_function_pool[13160]: BlendFunc (offset 241) */ "ii\0" "glBlendFunc\0" "\0" - /* _mesa_function_pool[13066]: EndTransformFeedbackEXT (will be remapped) */ + /* _mesa_function_pool[13176]: EndTransformFeedbackEXT (will be remapped) */ "\0" "glEndTransformFeedbackEXT\0" "glEndTransformFeedback\0" "\0" - /* _mesa_function_pool[13117]: Uniform2fvARB (will be remapped) */ + /* _mesa_function_pool[13227]: Uniform2fvARB (will be remapped) */ "iip\0" "glUniform2fv\0" "glUniform2fvARB\0" "\0" - /* _mesa_function_pool[13151]: BufferParameteriAPPLE (will be remapped) */ + /* _mesa_function_pool[13261]: BufferParameteriAPPLE (will be remapped) */ "iii\0" "glBufferParameteriAPPLE\0" "\0" - /* _mesa_function_pool[13180]: MultiTexCoord3dvARB (offset 393) */ + /* _mesa_function_pool[13290]: MultiTexCoord3dvARB (offset 393) */ "ip\0" "glMultiTexCoord3dv\0" "glMultiTexCoord3dvARB\0" "\0" - /* _mesa_function_pool[13225]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[13335]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[13281]: DeleteObjectARB (will be remapped) */ + /* _mesa_function_pool[13391]: DeleteObjectARB (will be remapped) */ "i\0" "glDeleteObjectARB\0" "\0" - /* _mesa_function_pool[13302]: MatrixIndexPointerARB (dynamic) */ + /* _mesa_function_pool[13412]: MatrixIndexPointerARB (dynamic) */ "iiip\0" "glMatrixIndexPointerARB\0" "\0" - /* _mesa_function_pool[13332]: ProgramNamedParameter4dvNV (will be remapped) */ + /* _mesa_function_pool[13442]: ProgramNamedParameter4dvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4dvNV\0" "\0" - /* _mesa_function_pool[13367]: Tangent3fvEXT (dynamic) */ + /* _mesa_function_pool[13477]: Tangent3fvEXT (dynamic) */ "p\0" "glTangent3fvEXT\0" "\0" - /* _mesa_function_pool[13386]: Flush (offset 217) */ + /* _mesa_function_pool[13496]: Flush (offset 217) */ "\0" "glFlush\0" "\0" - /* _mesa_function_pool[13396]: Color4uiv (offset 38) */ + /* _mesa_function_pool[13506]: Color4uiv (offset 38) */ "p\0" "glColor4uiv\0" "\0" - /* _mesa_function_pool[13411]: GenVertexArrays (will be remapped) */ + /* _mesa_function_pool[13521]: GenVertexArrays (will be remapped) */ "ip\0" "glGenVertexArrays\0" "\0" - /* _mesa_function_pool[13433]: RasterPos3sv (offset 77) */ + /* _mesa_function_pool[13543]: RasterPos3sv (offset 77) */ "p\0" "glRasterPos3sv\0" "\0" - /* _mesa_function_pool[13451]: BindFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[13561]: BindFramebufferEXT (will be remapped) */ "ii\0" "glBindFramebuffer\0" "glBindFramebufferEXT\0" "\0" - /* _mesa_function_pool[13494]: ReferencePlaneSGIX (dynamic) */ + /* _mesa_function_pool[13604]: ReferencePlaneSGIX (dynamic) */ "p\0" "glReferencePlaneSGIX\0" "\0" - /* _mesa_function_pool[13518]: PushAttrib (offset 219) */ + /* _mesa_function_pool[13628]: PushAttrib (offset 219) */ "i\0" "glPushAttrib\0" "\0" - /* _mesa_function_pool[13534]: RasterPos2i (offset 66) */ + /* _mesa_function_pool[13644]: RasterPos2i (offset 66) */ "ii\0" "glRasterPos2i\0" "\0" - /* _mesa_function_pool[13552]: ValidateProgramARB (will be remapped) */ + /* _mesa_function_pool[13662]: ValidateProgramARB (will be remapped) */ "i\0" "glValidateProgram\0" "glValidateProgramARB\0" "\0" - /* _mesa_function_pool[13594]: TexParameteriv (offset 181) */ + /* _mesa_function_pool[13704]: TexParameteriv (offset 181) */ "iip\0" "glTexParameteriv\0" "\0" - /* _mesa_function_pool[13616]: UnlockArraysEXT (will be remapped) */ + /* _mesa_function_pool[13726]: UnlockArraysEXT (will be remapped) */ "\0" "glUnlockArraysEXT\0" "\0" - /* _mesa_function_pool[13636]: TexCoord2fColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[13746]: TexCoord2fColor3fVertex3fSUN (dynamic) */ "ffffffff\0" "glTexCoord2fColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[13677]: WindowPos3fvMESA (will be remapped) */ + /* _mesa_function_pool[13787]: WindowPos3fvMESA (will be remapped) */ "p\0" "glWindowPos3fv\0" "glWindowPos3fvARB\0" "glWindowPos3fvMESA\0" "\0" - /* _mesa_function_pool[13732]: RasterPos2f (offset 64) */ + /* _mesa_function_pool[13842]: RasterPos2f (offset 64) */ "ff\0" "glRasterPos2f\0" "\0" - /* _mesa_function_pool[13750]: VertexAttrib1svNV (will be remapped) */ + /* _mesa_function_pool[13860]: VertexAttrib1svNV (will be remapped) */ "ip\0" "glVertexAttrib1svNV\0" "\0" - /* _mesa_function_pool[13774]: RasterPos2d (offset 62) */ + /* _mesa_function_pool[13884]: RasterPos2d (offset 62) */ "dd\0" "glRasterPos2d\0" "\0" - /* _mesa_function_pool[13792]: RasterPos3fv (offset 73) */ + /* _mesa_function_pool[13902]: RasterPos3fv (offset 73) */ "p\0" "glRasterPos3fv\0" "\0" - /* _mesa_function_pool[13810]: CopyTexSubImage3D (offset 373) */ + /* _mesa_function_pool[13920]: CopyTexSubImage3D (offset 373) */ "iiiiiiiii\0" "glCopyTexSubImage3D\0" "glCopyTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[13864]: VertexAttrib2dARB (will be remapped) */ + /* _mesa_function_pool[13974]: VertexAttrib2dARB (will be remapped) */ "idd\0" "glVertexAttrib2d\0" "glVertexAttrib2dARB\0" "\0" - /* _mesa_function_pool[13906]: Color4ub (offset 35) */ + /* _mesa_function_pool[14016]: Color4ub (offset 35) */ "iiii\0" "glColor4ub\0" "\0" - /* _mesa_function_pool[13923]: GetInteger64v (will be remapped) */ + /* _mesa_function_pool[14033]: GetInteger64v (will be remapped) */ "ip\0" "glGetInteger64v\0" "\0" - /* _mesa_function_pool[13943]: TextureColorMaskSGIS (dynamic) */ + /* _mesa_function_pool[14053]: TextureColorMaskSGIS (dynamic) */ "iiii\0" "glTextureColorMaskSGIS\0" "\0" - /* _mesa_function_pool[13972]: RasterPos2s (offset 68) */ + /* _mesa_function_pool[14082]: RasterPos2s (offset 68) */ "ii\0" "glRasterPos2s\0" "\0" - /* _mesa_function_pool[13990]: GetColorTable (offset 343) */ + /* _mesa_function_pool[14100]: GetColorTable (offset 343) */ "iiip\0" "glGetColorTable\0" "glGetColorTableSGI\0" "glGetColorTableEXT\0" "\0" - /* _mesa_function_pool[14050]: SelectBuffer (offset 195) */ + /* _mesa_function_pool[14160]: SelectBuffer (offset 195) */ "ip\0" "glSelectBuffer\0" "\0" - /* _mesa_function_pool[14069]: Indexiv (offset 49) */ + /* _mesa_function_pool[14179]: Indexiv (offset 49) */ "p\0" "glIndexiv\0" "\0" - /* _mesa_function_pool[14082]: TexCoord3i (offset 114) */ + /* _mesa_function_pool[14192]: TexCoord3i (offset 114) */ "iii\0" "glTexCoord3i\0" "\0" - /* _mesa_function_pool[14100]: CopyColorTable (offset 342) */ + /* _mesa_function_pool[14210]: CopyColorTable (offset 342) */ "iiiii\0" "glCopyColorTable\0" "glCopyColorTableSGI\0" "\0" - /* _mesa_function_pool[14144]: GetHistogramParameterfv (offset 362) */ + /* _mesa_function_pool[14254]: GetHistogramParameterfv (offset 362) */ "iip\0" "glGetHistogramParameterfv\0" "glGetHistogramParameterfvEXT\0" "\0" - /* _mesa_function_pool[14204]: Frustum (offset 289) */ + /* _mesa_function_pool[14314]: Frustum (offset 289) */ "dddddd\0" "glFrustum\0" "\0" - /* _mesa_function_pool[14222]: GetString (offset 275) */ + /* _mesa_function_pool[14332]: GetString (offset 275) */ "i\0" "glGetString\0" "\0" - /* _mesa_function_pool[14237]: ColorPointervINTEL (dynamic) */ + /* _mesa_function_pool[14347]: ColorPointervINTEL (dynamic) */ "iip\0" "glColorPointervINTEL\0" "\0" - /* _mesa_function_pool[14263]: TexEnvf (offset 184) */ + /* _mesa_function_pool[14373]: TexEnvf (offset 184) */ "iif\0" "glTexEnvf\0" "\0" - /* _mesa_function_pool[14278]: TexCoord3d (offset 110) */ + /* _mesa_function_pool[14388]: TexCoord3d (offset 110) */ "ddd\0" "glTexCoord3d\0" "\0" - /* _mesa_function_pool[14296]: AlphaFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[14406]: AlphaFragmentOp1ATI (will be remapped) */ "iiiiii\0" "glAlphaFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[14326]: TexCoord3f (offset 112) */ + /* _mesa_function_pool[14436]: TexCoord3f (offset 112) */ "fff\0" "glTexCoord3f\0" "\0" - /* _mesa_function_pool[14344]: MultiTexCoord3ivARB (offset 397) */ + /* _mesa_function_pool[14454]: MultiTexCoord3ivARB (offset 397) */ "ip\0" "glMultiTexCoord3iv\0" "glMultiTexCoord3ivARB\0" "\0" - /* _mesa_function_pool[14389]: MultiTexCoord2sARB (offset 390) */ + /* _mesa_function_pool[14499]: MultiTexCoord2sARB (offset 390) */ "iii\0" "glMultiTexCoord2s\0" "glMultiTexCoord2sARB\0" "\0" - /* _mesa_function_pool[14433]: VertexAttrib1dvARB (will be remapped) */ + /* _mesa_function_pool[14543]: VertexAttrib1dvARB (will be remapped) */ "ip\0" "glVertexAttrib1dv\0" "glVertexAttrib1dvARB\0" "\0" - /* _mesa_function_pool[14476]: DeleteTextures (offset 327) */ + /* _mesa_function_pool[14586]: DeleteTextures (offset 327) */ "ip\0" "glDeleteTextures\0" "glDeleteTexturesEXT\0" "\0" - /* _mesa_function_pool[14517]: TexCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[14627]: TexCoordPointerEXT (will be remapped) */ "iiiip\0" "glTexCoordPointerEXT\0" "\0" - /* _mesa_function_pool[14545]: TexSubImage4DSGIS (dynamic) */ + /* _mesa_function_pool[14655]: TexSubImage4DSGIS (dynamic) */ "iiiiiiiiiiiip\0" "glTexSubImage4DSGIS\0" "\0" - /* _mesa_function_pool[14580]: TexCoord3s (offset 116) */ + /* _mesa_function_pool[14690]: TexCoord3s (offset 116) */ "iii\0" "glTexCoord3s\0" "\0" - /* _mesa_function_pool[14598]: GetTexLevelParameteriv (offset 285) */ + /* _mesa_function_pool[14708]: GetTexLevelParameteriv (offset 285) */ "iiip\0" "glGetTexLevelParameteriv\0" "\0" - /* _mesa_function_pool[14629]: DrawArraysInstanced (will be remapped) */ + /* _mesa_function_pool[14739]: DrawArraysInstanced (will be remapped) */ "iiii\0" "glDrawArraysInstanced\0" "glDrawArraysInstancedARB\0" "glDrawArraysInstancedEXT\0" "\0" - /* _mesa_function_pool[14707]: CombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[14817]: CombinerStageParameterfvNV (dynamic) */ "iip\0" "glCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[14741]: StopInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[14851]: StopInstrumentsSGIX (dynamic) */ "i\0" "glStopInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[14766]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[14876]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ "fffffffffffffff\0" "glTexCoord4fColor4fNormal3fVertex4fSUN\0" "\0" - /* _mesa_function_pool[14822]: ClearAccum (offset 204) */ + /* _mesa_function_pool[14932]: ClearAccum (offset 204) */ "ffff\0" "glClearAccum\0" "\0" - /* _mesa_function_pool[14841]: DeformSGIX (dynamic) */ + /* _mesa_function_pool[14951]: DeformSGIX (dynamic) */ "i\0" "glDeformSGIX\0" "\0" - /* _mesa_function_pool[14857]: GetVertexAttribfvARB (will be remapped) */ + /* _mesa_function_pool[14967]: GetVertexAttribfvARB (will be remapped) */ "iip\0" "glGetVertexAttribfv\0" "glGetVertexAttribfvARB\0" "\0" - /* _mesa_function_pool[14905]: SecondaryColor3ivEXT (will be remapped) */ + /* _mesa_function_pool[15015]: SecondaryColor3ivEXT (will be remapped) */ "p\0" "glSecondaryColor3iv\0" "glSecondaryColor3ivEXT\0" "\0" - /* _mesa_function_pool[14951]: TexCoord4iv (offset 123) */ + /* _mesa_function_pool[15061]: TexCoord4iv (offset 123) */ "p\0" "glTexCoord4iv\0" "\0" - /* _mesa_function_pool[14968]: UniformMatrix4x2fv (will be remapped) */ + /* _mesa_function_pool[15078]: UniformMatrix4x2fv (will be remapped) */ "iiip\0" "glUniformMatrix4x2fv\0" "\0" - /* _mesa_function_pool[14995]: GetDetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[15105]: GetDetailTexFuncSGIS (dynamic) */ "ip\0" "glGetDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[15022]: GetCombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[15132]: GetCombinerStageParameterfvNV (dynamic) */ "iip\0" "glGetCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[15059]: PolygonOffset (offset 319) */ + /* _mesa_function_pool[15169]: PolygonOffset (offset 319) */ "ff\0" "glPolygonOffset\0" "\0" - /* _mesa_function_pool[15079]: BindVertexArray (will be remapped) */ + /* _mesa_function_pool[15189]: BindVertexArray (will be remapped) */ "i\0" "glBindVertexArray\0" "\0" - /* _mesa_function_pool[15100]: Color4ubVertex2fvSUN (dynamic) */ + /* _mesa_function_pool[15210]: Color4ubVertex2fvSUN (dynamic) */ "pp\0" "glColor4ubVertex2fvSUN\0" "\0" - /* _mesa_function_pool[15127]: Rectd (offset 86) */ + /* _mesa_function_pool[15237]: Rectd (offset 86) */ "dddd\0" "glRectd\0" "\0" - /* _mesa_function_pool[15141]: TexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[15251]: TexFilterFuncSGIS (dynamic) */ "iiip\0" "glTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[15167]: SampleMaskSGIS (will be remapped) */ + /* _mesa_function_pool[15277]: SampleMaskSGIS (will be remapped) */ "fi\0" "glSampleMaskSGIS\0" "glSampleMaskEXT\0" "\0" - /* _mesa_function_pool[15204]: GetAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[15314]: GetAttribLocationARB (will be remapped) */ "ip\0" "glGetAttribLocation\0" "glGetAttribLocationARB\0" "\0" - /* _mesa_function_pool[15251]: RasterPos3i (offset 74) */ + /* _mesa_function_pool[15361]: RasterPos3i (offset 74) */ "iii\0" "glRasterPos3i\0" "\0" - /* _mesa_function_pool[15270]: VertexAttrib4ubvARB (will be remapped) */ + /* _mesa_function_pool[15380]: VertexAttrib4ubvARB (will be remapped) */ "ip\0" "glVertexAttrib4ubv\0" "glVertexAttrib4ubvARB\0" "\0" - /* _mesa_function_pool[15315]: DetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[15425]: DetailTexFuncSGIS (dynamic) */ "iip\0" "glDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[15340]: Normal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[15450]: Normal3fVertex3fSUN (dynamic) */ "ffffff\0" "glNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[15370]: CopyTexImage2D (offset 324) */ + /* _mesa_function_pool[15480]: CopyTexImage2D (offset 324) */ "iiiiiiii\0" "glCopyTexImage2D\0" "glCopyTexImage2DEXT\0" "\0" - /* _mesa_function_pool[15417]: GetBufferPointervARB (will be remapped) */ + /* _mesa_function_pool[15527]: GetBufferPointervARB (will be remapped) */ "iip\0" "glGetBufferPointerv\0" "glGetBufferPointervARB\0" "\0" - /* _mesa_function_pool[15465]: ProgramEnvParameter4fARB (will be remapped) */ + /* _mesa_function_pool[15575]: ProgramEnvParameter4fARB (will be remapped) */ "iiffff\0" "glProgramEnvParameter4fARB\0" "glProgramParameter4fNV\0" "\0" - /* _mesa_function_pool[15523]: Uniform3ivARB (will be remapped) */ + /* _mesa_function_pool[15633]: Uniform3ivARB (will be remapped) */ "iip\0" "glUniform3iv\0" "glUniform3ivARB\0" "\0" - /* _mesa_function_pool[15557]: Lightfv (offset 160) */ + /* _mesa_function_pool[15667]: Lightfv (offset 160) */ "iip\0" "glLightfv\0" "\0" - /* _mesa_function_pool[15572]: ClearDepth (offset 208) */ + /* _mesa_function_pool[15682]: PrimitiveRestartIndexNV (will be remapped) */ + "i\0" + "glPrimitiveRestartIndexNV\0" + "\0" + /* _mesa_function_pool[15711]: ClearDepth (offset 208) */ "d\0" "glClearDepth\0" "\0" - /* _mesa_function_pool[15588]: GetFenceivNV (will be remapped) */ + /* _mesa_function_pool[15727]: GetFenceivNV (will be remapped) */ "iip\0" "glGetFenceivNV\0" "\0" - /* _mesa_function_pool[15608]: WindowPos4dvMESA (will be remapped) */ + /* _mesa_function_pool[15747]: WindowPos4dvMESA (will be remapped) */ "p\0" "glWindowPos4dvMESA\0" "\0" - /* _mesa_function_pool[15630]: ColorSubTable (offset 346) */ + /* _mesa_function_pool[15769]: ColorSubTable (offset 346) */ "iiiiip\0" "glColorSubTable\0" "glColorSubTableEXT\0" "\0" - /* _mesa_function_pool[15673]: Color4fv (offset 30) */ + /* _mesa_function_pool[15812]: Color4fv (offset 30) */ "p\0" "glColor4fv\0" "\0" - /* _mesa_function_pool[15687]: MultiTexCoord4ivARB (offset 405) */ + /* _mesa_function_pool[15826]: MultiTexCoord4ivARB (offset 405) */ "ip\0" "glMultiTexCoord4iv\0" "glMultiTexCoord4ivARB\0" "\0" - /* _mesa_function_pool[15732]: DrawElementsInstanced (will be remapped) */ + /* _mesa_function_pool[15871]: DrawElementsInstanced (will be remapped) */ "iiipi\0" "glDrawElementsInstanced\0" "glDrawElementsInstancedARB\0" "glDrawElementsInstancedEXT\0" "\0" - /* _mesa_function_pool[15817]: ColorPointer (offset 308) */ + /* _mesa_function_pool[15956]: ColorPointer (offset 308) */ "iiip\0" "glColorPointer\0" "\0" - /* _mesa_function_pool[15838]: Rects (offset 92) */ + /* _mesa_function_pool[15977]: Rects (offset 92) */ "iiii\0" "glRects\0" "\0" - /* _mesa_function_pool[15852]: GetMapAttribParameterfvNV (dynamic) */ + /* _mesa_function_pool[15991]: GetMapAttribParameterfvNV (dynamic) */ "iiip\0" "glGetMapAttribParameterfvNV\0" "\0" - /* _mesa_function_pool[15886]: Lightiv (offset 162) */ + /* _mesa_function_pool[16025]: CreateShaderProgramEXT (will be remapped) */ + "ip\0" + "glCreateShaderProgramEXT\0" + "\0" + /* _mesa_function_pool[16054]: ActiveProgramEXT (will be remapped) */ + "i\0" + "glActiveProgramEXT\0" + "\0" + /* _mesa_function_pool[16076]: Lightiv (offset 162) */ "iip\0" "glLightiv\0" "\0" - /* _mesa_function_pool[15901]: VertexAttrib4sARB (will be remapped) */ + /* _mesa_function_pool[16091]: VertexAttrib4sARB (will be remapped) */ "iiiii\0" "glVertexAttrib4s\0" "glVertexAttrib4sARB\0" "\0" - /* _mesa_function_pool[15945]: GetQueryObjectuivARB (will be remapped) */ + /* _mesa_function_pool[16135]: GetQueryObjectuivARB (will be remapped) */ "iip\0" "glGetQueryObjectuiv\0" "glGetQueryObjectuivARB\0" "\0" - /* _mesa_function_pool[15993]: GetTexParameteriv (offset 283) */ + /* _mesa_function_pool[16183]: GetTexParameteriv (offset 283) */ "iip\0" "glGetTexParameteriv\0" "\0" - /* _mesa_function_pool[16018]: MapParameterivNV (dynamic) */ + /* _mesa_function_pool[16208]: MapParameterivNV (dynamic) */ "iip\0" "glMapParameterivNV\0" "\0" - /* _mesa_function_pool[16042]: GenRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[16232]: GenRenderbuffersEXT (will be remapped) */ "ip\0" "glGenRenderbuffers\0" "glGenRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[16087]: VertexAttrib2dvARB (will be remapped) */ + /* _mesa_function_pool[16277]: VertexAttrib2dvARB (will be remapped) */ "ip\0" "glVertexAttrib2dv\0" "glVertexAttrib2dvARB\0" "\0" - /* _mesa_function_pool[16130]: EdgeFlagPointerEXT (will be remapped) */ + /* _mesa_function_pool[16320]: EdgeFlagPointerEXT (will be remapped) */ "iip\0" "glEdgeFlagPointerEXT\0" "\0" - /* _mesa_function_pool[16156]: VertexAttribs2svNV (will be remapped) */ + /* _mesa_function_pool[16346]: VertexAttribs2svNV (will be remapped) */ "iip\0" "glVertexAttribs2svNV\0" "\0" - /* _mesa_function_pool[16182]: WeightbvARB (dynamic) */ + /* _mesa_function_pool[16372]: WeightbvARB (dynamic) */ "ip\0" "glWeightbvARB\0" "\0" - /* _mesa_function_pool[16200]: VertexAttrib2fvARB (will be remapped) */ + /* _mesa_function_pool[16390]: VertexAttrib2fvARB (will be remapped) */ "ip\0" "glVertexAttrib2fv\0" "glVertexAttrib2fvARB\0" "\0" - /* _mesa_function_pool[16243]: GetBufferParameterivARB (will be remapped) */ + /* _mesa_function_pool[16433]: GetBufferParameterivARB (will be remapped) */ "iip\0" "glGetBufferParameteriv\0" "glGetBufferParameterivARB\0" "\0" - /* _mesa_function_pool[16297]: Rectdv (offset 87) */ + /* _mesa_function_pool[16487]: Rectdv (offset 87) */ "pp\0" "glRectdv\0" "\0" - /* _mesa_function_pool[16310]: ListParameteriSGIX (dynamic) */ + /* _mesa_function_pool[16500]: ListParameteriSGIX (dynamic) */ "iii\0" "glListParameteriSGIX\0" "\0" - /* _mesa_function_pool[16336]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[16526]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffff\0" "glReplacementCodeuiColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[16395]: InstrumentsBufferSGIX (dynamic) */ + /* _mesa_function_pool[16585]: InstrumentsBufferSGIX (dynamic) */ "ip\0" "glInstrumentsBufferSGIX\0" "\0" - /* _mesa_function_pool[16423]: VertexAttrib4NivARB (will be remapped) */ + /* _mesa_function_pool[16613]: VertexAttrib4NivARB (will be remapped) */ "ip\0" "glVertexAttrib4Niv\0" "glVertexAttrib4NivARB\0" "\0" - /* _mesa_function_pool[16468]: GetAttachedShaders (will be remapped) */ + /* _mesa_function_pool[16658]: GetAttachedShaders (will be remapped) */ "iipp\0" "glGetAttachedShaders\0" "\0" - /* _mesa_function_pool[16495]: GenVertexArraysAPPLE (will be remapped) */ + /* _mesa_function_pool[16685]: GenVertexArraysAPPLE (will be remapped) */ "ip\0" "glGenVertexArraysAPPLE\0" "\0" - /* _mesa_function_pool[16522]: Materialiv (offset 172) */ + /* _mesa_function_pool[16712]: Materialiv (offset 172) */ "iip\0" "glMaterialiv\0" "\0" - /* _mesa_function_pool[16540]: PushClientAttrib (offset 335) */ + /* _mesa_function_pool[16730]: PushClientAttrib (offset 335) */ "i\0" "glPushClientAttrib\0" "\0" - /* _mesa_function_pool[16562]: ProgramEnvParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[16752]: ProgramEnvParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramEnvParameters4fvEXT\0" "\0" - /* _mesa_function_pool[16597]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[16787]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[16643]: WindowPos2iMESA (will be remapped) */ + /* _mesa_function_pool[16833]: WindowPos2iMESA (will be remapped) */ "ii\0" "glWindowPos2i\0" "glWindowPos2iARB\0" "glWindowPos2iMESA\0" "\0" - /* _mesa_function_pool[16696]: SecondaryColor3fvEXT (will be remapped) */ + /* _mesa_function_pool[16886]: SecondaryColor3fvEXT (will be remapped) */ "p\0" "glSecondaryColor3fv\0" "glSecondaryColor3fvEXT\0" "\0" - /* _mesa_function_pool[16742]: PolygonMode (offset 174) */ + /* _mesa_function_pool[16932]: PolygonMode (offset 174) */ "ii\0" "glPolygonMode\0" "\0" - /* _mesa_function_pool[16760]: CompressedTexSubImage1DARB (will be remapped) */ + /* _mesa_function_pool[16950]: CompressedTexSubImage1DARB (will be remapped) */ "iiiiiip\0" "glCompressedTexSubImage1D\0" "glCompressedTexSubImage1DARB\0" "\0" - /* _mesa_function_pool[16824]: GetVertexAttribivNV (will be remapped) */ + /* _mesa_function_pool[17014]: GetVertexAttribivNV (will be remapped) */ "iip\0" "glGetVertexAttribivNV\0" "\0" - /* _mesa_function_pool[16851]: GetProgramStringARB (will be remapped) */ + /* _mesa_function_pool[17041]: GetProgramStringARB (will be remapped) */ "iip\0" "glGetProgramStringARB\0" "\0" - /* _mesa_function_pool[16878]: TexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[17068]: TexBumpParameterfvATI (will be remapped) */ "ip\0" "glTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[16906]: CompileShaderARB (will be remapped) */ + /* _mesa_function_pool[17096]: CompileShaderARB (will be remapped) */ "i\0" "glCompileShader\0" "glCompileShaderARB\0" "\0" - /* _mesa_function_pool[16944]: DeleteShader (will be remapped) */ + /* _mesa_function_pool[17134]: DeleteShader (will be remapped) */ "i\0" "glDeleteShader\0" "\0" - /* _mesa_function_pool[16962]: DisableClientState (offset 309) */ + /* _mesa_function_pool[17152]: DisableClientState (offset 309) */ "i\0" "glDisableClientState\0" "\0" - /* _mesa_function_pool[16986]: TexGeni (offset 192) */ + /* _mesa_function_pool[17176]: TexGeni (offset 192) */ "iii\0" "glTexGeni\0" "\0" - /* _mesa_function_pool[17001]: TexGenf (offset 190) */ + /* _mesa_function_pool[17191]: TexGenf (offset 190) */ "iif\0" "glTexGenf\0" "\0" - /* _mesa_function_pool[17016]: Uniform3fARB (will be remapped) */ + /* _mesa_function_pool[17206]: Uniform3fARB (will be remapped) */ "ifff\0" "glUniform3f\0" "glUniform3fARB\0" "\0" - /* _mesa_function_pool[17049]: TexGend (offset 188) */ + /* _mesa_function_pool[17239]: TexGend (offset 188) */ "iid\0" "glTexGend\0" "\0" - /* _mesa_function_pool[17064]: ListParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[17254]: ListParameterfvSGIX (dynamic) */ "iip\0" "glListParameterfvSGIX\0" "\0" - /* _mesa_function_pool[17091]: GetPolygonStipple (offset 274) */ + /* _mesa_function_pool[17281]: GetPolygonStipple (offset 274) */ "p\0" "glGetPolygonStipple\0" "\0" - /* _mesa_function_pool[17114]: Tangent3dvEXT (dynamic) */ + /* _mesa_function_pool[17304]: Tangent3dvEXT (dynamic) */ "p\0" "glTangent3dvEXT\0" "\0" - /* _mesa_function_pool[17133]: BindBufferOffsetEXT (will be remapped) */ + /* _mesa_function_pool[17323]: BindBufferOffsetEXT (will be remapped) */ "iiii\0" "glBindBufferOffsetEXT\0" "\0" - /* _mesa_function_pool[17161]: WindowPos3sMESA (will be remapped) */ + /* _mesa_function_pool[17351]: WindowPos3sMESA (will be remapped) */ "iii\0" "glWindowPos3s\0" "glWindowPos3sARB\0" "glWindowPos3sMESA\0" "\0" - /* _mesa_function_pool[17215]: VertexAttrib2svNV (will be remapped) */ + /* _mesa_function_pool[17405]: VertexAttrib2svNV (will be remapped) */ "ip\0" "glVertexAttrib2svNV\0" "\0" - /* _mesa_function_pool[17239]: DisableIndexedEXT (will be remapped) */ + /* _mesa_function_pool[17429]: DisableIndexedEXT (will be remapped) */ "ii\0" "glDisableIndexedEXT\0" "\0" - /* _mesa_function_pool[17263]: BindBufferBaseEXT (will be remapped) */ + /* _mesa_function_pool[17453]: BindBufferBaseEXT (will be remapped) */ "iii\0" "glBindBufferBaseEXT\0" "glBindBufferBase\0" "\0" - /* _mesa_function_pool[17305]: TexCoord2fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[17495]: TexCoord2fVertex3fvSUN (dynamic) */ "pp\0" "glTexCoord2fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[17334]: WindowPos4sMESA (will be remapped) */ + /* _mesa_function_pool[17524]: WindowPos4sMESA (will be remapped) */ "iiii\0" "glWindowPos4sMESA\0" "\0" - /* _mesa_function_pool[17358]: VertexAttrib4NuivARB (will be remapped) */ + /* _mesa_function_pool[17548]: VertexAttrib4NuivARB (will be remapped) */ "ip\0" "glVertexAttrib4Nuiv\0" "glVertexAttrib4NuivARB\0" "\0" - /* _mesa_function_pool[17405]: ClientActiveTextureARB (offset 375) */ + /* _mesa_function_pool[17595]: ClientActiveTextureARB (offset 375) */ "i\0" "glClientActiveTexture\0" "glClientActiveTextureARB\0" "\0" - /* _mesa_function_pool[17455]: PixelTexGenSGIX (will be remapped) */ + /* _mesa_function_pool[17645]: PixelTexGenSGIX (will be remapped) */ "i\0" "glPixelTexGenSGIX\0" "\0" - /* _mesa_function_pool[17476]: ReplacementCodeusvSUN (dynamic) */ + /* _mesa_function_pool[17666]: ReplacementCodeusvSUN (dynamic) */ "p\0" "glReplacementCodeusvSUN\0" "\0" - /* _mesa_function_pool[17503]: Uniform4fARB (will be remapped) */ + /* _mesa_function_pool[17693]: Uniform4fARB (will be remapped) */ "iffff\0" "glUniform4f\0" "glUniform4fARB\0" "\0" - /* _mesa_function_pool[17537]: Color4sv (offset 34) */ + /* _mesa_function_pool[17727]: Color4sv (offset 34) */ "p\0" "glColor4sv\0" "\0" - /* _mesa_function_pool[17551]: FlushMappedBufferRange (will be remapped) */ + /* _mesa_function_pool[17741]: FlushMappedBufferRange (will be remapped) */ "iii\0" "glFlushMappedBufferRange\0" "\0" - /* _mesa_function_pool[17581]: IsProgramNV (will be remapped) */ + /* _mesa_function_pool[17771]: IsProgramNV (will be remapped) */ "i\0" "glIsProgramARB\0" "glIsProgramNV\0" "\0" - /* _mesa_function_pool[17613]: FlushMappedBufferRangeAPPLE (will be remapped) */ + /* _mesa_function_pool[17803]: FlushMappedBufferRangeAPPLE (will be remapped) */ "iii\0" "glFlushMappedBufferRangeAPPLE\0" "\0" - /* _mesa_function_pool[17648]: PixelZoom (offset 246) */ + /* _mesa_function_pool[17838]: PixelZoom (offset 246) */ "ff\0" "glPixelZoom\0" "\0" - /* _mesa_function_pool[17664]: ReplacementCodePointerSUN (dynamic) */ + /* _mesa_function_pool[17854]: ReplacementCodePointerSUN (dynamic) */ "iip\0" "glReplacementCodePointerSUN\0" "\0" - /* _mesa_function_pool[17697]: ProgramEnvParameter4dARB (will be remapped) */ + /* _mesa_function_pool[17887]: ProgramEnvParameter4dARB (will be remapped) */ "iidddd\0" "glProgramEnvParameter4dARB\0" "glProgramParameter4dNV\0" "\0" - /* _mesa_function_pool[17755]: ColorTableParameterfv (offset 340) */ + /* _mesa_function_pool[17945]: ColorTableParameterfv (offset 340) */ "iip\0" "glColorTableParameterfv\0" "glColorTableParameterfvSGI\0" "\0" - /* _mesa_function_pool[17811]: FragmentLightModelfSGIX (dynamic) */ + /* _mesa_function_pool[18001]: FragmentLightModelfSGIX (dynamic) */ "if\0" "glFragmentLightModelfSGIX\0" "\0" - /* _mesa_function_pool[17841]: Binormal3bvEXT (dynamic) */ + /* _mesa_function_pool[18031]: Binormal3bvEXT (dynamic) */ "p\0" "glBinormal3bvEXT\0" "\0" - /* _mesa_function_pool[17861]: PixelMapuiv (offset 252) */ + /* _mesa_function_pool[18051]: PixelMapuiv (offset 252) */ "iip\0" "glPixelMapuiv\0" "\0" - /* _mesa_function_pool[17880]: Color3dv (offset 12) */ + /* _mesa_function_pool[18070]: Color3dv (offset 12) */ "p\0" "glColor3dv\0" "\0" - /* _mesa_function_pool[17894]: IsTexture (offset 330) */ + /* _mesa_function_pool[18084]: IsTexture (offset 330) */ "i\0" "glIsTexture\0" "glIsTextureEXT\0" "\0" - /* _mesa_function_pool[17924]: VertexWeightfvEXT (dynamic) */ + /* _mesa_function_pool[18114]: VertexWeightfvEXT (dynamic) */ "p\0" "glVertexWeightfvEXT\0" "\0" - /* _mesa_function_pool[17947]: VertexAttrib1dARB (will be remapped) */ + /* _mesa_function_pool[18137]: VertexAttrib1dARB (will be remapped) */ "id\0" "glVertexAttrib1d\0" "glVertexAttrib1dARB\0" "\0" - /* _mesa_function_pool[17988]: ImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[18178]: ImageTransformParameterivHP (dynamic) */ "iip\0" "glImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[18023]: TexCoord4i (offset 122) */ + /* _mesa_function_pool[18213]: TexCoord4i (offset 122) */ "iiii\0" "glTexCoord4i\0" "\0" - /* _mesa_function_pool[18042]: DeleteQueriesARB (will be remapped) */ + /* _mesa_function_pool[18232]: DeleteQueriesARB (will be remapped) */ "ip\0" "glDeleteQueries\0" "glDeleteQueriesARB\0" "\0" - /* _mesa_function_pool[18081]: Color4ubVertex2fSUN (dynamic) */ + /* _mesa_function_pool[18271]: Color4ubVertex2fSUN (dynamic) */ "iiiiff\0" "glColor4ubVertex2fSUN\0" "\0" - /* _mesa_function_pool[18111]: FragmentColorMaterialSGIX (dynamic) */ + /* _mesa_function_pool[18301]: FragmentColorMaterialSGIX (dynamic) */ "ii\0" "glFragmentColorMaterialSGIX\0" "\0" - /* _mesa_function_pool[18143]: CurrentPaletteMatrixARB (dynamic) */ + /* _mesa_function_pool[18333]: CurrentPaletteMatrixARB (dynamic) */ "i\0" "glCurrentPaletteMatrixARB\0" "\0" - /* _mesa_function_pool[18172]: GetMapdv (offset 266) */ + /* _mesa_function_pool[18362]: GetMapdv (offset 266) */ "iip\0" "glGetMapdv\0" "\0" - /* _mesa_function_pool[18188]: ObjectPurgeableAPPLE (will be remapped) */ + /* _mesa_function_pool[18378]: ObjectPurgeableAPPLE (will be remapped) */ "iii\0" "glObjectPurgeableAPPLE\0" "\0" - /* _mesa_function_pool[18216]: SamplePatternSGIS (will be remapped) */ + /* _mesa_function_pool[18406]: SamplePatternSGIS (will be remapped) */ "i\0" "glSamplePatternSGIS\0" "glSamplePatternEXT\0" "\0" - /* _mesa_function_pool[18258]: PixelStoref (offset 249) */ + /* _mesa_function_pool[18448]: PixelStoref (offset 249) */ "if\0" "glPixelStoref\0" "\0" - /* _mesa_function_pool[18276]: IsQueryARB (will be remapped) */ + /* _mesa_function_pool[18466]: IsQueryARB (will be remapped) */ "i\0" "glIsQuery\0" "glIsQueryARB\0" "\0" - /* _mesa_function_pool[18302]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[18492]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */ "iiiiifff\0" "glReplacementCodeuiColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[18351]: PixelStorei (offset 250) */ + /* _mesa_function_pool[18541]: PixelStorei (offset 250) */ "ii\0" "glPixelStorei\0" "\0" - /* _mesa_function_pool[18369]: VertexAttrib4usvARB (will be remapped) */ + /* _mesa_function_pool[18559]: VertexAttrib4usvARB (will be remapped) */ "ip\0" "glVertexAttrib4usv\0" "glVertexAttrib4usvARB\0" "\0" - /* _mesa_function_pool[18414]: LinkProgramARB (will be remapped) */ + /* _mesa_function_pool[18604]: LinkProgramARB (will be remapped) */ "i\0" "glLinkProgram\0" "glLinkProgramARB\0" "\0" - /* _mesa_function_pool[18448]: VertexAttrib2fNV (will be remapped) */ + /* _mesa_function_pool[18638]: VertexAttrib2fNV (will be remapped) */ "iff\0" "glVertexAttrib2fNV\0" "\0" - /* _mesa_function_pool[18472]: ShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[18662]: ShaderSourceARB (will be remapped) */ "iipp\0" "glShaderSource\0" "glShaderSourceARB\0" "\0" - /* _mesa_function_pool[18511]: FragmentMaterialiSGIX (dynamic) */ + /* _mesa_function_pool[18701]: FragmentMaterialiSGIX (dynamic) */ "iii\0" "glFragmentMaterialiSGIX\0" "\0" - /* _mesa_function_pool[18540]: EvalCoord2dv (offset 233) */ + /* _mesa_function_pool[18730]: EvalCoord2dv (offset 233) */ "p\0" "glEvalCoord2dv\0" "\0" - /* _mesa_function_pool[18558]: VertexAttrib3svARB (will be remapped) */ + /* _mesa_function_pool[18748]: VertexAttrib3svARB (will be remapped) */ "ip\0" "glVertexAttrib3sv\0" "glVertexAttrib3svARB\0" "\0" - /* _mesa_function_pool[18601]: ColorMaterial (offset 151) */ + /* _mesa_function_pool[18791]: ColorMaterial (offset 151) */ "ii\0" "glColorMaterial\0" "\0" - /* _mesa_function_pool[18621]: CompressedTexSubImage3DARB (will be remapped) */ + /* _mesa_function_pool[18811]: CompressedTexSubImage3DARB (will be remapped) */ "iiiiiiiiiip\0" "glCompressedTexSubImage3D\0" "glCompressedTexSubImage3DARB\0" "\0" - /* _mesa_function_pool[18689]: WindowPos2ivMESA (will be remapped) */ + /* _mesa_function_pool[18879]: WindowPos2ivMESA (will be remapped) */ "p\0" "glWindowPos2iv\0" "glWindowPos2ivARB\0" "glWindowPos2ivMESA\0" "\0" - /* _mesa_function_pool[18744]: IsFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[18934]: IsFramebufferEXT (will be remapped) */ "i\0" "glIsFramebuffer\0" "glIsFramebufferEXT\0" "\0" - /* _mesa_function_pool[18782]: Uniform4ivARB (will be remapped) */ + /* _mesa_function_pool[18972]: Uniform4ivARB (will be remapped) */ "iip\0" "glUniform4iv\0" "glUniform4ivARB\0" "\0" - /* _mesa_function_pool[18816]: GetVertexAttribdvARB (will be remapped) */ + /* _mesa_function_pool[19006]: GetVertexAttribdvARB (will be remapped) */ "iip\0" "glGetVertexAttribdv\0" "glGetVertexAttribdvARB\0" "\0" - /* _mesa_function_pool[18864]: TexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[19054]: TexBumpParameterivATI (will be remapped) */ "ip\0" "glTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[18892]: GetSeparableFilter (offset 359) */ + /* _mesa_function_pool[19082]: GetSeparableFilter (offset 359) */ "iiippp\0" "glGetSeparableFilter\0" "glGetSeparableFilterEXT\0" "\0" - /* _mesa_function_pool[18945]: Binormal3dEXT (dynamic) */ + /* _mesa_function_pool[19135]: Binormal3dEXT (dynamic) */ "ddd\0" "glBinormal3dEXT\0" "\0" - /* _mesa_function_pool[18966]: SpriteParameteriSGIX (dynamic) */ + /* _mesa_function_pool[19156]: SpriteParameteriSGIX (dynamic) */ "ii\0" "glSpriteParameteriSGIX\0" "\0" - /* _mesa_function_pool[18993]: RequestResidentProgramsNV (will be remapped) */ + /* _mesa_function_pool[19183]: RequestResidentProgramsNV (will be remapped) */ "ip\0" "glRequestResidentProgramsNV\0" "\0" - /* _mesa_function_pool[19025]: TagSampleBufferSGIX (dynamic) */ + /* _mesa_function_pool[19215]: TagSampleBufferSGIX (dynamic) */ "\0" "glTagSampleBufferSGIX\0" "\0" - /* _mesa_function_pool[19049]: TransformFeedbackVaryingsEXT (will be remapped) */ + /* _mesa_function_pool[19239]: TransformFeedbackVaryingsEXT (will be remapped) */ "iipi\0" "glTransformFeedbackVaryingsEXT\0" "glTransformFeedbackVaryings\0" "\0" - /* _mesa_function_pool[19114]: FeedbackBuffer (offset 194) */ + /* _mesa_function_pool[19304]: FeedbackBuffer (offset 194) */ "iip\0" "glFeedbackBuffer\0" "\0" - /* _mesa_function_pool[19136]: RasterPos2iv (offset 67) */ + /* _mesa_function_pool[19326]: RasterPos2iv (offset 67) */ "p\0" "glRasterPos2iv\0" "\0" - /* _mesa_function_pool[19154]: TexImage1D (offset 182) */ + /* _mesa_function_pool[19344]: TexImage1D (offset 182) */ "iiiiiiip\0" "glTexImage1D\0" "\0" - /* _mesa_function_pool[19177]: ListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[19367]: ListParameterivSGIX (dynamic) */ "iip\0" "glListParameterivSGIX\0" "\0" - /* _mesa_function_pool[19204]: MultiDrawElementsEXT (will be remapped) */ + /* _mesa_function_pool[19394]: MultiDrawElementsEXT (will be remapped) */ "ipipi\0" "glMultiDrawElements\0" "glMultiDrawElementsEXT\0" "\0" - /* _mesa_function_pool[19254]: Color3s (offset 17) */ + /* _mesa_function_pool[19444]: Color3s (offset 17) */ "iii\0" "glColor3s\0" "\0" - /* _mesa_function_pool[19269]: Uniform1ivARB (will be remapped) */ + /* _mesa_function_pool[19459]: Uniform1ivARB (will be remapped) */ "iip\0" "glUniform1iv\0" "glUniform1ivARB\0" "\0" - /* _mesa_function_pool[19303]: WindowPos2sMESA (will be remapped) */ + /* _mesa_function_pool[19493]: WindowPos2sMESA (will be remapped) */ "ii\0" "glWindowPos2s\0" "glWindowPos2sARB\0" "glWindowPos2sMESA\0" "\0" - /* _mesa_function_pool[19356]: WeightusvARB (dynamic) */ + /* _mesa_function_pool[19546]: WeightusvARB (dynamic) */ "ip\0" "glWeightusvARB\0" "\0" - /* _mesa_function_pool[19375]: TexCoordPointer (offset 320) */ + /* _mesa_function_pool[19565]: TexCoordPointer (offset 320) */ "iiip\0" "glTexCoordPointer\0" "\0" - /* _mesa_function_pool[19399]: FogCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[19589]: FogCoordPointerEXT (will be remapped) */ "iip\0" "glFogCoordPointer\0" "glFogCoordPointerEXT\0" "\0" - /* _mesa_function_pool[19443]: IndexMaterialEXT (dynamic) */ + /* _mesa_function_pool[19633]: IndexMaterialEXT (dynamic) */ "ii\0" "glIndexMaterialEXT\0" "\0" - /* _mesa_function_pool[19466]: Color3i (offset 15) */ + /* _mesa_function_pool[19656]: Color3i (offset 15) */ "iii\0" "glColor3i\0" "\0" - /* _mesa_function_pool[19481]: FrontFace (offset 157) */ + /* _mesa_function_pool[19671]: FrontFace (offset 157) */ "i\0" "glFrontFace\0" "\0" - /* _mesa_function_pool[19496]: EvalCoord2d (offset 232) */ + /* _mesa_function_pool[19686]: EvalCoord2d (offset 232) */ "dd\0" "glEvalCoord2d\0" "\0" - /* _mesa_function_pool[19514]: SecondaryColor3ubvEXT (will be remapped) */ + /* _mesa_function_pool[19704]: SecondaryColor3ubvEXT (will be remapped) */ "p\0" "glSecondaryColor3ubv\0" "glSecondaryColor3ubvEXT\0" "\0" - /* _mesa_function_pool[19562]: EvalCoord2f (offset 234) */ + /* _mesa_function_pool[19752]: EvalCoord2f (offset 234) */ "ff\0" "glEvalCoord2f\0" "\0" - /* _mesa_function_pool[19580]: VertexAttrib4dvARB (will be remapped) */ + /* _mesa_function_pool[19770]: VertexAttrib4dvARB (will be remapped) */ "ip\0" "glVertexAttrib4dv\0" "glVertexAttrib4dvARB\0" "\0" - /* _mesa_function_pool[19623]: BindAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[19813]: BindAttribLocationARB (will be remapped) */ "iip\0" "glBindAttribLocation\0" "glBindAttribLocationARB\0" "\0" - /* _mesa_function_pool[19673]: Color3b (offset 9) */ + /* _mesa_function_pool[19863]: Color3b (offset 9) */ "iii\0" "glColor3b\0" "\0" - /* _mesa_function_pool[19688]: MultiTexCoord2dARB (offset 384) */ + /* _mesa_function_pool[19878]: MultiTexCoord2dARB (offset 384) */ "idd\0" "glMultiTexCoord2d\0" "glMultiTexCoord2dARB\0" "\0" - /* _mesa_function_pool[19732]: ExecuteProgramNV (will be remapped) */ + /* _mesa_function_pool[19922]: ExecuteProgramNV (will be remapped) */ "iip\0" "glExecuteProgramNV\0" "\0" - /* _mesa_function_pool[19756]: Color3f (offset 13) */ + /* _mesa_function_pool[19946]: Color3f (offset 13) */ "fff\0" "glColor3f\0" "\0" - /* _mesa_function_pool[19771]: LightEnviSGIX (dynamic) */ + /* _mesa_function_pool[19961]: LightEnviSGIX (dynamic) */ "ii\0" "glLightEnviSGIX\0" "\0" - /* _mesa_function_pool[19791]: Color3d (offset 11) */ + /* _mesa_function_pool[19981]: Color3d (offset 11) */ "ddd\0" "glColor3d\0" "\0" - /* _mesa_function_pool[19806]: Normal3dv (offset 55) */ + /* _mesa_function_pool[19996]: Normal3dv (offset 55) */ "p\0" "glNormal3dv\0" "\0" - /* _mesa_function_pool[19821]: Lightf (offset 159) */ + /* _mesa_function_pool[20011]: Lightf (offset 159) */ "iif\0" "glLightf\0" "\0" - /* _mesa_function_pool[19835]: ReplacementCodeuiSUN (dynamic) */ + /* _mesa_function_pool[20025]: ReplacementCodeuiSUN (dynamic) */ "i\0" "glReplacementCodeuiSUN\0" "\0" - /* _mesa_function_pool[19861]: MatrixMode (offset 293) */ + /* _mesa_function_pool[20051]: MatrixMode (offset 293) */ "i\0" "glMatrixMode\0" "\0" - /* _mesa_function_pool[19877]: GetPixelMapusv (offset 273) */ + /* _mesa_function_pool[20067]: GetPixelMapusv (offset 273) */ "ip\0" "glGetPixelMapusv\0" "\0" - /* _mesa_function_pool[19898]: Lighti (offset 161) */ + /* _mesa_function_pool[20088]: Lighti (offset 161) */ "iii\0" "glLighti\0" "\0" - /* _mesa_function_pool[19912]: VertexAttribPointerNV (will be remapped) */ + /* _mesa_function_pool[20102]: VertexAttribPointerNV (will be remapped) */ "iiiip\0" "glVertexAttribPointerNV\0" "\0" - /* _mesa_function_pool[19943]: ProgramLocalParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[20133]: ProgramLocalParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramLocalParameters4fvEXT\0" "\0" - /* _mesa_function_pool[19980]: GetBooleanIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[20170]: GetBooleanIndexedvEXT (will be remapped) */ "iip\0" "glGetBooleanIndexedvEXT\0" "\0" - /* _mesa_function_pool[20009]: GetFramebufferAttachmentParameterivEXT (will be remapped) */ + /* _mesa_function_pool[20199]: GetFramebufferAttachmentParameterivEXT (will be remapped) */ "iiip\0" "glGetFramebufferAttachmentParameteriv\0" "glGetFramebufferAttachmentParameterivEXT\0" "\0" - /* _mesa_function_pool[20094]: PixelTransformParameterfEXT (dynamic) */ + /* _mesa_function_pool[20284]: PixelTransformParameterfEXT (dynamic) */ "iif\0" "glPixelTransformParameterfEXT\0" "\0" - /* _mesa_function_pool[20129]: MultiTexCoord4dvARB (offset 401) */ + /* _mesa_function_pool[20319]: MultiTexCoord4dvARB (offset 401) */ "ip\0" "glMultiTexCoord4dv\0" "glMultiTexCoord4dvARB\0" "\0" - /* _mesa_function_pool[20174]: PixelTransformParameteriEXT (dynamic) */ + /* _mesa_function_pool[20364]: PixelTransformParameteriEXT (dynamic) */ "iii\0" "glPixelTransformParameteriEXT\0" "\0" - /* _mesa_function_pool[20209]: GetDoublev (offset 260) */ + /* _mesa_function_pool[20399]: GetDoublev (offset 260) */ "ip\0" "glGetDoublev\0" "\0" - /* _mesa_function_pool[20226]: MultMatrixd (offset 295) */ + /* _mesa_function_pool[20416]: MultMatrixd (offset 295) */ "p\0" "glMultMatrixd\0" "\0" - /* _mesa_function_pool[20243]: MultMatrixf (offset 294) */ + /* _mesa_function_pool[20433]: MultMatrixf (offset 294) */ "p\0" "glMultMatrixf\0" "\0" - /* _mesa_function_pool[20260]: TexCoord2fColor4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[20450]: TexCoord2fColor4ubVertex3fSUN (dynamic) */ "ffiiiifff\0" "glTexCoord2fColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[20303]: Uniform1iARB (will be remapped) */ + /* _mesa_function_pool[20493]: Uniform1iARB (will be remapped) */ "ii\0" "glUniform1i\0" "glUniform1iARB\0" "\0" - /* _mesa_function_pool[20334]: VertexAttribPointerARB (will be remapped) */ + /* _mesa_function_pool[20524]: VertexAttribPointerARB (will be remapped) */ "iiiiip\0" "glVertexAttribPointer\0" "glVertexAttribPointerARB\0" "\0" - /* _mesa_function_pool[20389]: VertexAttrib3sNV (will be remapped) */ + /* _mesa_function_pool[20579]: VertexAttrib3sNV (will be remapped) */ "iiii\0" "glVertexAttrib3sNV\0" "\0" - /* _mesa_function_pool[20414]: SharpenTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[20604]: SharpenTexFuncSGIS (dynamic) */ "iip\0" "glSharpenTexFuncSGIS\0" "\0" - /* _mesa_function_pool[20440]: MultiTexCoord4fvARB (offset 403) */ + /* _mesa_function_pool[20630]: MultiTexCoord4fvARB (offset 403) */ "ip\0" "glMultiTexCoord4fv\0" "glMultiTexCoord4fvARB\0" "\0" - /* _mesa_function_pool[20485]: UniformMatrix2x3fv (will be remapped) */ + /* _mesa_function_pool[20675]: UniformMatrix2x3fv (will be remapped) */ "iiip\0" "glUniformMatrix2x3fv\0" "\0" - /* _mesa_function_pool[20512]: TrackMatrixNV (will be remapped) */ + /* _mesa_function_pool[20702]: TrackMatrixNV (will be remapped) */ "iiii\0" "glTrackMatrixNV\0" "\0" - /* _mesa_function_pool[20534]: CombinerParameteriNV (will be remapped) */ + /* _mesa_function_pool[20724]: CombinerParameteriNV (will be remapped) */ "ii\0" "glCombinerParameteriNV\0" "\0" - /* _mesa_function_pool[20561]: DeleteAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[20751]: DeleteAsyncMarkersSGIX (dynamic) */ "ii\0" "glDeleteAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[20590]: ReplacementCodeusSUN (dynamic) */ + /* _mesa_function_pool[20780]: ReplacementCodeusSUN (dynamic) */ "i\0" "glReplacementCodeusSUN\0" "\0" - /* _mesa_function_pool[20616]: IsAsyncMarkerSGIX (dynamic) */ + /* _mesa_function_pool[20806]: IsAsyncMarkerSGIX (dynamic) */ "i\0" "glIsAsyncMarkerSGIX\0" "\0" - /* _mesa_function_pool[20639]: FrameZoomSGIX (dynamic) */ + /* _mesa_function_pool[20829]: FrameZoomSGIX (dynamic) */ "i\0" "glFrameZoomSGIX\0" "\0" - /* _mesa_function_pool[20658]: Normal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[20848]: Normal3fVertex3fvSUN (dynamic) */ "pp\0" "glNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[20685]: RasterPos4sv (offset 85) */ + /* _mesa_function_pool[20875]: RasterPos4sv (offset 85) */ "p\0" "glRasterPos4sv\0" "\0" - /* _mesa_function_pool[20703]: VertexAttrib4NsvARB (will be remapped) */ + /* _mesa_function_pool[20893]: VertexAttrib4NsvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nsv\0" "glVertexAttrib4NsvARB\0" "\0" - /* _mesa_function_pool[20748]: VertexAttrib3fvARB (will be remapped) */ + /* _mesa_function_pool[20938]: VertexAttrib3fvARB (will be remapped) */ "ip\0" "glVertexAttrib3fv\0" "glVertexAttrib3fvARB\0" "\0" - /* _mesa_function_pool[20791]: ClearColor (offset 206) */ + /* _mesa_function_pool[20981]: ClearColor (offset 206) */ "ffff\0" "glClearColor\0" "\0" - /* _mesa_function_pool[20810]: GetSynciv (will be remapped) */ + /* _mesa_function_pool[21000]: GetSynciv (will be remapped) */ "iiipp\0" "glGetSynciv\0" "\0" - /* _mesa_function_pool[20829]: DeleteFramebuffersEXT (will be remapped) */ + /* _mesa_function_pool[21019]: ClearColorIiEXT (will be remapped) */ + "iiii\0" + "glClearColorIiEXT\0" + "\0" + /* _mesa_function_pool[21043]: DeleteFramebuffersEXT (will be remapped) */ "ip\0" "glDeleteFramebuffers\0" "glDeleteFramebuffersEXT\0" "\0" - /* _mesa_function_pool[20878]: GlobalAlphaFactorsSUN (dynamic) */ + /* _mesa_function_pool[21092]: GlobalAlphaFactorsSUN (dynamic) */ "i\0" "glGlobalAlphaFactorsSUN\0" "\0" - /* _mesa_function_pool[20905]: IsEnabledIndexedEXT (will be remapped) */ + /* _mesa_function_pool[21119]: IsEnabledIndexedEXT (will be remapped) */ "ii\0" "glIsEnabledIndexedEXT\0" "\0" - /* _mesa_function_pool[20931]: TexEnviv (offset 187) */ + /* _mesa_function_pool[21145]: TexEnviv (offset 187) */ "iip\0" "glTexEnviv\0" "\0" - /* _mesa_function_pool[20947]: TexSubImage3D (offset 372) */ + /* _mesa_function_pool[21161]: TexSubImage3D (offset 372) */ "iiiiiiiiiip\0" "glTexSubImage3D\0" "glTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[20995]: Tangent3fEXT (dynamic) */ + /* _mesa_function_pool[21209]: Tangent3fEXT (dynamic) */ "fff\0" "glTangent3fEXT\0" "\0" - /* _mesa_function_pool[21015]: SecondaryColor3uivEXT (will be remapped) */ + /* _mesa_function_pool[21229]: SecondaryColor3uivEXT (will be remapped) */ "p\0" "glSecondaryColor3uiv\0" "glSecondaryColor3uivEXT\0" "\0" - /* _mesa_function_pool[21063]: MatrixIndexubvARB (dynamic) */ + /* _mesa_function_pool[21277]: MatrixIndexubvARB (dynamic) */ "ip\0" "glMatrixIndexubvARB\0" "\0" - /* _mesa_function_pool[21087]: Color4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[21301]: Color4fNormal3fVertex3fSUN (dynamic) */ "ffffffffff\0" "glColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[21128]: PixelTexGenParameterfSGIS (will be remapped) */ + /* _mesa_function_pool[21342]: PixelTexGenParameterfSGIS (will be remapped) */ "if\0" "glPixelTexGenParameterfSGIS\0" "\0" - /* _mesa_function_pool[21160]: CreateShader (will be remapped) */ + /* _mesa_function_pool[21374]: CreateShader (will be remapped) */ "i\0" "glCreateShader\0" "\0" - /* _mesa_function_pool[21178]: GetColorTableParameterfv (offset 344) */ + /* _mesa_function_pool[21392]: GetColorTableParameterfv (offset 344) */ "iip\0" "glGetColorTableParameterfv\0" "glGetColorTableParameterfvSGI\0" "glGetColorTableParameterfvEXT\0" "\0" - /* _mesa_function_pool[21270]: FragmentLightModelfvSGIX (dynamic) */ + /* _mesa_function_pool[21484]: FragmentLightModelfvSGIX (dynamic) */ "ip\0" "glFragmentLightModelfvSGIX\0" "\0" - /* _mesa_function_pool[21301]: Bitmap (offset 8) */ + /* _mesa_function_pool[21515]: Bitmap (offset 8) */ "iiffffp\0" "glBitmap\0" "\0" - /* _mesa_function_pool[21319]: MultiTexCoord3fARB (offset 394) */ + /* _mesa_function_pool[21533]: MultiTexCoord3fARB (offset 394) */ "ifff\0" "glMultiTexCoord3f\0" "glMultiTexCoord3fARB\0" "\0" - /* _mesa_function_pool[21364]: GetTexLevelParameterfv (offset 284) */ + /* _mesa_function_pool[21578]: GetTexLevelParameterfv (offset 284) */ "iiip\0" "glGetTexLevelParameterfv\0" "\0" - /* _mesa_function_pool[21395]: GetPixelTexGenParameterfvSGIS (will be remapped) */ + /* _mesa_function_pool[21609]: GetPixelTexGenParameterfvSGIS (will be remapped) */ "ip\0" "glGetPixelTexGenParameterfvSGIS\0" "\0" - /* _mesa_function_pool[21431]: GenFramebuffersEXT (will be remapped) */ + /* _mesa_function_pool[21645]: GenFramebuffersEXT (will be remapped) */ "ip\0" "glGenFramebuffers\0" "glGenFramebuffersEXT\0" "\0" - /* _mesa_function_pool[21474]: GetProgramParameterdvNV (will be remapped) */ + /* _mesa_function_pool[21688]: GetProgramParameterdvNV (will be remapped) */ "iiip\0" "glGetProgramParameterdvNV\0" "\0" - /* _mesa_function_pool[21506]: Vertex2sv (offset 133) */ + /* _mesa_function_pool[21720]: Vertex2sv (offset 133) */ "p\0" "glVertex2sv\0" "\0" - /* _mesa_function_pool[21521]: GetIntegerv (offset 263) */ + /* _mesa_function_pool[21735]: GetIntegerv (offset 263) */ "ip\0" "glGetIntegerv\0" "\0" - /* _mesa_function_pool[21539]: IsVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[21753]: IsVertexArrayAPPLE (will be remapped) */ "i\0" "glIsVertexArray\0" "glIsVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[21579]: FragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[21793]: FragmentLightfvSGIX (dynamic) */ "iip\0" "glFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[21606]: DetachShader (will be remapped) */ + /* _mesa_function_pool[21820]: DetachShader (will be remapped) */ "ii\0" "glDetachShader\0" "\0" - /* _mesa_function_pool[21625]: VertexAttrib4NubARB (will be remapped) */ + /* _mesa_function_pool[21839]: VertexAttrib4NubARB (will be remapped) */ "iiiii\0" "glVertexAttrib4Nub\0" "glVertexAttrib4NubARB\0" "\0" - /* _mesa_function_pool[21673]: GetProgramEnvParameterfvARB (will be remapped) */ + /* _mesa_function_pool[21887]: GetProgramEnvParameterfvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterfvARB\0" "\0" - /* _mesa_function_pool[21708]: GetTrackMatrixivNV (will be remapped) */ + /* _mesa_function_pool[21922]: GetTrackMatrixivNV (will be remapped) */ "iiip\0" "glGetTrackMatrixivNV\0" "\0" - /* _mesa_function_pool[21735]: VertexAttrib3svNV (will be remapped) */ + /* _mesa_function_pool[21949]: VertexAttrib3svNV (will be remapped) */ "ip\0" "glVertexAttrib3svNV\0" "\0" - /* _mesa_function_pool[21759]: Uniform4fvARB (will be remapped) */ + /* _mesa_function_pool[21973]: Uniform4fvARB (will be remapped) */ "iip\0" "glUniform4fv\0" "glUniform4fvARB\0" "\0" - /* _mesa_function_pool[21793]: MultTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[22007]: MultTransposeMatrixfARB (will be remapped) */ "p\0" "glMultTransposeMatrixf\0" "glMultTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[21845]: GetTexEnviv (offset 277) */ + /* _mesa_function_pool[22059]: GetTexEnviv (offset 277) */ "iip\0" "glGetTexEnviv\0" "\0" - /* _mesa_function_pool[21864]: ColorFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[22078]: ColorFragmentOp1ATI (will be remapped) */ "iiiiiii\0" "glColorFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[21895]: GetUniformfvARB (will be remapped) */ + /* _mesa_function_pool[22109]: GetUniformfvARB (will be remapped) */ "iip\0" "glGetUniformfv\0" "glGetUniformfvARB\0" "\0" - /* _mesa_function_pool[21933]: EGLImageTargetRenderbufferStorageOES (will be remapped) */ + /* _mesa_function_pool[22147]: EGLImageTargetRenderbufferStorageOES (will be remapped) */ "ip\0" "glEGLImageTargetRenderbufferStorageOES\0" "\0" - /* _mesa_function_pool[21976]: PopClientAttrib (offset 334) */ + /* _mesa_function_pool[22190]: PopClientAttrib (offset 334) */ "\0" "glPopClientAttrib\0" "\0" - /* _mesa_function_pool[21996]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[22210]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffffff\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[22067]: DetachObjectARB (will be remapped) */ + /* _mesa_function_pool[22281]: DetachObjectARB (will be remapped) */ "ii\0" "glDetachObjectARB\0" "\0" - /* _mesa_function_pool[22089]: VertexBlendARB (dynamic) */ + /* _mesa_function_pool[22303]: VertexBlendARB (dynamic) */ "i\0" "glVertexBlendARB\0" "\0" - /* _mesa_function_pool[22109]: WindowPos3iMESA (will be remapped) */ + /* _mesa_function_pool[22323]: WindowPos3iMESA (will be remapped) */ "iii\0" "glWindowPos3i\0" "glWindowPos3iARB\0" "glWindowPos3iMESA\0" "\0" - /* _mesa_function_pool[22163]: SeparableFilter2D (offset 360) */ + /* _mesa_function_pool[22377]: SeparableFilter2D (offset 360) */ "iiiiiipp\0" "glSeparableFilter2D\0" "glSeparableFilter2DEXT\0" "\0" - /* _mesa_function_pool[22216]: ProgramParameteriARB (will be remapped) */ + /* _mesa_function_pool[22430]: ProgramParameteriARB (will be remapped) */ "iii\0" "glProgramParameteriARB\0" "\0" - /* _mesa_function_pool[22244]: Map1d (offset 220) */ + /* _mesa_function_pool[22458]: Map1d (offset 220) */ "iddiip\0" "glMap1d\0" "\0" - /* _mesa_function_pool[22260]: Map1f (offset 221) */ + /* _mesa_function_pool[22474]: Map1f (offset 221) */ "iffiip\0" "glMap1f\0" "\0" - /* _mesa_function_pool[22276]: CompressedTexImage2DARB (will be remapped) */ + /* _mesa_function_pool[22490]: CompressedTexImage2DARB (will be remapped) */ "iiiiiiip\0" "glCompressedTexImage2D\0" "glCompressedTexImage2DARB\0" "\0" - /* _mesa_function_pool[22335]: ArrayElement (offset 306) */ + /* _mesa_function_pool[22549]: ArrayElement (offset 306) */ "i\0" "glArrayElement\0" "glArrayElementEXT\0" "\0" - /* _mesa_function_pool[22371]: TexImage2D (offset 183) */ + /* _mesa_function_pool[22585]: TexImage2D (offset 183) */ "iiiiiiiip\0" "glTexImage2D\0" "\0" - /* _mesa_function_pool[22395]: DepthBoundsEXT (will be remapped) */ + /* _mesa_function_pool[22609]: DepthBoundsEXT (will be remapped) */ "dd\0" "glDepthBoundsEXT\0" "\0" - /* _mesa_function_pool[22416]: ProgramParameters4fvNV (will be remapped) */ + /* _mesa_function_pool[22630]: ProgramParameters4fvNV (will be remapped) */ "iiip\0" "glProgramParameters4fvNV\0" "\0" - /* _mesa_function_pool[22447]: DeformationMap3fSGIX (dynamic) */ + /* _mesa_function_pool[22661]: DeformationMap3fSGIX (dynamic) */ "iffiiffiiffiip\0" "glDeformationMap3fSGIX\0" "\0" - /* _mesa_function_pool[22486]: GetProgramivNV (will be remapped) */ + /* _mesa_function_pool[22700]: GetProgramivNV (will be remapped) */ "iip\0" "glGetProgramivNV\0" "\0" - /* _mesa_function_pool[22508]: GetMinmaxParameteriv (offset 366) */ + /* _mesa_function_pool[22722]: GetMinmaxParameteriv (offset 366) */ "iip\0" "glGetMinmaxParameteriv\0" "glGetMinmaxParameterivEXT\0" "\0" - /* _mesa_function_pool[22562]: PixelTransferf (offset 247) */ + /* _mesa_function_pool[22776]: PixelTransferf (offset 247) */ "if\0" "glPixelTransferf\0" "\0" - /* _mesa_function_pool[22583]: CopyTexImage1D (offset 323) */ + /* _mesa_function_pool[22797]: CopyTexImage1D (offset 323) */ "iiiiiii\0" "glCopyTexImage1D\0" "glCopyTexImage1DEXT\0" "\0" - /* _mesa_function_pool[22629]: PushMatrix (offset 298) */ + /* _mesa_function_pool[22843]: PushMatrix (offset 298) */ "\0" "glPushMatrix\0" "\0" - /* _mesa_function_pool[22644]: Fogiv (offset 156) */ + /* _mesa_function_pool[22858]: Fogiv (offset 156) */ "ip\0" "glFogiv\0" "\0" - /* _mesa_function_pool[22656]: TexCoord1dv (offset 95) */ + /* _mesa_function_pool[22870]: TexCoord1dv (offset 95) */ "p\0" "glTexCoord1dv\0" "\0" - /* _mesa_function_pool[22673]: AlphaFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[22887]: AlphaFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiii\0" "glAlphaFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[22709]: PixelTransferi (offset 248) */ + /* _mesa_function_pool[22923]: PixelTransferi (offset 248) */ "ii\0" "glPixelTransferi\0" "\0" - /* _mesa_function_pool[22730]: GetVertexAttribdvNV (will be remapped) */ + /* _mesa_function_pool[22944]: GetVertexAttribdvNV (will be remapped) */ "iip\0" "glGetVertexAttribdvNV\0" "\0" - /* _mesa_function_pool[22757]: VertexAttrib3fvNV (will be remapped) */ + /* _mesa_function_pool[22971]: VertexAttrib3fvNV (will be remapped) */ "ip\0" "glVertexAttrib3fvNV\0" "\0" - /* _mesa_function_pool[22781]: Rotatef (offset 300) */ + /* _mesa_function_pool[22995]: Rotatef (offset 300) */ "ffff\0" "glRotatef\0" "\0" - /* _mesa_function_pool[22797]: GetFinalCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[23011]: GetFinalCombinerInputParameterivNV (will be remapped) */ "iip\0" "glGetFinalCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[22839]: Vertex3i (offset 138) */ + /* _mesa_function_pool[23053]: Vertex3i (offset 138) */ "iii\0" "glVertex3i\0" "\0" - /* _mesa_function_pool[22855]: Vertex3f (offset 136) */ + /* _mesa_function_pool[23069]: Vertex3f (offset 136) */ "fff\0" "glVertex3f\0" "\0" - /* _mesa_function_pool[22871]: Clear (offset 203) */ + /* _mesa_function_pool[23085]: Clear (offset 203) */ "i\0" "glClear\0" "\0" - /* _mesa_function_pool[22882]: Vertex3d (offset 134) */ + /* _mesa_function_pool[23096]: Vertex3d (offset 134) */ "ddd\0" "glVertex3d\0" "\0" - /* _mesa_function_pool[22898]: GetMapParameterivNV (dynamic) */ + /* _mesa_function_pool[23112]: GetMapParameterivNV (dynamic) */ "iip\0" "glGetMapParameterivNV\0" "\0" - /* _mesa_function_pool[22925]: Uniform4iARB (will be remapped) */ + /* _mesa_function_pool[23139]: Uniform4iARB (will be remapped) */ "iiiii\0" "glUniform4i\0" "glUniform4iARB\0" "\0" - /* _mesa_function_pool[22959]: ReadBuffer (offset 254) */ + /* _mesa_function_pool[23173]: ReadBuffer (offset 254) */ "i\0" "glReadBuffer\0" "\0" - /* _mesa_function_pool[22975]: ConvolutionParameteri (offset 352) */ + /* _mesa_function_pool[23189]: ConvolutionParameteri (offset 352) */ "iii\0" "glConvolutionParameteri\0" "glConvolutionParameteriEXT\0" "\0" - /* _mesa_function_pool[23031]: Ortho (offset 296) */ + /* _mesa_function_pool[23245]: Ortho (offset 296) */ "dddddd\0" "glOrtho\0" "\0" - /* _mesa_function_pool[23047]: Binormal3sEXT (dynamic) */ + /* _mesa_function_pool[23261]: Binormal3sEXT (dynamic) */ "iii\0" "glBinormal3sEXT\0" "\0" - /* _mesa_function_pool[23068]: ListBase (offset 6) */ + /* _mesa_function_pool[23282]: ListBase (offset 6) */ "i\0" "glListBase\0" "\0" - /* _mesa_function_pool[23082]: Vertex3s (offset 140) */ + /* _mesa_function_pool[23296]: Vertex3s (offset 140) */ "iii\0" "glVertex3s\0" "\0" - /* _mesa_function_pool[23098]: ConvolutionParameterf (offset 350) */ + /* _mesa_function_pool[23312]: ConvolutionParameterf (offset 350) */ "iif\0" "glConvolutionParameterf\0" "glConvolutionParameterfEXT\0" "\0" - /* _mesa_function_pool[23154]: GetColorTableParameteriv (offset 345) */ + /* _mesa_function_pool[23368]: GetColorTableParameteriv (offset 345) */ "iip\0" "glGetColorTableParameteriv\0" "glGetColorTableParameterivSGI\0" "glGetColorTableParameterivEXT\0" "\0" - /* _mesa_function_pool[23246]: ProgramEnvParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[23460]: ProgramEnvParameter4dvARB (will be remapped) */ "iip\0" "glProgramEnvParameter4dvARB\0" "glProgramParameter4dvNV\0" "\0" - /* _mesa_function_pool[23303]: ShadeModel (offset 177) */ + /* _mesa_function_pool[23517]: ShadeModel (offset 177) */ "i\0" "glShadeModel\0" "\0" - /* _mesa_function_pool[23319]: VertexAttribs2fvNV (will be remapped) */ + /* _mesa_function_pool[23533]: VertexAttribs2fvNV (will be remapped) */ "iip\0" "glVertexAttribs2fvNV\0" "\0" - /* _mesa_function_pool[23345]: Rectiv (offset 91) */ + /* _mesa_function_pool[23559]: Rectiv (offset 91) */ "pp\0" "glRectiv\0" "\0" - /* _mesa_function_pool[23358]: UseProgramObjectARB (will be remapped) */ + /* _mesa_function_pool[23572]: UseProgramObjectARB (will be remapped) */ "i\0" "glUseProgram\0" "glUseProgramObjectARB\0" "\0" - /* _mesa_function_pool[23396]: GetMapParameterfvNV (dynamic) */ + /* _mesa_function_pool[23610]: GetMapParameterfvNV (dynamic) */ "iip\0" "glGetMapParameterfvNV\0" "\0" - /* _mesa_function_pool[23423]: EndConditionalRenderNV (will be remapped) */ + /* _mesa_function_pool[23637]: EndConditionalRenderNV (will be remapped) */ "\0" "glEndConditionalRenderNV\0" "\0" - /* _mesa_function_pool[23450]: PassTexCoordATI (will be remapped) */ + /* _mesa_function_pool[23664]: PassTexCoordATI (will be remapped) */ "iii\0" "glPassTexCoordATI\0" "\0" - /* _mesa_function_pool[23473]: DeleteProgram (will be remapped) */ + /* _mesa_function_pool[23687]: DeleteProgram (will be remapped) */ "i\0" "glDeleteProgram\0" "\0" - /* _mesa_function_pool[23492]: Tangent3ivEXT (dynamic) */ + /* _mesa_function_pool[23706]: Tangent3ivEXT (dynamic) */ "p\0" "glTangent3ivEXT\0" "\0" - /* _mesa_function_pool[23511]: Tangent3dEXT (dynamic) */ + /* _mesa_function_pool[23725]: Tangent3dEXT (dynamic) */ "ddd\0" "glTangent3dEXT\0" "\0" - /* _mesa_function_pool[23531]: SecondaryColor3dvEXT (will be remapped) */ + /* _mesa_function_pool[23745]: SecondaryColor3dvEXT (will be remapped) */ "p\0" "glSecondaryColor3dv\0" "glSecondaryColor3dvEXT\0" "\0" - /* _mesa_function_pool[23577]: Vertex2fv (offset 129) */ + /* _mesa_function_pool[23791]: Vertex2fv (offset 129) */ "p\0" "glVertex2fv\0" "\0" - /* _mesa_function_pool[23592]: MultiDrawArraysEXT (will be remapped) */ + /* _mesa_function_pool[23806]: MultiDrawArraysEXT (will be remapped) */ "ippi\0" "glMultiDrawArrays\0" "glMultiDrawArraysEXT\0" "\0" - /* _mesa_function_pool[23637]: BindRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[23851]: BindRenderbufferEXT (will be remapped) */ "ii\0" "glBindRenderbuffer\0" "glBindRenderbufferEXT\0" "\0" - /* _mesa_function_pool[23682]: MultiTexCoord4dARB (offset 400) */ + /* _mesa_function_pool[23896]: MultiTexCoord4dARB (offset 400) */ "idddd\0" "glMultiTexCoord4d\0" "glMultiTexCoord4dARB\0" "\0" - /* _mesa_function_pool[23728]: FramebufferTextureFaceARB (will be remapped) */ + /* _mesa_function_pool[23942]: FramebufferTextureFaceARB (will be remapped) */ "iiiii\0" "glFramebufferTextureFaceARB\0" "\0" - /* _mesa_function_pool[23763]: Vertex3sv (offset 141) */ + /* _mesa_function_pool[23977]: Vertex3sv (offset 141) */ "p\0" "glVertex3sv\0" "\0" - /* _mesa_function_pool[23778]: SecondaryColor3usEXT (will be remapped) */ + /* _mesa_function_pool[23992]: SecondaryColor3usEXT (will be remapped) */ "iii\0" "glSecondaryColor3us\0" "glSecondaryColor3usEXT\0" "\0" - /* _mesa_function_pool[23826]: ProgramLocalParameter4fvARB (will be remapped) */ + /* _mesa_function_pool[24040]: ProgramLocalParameter4fvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4fvARB\0" "\0" - /* _mesa_function_pool[23861]: DeleteProgramsNV (will be remapped) */ + /* _mesa_function_pool[24075]: DeleteProgramsNV (will be remapped) */ "ip\0" "glDeleteProgramsARB\0" "glDeleteProgramsNV\0" "\0" - /* _mesa_function_pool[23904]: EvalMesh1 (offset 236) */ + /* _mesa_function_pool[24118]: EvalMesh1 (offset 236) */ "iii\0" "glEvalMesh1\0" "\0" - /* _mesa_function_pool[23921]: PauseTransformFeedback (will be remapped) */ + /* _mesa_function_pool[24135]: PauseTransformFeedback (will be remapped) */ "\0" "glPauseTransformFeedback\0" "\0" - /* _mesa_function_pool[23948]: MultiTexCoord1sARB (offset 382) */ + /* _mesa_function_pool[24162]: MultiTexCoord1sARB (offset 382) */ "ii\0" "glMultiTexCoord1s\0" "glMultiTexCoord1sARB\0" "\0" - /* _mesa_function_pool[23991]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[24205]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */ "iffffff\0" "glReplacementCodeuiColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[24038]: GetVertexAttribPointervNV (will be remapped) */ + /* _mesa_function_pool[24252]: GetVertexAttribPointervNV (will be remapped) */ "iip\0" "glGetVertexAttribPointerv\0" "glGetVertexAttribPointervARB\0" "glGetVertexAttribPointervNV\0" "\0" - /* _mesa_function_pool[24126]: VertexAttribs1fvNV (will be remapped) */ + /* _mesa_function_pool[24340]: VertexAttribs1fvNV (will be remapped) */ "iip\0" "glVertexAttribs1fvNV\0" "\0" - /* _mesa_function_pool[24152]: MultiTexCoord1dvARB (offset 377) */ + /* _mesa_function_pool[24366]: MultiTexCoord1dvARB (offset 377) */ "ip\0" "glMultiTexCoord1dv\0" "glMultiTexCoord1dvARB\0" "\0" - /* _mesa_function_pool[24197]: Uniform2iARB (will be remapped) */ + /* _mesa_function_pool[24411]: Uniform2iARB (will be remapped) */ "iii\0" "glUniform2i\0" "glUniform2iARB\0" "\0" - /* _mesa_function_pool[24229]: Vertex2iv (offset 131) */ + /* _mesa_function_pool[24443]: Vertex2iv (offset 131) */ "p\0" "glVertex2iv\0" "\0" - /* _mesa_function_pool[24244]: GetProgramStringNV (will be remapped) */ + /* _mesa_function_pool[24458]: GetProgramStringNV (will be remapped) */ "iip\0" "glGetProgramStringNV\0" "\0" - /* _mesa_function_pool[24270]: ColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[24484]: ColorPointerEXT (will be remapped) */ "iiiip\0" "glColorPointerEXT\0" "\0" - /* _mesa_function_pool[24295]: LineWidth (offset 168) */ + /* _mesa_function_pool[24509]: LineWidth (offset 168) */ "f\0" "glLineWidth\0" "\0" - /* _mesa_function_pool[24310]: MapBufferARB (will be remapped) */ + /* _mesa_function_pool[24524]: MapBufferARB (will be remapped) */ "ii\0" "glMapBuffer\0" "glMapBufferARB\0" "\0" - /* _mesa_function_pool[24341]: MultiDrawElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[24555]: MultiDrawElementsBaseVertex (will be remapped) */ "ipipip\0" "glMultiDrawElementsBaseVertex\0" "\0" - /* _mesa_function_pool[24379]: Binormal3svEXT (dynamic) */ + /* _mesa_function_pool[24593]: TexParameterIuivEXT (will be remapped) */ + "iip\0" + "glTexParameterIuivEXT\0" + "\0" + /* _mesa_function_pool[24620]: Binormal3svEXT (dynamic) */ "p\0" "glBinormal3svEXT\0" "\0" - /* _mesa_function_pool[24399]: ApplyTextureEXT (dynamic) */ + /* _mesa_function_pool[24640]: ApplyTextureEXT (dynamic) */ "i\0" "glApplyTextureEXT\0" "\0" - /* _mesa_function_pool[24420]: TexGendv (offset 189) */ + /* _mesa_function_pool[24661]: TexGendv (offset 189) */ "iip\0" "glTexGendv\0" "\0" - /* _mesa_function_pool[24436]: EnableIndexedEXT (will be remapped) */ + /* _mesa_function_pool[24677]: EnableIndexedEXT (will be remapped) */ "ii\0" "glEnableIndexedEXT\0" "\0" - /* _mesa_function_pool[24459]: TextureMaterialEXT (dynamic) */ + /* _mesa_function_pool[24700]: TextureMaterialEXT (dynamic) */ "ii\0" "glTextureMaterialEXT\0" "\0" - /* _mesa_function_pool[24484]: TextureLightEXT (dynamic) */ + /* _mesa_function_pool[24725]: TextureLightEXT (dynamic) */ "i\0" "glTextureLightEXT\0" "\0" - /* _mesa_function_pool[24505]: ResetMinmax (offset 370) */ + /* _mesa_function_pool[24746]: ResetMinmax (offset 370) */ "i\0" "glResetMinmax\0" "glResetMinmaxEXT\0" "\0" - /* _mesa_function_pool[24539]: SpriteParameterfSGIX (dynamic) */ + /* _mesa_function_pool[24780]: SpriteParameterfSGIX (dynamic) */ "if\0" "glSpriteParameterfSGIX\0" "\0" - /* _mesa_function_pool[24566]: EnableClientState (offset 313) */ + /* _mesa_function_pool[24807]: EnableClientState (offset 313) */ "i\0" "glEnableClientState\0" "\0" - /* _mesa_function_pool[24589]: VertexAttrib4sNV (will be remapped) */ + /* _mesa_function_pool[24830]: VertexAttrib4sNV (will be remapped) */ "iiiii\0" "glVertexAttrib4sNV\0" "\0" - /* _mesa_function_pool[24615]: GetConvolutionParameterfv (offset 357) */ + /* _mesa_function_pool[24856]: GetConvolutionParameterfv (offset 357) */ "iip\0" "glGetConvolutionParameterfv\0" "glGetConvolutionParameterfvEXT\0" "\0" - /* _mesa_function_pool[24679]: VertexAttribs4dvNV (will be remapped) */ + /* _mesa_function_pool[24920]: VertexAttribs4dvNV (will be remapped) */ "iip\0" "glVertexAttribs4dvNV\0" "\0" - /* _mesa_function_pool[24705]: MultiModeDrawArraysIBM (will be remapped) */ + /* _mesa_function_pool[24946]: MultiModeDrawArraysIBM (will be remapped) */ "pppii\0" "glMultiModeDrawArraysIBM\0" "\0" - /* _mesa_function_pool[24737]: VertexAttrib4dARB (will be remapped) */ + /* _mesa_function_pool[24978]: VertexAttrib4dARB (will be remapped) */ "idddd\0" "glVertexAttrib4d\0" "glVertexAttrib4dARB\0" "\0" - /* _mesa_function_pool[24781]: GetTexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[25022]: GetTexBumpParameterfvATI (will be remapped) */ "ip\0" "glGetTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[24812]: ProgramNamedParameter4dNV (will be remapped) */ + /* _mesa_function_pool[25053]: ProgramNamedParameter4dNV (will be remapped) */ "iipdddd\0" "glProgramNamedParameter4dNV\0" "\0" - /* _mesa_function_pool[24849]: GetMaterialfv (offset 269) */ + /* _mesa_function_pool[25090]: GetMaterialfv (offset 269) */ "iip\0" "glGetMaterialfv\0" "\0" - /* _mesa_function_pool[24870]: VertexWeightfEXT (dynamic) */ + /* _mesa_function_pool[25111]: VertexWeightfEXT (dynamic) */ "f\0" "glVertexWeightfEXT\0" "\0" - /* _mesa_function_pool[24892]: Binormal3fEXT (dynamic) */ + /* _mesa_function_pool[25133]: Binormal3fEXT (dynamic) */ "fff\0" "glBinormal3fEXT\0" "\0" - /* _mesa_function_pool[24913]: CallList (offset 2) */ + /* _mesa_function_pool[25154]: CallList (offset 2) */ "i\0" "glCallList\0" "\0" - /* _mesa_function_pool[24927]: Materialfv (offset 170) */ + /* _mesa_function_pool[25168]: Materialfv (offset 170) */ "iip\0" "glMaterialfv\0" "\0" - /* _mesa_function_pool[24945]: TexCoord3fv (offset 113) */ + /* _mesa_function_pool[25186]: TexCoord3fv (offset 113) */ "p\0" "glTexCoord3fv\0" "\0" - /* _mesa_function_pool[24962]: FogCoordfvEXT (will be remapped) */ + /* _mesa_function_pool[25203]: FogCoordfvEXT (will be remapped) */ "p\0" "glFogCoordfv\0" "glFogCoordfvEXT\0" "\0" - /* _mesa_function_pool[24994]: MultiTexCoord1ivARB (offset 381) */ + /* _mesa_function_pool[25235]: MultiTexCoord1ivARB (offset 381) */ "ip\0" "glMultiTexCoord1iv\0" "glMultiTexCoord1ivARB\0" "\0" - /* _mesa_function_pool[25039]: SecondaryColor3ubEXT (will be remapped) */ + /* _mesa_function_pool[25280]: SecondaryColor3ubEXT (will be remapped) */ "iii\0" "glSecondaryColor3ub\0" "glSecondaryColor3ubEXT\0" "\0" - /* _mesa_function_pool[25087]: MultiTexCoord2ivARB (offset 389) */ + /* _mesa_function_pool[25328]: MultiTexCoord2ivARB (offset 389) */ "ip\0" "glMultiTexCoord2iv\0" "glMultiTexCoord2ivARB\0" "\0" - /* _mesa_function_pool[25132]: FogFuncSGIS (dynamic) */ + /* _mesa_function_pool[25373]: FogFuncSGIS (dynamic) */ "ip\0" "glFogFuncSGIS\0" "\0" - /* _mesa_function_pool[25150]: CopyTexSubImage2D (offset 326) */ + /* _mesa_function_pool[25391]: CopyTexSubImage2D (offset 326) */ "iiiiiiii\0" "glCopyTexSubImage2D\0" "glCopyTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[25203]: GetObjectParameterivARB (will be remapped) */ + /* _mesa_function_pool[25444]: GetObjectParameterivARB (will be remapped) */ "iip\0" "glGetObjectParameterivARB\0" "\0" - /* _mesa_function_pool[25234]: Color3iv (offset 16) */ + /* _mesa_function_pool[25475]: Color3iv (offset 16) */ "p\0" "glColor3iv\0" "\0" - /* _mesa_function_pool[25248]: TexCoord4fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[25489]: TexCoord4fVertex4fSUN (dynamic) */ "ffffffff\0" "glTexCoord4fVertex4fSUN\0" "\0" - /* _mesa_function_pool[25282]: DrawElements (offset 311) */ + /* _mesa_function_pool[25523]: DrawElements (offset 311) */ "iiip\0" "glDrawElements\0" "\0" - /* _mesa_function_pool[25303]: BindVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[25544]: BindVertexArrayAPPLE (will be remapped) */ "i\0" "glBindVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[25329]: GetProgramLocalParameterdvARB (will be remapped) */ + /* _mesa_function_pool[25570]: GetProgramLocalParameterdvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterdvARB\0" "\0" - /* _mesa_function_pool[25366]: GetHistogramParameteriv (offset 363) */ + /* _mesa_function_pool[25607]: GetHistogramParameteriv (offset 363) */ "iip\0" "glGetHistogramParameteriv\0" "glGetHistogramParameterivEXT\0" "\0" - /* _mesa_function_pool[25426]: MultiTexCoord1iARB (offset 380) */ + /* _mesa_function_pool[25667]: MultiTexCoord1iARB (offset 380) */ "ii\0" "glMultiTexCoord1i\0" "glMultiTexCoord1iARB\0" "\0" - /* _mesa_function_pool[25469]: GetConvolutionFilter (offset 356) */ + /* _mesa_function_pool[25710]: GetConvolutionFilter (offset 356) */ "iiip\0" "glGetConvolutionFilter\0" "glGetConvolutionFilterEXT\0" "\0" - /* _mesa_function_pool[25524]: GetProgramivARB (will be remapped) */ + /* _mesa_function_pool[25765]: GetProgramivARB (will be remapped) */ "iip\0" "glGetProgramivARB\0" "\0" - /* _mesa_function_pool[25547]: BlendFuncSeparateEXT (will be remapped) */ + /* _mesa_function_pool[25788]: BlendFuncSeparateEXT (will be remapped) */ "iiii\0" "glBlendFuncSeparate\0" "glBlendFuncSeparateEXT\0" "glBlendFuncSeparateINGR\0" "\0" - /* _mesa_function_pool[25620]: MapBufferRange (will be remapped) */ + /* _mesa_function_pool[25861]: MapBufferRange (will be remapped) */ "iiii\0" "glMapBufferRange\0" "\0" - /* _mesa_function_pool[25643]: ProgramParameters4dvNV (will be remapped) */ + /* _mesa_function_pool[25884]: ProgramParameters4dvNV (will be remapped) */ "iiip\0" "glProgramParameters4dvNV\0" "\0" - /* _mesa_function_pool[25674]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[25915]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[25711]: EvalPoint2 (offset 239) */ + /* _mesa_function_pool[25952]: EvalPoint2 (offset 239) */ "ii\0" "glEvalPoint2\0" "\0" - /* _mesa_function_pool[25728]: EvalPoint1 (offset 237) */ + /* _mesa_function_pool[25969]: EvalPoint1 (offset 237) */ "i\0" "glEvalPoint1\0" "\0" - /* _mesa_function_pool[25744]: Binormal3dvEXT (dynamic) */ + /* _mesa_function_pool[25985]: Binormal3dvEXT (dynamic) */ "p\0" "glBinormal3dvEXT\0" "\0" - /* _mesa_function_pool[25764]: PopMatrix (offset 297) */ + /* _mesa_function_pool[26005]: PopMatrix (offset 297) */ "\0" "glPopMatrix\0" "\0" - /* _mesa_function_pool[25778]: FinishFenceNV (will be remapped) */ + /* _mesa_function_pool[26019]: FinishFenceNV (will be remapped) */ "i\0" "glFinishFenceNV\0" "\0" - /* _mesa_function_pool[25797]: GetFogFuncSGIS (dynamic) */ + /* _mesa_function_pool[26038]: GetFogFuncSGIS (dynamic) */ "p\0" "glGetFogFuncSGIS\0" "\0" - /* _mesa_function_pool[25817]: GetUniformLocationARB (will be remapped) */ + /* _mesa_function_pool[26058]: GetUniformLocationARB (will be remapped) */ "ip\0" "glGetUniformLocation\0" "glGetUniformLocationARB\0" "\0" - /* _mesa_function_pool[25866]: SecondaryColor3fEXT (will be remapped) */ + /* _mesa_function_pool[26107]: SecondaryColor3fEXT (will be remapped) */ "fff\0" "glSecondaryColor3f\0" "glSecondaryColor3fEXT\0" "\0" - /* _mesa_function_pool[25912]: GetTexGeniv (offset 280) */ + /* _mesa_function_pool[26153]: GetTexGeniv (offset 280) */ "iip\0" "glGetTexGeniv\0" "\0" - /* _mesa_function_pool[25931]: CombinerInputNV (will be remapped) */ + /* _mesa_function_pool[26172]: CombinerInputNV (will be remapped) */ "iiiiii\0" "glCombinerInputNV\0" "\0" - /* _mesa_function_pool[25957]: VertexAttrib3sARB (will be remapped) */ + /* _mesa_function_pool[26198]: VertexAttrib3sARB (will be remapped) */ "iiii\0" "glVertexAttrib3s\0" "glVertexAttrib3sARB\0" "\0" - /* _mesa_function_pool[26000]: IsTransformFeedback (will be remapped) */ + /* _mesa_function_pool[26241]: IsTransformFeedback (will be remapped) */ "i\0" "glIsTransformFeedback\0" "\0" - /* _mesa_function_pool[26025]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[26266]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[26070]: Map2d (offset 222) */ + /* _mesa_function_pool[26311]: Map2d (offset 222) */ "iddiiddiip\0" "glMap2d\0" "\0" - /* _mesa_function_pool[26090]: Map2f (offset 223) */ + /* _mesa_function_pool[26331]: Map2f (offset 223) */ "iffiiffiip\0" "glMap2f\0" "\0" - /* _mesa_function_pool[26110]: ProgramStringARB (will be remapped) */ + /* _mesa_function_pool[26351]: ProgramStringARB (will be remapped) */ "iiip\0" "glProgramStringARB\0" "\0" - /* _mesa_function_pool[26135]: Vertex4s (offset 148) */ + /* _mesa_function_pool[26376]: Vertex4s (offset 148) */ "iiii\0" "glVertex4s\0" "\0" - /* _mesa_function_pool[26152]: TexCoord4fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[26393]: TexCoord4fVertex4fvSUN (dynamic) */ "pp\0" "glTexCoord4fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[26181]: FragmentLightModelivSGIX (dynamic) */ + /* _mesa_function_pool[26422]: FragmentLightModelivSGIX (dynamic) */ "ip\0" "glFragmentLightModelivSGIX\0" "\0" - /* _mesa_function_pool[26212]: VertexAttrib1fNV (will be remapped) */ + /* _mesa_function_pool[26453]: VertexAttrib1fNV (will be remapped) */ "if\0" "glVertexAttrib1fNV\0" "\0" - /* _mesa_function_pool[26235]: Vertex4f (offset 144) */ + /* _mesa_function_pool[26476]: Vertex4f (offset 144) */ "ffff\0" "glVertex4f\0" "\0" - /* _mesa_function_pool[26252]: EvalCoord1d (offset 228) */ + /* _mesa_function_pool[26493]: EvalCoord1d (offset 228) */ "d\0" "glEvalCoord1d\0" "\0" - /* _mesa_function_pool[26269]: Vertex4d (offset 142) */ + /* _mesa_function_pool[26510]: Vertex4d (offset 142) */ "dddd\0" "glVertex4d\0" "\0" - /* _mesa_function_pool[26286]: RasterPos4dv (offset 79) */ + /* _mesa_function_pool[26527]: RasterPos4dv (offset 79) */ "p\0" "glRasterPos4dv\0" "\0" - /* _mesa_function_pool[26304]: FragmentLightfSGIX (dynamic) */ + /* _mesa_function_pool[26545]: UseShaderProgramEXT (will be remapped) */ + "ii\0" + "glUseShaderProgramEXT\0" + "\0" + /* _mesa_function_pool[26571]: FragmentLightfSGIX (dynamic) */ "iif\0" "glFragmentLightfSGIX\0" "\0" - /* _mesa_function_pool[26330]: GetCompressedTexImageARB (will be remapped) */ + /* _mesa_function_pool[26597]: GetCompressedTexImageARB (will be remapped) */ "iip\0" "glGetCompressedTexImage\0" "glGetCompressedTexImageARB\0" "\0" - /* _mesa_function_pool[26386]: GetTexGenfv (offset 279) */ + /* _mesa_function_pool[26653]: GetTexGenfv (offset 279) */ "iip\0" "glGetTexGenfv\0" "\0" - /* _mesa_function_pool[26405]: Vertex4i (offset 146) */ + /* _mesa_function_pool[26672]: Vertex4i (offset 146) */ "iiii\0" "glVertex4i\0" "\0" - /* _mesa_function_pool[26422]: VertexWeightPointerEXT (dynamic) */ + /* _mesa_function_pool[26689]: VertexWeightPointerEXT (dynamic) */ "iiip\0" "glVertexWeightPointerEXT\0" "\0" - /* _mesa_function_pool[26453]: GetHistogram (offset 361) */ + /* _mesa_function_pool[26720]: GetHistogram (offset 361) */ "iiiip\0" "glGetHistogram\0" "glGetHistogramEXT\0" "\0" - /* _mesa_function_pool[26493]: ActiveStencilFaceEXT (will be remapped) */ + /* _mesa_function_pool[26760]: ActiveStencilFaceEXT (will be remapped) */ "i\0" "glActiveStencilFaceEXT\0" "\0" - /* _mesa_function_pool[26519]: StencilFuncSeparateATI (will be remapped) */ + /* _mesa_function_pool[26786]: StencilFuncSeparateATI (will be remapped) */ "iiii\0" "glStencilFuncSeparateATI\0" "\0" - /* _mesa_function_pool[26550]: Materialf (offset 169) */ + /* _mesa_function_pool[26817]: Materialf (offset 169) */ "iif\0" "glMaterialf\0" "\0" - /* _mesa_function_pool[26567]: GetShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[26834]: GetShaderSourceARB (will be remapped) */ "iipp\0" "glGetShaderSource\0" "glGetShaderSourceARB\0" "\0" - /* _mesa_function_pool[26612]: IglooInterfaceSGIX (dynamic) */ + /* _mesa_function_pool[26879]: IglooInterfaceSGIX (dynamic) */ "ip\0" "glIglooInterfaceSGIX\0" "\0" - /* _mesa_function_pool[26637]: Materiali (offset 171) */ + /* _mesa_function_pool[26904]: Materiali (offset 171) */ "iii\0" "glMateriali\0" "\0" - /* _mesa_function_pool[26654]: VertexAttrib4dNV (will be remapped) */ + /* _mesa_function_pool[26921]: VertexAttrib4dNV (will be remapped) */ "idddd\0" "glVertexAttrib4dNV\0" "\0" - /* _mesa_function_pool[26680]: MultiModeDrawElementsIBM (will be remapped) */ + /* _mesa_function_pool[26947]: MultiModeDrawElementsIBM (will be remapped) */ "ppipii\0" "glMultiModeDrawElementsIBM\0" "\0" - /* _mesa_function_pool[26715]: Indexsv (offset 51) */ + /* _mesa_function_pool[26982]: Indexsv (offset 51) */ "p\0" "glIndexsv\0" "\0" - /* _mesa_function_pool[26728]: MultiTexCoord4svARB (offset 407) */ + /* _mesa_function_pool[26995]: MultiTexCoord4svARB (offset 407) */ "ip\0" "glMultiTexCoord4sv\0" "glMultiTexCoord4svARB\0" "\0" - /* _mesa_function_pool[26773]: LightModelfv (offset 164) */ + /* _mesa_function_pool[27040]: LightModelfv (offset 164) */ "ip\0" "glLightModelfv\0" "\0" - /* _mesa_function_pool[26792]: TexCoord2dv (offset 103) */ + /* _mesa_function_pool[27059]: TexCoord2dv (offset 103) */ "p\0" "glTexCoord2dv\0" "\0" - /* _mesa_function_pool[26809]: GenQueriesARB (will be remapped) */ + /* _mesa_function_pool[27076]: GenQueriesARB (will be remapped) */ "ip\0" "glGenQueries\0" "glGenQueriesARB\0" "\0" - /* _mesa_function_pool[26842]: EvalCoord1dv (offset 229) */ + /* _mesa_function_pool[27109]: EvalCoord1dv (offset 229) */ "p\0" "glEvalCoord1dv\0" "\0" - /* _mesa_function_pool[26860]: ReplacementCodeuiVertex3fSUN (dynamic) */ + /* _mesa_function_pool[27127]: ReplacementCodeuiVertex3fSUN (dynamic) */ "ifff\0" "glReplacementCodeuiVertex3fSUN\0" "\0" - /* _mesa_function_pool[26897]: Translated (offset 303) */ + /* _mesa_function_pool[27164]: Translated (offset 303) */ "ddd\0" "glTranslated\0" "\0" - /* _mesa_function_pool[26915]: Translatef (offset 304) */ + /* _mesa_function_pool[27182]: Translatef (offset 304) */ "fff\0" "glTranslatef\0" "\0" - /* _mesa_function_pool[26933]: StencilMask (offset 209) */ + /* _mesa_function_pool[27200]: StencilMask (offset 209) */ "i\0" "glStencilMask\0" "\0" - /* _mesa_function_pool[26950]: Tangent3iEXT (dynamic) */ + /* _mesa_function_pool[27217]: Tangent3iEXT (dynamic) */ "iii\0" "glTangent3iEXT\0" "\0" - /* _mesa_function_pool[26970]: GetLightiv (offset 265) */ + /* _mesa_function_pool[27237]: GetLightiv (offset 265) */ "iip\0" "glGetLightiv\0" "\0" - /* _mesa_function_pool[26988]: DrawMeshArraysSUN (dynamic) */ + /* _mesa_function_pool[27255]: DrawMeshArraysSUN (dynamic) */ "iiii\0" "glDrawMeshArraysSUN\0" "\0" - /* _mesa_function_pool[27014]: IsList (offset 287) */ + /* _mesa_function_pool[27281]: IsList (offset 287) */ "i\0" "glIsList\0" "\0" - /* _mesa_function_pool[27026]: IsSync (will be remapped) */ + /* _mesa_function_pool[27293]: IsSync (will be remapped) */ "i\0" "glIsSync\0" "\0" - /* _mesa_function_pool[27038]: RenderMode (offset 196) */ + /* _mesa_function_pool[27305]: RenderMode (offset 196) */ "i\0" "glRenderMode\0" "\0" - /* _mesa_function_pool[27054]: GetMapControlPointsNV (dynamic) */ + /* _mesa_function_pool[27321]: GetMapControlPointsNV (dynamic) */ "iiiiiip\0" "glGetMapControlPointsNV\0" "\0" - /* _mesa_function_pool[27087]: DrawBuffersARB (will be remapped) */ + /* _mesa_function_pool[27354]: DrawBuffersARB (will be remapped) */ "ip\0" "glDrawBuffers\0" "glDrawBuffersARB\0" "glDrawBuffersATI\0" "\0" - /* _mesa_function_pool[27139]: ProgramLocalParameter4fARB (will be remapped) */ + /* _mesa_function_pool[27406]: ProgramLocalParameter4fARB (will be remapped) */ "iiffff\0" "glProgramLocalParameter4fARB\0" "\0" - /* _mesa_function_pool[27176]: SpriteParameterivSGIX (dynamic) */ + /* _mesa_function_pool[27443]: SpriteParameterivSGIX (dynamic) */ "ip\0" "glSpriteParameterivSGIX\0" "\0" - /* _mesa_function_pool[27204]: ProvokingVertexEXT (will be remapped) */ + /* _mesa_function_pool[27471]: ProvokingVertexEXT (will be remapped) */ "i\0" "glProvokingVertexEXT\0" "glProvokingVertex\0" "\0" - /* _mesa_function_pool[27246]: MultiTexCoord1fARB (offset 378) */ + /* _mesa_function_pool[27513]: MultiTexCoord1fARB (offset 378) */ "if\0" "glMultiTexCoord1f\0" "glMultiTexCoord1fARB\0" "\0" - /* _mesa_function_pool[27289]: LoadName (offset 198) */ + /* _mesa_function_pool[27556]: LoadName (offset 198) */ "i\0" "glLoadName\0" "\0" - /* _mesa_function_pool[27303]: VertexAttribs4ubvNV (will be remapped) */ + /* _mesa_function_pool[27570]: VertexAttribs4ubvNV (will be remapped) */ "iip\0" "glVertexAttribs4ubvNV\0" "\0" - /* _mesa_function_pool[27330]: WeightsvARB (dynamic) */ + /* _mesa_function_pool[27597]: WeightsvARB (dynamic) */ "ip\0" "glWeightsvARB\0" "\0" - /* _mesa_function_pool[27348]: Uniform1fvARB (will be remapped) */ + /* _mesa_function_pool[27615]: Uniform1fvARB (will be remapped) */ "iip\0" "glUniform1fv\0" "glUniform1fvARB\0" "\0" - /* _mesa_function_pool[27382]: CopyTexSubImage1D (offset 325) */ + /* _mesa_function_pool[27649]: CopyTexSubImage1D (offset 325) */ "iiiiii\0" "glCopyTexSubImage1D\0" "glCopyTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[27433]: CullFace (offset 152) */ + /* _mesa_function_pool[27700]: CullFace (offset 152) */ "i\0" "glCullFace\0" "\0" - /* _mesa_function_pool[27447]: BindTexture (offset 307) */ + /* _mesa_function_pool[27714]: BindTexture (offset 307) */ "ii\0" "glBindTexture\0" "glBindTextureEXT\0" "\0" - /* _mesa_function_pool[27482]: BeginFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[27749]: BeginFragmentShaderATI (will be remapped) */ "\0" "glBeginFragmentShaderATI\0" "\0" - /* _mesa_function_pool[27509]: MultiTexCoord4fARB (offset 402) */ + /* _mesa_function_pool[27776]: MultiTexCoord4fARB (offset 402) */ "iffff\0" "glMultiTexCoord4f\0" "glMultiTexCoord4fARB\0" "\0" - /* _mesa_function_pool[27555]: VertexAttribs3svNV (will be remapped) */ + /* _mesa_function_pool[27822]: VertexAttribs3svNV (will be remapped) */ "iip\0" "glVertexAttribs3svNV\0" "\0" - /* _mesa_function_pool[27581]: StencilFunc (offset 243) */ + /* _mesa_function_pool[27848]: StencilFunc (offset 243) */ "iii\0" "glStencilFunc\0" "\0" - /* _mesa_function_pool[27600]: CopyPixels (offset 255) */ + /* _mesa_function_pool[27867]: CopyPixels (offset 255) */ "iiiii\0" "glCopyPixels\0" "\0" - /* _mesa_function_pool[27620]: Rectsv (offset 93) */ + /* _mesa_function_pool[27887]: Rectsv (offset 93) */ "pp\0" "glRectsv\0" "\0" - /* _mesa_function_pool[27633]: ReplacementCodeuivSUN (dynamic) */ + /* _mesa_function_pool[27900]: ReplacementCodeuivSUN (dynamic) */ "p\0" "glReplacementCodeuivSUN\0" "\0" - /* _mesa_function_pool[27660]: EnableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[27927]: EnableVertexAttribArrayARB (will be remapped) */ "i\0" "glEnableVertexAttribArray\0" "glEnableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[27718]: NormalPointervINTEL (dynamic) */ + /* _mesa_function_pool[27985]: NormalPointervINTEL (dynamic) */ "ip\0" "glNormalPointervINTEL\0" "\0" - /* _mesa_function_pool[27744]: CopyConvolutionFilter2D (offset 355) */ + /* _mesa_function_pool[28011]: CopyConvolutionFilter2D (offset 355) */ "iiiiii\0" "glCopyConvolutionFilter2D\0" "glCopyConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[27807]: WindowPos3ivMESA (will be remapped) */ + /* _mesa_function_pool[28074]: WindowPos3ivMESA (will be remapped) */ "p\0" "glWindowPos3iv\0" "glWindowPos3ivARB\0" "glWindowPos3ivMESA\0" "\0" - /* _mesa_function_pool[27862]: CopyBufferSubData (will be remapped) */ + /* _mesa_function_pool[28129]: CopyBufferSubData (will be remapped) */ "iiiii\0" "glCopyBufferSubData\0" "\0" - /* _mesa_function_pool[27889]: NormalPointer (offset 318) */ + /* _mesa_function_pool[28156]: NormalPointer (offset 318) */ "iip\0" "glNormalPointer\0" "\0" - /* _mesa_function_pool[27910]: TexParameterfv (offset 179) */ + /* _mesa_function_pool[28177]: TexParameterfv (offset 179) */ "iip\0" "glTexParameterfv\0" "\0" - /* _mesa_function_pool[27932]: IsBufferARB (will be remapped) */ + /* _mesa_function_pool[28199]: IsBufferARB (will be remapped) */ "i\0" "glIsBuffer\0" "glIsBufferARB\0" "\0" - /* _mesa_function_pool[27960]: WindowPos4iMESA (will be remapped) */ + /* _mesa_function_pool[28227]: WindowPos4iMESA (will be remapped) */ "iiii\0" "glWindowPos4iMESA\0" "\0" - /* _mesa_function_pool[27984]: VertexAttrib4uivARB (will be remapped) */ + /* _mesa_function_pool[28251]: VertexAttrib4uivARB (will be remapped) */ "ip\0" "glVertexAttrib4uiv\0" "glVertexAttrib4uivARB\0" "\0" - /* _mesa_function_pool[28029]: Tangent3bvEXT (dynamic) */ + /* _mesa_function_pool[28296]: Tangent3bvEXT (dynamic) */ "p\0" "glTangent3bvEXT\0" "\0" - /* _mesa_function_pool[28048]: UniformMatrix3x4fv (will be remapped) */ + /* _mesa_function_pool[28315]: UniformMatrix3x4fv (will be remapped) */ "iiip\0" "glUniformMatrix3x4fv\0" "\0" - /* _mesa_function_pool[28075]: ClipPlane (offset 150) */ + /* _mesa_function_pool[28342]: ClipPlane (offset 150) */ "ip\0" "glClipPlane\0" "\0" - /* _mesa_function_pool[28091]: Recti (offset 90) */ + /* _mesa_function_pool[28358]: Recti (offset 90) */ "iiii\0" "glRecti\0" "\0" - /* _mesa_function_pool[28105]: DrawRangeElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[28372]: DrawRangeElementsBaseVertex (will be remapped) */ "iiiiipi\0" "glDrawRangeElementsBaseVertex\0" "\0" - /* _mesa_function_pool[28144]: TexCoordPointervINTEL (dynamic) */ + /* _mesa_function_pool[28411]: TexCoordPointervINTEL (dynamic) */ "iip\0" "glTexCoordPointervINTEL\0" "\0" - /* _mesa_function_pool[28173]: DeleteBuffersARB (will be remapped) */ + /* _mesa_function_pool[28440]: DeleteBuffersARB (will be remapped) */ "ip\0" "glDeleteBuffers\0" "glDeleteBuffersARB\0" "\0" - /* _mesa_function_pool[28212]: PixelTransformParameterfvEXT (dynamic) */ + /* _mesa_function_pool[28479]: PixelTransformParameterfvEXT (dynamic) */ "iip\0" "glPixelTransformParameterfvEXT\0" "\0" - /* _mesa_function_pool[28248]: WindowPos4fvMESA (will be remapped) */ + /* _mesa_function_pool[28515]: PrimitiveRestartNV (will be remapped) */ + "\0" + "glPrimitiveRestartNV\0" + "\0" + /* _mesa_function_pool[28538]: WindowPos4fvMESA (will be remapped) */ "p\0" "glWindowPos4fvMESA\0" "\0" - /* _mesa_function_pool[28270]: GetPixelMapuiv (offset 272) */ + /* _mesa_function_pool[28560]: GetPixelMapuiv (offset 272) */ "ip\0" "glGetPixelMapuiv\0" "\0" - /* _mesa_function_pool[28291]: Rectf (offset 88) */ + /* _mesa_function_pool[28581]: Rectf (offset 88) */ "ffff\0" "glRectf\0" "\0" - /* _mesa_function_pool[28305]: VertexAttrib1sNV (will be remapped) */ + /* _mesa_function_pool[28595]: VertexAttrib1sNV (will be remapped) */ "ii\0" "glVertexAttrib1sNV\0" "\0" - /* _mesa_function_pool[28328]: Indexfv (offset 47) */ + /* _mesa_function_pool[28618]: Indexfv (offset 47) */ "p\0" "glIndexfv\0" "\0" - /* _mesa_function_pool[28341]: SecondaryColor3svEXT (will be remapped) */ + /* _mesa_function_pool[28631]: SecondaryColor3svEXT (will be remapped) */ "p\0" "glSecondaryColor3sv\0" "glSecondaryColor3svEXT\0" "\0" - /* _mesa_function_pool[28387]: LoadTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[28677]: LoadTransposeMatrixfARB (will be remapped) */ "p\0" "glLoadTransposeMatrixf\0" "glLoadTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[28439]: GetPointerv (offset 329) */ + /* _mesa_function_pool[28729]: GetPointerv (offset 329) */ "ip\0" "glGetPointerv\0" "glGetPointervEXT\0" "\0" - /* _mesa_function_pool[28474]: Tangent3bEXT (dynamic) */ + /* _mesa_function_pool[28764]: Tangent3bEXT (dynamic) */ "iii\0" "glTangent3bEXT\0" "\0" - /* _mesa_function_pool[28494]: CombinerParameterfNV (will be remapped) */ + /* _mesa_function_pool[28784]: CombinerParameterfNV (will be remapped) */ "if\0" "glCombinerParameterfNV\0" "\0" - /* _mesa_function_pool[28521]: IndexMask (offset 212) */ + /* _mesa_function_pool[28811]: IndexMask (offset 212) */ "i\0" "glIndexMask\0" "\0" - /* _mesa_function_pool[28536]: BindProgramNV (will be remapped) */ + /* _mesa_function_pool[28826]: BindProgramNV (will be remapped) */ "ii\0" "glBindProgramARB\0" "glBindProgramNV\0" "\0" - /* _mesa_function_pool[28573]: VertexAttrib4svARB (will be remapped) */ + /* _mesa_function_pool[28863]: VertexAttrib4svARB (will be remapped) */ "ip\0" "glVertexAttrib4sv\0" "glVertexAttrib4svARB\0" "\0" - /* _mesa_function_pool[28616]: GetFloatv (offset 262) */ + /* _mesa_function_pool[28906]: GetFloatv (offset 262) */ "ip\0" "glGetFloatv\0" "\0" - /* _mesa_function_pool[28632]: CreateDebugObjectMESA (dynamic) */ + /* _mesa_function_pool[28922]: CreateDebugObjectMESA (dynamic) */ "\0" "glCreateDebugObjectMESA\0" "\0" - /* _mesa_function_pool[28658]: GetShaderiv (will be remapped) */ + /* _mesa_function_pool[28948]: GetShaderiv (will be remapped) */ "iip\0" "glGetShaderiv\0" "\0" - /* _mesa_function_pool[28677]: ClientWaitSync (will be remapped) */ + /* _mesa_function_pool[28967]: ClientWaitSync (will be remapped) */ "iii\0" "glClientWaitSync\0" "\0" - /* _mesa_function_pool[28699]: TexCoord4s (offset 124) */ + /* _mesa_function_pool[28989]: TexCoord4s (offset 124) */ "iiii\0" "glTexCoord4s\0" "\0" - /* _mesa_function_pool[28718]: TexCoord3sv (offset 117) */ + /* _mesa_function_pool[29008]: TexCoord3sv (offset 117) */ "p\0" "glTexCoord3sv\0" "\0" - /* _mesa_function_pool[28735]: BindFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[29025]: BindFragmentShaderATI (will be remapped) */ "i\0" "glBindFragmentShaderATI\0" "\0" - /* _mesa_function_pool[28762]: PopAttrib (offset 218) */ + /* _mesa_function_pool[29052]: PopAttrib (offset 218) */ "\0" "glPopAttrib\0" "\0" - /* _mesa_function_pool[28776]: Fogfv (offset 154) */ + /* _mesa_function_pool[29066]: Fogfv (offset 154) */ "ip\0" "glFogfv\0" "\0" - /* _mesa_function_pool[28788]: UnmapBufferARB (will be remapped) */ + /* _mesa_function_pool[29078]: UnmapBufferARB (will be remapped) */ "i\0" "glUnmapBuffer\0" "glUnmapBufferARB\0" "\0" - /* _mesa_function_pool[28822]: InitNames (offset 197) */ + /* _mesa_function_pool[29112]: InitNames (offset 197) */ "\0" "glInitNames\0" "\0" - /* _mesa_function_pool[28836]: Normal3sv (offset 61) */ + /* _mesa_function_pool[29126]: Normal3sv (offset 61) */ "p\0" "glNormal3sv\0" "\0" - /* _mesa_function_pool[28851]: Minmax (offset 368) */ + /* _mesa_function_pool[29141]: Minmax (offset 368) */ "iii\0" "glMinmax\0" "glMinmaxEXT\0" "\0" - /* _mesa_function_pool[28877]: TexCoord4d (offset 118) */ + /* _mesa_function_pool[29167]: TexCoord4d (offset 118) */ "dddd\0" "glTexCoord4d\0" "\0" - /* _mesa_function_pool[28896]: TexCoord4f (offset 120) */ + /* _mesa_function_pool[29186]: TexCoord4f (offset 120) */ "ffff\0" "glTexCoord4f\0" "\0" - /* _mesa_function_pool[28915]: FogCoorddvEXT (will be remapped) */ + /* _mesa_function_pool[29205]: FogCoorddvEXT (will be remapped) */ "p\0" "glFogCoorddv\0" "glFogCoorddvEXT\0" "\0" - /* _mesa_function_pool[28947]: FinishTextureSUNX (dynamic) */ + /* _mesa_function_pool[29237]: FinishTextureSUNX (dynamic) */ "\0" "glFinishTextureSUNX\0" "\0" - /* _mesa_function_pool[28969]: GetFragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[29259]: GetFragmentLightfvSGIX (dynamic) */ "iip\0" "glGetFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[28999]: Binormal3fvEXT (dynamic) */ + /* _mesa_function_pool[29289]: Binormal3fvEXT (dynamic) */ "p\0" "glBinormal3fvEXT\0" "\0" - /* _mesa_function_pool[29019]: GetBooleanv (offset 258) */ + /* _mesa_function_pool[29309]: GetBooleanv (offset 258) */ "ip\0" "glGetBooleanv\0" "\0" - /* _mesa_function_pool[29037]: ColorFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[29327]: ColorFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiiii\0" "glColorFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[29074]: Hint (offset 158) */ + /* _mesa_function_pool[29364]: Hint (offset 158) */ "ii\0" "glHint\0" "\0" - /* _mesa_function_pool[29085]: Color4dv (offset 28) */ + /* _mesa_function_pool[29375]: Color4dv (offset 28) */ "p\0" "glColor4dv\0" "\0" - /* _mesa_function_pool[29099]: VertexAttrib2svARB (will be remapped) */ + /* _mesa_function_pool[29389]: VertexAttrib2svARB (will be remapped) */ "ip\0" "glVertexAttrib2sv\0" "glVertexAttrib2svARB\0" "\0" - /* _mesa_function_pool[29142]: AreProgramsResidentNV (will be remapped) */ + /* _mesa_function_pool[29432]: AreProgramsResidentNV (will be remapped) */ "ipp\0" "glAreProgramsResidentNV\0" "\0" - /* _mesa_function_pool[29171]: WindowPos3svMESA (will be remapped) */ + /* _mesa_function_pool[29461]: WindowPos3svMESA (will be remapped) */ "p\0" "glWindowPos3sv\0" "glWindowPos3svARB\0" "glWindowPos3svMESA\0" "\0" - /* _mesa_function_pool[29226]: CopyColorSubTable (offset 347) */ + /* _mesa_function_pool[29516]: CopyColorSubTable (offset 347) */ "iiiii\0" "glCopyColorSubTable\0" "glCopyColorSubTableEXT\0" "\0" - /* _mesa_function_pool[29276]: WeightdvARB (dynamic) */ + /* _mesa_function_pool[29566]: WeightdvARB (dynamic) */ "ip\0" "glWeightdvARB\0" "\0" - /* _mesa_function_pool[29294]: DeleteRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[29584]: DeleteRenderbuffersEXT (will be remapped) */ "ip\0" "glDeleteRenderbuffers\0" "glDeleteRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[29345]: VertexAttrib4NubvARB (will be remapped) */ + /* _mesa_function_pool[29635]: VertexAttrib4NubvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nubv\0" "glVertexAttrib4NubvARB\0" "\0" - /* _mesa_function_pool[29392]: VertexAttrib3dvNV (will be remapped) */ + /* _mesa_function_pool[29682]: VertexAttrib3dvNV (will be remapped) */ "ip\0" "glVertexAttrib3dvNV\0" "\0" - /* _mesa_function_pool[29416]: GetObjectParameterfvARB (will be remapped) */ + /* _mesa_function_pool[29706]: GetObjectParameterfvARB (will be remapped) */ "iip\0" "glGetObjectParameterfvARB\0" "\0" - /* _mesa_function_pool[29447]: Vertex4iv (offset 147) */ + /* _mesa_function_pool[29737]: Vertex4iv (offset 147) */ "p\0" "glVertex4iv\0" "\0" - /* _mesa_function_pool[29462]: GetProgramEnvParameterdvARB (will be remapped) */ + /* _mesa_function_pool[29752]: GetProgramEnvParameterdvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterdvARB\0" "\0" - /* _mesa_function_pool[29497]: TexCoord4dv (offset 119) */ + /* _mesa_function_pool[29787]: TexCoord4dv (offset 119) */ "p\0" "glTexCoord4dv\0" "\0" - /* _mesa_function_pool[29514]: LockArraysEXT (will be remapped) */ + /* _mesa_function_pool[29804]: LockArraysEXT (will be remapped) */ "ii\0" "glLockArraysEXT\0" "\0" - /* _mesa_function_pool[29534]: Begin (offset 7) */ + /* _mesa_function_pool[29824]: Begin (offset 7) */ "i\0" "glBegin\0" "\0" - /* _mesa_function_pool[29545]: LightModeli (offset 165) */ + /* _mesa_function_pool[29835]: LightModeli (offset 165) */ "ii\0" "glLightModeli\0" "\0" - /* _mesa_function_pool[29563]: Rectfv (offset 89) */ + /* _mesa_function_pool[29853]: Rectfv (offset 89) */ "pp\0" "glRectfv\0" "\0" - /* _mesa_function_pool[29576]: LightModelf (offset 163) */ + /* _mesa_function_pool[29866]: LightModelf (offset 163) */ "if\0" "glLightModelf\0" "\0" - /* _mesa_function_pool[29594]: GetTexParameterfv (offset 282) */ + /* _mesa_function_pool[29884]: GetTexParameterfv (offset 282) */ "iip\0" "glGetTexParameterfv\0" "\0" - /* _mesa_function_pool[29619]: GetLightfv (offset 264) */ + /* _mesa_function_pool[29909]: GetLightfv (offset 264) */ "iip\0" "glGetLightfv\0" "\0" - /* _mesa_function_pool[29637]: PixelTransformParameterivEXT (dynamic) */ + /* _mesa_function_pool[29927]: PixelTransformParameterivEXT (dynamic) */ "iip\0" "glPixelTransformParameterivEXT\0" "\0" - /* _mesa_function_pool[29673]: BinormalPointerEXT (dynamic) */ + /* _mesa_function_pool[29963]: BinormalPointerEXT (dynamic) */ "iip\0" "glBinormalPointerEXT\0" "\0" - /* _mesa_function_pool[29699]: VertexAttrib1dNV (will be remapped) */ + /* _mesa_function_pool[29989]: VertexAttrib1dNV (will be remapped) */ "id\0" "glVertexAttrib1dNV\0" "\0" - /* _mesa_function_pool[29722]: GetCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[30012]: GetCombinerInputParameterivNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[29761]: Disable (offset 214) */ + /* _mesa_function_pool[30051]: Disable (offset 214) */ "i\0" "glDisable\0" "\0" - /* _mesa_function_pool[29774]: MultiTexCoord2fvARB (offset 387) */ + /* _mesa_function_pool[30064]: MultiTexCoord2fvARB (offset 387) */ "ip\0" "glMultiTexCoord2fv\0" "glMultiTexCoord2fvARB\0" "\0" - /* _mesa_function_pool[29819]: GetRenderbufferParameterivEXT (will be remapped) */ + /* _mesa_function_pool[30109]: GetRenderbufferParameterivEXT (will be remapped) */ "iip\0" "glGetRenderbufferParameteriv\0" "glGetRenderbufferParameterivEXT\0" "\0" - /* _mesa_function_pool[29885]: CombinerParameterivNV (will be remapped) */ + /* _mesa_function_pool[30175]: CombinerParameterivNV (will be remapped) */ "ip\0" "glCombinerParameterivNV\0" "\0" - /* _mesa_function_pool[29913]: GenFragmentShadersATI (will be remapped) */ + /* _mesa_function_pool[30203]: GenFragmentShadersATI (will be remapped) */ "i\0" "glGenFragmentShadersATI\0" "\0" - /* _mesa_function_pool[29940]: DrawArrays (offset 310) */ + /* _mesa_function_pool[30230]: DrawArrays (offset 310) */ "iii\0" "glDrawArrays\0" "glDrawArraysEXT\0" "\0" - /* _mesa_function_pool[29974]: WeightuivARB (dynamic) */ + /* _mesa_function_pool[30264]: WeightuivARB (dynamic) */ "ip\0" "glWeightuivARB\0" "\0" - /* _mesa_function_pool[29993]: VertexAttrib2sARB (will be remapped) */ + /* _mesa_function_pool[30283]: VertexAttrib2sARB (will be remapped) */ "iii\0" "glVertexAttrib2s\0" "glVertexAttrib2sARB\0" "\0" - /* _mesa_function_pool[30035]: ColorMask (offset 210) */ + /* _mesa_function_pool[30325]: ColorMask (offset 210) */ "iiii\0" "glColorMask\0" "\0" - /* _mesa_function_pool[30053]: GenAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[30343]: GenAsyncMarkersSGIX (dynamic) */ "i\0" "glGenAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[30078]: Tangent3svEXT (dynamic) */ + /* _mesa_function_pool[30368]: Tangent3svEXT (dynamic) */ "p\0" "glTangent3svEXT\0" "\0" - /* _mesa_function_pool[30097]: GetListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[30387]: GetListParameterivSGIX (dynamic) */ "iip\0" "glGetListParameterivSGIX\0" "\0" - /* _mesa_function_pool[30127]: BindBufferARB (will be remapped) */ + /* _mesa_function_pool[30417]: BindBufferARB (will be remapped) */ "ii\0" "glBindBuffer\0" "glBindBufferARB\0" "\0" - /* _mesa_function_pool[30160]: GetInfoLogARB (will be remapped) */ + /* _mesa_function_pool[30450]: GetInfoLogARB (will be remapped) */ "iipp\0" "glGetInfoLogARB\0" "\0" - /* _mesa_function_pool[30182]: RasterPos4iv (offset 83) */ + /* _mesa_function_pool[30472]: RasterPos4iv (offset 83) */ "p\0" "glRasterPos4iv\0" "\0" - /* _mesa_function_pool[30200]: Enable (offset 215) */ + /* _mesa_function_pool[30490]: Enable (offset 215) */ "i\0" "glEnable\0" "\0" - /* _mesa_function_pool[30212]: LineStipple (offset 167) */ + /* _mesa_function_pool[30502]: LineStipple (offset 167) */ "ii\0" "glLineStipple\0" "\0" - /* _mesa_function_pool[30230]: VertexAttribs4svNV (will be remapped) */ + /* _mesa_function_pool[30520]: VertexAttribs4svNV (will be remapped) */ "iip\0" "glVertexAttribs4svNV\0" "\0" - /* _mesa_function_pool[30256]: EdgeFlagPointerListIBM (dynamic) */ + /* _mesa_function_pool[30546]: EdgeFlagPointerListIBM (dynamic) */ "ipi\0" "glEdgeFlagPointerListIBM\0" "\0" - /* _mesa_function_pool[30286]: UniformMatrix3x2fv (will be remapped) */ + /* _mesa_function_pool[30576]: UniformMatrix3x2fv (will be remapped) */ "iiip\0" "glUniformMatrix3x2fv\0" "\0" - /* _mesa_function_pool[30313]: GetMinmaxParameterfv (offset 365) */ + /* _mesa_function_pool[30603]: GetMinmaxParameterfv (offset 365) */ "iip\0" "glGetMinmaxParameterfv\0" "glGetMinmaxParameterfvEXT\0" "\0" - /* _mesa_function_pool[30367]: VertexAttrib1fvARB (will be remapped) */ + /* _mesa_function_pool[30657]: VertexAttrib1fvARB (will be remapped) */ "ip\0" "glVertexAttrib1fv\0" "glVertexAttrib1fvARB\0" "\0" - /* _mesa_function_pool[30410]: GenBuffersARB (will be remapped) */ + /* _mesa_function_pool[30700]: GenBuffersARB (will be remapped) */ "ip\0" "glGenBuffers\0" "glGenBuffersARB\0" "\0" - /* _mesa_function_pool[30443]: VertexAttribs1svNV (will be remapped) */ + /* _mesa_function_pool[30733]: VertexAttribs1svNV (will be remapped) */ "iip\0" "glVertexAttribs1svNV\0" "\0" - /* _mesa_function_pool[30469]: Vertex3fv (offset 137) */ + /* _mesa_function_pool[30759]: Vertex3fv (offset 137) */ "p\0" "glVertex3fv\0" "\0" - /* _mesa_function_pool[30484]: GetTexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[30774]: GetTexBumpParameterivATI (will be remapped) */ "ip\0" "glGetTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[30515]: Binormal3bEXT (dynamic) */ + /* _mesa_function_pool[30805]: Binormal3bEXT (dynamic) */ "iii\0" "glBinormal3bEXT\0" "\0" - /* _mesa_function_pool[30536]: FragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[30826]: FragmentMaterialivSGIX (dynamic) */ "iip\0" "glFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[30566]: IsRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[30856]: IsRenderbufferEXT (will be remapped) */ "i\0" "glIsRenderbuffer\0" "glIsRenderbufferEXT\0" "\0" - /* _mesa_function_pool[30606]: GenProgramsNV (will be remapped) */ + /* _mesa_function_pool[30896]: GenProgramsNV (will be remapped) */ "ip\0" "glGenProgramsARB\0" "glGenProgramsNV\0" "\0" - /* _mesa_function_pool[30643]: VertexAttrib4dvNV (will be remapped) */ + /* _mesa_function_pool[30933]: VertexAttrib4dvNV (will be remapped) */ "ip\0" "glVertexAttrib4dvNV\0" "\0" - /* _mesa_function_pool[30667]: EndFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[30957]: EndFragmentShaderATI (will be remapped) */ "\0" "glEndFragmentShaderATI\0" "\0" - /* _mesa_function_pool[30692]: Binormal3iEXT (dynamic) */ + /* _mesa_function_pool[30982]: Binormal3iEXT (dynamic) */ "iii\0" "glBinormal3iEXT\0" "\0" - /* _mesa_function_pool[30713]: WindowPos2fMESA (will be remapped) */ + /* _mesa_function_pool[31003]: WindowPos2fMESA (will be remapped) */ "ff\0" "glWindowPos2f\0" "glWindowPos2fARB\0" @@ -4469,422 +4513,433 @@ static const char _mesa_function_pool[] = /* these functions need to be remapped */ static const struct gl_function_pool_remap MESA_remap_table_functions[] = { { 1500, AttachShader_remap_index }, - { 9034, CreateProgram_remap_index }, - { 21160, CreateShader_remap_index }, - { 23473, DeleteProgram_remap_index }, - { 16944, DeleteShader_remap_index }, - { 21606, DetachShader_remap_index }, - { 16468, GetAttachedShaders_remap_index }, - { 4314, GetProgramInfoLog_remap_index }, + { 9144, CreateProgram_remap_index }, + { 21374, CreateShader_remap_index }, + { 23687, DeleteProgram_remap_index }, + { 17134, DeleteShader_remap_index }, + { 21820, DetachShader_remap_index }, + { 16658, GetAttachedShaders_remap_index }, + { 4365, GetProgramInfoLog_remap_index }, { 400, GetProgramiv_remap_index }, - { 5760, GetShaderInfoLog_remap_index }, - { 28658, GetShaderiv_remap_index }, - { 12276, IsProgram_remap_index }, - { 11275, IsShader_remap_index }, - { 9138, StencilFuncSeparate_remap_index }, - { 3526, StencilMaskSeparate_remap_index }, - { 6842, StencilOpSeparate_remap_index }, - { 20485, UniformMatrix2x3fv_remap_index }, + { 5841, GetShaderInfoLog_remap_index }, + { 28948, GetShaderiv_remap_index }, + { 12386, IsProgram_remap_index }, + { 11385, IsShader_remap_index }, + { 9248, StencilFuncSeparate_remap_index }, + { 3577, StencilMaskSeparate_remap_index }, + { 6923, StencilOpSeparate_remap_index }, + { 20675, UniformMatrix2x3fv_remap_index }, { 2654, UniformMatrix2x4fv_remap_index }, - { 30286, UniformMatrix3x2fv_remap_index }, - { 28048, UniformMatrix3x4fv_remap_index }, - { 14968, UniformMatrix4x2fv_remap_index }, - { 2976, UniformMatrix4x3fv_remap_index }, - { 14629, DrawArraysInstanced_remap_index }, - { 15732, DrawElementsInstanced_remap_index }, - { 9052, LoadTransposeMatrixdARB_remap_index }, - { 28387, LoadTransposeMatrixfARB_remap_index }, - { 4972, MultTransposeMatrixdARB_remap_index }, - { 21793, MultTransposeMatrixfARB_remap_index }, + { 30576, UniformMatrix3x2fv_remap_index }, + { 28315, UniformMatrix3x4fv_remap_index }, + { 15078, UniformMatrix4x2fv_remap_index }, + { 3002, UniformMatrix4x3fv_remap_index }, + { 14739, DrawArraysInstanced_remap_index }, + { 15871, DrawElementsInstanced_remap_index }, + { 9162, LoadTransposeMatrixdARB_remap_index }, + { 28677, LoadTransposeMatrixfARB_remap_index }, + { 5023, MultTransposeMatrixdARB_remap_index }, + { 22007, MultTransposeMatrixfARB_remap_index }, { 211, SampleCoverageARB_remap_index }, - { 5156, CompressedTexImage1DARB_remap_index }, - { 22276, CompressedTexImage2DARB_remap_index }, - { 3589, CompressedTexImage3DARB_remap_index }, - { 16760, CompressedTexSubImage1DARB_remap_index }, + { 5207, CompressedTexImage1DARB_remap_index }, + { 22490, CompressedTexImage2DARB_remap_index }, + { 3640, CompressedTexImage3DARB_remap_index }, + { 16950, CompressedTexSubImage1DARB_remap_index }, { 1919, CompressedTexSubImage2DARB_remap_index }, - { 18621, CompressedTexSubImage3DARB_remap_index }, - { 26330, GetCompressedTexImageARB_remap_index }, - { 3434, DisableVertexAttribArrayARB_remap_index }, - { 27660, EnableVertexAttribArrayARB_remap_index }, - { 29462, GetProgramEnvParameterdvARB_remap_index }, - { 21673, GetProgramEnvParameterfvARB_remap_index }, - { 25329, GetProgramLocalParameterdvARB_remap_index }, - { 7284, GetProgramLocalParameterfvARB_remap_index }, - { 16851, GetProgramStringARB_remap_index }, - { 25524, GetProgramivARB_remap_index }, - { 18816, GetVertexAttribdvARB_remap_index }, - { 14857, GetVertexAttribfvARB_remap_index }, - { 8947, GetVertexAttribivARB_remap_index }, - { 17697, ProgramEnvParameter4dARB_remap_index }, - { 23246, ProgramEnvParameter4dvARB_remap_index }, - { 15465, ProgramEnvParameter4fARB_remap_index }, - { 8147, ProgramEnvParameter4fvARB_remap_index }, - { 3552, ProgramLocalParameter4dARB_remap_index }, - { 11986, ProgramLocalParameter4dvARB_remap_index }, - { 27139, ProgramLocalParameter4fARB_remap_index }, - { 23826, ProgramLocalParameter4fvARB_remap_index }, - { 26110, ProgramStringARB_remap_index }, - { 17947, VertexAttrib1dARB_remap_index }, - { 14433, VertexAttrib1dvARB_remap_index }, - { 3727, VertexAttrib1fARB_remap_index }, - { 30367, VertexAttrib1fvARB_remap_index }, - { 6368, VertexAttrib1sARB_remap_index }, + { 18811, CompressedTexSubImage3DARB_remap_index }, + { 26597, GetCompressedTexImageARB_remap_index }, + { 3485, DisableVertexAttribArrayARB_remap_index }, + { 27927, EnableVertexAttribArrayARB_remap_index }, + { 29752, GetProgramEnvParameterdvARB_remap_index }, + { 21887, GetProgramEnvParameterfvARB_remap_index }, + { 25570, GetProgramLocalParameterdvARB_remap_index }, + { 7365, GetProgramLocalParameterfvARB_remap_index }, + { 17041, GetProgramStringARB_remap_index }, + { 25765, GetProgramivARB_remap_index }, + { 19006, GetVertexAttribdvARB_remap_index }, + { 14967, GetVertexAttribfvARB_remap_index }, + { 9028, GetVertexAttribivARB_remap_index }, + { 17887, ProgramEnvParameter4dARB_remap_index }, + { 23460, ProgramEnvParameter4dvARB_remap_index }, + { 15575, ProgramEnvParameter4fARB_remap_index }, + { 8228, ProgramEnvParameter4fvARB_remap_index }, + { 3603, ProgramLocalParameter4dARB_remap_index }, + { 12096, ProgramLocalParameter4dvARB_remap_index }, + { 27406, ProgramLocalParameter4fARB_remap_index }, + { 24040, ProgramLocalParameter4fvARB_remap_index }, + { 26351, ProgramStringARB_remap_index }, + { 18137, VertexAttrib1dARB_remap_index }, + { 14543, VertexAttrib1dvARB_remap_index }, + { 3778, VertexAttrib1fARB_remap_index }, + { 30657, VertexAttrib1fvARB_remap_index }, + { 6449, VertexAttrib1sARB_remap_index }, { 2093, VertexAttrib1svARB_remap_index }, - { 13864, VertexAttrib2dARB_remap_index }, - { 16087, VertexAttrib2dvARB_remap_index }, + { 13974, VertexAttrib2dARB_remap_index }, + { 16277, VertexAttrib2dvARB_remap_index }, { 1519, VertexAttrib2fARB_remap_index }, - { 16200, VertexAttrib2fvARB_remap_index }, - { 29993, VertexAttrib2sARB_remap_index }, - { 29099, VertexAttrib2svARB_remap_index }, - { 10321, VertexAttrib3dARB_remap_index }, - { 7850, VertexAttrib3dvARB_remap_index }, + { 16390, VertexAttrib2fvARB_remap_index }, + { 30283, VertexAttrib2sARB_remap_index }, + { 29389, VertexAttrib2svARB_remap_index }, + { 10431, VertexAttrib3dARB_remap_index }, + { 7931, VertexAttrib3dvARB_remap_index }, { 1606, VertexAttrib3fARB_remap_index }, - { 20748, VertexAttrib3fvARB_remap_index }, - { 25957, VertexAttrib3sARB_remap_index }, - { 18558, VertexAttrib3svARB_remap_index }, - { 4340, VertexAttrib4NbvARB_remap_index }, - { 16423, VertexAttrib4NivARB_remap_index }, - { 20703, VertexAttrib4NsvARB_remap_index }, - { 21625, VertexAttrib4NubARB_remap_index }, - { 29345, VertexAttrib4NubvARB_remap_index }, - { 17358, VertexAttrib4NuivARB_remap_index }, - { 2849, VertexAttrib4NusvARB_remap_index }, - { 9915, VertexAttrib4bvARB_remap_index }, - { 24737, VertexAttrib4dARB_remap_index }, - { 19580, VertexAttrib4dvARB_remap_index }, - { 10428, VertexAttrib4fARB_remap_index }, - { 10832, VertexAttrib4fvARB_remap_index }, - { 9331, VertexAttrib4ivARB_remap_index }, - { 15901, VertexAttrib4sARB_remap_index }, - { 28573, VertexAttrib4svARB_remap_index }, - { 15270, VertexAttrib4ubvARB_remap_index }, - { 27984, VertexAttrib4uivARB_remap_index }, - { 18369, VertexAttrib4usvARB_remap_index }, - { 20334, VertexAttribPointerARB_remap_index }, - { 30127, BindBufferARB_remap_index }, - { 6075, BufferDataARB_remap_index }, + { 20938, VertexAttrib3fvARB_remap_index }, + { 26198, VertexAttrib3sARB_remap_index }, + { 18748, VertexAttrib3svARB_remap_index }, + { 4391, VertexAttrib4NbvARB_remap_index }, + { 16613, VertexAttrib4NivARB_remap_index }, + { 20893, VertexAttrib4NsvARB_remap_index }, + { 21839, VertexAttrib4NubARB_remap_index }, + { 29635, VertexAttrib4NubvARB_remap_index }, + { 17548, VertexAttrib4NuivARB_remap_index }, + { 2875, VertexAttrib4NusvARB_remap_index }, + { 10025, VertexAttrib4bvARB_remap_index }, + { 24978, VertexAttrib4dARB_remap_index }, + { 19770, VertexAttrib4dvARB_remap_index }, + { 10538, VertexAttrib4fARB_remap_index }, + { 10942, VertexAttrib4fvARB_remap_index }, + { 9441, VertexAttrib4ivARB_remap_index }, + { 16091, VertexAttrib4sARB_remap_index }, + { 28863, VertexAttrib4svARB_remap_index }, + { 15380, VertexAttrib4ubvARB_remap_index }, + { 28251, VertexAttrib4uivARB_remap_index }, + { 18559, VertexAttrib4usvARB_remap_index }, + { 20524, VertexAttribPointerARB_remap_index }, + { 30417, BindBufferARB_remap_index }, + { 6156, BufferDataARB_remap_index }, { 1421, BufferSubDataARB_remap_index }, - { 28173, DeleteBuffersARB_remap_index }, - { 30410, GenBuffersARB_remap_index }, - { 16243, GetBufferParameterivARB_remap_index }, - { 15417, GetBufferPointervARB_remap_index }, + { 28440, DeleteBuffersARB_remap_index }, + { 30700, GenBuffersARB_remap_index }, + { 16433, GetBufferParameterivARB_remap_index }, + { 15527, GetBufferPointervARB_remap_index }, { 1374, GetBufferSubDataARB_remap_index }, - { 27932, IsBufferARB_remap_index }, - { 24310, MapBufferARB_remap_index }, - { 28788, UnmapBufferARB_remap_index }, + { 28199, IsBufferARB_remap_index }, + { 24524, MapBufferARB_remap_index }, + { 29078, UnmapBufferARB_remap_index }, { 307, BeginQueryARB_remap_index }, - { 18042, DeleteQueriesARB_remap_index }, - { 11126, EndQueryARB_remap_index }, - { 26809, GenQueriesARB_remap_index }, + { 18232, DeleteQueriesARB_remap_index }, + { 11236, EndQueryARB_remap_index }, + { 27076, GenQueriesARB_remap_index }, { 1811, GetQueryObjectivARB_remap_index }, - { 15945, GetQueryObjectuivARB_remap_index }, + { 16135, GetQueryObjectuivARB_remap_index }, { 1663, GetQueryivARB_remap_index }, - { 18276, IsQueryARB_remap_index }, - { 7460, AttachObjectARB_remap_index }, - { 16906, CompileShaderARB_remap_index }, - { 2918, CreateProgramObjectARB_remap_index }, - { 6020, CreateShaderObjectARB_remap_index }, - { 13281, DeleteObjectARB_remap_index }, - { 22067, DetachObjectARB_remap_index }, - { 10904, GetActiveUniformARB_remap_index }, - { 8622, GetAttachedObjectsARB_remap_index }, - { 8929, GetHandleARB_remap_index }, - { 30160, GetInfoLogARB_remap_index }, - { 29416, GetObjectParameterfvARB_remap_index }, - { 25203, GetObjectParameterivARB_remap_index }, - { 26567, GetShaderSourceARB_remap_index }, - { 25817, GetUniformLocationARB_remap_index }, - { 21895, GetUniformfvARB_remap_index }, - { 11608, GetUniformivARB_remap_index }, - { 18414, LinkProgramARB_remap_index }, - { 18472, ShaderSourceARB_remap_index }, - { 6742, Uniform1fARB_remap_index }, - { 27348, Uniform1fvARB_remap_index }, - { 20303, Uniform1iARB_remap_index }, - { 19269, Uniform1ivARB_remap_index }, + { 18466, IsQueryARB_remap_index }, + { 7541, AttachObjectARB_remap_index }, + { 17096, CompileShaderARB_remap_index }, + { 2944, CreateProgramObjectARB_remap_index }, + { 6101, CreateShaderObjectARB_remap_index }, + { 13391, DeleteObjectARB_remap_index }, + { 22281, DetachObjectARB_remap_index }, + { 11014, GetActiveUniformARB_remap_index }, + { 8703, GetAttachedObjectsARB_remap_index }, + { 9010, GetHandleARB_remap_index }, + { 30450, GetInfoLogARB_remap_index }, + { 29706, GetObjectParameterfvARB_remap_index }, + { 25444, GetObjectParameterivARB_remap_index }, + { 26834, GetShaderSourceARB_remap_index }, + { 26058, GetUniformLocationARB_remap_index }, + { 22109, GetUniformfvARB_remap_index }, + { 11718, GetUniformivARB_remap_index }, + { 18604, LinkProgramARB_remap_index }, + { 18662, ShaderSourceARB_remap_index }, + { 6823, Uniform1fARB_remap_index }, + { 27615, Uniform1fvARB_remap_index }, + { 20493, Uniform1iARB_remap_index }, + { 19459, Uniform1ivARB_remap_index }, { 2042, Uniform2fARB_remap_index }, - { 13117, Uniform2fvARB_remap_index }, - { 24197, Uniform2iARB_remap_index }, + { 13227, Uniform2fvARB_remap_index }, + { 24411, Uniform2iARB_remap_index }, { 2162, Uniform2ivARB_remap_index }, - { 17016, Uniform3fARB_remap_index }, - { 8652, Uniform3fvARB_remap_index }, - { 5666, Uniform3iARB_remap_index }, - { 15523, Uniform3ivARB_remap_index }, - { 17503, Uniform4fARB_remap_index }, - { 21759, Uniform4fvARB_remap_index }, - { 22925, Uniform4iARB_remap_index }, - { 18782, Uniform4ivARB_remap_index }, - { 7512, UniformMatrix2fvARB_remap_index }, + { 17206, Uniform3fARB_remap_index }, + { 8733, Uniform3fvARB_remap_index }, + { 5747, Uniform3iARB_remap_index }, + { 15633, Uniform3ivARB_remap_index }, + { 17693, Uniform4fARB_remap_index }, + { 21973, Uniform4fvARB_remap_index }, + { 23139, Uniform4iARB_remap_index }, + { 18972, Uniform4ivARB_remap_index }, + { 7593, UniformMatrix2fvARB_remap_index }, { 17, UniformMatrix3fvARB_remap_index }, { 2514, UniformMatrix4fvARB_remap_index }, - { 23358, UseProgramObjectARB_remap_index }, - { 13552, ValidateProgramARB_remap_index }, - { 19623, BindAttribLocationARB_remap_index }, - { 4385, GetActiveAttribARB_remap_index }, - { 15204, GetAttribLocationARB_remap_index }, - { 27087, DrawBuffersARB_remap_index }, - { 12091, RenderbufferStorageMultisample_remap_index }, - { 12495, FramebufferTextureARB_remap_index }, - { 23728, FramebufferTextureFaceARB_remap_index }, - { 22216, ProgramParameteriARB_remap_index }, - { 17551, FlushMappedBufferRange_remap_index }, - { 25620, MapBufferRange_remap_index }, - { 15079, BindVertexArray_remap_index }, - { 13411, GenVertexArrays_remap_index }, - { 27862, CopyBufferSubData_remap_index }, - { 28677, ClientWaitSync_remap_index }, + { 23572, UseProgramObjectARB_remap_index }, + { 13662, ValidateProgramARB_remap_index }, + { 19813, BindAttribLocationARB_remap_index }, + { 4436, GetActiveAttribARB_remap_index }, + { 15314, GetAttribLocationARB_remap_index }, + { 27354, DrawBuffersARB_remap_index }, + { 12201, RenderbufferStorageMultisample_remap_index }, + { 12605, FramebufferTextureARB_remap_index }, + { 23942, FramebufferTextureFaceARB_remap_index }, + { 22430, ProgramParameteriARB_remap_index }, + { 17741, FlushMappedBufferRange_remap_index }, + { 25861, MapBufferRange_remap_index }, + { 15189, BindVertexArray_remap_index }, + { 13521, GenVertexArrays_remap_index }, + { 28129, CopyBufferSubData_remap_index }, + { 28967, ClientWaitSync_remap_index }, { 2433, DeleteSync_remap_index }, - { 6409, FenceSync_remap_index }, - { 13923, GetInteger64v_remap_index }, - { 20810, GetSynciv_remap_index }, - { 27026, IsSync_remap_index }, - { 8570, WaitSync_remap_index }, - { 3402, DrawElementsBaseVertex_remap_index }, - { 28105, DrawRangeElementsBaseVertex_remap_index }, - { 24341, MultiDrawElementsBaseVertex_remap_index }, - { 4519, BindTransformFeedback_remap_index }, - { 2945, DeleteTransformFeedbacks_remap_index }, - { 5699, DrawTransformFeedback_remap_index }, - { 8789, GenTransformFeedbacks_remap_index }, - { 26000, IsTransformFeedback_remap_index }, - { 23921, PauseTransformFeedback_remap_index }, - { 4892, ResumeTransformFeedback_remap_index }, - { 4807, PolygonOffsetEXT_remap_index }, - { 21395, GetPixelTexGenParameterfvSGIS_remap_index }, - { 3934, GetPixelTexGenParameterivSGIS_remap_index }, - { 21128, PixelTexGenParameterfSGIS_remap_index }, + { 6490, FenceSync_remap_index }, + { 14033, GetInteger64v_remap_index }, + { 21000, GetSynciv_remap_index }, + { 27293, IsSync_remap_index }, + { 8651, WaitSync_remap_index }, + { 3453, DrawElementsBaseVertex_remap_index }, + { 28372, DrawRangeElementsBaseVertex_remap_index }, + { 24555, MultiDrawElementsBaseVertex_remap_index }, + { 4570, BindTransformFeedback_remap_index }, + { 2971, DeleteTransformFeedbacks_remap_index }, + { 5780, DrawTransformFeedback_remap_index }, + { 8870, GenTransformFeedbacks_remap_index }, + { 26241, IsTransformFeedback_remap_index }, + { 24135, PauseTransformFeedback_remap_index }, + { 4943, ResumeTransformFeedback_remap_index }, + { 4858, PolygonOffsetEXT_remap_index }, + { 21609, GetPixelTexGenParameterfvSGIS_remap_index }, + { 3985, GetPixelTexGenParameterivSGIS_remap_index }, + { 21342, PixelTexGenParameterfSGIS_remap_index }, { 619, PixelTexGenParameterfvSGIS_remap_index }, - { 11646, PixelTexGenParameteriSGIS_remap_index }, - { 12637, PixelTexGenParameterivSGIS_remap_index }, - { 15167, SampleMaskSGIS_remap_index }, - { 18216, SamplePatternSGIS_remap_index }, - { 24270, ColorPointerEXT_remap_index }, - { 16130, EdgeFlagPointerEXT_remap_index }, - { 5320, IndexPointerEXT_remap_index }, - { 5400, NormalPointerEXT_remap_index }, - { 14517, TexCoordPointerEXT_remap_index }, - { 6198, VertexPointerEXT_remap_index }, - { 3204, PointParameterfEXT_remap_index }, - { 7049, PointParameterfvEXT_remap_index }, - { 29514, LockArraysEXT_remap_index }, - { 13616, UnlockArraysEXT_remap_index }, + { 11756, PixelTexGenParameteriSGIS_remap_index }, + { 12747, PixelTexGenParameterivSGIS_remap_index }, + { 15277, SampleMaskSGIS_remap_index }, + { 18406, SamplePatternSGIS_remap_index }, + { 24484, ColorPointerEXT_remap_index }, + { 16320, EdgeFlagPointerEXT_remap_index }, + { 5401, IndexPointerEXT_remap_index }, + { 5481, NormalPointerEXT_remap_index }, + { 14627, TexCoordPointerEXT_remap_index }, + { 6279, VertexPointerEXT_remap_index }, + { 3255, PointParameterfEXT_remap_index }, + { 7130, PointParameterfvEXT_remap_index }, + { 29804, LockArraysEXT_remap_index }, + { 13726, UnlockArraysEXT_remap_index }, { 1190, SecondaryColor3bEXT_remap_index }, - { 7208, SecondaryColor3bvEXT_remap_index }, - { 9508, SecondaryColor3dEXT_remap_index }, - { 23531, SecondaryColor3dvEXT_remap_index }, - { 25866, SecondaryColor3fEXT_remap_index }, - { 16696, SecondaryColor3fvEXT_remap_index }, + { 7289, SecondaryColor3bvEXT_remap_index }, + { 9618, SecondaryColor3dEXT_remap_index }, + { 23745, SecondaryColor3dvEXT_remap_index }, + { 26107, SecondaryColor3fEXT_remap_index }, + { 16886, SecondaryColor3fvEXT_remap_index }, { 465, SecondaryColor3iEXT_remap_index }, - { 14905, SecondaryColor3ivEXT_remap_index }, - { 9166, SecondaryColor3sEXT_remap_index }, - { 28341, SecondaryColor3svEXT_remap_index }, - { 25039, SecondaryColor3ubEXT_remap_index }, - { 19514, SecondaryColor3ubvEXT_remap_index }, - { 11841, SecondaryColor3uiEXT_remap_index }, - { 21015, SecondaryColor3uivEXT_remap_index }, - { 23778, SecondaryColor3usEXT_remap_index }, - { 11914, SecondaryColor3usvEXT_remap_index }, - { 10775, SecondaryColorPointerEXT_remap_index }, - { 23592, MultiDrawArraysEXT_remap_index }, - { 19204, MultiDrawElementsEXT_remap_index }, - { 19399, FogCoordPointerEXT_remap_index }, - { 4083, FogCoorddEXT_remap_index }, - { 28915, FogCoorddvEXT_remap_index }, - { 4175, FogCoordfEXT_remap_index }, - { 24962, FogCoordfvEXT_remap_index }, - { 17455, PixelTexGenSGIX_remap_index }, - { 25547, BlendFuncSeparateEXT_remap_index }, - { 6110, FlushVertexArrayRangeNV_remap_index }, - { 4756, VertexArrayRangeNV_remap_index }, - { 25931, CombinerInputNV_remap_index }, + { 15015, SecondaryColor3ivEXT_remap_index }, + { 9276, SecondaryColor3sEXT_remap_index }, + { 28631, SecondaryColor3svEXT_remap_index }, + { 25280, SecondaryColor3ubEXT_remap_index }, + { 19704, SecondaryColor3ubvEXT_remap_index }, + { 11951, SecondaryColor3uiEXT_remap_index }, + { 21229, SecondaryColor3uivEXT_remap_index }, + { 23992, SecondaryColor3usEXT_remap_index }, + { 12024, SecondaryColor3usvEXT_remap_index }, + { 10885, SecondaryColorPointerEXT_remap_index }, + { 23806, MultiDrawArraysEXT_remap_index }, + { 19394, MultiDrawElementsEXT_remap_index }, + { 19589, FogCoordPointerEXT_remap_index }, + { 4134, FogCoorddEXT_remap_index }, + { 29205, FogCoorddvEXT_remap_index }, + { 4226, FogCoordfEXT_remap_index }, + { 25203, FogCoordfvEXT_remap_index }, + { 17645, PixelTexGenSGIX_remap_index }, + { 25788, BlendFuncSeparateEXT_remap_index }, + { 6191, FlushVertexArrayRangeNV_remap_index }, + { 4807, VertexArrayRangeNV_remap_index }, + { 26172, CombinerInputNV_remap_index }, { 1985, CombinerOutputNV_remap_index }, - { 28494, CombinerParameterfNV_remap_index }, - { 4676, CombinerParameterfvNV_remap_index }, - { 20534, CombinerParameteriNV_remap_index }, - { 29885, CombinerParameterivNV_remap_index }, - { 6486, FinalCombinerInputNV_remap_index }, - { 8995, GetCombinerInputParameterfvNV_remap_index }, - { 29722, GetCombinerInputParameterivNV_remap_index }, + { 28784, CombinerParameterfNV_remap_index }, + { 4727, CombinerParameterfvNV_remap_index }, + { 20724, CombinerParameteriNV_remap_index }, + { 30175, CombinerParameterivNV_remap_index }, + { 6567, FinalCombinerInputNV_remap_index }, + { 9076, GetCombinerInputParameterfvNV_remap_index }, + { 30012, GetCombinerInputParameterivNV_remap_index }, { 172, GetCombinerOutputParameterfvNV_remap_index }, - { 12598, GetCombinerOutputParameterivNV_remap_index }, - { 5855, GetFinalCombinerInputParameterfvNV_remap_index }, - { 22797, GetFinalCombinerInputParameterivNV_remap_index }, - { 11586, ResizeBuffersMESA_remap_index }, - { 10148, WindowPos2dMESA_remap_index }, + { 12708, GetCombinerOutputParameterivNV_remap_index }, + { 5936, GetFinalCombinerInputParameterfvNV_remap_index }, + { 23011, GetFinalCombinerInputParameterivNV_remap_index }, + { 11696, ResizeBuffersMESA_remap_index }, + { 10258, WindowPos2dMESA_remap_index }, { 983, WindowPos2dvMESA_remap_index }, - { 30713, WindowPos2fMESA_remap_index }, - { 7153, WindowPos2fvMESA_remap_index }, - { 16643, WindowPos2iMESA_remap_index }, - { 18689, WindowPos2ivMESA_remap_index }, - { 19303, WindowPos2sMESA_remap_index }, - { 5070, WindowPos2svMESA_remap_index }, - { 6978, WindowPos3dMESA_remap_index }, - { 12845, WindowPos3dvMESA_remap_index }, + { 31003, WindowPos2fMESA_remap_index }, + { 7234, WindowPos2fvMESA_remap_index }, + { 16833, WindowPos2iMESA_remap_index }, + { 18879, WindowPos2ivMESA_remap_index }, + { 19493, WindowPos2sMESA_remap_index }, + { 5121, WindowPos2svMESA_remap_index }, + { 7059, WindowPos3dMESA_remap_index }, + { 12955, WindowPos3dvMESA_remap_index }, { 511, WindowPos3fMESA_remap_index }, - { 13677, WindowPos3fvMESA_remap_index }, - { 22109, WindowPos3iMESA_remap_index }, - { 27807, WindowPos3ivMESA_remap_index }, - { 17161, WindowPos3sMESA_remap_index }, - { 29171, WindowPos3svMESA_remap_index }, - { 10099, WindowPos4dMESA_remap_index }, - { 15608, WindowPos4dvMESA_remap_index }, - { 12804, WindowPos4fMESA_remap_index }, - { 28248, WindowPos4fvMESA_remap_index }, - { 27960, WindowPos4iMESA_remap_index }, - { 11389, WindowPos4ivMESA_remap_index }, - { 17334, WindowPos4sMESA_remap_index }, - { 2896, WindowPos4svMESA_remap_index }, - { 24705, MultiModeDrawArraysIBM_remap_index }, - { 26680, MultiModeDrawElementsIBM_remap_index }, - { 11154, DeleteFencesNV_remap_index }, - { 25778, FinishFenceNV_remap_index }, - { 3326, GenFencesNV_remap_index }, - { 15588, GetFenceivNV_remap_index }, - { 7445, IsFenceNV_remap_index }, - { 12525, SetFenceNV_remap_index }, - { 3783, TestFenceNV_remap_index }, - { 29142, AreProgramsResidentNV_remap_index }, - { 28536, BindProgramNV_remap_index }, - { 23861, DeleteProgramsNV_remap_index }, - { 19732, ExecuteProgramNV_remap_index }, - { 30606, GenProgramsNV_remap_index }, - { 21474, GetProgramParameterdvNV_remap_index }, - { 9570, GetProgramParameterfvNV_remap_index }, - { 24244, GetProgramStringNV_remap_index }, - { 22486, GetProgramivNV_remap_index }, - { 21708, GetTrackMatrixivNV_remap_index }, - { 24038, GetVertexAttribPointervNV_remap_index }, - { 22730, GetVertexAttribdvNV_remap_index }, - { 8465, GetVertexAttribfvNV_remap_index }, - { 16824, GetVertexAttribivNV_remap_index }, - { 17581, IsProgramNV_remap_index }, - { 8548, LoadProgramNV_remap_index }, - { 25643, ProgramParameters4dvNV_remap_index }, - { 22416, ProgramParameters4fvNV_remap_index }, - { 18993, RequestResidentProgramsNV_remap_index }, - { 20512, TrackMatrixNV_remap_index }, - { 29699, VertexAttrib1dNV_remap_index }, - { 12436, VertexAttrib1dvNV_remap_index }, - { 26212, VertexAttrib1fNV_remap_index }, + { 13787, WindowPos3fvMESA_remap_index }, + { 22323, WindowPos3iMESA_remap_index }, + { 28074, WindowPos3ivMESA_remap_index }, + { 17351, WindowPos3sMESA_remap_index }, + { 29461, WindowPos3svMESA_remap_index }, + { 10209, WindowPos4dMESA_remap_index }, + { 15747, WindowPos4dvMESA_remap_index }, + { 12914, WindowPos4fMESA_remap_index }, + { 28538, WindowPos4fvMESA_remap_index }, + { 28227, WindowPos4iMESA_remap_index }, + { 11499, WindowPos4ivMESA_remap_index }, + { 17524, WindowPos4sMESA_remap_index }, + { 2922, WindowPos4svMESA_remap_index }, + { 24946, MultiModeDrawArraysIBM_remap_index }, + { 26947, MultiModeDrawElementsIBM_remap_index }, + { 11264, DeleteFencesNV_remap_index }, + { 26019, FinishFenceNV_remap_index }, + { 3377, GenFencesNV_remap_index }, + { 15727, GetFenceivNV_remap_index }, + { 7526, IsFenceNV_remap_index }, + { 12635, SetFenceNV_remap_index }, + { 3834, TestFenceNV_remap_index }, + { 29432, AreProgramsResidentNV_remap_index }, + { 28826, BindProgramNV_remap_index }, + { 24075, DeleteProgramsNV_remap_index }, + { 19922, ExecuteProgramNV_remap_index }, + { 30896, GenProgramsNV_remap_index }, + { 21688, GetProgramParameterdvNV_remap_index }, + { 9680, GetProgramParameterfvNV_remap_index }, + { 24458, GetProgramStringNV_remap_index }, + { 22700, GetProgramivNV_remap_index }, + { 21922, GetTrackMatrixivNV_remap_index }, + { 24252, GetVertexAttribPointervNV_remap_index }, + { 22944, GetVertexAttribdvNV_remap_index }, + { 8546, GetVertexAttribfvNV_remap_index }, + { 17014, GetVertexAttribivNV_remap_index }, + { 17771, IsProgramNV_remap_index }, + { 8629, LoadProgramNV_remap_index }, + { 25884, ProgramParameters4dvNV_remap_index }, + { 22630, ProgramParameters4fvNV_remap_index }, + { 19183, RequestResidentProgramsNV_remap_index }, + { 20702, TrackMatrixNV_remap_index }, + { 29989, VertexAttrib1dNV_remap_index }, + { 12546, VertexAttrib1dvNV_remap_index }, + { 26453, VertexAttrib1fNV_remap_index }, { 2284, VertexAttrib1fvNV_remap_index }, - { 28305, VertexAttrib1sNV_remap_index }, - { 13750, VertexAttrib1svNV_remap_index }, - { 4290, VertexAttrib2dNV_remap_index }, - { 12351, VertexAttrib2dvNV_remap_index }, - { 18448, VertexAttrib2fNV_remap_index }, - { 11962, VertexAttrib2fvNV_remap_index }, - { 5230, VertexAttrib2sNV_remap_index }, - { 17215, VertexAttrib2svNV_remap_index }, - { 10296, VertexAttrib3dNV_remap_index }, - { 29392, VertexAttrib3dvNV_remap_index }, - { 9382, VertexAttrib3fNV_remap_index }, - { 22757, VertexAttrib3fvNV_remap_index }, - { 20389, VertexAttrib3sNV_remap_index }, - { 21735, VertexAttrib3svNV_remap_index }, - { 26654, VertexAttrib4dNV_remap_index }, - { 30643, VertexAttrib4dvNV_remap_index }, - { 3984, VertexAttrib4fNV_remap_index }, - { 8598, VertexAttrib4fvNV_remap_index }, - { 24589, VertexAttrib4sNV_remap_index }, + { 28595, VertexAttrib1sNV_remap_index }, + { 13860, VertexAttrib1svNV_remap_index }, + { 4341, VertexAttrib2dNV_remap_index }, + { 12461, VertexAttrib2dvNV_remap_index }, + { 18638, VertexAttrib2fNV_remap_index }, + { 12072, VertexAttrib2fvNV_remap_index }, + { 5311, VertexAttrib2sNV_remap_index }, + { 17405, VertexAttrib2svNV_remap_index }, + { 10406, VertexAttrib3dNV_remap_index }, + { 29682, VertexAttrib3dvNV_remap_index }, + { 9492, VertexAttrib3fNV_remap_index }, + { 22971, VertexAttrib3fvNV_remap_index }, + { 20579, VertexAttrib3sNV_remap_index }, + { 21949, VertexAttrib3svNV_remap_index }, + { 26921, VertexAttrib4dNV_remap_index }, + { 30933, VertexAttrib4dvNV_remap_index }, + { 4035, VertexAttrib4fNV_remap_index }, + { 8679, VertexAttrib4fvNV_remap_index }, + { 24830, VertexAttrib4sNV_remap_index }, { 1332, VertexAttrib4svNV_remap_index }, - { 4448, VertexAttrib4ubNV_remap_index }, + { 4499, VertexAttrib4ubNV_remap_index }, { 773, VertexAttrib4ubvNV_remap_index }, - { 19912, VertexAttribPointerNV_remap_index }, + { 20102, VertexAttribPointerNV_remap_index }, { 2136, VertexAttribs1dvNV_remap_index }, - { 24126, VertexAttribs1fvNV_remap_index }, - { 30443, VertexAttribs1svNV_remap_index }, - { 9407, VertexAttribs2dvNV_remap_index }, - { 23319, VertexAttribs2fvNV_remap_index }, - { 16156, VertexAttribs2svNV_remap_index }, - { 4704, VertexAttribs3dvNV_remap_index }, + { 24340, VertexAttribs1fvNV_remap_index }, + { 30733, VertexAttribs1svNV_remap_index }, + { 9517, VertexAttribs2dvNV_remap_index }, + { 23533, VertexAttribs2fvNV_remap_index }, + { 16346, VertexAttribs2svNV_remap_index }, + { 4755, VertexAttribs3dvNV_remap_index }, { 2016, VertexAttribs3fvNV_remap_index }, - { 27555, VertexAttribs3svNV_remap_index }, - { 24679, VertexAttribs4dvNV_remap_index }, - { 4730, VertexAttribs4fvNV_remap_index }, - { 30230, VertexAttribs4svNV_remap_index }, - { 27303, VertexAttribs4ubvNV_remap_index }, - { 24781, GetTexBumpParameterfvATI_remap_index }, - { 30484, GetTexBumpParameterivATI_remap_index }, - { 16878, TexBumpParameterfvATI_remap_index }, - { 18864, TexBumpParameterivATI_remap_index }, - { 14296, AlphaFragmentOp1ATI_remap_index }, - { 9958, AlphaFragmentOp2ATI_remap_index }, - { 22673, AlphaFragmentOp3ATI_remap_index }, - { 27482, BeginFragmentShaderATI_remap_index }, - { 28735, BindFragmentShaderATI_remap_index }, - { 21864, ColorFragmentOp1ATI_remap_index }, - { 3862, ColorFragmentOp2ATI_remap_index }, - { 29037, ColorFragmentOp3ATI_remap_index }, - { 4849, DeleteFragmentShaderATI_remap_index }, - { 30667, EndFragmentShaderATI_remap_index }, - { 29913, GenFragmentShadersATI_remap_index }, - { 23450, PassTexCoordATI_remap_index }, - { 6178, SampleMapATI_remap_index }, - { 5951, SetFragmentShaderConstantATI_remap_index }, + { 27822, VertexAttribs3svNV_remap_index }, + { 24920, VertexAttribs4dvNV_remap_index }, + { 4781, VertexAttribs4fvNV_remap_index }, + { 30520, VertexAttribs4svNV_remap_index }, + { 27570, VertexAttribs4ubvNV_remap_index }, + { 25022, GetTexBumpParameterfvATI_remap_index }, + { 30774, GetTexBumpParameterivATI_remap_index }, + { 17068, TexBumpParameterfvATI_remap_index }, + { 19054, TexBumpParameterivATI_remap_index }, + { 14406, AlphaFragmentOp1ATI_remap_index }, + { 10068, AlphaFragmentOp2ATI_remap_index }, + { 22887, AlphaFragmentOp3ATI_remap_index }, + { 27749, BeginFragmentShaderATI_remap_index }, + { 29025, BindFragmentShaderATI_remap_index }, + { 22078, ColorFragmentOp1ATI_remap_index }, + { 3913, ColorFragmentOp2ATI_remap_index }, + { 29327, ColorFragmentOp3ATI_remap_index }, + { 4900, DeleteFragmentShaderATI_remap_index }, + { 30957, EndFragmentShaderATI_remap_index }, + { 30203, GenFragmentShadersATI_remap_index }, + { 23664, PassTexCoordATI_remap_index }, + { 6259, SampleMapATI_remap_index }, + { 6032, SetFragmentShaderConstantATI_remap_index }, { 358, PointParameteriNV_remap_index }, - { 13006, PointParameterivNV_remap_index }, - { 26493, ActiveStencilFaceEXT_remap_index }, - { 25303, BindVertexArrayAPPLE_remap_index }, + { 13116, PointParameterivNV_remap_index }, + { 26760, ActiveStencilFaceEXT_remap_index }, + { 25544, BindVertexArrayAPPLE_remap_index }, { 2561, DeleteVertexArraysAPPLE_remap_index }, - { 16495, GenVertexArraysAPPLE_remap_index }, - { 21539, IsVertexArrayAPPLE_remap_index }, + { 16685, GenVertexArraysAPPLE_remap_index }, + { 21753, IsVertexArrayAPPLE_remap_index }, { 814, GetProgramNamedParameterdvNV_remap_index }, - { 3167, GetProgramNamedParameterfvNV_remap_index }, - { 24812, ProgramNamedParameter4dNV_remap_index }, - { 13332, ProgramNamedParameter4dvNV_remap_index }, - { 8081, ProgramNamedParameter4fNV_remap_index }, - { 10740, ProgramNamedParameter4fvNV_remap_index }, - { 22395, DepthBoundsEXT_remap_index }, + { 3218, GetProgramNamedParameterfvNV_remap_index }, + { 25053, ProgramNamedParameter4dNV_remap_index }, + { 13442, ProgramNamedParameter4dvNV_remap_index }, + { 8162, ProgramNamedParameter4fNV_remap_index }, + { 10850, ProgramNamedParameter4fvNV_remap_index }, + { 15682, PrimitiveRestartIndexNV_remap_index }, + { 28515, PrimitiveRestartNV_remap_index }, + { 22609, DepthBoundsEXT_remap_index }, { 1082, BlendEquationSeparateEXT_remap_index }, - { 13451, BindFramebufferEXT_remap_index }, - { 23637, BindRenderbufferEXT_remap_index }, - { 8845, CheckFramebufferStatusEXT_remap_index }, - { 20829, DeleteFramebuffersEXT_remap_index }, - { 29294, DeleteRenderbuffersEXT_remap_index }, - { 12375, FramebufferRenderbufferEXT_remap_index }, - { 12542, FramebufferTexture1DEXT_remap_index }, - { 10534, FramebufferTexture2DEXT_remap_index }, - { 10201, FramebufferTexture3DEXT_remap_index }, - { 21431, GenFramebuffersEXT_remap_index }, - { 16042, GenRenderbuffersEXT_remap_index }, - { 5897, GenerateMipmapEXT_remap_index }, - { 20009, GetFramebufferAttachmentParameterivEXT_remap_index }, - { 29819, GetRenderbufferParameterivEXT_remap_index }, - { 18744, IsFramebufferEXT_remap_index }, - { 30566, IsRenderbufferEXT_remap_index }, - { 7392, RenderbufferStorageEXT_remap_index }, + { 13561, BindFramebufferEXT_remap_index }, + { 23851, BindRenderbufferEXT_remap_index }, + { 8926, CheckFramebufferStatusEXT_remap_index }, + { 21043, DeleteFramebuffersEXT_remap_index }, + { 29584, DeleteRenderbuffersEXT_remap_index }, + { 12485, FramebufferRenderbufferEXT_remap_index }, + { 12652, FramebufferTexture1DEXT_remap_index }, + { 10644, FramebufferTexture2DEXT_remap_index }, + { 10311, FramebufferTexture3DEXT_remap_index }, + { 21645, GenFramebuffersEXT_remap_index }, + { 16232, GenRenderbuffersEXT_remap_index }, + { 5978, GenerateMipmapEXT_remap_index }, + { 20199, GetFramebufferAttachmentParameterivEXT_remap_index }, + { 30109, GetRenderbufferParameterivEXT_remap_index }, + { 18934, IsFramebufferEXT_remap_index }, + { 30856, IsRenderbufferEXT_remap_index }, + { 7473, RenderbufferStorageEXT_remap_index }, { 690, BlitFramebufferEXT_remap_index }, - { 13151, BufferParameteriAPPLE_remap_index }, - { 17613, FlushMappedBufferRangeAPPLE_remap_index }, - { 2740, FramebufferTextureLayerEXT_remap_index }, - { 4613, ColorMaskIndexedEXT_remap_index }, - { 17239, DisableIndexedEXT_remap_index }, - { 24436, EnableIndexedEXT_remap_index }, - { 19980, GetBooleanIndexedvEXT_remap_index }, - { 9991, GetIntegerIndexedvEXT_remap_index }, - { 20905, IsEnabledIndexedEXT_remap_index }, - { 4113, BeginConditionalRenderNV_remap_index }, - { 23423, EndConditionalRenderNV_remap_index }, - { 8492, BeginTransformFeedbackEXT_remap_index }, - { 17263, BindBufferBaseEXT_remap_index }, - { 17133, BindBufferOffsetEXT_remap_index }, - { 11214, BindBufferRangeEXT_remap_index }, - { 13066, EndTransformFeedbackEXT_remap_index }, - { 9843, GetTransformFeedbackVaryingEXT_remap_index }, - { 19049, TransformFeedbackVaryingsEXT_remap_index }, - { 27204, ProvokingVertexEXT_remap_index }, - { 9791, GetTexParameterPointervAPPLE_remap_index }, - { 4475, TextureRangeAPPLE_remap_index }, - { 10606, GetObjectParameterivAPPLE_remap_index }, - { 18188, ObjectPurgeableAPPLE_remap_index }, - { 5024, ObjectUnpurgeableAPPLE_remap_index }, - { 26519, StencilFuncSeparateATI_remap_index }, - { 16562, ProgramEnvParameters4fvEXT_remap_index }, - { 19943, ProgramLocalParameters4fvEXT_remap_index }, - { 12934, GetQueryObjecti64vEXT_remap_index }, - { 9433, GetQueryObjectui64vEXT_remap_index }, - { 21933, EGLImageTargetRenderbufferStorageOES_remap_index }, - { 11093, EGLImageTargetTexture2DOES_remap_index }, + { 13261, BufferParameteriAPPLE_remap_index }, + { 17803, FlushMappedBufferRangeAPPLE_remap_index }, + { 2766, FramebufferTextureLayerEXT_remap_index }, + { 4664, ColorMaskIndexedEXT_remap_index }, + { 17429, DisableIndexedEXT_remap_index }, + { 24677, EnableIndexedEXT_remap_index }, + { 20170, GetBooleanIndexedvEXT_remap_index }, + { 10101, GetIntegerIndexedvEXT_remap_index }, + { 21119, IsEnabledIndexedEXT_remap_index }, + { 21019, ClearColorIiEXT_remap_index }, + { 3128, ClearColorIuiEXT_remap_index }, + { 9115, GetTexParameterIivEXT_remap_index }, + { 5281, GetTexParameterIuivEXT_remap_index }, + { 2740, TexParameterIivEXT_remap_index }, + { 24593, TexParameterIuivEXT_remap_index }, + { 4164, BeginConditionalRenderNV_remap_index }, + { 23637, EndConditionalRenderNV_remap_index }, + { 8573, BeginTransformFeedbackEXT_remap_index }, + { 17453, BindBufferBaseEXT_remap_index }, + { 17323, BindBufferOffsetEXT_remap_index }, + { 11324, BindBufferRangeEXT_remap_index }, + { 13176, EndTransformFeedbackEXT_remap_index }, + { 9953, GetTransformFeedbackVaryingEXT_remap_index }, + { 19239, TransformFeedbackVaryingsEXT_remap_index }, + { 27471, ProvokingVertexEXT_remap_index }, + { 9901, GetTexParameterPointervAPPLE_remap_index }, + { 4526, TextureRangeAPPLE_remap_index }, + { 10716, GetObjectParameterivAPPLE_remap_index }, + { 18378, ObjectPurgeableAPPLE_remap_index }, + { 5075, ObjectUnpurgeableAPPLE_remap_index }, + { 16054, ActiveProgramEXT_remap_index }, + { 16025, CreateShaderProgramEXT_remap_index }, + { 26545, UseShaderProgramEXT_remap_index }, + { 26786, StencilFuncSeparateATI_remap_index }, + { 16752, ProgramEnvParameters4fvEXT_remap_index }, + { 20133, ProgramLocalParameters4fvEXT_remap_index }, + { 13044, GetQueryObjecti64vEXT_remap_index }, + { 9543, GetQueryObjectui64vEXT_remap_index }, + { 22147, EGLImageTargetRenderbufferStorageOES_remap_index }, + { 11203, EGLImageTargetTexture2DOES_remap_index }, { -1, -1 } }; @@ -4893,108 +4948,108 @@ static const struct gl_function_remap MESA_alt_functions[] = { /* from GL_EXT_blend_color */ { 2479, _gloffset_BlendColor }, /* from GL_EXT_blend_minmax */ - { 10258, _gloffset_BlendEquation }, + { 10368, _gloffset_BlendEquation }, /* from GL_EXT_color_subtable */ - { 15630, _gloffset_ColorSubTable }, - { 29226, _gloffset_CopyColorSubTable }, + { 15769, _gloffset_ColorSubTable }, + { 29516, _gloffset_CopyColorSubTable }, /* from GL_EXT_convolution */ { 252, _gloffset_ConvolutionFilter1D }, { 2323, _gloffset_CopyConvolutionFilter1D }, - { 3663, _gloffset_GetConvolutionParameteriv }, - { 7741, _gloffset_ConvolutionFilter2D }, - { 7907, _gloffset_ConvolutionParameteriv }, - { 8367, _gloffset_ConvolutionParameterfv }, - { 18892, _gloffset_GetSeparableFilter }, - { 22163, _gloffset_SeparableFilter2D }, - { 22975, _gloffset_ConvolutionParameteri }, - { 23098, _gloffset_ConvolutionParameterf }, - { 24615, _gloffset_GetConvolutionParameterfv }, - { 25469, _gloffset_GetConvolutionFilter }, - { 27744, _gloffset_CopyConvolutionFilter2D }, + { 3714, _gloffset_GetConvolutionParameteriv }, + { 7822, _gloffset_ConvolutionFilter2D }, + { 7988, _gloffset_ConvolutionParameteriv }, + { 8448, _gloffset_ConvolutionParameterfv }, + { 19082, _gloffset_GetSeparableFilter }, + { 22377, _gloffset_SeparableFilter2D }, + { 23189, _gloffset_ConvolutionParameteri }, + { 23312, _gloffset_ConvolutionParameterf }, + { 24856, _gloffset_GetConvolutionParameterfv }, + { 25710, _gloffset_GetConvolutionFilter }, + { 28011, _gloffset_CopyConvolutionFilter2D }, /* from GL_EXT_copy_texture */ - { 13810, _gloffset_CopyTexSubImage3D }, - { 15370, _gloffset_CopyTexImage2D }, - { 22583, _gloffset_CopyTexImage1D }, - { 25150, _gloffset_CopyTexSubImage2D }, - { 27382, _gloffset_CopyTexSubImage1D }, + { 13920, _gloffset_CopyTexSubImage3D }, + { 15480, _gloffset_CopyTexImage2D }, + { 22797, _gloffset_CopyTexImage1D }, + { 25391, _gloffset_CopyTexSubImage2D }, + { 27649, _gloffset_CopyTexSubImage1D }, /* from GL_EXT_draw_range_elements */ - { 8704, _gloffset_DrawRangeElements }, + { 8785, _gloffset_DrawRangeElements }, /* from GL_EXT_histogram */ { 851, _gloffset_Histogram }, - { 3127, _gloffset_ResetHistogram }, - { 9104, _gloffset_GetMinmax }, - { 14144, _gloffset_GetHistogramParameterfv }, - { 22508, _gloffset_GetMinmaxParameteriv }, - { 24505, _gloffset_ResetMinmax }, - { 25366, _gloffset_GetHistogramParameteriv }, - { 26453, _gloffset_GetHistogram }, - { 28851, _gloffset_Minmax }, - { 30313, _gloffset_GetMinmaxParameterfv }, + { 3178, _gloffset_ResetHistogram }, + { 9214, _gloffset_GetMinmax }, + { 14254, _gloffset_GetHistogramParameterfv }, + { 22722, _gloffset_GetMinmaxParameteriv }, + { 24746, _gloffset_ResetMinmax }, + { 25607, _gloffset_GetHistogramParameteriv }, + { 26720, _gloffset_GetHistogram }, + { 29141, _gloffset_Minmax }, + { 30603, _gloffset_GetMinmaxParameterfv }, /* from GL_EXT_paletted_texture */ - { 7603, _gloffset_ColorTable }, - { 13990, _gloffset_GetColorTable }, - { 21178, _gloffset_GetColorTableParameterfv }, - { 23154, _gloffset_GetColorTableParameteriv }, + { 7684, _gloffset_ColorTable }, + { 14100, _gloffset_GetColorTable }, + { 21392, _gloffset_GetColorTableParameterfv }, + { 23368, _gloffset_GetColorTableParameteriv }, /* from GL_EXT_subtexture */ - { 6324, _gloffset_TexSubImage1D }, - { 9718, _gloffset_TexSubImage2D }, + { 6405, _gloffset_TexSubImage1D }, + { 9828, _gloffset_TexSubImage2D }, /* from GL_EXT_texture3D */ { 1697, _gloffset_TexImage3D }, - { 20947, _gloffset_TexSubImage3D }, + { 21161, _gloffset_TexSubImage3D }, /* from GL_EXT_texture_object */ - { 3003, _gloffset_PrioritizeTextures }, - { 6773, _gloffset_AreTexturesResident }, - { 12460, _gloffset_GenTextures }, - { 14476, _gloffset_DeleteTextures }, - { 17894, _gloffset_IsTexture }, - { 27447, _gloffset_BindTexture }, + { 3029, _gloffset_PrioritizeTextures }, + { 6854, _gloffset_AreTexturesResident }, + { 12570, _gloffset_GenTextures }, + { 14586, _gloffset_DeleteTextures }, + { 18084, _gloffset_IsTexture }, + { 27714, _gloffset_BindTexture }, /* from GL_EXT_vertex_array */ - { 22335, _gloffset_ArrayElement }, - { 28439, _gloffset_GetPointerv }, - { 29940, _gloffset_DrawArrays }, + { 22549, _gloffset_ArrayElement }, + { 28729, _gloffset_GetPointerv }, + { 30230, _gloffset_DrawArrays }, /* from GL_SGI_color_table */ - { 6891, _gloffset_ColorTableParameteriv }, - { 7603, _gloffset_ColorTable }, - { 13990, _gloffset_GetColorTable }, - { 14100, _gloffset_CopyColorTable }, - { 17755, _gloffset_ColorTableParameterfv }, - { 21178, _gloffset_GetColorTableParameterfv }, - { 23154, _gloffset_GetColorTableParameteriv }, + { 6972, _gloffset_ColorTableParameteriv }, + { 7684, _gloffset_ColorTable }, + { 14100, _gloffset_GetColorTable }, + { 14210, _gloffset_CopyColorTable }, + { 17945, _gloffset_ColorTableParameterfv }, + { 21392, _gloffset_GetColorTableParameterfv }, + { 23368, _gloffset_GetColorTableParameteriv }, /* from GL_VERSION_1_3 */ { 420, _gloffset_MultiTexCoord3sARB }, { 652, _gloffset_ActiveTextureARB }, - { 3800, _gloffset_MultiTexCoord1fvARB }, - { 5425, _gloffset_MultiTexCoord3dARB }, - { 5470, _gloffset_MultiTexCoord2iARB }, - { 5594, _gloffset_MultiTexCoord2svARB }, - { 7559, _gloffset_MultiTexCoord2fARB }, - { 9463, _gloffset_MultiTexCoord3fvARB }, - { 10020, _gloffset_MultiTexCoord4sARB }, - { 10654, _gloffset_MultiTexCoord2dvARB }, - { 11036, _gloffset_MultiTexCoord1svARB }, - { 11447, _gloffset_MultiTexCoord3svARB }, - { 11508, _gloffset_MultiTexCoord4iARB }, - { 12231, _gloffset_MultiTexCoord3iARB }, - { 12963, _gloffset_MultiTexCoord1dARB }, - { 13180, _gloffset_MultiTexCoord3dvARB }, - { 14344, _gloffset_MultiTexCoord3ivARB }, - { 14389, _gloffset_MultiTexCoord2sARB }, - { 15687, _gloffset_MultiTexCoord4ivARB }, - { 17405, _gloffset_ClientActiveTextureARB }, - { 19688, _gloffset_MultiTexCoord2dARB }, - { 20129, _gloffset_MultiTexCoord4dvARB }, - { 20440, _gloffset_MultiTexCoord4fvARB }, - { 21319, _gloffset_MultiTexCoord3fARB }, - { 23682, _gloffset_MultiTexCoord4dARB }, - { 23948, _gloffset_MultiTexCoord1sARB }, - { 24152, _gloffset_MultiTexCoord1dvARB }, - { 24994, _gloffset_MultiTexCoord1ivARB }, - { 25087, _gloffset_MultiTexCoord2ivARB }, - { 25426, _gloffset_MultiTexCoord1iARB }, - { 26728, _gloffset_MultiTexCoord4svARB }, - { 27246, _gloffset_MultiTexCoord1fARB }, - { 27509, _gloffset_MultiTexCoord4fARB }, - { 29774, _gloffset_MultiTexCoord2fvARB }, + { 3851, _gloffset_MultiTexCoord1fvARB }, + { 5506, _gloffset_MultiTexCoord3dARB }, + { 5551, _gloffset_MultiTexCoord2iARB }, + { 5675, _gloffset_MultiTexCoord2svARB }, + { 7640, _gloffset_MultiTexCoord2fARB }, + { 9573, _gloffset_MultiTexCoord3fvARB }, + { 10130, _gloffset_MultiTexCoord4sARB }, + { 10764, _gloffset_MultiTexCoord2dvARB }, + { 11146, _gloffset_MultiTexCoord1svARB }, + { 11557, _gloffset_MultiTexCoord3svARB }, + { 11618, _gloffset_MultiTexCoord4iARB }, + { 12341, _gloffset_MultiTexCoord3iARB }, + { 13073, _gloffset_MultiTexCoord1dARB }, + { 13290, _gloffset_MultiTexCoord3dvARB }, + { 14454, _gloffset_MultiTexCoord3ivARB }, + { 14499, _gloffset_MultiTexCoord2sARB }, + { 15826, _gloffset_MultiTexCoord4ivARB }, + { 17595, _gloffset_ClientActiveTextureARB }, + { 19878, _gloffset_MultiTexCoord2dARB }, + { 20319, _gloffset_MultiTexCoord4dvARB }, + { 20630, _gloffset_MultiTexCoord4fvARB }, + { 21533, _gloffset_MultiTexCoord3fARB }, + { 23896, _gloffset_MultiTexCoord4dARB }, + { 24162, _gloffset_MultiTexCoord1sARB }, + { 24366, _gloffset_MultiTexCoord1dvARB }, + { 25235, _gloffset_MultiTexCoord1ivARB }, + { 25328, _gloffset_MultiTexCoord2ivARB }, + { 25667, _gloffset_MultiTexCoord1iARB }, + { 26995, _gloffset_MultiTexCoord4svARB }, + { 27513, _gloffset_MultiTexCoord1fARB }, + { 27776, _gloffset_MultiTexCoord4fARB }, + { 30064, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; @@ -5002,7 +5057,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[] = { - { 8425, -1 }, /* TbufferMask3DFX */ + { 8506, -1 }, /* TbufferMask3DFX */ { -1, -1 } }; #endif @@ -5073,7 +5128,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[] = { - { 11411, -1 }, /* FramebufferTextureLayer */ + { 11521, -1 }, /* FramebufferTextureLayer */ { -1, -1 } }; #endif @@ -5087,11 +5142,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[] = { - { 3378, -1 }, /* MatrixIndexusvARB */ - { 12052, -1 }, /* MatrixIndexuivARB */ - { 13302, -1 }, /* MatrixIndexPointerARB */ - { 18143, -1 }, /* CurrentPaletteMatrixARB */ - { 21063, -1 }, /* MatrixIndexubvARB */ + { 3429, -1 }, /* MatrixIndexusvARB */ + { 12162, -1 }, /* MatrixIndexuivARB */ + { 13412, -1 }, /* MatrixIndexPointerARB */ + { 18333, -1 }, /* CurrentPaletteMatrixARB */ + { 21277, -1 }, /* MatrixIndexubvARB */ { -1, -1 } }; #endif @@ -5169,15 +5224,15 @@ 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[] = { { 2265, -1 }, /* WeightubvARB */ - { 5785, -1 }, /* WeightivARB */ - { 10123, -1 }, /* WeightPointerARB */ - { 12720, -1 }, /* WeightfvARB */ - { 16182, -1 }, /* WeightbvARB */ - { 19356, -1 }, /* WeightusvARB */ - { 22089, -1 }, /* VertexBlendARB */ - { 27330, -1 }, /* WeightsvARB */ - { 29276, -1 }, /* WeightdvARB */ - { 29974, -1 }, /* WeightuivARB */ + { 5866, -1 }, /* WeightivARB */ + { 10233, -1 }, /* WeightPointerARB */ + { 12830, -1 }, /* WeightfvARB */ + { 16372, -1 }, /* WeightbvARB */ + { 19546, -1 }, /* WeightusvARB */ + { 22303, -1 }, /* VertexBlendARB */ + { 27597, -1 }, /* WeightsvARB */ + { 29566, -1 }, /* WeightdvARB */ + { 30264, -1 }, /* WeightuivARB */ { -1, -1 } }; #endif @@ -5268,15 +5323,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[] = { - { 10258, _gloffset_BlendEquation }, + { 10368, _gloffset_BlendEquation }, { -1, -1 } }; #endif #if defined(need_GL_EXT_color_subtable) static const struct gl_function_remap GL_EXT_color_subtable_functions[] = { - { 15630, _gloffset_ColorSubTable }, - { 29226, _gloffset_CopyColorSubTable }, + { 15769, _gloffset_ColorSubTable }, + { 29516, _gloffset_CopyColorSubTable }, { -1, -1 } }; #endif @@ -5292,64 +5347,64 @@ static const struct gl_function_remap GL_EXT_compiled_vertex_array_functions[] = static const struct gl_function_remap GL_EXT_convolution_functions[] = { { 252, _gloffset_ConvolutionFilter1D }, { 2323, _gloffset_CopyConvolutionFilter1D }, - { 3663, _gloffset_GetConvolutionParameteriv }, - { 7741, _gloffset_ConvolutionFilter2D }, - { 7907, _gloffset_ConvolutionParameteriv }, - { 8367, _gloffset_ConvolutionParameterfv }, - { 18892, _gloffset_GetSeparableFilter }, - { 22163, _gloffset_SeparableFilter2D }, - { 22975, _gloffset_ConvolutionParameteri }, - { 23098, _gloffset_ConvolutionParameterf }, - { 24615, _gloffset_GetConvolutionParameterfv }, - { 25469, _gloffset_GetConvolutionFilter }, - { 27744, _gloffset_CopyConvolutionFilter2D }, + { 3714, _gloffset_GetConvolutionParameteriv }, + { 7822, _gloffset_ConvolutionFilter2D }, + { 7988, _gloffset_ConvolutionParameteriv }, + { 8448, _gloffset_ConvolutionParameterfv }, + { 19082, _gloffset_GetSeparableFilter }, + { 22377, _gloffset_SeparableFilter2D }, + { 23189, _gloffset_ConvolutionParameteri }, + { 23312, _gloffset_ConvolutionParameterf }, + { 24856, _gloffset_GetConvolutionParameterfv }, + { 25710, _gloffset_GetConvolutionFilter }, + { 28011, _gloffset_CopyConvolutionFilter2D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_coordinate_frame) static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { - { 9602, -1 }, /* TangentPointerEXT */ - { 11566, -1 }, /* Binormal3ivEXT */ - { 12184, -1 }, /* Tangent3sEXT */ - { 13367, -1 }, /* Tangent3fvEXT */ - { 17114, -1 }, /* Tangent3dvEXT */ - { 17841, -1 }, /* Binormal3bvEXT */ - { 18945, -1 }, /* Binormal3dEXT */ - { 20995, -1 }, /* Tangent3fEXT */ - { 23047, -1 }, /* Binormal3sEXT */ - { 23492, -1 }, /* Tangent3ivEXT */ - { 23511, -1 }, /* Tangent3dEXT */ - { 24379, -1 }, /* Binormal3svEXT */ - { 24892, -1 }, /* Binormal3fEXT */ - { 25744, -1 }, /* Binormal3dvEXT */ - { 26950, -1 }, /* Tangent3iEXT */ - { 28029, -1 }, /* Tangent3bvEXT */ - { 28474, -1 }, /* Tangent3bEXT */ - { 28999, -1 }, /* Binormal3fvEXT */ - { 29673, -1 }, /* BinormalPointerEXT */ - { 30078, -1 }, /* Tangent3svEXT */ - { 30515, -1 }, /* Binormal3bEXT */ - { 30692, -1 }, /* Binormal3iEXT */ + { 9712, -1 }, /* TangentPointerEXT */ + { 11676, -1 }, /* Binormal3ivEXT */ + { 12294, -1 }, /* Tangent3sEXT */ + { 13477, -1 }, /* Tangent3fvEXT */ + { 17304, -1 }, /* Tangent3dvEXT */ + { 18031, -1 }, /* Binormal3bvEXT */ + { 19135, -1 }, /* Binormal3dEXT */ + { 21209, -1 }, /* Tangent3fEXT */ + { 23261, -1 }, /* Binormal3sEXT */ + { 23706, -1 }, /* Tangent3ivEXT */ + { 23725, -1 }, /* Tangent3dEXT */ + { 24620, -1 }, /* Binormal3svEXT */ + { 25133, -1 }, /* Binormal3fEXT */ + { 25985, -1 }, /* Binormal3dvEXT */ + { 27217, -1 }, /* Tangent3iEXT */ + { 28296, -1 }, /* Tangent3bvEXT */ + { 28764, -1 }, /* Tangent3bEXT */ + { 29289, -1 }, /* Binormal3fvEXT */ + { 29963, -1 }, /* BinormalPointerEXT */ + { 30368, -1 }, /* Tangent3svEXT */ + { 30805, -1 }, /* Binormal3bEXT */ + { 30982, -1 }, /* Binormal3iEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_copy_texture) static const struct gl_function_remap GL_EXT_copy_texture_functions[] = { - { 13810, _gloffset_CopyTexSubImage3D }, - { 15370, _gloffset_CopyTexImage2D }, - { 22583, _gloffset_CopyTexImage1D }, - { 25150, _gloffset_CopyTexSubImage2D }, - { 27382, _gloffset_CopyTexSubImage1D }, + { 13920, _gloffset_CopyTexSubImage3D }, + { 15480, _gloffset_CopyTexImage2D }, + { 22797, _gloffset_CopyTexImage1D }, + { 25391, _gloffset_CopyTexSubImage2D }, + { 27649, _gloffset_CopyTexSubImage1D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_cull_vertex) static const struct gl_function_remap GL_EXT_cull_vertex_functions[] = { - { 8056, -1 }, /* CullParameterdvEXT */ - { 10699, -1 }, /* CullParameterfvEXT */ + { 8137, -1 }, /* CullParameterdvEXT */ + { 10809, -1 }, /* CullParameterfvEXT */ { -1, -1 } }; #endif @@ -5377,7 +5432,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[] = { - { 8704, _gloffset_DrawRangeElements }, + { 8785, _gloffset_DrawRangeElements }, { -1, -1 } }; #endif @@ -5420,38 +5475,38 @@ static const struct gl_function_remap GL_EXT_gpu_program_parameters_functions[] #if defined(need_GL_EXT_histogram) static const struct gl_function_remap GL_EXT_histogram_functions[] = { { 851, _gloffset_Histogram }, - { 3127, _gloffset_ResetHistogram }, - { 9104, _gloffset_GetMinmax }, - { 14144, _gloffset_GetHistogramParameterfv }, - { 22508, _gloffset_GetMinmaxParameteriv }, - { 24505, _gloffset_ResetMinmax }, - { 25366, _gloffset_GetHistogramParameteriv }, - { 26453, _gloffset_GetHistogram }, - { 28851, _gloffset_Minmax }, - { 30313, _gloffset_GetMinmaxParameterfv }, + { 3178, _gloffset_ResetHistogram }, + { 9214, _gloffset_GetMinmax }, + { 14254, _gloffset_GetHistogramParameterfv }, + { 22722, _gloffset_GetMinmaxParameteriv }, + { 24746, _gloffset_ResetMinmax }, + { 25607, _gloffset_GetHistogramParameteriv }, + { 26720, _gloffset_GetHistogram }, + { 29141, _gloffset_Minmax }, + { 30603, _gloffset_GetMinmaxParameterfv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_index_func) static const struct gl_function_remap GL_EXT_index_func_functions[] = { - { 10485, -1 }, /* IndexFuncEXT */ + { 10595, -1 }, /* IndexFuncEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_index_material) static const struct gl_function_remap GL_EXT_index_material_functions[] = { - { 19443, -1 }, /* IndexMaterialEXT */ + { 19633, -1 }, /* IndexMaterialEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_light_texture) static const struct gl_function_remap GL_EXT_light_texture_functions[] = { - { 24399, -1 }, /* ApplyTextureEXT */ - { 24459, -1 }, /* TextureMaterialEXT */ - { 24484, -1 }, /* TextureLightEXT */ + { 24640, -1 }, /* ApplyTextureEXT */ + { 24700, -1 }, /* TextureMaterialEXT */ + { 24725, -1 }, /* TextureLightEXT */ { -1, -1 } }; #endif @@ -5472,20 +5527,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[] = { - { 7603, _gloffset_ColorTable }, - { 13990, _gloffset_GetColorTable }, - { 21178, _gloffset_GetColorTableParameterfv }, - { 23154, _gloffset_GetColorTableParameteriv }, + { 7684, _gloffset_ColorTable }, + { 14100, _gloffset_GetColorTable }, + { 21392, _gloffset_GetColorTableParameterfv }, + { 23368, _gloffset_GetColorTableParameteriv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_pixel_transform) static const struct gl_function_remap GL_EXT_pixel_transform_functions[] = { - { 20094, -1 }, /* PixelTransformParameterfEXT */ - { 20174, -1 }, /* PixelTransformParameteriEXT */ - { 28212, -1 }, /* PixelTransformParameterfvEXT */ - { 29637, -1 }, /* PixelTransformParameterivEXT */ + { 20284, -1 }, /* PixelTransformParameterfEXT */ + { 20364, -1 }, /* PixelTransformParameteriEXT */ + { 28479, -1 }, /* PixelTransformParameterfvEXT */ + { 29927, -1 }, /* PixelTransformParameterivEXT */ { -1, -1 } }; #endif @@ -5518,6 +5573,13 @@ static const struct gl_function_remap GL_EXT_secondary_color_functions[] = { }; #endif +#if defined(need_GL_EXT_separate_shader_objects) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_EXT_separate_shader_objects_functions[] = { + { -1, -1 } +}; +#endif + #if defined(need_GL_EXT_stencil_two_side) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_EXT_stencil_two_side_functions[] = { @@ -5527,8 +5589,8 @@ 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[] = { - { 6324, _gloffset_TexSubImage1D }, - { 9718, _gloffset_TexSubImage2D }, + { 6405, _gloffset_TexSubImage1D }, + { 9828, _gloffset_TexSubImage2D }, { -1, -1 } }; #endif @@ -5536,7 +5598,7 @@ static const struct gl_function_remap GL_EXT_subtexture_functions[] = { #if defined(need_GL_EXT_texture3D) static const struct gl_function_remap GL_EXT_texture3D_functions[] = { { 1697, _gloffset_TexImage3D }, - { 20947, _gloffset_TexSubImage3D }, + { 21161, _gloffset_TexSubImage3D }, { -1, -1 } }; #endif @@ -5548,21 +5610,28 @@ static const struct gl_function_remap GL_EXT_texture_array_functions[] = { }; #endif +#if defined(need_GL_EXT_texture_integer) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_EXT_texture_integer_functions[] = { + { -1, -1 } +}; +#endif + #if defined(need_GL_EXT_texture_object) static const struct gl_function_remap GL_EXT_texture_object_functions[] = { - { 3003, _gloffset_PrioritizeTextures }, - { 6773, _gloffset_AreTexturesResident }, - { 12460, _gloffset_GenTextures }, - { 14476, _gloffset_DeleteTextures }, - { 17894, _gloffset_IsTexture }, - { 27447, _gloffset_BindTexture }, + { 3029, _gloffset_PrioritizeTextures }, + { 6854, _gloffset_AreTexturesResident }, + { 12570, _gloffset_GenTextures }, + { 14586, _gloffset_DeleteTextures }, + { 18084, _gloffset_IsTexture }, + { 27714, _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[] = { - { 12670, -1 }, /* TextureNormalEXT */ + { 12780, -1 }, /* TextureNormalEXT */ { -1, -1 } }; #endif @@ -5584,18 +5653,18 @@ 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[] = { - { 22335, _gloffset_ArrayElement }, - { 28439, _gloffset_GetPointerv }, - { 29940, _gloffset_DrawArrays }, + { 22549, _gloffset_ArrayElement }, + { 28729, _gloffset_GetPointerv }, + { 30230, _gloffset_DrawArrays }, { -1, -1 } }; #endif #if defined(need_GL_EXT_vertex_weighting) static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = { - { 17924, -1 }, /* VertexWeightfvEXT */ - { 24870, -1 }, /* VertexWeightfEXT */ - { 26422, -1 }, /* VertexWeightPointerEXT */ + { 18114, -1 }, /* VertexWeightfvEXT */ + { 25111, -1 }, /* VertexWeightfEXT */ + { 26689, -1 }, /* VertexWeightPointerEXT */ { -1, -1 } }; #endif @@ -5603,11 +5672,11 @@ static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = { #if defined(need_GL_HP_image_transform) static const struct gl_function_remap GL_HP_image_transform_functions[] = { { 2196, -1 }, /* GetImageTransformParameterfvHP */ - { 3344, -1 }, /* ImageTransformParameterfHP */ - { 9296, -1 }, /* ImageTransformParameterfvHP */ - { 10954, -1 }, /* ImageTransformParameteriHP */ - { 11301, -1 }, /* GetImageTransformParameterivHP */ - { 17988, -1 }, /* ImageTransformParameterivHP */ + { 3395, -1 }, /* ImageTransformParameterfHP */ + { 9406, -1 }, /* ImageTransformParameterfvHP */ + { 11064, -1 }, /* ImageTransformParameteriHP */ + { 11411, -1 }, /* GetImageTransformParameterivHP */ + { 18178, -1 }, /* ImageTransformParameterivHP */ { -1, -1 } }; #endif @@ -5621,14 +5690,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[] = { - { 3896, -1 }, /* SecondaryColorPointerListIBM */ - { 5291, -1 }, /* NormalPointerListIBM */ - { 6947, -1 }, /* FogCoordPointerListIBM */ - { 7254, -1 }, /* VertexPointerListIBM */ - { 10875, -1 }, /* ColorPointerListIBM */ - { 12291, -1 }, /* TexCoordPointerListIBM */ - { 12692, -1 }, /* IndexPointerListIBM */ - { 30256, -1 }, /* EdgeFlagPointerListIBM */ + { 3947, -1 }, /* SecondaryColorPointerListIBM */ + { 5372, -1 }, /* NormalPointerListIBM */ + { 7028, -1 }, /* FogCoordPointerListIBM */ + { 7335, -1 }, /* VertexPointerListIBM */ + { 10985, -1 }, /* ColorPointerListIBM */ + { 12401, -1 }, /* TexCoordPointerListIBM */ + { 12802, -1 }, /* IndexPointerListIBM */ + { 30546, -1 }, /* EdgeFlagPointerListIBM */ { -1, -1 } }; #endif @@ -5642,10 +5711,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[] = { - { 11678, -1 }, /* VertexPointervINTEL */ - { 14237, -1 }, /* ColorPointervINTEL */ - { 27718, -1 }, /* NormalPointervINTEL */ - { 28144, -1 }, /* TexCoordPointervINTEL */ + { 11788, -1 }, /* VertexPointervINTEL */ + { 14347, -1 }, /* ColorPointervINTEL */ + { 27985, -1 }, /* NormalPointervINTEL */ + { 28411, -1 }, /* TexCoordPointervINTEL */ { -1, -1 } }; #endif @@ -5660,9 +5729,9 @@ 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[] = { { 1561, -1 }, /* GetDebugLogLengthMESA */ - { 3102, -1 }, /* ClearDebugLogMESA */ - { 4057, -1 }, /* GetDebugLogMESA */ - { 28632, -1 }, /* CreateDebugObjectMESA */ + { 3153, -1 }, /* ClearDebugLogMESA */ + { 4108, -1 }, /* GetDebugLogMESA */ + { 28922, -1 }, /* CreateDebugObjectMESA */ { -1, -1 } }; #endif @@ -5683,15 +5752,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[] = { - { 5986, -1 }, /* GetMapAttribParameterivNV */ - { 7709, -1 }, /* MapControlPointsNV */ - { 7808, -1 }, /* MapParameterfvNV */ - { 9701, -1 }, /* EvalMapsNV */ - { 15852, -1 }, /* GetMapAttribParameterfvNV */ - { 16018, -1 }, /* MapParameterivNV */ - { 22898, -1 }, /* GetMapParameterivNV */ - { 23396, -1 }, /* GetMapParameterfvNV */ - { 27054, -1 }, /* GetMapControlPointsNV */ + { 6067, -1 }, /* GetMapAttribParameterivNV */ + { 7790, -1 }, /* MapControlPointsNV */ + { 7889, -1 }, /* MapParameterfvNV */ + { 9811, -1 }, /* EvalMapsNV */ + { 15991, -1 }, /* GetMapAttribParameterfvNV */ + { 16208, -1 }, /* MapParameterivNV */ + { 23112, -1 }, /* GetMapParameterivNV */ + { 23610, -1 }, /* GetMapParameterfvNV */ + { 27321, -1 }, /* GetMapControlPointsNV */ { -1, -1 } }; #endif @@ -5717,6 +5786,13 @@ static const struct gl_function_remap GL_NV_point_sprite_functions[] = { }; #endif +#if defined(need_GL_NV_primitive_restart) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_NV_primitive_restart_functions[] = { + { -1, -1 } +}; +#endif + #if defined(need_GL_NV_register_combiners) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_NV_register_combiners_functions[] = { @@ -5726,8 +5802,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[] = { - { 14707, -1 }, /* CombinerStageParameterfvNV */ - { 15022, -1 }, /* GetCombinerStageParameterfvNV */ + { 14817, -1 }, /* CombinerStageParameterfvNV */ + { 15132, -1 }, /* GetCombinerStageParameterfvNV */ { -1, -1 } }; #endif @@ -5755,23 +5831,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[] = { - { 7893, -1 }, /* HintPGI */ + { 7974, -1 }, /* HintPGI */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_detail_texture) static const struct gl_function_remap GL_SGIS_detail_texture_functions[] = { - { 14995, -1 }, /* GetDetailTexFuncSGIS */ - { 15315, -1 }, /* DetailTexFuncSGIS */ + { 15105, -1 }, /* GetDetailTexFuncSGIS */ + { 15425, -1 }, /* DetailTexFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_fog_function) static const struct gl_function_remap GL_SGIS_fog_function_functions[] = { - { 25132, -1 }, /* FogFuncSGIS */ - { 25797, -1 }, /* GetFogFuncSGIS */ + { 25373, -1 }, /* FogFuncSGIS */ + { 26038, -1 }, /* GetFogFuncSGIS */ { -1, -1 } }; #endif @@ -5799,8 +5875,8 @@ 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[] = { - { 6047, -1 }, /* GetSharpenTexFuncSGIS */ - { 20414, -1 }, /* SharpenTexFuncSGIS */ + { 6128, -1 }, /* GetSharpenTexFuncSGIS */ + { 20604, -1 }, /* SharpenTexFuncSGIS */ { -1, -1 } }; #endif @@ -5808,41 +5884,41 @@ static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = { #if defined(need_GL_SGIS_texture4D) static const struct gl_function_remap GL_SGIS_texture4D_functions[] = { { 933, -1 }, /* TexImage4DSGIS */ - { 14545, -1 }, /* TexSubImage4DSGIS */ + { 14655, -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[] = { - { 13943, -1 }, /* TextureColorMaskSGIS */ + { 14053, -1 }, /* TextureColorMaskSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_texture_filter4) static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = { - { 6224, -1 }, /* GetTexFilterFuncSGIS */ - { 15141, -1 }, /* TexFilterFuncSGIS */ + { 6305, -1 }, /* GetTexFilterFuncSGIS */ + { 15251, -1 }, /* TexFilterFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_async) static const struct gl_function_remap GL_SGIX_async_functions[] = { - { 3053, -1 }, /* AsyncMarkerSGIX */ - { 4036, -1 }, /* FinishAsyncSGIX */ - { 4830, -1 }, /* PollAsyncSGIX */ - { 20561, -1 }, /* DeleteAsyncMarkersSGIX */ - { 20616, -1 }, /* IsAsyncMarkerSGIX */ - { 30053, -1 }, /* GenAsyncMarkersSGIX */ + { 3079, -1 }, /* AsyncMarkerSGIX */ + { 4087, -1 }, /* FinishAsyncSGIX */ + { 4881, -1 }, /* PollAsyncSGIX */ + { 20751, -1 }, /* DeleteAsyncMarkersSGIX */ + { 20806, -1 }, /* IsAsyncMarkerSGIX */ + { 30343, -1 }, /* GenAsyncMarkersSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_flush_raster) static const struct gl_function_remap GL_SGIX_flush_raster_functions[] = { - { 6601, -1 }, /* FlushRasterSGIX */ + { 6682, -1 }, /* FlushRasterSGIX */ { -1, -1 } }; #endif @@ -5850,37 +5926,37 @@ static const struct gl_function_remap GL_SGIX_flush_raster_functions[] = { #if defined(need_GL_SGIX_fragment_lighting) static const struct gl_function_remap GL_SGIX_fragment_lighting_functions[] = { { 2449, -1 }, /* FragmentMaterialfvSGIX */ - { 4781, -1 }, /* FragmentLightiSGIX */ - { 5727, -1 }, /* GetFragmentMaterialfvSGIX */ - { 7321, -1 }, /* FragmentMaterialfSGIX */ - { 7482, -1 }, /* GetFragmentLightivSGIX */ - { 8319, -1 }, /* FragmentLightModeliSGIX */ - { 9764, -1 }, /* FragmentLightivSGIX */ - { 10066, -1 }, /* GetFragmentMaterialivSGIX */ - { 17811, -1 }, /* FragmentLightModelfSGIX */ - { 18111, -1 }, /* FragmentColorMaterialSGIX */ - { 18511, -1 }, /* FragmentMaterialiSGIX */ - { 19771, -1 }, /* LightEnviSGIX */ - { 21270, -1 }, /* FragmentLightModelfvSGIX */ - { 21579, -1 }, /* FragmentLightfvSGIX */ - { 26181, -1 }, /* FragmentLightModelivSGIX */ - { 26304, -1 }, /* FragmentLightfSGIX */ - { 28969, -1 }, /* GetFragmentLightfvSGIX */ - { 30536, -1 }, /* FragmentMaterialivSGIX */ + { 4832, -1 }, /* FragmentLightiSGIX */ + { 5808, -1 }, /* GetFragmentMaterialfvSGIX */ + { 7402, -1 }, /* FragmentMaterialfSGIX */ + { 7563, -1 }, /* GetFragmentLightivSGIX */ + { 8400, -1 }, /* FragmentLightModeliSGIX */ + { 9874, -1 }, /* FragmentLightivSGIX */ + { 10176, -1 }, /* GetFragmentMaterialivSGIX */ + { 18001, -1 }, /* FragmentLightModelfSGIX */ + { 18301, -1 }, /* FragmentColorMaterialSGIX */ + { 18701, -1 }, /* FragmentMaterialiSGIX */ + { 19961, -1 }, /* LightEnviSGIX */ + { 21484, -1 }, /* FragmentLightModelfvSGIX */ + { 21793, -1 }, /* FragmentLightfvSGIX */ + { 26422, -1 }, /* FragmentLightModelivSGIX */ + { 26571, -1 }, /* FragmentLightfSGIX */ + { 29259, -1 }, /* GetFragmentLightfvSGIX */ + { 30826, -1 }, /* FragmentMaterialivSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_framezoom) static const struct gl_function_remap GL_SGIX_framezoom_functions[] = { - { 20639, -1 }, /* FrameZoomSGIX */ + { 20829, -1 }, /* FrameZoomSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_igloo_interface) static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = { - { 26612, -1 }, /* IglooInterfaceSGIX */ + { 26879, -1 }, /* IglooInterfaceSGIX */ { -1, -1 } }; #endif @@ -5888,11 +5964,11 @@ static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = { #if defined(need_GL_SGIX_instruments) static const struct gl_function_remap GL_SGIX_instruments_functions[] = { { 2612, -1 }, /* ReadInstrumentsSGIX */ - { 5803, -1 }, /* PollInstrumentsSGIX */ - { 9662, -1 }, /* GetInstrumentsSGIX */ - { 11889, -1 }, /* StartInstrumentsSGIX */ - { 14741, -1 }, /* StopInstrumentsSGIX */ - { 16395, -1 }, /* InstrumentsBufferSGIX */ + { 5884, -1 }, /* PollInstrumentsSGIX */ + { 9772, -1 }, /* GetInstrumentsSGIX */ + { 11999, -1 }, /* StartInstrumentsSGIX */ + { 14851, -1 }, /* StopInstrumentsSGIX */ + { 16585, -1 }, /* InstrumentsBufferSGIX */ { -1, -1 } }; #endif @@ -5900,11 +5976,11 @@ static const struct gl_function_remap GL_SGIX_instruments_functions[] = { #if defined(need_GL_SGIX_list_priority) static const struct gl_function_remap GL_SGIX_list_priority_functions[] = { { 1164, -1 }, /* ListParameterfSGIX */ - { 2802, -1 }, /* GetListParameterfvSGIX */ - { 16310, -1 }, /* ListParameteriSGIX */ - { 17064, -1 }, /* ListParameterfvSGIX */ - { 19177, -1 }, /* ListParameterivSGIX */ - { 30097, -1 }, /* GetListParameterivSGIX */ + { 2828, -1 }, /* GetListParameterfvSGIX */ + { 16500, -1 }, /* ListParameteriSGIX */ + { 17254, -1 }, /* ListParameterfvSGIX */ + { 19367, -1 }, /* ListParameterivSGIX */ + { 30387, -1 }, /* GetListParameterivSGIX */ { -1, -1 } }; #endif @@ -5918,88 +5994,88 @@ 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[] = { - { 3290, -1 }, /* LoadIdentityDeformationMapSGIX */ - { 11175, -1 }, /* DeformationMap3dSGIX */ - { 14841, -1 }, /* DeformSGIX */ - { 22447, -1 }, /* DeformationMap3fSGIX */ + { 3341, -1 }, /* LoadIdentityDeformationMapSGIX */ + { 11285, -1 }, /* DeformationMap3dSGIX */ + { 14951, -1 }, /* DeformSGIX */ + { 22661, -1 }, /* DeformationMap3fSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_reference_plane) static const struct gl_function_remap GL_SGIX_reference_plane_functions[] = { - { 13494, -1 }, /* ReferencePlaneSGIX */ + { 13604, -1 }, /* ReferencePlaneSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_sprite) static const struct gl_function_remap GL_SGIX_sprite_functions[] = { - { 8817, -1 }, /* SpriteParameterfvSGIX */ - { 18966, -1 }, /* SpriteParameteriSGIX */ - { 24539, -1 }, /* SpriteParameterfSGIX */ - { 27176, -1 }, /* SpriteParameterivSGIX */ + { 8898, -1 }, /* SpriteParameterfvSGIX */ + { 19156, -1 }, /* SpriteParameteriSGIX */ + { 24780, -1 }, /* SpriteParameterfSGIX */ + { 27443, -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[] = { - { 19025, -1 }, /* TagSampleBufferSGIX */ + { 19215, -1 }, /* TagSampleBufferSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGI_color_table) static const struct gl_function_remap GL_SGI_color_table_functions[] = { - { 6891, _gloffset_ColorTableParameteriv }, - { 7603, _gloffset_ColorTable }, - { 13990, _gloffset_GetColorTable }, - { 14100, _gloffset_CopyColorTable }, - { 17755, _gloffset_ColorTableParameterfv }, - { 21178, _gloffset_GetColorTableParameterfv }, - { 23154, _gloffset_GetColorTableParameteriv }, + { 6972, _gloffset_ColorTableParameteriv }, + { 7684, _gloffset_ColorTable }, + { 14100, _gloffset_GetColorTable }, + { 14210, _gloffset_CopyColorTable }, + { 17945, _gloffset_ColorTableParameterfv }, + { 21392, _gloffset_GetColorTableParameterfv }, + { 23368, _gloffset_GetColorTableParameteriv }, { -1, -1 } }; #endif #if defined(need_GL_SUNX_constant_data) static const struct gl_function_remap GL_SUNX_constant_data_functions[] = { - { 28947, -1 }, /* FinishTextureSUNX */ + { 29237, -1 }, /* FinishTextureSUNX */ { -1, -1 } }; #endif #if defined(need_GL_SUN_global_alpha) static const struct gl_function_remap GL_SUN_global_alpha_functions[] = { - { 3074, -1 }, /* GlobalAlphaFactorubSUN */ - { 4263, -1 }, /* GlobalAlphaFactoriSUN */ - { 5828, -1 }, /* GlobalAlphaFactordSUN */ - { 8901, -1 }, /* GlobalAlphaFactoruiSUN */ - { 9253, -1 }, /* GlobalAlphaFactorbSUN */ - { 12204, -1 }, /* GlobalAlphaFactorfSUN */ - { 12323, -1 }, /* GlobalAlphaFactorusSUN */ - { 20878, -1 }, /* GlobalAlphaFactorsSUN */ + { 3100, -1 }, /* GlobalAlphaFactorubSUN */ + { 4314, -1 }, /* GlobalAlphaFactoriSUN */ + { 5909, -1 }, /* GlobalAlphaFactordSUN */ + { 8982, -1 }, /* GlobalAlphaFactoruiSUN */ + { 9363, -1 }, /* GlobalAlphaFactorbSUN */ + { 12314, -1 }, /* GlobalAlphaFactorfSUN */ + { 12433, -1 }, /* GlobalAlphaFactorusSUN */ + { 21092, -1 }, /* GlobalAlphaFactorsSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_mesh_array) static const struct gl_function_remap GL_SUN_mesh_array_functions[] = { - { 26988, -1 }, /* DrawMeshArraysSUN */ + { 27255, -1 }, /* DrawMeshArraysSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_triangle_list) static const struct gl_function_remap GL_SUN_triangle_list_functions[] = { - { 4010, -1 }, /* ReplacementCodeubSUN */ - { 5639, -1 }, /* ReplacementCodeubvSUN */ - { 17476, -1 }, /* ReplacementCodeusvSUN */ - { 17664, -1 }, /* ReplacementCodePointerSUN */ - { 19835, -1 }, /* ReplacementCodeuiSUN */ - { 20590, -1 }, /* ReplacementCodeusSUN */ - { 27633, -1 }, /* ReplacementCodeuivSUN */ + { 4061, -1 }, /* ReplacementCodeubSUN */ + { 5720, -1 }, /* ReplacementCodeubvSUN */ + { 17666, -1 }, /* ReplacementCodeusvSUN */ + { 17854, -1 }, /* ReplacementCodePointerSUN */ + { 20025, -1 }, /* ReplacementCodeuiSUN */ + { 20780, -1 }, /* ReplacementCodeusSUN */ + { 27900, -1 }, /* ReplacementCodeuivSUN */ { -1, -1 } }; #endif @@ -6013,39 +6089,39 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = { { 1872, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */ { 2385, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */ { 2681, -1 }, /* Color4ubVertex3fvSUN */ - { 4144, -1 }, /* Color4ubVertex3fSUN */ - { 4220, -1 }, /* TexCoord2fVertex3fSUN */ - { 4547, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */ - { 4934, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */ - { 5534, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */ - { 6279, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ - { 6638, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ - { 7350, -1 }, /* TexCoord2fNormal3fVertex3fSUN */ - { 8118, -1 }, /* Color3fVertex3fSUN */ - { 9212, -1 }, /* Color3fVertex3fvSUN */ - { 9627, -1 }, /* Color4fNormal3fVertex3fvSUN */ - { 10364, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ - { 11752, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ - { 13225, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ - { 13636, -1 }, /* TexCoord2fColor3fVertex3fSUN */ - { 14766, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ - { 15100, -1 }, /* Color4ubVertex2fvSUN */ - { 15340, -1 }, /* Normal3fVertex3fSUN */ - { 16336, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ - { 16597, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ - { 17305, -1 }, /* TexCoord2fVertex3fvSUN */ - { 18081, -1 }, /* Color4ubVertex2fSUN */ - { 18302, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */ - { 20260, -1 }, /* TexCoord2fColor4ubVertex3fSUN */ - { 20658, -1 }, /* Normal3fVertex3fvSUN */ - { 21087, -1 }, /* Color4fNormal3fVertex3fSUN */ - { 21996, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ - { 23991, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ - { 25248, -1 }, /* TexCoord4fVertex4fSUN */ - { 25674, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ - { 26025, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ - { 26152, -1 }, /* TexCoord4fVertex4fvSUN */ - { 26860, -1 }, /* ReplacementCodeuiVertex3fSUN */ + { 4195, -1 }, /* Color4ubVertex3fSUN */ + { 4271, -1 }, /* TexCoord2fVertex3fSUN */ + { 4598, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */ + { 4985, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */ + { 5615, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */ + { 6360, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ + { 6719, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ + { 7431, -1 }, /* TexCoord2fNormal3fVertex3fSUN */ + { 8199, -1 }, /* Color3fVertex3fSUN */ + { 9322, -1 }, /* Color3fVertex3fvSUN */ + { 9737, -1 }, /* Color4fNormal3fVertex3fvSUN */ + { 10474, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ + { 11862, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ + { 13335, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ + { 13746, -1 }, /* TexCoord2fColor3fVertex3fSUN */ + { 14876, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ + { 15210, -1 }, /* Color4ubVertex2fvSUN */ + { 15450, -1 }, /* Normal3fVertex3fSUN */ + { 16526, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ + { 16787, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ + { 17495, -1 }, /* TexCoord2fVertex3fvSUN */ + { 18271, -1 }, /* Color4ubVertex2fSUN */ + { 18492, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */ + { 20450, -1 }, /* TexCoord2fColor4ubVertex3fSUN */ + { 20848, -1 }, /* Normal3fVertex3fvSUN */ + { 21301, -1 }, /* Color4fNormal3fVertex3fSUN */ + { 22210, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ + { 24205, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ + { 25489, -1 }, /* TexCoord4fVertex4fSUN */ + { 25915, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ + { 26266, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ + { 26393, -1 }, /* TexCoord4fVertex4fvSUN */ + { 27127, -1 }, /* ReplacementCodeuiVertex3fSUN */ { -1, -1 } }; #endif @@ -6055,38 +6131,38 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = { static const struct gl_function_remap GL_VERSION_1_3_functions[] = { { 420, _gloffset_MultiTexCoord3sARB }, { 652, _gloffset_ActiveTextureARB }, - { 3800, _gloffset_MultiTexCoord1fvARB }, - { 5425, _gloffset_MultiTexCoord3dARB }, - { 5470, _gloffset_MultiTexCoord2iARB }, - { 5594, _gloffset_MultiTexCoord2svARB }, - { 7559, _gloffset_MultiTexCoord2fARB }, - { 9463, _gloffset_MultiTexCoord3fvARB }, - { 10020, _gloffset_MultiTexCoord4sARB }, - { 10654, _gloffset_MultiTexCoord2dvARB }, - { 11036, _gloffset_MultiTexCoord1svARB }, - { 11447, _gloffset_MultiTexCoord3svARB }, - { 11508, _gloffset_MultiTexCoord4iARB }, - { 12231, _gloffset_MultiTexCoord3iARB }, - { 12963, _gloffset_MultiTexCoord1dARB }, - { 13180, _gloffset_MultiTexCoord3dvARB }, - { 14344, _gloffset_MultiTexCoord3ivARB }, - { 14389, _gloffset_MultiTexCoord2sARB }, - { 15687, _gloffset_MultiTexCoord4ivARB }, - { 17405, _gloffset_ClientActiveTextureARB }, - { 19688, _gloffset_MultiTexCoord2dARB }, - { 20129, _gloffset_MultiTexCoord4dvARB }, - { 20440, _gloffset_MultiTexCoord4fvARB }, - { 21319, _gloffset_MultiTexCoord3fARB }, - { 23682, _gloffset_MultiTexCoord4dARB }, - { 23948, _gloffset_MultiTexCoord1sARB }, - { 24152, _gloffset_MultiTexCoord1dvARB }, - { 24994, _gloffset_MultiTexCoord1ivARB }, - { 25087, _gloffset_MultiTexCoord2ivARB }, - { 25426, _gloffset_MultiTexCoord1iARB }, - { 26728, _gloffset_MultiTexCoord4svARB }, - { 27246, _gloffset_MultiTexCoord1fARB }, - { 27509, _gloffset_MultiTexCoord4fARB }, - { 29774, _gloffset_MultiTexCoord2fvARB }, + { 3851, _gloffset_MultiTexCoord1fvARB }, + { 5506, _gloffset_MultiTexCoord3dARB }, + { 5551, _gloffset_MultiTexCoord2iARB }, + { 5675, _gloffset_MultiTexCoord2svARB }, + { 7640, _gloffset_MultiTexCoord2fARB }, + { 9573, _gloffset_MultiTexCoord3fvARB }, + { 10130, _gloffset_MultiTexCoord4sARB }, + { 10764, _gloffset_MultiTexCoord2dvARB }, + { 11146, _gloffset_MultiTexCoord1svARB }, + { 11557, _gloffset_MultiTexCoord3svARB }, + { 11618, _gloffset_MultiTexCoord4iARB }, + { 12341, _gloffset_MultiTexCoord3iARB }, + { 13073, _gloffset_MultiTexCoord1dARB }, + { 13290, _gloffset_MultiTexCoord3dvARB }, + { 14454, _gloffset_MultiTexCoord3ivARB }, + { 14499, _gloffset_MultiTexCoord2sARB }, + { 15826, _gloffset_MultiTexCoord4ivARB }, + { 17595, _gloffset_ClientActiveTextureARB }, + { 19878, _gloffset_MultiTexCoord2dARB }, + { 20319, _gloffset_MultiTexCoord4dvARB }, + { 20630, _gloffset_MultiTexCoord4fvARB }, + { 21533, _gloffset_MultiTexCoord3fARB }, + { 23896, _gloffset_MultiTexCoord4dARB }, + { 24162, _gloffset_MultiTexCoord1sARB }, + { 24366, _gloffset_MultiTexCoord1dvARB }, + { 25235, _gloffset_MultiTexCoord1ivARB }, + { 25328, _gloffset_MultiTexCoord2ivARB }, + { 25667, _gloffset_MultiTexCoord1iARB }, + { 26995, _gloffset_MultiTexCoord4svARB }, + { 27513, _gloffset_MultiTexCoord1fARB }, + { 27776, _gloffset_MultiTexCoord4fARB }, + { 30064, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; #endif diff --git a/src/mesa/main/renderbuffer.c b/src/mesa/main/renderbuffer.c index 118fb52bb2e..dc8bc747874 100644 --- a/src/mesa/main/renderbuffer.c +++ b/src/mesa/main/renderbuffer.c @@ -61,7 +61,7 @@ */ static void * -get_pointer_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -75,7 +75,7 @@ get_pointer_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const GLubyte *src = (const GLubyte *) rb->Data + y * rb->Width + x; @@ -85,7 +85,7 @@ get_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLubyte *dst = (GLubyte *) values; @@ -99,7 +99,7 @@ get_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLubyte *src = (const GLubyte *) values; @@ -120,7 +120,7 @@ put_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLubyte val = *((const GLubyte *) value); @@ -144,7 +144,7 @@ put_mono_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -161,7 +161,7 @@ put_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_values_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -183,7 +183,7 @@ put_mono_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, */ static void * -get_pointer_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -195,7 +195,7 @@ get_pointer_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const void *src = rb->GetPointer(ctx, rb, x, y); @@ -205,7 +205,7 @@ get_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLushort *dst = (GLushort *) values; @@ -219,7 +219,7 @@ get_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLushort *src = (const GLushort *) values; @@ -240,7 +240,7 @@ put_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLushort val = *((const GLushort *) value); @@ -264,7 +264,7 @@ put_mono_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -281,7 +281,7 @@ put_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, +put_mono_values_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -312,7 +312,7 @@ put_mono_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, */ static void * -get_pointer_uint(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -324,7 +324,7 @@ get_pointer_uint(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const void *src = rb->GetPointer(ctx, rb, x, y); @@ -335,7 +335,7 @@ get_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLuint *dst = (GLuint *) values; @@ -350,7 +350,7 @@ get_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLuint *src = (const GLuint *) values; @@ -372,7 +372,7 @@ put_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLuint val = *((const GLuint *) value); @@ -397,7 +397,7 @@ put_mono_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -415,7 +415,7 @@ put_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_values_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -440,7 +440,7 @@ put_mono_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, */ static void * -get_pointer_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { ASSERT(rb->Format == MESA_FORMAT_RGB888); @@ -452,7 +452,7 @@ get_pointer_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const GLubyte *src = (const GLubyte *) rb->Data + 3 * (y * rb->Width + x); @@ -470,7 +470,7 @@ get_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLubyte *dst = (GLubyte *) values; @@ -489,7 +489,7 @@ get_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* note: incoming values are RGB+A! */ @@ -509,7 +509,7 @@ put_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_rgb_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_rgb_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* note: incoming values are RGB+A! */ @@ -529,7 +529,7 @@ put_row_rgb_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { /* note: incoming value is RGB+A! */ @@ -557,7 +557,7 @@ put_mono_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -578,7 +578,7 @@ put_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, +put_mono_values_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -606,7 +606,7 @@ put_mono_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, */ static void * -get_pointer_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -618,7 +618,7 @@ get_pointer_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const GLubyte *src = (const GLubyte *) rb->Data + 4 * (y * rb->Width + x); @@ -629,7 +629,7 @@ get_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { /* treat 4*GLubyte as 1*GLuint */ @@ -645,7 +645,7 @@ get_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* treat 4*GLubyte as 1*GLuint */ @@ -668,7 +668,7 @@ put_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_rgb_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_rgb_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* Store RGB values in RGBA buffer */ @@ -689,7 +689,7 @@ put_row_rgb_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { /* treat 4*GLubyte as 1*GLuint */ @@ -722,7 +722,7 @@ put_mono_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -741,7 +741,7 @@ put_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, +put_mono_values_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -765,7 +765,7 @@ put_mono_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, */ static void * -get_pointer_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -776,7 +776,7 @@ get_pointer_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const GLshort *src = (const GLshort *) rb->Data + 4 * (y * rb->Width + x); @@ -786,7 +786,7 @@ get_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLushort *dst = (GLushort *) values; @@ -801,7 +801,7 @@ get_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLushort *src = (const GLushort *) values; @@ -825,7 +825,7 @@ put_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_rgb_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_rgb_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* Put RGB values in RGBA buffer */ @@ -850,7 +850,7 @@ put_row_rgb_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLushort val0 = ((const GLushort *) value)[0]; @@ -878,7 +878,7 @@ put_mono_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -898,7 +898,7 @@ put_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, +put_mono_values_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -936,7 +936,7 @@ put_mono_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, * Get/PutValues functions. */ GLboolean -_mesa_soft_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +_mesa_soft_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { @@ -1145,7 +1145,7 @@ _mesa_soft_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, static GLboolean -alloc_storage_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, +alloc_storage_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLenum internalFormat, GLuint width, GLuint height) { ASSERT(arb != arb->Wrapped); @@ -1195,7 +1195,7 @@ delete_renderbuffer_alpha8(struct gl_renderbuffer *arb) static void * -get_pointer_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, +get_pointer_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLint x, GLint y) { return NULL; /* don't allow direct access! */ @@ -1203,7 +1203,7 @@ get_pointer_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, static void -get_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +get_row_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, GLint x, GLint y, void *values) { /* NOTE: 'values' is RGBA format! */ @@ -1222,7 +1222,7 @@ get_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -get_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +get_values_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, const GLint x[], const GLint y[], void *values) { GLubyte *dst = (GLubyte *) values; @@ -1240,7 +1240,7 @@ get_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +put_row_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLubyte *src = (const GLubyte *) values; @@ -1260,7 +1260,7 @@ put_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_row_rgb_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +put_row_rgb_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLubyte *src = (const GLubyte *) values; @@ -1280,7 +1280,7 @@ put_row_rgb_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_mono_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +put_mono_row_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLubyte val = ((const GLubyte *) value)[3]; @@ -1305,7 +1305,7 @@ put_mono_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +put_values_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -1326,7 +1326,7 @@ put_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_mono_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, +put_mono_values_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -1368,7 +1368,7 @@ copy_buffer_alpha8(struct gl_renderbuffer* dst, struct gl_renderbuffer* src) * direct buffer access is not supported. */ static void * -nop_get_pointer(GLcontext *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) +nop_get_pointer(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { return NULL; } @@ -1422,7 +1422,7 @@ _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name) * renderbuffers or window-system renderbuffers. */ struct gl_renderbuffer * -_mesa_new_renderbuffer(GLcontext *ctx, GLuint name) +_mesa_new_renderbuffer(struct gl_context *ctx, GLuint name) { struct gl_renderbuffer *rb = CALLOC_STRUCT(gl_renderbuffer); if (rb) { @@ -1453,7 +1453,7 @@ _mesa_delete_renderbuffer(struct gl_renderbuffer *rb) * This would not be used for hardware-based renderbuffers. */ struct gl_renderbuffer * -_mesa_new_soft_renderbuffer(GLcontext *ctx, GLuint name) +_mesa_new_soft_renderbuffer(struct gl_context *ctx, GLuint name) { struct gl_renderbuffer *rb = _mesa_new_renderbuffer(ctx, name); if (rb) { @@ -1476,7 +1476,7 @@ _mesa_new_soft_renderbuffer(GLcontext *ctx, GLuint name) * rendering! */ GLboolean -_mesa_add_color_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_color_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint rgbBits, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) @@ -1540,7 +1540,7 @@ _mesa_add_color_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, * rendering! */ GLboolean -_mesa_add_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) @@ -1624,7 +1624,7 @@ _mesa_add_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, * copy the back buffer alpha channel into the front buffer alpha channel. */ void -_mesa_copy_soft_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb) +_mesa_copy_soft_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb) { if (fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer && fb->Attachment[BUFFER_BACK_LEFT].Renderbuffer) @@ -1648,7 +1648,7 @@ _mesa_copy_soft_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb) * rendering! */ GLboolean -_mesa_add_depth_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_depth_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint depthBits) { struct gl_renderbuffer *rb; @@ -1696,7 +1696,7 @@ _mesa_add_depth_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, * rendering! */ GLboolean -_mesa_add_stencil_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_stencil_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint stencilBits) { struct gl_renderbuffer *rb; @@ -1735,7 +1735,7 @@ _mesa_add_stencil_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, * rendering! */ GLboolean -_mesa_add_accum_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_accum_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint redBits, GLuint greenBits, GLuint blueBits, GLuint alphaBits) { @@ -1776,7 +1776,7 @@ _mesa_add_accum_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, * NOTE: color-index aux buffers not supported. */ GLboolean -_mesa_add_aux_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_aux_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint colorBits, GLuint numBuffers) { GLuint i; @@ -1990,7 +1990,7 @@ _mesa_reference_renderbuffer(struct gl_renderbuffer **ptr, * \return new depth/stencil renderbuffer */ struct gl_renderbuffer * -_mesa_new_depthstencil_renderbuffer(GLcontext *ctx, GLuint name) +_mesa_new_depthstencil_renderbuffer(struct gl_context *ctx, GLuint name) { struct gl_renderbuffer *dsrb; diff --git a/src/mesa/main/renderbuffer.h b/src/mesa/main/renderbuffer.h index bc92b269821..8791369dbee 100644 --- a/src/mesa/main/renderbuffer.h +++ b/src/mesa/main/renderbuffer.h @@ -36,52 +36,52 @@ extern void _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name); extern struct gl_renderbuffer * -_mesa_new_renderbuffer(GLcontext *ctx, GLuint name); +_mesa_new_renderbuffer(struct gl_context *ctx, GLuint name); extern void _mesa_delete_renderbuffer(struct gl_renderbuffer *rb); extern struct gl_renderbuffer * -_mesa_new_soft_renderbuffer(GLcontext *ctx, GLuint name); +_mesa_new_soft_renderbuffer(struct gl_context *ctx, GLuint name); extern GLboolean -_mesa_soft_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +_mesa_soft_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height); extern GLboolean -_mesa_add_color_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_color_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint rgbBits, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight); extern GLboolean -_mesa_add_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight); extern void -_mesa_copy_soft_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb); +_mesa_copy_soft_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb); extern GLboolean -_mesa_add_depth_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_depth_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint depthBits); extern GLboolean -_mesa_add_stencil_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_stencil_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint stencilBits); extern GLboolean -_mesa_add_accum_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_accum_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint redBits, GLuint greenBits, GLuint blueBits, GLuint alphaBits); extern GLboolean -_mesa_add_aux_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_aux_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint bits, GLuint numBuffers); extern void @@ -105,7 +105,7 @@ _mesa_reference_renderbuffer(struct gl_renderbuffer **ptr, struct gl_renderbuffer *rb); extern struct gl_renderbuffer * -_mesa_new_depthstencil_renderbuffer(GLcontext *ctx, GLuint name); +_mesa_new_depthstencil_renderbuffer(struct gl_context *ctx, GLuint name); #endif /* RENDERBUFFER_H */ diff --git a/src/mesa/main/scissor.c b/src/mesa/main/scissor.c index 523f3c3ab83..4cf0bc2528c 100644 --- a/src/mesa/main/scissor.c +++ b/src/mesa/main/scissor.c @@ -58,12 +58,12 @@ _mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height ) * * \sa glScissor(). * - * Verifies the parameters and updates __GLcontextRec::Scissor. On a + * Verifies the parameters and updates __struct gl_contextRec::Scissor. On a * change flushes the vertices and notifies the driver via * the dd_function_table::Scissor callback. */ void -_mesa_set_scissor(GLcontext *ctx, +_mesa_set_scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) { if (x == ctx->Scissor.X && @@ -88,7 +88,7 @@ _mesa_set_scissor(GLcontext *ctx, * \param ctx the GL context. */ void -_mesa_init_scissor(GLcontext *ctx) +_mesa_init_scissor(struct gl_context *ctx) { /* Scissor group */ ctx->Scissor.Enabled = GL_FALSE; diff --git a/src/mesa/main/scissor.h b/src/mesa/main/scissor.h index b852a2122d0..bd909019db2 100644 --- a/src/mesa/main/scissor.h +++ b/src/mesa/main/scissor.h @@ -35,12 +35,12 @@ _mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height ); extern void -_mesa_set_scissor(GLcontext *ctx, +_mesa_set_scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height); extern void -_mesa_init_scissor(GLcontext *ctx); +_mesa_init_scissor(struct gl_context *ctx); #endif diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index c25d2a19747..e6c7f7aa3f8 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -47,7 +47,7 @@ #include "program/prog_parameter.h" #include "program/prog_uniform.h" #include "talloc.h" - +#include <stdbool.h> /** Define this to enable shader substitution (see below) */ #define SHADER_SUBST 0 @@ -89,7 +89,7 @@ get_shader_flags(void) * Initialize context's shader state. */ void -_mesa_init_shader_state(GLcontext *ctx) +_mesa_init_shader_state(struct gl_context *ctx) { /* Device drivers may override these to control what kind of instructions * are generated by the GLSL compiler. @@ -114,9 +114,14 @@ _mesa_init_shader_state(GLcontext *ctx) * Free the per-context shader-related state. */ void -_mesa_free_shader_state(GLcontext *ctx) +_mesa_free_shader_state(struct gl_context *ctx) { - _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentProgram, NULL); + _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentVertexProgram, NULL); + _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentGeometryProgram, + NULL); + _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentFragmentProgram, + NULL); + _mesa_reference_shader_program(ctx, &ctx->Shader.ActiveProgram, NULL); } @@ -202,6 +207,35 @@ _mesa_copy_string(GLchar *dst, GLsizei maxLength, /** + * Confirm that the a shader type is valid and supported by the implementation + * + * \param ctx Current GL context + * \param type Shader target + * + */ +static bool +validate_shader_target(const struct gl_context *ctx, GLenum type) +{ + switch (type) { +#if FEATURE_ARB_fragment_shader + case GL_FRAGMENT_SHADER: + return ctx->Extensions.ARB_fragment_shader; +#endif +#if FEATURE_ARB_vertex_shader + case GL_VERTEX_SHADER: + return ctx->Extensions.ARB_vertex_shader; +#endif +#if FEATURE_ARB_geometry_shader4 + case GL_GEOMETRY_SHADER_ARB: + return ctx->Extensions.ARB_geometry_shader4; +#endif + default: + return false; + } +} + + +/** * Find the length of the longest transform feedback varying name * which was specified with glTransformFeedbackVaryings(). */ @@ -221,7 +255,7 @@ longest_feedback_varying_name(const struct gl_shader_program *shProg) static GLboolean -is_program(GLcontext *ctx, GLuint name) +is_program(struct gl_context *ctx, GLuint name) { struct gl_shader_program *shProg = _mesa_lookup_shader_program(ctx, name); return shProg ? GL_TRUE : GL_FALSE; @@ -229,7 +263,7 @@ is_program(GLcontext *ctx, GLuint name) static GLboolean -is_shader(GLcontext *ctx, GLuint name) +is_shader(struct gl_context *ctx, GLuint name) { struct gl_shader *shader = _mesa_lookup_shader(ctx, name); return shader ? GL_TRUE : GL_FALSE; @@ -240,7 +274,7 @@ is_shader(GLcontext *ctx, GLuint name) * Attach shader to a shader program. */ static void -attach_shader(GLcontext *ctx, GLuint program, GLuint shader) +attach_shader(struct gl_context *ctx, GLuint program, GLuint shader) { struct gl_shader_program *shProg; struct gl_shader *sh; @@ -287,7 +321,7 @@ attach_shader(GLcontext *ctx, GLuint program, GLuint shader) static GLint -get_attrib_location(GLcontext *ctx, GLuint program, const GLchar *name) +get_attrib_location(struct gl_context *ctx, GLuint program, const GLchar *name) { struct gl_shader_program *shProg = _mesa_lookup_shader_program_err(ctx, program, "glGetAttribLocation"); @@ -320,7 +354,7 @@ get_attrib_location(GLcontext *ctx, GLuint program, const GLchar *name) static void -bind_attrib_location(GLcontext *ctx, GLuint program, GLuint index, +bind_attrib_location(struct gl_context *ctx, GLuint program, GLuint index, const GLchar *name) { struct gl_shader_program *shProg; @@ -371,24 +405,18 @@ bind_attrib_location(GLcontext *ctx, GLuint program, GLuint index, static GLuint -create_shader(GLcontext *ctx, GLenum type) +create_shader(struct gl_context *ctx, GLenum type) { struct gl_shader *sh; GLuint name; - name = _mesa_HashFindFreeKeyBlock(ctx->Shared->ShaderObjects, 1); - - switch (type) { - case GL_FRAGMENT_SHADER: - case GL_VERTEX_SHADER: - case GL_GEOMETRY_SHADER_ARB: - sh = ctx->Driver.NewShader(ctx, name, type); - break; - default: + if (!validate_shader_target(ctx, type)) { _mesa_error(ctx, GL_INVALID_ENUM, "CreateShader(type)"); return 0; } + name = _mesa_HashFindFreeKeyBlock(ctx->Shared->ShaderObjects, 1); + sh = ctx->Driver.NewShader(ctx, name, type); _mesa_HashInsert(ctx->Shared->ShaderObjects, name, sh); return name; @@ -396,7 +424,7 @@ create_shader(GLcontext *ctx, GLenum type) static GLuint -create_shader_program(GLcontext *ctx) +create_shader_program(struct gl_context *ctx) { GLuint name; struct gl_shader_program *shProg; @@ -418,7 +446,7 @@ create_shader_program(GLcontext *ctx) * DeleteProgramARB. */ static void -delete_shader_program(GLcontext *ctx, GLuint name) +delete_shader_program(struct gl_context *ctx, GLuint name) { /* * NOTE: deleting shaders/programs works a bit differently than @@ -442,7 +470,7 @@ delete_shader_program(GLcontext *ctx, GLuint name) static void -delete_shader(GLcontext *ctx, GLuint shader) +delete_shader(struct gl_context *ctx, GLuint shader) { struct gl_shader *sh; @@ -458,7 +486,7 @@ delete_shader(GLcontext *ctx, GLuint shader) static void -detach_shader(GLcontext *ctx, GLuint program, GLuint shader) +detach_shader(struct gl_context *ctx, GLuint program, GLuint shader) { struct gl_shader_program *shProg; GLuint n; @@ -526,7 +554,7 @@ detach_shader(GLcontext *ctx, GLuint program, GLuint shader) static void -get_active_attrib(GLcontext *ctx, GLuint program, GLuint index, +get_active_attrib(struct gl_context *ctx, GLuint program, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLchar *nameOut) { @@ -561,7 +589,7 @@ get_active_attrib(GLcontext *ctx, GLuint program, GLuint index, * Return list of shaders attached to shader program. */ static void -get_attached_shaders(GLcontext *ctx, GLuint program, GLsizei maxCount, +get_attached_shaders(struct gl_context *ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj) { struct gl_shader_program *shProg = @@ -581,11 +609,11 @@ get_attached_shaders(GLcontext *ctx, GLuint program, GLsizei maxCount, * glGetHandleARB() - return ID/name of currently bound shader program. */ static GLuint -get_handle(GLcontext *ctx, GLenum pname) +get_handle(struct gl_context *ctx, GLenum pname) { if (pname == GL_PROGRAM_OBJECT_ARB) { - if (ctx->Shader.CurrentProgram) - return ctx->Shader.CurrentProgram->Name; + if (ctx->Shader.ActiveProgram) + return ctx->Shader.ActiveProgram->Name; else return 0; } @@ -602,7 +630,7 @@ get_handle(GLcontext *ctx, GLenum pname) * programs (see glGetProgramivARB). */ static void -get_programiv(GLcontext *ctx, GLuint program, GLenum pname, GLint *params) +get_programiv(struct gl_context *ctx, GLuint program, GLenum pname, GLint *params) { const struct gl_program_parameter_list *attribs; struct gl_shader_program *shProg @@ -684,7 +712,7 @@ get_programiv(GLcontext *ctx, GLuint program, GLenum pname, GLint *params) * glGetShaderiv() - get GLSL shader state */ static void -get_shaderiv(GLcontext *ctx, GLuint name, GLenum pname, GLint *params) +get_shaderiv(struct gl_context *ctx, GLuint name, GLenum pname, GLint *params) { struct gl_shader *shader = _mesa_lookup_shader_err(ctx, name, "glGetShaderiv"); @@ -717,7 +745,7 @@ get_shaderiv(GLcontext *ctx, GLuint name, GLenum pname, GLint *params) static void -get_program_info_log(GLcontext *ctx, GLuint program, GLsizei bufSize, +get_program_info_log(struct gl_context *ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) { struct gl_shader_program *shProg @@ -731,7 +759,7 @@ get_program_info_log(GLcontext *ctx, GLuint program, GLsizei bufSize, static void -get_shader_info_log(GLcontext *ctx, GLuint shader, GLsizei bufSize, +get_shader_info_log(struct gl_context *ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) { struct gl_shader *sh = _mesa_lookup_shader(ctx, shader); @@ -747,7 +775,7 @@ get_shader_info_log(GLcontext *ctx, GLuint shader, GLsizei bufSize, * Return shader source code. */ static void -get_shader_source(GLcontext *ctx, GLuint shader, GLsizei maxLength, +get_shader_source(struct gl_context *ctx, GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *sourceOut) { struct gl_shader *sh; @@ -763,7 +791,7 @@ get_shader_source(GLcontext *ctx, GLuint shader, GLsizei maxLength, * Set/replace shader source code. */ static void -shader_source(GLcontext *ctx, GLuint shader, const GLchar *source) +shader_source(struct gl_context *ctx, GLuint shader, const GLchar *source) { struct gl_shader *sh; @@ -787,7 +815,7 @@ shader_source(GLcontext *ctx, GLuint shader, const GLchar *source) * Compile a shader. */ static void -compile_shader(GLcontext *ctx, GLuint shaderObj) +compile_shader(struct gl_context *ctx, GLuint shaderObj) { struct gl_shader *sh; struct gl_shader_compiler_options *options; @@ -812,7 +840,7 @@ compile_shader(GLcontext *ctx, GLuint shaderObj) * Link a program's shaders. */ static void -link_program(GLcontext *ctx, GLuint program) +link_program(struct gl_context *ctx, GLuint program) { struct gl_shader_program *shProg; struct gl_transform_feedback_object *obj = @@ -822,7 +850,10 @@ link_program(GLcontext *ctx, GLuint program) if (!shProg) return; - if (obj->Active && shProg == ctx->Shader.CurrentProgram) { + if (obj->Active + && (shProg == ctx->Shader.CurrentVertexProgram + || shProg == ctx->Shader.CurrentGeometryProgram + || shProg == ctx->Shader.CurrentFragmentProgram)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glLinkProgram(transform feedback active"); return; @@ -885,14 +916,81 @@ print_shader_info(const struct gl_shader_program *shProg) /** + * Use the named shader program for subsequent glUniform calls + */ +static void +active_program(struct gl_context *ctx, struct gl_shader_program *shProg, + const char *caller) +{ + if ((shProg != NULL) && !shProg->LinkStatus) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "%s(program %u not linked)", caller, shProg->Name); + return; + } + + if (ctx->Shader.ActiveProgram != shProg) { + _mesa_reference_shader_program(ctx, &ctx->Shader.ActiveProgram, shProg); + } +} + +/** + */ +static bool +use_shader_program(struct gl_context *ctx, GLenum type, + struct gl_shader_program *shProg) +{ + struct gl_shader_program **target; + + switch (type) { +#if FEATURE_ARB_vertex_shader + case GL_VERTEX_SHADER: + target = &ctx->Shader.CurrentVertexProgram; + if ((shProg == NULL) + || (shProg->_LinkedShaders[MESA_SHADER_VERTEX] == NULL)) { + shProg = NULL; + } + break; +#endif +#if FEATURE_ARB_geometry_shader4 + case GL_GEOMETRY_SHADER_ARB: + target = &ctx->Shader.CurrentGeometryProgram; + if ((shProg == NULL) + || (shProg->_LinkedShaders[MESA_SHADER_GEOMETRY] == NULL)) { + shProg = NULL; + } + break; +#endif +#if FEATURE_ARB_fragment_shader + case GL_FRAGMENT_SHADER: + target = &ctx->Shader.CurrentFragmentProgram; + if ((shProg == NULL) + || (shProg->_LinkedShaders[MESA_SHADER_FRAGMENT] == NULL)) { + shProg = NULL; + } + break; +#endif + default: + return false; + } + + if (*target != shProg) { + _mesa_reference_shader_program(ctx, target, shProg); + return true; + } + + return false; +} + +/** * Use the named shader program for subsequent rendering. */ void -_mesa_use_program(GLcontext *ctx, GLuint program) +_mesa_use_program(struct gl_context *ctx, GLuint program) { struct gl_shader_program *shProg; struct gl_transform_feedback_object *obj = ctx->TransformFeedback.CurrentObject; + bool changed = false; if (obj->Active) { _mesa_error(ctx, GL_INVALID_OPERATION, @@ -900,12 +998,6 @@ _mesa_use_program(GLcontext *ctx, GLuint program) return; } - if (ctx->Shader.CurrentProgram && - ctx->Shader.CurrentProgram->Name == program) { - /* no-op */ - return; - } - if (program) { shProg = _mesa_lookup_shader_program_err(ctx, program, "glUseProgram"); if (!shProg) { @@ -926,9 +1018,15 @@ _mesa_use_program(GLcontext *ctx, GLuint program) shProg = NULL; } - if (ctx->Shader.CurrentProgram != shProg) { + changed = use_shader_program(ctx, GL_VERTEX_SHADER, shProg); + changed = use_shader_program(ctx, GL_GEOMETRY_SHADER_ARB, shProg) + || changed; + changed = use_shader_program(ctx, GL_FRAGMENT_SHADER, shProg) + || changed; + active_program(ctx, shProg, "glUseProgram"); + + if (changed) { FLUSH_VERTICES(ctx, _NEW_PROGRAM | _NEW_PROGRAM_CONSTANTS); - _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentProgram, shProg); } if (ctx->Driver.UseProgram) @@ -943,7 +1041,7 @@ _mesa_use_program(GLcontext *ctx, GLuint program) * \return GL_TRUE if valid, GL_FALSE if invalid */ static GLboolean -validate_samplers(GLcontext *ctx, const struct gl_program *prog, char *errMsg) +validate_samplers(const struct gl_program *prog, char *errMsg) { static const char *targetName[] = { "TEXTURE_2D_ARRAY", @@ -975,7 +1073,7 @@ validate_samplers(GLcontext *ctx, const struct gl_program *prog, char *errMsg) assert(sampler < MAX_TEXTURE_IMAGE_UNITS); unit = prog->SamplerUnits[sampler]; target = prog->SamplerTargets[sampler]; - if (targetUsed[unit] != -1 && targetUsed[unit] != target) { + if (targetUsed[unit] != -1 && targetUsed[unit] != (int) target) { _mesa_snprintf(errMsg, 100, "Texture unit %d is accessed both as %s and %s", unit, targetName[targetUsed[unit]], targetName[target]); @@ -995,8 +1093,7 @@ validate_samplers(GLcontext *ctx, const struct gl_program *prog, char *errMsg) * \return GL_TRUE if valid, GL_FALSE if invalid (and set errMsg) */ static GLboolean -validate_shader_program(GLcontext *ctx, - const struct gl_shader_program *shProg, +validate_shader_program(const struct gl_shader_program *shProg, char *errMsg) { const struct gl_vertex_program *vp = shProg->VertexProgram; @@ -1026,10 +1123,10 @@ validate_shader_program(GLcontext *ctx, * Check: any two active samplers in the current program object are of * different types, but refer to the same texture image unit, */ - if (vp && !validate_samplers(ctx, &vp->Base, errMsg)) { + if (vp && !validate_samplers(&vp->Base, errMsg)) { return GL_FALSE; } - if (fp && !validate_samplers(ctx, &fp->Base, errMsg)) { + if (fp && !validate_samplers(&fp->Base, errMsg)) { return GL_FALSE; } @@ -1041,7 +1138,7 @@ validate_shader_program(GLcontext *ctx, * Called via glValidateProgram() */ static void -validate_program(GLcontext *ctx, GLuint program) +validate_program(struct gl_context *ctx, GLuint program) { struct gl_shader_program *shProg; char errMsg[100]; @@ -1051,7 +1148,7 @@ validate_program(GLcontext *ctx, GLuint program) return; } - shProg->Validated = validate_shader_program(ctx, shProg, errMsg); + shProg->Validated = validate_shader_program(shProg, errMsg); if (!shProg->Validated) { /* update info log */ if (shProg->InfoLog) { @@ -1498,6 +1595,10 @@ _mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) { GET_CURRENT_CONTEXT(ctx); + (void) shadertype; + (void) precisiontype; + (void) range; + (void) precision; _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__); } @@ -1515,6 +1616,11 @@ _mesa_ShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length) { GET_CURRENT_CONTEXT(ctx); + (void) n; + (void) shaders; + (void) binaryformat; + (void) binary; + (void) length; _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__); } @@ -1540,7 +1646,7 @@ _mesa_ProgramParameteriARB(GLuint program, GLenum pname, switch (pname) { case GL_GEOMETRY_VERTICES_OUT_ARB: if (value < 1 || - value > ctx->Const.GeometryProgram.MaxGeometryOutputVertices) { + (unsigned) value > ctx->Const.GeometryProgram.MaxGeometryOutputVertices) { _mesa_error(ctx, GL_INVALID_VALUE, "glProgramParameteri(GL_GEOMETRY_VERTICES_OUT_ARB=%d", value); @@ -1587,6 +1693,101 @@ _mesa_ProgramParameteriARB(GLuint program, GLenum pname, #endif +void GLAPIENTRY +_mesa_UseShaderProgramEXT(GLenum type, GLuint program) +{ + GET_CURRENT_CONTEXT(ctx); + struct gl_shader_program *shProg = NULL; + bool changed = false; + + if (!validate_shader_target(ctx, type)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glUseShaderProgramEXT(type)"); + return; + } + + if (ctx->TransformFeedback.CurrentObject->Active) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glUseShaderProgramEXT(transform feedback is active)"); + return; + } + + if (program) { + shProg = _mesa_lookup_shader_program_err(ctx, program, + "glUseShaderProgramEXT"); + if (shProg == NULL) + return; + + if (!shProg->LinkStatus) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glUseShaderProgramEXT(program not linked)"); + return; + } + } + + changed = use_shader_program(ctx, type, shProg); + if (changed) + FLUSH_VERTICES(ctx, _NEW_PROGRAM | _NEW_PROGRAM_CONSTANTS); + + if (ctx->Driver.UseProgram) + ctx->Driver.UseProgram(ctx, shProg); + return; +} + +void GLAPIENTRY +_mesa_ActiveProgramEXT(GLuint program) +{ + GET_CURRENT_CONTEXT(ctx); + struct gl_shader_program *shProg = (program != 0) + ? _mesa_lookup_shader_program_err(ctx, program, "glActiveProgramEXT") + : NULL; + + active_program(ctx, shProg, "glActiveProgramEXT"); + return; +} + +GLuint GLAPIENTRY +_mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string) +{ + GET_CURRENT_CONTEXT(ctx); + const GLuint shader = create_shader(ctx, type); + GLuint program = 0; + + if (shader) { + shader_source(ctx, shader, _mesa_strdup(string)); + compile_shader(ctx, shader); + + program = create_shader_program(ctx); + if (program) { + struct gl_shader_program *shProg; + struct gl_shader *sh; + GLint compiled = GL_FALSE; + + shProg = _mesa_lookup_shader_program(ctx, program); + sh = _mesa_lookup_shader(ctx, shader); + + get_shaderiv(ctx, shader, GL_COMPILE_STATUS, &compiled); + if (compiled) { + attach_shader(ctx, program, shader); + link_program(ctx, program); + detach_shader(ctx, program, shader); + +#if 0 + /* Possibly... */ + if (active-user-defined-varyings-in-linked-program) { + append-error-to-info-log; + shProg->LinkStatus = GL_FALSE; + } +#endif + } + + shProg->InfoLog = talloc_strdup_append(shProg->InfoLog, sh->InfoLog); + } + + delete_shader(ctx, shader); + } + + return program; +} /** * Plug in shader-related functions into API dispatch table. @@ -1637,6 +1838,10 @@ _mesa_init_shader_dispatch(struct _glapi_table *exec) #if FEATURE_ARB_geometry_shader4 SET_ProgramParameteriARB(exec, _mesa_ProgramParameteriARB); #endif + + SET_UseShaderProgramEXT(exec, _mesa_UseShaderProgramEXT); + SET_ActiveProgramEXT(exec, _mesa_ActiveProgramEXT); + SET_CreateShaderProgramEXT(exec, _mesa_CreateShaderProgramEXT); #endif /* FEATURE_GL */ } diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h index 16e22530de5..de67a9929ef 100644 --- a/src/mesa/main/shaderapi.h +++ b/src/mesa/main/shaderapi.h @@ -39,7 +39,7 @@ _mesa_copy_string(GLchar *dst, GLsizei maxLength, GLsizei *length, const GLchar *src); extern void -_mesa_use_program(GLcontext *ctx, GLuint program); +_mesa_use_program(struct gl_context *ctx, GLuint program); extern void @@ -166,4 +166,13 @@ extern void GLAPIENTRY _mesa_ProgramParameteriARB(GLuint program, GLenum pname, GLint value); +extern void GLAPIENTRY +_mesa_UseShaderProgramEXT(GLenum type, GLuint program); + +extern void GLAPIENTRY +_mesa_ActiveProgramEXT(GLuint program); + +extern GLuint GLAPIENTRY +_mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string); + #endif /* SHADERAPI_H */ diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c index 2de8f279818..b6594cbe6f0 100644 --- a/src/mesa/main/shaderobj.c +++ b/src/mesa/main/shaderobj.c @@ -50,7 +50,7 @@ * Then set ptr to point to sh, incrementing its refcount. */ void -_mesa_reference_shader(GLcontext *ctx, struct gl_shader **ptr, +_mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr, struct gl_shader *sh) { assert(ptr); @@ -88,7 +88,7 @@ _mesa_reference_shader(GLcontext *ctx, struct gl_shader **ptr, } void -_mesa_init_shader(GLcontext *ctx, struct gl_shader *shader) +_mesa_init_shader(struct gl_context *ctx, struct gl_shader *shader) { shader->RefCount = 1; } @@ -98,7 +98,7 @@ _mesa_init_shader(GLcontext *ctx, struct gl_shader *shader) * Called via ctx->Driver.NewShader() */ struct gl_shader * -_mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type) +_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type) { struct gl_shader *shader; assert(type == GL_FRAGMENT_SHADER || type == GL_VERTEX_SHADER || @@ -118,7 +118,7 @@ _mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type) * Called via ctx->Driver.DeleteShader(). */ static void -_mesa_delete_shader(GLcontext *ctx, struct gl_shader *sh) +_mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh) { if (sh->Source) free((void *) sh->Source); @@ -131,7 +131,7 @@ _mesa_delete_shader(GLcontext *ctx, struct gl_shader *sh) * Lookup a GLSL shader object. */ struct gl_shader * -_mesa_lookup_shader(GLcontext *ctx, GLuint name) +_mesa_lookup_shader(struct gl_context *ctx, GLuint name) { if (name) { struct gl_shader *sh = (struct gl_shader *) @@ -153,7 +153,7 @@ _mesa_lookup_shader(GLcontext *ctx, GLuint name) * As above, but record an error if shader is not found. */ struct gl_shader * -_mesa_lookup_shader_err(GLcontext *ctx, GLuint name, const char *caller) +_mesa_lookup_shader_err(struct gl_context *ctx, GLuint name, const char *caller) { if (!name) { _mesa_error(ctx, GL_INVALID_VALUE, "%s", caller); @@ -188,7 +188,7 @@ _mesa_lookup_shader_err(GLcontext *ctx, GLuint name, const char *caller) * Then set ptr to point to shProg, incrementing its refcount. */ void -_mesa_reference_shader_program(GLcontext *ctx, +_mesa_reference_shader_program(struct gl_context *ctx, struct gl_shader_program **ptr, struct gl_shader_program *shProg) { @@ -230,7 +230,7 @@ _mesa_reference_shader_program(GLcontext *ctx, } void -_mesa_init_shader_program(GLcontext *ctx, struct gl_shader_program *prog) +_mesa_init_shader_program(struct gl_context *ctx, struct gl_shader_program *prog) { prog->Type = GL_SHADER_PROGRAM_MESA; prog->RefCount = 1; @@ -247,7 +247,7 @@ _mesa_init_shader_program(GLcontext *ctx, struct gl_shader_program *prog) * Called via ctx->Driver.NewShaderProgram() */ static struct gl_shader_program * -_mesa_new_shader_program(GLcontext *ctx, GLuint name) +_mesa_new_shader_program(struct gl_context *ctx, GLuint name) { struct gl_shader_program *shProg; shProg = talloc_zero(NULL, struct gl_shader_program); @@ -263,7 +263,7 @@ _mesa_new_shader_program(GLcontext *ctx, GLuint name) * Clear (free) the shader program state that gets produced by linking. */ void -_mesa_clear_shader_program_data(GLcontext *ctx, +_mesa_clear_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg) { _mesa_reference_vertprog(ctx, &shProg->VertexProgram, NULL); @@ -287,7 +287,7 @@ _mesa_clear_shader_program_data(GLcontext *ctx, * object itself. */ void -_mesa_free_shader_program_data(GLcontext *ctx, +_mesa_free_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg) { GLuint i; @@ -326,10 +326,12 @@ _mesa_free_shader_program_data(GLcontext *ctx, shProg->TransformFeedback.NumVarying = 0; - for (i = 0; i < shProg->_NumLinkedShaders; i++) { - ctx->Driver.DeleteShader(ctx, shProg->_LinkedShaders[i]); + for (i = 0; i < MESA_SHADER_TYPES; i++) { + if (shProg->_LinkedShaders[i] != NULL) { + ctx->Driver.DeleteShader(ctx, shProg->_LinkedShaders[i]); + shProg->_LinkedShaders[i] = NULL; + } } - shProg->_NumLinkedShaders = 0; } @@ -338,7 +340,7 @@ _mesa_free_shader_program_data(GLcontext *ctx, * Called via ctx->Driver.DeleteShaderProgram(). */ static void -_mesa_delete_shader_program(GLcontext *ctx, struct gl_shader_program *shProg) +_mesa_delete_shader_program(struct gl_context *ctx, struct gl_shader_program *shProg) { _mesa_free_shader_program_data(ctx, shProg); @@ -350,7 +352,7 @@ _mesa_delete_shader_program(GLcontext *ctx, struct gl_shader_program *shProg) * Lookup a GLSL program object. */ struct gl_shader_program * -_mesa_lookup_shader_program(GLcontext *ctx, GLuint name) +_mesa_lookup_shader_program(struct gl_context *ctx, GLuint name) { struct gl_shader_program *shProg; if (name) { @@ -373,7 +375,7 @@ _mesa_lookup_shader_program(GLcontext *ctx, GLuint name) * As above, but record an error if program is not found. */ struct gl_shader_program * -_mesa_lookup_shader_program_err(GLcontext *ctx, GLuint name, +_mesa_lookup_shader_program_err(struct gl_context *ctx, GLuint name, const char *caller) { if (!name) { diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h index cbe7ae7b068..346a5b75175 100644 --- a/src/mesa/main/shaderobj.h +++ b/src/mesa/main/shaderobj.h @@ -27,6 +27,7 @@ #define SHADEROBJ_H +#include "main/compiler.h" #include "main/glheader.h" #include "main/mtypes.h" #include "program/ir_to_mesa.h" @@ -39,50 +40,50 @@ extern "C" { */ extern void -_mesa_init_shader_state(GLcontext * ctx); +_mesa_init_shader_state(struct gl_context * ctx); extern void -_mesa_free_shader_state(GLcontext *ctx); +_mesa_free_shader_state(struct gl_context *ctx); extern void -_mesa_reference_shader(GLcontext *ctx, struct gl_shader **ptr, +_mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr, struct gl_shader *sh); extern struct gl_shader * -_mesa_lookup_shader(GLcontext *ctx, GLuint name); +_mesa_lookup_shader(struct gl_context *ctx, GLuint name); extern struct gl_shader * -_mesa_lookup_shader_err(GLcontext *ctx, GLuint name, const char *caller); +_mesa_lookup_shader_err(struct gl_context *ctx, GLuint name, const char *caller); extern void -_mesa_reference_shader_program(GLcontext *ctx, +_mesa_reference_shader_program(struct gl_context *ctx, struct gl_shader_program **ptr, struct gl_shader_program *shProg); extern void -_mesa_init_shader(GLcontext *ctx, struct gl_shader *shader); +_mesa_init_shader(struct gl_context *ctx, struct gl_shader *shader); extern struct gl_shader * -_mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type); +_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type); extern void -_mesa_init_shader_program(GLcontext *ctx, struct gl_shader_program *prog); +_mesa_init_shader_program(struct gl_context *ctx, struct gl_shader_program *prog); extern struct gl_shader_program * -_mesa_lookup_shader_program(GLcontext *ctx, GLuint name); +_mesa_lookup_shader_program(struct gl_context *ctx, GLuint name); extern struct gl_shader_program * -_mesa_lookup_shader_program_err(GLcontext *ctx, GLuint name, +_mesa_lookup_shader_program_err(struct gl_context *ctx, GLuint name, const char *caller); extern void -_mesa_clear_shader_program_data(GLcontext *ctx, +_mesa_clear_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg); extern void -_mesa_free_shader_program_data(GLcontext *ctx, +_mesa_free_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg); @@ -91,16 +92,16 @@ extern void _mesa_init_shader_object_functions(struct dd_function_table *driver); extern void -_mesa_init_shader_state(GLcontext *ctx); +_mesa_init_shader_state(struct gl_context *ctx); extern void -_mesa_free_shader_state(GLcontext *ctx); +_mesa_free_shader_state(struct gl_context *ctx); + static INLINE GLuint _mesa_shader_type_to_index(GLenum v) { - switch(v) - { + switch (v) { case GL_VERTEX_SHADER: return MESA_SHADER_VERTEX; case GL_FRAGMENT_SHADER: @@ -108,25 +109,27 @@ _mesa_shader_type_to_index(GLenum v) case GL_GEOMETRY_SHADER: return MESA_SHADER_GEOMETRY; default: - ASSERT(0); + ASSERT(0 && "bad value in _mesa_shader_type_to_index()"); return ~0; } } + static INLINE GLenum _mesa_shader_index_to_type(GLuint i) { - GLenum enums[MESA_SHADER_TYPES] = { - GL_VERTEX_SHADER, - GL_FRAGMENT_SHADER, - GL_GEOMETRY_SHADER , + static const GLenum enums[MESA_SHADER_TYPES] = { + GL_VERTEX_SHADER, + GL_FRAGMENT_SHADER, + GL_GEOMETRY_SHADER , }; - if(i >= MESA_SHADER_TYPES) + if (i >= MESA_SHADER_TYPES) return 0; else return enums[i]; } + #ifdef __cplusplus } #endif diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c index a56c70fa7f6..3abee0178eb 100644 --- a/src/mesa/main/shared.c +++ b/src/mesa/main/shared.c @@ -52,7 +52,7 @@ * failure. */ struct gl_shared_state * -_mesa_alloc_shared_state(GLcontext *ctx) +_mesa_alloc_shared_state(struct gl_context *ctx) { struct gl_shared_state *shared; GLuint i; @@ -133,7 +133,7 @@ static void delete_displaylist_cb(GLuint id, void *data, void *userData) { struct gl_display_list *list = (struct gl_display_list *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; _mesa_delete_list(ctx, list); } @@ -145,7 +145,7 @@ static void delete_texture_cb(GLuint id, void *data, void *userData) { struct gl_texture_object *texObj = (struct gl_texture_object *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; ctx->Driver.DeleteTexture(ctx, texObj); } @@ -157,7 +157,7 @@ static void delete_program_cb(GLuint id, void *data, void *userData) { struct gl_program *prog = (struct gl_program *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; if(prog != &_mesa_DummyProgram) { ASSERT(prog->RefCount == 1); /* should only be referenced by hash table */ prog->RefCount = 0; /* now going away */ @@ -175,7 +175,7 @@ static void delete_fragshader_cb(GLuint id, void *data, void *userData) { struct ati_fragment_shader *shader = (struct ati_fragment_shader *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; _mesa_delete_ati_fragment_shader(ctx, shader); } #endif @@ -188,7 +188,7 @@ static void delete_bufferobj_cb(GLuint id, void *data, void *userData) { struct gl_buffer_object *bufObj = (struct gl_buffer_object *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; if (_mesa_bufferobj_mapped(bufObj)) { ctx->Driver.UnmapBuffer(ctx, 0, bufObj); bufObj->Pointer = NULL; @@ -204,7 +204,7 @@ delete_bufferobj_cb(GLuint id, void *data, void *userData) static void free_shader_program_data_cb(GLuint id, void *data, void *userData) { - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; struct gl_shader_program *shProg = (struct gl_shader_program *) data; if (shProg->Type == GL_SHADER_PROGRAM_MESA) { @@ -220,7 +220,7 @@ free_shader_program_data_cb(GLuint id, void *data, void *userData) static void delete_shader_cb(GLuint id, void *data, void *userData) { - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; struct gl_shader *sh = (struct gl_shader *) data; if (sh->Type == GL_FRAGMENT_SHADER || sh->Type == GL_VERTEX_SHADER) { ctx->Driver.DeleteShader(ctx, sh); @@ -280,7 +280,7 @@ delete_renderbuffer_cb(GLuint id, void *data, void *userData) * \sa alloc_shared_state(). */ static void -free_shared_state(GLcontext *ctx, struct gl_shared_state *shared) +free_shared_state(struct gl_context *ctx, struct gl_shared_state *shared) { GLuint i; @@ -373,7 +373,7 @@ free_shared_state(GLcontext *ctx, struct gl_shared_state *shared) * \sa free_shared_state(). */ void -_mesa_release_shared_state(GLcontext *ctx, struct gl_shared_state *shared) +_mesa_release_shared_state(struct gl_context *ctx, struct gl_shared_state *shared) { GLint RefCount; diff --git a/src/mesa/main/shared.h b/src/mesa/main/shared.h index 5166a0ce51f..43f8a388e6f 100644 --- a/src/mesa/main/shared.h +++ b/src/mesa/main/shared.h @@ -28,11 +28,11 @@ #include "mtypes.h" struct gl_shared_state * -_mesa_alloc_shared_state(GLcontext *ctx); +_mesa_alloc_shared_state(struct gl_context *ctx); void -_mesa_release_shared_state(GLcontext *ctx, struct gl_shared_state *shared); +_mesa_release_shared_state(struct gl_context *ctx, struct gl_shared_state *shared); #endif diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index 4a3dffe4cf8..05f4165c44a 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -27,7 +27,7 @@ * \file state.c * State management. * - * This file manages recalculation of derived values in GLcontext. + * This file manages recalculation of derived values in struct gl_context. */ @@ -51,7 +51,7 @@ static void -update_separate_specular(GLcontext *ctx) +update_separate_specular(struct gl_context *ctx) { if (NEED_SECONDARY_COLOR(ctx)) ctx->_TriangleCaps |= DD_SEPARATE_SPECULAR; @@ -107,7 +107,7 @@ update_min(GLuint min, struct gl_client_array *array) * Need to do this upon new array state or new buffer object state. */ static void -update_arrays( GLcontext *ctx ) +update_arrays( struct gl_context *ctx ) { struct gl_array_object *arrayObj = ctx->Array.ArrayObj; GLuint i, min = ~0; @@ -219,7 +219,7 @@ update_arrays( GLcontext *ctx ) * This needs to be done before texture state validation. */ static void -update_program_enables(GLcontext *ctx) +update_program_enables(struct gl_context *ctx) { /* These _Enabled flags indicate if the program is enabled AND valid. */ ctx->VertexProgram._Enabled = ctx->VertexProgram.Enabled @@ -245,9 +245,11 @@ update_program_enables(GLcontext *ctx) * or fragment program is being used. */ static GLbitfield -update_program(GLcontext *ctx) +update_program(struct gl_context *ctx) { - const struct gl_shader_program *shProg = ctx->Shader.CurrentProgram; + const struct gl_shader_program *vsProg = ctx->Shader.CurrentVertexProgram; + const struct gl_shader_program *gsProg = ctx->Shader.CurrentGeometryProgram; + const struct gl_shader_program *fsProg = ctx->Shader.CurrentFragmentProgram; const struct gl_vertex_program *prevVP = ctx->VertexProgram._Current; const struct gl_fragment_program *prevFP = ctx->FragmentProgram._Current; const struct gl_geometry_program *prevGP = ctx->GeometryProgram._Current; @@ -269,10 +271,10 @@ update_program(GLcontext *ctx) * come up, or matter. */ - if (shProg && shProg->LinkStatus && shProg->FragmentProgram) { + if (fsProg && fsProg->LinkStatus && fsProg->FragmentProgram) { /* Use shader programs */ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, - shProg->FragmentProgram); + fsProg->FragmentProgram); } else if (ctx->FragmentProgram._Enabled) { /* use user-defined vertex program */ @@ -292,10 +294,10 @@ update_program(GLcontext *ctx) _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, NULL); } - if (shProg && shProg->LinkStatus && shProg->GeometryProgram) { + if (gsProg && gsProg->LinkStatus && gsProg->GeometryProgram) { /* Use shader programs */ _mesa_reference_geomprog(ctx, &ctx->GeometryProgram._Current, - shProg->GeometryProgram); + gsProg->GeometryProgram); } else { /* no fragment program */ _mesa_reference_geomprog(ctx, &ctx->GeometryProgram._Current, NULL); @@ -305,10 +307,10 @@ update_program(GLcontext *ctx) * _mesa_get_fixed_func_vertex_program() needs to know active * fragprog inputs. */ - if (shProg && shProg->LinkStatus && shProg->VertexProgram) { + if (vsProg && vsProg->LinkStatus && vsProg->VertexProgram) { /* Use shader programs */ _mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current, - shProg->VertexProgram); + vsProg->VertexProgram); } else if (ctx->VertexProgram._Enabled) { /* use user-defined vertex program */ @@ -362,7 +364,7 @@ update_program(GLcontext *ctx) * Examine shader constants and return either _NEW_PROGRAM_CONSTANTS or 0. */ static GLbitfield -update_program_constants(GLcontext *ctx) +update_program_constants(struct gl_context *ctx) { GLbitfield new_state = 0x0; @@ -399,7 +401,7 @@ update_program_constants(GLcontext *ctx) static void -update_viewport_matrix(GLcontext *ctx) +update_viewport_matrix(struct gl_context *ctx) { const GLfloat depthMax = ctx->DrawBuffer->_DepthMaxF; @@ -421,7 +423,7 @@ update_viewport_matrix(GLcontext *ctx) * Update derived multisample state. */ static void -update_multisample(GLcontext *ctx) +update_multisample(struct gl_context *ctx) { ctx->Multisample._Enabled = GL_FALSE; if (ctx->Multisample.Enabled && @@ -435,7 +437,7 @@ update_multisample(GLcontext *ctx) * Update derived color/blend/logicop state. */ static void -update_color(GLcontext *ctx) +update_color(struct gl_context *ctx) { /* This is needed to support 1.1's RGB logic ops AND * 1.0's blending logicops. @@ -449,7 +451,7 @@ update_color(GLcontext *ctx) * in ctx->_TriangleCaps if needed. */ static void -update_polygon(GLcontext *ctx) +update_polygon(struct gl_context *ctx) { ctx->_TriangleCaps &= ~(DD_TRI_CULL_FRONT_BACK | DD_TRI_OFFSET); @@ -471,7 +473,7 @@ update_polygon(GLcontext *ctx) */ #if 0 static void -update_tricaps(GLcontext *ctx, GLbitfield new_state) +update_tricaps(struct gl_context *ctx, GLbitfield new_state) { ctx->_TriangleCaps = 0; @@ -540,7 +542,7 @@ update_tricaps(GLcontext *ctx, GLbitfield new_state) /** * Compute derived GL state. - * If __GLcontextRec::NewState is non-zero then this function \b must + * If __struct gl_contextRec::NewState is non-zero then this function \b must * be called before rendering anything. * * Calls dd_function_table::UpdateState to perform any internal state @@ -551,7 +553,7 @@ update_tricaps(GLcontext *ctx, GLbitfield new_state) * _mesa_update_lighting() and _mesa_update_tnl_spaces(). */ void -_mesa_update_state_locked( GLcontext *ctx ) +_mesa_update_state_locked( struct gl_context *ctx ) { GLbitfield new_state = ctx->NewState; GLbitfield prog_flags = _NEW_PROGRAM; @@ -670,7 +672,7 @@ _mesa_update_state_locked( GLcontext *ctx ) /* This is the usual entrypoint for state updates: */ void -_mesa_update_state( GLcontext *ctx ) +_mesa_update_state( struct gl_context *ctx ) { _mesa_lock_context_textures(ctx); _mesa_update_state_locked(ctx); @@ -703,7 +705,7 @@ _mesa_update_state( GLcontext *ctx ) * Otherwise, the fp should track them as state values instead. */ void -_mesa_set_varying_vp_inputs( GLcontext *ctx, +_mesa_set_varying_vp_inputs( struct gl_context *ctx, GLbitfield varying_inputs ) { if (ctx->varying_vp_inputs != varying_inputs) { @@ -721,7 +723,7 @@ _mesa_set_varying_vp_inputs( GLcontext *ctx, * of ordinary varyings/inputs. */ void -_mesa_set_vp_override(GLcontext *ctx, GLboolean flag) +_mesa_set_vp_override(struct gl_context *ctx, GLboolean flag) { if (ctx->VertexProgram._Overriden != flag) { ctx->VertexProgram._Overriden = flag; diff --git a/src/mesa/main/state.h b/src/mesa/main/state.h index 29db08a0b95..f0eb43d8ee3 100644 --- a/src/mesa/main/state.h +++ b/src/mesa/main/state.h @@ -29,21 +29,21 @@ #include "mtypes.h" extern void -_mesa_update_state(GLcontext *ctx); +_mesa_update_state(struct gl_context *ctx); /* As above but can only be called between _mesa_lock_context_textures() and * _mesa_unlock_context_textures(). */ extern void -_mesa_update_state_locked(GLcontext *ctx); +_mesa_update_state_locked(struct gl_context *ctx); extern void -_mesa_set_varying_vp_inputs(GLcontext *ctx, GLbitfield varying_inputs); +_mesa_set_varying_vp_inputs(struct gl_context *ctx, GLbitfield varying_inputs); extern void -_mesa_set_vp_override(GLcontext *ctx, GLboolean flag); +_mesa_set_vp_override(struct gl_context *ctx, GLboolean flag); #endif diff --git a/src/mesa/main/stencil.c b/src/mesa/main/stencil.c index 15c98e20156..93e2e97ce0c 100644 --- a/src/mesa/main/stencil.c +++ b/src/mesa/main/stencil.c @@ -56,7 +56,7 @@ static GLboolean -validate_stencil_op(GLcontext *ctx, GLenum op) +validate_stencil_op(struct gl_context *ctx, GLenum op) { switch (op) { case GL_KEEP: @@ -79,7 +79,7 @@ validate_stencil_op(GLcontext *ctx, GLenum op) static GLboolean -validate_stencil_func(GLcontext *ctx, GLenum func) +validate_stencil_func(struct gl_context *ctx, GLenum func) { switch (func) { case GL_NEVER: @@ -137,7 +137,7 @@ _mesa_ClearStencil( GLint s ) * \sa glStencilFunc(). * * Verifies the parameters and updates the respective values in - * __GLcontextRec::Stencil. On change flushes the vertices and notifies the + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the * driver via the dd_function_table::StencilFunc callback. */ void GLAPIENTRY @@ -192,7 +192,7 @@ _mesa_StencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLui * \sa glStencilFunc(). * * Verifies the parameters and updates the respective values in - * __GLcontextRec::Stencil. On change flushes the vertices and notifies the + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the * driver via the dd_function_table::StencilFunc callback. */ void GLAPIENTRY @@ -312,7 +312,7 @@ _mesa_StencilMask( GLuint mask ) * \sa glStencilOp(). * * Verifies the parameters and updates the respective fields in - * __GLcontextRec::Stencil. On change flushes the vertices and notifies the + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the * driver via the dd_function_table::StencilOp callback. */ void GLAPIENTRY @@ -532,7 +532,7 @@ _mesa_StencilMaskSeparate(GLenum face, GLuint mask) * Update derived stencil state. */ void -_mesa_update_stencil(GLcontext *ctx) +_mesa_update_stencil(struct gl_context *ctx) { const GLint face = ctx->Stencil._BackFace; @@ -556,10 +556,10 @@ _mesa_update_stencil(GLcontext *ctx) * * \param ctx GL context. * - * Initializes __GLcontextRec::Stencil attribute group. + * Initializes __struct gl_contextRec::Stencil attribute group. */ void -_mesa_init_stencil(GLcontext *ctx) +_mesa_init_stencil(struct gl_context *ctx) { ctx->Stencil.Enabled = GL_FALSE; ctx->Stencil.TestTwoSide = GL_FALSE; diff --git a/src/mesa/main/stencil.h b/src/mesa/main/stencil.h index 252ac932acd..38a7183a811 100644 --- a/src/mesa/main/stencil.h +++ b/src/mesa/main/stencil.h @@ -71,10 +71,10 @@ _mesa_StencilMaskSeparate(GLenum face, GLuint mask); extern void -_mesa_update_stencil(GLcontext *ctx); +_mesa_update_stencil(struct gl_context *ctx); extern void -_mesa_init_stencil( GLcontext * ctx ); +_mesa_init_stencil( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c index ac948cc1efe..2c8bcbeaf7c 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -66,7 +66,7 @@ #include "syncobj.h" static struct gl_sync_object * -_mesa_new_sync_object(GLcontext *ctx, GLenum type) +_mesa_new_sync_object(struct gl_context *ctx, GLenum type) { struct gl_sync_object *s = MALLOC_STRUCT(gl_sync_object); (void) ctx; @@ -77,7 +77,7 @@ _mesa_new_sync_object(GLcontext *ctx, GLenum type) static void -_mesa_delete_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_delete_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { (void) ctx; free(syncObj); @@ -85,7 +85,7 @@ _mesa_delete_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) static void -_mesa_fence_sync(GLcontext *ctx, struct gl_sync_object *syncObj, +_mesa_fence_sync(struct gl_context *ctx, struct gl_sync_object *syncObj, GLenum condition, GLbitfield flags) { (void) ctx; @@ -97,7 +97,7 @@ _mesa_fence_sync(GLcontext *ctx, struct gl_sync_object *syncObj, static void -_mesa_check_sync(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_check_sync(struct gl_context *ctx, struct gl_sync_object *syncObj) { (void) ctx; (void) syncObj; @@ -109,7 +109,7 @@ _mesa_check_sync(GLcontext *ctx, struct gl_sync_object *syncObj) static void -_mesa_wait_sync(GLcontext *ctx, struct gl_sync_object *syncObj, +_mesa_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj, GLbitfield flags, GLuint64 timeout) { (void) ctx; @@ -155,7 +155,7 @@ _mesa_init_sync_dispatch(struct _glapi_table *disp) * Allocate/init the context state related to sync objects. */ void -_mesa_init_sync(GLcontext *ctx) +_mesa_init_sync(struct gl_context *ctx) { (void) ctx; } @@ -165,7 +165,7 @@ _mesa_init_sync(GLcontext *ctx) * Free the context state related to sync objects. */ void -_mesa_free_sync_data(GLcontext *ctx) +_mesa_free_sync_data(struct gl_context *ctx) { (void) ctx; } @@ -181,7 +181,7 @@ _mesa_validate_sync(struct gl_sync_object *syncObj) void -_mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { _glthread_LOCK_MUTEX(ctx->Shared->Mutex); syncObj->RefCount++; @@ -190,7 +190,7 @@ _mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) void -_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { _glthread_LOCK_MUTEX(ctx->Shared->Mutex); syncObj->RefCount--; diff --git a/src/mesa/main/syncobj.h b/src/mesa/main/syncobj.h index 82e141d408b..f3c0046cf3d 100644 --- a/src/mesa/main/syncobj.h +++ b/src/mesa/main/syncobj.h @@ -44,16 +44,16 @@ extern void _mesa_init_sync_dispatch(struct _glapi_table *disp); extern void -_mesa_init_sync(GLcontext *); +_mesa_init_sync(struct gl_context *); extern void -_mesa_free_sync_data(GLcontext *); +_mesa_free_sync_data(struct gl_context *); extern void -_mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj); +_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj); extern void -_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj); +_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj); extern GLboolean GLAPIENTRY _mesa_IsSync(GLsync sync); @@ -89,23 +89,23 @@ _mesa_init_sync_dispatch(struct _glapi_table *disp) } static INLINE void -_mesa_init_sync(GLcontext *ctx) +_mesa_init_sync(struct gl_context *ctx) { } static INLINE void -_mesa_free_sync_data(GLcontext *ctx) +_mesa_free_sync_data(struct gl_context *ctx) { } static INLINE void -_mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { ASSERT_NO_FEATURE(); } static INLINE void -_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { ASSERT_NO_FEATURE(); } diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c index e911524cbc5..e3d2a786b3e 100644 --- a/src/mesa/main/texcompress.c +++ b/src/mesa/main/texcompress.c @@ -50,7 +50,7 @@ * \return number of formats. */ GLuint -_mesa_get_compressed_formats(GLcontext *ctx, GLint *formats, GLboolean all) +_mesa_get_compressed_formats(struct gl_context *ctx, GLint *formats, GLboolean all) { GLuint n = 0; if (ctx->Extensions.TDFX_texture_compression_FXT1) { @@ -178,7 +178,7 @@ _mesa_glenum_to_compressed_format(GLenum format) * internal format unchanged. */ GLenum -_mesa_compressed_format_to_glenum(GLcontext *ctx, GLuint mesaFormat) +_mesa_compressed_format_to_glenum(struct gl_context *ctx, GLuint mesaFormat) { switch (mesaFormat) { #if FEATURE_texture_fxt1 diff --git a/src/mesa/main/texcompress.h b/src/mesa/main/texcompress.h index 5e73a3149bd..83856429c54 100644 --- a/src/mesa/main/texcompress.h +++ b/src/mesa/main/texcompress.h @@ -31,13 +31,13 @@ #if _HAVE_FULL_GL extern GLuint -_mesa_get_compressed_formats(GLcontext *ctx, GLint *formats, GLboolean all); +_mesa_get_compressed_formats(struct gl_context *ctx, GLint *formats, GLboolean all); extern gl_format _mesa_glenum_to_compressed_format(GLenum format); extern GLenum -_mesa_compressed_format_to_glenum(GLcontext *ctx, GLuint mesaFormat); +_mesa_compressed_format_to_glenum(struct gl_context *ctx, GLuint mesaFormat); extern GLubyte * _mesa_compressed_image_address(GLint col, GLint row, GLint img, diff --git a/src/mesa/main/texcompress_s3tc.c b/src/mesa/main/texcompress_s3tc.c index 534a4247cf2..0e893a59fa3 100644 --- a/src/mesa/main/texcompress_s3tc.c +++ b/src/mesa/main/texcompress_s3tc.c @@ -104,7 +104,7 @@ static void *dxtlibhandle = NULL; void -_mesa_init_texture_s3tc( GLcontext *ctx ) +_mesa_init_texture_s3tc( struct gl_context *ctx ) { /* called during context initialization */ ctx->Mesa_DXTn = GL_FALSE; diff --git a/src/mesa/main/texcompress_s3tc.h b/src/mesa/main/texcompress_s3tc.h index 2e7688d3669..d0a5b186b71 100644 --- a/src/mesa/main/texcompress_s3tc.h +++ b/src/mesa/main/texcompress_s3tc.h @@ -76,7 +76,7 @@ _mesa_fetch_texel_2d_f_srgba_dxt5(const struct gl_texture_image *texImage, GLint i, GLint j, GLint k, GLfloat *texel); extern void -_mesa_init_texture_s3tc(GLcontext *ctx); +_mesa_init_texture_s3tc(struct gl_context *ctx); #else /* FEATURE_texture_s3tc */ @@ -97,7 +97,7 @@ _mesa_init_texture_s3tc(GLcontext *ctx); #define _mesa_fetch_texel_2d_f_srgba_dxt5 NULL static INLINE void -_mesa_init_texture_s3tc(GLcontext *ctx) +_mesa_init_texture_s3tc(struct gl_context *ctx) { } diff --git a/src/mesa/main/texenv.c b/src/mesa/main/texenv.c index 3a55128c736..508dbf4887d 100644 --- a/src/mesa/main/texenv.c +++ b/src/mesa/main/texenv.c @@ -44,7 +44,7 @@ /** Set texture env mode */ static void -set_env_mode(GLcontext *ctx, +set_env_mode(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum mode) { @@ -89,7 +89,7 @@ set_env_mode(GLcontext *ctx, static void -set_env_color(GLcontext *ctx, +set_env_color(struct gl_context *ctx, struct gl_texture_unit *texUnit, const GLfloat *color) { @@ -107,7 +107,7 @@ set_env_color(GLcontext *ctx, /** Set an RGB or A combiner mode/function */ static void -set_combiner_mode(GLcontext *ctx, +set_combiner_mode(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum pname, GLenum mode) { @@ -181,7 +181,7 @@ set_combiner_mode(GLcontext *ctx, /** Set an RGB or A combiner source term */ static void -set_combiner_source(GLcontext *ctx, +set_combiner_source(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum pname, GLenum param) { @@ -274,7 +274,7 @@ set_combiner_source(GLcontext *ctx, /** Set an RGB or A combiner operand term */ static void -set_combiner_operand(GLcontext *ctx, +set_combiner_operand(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum pname, GLenum param) { @@ -360,7 +360,7 @@ set_combiner_operand(GLcontext *ctx, static void -set_combiner_scale(GLcontext *ctx, +set_combiner_scale(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum pname, GLfloat scale) { @@ -595,7 +595,7 @@ _mesa_TexEnviv( GLenum target, GLenum pname, const GLint *param ) * \return value of queried pname or -1 if error. */ static GLint -get_texenvi(GLcontext *ctx, const struct gl_texture_unit *texUnit, +get_texenvi(struct gl_context *ctx, const struct gl_texture_unit *texUnit, GLenum pname) { switch (pname) { diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 20f02cefe94..a8bffe416d9 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -62,7 +62,7 @@ struct texenvprog_cache_item }; static GLboolean -texenv_doing_secondary_color(GLcontext *ctx) +texenv_doing_secondary_color(struct gl_context *ctx) { if (ctx->Light.Enabled && (ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR)) @@ -307,12 +307,13 @@ static GLuint translate_tex_src_bit( GLbitfield bit ) * has access to. The bitmask is later reduced to just those which * are actually referenced. */ -static GLbitfield get_fp_input_mask( GLcontext *ctx ) +static GLbitfield get_fp_input_mask( struct gl_context *ctx ) { /* _NEW_PROGRAM */ - const GLboolean vertexShader = (ctx->Shader.CurrentProgram && - ctx->Shader.CurrentProgram->LinkStatus && - ctx->Shader.CurrentProgram->VertexProgram); + const GLboolean vertexShader = + (ctx->Shader.CurrentVertexProgram && + ctx->Shader.CurrentVertexProgram->LinkStatus && + ctx->Shader.CurrentVertexProgram->VertexProgram); const GLboolean vertexProgram = ctx->VertexProgram._Enabled; GLbitfield fp_inputs = 0x0; @@ -377,7 +378,7 @@ static GLbitfield get_fp_input_mask( GLcontext *ctx ) * validation (see additional comments in state.c). */ if (vertexShader) - vprog = ctx->Shader.CurrentProgram->VertexProgram; + vprog = ctx->Shader.CurrentVertexProgram->VertexProgram; else vprog = ctx->VertexProgram.Current; @@ -407,7 +408,7 @@ static GLbitfield get_fp_input_mask( GLcontext *ctx ) * Examine current texture environment state and generate a unique * key to identify it. */ -static GLuint make_state_key( GLcontext *ctx, struct state_key *key ) +static GLuint make_state_key( struct gl_context *ctx, struct state_key *key ) { GLuint i, j; GLbitfield inputs_referenced = FRAG_BIT_COL0; @@ -663,7 +664,7 @@ static void reserve_temp( struct texenv_fragment_program *p, struct ureg r ) } -static void release_temps(GLcontext *ctx, struct texenv_fragment_program *p ) +static void release_temps(struct gl_context *ctx, struct texenv_fragment_program *p ) { GLuint max_temp = ctx->Const.FragmentProgram.MaxTemps; @@ -1415,7 +1416,7 @@ load_texunit_bumpmap( struct texenv_fragment_program *p, GLuint unit ) * current texture env/combine mode. */ static void -create_new_program(GLcontext *ctx, struct state_key *key, +create_new_program(struct gl_context *ctx, struct state_key *key, struct gl_fragment_program *program) { struct prog_instruction instBuffer[MAX_INSTRUCTIONS]; @@ -1526,7 +1527,7 @@ create_new_program(GLcontext *ctx, struct state_key *key, emit_arith( &p, OPCODE_END, undef, WRITEMASK_XYZW, 0, undef, undef, undef); if (key->fog_enabled) { - /* Pull fog mode from GLcontext, the value in the state key is + /* Pull fog mode from struct gl_context, the value in the state key is * a reduced value and not what is expected in FogOption */ p.program->FogOption = ctx->Fog.Mode; @@ -1590,7 +1591,7 @@ create_new_program(GLcontext *ctx, struct state_key *key, * fixed-function texture, fog and color-sum operations. */ struct gl_fragment_program * -_mesa_get_fixed_func_fragment_program(GLcontext *ctx) +_mesa_get_fixed_func_fragment_program(struct gl_context *ctx) { struct gl_fragment_program *prog; struct state_key key; diff --git a/src/mesa/main/texenvprogram.h b/src/mesa/main/texenvprogram.h index 0a162d2e7a2..abfb916d21b 100644 --- a/src/mesa/main/texenvprogram.h +++ b/src/mesa/main/texenvprogram.h @@ -30,6 +30,6 @@ #include "mtypes.h" extern struct gl_fragment_program * -_mesa_get_fixed_func_fragment_program(GLcontext *ctx); +_mesa_get_fixed_func_fragment_program(struct gl_context *ctx); #endif diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c index 24efb108bb6..894c0130b47 100644 --- a/src/mesa/main/texformat.c +++ b/src/mesa/main/texformat.c @@ -54,7 +54,7 @@ * will typically override this function with a specialized version. */ gl_format -_mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat, +_mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { (void) format; diff --git a/src/mesa/main/texformat.h b/src/mesa/main/texformat.h index bda5fd6d8ce..8bd15076753 100644 --- a/src/mesa/main/texformat.h +++ b/src/mesa/main/texformat.h @@ -32,7 +32,7 @@ extern gl_format -_mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat, +_mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ); diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c index 00134ea9ffb..879ac529a01 100644 --- a/src/mesa/main/texgetimage.c +++ b/src/mesa/main/texgetimage.c @@ -35,6 +35,7 @@ #include "context.h" #include "formats.h" #include "image.h" +#include "pack.h" #include "texgetimage.h" #include "teximage.h" @@ -63,7 +64,7 @@ type_with_negative_values(GLenum type) * glGetTexImage for color index pixels. */ static void -get_tex_color_index(GLcontext *ctx, GLuint dimensions, +get_tex_color_index(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -111,7 +112,7 @@ get_tex_color_index(GLcontext *ctx, GLuint dimensions, * glGetTexImage for depth/Z pixels. */ static void -get_tex_depth(GLcontext *ctx, GLuint dimensions, +get_tex_depth(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -141,7 +142,7 @@ get_tex_depth(GLcontext *ctx, GLuint dimensions, * glGetTexImage for depth/stencil pixels. */ static void -get_tex_depth_stencil(GLcontext *ctx, GLuint dimensions, +get_tex_depth_stencil(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -171,7 +172,7 @@ get_tex_depth_stencil(GLcontext *ctx, GLuint dimensions, * glGetTexImage for YCbCr pixels. */ static void -get_tex_ycbcr(GLcontext *ctx, GLuint dimensions, +get_tex_ycbcr(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -234,7 +235,7 @@ linear_to_nonlinear(GLfloat cl) * glGetTexImagefor sRGB pixels; */ static void -get_tex_srgb(GLcontext *ctx, GLuint dimensions, +get_tex_srgb(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -285,7 +286,7 @@ get_tex_srgb(GLcontext *ctx, GLuint dimensions, static INLINE void -get_tex_srgb(GLcontext *ctx, GLuint dimensions, +get_tex_srgb(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -301,7 +302,7 @@ get_tex_srgb(GLcontext *ctx, GLuint dimensions, * This is the slow way since we use texture sampling. */ static void -get_tex_rgba(GLcontext *ctx, GLuint dimensions, +get_tex_rgba(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -371,7 +372,7 @@ get_tex_rgba(GLcontext *ctx, GLuint dimensions, * \return GL_TRUE if done, GL_FALSE otherwise */ static GLboolean -get_tex_memcpy(GLcontext *ctx, GLenum format, GLenum type, GLvoid *pixels, +get_tex_memcpy(struct gl_context *ctx, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_object *texObj, const struct gl_texture_image *texImage) { @@ -451,7 +452,7 @@ get_tex_memcpy(GLcontext *ctx, GLenum format, GLenum type, GLvoid *pixels, * The texture image must be mapped. */ void -_mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_get_teximage(struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -528,7 +529,7 @@ _mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level, * All error checking will have been done before this routine is called. */ void -_mesa_get_compressed_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_get_compressed_teximage(struct gl_context *ctx, GLenum target, GLint level, GLvoid *img, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -585,7 +586,7 @@ _mesa_get_compressed_teximage(GLcontext *ctx, GLenum target, GLint level, * \return GL_TRUE if any error, GL_FALSE if no errors. */ static GLboolean -getteximage_error_check(GLcontext *ctx, GLenum target, GLint level, +getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels ) { struct gl_texture_object *texObj; @@ -771,7 +772,7 @@ _mesa_GetTexImage( GLenum target, GLint level, GLenum format, * \return GL_TRUE if any error, GL_FALSE if no errors. */ static GLboolean -getcompressedteximage_error_check(GLcontext *ctx, GLenum target, GLint level, +getcompressedteximage_error_check(struct gl_context *ctx, GLenum target, GLint level, GLvoid *img) { struct gl_texture_object *texObj; diff --git a/src/mesa/main/texgetimage.h b/src/mesa/main/texgetimage.h index 866ab704945..81a3bbbd9a7 100644 --- a/src/mesa/main/texgetimage.h +++ b/src/mesa/main/texgetimage.h @@ -30,14 +30,14 @@ #include "mtypes.h" extern void -_mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_get_teximage(struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage); extern void -_mesa_get_compressed_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_get_compressed_teximage(struct gl_context *ctx, GLenum target, GLint level, GLvoid *img, struct gl_texture_object *texObj, struct gl_texture_image *texImage); diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 6c3f49f667b..2e9410f2717 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -127,7 +127,7 @@ logbase2( int n ) * XXX this could be static */ GLint -_mesa_base_tex_format( GLcontext *ctx, GLint internalFormat ) +_mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat ) { switch (internalFormat) { case GL_ALPHA: @@ -558,7 +558,7 @@ _mesa_set_tex_image(struct gl_texture_object *tObj, * zero. */ struct gl_texture_image * -_mesa_new_texture_image( GLcontext *ctx ) +_mesa_new_texture_image( struct gl_context *ctx ) { (void) ctx; return CALLOC_STRUCT(gl_texture_image); @@ -574,7 +574,7 @@ _mesa_new_texture_image( GLcontext *ctx ) * Free the texture image data if it's not marked as client data. */ void -_mesa_free_texture_image_data(GLcontext *ctx, +_mesa_free_texture_image_data(struct gl_context *ctx, struct gl_texture_image *texImage) { (void) ctx; @@ -596,7 +596,7 @@ _mesa_free_texture_image_data(GLcontext *ctx, * Free the texture image structure and the associated image data. */ void -_mesa_delete_texture_image( GLcontext *ctx, struct gl_texture_image *texImage ) +_mesa_delete_texture_image( struct gl_context *ctx, struct gl_texture_image *texImage ) { /* Free texImage->Data and/or any other driver-specific texture * image storage. @@ -646,7 +646,7 @@ _mesa_is_proxy_texture(GLenum target) * \sa gl_texture_unit. */ struct gl_texture_object * -_mesa_select_tex_object(GLcontext *ctx, const struct gl_texture_unit *texUnit, +_mesa_select_tex_object(struct gl_context *ctx, const struct gl_texture_unit *texUnit, GLenum target) { switch (target) { @@ -703,7 +703,7 @@ _mesa_select_tex_object(GLcontext *ctx, const struct gl_texture_unit *texUnit, * Return pointer to texture object for given target on current texture unit. */ struct gl_texture_object * -_mesa_get_current_tex_object(GLcontext *ctx, GLenum target) +_mesa_get_current_tex_object(struct gl_context *ctx, GLenum target) { struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); return _mesa_select_tex_object(ctx, texUnit, target); @@ -723,7 +723,7 @@ _mesa_get_current_tex_object(GLcontext *ctx, GLenum target) * \return pointer to the texture image structure, or NULL on failure. */ struct gl_texture_image * -_mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_object *texObj, +_mesa_select_tex_image(struct gl_context *ctx, const struct gl_texture_object *texObj, GLenum target, GLint level) { const GLuint face = _mesa_tex_target_to_face(target); @@ -742,7 +742,7 @@ _mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_object *texObj, * out of memory. */ struct gl_texture_image * -_mesa_get_tex_image(GLcontext *ctx, struct gl_texture_object *texObj, +_mesa_get_tex_image(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum target, GLint level) { struct gl_texture_image *texImage; @@ -772,7 +772,7 @@ _mesa_get_tex_image(GLcontext *ctx, struct gl_texture_object *texObj, * level, or out of memory. */ struct gl_texture_image * -_mesa_get_proxy_tex_image(GLcontext *ctx, GLenum target, GLint level) +_mesa_get_proxy_tex_image(struct gl_context *ctx, GLenum target, GLint level) { struct gl_texture_image *texImage; GLuint texIndex; @@ -847,7 +847,7 @@ _mesa_get_proxy_tex_image(GLcontext *ctx, GLenum target, GLint level) * \sa gl_constants. */ GLint -_mesa_max_texture_levels(GLcontext *ctx, GLenum target) +_mesa_max_texture_levels(struct gl_context *ctx, GLenum target) { switch (target) { case GL_TEXTURE_1D: @@ -993,7 +993,7 @@ clear_teximage_fields(struct gl_texture_image *img) * Note: width, height and depth include the border. */ void -_mesa_init_teximage_fields(GLcontext *ctx, GLenum target, +_mesa_init_teximage_fields(struct gl_context *ctx, GLenum target, struct gl_texture_image *img, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum internalFormat) @@ -1084,7 +1084,7 @@ _mesa_init_teximage_fields(GLcontext *ctx, GLenum target, * fields are cleared so that its parent object will test incomplete. */ void -_mesa_clear_texture_image(GLcontext *ctx, struct gl_texture_image *texImage) +_mesa_clear_texture_image(struct gl_context *ctx, struct gl_texture_image *texImage) { ctx->Driver.FreeTexImageData(ctx, texImage); clear_teximage_fields(texImage); @@ -1116,7 +1116,7 @@ _mesa_clear_texture_image(GLcontext *ctx, struct gl_texture_image *texImage) * \return GL_TRUE if the image is acceptable, GL_FALSE if not acceptable. */ GLboolean -_mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, GLint depth, GLint border) { @@ -1228,16 +1228,26 @@ _mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level, * Helper function to determine whether a target supports compressed textures */ static GLboolean -target_can_be_compressed(GLcontext *ctx, GLenum target) +target_can_be_compressed(struct gl_context *ctx, GLenum target) { - return (((target == GL_TEXTURE_2D || target == GL_PROXY_TEXTURE_2D)) - || ((ctx->Extensions.ARB_texture_cube_map && - (target == GL_PROXY_TEXTURE_CUBE_MAP || - (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X && - target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z)))) - || ((ctx->Extensions.MESA_texture_array && - ((target == GL_PROXY_TEXTURE_2D_ARRAY_EXT) || - (target == GL_TEXTURE_2D_ARRAY_EXT))))); + 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_PROXY_TEXTURE_2D_ARRAY_EXT: + case GL_TEXTURE_2D_ARRAY_EXT: + return ctx->Extensions.MESA_texture_array; + default: + return GL_FALSE; + } } @@ -1259,11 +1269,11 @@ target_can_be_compressed(GLcontext *ctx, GLenum target) * \return GL_TRUE if an error was detected, or GL_FALSE if no errors. * * Verifies each of the parameters against the constants specified in - * __GLcontextRec::Const and the supported extensions, and according to the + * __struct gl_contextRec::Const and the supported extensions, and according to the * OpenGL specification. */ static GLboolean -texture_error_check( GLcontext *ctx, GLenum target, +texture_error_check( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLuint dimensions, @@ -1392,11 +1402,15 @@ texture_error_check( GLcontext *ctx, GLenum target, /* Check incoming image format and type */ if (!_mesa_is_legal_format_and_type(ctx, format, type)) { - /* Yes, generate GL_INVALID_OPERATION, not GL_INVALID_ENUM, if there - * is a type/format mismatch. See 1.2 spec page 94, sec 3.6.4. + /* Normally, GL_INVALID_OPERATION is generated by a format/type + * mismatch (see the 1.2 spec page 94, sec 3.6.4.). But with the + * GL_EXT_texture_integer extension, some combinations should generate + * GL_INVALID_ENUM instead (grr!). */ if (!isProxy) { - _mesa_error(ctx, GL_INVALID_OPERATION, + GLenum error = _mesa_is_integer_format(format) + ? GL_INVALID_ENUM : GL_INVALID_OPERATION; + _mesa_error(ctx, error, "glTexImage%dD(incompatible format 0x%x, type 0x%x)", dimensions, format, type); } @@ -1482,6 +1496,18 @@ texture_error_check( GLcontext *ctx, GLenum target, } } + /* additional checks for integer textures */ + if (ctx->Extensions.EXT_texture_integer && + (_mesa_is_integer_format(format) != + _mesa_is_integer_format(internalFormat))) { + if (!isProxy) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glTexImage%dD(integer/non-integer format mismatch)", + dimensions); + } + return GL_TRUE; + } + /* if we get here, the parameters are OK */ return GL_FALSE; } @@ -1506,11 +1532,11 @@ texture_error_check( GLcontext *ctx, GLenum target, * \return GL_TRUE if an error was detected, or GL_FALSE if no errors. * * Verifies each of the parameters against the constants specified in - * __GLcontextRec::Const and the supported extensions, and according to the + * __struct gl_contextRec::Const and the supported extensions, and according to the * OpenGL specification. */ static GLboolean -subtexture_error_check( GLcontext *ctx, GLuint dimensions, +subtexture_error_check( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, @@ -1588,7 +1614,12 @@ subtexture_error_check( GLcontext *ctx, GLuint dimensions, } if (!_mesa_is_legal_format_and_type(ctx, format, type)) { - _mesa_error(ctx, GL_INVALID_ENUM, + /* As with the glTexImage2D check above, the error code here + * depends on texture integer. + */ + GLenum error = _mesa_is_integer_format(format) + ? GL_INVALID_OPERATION : GL_INVALID_ENUM; + _mesa_error(ctx, error, "glTexSubImage%dD(incompatible format 0x%x, type 0x%x)", dimensions, format, type); return GL_TRUE; @@ -1603,7 +1634,7 @@ subtexture_error_check( GLcontext *ctx, GLuint dimensions, * \return GL_TRUE if error recorded, GL_FALSE otherwise */ static GLboolean -subtexture_error_check2( GLcontext *ctx, GLuint dimensions, +subtexture_error_check2( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, @@ -1701,11 +1732,11 @@ subtexture_error_check2( GLcontext *ctx, GLuint dimensions, * \return GL_TRUE if an error was detected, or GL_FALSE if no errors. * * Verifies each of the parameters against the constants specified in - * __GLcontextRec::Const and the supported extensions, and according to the + * __struct gl_contextRec::Const and the supported extensions, and according to the * OpenGL specification. */ static GLboolean -copytexture_error_check( GLcontext *ctx, GLuint dimensions, +copytexture_error_check( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border ) { @@ -1880,7 +1911,7 @@ copytexture_error_check( GLcontext *ctx, GLuint dimensions, * \return GL_TRUE if an error was detected, or GL_FALSE if no errors. */ static GLboolean -copytexsubimage_error_check1( GLcontext *ctx, GLuint dimensions, +copytexsubimage_error_check1( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level) { /* Check that the source buffer is complete */ @@ -1954,7 +1985,7 @@ copytexsubimage_error_check1( GLcontext *ctx, GLuint dimensions, * \param height image height given by the user. */ static GLboolean -copytexsubimage_error_check2( GLcontext *ctx, GLuint dimensions, +copytexsubimage_error_check2( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, @@ -2073,6 +2104,19 @@ copytexsubimage_error_check2( GLcontext *ctx, GLuint dimensions, } } + /* If copying into an integer texture, the source buffer must also be + * integer-valued. + */ + if (_mesa_is_format_integer_color(teximage->TexFormat)) { + struct gl_renderbuffer *rb = ctx->ReadBuffer->_ColorReadBuffer; + if (!_mesa_is_format_integer_color(rb->Format)) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glCopyTexSubImage%dD(source buffer is not integer format)", + dimensions); + return GL_TRUE; + } + } + /* if we get here, the parameters are OK */ return GL_FALSE; } @@ -2081,7 +2125,7 @@ copytexsubimage_error_check2( GLcontext *ctx, GLuint dimensions, /** Callback info for walking over FBO hash table */ struct cb_info { - GLcontext *ctx; + struct gl_context *ctx; struct gl_texture_object *texObj; GLuint level, face; }; @@ -2095,7 +2139,7 @@ check_rtt_cb(GLuint key, void *data, void *userData) { struct gl_framebuffer *fb = (struct gl_framebuffer *) data; const struct cb_info *info = (struct cb_info *) userData; - GLcontext *ctx = info->ctx; + struct gl_context *ctx = info->ctx; const struct gl_texture_object *texObj = info->texObj; const GLuint level = info->level, face = info->face; @@ -2127,7 +2171,7 @@ check_rtt_cb(GLuint key, void *data, void *userData) * Any FBOs rendering into the texture must be re-validated. */ static void -update_fbo_texture(GLcontext *ctx, struct gl_texture_object *texObj, +update_fbo_texture(struct gl_context *ctx, struct gl_texture_object *texObj, GLuint face, GLuint level) { /* Only check this texture if it's been marked as RenderToTexture */ @@ -2148,7 +2192,7 @@ update_fbo_texture(GLcontext *ctx, struct gl_texture_object *texObj, * mipmap levels now. */ static INLINE void -check_gen_mipmap(GLcontext *ctx, GLenum target, +check_gen_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, GLint level) { ASSERT(target != GL_TEXTURE_CUBE_MAP); @@ -2214,7 +2258,7 @@ override_internal_format(GLenum internalFormat, GLint width, GLint height) * comes up during automatic mipmap generation. */ void -_mesa_choose_texture_format(GLcontext *ctx, +_mesa_choose_texture_format(struct gl_context *ctx, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLenum target, GLint level, @@ -2252,7 +2296,6 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) { - GLsizei postConvWidth = width; GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -2272,7 +2315,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, const GLuint face = _mesa_tex_target_to_face(target); if (texture_error_check(ctx, target, level, internalFormat, - format, type, 1, postConvWidth, 1, 1, border)) { + format, type, 1, width, 1, 1, border)) { return; /* error was recorded */ } @@ -2295,7 +2338,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, clear_teximage_fields(texImage); /* not really needed, but helpful */ _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, 1, 1, + width, 1, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, @@ -2327,7 +2370,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, struct gl_texture_image *texImage; texImage = _mesa_get_proxy_tex_image(ctx, target, level); if (texture_error_check(ctx, target, level, internalFormat, - format, type, 1, postConvWidth, 1, 1, border)) { + format, type, 1, width, 1, 1, border)) { /* when error, clear all proxy texture image parameters */ if (texImage) clear_teximage_fields(texImage); @@ -2338,7 +2381,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, _mesa_get_current_tex_object(ctx, target); ASSERT(texImage); _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, 1, 1, + width, 1, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, internalFormat, format, type); @@ -2357,7 +2400,6 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, const GLvoid *pixels ) { - GLsizei postConvWidth = width, postConvHeight = height; GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -2384,8 +2426,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, const GLuint face = _mesa_tex_target_to_face(target); if (texture_error_check(ctx, target, level, internalFormat, - format, type, 2, postConvWidth, postConvHeight, - 1, border)) { + format, type, 2, width, height, 1, border)) { return; /* error was recorded */ } @@ -2407,7 +2448,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, ASSERT(texImage->Data == NULL); clear_teximage_fields(texImage); /* not really needed, but helpful */ _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, postConvHeight, 1, + width, height, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, @@ -2445,8 +2486,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, struct gl_texture_image *texImage; texImage = _mesa_get_proxy_tex_image(ctx, target, level); if (texture_error_check(ctx, target, level, internalFormat, - format, type, 2, postConvWidth, postConvHeight, - 1, border)) { + format, type, 2, width, height, 1, border)) { /* when error, clear all proxy texture image parameters */ if (texImage) clear_teximage_fields(texImage); @@ -2456,7 +2496,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, struct gl_texture_object *texObj = _mesa_get_current_tex_object(ctx, target); _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, postConvHeight, 1, + width, height, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, internalFormat, format, type); @@ -2643,7 +2683,6 @@ _mesa_TexSubImage1D( GLenum target, GLint level, GLenum format, GLenum type, const GLvoid *pixels ) { - GLsizei postConvWidth = width; struct gl_texture_object *texObj; struct gl_texture_image *texImage; GET_CURRENT_CONTEXT(ctx); @@ -2659,7 +2698,7 @@ _mesa_TexSubImage1D( GLenum target, GLint level, _mesa_update_state(ctx); if (subtexture_error_check(ctx, 1, target, level, xoffset, 0, 0, - postConvWidth, 1, 1, format, type)) { + width, 1, 1, format, type)) { return; /* error was detected */ } @@ -2672,8 +2711,7 @@ _mesa_TexSubImage1D( GLenum target, GLint level, texImage = _mesa_select_tex_image(ctx, texObj, target, level); if (subtexture_error_check2(ctx, 1, target, level, xoffset, 0, 0, - postConvWidth, 1, 1, - format, type, texImage)) { + width, 1, 1, format, type, texImage)) { /* error was recorded */ } else if (width > 0) { @@ -2701,7 +2739,6 @@ _mesa_TexSubImage2D( GLenum target, GLint level, GLenum format, GLenum type, const GLvoid *pixels ) { - GLsizei postConvWidth = width, postConvHeight = height; struct gl_texture_object *texObj; struct gl_texture_image *texImage; GET_CURRENT_CONTEXT(ctx); @@ -2718,7 +2755,7 @@ _mesa_TexSubImage2D( GLenum target, GLint level, _mesa_update_state(ctx); if (subtexture_error_check(ctx, 2, target, level, xoffset, yoffset, 0, - postConvWidth, postConvHeight, 1, format, type)) { + width, height, 1, format, type)) { return; /* error was detected */ } @@ -2729,8 +2766,7 @@ _mesa_TexSubImage2D( GLenum target, GLint level, texImage = _mesa_select_tex_image(ctx, texObj, target, level); if (subtexture_error_check2(ctx, 2, target, level, xoffset, yoffset, 0, - postConvWidth, postConvHeight, 1, - format, type, texImage)) { + width, height, 1, format, type, texImage)) { /* error was recorded */ } else if (width > 0 && height >= 0) { @@ -2823,7 +2859,6 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width; const GLuint face = _mesa_tex_target_to_face(target); GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -2838,7 +2873,7 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, _mesa_update_state(ctx); if (copytexture_error_check(ctx, 1, target, level, internalFormat, - postConvWidth, 1, border)) + width, 1, border)) return; texObj = _mesa_get_current_tex_object(ctx, target); @@ -2857,7 +2892,7 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, ASSERT(texImage->Data == NULL); clear_teximage_fields(texImage); /* not really needed, but helpful */ - _mesa_init_teximage_fields(ctx, target, texImage, postConvWidth, 1, 1, + _mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, @@ -2892,7 +2927,6 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width, postConvHeight = height; const GLuint face = _mesa_tex_target_to_face(target); GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -2907,7 +2941,7 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, _mesa_update_state(ctx); if (copytexture_error_check(ctx, 2, target, level, internalFormat, - postConvWidth, postConvHeight, border)) + width, height, border)) return; texObj = _mesa_get_current_tex_object(ctx, target); @@ -2928,7 +2962,7 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, clear_teximage_fields(texImage); /* not really needed, but helpful */ _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, postConvHeight, 1, + width, height, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, @@ -2961,7 +2995,6 @@ _mesa_CopyTexSubImage1D( GLenum target, GLint level, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width; GLint yoffset = 0; GLsizei height = 1; @@ -2986,8 +3019,7 @@ _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, postConvWidth, 1, - texImage)) { + xoffset, 0, 0, width, 1, texImage)) { /* error was recorded */ } else { @@ -3018,7 +3050,6 @@ _mesa_CopyTexSubImage2D( GLenum target, GLint level, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width, postConvHeight = height; GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -3041,8 +3072,7 @@ _mesa_CopyTexSubImage2D( GLenum target, GLint level, if (copytexsubimage_error_check2(ctx, 2, target, level, xoffset, yoffset, 0, - postConvWidth, postConvHeight, - texImage)) { + width, height, texImage)) { /* error was recorded */ } else { @@ -3074,7 +3104,6 @@ _mesa_CopyTexSubImage3D( GLenum target, GLint level, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width, postConvHeight = height; GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -3096,8 +3125,7 @@ _mesa_CopyTexSubImage3D( GLenum target, GLint level, texImage = _mesa_select_tex_image(ctx, texObj, target, level); if (copytexsubimage_error_check2(ctx, 3, target, level, xoffset, yoffset, - zoffset, postConvWidth, postConvHeight, - texImage)) { + zoffset, width, height, texImage)) { /* error was recored */ } else { @@ -3158,7 +3186,7 @@ get_compressed_block_size(GLenum glformat, GLuint *bw, GLuint *bh) * \return error code or GL_NO_ERROR. */ static GLenum -compressed_texture_error_check(GLcontext *ctx, GLint dimensions, +compressed_texture_error_check(struct gl_context *ctx, GLint dimensions, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, @@ -3265,7 +3293,7 @@ compressed_texture_error_check(GLcontext *ctx, GLint dimensions, * \return error code or GL_NO_ERROR. */ static GLenum -compressed_subtexture_error_check(GLcontext *ctx, GLint dimensions, +compressed_subtexture_error_check(struct gl_context *ctx, GLint dimensions, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, @@ -3349,7 +3377,7 @@ compressed_subtexture_error_check(GLcontext *ctx, GLint dimensions, * \return GL_TRUE if error found, GL_FALSE otherwise. */ static GLboolean -compressed_subtexture_error_check2(GLcontext *ctx, GLuint dims, +compressed_subtexture_error_check2(struct gl_context *ctx, GLuint dims, GLsizei width, GLsizei height, GLsizei depth, GLenum format, struct gl_texture_image *texImage) diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h index 0dcacab3cd0..d4317c301b7 100644 --- a/src/mesa/main/teximage.h +++ b/src/mesa/main/teximage.h @@ -46,7 +46,7 @@ _mesa_free_texmemory(void *m); /*@{*/ extern GLint -_mesa_base_tex_format( GLcontext *ctx, GLint internalFormat ); +_mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat ); extern GLboolean @@ -54,26 +54,26 @@ _mesa_is_proxy_texture(GLenum target); extern struct gl_texture_image * -_mesa_new_texture_image( GLcontext *ctx ); +_mesa_new_texture_image( struct gl_context *ctx ); extern void -_mesa_delete_texture_image( GLcontext *ctx, struct gl_texture_image *teximage ); +_mesa_delete_texture_image( struct gl_context *ctx, struct gl_texture_image *teximage ); extern void -_mesa_free_texture_image_data( GLcontext *ctx, +_mesa_free_texture_image_data( struct gl_context *ctx, struct gl_texture_image *texImage ); extern void -_mesa_init_teximage_fields(GLcontext *ctx, GLenum target, +_mesa_init_teximage_fields(struct gl_context *ctx, GLenum target, struct gl_texture_image *img, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum internalFormat); extern void -_mesa_choose_texture_format(GLcontext *ctx, +_mesa_choose_texture_format(struct gl_context *ctx, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLenum target, GLint level, @@ -81,7 +81,7 @@ _mesa_choose_texture_format(GLcontext *ctx, extern void -_mesa_clear_texture_image(GLcontext *ctx, struct gl_texture_image *texImage); +_mesa_clear_texture_image(struct gl_context *ctx, struct gl_texture_image *texImage); extern void @@ -91,33 +91,33 @@ _mesa_set_tex_image(struct gl_texture_object *tObj, extern struct gl_texture_object * -_mesa_select_tex_object(GLcontext *ctx, const struct gl_texture_unit *texUnit, +_mesa_select_tex_object(struct gl_context *ctx, const struct gl_texture_unit *texUnit, GLenum target); extern struct gl_texture_object * -_mesa_get_current_tex_object(GLcontext *ctx, GLenum target); +_mesa_get_current_tex_object(struct gl_context *ctx, GLenum target); extern struct gl_texture_image * -_mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_object *texObj, +_mesa_select_tex_image(struct gl_context *ctx, const struct gl_texture_object *texObj, GLenum target, GLint level); extern struct gl_texture_image * -_mesa_get_tex_image(GLcontext *ctx, struct gl_texture_object *texObj, +_mesa_get_tex_image(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum target, GLint level); extern struct gl_texture_image * -_mesa_get_proxy_tex_image(GLcontext *ctx, GLenum target, GLint level); +_mesa_get_proxy_tex_image(struct gl_context *ctx, GLenum target, GLint level); extern GLint -_mesa_max_texture_levels(GLcontext *ctx, GLenum target); +_mesa_max_texture_levels(struct gl_context *ctx, GLenum target); extern GLboolean -_mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, GLint depth, GLint border); @@ -130,7 +130,7 @@ _mesa_tex_target_to_face(GLenum target); * Lock a texture for updating. See also _mesa_lock_context_textures(). */ static INLINE void -_mesa_lock_texture(GLcontext *ctx, struct gl_texture_object *texObj) +_mesa_lock_texture(struct gl_context *ctx, struct gl_texture_object *texObj) { _glthread_LOCK_MUTEX(ctx->Shared->TexMutex); ctx->Shared->TextureStateStamp++; @@ -138,7 +138,7 @@ _mesa_lock_texture(GLcontext *ctx, struct gl_texture_object *texObj) } static INLINE void -_mesa_unlock_texture(GLcontext *ctx, struct gl_texture_object *texObj) +_mesa_unlock_texture(struct gl_context *ctx, struct gl_texture_object *texObj) { _glthread_UNLOCK_MUTEX(ctx->Shared->TexMutex); } diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 1fedc870285..e08df0f7fed 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -53,7 +53,7 @@ * Return the gl_texture_object for a given ID. */ struct gl_texture_object * -_mesa_lookup_texture(GLcontext *ctx, GLuint id) +_mesa_lookup_texture(struct gl_context *ctx, GLuint id) { return (struct gl_texture_object *) _mesa_HashLookup(ctx->Shared->TexObjects, id); @@ -77,7 +77,7 @@ _mesa_lookup_texture(GLcontext *ctx, GLuint id) * \return pointer to new texture object. */ struct gl_texture_object * -_mesa_new_texture_object( GLcontext *ctx, GLuint name, GLenum target ) +_mesa_new_texture_object( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; (void) ctx; @@ -149,7 +149,7 @@ _mesa_initialize_texture_object( struct gl_texture_object *obj, * target it's getting bound to (GL_TEXTURE_1D/2D/etc). */ static void -finish_texture_init(GLcontext *ctx, GLenum target, +finish_texture_init(struct gl_context *ctx, GLenum target, struct gl_texture_object *obj) { assert(obj->Target == 0); @@ -181,7 +181,7 @@ finish_texture_init(GLcontext *ctx, GLenum target, * \param texObj the texture object to delete. */ void -_mesa_delete_texture_object( GLcontext *ctx, struct gl_texture_object *texObj ) +_mesa_delete_texture_object( struct gl_context *ctx, struct gl_texture_object *texObj ) { GLuint i, face; @@ -265,7 +265,7 @@ _mesa_copy_texture_object( struct gl_texture_object *dest, * \sa _mesa_clear_texture_image(). */ void -_mesa_clear_texture_object(GLcontext *ctx, struct gl_texture_object *texObj) +_mesa_clear_texture_object(struct gl_context *ctx, struct gl_texture_object *texObj) { GLuint i, j; @@ -404,7 +404,7 @@ incomplete(const struct gl_texture_object *t, const char *why) * present and has the expected size. */ void -_mesa_test_texobj_completeness( const GLcontext *ctx, +_mesa_test_texobj_completeness( const struct gl_context *ctx, struct gl_texture_object *t ) { const GLint baseLevel = t->BaseLevel; @@ -696,7 +696,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, * \param invalidate_state also invalidate context state. */ void -_mesa_dirty_texobj(GLcontext *ctx, struct gl_texture_object *texObj, +_mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj, GLboolean invalidate_state) { texObj->_Complete = GL_FALSE; @@ -712,7 +712,7 @@ _mesa_dirty_texobj(GLcontext *ctx, struct gl_texture_object *texObj, * incomplete texture. */ struct gl_texture_object * -_mesa_get_fallback_texture(GLcontext *ctx) +_mesa_get_fallback_texture(struct gl_context *ctx) { if (!ctx->Shared->FallbackTex) { /* create fallback texture now */ @@ -830,7 +830,7 @@ _mesa_GenTextures( GLsizei n, GLuint *textures ) * read framebuffer. If so, Unbind it. */ static void -unbind_texobj_from_fbo(GLcontext *ctx, struct gl_texture_object *texObj) +unbind_texobj_from_fbo(struct gl_context *ctx, struct gl_texture_object *texObj) { const GLuint n = (ctx->DrawBuffer == ctx->ReadBuffer) ? 1 : 2; GLuint i; @@ -855,7 +855,7 @@ unbind_texobj_from_fbo(GLcontext *ctx, struct gl_texture_object *texObj) * unbind it if so (revert to default textures). */ static void -unbind_texobj_from_texunits(GLcontext *ctx, struct gl_texture_object *texObj) +unbind_texobj_from_texunits(struct gl_context *ctx, struct gl_texture_object *texObj) { GLuint u, tex; @@ -1214,7 +1214,7 @@ _mesa_IsTexture( GLuint texture ) * See also _mesa_lock/unlock_texture() in teximage.h */ void -_mesa_lock_context_textures( GLcontext *ctx ) +_mesa_lock_context_textures( struct gl_context *ctx ) { _glthread_LOCK_MUTEX(ctx->Shared->TexMutex); @@ -1226,7 +1226,7 @@ _mesa_lock_context_textures( GLcontext *ctx ) void -_mesa_unlock_context_textures( GLcontext *ctx ) +_mesa_unlock_context_textures( struct gl_context *ctx ) { assert(ctx->Shared->TextureStateStamp == ctx->TextureStateTimestamp); _glthread_UNLOCK_MUTEX(ctx->Shared->TexMutex); diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h index 9bfebd45c81..821b35caa36 100644 --- a/src/mesa/main/texobj.h +++ b/src/mesa/main/texobj.h @@ -41,45 +41,45 @@ /*@{*/ extern struct gl_texture_object * -_mesa_lookup_texture(GLcontext *ctx, GLuint id); +_mesa_lookup_texture(struct gl_context *ctx, GLuint id); extern struct gl_texture_object * -_mesa_new_texture_object( GLcontext *ctx, GLuint name, GLenum target ); +_mesa_new_texture_object( struct gl_context *ctx, GLuint name, GLenum target ); extern void _mesa_initialize_texture_object( struct gl_texture_object *obj, GLuint name, GLenum target ); extern void -_mesa_delete_texture_object( GLcontext *ctx, struct gl_texture_object *obj ); +_mesa_delete_texture_object( struct gl_context *ctx, struct gl_texture_object *obj ); extern void _mesa_copy_texture_object( struct gl_texture_object *dest, const struct gl_texture_object *src ); extern void -_mesa_clear_texture_object(GLcontext *ctx, struct gl_texture_object *obj); +_mesa_clear_texture_object(struct gl_context *ctx, struct gl_texture_object *obj); extern void _mesa_reference_texobj(struct gl_texture_object **ptr, struct gl_texture_object *tex); extern void -_mesa_test_texobj_completeness( const GLcontext *ctx, +_mesa_test_texobj_completeness( const struct gl_context *ctx, struct gl_texture_object *obj ); extern void -_mesa_dirty_texobj(GLcontext *ctx, struct gl_texture_object *texObj, +_mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj, GLboolean invalidate_state); extern struct gl_texture_object * -_mesa_get_fallback_texture(GLcontext *ctx); +_mesa_get_fallback_texture(struct gl_context *ctx); extern void -_mesa_unlock_context_textures( GLcontext *ctx ); +_mesa_unlock_context_textures( struct gl_context *ctx ); extern void -_mesa_lock_context_textures( GLcontext *ctx ); +_mesa_lock_context_textures( struct gl_context *ctx ); /*@}*/ diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c index e96ace73403..d5c83de97f7 100644 --- a/src/mesa/main/texparam.c +++ b/src/mesa/main/texparam.c @@ -47,7 +47,7 @@ * \return GL_TRUE if legal, GL_FALSE otherwise */ static GLboolean -validate_texture_wrap_mode(GLcontext * ctx, GLenum target, GLenum wrap) +validate_texture_wrap_mode(struct gl_context * ctx, GLenum target, GLenum wrap) { const struct gl_extensions * const e = & ctx->Extensions; @@ -83,7 +83,7 @@ validate_texture_wrap_mode(GLcontext * ctx, GLenum target, GLenum wrap) * Only the glGetTexLevelParameter() functions accept proxy targets. */ static struct gl_texture_object * -get_texobj(GLcontext *ctx, GLenum target, GLboolean get) +get_texobj(struct gl_context *ctx, GLenum target, GLboolean get) { struct gl_texture_unit *texUnit; @@ -178,7 +178,7 @@ set_swizzle_component(GLuint *swizzle, GLuint comp, GLuint swz) * per-texture derived state gets recomputed. */ static INLINE void -flush(GLcontext *ctx, struct gl_texture_object *texObj) +flush(struct gl_context *ctx, struct gl_texture_object *texObj) { FLUSH_VERTICES(ctx, _NEW_TEXTURE); texObj->_Complete = GL_FALSE; @@ -190,7 +190,7 @@ flush(GLcontext *ctx, struct gl_texture_object *texObj) * \return GL_TRUE if legal AND the value changed, GL_FALSE otherwise */ static GLboolean -set_tex_parameteri(GLcontext *ctx, +set_tex_parameteri(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum pname, const GLint *params) { @@ -430,7 +430,7 @@ set_tex_parameteri(GLcontext *ctx, * \return GL_TRUE if legal AND the value changed, GL_FALSE otherwise */ static GLboolean -set_tex_parameterf(GLcontext *ctx, +set_tex_parameterf(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params) { diff --git a/src/mesa/main/texrender.c b/src/mesa/main/texrender.c index c68105b3951..8961b926487 100644 --- a/src/mesa/main/texrender.c +++ b/src/mesa/main/texrender.c @@ -31,7 +31,7 @@ struct texture_renderbuffer * Get row of values from the renderbuffer that wraps a texture image. */ static void -texture_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const struct texture_renderbuffer *trb @@ -100,7 +100,7 @@ texture_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -texture_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { const struct texture_renderbuffer *trb @@ -167,7 +167,7 @@ texture_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, * Put row of values into a renderbuffer that wraps a texture image. */ static void -texture_put_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_put_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const struct texture_renderbuffer *trb @@ -229,7 +229,7 @@ texture_put_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, * Put row of RGB values into a renderbuffer that wraps a texture image. */ static void -texture_put_row_rgb(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_put_row_rgb(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const struct texture_renderbuffer *trb @@ -289,7 +289,7 @@ texture_put_row_rgb(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -texture_put_mono_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_put_mono_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const struct texture_renderbuffer *trb @@ -348,7 +348,7 @@ texture_put_mono_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -texture_put_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_put_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -407,7 +407,7 @@ texture_put_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -texture_put_mono_values(GLcontext *ctx, struct gl_renderbuffer *rb, +texture_put_mono_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -486,7 +486,7 @@ delete_texture_wrapper(struct gl_renderbuffer *rb) * This allows rendering into the texture as if it were a renderbuffer. */ static void -wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att) +wrap_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att) { struct texture_renderbuffer *trb; const GLuint name = 0; @@ -525,7 +525,7 @@ wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att) * update the internal format info, etc. */ static void -update_wrapper(GLcontext *ctx, const struct gl_renderbuffer_attachment *att) +update_wrapper(struct gl_context *ctx, const struct gl_renderbuffer_attachment *att) { struct texture_renderbuffer *trb = (struct texture_renderbuffer *) att->Renderbuffer; @@ -609,7 +609,7 @@ update_wrapper(GLcontext *ctx, const struct gl_renderbuffer_attachment *att) * \sa _mesa_framebuffer_renderbuffer */ void -_mesa_render_texture(GLcontext *ctx, +_mesa_render_texture(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att) { @@ -623,7 +623,7 @@ _mesa_render_texture(GLcontext *ctx, void -_mesa_finish_render_texture(GLcontext *ctx, +_mesa_finish_render_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att) { /* do nothing */ diff --git a/src/mesa/main/texrender.h b/src/mesa/main/texrender.h index 1e87d594a28..5e68fb03b57 100644 --- a/src/mesa/main/texrender.h +++ b/src/mesa/main/texrender.h @@ -4,12 +4,12 @@ #include "mtypes.h" extern void -_mesa_render_texture(GLcontext *ctx, +_mesa_render_texture(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att); extern void -_mesa_finish_render_texture(GLcontext *ctx, +_mesa_finish_render_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att); diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c index 30c978c1cdd..f4d77189f29 100644 --- a/src/mesa/main/texstate.c +++ b/src/mesa/main/texstate.c @@ -63,7 +63,7 @@ static const struct gl_tex_env_combine_state default_combine_state = { * Used by glXCopyContext to copy texture state from one context to another. */ void -_mesa_copy_texture_state( const GLcontext *src, GLcontext *dst ) +_mesa_copy_texture_state( const struct gl_context *src, struct gl_context *dst ) { GLuint u, tex; @@ -119,7 +119,7 @@ _mesa_copy_texture_state( const GLcontext *src, GLcontext *dst ) * For debugging */ void -_mesa_print_texunit_state( GLcontext *ctx, GLuint unit ) +_mesa_print_texunit_state( struct gl_context *ctx, GLuint unit ) { const struct gl_texture_unit *texUnit = ctx->Texture.Unit + unit; printf("Texture Unit %d\n", unit); @@ -363,7 +363,7 @@ _mesa_ClientActiveTextureARB(GLenum texture) * \param ctx GL context. */ static void -update_texture_matrices( GLcontext *ctx ) +update_texture_matrices( struct gl_context *ctx ) { GLuint u; @@ -386,7 +386,7 @@ update_texture_matrices( GLcontext *ctx ) * Examine texture unit's combine/env state to update derived state. */ static void -update_tex_combine(GLcontext *ctx, struct gl_texture_unit *texUnit) +update_tex_combine(struct gl_context *ctx, struct gl_texture_unit *texUnit) { struct gl_tex_env_combine_state *combine; @@ -489,30 +489,35 @@ update_tex_combine(GLcontext *ctx, struct gl_texture_unit *texUnit) * \param ctx GL context. */ static void -update_texture_state( GLcontext *ctx ) +update_texture_state( struct gl_context *ctx ) { GLuint unit; struct gl_fragment_program *fprog = NULL; struct gl_vertex_program *vprog = NULL; GLbitfield enabledFragUnits = 0x0; - if (ctx->Shader.CurrentProgram && - ctx->Shader.CurrentProgram->LinkStatus) { - fprog = ctx->Shader.CurrentProgram->FragmentProgram; - vprog = ctx->Shader.CurrentProgram->VertexProgram; + if (ctx->Shader.CurrentVertexProgram && + ctx->Shader.CurrentVertexProgram->LinkStatus) { + vprog = ctx->Shader.CurrentVertexProgram->VertexProgram; + } else if (ctx->VertexProgram._Enabled) { + /* XXX enable this if/when non-shader vertex programs get + * texture fetches: + vprog = ctx->VertexProgram.Current; + */ } - else { - if (ctx->FragmentProgram._Enabled) { - fprog = ctx->FragmentProgram.Current; - } - if (ctx->VertexProgram._Enabled) { - /* XXX enable this if/when non-shader vertex programs get - * texture fetches: - vprog = ctx->VertexProgram.Current; - */ - } + + if (ctx->Shader.CurrentFragmentProgram && + ctx->Shader.CurrentFragmentProgram->LinkStatus) { + fprog = ctx->Shader.CurrentFragmentProgram->FragmentProgram; + } + else if (ctx->FragmentProgram._Enabled) { + fprog = ctx->FragmentProgram.Current; } + /* FINISHME: Geometry shader texture accesses should also be considered + * FINISHME: here. + */ + /* TODO: only set this if there are actual changes */ ctx->NewState |= _NEW_TEXTURE; @@ -653,7 +658,7 @@ update_texture_state( GLcontext *ctx ) * Update texture-related derived state. */ void -_mesa_update_texture( GLcontext *ctx, GLuint new_state ) +_mesa_update_texture( struct gl_context *ctx, GLuint new_state ) { if (new_state & _NEW_TEXTURE_MATRIX) update_texture_matrices( ctx ); @@ -678,7 +683,7 @@ _mesa_update_texture( GLcontext *ctx, GLuint new_state ) * GL_FALSE. */ static GLboolean -alloc_proxy_textures( GLcontext *ctx ) +alloc_proxy_textures( struct gl_context *ctx ) { static const GLenum targets[] = { GL_TEXTURE_1D, @@ -716,7 +721,7 @@ alloc_proxy_textures( GLcontext *ctx ) * \param unit texture unit number to be initialized. */ static void -init_texture_unit( GLcontext *ctx, GLuint unit ) +init_texture_unit( struct gl_context *ctx, GLuint unit ) { struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; GLuint tex; @@ -764,7 +769,7 @@ init_texture_unit( GLcontext *ctx, GLuint unit ) * Initialize texture state for the given context. */ GLboolean -_mesa_init_texture(GLcontext *ctx) +_mesa_init_texture(struct gl_context *ctx) { GLuint u; @@ -796,7 +801,7 @@ _mesa_init_texture(GLcontext *ctx) * Free dynamically-allocted texture data attached to the given context. */ void -_mesa_free_texture_data(GLcontext *ctx) +_mesa_free_texture_data(struct gl_context *ctx) { GLuint u, tgt; @@ -825,7 +830,7 @@ _mesa_free_texture_data(GLcontext *ctx) * shared state. */ void -_mesa_update_default_objects_texture(GLcontext *ctx) +_mesa_update_default_objects_texture(struct gl_context *ctx) { GLuint u, tex; diff --git a/src/mesa/main/texstate.h b/src/mesa/main/texstate.h index 912cb677985..987123036a6 100644 --- a/src/mesa/main/texstate.h +++ b/src/mesa/main/texstate.h @@ -41,7 +41,7 @@ * This the texture unit set by glActiveTexture(), not glClientActiveTexture(). */ static INLINE struct gl_texture_unit * -_mesa_get_current_tex_unit(GLcontext *ctx) +_mesa_get_current_tex_unit(struct gl_context *ctx) { ASSERT(ctx->Texture.CurrentUnit < Elements(ctx->Texture.Unit)); return &(ctx->Texture.Unit[ctx->Texture.CurrentUnit]); @@ -49,10 +49,10 @@ _mesa_get_current_tex_unit(GLcontext *ctx) extern void -_mesa_copy_texture_state( const GLcontext *src, GLcontext *dst ); +_mesa_copy_texture_state( const struct gl_context *src, struct gl_context *dst ); extern void -_mesa_print_texunit_state( GLcontext *ctx, GLuint unit ); +_mesa_print_texunit_state( struct gl_context *ctx, GLuint unit ); @@ -76,16 +76,16 @@ _mesa_ClientActiveTextureARB( GLenum target ); /*@{*/ extern void -_mesa_update_texture( GLcontext *ctx, GLuint new_state ); +_mesa_update_texture( struct gl_context *ctx, GLuint new_state ); extern GLboolean -_mesa_init_texture( GLcontext *ctx ); +_mesa_init_texture( struct gl_context *ctx ); extern void -_mesa_free_texture_data( GLcontext *ctx ); +_mesa_free_texture_data( struct gl_context *ctx ); extern void -_mesa_update_default_objects_texture(GLcontext *ctx); +_mesa_update_default_objects_texture(struct gl_context *ctx); /*@}*/ diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index 5ca36d955e2..fb34a005b3b 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -58,7 +58,9 @@ #include "image.h" #include "macros.h" #include "mipmap.h" +#include "pack.h" #include "imports.h" +#include "pack.h" #include "texcompress.h" #include "texcompress_fxt1.h" #include "texcompress_s3tc.h" @@ -173,7 +175,6 @@ static const struct { MAP4(0,1,2,3), }, - { IDX_RED, MAP4(0, ZERO, ZERO, ONE), @@ -289,7 +290,7 @@ compute_component_mapping(GLenum inFormat, GLenum outFormat, * Apply all needed pixel unpacking and pixel transfer operations. * Note that there are both logicalBaseFormat and textureBaseFormat parameters. * Suppose the user specifies GL_LUMINANCE as the internal texture format - * but the graphics hardware doesn't support luminance textures. So, might + * but the graphics hardware doesn't support luminance textures. So, we might * use an RGB hardware format instead. * If logicalBaseFormat != textureBaseFormat we have some extra work to do. * @@ -308,7 +309,7 @@ compute_component_mapping(GLenum inFormat, GLenum outFormat, * \return resulting image with format = textureBaseFormat and type = GLfloat. */ static GLfloat * -make_temp_float_image(GLcontext *ctx, GLuint dims, +make_temp_float_image(struct gl_context *ctx, GLuint dims, GLenum logicalBaseFormat, GLenum textureBaseFormat, GLint srcWidth, GLint srcHeight, GLint srcDepth, @@ -422,7 +423,7 @@ make_temp_float_image(GLcontext *ctx, GLuint dims, * Apply all needed pixel unpacking and pixel transfer operations. * Note that there are both logicalBaseFormat and textureBaseFormat parameters. * Suppose the user specifies GL_LUMINANCE as the internal texture format - * but the graphics hardware doesn't support luminance textures. So, might + * but the graphics hardware doesn't support luminance textures. So, we might * use an RGB hardware format instead. * If logicalBaseFormat != textureBaseFormat we have some extra work to do. * @@ -441,7 +442,7 @@ make_temp_float_image(GLcontext *ctx, GLuint dims, * \return resulting image with format = textureBaseFormat and type = GLchan. */ GLchan * -_mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, +_mesa_make_temp_chan_image(struct gl_context *ctx, GLuint dims, GLenum logicalBaseFormat, GLenum textureBaseFormat, GLint srcWidth, GLint srcHeight, GLint srcDepth, @@ -675,7 +676,10 @@ swizzle_copy(GLubyte *dst, GLuint dstComponents, const GLubyte *src, static const GLubyte map_identity[6] = { 0, 1, 2, 3, ZERO, ONE }; static const GLubyte map_3210[6] = { 3, 2, 1, 0, ZERO, ONE }; -/* Deal with the _REV input types: + +/** + * For 1-byte/pixel formats (or 8_8_8_8 packed formats), return a + * mapping array depending on endianness. */ static const GLubyte * type_mapping( GLenum srcType ) @@ -693,7 +697,10 @@ type_mapping( GLenum srcType ) } } -/* Mapping required if input type is + +/** + * For 1-byte/pixel formats (or 8_8_8_8 packed formats), return a + * mapping array depending on pixelstore byte swapping state. */ static const GLubyte * byteswap_mapping( GLboolean swapBytes, @@ -720,7 +727,7 @@ byteswap_mapping( GLboolean swapBytes, * Transfer a GLubyte texture image with component swizzling. */ static void -_mesa_swizzle_ubyte_image(GLcontext *ctx, +_mesa_swizzle_ubyte_image(struct gl_context *ctx, GLuint dimensions, GLenum srcFormat, GLenum srcType, @@ -807,7 +814,7 @@ _mesa_swizzle_ubyte_image(GLcontext *ctx, * 1D, 2D and 3D images supported. */ static void -memcpy_texture(GLcontext *ctx, +memcpy_texture(struct gl_context *ctx, GLuint dimensions, gl_format dstFormat, GLvoid *dstAddr, @@ -1430,7 +1437,6 @@ _mesa_texstore_argb8888(TEXSTORE_PARAMS) _mesa_swizzle_ubyte_image(ctx, dims, srcFormat, srcType, - baseInternalFormat, dstmap, 4, dstAddr, dstXoffset, dstYoffset, dstZoffset, @@ -1923,6 +1929,9 @@ _mesa_texstore_argb1555(TEXSTORE_PARAMS) } +/** + * Do texstore for 2-channel, 8-bit/channel, unsigned normalized formats. + */ static GLboolean _mesa_texstore_unorm88(TEXSTORE_PARAMS) { @@ -1955,7 +1964,6 @@ _mesa_texstore_unorm88(TEXSTORE_PARAMS) srcType == GL_UNSIGNED_BYTE && can_swizzle(baseInternalFormat) && can_swizzle(srcFormat)) { - GLubyte dstmap[4]; /* dstmap - how to swizzle from RGBA to dst format: @@ -2040,6 +2048,9 @@ _mesa_texstore_unorm88(TEXSTORE_PARAMS) } +/** + * Do texstore for 2-channel, 16-bit/channel, unsigned normalized formats. + */ static GLboolean _mesa_texstore_unorm1616(TEXSTORE_PARAMS) { @@ -2392,7 +2403,6 @@ _mesa_texstore_a8(TEXSTORE_PARAMS) srcType == GL_UNSIGNED_BYTE && can_swizzle(baseInternalFormat) && can_swizzle(srcFormat)) { - GLubyte dstmap[4]; /* dstmap - how to swizzle from RGBA to dst format: @@ -2566,7 +2576,6 @@ _mesa_texstore_dudv8(TEXSTORE_PARAMS) srcAddr, srcPacking); } else if (srcType == GL_BYTE) { - GLubyte dstmap[4]; /* dstmap - how to swizzle from RGBA to dst format: @@ -2772,7 +2781,8 @@ _mesa_texstore_signed_rgbx8888(TEXSTORE_PARAMS) /** - * Store a texture in MESA_FORMAT_SIGNED_RGBA8888 or MESA_FORMAT_SIGNED_RGBA8888_REV + * Store a texture in MESA_FORMAT_SIGNED_RGBA8888 or + * MESA_FORMAT_SIGNED_RGBA8888_REV */ static GLboolean _mesa_texstore_signed_rgba8888(TEXSTORE_PARAMS) @@ -2908,36 +2918,7 @@ _mesa_texstore_z24_s8(TEXSTORE_PARAMS) ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT || srcFormat == GL_DEPTH_COMPONENT); ASSERT(srcFormat != GL_DEPTH_STENCIL_EXT || srcType == GL_UNSIGNED_INT_24_8_EXT); - /* In case we only upload depth we need to preserve the stencil */ - if (srcFormat == GL_DEPTH_COMPONENT) { - for (img = 0; img < srcDepth; img++) { - GLuint *dstRow = (GLuint *) dstAddr - + dstImageOffsets[dstZoffset + img] - + dstYoffset * dstRowStride / sizeof(GLuint) - + dstXoffset; - const GLuint *src - = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, - srcWidth, srcHeight, - srcFormat, srcType, - img, 0, 0); - for (row = 0; row < srcHeight; row++) { - GLuint depth[MAX_WIDTH]; - GLint i; - _mesa_unpack_depth_span(ctx, srcWidth, - GL_UNSIGNED_INT, /* dst type */ - depth, /* dst addr */ - depthScale, - srcType, src, srcPacking); - - for (i = 0; i < srcWidth; i++) - dstRow[i] = depth[i] << 8 | (dstRow[i] & 0x000000FF); - - src += srcRowStride; - dstRow += dstRowStride / sizeof(GLuint); - } - } - } - else if (ctx->Pixel.DepthScale == 1.0f && + if (srcFormat != GL_DEPTH_COMPONENT && ctx->Pixel.DepthScale == 1.0f && ctx->Pixel.DepthBias == 0.0f && !srcPacking->SwapBytes) { /* simple path */ @@ -2948,41 +2929,53 @@ _mesa_texstore_z24_s8(TEXSTORE_PARAMS) srcWidth, srcHeight, srcDepth, srcFormat, srcType, srcAddr, srcPacking); } - else { - /* general path */ - const GLint srcRowStride - = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat, srcType) - / sizeof(GLuint); - GLint img, row; - + else if (srcFormat == GL_DEPTH_COMPONENT) { + /* In case we only upload depth we need to preserve the stencil */ for (img = 0; img < srcDepth; img++) { - GLuint *dstRow = (GLuint *) dstAddr + GLuint *dstRow = (GLuint *) dstAddr + dstImageOffsets[dstZoffset + img] + dstYoffset * dstRowStride / sizeof(GLuint) + dstXoffset; const GLuint *src = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, - srcWidth, srcHeight, - srcFormat, srcType, - img, 0, 0); + srcWidth, srcHeight, + srcFormat, srcType, + img, 0, 0); for (row = 0; row < srcHeight; row++) { - GLubyte stencil[MAX_WIDTH]; + GLuint depth[MAX_WIDTH]; + GLubyte stencil[MAX_WIDTH]; GLint i; - /* the 24 depth bits will be in the high position: */ - _mesa_unpack_depth_span(ctx, srcWidth, - GL_UNSIGNED_INT_24_8_EXT, /* dst type */ - dstRow, /* dst addr */ - depthScale, - srcType, src, srcPacking); - /* get the 8-bit stencil values */ - _mesa_unpack_stencil_span(ctx, srcWidth, - GL_UNSIGNED_BYTE, /* dst type */ - stencil, /* dst addr */ - srcType, src, srcPacking, - ctx->_ImageTransferState); - /* merge stencil values into depth values */ - for (i = 0; i < srcWidth; i++) - dstRow[i] |= stencil[i]; + GLboolean keepdepth = GL_FALSE, keepstencil = GL_FALSE; + + if (srcFormat == GL_DEPTH_COMPONENT) { /* preserve stencil */ + keepstencil = GL_TRUE; + } + else if (srcFormat == GL_STENCIL_INDEX) { /* preserve depth */ + keepdepth = GL_TRUE; + } + + if (keepdepth == GL_FALSE) + /* the 24 depth bits will be in the low position: */ + _mesa_unpack_depth_span(ctx, srcWidth, + GL_UNSIGNED_INT, /* dst type */ + keepstencil ? depth : dstRow, /* dst addr */ + depthScale, + srcType, src, srcPacking); + + if (keepstencil == GL_FALSE) + /* get the 8-bit stencil values */ + _mesa_unpack_stencil_span(ctx, srcWidth, + GL_UNSIGNED_BYTE, /* dst type */ + stencil, /* dst addr */ + srcType, src, srcPacking, + ctx->_ImageTransferState); + + for (i = 0; i < srcWidth; i++) { + if (keepstencil) + dstRow[i] = depth[i] << 8 | (dstRow[i] & 0x000000FF); + else + dstRow[i] = (dstRow[i] & 0xFFFFFF00) | (stencil[i] & 0xFF); + } src += srcRowStride; dstRow += dstRowStride / sizeof(GLuint); @@ -3006,58 +2999,108 @@ _mesa_texstore_s8_z24(TEXSTORE_PARAMS) GLint img, row; ASSERT(dstFormat == MESA_FORMAT_S8_Z24); - ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT || srcFormat == GL_DEPTH_COMPONENT); - ASSERT(srcFormat != GL_DEPTH_STENCIL_EXT || srcType == GL_UNSIGNED_INT_24_8_EXT); + ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT || + srcFormat == GL_DEPTH_COMPONENT || + srcFormat == GL_STENCIL_INDEX); + ASSERT(srcFormat != GL_DEPTH_STENCIL_EXT || + srcType == GL_UNSIGNED_INT_24_8_EXT); - /* In case we only upload depth we need to preserve the stencil */ - if (srcFormat == GL_DEPTH_COMPONENT) { - for (img = 0; img < srcDepth; img++) { - GLuint *dstRow = (GLuint *) dstAddr - + dstImageOffsets[dstZoffset + img] - + dstYoffset * dstRowStride / sizeof(GLuint) - + dstXoffset; - const GLuint *src - = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, - srcWidth, srcHeight, - srcFormat, srcType, - img, 0, 0); - for (row = 0; row < srcHeight; row++) { - GLuint depth[MAX_WIDTH]; - GLint i; - _mesa_unpack_depth_span(ctx, srcWidth, - GL_UNSIGNED_INT, /* dst type */ - depth, /* dst addr */ - depthScale, - srcType, src, srcPacking); + for (img = 0; img < srcDepth; img++) { + GLuint *dstRow = (GLuint *) dstAddr + + dstImageOffsets[dstZoffset + img] + + dstYoffset * dstRowStride / sizeof(GLuint) + + dstXoffset; + const GLuint *src + = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, + srcWidth, srcHeight, + srcFormat, srcType, + img, 0, 0); + for (row = 0; row < srcHeight; row++) { + GLuint depth[MAX_WIDTH]; + GLubyte stencil[MAX_WIDTH]; + GLint i; + GLboolean keepdepth = GL_FALSE, keepstencil = GL_FALSE; + + if (srcFormat == GL_DEPTH_COMPONENT) { /* preserve stencil */ + keepstencil = GL_TRUE; + } + else if (srcFormat == GL_STENCIL_INDEX) { /* preserve depth */ + keepdepth = GL_TRUE; + } - for (i = 0; i < srcWidth; i++) - dstRow[i] = depth[i] | (dstRow[i] & 0xFF000000); + if (keepdepth == GL_FALSE) + /* the 24 depth bits will be in the low position: */ + _mesa_unpack_depth_span(ctx, srcWidth, + GL_UNSIGNED_INT, /* dst type */ + keepstencil ? depth : dstRow, /* dst addr */ + depthScale, + srcType, src, srcPacking); + + if (keepstencil == GL_FALSE) + /* get the 8-bit stencil values */ + _mesa_unpack_stencil_span(ctx, srcWidth, + GL_UNSIGNED_BYTE, /* dst type */ + stencil, /* dst addr */ + srcType, src, srcPacking, + ctx->_ImageTransferState); + + /* merge stencil values into depth values */ + for (i = 0; i < srcWidth; i++) { + if (keepstencil) + dstRow[i] = depth[i] | (dstRow[i] & 0xFF000000); + else + dstRow[i] = (dstRow[i] & 0xFFFFFF) | (stencil[i] << 24); - src += srcRowStride; - dstRow += dstRowStride / sizeof(GLuint); - } + } + src += srcRowStride; + dstRow += dstRowStride / sizeof(GLuint); } } + return GL_TRUE; +} + + +/** + * Store simple 8-bit/value stencil texture data. + */ +static GLboolean +_mesa_texstore_s8(TEXSTORE_PARAMS) +{ + ASSERT(dstFormat == MESA_FORMAT_S8); + ASSERT(srcFormat == GL_STENCIL_INDEX); + + if (!ctx->_ImageTransferState && + !srcPacking->SwapBytes && + baseInternalFormat == srcFormat && + srcType == GL_UNSIGNED_BYTE) { + /* simple memcpy path */ + memcpy_texture(ctx, dims, + dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset, + dstRowStride, + dstImageOffsets, + srcWidth, srcHeight, srcDepth, srcFormat, srcType, + srcAddr, srcPacking); + } else { + const GLint srcRowStride + = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat, srcType) + / sizeof(GLuint); + GLint img, row; + for (img = 0; img < srcDepth; img++) { - GLuint *dstRow = (GLuint *) dstAddr + GLubyte *dstRow = (GLubyte *) dstAddr + dstImageOffsets[dstZoffset + img] + dstYoffset * dstRowStride / sizeof(GLuint) + dstXoffset; const GLuint *src = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, - srcWidth, srcHeight, - srcFormat, srcType, - img, 0, 0); + srcWidth, srcHeight, + srcFormat, srcType, + img, 0, 0); for (row = 0; row < srcHeight; row++) { GLubyte stencil[MAX_WIDTH]; GLint i; - /* the 24 depth bits will be in the low position: */ - _mesa_unpack_depth_span(ctx, srcWidth, - GL_UNSIGNED_INT, /* dst type */ - dstRow, /* dst addr */ - depthScale, - srcType, src, srcPacking); + /* get the 8-bit stencil values */ _mesa_unpack_stencil_span(ctx, srcWidth, GL_UNSIGNED_BYTE, /* dst type */ @@ -3066,16 +3109,19 @@ _mesa_texstore_s8_z24(TEXSTORE_PARAMS) ctx->_ImageTransferState); /* merge stencil values into depth values */ for (i = 0; i < srcWidth; i++) - dstRow[i] |= stencil[i] << 24; + dstRow[i] = stencil[i]; src += srcRowStride; - dstRow += dstRowStride / sizeof(GLuint); + dstRow += dstRowStride / sizeof(GLubyte); } } + } + return GL_TRUE; } + /** * Store an image in any of the formats: * _mesa_texformat_rgba_float32 @@ -3150,6 +3196,7 @@ _mesa_texstore_rgba_float32(TEXSTORE_PARAMS) } + /** * As above, but store 16-bit floats. */ @@ -3613,12 +3660,12 @@ _mesa_texstore_srgb8(TEXSTORE_PARAMS) newDstFormat = MESA_FORMAT_RGB888; k = _mesa_texstore_rgb888(ctx, dims, baseInternalFormat, - newDstFormat, dstAddr, - dstXoffset, dstYoffset, dstZoffset, - dstRowStride, dstImageOffsets, - srcWidth, srcHeight, srcDepth, - srcFormat, srcType, - srcAddr, srcPacking); + newDstFormat, dstAddr, + dstXoffset, dstYoffset, dstZoffset, + dstRowStride, dstImageOffsets, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, + srcAddr, srcPacking); return k; } @@ -3724,7 +3771,7 @@ _mesa_texstore_sla8(TEXSTORE_PARAMS) /** - * Table mapping MESA_FORMAT_8 to _mesa_texstore_*() + * Table mapping MESA_FORMAT_* to _mesa_texstore_*() * XXX this is somewhat temporary. */ static const struct { @@ -3772,7 +3819,7 @@ texstore_funcs[MESA_FORMAT_COUNT] = { MESA_FORMAT_X8_Z24, _mesa_texstore_x8_z24 }, { MESA_FORMAT_Z24_X8, _mesa_texstore_z24_x8 }, { MESA_FORMAT_Z32, _mesa_texstore_z32 }, - { MESA_FORMAT_S8, NULL/*_mesa_texstore_s8*/ }, + { MESA_FORMAT_S8, _mesa_texstore_s8 }, { MESA_FORMAT_SRGB8, _mesa_texstore_srgb8 }, { MESA_FORMAT_SRGBA8, _mesa_texstore_srgba8 }, { MESA_FORMAT_SARGB8, _mesa_texstore_sargb8 }, @@ -3894,7 +3941,7 @@ _mesa_texstore(TEXSTORE_PARAMS) * The caller _must_ call _mesa_unmap_teximage_pbo() too! */ const GLvoid * -_mesa_validate_pbo_teximage(GLcontext *ctx, GLuint dimensions, +_mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *unpack, @@ -3931,7 +3978,7 @@ _mesa_validate_pbo_teximage(GLcontext *ctx, GLuint dimensions, * The caller _must_ call _mesa_unmap_teximage_pbo() too! */ const GLvoid * -_mesa_validate_pbo_compressed_teximage(GLcontext *ctx, +_mesa_validate_pbo_compressed_teximage(struct gl_context *ctx, GLsizei imageSize, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, const char *funcName) @@ -3965,7 +4012,7 @@ _mesa_validate_pbo_compressed_teximage(GLcontext *ctx, * functions. It unmaps the PBO buffer if it was mapped earlier. */ void -_mesa_unmap_teximage_pbo(GLcontext *ctx, +_mesa_unmap_teximage_pbo(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack) { if (_mesa_is_bufferobj(unpack->BufferObj)) { @@ -4002,7 +4049,7 @@ texture_row_stride(const struct gl_texture_image *texImage) * \sa _mesa_store_teximage2d() */ void -_mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -4056,7 +4103,7 @@ _mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level, * than VRAM. Device driver's can easily plug in their own replacement. */ void -_mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const void *pixels, @@ -4109,7 +4156,7 @@ _mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level, * \sa _mesa_store_teximage2d() */ void -_mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const void *pixels, @@ -4162,7 +4209,7 @@ _mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level, * and Driver.CopyTexSubImage1D(). */ void -_mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint width, GLenum format, GLenum type, const void *pixels, const struct gl_pixelstore_attrib *packing, @@ -4200,7 +4247,7 @@ _mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level, * and Driver.CopyTexSubImage2D(). */ void -_mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint width, GLint height, GLenum format, GLenum type, const void *pixels, @@ -4238,7 +4285,7 @@ _mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level, * and Driver.CopyTexSubImage3D(). */ void -_mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, GLenum format, GLenum type, const void *pixels, @@ -4276,7 +4323,7 @@ _mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level, * Fallback for Driver.CompressedTexImage1D() */ void -_mesa_store_compressed_teximage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLsizei imageSize, const GLvoid *data, @@ -4299,7 +4346,7 @@ _mesa_store_compressed_teximage1d(GLcontext *ctx, GLenum target, GLint level, * Fallback for Driver.CompressedTexImage2D() */ void -_mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -4343,7 +4390,7 @@ _mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level, * Fallback for Driver.CompressedTexImage3D() */ void -_mesa_store_compressed_teximage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, @@ -4368,7 +4415,7 @@ _mesa_store_compressed_teximage3d(GLcontext *ctx, GLenum target, GLint level, * Fallback for Driver.CompressedTexSubImage1D() */ void -_mesa_store_compressed_texsubimage1d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -4391,7 +4438,7 @@ _mesa_store_compressed_texsubimage1d(GLcontext *ctx, GLenum target, * Fallback for Driver.CompressedTexSubImage2D() */ void -_mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, @@ -4452,7 +4499,7 @@ _mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, * Fallback for Driver.CompressedTexSubImage3D() */ void -_mesa_store_compressed_texsubimage3d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, diff --git a/src/mesa/main/texstore.h b/src/mesa/main/texstore.h index 3211086dd63..177ede423f5 100644 --- a/src/mesa/main/texstore.h +++ b/src/mesa/main/texstore.h @@ -56,7 +56,7 @@ * \param srcPacking source image packing parameters */ #define TEXSTORE_PARAMS \ - GLcontext *ctx, GLuint dims, \ + struct gl_context *ctx, GLuint dims, \ GLenum baseInternalFormat, \ gl_format dstFormat, \ GLvoid *dstAddr, \ @@ -73,7 +73,7 @@ _mesa_texstore(TEXSTORE_PARAMS); extern GLchan * -_mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, +_mesa_make_temp_chan_image(struct gl_context *ctx, GLuint dims, GLenum logicalBaseFormat, GLenum textureBaseFormat, GLint srcWidth, GLint srcHeight, GLint srcDepth, @@ -83,7 +83,7 @@ _mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, extern void -_mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -93,7 +93,7 @@ _mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -103,7 +103,7 @@ _mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -113,7 +113,7 @@ _mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, @@ -122,7 +122,7 @@ _mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint width, GLint height, GLenum format, GLenum type, const GLvoid *pixels, @@ -132,7 +132,7 @@ _mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, GLenum format, GLenum type, const GLvoid *pixels, @@ -142,7 +142,7 @@ _mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_compressed_teximage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLsizei imageSize, const GLvoid *data, @@ -150,7 +150,7 @@ _mesa_store_compressed_teximage1d(GLcontext *ctx, GLenum target, GLint level, struct gl_texture_image *texImage); extern void -_mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -158,7 +158,7 @@ _mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level, struct gl_texture_image *texImage); extern void -_mesa_store_compressed_teximage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, @@ -168,7 +168,7 @@ _mesa_store_compressed_teximage3d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_compressed_texsubimage1d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -177,7 +177,7 @@ _mesa_store_compressed_texsubimage1d(GLcontext *ctx, GLenum target, struct gl_texture_image *texImage); extern void -_mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, @@ -187,7 +187,7 @@ _mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, struct gl_texture_image *texImage); extern void -_mesa_store_compressed_texsubimage3d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, @@ -198,20 +198,20 @@ _mesa_store_compressed_texsubimage3d(GLcontext *ctx, GLenum target, extern const GLvoid * -_mesa_validate_pbo_teximage(GLcontext *ctx, GLuint dimensions, +_mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *unpack, const char *funcName); extern const GLvoid * -_mesa_validate_pbo_compressed_teximage(GLcontext *ctx, +_mesa_validate_pbo_compressed_teximage(struct gl_context *ctx, GLsizei imageSize, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, const char *funcName); extern void -_mesa_unmap_teximage_pbo(GLcontext *ctx, +_mesa_unmap_teximage_pbo(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack); diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c index 5c8c1fd225f..d297b5ed712 100644 --- a/src/mesa/main/transformfeedback.c +++ b/src/mesa/main/transformfeedback.c @@ -95,7 +95,7 @@ reference_transform_feedback_object(struct gl_transform_feedback_object **ptr, * \return GL_TRUE if the mode is OK, GL_FALSE otherwise. */ GLboolean -_mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode) +_mesa_validate_primitive_mode(struct gl_context *ctx, GLenum mode) { if (ctx->TransformFeedback.CurrentObject->Active) { switch (mode) { @@ -120,7 +120,7 @@ _mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode) * \return GL_TRUE for success, GL_FALSE if error */ GLboolean -_mesa_validate_transform_feedback_buffers(GLcontext *ctx) +_mesa_validate_transform_feedback_buffers(struct gl_context *ctx) { /* XXX to do */ return GL_TRUE; @@ -132,7 +132,7 @@ _mesa_validate_transform_feedback_buffers(GLcontext *ctx) * Per-context init for transform feedback. */ void -_mesa_init_transform_feedback(GLcontext *ctx) +_mesa_init_transform_feedback(struct gl_context *ctx) { /* core mesa expects this, even a dummy one, to be available */ ASSERT(ctx->Driver.NewTransformFeedback); @@ -162,7 +162,7 @@ _mesa_init_transform_feedback(GLcontext *ctx) static void delete_cb(GLuint key, void *data, void *userData) { - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; struct gl_transform_feedback_object *obj = (struct gl_transform_feedback_object *) data; @@ -174,7 +174,7 @@ delete_cb(GLuint key, void *data, void *userData) * Per-context free/clean-up for transform feedback. */ void -_mesa_free_transform_feedback(GLcontext *ctx) +_mesa_free_transform_feedback(struct gl_context *ctx) { /* core mesa expects this, even a dummy one, to be available */ ASSERT(ctx->Driver.NewTransformFeedback); @@ -200,15 +200,15 @@ _mesa_free_transform_feedback(GLcontext *ctx) /* forward declarations */ static struct gl_transform_feedback_object * -new_transform_feedback(GLcontext *ctx, GLuint name); +new_transform_feedback(struct gl_context *ctx, GLuint name); static void -delete_transform_feedback(GLcontext *ctx, +delete_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj); /* dummy per-context init/clean-up for transform feedback */ void -_mesa_init_transform_feedback(GLcontext *ctx) +_mesa_init_transform_feedback(struct gl_context *ctx) { ctx->TransformFeedback.DefaultObject = new_transform_feedback(ctx, 0); ctx->TransformFeedback.CurrentObject = ctx->TransformFeedback.DefaultObject; @@ -218,7 +218,7 @@ _mesa_init_transform_feedback(GLcontext *ctx) } void -_mesa_free_transform_feedback(GLcontext *ctx) +_mesa_free_transform_feedback(struct gl_context *ctx) { _mesa_reference_buffer_object(ctx, &ctx->TransformFeedback.CurrentBuffer, @@ -232,7 +232,7 @@ _mesa_free_transform_feedback(GLcontext *ctx) /** Default fallback for ctx->Driver.NewTransformFeedback() */ static struct gl_transform_feedback_object * -new_transform_feedback(GLcontext *ctx, GLuint name) +new_transform_feedback(struct gl_context *ctx, GLuint name) { struct gl_transform_feedback_object *obj; obj = CALLOC_STRUCT(gl_transform_feedback_object); @@ -245,7 +245,7 @@ new_transform_feedback(GLcontext *ctx, GLuint name) /** Default fallback for ctx->Driver.DeleteTransformFeedback() */ static void -delete_transform_feedback(GLcontext *ctx, +delete_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { GLuint i; @@ -263,7 +263,7 @@ delete_transform_feedback(GLcontext *ctx, /** Default fallback for ctx->Driver.BeginTransformFeedback() */ static void -begin_transform_feedback(GLcontext *ctx, GLenum mode, +begin_transform_feedback(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj) { /* nop */ @@ -271,7 +271,7 @@ begin_transform_feedback(GLcontext *ctx, GLenum mode, /** Default fallback for ctx->Driver.EndTransformFeedback() */ static void -end_transform_feedback(GLcontext *ctx, +end_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* nop */ @@ -279,7 +279,7 @@ end_transform_feedback(GLcontext *ctx, /** Default fallback for ctx->Driver.PauseTransformFeedback() */ static void -pause_transform_feedback(GLcontext *ctx, +pause_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* nop */ @@ -287,7 +287,7 @@ pause_transform_feedback(GLcontext *ctx, /** Default fallback for ctx->Driver.ResumeTransformFeedback() */ static void -resume_transform_feedback(GLcontext *ctx, +resume_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* nop */ @@ -295,7 +295,7 @@ resume_transform_feedback(GLcontext *ctx, /** Default fallback for ctx->Driver.DrawTransformFeedback() */ static void -draw_transform_feedback(GLcontext *ctx, GLenum mode, +draw_transform_feedback(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj) { /* XXX to do */ @@ -399,7 +399,7 @@ _mesa_EndTransformFeedback(void) * Helper used by BindBufferRange() and BindBufferBase(). */ static void -bind_buffer_range(GLcontext *ctx, GLuint index, +bind_buffer_range(struct gl_context *ctx, GLuint index, struct gl_buffer_object *bufObj, GLintptr offset, GLsizeiptr size) { @@ -698,7 +698,7 @@ _mesa_GetTransformFeedbackVarying(GLuint program, GLuint index, static struct gl_transform_feedback_object * -lookup_transform_feedback_object(GLcontext *ctx, GLuint name) +lookup_transform_feedback_object(struct gl_context *ctx, GLuint name) { if (name == 0) { return ctx->TransformFeedback.DefaultObject; diff --git a/src/mesa/main/transformfeedback.h b/src/mesa/main/transformfeedback.h index 4d38522d6d9..752cd4e201f 100644 --- a/src/mesa/main/transformfeedback.h +++ b/src/mesa/main/transformfeedback.h @@ -29,18 +29,18 @@ extern void -_mesa_init_transform_feedback(GLcontext *ctx); +_mesa_init_transform_feedback(struct gl_context *ctx); extern void -_mesa_free_transform_feedback(GLcontext *ctx); +_mesa_free_transform_feedback(struct gl_context *ctx); #if FEATURE_EXT_transform_feedback extern GLboolean -_mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode); +_mesa_validate_primitive_mode(struct gl_context *ctx, GLenum mode); extern GLboolean -_mesa_validate_transform_feedback_buffers(GLcontext *ctx); +_mesa_validate_transform_feedback_buffers(struct gl_context *ctx); extern void @@ -106,13 +106,13 @@ _mesa_DrawTransformFeedback(GLenum mode, GLuint name); #else /* FEATURE_EXT_transform_feedback */ static INLINE GLboolean -_mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode) +_mesa_validate_primitive_mode(struct gl_context *ctx, GLenum mode) { return GL_TRUE; } static INLINE GLboolean -_mesa_validate_transform_feedback_buffers(GLcontext *ctx) +_mesa_validate_transform_feedback_buffers(struct gl_context *ctx) { return GL_TRUE; } diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c index 87ce6e49388..b5bae0337b2 100644 --- a/src/mesa/main/uniforms.c +++ b/src/mesa/main/uniforms.c @@ -384,7 +384,7 @@ get_uniform_parameter(const struct gl_shader_program *shProg, GLuint index) * Called by glGetActiveUniform(). */ static void -_mesa_get_active_uniform(GLcontext *ctx, GLuint program, GLuint index, +_mesa_get_active_uniform(struct gl_context *ctx, GLuint program, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLchar *nameOut) { @@ -527,7 +527,7 @@ get_uniform_rows_cols(const struct gl_program_parameter *p, * to the shader program and return the program parameter position. */ static void -lookup_uniform_parameter(GLcontext *ctx, GLuint program, GLint location, +lookup_uniform_parameter(struct gl_context *ctx, GLuint program, GLint location, struct gl_program **progOut, GLint *paramPosOut) { struct gl_shader_program *shProg @@ -620,7 +620,7 @@ split_location_offset(GLint *location, GLint *offset) * Called via glGetUniformfv(). */ static void -_mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location, +_mesa_get_uniformfv(struct gl_context *ctx, GLuint program, GLint location, GLfloat *params) { struct gl_program *prog; @@ -653,7 +653,7 @@ _mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location, * \sa _mesa_get_uniformfv, only difference is a cast. */ static void -_mesa_get_uniformiv(GLcontext *ctx, GLuint program, GLint location, +_mesa_get_uniformiv(struct gl_context *ctx, GLuint program, GLint location, GLint *params) { struct gl_program *prog; @@ -688,7 +688,7 @@ _mesa_get_uniformiv(GLcontext *ctx, GLuint program, GLint location, * offset (used for arrays, structs). */ GLint -_mesa_get_uniform_location(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_get_uniform_location(struct gl_context *ctx, struct gl_shader_program *shProg, const GLchar *name) { GLint offset = 0, location = -1; @@ -837,7 +837,7 @@ compatible_types(GLenum userType, GLenum targetType) * \param values the new values, of datatype 'type' */ static void -set_program_uniform(GLcontext *ctx, struct gl_program *program, +set_program_uniform(struct gl_context *ctx, struct gl_program *program, GLint index, GLint offset, GLenum type, GLsizei count, GLint elems, const void *values) @@ -980,7 +980,7 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, * Called via glUniform*() functions. */ void -_mesa_uniform(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg, GLint location, GLsizei count, const GLvoid *values, GLenum type) { @@ -1084,7 +1084,7 @@ _mesa_uniform(GLcontext *ctx, struct gl_shader_program *shProg, * Set a matrix-valued program parameter. */ static void -set_program_uniform_matrix(GLcontext *ctx, struct gl_program *program, +set_program_uniform_matrix(struct gl_context *ctx, struct gl_program *program, GLuint index, GLuint offset, GLuint count, GLuint rows, GLuint cols, GLboolean transpose, const GLfloat *values) @@ -1152,7 +1152,7 @@ set_program_uniform_matrix(GLcontext *ctx, struct gl_program *program, * Note: cols=2, rows=4 ==> array[2] of vec4 */ void -_mesa_uniform_matrix(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_uniform_matrix(struct gl_context *ctx, struct gl_shader_program *shProg, GLint cols, GLint rows, GLint location, GLsizei count, GLboolean transpose, const GLfloat *values) @@ -1227,7 +1227,7 @@ void GLAPIENTRY _mesa_Uniform1fARB(GLint location, GLfloat v0) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, &v0, GL_FLOAT); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, &v0, GL_FLOAT); } void GLAPIENTRY @@ -1237,7 +1237,7 @@ _mesa_Uniform2fARB(GLint location, GLfloat v0, GLfloat v1) GLfloat v[2]; v[0] = v0; v[1] = v1; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_FLOAT_VEC2); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_FLOAT_VEC2); } void GLAPIENTRY @@ -1248,7 +1248,7 @@ _mesa_Uniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) v[0] = v0; v[1] = v1; v[2] = v2; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_FLOAT_VEC3); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_FLOAT_VEC3); } void GLAPIENTRY @@ -1261,14 +1261,14 @@ _mesa_Uniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, v[1] = v1; v[2] = v2; v[3] = v3; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_FLOAT_VEC4); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_FLOAT_VEC4); } void GLAPIENTRY _mesa_Uniform1iARB(GLint location, GLint v0) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, &v0, GL_INT); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, &v0, GL_INT); } void GLAPIENTRY @@ -1278,7 +1278,7 @@ _mesa_Uniform2iARB(GLint location, GLint v0, GLint v1) GLint v[2]; v[0] = v0; v[1] = v1; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_INT_VEC2); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_INT_VEC2); } void GLAPIENTRY @@ -1289,7 +1289,7 @@ _mesa_Uniform3iARB(GLint location, GLint v0, GLint v1, GLint v2) v[0] = v0; v[1] = v1; v[2] = v2; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_INT_VEC3); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_INT_VEC3); } void GLAPIENTRY @@ -1301,63 +1301,63 @@ _mesa_Uniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) v[1] = v1; v[2] = v2; v[3] = v3; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_INT_VEC4); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_INT_VEC4); } void GLAPIENTRY _mesa_Uniform1fvARB(GLint location, GLsizei count, const GLfloat * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_FLOAT); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_FLOAT); } void GLAPIENTRY _mesa_Uniform2fvARB(GLint location, GLsizei count, const GLfloat * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_FLOAT_VEC2); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_FLOAT_VEC2); } void GLAPIENTRY _mesa_Uniform3fvARB(GLint location, GLsizei count, const GLfloat * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_FLOAT_VEC3); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_FLOAT_VEC3); } void GLAPIENTRY _mesa_Uniform4fvARB(GLint location, GLsizei count, const GLfloat * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_FLOAT_VEC4); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_FLOAT_VEC4); } void GLAPIENTRY _mesa_Uniform1ivARB(GLint location, GLsizei count, const GLint * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_INT); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_INT); } void GLAPIENTRY _mesa_Uniform2ivARB(GLint location, GLsizei count, const GLint * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_INT_VEC2); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_INT_VEC2); } void GLAPIENTRY _mesa_Uniform3ivARB(GLint location, GLsizei count, const GLint * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_INT_VEC3); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_INT_VEC3); } void GLAPIENTRY _mesa_Uniform4ivARB(GLint location, GLsizei count, const GLint * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_INT_VEC4); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_INT_VEC4); } @@ -1366,7 +1366,7 @@ void GLAPIENTRY _mesa_Uniform1ui(GLint location, GLuint v0) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, &v0, GL_UNSIGNED_INT); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, &v0, GL_UNSIGNED_INT); } void GLAPIENTRY @@ -1376,7 +1376,7 @@ _mesa_Uniform2ui(GLint location, GLuint v0, GLuint v1) GLuint v[2]; v[0] = v0; v[1] = v1; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_UNSIGNED_INT_VEC2); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_UNSIGNED_INT_VEC2); } void GLAPIENTRY @@ -1387,7 +1387,7 @@ _mesa_Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2) v[0] = v0; v[1] = v1; v[2] = v2; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_UNSIGNED_INT_VEC3); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_UNSIGNED_INT_VEC3); } void GLAPIENTRY @@ -1399,35 +1399,35 @@ _mesa_Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) v[1] = v1; v[2] = v2; v[3] = v3; - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, 1, v, GL_UNSIGNED_INT_VEC4); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, 1, v, GL_UNSIGNED_INT_VEC4); } void GLAPIENTRY _mesa_Uniform1uiv(GLint location, GLsizei count, const GLuint *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_UNSIGNED_INT); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_UNSIGNED_INT); } void GLAPIENTRY _mesa_Uniform2uiv(GLint location, GLsizei count, const GLuint *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_UNSIGNED_INT_VEC2); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_UNSIGNED_INT_VEC2); } void GLAPIENTRY _mesa_Uniform3uiv(GLint location, GLsizei count, const GLuint *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_UNSIGNED_INT_VEC3); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_UNSIGNED_INT_VEC3); } void GLAPIENTRY _mesa_Uniform4uiv(GLint location, GLsizei count, const GLuint *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform(ctx, ctx->Shader.CurrentProgram, location, count, value, GL_UNSIGNED_INT_VEC4); + _mesa_uniform(ctx, ctx->Shader.ActiveProgram, location, count, value, GL_UNSIGNED_INT_VEC4); } @@ -1437,7 +1437,7 @@ _mesa_UniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 2, 2, location, count, transpose, value); } @@ -1446,7 +1446,7 @@ _mesa_UniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 3, 3, location, count, transpose, value); } @@ -1455,7 +1455,7 @@ _mesa_UniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 4, 4, location, count, transpose, value); } @@ -1468,7 +1468,7 @@ _mesa_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 2, 3, location, count, transpose, value); } @@ -1477,7 +1477,7 @@ _mesa_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 3, 2, location, count, transpose, value); } @@ -1486,7 +1486,7 @@ _mesa_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 2, 4, location, count, transpose, value); } @@ -1495,7 +1495,7 @@ _mesa_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 4, 2, location, count, transpose, value); } @@ -1504,7 +1504,7 @@ _mesa_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 3, 4, location, count, transpose, value); } @@ -1513,7 +1513,7 @@ _mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { GET_CURRENT_CONTEXT(ctx); - _mesa_uniform_matrix(ctx, ctx->Shader.CurrentProgram, + _mesa_uniform_matrix(ctx, ctx->Shader.ActiveProgram, 4, 3, location, count, transpose, value); } diff --git a/src/mesa/main/uniforms.h b/src/mesa/main/uniforms.h index ac2cf30d97e..64474363051 100644 --- a/src/mesa/main/uniforms.h +++ b/src/mesa/main/uniforms.h @@ -152,16 +152,16 @@ extern GLint GLAPIENTRY _mesa_GetUniformLocationARB(GLhandleARB, const GLcharARB *); GLint -_mesa_get_uniform_location(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_get_uniform_location(struct gl_context *ctx, struct gl_shader_program *shProg, const GLchar *name); void -_mesa_uniform(GLcontext *ctx, struct gl_shader_program *shader_program, +_mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shader_program, GLint location, GLsizei count, const GLvoid *values, GLenum type); void -_mesa_uniform_matrix(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_uniform_matrix(struct gl_context *ctx, struct gl_shader_program *shProg, GLint cols, GLint rows, GLint location, GLsizei count, GLboolean transpose, const GLfloat *values); diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index d19de7ff62a..56749355cdf 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -54,7 +54,7 @@ * \param ptr the address (or offset inside VBO) of the array data */ static void -update_array(GLcontext *ctx, struct gl_client_array *array, +update_array(struct gl_context *ctx, struct gl_client_array *array, GLbitfield dirtyBit, GLsizei elementSize, GLint size, GLenum type, GLenum format, GLsizei stride, GLboolean normalized, const GLvoid *ptr) @@ -778,7 +778,7 @@ _mesa_DisableVertexAttribArrayARB(GLuint index) * not handle the 4-element GL_CURRENT_VERTEX_ATTRIB_ARB query. */ static GLuint -get_vertex_array_attrib(GLcontext *ctx, GLuint index, GLenum pname, +get_vertex_array_attrib(struct gl_context *ctx, GLuint index, GLenum pname, const char *caller) { const struct gl_client_array *array; @@ -1315,15 +1315,16 @@ _mesa_MultiModeDrawElementsIBM( const GLenum * mode, const GLsizei * count, /** - * GL 3.1 glPrimitiveRestartIndex(). + * GL_NV_primitive_restart and GL 3.1 */ void GLAPIENTRY _mesa_PrimitiveRestartIndex(GLuint index) { GET_CURRENT_CONTEXT(ctx); - if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { - _mesa_error(ctx, GL_INVALID_OPERATION, "glPrimitiveRestartIndex()"); + if (!ctx->Extensions.NV_primitive_restart && + ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { + _mesa_error(ctx, GL_INVALID_OPERATION, "glPrimitiveRestartIndexNV()"); return; } @@ -1339,7 +1340,7 @@ _mesa_PrimitiveRestartIndex(GLuint index) * Copy one client vertex array to another. */ void -_mesa_copy_client_array(GLcontext *ctx, +_mesa_copy_client_array(struct gl_context *ctx, struct gl_client_array *dst, struct gl_client_array *src) { @@ -1380,7 +1381,7 @@ print_array(const char *name, GLint index, const struct gl_client_array *array) * Print current vertex object/array info. For debug. */ void -_mesa_print_arrays(GLcontext *ctx) +_mesa_print_arrays(struct gl_context *ctx) { struct gl_array_object *arrayObj = ctx->Array.ArrayObj; GLuint i; @@ -1408,7 +1409,7 @@ _mesa_print_arrays(GLcontext *ctx) * Initialize vertex array state for given context. */ void -_mesa_init_varray(GLcontext *ctx) +_mesa_init_varray(struct gl_context *ctx) { ctx->Array.DefaultArrayObj = _mesa_new_array_object(ctx, 0); _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, @@ -1426,7 +1427,7 @@ static void delete_arrayobj_cb(GLuint id, void *data, void *userData) { struct gl_array_object *arrayObj = (struct gl_array_object *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; _mesa_delete_array_object(ctx, arrayObj); } @@ -1435,7 +1436,7 @@ delete_arrayobj_cb(GLuint id, void *data, void *userData) * Free vertex array state for given context. */ void -_mesa_free_varray_data(GLcontext *ctx) +_mesa_free_varray_data(struct gl_context *ctx) { _mesa_HashDeleteAll(ctx->Array.Objects, delete_arrayobj_cb, ctx); _mesa_DeleteHashTable(ctx->Array.Objects); diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h index c7c3e3ec70c..a5fa33fa00e 100644 --- a/src/mesa/main/varray.h +++ b/src/mesa/main/varray.h @@ -216,19 +216,19 @@ _mesa_PrimitiveRestartIndex(GLuint index); extern void -_mesa_copy_client_array(GLcontext *ctx, +_mesa_copy_client_array(struct gl_context *ctx, struct gl_client_array *dst, struct gl_client_array *src); extern void -_mesa_print_arrays(GLcontext *ctx); +_mesa_print_arrays(struct gl_context *ctx); extern void -_mesa_init_varray( GLcontext * ctx ); +_mesa_init_varray( struct gl_context * ctx ); extern void -_mesa_free_varray_data(GLcontext *ctx); +_mesa_free_varray_data(struct gl_context *ctx); #else diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c index 692e8733c60..69a28da84c6 100644 --- a/src/mesa/main/version.c +++ b/src/mesa/main/version.c @@ -32,7 +32,7 @@ * Return major and minor version numbers. */ static void -compute_version(GLcontext *ctx) +compute_version(struct gl_context *ctx) { GLuint major, minor; static const int max = 100; @@ -187,7 +187,7 @@ compute_version(GLcontext *ctx) } static void -compute_version_es1(GLcontext *ctx) +compute_version_es1(struct gl_context *ctx) { static const int max = 100; @@ -223,7 +223,7 @@ compute_version_es1(GLcontext *ctx) } static void -compute_version_es2(GLcontext *ctx) +compute_version_es2(struct gl_context *ctx) { static const int max = 100; @@ -264,7 +264,7 @@ compute_version_es2(GLcontext *ctx) * or to perform version check for GLX_ARB_create_context_profile. */ void -_mesa_compute_version(GLcontext *ctx) +_mesa_compute_version(struct gl_context *ctx) { if (ctx->VersionMajor) return; diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h index 004036de98d..6552a3a7843 100644 --- a/src/mesa/main/version.h +++ b/src/mesa/main/version.h @@ -54,7 +54,7 @@ extern void -_mesa_compute_version(GLcontext *ctx); +_mesa_compute_version(struct gl_context *ctx); #endif /* VERSION_H */ diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c index 309308c983b..4747022d0b4 100644 --- a/src/mesa/main/viewport.c +++ b/src/mesa/main/viewport.c @@ -60,7 +60,7 @@ _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height) * \param height height of the viewport rectangle. */ void -_mesa_set_viewport(GLcontext *ctx, GLint x, GLint y, +_mesa_set_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) { if (MESA_VERBOSE & VERBOSE_API) @@ -151,7 +151,7 @@ _mesa_DepthRange(GLclampd nearval, GLclampd farval) * Initialize the context viewport attribute group. * \param ctx the GL context. */ -void _mesa_init_viewport(GLcontext *ctx) +void _mesa_init_viewport(struct gl_context *ctx) { GLfloat depthMax = 65535.0F; /* sorf of arbitrary */ @@ -173,7 +173,7 @@ void _mesa_init_viewport(GLcontext *ctx) * Free the context viewport attribute group data. * \param ctx the GL context. */ -void _mesa_free_viewport_data(GLcontext *ctx) +void _mesa_free_viewport_data(struct gl_context *ctx) { _math_matrix_dtr(&ctx->Viewport._WindowMap); } diff --git a/src/mesa/main/viewport.h b/src/mesa/main/viewport.h index ec054a7c597..ccfa37588b8 100644 --- a/src/mesa/main/viewport.h +++ b/src/mesa/main/viewport.h @@ -35,7 +35,7 @@ _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height); extern void -_mesa_set_viewport(GLcontext *ctx, GLint x, GLint y, +_mesa_set_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height); @@ -44,11 +44,11 @@ _mesa_DepthRange(GLclampd nearval, GLclampd farval); extern void -_mesa_init_viewport(GLcontext *ctx); +_mesa_init_viewport(struct gl_context *ctx); extern void -_mesa_free_viewport_data(GLcontext *ctx); +_mesa_free_viewport_data(struct gl_context *ctx); #endif diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c index ca352e88e6b..9236bf81a20 100644 --- a/src/mesa/main/vtxfmt.c +++ b/src/mesa/main/vtxfmt.c @@ -34,51 +34,11 @@ #include "vtxfmt.h" #include "eval.h" #include "dlist.h" +#include "main/dispatch.h" #if FEATURE_beginend - -/* The neutral vertex format. This wraps all tnl module functions, - * verifying that the currently-installed module is valid and then - * installing the function pointers in a lazy fashion. It records the - * function pointers that have been swapped out, which allows a fast - * restoration of the neutral module in almost all cases -- a typical - * app might only require 4-6 functions to be modified from the neutral - * baseline, and only restoring these is certainly preferable to doing - * the entire module's 60 or so function pointers. - */ - -#define PRE_LOOPBACK( FUNC ) \ -{ \ - GET_CURRENT_CONTEXT(ctx); \ - struct gl_tnl_module * const tnl = &(ctx->TnlModule); \ - const int tmp_offset = _gloffset_ ## FUNC ; \ - \ - ASSERT( tnl->Current ); \ - ASSERT( tnl->SwapCount < NUM_VERTEX_FORMAT_ENTRIES ); \ - ASSERT( tmp_offset >= 0 ); \ - \ - if (tnl->SwapCount == 0) \ - ctx->Driver.BeginVertices( ctx ); \ - \ - /* Save the swapped function's dispatch entry so it can be */ \ - /* restored later. */ \ - tnl->Swapped[tnl->SwapCount].location = & (((_glapi_proc *)ctx->Exec)[tmp_offset]); \ - tnl->Swapped[tnl->SwapCount].function = (_glapi_proc)TAG(FUNC); \ - tnl->SwapCount++; \ - \ - if ( 0 ) \ - _mesa_debug(ctx, " swapping gl" #FUNC"...\n" ); \ - \ - /* Install the tnl function pointer. */ \ - SET_ ## FUNC(ctx->Exec, tnl->Current->FUNC); \ -} - -#define TAG(x) neutral_##x -#include "vtxfmt_tmp.h" - - /** * Use the per-vertex functions found in <vfmt> to initialze the given * API dispatch table. @@ -132,7 +92,10 @@ install_vtxfmt( struct _glapi_table *tab, const GLvertexformat *vfmt ) SET_Begin(tab, vfmt->Begin); SET_End(tab, vfmt->End); + SET_PrimitiveRestartNV(tab, vfmt->PrimitiveRestartNV); + SET_Rectf(tab, vfmt->Rectf); + SET_DrawArrays(tab, vfmt->DrawArrays); SET_DrawElements(tab, vfmt->DrawElements); SET_DrawRangeElements(tab, vfmt->DrawRangeElements); @@ -165,38 +128,17 @@ install_vtxfmt( struct _glapi_table *tab, const GLvertexformat *vfmt ) } -void _mesa_init_exec_vtxfmt( GLcontext *ctx ) +void _mesa_install_exec_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ) { - install_vtxfmt( ctx->Exec, &neutral_vtxfmt ); - ctx->TnlModule.SwapCount = 0; + if (ctx->API == API_OPENGL) + install_vtxfmt( ctx->Exec, vfmt ); } -void _mesa_install_exec_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ) +void _mesa_install_save_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ) { - ctx->TnlModule.Current = vfmt; - _mesa_restore_exec_vtxfmt( ctx ); -} - - -void _mesa_install_save_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ) -{ - install_vtxfmt( ctx->Save, vfmt ); -} - - -void _mesa_restore_exec_vtxfmt( GLcontext *ctx ) -{ - struct gl_tnl_module *tnl = &(ctx->TnlModule); - GLuint i; - - /* Restore the neutral tnl module wrapper. - */ - for ( i = 0 ; i < tnl->SwapCount ; i++ ) { - *(tnl->Swapped[i].location) = tnl->Swapped[i].function; - } - - tnl->SwapCount = 0; + if (ctx->API == API_OPENGL) + install_vtxfmt( ctx->Save, vfmt ); } diff --git a/src/mesa/main/vtxfmt.h b/src/mesa/main/vtxfmt.h index aad38b87c35..147385cee96 100644 --- a/src/mesa/main/vtxfmt.h +++ b/src/mesa/main/vtxfmt.h @@ -38,32 +38,18 @@ #if FEATURE_beginend -extern void _mesa_init_exec_vtxfmt( GLcontext *ctx ); - -extern void _mesa_install_exec_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ); -extern void _mesa_install_save_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ); - -extern void _mesa_restore_exec_vtxfmt( GLcontext *ctx ); +extern void _mesa_install_exec_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ); +extern void _mesa_install_save_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ); #else /* FEATURE_beginend */ static INLINE void -_mesa_init_exec_vtxfmt( GLcontext *ctx ) -{ -} - -static INLINE void -_mesa_install_exec_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ) -{ -} - -static INLINE void -_mesa_install_save_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ) +_mesa_install_exec_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ) { } static INLINE void -_mesa_restore_exec_vtxfmt( GLcontext *ctx ) +_mesa_install_save_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ) { } diff --git a/src/mesa/main/vtxfmt_tmp.h b/src/mesa/main/vtxfmt_tmp.h deleted file mode 100644 index 9ec6ea49aa2..00000000000 --- a/src/mesa/main/vtxfmt_tmp.h +++ /dev/null @@ -1,603 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.3 - * - * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: - * Gareth Hughes - */ - -#ifndef PRE_LOOPBACK -#define PRE_LOOPBACK( FUNC ) -#endif - -#include "main/dispatch.h" - -static void GLAPIENTRY TAG(ArrayElement)( GLint i ) -{ - PRE_LOOPBACK( ArrayElement ); - CALL_ArrayElement(GET_DISPATCH(), ( i )); -} - -static void GLAPIENTRY TAG(Color3f)( GLfloat r, GLfloat g, GLfloat b ) -{ - PRE_LOOPBACK( Color3f ); - CALL_Color3f(GET_DISPATCH(), ( r, g, b )); -} - -static void GLAPIENTRY TAG(Color3fv)( const GLfloat *v ) -{ - PRE_LOOPBACK( Color3fv ); - CALL_Color3fv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(Color4f)( GLfloat r, GLfloat g, GLfloat b, GLfloat a ) -{ - PRE_LOOPBACK( Color4f ); - CALL_Color4f(GET_DISPATCH(), ( r, g, b, a )); -} - -static void GLAPIENTRY TAG(Color4fv)( const GLfloat *v ) -{ - PRE_LOOPBACK( Color4fv ); - CALL_Color4fv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(EdgeFlag)( GLboolean e ) -{ - PRE_LOOPBACK( EdgeFlag ); - CALL_EdgeFlag(GET_DISPATCH(), ( e )); -} - -static void GLAPIENTRY TAG(EvalCoord1f)( GLfloat s ) -{ - PRE_LOOPBACK( EvalCoord1f ); - CALL_EvalCoord1f(GET_DISPATCH(), ( s )); -} - -static void GLAPIENTRY TAG(EvalCoord1fv)( const GLfloat *v ) -{ - PRE_LOOPBACK( EvalCoord1fv ); - CALL_EvalCoord1fv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(EvalCoord2f)( GLfloat s, GLfloat t ) -{ - PRE_LOOPBACK( EvalCoord2f ); - CALL_EvalCoord2f(GET_DISPATCH(), ( s, t )); -} - -static void GLAPIENTRY TAG(EvalCoord2fv)( const GLfloat *v ) -{ - PRE_LOOPBACK( EvalCoord2fv ); - CALL_EvalCoord2fv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(EvalPoint1)( GLint i ) -{ - PRE_LOOPBACK( EvalPoint1 ); - CALL_EvalPoint1(GET_DISPATCH(), ( i )); -} - -static void GLAPIENTRY TAG(EvalPoint2)( GLint i, GLint j ) -{ - PRE_LOOPBACK( EvalPoint2 ); - CALL_EvalPoint2(GET_DISPATCH(), ( i, j )); -} - -static void GLAPIENTRY TAG(FogCoordfEXT)( GLfloat f ) -{ - PRE_LOOPBACK( FogCoordfEXT ); - CALL_FogCoordfEXT(GET_DISPATCH(), ( f )); -} - -static void GLAPIENTRY TAG(FogCoordfvEXT)( const GLfloat *v ) -{ - PRE_LOOPBACK( FogCoordfvEXT ); - CALL_FogCoordfvEXT(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(Indexf)( GLfloat f ) -{ - PRE_LOOPBACK( Indexf ); - CALL_Indexf(GET_DISPATCH(), ( f )); -} - -static void GLAPIENTRY TAG(Indexfv)( const GLfloat *v ) -{ - PRE_LOOPBACK( Indexfv ); - CALL_Indexfv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(Materialfv)( GLenum face, GLenum pname, const GLfloat *v ) -{ - PRE_LOOPBACK( Materialfv ); - CALL_Materialfv(GET_DISPATCH(), ( face, pname, v )); -} - -static void GLAPIENTRY TAG(MultiTexCoord1fARB)( GLenum target, GLfloat a ) -{ - PRE_LOOPBACK( MultiTexCoord1fARB ); - CALL_MultiTexCoord1fARB(GET_DISPATCH(), ( target, a )); -} - -static void GLAPIENTRY TAG(MultiTexCoord1fvARB)( GLenum target, const GLfloat *tc ) -{ - PRE_LOOPBACK( MultiTexCoord1fvARB ); - CALL_MultiTexCoord1fvARB(GET_DISPATCH(), ( target, tc )); -} - -static void GLAPIENTRY TAG(MultiTexCoord2fARB)( GLenum target, GLfloat s, GLfloat t ) -{ - PRE_LOOPBACK( MultiTexCoord2fARB ); - CALL_MultiTexCoord2fARB(GET_DISPATCH(), ( target, s, t )); -} - -static void GLAPIENTRY TAG(MultiTexCoord2fvARB)( GLenum target, const GLfloat *tc ) -{ - PRE_LOOPBACK( MultiTexCoord2fvARB ); - CALL_MultiTexCoord2fvARB(GET_DISPATCH(), ( target, tc )); -} - -static void GLAPIENTRY TAG(MultiTexCoord3fARB)( GLenum target, GLfloat s, - GLfloat t, GLfloat r ) -{ - PRE_LOOPBACK( MultiTexCoord3fARB ); - CALL_MultiTexCoord3fARB(GET_DISPATCH(), ( target, s, t, r )); -} - -static void GLAPIENTRY TAG(MultiTexCoord3fvARB)( GLenum target, const GLfloat *tc ) -{ - PRE_LOOPBACK( MultiTexCoord3fvARB ); - CALL_MultiTexCoord3fvARB(GET_DISPATCH(), ( target, tc )); -} - -static void GLAPIENTRY TAG(MultiTexCoord4fARB)( GLenum target, GLfloat s, - GLfloat t, GLfloat r, GLfloat q ) -{ - PRE_LOOPBACK( MultiTexCoord4fARB ); - CALL_MultiTexCoord4fARB(GET_DISPATCH(), ( target, s, t, r, q )); -} - -static void GLAPIENTRY TAG(MultiTexCoord4fvARB)( GLenum target, const GLfloat *tc ) -{ - PRE_LOOPBACK( MultiTexCoord4fvARB ); - CALL_MultiTexCoord4fvARB(GET_DISPATCH(), ( target, tc )); -} - -static void GLAPIENTRY TAG(Normal3f)( GLfloat x, GLfloat y, GLfloat z ) -{ - PRE_LOOPBACK( Normal3f ); - CALL_Normal3f(GET_DISPATCH(), ( x, y, z )); -} - -static void GLAPIENTRY TAG(Normal3fv)( const GLfloat *v ) -{ - PRE_LOOPBACK( Normal3fv ); - CALL_Normal3fv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(SecondaryColor3fEXT)( GLfloat r, GLfloat g, GLfloat b ) -{ - PRE_LOOPBACK( SecondaryColor3fEXT ); - CALL_SecondaryColor3fEXT(GET_DISPATCH(), ( r, g, b )); -} - -static void GLAPIENTRY TAG(SecondaryColor3fvEXT)( const GLfloat *v ) -{ - PRE_LOOPBACK( SecondaryColor3fvEXT ); - CALL_SecondaryColor3fvEXT(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(TexCoord1f)( GLfloat s ) -{ - PRE_LOOPBACK( TexCoord1f ); - CALL_TexCoord1f(GET_DISPATCH(), ( s )); -} - -static void GLAPIENTRY TAG(TexCoord1fv)( const GLfloat *tc ) -{ - PRE_LOOPBACK( TexCoord1fv ); - CALL_TexCoord1fv(GET_DISPATCH(), ( tc )); -} - -static void GLAPIENTRY TAG(TexCoord2f)( GLfloat s, GLfloat t ) -{ - PRE_LOOPBACK( TexCoord2f ); - CALL_TexCoord2f(GET_DISPATCH(), ( s, t )); -} - -static void GLAPIENTRY TAG(TexCoord2fv)( const GLfloat *tc ) -{ - PRE_LOOPBACK( TexCoord2fv ); - CALL_TexCoord2fv(GET_DISPATCH(), ( tc )); -} - -static void GLAPIENTRY TAG(TexCoord3f)( GLfloat s, GLfloat t, GLfloat r ) -{ - PRE_LOOPBACK( TexCoord3f ); - CALL_TexCoord3f(GET_DISPATCH(), ( s, t, r )); -} - -static void GLAPIENTRY TAG(TexCoord3fv)( const GLfloat *tc ) -{ - PRE_LOOPBACK( TexCoord3fv ); - CALL_TexCoord3fv(GET_DISPATCH(), ( tc )); -} - -static void GLAPIENTRY TAG(TexCoord4f)( GLfloat s, GLfloat t, GLfloat r, GLfloat q ) -{ - PRE_LOOPBACK( TexCoord4f ); - CALL_TexCoord4f(GET_DISPATCH(), ( s, t, r, q )); -} - -static void GLAPIENTRY TAG(TexCoord4fv)( const GLfloat *tc ) -{ - PRE_LOOPBACK( TexCoord4fv ); - CALL_TexCoord4fv(GET_DISPATCH(), ( tc )); -} - -static void GLAPIENTRY TAG(Vertex2f)( GLfloat x, GLfloat y ) -{ - PRE_LOOPBACK( Vertex2f ); - CALL_Vertex2f(GET_DISPATCH(), ( x, y )); -} - -static void GLAPIENTRY TAG(Vertex2fv)( const GLfloat *v ) -{ - PRE_LOOPBACK( Vertex2fv ); - CALL_Vertex2fv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(Vertex3f)( GLfloat x, GLfloat y, GLfloat z ) -{ - PRE_LOOPBACK( Vertex3f ); - CALL_Vertex3f(GET_DISPATCH(), ( x, y, z )); -} - -static void GLAPIENTRY TAG(Vertex3fv)( const GLfloat *v ) -{ - PRE_LOOPBACK( Vertex3fv ); - CALL_Vertex3fv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(Vertex4f)( GLfloat x, GLfloat y, GLfloat z, GLfloat w ) -{ - PRE_LOOPBACK( Vertex4f ); - CALL_Vertex4f(GET_DISPATCH(), ( x, y, z, w )); -} - -static void GLAPIENTRY TAG(Vertex4fv)( const GLfloat *v ) -{ - PRE_LOOPBACK( Vertex4fv ); - CALL_Vertex4fv(GET_DISPATCH(), ( v )); -} - -static void GLAPIENTRY TAG(CallList)( GLuint i ) -{ - PRE_LOOPBACK( CallList ); - CALL_CallList(GET_DISPATCH(), ( i )); -} - -static void GLAPIENTRY TAG(CallLists)( GLsizei sz, GLenum type, const GLvoid *v ) -{ - PRE_LOOPBACK( CallLists ); - CALL_CallLists(GET_DISPATCH(), ( sz, type, v )); -} - -static void GLAPIENTRY TAG(Begin)( GLenum mode ) -{ - PRE_LOOPBACK( Begin ); - CALL_Begin(GET_DISPATCH(), ( mode )); -} - -static void GLAPIENTRY TAG(End)( void ) -{ - PRE_LOOPBACK( End ); - CALL_End(GET_DISPATCH(), ()); -} - -static void GLAPIENTRY TAG(Rectf)( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ) -{ - PRE_LOOPBACK( Rectf ); - CALL_Rectf(GET_DISPATCH(), ( x1, y1, x2, y2 )); -} - -static void GLAPIENTRY TAG(DrawArrays)( GLenum mode, GLint start, GLsizei count ) -{ - PRE_LOOPBACK( DrawArrays ); - CALL_DrawArrays(GET_DISPATCH(), ( mode, start, count )); -} - -static void GLAPIENTRY TAG(DrawElements)( GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices ) -{ - PRE_LOOPBACK( DrawElements ); - CALL_DrawElements(GET_DISPATCH(), ( mode, count, type, indices )); -} - -static void GLAPIENTRY TAG(MultiDrawElementsEXT)( GLenum mode, - const GLsizei *count, - GLenum type, - const GLvoid **indices, - GLsizei primcount) -{ - PRE_LOOPBACK( MultiDrawElementsEXT ); - CALL_MultiDrawElementsEXT(GET_DISPATCH(), ( mode, count, type, indices, - primcount )); -} - -static void GLAPIENTRY TAG(DrawRangeElements)( GLenum mode, GLuint start, - GLuint end, GLsizei count, - GLenum type, const GLvoid *indices ) -{ - PRE_LOOPBACK( DrawRangeElements ); - CALL_DrawRangeElements(GET_DISPATCH(), ( mode, start, end, count, type, indices )); -} - -static void GLAPIENTRY TAG(DrawElementsBaseVertex)( GLenum mode, - GLsizei count, - GLenum type, - const GLvoid *indices, - GLint basevertex) -{ - PRE_LOOPBACK( DrawElementsBaseVertex ); - CALL_DrawElementsBaseVertex(GET_DISPATCH(), ( mode, count, type, - indices, basevertex )); -} - -static void GLAPIENTRY TAG(DrawRangeElementsBaseVertex)( GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const GLvoid *indices, - GLint basevertex) -{ - PRE_LOOPBACK( DrawRangeElementsBaseVertex ); - CALL_DrawRangeElementsBaseVertex(GET_DISPATCH(), ( mode, start, end, - count, type, indices, - basevertex )); -} - -static void GLAPIENTRY TAG(MultiDrawElementsBaseVertex)( GLenum mode, - const GLsizei *count, - GLenum type, - const GLvoid **indices, - GLsizei primcount, - const GLint *basevertex) -{ - PRE_LOOPBACK( MultiDrawElementsBaseVertex ); - CALL_MultiDrawElementsBaseVertex(GET_DISPATCH(), ( mode, count, type, - indices, - primcount, basevertex )); -} - -static void GLAPIENTRY -TAG(DrawArraysInstanced)(GLenum mode, GLint first, - GLsizei count, GLsizei primcount) -{ - PRE_LOOPBACK( DrawArraysInstanced ); - CALL_DrawArraysInstanced(GET_DISPATCH(), (mode, first, count, primcount)); -} - -static void GLAPIENTRY -TAG(DrawElementsInstanced)(GLenum mode, GLsizei count, - GLenum type, const GLvoid *indices, - GLsizei primcount) -{ - PRE_LOOPBACK( DrawElementsInstanced ); - CALL_DrawElementsInstanced(GET_DISPATCH(), - (mode, count, type, indices, primcount)); -} - - -static void GLAPIENTRY TAG(EvalMesh1)( GLenum mode, GLint i1, GLint i2 ) -{ - PRE_LOOPBACK( EvalMesh1 ); - CALL_EvalMesh1(GET_DISPATCH(), ( mode, i1, i2 )); -} - -static void GLAPIENTRY TAG(EvalMesh2)( GLenum mode, GLint i1, GLint i2, - GLint j1, GLint j2 ) -{ - PRE_LOOPBACK( EvalMesh2 ); - CALL_EvalMesh2(GET_DISPATCH(), ( mode, i1, i2, j1, j2 )); -} - -static void GLAPIENTRY TAG(VertexAttrib1fNV)( GLuint index, GLfloat x ) -{ - PRE_LOOPBACK( VertexAttrib1fNV ); - CALL_VertexAttrib1fNV(GET_DISPATCH(), ( index, x )); -} - -static void GLAPIENTRY TAG(VertexAttrib1fvNV)( GLuint index, const GLfloat *v ) -{ - PRE_LOOPBACK( VertexAttrib1fvNV ); - CALL_VertexAttrib1fvNV(GET_DISPATCH(), ( index, v )); -} - -static void GLAPIENTRY TAG(VertexAttrib2fNV)( GLuint index, GLfloat x, GLfloat y ) -{ - PRE_LOOPBACK( VertexAttrib2fNV ); - CALL_VertexAttrib2fNV(GET_DISPATCH(), ( index, x, y )); -} - -static void GLAPIENTRY TAG(VertexAttrib2fvNV)( GLuint index, const GLfloat *v ) -{ - PRE_LOOPBACK( VertexAttrib2fvNV ); - CALL_VertexAttrib2fvNV(GET_DISPATCH(), ( index, v )); -} - -static void GLAPIENTRY TAG(VertexAttrib3fNV)( GLuint index, GLfloat x, GLfloat y, GLfloat z ) -{ - PRE_LOOPBACK( VertexAttrib3fNV ); - CALL_VertexAttrib3fNV(GET_DISPATCH(), ( index, x, y, z )); -} - -static void GLAPIENTRY TAG(VertexAttrib3fvNV)( GLuint index, const GLfloat *v ) -{ - PRE_LOOPBACK( VertexAttrib3fvNV ); - CALL_VertexAttrib3fvNV(GET_DISPATCH(), ( index, v )); -} - -static void GLAPIENTRY TAG(VertexAttrib4fNV)( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) -{ - PRE_LOOPBACK( VertexAttrib4fNV ); - CALL_VertexAttrib4fNV(GET_DISPATCH(), ( index, x, y, z, w )); -} - -static void GLAPIENTRY TAG(VertexAttrib4fvNV)( GLuint index, const GLfloat *v ) -{ - PRE_LOOPBACK( VertexAttrib4fvNV ); - CALL_VertexAttrib4fvNV(GET_DISPATCH(), ( index, v )); -} - - -static void GLAPIENTRY TAG(VertexAttrib1fARB)( GLuint index, GLfloat x ) -{ - PRE_LOOPBACK( VertexAttrib1fARB ); - CALL_VertexAttrib1fARB(GET_DISPATCH(), ( index, x )); -} - -static void GLAPIENTRY TAG(VertexAttrib1fvARB)( GLuint index, const GLfloat *v ) -{ - PRE_LOOPBACK( VertexAttrib1fvARB ); - CALL_VertexAttrib1fvARB(GET_DISPATCH(), ( index, v )); -} - -static void GLAPIENTRY TAG(VertexAttrib2fARB)( GLuint index, GLfloat x, GLfloat y ) -{ - PRE_LOOPBACK( VertexAttrib2fARB ); - CALL_VertexAttrib2fARB(GET_DISPATCH(), ( index, x, y )); -} - -static void GLAPIENTRY TAG(VertexAttrib2fvARB)( GLuint index, const GLfloat *v ) -{ - PRE_LOOPBACK( VertexAttrib2fvARB ); - CALL_VertexAttrib2fvARB(GET_DISPATCH(), ( index, v )); -} - -static void GLAPIENTRY TAG(VertexAttrib3fARB)( GLuint index, GLfloat x, GLfloat y, GLfloat z ) -{ - PRE_LOOPBACK( VertexAttrib3fARB ); - CALL_VertexAttrib3fARB(GET_DISPATCH(), ( index, x, y, z )); -} - -static void GLAPIENTRY TAG(VertexAttrib3fvARB)( GLuint index, const GLfloat *v ) -{ - PRE_LOOPBACK( VertexAttrib3fvARB ); - CALL_VertexAttrib3fvARB(GET_DISPATCH(), ( index, v )); -} - -static void GLAPIENTRY TAG(VertexAttrib4fARB)( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) -{ - PRE_LOOPBACK( VertexAttrib4fARB ); - CALL_VertexAttrib4fARB(GET_DISPATCH(), ( index, x, y, z, w )); -} - -static void GLAPIENTRY TAG(VertexAttrib4fvARB)( GLuint index, const GLfloat *v ) -{ - PRE_LOOPBACK( VertexAttrib4fvARB ); - CALL_VertexAttrib4fvARB(GET_DISPATCH(), ( index, v )); -} - - -static GLvertexformat TAG(vtxfmt) = { - TAG(ArrayElement), - TAG(Color3f), - TAG(Color3fv), - TAG(Color4f), - TAG(Color4fv), - TAG(EdgeFlag), - TAG(EvalCoord1f), - TAG(EvalCoord1fv), - TAG(EvalCoord2f), - TAG(EvalCoord2fv), - TAG(EvalPoint1), - TAG(EvalPoint2), - TAG(FogCoordfEXT), - TAG(FogCoordfvEXT), - TAG(Indexf), - TAG(Indexfv), - TAG(Materialfv), - TAG(MultiTexCoord1fARB), - TAG(MultiTexCoord1fvARB), - TAG(MultiTexCoord2fARB), - TAG(MultiTexCoord2fvARB), - TAG(MultiTexCoord3fARB), - TAG(MultiTexCoord3fvARB), - TAG(MultiTexCoord4fARB), - TAG(MultiTexCoord4fvARB), - TAG(Normal3f), - TAG(Normal3fv), - TAG(SecondaryColor3fEXT), - TAG(SecondaryColor3fvEXT), - TAG(TexCoord1f), - TAG(TexCoord1fv), - TAG(TexCoord2f), - TAG(TexCoord2fv), - TAG(TexCoord3f), - TAG(TexCoord3fv), - TAG(TexCoord4f), - TAG(TexCoord4fv), - TAG(Vertex2f), - TAG(Vertex2fv), - TAG(Vertex3f), - TAG(Vertex3fv), - TAG(Vertex4f), - TAG(Vertex4fv), - TAG(CallList), - TAG(CallLists), - TAG(Begin), - TAG(End), - TAG(VertexAttrib1fNV), - TAG(VertexAttrib1fvNV), - TAG(VertexAttrib2fNV), - TAG(VertexAttrib2fvNV), - TAG(VertexAttrib3fNV), - TAG(VertexAttrib3fvNV), - TAG(VertexAttrib4fNV), - TAG(VertexAttrib4fvNV), - TAG(VertexAttrib1fARB), - TAG(VertexAttrib1fvARB), - TAG(VertexAttrib2fARB), - TAG(VertexAttrib2fvARB), - TAG(VertexAttrib3fARB), - TAG(VertexAttrib3fvARB), - TAG(VertexAttrib4fARB), - TAG(VertexAttrib4fvARB), - TAG(Rectf), - TAG(DrawArrays), - TAG(DrawElements), - TAG(DrawRangeElements), - TAG(MultiDrawElementsEXT), - TAG(DrawElementsBaseVertex), - TAG(DrawRangeElementsBaseVertex), - TAG(MultiDrawElementsBaseVertex), - TAG(DrawArraysInstanced), - TAG(DrawElementsInstanced), - TAG(EvalMesh1), - TAG(EvalMesh2) -}; - -#undef TAG -#undef PRE_LOOPBACK |