aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/api_exec.c18
-rw-r--r--src/mesa/main/api_validate.c10
-rw-r--r--src/mesa/main/arbprogram.c940
-rw-r--r--src/mesa/main/arbprogram.h132
-rw-r--r--src/mesa/main/atifragshader.c794
-rw-r--r--src/mesa/main/atifragshader.h149
-rw-r--r--src/mesa/main/bufferobj.c8
-rw-r--r--src/mesa/main/config.h9
-rw-r--r--src/mesa/main/context.c28
-rw-r--r--src/mesa/main/dd.h54
-rw-r--r--src/mesa/main/depthstencil.c22
-rw-r--r--src/mesa/main/dlist.c10
-rw-r--r--src/mesa/main/enums.c5080
-rw-r--r--src/mesa/main/extensions.c26
-rw-r--r--src/mesa/main/fbobject.c67
-rw-r--r--src/mesa/main/fbobject.h8
-rw-r--r--src/mesa/main/ffvertex_prog.c12
-rw-r--r--src/mesa/main/formats.c92
-rw-r--r--src/mesa/main/formats.h16
-rw-r--r--src/mesa/main/framebuffer.c1
-rw-r--r--src/mesa/main/get.c23
-rw-r--r--src/mesa/main/getstring.c2
-rw-r--r--src/mesa/main/image.c451
-rw-r--r--src/mesa/main/image.h3
-rw-r--r--src/mesa/main/imports.c2
-rw-r--r--src/mesa/main/imports.h36
-rw-r--r--src/mesa/main/macros.h35
-rw-r--r--src/mesa/main/mfeatures.h1
-rw-r--r--src/mesa/main/mtypes.h164
-rw-r--r--src/mesa/main/nvprogram.c917
-rw-r--r--src/mesa/main/nvprogram.h113
-rw-r--r--src/mesa/main/querymatrix.c3
-rw-r--r--src/mesa/main/remap_helper.h3211
-rw-r--r--src/mesa/main/restart.c68
-rw-r--r--src/mesa/main/restart.h40
-rw-r--r--src/mesa/main/shaderapi.c1640
-rw-r--r--src/mesa/main/shaderapi.h169
-rw-r--r--src/mesa/main/shaderobj.c390
-rw-r--r--src/mesa/main/shaderobj.h98
-rw-r--r--src/mesa/main/shaders.c932
-rw-r--r--src/mesa/main/shaders.h274
-rw-r--r--src/mesa/main/shared.c14
-rw-r--r--src/mesa/main/state.c36
-rw-r--r--src/mesa/main/texenvprogram.c31
-rw-r--r--src/mesa/main/texfetch.c50
-rw-r--r--src/mesa/main/texfetch_tmp.h168
-rw-r--r--src/mesa/main/texformat.c47
-rw-r--r--src/mesa/main/teximage.c249
-rw-r--r--src/mesa/main/teximage.h8
-rw-r--r--src/mesa/main/texobj.c2
-rw-r--r--src/mesa/main/texparam.c2
-rw-r--r--src/mesa/main/texstate.c2
-rw-r--r--src/mesa/main/texstore.c394
-rw-r--r--src/mesa/main/transformfeedback.c57
-rw-r--r--src/mesa/main/transformfeedback.h22
-rw-r--r--src/mesa/main/uniforms.c1370
-rw-r--r--src/mesa/main/uniforms.h158
-rw-r--r--src/mesa/main/varray.c4
-rw-r--r--src/mesa/main/version.c66
59 files changed, 13081 insertions, 5647 deletions
diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c
index 06df97dfede..82e1f0fdba5 100644
--- a/src/mesa/main/api_exec.c
+++ b/src/mesa/main/api_exec.c
@@ -34,9 +34,9 @@
#include "api_loopback.h"
#include "api_exec.h"
#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program
-#include "shader/arbprogram.h"
+#include "arbprogram.h"
#endif
-#include "shader/atifragshader.h"
+#include "atifragshader.h"
#include "attrib.h"
#include "blend.h"
#if FEATURE_ARB_vertex_buffer_object
@@ -92,13 +92,14 @@
#include "varray.h"
#include "viewport.h"
#if FEATURE_NV_vertex_program
-#include "shader/nvprogram.h"
+#include "nvprogram.h"
#endif
#if FEATURE_NV_fragment_program
-#include "shader/nvprogram.h"
+#include "nvprogram.h"
#endif
#if FEATURE_ARB_shader_objects
-#include "shaders.h"
+#include "shaderapi.h"
+#include "uniforms.h"
#endif
#if FEATURE_ARB_sync
#include "syncobj.h"
@@ -347,6 +348,7 @@ _mesa_create_exec_table(void)
#if FEATURE_ARB_shader_objects
_mesa_init_shader_dispatch(exec);
+ _mesa_init_shader_uniform_dispatch(exec);
#endif
/* 2. GL_EXT_blend_color */
@@ -731,6 +733,12 @@ _mesa_create_exec_table(void)
SET_GetObjectParameterivAPPLE(exec, _mesa_GetObjectParameterivAPPLE);
#endif
+#if FEATURE_ARB_geometry_shader4
+ SET_FramebufferTextureARB(exec, _mesa_FramebufferTextureARB);
+ SET_FramebufferTextureFaceARB(exec, _mesa_FramebufferTextureFaceARB);
+#endif
+
+
return exec;
}
diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
index 150bc3886cf..b3b5c6cc053 100644
--- a/src/mesa/main/api_validate.c
+++ b/src/mesa/main/api_validate.c
@@ -193,7 +193,7 @@ _mesa_validate_DrawElements(GLcontext *ctx,
return GL_FALSE;
}
- if (mode > GL_POLYGON) {
+ if (mode > GL_TRIANGLE_STRIP_ADJACENCY_ARB) {
_mesa_error(ctx, GL_INVALID_ENUM, "glDrawElements(mode)" );
return GL_FALSE;
}
@@ -250,7 +250,7 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode,
return GL_FALSE;
}
- if (mode > GL_POLYGON) {
+ if (mode > GL_TRIANGLE_STRIP_ADJACENCY_ARB) {
_mesa_error(ctx, GL_INVALID_ENUM, "glDrawRangeElements(mode)" );
return GL_FALSE;
}
@@ -309,7 +309,7 @@ _mesa_validate_DrawArrays(GLcontext *ctx,
return GL_FALSE;
}
- if (mode > GL_POLYGON) {
+ if (mode > GL_TRIANGLE_STRIP_ADJACENCY_ARB) {
_mesa_error(ctx, GL_INVALID_ENUM, "glDrawArrays(mode)" );
return GL_FALSE;
}
@@ -339,7 +339,7 @@ _mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first,
return GL_FALSE;
}
- if (mode > GL_POLYGON) {
+ if (mode > GL_TRIANGLE_STRIP_ADJACENCY_ARB) {
_mesa_error(ctx, GL_INVALID_ENUM,
"glDrawArraysInstanced(mode=0x%x)", mode);
return GL_FALSE;
@@ -384,7 +384,7 @@ _mesa_validate_DrawElementsInstanced(GLcontext *ctx,
return GL_FALSE;
}
- if (mode > GL_POLYGON) {
+ if (mode > GL_TRIANGLE_STRIP_ADJACENCY_ARB) {
_mesa_error(ctx, GL_INVALID_ENUM,
"glDrawElementsInstanced(mode = 0x%x)", mode);
return GL_FALSE;
diff --git a/src/mesa/main/arbprogram.c b/src/mesa/main/arbprogram.c
new file mode 100644
index 00000000000..26d781954ed
--- /dev/null
+++ b/src/mesa/main/arbprogram.c
@@ -0,0 +1,940 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 7.0
+ *
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * \file arbprogram.c
+ * ARB_vertex/fragment_program state management functions.
+ * \author Brian Paul
+ */
+
+
+#include "main/glheader.h"
+#include "main/context.h"
+#include "main/hash.h"
+#include "main/imports.h"
+#include "main/macros.h"
+#include "main/mtypes.h"
+#include "main/arbprogram.h"
+#include "program/arbprogparse.h"
+#include "program/nvfragparse.h"
+#include "program/nvvertparse.h"
+#include "program/program.h"
+
+
+
+/**
+ * Mixing ARB and NV vertex/fragment programs can be tricky.
+ * Note: GL_VERTEX_PROGRAM_ARB == GL_VERTEX_PROGRAM_NV
+ * but, GL_FRAGMENT_PROGRAM_ARB != GL_FRAGMENT_PROGRAM_NV
+ * The two different fragment program targets are supposed to be compatible
+ * to some extent (see GL_ARB_fragment_program spec).
+ * This function does the compatibility check.
+ */
+static GLboolean
+compatible_program_targets(GLenum t1, GLenum t2)
+{
+ if (t1 == t2)
+ return GL_TRUE;
+ if (t1 == GL_FRAGMENT_PROGRAM_ARB && t2 == GL_FRAGMENT_PROGRAM_NV)
+ return GL_TRUE;
+ if (t1 == GL_FRAGMENT_PROGRAM_NV && t2 == GL_FRAGMENT_PROGRAM_ARB)
+ return GL_TRUE;
+ return GL_FALSE;
+}
+
+
+/**
+ * Bind a program (make it current)
+ * \note Called from the GL API dispatcher by both glBindProgramNV
+ * and glBindProgramARB.
+ */
+void GLAPIENTRY
+_mesa_BindProgram(GLenum target, GLuint id)
+{
+ struct gl_program *curProg, *newProg;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ /* Error-check target and get curProg */
+ if ((target == GL_VERTEX_PROGRAM_ARB) && /* == GL_VERTEX_PROGRAM_NV */
+ (ctx->Extensions.NV_vertex_program ||
+ ctx->Extensions.ARB_vertex_program)) {
+ curProg = &ctx->VertexProgram.Current->Base;
+ }
+ else if ((target == GL_FRAGMENT_PROGRAM_NV
+ && ctx->Extensions.NV_fragment_program) ||
+ (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program)) {
+ curProg = &ctx->FragmentProgram.Current->Base;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glBindProgramNV/ARB(target)");
+ return;
+ }
+
+ /*
+ * Get pointer to new program to bind.
+ * NOTE: binding to a non-existant program is not an error.
+ * That's supposed to be caught in glBegin.
+ */
+ if (id == 0) {
+ /* Bind a default program */
+ newProg = NULL;
+ if (target == GL_VERTEX_PROGRAM_ARB) /* == GL_VERTEX_PROGRAM_NV */
+ newProg = &ctx->Shared->DefaultVertexProgram->Base;
+ else
+ newProg = &ctx->Shared->DefaultFragmentProgram->Base;
+ }
+ else {
+ /* Bind a user program */
+ newProg = _mesa_lookup_program(ctx, id);
+ if (!newProg || newProg == &_mesa_DummyProgram) {
+ /* allocate a new program now */
+ newProg = ctx->Driver.NewProgram(ctx, target, id);
+ if (!newProg) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBindProgramNV/ARB");
+ return;
+ }
+ _mesa_HashInsert(ctx->Shared->Programs, id, newProg);
+ }
+ else if (!compatible_program_targets(newProg->Target, target)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBindProgramNV/ARB(target mismatch)");
+ return;
+ }
+ }
+
+ /** All error checking is complete now **/
+
+ if (curProg->Id == id) {
+ /* binding same program - no change */
+ return;
+ }
+
+ /* signal new program (and its new constants) */
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM | _NEW_PROGRAM_CONSTANTS);
+
+ /* bind newProg */
+ if (target == GL_VERTEX_PROGRAM_ARB) { /* == GL_VERTEX_PROGRAM_NV */
+ _mesa_reference_vertprog(ctx, &ctx->VertexProgram.Current,
+ (struct gl_vertex_program *) newProg);
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_NV ||
+ target == GL_FRAGMENT_PROGRAM_ARB) {
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram.Current,
+ (struct gl_fragment_program *) newProg);
+ }
+
+ /* Never null pointers */
+ ASSERT(ctx->VertexProgram.Current);
+ ASSERT(ctx->FragmentProgram.Current);
+
+ if (ctx->Driver.BindProgram)
+ ctx->Driver.BindProgram(ctx, target, newProg);
+}
+
+
+/**
+ * Delete a list of programs.
+ * \note Not compiled into display lists.
+ * \note Called by both glDeleteProgramsNV and glDeleteProgramsARB.
+ */
+void GLAPIENTRY
+_mesa_DeletePrograms(GLsizei n, const GLuint *ids)
+{
+ GLint i;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
+
+ if (n < 0) {
+ _mesa_error( ctx, GL_INVALID_VALUE, "glDeleteProgramsNV" );
+ return;
+ }
+
+ for (i = 0; i < n; i++) {
+ if (ids[i] != 0) {
+ struct gl_program *prog = _mesa_lookup_program(ctx, ids[i]);
+ if (prog == &_mesa_DummyProgram) {
+ _mesa_HashRemove(ctx->Shared->Programs, ids[i]);
+ }
+ else if (prog) {
+ /* Unbind program if necessary */
+ switch (prog->Target) {
+ case GL_VERTEX_PROGRAM_ARB: /* == GL_VERTEX_PROGRAM_NV */
+ case GL_VERTEX_STATE_PROGRAM_NV:
+ if (ctx->VertexProgram.Current &&
+ ctx->VertexProgram.Current->Base.Id == ids[i]) {
+ /* unbind this currently bound program */
+ _mesa_BindProgram(prog->Target, 0);
+ }
+ break;
+ case GL_FRAGMENT_PROGRAM_NV:
+ case GL_FRAGMENT_PROGRAM_ARB:
+ if (ctx->FragmentProgram.Current &&
+ ctx->FragmentProgram.Current->Base.Id == ids[i]) {
+ /* unbind this currently bound program */
+ _mesa_BindProgram(prog->Target, 0);
+ }
+ break;
+ default:
+ _mesa_problem(ctx, "bad target in glDeleteProgramsNV");
+ return;
+ }
+ /* The ID is immediately available for re-use now */
+ _mesa_HashRemove(ctx->Shared->Programs, ids[i]);
+ _mesa_reference_program(ctx, &prog, NULL);
+ }
+ }
+ }
+}
+
+
+/**
+ * Generate a list of new program identifiers.
+ * \note Not compiled into display lists.
+ * \note Called by both glGenProgramsNV and glGenProgramsARB.
+ */
+void GLAPIENTRY
+_mesa_GenPrograms(GLsizei n, GLuint *ids)
+{
+ GLuint first;
+ GLuint i;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (n < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGenPrograms");
+ return;
+ }
+
+ if (!ids)
+ return;
+
+ first = _mesa_HashFindFreeKeyBlock(ctx->Shared->Programs, n);
+
+ /* Insert pointer to dummy program as placeholder */
+ for (i = 0; i < (GLuint) n; i++) {
+ _mesa_HashInsert(ctx->Shared->Programs, first + i, &_mesa_DummyProgram);
+ }
+
+ /* Return the program names */
+ for (i = 0; i < (GLuint) n; i++) {
+ ids[i] = first + i;
+ }
+}
+
+
+/**
+ * Determine if id names a vertex or fragment program.
+ * \note Not compiled into display lists.
+ * \note Called from both glIsProgramNV and glIsProgramARB.
+ * \param id is the program identifier
+ * \return GL_TRUE if id is a program, else GL_FALSE.
+ */
+GLboolean GLAPIENTRY
+_mesa_IsProgramARB(GLuint id)
+{
+ struct gl_program *prog = NULL;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
+
+ if (id == 0)
+ return GL_FALSE;
+
+ prog = _mesa_lookup_program(ctx, id);
+ if (prog && (prog != &_mesa_DummyProgram))
+ return GL_TRUE;
+ else
+ return GL_FALSE;
+}
+
+
+void GLAPIENTRY
+_mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len,
+ const GLvoid *string)
+{
+ struct gl_program *base;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+
+ if (!ctx->Extensions.ARB_vertex_program
+ && !ctx->Extensions.ARB_fragment_program) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glProgramStringARB()");
+ return;
+ }
+
+ if (format != GL_PROGRAM_FORMAT_ASCII_ARB) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramStringARB(format)");
+ return;
+ }
+
+ /* The first couple cases are complicated. The same enum value is used for
+ * ARB and NV vertex programs. If the target is a vertex program, parse it
+ * using the ARB grammar if the string starts with "!!ARB" or if
+ * NV_vertex_program is not supported.
+ */
+ if (target == GL_VERTEX_PROGRAM_ARB
+ && ctx->Extensions.ARB_vertex_program
+ && ((strncmp(string, "!!ARB", 5) == 0)
+ || !ctx->Extensions.NV_vertex_program)) {
+ struct gl_vertex_program *prog = ctx->VertexProgram.Current;
+ _mesa_parse_arb_vertex_program(ctx, target, string, len, prog);
+
+ base = & prog->Base;
+ }
+ else if ((target == GL_VERTEX_PROGRAM_ARB
+ || target == GL_VERTEX_STATE_PROGRAM_NV)
+ && ctx->Extensions.NV_vertex_program) {
+ struct gl_vertex_program *prog = ctx->VertexProgram.Current;
+ _mesa_parse_nv_vertex_program(ctx, target, string, len, prog);
+
+ base = & prog->Base;
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ struct gl_fragment_program *prog = ctx->FragmentProgram.Current;
+ _mesa_parse_arb_fragment_program(ctx, target, string, len, prog);
+
+ base = & prog->Base;
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_NV
+ && ctx->Extensions.NV_fragment_program) {
+ struct gl_fragment_program *prog = ctx->FragmentProgram.Current;
+ _mesa_parse_nv_fragment_program(ctx, target, string, len, prog);
+
+ base = & prog->Base;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramStringARB(target)");
+ return;
+ }
+
+ if (ctx->Program.ErrorPos == -1) {
+ /* finally, give the program to the driver for translation/checking */
+ if (!ctx->Driver.ProgramStringNotify(ctx, target, base)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glProgramStringARB(rejected by driver");
+ }
+ }
+}
+
+
+/**
+ * Set a program env parameter register.
+ * \note Called from the GL API dispatcher.
+ * Note, this function is also used by the GL_NV_vertex_program extension
+ * (alias to ProgramParameterdNV)
+ */
+void GLAPIENTRY
+_mesa_ProgramEnvParameter4dARB(GLenum target, GLuint index,
+ GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ _mesa_ProgramEnvParameter4fARB(target, index, (GLfloat) x, (GLfloat) y,
+ (GLfloat) z, (GLfloat) w);
+}
+
+
+/**
+ * Set a program env parameter register.
+ * \note Called from the GL API dispatcher.
+ * Note, this function is also used by the GL_NV_vertex_program extension
+ * (alias to ProgramParameterdvNV)
+ */
+void GLAPIENTRY
+_mesa_ProgramEnvParameter4dvARB(GLenum target, GLuint index,
+ const GLdouble *params)
+{
+ _mesa_ProgramEnvParameter4fARB(target, index, (GLfloat) params[0],
+ (GLfloat) params[1], (GLfloat) params[2],
+ (GLfloat) params[3]);
+}
+
+
+/**
+ * Set a program env parameter register.
+ * \note Called from the GL API dispatcher.
+ * Note, this function is also used by the GL_NV_vertex_program extension
+ * (alias to ProgramParameterfNV)
+ */
+void GLAPIENTRY
+_mesa_ProgramEnvParameter4fARB(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+
+ if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ if (index >= ctx->Const.FragmentProgram.MaxEnvParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramEnvParameter(index)");
+ return;
+ }
+ ASSIGN_4V(ctx->FragmentProgram.Parameters[index], x, y, z, w);
+ }
+ else if (target == GL_VERTEX_PROGRAM_ARB /* == GL_VERTEX_PROGRAM_NV */
+ && (ctx->Extensions.ARB_vertex_program || ctx->Extensions.NV_vertex_program)) {
+ if (index >= ctx->Const.VertexProgram.MaxEnvParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramEnvParameter(index)");
+ return;
+ }
+ ASSIGN_4V(ctx->VertexProgram.Parameters[index], x, y, z, w);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramEnvParameter(target)");
+ return;
+ }
+}
+
+
+
+/**
+ * Set a program env parameter register.
+ * \note Called from the GL API dispatcher.
+ * Note, this function is also used by the GL_NV_vertex_program extension
+ * (alias to ProgramParameterfvNV)
+ */
+void GLAPIENTRY
+_mesa_ProgramEnvParameter4fvARB(GLenum target, GLuint index,
+ const GLfloat *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+
+ if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ if (index >= ctx->Const.FragmentProgram.MaxEnvParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramEnvParameter4fv(index)");
+ return;
+ }
+ memcpy(ctx->FragmentProgram.Parameters[index], params,
+ 4 * sizeof(GLfloat));
+ }
+ else if (target == GL_VERTEX_PROGRAM_ARB /* == GL_VERTEX_PROGRAM_NV */
+ && (ctx->Extensions.ARB_vertex_program || ctx->Extensions.NV_vertex_program)) {
+ if (index >= ctx->Const.VertexProgram.MaxEnvParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramEnvParameter4fv(index)");
+ return;
+ }
+ memcpy(ctx->VertexProgram.Parameters[index], params,
+ 4 * sizeof(GLfloat));
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramEnvParameter4fv(target)");
+ return;
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_ProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count,
+ const GLfloat *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLfloat * dest;
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+
+ if (count <= 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramEnvParameters4fv(count)");
+ }
+
+ if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ if ((index + count) > ctx->Const.FragmentProgram.MaxEnvParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramEnvParameters4fv(index + count)");
+ return;
+ }
+ dest = ctx->FragmentProgram.Parameters[index];
+ }
+ else if (target == GL_VERTEX_PROGRAM_ARB
+ && ctx->Extensions.ARB_vertex_program) {
+ if ((index + count) > ctx->Const.VertexProgram.MaxEnvParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramEnvParameters4fv(index + count)");
+ return;
+ }
+ dest = ctx->VertexProgram.Parameters[index];
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramEnvParameters4fv(target)");
+ return;
+ }
+
+ memcpy(dest, params, count * 4 * sizeof(GLfloat));
+}
+
+
+void GLAPIENTRY
+_mesa_GetProgramEnvParameterdvARB(GLenum target, GLuint index,
+ GLdouble *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLfloat fparams[4];
+
+ _mesa_GetProgramEnvParameterfvARB(target, index, fparams);
+ if (ctx->ErrorValue == GL_NO_ERROR) {
+ params[0] = fparams[0];
+ params[1] = fparams[1];
+ params[2] = fparams[2];
+ params[3] = fparams[3];
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_GetProgramEnvParameterfvARB(GLenum target, GLuint index,
+ GLfloat *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ if (index >= ctx->Const.FragmentProgram.MaxEnvParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetProgramEnvParameter(index)");
+ return;
+ }
+ COPY_4V(params, ctx->FragmentProgram.Parameters[index]);
+ }
+ else if (target == GL_VERTEX_PROGRAM_ARB
+ && ctx->Extensions.ARB_vertex_program) {
+ if (index >= ctx->Const.VertexProgram.MaxEnvParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetProgramEnvParameter(index)");
+ return;
+ }
+ COPY_4V(params, ctx->VertexProgram.Parameters[index]);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramEnvParameter(target)");
+ return;
+ }
+}
+
+
+/**
+ * Note, this function is also used by the GL_NV_fragment_program extension.
+ */
+void GLAPIENTRY
+_mesa_ProgramLocalParameter4fARB(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct gl_program *prog;
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+
+ if ((target == GL_FRAGMENT_PROGRAM_NV
+ && ctx->Extensions.NV_fragment_program) ||
+ (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program)) {
+ if (index >= ctx->Const.FragmentProgram.MaxLocalParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramLocalParameterARB");
+ return;
+ }
+ prog = &(ctx->FragmentProgram.Current->Base);
+ }
+ else if (target == GL_VERTEX_PROGRAM_ARB
+ && ctx->Extensions.ARB_vertex_program) {
+ if (index >= ctx->Const.VertexProgram.MaxLocalParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramLocalParameterARB");
+ return;
+ }
+ prog = &(ctx->VertexProgram.Current->Base);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramLocalParameterARB");
+ return;
+ }
+
+ ASSERT(index < MAX_PROGRAM_LOCAL_PARAMS);
+ prog->LocalParams[index][0] = x;
+ prog->LocalParams[index][1] = y;
+ prog->LocalParams[index][2] = z;
+ prog->LocalParams[index][3] = w;
+}
+
+
+/**
+ * Note, this function is also used by the GL_NV_fragment_program extension.
+ */
+void GLAPIENTRY
+_mesa_ProgramLocalParameter4fvARB(GLenum target, GLuint index,
+ const GLfloat *params)
+{
+ _mesa_ProgramLocalParameter4fARB(target, index, params[0], params[1],
+ params[2], params[3]);
+}
+
+
+void GLAPIENTRY
+_mesa_ProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count,
+ const GLfloat *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLfloat *dest;
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+
+ if (count <= 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramLocalParameters4fv(count)");
+ }
+
+ if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ if ((index + count) > ctx->Const.FragmentProgram.MaxLocalParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramLocalParameters4fvEXT(index + count)");
+ return;
+ }
+ dest = ctx->FragmentProgram.Current->Base.LocalParams[index];
+ }
+ else if (target == GL_VERTEX_PROGRAM_ARB
+ && ctx->Extensions.ARB_vertex_program) {
+ if ((index + count) > ctx->Const.VertexProgram.MaxLocalParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramLocalParameters4fvEXT(index + count)");
+ return;
+ }
+ dest = ctx->VertexProgram.Current->Base.LocalParams[index];
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramLocalParameters4fvEXT(target)");
+ return;
+ }
+
+ memcpy(dest, params, count * 4 * sizeof(GLfloat));
+}
+
+
+/**
+ * Note, this function is also used by the GL_NV_fragment_program extension.
+ */
+void GLAPIENTRY
+_mesa_ProgramLocalParameter4dARB(GLenum target, GLuint index,
+ GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w)
+{
+ _mesa_ProgramLocalParameter4fARB(target, index, (GLfloat) x, (GLfloat) y,
+ (GLfloat) z, (GLfloat) w);
+}
+
+
+/**
+ * Note, this function is also used by the GL_NV_fragment_program extension.
+ */
+void GLAPIENTRY
+_mesa_ProgramLocalParameter4dvARB(GLenum target, GLuint index,
+ const GLdouble *params)
+{
+ _mesa_ProgramLocalParameter4fARB(target, index,
+ (GLfloat) params[0], (GLfloat) params[1],
+ (GLfloat) params[2], (GLfloat) params[3]);
+}
+
+
+/**
+ * Note, this function is also used by the GL_NV_fragment_program extension.
+ */
+void GLAPIENTRY
+_mesa_GetProgramLocalParameterfvARB(GLenum target, GLuint index,
+ GLfloat *params)
+{
+ const struct gl_program *prog;
+ GLuint maxParams;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_VERTEX_PROGRAM_ARB
+ && ctx->Extensions.ARB_vertex_program) {
+ prog = &(ctx->VertexProgram.Current->Base);
+ maxParams = ctx->Const.VertexProgram.MaxLocalParams;
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ prog = &(ctx->FragmentProgram.Current->Base);
+ maxParams = ctx->Const.FragmentProgram.MaxLocalParams;
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_NV
+ && ctx->Extensions.NV_fragment_program) {
+ prog = &(ctx->FragmentProgram.Current->Base);
+ maxParams = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glGetProgramLocalParameterARB(target)");
+ return;
+ }
+
+ if (index >= maxParams) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetProgramLocalParameterARB(index)");
+ return;
+ }
+
+ ASSERT(prog);
+ ASSERT(index < MAX_PROGRAM_LOCAL_PARAMS);
+ COPY_4V(params, prog->LocalParams[index]);
+}
+
+
+/**
+ * Note, this function is also used by the GL_NV_fragment_program extension.
+ */
+void GLAPIENTRY
+_mesa_GetProgramLocalParameterdvARB(GLenum target, GLuint index,
+ GLdouble *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLfloat floatParams[4];
+ ASSIGN_4V(floatParams, 0.0F, 0.0F, 0.0F, 0.0F);
+ _mesa_GetProgramLocalParameterfvARB(target, index, floatParams);
+ if (ctx->ErrorValue == GL_NO_ERROR) {
+ COPY_4V(params, floatParams);
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_GetProgramivARB(GLenum target, GLenum pname, GLint *params)
+{
+ const struct gl_program_constants *limits;
+ struct gl_program *prog;
+ GET_CURRENT_CONTEXT(ctx);
+
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_VERTEX_PROGRAM_ARB
+ && ctx->Extensions.ARB_vertex_program) {
+ prog = &(ctx->VertexProgram.Current->Base);
+ limits = &ctx->Const.VertexProgram;
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ prog = &(ctx->FragmentProgram.Current->Base);
+ limits = &ctx->Const.FragmentProgram;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramivARB(target)");
+ return;
+ }
+
+ ASSERT(prog);
+ ASSERT(limits);
+
+ /* Queries supported for both vertex and fragment programs */
+ switch (pname) {
+ case GL_PROGRAM_LENGTH_ARB:
+ *params
+ = prog->String ? (GLint) strlen((char *) prog->String) : 0;
+ return;
+ case GL_PROGRAM_FORMAT_ARB:
+ *params = prog->Format;
+ return;
+ case GL_PROGRAM_BINDING_ARB:
+ *params = prog->Id;
+ return;
+ case GL_PROGRAM_INSTRUCTIONS_ARB:
+ *params = prog->NumInstructions;
+ return;
+ case GL_MAX_PROGRAM_INSTRUCTIONS_ARB:
+ *params = limits->MaxInstructions;
+ return;
+ case GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB:
+ *params = prog->NumNativeInstructions;
+ return;
+ case GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB:
+ *params = limits->MaxNativeInstructions;
+ return;
+ case GL_PROGRAM_TEMPORARIES_ARB:
+ *params = prog->NumTemporaries;
+ return;
+ case GL_MAX_PROGRAM_TEMPORARIES_ARB:
+ *params = limits->MaxTemps;
+ return;
+ case GL_PROGRAM_NATIVE_TEMPORARIES_ARB:
+ *params = prog->NumNativeTemporaries;
+ return;
+ case GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB:
+ *params = limits->MaxNativeTemps;
+ return;
+ case GL_PROGRAM_PARAMETERS_ARB:
+ *params = prog->NumParameters;
+ return;
+ case GL_MAX_PROGRAM_PARAMETERS_ARB:
+ *params = limits->MaxParameters;
+ return;
+ case GL_PROGRAM_NATIVE_PARAMETERS_ARB:
+ *params = prog->NumNativeParameters;
+ return;
+ case GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB:
+ *params = limits->MaxNativeParameters;
+ return;
+ case GL_PROGRAM_ATTRIBS_ARB:
+ *params = prog->NumAttributes;
+ return;
+ case GL_MAX_PROGRAM_ATTRIBS_ARB:
+ *params = limits->MaxAttribs;
+ return;
+ case GL_PROGRAM_NATIVE_ATTRIBS_ARB:
+ *params = prog->NumNativeAttributes;
+ return;
+ case GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB:
+ *params = limits->MaxNativeAttribs;
+ return;
+ case GL_PROGRAM_ADDRESS_REGISTERS_ARB:
+ *params = prog->NumAddressRegs;
+ return;
+ case GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB:
+ *params = limits->MaxAddressRegs;
+ return;
+ case GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB:
+ *params = prog->NumNativeAddressRegs;
+ return;
+ case GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB:
+ *params = limits->MaxNativeAddressRegs;
+ return;
+ case GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB:
+ *params = limits->MaxLocalParams;
+ return;
+ case GL_MAX_PROGRAM_ENV_PARAMETERS_ARB:
+ *params = limits->MaxEnvParams;
+ return;
+ case GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB:
+ /*
+ * XXX we may not really need a driver callback here.
+ * If the number of native instructions, registers, etc. used
+ * are all below the maximums, we could return true.
+ * The spec says that even if this query returns true, there's
+ * no guarantee that the program will run in hardware.
+ */
+ if (prog->Id == 0) {
+ /* default/null program */
+ *params = GL_FALSE;
+ }
+ else if (ctx->Driver.IsProgramNative) {
+ /* ask the driver */
+ *params = ctx->Driver.IsProgramNative( ctx, target, prog );
+ }
+ else {
+ /* probably running in software */
+ *params = GL_TRUE;
+ }
+ return;
+ default:
+ /* continue with fragment-program only queries below */
+ break;
+ }
+
+ /*
+ * The following apply to fragment programs only (at this time)
+ */
+ if (target == GL_FRAGMENT_PROGRAM_ARB) {
+ const struct gl_fragment_program *fp = ctx->FragmentProgram.Current;
+ switch (pname) {
+ case GL_PROGRAM_ALU_INSTRUCTIONS_ARB:
+ *params = fp->Base.NumNativeAluInstructions;
+ return;
+ case GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB:
+ *params = fp->Base.NumAluInstructions;
+ return;
+ case GL_PROGRAM_TEX_INSTRUCTIONS_ARB:
+ *params = fp->Base.NumTexInstructions;
+ return;
+ case GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB:
+ *params = fp->Base.NumNativeTexInstructions;
+ return;
+ case GL_PROGRAM_TEX_INDIRECTIONS_ARB:
+ *params = fp->Base.NumTexIndirections;
+ return;
+ case GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB:
+ *params = fp->Base.NumNativeTexIndirections;
+ return;
+ case GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB:
+ *params = limits->MaxAluInstructions;
+ return;
+ case GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB:
+ *params = limits->MaxNativeAluInstructions;
+ return;
+ case GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB:
+ *params = limits->MaxTexInstructions;
+ return;
+ case GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB:
+ *params = limits->MaxNativeTexInstructions;
+ return;
+ case GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB:
+ *params = limits->MaxTexIndirections;
+ return;
+ case GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB:
+ *params = limits->MaxNativeTexIndirections;
+ return;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramivARB(pname)");
+ return;
+ }
+ } else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramivARB(pname)");
+ return;
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_GetProgramStringARB(GLenum target, GLenum pname, GLvoid *string)
+{
+ const struct gl_program *prog;
+ char *dst = (char *) string;
+ GET_CURRENT_CONTEXT(ctx);
+
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_VERTEX_PROGRAM_ARB) {
+ prog = &(ctx->VertexProgram.Current->Base);
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_ARB) {
+ prog = &(ctx->FragmentProgram.Current->Base);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramStringARB(target)");
+ return;
+ }
+
+ ASSERT(prog);
+
+ if (pname != GL_PROGRAM_STRING_ARB) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramStringARB(pname)");
+ return;
+ }
+
+ if (prog->String)
+ memcpy(dst, prog->String, strlen((char *) prog->String));
+ else
+ *dst = '\0';
+}
diff --git a/src/mesa/main/arbprogram.h b/src/mesa/main/arbprogram.h
new file mode 100644
index 00000000000..787ffd62f4b
--- /dev/null
+++ b/src/mesa/main/arbprogram.h
@@ -0,0 +1,132 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 6.5.2
+ *
+ * Copyright (C) 1999-2006 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.
+ */
+
+
+#ifndef ARBPROGRAM_H
+#define ARBPROGRAM_H
+
+
+#include "compiler.h"
+#include "glheader.h"
+
+
+extern void GLAPIENTRY
+_mesa_BindProgram(GLenum target, GLuint id);
+
+extern void GLAPIENTRY
+_mesa_DeletePrograms(GLsizei n, const GLuint *ids);
+
+extern void GLAPIENTRY
+_mesa_GenPrograms(GLsizei n, GLuint *ids);
+
+
+extern GLboolean GLAPIENTRY
+_mesa_IsProgramARB(GLuint id);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len,
+ const GLvoid *string);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramEnvParameter4dARB(GLenum target, GLuint index,
+ GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramEnvParameter4dvARB(GLenum target, GLuint index,
+ const GLdouble *params);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramEnvParameter4fARB(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramEnvParameter4fvARB(GLenum target, GLuint index,
+ const GLfloat *params);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count,
+ const GLfloat *params);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramLocalParameter4dARB(GLenum target, GLuint index,
+ GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramLocalParameter4dvARB(GLenum target, GLuint index,
+ const GLdouble *params);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramLocalParameter4fARB(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramLocalParameter4fvARB(GLenum target, GLuint index,
+ const GLfloat *params);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count,
+ const GLfloat *params);
+
+
+extern void GLAPIENTRY
+_mesa_GetProgramEnvParameterdvARB(GLenum target, GLuint index,
+ GLdouble *params);
+
+
+extern void GLAPIENTRY
+_mesa_GetProgramEnvParameterfvARB(GLenum target, GLuint index,
+ GLfloat *params);
+
+
+extern void GLAPIENTRY
+_mesa_GetProgramLocalParameterdvARB(GLenum target, GLuint index,
+ GLdouble *params);
+
+
+extern void GLAPIENTRY
+_mesa_GetProgramLocalParameterfvARB(GLenum target, GLuint index,
+ GLfloat *params);
+
+
+extern void GLAPIENTRY
+_mesa_GetProgramivARB(GLenum target, GLenum pname, GLint *params);
+
+
+extern void GLAPIENTRY
+_mesa_GetProgramStringARB(GLenum target, GLenum pname, GLvoid *string);
+
+
+#endif
diff --git a/src/mesa/main/atifragshader.c b/src/mesa/main/atifragshader.c
new file mode 100644
index 00000000000..550f50b7a00
--- /dev/null
+++ b/src/mesa/main/atifragshader.c
@@ -0,0 +1,794 @@
+/**
+ * \file atifragshader.c
+ * \author David Airlie
+ * Copyright (C) 2004 David Airlie 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
+ * DAVID AIRLIE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "main/glheader.h"
+#include "main/context.h"
+#include "main/hash.h"
+#include "main/imports.h"
+#include "main/macros.h"
+#include "main/enums.h"
+#include "main/mtypes.h"
+#include "main/dispatch.h"
+#include "main/atifragshader.h"
+
+#if FEATURE_ATI_fragment_shader
+
+#define MESA_DEBUG_ATI_FS 0
+
+static struct ati_fragment_shader DummyShader;
+
+
+void
+_mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp)
+{
+ SET_GenFragmentShadersATI(disp, _mesa_GenFragmentShadersATI);
+ SET_BindFragmentShaderATI(disp, _mesa_BindFragmentShaderATI);
+ SET_DeleteFragmentShaderATI(disp, _mesa_DeleteFragmentShaderATI);
+ SET_BeginFragmentShaderATI(disp, _mesa_BeginFragmentShaderATI);
+ SET_EndFragmentShaderATI(disp, _mesa_EndFragmentShaderATI);
+ SET_PassTexCoordATI(disp, _mesa_PassTexCoordATI);
+ SET_SampleMapATI(disp, _mesa_SampleMapATI);
+ SET_ColorFragmentOp1ATI(disp, _mesa_ColorFragmentOp1ATI);
+ SET_ColorFragmentOp2ATI(disp, _mesa_ColorFragmentOp2ATI);
+ SET_ColorFragmentOp3ATI(disp, _mesa_ColorFragmentOp3ATI);
+ SET_AlphaFragmentOp1ATI(disp, _mesa_AlphaFragmentOp1ATI);
+ SET_AlphaFragmentOp2ATI(disp, _mesa_AlphaFragmentOp2ATI);
+ SET_AlphaFragmentOp3ATI(disp, _mesa_AlphaFragmentOp3ATI);
+ SET_SetFragmentShaderConstantATI(disp, _mesa_SetFragmentShaderConstantATI);
+}
+
+
+/**
+ * Allocate and initialize a new ATI fragment shader object.
+ */
+struct ati_fragment_shader *
+_mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id)
+{
+ struct ati_fragment_shader *s = CALLOC_STRUCT(ati_fragment_shader);
+ (void) ctx;
+ if (s) {
+ s->Id = id;
+ s->RefCount = 1;
+ }
+ return s;
+}
+
+
+/**
+ * Delete the given ati fragment shader
+ */
+void
+_mesa_delete_ati_fragment_shader(GLcontext *ctx, struct ati_fragment_shader *s)
+{
+ GLuint i;
+ for (i = 0; i < MAX_NUM_PASSES_ATI; i++) {
+ if (s->Instructions[i])
+ free(s->Instructions[i]);
+ if (s->SetupInst[i])
+ free(s->SetupInst[i]);
+ }
+ free(s);
+}
+
+
+
+static void
+new_arith_inst(struct ati_fragment_shader *prog)
+{
+/* set "default" instruction as not all may get defined.
+ there is no specified way to express a nop with ati fragment shaders we use
+ GL_NONE as the op enum and just set some params to 0 - so nothing to do here */
+ prog->numArithInstr[prog->cur_pass >> 1]++;
+}
+
+static void
+new_tex_inst(struct ati_fragment_shader *prog)
+{
+}
+
+static void match_pair_inst(struct ati_fragment_shader *curProg, GLuint optype)
+{
+ if (optype == curProg->last_optype) {
+ curProg->last_optype = 1;
+ }
+}
+
+#if MESA_DEBUG_ATI_FS
+static char *
+create_dst_mod_str(GLuint mod)
+{
+ static char ret_str[1024];
+
+ memset(ret_str, 0, 1024);
+ if (mod & GL_2X_BIT_ATI)
+ strncat(ret_str, "|2X", 1024);
+
+ if (mod & GL_4X_BIT_ATI)
+ strncat(ret_str, "|4X", 1024);
+
+ if (mod & GL_8X_BIT_ATI)
+ strncat(ret_str, "|8X", 1024);
+ if (mod & GL_HALF_BIT_ATI)
+ strncat(ret_str, "|HA", 1024);
+ if (mod & GL_QUARTER_BIT_ATI)
+ strncat(ret_str, "|QU", 1024);
+ if (mod & GL_EIGHTH_BIT_ATI)
+ strncat(ret_str, "|EI", 1024);
+
+ if (mod & GL_SATURATE_BIT_ATI)
+ strncat(ret_str, "|SAT", 1024);
+
+ if (strlen(ret_str) == 0)
+ strncat(ret_str, "NONE", 1024);
+ return ret_str;
+}
+
+static char *atifs_ops[] = {"ColorFragmentOp1ATI", "ColorFragmentOp2ATI", "ColorFragmentOp3ATI",
+ "AlphaFragmentOp1ATI", "AlphaFragmentOp2ATI", "AlphaFragmentOp3ATI" };
+
+static void debug_op(GLint optype, GLuint arg_count, GLenum op, GLuint dst,
+ GLuint dstMask, GLuint dstMod, GLuint arg1,
+ GLuint arg1Rep, GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod, GLuint arg3,
+ GLuint arg3Rep, GLuint arg3Mod)
+{
+ char *op_name;
+
+ op_name = atifs_ops[(arg_count-1)+(optype?3:0)];
+
+ fprintf(stderr, "%s(%s, %s", op_name, _mesa_lookup_enum_by_nr(op),
+ _mesa_lookup_enum_by_nr(dst));
+ if (!optype)
+ fprintf(stderr, ", %d", dstMask);
+
+ fprintf(stderr, ", %s", create_dst_mod_str(dstMod));
+
+ fprintf(stderr, ", %s, %s, %d", _mesa_lookup_enum_by_nr(arg1),
+ _mesa_lookup_enum_by_nr(arg1Rep), arg1Mod);
+ if (arg_count>1)
+ fprintf(stderr, ", %s, %s, %d", _mesa_lookup_enum_by_nr(arg2),
+ _mesa_lookup_enum_by_nr(arg2Rep), arg2Mod);
+ if (arg_count>2)
+ fprintf(stderr, ", %s, %s, %d", _mesa_lookup_enum_by_nr(arg3),
+ _mesa_lookup_enum_by_nr(arg3Rep), arg3Mod);
+
+ fprintf(stderr,")\n");
+
+}
+#endif
+
+static int check_arith_arg(struct ati_fragment_shader *curProg,
+ GLuint optype, GLuint arg, GLuint argRep)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (((arg < GL_CON_0_ATI) || (arg > GL_CON_7_ATI)) &&
+ ((arg < GL_REG_0_ATI) || (arg > GL_REG_5_ATI)) &&
+ (arg != GL_ZERO) && (arg != GL_ONE) &&
+ (arg != GL_PRIMARY_COLOR_ARB) && (arg != GL_SECONDARY_INTERPOLATOR_ATI)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "C/AFragmentOpATI(arg)");
+ return 0;
+ }
+ if ((arg == GL_SECONDARY_INTERPOLATOR_ATI) && (((optype == 0) && (argRep == GL_ALPHA)) ||
+ ((optype == 1) && ((arg == GL_ALPHA) || (argRep == GL_NONE))))) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "C/AFragmentOpATI(sec_interp)");
+ return 0;
+ }
+ if ((arg == GL_SECONDARY_INTERPOLATOR_ATI) && (((optype == 0) && (argRep == GL_ALPHA)) ||
+ ((optype == 1) && ((arg == GL_ALPHA) || (argRep == GL_NONE))))) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "C/AFragmentOpATI(sec_interp)");
+ return 0;
+ }
+ if ((curProg->cur_pass == 1) &&
+ ((arg == GL_PRIMARY_COLOR_ARB) || (arg == GL_SECONDARY_INTERPOLATOR_ATI))) {
+ curProg->interpinp1 = GL_TRUE;
+ }
+ return 1;
+}
+
+GLuint GLAPIENTRY
+_mesa_GenFragmentShadersATI(GLuint range)
+{
+ GLuint first;
+ GLuint i;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (range == 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGenFragmentShadersATI(range)");
+ return 0;
+ }
+
+ if (ctx->ATIFragmentShader.Compiling) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGenFragmentShadersATI(insideShader)");
+ return 0;
+ }
+
+ first = _mesa_HashFindFreeKeyBlock(ctx->Shared->ATIShaders, range);
+ for (i = 0; i < range; i++) {
+ _mesa_HashInsert(ctx->Shared->ATIShaders, first + i, &DummyShader);
+ }
+
+ return first;
+}
+
+void GLAPIENTRY
+_mesa_BindFragmentShaderATI(GLuint id)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct ati_fragment_shader *curProg = ctx->ATIFragmentShader.Current;
+ struct ati_fragment_shader *newProg;
+
+ if (ctx->ATIFragmentShader.Compiling) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glBindFragmentShaderATI(insideShader)");
+ return;
+ }
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+
+ if (curProg->Id == id) {
+ return;
+ }
+
+ /* unbind current */
+ if (curProg->Id != 0) {
+ curProg->RefCount--;
+ if (curProg->RefCount <= 0) {
+ _mesa_HashRemove(ctx->Shared->ATIShaders, id);
+ }
+ }
+
+ /* find new shader */
+ if (id == 0) {
+ newProg = ctx->Shared->DefaultFragmentShader;
+ }
+ else {
+ newProg = (struct ati_fragment_shader *)
+ _mesa_HashLookup(ctx->Shared->ATIShaders, id);
+ if (!newProg || newProg == &DummyShader) {
+ /* allocate a new program now */
+ newProg = _mesa_new_ati_fragment_shader(ctx, id);
+ if (!newProg) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBindFragmentShaderATI");
+ return;
+ }
+ _mesa_HashInsert(ctx->Shared->ATIShaders, id, newProg);
+ }
+
+ }
+
+ /* do actual bind */
+ ctx->ATIFragmentShader.Current = newProg;
+
+ ASSERT(ctx->ATIFragmentShader.Current);
+ if (newProg)
+ newProg->RefCount++;
+
+ /*if (ctx->Driver.BindProgram)
+ ctx->Driver.BindProgram(ctx, target, prog); */
+}
+
+void GLAPIENTRY
+_mesa_DeleteFragmentShaderATI(GLuint id)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (ctx->ATIFragmentShader.Compiling) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glDeleteFragmentShaderATI(insideShader)");
+ return;
+ }
+
+ if (id != 0) {
+ struct ati_fragment_shader *prog = (struct ati_fragment_shader *)
+ _mesa_HashLookup(ctx->Shared->ATIShaders, id);
+ if (prog == &DummyShader) {
+ _mesa_HashRemove(ctx->Shared->ATIShaders, id);
+ }
+ else if (prog) {
+ if (ctx->ATIFragmentShader.Current &&
+ ctx->ATIFragmentShader.Current->Id == id) {
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+ _mesa_BindFragmentShaderATI(0);
+ }
+ }
+
+ /* The ID is immediately available for re-use now */
+ _mesa_HashRemove(ctx->Shared->ATIShaders, id);
+ if (prog) {
+ prog->RefCount--;
+ if (prog->RefCount <= 0) {
+ free(prog);
+ }
+ }
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_BeginFragmentShaderATI(void)
+{
+ GLint i;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (ctx->ATIFragmentShader.Compiling) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glBeginFragmentShaderATI(insideShader)");
+ return;
+ }
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+
+ /* if the shader was already defined free instructions and get new ones
+ (or, could use the same mem but would need to reinitialize) */
+ /* no idea if it's allowed to redefine a shader */
+ for (i = 0; i < MAX_NUM_PASSES_ATI; i++) {
+ if (ctx->ATIFragmentShader.Current->Instructions[i])
+ free(ctx->ATIFragmentShader.Current->Instructions[i]);
+ if (ctx->ATIFragmentShader.Current->SetupInst[i])
+ free(ctx->ATIFragmentShader.Current->SetupInst[i]);
+ }
+
+ /* malloc the instructions here - not sure if the best place but its
+ a start */
+ for (i = 0; i < MAX_NUM_PASSES_ATI; i++) {
+ ctx->ATIFragmentShader.Current->Instructions[i] =
+ (struct atifs_instruction *)
+ calloc(1, sizeof(struct atifs_instruction) *
+ (MAX_NUM_INSTRUCTIONS_PER_PASS_ATI));
+ ctx->ATIFragmentShader.Current->SetupInst[i] =
+ (struct atifs_setupinst *)
+ calloc(1, sizeof(struct atifs_setupinst) *
+ (MAX_NUM_FRAGMENT_REGISTERS_ATI));
+ }
+
+/* can't rely on calloc for initialization as it's possible to redefine a shader (?) */
+ ctx->ATIFragmentShader.Current->LocalConstDef = 0;
+ ctx->ATIFragmentShader.Current->numArithInstr[0] = 0;
+ ctx->ATIFragmentShader.Current->numArithInstr[1] = 0;
+ ctx->ATIFragmentShader.Current->regsAssigned[0] = 0;
+ ctx->ATIFragmentShader.Current->regsAssigned[1] = 0;
+ ctx->ATIFragmentShader.Current->NumPasses = 0;
+ ctx->ATIFragmentShader.Current->cur_pass = 0;
+ ctx->ATIFragmentShader.Current->last_optype = 0;
+ ctx->ATIFragmentShader.Current->interpinp1 = GL_FALSE;
+ ctx->ATIFragmentShader.Current->isValid = GL_FALSE;
+ ctx->ATIFragmentShader.Current->swizzlerq = 0;
+ ctx->ATIFragmentShader.Compiling = 1;
+}
+
+void GLAPIENTRY
+_mesa_EndFragmentShaderATI(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct ati_fragment_shader *curProg = ctx->ATIFragmentShader.Current;
+#if MESA_DEBUG_ATI_FS
+ GLint i, j;
+#endif
+
+ if (!ctx->ATIFragmentShader.Compiling) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glEndFragmentShaderATI(outsideShader)");
+ return;
+ }
+ if (curProg->interpinp1 && (ctx->ATIFragmentShader.Current->cur_pass > 1)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glEndFragmentShaderATI(interpinfirstpass)");
+ /* according to spec, DON'T return here */
+ }
+
+ match_pair_inst(curProg, 0);
+ ctx->ATIFragmentShader.Compiling = 0;
+ ctx->ATIFragmentShader.Current->isValid = GL_TRUE;
+ if ((ctx->ATIFragmentShader.Current->cur_pass == 0) ||
+ (ctx->ATIFragmentShader.Current->cur_pass == 2)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glEndFragmentShaderATI(noarithinst)");
+ }
+ if (ctx->ATIFragmentShader.Current->cur_pass > 1)
+ ctx->ATIFragmentShader.Current->NumPasses = 2;
+ else
+ ctx->ATIFragmentShader.Current->NumPasses = 1;
+
+ ctx->ATIFragmentShader.Current->cur_pass = 0;
+
+#if MESA_DEBUG_ATI_FS
+ for (j = 0; j < MAX_NUM_PASSES_ATI; j++) {
+ for (i = 0; i < MAX_NUM_FRAGMENT_REGISTERS_ATI; i++) {
+ GLuint op = curProg->SetupInst[j][i].Opcode;
+ const char *op_enum = op > 5 ? _mesa_lookup_enum_by_nr(op) : "0";
+ GLuint src = curProg->SetupInst[j][i].src;
+ GLuint swizzle = curProg->SetupInst[j][i].swizzle;
+ fprintf(stderr, "%2d %04X %s %d %04X\n", i, op, op_enum, src,
+ swizzle);
+ }
+ for (i = 0; i < curProg->numArithInstr[j]; i++) {
+ GLuint op0 = curProg->Instructions[j][i].Opcode[0];
+ GLuint op1 = curProg->Instructions[j][i].Opcode[1];
+ const char *op0_enum = op0 > 5 ? _mesa_lookup_enum_by_nr(op0) : "0";
+ const char *op1_enum = op1 > 5 ? _mesa_lookup_enum_by_nr(op1) : "0";
+ GLuint count0 = curProg->Instructions[j][i].ArgCount[0];
+ GLuint count1 = curProg->Instructions[j][i].ArgCount[1];
+ fprintf(stderr, "%2d %04X %s %d %04X %s %d\n", i, op0, op0_enum, count0,
+ op1, op1_enum, count1);
+ }
+ }
+#endif
+
+ if (!ctx->Driver.ProgramStringNotify(ctx, GL_FRAGMENT_SHADER_ATI, NULL)) {
+ ctx->ATIFragmentShader.Current->isValid = GL_FALSE;
+ /* XXX is this the right error? */
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glEndFragmentShaderATI(driver rejected shader)");
+ }
+}
+
+void GLAPIENTRY
+_mesa_PassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct ati_fragment_shader *curProg = ctx->ATIFragmentShader.Current;
+ struct atifs_setupinst *curI;
+
+ if (!ctx->ATIFragmentShader.Compiling) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glPassTexCoordATI(outsideShader)");
+ return;
+ }
+
+ if (curProg->cur_pass == 1) {
+ match_pair_inst(curProg, 0);
+ curProg->cur_pass = 2;
+ }
+ if ((curProg->cur_pass > 2) ||
+ ((1 << (dst - GL_REG_0_ATI)) & curProg->regsAssigned[curProg->cur_pass >> 1])) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glPassTexCoord(pass)");
+ return;
+ }
+ if ((dst < GL_REG_0_ATI) || (dst > GL_REG_5_ATI) ||
+ ((dst - GL_REG_0_ATI) >= ctx->Const.MaxTextureUnits)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glPassTexCoordATI(dst)");
+ return;
+ }
+ if (((coord < GL_REG_0_ATI) || (coord > GL_REG_5_ATI)) &&
+ ((coord < GL_TEXTURE0_ARB) || (coord > GL_TEXTURE7_ARB) ||
+ ((coord - GL_TEXTURE0_ARB) >= ctx->Const.MaxTextureUnits))) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glPassTexCoordATI(coord)");
+ return;
+ }
+ if ((curProg->cur_pass == 0) && (coord >= GL_REG_0_ATI)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glPassTexCoordATI(coord)");
+ return;
+ }
+ if (!(swizzle >= GL_SWIZZLE_STR_ATI) && (swizzle <= GL_SWIZZLE_STQ_DQ_ATI)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glPassTexCoordATI(swizzle)");
+ return;
+ }
+ if ((swizzle & 1) && (coord >= GL_REG_0_ATI)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glPassTexCoordATI(swizzle)");
+ return;
+ }
+ if (coord <= GL_TEXTURE7_ARB) {
+ GLuint tmp = coord - GL_TEXTURE0_ARB;
+ if ((((curProg->swizzlerq >> (tmp * 2)) & 3) != 0) &&
+ (((swizzle & 1) + 1) != ((curProg->swizzlerq >> (tmp * 2)) & 3))) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glPassTexCoordATI(swizzle)");
+ return;
+ } else {
+ curProg->swizzlerq |= (((swizzle & 1) + 1) << (tmp * 2));
+ }
+ }
+
+ curProg->regsAssigned[curProg->cur_pass >> 1] |= 1 << (dst - GL_REG_0_ATI);
+ new_tex_inst(curProg);
+
+ /* add the instructions */
+ curI = &curProg->SetupInst[curProg->cur_pass >> 1][dst - GL_REG_0_ATI];
+
+ curI->Opcode = ATI_FRAGMENT_SHADER_PASS_OP;
+ curI->src = coord;
+ curI->swizzle = swizzle;
+
+#if MESA_DEBUG_ATI_FS
+ _mesa_debug(ctx, "%s(%s, %s, %s)\n", __FUNCTION__,
+ _mesa_lookup_enum_by_nr(dst), _mesa_lookup_enum_by_nr(coord),
+ _mesa_lookup_enum_by_nr(swizzle));
+#endif
+}
+
+void GLAPIENTRY
+_mesa_SampleMapATI(GLuint dst, GLuint interp, GLenum swizzle)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct ati_fragment_shader *curProg = ctx->ATIFragmentShader.Current;
+ struct atifs_setupinst *curI;
+
+ if (!ctx->ATIFragmentShader.Compiling) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glSampleMapATI(outsideShader)");
+ return;
+ }
+
+ if (curProg->cur_pass == 1) {
+ match_pair_inst(curProg, 0);
+ curProg->cur_pass = 2;
+ }
+ if ((curProg->cur_pass > 2) ||
+ ((1 << (dst - GL_REG_0_ATI)) & curProg->regsAssigned[curProg->cur_pass >> 1])) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glSampleMapATI(pass)");
+ return;
+ }
+ if ((dst < GL_REG_0_ATI) || (dst > GL_REG_5_ATI) ||
+ ((dst - GL_REG_0_ATI) >= ctx->Const.MaxTextureUnits)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glSampleMapATI(dst)");
+ return;
+ }
+ if (((interp < GL_REG_0_ATI) || (interp > GL_REG_5_ATI)) &&
+ ((interp < GL_TEXTURE0_ARB) || (interp > GL_TEXTURE7_ARB) ||
+ ((interp - GL_TEXTURE0_ARB) >= ctx->Const.MaxTextureUnits))) {
+ /* is this texture5 or texture7? spec is a bit unclear there */
+ _mesa_error(ctx, GL_INVALID_ENUM, "glSampleMapATI(interp)");
+ return;
+ }
+ if ((curProg->cur_pass == 0) && (interp >= GL_REG_0_ATI)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glSampleMapATI(interp)");
+ return;
+ }
+ if (!(swizzle >= GL_SWIZZLE_STR_ATI) && (swizzle <= GL_SWIZZLE_STQ_DQ_ATI)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glSampleMapATI(swizzle)");
+ return;
+ }
+ if ((swizzle & 1) && (interp >= GL_REG_0_ATI)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glSampleMapATI(swizzle)");
+ return;
+ }
+ if (interp <= GL_TEXTURE7_ARB) {
+ GLuint tmp = interp - GL_TEXTURE0_ARB;
+ if ((((curProg->swizzlerq >> (tmp * 2)) & 3) != 0) &&
+ (((swizzle & 1) + 1) != ((curProg->swizzlerq >> (tmp * 2)) & 3))) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glSampleMapATI(swizzle)");
+ return;
+ } else {
+ curProg->swizzlerq |= (((swizzle & 1) + 1) << (tmp * 2));
+ }
+ }
+
+ curProg->regsAssigned[curProg->cur_pass >> 1] |= 1 << (dst - GL_REG_0_ATI);
+ new_tex_inst(curProg);
+
+ /* add the instructions */
+ curI = &curProg->SetupInst[curProg->cur_pass >> 1][dst - GL_REG_0_ATI];
+
+ curI->Opcode = ATI_FRAGMENT_SHADER_SAMPLE_OP;
+ curI->src = interp;
+ curI->swizzle = swizzle;
+
+#if MESA_DEBUG_ATI_FS
+ _mesa_debug(ctx, "%s(%s, %s, %s)\n", __FUNCTION__,
+ _mesa_lookup_enum_by_nr(dst), _mesa_lookup_enum_by_nr(interp),
+ _mesa_lookup_enum_by_nr(swizzle));
+#endif
+}
+
+static void
+_mesa_FragmentOpXATI(GLint optype, GLuint arg_count, GLenum op, GLuint dst,
+ GLuint dstMask, GLuint dstMod, GLuint arg1,
+ GLuint arg1Rep, GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod, GLuint arg3,
+ GLuint arg3Rep, GLuint arg3Mod)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct ati_fragment_shader *curProg = ctx->ATIFragmentShader.Current;
+ GLint ci;
+ struct atifs_instruction *curI;
+ GLuint modtemp = dstMod & ~GL_SATURATE_BIT_ATI;
+
+ if (!ctx->ATIFragmentShader.Compiling) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "C/AFragmentOpATI(outsideShader)");
+ return;
+ }
+
+ if (curProg->cur_pass==0)
+ curProg->cur_pass=1;
+
+ else if (curProg->cur_pass==2)
+ curProg->cur_pass=3;
+
+ /* decide whether this is a new instruction or not ... all color instructions are new,
+ and alpha instructions might also be new if there was no preceding color inst */
+ if ((optype == 0) || (curProg->last_optype == optype)) {
+ if (curProg->numArithInstr[curProg->cur_pass >> 1] > 7) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "C/AFragmentOpATI(instrCount)");
+ return;
+ }
+ /* easier to do that here slight side effect invalid instr will still be inserted as nops */
+ match_pair_inst(curProg, optype);
+ new_arith_inst(curProg);
+ }
+ curProg->last_optype = optype;
+ ci = curProg->numArithInstr[curProg->cur_pass >> 1] - 1;
+
+ /* add the instructions */
+ curI = &curProg->Instructions[curProg->cur_pass >> 1][ci];
+
+ /* error checking */
+ if ((dst < GL_REG_0_ATI) || (dst > GL_REG_5_ATI)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "C/AFragmentOpATI(dst)");
+ return;
+ }
+ if ((modtemp != GL_NONE) && (modtemp != GL_2X_BIT_ATI) &&
+ (modtemp != GL_4X_BIT_ATI) && (modtemp != GL_8X_BIT_ATI) &&
+ (modtemp != GL_HALF_BIT_ATI) && !(modtemp != GL_QUARTER_BIT_ATI) &&
+ (modtemp != GL_EIGHTH_BIT_ATI)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "C/AFragmentOpATI(dstMod)%x", modtemp);
+ return;
+ }
+ /* op checking? Actually looks like that's missing in the spec but we'll do it anyway */
+ if (((op < GL_ADD_ATI) || (op > GL_DOT2_ADD_ATI)) && !(op == GL_MOV_ATI)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "C/AFragmentOpATI(op)");
+ return;
+ }
+ if (optype == 1) {
+ if (((op == GL_DOT2_ADD_ATI) && (curI->Opcode[0] != GL_DOT2_ADD_ATI)) ||
+ ((op == GL_DOT3_ATI) && (curI->Opcode[0] != GL_DOT3_ATI)) ||
+ ((op == GL_DOT4_ATI) && (curI->Opcode[0] != GL_DOT4_ATI)) ||
+ ((op != GL_DOT4_ATI) && (curI->Opcode[0] == GL_DOT4_ATI))) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "AFragmentOpATI(op)");
+ return;
+ }
+ }
+ if ((op == GL_DOT4_ATI) &&
+ (((arg1 == GL_SECONDARY_INTERPOLATOR_ATI) && ((arg1Rep == GL_ALPHA) || (arg1Rep == GL_NONE))) ||
+ (((arg2 == GL_SECONDARY_INTERPOLATOR_ATI) && ((arg2Rep == GL_ALPHA) || (arg2Rep == GL_NONE)))))) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "C/AFragmentOpATI(sec_interp)");
+ }
+
+ if (!check_arith_arg(curProg, optype, arg1, arg1Rep)) {
+ return;
+ }
+ if (arg2) {
+ if (!check_arith_arg(curProg, optype, arg2, arg2Rep)) {
+ return;
+ }
+ }
+ if (arg3) {
+ if (!check_arith_arg(curProg, optype, arg3, arg3Rep)) {
+ return;
+ }
+ if ((arg1 >= GL_CON_0_ATI) && (arg1 <= GL_CON_7_ATI) &&
+ (arg2 >= GL_CON_0_ATI) && (arg2 <= GL_CON_7_ATI) &&
+ (arg3 >= GL_CON_0_ATI) && (arg3 <= GL_CON_7_ATI) &&
+ (arg1 != arg2) && (arg1 != arg3) && (arg2 != arg3)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "C/AFragmentOpATI(3Consts)");
+ return;
+ }
+ }
+
+ /* all ok - not all fully validated though (e.g. argNMod - spec doesn't say anything) */
+
+ curI->Opcode[optype] = op;
+ curI->SrcReg[optype][0].Index = arg1;
+ curI->SrcReg[optype][0].argRep = arg1Rep;
+ curI->SrcReg[optype][0].argMod = arg1Mod;
+ curI->ArgCount[optype] = arg_count;
+
+ if (arg2) {
+ curI->SrcReg[optype][1].Index = arg2;
+ curI->SrcReg[optype][1].argRep = arg2Rep;
+ curI->SrcReg[optype][1].argMod = arg2Mod;
+ }
+
+ if (arg3) {
+ curI->SrcReg[optype][2].Index = arg3;
+ curI->SrcReg[optype][2].argRep = arg3Rep;
+ curI->SrcReg[optype][2].argMod = arg3Mod;
+ }
+
+ curI->DstReg[optype].Index = dst;
+ curI->DstReg[optype].dstMod = dstMod;
+ curI->DstReg[optype].dstMask = dstMask;
+
+#if MESA_DEBUG_ATI_FS
+ debug_op(optype, arg_count, op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod);
+#endif
+
+}
+
+void GLAPIENTRY
+_mesa_ColorFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod)
+{
+ _mesa_FragmentOpXATI(ATI_FRAGMENT_SHADER_COLOR_OP, 1, op, dst, dstMask,
+ dstMod, arg1, arg1Rep, arg1Mod, 0, 0, 0, 0, 0, 0);
+}
+
+void GLAPIENTRY
+_mesa_ColorFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
+ GLuint arg2Mod)
+{
+ _mesa_FragmentOpXATI(ATI_FRAGMENT_SHADER_COLOR_OP, 2, op, dst, dstMask,
+ dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep,
+ arg2Mod, 0, 0, 0);
+}
+
+void GLAPIENTRY
+_mesa_ColorFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
+ GLuint arg2Mod, GLuint arg3, GLuint arg3Rep,
+ GLuint arg3Mod)
+{
+ _mesa_FragmentOpXATI(ATI_FRAGMENT_SHADER_COLOR_OP, 3, op, dst, dstMask,
+ dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep,
+ arg2Mod, arg3, arg3Rep, arg3Mod);
+}
+
+void GLAPIENTRY
+_mesa_AlphaFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1,
+ GLuint arg1Rep, GLuint arg1Mod)
+{
+ _mesa_FragmentOpXATI(ATI_FRAGMENT_SHADER_ALPHA_OP, 1, op, dst, 0, dstMod,
+ arg1, arg1Rep, arg1Mod, 0, 0, 0, 0, 0, 0);
+}
+
+void GLAPIENTRY
+_mesa_AlphaFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1,
+ GLuint arg1Rep, GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod)
+{
+ _mesa_FragmentOpXATI(ATI_FRAGMENT_SHADER_ALPHA_OP, 2, op, dst, 0, dstMod,
+ arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, 0, 0,
+ 0);
+}
+
+void GLAPIENTRY
+_mesa_AlphaFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1,
+ GLuint arg1Rep, GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod, GLuint arg3,
+ GLuint arg3Rep, GLuint arg3Mod)
+{
+ _mesa_FragmentOpXATI(ATI_FRAGMENT_SHADER_ALPHA_OP, 3, op, dst, 0, dstMod,
+ arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3,
+ arg3Rep, arg3Mod);
+}
+
+void GLAPIENTRY
+_mesa_SetFragmentShaderConstantATI(GLuint dst, const GLfloat * value)
+{
+ GLuint dstindex;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if ((dst < GL_CON_0_ATI) || (dst > GL_CON_7_ATI)) {
+ /* spec says nothing about what should happen here but we can't just segfault...*/
+ _mesa_error(ctx, GL_INVALID_ENUM, "glSetFragmentShaderConstantATI(dst)");
+ return;
+ }
+
+ dstindex = dst - GL_CON_0_ATI;
+ if (ctx->ATIFragmentShader.Compiling) {
+ struct ati_fragment_shader *curProg = ctx->ATIFragmentShader.Current;
+ COPY_4V(curProg->Constants[dstindex], value);
+ curProg->LocalConstDef |= 1 << dstindex;
+ }
+ else {
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+ COPY_4V(ctx->ATIFragmentShader.GlobalConstants[dstindex], value);
+ }
+}
+
+#endif /* FEATURE_ATI_fragment_shader */
diff --git a/src/mesa/main/atifragshader.h b/src/mesa/main/atifragshader.h
new file mode 100644
index 00000000000..31c335ec815
--- /dev/null
+++ b/src/mesa/main/atifragshader.h
@@ -0,0 +1,149 @@
+/*
+ * Mesa 3-D graphics library ATI Fragment Shader
+ *
+ * Copyright (C) 2004 David Airlie All Rights Reserved.
+ *
+ */
+
+#ifndef ATIFRAGSHADER_H
+#define ATIFRAGSHADER_H
+
+#include "main/mtypes.h"
+
+#define MAX_NUM_INSTRUCTIONS_PER_PASS_ATI 8
+#define MAX_NUM_PASSES_ATI 2
+#define MAX_NUM_FRAGMENT_REGISTERS_ATI 6
+
+struct ati_fs_opcode_st
+{
+ GLenum opcode;
+ GLint num_src_args;
+};
+
+extern struct ati_fs_opcode_st ati_fs_opcodes[];
+
+struct atifragshader_src_register
+{
+ GLuint Index;
+ GLuint argRep;
+ GLuint argMod;
+};
+
+struct atifragshader_dst_register
+{
+ GLuint Index;
+ GLuint dstMod;
+ GLuint dstMask;
+};
+
+#define ATI_FRAGMENT_SHADER_COLOR_OP 0
+#define ATI_FRAGMENT_SHADER_ALPHA_OP 1
+#define ATI_FRAGMENT_SHADER_PASS_OP 2
+#define ATI_FRAGMENT_SHADER_SAMPLE_OP 3
+
+/* two opcodes - one for color/one for alpha */
+/* up to three source registers for most ops */
+struct atifs_instruction
+{
+ GLenum Opcode[2];
+ GLuint ArgCount[2];
+ struct atifragshader_src_register SrcReg[2][3];
+ struct atifragshader_dst_register DstReg[2];
+};
+
+/* different from arithmetic shader instruction */
+struct atifs_setupinst
+{
+ GLenum Opcode;
+ GLuint src;
+ GLenum swizzle;
+};
+
+
+#if FEATURE_ATI_fragment_shader
+
+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);
+
+extern void
+_mesa_delete_ati_fragment_shader(GLcontext *ctx,
+ struct ati_fragment_shader *s);
+
+
+extern GLuint GLAPIENTRY _mesa_GenFragmentShadersATI(GLuint range);
+
+extern void GLAPIENTRY _mesa_BindFragmentShaderATI(GLuint id);
+
+extern void GLAPIENTRY _mesa_DeleteFragmentShaderATI(GLuint id);
+
+extern void GLAPIENTRY _mesa_BeginFragmentShaderATI(void);
+
+extern void GLAPIENTRY _mesa_EndFragmentShaderATI(void);
+
+extern void GLAPIENTRY
+_mesa_PassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle);
+
+extern void GLAPIENTRY
+_mesa_SampleMapATI(GLuint dst, GLuint interp, GLenum swizzle);
+
+extern void GLAPIENTRY
+_mesa_ColorFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod);
+
+extern void GLAPIENTRY
+_mesa_ColorFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
+ GLuint arg2Mod);
+
+extern void GLAPIENTRY
+_mesa_ColorFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
+ GLuint arg2Mod, GLuint arg3, GLuint arg3Rep,
+ GLuint arg3Mod);
+
+extern void GLAPIENTRY
+_mesa_AlphaFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1,
+ GLuint arg1Rep, GLuint arg1Mod);
+
+extern void GLAPIENTRY
+_mesa_AlphaFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1,
+ GLuint arg1Rep, GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod);
+
+extern void GLAPIENTRY
+_mesa_AlphaFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1,
+ GLuint arg1Rep, GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod, GLuint arg3,
+ GLuint arg3Rep, GLuint arg3Mod);
+
+extern void GLAPIENTRY
+_mesa_SetFragmentShaderConstantATI(GLuint dst, const GLfloat * value);
+
+#else /* FEATURE_ATI_fragment_shader */
+
+static INLINE void
+_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)
+{
+ return NULL;
+}
+
+static INLINE void
+_mesa_delete_ati_fragment_shader(GLcontext *ctx,
+ struct ati_fragment_shader *s)
+{
+}
+
+#endif /* FEATURE_ATI_fragment_shader */
+
+#endif /* ATIFRAGSHADER_H */
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 235cafcf1ed..4e232b5731f 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -1924,7 +1924,7 @@ _mesa_BufferObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option)
bufObj->Purgeable = GL_FALSE;
- retval = GL_RETAINED_APPLE;
+ retval = option;
if (ctx->Driver.BufferObjectUnpurgeable)
retval = ctx->Driver.BufferObjectUnpurgeable(ctx, bufObj, option);
@@ -1954,11 +1954,11 @@ _mesa_RenderObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option)
bufObj->Purgeable = GL_FALSE;
- retval = GL_RETAINED_APPLE;
+ retval = option;
if (ctx->Driver.RenderObjectUnpurgeable)
retval = ctx->Driver.RenderObjectUnpurgeable(ctx, bufObj, option);
- return option;
+ return retval;
}
@@ -1984,7 +1984,7 @@ _mesa_TextureObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option)
bufObj->Purgeable = GL_FALSE;
- retval = GL_RETAINED_APPLE;
+ retval = option;
if (ctx->Driver.TextureObjectUnpurgeable)
retval = ctx->Driver.TextureObjectUnpurgeable(ctx, bufObj, option);
diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
index 84f7665fc07..32f7d969d8d 100644
--- a/src/mesa/main/config.h
+++ b/src/mesa/main/config.h
@@ -265,6 +265,15 @@
/** For GL_EXT_transform_feedback */
#define MAX_FEEDBACK_ATTRIBS 32
+/** For GL_ARB_geometry_shader4 */
+/*@{*/
+#define MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 8
+#define MAX_GEOMETRY_VARYING_COMPONENTS 32
+#define MAX_VERTEX_VARYING_COMPONENTS 32
+#define MAX_GEOMETRY_UNIFORM_COMPONENTS 512
+#define MAX_GEOMETRY_OUTPUT_VERTICES 256
+#define MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 1024
+/*@}*/
/**
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index e140a21b354..a369532e99c 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -118,6 +118,7 @@
#include "remap.h"
#include "scissor.h"
#include "shared.h"
+#include "shaderobj.h"
#include "simple_list.h"
#include "state.h"
#include "stencil.h"
@@ -129,9 +130,8 @@
#include "version.h"
#include "viewport.h"
#include "vtxfmt.h"
-#include "shader/program.h"
-#include "shader/prog_print.h"
-#include "shader/shader_api.h"
+#include "program/program.h"
+#include "program/prog_print.h"
#if _HAVE_FULL_GL
#include "math/m_matrix.h"
#endif
@@ -347,6 +347,8 @@ dummy_enum_func(void)
gl_texture_index ti;
gl_vert_attrib va;
gl_vert_result vr;
+ gl_geom_attrib ga;
+ gl_geom_result gr;
(void) bi;
(void) ci;
@@ -356,6 +358,8 @@ dummy_enum_func(void)
(void) ti;
(void) va;
(void) vr;
+ (void) ga;
+ (void) gr;
}
@@ -478,10 +482,21 @@ init_program_limits(GLenum type, struct gl_program_constants *prog)
prog->MaxAttribs = MAX_NV_VERTEX_PROGRAM_INPUTS;
prog->MaxAddressRegs = MAX_VERTEX_PROGRAM_ADDRESS_REGS;
}
- else {
+ else if (type == GL_FRAGMENT_PROGRAM_ARB) {
prog->MaxParameters = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
prog->MaxAttribs = MAX_NV_FRAGMENT_PROGRAM_INPUTS;
prog->MaxAddressRegs = MAX_FRAGMENT_PROGRAM_ADDRESS_REGS;
+ } else {
+ prog->MaxParameters = MAX_NV_VERTEX_PROGRAM_PARAMS;
+ prog->MaxAttribs = MAX_NV_VERTEX_PROGRAM_INPUTS;
+ prog->MaxAddressRegs = MAX_VERTEX_PROGRAM_ADDRESS_REGS;
+
+ prog->MaxGeometryTextureImageUnits = MAX_GEOMETRY_TEXTURE_IMAGE_UNITS;
+ prog->MaxGeometryVaryingComponents = MAX_GEOMETRY_VARYING_COMPONENTS;
+ prog->MaxVertexVaryingComponents = MAX_VERTEX_VARYING_COMPONENTS;
+ prog->MaxGeometryUniformComponents = MAX_GEOMETRY_UNIFORM_COMPONENTS;
+ prog->MaxGeometryOutputVertices = MAX_GEOMETRY_OUTPUT_VERTICES;
+ prog->MaxGeometryTotalOutputComponents = MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS;
}
/* Set the native limits to zero. This implies that there is no native
@@ -547,6 +562,9 @@ _mesa_init_constants(GLcontext *ctx)
#if FEATURE_ARB_fragment_program
init_program_limits(GL_FRAGMENT_PROGRAM_ARB, &ctx->Const.FragmentProgram);
#endif
+#if FEATURE_ARB_geometry_shader4
+ init_program_limits(MESA_GEOMETRY_PROGRAM, &ctx->Const.GeometryProgram);
+#endif
ctx->Const.MaxProgramMatrices = MAX_PROGRAM_MATRICES;
ctx->Const.MaxProgramMatrixStackDepth = MAX_PROGRAM_MATRIX_STACK_DEPTH;
@@ -1462,6 +1480,8 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
if (newCtx->FirstTimeCurrent) {
_mesa_compute_version(newCtx);
+ newCtx->Extensions.String = _mesa_make_extension_string(newCtx);
+
check_context_limits(newCtx);
/* We can use this to help debug user's problems. Tell them to set
diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
index 53e44533cb3..825073ca886 100644
--- a/src/mesa/main/dd.h
+++ b/src/mesa/main/dd.h
@@ -828,54 +828,12 @@ struct dd_function_table {
* \name GLSL-related functions (ARB extensions and OpenGL 2.x)
*/
/*@{*/
- void (*AttachShader)(GLcontext *ctx, GLuint program, GLuint shader);
- void (*BindAttribLocation)(GLcontext *ctx, GLuint program, GLuint index,
- const GLcharARB *name);
- void (*CompileShader)(GLcontext *ctx, GLuint shader);
- GLuint (*CreateShader)(GLcontext *ctx, GLenum type);
- GLuint (*CreateProgram)(GLcontext *ctx);
- void (*DeleteProgram2)(GLcontext *ctx, GLuint program);
- void (*DeleteShader)(GLcontext *ctx, GLuint shader);
- void (*DetachShader)(GLcontext *ctx, GLuint program, GLuint shader);
- void (*GetActiveAttrib)(GLcontext *ctx, GLuint program, GLuint index,
- GLsizei maxLength, GLsizei * length, GLint * size,
- GLenum * type, GLcharARB * name);
- void (*GetActiveUniform)(GLcontext *ctx, GLuint program, GLuint index,
- GLsizei maxLength, GLsizei *length, GLint *size,
- GLenum *type, GLcharARB *name);
- void (*GetAttachedShaders)(GLcontext *ctx, GLuint program, GLsizei maxCount,
- GLsizei *count, GLuint *obj);
- GLint (*GetAttribLocation)(GLcontext *ctx, GLuint program,
- const GLcharARB *name);
- GLuint (*GetHandle)(GLcontext *ctx, GLenum pname);
- void (*GetProgramiv)(GLcontext *ctx, GLuint program,
- GLenum pname, GLint *params);
- void (*GetProgramInfoLog)(GLcontext *ctx, GLuint program, GLsizei bufSize,
- GLsizei *length, GLchar *infoLog);
- void (*GetShaderiv)(GLcontext *ctx, GLuint shader,
- GLenum pname, GLint *params);
- void (*GetShaderInfoLog)(GLcontext *ctx, GLuint shader, GLsizei bufSize,
- GLsizei *length, GLchar *infoLog);
- void (*GetShaderSource)(GLcontext *ctx, GLuint shader, GLsizei maxLength,
- GLsizei *length, GLcharARB *sourceOut);
- void (*GetUniformfv)(GLcontext *ctx, GLuint program, GLint location,
- GLfloat *params);
- void (*GetUniformiv)(GLcontext *ctx, GLuint program, GLint location,
- GLint *params);
- GLint (*GetUniformLocation)(GLcontext *ctx, GLuint program,
- const GLcharARB *name);
- GLboolean (*IsProgram)(GLcontext *ctx, GLuint name);
- GLboolean (*IsShader)(GLcontext *ctx, GLuint name);
- void (*LinkProgram)(GLcontext *ctx, GLuint program);
- void (*ShaderSource)(GLcontext *ctx, GLuint shader, const GLchar *source);
- void (*Uniform)(GLcontext *ctx, GLint location, GLsizei count,
- const GLvoid *values, GLenum type);
- void (*UniformMatrix)(GLcontext *ctx, GLint cols, GLint rows,
- GLint location, GLsizei count,
- GLboolean transpose, const GLfloat *values);
- void (*UseProgram)(GLcontext *ctx, GLuint program);
- void (*ValidateProgram)(GLcontext *ctx, GLuint program);
- /* XXX many more to come */
+ 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_program *shProg);
+ void (*UseProgram)(GLcontext *ctx, struct gl_shader_program *shProg);
/*@}*/
diff --git a/src/mesa/main/depthstencil.c b/src/mesa/main/depthstencil.c
index 892520b6959..885e718a767 100644
--- a/src/mesa/main/depthstencil.c
+++ b/src/mesa/main/depthstencil.c
@@ -62,8 +62,8 @@ nop_get_pointer(GLcontext *ctx, struct gl_renderbuffer *rb, GLint x, GLint y)
static void
delete_wrapper(struct gl_renderbuffer *rb)
{
- ASSERT(rb->Format == MESA_FORMAT_Z24_S8 ||
- rb->Format == MESA_FORMAT_S8_Z24);
+ ASSERT(rb->Format == MESA_FORMAT_S8 ||
+ rb->Format == MESA_FORMAT_X8_Z24);
_mesa_reference_renderbuffer(&rb->Wrapped, NULL);
free(rb);
}
@@ -83,7 +83,9 @@ alloc_wrapper_storage(GLcontext *ctx, struct gl_renderbuffer *rb,
(void) internalFormat;
ASSERT(dsrb->Format == MESA_FORMAT_Z24_S8 ||
- dsrb->Format == MESA_FORMAT_S8_Z24);
+ dsrb->Format == MESA_FORMAT_Z24_X8 ||
+ dsrb->Format == MESA_FORMAT_S8_Z24 ||
+ dsrb->Format == MESA_FORMAT_X8_Z24);
retVal = dsrb->AllocStorage(ctx, dsrb, dsrb->InternalFormat, width, height);
if (retVal) {
@@ -352,16 +354,21 @@ _mesa_new_z24_renderbuffer_wrapper(GLcontext *ctx,
struct gl_renderbuffer *z24rb;
ASSERT(dsrb->Format == MESA_FORMAT_Z24_S8 ||
- dsrb->Format == MESA_FORMAT_S8_Z24);
+ dsrb->Format == MESA_FORMAT_Z24_X8 ||
+ dsrb->Format == MESA_FORMAT_S8_Z24 ||
+ dsrb->Format == MESA_FORMAT_X8_Z24);
ASSERT(dsrb->DataType == GL_UNSIGNED_INT_24_8_EXT);
z24rb = _mesa_new_renderbuffer(ctx, 0);
if (!z24rb)
return NULL;
+ /* NOTE: need to do manual refcounting here */
z24rb->Wrapped = dsrb;
+ dsrb->RefCount++;
+
z24rb->Name = dsrb->Name;
- z24rb->RefCount = 1;
+ z24rb->RefCount = 0;
z24rb->Width = dsrb->Width;
z24rb->Height = dsrb->Height;
z24rb->InternalFormat = GL_DEPTH_COMPONENT24;
@@ -642,9 +649,12 @@ _mesa_new_s8_renderbuffer_wrapper(GLcontext *ctx, struct gl_renderbuffer *dsrb)
if (!s8rb)
return NULL;
+ /* NOTE: need to do manual refcounting here */
s8rb->Wrapped = dsrb;
+ dsrb->RefCount++;
+
s8rb->Name = dsrb->Name;
- s8rb->RefCount = 1;
+ s8rb->RefCount = 0;
s8rb->Width = dsrb->Width;
s8rb->Height = dsrb->Height;
s8rb->InternalFormat = GL_STENCIL_INDEX8_EXT;
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 37a97513453..727414d529f 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -34,6 +34,9 @@
#include "api_arrayelt.h"
#include "api_exec.h"
#include "api_loopback.h"
+#if FEATURE_ATI_fragment_shader
+#include "atifragshader.h"
+#endif
#include "config.h"
#include "mfeatures.h"
#if FEATURE_ARB_vertex_buffer_object
@@ -56,13 +59,10 @@
#include "mtypes.h"
#include "varray.h"
#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program
-#include "shader/arbprogram.h"
+#include "arbprogram.h"
#endif
#if FEATURE_NV_vertex_program || FEATURE_NV_fragment_program
-#include "shader/nvprogram.h"
-#endif
-#if FEATURE_ATI_fragment_shader
-#include "shader/atifragshader.h"
+#include "nvprogram.h"
#endif
#include "math/m_matrix.h"
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index 13705b9f671..bc18e1b1131 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -607,6 +607,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE\0"
"GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE\0"
"GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE\0"
+ "GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB\0"
"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\0"
"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT\0"
"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES\0"
@@ -645,6 +646,8 @@ LONGSTRING static const char enum_string_table[] =
"GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT\0"
"GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT\0"
"GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB\0"
"GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\0"
"GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT\0"
"GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES\0"
@@ -677,6 +680,10 @@ LONGSTRING static const char enum_string_table[] =
"GL_GENERATE_MIPMAP_HINT\0"
"GL_GENERATE_MIPMAP_HINT_SGIS\0"
"GL_GENERATE_MIPMAP_SGIS\0"
+ "GL_GEOMETRY_INPUT_TYPE_ARB\0"
+ "GL_GEOMETRY_OUTPUT_TYPE_ARB\0"
+ "GL_GEOMETRY_SHADER_ARB\0"
+ "GL_GEOMETRY_VERTICES_OUT_ARB\0"
"GL_GEQUAL\0"
"GL_GREATER\0"
"GL_GREEN\0"
@@ -790,6 +797,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_LINEAR_MIPMAP_LINEAR\0"
"GL_LINEAR_MIPMAP_NEAREST\0"
"GL_LINES\0"
+ "GL_LINES_ADJACENCY_ARB\0"
"GL_LINE_BIT\0"
"GL_LINE_LOOP\0"
"GL_LINE_RESET_TOKEN\0"
@@ -799,6 +807,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_LINE_STIPPLE_PATTERN\0"
"GL_LINE_STIPPLE_REPEAT\0"
"GL_LINE_STRIP\0"
+ "GL_LINE_STRIP_ADJACENCY_ARB\0"
"GL_LINE_TOKEN\0"
"GL_LINE_WIDTH\0"
"GL_LINE_WIDTH_GRANULARITY\0"
@@ -984,6 +993,11 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_FRAGMENT_UNIFORM_COMPONENTS\0"
"GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB\0"
"GL_MAX_FRAGMENT_UNIFORM_VECTORS\0"
+ "GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB\0"
+ "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB\0"
+ "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB\0"
+ "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB\0"
+ "GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB\0"
"GL_MAX_LIGHTS\0"
"GL_MAX_LIST_NESTING\0"
"GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB\0"
@@ -1044,6 +1058,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT\0"
"GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT\0"
"GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT\0"
+ "GL_MAX_VARYING_COMPONENTS\0"
"GL_MAX_VARYING_FLOATS\0"
"GL_MAX_VARYING_FLOATS_ARB\0"
"GL_MAX_VARYING_VECTORS\0"
@@ -1056,6 +1071,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_VERTEX_UNIFORM_VECTORS\0"
"GL_MAX_VERTEX_UNITS_ARB\0"
"GL_MAX_VERTEX_UNITS_OES\0"
+ "GL_MAX_VERTEX_VARYING_COMPONENTS_ARB\0"
"GL_MAX_VIEWPORT_DIMS\0"
"GL_MEDIUM_FLOAT\0"
"GL_MEDIUM_INT\0"
@@ -1378,6 +1394,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_PROGRAM_OBJECT_ARB\0"
"GL_PROGRAM_PARAMETERS_ARB\0"
"GL_PROGRAM_PARAMETER_NV\0"
+ "GL_PROGRAM_POINT_SIZE_ARB\0"
"GL_PROGRAM_RESIDENT_NV\0"
"GL_PROGRAM_STRING_ARB\0"
"GL_PROGRAM_STRING_NV\0"
@@ -1931,9 +1948,13 @@ LONGSTRING static const char enum_string_table[] =
"GL_TRACK_MATRIX_NV\0"
"GL_TRACK_MATRIX_TRANSFORM_NV\0"
"GL_TRANSFORM_BIT\0"
+ "GL_TRANSFORM_FEEDBACK\0"
+ "GL_TRANSFORM_FEEDBACK_BINDING\0"
+ "GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE\0"
"GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT\0"
"GL_TRANSFORM_FEEDBACK_BUFFER_EXT\0"
"GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT\0"
+ "GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED\0"
"GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT\0"
"GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT\0"
"GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT\0"
@@ -1950,9 +1971,11 @@ LONGSTRING static const char enum_string_table[] =
"GL_TRANSPOSE_TEXTURE_MATRIX\0"
"GL_TRANSPOSE_TEXTURE_MATRIX_ARB\0"
"GL_TRIANGLES\0"
+ "GL_TRIANGLES_ADJACENCY_ARB\0"
"GL_TRIANGLE_FAN\0"
"GL_TRIANGLE_MESH_SUN\0"
"GL_TRIANGLE_STRIP\0"
+ "GL_TRIANGLE_STRIP_ADJACENCY_ARB\0"
"GL_TRUE\0"
"GL_UNDEFINED_APPLE\0"
"GL_UNPACK_ALIGNMENT\0"
@@ -2080,7 +2103,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ZOOM_Y\0"
;
-static const enum_elt all_enums[2042] =
+static const enum_elt all_enums[2065] =
{
{ 0, 0x00000600 }, /* GL_2D */
{ 6, 0x00001407 }, /* GL_2_BYTES */
@@ -2653,1556 +2676,1583 @@ static const enum_elt all_enums[2042] =
{ 11534, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
{ 11575, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
{ 11612, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
- { 11649, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
- { 11687, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
- { 11729, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES */
- { 11771, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
- { 11809, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
- { 11851, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES */
- { 11893, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
- { 11928, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
- { 11967, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
- { 12016, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES */
- { 12065, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
- { 12113, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
- { 12165, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES */
- { 12217, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
- { 12257, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
- { 12301, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
- { 12341, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
- { 12385, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES */
- { 12429, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING */
- { 12452, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
- { 12479, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_OES */
- { 12506, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */
- { 12530, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
- { 12558, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_OES */
- { 12586, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */
- { 12609, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
- { 12628, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
- { 12665, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
- { 12706, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES */
- { 12747, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS */
- { 12784, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- { 12825, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES */
- { 12866, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
- { 12904, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
- { 12946, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES */
- { 12988, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- { 13039, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- { 13077, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES */
- { 13115, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
- { 13160, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
- { 13209, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES */
- { 13258, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
- { 13296, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT */
- { 13338, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
- { 13376, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
- { 13418, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES */
- { 13460, 0x00008D40 }, /* GL_FRAMEBUFFER_OES */
- { 13479, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- { 13511, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */
- { 13536, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */
- { 13563, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
- { 13594, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_OES */
- { 13625, 0x00000404 }, /* GL_FRONT */
- { 13634, 0x00000408 }, /* GL_FRONT_AND_BACK */
- { 13652, 0x00000B46 }, /* GL_FRONT_FACE */
- { 13666, 0x00000400 }, /* GL_FRONT_LEFT */
- { 13680, 0x00000401 }, /* GL_FRONT_RIGHT */
- { 13695, 0x00008006 }, /* GL_FUNC_ADD */
- { 13707, 0x00008006 }, /* GL_FUNC_ADD_EXT */
- { 13723, 0x00008006 }, /* GL_FUNC_ADD_OES */
- { 13739, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
- { 13764, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
- { 13793, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_OES */
- { 13822, 0x0000800A }, /* GL_FUNC_SUBTRACT */
- { 13839, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
- { 13860, 0x0000800A }, /* GL_FUNC_SUBTRACT_OES */
- { 13881, 0x00008191 }, /* GL_GENERATE_MIPMAP */
- { 13900, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
- { 13924, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
- { 13953, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
- { 13977, 0x00000206 }, /* GL_GEQUAL */
- { 13987, 0x00000204 }, /* GL_GREATER */
- { 13998, 0x00001904 }, /* GL_GREEN */
- { 14007, 0x00000D19 }, /* GL_GREEN_BIAS */
- { 14021, 0x00000D53 }, /* GL_GREEN_BITS */
- { 14035, 0x00000D18 }, /* GL_GREEN_SCALE */
- { 14050, 0x0000140B }, /* GL_HALF_FLOAT */
- { 14064, 0x00008D61 }, /* GL_HALF_FLOAT_OES */
- { 14082, 0x00008DF2 }, /* GL_HIGH_FLOAT */
- { 14096, 0x00008DF5 }, /* GL_HIGH_INT */
- { 14108, 0x00008000 }, /* GL_HINT_BIT */
- { 14120, 0x00008024 }, /* GL_HISTOGRAM */
- { 14133, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
- { 14157, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
- { 14185, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
- { 14208, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
- { 14235, 0x00008024 }, /* GL_HISTOGRAM_EXT */
- { 14252, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
- { 14272, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
- { 14296, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
- { 14320, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
- { 14348, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- { 14376, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
- { 14408, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
- { 14430, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
- { 14456, 0x0000802D }, /* GL_HISTOGRAM_SINK */
- { 14474, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
- { 14496, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
- { 14515, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
- { 14538, 0x0000862A }, /* GL_IDENTITY_NV */
- { 14553, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
- { 14573, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */
- { 14609, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- { 14649, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */
- { 14683, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- { 14721, 0x00001E02 }, /* GL_INCR */
- { 14729, 0x00008507 }, /* GL_INCR_WRAP */
- { 14742, 0x00008507 }, /* GL_INCR_WRAP_EXT */
- { 14759, 0x00008222 }, /* GL_INDEX */
- { 14768, 0x00008077 }, /* GL_INDEX_ARRAY */
- { 14783, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- { 14813, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
- { 14847, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
- { 14870, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
- { 14892, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
- { 14912, 0x00000D51 }, /* GL_INDEX_BITS */
- { 14926, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
- { 14947, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
- { 14965, 0x00000C30 }, /* GL_INDEX_MODE */
- { 14979, 0x00000D13 }, /* GL_INDEX_OFFSET */
- { 14995, 0x00000D12 }, /* GL_INDEX_SHIFT */
- { 15010, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
- { 15029, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
- { 15048, 0x00001404 }, /* GL_INT */
- { 15055, 0x00008049 }, /* GL_INTENSITY */
- { 15068, 0x0000804C }, /* GL_INTENSITY12 */
- { 15083, 0x0000804C }, /* GL_INTENSITY12_EXT */
- { 15102, 0x0000804D }, /* GL_INTENSITY16 */
- { 15117, 0x0000804D }, /* GL_INTENSITY16_EXT */
- { 15136, 0x0000804A }, /* GL_INTENSITY4 */
- { 15150, 0x0000804A }, /* GL_INTENSITY4_EXT */
- { 15168, 0x0000804B }, /* GL_INTENSITY8 */
- { 15182, 0x0000804B }, /* GL_INTENSITY8_EXT */
- { 15200, 0x00008049 }, /* GL_INTENSITY_EXT */
- { 15217, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS_EXT */
- { 15244, 0x00008575 }, /* GL_INTERPOLATE */
- { 15259, 0x00008575 }, /* GL_INTERPOLATE_ARB */
- { 15278, 0x00008575 }, /* GL_INTERPOLATE_EXT */
- { 15297, 0x00008DF7 }, /* GL_INT_10_10_10_2_OES */
- { 15319, 0x00008B53 }, /* GL_INT_VEC2 */
- { 15331, 0x00008B53 }, /* GL_INT_VEC2_ARB */
- { 15347, 0x00008B54 }, /* GL_INT_VEC3 */
- { 15359, 0x00008B54 }, /* GL_INT_VEC3_ARB */
- { 15375, 0x00008B55 }, /* GL_INT_VEC4 */
- { 15387, 0x00008B55 }, /* GL_INT_VEC4_ARB */
- { 15403, 0x00000500 }, /* GL_INVALID_ENUM */
- { 15419, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */
- { 15452, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
- { 15489, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_OES */
- { 15526, 0x00000502 }, /* GL_INVALID_OPERATION */
- { 15547, 0x00000501 }, /* GL_INVALID_VALUE */
- { 15564, 0x0000862B }, /* GL_INVERSE_NV */
- { 15578, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
- { 15602, 0x0000150A }, /* GL_INVERT */
- { 15612, 0x00001E00 }, /* GL_KEEP */
- { 15620, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */
- { 15646, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */
- { 15676, 0x00000406 }, /* GL_LEFT */
- { 15684, 0x00000203 }, /* GL_LEQUAL */
- { 15694, 0x00000201 }, /* GL_LESS */
- { 15702, 0x00004000 }, /* GL_LIGHT0 */
- { 15712, 0x00004001 }, /* GL_LIGHT1 */
- { 15722, 0x00004002 }, /* GL_LIGHT2 */
- { 15732, 0x00004003 }, /* GL_LIGHT3 */
- { 15742, 0x00004004 }, /* GL_LIGHT4 */
- { 15752, 0x00004005 }, /* GL_LIGHT5 */
- { 15762, 0x00004006 }, /* GL_LIGHT6 */
- { 15772, 0x00004007 }, /* GL_LIGHT7 */
- { 15782, 0x00000B50 }, /* GL_LIGHTING */
- { 15794, 0x00000040 }, /* GL_LIGHTING_BIT */
- { 15810, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
- { 15833, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- { 15862, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
- { 15895, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- { 15923, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
- { 15947, 0x00001B01 }, /* GL_LINE */
- { 15955, 0x00002601 }, /* GL_LINEAR */
- { 15965, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
- { 15987, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- { 16017, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- { 16048, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
- { 16072, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
- { 16097, 0x00000001 }, /* GL_LINES */
- { 16106, 0x00000004 }, /* GL_LINE_BIT */
- { 16118, 0x00000002 }, /* GL_LINE_LOOP */
- { 16131, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
- { 16151, 0x00000B20 }, /* GL_LINE_SMOOTH */
- { 16166, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
- { 16186, 0x00000B24 }, /* GL_LINE_STIPPLE */
- { 16202, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
- { 16226, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
- { 16249, 0x00000003 }, /* GL_LINE_STRIP */
- { 16263, 0x00000702 }, /* GL_LINE_TOKEN */
- { 16277, 0x00000B21 }, /* GL_LINE_WIDTH */
- { 16291, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
- { 16317, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
- { 16337, 0x00008B82 }, /* GL_LINK_STATUS */
- { 16352, 0x00000B32 }, /* GL_LIST_BASE */
- { 16365, 0x00020000 }, /* GL_LIST_BIT */
- { 16377, 0x00000B33 }, /* GL_LIST_INDEX */
- { 16391, 0x00000B30 }, /* GL_LIST_MODE */
- { 16404, 0x00000101 }, /* GL_LOAD */
- { 16412, 0x00000BF1 }, /* GL_LOGIC_OP */
- { 16424, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
- { 16441, 0x00008CA1 }, /* GL_LOWER_LEFT */
- { 16455, 0x00008DF0 }, /* GL_LOW_FLOAT */
- { 16468, 0x00008DF3 }, /* GL_LOW_INT */
- { 16479, 0x00001909 }, /* GL_LUMINANCE */
- { 16492, 0x00008041 }, /* GL_LUMINANCE12 */
- { 16507, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
- { 16530, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
- { 16557, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
- { 16579, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
- { 16605, 0x00008041 }, /* GL_LUMINANCE12_EXT */
- { 16624, 0x00008042 }, /* GL_LUMINANCE16 */
- { 16639, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
- { 16662, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
- { 16689, 0x00008042 }, /* GL_LUMINANCE16_EXT */
- { 16708, 0x0000803F }, /* GL_LUMINANCE4 */
- { 16722, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
- { 16743, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
- { 16768, 0x0000803F }, /* GL_LUMINANCE4_EXT */
- { 16786, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
- { 16807, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
- { 16832, 0x00008040 }, /* GL_LUMINANCE8 */
- { 16846, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
- { 16867, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
- { 16892, 0x00008040 }, /* GL_LUMINANCE8_EXT */
- { 16910, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
- { 16929, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
- { 16945, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
- { 16965, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
- { 16987, 0x00000D91 }, /* GL_MAP1_INDEX */
- { 17001, 0x00000D92 }, /* GL_MAP1_NORMAL */
- { 17016, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
- { 17040, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
- { 17064, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
- { 17088, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
- { 17112, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
- { 17129, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
- { 17146, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- { 17174, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- { 17203, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- { 17232, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- { 17261, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- { 17290, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- { 17319, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- { 17348, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- { 17376, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- { 17404, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- { 17432, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- { 17460, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- { 17488, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- { 17516, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- { 17544, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- { 17572, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- { 17600, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
- { 17616, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
- { 17636, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
- { 17658, 0x00000DB1 }, /* GL_MAP2_INDEX */
- { 17672, 0x00000DB2 }, /* GL_MAP2_NORMAL */
- { 17687, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
- { 17711, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
- { 17735, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
- { 17759, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
- { 17783, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
- { 17800, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
- { 17817, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- { 17845, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- { 17874, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- { 17903, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- { 17932, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- { 17961, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- { 17990, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- { 18019, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- { 18047, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- { 18075, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- { 18103, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- { 18131, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- { 18159, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- { 18187, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
- { 18215, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- { 18243, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- { 18271, 0x00000D10 }, /* GL_MAP_COLOR */
- { 18284, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */
- { 18310, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */
- { 18339, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */
- { 18367, 0x00000001 }, /* GL_MAP_READ_BIT */
- { 18383, 0x00000D11 }, /* GL_MAP_STENCIL */
- { 18398, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */
- { 18424, 0x00000002 }, /* GL_MAP_WRITE_BIT */
- { 18441, 0x000088C0 }, /* GL_MATRIX0_ARB */
- { 18456, 0x00008630 }, /* GL_MATRIX0_NV */
- { 18470, 0x000088CA }, /* GL_MATRIX10_ARB */
- { 18486, 0x000088CB }, /* GL_MATRIX11_ARB */
- { 18502, 0x000088CC }, /* GL_MATRIX12_ARB */
- { 18518, 0x000088CD }, /* GL_MATRIX13_ARB */
- { 18534, 0x000088CE }, /* GL_MATRIX14_ARB */
- { 18550, 0x000088CF }, /* GL_MATRIX15_ARB */
- { 18566, 0x000088D0 }, /* GL_MATRIX16_ARB */
- { 18582, 0x000088D1 }, /* GL_MATRIX17_ARB */
- { 18598, 0x000088D2 }, /* GL_MATRIX18_ARB */
- { 18614, 0x000088D3 }, /* GL_MATRIX19_ARB */
- { 18630, 0x000088C1 }, /* GL_MATRIX1_ARB */
- { 18645, 0x00008631 }, /* GL_MATRIX1_NV */
- { 18659, 0x000088D4 }, /* GL_MATRIX20_ARB */
- { 18675, 0x000088D5 }, /* GL_MATRIX21_ARB */
- { 18691, 0x000088D6 }, /* GL_MATRIX22_ARB */
- { 18707, 0x000088D7 }, /* GL_MATRIX23_ARB */
- { 18723, 0x000088D8 }, /* GL_MATRIX24_ARB */
- { 18739, 0x000088D9 }, /* GL_MATRIX25_ARB */
- { 18755, 0x000088DA }, /* GL_MATRIX26_ARB */
- { 18771, 0x000088DB }, /* GL_MATRIX27_ARB */
- { 18787, 0x000088DC }, /* GL_MATRIX28_ARB */
- { 18803, 0x000088DD }, /* GL_MATRIX29_ARB */
- { 18819, 0x000088C2 }, /* GL_MATRIX2_ARB */
- { 18834, 0x00008632 }, /* GL_MATRIX2_NV */
- { 18848, 0x000088DE }, /* GL_MATRIX30_ARB */
- { 18864, 0x000088DF }, /* GL_MATRIX31_ARB */
- { 18880, 0x000088C3 }, /* GL_MATRIX3_ARB */
- { 18895, 0x00008633 }, /* GL_MATRIX3_NV */
- { 18909, 0x000088C4 }, /* GL_MATRIX4_ARB */
- { 18924, 0x00008634 }, /* GL_MATRIX4_NV */
- { 18938, 0x000088C5 }, /* GL_MATRIX5_ARB */
- { 18953, 0x00008635 }, /* GL_MATRIX5_NV */
- { 18967, 0x000088C6 }, /* GL_MATRIX6_ARB */
- { 18982, 0x00008636 }, /* GL_MATRIX6_NV */
- { 18996, 0x000088C7 }, /* GL_MATRIX7_ARB */
- { 19011, 0x00008637 }, /* GL_MATRIX7_NV */
- { 19025, 0x000088C8 }, /* GL_MATRIX8_ARB */
- { 19040, 0x000088C9 }, /* GL_MATRIX9_ARB */
- { 19055, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
- { 19081, 0x00008B9E }, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */
- { 19122, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_OES */
- { 19148, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- { 19182, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_OES */
- { 19216, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- { 19247, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_OES */
- { 19278, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- { 19311, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_OES */
- { 19344, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- { 19375, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_OES */
- { 19406, 0x00000BA0 }, /* GL_MATRIX_MODE */
- { 19421, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
- { 19443, 0x00008840 }, /* GL_MATRIX_PALETTE_OES */
- { 19465, 0x00008008 }, /* GL_MAX */
- { 19472, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
- { 19495, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE_OES */
- { 19522, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
- { 19554, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
- { 19580, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- { 19613, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- { 19639, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 19673, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
- { 19692, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */
- { 19717, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
- { 19746, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- { 19778, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
- { 19814, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- { 19850, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
- { 19890, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
- { 19916, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
- { 19946, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
- { 19971, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
- { 20000, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- { 20029, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
- { 20062, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES */
- { 20095, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
- { 20115, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
- { 20139, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
- { 20163, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
- { 20187, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
- { 20212, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
- { 20230, 0x00008008 }, /* GL_MAX_EXT */
- { 20241, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- { 20276, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
- { 20315, 0x00008DFD }, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */
- { 20347, 0x00000D31 }, /* GL_MAX_LIGHTS */
- { 20361, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
- { 20381, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- { 20419, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- { 20448, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
- { 20472, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
- { 20500, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_OES */
- { 20528, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
- { 20551, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 20588, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 20624, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- { 20651, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- { 20680, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- { 20714, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
- { 20750, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- { 20777, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- { 20809, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- { 20845, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- { 20874, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- { 20903, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
- { 20931, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- { 20969, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 21013, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 21056, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 21090, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 21129, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 21166, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 21204, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 21247, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 21290, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- { 21320, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- { 21351, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 21387, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 21423, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
- { 21453, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
- { 21487, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
- { 21520, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */
- { 21545, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
- { 21574, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_OES */
- { 21603, 0x00008D57 }, /* GL_MAX_SAMPLES */
- { 21618, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */
- { 21637, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */
- { 21664, 0x00008504 }, /* GL_MAX_SHININESS_NV */
- { 21684, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
- { 21708, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
- { 21730, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
- { 21756, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- { 21783, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
- { 21814, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
- { 21838, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS_EXT */
- { 21866, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- { 21900, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
- { 21920, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
- { 21947, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
- { 21968, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
- { 21993, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
- { 22018, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
- { 22053, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */
- { 22106, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */
- { 22153, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */
- { 22203, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
- { 22225, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
- { 22251, 0x00008DFC }, /* GL_MAX_VARYING_VECTORS */
- { 22274, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
- { 22296, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
- { 22322, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- { 22356, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
- { 22394, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- { 22427, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
- { 22464, 0x00008DFB }, /* GL_MAX_VERTEX_UNIFORM_VECTORS */
- { 22494, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
- { 22518, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_OES */
- { 22542, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
- { 22563, 0x00008DF1 }, /* GL_MEDIUM_FLOAT */
- { 22579, 0x00008DF4 }, /* GL_MEDIUM_INT */
- { 22593, 0x00008007 }, /* GL_MIN */
- { 22600, 0x0000802E }, /* GL_MINMAX */
- { 22610, 0x0000802E }, /* GL_MINMAX_EXT */
- { 22624, 0x0000802F }, /* GL_MINMAX_FORMAT */
- { 22641, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
- { 22662, 0x00008030 }, /* GL_MINMAX_SINK */
- { 22677, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
- { 22696, 0x00008007 }, /* GL_MIN_EXT */
- { 22707, 0x00008370 }, /* GL_MIRRORED_REPEAT */
- { 22726, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
- { 22749, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
- { 22772, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
- { 22792, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
- { 22812, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- { 22842, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
- { 22870, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- { 22898, 0x00001700 }, /* GL_MODELVIEW */
- { 22911, 0x00001700 }, /* GL_MODELVIEW0_ARB */
- { 22929, 0x0000872A }, /* GL_MODELVIEW10_ARB */
- { 22948, 0x0000872B }, /* GL_MODELVIEW11_ARB */
- { 22967, 0x0000872C }, /* GL_MODELVIEW12_ARB */
- { 22986, 0x0000872D }, /* GL_MODELVIEW13_ARB */
- { 23005, 0x0000872E }, /* GL_MODELVIEW14_ARB */
- { 23024, 0x0000872F }, /* GL_MODELVIEW15_ARB */
- { 23043, 0x00008730 }, /* GL_MODELVIEW16_ARB */
- { 23062, 0x00008731 }, /* GL_MODELVIEW17_ARB */
- { 23081, 0x00008732 }, /* GL_MODELVIEW18_ARB */
- { 23100, 0x00008733 }, /* GL_MODELVIEW19_ARB */
- { 23119, 0x0000850A }, /* GL_MODELVIEW1_ARB */
- { 23137, 0x00008734 }, /* GL_MODELVIEW20_ARB */
- { 23156, 0x00008735 }, /* GL_MODELVIEW21_ARB */
- { 23175, 0x00008736 }, /* GL_MODELVIEW22_ARB */
- { 23194, 0x00008737 }, /* GL_MODELVIEW23_ARB */
- { 23213, 0x00008738 }, /* GL_MODELVIEW24_ARB */
- { 23232, 0x00008739 }, /* GL_MODELVIEW25_ARB */
- { 23251, 0x0000873A }, /* GL_MODELVIEW26_ARB */
- { 23270, 0x0000873B }, /* GL_MODELVIEW27_ARB */
- { 23289, 0x0000873C }, /* GL_MODELVIEW28_ARB */
- { 23308, 0x0000873D }, /* GL_MODELVIEW29_ARB */
- { 23327, 0x00008722 }, /* GL_MODELVIEW2_ARB */
- { 23345, 0x0000873E }, /* GL_MODELVIEW30_ARB */
- { 23364, 0x0000873F }, /* GL_MODELVIEW31_ARB */
- { 23383, 0x00008723 }, /* GL_MODELVIEW3_ARB */
- { 23401, 0x00008724 }, /* GL_MODELVIEW4_ARB */
- { 23419, 0x00008725 }, /* GL_MODELVIEW5_ARB */
- { 23437, 0x00008726 }, /* GL_MODELVIEW6_ARB */
- { 23455, 0x00008727 }, /* GL_MODELVIEW7_ARB */
- { 23473, 0x00008728 }, /* GL_MODELVIEW8_ARB */
- { 23491, 0x00008729 }, /* GL_MODELVIEW9_ARB */
- { 23509, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
- { 23529, 0x0000898D }, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */
- { 23571, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
- { 23598, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
- { 23623, 0x00002100 }, /* GL_MODULATE */
- { 23635, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
- { 23655, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
- { 23682, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
- { 23707, 0x00000103 }, /* GL_MULT */
- { 23715, 0x0000809D }, /* GL_MULTISAMPLE */
- { 23730, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
- { 23750, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
- { 23769, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
- { 23788, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
- { 23812, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
- { 23835, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- { 23865, 0x00002A25 }, /* GL_N3F_V3F */
- { 23876, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
- { 23896, 0x0000150E }, /* GL_NAND */
- { 23904, 0x00002600 }, /* GL_NEAREST */
- { 23915, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- { 23946, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- { 23978, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
- { 24003, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
- { 24029, 0x00000200 }, /* GL_NEVER */
- { 24038, 0x00001102 }, /* GL_NICEST */
- { 24048, 0x00000000 }, /* GL_NONE */
- { 24056, 0x00000000 }, /* GL_NONE_OES */
- { 24068, 0x00001505 }, /* GL_NOOP */
- { 24076, 0x00001508 }, /* GL_NOR */
- { 24083, 0x00000BA1 }, /* GL_NORMALIZE */
- { 24096, 0x00008075 }, /* GL_NORMAL_ARRAY */
- { 24112, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
- { 24143, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
- { 24178, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
- { 24202, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
- { 24225, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
- { 24246, 0x00008511 }, /* GL_NORMAL_MAP */
- { 24260, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
- { 24278, 0x00008511 }, /* GL_NORMAL_MAP_NV */
- { 24295, 0x00008511 }, /* GL_NORMAL_MAP_OES */
- { 24313, 0x00000205 }, /* GL_NOTEQUAL */
- { 24325, 0x00000000 }, /* GL_NO_ERROR */
- { 24337, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
- { 24371, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
- { 24409, 0x000087FE }, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */
- { 24443, 0x00008DF9 }, /* GL_NUM_SHADER_BINARY_FORMATS */
- { 24472, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
- { 24504, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
- { 24546, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
- { 24576, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
- { 24616, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
- { 24647, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
- { 24676, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
- { 24704, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
- { 24734, 0x00002401 }, /* GL_OBJECT_LINEAR */
- { 24751, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
- { 24777, 0x00002501 }, /* GL_OBJECT_PLANE */
- { 24793, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
- { 24828, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
- { 24850, 0x00009112 }, /* GL_OBJECT_TYPE */
- { 24865, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
- { 24884, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
- { 24914, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
- { 24935, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
- { 24963, 0x00000001 }, /* GL_ONE */
- { 24970, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
- { 24998, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
- { 25030, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
- { 25058, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
- { 25090, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
- { 25113, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
- { 25136, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
- { 25159, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
- { 25182, 0x00008598 }, /* GL_OPERAND0_ALPHA */
- { 25200, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
- { 25222, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
- { 25244, 0x00008590 }, /* GL_OPERAND0_RGB */
- { 25260, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
- { 25280, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
- { 25300, 0x00008599 }, /* GL_OPERAND1_ALPHA */
- { 25318, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
- { 25340, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
- { 25362, 0x00008591 }, /* GL_OPERAND1_RGB */
- { 25378, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
- { 25398, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
- { 25418, 0x0000859A }, /* GL_OPERAND2_ALPHA */
- { 25436, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
- { 25458, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
- { 25480, 0x00008592 }, /* GL_OPERAND2_RGB */
- { 25496, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
- { 25516, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
- { 25536, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
- { 25557, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
- { 25576, 0x00001507 }, /* GL_OR */
- { 25582, 0x00000A01 }, /* GL_ORDER */
- { 25591, 0x0000150D }, /* GL_OR_INVERTED */
- { 25606, 0x0000150B }, /* GL_OR_REVERSE */
- { 25620, 0x00000505 }, /* GL_OUT_OF_MEMORY */
- { 25637, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
- { 25655, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
- { 25676, 0x00008758 }, /* GL_PACK_INVERT_MESA */
- { 25696, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
- { 25714, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
- { 25733, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
- { 25753, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
- { 25773, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
- { 25791, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
- { 25810, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
- { 25835, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
- { 25859, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
- { 25880, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
- { 25902, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
- { 25924, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
- { 25949, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
- { 25973, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
- { 25994, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
- { 26016, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
- { 26038, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
- { 26060, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
- { 26091, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
- { 26111, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- { 26136, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
- { 26156, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- { 26181, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
- { 26201, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- { 26226, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
- { 26246, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- { 26271, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
- { 26291, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- { 26316, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
- { 26336, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- { 26361, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
- { 26381, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- { 26406, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
- { 26426, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- { 26451, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
- { 26471, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- { 26496, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
- { 26516, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- { 26541, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
- { 26559, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */
- { 26580, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */
- { 26609, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
- { 26642, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
- { 26667, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */
- { 26690, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
- { 26721, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
- { 26756, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
- { 26783, 0x00001B00 }, /* GL_POINT */
- { 26792, 0x00000000 }, /* GL_POINTS */
- { 26802, 0x00000002 }, /* GL_POINT_BIT */
- { 26815, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
- { 26845, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
- { 26879, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
- { 26913, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
- { 26948, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
- { 26977, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
- { 27010, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
- { 27043, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
- { 27077, 0x00000B11 }, /* GL_POINT_SIZE */
- { 27091, 0x00008B9F }, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */
- { 27130, 0x00008B9C }, /* GL_POINT_SIZE_ARRAY_OES */
- { 27154, 0x0000898C }, /* GL_POINT_SIZE_ARRAY_POINTER_OES */
- { 27186, 0x0000898B }, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */
- { 27217, 0x0000898A }, /* GL_POINT_SIZE_ARRAY_TYPE_OES */
- { 27246, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
- { 27272, 0x00008127 }, /* GL_POINT_SIZE_MAX */
- { 27290, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
- { 27312, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
- { 27334, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
- { 27357, 0x00008126 }, /* GL_POINT_SIZE_MIN */
- { 27375, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
- { 27397, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
- { 27419, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
- { 27442, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
- { 27462, 0x00000B10 }, /* GL_POINT_SMOOTH */
- { 27478, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
- { 27499, 0x00008861 }, /* GL_POINT_SPRITE */
- { 27515, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
- { 27535, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
- { 27564, 0x00008861 }, /* GL_POINT_SPRITE_NV */
- { 27583, 0x00008861 }, /* GL_POINT_SPRITE_OES */
- { 27603, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
- { 27629, 0x00000701 }, /* GL_POINT_TOKEN */
- { 27644, 0x00000009 }, /* GL_POLYGON */
- { 27655, 0x00000008 }, /* GL_POLYGON_BIT */
- { 27670, 0x00000B40 }, /* GL_POLYGON_MODE */
- { 27686, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
- { 27709, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
- { 27734, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
- { 27757, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
- { 27780, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
- { 27804, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
- { 27828, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
- { 27846, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
- { 27869, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
- { 27888, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
- { 27911, 0x00000703 }, /* GL_POLYGON_TOKEN */
- { 27928, 0x00001203 }, /* GL_POSITION */
- { 27940, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- { 27972, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
- { 28008, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- { 28041, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
- { 28078, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- { 28109, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
- { 28144, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- { 28176, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
- { 28212, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- { 28245, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- { 28277, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
- { 28313, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- { 28346, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
- { 28383, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- { 28413, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
- { 28447, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- { 28478, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
- { 28513, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- { 28544, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
- { 28579, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- { 28611, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
- { 28647, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- { 28677, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
- { 28711, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- { 28742, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
- { 28777, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- { 28809, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- { 28840, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
- { 28875, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- { 28907, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
- { 28943, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
- { 28972, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
- { 29005, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
- { 29035, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
- { 29069, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- { 29108, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- { 29141, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- { 29181, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- { 29215, 0x00008578 }, /* GL_PREVIOUS */
- { 29227, 0x00008578 }, /* GL_PREVIOUS_ARB */
- { 29243, 0x00008578 }, /* GL_PREVIOUS_EXT */
- { 29259, 0x00008577 }, /* GL_PRIMARY_COLOR */
- { 29276, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
- { 29297, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
- { 29318, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED_EXT */
- { 29346, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 29379, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 29411, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
- { 29434, 0x000087FF }, /* GL_PROGRAM_BINARY_FORMATS_OES */
- { 29464, 0x00008741 }, /* GL_PROGRAM_BINARY_LENGTH_OES */
- { 29493, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
- { 29516, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
- { 29546, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
- { 29575, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
- { 29603, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
- { 29625, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- { 29653, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- { 29681, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
- { 29703, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
- { 29724, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 29764, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 29803, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 29833, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 29868, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 29901, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 29935, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 29974, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 30013, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
- { 30035, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
- { 30061, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
- { 30085, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
- { 30108, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
- { 30130, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
- { 30151, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
- { 30172, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
- { 30199, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 30231, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 30263, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- { 30298, 0x00001701 }, /* GL_PROJECTION */
- { 30312, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
- { 30333, 0x0000898E }, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */
- { 30376, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
- { 30402, 0x00008E4F }, /* GL_PROVOKING_VERTEX */
- { 30422, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */
- { 30446, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
- { 30467, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
- { 30486, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
- { 30509, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
- { 30548, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- { 30586, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
- { 30606, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
- { 30636, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
- { 30660, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
- { 30680, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
- { 30710, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
- { 30734, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
- { 30754, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- { 30787, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
- { 30813, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
- { 30843, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- { 30874, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
- { 30904, 0x00008A1D }, /* GL_PURGEABLE_APPLE */
- { 30923, 0x00002003 }, /* GL_Q */
- { 30928, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
- { 30953, 0x00000007 }, /* GL_QUADS */
- { 30962, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
- { 31006, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
- { 31054, 0x00008614 }, /* GL_QUAD_MESH_SUN */
- { 31071, 0x00000008 }, /* GL_QUAD_STRIP */
- { 31085, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */
- { 31115, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */
- { 31142, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
- { 31164, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
- { 31190, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */
- { 31210, 0x00008866 }, /* GL_QUERY_RESULT */
- { 31226, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
- { 31246, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
- { 31272, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
- { 31302, 0x00008E13 }, /* GL_QUERY_WAIT_NV */
- { 31319, 0x00002002 }, /* GL_R */
- { 31324, 0x00002A10 }, /* GL_R3_G3_B2 */
- { 31336, 0x00008C89 }, /* GL_RASTERIZER_DISCARD_EXT */
- { 31362, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- { 31395, 0x00000C02 }, /* GL_READ_BUFFER */
- { 31410, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */
- { 31430, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */
- { 31458, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
- { 31490, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
- { 31514, 0x000088B8 }, /* GL_READ_ONLY */
- { 31527, 0x000088B8 }, /* GL_READ_ONLY_ARB */
- { 31544, 0x000088BA }, /* GL_READ_WRITE */
- { 31558, 0x000088BA }, /* GL_READ_WRITE_ARB */
- { 31576, 0x00001903 }, /* GL_RED */
- { 31583, 0x00008016 }, /* GL_REDUCE */
- { 31593, 0x00008016 }, /* GL_REDUCE_EXT */
- { 31607, 0x00000D15 }, /* GL_RED_BIAS */
- { 31619, 0x00000D52 }, /* GL_RED_BITS */
- { 31631, 0x00000D14 }, /* GL_RED_SCALE */
- { 31644, 0x00008512 }, /* GL_REFLECTION_MAP */
- { 31662, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
- { 31684, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
- { 31705, 0x00008512 }, /* GL_REFLECTION_MAP_OES */
- { 31727, 0x00008A19 }, /* GL_RELEASED_APPLE */
- { 31745, 0x00001C00 }, /* GL_RENDER */
- { 31755, 0x00008D41 }, /* GL_RENDERBUFFER */
- { 31771, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */
- { 31798, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE_OES */
- { 31829, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */
- { 31853, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
- { 31881, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_OES */
- { 31909, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */
- { 31935, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE_OES */
- { 31965, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */
- { 31992, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE_OES */
- { 32023, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
- { 32043, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */
- { 32070, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE_OES */
- { 32101, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */
- { 32124, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
- { 32151, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_OES */
- { 32178, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
- { 32210, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
- { 32246, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_OES */
- { 32282, 0x00008D41 }, /* GL_RENDERBUFFER_OES */
- { 32302, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */
- { 32327, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE_OES */
- { 32356, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */
- { 32380, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */
- { 32408, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */
- { 32437, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE_OES */
- { 32470, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */
- { 32492, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
- { 32518, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_OES */
- { 32544, 0x00001F01 }, /* GL_RENDERER */
- { 32556, 0x00000C40 }, /* GL_RENDER_MODE */
- { 32571, 0x00002901 }, /* GL_REPEAT */
- { 32581, 0x00001E01 }, /* GL_REPLACE */
- { 32592, 0x00008062 }, /* GL_REPLACE_EXT */
- { 32607, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
- { 32630, 0x0000803A }, /* GL_RESCALE_NORMAL */
- { 32648, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
- { 32670, 0x00008A1B }, /* GL_RETAINED_APPLE */
- { 32688, 0x00000102 }, /* GL_RETURN */
- { 32698, 0x00001907 }, /* GL_RGB */
- { 32705, 0x00008052 }, /* GL_RGB10 */
- { 32714, 0x00008059 }, /* GL_RGB10_A2 */
- { 32726, 0x00008059 }, /* GL_RGB10_A2_EXT */
- { 32742, 0x00008052 }, /* GL_RGB10_EXT */
- { 32755, 0x00008053 }, /* GL_RGB12 */
- { 32764, 0x00008053 }, /* GL_RGB12_EXT */
- { 32777, 0x00008054 }, /* GL_RGB16 */
- { 32786, 0x00008054 }, /* GL_RGB16_EXT */
- { 32799, 0x0000804E }, /* GL_RGB2_EXT */
- { 32811, 0x0000804F }, /* GL_RGB4 */
- { 32819, 0x0000804F }, /* GL_RGB4_EXT */
- { 32831, 0x000083A1 }, /* GL_RGB4_S3TC */
- { 32844, 0x00008050 }, /* GL_RGB5 */
- { 32852, 0x00008D62 }, /* GL_RGB565 */
- { 32862, 0x00008D62 }, /* GL_RGB565_OES */
- { 32876, 0x00008057 }, /* GL_RGB5_A1 */
- { 32887, 0x00008057 }, /* GL_RGB5_A1_EXT */
- { 32902, 0x00008057 }, /* GL_RGB5_A1_OES */
- { 32917, 0x00008050 }, /* GL_RGB5_EXT */
- { 32929, 0x00008051 }, /* GL_RGB8 */
- { 32937, 0x00008051 }, /* GL_RGB8_EXT */
- { 32949, 0x00008051 }, /* GL_RGB8_OES */
- { 32961, 0x00001908 }, /* GL_RGBA */
- { 32969, 0x0000805A }, /* GL_RGBA12 */
- { 32979, 0x0000805A }, /* GL_RGBA12_EXT */
- { 32993, 0x0000805B }, /* GL_RGBA16 */
- { 33003, 0x0000805B }, /* GL_RGBA16_EXT */
- { 33017, 0x00008055 }, /* GL_RGBA2 */
- { 33026, 0x00008055 }, /* GL_RGBA2_EXT */
- { 33039, 0x00008056 }, /* GL_RGBA4 */
- { 33048, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
- { 33067, 0x00008056 }, /* GL_RGBA4_EXT */
- { 33080, 0x00008056 }, /* GL_RGBA4_OES */
- { 33093, 0x000083A3 }, /* GL_RGBA4_S3TC */
- { 33107, 0x00008058 }, /* GL_RGBA8 */
- { 33116, 0x00008058 }, /* GL_RGBA8_EXT */
- { 33129, 0x00008058 }, /* GL_RGBA8_OES */
- { 33142, 0x00008F97 }, /* GL_RGBA8_SNORM */
- { 33157, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
- { 33175, 0x00000C31 }, /* GL_RGBA_MODE */
- { 33188, 0x000083A2 }, /* GL_RGBA_S3TC */
- { 33201, 0x00008F93 }, /* GL_RGBA_SNORM */
- { 33215, 0x000083A0 }, /* GL_RGB_S3TC */
- { 33227, 0x00008573 }, /* GL_RGB_SCALE */
- { 33240, 0x00008573 }, /* GL_RGB_SCALE_ARB */
- { 33257, 0x00008573 }, /* GL_RGB_SCALE_EXT */
- { 33274, 0x00000407 }, /* GL_RIGHT */
- { 33283, 0x00002000 }, /* GL_S */
- { 33288, 0x00008B5D }, /* GL_SAMPLER_1D */
- { 33302, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
- { 33323, 0x00008B5E }, /* GL_SAMPLER_2D */
- { 33337, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
- { 33358, 0x00008B5F }, /* GL_SAMPLER_3D */
- { 33372, 0x00008B5F }, /* GL_SAMPLER_3D_OES */
- { 33390, 0x00008B60 }, /* GL_SAMPLER_CUBE */
- { 33406, 0x000080A9 }, /* GL_SAMPLES */
- { 33417, 0x000086B4 }, /* GL_SAMPLES_3DFX */
- { 33433, 0x000080A9 }, /* GL_SAMPLES_ARB */
- { 33448, 0x00008914 }, /* GL_SAMPLES_PASSED */
- { 33466, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
- { 33488, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- { 33516, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
- { 33548, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
- { 33571, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
- { 33598, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
- { 33616, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
- { 33639, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
- { 33661, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
- { 33680, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
- { 33703, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
- { 33729, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
- { 33759, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
- { 33784, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
- { 33813, 0x00080000 }, /* GL_SCISSOR_BIT */
- { 33828, 0x00000C10 }, /* GL_SCISSOR_BOX */
- { 33843, 0x00000C11 }, /* GL_SCISSOR_TEST */
- { 33859, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
- { 33884, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- { 33924, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
- { 33968, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- { 34001, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- { 34031, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- { 34063, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- { 34093, 0x00001C02 }, /* GL_SELECT */
- { 34103, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
- { 34131, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
- { 34156, 0x00008012 }, /* GL_SEPARABLE_2D */
- { 34172, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS_EXT */
- { 34196, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
- { 34223, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
- { 34254, 0x0000150F }, /* GL_SET */
- { 34261, 0x00008DF8 }, /* GL_SHADER_BINARY_FORMATS */
- { 34286, 0x00008DFA }, /* GL_SHADER_COMPILER */
- { 34305, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
- { 34326, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
- { 34350, 0x00008B4F }, /* GL_SHADER_TYPE */
- { 34365, 0x00000B54 }, /* GL_SHADE_MODEL */
- { 34380, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
- { 34408, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
- { 34431, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- { 34461, 0x00001601 }, /* GL_SHININESS */
- { 34474, 0x00001402 }, /* GL_SHORT */
- { 34483, 0x00009119 }, /* GL_SIGNALED */
- { 34495, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */
- { 34516, 0x000081F9 }, /* GL_SINGLE_COLOR */
- { 34532, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
- { 34552, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
- { 34571, 0x00008C46 }, /* GL_SLUMINANCE */
- { 34585, 0x00008C47 }, /* GL_SLUMINANCE8 */
- { 34600, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */
- { 34622, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */
- { 34642, 0x00001D01 }, /* GL_SMOOTH */
- { 34652, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
- { 34685, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
- { 34712, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
- { 34745, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
- { 34772, 0x00008588 }, /* GL_SOURCE0_ALPHA */
- { 34789, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
- { 34810, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
- { 34831, 0x00008580 }, /* GL_SOURCE0_RGB */
- { 34846, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
- { 34865, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
- { 34884, 0x00008589 }, /* GL_SOURCE1_ALPHA */
- { 34901, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
- { 34922, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
- { 34943, 0x00008581 }, /* GL_SOURCE1_RGB */
- { 34958, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
- { 34977, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
- { 34996, 0x0000858A }, /* GL_SOURCE2_ALPHA */
- { 35013, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
- { 35034, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
- { 35055, 0x00008582 }, /* GL_SOURCE2_RGB */
- { 35070, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
- { 35089, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
- { 35108, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
- { 35128, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
- { 35146, 0x00001202 }, /* GL_SPECULAR */
- { 35158, 0x00002402 }, /* GL_SPHERE_MAP */
- { 35172, 0x00001206 }, /* GL_SPOT_CUTOFF */
- { 35187, 0x00001204 }, /* GL_SPOT_DIRECTION */
- { 35205, 0x00001205 }, /* GL_SPOT_EXPONENT */
- { 35222, 0x00008588 }, /* GL_SRC0_ALPHA */
- { 35236, 0x00008580 }, /* GL_SRC0_RGB */
- { 35248, 0x00008589 }, /* GL_SRC1_ALPHA */
- { 35262, 0x00008581 }, /* GL_SRC1_RGB */
- { 35274, 0x0000858A }, /* GL_SRC2_ALPHA */
- { 35288, 0x00008582 }, /* GL_SRC2_RGB */
- { 35300, 0x00000302 }, /* GL_SRC_ALPHA */
- { 35313, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
- { 35335, 0x00000300 }, /* GL_SRC_COLOR */
- { 35348, 0x00008C40 }, /* GL_SRGB */
- { 35356, 0x00008C41 }, /* GL_SRGB8 */
- { 35365, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */
- { 35381, 0x00008C42 }, /* GL_SRGB_ALPHA */
- { 35395, 0x00000503 }, /* GL_STACK_OVERFLOW */
- { 35413, 0x00000504 }, /* GL_STACK_UNDERFLOW */
- { 35432, 0x000088E6 }, /* GL_STATIC_COPY */
- { 35447, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
- { 35466, 0x000088E4 }, /* GL_STATIC_DRAW */
- { 35481, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
- { 35500, 0x000088E5 }, /* GL_STATIC_READ */
- { 35515, 0x000088E5 }, /* GL_STATIC_READ_ARB */
- { 35534, 0x00001802 }, /* GL_STENCIL */
- { 35545, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */
- { 35567, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
- { 35593, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_OES */
- { 35619, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
- { 35640, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
- { 35665, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
- { 35686, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
- { 35711, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- { 35743, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
- { 35779, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- { 35811, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
- { 35847, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
- { 35867, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
- { 35894, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
- { 35920, 0x00000D57 }, /* GL_STENCIL_BITS */
- { 35936, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
- { 35958, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
- { 35981, 0x00000B94 }, /* GL_STENCIL_FAIL */
- { 35997, 0x00000B92 }, /* GL_STENCIL_FUNC */
- { 36013, 0x00001901 }, /* GL_STENCIL_INDEX */
- { 36030, 0x00008D46 }, /* GL_STENCIL_INDEX1 */
- { 36048, 0x00008D49 }, /* GL_STENCIL_INDEX16 */
- { 36067, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
- { 36090, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
- { 36112, 0x00008D46 }, /* GL_STENCIL_INDEX1_OES */
- { 36134, 0x00008D47 }, /* GL_STENCIL_INDEX4 */
- { 36152, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
- { 36174, 0x00008D47 }, /* GL_STENCIL_INDEX4_OES */
- { 36196, 0x00008D48 }, /* GL_STENCIL_INDEX8 */
- { 36214, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
- { 36236, 0x00008D48 }, /* GL_STENCIL_INDEX8_OES */
- { 36258, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
- { 36279, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
- { 36306, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
- { 36333, 0x00000B97 }, /* GL_STENCIL_REF */
- { 36348, 0x00000B90 }, /* GL_STENCIL_TEST */
- { 36364, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
- { 36393, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
- { 36415, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
- { 36436, 0x00000C33 }, /* GL_STEREO */
- { 36446, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */
- { 36470, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */
- { 36495, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */
- { 36519, 0x000088E2 }, /* GL_STREAM_COPY */
- { 36534, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
- { 36553, 0x000088E0 }, /* GL_STREAM_DRAW */
- { 36568, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
- { 36587, 0x000088E1 }, /* GL_STREAM_READ */
- { 36602, 0x000088E1 }, /* GL_STREAM_READ_ARB */
- { 36621, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
- { 36638, 0x000084E7 }, /* GL_SUBTRACT */
- { 36650, 0x000084E7 }, /* GL_SUBTRACT_ARB */
- { 36666, 0x00009113 }, /* GL_SYNC_CONDITION */
- { 36684, 0x00009116 }, /* GL_SYNC_FENCE */
- { 36698, 0x00009115 }, /* GL_SYNC_FLAGS */
- { 36712, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */
- { 36739, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
- { 36769, 0x00009114 }, /* GL_SYNC_STATUS */
- { 36784, 0x00002001 }, /* GL_T */
- { 36789, 0x00002A2A }, /* GL_T2F_C3F_V3F */
- { 36804, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
- { 36823, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
- { 36839, 0x00002A2B }, /* GL_T2F_N3F_V3F */
- { 36854, 0x00002A27 }, /* GL_T2F_V3F */
- { 36865, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
- { 36884, 0x00002A28 }, /* GL_T4F_V4F */
- { 36895, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
- { 36918, 0x00001702 }, /* GL_TEXTURE */
- { 36929, 0x000084C0 }, /* GL_TEXTURE0 */
- { 36941, 0x000084C0 }, /* GL_TEXTURE0_ARB */
- { 36957, 0x000084C1 }, /* GL_TEXTURE1 */
- { 36969, 0x000084CA }, /* GL_TEXTURE10 */
- { 36982, 0x000084CA }, /* GL_TEXTURE10_ARB */
- { 36999, 0x000084CB }, /* GL_TEXTURE11 */
- { 37012, 0x000084CB }, /* GL_TEXTURE11_ARB */
- { 37029, 0x000084CC }, /* GL_TEXTURE12 */
- { 37042, 0x000084CC }, /* GL_TEXTURE12_ARB */
- { 37059, 0x000084CD }, /* GL_TEXTURE13 */
- { 37072, 0x000084CD }, /* GL_TEXTURE13_ARB */
- { 37089, 0x000084CE }, /* GL_TEXTURE14 */
- { 37102, 0x000084CE }, /* GL_TEXTURE14_ARB */
- { 37119, 0x000084CF }, /* GL_TEXTURE15 */
- { 37132, 0x000084CF }, /* GL_TEXTURE15_ARB */
- { 37149, 0x000084D0 }, /* GL_TEXTURE16 */
- { 37162, 0x000084D0 }, /* GL_TEXTURE16_ARB */
- { 37179, 0x000084D1 }, /* GL_TEXTURE17 */
- { 37192, 0x000084D1 }, /* GL_TEXTURE17_ARB */
- { 37209, 0x000084D2 }, /* GL_TEXTURE18 */
- { 37222, 0x000084D2 }, /* GL_TEXTURE18_ARB */
- { 37239, 0x000084D3 }, /* GL_TEXTURE19 */
- { 37252, 0x000084D3 }, /* GL_TEXTURE19_ARB */
- { 37269, 0x000084C1 }, /* GL_TEXTURE1_ARB */
- { 37285, 0x000084C2 }, /* GL_TEXTURE2 */
- { 37297, 0x000084D4 }, /* GL_TEXTURE20 */
- { 37310, 0x000084D4 }, /* GL_TEXTURE20_ARB */
- { 37327, 0x000084D5 }, /* GL_TEXTURE21 */
- { 37340, 0x000084D5 }, /* GL_TEXTURE21_ARB */
- { 37357, 0x000084D6 }, /* GL_TEXTURE22 */
- { 37370, 0x000084D6 }, /* GL_TEXTURE22_ARB */
- { 37387, 0x000084D7 }, /* GL_TEXTURE23 */
- { 37400, 0x000084D7 }, /* GL_TEXTURE23_ARB */
- { 37417, 0x000084D8 }, /* GL_TEXTURE24 */
- { 37430, 0x000084D8 }, /* GL_TEXTURE24_ARB */
- { 37447, 0x000084D9 }, /* GL_TEXTURE25 */
- { 37460, 0x000084D9 }, /* GL_TEXTURE25_ARB */
- { 37477, 0x000084DA }, /* GL_TEXTURE26 */
- { 37490, 0x000084DA }, /* GL_TEXTURE26_ARB */
- { 37507, 0x000084DB }, /* GL_TEXTURE27 */
- { 37520, 0x000084DB }, /* GL_TEXTURE27_ARB */
- { 37537, 0x000084DC }, /* GL_TEXTURE28 */
- { 37550, 0x000084DC }, /* GL_TEXTURE28_ARB */
- { 37567, 0x000084DD }, /* GL_TEXTURE29 */
- { 37580, 0x000084DD }, /* GL_TEXTURE29_ARB */
- { 37597, 0x000084C2 }, /* GL_TEXTURE2_ARB */
- { 37613, 0x000084C3 }, /* GL_TEXTURE3 */
- { 37625, 0x000084DE }, /* GL_TEXTURE30 */
- { 37638, 0x000084DE }, /* GL_TEXTURE30_ARB */
- { 37655, 0x000084DF }, /* GL_TEXTURE31 */
- { 37668, 0x000084DF }, /* GL_TEXTURE31_ARB */
- { 37685, 0x000084C3 }, /* GL_TEXTURE3_ARB */
- { 37701, 0x000084C4 }, /* GL_TEXTURE4 */
- { 37713, 0x000084C4 }, /* GL_TEXTURE4_ARB */
- { 37729, 0x000084C5 }, /* GL_TEXTURE5 */
- { 37741, 0x000084C5 }, /* GL_TEXTURE5_ARB */
- { 37757, 0x000084C6 }, /* GL_TEXTURE6 */
- { 37769, 0x000084C6 }, /* GL_TEXTURE6_ARB */
- { 37785, 0x000084C7 }, /* GL_TEXTURE7 */
- { 37797, 0x000084C7 }, /* GL_TEXTURE7_ARB */
- { 37813, 0x000084C8 }, /* GL_TEXTURE8 */
- { 37825, 0x000084C8 }, /* GL_TEXTURE8_ARB */
- { 37841, 0x000084C9 }, /* GL_TEXTURE9 */
- { 37853, 0x000084C9 }, /* GL_TEXTURE9_ARB */
- { 37869, 0x00000DE0 }, /* GL_TEXTURE_1D */
- { 37883, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
- { 37907, 0x00000DE1 }, /* GL_TEXTURE_2D */
- { 37921, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
- { 37945, 0x0000806F }, /* GL_TEXTURE_3D */
- { 37959, 0x0000806F }, /* GL_TEXTURE_3D_OES */
- { 37977, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
- { 37999, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
- { 38025, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
- { 38047, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
- { 38069, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- { 38101, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
- { 38123, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
- { 38155, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
- { 38177, 0x0000806A }, /* GL_TEXTURE_BINDING_3D_OES */
- { 38203, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
- { 38231, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
- { 38263, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_OES */
- { 38295, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- { 38328, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
- { 38360, 0x00040000 }, /* GL_TEXTURE_BIT */
- { 38375, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
- { 38396, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
- { 38421, 0x00001005 }, /* GL_TEXTURE_BORDER */
- { 38439, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
- { 38463, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- { 38494, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- { 38524, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- { 38554, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- { 38589, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- { 38620, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 38658, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
- { 38685, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- { 38717, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
- { 38751, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
- { 38775, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
- { 38803, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
- { 38827, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
- { 38855, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- { 38888, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
- { 38912, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
- { 38934, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
- { 38956, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
- { 38982, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
- { 39016, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- { 39049, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
- { 39086, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
- { 39114, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
- { 39146, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
- { 39169, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- { 39207, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
- { 39249, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- { 39280, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- { 39308, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- { 39338, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- { 39366, 0x00008B9D }, /* GL_TEXTURE_CROP_RECT_OES */
- { 39391, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
- { 39411, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
- { 39435, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- { 39466, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
- { 39501, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES */
- { 39536, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- { 39567, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
- { 39602, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES */
- { 39637, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- { 39668, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
- { 39703, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES */
- { 39738, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_OES */
- { 39762, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- { 39793, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
- { 39828, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES */
- { 39863, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- { 39894, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
- { 39929, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES */
- { 39964, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- { 39995, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
- { 40030, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES */
- { 40065, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
- { 40094, 0x00008071 }, /* GL_TEXTURE_DEPTH */
- { 40111, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
- { 40133, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
- { 40159, 0x00002300 }, /* GL_TEXTURE_ENV */
- { 40174, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
- { 40195, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
- { 40215, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
- { 40241, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL_EXT */
- { 40271, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
- { 40291, 0x00002500 }, /* GL_TEXTURE_GEN_MODE_OES */
- { 40315, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
- { 40332, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
- { 40349, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
- { 40366, 0x00008D60 }, /* GL_TEXTURE_GEN_STR_OES */
- { 40389, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
- { 40406, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
- { 40431, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
- { 40453, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
- { 40479, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
- { 40497, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
- { 40523, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
- { 40549, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
- { 40579, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
- { 40606, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
- { 40631, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
- { 40651, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
- { 40675, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- { 40702, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- { 40729, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- { 40756, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
- { 40782, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
- { 40812, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
- { 40834, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
- { 40852, 0x0000898F }, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */
- { 40892, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- { 40922, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- { 40950, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- { 40978, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- { 41006, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
- { 41027, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
- { 41046, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
- { 41068, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
- { 41087, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
- { 41107, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
- { 41137, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- { 41168, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
- { 41193, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
- { 41217, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
- { 41237, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
- { 41261, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
- { 41281, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
- { 41304, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */
- { 41328, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */
- { 41356, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */
- { 41386, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
- { 41411, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- { 41445, 0x00001000 }, /* GL_TEXTURE_WIDTH */
- { 41462, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
- { 41480, 0x00008072 }, /* GL_TEXTURE_WRAP_R_OES */
- { 41502, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
- { 41520, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
- { 41538, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */
- { 41557, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
- { 41577, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
- { 41596, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- { 41625, 0x00001000 }, /* GL_TRANSFORM_BIT */
- { 41642, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */
- { 41683, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */
- { 41716, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */
- { 41754, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */
- { 41792, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */
- { 41831, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */
- { 41876, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */
- { 41911, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */
- { 41956, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
- { 41982, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
- { 42012, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- { 42044, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- { 42074, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
- { 42108, 0x0000862C }, /* GL_TRANSPOSE_NV */
- { 42124, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- { 42155, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
- { 42190, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- { 42218, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
- { 42250, 0x00000004 }, /* GL_TRIANGLES */
- { 42263, 0x00000006 }, /* GL_TRIANGLE_FAN */
- { 42279, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
- { 42300, 0x00000005 }, /* GL_TRIANGLE_STRIP */
- { 42318, 0x00000001 }, /* GL_TRUE */
- { 42326, 0x00008A1C }, /* GL_UNDEFINED_APPLE */
- { 42345, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
- { 42365, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
- { 42388, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
- { 42408, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
- { 42429, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
- { 42451, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
- { 42473, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
- { 42493, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
- { 42514, 0x00009118 }, /* GL_UNSIGNALED */
- { 42528, 0x00001401 }, /* GL_UNSIGNED_BYTE */
- { 42545, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- { 42572, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
- { 42595, 0x00001405 }, /* GL_UNSIGNED_INT */
- { 42611, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
- { 42638, 0x00008DF6 }, /* GL_UNSIGNED_INT_10_10_10_2_OES */
- { 42669, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
- { 42690, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
- { 42715, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
- { 42739, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_OES */
- { 42764, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- { 42795, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV_EXT */
- { 42830, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
- { 42854, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- { 42882, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
- { 42905, 0x00001403 }, /* GL_UNSIGNED_SHORT */
- { 42923, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- { 42953, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT */
- { 42987, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- { 43013, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- { 43043, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT */
- { 43077, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- { 43103, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
- { 43127, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- { 43155, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- { 43183, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
- { 43210, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- { 43242, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
- { 43273, 0x00008CA2 }, /* GL_UPPER_LEFT */
- { 43287, 0x00002A20 }, /* GL_V2F */
- { 43294, 0x00002A21 }, /* GL_V3F */
- { 43301, 0x00008B83 }, /* GL_VALIDATE_STATUS */
- { 43320, 0x00001F00 }, /* GL_VENDOR */
- { 43330, 0x00001F02 }, /* GL_VERSION */
- { 43341, 0x00008074 }, /* GL_VERTEX_ARRAY */
- { 43357, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
- { 43381, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- { 43411, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- { 43442, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
- { 43477, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
- { 43501, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
- { 43522, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
- { 43545, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
- { 43566, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- { 43593, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- { 43621, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- { 43649, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- { 43677, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- { 43705, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- { 43733, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- { 43761, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- { 43788, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- { 43815, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- { 43842, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- { 43869, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- { 43896, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- { 43923, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- { 43950, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- { 43977, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- { 44004, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- { 44042, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
- { 44084, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- { 44115, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
- { 44150, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- { 44184, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
- { 44222, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- { 44253, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
- { 44288, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- { 44316, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
- { 44348, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- { 44378, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
- { 44412, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- { 44440, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
- { 44472, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
- { 44492, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
- { 44514, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
- { 44543, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
- { 44564, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- { 44593, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
- { 44626, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
- { 44658, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- { 44685, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
- { 44716, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
- { 44746, 0x00008B31 }, /* GL_VERTEX_SHADER */
- { 44763, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
- { 44784, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
- { 44811, 0x00000BA2 }, /* GL_VIEWPORT */
- { 44823, 0x00000800 }, /* GL_VIEWPORT_BIT */
- { 44839, 0x00008A1A }, /* GL_VOLATILE_APPLE */
- { 44857, 0x0000911D }, /* GL_WAIT_FAILED */
- { 44872, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
- { 44892, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- { 44923, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
- { 44958, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_OES */
- { 44993, 0x000086AD }, /* GL_WEIGHT_ARRAY_OES */
- { 45013, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- { 45041, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_OES */
- { 45069, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- { 45094, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_OES */
- { 45119, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- { 45146, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_OES */
- { 45173, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- { 45198, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_OES */
- { 45223, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
- { 45247, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
- { 45266, 0x000088B9 }, /* GL_WRITE_ONLY */
- { 45280, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
- { 45298, 0x000088B9 }, /* GL_WRITE_ONLY_OES */
- { 45316, 0x00001506 }, /* GL_XOR */
- { 45323, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
- { 45342, 0x00008757 }, /* GL_YCBCR_MESA */
- { 45356, 0x00000000 }, /* GL_ZERO */
- { 45364, 0x00000D16 }, /* GL_ZOOM_X */
- { 45374, 0x00000D17 }, /* GL_ZOOM_Y */
+ { 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 */
};
-static const unsigned reduced_enums[1402] =
+static const unsigned reduced_enums[1423] =
{
500, /* GL_FALSE */
- 753, /* GL_LINES */
- 755, /* GL_LINE_LOOP */
- 762, /* GL_LINE_STRIP */
- 1913, /* GL_TRIANGLES */
- 1916, /* GL_TRIANGLE_STRIP */
- 1914, /* GL_TRIANGLE_FAN */
- 1376, /* GL_QUADS */
- 1380, /* GL_QUAD_STRIP */
- 1257, /* GL_POLYGON */
- 1269, /* GL_POLYGON_STIPPLE_BIT */
- 1212, /* GL_PIXEL_MODE_BIT */
- 740, /* GL_LIGHTING_BIT */
+ 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 */
8, /* GL_ACCUM */
- 772, /* GL_LOAD */
- 1454, /* GL_RETURN */
- 1080, /* GL_MULT */
+ 781, /* GL_LOAD */
+ 1471, /* GL_RETURN */
+ 1096, /* GL_MULT */
23, /* GL_ADD */
- 1096, /* GL_NEVER */
- 730, /* GL_LESS */
+ 1112, /* GL_NEVER */
+ 737, /* GL_LESS */
490, /* GL_EQUAL */
- 729, /* GL_LEQUAL */
- 642, /* GL_GREATER */
- 1113, /* GL_NOTEQUAL */
- 641, /* GL_GEQUAL */
+ 736, /* GL_LEQUAL */
+ 649, /* GL_GREATER */
+ 1129, /* GL_NOTEQUAL */
+ 648, /* GL_GEQUAL */
47, /* GL_ALWAYS */
- 1605, /* GL_SRC_COLOR */
- 1145, /* GL_ONE_MINUS_SRC_COLOR */
- 1603, /* GL_SRC_ALPHA */
- 1144, /* GL_ONE_MINUS_SRC_ALPHA */
+ 1622, /* GL_SRC_COLOR */
+ 1161, /* GL_ONE_MINUS_SRC_COLOR */
+ 1620, /* GL_SRC_ALPHA */
+ 1160, /* GL_ONE_MINUS_SRC_ALPHA */
469, /* GL_DST_ALPHA */
- 1142, /* GL_ONE_MINUS_DST_ALPHA */
+ 1158, /* GL_ONE_MINUS_DST_ALPHA */
470, /* GL_DST_COLOR */
- 1143, /* GL_ONE_MINUS_DST_COLOR */
- 1604, /* GL_SRC_ALPHA_SATURATE */
- 626, /* GL_FRONT_LEFT */
- 627, /* GL_FRONT_RIGHT */
+ 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 */
- 623, /* GL_FRONT */
+ 626, /* GL_FRONT */
68, /* GL_BACK */
- 728, /* GL_LEFT */
- 1502, /* GL_RIGHT */
- 624, /* GL_FRONT_AND_BACK */
+ 735, /* GL_LEFT */
+ 1519, /* GL_RIGHT */
+ 627, /* GL_FRONT_AND_BACK */
63, /* GL_AUX0 */
64, /* GL_AUX1 */
65, /* GL_AUX2 */
66, /* GL_AUX3 */
- 716, /* GL_INVALID_ENUM */
- 721, /* GL_INVALID_VALUE */
- 720, /* GL_INVALID_OPERATION */
- 1610, /* GL_STACK_OVERFLOW */
- 1611, /* GL_STACK_UNDERFLOW */
- 1170, /* GL_OUT_OF_MEMORY */
- 717, /* GL_INVALID_FRAMEBUFFER_OPERATION */
+ 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 */
0, /* GL_2D */
2, /* GL_3D */
3, /* GL_3D_COLOR */
4, /* GL_3D_COLOR_TEXTURE */
6, /* GL_4D_COLOR_TEXTURE */
- 1190, /* GL_PASS_THROUGH_TOKEN */
- 1256, /* GL_POINT_TOKEN */
- 763, /* GL_LINE_TOKEN */
- 1270, /* GL_POLYGON_TOKEN */
+ 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 */
- 756, /* GL_LINE_RESET_TOKEN */
+ 764, /* GL_LINE_RESET_TOKEN */
493, /* GL_EXP */
494, /* GL_EXP2 */
352, /* GL_CW */
137, /* GL_CCW */
158, /* GL_COEFF */
- 1167, /* GL_ORDER */
+ 1183, /* GL_ORDER */
405, /* GL_DOMAIN */
325, /* GL_CURRENT_COLOR */
328, /* GL_CURRENT_INDEX */
@@ -4214,33 +4264,33 @@ static const unsigned reduced_enums[1402] =
343, /* GL_CURRENT_RASTER_POSITION */
344, /* GL_CURRENT_RASTER_POSITION_VALID */
341, /* GL_CURRENT_RASTER_DISTANCE */
- 1248, /* GL_POINT_SMOOTH */
- 1232, /* GL_POINT_SIZE */
- 1247, /* GL_POINT_SIZE_RANGE */
- 1238, /* GL_POINT_SIZE_GRANULARITY */
- 757, /* GL_LINE_SMOOTH */
- 764, /* GL_LINE_WIDTH */
- 766, /* GL_LINE_WIDTH_RANGE */
- 765, /* GL_LINE_WIDTH_GRANULARITY */
- 759, /* GL_LINE_STIPPLE */
- 760, /* GL_LINE_STIPPLE_PATTERN */
- 761, /* GL_LINE_STIPPLE_REPEAT */
- 771, /* GL_LIST_MODE */
- 949, /* GL_MAX_LIST_NESTING */
- 768, /* GL_LIST_BASE */
- 770, /* GL_LIST_INDEX */
- 1259, /* GL_POLYGON_MODE */
- 1266, /* GL_POLYGON_SMOOTH */
- 1268, /* GL_POLYGON_STIPPLE */
+ 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 */
- 625, /* GL_FRONT_FACE */
- 739, /* GL_LIGHTING */
- 744, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- 745, /* GL_LIGHT_MODEL_TWO_SIDE */
- 741, /* GL_LIGHT_MODEL_AMBIENT */
- 1552, /* GL_SHADE_MODEL */
+ 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 */
@@ -4257,24 +4307,24 @@ static const unsigned reduced_enums[1402] =
375, /* GL_DEPTH_CLEAR_VALUE */
389, /* GL_DEPTH_FUNC */
12, /* GL_ACCUM_CLEAR_VALUE */
- 1654, /* GL_STENCIL_TEST */
- 1635, /* GL_STENCIL_CLEAR_VALUE */
- 1637, /* GL_STENCIL_FUNC */
- 1656, /* GL_STENCIL_VALUE_MASK */
- 1636, /* GL_STENCIL_FAIL */
- 1651, /* GL_STENCIL_PASS_DEPTH_FAIL */
- 1652, /* GL_STENCIL_PASS_DEPTH_PASS */
- 1653, /* GL_STENCIL_REF */
- 1657, /* GL_STENCIL_WRITEMASK */
- 913, /* GL_MATRIX_MODE */
- 1102, /* GL_NORMALIZE */
- 2014, /* GL_VIEWPORT */
- 1075, /* GL_MODELVIEW_STACK_DEPTH */
- 1353, /* GL_PROJECTION_STACK_DEPTH */
- 1879, /* GL_TEXTURE_STACK_DEPTH */
- 1072, /* GL_MODELVIEW_MATRIX */
- 1351, /* GL_PROJECTION_MATRIX */
- 1861, /* GL_TEXTURE_MATRIX */
+ 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 */
@@ -4284,451 +4334,451 @@ static const unsigned reduced_enums[1402] =
79, /* GL_BLEND_DST */
93, /* GL_BLEND_SRC */
76, /* GL_BLEND */
- 774, /* GL_LOGIC_OP_MODE */
- 688, /* GL_INDEX_LOGIC_OP */
+ 783, /* GL_LOGIC_OP_MODE */
+ 695, /* GL_INDEX_LOGIC_OP */
204, /* GL_COLOR_LOGIC_OP */
67, /* GL_AUX_BUFFERS */
415, /* GL_DRAW_BUFFER */
- 1395, /* GL_READ_BUFFER */
- 1530, /* GL_SCISSOR_BOX */
- 1531, /* GL_SCISSOR_TEST */
- 687, /* GL_INDEX_CLEAR_VALUE */
- 692, /* GL_INDEX_WRITEMASK */
+ 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 */
- 689, /* GL_INDEX_MODE */
- 1495, /* GL_RGBA_MODE */
+ 696, /* GL_INDEX_MODE */
+ 1512, /* GL_RGBA_MODE */
414, /* GL_DOUBLEBUFFER */
- 1658, /* GL_STEREO */
- 1446, /* GL_RENDER_MODE */
- 1191, /* GL_PERSPECTIVE_CORRECTION_HINT */
- 1249, /* GL_POINT_SMOOTH_HINT */
- 758, /* GL_LINE_SMOOTH_HINT */
- 1267, /* GL_POLYGON_SMOOTH_HINT */
+ 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 */
- 1841, /* GL_TEXTURE_GEN_S */
- 1843, /* GL_TEXTURE_GEN_T */
- 1840, /* GL_TEXTURE_GEN_R */
- 1839, /* GL_TEXTURE_GEN_Q */
- 1204, /* GL_PIXEL_MAP_I_TO_I */
- 1210, /* GL_PIXEL_MAP_S_TO_S */
- 1206, /* GL_PIXEL_MAP_I_TO_R */
- 1202, /* GL_PIXEL_MAP_I_TO_G */
- 1200, /* GL_PIXEL_MAP_I_TO_B */
- 1198, /* GL_PIXEL_MAP_I_TO_A */
- 1208, /* GL_PIXEL_MAP_R_TO_R */
- 1196, /* GL_PIXEL_MAP_G_TO_G */
- 1194, /* GL_PIXEL_MAP_B_TO_B */
- 1192, /* GL_PIXEL_MAP_A_TO_A */
- 1205, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- 1211, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- 1207, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- 1203, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- 1201, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- 1199, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- 1209, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- 1197, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- 1195, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- 1193, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- 1926, /* GL_UNPACK_SWAP_BYTES */
- 1921, /* GL_UNPACK_LSB_FIRST */
- 1922, /* GL_UNPACK_ROW_LENGTH */
- 1925, /* GL_UNPACK_SKIP_ROWS */
- 1924, /* GL_UNPACK_SKIP_PIXELS */
- 1919, /* GL_UNPACK_ALIGNMENT */
- 1179, /* GL_PACK_SWAP_BYTES */
- 1174, /* GL_PACK_LSB_FIRST */
- 1175, /* GL_PACK_ROW_LENGTH */
- 1178, /* GL_PACK_SKIP_ROWS */
- 1177, /* GL_PACK_SKIP_PIXELS */
- 1171, /* GL_PACK_ALIGNMENT */
- 854, /* GL_MAP_COLOR */
- 859, /* GL_MAP_STENCIL */
- 691, /* GL_INDEX_SHIFT */
- 690, /* GL_INDEX_OFFSET */
- 1409, /* GL_RED_SCALE */
- 1407, /* GL_RED_BIAS */
- 2040, /* GL_ZOOM_X */
- 2041, /* GL_ZOOM_Y */
- 646, /* GL_GREEN_SCALE */
- 644, /* GL_GREEN_BIAS */
+ 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 */
- 943, /* GL_MAX_EVAL_ORDER */
- 948, /* GL_MAX_LIGHTS */
- 924, /* GL_MAX_CLIP_PLANES */
- 999, /* GL_MAX_TEXTURE_SIZE */
- 955, /* GL_MAX_PIXEL_MAP_TABLE */
- 920, /* GL_MAX_ATTRIB_STACK_DEPTH */
- 951, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- 952, /* GL_MAX_NAME_STACK_DEPTH */
- 981, /* GL_MAX_PROJECTION_STACK_DEPTH */
- 1000, /* GL_MAX_TEXTURE_STACK_DEPTH */
- 1020, /* GL_MAX_VIEWPORT_DIMS */
- 921, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- 1668, /* GL_SUBPIXEL_BITS */
- 686, /* GL_INDEX_BITS */
- 1408, /* GL_RED_BITS */
- 645, /* GL_GREEN_BITS */
+ 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 */
- 1633, /* GL_STENCIL_BITS */
+ 1650, /* GL_STENCIL_BITS */
14, /* GL_ACCUM_RED_BITS */
13, /* GL_ACCUM_GREEN_BITS */
10, /* GL_ACCUM_BLUE_BITS */
9, /* GL_ACCUM_ALPHA_BITS */
- 1089, /* GL_NAME_STACK_DEPTH */
+ 1105, /* GL_NAME_STACK_DEPTH */
62, /* GL_AUTO_NORMAL */
- 800, /* GL_MAP1_COLOR_4 */
- 803, /* GL_MAP1_INDEX */
- 804, /* GL_MAP1_NORMAL */
- 805, /* GL_MAP1_TEXTURE_COORD_1 */
- 806, /* GL_MAP1_TEXTURE_COORD_2 */
- 807, /* GL_MAP1_TEXTURE_COORD_3 */
- 808, /* GL_MAP1_TEXTURE_COORD_4 */
- 809, /* GL_MAP1_VERTEX_3 */
- 810, /* GL_MAP1_VERTEX_4 */
- 827, /* GL_MAP2_COLOR_4 */
- 830, /* GL_MAP2_INDEX */
- 831, /* GL_MAP2_NORMAL */
- 832, /* GL_MAP2_TEXTURE_COORD_1 */
- 833, /* GL_MAP2_TEXTURE_COORD_2 */
- 834, /* GL_MAP2_TEXTURE_COORD_3 */
- 835, /* GL_MAP2_TEXTURE_COORD_4 */
- 836, /* GL_MAP2_VERTEX_3 */
- 837, /* GL_MAP2_VERTEX_4 */
- 801, /* GL_MAP1_GRID_DOMAIN */
- 802, /* GL_MAP1_GRID_SEGMENTS */
- 828, /* GL_MAP2_GRID_DOMAIN */
- 829, /* GL_MAP2_GRID_SEGMENTS */
- 1751, /* GL_TEXTURE_1D */
- 1753, /* GL_TEXTURE_2D */
+ 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 */
- 1540, /* GL_SELECTION_BUFFER_POINTER */
- 1541, /* GL_SELECTION_BUFFER_SIZE */
- 1885, /* GL_TEXTURE_WIDTH */
- 1847, /* GL_TEXTURE_HEIGHT */
- 1791, /* GL_TEXTURE_COMPONENTS */
- 1775, /* GL_TEXTURE_BORDER_COLOR */
- 1774, /* GL_TEXTURE_BORDER */
+ 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 */
- 1097, /* GL_NICEST */
+ 1113, /* GL_NICEST */
48, /* GL_AMBIENT */
403, /* GL_DIFFUSE */
- 1592, /* GL_SPECULAR */
- 1271, /* GL_POSITION */
- 1595, /* GL_SPOT_DIRECTION */
- 1596, /* GL_SPOT_EXPONENT */
- 1594, /* GL_SPOT_CUTOFF */
+ 1609, /* GL_SPECULAR */
+ 1287, /* GL_POSITION */
+ 1612, /* GL_SPOT_DIRECTION */
+ 1613, /* GL_SPOT_EXPONENT */
+ 1611, /* GL_SPOT_CUTOFF */
288, /* GL_CONSTANT_ATTENUATION */
- 748, /* GL_LINEAR_ATTENUATION */
- 1375, /* GL_QUADRATIC_ATTENUATION */
+ 755, /* GL_LINEAR_ATTENUATION */
+ 1392, /* GL_QUADRATIC_ATTENUATION */
257, /* GL_COMPILE */
258, /* GL_COMPILE_AND_EXECUTE */
132, /* GL_BYTE */
- 1928, /* GL_UNSIGNED_BYTE */
- 1557, /* GL_SHORT */
- 1943, /* GL_UNSIGNED_SHORT */
- 694, /* GL_INT */
- 1931, /* GL_UNSIGNED_INT */
+ 1951, /* GL_UNSIGNED_BYTE */
+ 1574, /* GL_SHORT */
+ 1966, /* GL_UNSIGNED_SHORT */
+ 701, /* GL_INT */
+ 1954, /* GL_UNSIGNED_INT */
512, /* GL_FLOAT */
1, /* GL_2_BYTES */
5, /* GL_3_BYTES */
7, /* GL_4_BYTES */
413, /* GL_DOUBLE */
- 647, /* GL_HALF_FLOAT */
+ 654, /* GL_HALF_FLOAT */
509, /* GL_FIXED */
144, /* GL_CLEAR */
50, /* GL_AND */
52, /* GL_AND_REVERSE */
313, /* GL_COPY */
51, /* GL_AND_INVERTED */
- 1100, /* GL_NOOP */
- 2036, /* GL_XOR */
- 1166, /* GL_OR */
- 1101, /* GL_NOR */
+ 1116, /* GL_NOOP */
+ 2059, /* GL_XOR */
+ 1182, /* GL_OR */
+ 1117, /* GL_NOR */
491, /* GL_EQUIV */
- 724, /* GL_INVERT */
- 1169, /* GL_OR_REVERSE */
+ 731, /* GL_INVERT */
+ 1185, /* GL_OR_REVERSE */
314, /* GL_COPY_INVERTED */
- 1168, /* GL_OR_INVERTED */
- 1090, /* GL_NAND */
- 1546, /* GL_SET */
+ 1184, /* GL_OR_INVERTED */
+ 1106, /* GL_NAND */
+ 1563, /* GL_SET */
488, /* GL_EMISSION */
- 1556, /* GL_SHININESS */
+ 1573, /* GL_SHININESS */
49, /* GL_AMBIENT_AND_DIFFUSE */
203, /* GL_COLOR_INDEXES */
- 1039, /* GL_MODELVIEW */
- 1350, /* GL_PROJECTION */
- 1686, /* GL_TEXTURE */
+ 1055, /* GL_MODELVIEW */
+ 1367, /* GL_PROJECTION */
+ 1703, /* GL_TEXTURE */
159, /* GL_COLOR */
361, /* GL_DEPTH */
- 1618, /* GL_STENCIL */
+ 1635, /* GL_STENCIL */
202, /* GL_COLOR_INDEX */
- 1638, /* GL_STENCIL_INDEX */
+ 1655, /* GL_STENCIL_INDEX */
376, /* GL_DEPTH_COMPONENT */
- 1404, /* GL_RED */
- 643, /* GL_GREEN */
+ 1421, /* GL_RED */
+ 650, /* GL_GREEN */
98, /* GL_BLUE */
31, /* GL_ALPHA */
- 1455, /* GL_RGB */
- 1478, /* GL_RGBA */
- 778, /* GL_LUMINANCE */
- 799, /* GL_LUMINANCE_ALPHA */
+ 1472, /* GL_RGB */
+ 1495, /* GL_RGBA */
+ 787, /* GL_LUMINANCE */
+ 808, /* GL_LUMINANCE_ALPHA */
74, /* GL_BITMAP */
- 1221, /* GL_POINT */
- 746, /* GL_LINE */
+ 1237, /* GL_POINT */
+ 753, /* GL_LINE */
506, /* GL_FILL */
- 1415, /* GL_RENDER */
+ 1432, /* GL_RENDER */
502, /* GL_FEEDBACK */
- 1539, /* GL_SELECT */
+ 1556, /* GL_SELECT */
511, /* GL_FLAT */
- 1567, /* GL_SMOOTH */
- 725, /* GL_KEEP */
- 1448, /* GL_REPLACE */
- 676, /* GL_INCR */
+ 1584, /* GL_SMOOTH */
+ 732, /* GL_KEEP */
+ 1465, /* GL_REPLACE */
+ 683, /* GL_INCR */
357, /* GL_DECR */
- 1960, /* GL_VENDOR */
- 1445, /* GL_RENDERER */
- 1961, /* GL_VERSION */
+ 1983, /* GL_VENDOR */
+ 1462, /* GL_RENDERER */
+ 1984, /* GL_VERSION */
495, /* GL_EXTENSIONS */
- 1503, /* GL_S */
- 1677, /* GL_T */
- 1391, /* GL_R */
- 1374, /* GL_Q */
- 1076, /* GL_MODULATE */
+ 1520, /* GL_S */
+ 1694, /* GL_T */
+ 1408, /* GL_R */
+ 1391, /* GL_Q */
+ 1092, /* GL_MODULATE */
356, /* GL_DECAL */
- 1834, /* GL_TEXTURE_ENV_MODE */
- 1833, /* GL_TEXTURE_ENV_COLOR */
- 1832, /* GL_TEXTURE_ENV */
+ 1851, /* GL_TEXTURE_ENV_MODE */
+ 1850, /* GL_TEXTURE_ENV_COLOR */
+ 1849, /* GL_TEXTURE_ENV */
496, /* GL_EYE_LINEAR */
- 1127, /* GL_OBJECT_LINEAR */
- 1593, /* GL_SPHERE_MAP */
- 1837, /* GL_TEXTURE_GEN_MODE */
- 1129, /* GL_OBJECT_PLANE */
+ 1143, /* GL_OBJECT_LINEAR */
+ 1610, /* GL_SPHERE_MAP */
+ 1854, /* GL_TEXTURE_GEN_MODE */
+ 1145, /* GL_OBJECT_PLANE */
497, /* GL_EYE_PLANE */
- 1091, /* GL_NEAREST */
- 747, /* GL_LINEAR */
- 1095, /* GL_NEAREST_MIPMAP_NEAREST */
- 752, /* GL_LINEAR_MIPMAP_NEAREST */
- 1094, /* GL_NEAREST_MIPMAP_LINEAR */
- 751, /* GL_LINEAR_MIPMAP_LINEAR */
- 1860, /* GL_TEXTURE_MAG_FILTER */
- 1869, /* GL_TEXTURE_MIN_FILTER */
- 1888, /* GL_TEXTURE_WRAP_S */
- 1889, /* GL_TEXTURE_WRAP_T */
+ 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 */
- 1447, /* GL_REPEAT */
- 1265, /* GL_POLYGON_OFFSET_UNITS */
- 1264, /* GL_POLYGON_OFFSET_POINT */
- 1263, /* GL_POLYGON_OFFSET_LINE */
- 1392, /* GL_R3_G3_B2 */
- 1957, /* GL_V2F */
- 1958, /* GL_V3F */
+ 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 */
- 1088, /* GL_N3F_V3F */
+ 1104, /* GL_N3F_V3F */
134, /* GL_C4F_N3F_V3F */
- 1682, /* GL_T2F_V3F */
- 1684, /* GL_T4F_V4F */
- 1680, /* GL_T2F_C4UB_V3F */
- 1678, /* GL_T2F_C3F_V3F */
- 1681, /* GL_T2F_N3F_V3F */
- 1679, /* GL_T2F_C4F_N3F_V3F */
- 1683, /* GL_T4F_C4F_N3F_V4F */
+ 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 */
- 731, /* GL_LIGHT0 */
- 732, /* GL_LIGHT1 */
- 733, /* GL_LIGHT2 */
- 734, /* GL_LIGHT3 */
- 735, /* GL_LIGHT4 */
- 736, /* GL_LIGHT5 */
- 737, /* GL_LIGHT6 */
- 738, /* GL_LIGHT7 */
- 651, /* GL_HINT_BIT */
+ 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 */
- 1140, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ 1156, /* GL_ONE_MINUS_CONSTANT_COLOR */
285, /* GL_CONSTANT_ALPHA */
- 1138, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ 1154, /* GL_ONE_MINUS_CONSTANT_ALPHA */
77, /* GL_BLEND_COLOR */
- 628, /* GL_FUNC_ADD */
- 1023, /* GL_MIN */
- 916, /* GL_MAX */
+ 631, /* GL_FUNC_ADD */
+ 1039, /* GL_MIN */
+ 925, /* GL_MAX */
84, /* GL_BLEND_EQUATION */
- 634, /* GL_FUNC_SUBTRACT */
- 631, /* GL_FUNC_REVERSE_SUBTRACT */
+ 637, /* GL_FUNC_SUBTRACT */
+ 634, /* GL_FUNC_REVERSE_SUBTRACT */
293, /* GL_CONVOLUTION_1D */
294, /* GL_CONVOLUTION_2D */
- 1542, /* GL_SEPARABLE_2D */
+ 1559, /* GL_SEPARABLE_2D */
297, /* GL_CONVOLUTION_BORDER_MODE */
301, /* GL_CONVOLUTION_FILTER_SCALE */
299, /* GL_CONVOLUTION_FILTER_BIAS */
- 1405, /* GL_REDUCE */
+ 1422, /* GL_REDUCE */
303, /* GL_CONVOLUTION_FORMAT */
307, /* GL_CONVOLUTION_WIDTH */
305, /* GL_CONVOLUTION_HEIGHT */
- 933, /* GL_MAX_CONVOLUTION_WIDTH */
- 931, /* GL_MAX_CONVOLUTION_HEIGHT */
- 1304, /* GL_POST_CONVOLUTION_RED_SCALE */
- 1300, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- 1295, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- 1291, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- 1302, /* GL_POST_CONVOLUTION_RED_BIAS */
- 1298, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- 1293, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- 1289, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- 652, /* GL_HISTOGRAM */
- 1357, /* GL_PROXY_HISTOGRAM */
- 668, /* GL_HISTOGRAM_WIDTH */
- 658, /* GL_HISTOGRAM_FORMAT */
- 664, /* GL_HISTOGRAM_RED_SIZE */
- 660, /* GL_HISTOGRAM_GREEN_SIZE */
- 655, /* GL_HISTOGRAM_BLUE_SIZE */
- 653, /* GL_HISTOGRAM_ALPHA_SIZE */
- 662, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- 666, /* GL_HISTOGRAM_SINK */
- 1024, /* GL_MINMAX */
- 1026, /* GL_MINMAX_FORMAT */
- 1028, /* GL_MINMAX_SINK */
- 1685, /* GL_TABLE_TOO_LARGE_EXT */
- 1930, /* GL_UNSIGNED_BYTE_3_3_2 */
- 1946, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- 1949, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- 1940, /* GL_UNSIGNED_INT_8_8_8_8 */
- 1932, /* GL_UNSIGNED_INT_10_10_10_2 */
- 1262, /* GL_POLYGON_OFFSET_FILL */
- 1261, /* GL_POLYGON_OFFSET_FACTOR */
- 1260, /* GL_POLYGON_OFFSET_BIAS */
- 1451, /* GL_RESCALE_NORMAL */
+ 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 */
- 789, /* GL_LUMINANCE4 */
- 795, /* GL_LUMINANCE8 */
- 779, /* GL_LUMINANCE12 */
- 785, /* GL_LUMINANCE16 */
- 790, /* GL_LUMINANCE4_ALPHA4 */
- 793, /* GL_LUMINANCE6_ALPHA2 */
- 796, /* GL_LUMINANCE8_ALPHA8 */
- 782, /* GL_LUMINANCE12_ALPHA4 */
- 780, /* GL_LUMINANCE12_ALPHA12 */
- 786, /* GL_LUMINANCE16_ALPHA16 */
- 695, /* GL_INTENSITY */
- 700, /* GL_INTENSITY4 */
- 702, /* GL_INTENSITY8 */
- 696, /* GL_INTENSITY12 */
- 698, /* GL_INTENSITY16 */
- 1464, /* GL_RGB2_EXT */
- 1465, /* GL_RGB4 */
- 1468, /* GL_RGB5 */
- 1475, /* GL_RGB8 */
- 1456, /* GL_RGB10 */
- 1460, /* GL_RGB12 */
- 1462, /* GL_RGB16 */
- 1483, /* GL_RGBA2 */
- 1485, /* GL_RGBA4 */
- 1471, /* GL_RGB5_A1 */
- 1490, /* GL_RGBA8 */
- 1457, /* GL_RGB10_A2 */
- 1479, /* GL_RGBA12 */
- 1481, /* GL_RGBA16 */
- 1876, /* GL_TEXTURE_RED_SIZE */
- 1845, /* GL_TEXTURE_GREEN_SIZE */
- 1772, /* GL_TEXTURE_BLUE_SIZE */
- 1757, /* GL_TEXTURE_ALPHA_SIZE */
- 1858, /* GL_TEXTURE_LUMINANCE_SIZE */
- 1849, /* GL_TEXTURE_INTENSITY_SIZE */
- 1449, /* GL_REPLACE_EXT */
- 1361, /* GL_PROXY_TEXTURE_1D */
- 1364, /* GL_PROXY_TEXTURE_2D */
- 1883, /* GL_TEXTURE_TOO_LARGE_EXT */
- 1871, /* GL_TEXTURE_PRIORITY */
- 1878, /* GL_TEXTURE_RESIDENT */
- 1760, /* GL_TEXTURE_BINDING_1D */
- 1762, /* GL_TEXTURE_BINDING_2D */
- 1764, /* GL_TEXTURE_BINDING_3D */
- 1176, /* GL_PACK_SKIP_IMAGES */
- 1172, /* GL_PACK_IMAGE_HEIGHT */
- 1923, /* GL_UNPACK_SKIP_IMAGES */
- 1920, /* GL_UNPACK_IMAGE_HEIGHT */
- 1755, /* GL_TEXTURE_3D */
- 1367, /* GL_PROXY_TEXTURE_3D */
- 1829, /* GL_TEXTURE_DEPTH */
- 1886, /* GL_TEXTURE_WRAP_R */
- 917, /* GL_MAX_3D_TEXTURE_SIZE */
- 1962, /* GL_VERTEX_ARRAY */
- 1103, /* GL_NORMAL_ARRAY */
+ 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 */
- 680, /* GL_INDEX_ARRAY */
- 1799, /* GL_TEXTURE_COORD_ARRAY */
+ 687, /* GL_INDEX_ARRAY */
+ 1816, /* GL_TEXTURE_COORD_ARRAY */
480, /* GL_EDGE_FLAG_ARRAY */
- 1968, /* GL_VERTEX_ARRAY_SIZE */
- 1970, /* GL_VERTEX_ARRAY_TYPE */
- 1969, /* GL_VERTEX_ARRAY_STRIDE */
- 1108, /* GL_NORMAL_ARRAY_TYPE */
- 1107, /* GL_NORMAL_ARRAY_STRIDE */
+ 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 */
- 685, /* GL_INDEX_ARRAY_TYPE */
- 684, /* GL_INDEX_ARRAY_STRIDE */
- 1803, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- 1805, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- 1804, /* GL_TEXTURE_COORD_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 */
- 1967, /* GL_VERTEX_ARRAY_POINTER */
- 1106, /* GL_NORMAL_ARRAY_POINTER */
+ 1990, /* GL_VERTEX_ARRAY_POINTER */
+ 1122, /* GL_NORMAL_ARRAY_POINTER */
163, /* GL_COLOR_ARRAY_POINTER */
- 683, /* GL_INDEX_ARRAY_POINTER */
- 1802, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ 690, /* GL_INDEX_ARRAY_POINTER */
+ 1819, /* GL_TEXTURE_COORD_ARRAY_POINTER */
483, /* GL_EDGE_FLAG_ARRAY_POINTER */
- 1081, /* GL_MULTISAMPLE */
- 1516, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- 1518, /* GL_SAMPLE_ALPHA_TO_ONE */
- 1523, /* GL_SAMPLE_COVERAGE */
- 1520, /* GL_SAMPLE_BUFFERS */
- 1511, /* GL_SAMPLES */
- 1527, /* GL_SAMPLE_COVERAGE_VALUE */
- 1525, /* GL_SAMPLE_COVERAGE_INVERT */
+ 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 */
- 927, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- 1287, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- 1283, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- 1278, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- 1274, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- 1285, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- 1281, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- 1276, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- 1272, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- 1782, /* GL_TEXTURE_COLOR_TABLE_SGI */
- 1368, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- 1784, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ 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 */
- 1297, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- 1280, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- 1356, /* GL_PROXY_COLOR_TABLE */
- 1360, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- 1359, /* GL_PROXY_POST_COLOR_MATRIX_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 */
@@ -4741,98 +4791,98 @@ static const unsigned reduced_enums[1402] =
229, /* GL_COLOR_TABLE_INTENSITY_SIZE */
71, /* GL_BGR */
72, /* GL_BGRA */
- 942, /* GL_MAX_ELEMENTS_VERTICES */
- 941, /* GL_MAX_ELEMENTS_INDICES */
- 1848, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ 951, /* GL_MAX_ELEMENTS_VERTICES */
+ 950, /* GL_MAX_ELEMENTS_INDICES */
+ 1865, /* GL_TEXTURE_INDEX_SIZE_EXT */
157, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
- 1243, /* GL_POINT_SIZE_MIN */
- 1239, /* GL_POINT_SIZE_MAX */
- 1228, /* GL_POINT_FADE_THRESHOLD_SIZE */
- 1224, /* GL_POINT_DISTANCE_ATTENUATION */
+ 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 */
- 1870, /* GL_TEXTURE_MIN_LOD */
- 1868, /* GL_TEXTURE_MAX_LOD */
- 1759, /* GL_TEXTURE_BASE_LEVEL */
- 1867, /* GL_TEXTURE_MAX_LEVEL */
- 671, /* GL_IGNORE_BORDER_HP */
+ 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 */
- 1450, /* GL_REPLICATE_BORDER_HP */
+ 1467, /* GL_REPLICATE_BORDER_HP */
295, /* GL_CONVOLUTION_BORDER_COLOR */
- 1135, /* GL_OCCLUSION_TEST_HP */
- 1136, /* GL_OCCLUSION_TEST_RESULT_HP */
- 749, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- 1776, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- 1778, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- 1780, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- 1781, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1779, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- 1777, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- 922, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- 923, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1307, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- 1309, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- 1306, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- 1308, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- 1856, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- 1857, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- 1855, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- 637, /* GL_GENERATE_MIPMAP */
- 638, /* GL_GENERATE_MIPMAP_HINT */
+ 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 */
- 1790, /* GL_TEXTURE_COMPARE_SGIX */
- 1789, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- 1852, /* GL_TEXTURE_LEQUAL_R_SGIX */
- 1844, /* GL_TEXTURE_GEQUAL_R_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 */
- 2032, /* GL_WRAP_BORDER_SUN */
- 1783, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- 742, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- 1560, /* GL_SINGLE_COLOR */
- 1544, /* GL_SEPARATE_SPECULAR_COLOR */
- 1555, /* GL_SHARED_TEXTURE_PALETTE_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 */
- 577, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
+ 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 */
- 578, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
- 595, /* GL_FRAMEBUFFER_DEFAULT */
- 619, /* GL_FRAMEBUFFER_UNDEFINED */
+ 579, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
+ 596, /* GL_FRAMEBUFFER_DEFAULT */
+ 622, /* GL_FRAMEBUFFER_UNDEFINED */
393, /* GL_DEPTH_STENCIL_ATTACHMENT */
- 679, /* GL_INDEX */
- 1929, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- 1950, /* GL_UNSIGNED_SHORT_5_6_5 */
- 1951, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- 1947, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- 1944, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- 1941, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- 1938, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- 1865, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- 1866, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- 1864, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- 1031, /* GL_MIRRORED_REPEAT */
- 1498, /* GL_RGB_S3TC */
- 1467, /* GL_RGB4_S3TC */
- 1496, /* GL_RGBA_S3TC */
- 1489, /* GL_RGBA4_S3TC */
- 1494, /* GL_RGBA_DXT5_S3TC */
- 1486, /* GL_RGBA4_DXT5_S3TC */
+ 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 */
- 1093, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- 1092, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- 750, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ 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 */
@@ -4843,279 +4893,279 @@ static const unsigned reduced_enums[1402] =
536, /* GL_FOG_COORDINATE_ARRAY */
212, /* GL_COLOR_SUM */
347, /* GL_CURRENT_SECONDARY_COLOR */
- 1536, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- 1538, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- 1537, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- 1535, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- 1532, /* GL_SECONDARY_COLOR_ARRAY */
+ 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 */
- 1687, /* GL_TEXTURE0 */
- 1689, /* GL_TEXTURE1 */
- 1711, /* GL_TEXTURE2 */
- 1733, /* GL_TEXTURE3 */
- 1739, /* GL_TEXTURE4 */
- 1741, /* GL_TEXTURE5 */
- 1743, /* GL_TEXTURE6 */
- 1745, /* GL_TEXTURE7 */
- 1747, /* GL_TEXTURE8 */
- 1749, /* GL_TEXTURE9 */
- 1690, /* GL_TEXTURE10 */
- 1692, /* GL_TEXTURE11 */
- 1694, /* GL_TEXTURE12 */
- 1696, /* GL_TEXTURE13 */
- 1698, /* GL_TEXTURE14 */
- 1700, /* GL_TEXTURE15 */
- 1702, /* GL_TEXTURE16 */
- 1704, /* GL_TEXTURE17 */
- 1706, /* GL_TEXTURE18 */
- 1708, /* GL_TEXTURE19 */
- 1712, /* GL_TEXTURE20 */
- 1714, /* GL_TEXTURE21 */
- 1716, /* GL_TEXTURE22 */
- 1718, /* GL_TEXTURE23 */
- 1720, /* GL_TEXTURE24 */
- 1722, /* GL_TEXTURE25 */
- 1724, /* GL_TEXTURE26 */
- 1726, /* GL_TEXTURE27 */
- 1728, /* GL_TEXTURE28 */
- 1730, /* GL_TEXTURE29 */
- 1734, /* GL_TEXTURE30 */
- 1736, /* GL_TEXTURE31 */
+ 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 */
- 1001, /* GL_MAX_TEXTURE_UNITS */
- 1906, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- 1909, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- 1911, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- 1903, /* GL_TRANSPOSE_COLOR_MATRIX */
- 1669, /* GL_SUBTRACT */
- 984, /* GL_MAX_RENDERBUFFER_SIZE */
+ 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 */
- 1797, /* GL_TEXTURE_COMPRESSION_HINT */
- 1874, /* GL_TEXTURE_RECTANGLE_ARB */
- 1769, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- 1371, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- 982, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
+ 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 */
- 1934, /* GL_UNSIGNED_INT_24_8 */
- 996, /* GL_MAX_TEXTURE_LOD_BIAS */
- 1863, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- 998, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- 1835, /* GL_TEXTURE_FILTER_CONTROL */
- 1853, /* GL_TEXTURE_LOD_BIAS */
+ 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 */
- 990, /* GL_MAX_SHININESS_NV */
- 991, /* GL_MAX_SPOT_EXPONENT_NV */
- 677, /* GL_INCR_WRAP */
+ 1004, /* GL_MAX_SHININESS_NV */
+ 1005, /* GL_MAX_SPOT_EXPONENT_NV */
+ 684, /* GL_INCR_WRAP */
358, /* GL_DECR_WRAP */
- 1051, /* GL_MODELVIEW1_ARB */
- 1109, /* GL_NORMAL_MAP */
- 1410, /* GL_REFLECTION_MAP */
- 1807, /* GL_TEXTURE_CUBE_MAP */
- 1766, /* GL_TEXTURE_BINDING_CUBE_MAP */
- 1819, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- 1809, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- 1822, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- 1812, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- 1825, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- 1815, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- 1369, /* GL_PROXY_TEXTURE_CUBE_MAP */
- 935, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- 1087, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ 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 */
- 1499, /* GL_RGB_SCALE */
+ 1516, /* GL_RGB_SCALE */
24, /* GL_ADD_SIGNED */
- 706, /* GL_INTERPOLATE */
+ 713, /* GL_INTERPOLATE */
284, /* GL_CONSTANT */
- 1313, /* GL_PRIMARY_COLOR */
- 1310, /* GL_PREVIOUS */
- 1575, /* GL_SOURCE0_RGB */
- 1581, /* GL_SOURCE1_RGB */
- 1587, /* GL_SOURCE2_RGB */
- 1591, /* GL_SOURCE3_RGB_NV */
- 1572, /* GL_SOURCE0_ALPHA */
- 1578, /* GL_SOURCE1_ALPHA */
- 1584, /* GL_SOURCE2_ALPHA */
- 1590, /* GL_SOURCE3_ALPHA_NV */
- 1149, /* GL_OPERAND0_RGB */
- 1155, /* GL_OPERAND1_RGB */
- 1161, /* GL_OPERAND2_RGB */
- 1165, /* GL_OPERAND3_RGB_NV */
- 1146, /* GL_OPERAND0_ALPHA */
- 1152, /* GL_OPERAND1_ALPHA */
- 1158, /* GL_OPERAND2_ALPHA */
- 1164, /* GL_OPERAND3_ALPHA_NV */
+ 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 */
- 1963, /* GL_VERTEX_ARRAY_BINDING */
- 1872, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
- 1873, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- 2037, /* GL_YCBCR_422_APPLE */
- 1952, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- 1954, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- 1882, /* GL_TEXTURE_STORAGE_HINT_APPLE */
- 1660, /* GL_STORAGE_PRIVATE_APPLE */
- 1659, /* GL_STORAGE_CACHED_APPLE */
- 1661, /* GL_STORAGE_SHARED_APPLE */
- 1562, /* GL_SLICE_ACCUM_SUN */
- 1379, /* GL_QUAD_MESH_SUN */
- 1915, /* GL_TRIANGLE_MESH_SUN */
- 2002, /* GL_VERTEX_PROGRAM_ARB */
- 2013, /* GL_VERTEX_STATE_PROGRAM_NV */
- 1989, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- 1995, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- 1997, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- 1999, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ 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 */
- 1329, /* GL_PROGRAM_LENGTH_ARB */
- 1343, /* GL_PROGRAM_STRING_ARB */
- 1074, /* GL_MODELVIEW_PROJECTION_NV */
- 670, /* GL_IDENTITY_NV */
- 722, /* GL_INVERSE_NV */
- 1908, /* GL_TRANSPOSE_NV */
- 723, /* GL_INVERSE_TRANSPOSE_NV */
- 968, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- 967, /* GL_MAX_PROGRAM_MATRICES_ARB */
- 863, /* GL_MATRIX0_NV */
- 875, /* GL_MATRIX1_NV */
- 887, /* GL_MATRIX2_NV */
- 891, /* GL_MATRIX3_NV */
- 893, /* GL_MATRIX4_NV */
- 895, /* GL_MATRIX5_NV */
- 897, /* GL_MATRIX6_NV */
- 899, /* GL_MATRIX7_NV */
+ 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 */
- 2005, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- 2008, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- 1341, /* GL_PROGRAM_PARAMETER_NV */
- 1993, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- 1345, /* GL_PROGRAM_TARGET_NV */
- 1342, /* GL_PROGRAM_RESIDENT_NV */
- 1892, /* GL_TRACK_MATRIX_NV */
- 1893, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- 2003, /* GL_VERTEX_PROGRAM_BINDING_NV */
- 1323, /* GL_PROGRAM_ERROR_POSITION_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 */
- 1971, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- 1978, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- 1979, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- 1980, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- 1981, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- 1982, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- 1983, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- 1984, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- 1985, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- 1986, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- 1972, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- 1973, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- 1974, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- 1975, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- 1976, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- 1977, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- 811, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- 818, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- 819, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- 820, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- 821, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- 822, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- 823, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- 824, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- 825, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- 826, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- 812, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- 813, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- 814, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- 815, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- 816, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- 817, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- 838, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- 845, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- 846, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- 847, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- 848, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- 849, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- 850, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- 1322, /* GL_PROGRAM_BINDING_ARB */
- 852, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- 853, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- 839, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- 840, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- 841, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- 842, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- 843, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- 844, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- 1795, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- 1792, /* GL_TEXTURE_COMPRESSED */
- 1115, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ 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 */
- 1018, /* GL_MAX_VERTEX_UNITS_ARB */
+ 1033, /* GL_MAX_VERTEX_UNITS_ARB */
22, /* GL_ACTIVE_VERTEX_UNITS_ARB */
- 2031, /* GL_WEIGHT_SUM_UNITY_ARB */
- 2001, /* GL_VERTEX_BLEND_ARB */
+ 2054, /* GL_WEIGHT_SUM_UNITY_ARB */
+ 2024, /* GL_VERTEX_BLEND_ARB */
351, /* GL_CURRENT_WEIGHT_ARB */
- 2029, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- 2027, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- 2025, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- 2023, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- 2018, /* GL_WEIGHT_ARRAY_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 */
- 1082, /* GL_MULTISAMPLE_3DFX */
- 1521, /* GL_SAMPLE_BUFFERS_3DFX */
- 1512, /* GL_SAMPLES_3DFX */
- 1062, /* GL_MODELVIEW2_ARB */
- 1065, /* GL_MODELVIEW3_ARB */
- 1066, /* GL_MODELVIEW4_ARB */
- 1067, /* GL_MODELVIEW5_ARB */
- 1068, /* GL_MODELVIEW6_ARB */
- 1069, /* GL_MODELVIEW7_ARB */
- 1070, /* GL_MODELVIEW8_ARB */
- 1071, /* GL_MODELVIEW9_ARB */
- 1041, /* GL_MODELVIEW10_ARB */
- 1042, /* GL_MODELVIEW11_ARB */
- 1043, /* GL_MODELVIEW12_ARB */
- 1044, /* GL_MODELVIEW13_ARB */
- 1045, /* GL_MODELVIEW14_ARB */
- 1046, /* GL_MODELVIEW15_ARB */
- 1047, /* GL_MODELVIEW16_ARB */
- 1048, /* GL_MODELVIEW17_ARB */
- 1049, /* GL_MODELVIEW18_ARB */
- 1050, /* GL_MODELVIEW19_ARB */
- 1052, /* GL_MODELVIEW20_ARB */
- 1053, /* GL_MODELVIEW21_ARB */
- 1054, /* GL_MODELVIEW22_ARB */
- 1055, /* GL_MODELVIEW23_ARB */
- 1056, /* GL_MODELVIEW24_ARB */
- 1057, /* GL_MODELVIEW25_ARB */
- 1058, /* GL_MODELVIEW26_ARB */
- 1059, /* GL_MODELVIEW27_ARB */
- 1060, /* GL_MODELVIEW28_ARB */
- 1061, /* GL_MODELVIEW29_ARB */
- 1063, /* GL_MODELVIEW30_ARB */
- 1064, /* GL_MODELVIEW31_ARB */
+ 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 */
- 1035, /* GL_MIRROR_CLAMP_EXT */
- 1038, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- 1077, /* GL_MODULATE_ADD_ATI */
- 1078, /* GL_MODULATE_SIGNED_ADD_ATI */
- 1079, /* GL_MODULATE_SUBTRACT_ATI */
- 2038, /* GL_YCBCR_MESA */
- 1173, /* GL_PACK_INVERT_MESA */
+ 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 */
@@ -5129,26 +5179,26 @@ static const unsigned reduced_enums[1402] =
471, /* GL_DU8DV8_ATI */
126, /* GL_BUMP_ENVMAP_ATI */
130, /* GL_BUMP_TARGET_ATI */
- 1117, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */
- 1320, /* GL_PROGRAM_BINARY_FORMATS_OES */
- 1624, /* GL_STENCIL_BACK_FUNC */
- 1622, /* GL_STENCIL_BACK_FAIL */
- 1626, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- 1628, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ 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 */
- 1318, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 1348, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 1347, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- 1332, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 1338, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 1337, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 957, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 980, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 979, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- 970, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 976, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 975, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 938, /* GL_MAX_DRAW_BUFFERS */
+ 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 */
@@ -5166,172 +5216,172 @@ static const unsigned reduced_enums[1402] =
432, /* GL_DRAW_BUFFER14 */
435, /* GL_DRAW_BUFFER15 */
85, /* GL_BLEND_EQUATION_ALPHA */
- 914, /* GL_MATRIX_PALETTE_ARB */
- 950, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- 953, /* GL_MAX_PALETTE_MATRICES_ARB */
+ 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 */
- 902, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ 911, /* GL_MATRIX_INDEX_ARRAY_ARB */
330, /* GL_CURRENT_MATRIX_INDEX_ARB */
- 907, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- 911, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- 909, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- 905, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- 1830, /* GL_TEXTURE_DEPTH_SIZE */
+ 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 */
- 1787, /* GL_TEXTURE_COMPARE_MODE */
- 1785, /* GL_TEXTURE_COMPARE_FUNC */
+ 1804, /* GL_TEXTURE_COMPARE_MODE */
+ 1802, /* GL_TEXTURE_COMPARE_FUNC */
255, /* GL_COMPARE_R_TO_TEXTURE */
- 1250, /* GL_POINT_SPRITE */
+ 1266, /* GL_POINT_SPRITE */
309, /* GL_COORD_REPLACE */
- 1255, /* GL_POINT_SPRITE_R_MODE_NV */
- 1383, /* GL_QUERY_COUNTER_BITS */
+ 1271, /* GL_POINT_SPRITE_R_MODE_NV */
+ 1400, /* GL_QUERY_COUNTER_BITS */
338, /* GL_CURRENT_QUERY */
- 1386, /* GL_QUERY_RESULT */
- 1388, /* GL_QUERY_RESULT_AVAILABLE */
- 1011, /* GL_MAX_VERTEX_ATTRIBS */
- 1991, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ 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 */
- 992, /* GL_MAX_TEXTURE_COORDS */
- 994, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- 1325, /* GL_PROGRAM_ERROR_STRING_ARB */
- 1327, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- 1326, /* GL_PROGRAM_FORMAT_ARB */
- 1884, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_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 */
- 1965, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- 1104, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ 1988, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ 1120, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
161, /* GL_COLOR_ARRAY_BUFFER_BINDING */
- 681, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- 1800, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ 688, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ 1817, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
481, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- 1533, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ 1550, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
537, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- 2019, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- 1987, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- 1328, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- 963, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- 1334, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 972, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 1346, /* GL_PROGRAM_TEMPORARIES_ARB */
- 978, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- 1336, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 974, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 1340, /* GL_PROGRAM_PARAMETERS_ARB */
- 977, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- 1335, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- 973, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- 1319, /* GL_PROGRAM_ATTRIBS_ARB */
- 958, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- 1333, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- 971, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- 1317, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- 956, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- 1331, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 969, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 964, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- 960, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- 1349, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- 1905, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- 1400, /* GL_READ_ONLY */
- 2033, /* GL_WRITE_ONLY */
- 1402, /* GL_READ_WRITE */
+ 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 */
- 1891, /* GL_TIME_ELAPSED_EXT */
- 862, /* GL_MATRIX0_ARB */
- 874, /* GL_MATRIX1_ARB */
- 886, /* GL_MATRIX2_ARB */
- 890, /* GL_MATRIX3_ARB */
- 892, /* GL_MATRIX4_ARB */
- 894, /* GL_MATRIX5_ARB */
- 896, /* GL_MATRIX6_ARB */
- 898, /* GL_MATRIX7_ARB */
- 900, /* GL_MATRIX8_ARB */
- 901, /* GL_MATRIX9_ARB */
- 864, /* GL_MATRIX10_ARB */
- 865, /* GL_MATRIX11_ARB */
- 866, /* GL_MATRIX12_ARB */
- 867, /* GL_MATRIX13_ARB */
- 868, /* GL_MATRIX14_ARB */
- 869, /* GL_MATRIX15_ARB */
- 870, /* GL_MATRIX16_ARB */
- 871, /* GL_MATRIX17_ARB */
- 872, /* GL_MATRIX18_ARB */
- 873, /* GL_MATRIX19_ARB */
- 876, /* GL_MATRIX20_ARB */
- 877, /* GL_MATRIX21_ARB */
- 878, /* GL_MATRIX22_ARB */
- 879, /* GL_MATRIX23_ARB */
- 880, /* GL_MATRIX24_ARB */
- 881, /* GL_MATRIX25_ARB */
- 882, /* GL_MATRIX26_ARB */
- 883, /* GL_MATRIX27_ARB */
- 884, /* GL_MATRIX28_ARB */
- 885, /* GL_MATRIX29_ARB */
- 888, /* GL_MATRIX30_ARB */
- 889, /* GL_MATRIX31_ARB */
- 1664, /* GL_STREAM_DRAW */
- 1666, /* GL_STREAM_READ */
- 1662, /* GL_STREAM_COPY */
- 1614, /* GL_STATIC_DRAW */
- 1616, /* GL_STATIC_READ */
- 1612, /* GL_STATIC_COPY */
+ 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 */
- 1213, /* GL_PIXEL_PACK_BUFFER */
- 1217, /* GL_PIXEL_UNPACK_BUFFER */
- 1214, /* GL_PIXEL_PACK_BUFFER_BINDING */
- 1218, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
+ 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 */
- 1880, /* GL_TEXTURE_STENCIL_SIZE */
- 1828, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
- 959, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- 962, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- 966, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- 965, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- 919, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
- 1655, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ 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 */
- 1036, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- 1514, /* GL_SAMPLES_PASSED */
- 1237, /* GL_POINT_SIZE_ARRAY_TYPE_OES */
- 1236, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */
- 1235, /* GL_POINT_SIZE_ARRAY_POINTER_OES */
- 1073, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */
- 1352, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */
- 1862, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */
+ 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 */
- 1414, /* GL_RELEASED_APPLE */
- 2016, /* GL_VOLATILE_APPLE */
- 1453, /* GL_RETAINED_APPLE */
- 1918, /* GL_UNDEFINED_APPLE */
- 1373, /* GL_PURGEABLE_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 */
- 2011, /* GL_VERTEX_SHADER */
- 1339, /* GL_PROGRAM_OBJECT_ARB */
- 1549, /* GL_SHADER_OBJECT_ARB */
- 945, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- 1015, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- 1008, /* GL_MAX_VARYING_FLOATS */
- 1013, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- 929, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- 1133, /* GL_OBJECT_TYPE_ARB */
- 1551, /* GL_SHADER_TYPE */
+ 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 */
- 710, /* GL_INT_VEC2 */
- 712, /* GL_INT_VEC3 */
- 714, /* GL_INT_VEC4 */
+ 717, /* GL_INT_VEC2 */
+ 719, /* GL_INT_VEC3 */
+ 721, /* GL_INT_VEC4 */
102, /* GL_BOOL */
104, /* GL_BOOL_VEC2 */
106, /* GL_BOOL_VEC3 */
@@ -5339,12 +5389,12 @@ static const unsigned reduced_enums[1402] =
513, /* GL_FLOAT_MAT2 */
517, /* GL_FLOAT_MAT3 */
521, /* GL_FLOAT_MAT4 */
- 1504, /* GL_SAMPLER_1D */
- 1506, /* GL_SAMPLER_2D */
- 1508, /* GL_SAMPLER_3D */
- 1510, /* GL_SAMPLER_CUBE */
- 1505, /* GL_SAMPLER_1D_SHADOW */
- 1507, /* GL_SAMPLER_2D_SHADOW */
+ 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 */
@@ -5353,96 +5403,97 @@ static const unsigned reduced_enums[1402] =
524, /* GL_FLOAT_MAT4x3 */
360, /* GL_DELETE_STATUS */
259, /* GL_COMPILE_STATUS */
- 767, /* GL_LINK_STATUS */
- 1959, /* GL_VALIDATE_STATUS */
- 693, /* GL_INFO_LOG_LENGTH */
+ 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 */
- 1550, /* GL_SHADER_SOURCE_LENGTH */
+ 1567, /* GL_SHADER_SOURCE_LENGTH */
15, /* GL_ACTIVE_ATTRIBUTES */
16, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */
562, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- 1553, /* GL_SHADING_LANGUAGE_VERSION */
+ 1570, /* GL_SHADING_LANGUAGE_VERSION */
337, /* GL_CURRENT_PROGRAM */
- 1182, /* GL_PALETTE4_RGB8_OES */
- 1184, /* GL_PALETTE4_RGBA8_OES */
- 1180, /* GL_PALETTE4_R5_G6_B5_OES */
- 1183, /* GL_PALETTE4_RGBA4_OES */
- 1181, /* GL_PALETTE4_RGB5_A1_OES */
- 1187, /* GL_PALETTE8_RGB8_OES */
- 1189, /* GL_PALETTE8_RGBA8_OES */
- 1185, /* GL_PALETTE8_R5_G6_B5_OES */
- 1188, /* GL_PALETTE8_RGBA4_OES */
- 1186, /* GL_PALETTE8_RGB5_A1_OES */
- 675, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- 673, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- 1234, /* GL_POINT_SIZE_ARRAY_OES */
- 1806, /* GL_TEXTURE_CROP_RECT_OES */
- 903, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */
- 1233, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */
- 1942, /* GL_UNSIGNED_NORMALIZED */
- 1752, /* GL_TEXTURE_1D_ARRAY_EXT */
- 1362, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
- 1754, /* GL_TEXTURE_2D_ARRAY_EXT */
- 1365, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
- 1761, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- 1763, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
- 1606, /* GL_SRGB */
- 1607, /* GL_SRGB8 */
- 1609, /* GL_SRGB_ALPHA */
- 1608, /* GL_SRGB8_ALPHA8 */
- 1566, /* GL_SLUMINANCE_ALPHA */
- 1565, /* GL_SLUMINANCE8_ALPHA8 */
- 1563, /* GL_SLUMINANCE */
- 1564, /* GL_SLUMINANCE8 */
+ 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 */
- 1902, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */
- 1897, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */
- 1007, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */
- 1901, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */
- 1899, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */
- 1898, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */
- 1316, /* GL_PRIMITIVES_GENERATED_EXT */
- 1900, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */
- 1393, /* GL_RASTERIZER_DISCARD_EXT */
- 1005, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */
- 1006, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */
- 705, /* GL_INTERLEAVED_ATTRIBS_EXT */
- 1543, /* GL_SEPARATE_ATTRIBS_EXT */
- 1896, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */
- 1895, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */
- 1252, /* GL_POINT_SPRITE_COORD_ORIGIN */
- 775, /* GL_LOWER_LEFT */
- 1956, /* GL_UPPER_LEFT */
- 1630, /* GL_STENCIL_BACK_REF */
- 1631, /* GL_STENCIL_BACK_VALUE_MASK */
- 1632, /* GL_STENCIL_BACK_WRITEMASK */
+ 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 */
- 1419, /* GL_RENDERBUFFER_BINDING */
- 1396, /* GL_READ_FRAMEBUFFER */
+ 1436, /* GL_RENDERBUFFER_BINDING */
+ 1413, /* GL_READ_FRAMEBUFFER */
464, /* GL_DRAW_FRAMEBUFFER */
- 1397, /* GL_READ_FRAMEBUFFER_BINDING */
- 1438, /* GL_RENDERBUFFER_SAMPLES */
- 574, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
- 571, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
- 586, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
- 581, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
- 584, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
- 592, /* GL_FRAMEBUFFER_COMPLETE */
- 597, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
- 609, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
- 606, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- 601, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- 607, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- 603, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
- 614, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
- 620, /* GL_FRAMEBUFFER_UNSUPPORTED */
- 618, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- 925, /* GL_MAX_COLOR_ATTACHMENTS */
+ 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 */
@@ -5460,75 +5511,91 @@ static const unsigned reduced_enums[1402] =
179, /* GL_COLOR_ATTACHMENT14 */
181, /* GL_COLOR_ATTACHMENT15 */
365, /* GL_DEPTH_ATTACHMENT */
- 1619, /* GL_STENCIL_ATTACHMENT */
+ 1636, /* GL_STENCIL_ATTACHMENT */
564, /* GL_FRAMEBUFFER */
- 1416, /* GL_RENDERBUFFER */
- 1442, /* GL_RENDERBUFFER_WIDTH */
- 1429, /* GL_RENDERBUFFER_HEIGHT */
- 1432, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
- 1650, /* GL_STENCIL_INDEX_EXT */
- 1639, /* GL_STENCIL_INDEX1 */
- 1644, /* GL_STENCIL_INDEX4 */
- 1647, /* GL_STENCIL_INDEX8 */
- 1640, /* GL_STENCIL_INDEX16 */
- 1436, /* GL_RENDERBUFFER_RED_SIZE */
- 1427, /* GL_RENDERBUFFER_GREEN_SIZE */
- 1422, /* GL_RENDERBUFFER_BLUE_SIZE */
- 1417, /* GL_RENDERBUFFER_ALPHA_SIZE */
- 1424, /* GL_RENDERBUFFER_DEPTH_SIZE */
- 1440, /* GL_RENDERBUFFER_STENCIL_SIZE */
- 612, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
- 987, /* GL_MAX_SAMPLES */
- 1842, /* GL_TEXTURE_GEN_STR_OES */
- 648, /* GL_HALF_FLOAT_OES */
- 1470, /* GL_RGB565_OES */
- 776, /* GL_LOW_FLOAT */
- 1021, /* GL_MEDIUM_FLOAT */
- 649, /* GL_HIGH_FLOAT */
- 777, /* GL_LOW_INT */
- 1022, /* GL_MEDIUM_INT */
- 650, /* GL_HIGH_INT */
- 1933, /* GL_UNSIGNED_INT_10_10_10_2_OES */
- 709, /* GL_INT_10_10_10_2_OES */
- 1547, /* GL_SHADER_BINARY_FORMATS */
- 1118, /* GL_NUM_SHADER_BINARY_FORMATS */
- 1548, /* GL_SHADER_COMPILER */
- 1017, /* GL_MAX_VERTEX_UNIFORM_VECTORS */
- 1010, /* GL_MAX_VARYING_VECTORS */
- 947, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */
- 1390, /* GL_QUERY_WAIT_NV */
- 1385, /* GL_QUERY_NO_WAIT_NV */
- 1382, /* GL_QUERY_BY_REGION_WAIT_NV */
- 1381, /* GL_QUERY_BY_REGION_NO_WAIT_NV */
- 1377, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
+ 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 */
- 726, /* GL_LAST_VERTEX_CONVENTION */
- 1354, /* GL_PROVOKING_VERTEX */
+ 733, /* GL_LAST_VERTEX_CONVENTION */
+ 1371, /* GL_PROVOKING_VERTEX */
316, /* GL_COPY_READ_BUFFER */
317, /* GL_COPY_WRITE_BUFFER */
- 1497, /* GL_RGBA_SNORM */
- 1493, /* GL_RGBA8_SNORM */
- 1559, /* GL_SIGNED_NORMALIZED */
- 989, /* GL_MAX_SERVER_WAIT_TIMEOUT */
- 1132, /* GL_OBJECT_TYPE */
- 1671, /* GL_SYNC_CONDITION */
- 1676, /* GL_SYNC_STATUS */
- 1673, /* GL_SYNC_FLAGS */
- 1672, /* GL_SYNC_FENCE */
- 1675, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
- 1927, /* GL_UNSIGNALED */
- 1558, /* GL_SIGNALED */
+ 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 */
- 1890, /* GL_TIMEOUT_EXPIRED */
+ 1907, /* GL_TIMEOUT_EXPIRED */
283, /* GL_CONDITION_SATISFIED */
- 2017, /* GL_WAIT_FAILED */
+ 2040, /* GL_WAIT_FAILED */
492, /* GL_EVAL_BIT */
- 1394, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- 769, /* GL_LIST_BIT */
- 1771, /* GL_TEXTURE_BIT */
- 1529, /* GL_SCISSOR_BIT */
+ 1411, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ 778, /* GL_LIST_BIT */
+ 1788, /* GL_TEXTURE_BIT */
+ 1546, /* GL_SCISSOR_BIT */
29, /* GL_ALL_ATTRIB_BITS */
- 1084, /* GL_MULTISAMPLE_BIT */
+ 1100, /* GL_MULTISAMPLE_BIT */
30, /* GL_ALL_CLIENT_ATTRIB_BITS */
};
@@ -5581,7 +5648,8 @@ const char *_mesa_lookup_enum_by_nr( int nr )
}
else {
/* this is not re-entrant safe, no big deal here */
- _mesa_snprintf(token_tmp, sizeof(token_tmp), "0x%x", nr);
+ _mesa_snprintf(token_tmp, sizeof(token_tmp) - 1, "0x%x", nr);
+ token_tmp[sizeof(token_tmp) - 1] = '\0';
return token_tmp;
}
}
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 371ef3a3973..19a1eebe6e9 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -44,9 +44,11 @@ static const struct {
const char *name;
int flag_offset;
} default_extensions[] = {
+ { OFF, "GL_ARB_blend_func_extended", F(ARB_blend_func_extended) },
{ OFF, "GL_ARB_copy_buffer", F(ARB_copy_buffer) },
- { OFF, "GL_ARB_depth_texture", F(ARB_depth_texture) },
+ { OFF, "GL_ARB_depth_buffer_float", F(ARB_depth_buffer_float) },
{ OFF, "GL_ARB_depth_clamp", F(ARB_depth_clamp) },
+ { OFF, "GL_ARB_depth_texture", F(ARB_depth_texture) },
{ ON, "GL_ARB_draw_buffers", F(ARB_draw_buffers) },
{ OFF, "GL_ARB_draw_elements_base_vertex", F(ARB_draw_elements_base_vertex) },
{ OFF, "GL_ARB_draw_instanced", F(ARB_draw_instanced) },
@@ -55,17 +57,22 @@ static const struct {
{ OFF, "GL_ARB_fragment_program_shadow", F(ARB_fragment_program_shadow) },
{ OFF, "GL_ARB_fragment_shader", F(ARB_fragment_shader) },
{ OFF, "GL_ARB_framebuffer_object", F(ARB_framebuffer_object) },
+ { OFF, "GL_ARB_explicit_attrib_location", F(ARB_explicit_attrib_location) },
+ { OFF, "GL_ARB_geometry_shader4", F(ARB_geometry_shader4) },
{ OFF, "GL_ARB_half_float_pixel", F(ARB_half_float_pixel) },
{ OFF, "GL_ARB_half_float_vertex", F(ARB_half_float_vertex) },
{ OFF, "GL_ARB_imaging", F(ARB_imaging) },
+ { OFF, "GL_ARB_instanced_arrays", F(ARB_instanced_arrays) },
{ OFF, "GL_ARB_map_buffer_range", F(ARB_map_buffer_range) },
{ ON, "GL_ARB_multisample", F(ARB_multisample) },
{ OFF, "GL_ARB_multitexture", F(ARB_multitexture) },
{ OFF, "GL_ARB_occlusion_query", F(ARB_occlusion_query) },
+ { OFF, "GL_ARB_occlusion_query2", F(ARB_occlusion_query2) },
{ OFF, "GL_ARB_pixel_buffer_object", F(EXT_pixel_buffer_object) },
{ OFF, "GL_ARB_point_parameters", F(EXT_point_parameters) },
{ OFF, "GL_ARB_point_sprite", F(ARB_point_sprite) },
{ OFF, "GL_ARB_provoking_vertex", F(EXT_provoking_vertex) },
+ { OFF, "GL_ARB_sampler_objects", F(ARB_sampler_objects) },
{ OFF, "GL_ARB_seamless_cube_map", F(ARB_seamless_cube_map) },
{ OFF, "GL_ARB_shader_objects", F(ARB_shader_objects) },
{ OFF, "GL_ARB_shading_language_100", F(ARB_shading_language_100) },
@@ -74,6 +81,7 @@ static const struct {
{ OFF, "GL_ARB_shadow_ambient", F(ARB_shadow_ambient) },
{ OFF, "GL_ARB_sync", F(ARB_sync) },
{ OFF, "GL_ARB_texture_border_clamp", F(ARB_texture_border_clamp) },
+ { OFF, "GL_ARB_texture_buffer_object", F(ARB_texture_buffer_object) },
{ ON, "GL_ARB_texture_compression", F(ARB_texture_compression) },
{ OFF, "GL_ARB_texture_cube_map", F(ARB_texture_cube_map) },
{ OFF, "GL_ARB_texture_env_add", F(EXT_texture_env_add) },
@@ -82,16 +90,21 @@ static const struct {
{ OFF, "GL_ARB_texture_env_dot3", F(ARB_texture_env_dot3) },
{ OFF, "GL_MESAX_texture_float", F(ARB_texture_float) },
{ OFF, "GL_ARB_texture_mirrored_repeat", F(ARB_texture_mirrored_repeat)},
+ { OFF, "GL_ARB_texture_multisample", F(ARB_texture_multisample) },
{ OFF, "GL_ARB_texture_non_power_of_two", F(ARB_texture_non_power_of_two)},
{ OFF, "GL_ARB_texture_rectangle", F(NV_texture_rectangle) },
+ { OFF, "GL_ARB_texture_rg", F(ARB_texture_rg) },
+ { OFF, "GL_ARB_texture_rgb10_a2ui", F(ARB_texture_rgb10_a2ui) },
{ OFF, "GL_ARB_texture_swizzle", F(EXT_texture_swizzle) },
{ ON, "GL_ARB_transpose_matrix", F(ARB_transpose_matrix) },
{ OFF, "GL_ARB_transform_feedback2", F(ARB_transform_feedback2) },
+ { OFF, "GL_ARB_uniform_buffer_object", F(ARB_uniform_buffer_object) },
{ OFF, "GL_ARB_vertex_array_bgra", F(EXT_vertex_array_bgra) },
{ OFF, "GL_ARB_vertex_array_object", F(ARB_vertex_array_object) },
{ ON, "GL_ARB_vertex_buffer_object", F(ARB_vertex_buffer_object) },
{ OFF, "GL_ARB_vertex_program", F(ARB_vertex_program) },
{ OFF, "GL_ARB_vertex_shader", F(ARB_vertex_shader) },
+ { OFF, "GL_ARB_vertex_type_2_10_10_10_rev", F(ARB_vertex_type_2_10_10_10_rev) },
{ ON, "GL_ARB_window_pos", F(ARB_window_pos) },
{ ON, "GL_EXT_abgr", F(EXT_abgr) },
{ ON, "GL_EXT_bgra", F(EXT_bgra) },
@@ -113,11 +126,13 @@ static const struct {
{ OFF, "GL_EXT_framebuffer_blit", F(EXT_framebuffer_blit) },
{ OFF, "GL_EXT_framebuffer_multisample", F(EXT_framebuffer_multisample) },
{ OFF, "GL_EXT_framebuffer_object", F(EXT_framebuffer_object) },
+ { OFF, "GL_EXT_framebuffer_sRGB", F(EXT_framebuffer_sRGB) },
{ OFF, "GL_EXT_fog_coord", F(EXT_fog_coord) },
{ OFF, "GL_EXT_gpu_program_parameters", F(EXT_gpu_program_parameters) },
{ OFF, "GL_EXT_histogram", F(EXT_histogram) },
{ ON, "GL_EXT_multi_draw_arrays", F(EXT_multi_draw_arrays) },
{ OFF, "GL_EXT_packed_depth_stencil", F(EXT_packed_depth_stencil) },
+ { OFF, "GL_EXT_packed_float", F(EXT_packed_float) },
{ ON, "GL_EXT_packed_pixels", F(EXT_packed_pixels) },
{ OFF, "GL_EXT_paletted_texture", F(EXT_paletted_texture) },
{ OFF, "GL_EXT_pixel_buffer_object", F(EXT_pixel_buffer_object) },
@@ -136,16 +151,19 @@ static const struct {
{ ON, "GL_EXT_texture3D", F(EXT_texture3D) },
{ OFF, "GL_EXT_texture_array", F(EXT_texture_array) },
{ OFF, "GL_EXT_texture_compression_s3tc", F(EXT_texture_compression_s3tc) },
+ { OFF, "GL_EXT_texture_compression_rgtc", F(EXT_texture_compression_rgtc) },
{ OFF, "GL_EXT_texture_cube_map", F(ARB_texture_cube_map) },
{ ON, "GL_EXT_texture_edge_clamp", F(SGIS_texture_edge_clamp) },
{ OFF, "GL_EXT_texture_env_add", F(EXT_texture_env_add) },
{ OFF, "GL_EXT_texture_env_combine", F(EXT_texture_env_combine) },
{ OFF, "GL_EXT_texture_env_dot3", F(EXT_texture_env_dot3) },
{ OFF, "GL_EXT_texture_filter_anisotropic", F(EXT_texture_filter_anisotropic) },
+ { OFF, "GL_EXT_texture_integer", F(EXT_texture_integer) },
{ OFF, "GL_EXT_texture_lod_bias", F(EXT_texture_lod_bias) },
{ OFF, "GL_EXT_texture_mirror_clamp", F(EXT_texture_mirror_clamp) },
{ ON, "GL_EXT_texture_object", F(EXT_texture_object) },
{ OFF, "GL_EXT_texture_rectangle", F(NV_texture_rectangle) },
+ { OFF, "GL_EXT_texture_shared_exponent", F(EXT_texture_shared_exponent) },
{ OFF, "GL_EXT_texture_sRGB", F(EXT_texture_sRGB) },
{ OFF, "GL_EXT_texture_swizzle", F(EXT_texture_swizzle) },
{ OFF, "GL_EXT_timer_query", F(EXT_timer_query) },
@@ -183,9 +201,10 @@ static const struct {
{ ON, "GL_NV_light_max_exponent", F(NV_light_max_exponent) },
{ OFF, "GL_NV_packed_depth_stencil", F(EXT_packed_depth_stencil) },
{ OFF, "GL_NV_point_sprite", F(NV_point_sprite) },
+ { OFF, "GL_NV_primitive_restart", F(NV_primitive_restart) },
+ { ON, "GL_NV_texgen_reflection", F(NV_texgen_reflection) },
{ OFF, "GL_NV_texture_env_combine4", F(NV_texture_env_combine4) },
{ OFF, "GL_NV_texture_rectangle", F(NV_texture_rectangle) },
- { ON, "GL_NV_texgen_reflection", F(NV_texgen_reflection) },
{ OFF, "GL_NV_vertex_program", F(NV_vertex_program) },
{ OFF, "GL_NV_vertex_program1_1", F(NV_vertex_program1_1) },
{ ON, "GL_OES_read_format", F(OES_read_format) },
@@ -231,6 +250,9 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
#if FEATURE_ARB_framebuffer_object
ctx->Extensions.ARB_framebuffer_object = GL_TRUE;
#endif
+#if FEATURE_ARB_geometry_shader4
+ ctx->Extensions.ARB_geometry_shader4 = GL_TRUE;
+#endif
ctx->Extensions.ARB_half_float_pixel = GL_TRUE;
ctx->Extensions.ARB_half_float_vertex = GL_TRUE;
ctx->Extensions.ARB_imaging = GL_TRUE;
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 09fafbc8b9d..8c86b392c7b 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -147,6 +147,8 @@ invalidate_framebuffer(struct gl_framebuffer *fb)
/**
* Given a GL_*_ATTACHMENTn token, return a pointer to the corresponding
* gl_renderbuffer_attachment object.
+ * This function is only used for user-created FB objects, not the
+ * default / window-system FB object.
* If \p attachment is GL_DEPTH_STENCIL_ATTACHMENT, return a pointer to
* the depth buffer attachment point.
*/
@@ -156,6 +158,8 @@ _mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb,
{
GLuint i;
+ assert(fb->Name > 0);
+
switch (attachment) {
case GL_COLOR_ATTACHMENT0_EXT:
case GL_COLOR_ATTACHMENT1_EXT:
@@ -188,6 +192,23 @@ _mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb,
/* fall-through / new in GL 3.0 */
case GL_STENCIL_ATTACHMENT_EXT:
return &fb->Attachment[BUFFER_STENCIL];
+ default:
+ return NULL;
+ }
+}
+
+
+/**
+ * As above, but only used for getting attachments of the default /
+ * window-system framebuffer (not user-created framebuffer objects).
+ */
+static struct gl_renderbuffer_attachment *
+_mesa_get_fb0_attachment(GLcontext *ctx, struct gl_framebuffer *fb,
+ GLenum attachment)
+{
+ assert(fb->Name == 0);
+
+ switch (attachment) {
case GL_FRONT_LEFT:
return &fb->Attachment[BUFFER_FRONT_LEFT];
case GL_FRONT_RIGHT:
@@ -196,12 +217,26 @@ _mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb,
return &fb->Attachment[BUFFER_BACK_LEFT];
case GL_BACK_RIGHT:
return &fb->Attachment[BUFFER_BACK_RIGHT];
+ case GL_AUX0:
+ if (fb->Visual.numAuxBuffers == 1) {
+ return &fb->Attachment[BUFFER_AUX0];
+ }
+ return NULL;
+ case GL_DEPTH_BUFFER:
+ /* fall-through / new in GL 3.0 */
+ case GL_DEPTH_ATTACHMENT_EXT:
+ return &fb->Attachment[BUFFER_DEPTH];
+ case GL_STENCIL_BUFFER:
+ /* fall-through / new in GL 3.0 */
+ case GL_STENCIL_ATTACHMENT_EXT:
+ return &fb->Attachment[BUFFER_STENCIL];
default:
return NULL;
}
}
+
/**
* Remove any texture or renderbuffer attached to the given attachment
* point. Update reference counts, etc.
@@ -1885,7 +1920,15 @@ _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment,
return;
}
- att = _mesa_get_attachment(ctx, buffer, attachment);
+ if (buffer->Name == 0) {
+ /* the default / window-system FBO */
+ att = _mesa_get_fb0_attachment(ctx, buffer, attachment);
+ }
+ else {
+ /* user-created framebuffer FBO */
+ att = _mesa_get_attachment(ctx, buffer, attachment);
+ }
+
if (att == NULL) {
_mesa_error(ctx, GL_INVALID_ENUM,
"glGetFramebufferAttachmentParameterivEXT(attachment)");
@@ -2256,3 +2299,25 @@ _mesa_BlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
mask, filter);
}
#endif /* FEATURE_EXT_framebuffer_blit */
+
+#if FEATURE_ARB_geometry_shader4
+void GLAPIENTRY
+_mesa_FramebufferTextureARB(GLenum target, GLenum attachment,
+ GLuint texture, GLint level)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glFramebufferTextureARB "
+ "not implemented!");
+}
+
+void GLAPIENTRY
+_mesa_FramebufferTextureFaceARB(GLenum target, GLenum attachment,
+ GLuint texture, GLint level, GLenum face)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glFramebufferTextureFaceARB "
+ "not implemented!");
+}
+#endif /* FEATURE_ARB_geometry_shader4 */
diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h
index 40a18f83412..ff946033a4d 100644
--- a/src/mesa/main/fbobject.h
+++ b/src/mesa/main/fbobject.h
@@ -149,5 +149,13 @@ _mesa_BlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
GLbitfield mask, GLenum filter);
+extern void GLAPIENTRY
+_mesa_FramebufferTextureARB(GLenum target, GLenum attachment,
+ GLuint texture, GLint level);
+
+extern void GLAPIENTRY
+_mesa_FramebufferTextureFaceARB(GLenum target, GLenum attachment,
+ GLuint texture, GLint level, GLenum face);
+
#endif /* FBOBJECT_H */
diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c
index 70ac47f36d7..92fec09bad0 100644
--- a/src/mesa/main/ffvertex_prog.c
+++ b/src/mesa/main/ffvertex_prog.c
@@ -38,12 +38,12 @@
#include "main/macros.h"
#include "main/enums.h"
#include "main/ffvertex_prog.h"
-#include "shader/program.h"
-#include "shader/prog_cache.h"
-#include "shader/prog_instruction.h"
-#include "shader/prog_parameter.h"
-#include "shader/prog_print.h"
-#include "shader/prog_statevars.h"
+#include "program/program.h"
+#include "program/prog_cache.h"
+#include "program/prog_instruction.h"
+#include "program/prog_parameter.h"
+#include "program/prog_print.h"
+#include "program/prog_statevars.h"
/** Max of number of lights and texture coord units */
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 3671140e859..49463fcc3c2 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -48,7 +48,7 @@ struct gl_format_info
/**
* Logical data type: one of GL_UNSIGNED_NORMALIZED, GL_SIGNED_NORMALED,
- * GL_UNSIGNED_INT, GL_SIGNED_INT, GL_FLOAT.
+ * GL_UNSIGNED_INT, GL_INT, GL_FLOAT.
*/
GLenum DataType;
@@ -628,6 +628,66 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] =
0, 16, 0, 0, 0,
1, 1, 2
},
+
+ /* unnormalized signed int formats */
+ {
+ MESA_FORMAT_RGBA_INT8,
+ "MESA_FORMAT_RGBA_INT8",
+ GL_RGBA,
+ GL_INT,
+ 8, 8, 8, 8,
+ 0, 0, 0, 0, 0,
+ 1, 1, 4
+ },
+ {
+ MESA_FORMAT_RGBA_INT16,
+ "MESA_FORMAT_RGBA_INT16",
+ GL_RGBA,
+ GL_INT,
+ 16, 16, 16, 16,
+ 0, 0, 0, 0, 0,
+ 1, 1, 8
+ },
+ {
+ MESA_FORMAT_RGBA_INT32,
+ "MESA_FORMAT_RGBA_INT32",
+ GL_RGBA,
+ GL_INT,
+ 32, 32, 32, 32,
+ 0, 0, 0, 0, 0,
+ 1, 1, 16
+ },
+
+ /* unnormalized unsigned int formats */
+ {
+ MESA_FORMAT_RGBA_UINT8,
+ "MESA_FORMAT_RGBA_UINT8",
+ GL_RGBA,
+ GL_UNSIGNED_INT,
+ 8, 8, 8, 8,
+ 0, 0, 0, 0, 0,
+ 1, 1, 4
+ },
+ {
+ MESA_FORMAT_RGBA_UINT16,
+ "MESA_FORMAT_RGBA_UINT16",
+ GL_RGBA,
+ GL_UNSIGNED_INT,
+ 16, 16, 16, 16,
+ 0, 0, 0, 0, 0,
+ 1, 1, 8
+ },
+ {
+ MESA_FORMAT_RGBA_UINT32,
+ "MESA_FORMAT_RGBA_UINT32",
+ GL_RGBA,
+ GL_UNSIGNED_INT,
+ 32, 32, 32, 32,
+ 0, 0, 0, 0, 0,
+ 1, 1, 16
+ },
+
+
{
MESA_FORMAT_DUDV8,
"MESA_FORMAT_DUDV8",
@@ -1230,6 +1290,36 @@ _mesa_format_to_type_and_comps(gl_format format,
*comps = 1;
return;
+ case MESA_FORMAT_RGBA_INT8:
+ *datatype = GL_BYTE;
+ *comps = 4;
+ return;
+ case MESA_FORMAT_RGBA_INT16:
+ *datatype = GL_SHORT;
+ *comps = 4;
+ return;
+ case MESA_FORMAT_RGBA_INT32:
+ *datatype = GL_INT;
+ *comps = 4;
+ return;
+
+ /**
+ * \name Non-normalized unsigned integer formats.
+ */
+ case MESA_FORMAT_RGBA_UINT8:
+ *datatype = GL_UNSIGNED_BYTE;
+ *comps = 4;
+ return;
+ case MESA_FORMAT_RGBA_UINT16:
+ *datatype = GL_UNSIGNED_SHORT;
+ *comps = 4;
+ return;
+ case MESA_FORMAT_RGBA_UINT32:
+ *datatype = GL_UNSIGNED_INT;
+ *comps = 4;
+ return;
+
+
default:
_mesa_problem(NULL, "bad format in _mesa_format_to_type_and_comps");
*datatype = 0;
diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h
index c744688122f..aa14185628f 100644
--- a/src/mesa/main/formats.h
+++ b/src/mesa/main/formats.h
@@ -130,6 +130,22 @@ typedef enum
MESA_FORMAT_INTENSITY_FLOAT16,
/*@}*/
+ /**
+ * \name Non-normalized signed integer formats.
+ * XXX Note: these are just stand-ins for some better hardware
+ * formats TBD such as BGRA or ARGB.
+ */
+ MESA_FORMAT_RGBA_INT8,
+ MESA_FORMAT_RGBA_INT16,
+ MESA_FORMAT_RGBA_INT32,
+
+ /**
+ * \name Non-normalized unsigned integer formats.
+ */
+ MESA_FORMAT_RGBA_UINT8,
+ MESA_FORMAT_RGBA_UINT16,
+ MESA_FORMAT_RGBA_UINT32,
+
/* msb <------ TEXEL BITS -----------> lsb */
/* ---- ---- ---- ---- ---- ---- ---- ---- */
/**
diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c
index 01f84180af7..56558cfcc1e 100644
--- a/src/mesa/main/framebuffer.c
+++ b/src/mesa/main/framebuffer.c
@@ -879,6 +879,7 @@ _mesa_source_buffer_exists(GLcontext *ctx, GLenum format)
return GL_FALSE;
}
ASSERT(_mesa_get_format_bits(ctx->ReadBuffer->_ColorReadBuffer->Format, GL_RED_BITS) > 0 ||
+ _mesa_get_format_bits(ctx->ReadBuffer->_ColorReadBuffer->Format, GL_ALPHA_BITS) > 0 ||
_mesa_get_format_bits(ctx->ReadBuffer->_ColorReadBuffer->Format, GL_INDEX_BITS) > 0);
break;
case GL_DEPTH:
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 03f2707f4f0..632dadd1a5d 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -303,6 +303,7 @@ EXTRA_EXT2(ARB_fragment_program, NV_fragment_program);
EXTRA_EXT2(ARB_vertex_program, NV_vertex_program);
EXTRA_EXT2(ARB_vertex_program, ARB_fragment_program);
EXTRA_EXT(ARB_vertex_buffer_object);
+EXTRA_EXT(ARB_geometry_shader4);
static const int
extra_ARB_vertex_program_ARB_fragment_program_NV_vertex_program[] = {
@@ -667,7 +668,7 @@ static const struct value_desc values[] = {
{ GL_MAX_3D_TEXTURE_SIZE, LOC_CUSTOM, TYPE_INT,
offsetof(GLcontext, Const.Max3DTextureLevels), NO_EXTRA },
- /* GL_ARB_fragment_shader/OES_standard_derivatives */
+ /* GL_ARB_fragment_program/OES_standard_derivatives */
{ GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB,
CONTEXT_ENUM(Hint.FragmentShaderDerivative), extra_ARB_fragment_shader },
#endif /* FEATURE_GL || FEATURE_ES2 */
@@ -1220,6 +1221,26 @@ static const struct value_desc values[] = {
{ GL_TRANSFORM_FEEDBACK_BINDING, LOC_CUSTOM, TYPE_INT, 0,
extra_ARB_transform_feedback2 },
+ /* GL_ARB_geometry_shader4 */
+ { GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB,
+ CONTEXT_INT(Const.GeometryProgram.MaxGeometryTextureImageUnits),
+ extra_ARB_geometry_shader4 },
+ { GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB,
+ CONTEXT_INT(Const.GeometryProgram.MaxGeometryOutputVertices),
+ extra_ARB_geometry_shader4 },
+ { GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB,
+ CONTEXT_INT(Const.GeometryProgram.MaxGeometryTotalOutputComponents),
+ extra_ARB_geometry_shader4 },
+ { GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB,
+ CONTEXT_INT(Const.GeometryProgram.MaxGeometryUniformComponents),
+ extra_ARB_geometry_shader4 },
+ { GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB,
+ CONTEXT_INT(Const.GeometryProgram.MaxGeometryVaryingComponents),
+ extra_ARB_geometry_shader4 },
+ { GL_MAX_VERTEX_VARYING_COMPONENTS_ARB,
+ CONTEXT_INT(Const.GeometryProgram.MaxVertexVaryingComponents),
+ extra_ARB_geometry_shader4 },
+
/* GL 3.0 */
{ GL_NUM_EXTENSIONS, LOC_CUSTOM, TYPE_INT, 0, extra_version_30 },
{ GL_MAJOR_VERSION, CONTEXT_INT(VersionMajor), extra_version_30 },
diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c
index 54db5794bf6..7961ad7e7dd 100644
--- a/src/mesa/main/getstring.c
+++ b/src/mesa/main/getstring.c
@@ -95,8 +95,6 @@ _mesa_GetString( GLenum name )
case GL_VERSION:
return (const GLubyte *) ctx->VersionString;
case GL_EXTENSIONS:
- if (!ctx->Extensions.String)
- ctx->Extensions.String = _mesa_make_extension_string(ctx);
return (const GLubyte *) ctx->Extensions.String;
#if FEATURE_ARB_shading_language_100 || FEATURE_ES2
case GL_SHADING_LANGUAGE_VERSION:
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c
index 93b01423dcf..63c28342f26 100644
--- a/src/mesa/main/image.c
+++ b/src/mesa/main/image.c
@@ -274,17 +274,25 @@ _mesa_components_in_format( GLenum format )
case GL_STENCIL_INDEX:
case GL_DEPTH_COMPONENT:
case GL_RED:
+ case GL_RED_INTEGER_EXT:
case GL_GREEN:
+ case GL_GREEN_INTEGER_EXT:
case GL_BLUE:
+ case GL_BLUE_INTEGER_EXT:
case GL_ALPHA:
+ case GL_ALPHA_INTEGER_EXT:
case GL_LUMINANCE:
+ case GL_LUMINANCE_INTEGER_EXT:
case GL_INTENSITY:
return 1;
case GL_LUMINANCE_ALPHA:
+ case GL_LUMINANCE_ALPHA_INTEGER_EXT:
return 2;
case GL_RGB:
+ case GL_RGB_INTEGER_EXT:
return 3;
case GL_RGBA:
+ case GL_RGBA_INTEGER_EXT:
return 4;
case GL_BGR:
return 3;
@@ -523,6 +531,28 @@ _mesa_is_legal_format_and_type( GLcontext *ctx, GLenum format, GLenum type )
default:
return GL_FALSE;
}
+ 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:
+ switch (type) {
+ case GL_BYTE:
+ case GL_UNSIGNED_BYTE:
+ case GL_SHORT:
+ case GL_UNSIGNED_SHORT:
+ case GL_INT:
+ case GL_UNSIGNED_INT:
+ return ctx->Extensions.EXT_texture_integer;
+ default:
+ return GL_FALSE;
+ }
+
default:
; /* fall-through */
}
@@ -777,6 +807,30 @@ _mesa_is_dudv_format(GLenum format)
/**
+ * Test if the given format is an integer (non-normalized) format.
+ */
+GLboolean
+_mesa_is_integer_format(GLenum format)
+{
+ switch (format) {
+ 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:
+ return GL_TRUE;
+ default:
+ return GL_FALSE;
+ }
+}
+
+
+/**
* Test if an image format is a supported compressed format.
* \param format the internal format token provided by the user.
* \return GL_TRUE if compressed, GL_FALSE if uncompressed
@@ -3275,6 +3329,8 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
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 ||
@@ -3289,7 +3345,17 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
srcFormat == GL_BGRA ||
srcFormat == GL_ABGR_EXT ||
srcFormat == GL_DU8DV8_ATI ||
- srcFormat == GL_DUDV_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 ||
@@ -3316,31 +3382,37 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
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;
@@ -3350,6 +3422,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
stride = 1;
break;
case GL_RGB:
+ case GL_RGB_INTEGER:
redIndex = 0;
greenIndex = 1;
blueIndex = 2;
@@ -3372,6 +3445,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
stride = 3;
break;
case GL_RGBA:
+ case GL_RGBA_INTEGER:
redIndex = 0;
greenIndex = 1;
blueIndex = 2;
@@ -3418,12 +3492,20 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
return;
}
+ intFormat = _mesa_is_integer_format(srcFormat);
-#define PROCESS(INDEX, CHANNEL, DEFAULT, TYPE, CONVERSION) \
+#define PROCESS(INDEX, CHANNEL, DEFAULT, DEFAULT_INT, TYPE, CONVERSION) \
if ((INDEX) < 0) { \
GLuint i; \
- for (i = 0; i < n; i++) { \
- rgba[i][CHANNEL] = DEFAULT; \
+ 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) { \
@@ -3437,77 +3519,93 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
else if (sizeof(TYPE) == 4) { \
SWAP4BYTE(value); \
} \
- rgba[i][CHANNEL] = (GLfloat) CONVERSION(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; \
- for (i = 0; i < n; i++) { \
- rgba[i][CHANNEL] = (GLfloat) CONVERSION(s[INDEX]); \
- s += stride; \
+ 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, GLubyte, UBYTE_TO_FLOAT);
- PROCESS(greenIndex, GCOMP, 0.0F, GLubyte, UBYTE_TO_FLOAT);
- PROCESS(blueIndex, BCOMP, 0.0F, GLubyte, UBYTE_TO_FLOAT);
- PROCESS(alphaIndex, ACOMP, 1.0F, GLubyte, UBYTE_TO_FLOAT);
+ 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, GLbyte, BYTE_TO_FLOAT);
- PROCESS(greenIndex, GCOMP, 0.0F, GLbyte, BYTE_TO_FLOAT);
- PROCESS(blueIndex, BCOMP, 0.0F, GLbyte, BYTE_TO_FLOAT);
- PROCESS(alphaIndex, ACOMP, 1.0F, GLbyte, BYTE_TO_FLOAT);
+ 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, GLushort, USHORT_TO_FLOAT);
- PROCESS(greenIndex, GCOMP, 0.0F, GLushort, USHORT_TO_FLOAT);
- PROCESS(blueIndex, BCOMP, 0.0F, GLushort, USHORT_TO_FLOAT);
- PROCESS(alphaIndex, ACOMP, 1.0F, GLushort, USHORT_TO_FLOAT);
+ 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, GLshort, SHORT_TO_FLOAT);
- PROCESS(greenIndex, GCOMP, 0.0F, GLshort, SHORT_TO_FLOAT);
- PROCESS(blueIndex, BCOMP, 0.0F, GLshort, SHORT_TO_FLOAT);
- PROCESS(alphaIndex, ACOMP, 1.0F, GLshort, SHORT_TO_FLOAT);
+ 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, GLuint, UINT_TO_FLOAT);
- PROCESS(greenIndex, GCOMP, 0.0F, GLuint, UINT_TO_FLOAT);
- PROCESS(blueIndex, BCOMP, 0.0F, GLuint, UINT_TO_FLOAT);
- PROCESS(alphaIndex, ACOMP, 1.0F, GLuint, UINT_TO_FLOAT);
+ 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, GLint, INT_TO_FLOAT);
- PROCESS(greenIndex, GCOMP, 0.0F, GLint, INT_TO_FLOAT);
- PROCESS(blueIndex, BCOMP, 0.0F, GLint, INT_TO_FLOAT);
- PROCESS(alphaIndex, ACOMP, 1.0F, GLint, INT_TO_FLOAT);
+ 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, GLfloat, (GLfloat));
- PROCESS(greenIndex, GCOMP, 0.0F, GLfloat, (GLfloat));
- PROCESS(blueIndex, BCOMP, 0.0F, GLfloat, (GLfloat));
- PROCESS(alphaIndex, ACOMP, 1.0F, GLfloat, (GLfloat));
+ 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, GLhalfARB, _mesa_half_to_float);
- PROCESS(greenIndex, GCOMP, 0.0F, GLhalfARB, _mesa_half_to_float);
- PROCESS(blueIndex, BCOMP, 0.0F, GLhalfARB, _mesa_half_to_float);
- PROCESS(alphaIndex, ACOMP, 1.0F, GLhalfARB, _mesa_half_to_float);
+ 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) ) * (1.0F / 7.0F);
- rgba[i][gComp] = ((p >> 2) & 0x7) * (1.0F / 7.0F);
- rgba[i][bComp] = ((p ) & 0x3) * (1.0F / 3.0F);
+ rgba[i][rComp] = ((p >> 5) ) * rs;
+ rgba[i][gComp] = ((p >> 2) & 0x7) * gs;
+ rgba[i][bComp] = ((p ) & 0x3) * bs;
rgba[i][aComp] = 1.0F;
}
}
@@ -3516,25 +3614,35 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
{
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) * (1.0F / 7.0F);
- rgba[i][gComp] = ((p >> 3) & 0x7) * (1.0F / 7.0F);
- rgba[i][bComp] = ((p >> 6) ) * (1.0F / 3.0F);
+ 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) ) * (1.0F / 31.0F);
- rgba[i][gComp] = ((p >> 5) & 0x3f) * (1.0F / 63.0F);
- rgba[i][bComp] = ((p ) & 0x1f) * (1.0F / 31.0F);
+ rgba[i][rComp] = ((p >> 11) ) * rs;
+ rgba[i][gComp] = ((p >> 5) & 0x3f) * gs;
+ rgba[i][bComp] = ((p ) & 0x1f) * bs;
rgba[i][aComp] = 1.0F;
}
}
@@ -3543,23 +3651,28 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLushort p = ussrc[i];
- rgba[i][rComp] = ((p >> 11) ) * (1.0F / 31.0F);
- rgba[i][gComp] = ((p >> 5) & 0x3f) * (1.0F / 63.0F);
- rgba[i][bComp] = ((p ) & 0x1f) * (1.0F / 31.0F);
+ 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) * (1.0F / 31.0F);
- rgba[i][gComp] = ((p >> 5) & 0x3f) * (1.0F / 63.0F);
- rgba[i][bComp] = ((p >> 11) ) * (1.0F / 31.0F);
+ rgba[i][rComp] = ((p ) & 0x1f) * rs;
+ rgba[i][gComp] = ((p >> 5) & 0x3f) * gs;
+ rgba[i][bComp] = ((p >> 11) ) * bs;
rgba[i][aComp] = 1.0F;
}
}
@@ -3568,24 +3681,27 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLushort p = ussrc[i];
- rgba[i][rComp] = ((p ) & 0x1f) * (1.0F / 31.0F);
- rgba[i][gComp] = ((p >> 5) & 0x3f) * (1.0F / 63.0F);
- rgba[i][bComp] = ((p >> 11) ) * (1.0F / 31.0F);
+ 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) ) * (1.0F / 15.0F);
- rgba[i][gComp] = ((p >> 8) & 0xf) * (1.0F / 15.0F);
- rgba[i][bComp] = ((p >> 4) & 0xf) * (1.0F / 15.0F);
- rgba[i][aComp] = ((p ) & 0xf) * (1.0F / 15.0F);
+ 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 {
@@ -3593,24 +3709,27 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLushort p = ussrc[i];
- rgba[i][rComp] = ((p >> 12) ) * (1.0F / 15.0F);
- rgba[i][gComp] = ((p >> 8) & 0xf) * (1.0F / 15.0F);
- rgba[i][bComp] = ((p >> 4) & 0xf) * (1.0F / 15.0F);
- rgba[i][aComp] = ((p ) & 0xf) * (1.0F / 15.0F);
+ 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) * (1.0F / 15.0F);
- rgba[i][gComp] = ((p >> 4) & 0xf) * (1.0F / 15.0F);
- rgba[i][bComp] = ((p >> 8) & 0xf) * (1.0F / 15.0F);
- rgba[i][aComp] = ((p >> 12) ) * (1.0F / 15.0F);
+ 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 {
@@ -3618,24 +3737,27 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLushort p = ussrc[i];
- rgba[i][rComp] = ((p ) & 0xf) * (1.0F / 15.0F);
- rgba[i][gComp] = ((p >> 4) & 0xf) * (1.0F / 15.0F);
- rgba[i][bComp] = ((p >> 8) & 0xf) * (1.0F / 15.0F);
- rgba[i][aComp] = ((p >> 12) ) * (1.0F / 15.0F);
+ 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) ) * (1.0F / 31.0F);
- rgba[i][gComp] = ((p >> 6) & 0x1f) * (1.0F / 31.0F);
- rgba[i][bComp] = ((p >> 1) & 0x1f) * (1.0F / 31.0F);
- rgba[i][aComp] = ((p ) & 0x1) * (1.0F / 1.0F);
+ 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 {
@@ -3643,24 +3765,27 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLushort p = ussrc[i];
- rgba[i][rComp] = ((p >> 11) ) * (1.0F / 31.0F);
- rgba[i][gComp] = ((p >> 6) & 0x1f) * (1.0F / 31.0F);
- rgba[i][bComp] = ((p >> 1) & 0x1f) * (1.0F / 31.0F);
- rgba[i][aComp] = ((p ) & 0x1) * (1.0F / 1.0F);
+ 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) * (1.0F / 31.0F);
- rgba[i][gComp] = ((p >> 5) & 0x1f) * (1.0F / 31.0F);
- rgba[i][bComp] = ((p >> 10) & 0x1f) * (1.0F / 31.0F);
- rgba[i][aComp] = ((p >> 15) ) * (1.0F / 1.0F);
+ 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 {
@@ -3668,10 +3793,10 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLushort p = ussrc[i];
- rgba[i][rComp] = ((p ) & 0x1f) * (1.0F / 31.0F);
- rgba[i][gComp] = ((p >> 5) & 0x1f) * (1.0F / 31.0F);
- rgba[i][bComp] = ((p >> 10) & 0x1f) * (1.0F / 31.0F);
- rgba[i][aComp] = ((p >> 15) ) * (1.0F / 1.0F);
+ 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;
@@ -3679,23 +3804,45 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
if (swapBytes) {
const GLuint *uisrc = (const GLuint *) src;
GLuint i;
- 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) );
+ 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;
- 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);
+ 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;
@@ -3703,37 +3850,65 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
if (swapBytes) {
const GLuint *uisrc = (const GLuint *) src;
GLuint i;
- 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);
+ 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;
- 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) );
+ 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) ) * (1.0F / 1023.0F);
- rgba[i][gComp] = ((p >> 12) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][bComp] = ((p >> 2) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][aComp] = ((p ) & 0x3 ) * (1.0F / 3.0F);
+ 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 {
@@ -3741,24 +3916,30 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLuint p = uisrc[i];
- rgba[i][rComp] = ((p >> 22) ) * (1.0F / 1023.0F);
- rgba[i][gComp] = ((p >> 12) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][bComp] = ((p >> 2) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][aComp] = ((p ) & 0x3 ) * (1.0F / 3.0F);
+ 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) * (1.0F / 1023.0F);
- rgba[i][gComp] = ((p >> 10) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][bComp] = ((p >> 20) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][aComp] = ((p >> 30) ) * (1.0F / 3.0F);
+ 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 {
@@ -3766,10 +3947,10 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLuint p = uisrc[i];
- rgba[i][rComp] = ((p ) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][gComp] = ((p >> 10) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][bComp] = ((p >> 20) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][aComp] = ((p >> 30) ) * (1.0F / 3.0F);
+ 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;
@@ -4161,6 +4342,16 @@ _mesa_unpack_color_span_float( GLcontext *ctx,
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 ||
diff --git a/src/mesa/main/image.h b/src/mesa/main/image.h
index 48582eb3bbe..8b180d6bfe6 100644
--- a/src/mesa/main/image.h
+++ b/src/mesa/main/image.h
@@ -79,6 +79,9 @@ extern GLboolean
_mesa_is_dudv_format(GLenum format);
extern GLboolean
+_mesa_is_integer_format(GLenum format);
+
+extern GLboolean
_mesa_is_compressed_format(GLcontext *ctx, GLenum format);
extern GLvoid *
diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c
index 25080db40c4..c3993510967 100644
--- a/src/mesa/main/imports.c
+++ b/src/mesa/main/imports.c
@@ -756,7 +756,7 @@ _mesa_strdup( const char *s )
float
_mesa_strtof( const char *s, char **end )
{
-#ifdef _GNU_SOURCE
+#if defined(_GNU_SOURCE) && !defined(__CYGWIN__)
static locale_t loc = NULL;
if (!loc) {
loc = newlocale(LC_CTYPE_MASK, "C", NULL);
diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
index da825a095ea..9c2ffd66d69 100644
--- a/src/mesa/main/imports.h
+++ b/src/mesa/main/imports.h
@@ -444,42 +444,6 @@ _mesa_next_pow_two_64(uint64_t x)
}
-/***
- *** UNCLAMPED_FLOAT_TO_UBYTE: clamp float to [0,1] and map to ubyte in [0,255]
- *** CLAMPED_FLOAT_TO_UBYTE: map float known to be in [0,1] to ubyte in [0,255]
- ***/
-#if defined(USE_IEEE) && !defined(DEBUG)
-#define IEEE_0996 0x3f7f0000 /* 0.996 or so */
-/* This function/macro is sensitive to precision. Test very carefully
- * if you change it!
- */
-#define UNCLAMPED_FLOAT_TO_UBYTE(UB, F) \
- do { \
- fi_type __tmp; \
- __tmp.f = (F); \
- if (__tmp.i < 0) \
- UB = (GLubyte) 0; \
- else if (__tmp.i >= IEEE_0996) \
- UB = (GLubyte) 255; \
- else { \
- __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; \
- UB = (GLubyte) __tmp.i; \
- } \
- } while (0)
-#define CLAMPED_FLOAT_TO_UBYTE(UB, F) \
- do { \
- fi_type __tmp; \
- __tmp.f = (F) * (255.0F/256.0F) + 32768.0F; \
- UB = (GLubyte) __tmp.i; \
- } while (0)
-#else
-#define UNCLAMPED_FLOAT_TO_UBYTE(ub, f) \
- ub = ((GLubyte) IROUND(CLAMP((f), 0.0F, 1.0F) * 255.0F))
-#define CLAMPED_FLOAT_TO_UBYTE(ub, f) \
- ub = ((GLubyte) IROUND((f) * 255.0F))
-#endif
-
-
/**
* Return 1 if this is a little endian machine, 0 if big endian.
*/
diff --git a/src/mesa/main/macros.h b/src/mesa/main/macros.h
index 40e17e53d6c..b2ec0ba9b73 100644
--- a/src/mesa/main/macros.h
+++ b/src/mesa/main/macros.h
@@ -130,6 +130,41 @@ extern GLfloat _mesa_ubyte_to_float_color_tab[256];
#define UNCLAMPED_FLOAT_TO_SHORT(s, f) \
s = ( (GLshort) IROUND( CLAMP((f), -1.0F, 1.0F) * 32767.0F) )
+/***
+ *** UNCLAMPED_FLOAT_TO_UBYTE: clamp float to [0,1] and map to ubyte in [0,255]
+ *** CLAMPED_FLOAT_TO_UBYTE: map float known to be in [0,1] to ubyte in [0,255]
+ ***/
+#if defined(USE_IEEE) && !defined(DEBUG)
+#define IEEE_0996 0x3f7f0000 /* 0.996 or so */
+/* This function/macro is sensitive to precision. Test very carefully
+ * if you change it!
+ */
+#define UNCLAMPED_FLOAT_TO_UBYTE(UB, F) \
+ do { \
+ fi_type __tmp; \
+ __tmp.f = (F); \
+ if (__tmp.i < 0) \
+ UB = (GLubyte) 0; \
+ else if (__tmp.i >= IEEE_0996) \
+ UB = (GLubyte) 255; \
+ else { \
+ __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; \
+ UB = (GLubyte) __tmp.i; \
+ } \
+ } while (0)
+#define CLAMPED_FLOAT_TO_UBYTE(UB, F) \
+ do { \
+ fi_type __tmp; \
+ __tmp.f = (F) * (255.0F/256.0F) + 32768.0F; \
+ UB = (GLubyte) __tmp.i; \
+ } while (0)
+#else
+#define UNCLAMPED_FLOAT_TO_UBYTE(ub, f) \
+ ub = ((GLubyte) IROUND(CLAMP((f), 0.0F, 1.0F) * 255.0F))
+#define CLAMPED_FLOAT_TO_UBYTE(ub, f) \
+ ub = ((GLubyte) IROUND((f) * 255.0F))
+#endif
+
/*@}*/
diff --git a/src/mesa/main/mfeatures.h b/src/mesa/main/mfeatures.h
index 6ed05da7ac8..4e838abe036 100644
--- a/src/mesa/main/mfeatures.h
+++ b/src/mesa/main/mfeatures.h
@@ -124,6 +124,7 @@
#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)
#define FEATURE_ARB_map_buffer_range FEATURE_GL
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index f8257d565bf..f17529c6c73 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -42,6 +42,13 @@
#include "math/m_matrix.h" /* GLmatrix */
#include "main/simple_list.h" /* struct simple_node */
+/**
+ * Internal token
+ * Must be simply different than GL_VERTEX_PROGRAM
+ * and GL_FRAGMENT_PROGRAM_ARB
+ * FIXME: this will have to be a real GL extension
+ */
+#define MESA_GEOMETRY_PROGRAM 0x9999
/**
* Color channel data type.
@@ -238,6 +245,78 @@ typedef enum
} gl_vert_result;
+/*********************************************/
+
+/**
+ * Indexes for geometry program attributes.
+ */
+typedef enum
+{
+ GEOM_ATTRIB_POSITION = 0,
+ GEOM_ATTRIB_COLOR0 = 1,
+ GEOM_ATTRIB_COLOR1 = 2,
+ GEOM_ATTRIB_SECONDARY_COLOR0 = 3,
+ GEOM_ATTRIB_SECONDARY_COLOR1 = 4,
+ GEOM_ATTRIB_FOG_FRAG_COORD = 5,
+ GEOM_ATTRIB_POINT_SIZE = 6,
+ GEOM_ATTRIB_CLIP_VERTEX = 7,
+ GEOM_ATTRIB_PRIMITIVE_ID = 8,
+ GEOM_ATTRIB_TEX_COORD = 9,
+
+ GEOM_ATTRIB_VAR0 = 16,
+ GEOM_ATTRIB_MAX = (GEOM_ATTRIB_VAR0 + MAX_VARYING)
+} gl_geom_attrib;
+
+/**
+ * Bitflags for geometry attributes.
+ * These are used in bitfields in many places.
+ */
+/*@{*/
+#define GEOM_BIT_COLOR0 (1 << GEOM_ATTRIB_COLOR0)
+#define GEOM_BIT_COLOR1 (1 << GEOM_ATTRIB_COLOR1)
+#define GEOM_BIT_SCOLOR0 (1 << GEOM_ATTRIB_SECONDARY_COLOR0)
+#define GEOM_BIT_SCOLOR1 (1 << GEOM_ATTRIB_SECONDARY_COLOR1)
+#define GEOM_BIT_TEX_COORD (1 << GEOM_ATTRIB_TEX_COORD)
+#define GEOM_BIT_FOG_COORD (1 << GEOM_ATTRIB_FOG_FRAG_COORD)
+#define GEOM_BIT_POSITION (1 << GEOM_ATTRIB_POSITION)
+#define GEOM_BIT_POINT_SIDE (1 << GEOM_ATTRIB_POINT_SIZE)
+#define GEOM_BIT_CLIP_VERTEX (1 << GEOM_ATTRIB_CLIP_VERTEX)
+#define GEOM_BIT_PRIM_ID (1 << GEOM_ATTRIB_PRIMITIVE_ID)
+#define GEOM_BIT_VAR0 (1 << GEOM_ATTRIB_VAR0)
+
+#define GEOM_BIT_VAR(g) (1 << (GEOM_BIT_VAR0 + (g)))
+/*@}*/
+
+
+/**
+ * Indexes for geometry program result attributes
+ */
+/*@{*/
+typedef enum {
+ GEOM_RESULT_POS = 0,
+ GEOM_RESULT_COL0 = 1,
+ GEOM_RESULT_COL1 = 2,
+ GEOM_RESULT_SCOL0 = 3,
+ GEOM_RESULT_SCOL1 = 4,
+ GEOM_RESULT_FOGC = 5,
+ GEOM_RESULT_TEX0 = 6,
+ GEOM_RESULT_TEX1 = 7,
+ GEOM_RESULT_TEX2 = 8,
+ GEOM_RESULT_TEX3 = 9,
+ GEOM_RESULT_TEX4 = 10,
+ GEOM_RESULT_TEX5 = 11,
+ GEOM_RESULT_TEX6 = 12,
+ GEOM_RESULT_TEX7 = 13,
+ GEOM_RESULT_PSIZ = 14,
+ GEOM_RESULT_CLPV = 15,
+ GEOM_RESULT_PRID = 16,
+ GEOM_RESULT_LAYR = 17,
+ GEOM_RESULT_VAR0 = 18, /**< shader varying, should really be 16 */
+ /* ### we need to -2 because var0 is 18 instead 16 like in the others */
+ GEOM_RESULT_MAX = (GEOM_RESULT_VAR0 + MAX_VARYING - 2)
+} gl_geom_result;
+/*@}*/
+
/**
* Indexes for fragment program input attributes.
*/
@@ -1763,6 +1842,18 @@ struct gl_vertex_program
};
+/** Geometry program object */
+struct gl_geometry_program
+{
+ struct gl_program Base; /**< base class */
+
+ GLint VerticesOut;
+ GLenum InputType; /**< GL_POINTS, GL_LINES, GL_LINES_ADJACENCY_ARB,
+ GL_TRIANGLES, or GL_TRIANGLES_ADJACENCY_ARB */
+ GLenum OutputType; /**< GL_POINTS, GL_LINE_STRIP or GL_TRIANGLE_STRIP */
+};
+
+
/** Fragment program object */
struct gl_fragment_program
{
@@ -1821,6 +1912,26 @@ struct gl_vertex_program_state
/**
+ * Context state for geometry programs.
+ */
+struct gl_geometry_program_state
+{
+ GLboolean Enabled; /**< GL_ARB_GEOMETRY_SHADER4 */
+ GLboolean _Enabled; /**< Enabled and valid program? */
+ struct gl_geometry_program *Current; /**< user-bound geometry program */
+
+ /** Currently enabled and valid program (including internal programs
+ * and compiled shader programs).
+ */
+ struct gl_geometry_program *_Current;
+
+ GLfloat Parameters[MAX_PROGRAM_ENV_PARAMS][4]; /**< Env params */
+
+ /** Cache of fixed-function programs */
+ struct gl_program_cache *Cache;
+};
+
+/**
* Context state for fragment programs.
*/
struct gl_fragment_program_state
@@ -1920,6 +2031,9 @@ struct gl_query_state
struct gl_query_object *PrimitivesGenerated;
struct gl_query_object *PrimitivesWritten;
+ /** GL_ARB_timer_query */
+ struct gl_query_object *TimeElapsed;
+
GLenum CondRenderMode;
};
@@ -1954,7 +2068,7 @@ struct gl_sl_pragmas
*/
struct gl_shader
{
- GLenum Type; /**< GL_FRAGMENT_SHADER || GL_VERTEX_SHADER (first field!) */
+ GLenum Type; /**< GL_FRAGMENT_SHADER || GL_VERTEX_SHADER || GL_GEOMETRY_SHADER_ARB (first field!) */
GLuint Name; /**< AKA the handle */
GLint RefCount; /**< Reference count */
GLboolean DeletePending;
@@ -2002,9 +2116,18 @@ struct gl_shader_program
GLchar **VaryingNames; /**< Array [NumVarying] of char * */
} TransformFeedback;
+ /** Geometry shader state - copied into gl_geometry_program at link time */
+ struct {
+ GLint VerticesOut;
+ GLenum InputType; /**< GL_POINTS, GL_LINES, GL_LINES_ADJACENCY_ARB,
+ GL_TRIANGLES, or GL_TRIANGLES_ADJACENCY_ARB */
+ GLenum OutputType; /**< GL_POINTS, GL_LINE_STRIP or GL_TRIANGLE_STRIP */
+ } Geom;
+
/* post-link info: */
struct gl_vertex_program *VertexProgram; /**< Linked vertex program */
struct gl_fragment_program *FragmentProgram; /**< Linked fragment prog */
+ struct gl_geometry_program *GeometryProgram; /**< Linked geometry prog */
struct gl_uniform_list *Uniforms;
struct gl_program_parameter_list *Varying;
GLboolean LinkStatus; /**< GL_LINK_STATUS */
@@ -2133,7 +2256,7 @@ struct gl_shared_state
struct gl_buffer_object *NullBufferObj;
/**
- * \name Vertex/fragment programs
+ * \name Vertex/geometry/fragment programs
*/
/*@{*/
struct _mesa_HashTable *Programs; /**< All vertex/fragment programs */
@@ -2143,6 +2266,9 @@ struct gl_shared_state
#if FEATURE_ARB_fragment_program
struct gl_fragment_program *DefaultFragmentProgram;
#endif
+#if FEATURE_ARB_geometry_shader4
+ struct gl_geometry_program *DefaultGeometryProgram;
+#endif
/*@}*/
#if FEATURE_ATI_fragment_shader
@@ -2401,6 +2527,14 @@ struct gl_program_constants
GLuint MaxNativeParameters;
/* For shaders */
GLuint MaxUniformComponents;
+#if FEATURE_ARB_geometry_shader4
+ GLuint MaxGeometryTextureImageUnits;
+ GLuint MaxGeometryVaryingComponents;
+ GLuint MaxVertexVaryingComponents;
+ GLuint MaxGeometryUniformComponents;
+ GLuint MaxGeometryOutputVertices;
+ GLuint MaxGeometryTotalOutputComponents;
+#endif
};
@@ -2447,6 +2581,7 @@ struct gl_constants
struct gl_program_constants VertexProgram; /**< GL_ARB_vertex_program */
struct gl_program_constants FragmentProgram; /**< GL_ARB_fragment_program */
+ struct gl_program_constants GeometryProgram; /**< GL_ARB_geometry_shader4 */
GLuint MaxProgramMatrices;
GLuint MaxProgramMatrixStackDepth;
@@ -2491,9 +2626,11 @@ struct gl_constants
struct gl_extensions
{
GLboolean dummy; /* don't remove this! */
+ GLboolean ARB_blend_func_extended;
GLboolean ARB_copy_buffer;
- GLboolean ARB_depth_texture;
+ GLboolean ARB_depth_buffer_float;
GLboolean ARB_depth_clamp;
+ GLboolean ARB_depth_texture;
GLboolean ARB_draw_buffers;
GLboolean ARB_draw_elements_base_vertex;
GLboolean ARB_draw_instanced;
@@ -2502,22 +2639,28 @@ struct gl_extensions
GLboolean ARB_fragment_program_shadow;
GLboolean ARB_fragment_shader;
GLboolean ARB_framebuffer_object;
+ GLboolean ARB_explicit_attrib_location;
+ GLboolean ARB_geometry_shader4;
GLboolean ARB_half_float_pixel;
GLboolean ARB_half_float_vertex;
GLboolean ARB_imaging;
+ GLboolean ARB_instanced_arrays;
GLboolean ARB_map_buffer_range;
GLboolean ARB_multisample;
GLboolean ARB_multitexture;
GLboolean ARB_occlusion_query;
+ GLboolean ARB_occlusion_query2;
GLboolean ARB_point_sprite;
+ GLboolean ARB_sampler_objects;
GLboolean ARB_seamless_cube_map;
GLboolean ARB_shader_objects;
GLboolean ARB_shading_language_100;
GLboolean ARB_shading_language_120;
GLboolean ARB_shadow;
- GLboolean ARB_shadow_ambient; /* or GL_ARB_shadow_ambient */
+ GLboolean ARB_shadow_ambient;
GLboolean ARB_sync;
GLboolean ARB_texture_border_clamp;
+ GLboolean ARB_texture_buffer_object;
GLboolean ARB_texture_compression;
GLboolean ARB_texture_cube_map;
GLboolean ARB_texture_env_combine;
@@ -2525,13 +2668,19 @@ struct gl_extensions
GLboolean ARB_texture_env_dot3;
GLboolean ARB_texture_float;
GLboolean ARB_texture_mirrored_repeat;
+ GLboolean ARB_texture_multisample;
GLboolean ARB_texture_non_power_of_two;
+ GLboolean ARB_texture_rg;
+ GLboolean ARB_texture_rgb10_a2ui;
+ GLboolean ARB_timer_query;
GLboolean ARB_transform_feedback2;
GLboolean ARB_transpose_matrix;
+ GLboolean ARB_uniform_buffer_object;
GLboolean ARB_vertex_array_object;
GLboolean ARB_vertex_buffer_object;
GLboolean ARB_vertex_program;
GLboolean ARB_vertex_shader;
+ GLboolean ARB_vertex_type_2_10_10_10_rev;
GLboolean ARB_window_pos;
GLboolean EXT_abgr;
GLboolean EXT_bgra;
@@ -2553,11 +2702,13 @@ struct gl_extensions
GLboolean EXT_framebuffer_blit;
GLboolean EXT_framebuffer_multisample;
GLboolean EXT_framebuffer_object;
+ GLboolean EXT_framebuffer_sRGB;
GLboolean EXT_gpu_program_parameters;
GLboolean EXT_histogram;
GLboolean EXT_multi_draw_arrays;
GLboolean EXT_paletted_texture;
GLboolean EXT_packed_depth_stencil;
+ GLboolean EXT_packed_float;
GLboolean EXT_packed_pixels;
GLboolean EXT_pixel_buffer_object;
GLboolean EXT_point_parameters;
@@ -2576,12 +2727,15 @@ struct gl_extensions
GLboolean EXT_texture3D;
GLboolean EXT_texture_array;
GLboolean EXT_texture_compression_s3tc;
+ GLboolean EXT_texture_compression_rgtc;
GLboolean EXT_texture_env_add;
GLboolean EXT_texture_env_combine;
GLboolean EXT_texture_env_dot3;
GLboolean EXT_texture_filter_anisotropic;
+ GLboolean EXT_texture_integer;
GLboolean EXT_texture_lod_bias;
GLboolean EXT_texture_mirror_clamp;
+ GLboolean EXT_texture_shared_exponent;
GLboolean EXT_texture_sRGB;
GLboolean EXT_texture_swizzle;
GLboolean EXT_transform_feedback;
@@ -2613,6 +2767,7 @@ struct gl_extensions
GLboolean NV_fragment_program_option;
GLboolean NV_light_max_exponent;
GLboolean NV_point_sprite;
+ GLboolean NV_primitive_restart;
GLboolean NV_texgen_reflection;
GLboolean NV_texture_env_combine4;
GLboolean NV_texture_rectangle;
@@ -3058,6 +3213,7 @@ struct __GLcontextRec
struct gl_program_state Program; /**< general program state */
struct gl_vertex_program_state VertexProgram;
struct gl_fragment_program_state FragmentProgram;
+ struct gl_geometry_program_state GeometryProgram;
struct gl_ati_fragment_shader_state ATIFragmentShader;
struct gl_shader_state Shader; /**< GLSL shader object state */
diff --git a/src/mesa/main/nvprogram.c b/src/mesa/main/nvprogram.c
new file mode 100644
index 00000000000..100ff2c4ab8
--- /dev/null
+++ b/src/mesa/main/nvprogram.c
@@ -0,0 +1,917 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 6.5.2
+ *
+ * Copyright (C) 1999-2006 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.
+ */
+
+/**
+ * \file nvprogram.c
+ * NVIDIA vertex/fragment program state management functions.
+ * \author Brian Paul
+ */
+
+/*
+ * Regarding GL_NV_fragment/vertex_program, GL_NV_vertex_program1_1, etc:
+ *
+ * Portions of this software may use or implement intellectual
+ * property owned and licensed by NVIDIA Corporation. NVIDIA disclaims
+ * any and all warranties with respect to such intellectual property,
+ * including any use thereof or modifications thereto.
+ */
+
+#include "main/glheader.h"
+#include "main/context.h"
+#include "main/hash.h"
+#include "main/imports.h"
+#include "main/macros.h"
+#include "main/nvprogram.h"
+#include "program/arbprogparse.h"
+#include "program/nvfragparse.h"
+#include "program/nvvertparse.h"
+#include "program/program.h"
+#include "program/prog_instruction.h"
+#include "program/prog_parameter.h"
+
+
+
+/**
+ * Execute a vertex state program.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_ExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params)
+{
+ struct gl_vertex_program *vprog;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target != GL_VERTEX_STATE_PROGRAM_NV) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glExecuteProgramNV");
+ return;
+ }
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+
+ vprog = (struct gl_vertex_program *) _mesa_lookup_program(ctx, id);
+
+ if (!vprog || vprog->Base.Target != GL_VERTEX_STATE_PROGRAM_NV) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glExecuteProgramNV");
+ return;
+ }
+
+ _mesa_problem(ctx, "glExecuteProgramNV() not supported");
+}
+
+
+/**
+ * Determine if a set of programs is resident in hardware.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+GLboolean GLAPIENTRY
+_mesa_AreProgramsResidentNV(GLsizei n, const GLuint *ids,
+ GLboolean *residences)
+{
+ GLint i, j;
+ GLboolean allResident = GL_TRUE;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
+
+ if (n < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glAreProgramsResidentNV(n)");
+ return GL_FALSE;
+ }
+
+ for (i = 0; i < n; i++) {
+ const struct gl_program *prog;
+ if (ids[i] == 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glAreProgramsResidentNV");
+ return GL_FALSE;
+ }
+ prog = _mesa_lookup_program(ctx, ids[i]);
+ if (!prog) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glAreProgramsResidentNV");
+ return GL_FALSE;
+ }
+ if (prog->Resident) {
+ if (!allResident)
+ residences[i] = GL_TRUE;
+ }
+ else {
+ if (allResident) {
+ allResident = GL_FALSE;
+ for (j = 0; j < i; j++)
+ residences[j] = GL_TRUE;
+ }
+ residences[i] = GL_FALSE;
+ }
+ }
+
+ return allResident;
+}
+
+
+/**
+ * Request that a set of programs be resident in hardware.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_RequestResidentProgramsNV(GLsizei n, const GLuint *ids)
+{
+ GLint i;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (n < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glRequestResidentProgramsNV(n)");
+ return;
+ }
+
+ /* just error checking for now */
+ for (i = 0; i < n; i++) {
+ struct gl_program *prog;
+
+ if (ids[i] == 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glRequestResidentProgramsNV(id)");
+ return;
+ }
+
+ prog = _mesa_lookup_program(ctx, ids[i]);
+ if (!prog) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glRequestResidentProgramsNV(id)");
+ return;
+ }
+
+ /* XXX this is really a hardware thing we should hook out */
+ prog->Resident = GL_TRUE;
+ }
+}
+
+
+/**
+ * Get a program parameter register.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetProgramParameterfvNV(GLenum target, GLuint index,
+ GLenum pname, GLfloat *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_VERTEX_PROGRAM_NV) {
+ if (pname == GL_PROGRAM_PARAMETER_NV) {
+ if (index < MAX_NV_VERTEX_PROGRAM_PARAMS) {
+ COPY_4V(params, ctx->VertexProgram.Parameters[index]);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetProgramParameterfvNV(index)");
+ return;
+ }
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramParameterfvNV(pname)");
+ return;
+ }
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramParameterfvNV(target)");
+ return;
+ }
+}
+
+
+/**
+ * Get a program parameter register.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetProgramParameterdvNV(GLenum target, GLuint index,
+ GLenum pname, GLdouble *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_VERTEX_PROGRAM_NV) {
+ if (pname == GL_PROGRAM_PARAMETER_NV) {
+ if (index < MAX_NV_VERTEX_PROGRAM_PARAMS) {
+ COPY_4V(params, ctx->VertexProgram.Parameters[index]);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetProgramParameterdvNV(index)");
+ return;
+ }
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramParameterdvNV(pname)");
+ return;
+ }
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramParameterdvNV(target)");
+ return;
+ }
+}
+
+
+/**
+ * Get a program attribute.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetProgramivNV(GLuint id, GLenum pname, GLint *params)
+{
+ struct gl_program *prog;
+ GET_CURRENT_CONTEXT(ctx);
+
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ prog = _mesa_lookup_program(ctx, id);
+ if (!prog) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetProgramivNV");
+ return;
+ }
+
+ switch (pname) {
+ case GL_PROGRAM_TARGET_NV:
+ *params = prog->Target;
+ return;
+ case GL_PROGRAM_LENGTH_NV:
+ *params = prog->String ?(GLint) strlen((char *) prog->String) : 0;
+ return;
+ case GL_PROGRAM_RESIDENT_NV:
+ *params = prog->Resident;
+ return;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramivNV(pname)");
+ return;
+ }
+}
+
+
+/**
+ * Get the program source code.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetProgramStringNV(GLuint id, GLenum pname, GLubyte *program)
+{
+ struct gl_program *prog;
+ GET_CURRENT_CONTEXT(ctx);
+
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (pname != GL_PROGRAM_STRING_NV) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramStringNV(pname)");
+ return;
+ }
+
+ prog = _mesa_lookup_program(ctx, id);
+ if (!prog) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetProgramStringNV");
+ return;
+ }
+
+ if (prog->String) {
+ memcpy(program, prog->String, strlen((char *) prog->String));
+ }
+ else {
+ program[0] = 0;
+ }
+}
+
+
+/**
+ * Get matrix tracking information.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetTrackMatrixivNV(GLenum target, GLuint address,
+ GLenum pname, GLint *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_VERTEX_PROGRAM_NV
+ && ctx->Extensions.NV_vertex_program) {
+ GLuint i;
+
+ if ((address & 0x3) || address >= MAX_NV_VERTEX_PROGRAM_PARAMS) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetTrackMatrixivNV(address)");
+ return;
+ }
+
+ i = address / 4;
+
+ switch (pname) {
+ case GL_TRACK_MATRIX_NV:
+ params[0] = (GLint) ctx->VertexProgram.TrackMatrix[i];
+ return;
+ case GL_TRACK_MATRIX_TRANSFORM_NV:
+ params[0] = (GLint) ctx->VertexProgram.TrackMatrixTransform[i];
+ return;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetTrackMatrixivNV");
+ return;
+ }
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetTrackMatrixivNV");
+ return;
+ }
+}
+
+
+/**
+ * Get a vertex (or vertex array) attribute.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params)
+{
+ const struct gl_client_array *array;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (index >= MAX_NV_VERTEX_PROGRAM_INPUTS) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetVertexAttribdvNV(index)");
+ return;
+ }
+
+ array = &ctx->Array.ArrayObj->VertexAttrib[index];
+
+ switch (pname) {
+ case GL_ATTRIB_ARRAY_SIZE_NV:
+ params[0] = array->Size;
+ break;
+ case GL_ATTRIB_ARRAY_STRIDE_NV:
+ params[0] = array->Stride;
+ break;
+ case GL_ATTRIB_ARRAY_TYPE_NV:
+ params[0] = array->Type;
+ break;
+ case GL_CURRENT_ATTRIB_NV:
+ if (index == 0) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetVertexAttribdvNV(index == 0)");
+ return;
+ }
+ FLUSH_CURRENT(ctx, 0);
+ COPY_4V(params, ctx->Current.Attrib[index]);
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribdvNV");
+ return;
+ }
+}
+
+/**
+ * Get a vertex (or vertex array) attribute.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params)
+{
+ const struct gl_client_array *array;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (index >= MAX_NV_VERTEX_PROGRAM_INPUTS) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetVertexAttribdvNV(index)");
+ return;
+ }
+
+ array = &ctx->Array.ArrayObj->VertexAttrib[index];
+
+ switch (pname) {
+ case GL_ATTRIB_ARRAY_SIZE_NV:
+ params[0] = (GLfloat) array->Size;
+ break;
+ case GL_ATTRIB_ARRAY_STRIDE_NV:
+ params[0] = (GLfloat) array->Stride;
+ break;
+ case GL_ATTRIB_ARRAY_TYPE_NV:
+ params[0] = (GLfloat) array->Type;
+ break;
+ case GL_CURRENT_ATTRIB_NV:
+ if (index == 0) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetVertexAttribfvNV(index == 0)");
+ return;
+ }
+ FLUSH_CURRENT(ctx, 0);
+ COPY_4V(params, ctx->Current.Attrib[index]);
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribdvNV");
+ return;
+ }
+}
+
+/**
+ * Get a vertex (or vertex array) attribute.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetVertexAttribivNV(GLuint index, GLenum pname, GLint *params)
+{
+ const struct gl_client_array *array;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (index >= MAX_NV_VERTEX_PROGRAM_INPUTS) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetVertexAttribdvNV(index)");
+ return;
+ }
+
+ array = &ctx->Array.ArrayObj->VertexAttrib[index];
+
+ switch (pname) {
+ case GL_ATTRIB_ARRAY_SIZE_NV:
+ params[0] = array->Size;
+ break;
+ case GL_ATTRIB_ARRAY_STRIDE_NV:
+ params[0] = array->Stride;
+ break;
+ case GL_ATTRIB_ARRAY_TYPE_NV:
+ params[0] = array->Type;
+ break;
+ case GL_CURRENT_ATTRIB_NV:
+ if (index == 0) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetVertexAttribivNV(index == 0)");
+ return;
+ }
+ FLUSH_CURRENT(ctx, 0);
+ params[0] = (GLint) ctx->Current.Attrib[index][0];
+ params[1] = (GLint) ctx->Current.Attrib[index][1];
+ params[2] = (GLint) ctx->Current.Attrib[index][2];
+ params[3] = (GLint) ctx->Current.Attrib[index][3];
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = array->BufferObj->Name;
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribdvNV");
+ return;
+ }
+}
+
+
+/**
+ * Get a vertex array attribute pointer.
+ * \note Not compiled into display lists.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_GetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (index >= MAX_NV_VERTEX_PROGRAM_INPUTS) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetVertexAttribPointerNV(index)");
+ return;
+ }
+
+ if (pname != GL_ATTRIB_ARRAY_POINTER_NV) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribPointerNV(pname)");
+ return;
+ }
+
+ *pointer = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[index].Ptr;
+}
+
+void
+_mesa_emit_nv_temp_initialization(GLcontext *ctx,
+ struct gl_program *program)
+{
+ struct prog_instruction *inst;
+ GLuint i;
+
+ if (!ctx->Shader.EmitNVTempInitialization)
+ return;
+
+ /* We'll swizzle up a zero temporary so we can use it for the
+ * ARL.
+ */
+ if (program->NumTemporaries == 0)
+ program->NumTemporaries = 1;
+
+ _mesa_insert_instructions(program, 0, program->NumTemporaries + 1);
+
+ for (i = 0; i < program->NumTemporaries; i++) {
+ struct prog_instruction *inst = &program->Instructions[i];
+
+ inst->Opcode = OPCODE_SWZ;
+ inst->DstReg.File = PROGRAM_TEMPORARY;
+ inst->DstReg.Index = i;
+ inst->DstReg.WriteMask = WRITEMASK_XYZW;
+ inst->SrcReg[0].File = PROGRAM_TEMPORARY;
+ inst->SrcReg[0].Index = 0;
+ inst->SrcReg[0].Swizzle = MAKE_SWIZZLE4(SWIZZLE_ZERO,
+ SWIZZLE_ZERO,
+ SWIZZLE_ZERO,
+ SWIZZLE_ZERO);
+ }
+
+ inst = &program->Instructions[i];
+ inst->Opcode = OPCODE_ARL;
+ inst->DstReg.File = PROGRAM_ADDRESS;
+ inst->DstReg.Index = 0;
+ inst->DstReg.WriteMask = WRITEMASK_XYZW;
+ inst->SrcReg[0].File = PROGRAM_TEMPORARY;
+ inst->SrcReg[0].Index = 0;
+ inst->SrcReg[0].Swizzle = SWIZZLE_XXXX;
+
+ if (program->NumAddressRegs == 0)
+ program->NumAddressRegs = 1;
+}
+
+void
+_mesa_setup_nv_temporary_count(GLcontext *ctx, struct gl_program *program)
+{
+ GLuint i;
+
+ program->NumTemporaries = 0;
+ for (i = 0; i < program->NumInstructions; i++) {
+ struct prog_instruction *inst = &program->Instructions[i];
+
+ if (inst->DstReg.File == PROGRAM_TEMPORARY) {
+ program->NumTemporaries = MAX2(program->NumTemporaries,
+ inst->DstReg.Index + 1);
+ }
+ if (inst->SrcReg[0].File == PROGRAM_TEMPORARY) {
+ program->NumTemporaries = MAX2((GLint)program->NumTemporaries,
+ inst->SrcReg[0].Index + 1);
+ }
+ if (inst->SrcReg[1].File == PROGRAM_TEMPORARY) {
+ program->NumTemporaries = MAX2((GLint)program->NumTemporaries,
+ inst->SrcReg[1].Index + 1);
+ }
+ if (inst->SrcReg[2].File == PROGRAM_TEMPORARY) {
+ program->NumTemporaries = MAX2((GLint)program->NumTemporaries,
+ inst->SrcReg[2].Index + 1);
+ }
+ }
+}
+
+/**
+ * Load/parse/compile a program.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_LoadProgramNV(GLenum target, GLuint id, GLsizei len,
+ const GLubyte *program)
+{
+ struct gl_program *prog;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (!ctx->Extensions.NV_vertex_program
+ && !ctx->Extensions.NV_fragment_program) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glLoadProgramNV()");
+ return;
+ }
+
+ if (id == 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glLoadProgramNV(id)");
+ return;
+ }
+
+ if (len < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glLoadProgramNV(len)");
+ return;
+ }
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+
+ prog = _mesa_lookup_program(ctx, id);
+
+ if (prog && prog->Target != 0 && prog->Target != target) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glLoadProgramNV(target)");
+ return;
+ }
+
+ if ((target == GL_VERTEX_PROGRAM_NV ||
+ target == GL_VERTEX_STATE_PROGRAM_NV)
+ && ctx->Extensions.NV_vertex_program) {
+ struct gl_vertex_program *vprog = (struct gl_vertex_program *) prog;
+ if (!vprog || prog == &_mesa_DummyProgram) {
+ vprog = (struct gl_vertex_program *)
+ ctx->Driver.NewProgram(ctx, target, id);
+ if (!vprog) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glLoadProgramNV");
+ return;
+ }
+ _mesa_HashInsert(ctx->Shared->Programs, id, vprog);
+ }
+
+ if (ctx->Extensions.ARB_vertex_program
+ && (strncmp((char *) program, "!!ARB", 5) == 0)) {
+ _mesa_parse_arb_vertex_program(ctx, target, program, len, vprog);
+ } else {
+ _mesa_parse_nv_vertex_program(ctx, target, program, len, vprog);
+ }
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_NV
+ && ctx->Extensions.NV_fragment_program) {
+ struct gl_fragment_program *fprog = (struct gl_fragment_program *) prog;
+ if (!fprog || prog == &_mesa_DummyProgram) {
+ fprog = (struct gl_fragment_program *)
+ ctx->Driver.NewProgram(ctx, target, id);
+ if (!fprog) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glLoadProgramNV");
+ return;
+ }
+ _mesa_HashInsert(ctx->Shared->Programs, id, fprog);
+ }
+ _mesa_parse_nv_fragment_program(ctx, target, program, len, fprog);
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_ARB
+ && ctx->Extensions.ARB_fragment_program) {
+ struct gl_fragment_program *fprog = (struct gl_fragment_program *) prog;
+ if (!fprog || prog == &_mesa_DummyProgram) {
+ fprog = (struct gl_fragment_program *)
+ ctx->Driver.NewProgram(ctx, target, id);
+ if (!fprog) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glLoadProgramNV");
+ return;
+ }
+ _mesa_HashInsert(ctx->Shared->Programs, id, fprog);
+ }
+ _mesa_parse_arb_fragment_program(ctx, target, program, len, fprog);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glLoadProgramNV(target)");
+ }
+}
+
+
+
+/**
+ * Set a sequence of program parameter registers.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_ProgramParameters4dvNV(GLenum target, GLuint index,
+ GLuint num, const GLdouble *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_VERTEX_PROGRAM_NV && ctx->Extensions.NV_vertex_program) {
+ GLuint i;
+ if (index + num > MAX_NV_VERTEX_PROGRAM_PARAMS) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramParameters4dvNV");
+ return;
+ }
+ for (i = 0; i < num; i++) {
+ ctx->VertexProgram.Parameters[index + i][0] = (GLfloat) params[0];
+ ctx->VertexProgram.Parameters[index + i][1] = (GLfloat) params[1];
+ ctx->VertexProgram.Parameters[index + i][2] = (GLfloat) params[2];
+ ctx->VertexProgram.Parameters[index + i][3] = (GLfloat) params[3];
+ params += 4;
+ };
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramParameters4dvNV");
+ return;
+ }
+}
+
+
+/**
+ * Set a sequence of program parameter registers.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_ProgramParameters4fvNV(GLenum target, GLuint index,
+ GLuint num, const GLfloat *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (target == GL_VERTEX_PROGRAM_NV && ctx->Extensions.NV_vertex_program) {
+ GLuint i;
+ if (index + num > MAX_NV_VERTEX_PROGRAM_PARAMS) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramParameters4fvNV");
+ return;
+ }
+ for (i = 0; i < num; i++) {
+ COPY_4V(ctx->VertexProgram.Parameters[index + i], params);
+ params += 4;
+ }
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramParameters4fvNV");
+ return;
+ }
+}
+
+
+
+/**
+ * Setup tracking of matrices into program parameter registers.
+ * \note Called from the GL API dispatcher.
+ */
+void GLAPIENTRY
+_mesa_TrackMatrixNV(GLenum target, GLuint address,
+ GLenum matrix, GLenum transform)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+
+ if (target == GL_VERTEX_PROGRAM_NV && ctx->Extensions.NV_vertex_program) {
+ if (address & 0x3) {
+ /* addr must be multiple of four */
+ _mesa_error(ctx, GL_INVALID_VALUE, "glTrackMatrixNV(address)");
+ return;
+ }
+
+ switch (matrix) {
+ case GL_NONE:
+ case GL_MODELVIEW:
+ case GL_PROJECTION:
+ case GL_TEXTURE:
+ case GL_COLOR:
+ case GL_MODELVIEW_PROJECTION_NV:
+ case GL_MATRIX0_NV:
+ case GL_MATRIX1_NV:
+ case GL_MATRIX2_NV:
+ case GL_MATRIX3_NV:
+ case GL_MATRIX4_NV:
+ case GL_MATRIX5_NV:
+ case GL_MATRIX6_NV:
+ case GL_MATRIX7_NV:
+ /* OK, fallthrough */
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glTrackMatrixNV(matrix)");
+ return;
+ }
+
+ switch (transform) {
+ case GL_IDENTITY_NV:
+ case GL_INVERSE_NV:
+ case GL_TRANSPOSE_NV:
+ case GL_INVERSE_TRANSPOSE_NV:
+ /* OK, fallthrough */
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glTrackMatrixNV(transform)");
+ return;
+ }
+
+ ctx->VertexProgram.TrackMatrix[address / 4] = matrix;
+ ctx->VertexProgram.TrackMatrixTransform[address / 4] = transform;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glTrackMatrixNV(target)");
+ return;
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_ProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte *name,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ struct gl_program *prog;
+ struct gl_fragment_program *fragProg;
+ GLfloat *v;
+
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+
+ prog = _mesa_lookup_program(ctx, id);
+ if (!prog || prog->Target != GL_FRAGMENT_PROGRAM_NV) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glProgramNamedParameterNV");
+ return;
+ }
+
+ if (len <= 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramNamedParameterNV(len)");
+ return;
+ }
+
+ fragProg = (struct gl_fragment_program *) prog;
+ v = _mesa_lookup_parameter_value(fragProg->Base.Parameters, len,
+ (char *) name);
+ if (v) {
+ v[0] = x;
+ v[1] = y;
+ v[2] = z;
+ v[3] = w;
+ return;
+ }
+
+ _mesa_error(ctx, GL_INVALID_VALUE, "glProgramNamedParameterNV(name)");
+}
+
+
+void GLAPIENTRY
+_mesa_ProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte *name,
+ const float v[])
+{
+ _mesa_ProgramNamedParameter4fNV(id, len, name, v[0], v[1], v[2], v[3]);
+}
+
+
+void GLAPIENTRY
+_mesa_ProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte *name,
+ GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ _mesa_ProgramNamedParameter4fNV(id, len, name, (GLfloat)x, (GLfloat)y,
+ (GLfloat)z, (GLfloat)w);
+}
+
+
+void GLAPIENTRY
+_mesa_ProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte *name,
+ const double v[])
+{
+ _mesa_ProgramNamedParameter4fNV(id, len, name,
+ (GLfloat)v[0], (GLfloat)v[1],
+ (GLfloat)v[2], (GLfloat)v[3]);
+}
+
+
+void GLAPIENTRY
+_mesa_GetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte *name,
+ GLfloat *params)
+{
+ struct gl_program *prog;
+ struct gl_fragment_program *fragProg;
+ const GLfloat *v;
+
+ GET_CURRENT_CONTEXT(ctx);
+
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ prog = _mesa_lookup_program(ctx, id);
+ if (!prog || prog->Target != GL_FRAGMENT_PROGRAM_NV) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetProgramNamedParameterNV");
+ return;
+ }
+
+ if (len <= 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetProgramNamedParameterNV");
+ return;
+ }
+
+ fragProg = (struct gl_fragment_program *) prog;
+ v = _mesa_lookup_parameter_value(fragProg->Base.Parameters,
+ len, (char *) name);
+ if (v) {
+ params[0] = v[0];
+ params[1] = v[1];
+ params[2] = v[2];
+ params[3] = v[3];
+ return;
+ }
+
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetProgramNamedParameterNV");
+}
+
+
+void GLAPIENTRY
+_mesa_GetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte *name,
+ GLdouble *params)
+{
+ GLfloat floatParams[4];
+ _mesa_GetProgramNamedParameterfvNV(id, len, name, floatParams);
+ COPY_4V(params, floatParams);
+}
diff --git a/src/mesa/main/nvprogram.h b/src/mesa/main/nvprogram.h
new file mode 100644
index 00000000000..8ee59661bd0
--- /dev/null
+++ b/src/mesa/main/nvprogram.h
@@ -0,0 +1,113 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 5.1
+ *
+ * Copyright (C) 1999-2003 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:
+ * Brian Paul
+ */
+
+
+#ifndef NVPROGRAM_H
+#define NVPROGRAM_H
+
+
+extern void GLAPIENTRY
+_mesa_ExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params);
+
+extern GLboolean GLAPIENTRY
+_mesa_AreProgramsResidentNV(GLsizei n, const GLuint *ids, GLboolean *residences);
+
+extern void GLAPIENTRY
+_mesa_RequestResidentProgramsNV(GLsizei n, const GLuint *ids);
+
+extern void GLAPIENTRY
+_mesa_GetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params);
+
+extern void GLAPIENTRY
+_mesa_GetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble *params);
+
+extern void GLAPIENTRY
+_mesa_GetProgramivNV(GLuint id, GLenum pname, GLint *params);
+
+extern void GLAPIENTRY
+_mesa_GetProgramStringNV(GLuint id, GLenum pname, GLubyte *program);
+
+extern void GLAPIENTRY
+_mesa_GetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint *params);
+
+extern void GLAPIENTRY
+_mesa_GetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params);
+
+extern void GLAPIENTRY
+_mesa_GetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params);
+
+extern void GLAPIENTRY
+_mesa_GetVertexAttribivNV(GLuint index, GLenum pname, GLint *params);
+
+extern void GLAPIENTRY
+_mesa_GetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer);
+
+extern void GLAPIENTRY
+_mesa_LoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program);
+
+extern void GLAPIENTRY
+_mesa_ProgramParameters4dvNV(GLenum target, GLuint index, GLuint num, const GLdouble *params);
+
+extern void GLAPIENTRY
+_mesa_ProgramParameters4fvNV(GLenum target, GLuint index, GLuint num, const GLfloat *params);
+
+extern void GLAPIENTRY
+_mesa_TrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform);
+
+
+extern void GLAPIENTRY
+_mesa_ProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte *name,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+extern void GLAPIENTRY
+_mesa_ProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte *name,
+ const float v[]);
+
+extern void GLAPIENTRY
+_mesa_ProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte *name,
+ GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+extern void GLAPIENTRY
+_mesa_ProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte *name,
+ const double v[]);
+
+extern void GLAPIENTRY
+_mesa_GetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte *name,
+ GLfloat *params);
+
+extern void GLAPIENTRY
+_mesa_GetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte *name,
+ GLdouble *params);
+
+extern void
+_mesa_setup_nv_temporary_count(GLcontext *ctx, struct gl_program *program);
+
+extern void
+_mesa_emit_nv_temp_initialization(GLcontext *ctx,
+ struct gl_program *program);
+
+#endif
diff --git a/src/mesa/main/querymatrix.c b/src/mesa/main/querymatrix.c
index a0969f6b9ff..6f62415ba8c 100644
--- a/src/mesa/main/querymatrix.c
+++ b/src/mesa/main/querymatrix.c
@@ -71,7 +71,8 @@ fpclassify(double x)
}
#elif defined(__APPLE__) || defined(__CYGWIN__) || defined(__FreeBSD__) || \
- defined(__DragonFly__) || (defined(__sun) && defined(__C99FEATURES__))
+ defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || \
+ (defined(__sun) && defined(__C99FEATURES__))
/* fpclassify is available. */
diff --git a/src/mesa/main/remap_helper.h b/src/mesa/main/remap_helper.h
index 2df11a454df..631cc901588 100644
--- a/src/mesa/main/remap_helper.h
+++ b/src/mesa/main/remap_helper.h
@@ -446,9 +446,9 @@ static const char _mesa_function_pool[] =
"\0"
"glCreateProgramObjectARB\0"
"\0"
- /* _mesa_function_pool[2906]: FragmentLightModelivSGIX (dynamic) */
+ /* _mesa_function_pool[2906]: DeleteTransformFeedbacks (will be remapped) */
"ip\0"
- "glFragmentLightModelivSGIX\0"
+ "glDeleteTransformFeedbacks\0"
"\0"
/* _mesa_function_pool[2937]: UniformMatrix4x3fv (will be remapped) */
"iiip\0"
@@ -664,3757 +664,3801 @@ static const char _mesa_function_pool[] =
"iip\0"
"glGetTexEnvfv\0"
"\0"
- /* _mesa_function_pool[4480]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[4480]: BindTransformFeedback (will be remapped) */
+ "ii\0"
+ "glBindTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[4508]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
"ffffffffffff\0"
"glTexCoord2fColor4fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[4533]: Indexub (offset 315) */
+ /* _mesa_function_pool[4561]: Indexub (offset 315) */
"i\0"
"glIndexub\0"
"\0"
- /* _mesa_function_pool[4546]: TexEnvi (offset 186) */
+ /* _mesa_function_pool[4574]: TexEnvi (offset 186) */
"iii\0"
"glTexEnvi\0"
"\0"
- /* _mesa_function_pool[4561]: GetClipPlane (offset 259) */
+ /* _mesa_function_pool[4589]: GetClipPlane (offset 259) */
"ip\0"
"glGetClipPlane\0"
"\0"
- /* _mesa_function_pool[4580]: CombinerParameterfvNV (will be remapped) */
+ /* _mesa_function_pool[4608]: CombinerParameterfvNV (will be remapped) */
"ip\0"
"glCombinerParameterfvNV\0"
"\0"
- /* _mesa_function_pool[4608]: VertexAttribs3dvNV (will be remapped) */
+ /* _mesa_function_pool[4636]: VertexAttribs3dvNV (will be remapped) */
"iip\0"
"glVertexAttribs3dvNV\0"
"\0"
- /* _mesa_function_pool[4634]: VertexAttribs4fvNV (will be remapped) */
+ /* _mesa_function_pool[4662]: VertexAttribs4fvNV (will be remapped) */
"iip\0"
"glVertexAttribs4fvNV\0"
"\0"
- /* _mesa_function_pool[4660]: VertexArrayRangeNV (will be remapped) */
+ /* _mesa_function_pool[4688]: VertexArrayRangeNV (will be remapped) */
"ip\0"
"glVertexArrayRangeNV\0"
"\0"
- /* _mesa_function_pool[4685]: FragmentLightiSGIX (dynamic) */
+ /* _mesa_function_pool[4713]: FragmentLightiSGIX (dynamic) */
"iii\0"
"glFragmentLightiSGIX\0"
"\0"
- /* _mesa_function_pool[4711]: PolygonOffsetEXT (will be remapped) */
+ /* _mesa_function_pool[4739]: PolygonOffsetEXT (will be remapped) */
"ff\0"
"glPolygonOffsetEXT\0"
"\0"
- /* _mesa_function_pool[4734]: PollAsyncSGIX (dynamic) */
+ /* _mesa_function_pool[4762]: PollAsyncSGIX (dynamic) */
"p\0"
"glPollAsyncSGIX\0"
"\0"
- /* _mesa_function_pool[4753]: DeleteFragmentShaderATI (will be remapped) */
+ /* _mesa_function_pool[4781]: DeleteFragmentShaderATI (will be remapped) */
"i\0"
"glDeleteFragmentShaderATI\0"
"\0"
- /* _mesa_function_pool[4782]: Scaled (offset 301) */
+ /* _mesa_function_pool[4810]: Scaled (offset 301) */
"ddd\0"
"glScaled\0"
"\0"
- /* _mesa_function_pool[4796]: Scalef (offset 302) */
+ /* _mesa_function_pool[4824]: ResumeTransformFeedback (will be remapped) */
+ "\0"
+ "glResumeTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[4852]: Scalef (offset 302) */
"fff\0"
"glScalef\0"
"\0"
- /* _mesa_function_pool[4810]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[4866]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */
"ppp\0"
"glTexCoord2fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[4848]: MultTransposeMatrixdARB (will be remapped) */
+ /* _mesa_function_pool[4904]: MultTransposeMatrixdARB (will be remapped) */
"p\0"
"glMultTransposeMatrixd\0"
"glMultTransposeMatrixdARB\0"
"\0"
- /* _mesa_function_pool[4900]: ObjectUnpurgeableAPPLE (will be remapped) */
+ /* _mesa_function_pool[4956]: ColorMaskIndexedEXT (will be remapped) */
+ "iiiii\0"
+ "glColorMaskIndexedEXT\0"
+ "\0"
+ /* _mesa_function_pool[4985]: ObjectUnpurgeableAPPLE (will be remapped) */
"iii\0"
"glObjectUnpurgeableAPPLE\0"
"\0"
- /* _mesa_function_pool[4930]: AlphaFunc (offset 240) */
+ /* _mesa_function_pool[5015]: AlphaFunc (offset 240) */
"if\0"
"glAlphaFunc\0"
"\0"
- /* _mesa_function_pool[4946]: WindowPos2svMESA (will be remapped) */
+ /* _mesa_function_pool[5031]: WindowPos2svMESA (will be remapped) */
"p\0"
"glWindowPos2sv\0"
"glWindowPos2svARB\0"
"glWindowPos2svMESA\0"
"\0"
- /* _mesa_function_pool[5001]: EdgeFlag (offset 41) */
+ /* _mesa_function_pool[5086]: EdgeFlag (offset 41) */
"i\0"
"glEdgeFlag\0"
"\0"
- /* _mesa_function_pool[5015]: TexCoord2iv (offset 107) */
+ /* _mesa_function_pool[5100]: TexCoord2iv (offset 107) */
"p\0"
"glTexCoord2iv\0"
"\0"
- /* _mesa_function_pool[5032]: CompressedTexImage1DARB (will be remapped) */
+ /* _mesa_function_pool[5117]: CompressedTexImage1DARB (will be remapped) */
"iiiiiip\0"
"glCompressedTexImage1D\0"
"glCompressedTexImage1DARB\0"
"\0"
- /* _mesa_function_pool[5090]: Rotated (offset 299) */
+ /* _mesa_function_pool[5175]: Rotated (offset 299) */
"dddd\0"
"glRotated\0"
"\0"
- /* _mesa_function_pool[5106]: VertexAttrib2sNV (will be remapped) */
+ /* _mesa_function_pool[5191]: VertexAttrib2sNV (will be remapped) */
"iii\0"
"glVertexAttrib2sNV\0"
"\0"
- /* _mesa_function_pool[5130]: ReadPixels (offset 256) */
+ /* _mesa_function_pool[5215]: ReadPixels (offset 256) */
"iiiiiip\0"
"glReadPixels\0"
"\0"
- /* _mesa_function_pool[5152]: EdgeFlagv (offset 42) */
+ /* _mesa_function_pool[5237]: EdgeFlagv (offset 42) */
"p\0"
"glEdgeFlagv\0"
"\0"
- /* _mesa_function_pool[5167]: NormalPointerListIBM (dynamic) */
+ /* _mesa_function_pool[5252]: NormalPointerListIBM (dynamic) */
"iipi\0"
"glNormalPointerListIBM\0"
"\0"
- /* _mesa_function_pool[5196]: IndexPointerEXT (will be remapped) */
+ /* _mesa_function_pool[5281]: IndexPointerEXT (will be remapped) */
"iiip\0"
"glIndexPointerEXT\0"
"\0"
- /* _mesa_function_pool[5220]: Color4iv (offset 32) */
+ /* _mesa_function_pool[5305]: Color4iv (offset 32) */
"p\0"
"glColor4iv\0"
"\0"
- /* _mesa_function_pool[5234]: TexParameterf (offset 178) */
+ /* _mesa_function_pool[5319]: TexParameterf (offset 178) */
"iif\0"
"glTexParameterf\0"
"\0"
- /* _mesa_function_pool[5255]: TexParameteri (offset 180) */
+ /* _mesa_function_pool[5340]: TexParameteri (offset 180) */
"iii\0"
"glTexParameteri\0"
"\0"
- /* _mesa_function_pool[5276]: NormalPointerEXT (will be remapped) */
+ /* _mesa_function_pool[5361]: NormalPointerEXT (will be remapped) */
"iiip\0"
"glNormalPointerEXT\0"
"\0"
- /* _mesa_function_pool[5301]: MultiTexCoord3dARB (offset 392) */
+ /* _mesa_function_pool[5386]: MultiTexCoord3dARB (offset 392) */
"iddd\0"
"glMultiTexCoord3d\0"
"glMultiTexCoord3dARB\0"
"\0"
- /* _mesa_function_pool[5346]: MultiTexCoord2iARB (offset 388) */
+ /* _mesa_function_pool[5431]: MultiTexCoord2iARB (offset 388) */
"iii\0"
"glMultiTexCoord2i\0"
"glMultiTexCoord2iARB\0"
"\0"
- /* _mesa_function_pool[5390]: DrawPixels (offset 257) */
+ /* _mesa_function_pool[5475]: DrawPixels (offset 257) */
"iiiip\0"
"glDrawPixels\0"
"\0"
- /* _mesa_function_pool[5410]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[5495]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */
"iffffffff\0"
"glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[5470]: MultiTexCoord2svARB (offset 391) */
+ /* _mesa_function_pool[5555]: MultiTexCoord2svARB (offset 391) */
"ip\0"
"glMultiTexCoord2sv\0"
"glMultiTexCoord2svARB\0"
"\0"
- /* _mesa_function_pool[5515]: ReplacementCodeubvSUN (dynamic) */
+ /* _mesa_function_pool[5600]: ReplacementCodeubvSUN (dynamic) */
"p\0"
"glReplacementCodeubvSUN\0"
"\0"
- /* _mesa_function_pool[5542]: Uniform3iARB (will be remapped) */
+ /* _mesa_function_pool[5627]: Uniform3iARB (will be remapped) */
"iiii\0"
"glUniform3i\0"
"glUniform3iARB\0"
"\0"
- /* _mesa_function_pool[5575]: GetFragmentMaterialfvSGIX (dynamic) */
+ /* _mesa_function_pool[5660]: DrawTransformFeedback (will be remapped) */
+ "ii\0"
+ "glDrawTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[5688]: GetFragmentMaterialfvSGIX (dynamic) */
"iip\0"
"glGetFragmentMaterialfvSGIX\0"
"\0"
- /* _mesa_function_pool[5608]: GetShaderInfoLog (will be remapped) */
+ /* _mesa_function_pool[5721]: GetShaderInfoLog (will be remapped) */
"iipp\0"
"glGetShaderInfoLog\0"
"\0"
- /* _mesa_function_pool[5633]: WeightivARB (dynamic) */
+ /* _mesa_function_pool[5746]: WeightivARB (dynamic) */
"ip\0"
"glWeightivARB\0"
"\0"
- /* _mesa_function_pool[5651]: PollInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[5764]: PollInstrumentsSGIX (dynamic) */
"p\0"
"glPollInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[5676]: GlobalAlphaFactordSUN (dynamic) */
+ /* _mesa_function_pool[5789]: GlobalAlphaFactordSUN (dynamic) */
"d\0"
"glGlobalAlphaFactordSUN\0"
"\0"
- /* _mesa_function_pool[5703]: GetFinalCombinerInputParameterfvNV (will be remapped) */
+ /* _mesa_function_pool[5816]: GetFinalCombinerInputParameterfvNV (will be remapped) */
"iip\0"
"glGetFinalCombinerInputParameterfvNV\0"
"\0"
- /* _mesa_function_pool[5745]: GenerateMipmapEXT (will be remapped) */
+ /* _mesa_function_pool[5858]: GenerateMipmapEXT (will be remapped) */
"i\0"
"glGenerateMipmap\0"
"glGenerateMipmapEXT\0"
"\0"
- /* _mesa_function_pool[5785]: GenLists (offset 5) */
+ /* _mesa_function_pool[5898]: GenLists (offset 5) */
"i\0"
"glGenLists\0"
"\0"
- /* _mesa_function_pool[5799]: SetFragmentShaderConstantATI (will be remapped) */
+ /* _mesa_function_pool[5912]: SetFragmentShaderConstantATI (will be remapped) */
"ip\0"
"glSetFragmentShaderConstantATI\0"
"\0"
- /* _mesa_function_pool[5834]: GetMapAttribParameterivNV (dynamic) */
+ /* _mesa_function_pool[5947]: GetMapAttribParameterivNV (dynamic) */
"iiip\0"
"glGetMapAttribParameterivNV\0"
"\0"
- /* _mesa_function_pool[5868]: CreateShaderObjectARB (will be remapped) */
+ /* _mesa_function_pool[5981]: CreateShaderObjectARB (will be remapped) */
"i\0"
"glCreateShaderObjectARB\0"
"\0"
- /* _mesa_function_pool[5895]: GetSharpenTexFuncSGIS (dynamic) */
+ /* _mesa_function_pool[6008]: GetSharpenTexFuncSGIS (dynamic) */
"ip\0"
"glGetSharpenTexFuncSGIS\0"
"\0"
- /* _mesa_function_pool[5923]: BufferDataARB (will be remapped) */
+ /* _mesa_function_pool[6036]: BufferDataARB (will be remapped) */
"iipi\0"
"glBufferData\0"
"glBufferDataARB\0"
"\0"
- /* _mesa_function_pool[5958]: FlushVertexArrayRangeNV (will be remapped) */
+ /* _mesa_function_pool[6071]: FlushVertexArrayRangeNV (will be remapped) */
"\0"
"glFlushVertexArrayRangeNV\0"
"\0"
- /* _mesa_function_pool[5986]: MapGrid2d (offset 226) */
+ /* _mesa_function_pool[6099]: MapGrid2d (offset 226) */
"iddidd\0"
"glMapGrid2d\0"
"\0"
- /* _mesa_function_pool[6006]: MapGrid2f (offset 227) */
+ /* _mesa_function_pool[6119]: MapGrid2f (offset 227) */
"iffiff\0"
"glMapGrid2f\0"
"\0"
- /* _mesa_function_pool[6026]: SampleMapATI (will be remapped) */
+ /* _mesa_function_pool[6139]: SampleMapATI (will be remapped) */
"iii\0"
"glSampleMapATI\0"
"\0"
- /* _mesa_function_pool[6046]: VertexPointerEXT (will be remapped) */
+ /* _mesa_function_pool[6159]: VertexPointerEXT (will be remapped) */
"iiiip\0"
"glVertexPointerEXT\0"
"\0"
- /* _mesa_function_pool[6072]: GetTexFilterFuncSGIS (dynamic) */
+ /* _mesa_function_pool[6185]: GetTexFilterFuncSGIS (dynamic) */
"iip\0"
"glGetTexFilterFuncSGIS\0"
"\0"
- /* _mesa_function_pool[6100]: Scissor (offset 176) */
+ /* _mesa_function_pool[6213]: Scissor (offset 176) */
"iiii\0"
"glScissor\0"
"\0"
- /* _mesa_function_pool[6116]: Fogf (offset 153) */
+ /* _mesa_function_pool[6229]: Fogf (offset 153) */
"if\0"
"glFogf\0"
"\0"
- /* _mesa_function_pool[6127]: GetCombinerOutputParameterfvNV (will be remapped) */
- "iiip\0"
- "glGetCombinerOutputParameterfvNV\0"
+ /* _mesa_function_pool[6240]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glReplacementCodeuiColor4ubVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[6166]: TexSubImage1D (offset 332) */
+ /* _mesa_function_pool[6285]: TexSubImage1D (offset 332) */
"iiiiiip\0"
"glTexSubImage1D\0"
"glTexSubImage1DEXT\0"
"\0"
- /* _mesa_function_pool[6210]: VertexAttrib1sARB (will be remapped) */
+ /* _mesa_function_pool[6329]: VertexAttrib1sARB (will be remapped) */
"ii\0"
"glVertexAttrib1s\0"
"glVertexAttrib1sARB\0"
"\0"
- /* _mesa_function_pool[6251]: FenceSync (will be remapped) */
+ /* _mesa_function_pool[6370]: FenceSync (will be remapped) */
"ii\0"
"glFenceSync\0"
"\0"
- /* _mesa_function_pool[6267]: Color4usv (offset 40) */
+ /* _mesa_function_pool[6386]: Color4usv (offset 40) */
"p\0"
"glColor4usv\0"
"\0"
- /* _mesa_function_pool[6282]: Fogi (offset 155) */
+ /* _mesa_function_pool[6401]: Fogi (offset 155) */
"ii\0"
"glFogi\0"
"\0"
- /* _mesa_function_pool[6293]: DepthRange (offset 288) */
+ /* _mesa_function_pool[6412]: DepthRange (offset 288) */
"dd\0"
"glDepthRange\0"
"\0"
- /* _mesa_function_pool[6310]: RasterPos3iv (offset 75) */
+ /* _mesa_function_pool[6429]: RasterPos3iv (offset 75) */
"p\0"
"glRasterPos3iv\0"
"\0"
- /* _mesa_function_pool[6328]: FinalCombinerInputNV (will be remapped) */
+ /* _mesa_function_pool[6447]: FinalCombinerInputNV (will be remapped) */
"iiii\0"
"glFinalCombinerInputNV\0"
"\0"
- /* _mesa_function_pool[6357]: TexCoord2i (offset 106) */
+ /* _mesa_function_pool[6476]: TexCoord2i (offset 106) */
"ii\0"
"glTexCoord2i\0"
"\0"
- /* _mesa_function_pool[6374]: PixelMapfv (offset 251) */
+ /* _mesa_function_pool[6493]: PixelMapfv (offset 251) */
"iip\0"
"glPixelMapfv\0"
"\0"
- /* _mesa_function_pool[6392]: Color4ui (offset 37) */
+ /* _mesa_function_pool[6511]: Color4ui (offset 37) */
"iiii\0"
"glColor4ui\0"
"\0"
- /* _mesa_function_pool[6409]: RasterPos3s (offset 76) */
+ /* _mesa_function_pool[6528]: RasterPos3s (offset 76) */
"iii\0"
"glRasterPos3s\0"
"\0"
- /* _mesa_function_pool[6428]: Color3usv (offset 24) */
+ /* _mesa_function_pool[6547]: Color3usv (offset 24) */
"p\0"
"glColor3usv\0"
"\0"
- /* _mesa_function_pool[6443]: FlushRasterSGIX (dynamic) */
+ /* _mesa_function_pool[6562]: FlushRasterSGIX (dynamic) */
"\0"
"glFlushRasterSGIX\0"
"\0"
- /* _mesa_function_pool[6463]: TexCoord2f (offset 104) */
+ /* _mesa_function_pool[6582]: TexCoord2f (offset 104) */
"ff\0"
"glTexCoord2f\0"
"\0"
- /* _mesa_function_pool[6480]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[6599]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */
"ifffff\0"
"glReplacementCodeuiTexCoord2fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[6529]: TexCoord2d (offset 102) */
+ /* _mesa_function_pool[6648]: TexCoord2d (offset 102) */
"dd\0"
"glTexCoord2d\0"
"\0"
- /* _mesa_function_pool[6546]: RasterPos3d (offset 70) */
+ /* _mesa_function_pool[6665]: RasterPos3d (offset 70) */
"ddd\0"
"glRasterPos3d\0"
"\0"
- /* _mesa_function_pool[6565]: RasterPos3f (offset 72) */
+ /* _mesa_function_pool[6684]: RasterPos3f (offset 72) */
"fff\0"
"glRasterPos3f\0"
"\0"
- /* _mesa_function_pool[6584]: Uniform1fARB (will be remapped) */
+ /* _mesa_function_pool[6703]: Uniform1fARB (will be remapped) */
"if\0"
"glUniform1f\0"
"glUniform1fARB\0"
"\0"
- /* _mesa_function_pool[6615]: AreTexturesResident (offset 322) */
+ /* _mesa_function_pool[6734]: AreTexturesResident (offset 322) */
"ipp\0"
"glAreTexturesResident\0"
"glAreTexturesResidentEXT\0"
"\0"
- /* _mesa_function_pool[6667]: TexCoord2s (offset 108) */
+ /* _mesa_function_pool[6786]: TexCoord2s (offset 108) */
"ii\0"
"glTexCoord2s\0"
"\0"
- /* _mesa_function_pool[6684]: StencilOpSeparate (will be remapped) */
+ /* _mesa_function_pool[6803]: StencilOpSeparate (will be remapped) */
"iiii\0"
"glStencilOpSeparate\0"
"glStencilOpSeparateATI\0"
"\0"
- /* _mesa_function_pool[6733]: ColorTableParameteriv (offset 341) */
+ /* _mesa_function_pool[6852]: ColorTableParameteriv (offset 341) */
"iip\0"
"glColorTableParameteriv\0"
"glColorTableParameterivSGI\0"
"\0"
- /* _mesa_function_pool[6789]: FogCoordPointerListIBM (dynamic) */
+ /* _mesa_function_pool[6908]: FogCoordPointerListIBM (dynamic) */
"iipi\0"
"glFogCoordPointerListIBM\0"
"\0"
- /* _mesa_function_pool[6820]: WindowPos3dMESA (will be remapped) */
+ /* _mesa_function_pool[6939]: WindowPos3dMESA (will be remapped) */
"ddd\0"
"glWindowPos3d\0"
"glWindowPos3dARB\0"
"glWindowPos3dMESA\0"
"\0"
- /* _mesa_function_pool[6874]: Color4us (offset 39) */
+ /* _mesa_function_pool[6993]: Color4us (offset 39) */
"iiii\0"
"glColor4us\0"
"\0"
- /* _mesa_function_pool[6891]: PointParameterfvEXT (will be remapped) */
+ /* _mesa_function_pool[7010]: PointParameterfvEXT (will be remapped) */
"ip\0"
"glPointParameterfv\0"
"glPointParameterfvARB\0"
"glPointParameterfvEXT\0"
"glPointParameterfvSGIS\0"
"\0"
- /* _mesa_function_pool[6981]: Color3bv (offset 10) */
+ /* _mesa_function_pool[7100]: Color3bv (offset 10) */
"p\0"
"glColor3bv\0"
"\0"
- /* _mesa_function_pool[6995]: WindowPos2fvMESA (will be remapped) */
+ /* _mesa_function_pool[7114]: WindowPos2fvMESA (will be remapped) */
"p\0"
"glWindowPos2fv\0"
"glWindowPos2fvARB\0"
"glWindowPos2fvMESA\0"
"\0"
- /* _mesa_function_pool[7050]: SecondaryColor3bvEXT (will be remapped) */
+ /* _mesa_function_pool[7169]: SecondaryColor3bvEXT (will be remapped) */
"p\0"
"glSecondaryColor3bv\0"
"glSecondaryColor3bvEXT\0"
"\0"
- /* _mesa_function_pool[7096]: VertexPointerListIBM (dynamic) */
+ /* _mesa_function_pool[7215]: VertexPointerListIBM (dynamic) */
"iiipi\0"
"glVertexPointerListIBM\0"
"\0"
- /* _mesa_function_pool[7126]: GetProgramLocalParameterfvARB (will be remapped) */
+ /* _mesa_function_pool[7245]: GetProgramLocalParameterfvARB (will be remapped) */
"iip\0"
"glGetProgramLocalParameterfvARB\0"
"\0"
- /* _mesa_function_pool[7163]: FragmentMaterialfSGIX (dynamic) */
+ /* _mesa_function_pool[7282]: FragmentMaterialfSGIX (dynamic) */
"iif\0"
"glFragmentMaterialfSGIX\0"
"\0"
- /* _mesa_function_pool[7192]: TexCoord2fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[7311]: TexCoord2fNormal3fVertex3fSUN (dynamic) */
"ffffffff\0"
"glTexCoord2fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[7234]: RenderbufferStorageEXT (will be remapped) */
+ /* _mesa_function_pool[7353]: RenderbufferStorageEXT (will be remapped) */
"iiii\0"
"glRenderbufferStorage\0"
"glRenderbufferStorageEXT\0"
"\0"
- /* _mesa_function_pool[7287]: IsFenceNV (will be remapped) */
+ /* _mesa_function_pool[7406]: IsFenceNV (will be remapped) */
"i\0"
"glIsFenceNV\0"
"\0"
- /* _mesa_function_pool[7302]: AttachObjectARB (will be remapped) */
+ /* _mesa_function_pool[7421]: AttachObjectARB (will be remapped) */
"ii\0"
"glAttachObjectARB\0"
"\0"
- /* _mesa_function_pool[7324]: GetFragmentLightivSGIX (dynamic) */
+ /* _mesa_function_pool[7443]: GetFragmentLightivSGIX (dynamic) */
"iip\0"
"glGetFragmentLightivSGIX\0"
"\0"
- /* _mesa_function_pool[7354]: UniformMatrix2fvARB (will be remapped) */
+ /* _mesa_function_pool[7473]: UniformMatrix2fvARB (will be remapped) */
"iiip\0"
"glUniformMatrix2fv\0"
"glUniformMatrix2fvARB\0"
"\0"
- /* _mesa_function_pool[7401]: MultiTexCoord2fARB (offset 386) */
+ /* _mesa_function_pool[7520]: MultiTexCoord2fARB (offset 386) */
"iff\0"
"glMultiTexCoord2f\0"
"glMultiTexCoord2fARB\0"
"\0"
- /* _mesa_function_pool[7445]: ColorTable (offset 339) */
+ /* _mesa_function_pool[7564]: ColorTable (offset 339) */
"iiiiip\0"
"glColorTable\0"
"glColorTableSGI\0"
"glColorTableEXT\0"
"\0"
- /* _mesa_function_pool[7498]: IndexPointer (offset 314) */
+ /* _mesa_function_pool[7617]: IndexPointer (offset 314) */
"iip\0"
"glIndexPointer\0"
"\0"
- /* _mesa_function_pool[7518]: Accum (offset 213) */
+ /* _mesa_function_pool[7637]: Accum (offset 213) */
"if\0"
"glAccum\0"
"\0"
- /* _mesa_function_pool[7530]: GetTexImage (offset 281) */
+ /* _mesa_function_pool[7649]: GetTexImage (offset 281) */
"iiiip\0"
"glGetTexImage\0"
"\0"
- /* _mesa_function_pool[7551]: MapControlPointsNV (dynamic) */
+ /* _mesa_function_pool[7670]: MapControlPointsNV (dynamic) */
"iiiiiiiip\0"
"glMapControlPointsNV\0"
"\0"
- /* _mesa_function_pool[7583]: ConvolutionFilter2D (offset 349) */
+ /* _mesa_function_pool[7702]: ConvolutionFilter2D (offset 349) */
"iiiiiip\0"
"glConvolutionFilter2D\0"
"glConvolutionFilter2DEXT\0"
"\0"
- /* _mesa_function_pool[7639]: Finish (offset 216) */
+ /* _mesa_function_pool[7758]: Finish (offset 216) */
"\0"
"glFinish\0"
"\0"
- /* _mesa_function_pool[7650]: MapParameterfvNV (dynamic) */
+ /* _mesa_function_pool[7769]: MapParameterfvNV (dynamic) */
"iip\0"
"glMapParameterfvNV\0"
"\0"
- /* _mesa_function_pool[7674]: ClearStencil (offset 207) */
+ /* _mesa_function_pool[7793]: ClearStencil (offset 207) */
"i\0"
"glClearStencil\0"
"\0"
- /* _mesa_function_pool[7692]: VertexAttrib3dvARB (will be remapped) */
+ /* _mesa_function_pool[7811]: VertexAttrib3dvARB (will be remapped) */
"ip\0"
"glVertexAttrib3dv\0"
"glVertexAttrib3dvARB\0"
"\0"
- /* _mesa_function_pool[7735]: HintPGI (dynamic) */
+ /* _mesa_function_pool[7854]: HintPGI (dynamic) */
"ii\0"
"glHintPGI\0"
"\0"
- /* _mesa_function_pool[7749]: ConvolutionParameteriv (offset 353) */
+ /* _mesa_function_pool[7868]: ConvolutionParameteriv (offset 353) */
"iip\0"
"glConvolutionParameteriv\0"
"glConvolutionParameterivEXT\0"
"\0"
- /* _mesa_function_pool[7807]: Color4s (offset 33) */
+ /* _mesa_function_pool[7926]: Color4s (offset 33) */
"iiii\0"
"glColor4s\0"
"\0"
- /* _mesa_function_pool[7823]: InterleavedArrays (offset 317) */
+ /* _mesa_function_pool[7942]: InterleavedArrays (offset 317) */
"iip\0"
"glInterleavedArrays\0"
"\0"
- /* _mesa_function_pool[7848]: RasterPos2fv (offset 65) */
+ /* _mesa_function_pool[7967]: RasterPos2fv (offset 65) */
"p\0"
"glRasterPos2fv\0"
"\0"
- /* _mesa_function_pool[7866]: TexCoord1fv (offset 97) */
+ /* _mesa_function_pool[7985]: TexCoord1fv (offset 97) */
"p\0"
"glTexCoord1fv\0"
"\0"
- /* _mesa_function_pool[7883]: Vertex2d (offset 126) */
+ /* _mesa_function_pool[8002]: Vertex2d (offset 126) */
"dd\0"
"glVertex2d\0"
"\0"
- /* _mesa_function_pool[7898]: CullParameterdvEXT (will be remapped) */
+ /* _mesa_function_pool[8017]: CullParameterdvEXT (will be remapped) */
"ip\0"
"glCullParameterdvEXT\0"
"\0"
- /* _mesa_function_pool[7923]: ProgramNamedParameter4fNV (will be remapped) */
+ /* _mesa_function_pool[8042]: ProgramNamedParameter4fNV (will be remapped) */
"iipffff\0"
"glProgramNamedParameter4fNV\0"
"\0"
- /* _mesa_function_pool[7960]: Color3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[8079]: Color3fVertex3fSUN (dynamic) */
"ffffff\0"
"glColor3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[7989]: ProgramEnvParameter4fvARB (will be remapped) */
+ /* _mesa_function_pool[8108]: ProgramEnvParameter4fvARB (will be remapped) */
"iip\0"
"glProgramEnvParameter4fvARB\0"
"glProgramParameter4fvNV\0"
"\0"
- /* _mesa_function_pool[8046]: Color4i (offset 31) */
+ /* _mesa_function_pool[8165]: Color4i (offset 31) */
"iiii\0"
"glColor4i\0"
"\0"
- /* _mesa_function_pool[8062]: Color4f (offset 29) */
+ /* _mesa_function_pool[8181]: Color4f (offset 29) */
"ffff\0"
"glColor4f\0"
"\0"
- /* _mesa_function_pool[8078]: RasterPos4fv (offset 81) */
+ /* _mesa_function_pool[8197]: RasterPos4fv (offset 81) */
"p\0"
"glRasterPos4fv\0"
"\0"
- /* _mesa_function_pool[8096]: Color4d (offset 27) */
+ /* _mesa_function_pool[8215]: Color4d (offset 27) */
"dddd\0"
"glColor4d\0"
"\0"
- /* _mesa_function_pool[8112]: ClearIndex (offset 205) */
+ /* _mesa_function_pool[8231]: ClearIndex (offset 205) */
"f\0"
"glClearIndex\0"
"\0"
- /* _mesa_function_pool[8128]: Color4b (offset 25) */
+ /* _mesa_function_pool[8247]: Color4b (offset 25) */
"iiii\0"
"glColor4b\0"
"\0"
- /* _mesa_function_pool[8144]: LoadMatrixd (offset 292) */
+ /* _mesa_function_pool[8263]: LoadMatrixd (offset 292) */
"p\0"
"glLoadMatrixd\0"
"\0"
- /* _mesa_function_pool[8161]: FragmentLightModeliSGIX (dynamic) */
+ /* _mesa_function_pool[8280]: FragmentLightModeliSGIX (dynamic) */
"ii\0"
"glFragmentLightModeliSGIX\0"
"\0"
- /* _mesa_function_pool[8191]: RasterPos2dv (offset 63) */
+ /* _mesa_function_pool[8310]: RasterPos2dv (offset 63) */
"p\0"
"glRasterPos2dv\0"
"\0"
- /* _mesa_function_pool[8209]: ConvolutionParameterfv (offset 351) */
+ /* _mesa_function_pool[8328]: ConvolutionParameterfv (offset 351) */
"iip\0"
"glConvolutionParameterfv\0"
"glConvolutionParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[8267]: TbufferMask3DFX (dynamic) */
+ /* _mesa_function_pool[8386]: TbufferMask3DFX (dynamic) */
"i\0"
"glTbufferMask3DFX\0"
"\0"
- /* _mesa_function_pool[8288]: GetTexGendv (offset 278) */
+ /* _mesa_function_pool[8407]: GetTexGendv (offset 278) */
"iip\0"
"glGetTexGendv\0"
"\0"
- /* _mesa_function_pool[8307]: GetVertexAttribfvNV (will be remapped) */
+ /* _mesa_function_pool[8426]: GetVertexAttribfvNV (will be remapped) */
"iip\0"
"glGetVertexAttribfvNV\0"
"\0"
- /* _mesa_function_pool[8334]: BeginTransformFeedbackEXT (will be remapped) */
+ /* _mesa_function_pool[8453]: BeginTransformFeedbackEXT (will be remapped) */
"i\0"
"glBeginTransformFeedbackEXT\0"
"glBeginTransformFeedback\0"
"\0"
- /* _mesa_function_pool[8390]: LoadProgramNV (will be remapped) */
+ /* _mesa_function_pool[8509]: LoadProgramNV (will be remapped) */
"iiip\0"
"glLoadProgramNV\0"
"\0"
- /* _mesa_function_pool[8412]: WaitSync (will be remapped) */
+ /* _mesa_function_pool[8531]: WaitSync (will be remapped) */
"iii\0"
"glWaitSync\0"
"\0"
- /* _mesa_function_pool[8428]: EndList (offset 1) */
+ /* _mesa_function_pool[8547]: EndList (offset 1) */
"\0"
"glEndList\0"
"\0"
- /* _mesa_function_pool[8440]: VertexAttrib4fvNV (will be remapped) */
+ /* _mesa_function_pool[8559]: VertexAttrib4fvNV (will be remapped) */
"ip\0"
"glVertexAttrib4fvNV\0"
"\0"
- /* _mesa_function_pool[8464]: GetAttachedObjectsARB (will be remapped) */
+ /* _mesa_function_pool[8583]: GetAttachedObjectsARB (will be remapped) */
"iipp\0"
"glGetAttachedObjectsARB\0"
"\0"
- /* _mesa_function_pool[8494]: Uniform3fvARB (will be remapped) */
+ /* _mesa_function_pool[8613]: Uniform3fvARB (will be remapped) */
"iip\0"
"glUniform3fv\0"
"glUniform3fvARB\0"
"\0"
- /* _mesa_function_pool[8528]: EvalCoord1fv (offset 231) */
+ /* _mesa_function_pool[8647]: EvalCoord1fv (offset 231) */
"p\0"
"glEvalCoord1fv\0"
"\0"
- /* _mesa_function_pool[8546]: DrawRangeElements (offset 338) */
+ /* _mesa_function_pool[8665]: DrawRangeElements (offset 338) */
"iiiiip\0"
"glDrawRangeElements\0"
"glDrawRangeElementsEXT\0"
"\0"
- /* _mesa_function_pool[8597]: EvalMesh2 (offset 238) */
+ /* _mesa_function_pool[8716]: EvalMesh2 (offset 238) */
"iiiii\0"
"glEvalMesh2\0"
"\0"
- /* _mesa_function_pool[8616]: Vertex4fv (offset 145) */
+ /* _mesa_function_pool[8735]: Vertex4fv (offset 145) */
"p\0"
"glVertex4fv\0"
"\0"
- /* _mesa_function_pool[8631]: SpriteParameterfvSGIX (dynamic) */
+ /* _mesa_function_pool[8750]: GenTransformFeedbacks (will be remapped) */
+ "ip\0"
+ "glGenTransformFeedbacks\0"
+ "\0"
+ /* _mesa_function_pool[8778]: SpriteParameterfvSGIX (dynamic) */
"ip\0"
"glSpriteParameterfvSGIX\0"
"\0"
- /* _mesa_function_pool[8659]: CheckFramebufferStatusEXT (will be remapped) */
+ /* _mesa_function_pool[8806]: CheckFramebufferStatusEXT (will be remapped) */
"i\0"
"glCheckFramebufferStatus\0"
"glCheckFramebufferStatusEXT\0"
"\0"
- /* _mesa_function_pool[8715]: GlobalAlphaFactoruiSUN (dynamic) */
+ /* _mesa_function_pool[8862]: GlobalAlphaFactoruiSUN (dynamic) */
"i\0"
"glGlobalAlphaFactoruiSUN\0"
"\0"
- /* _mesa_function_pool[8743]: GetHandleARB (will be remapped) */
+ /* _mesa_function_pool[8890]: GetHandleARB (will be remapped) */
"i\0"
"glGetHandleARB\0"
"\0"
- /* _mesa_function_pool[8761]: GetVertexAttribivARB (will be remapped) */
+ /* _mesa_function_pool[8908]: GetVertexAttribivARB (will be remapped) */
"iip\0"
"glGetVertexAttribiv\0"
"glGetVertexAttribivARB\0"
"\0"
- /* _mesa_function_pool[8809]: GetCombinerInputParameterfvNV (will be remapped) */
+ /* _mesa_function_pool[8956]: GetCombinerInputParameterfvNV (will be remapped) */
"iiiip\0"
"glGetCombinerInputParameterfvNV\0"
"\0"
- /* _mesa_function_pool[8848]: CreateProgram (will be remapped) */
+ /* _mesa_function_pool[8995]: CreateProgram (will be remapped) */
"\0"
"glCreateProgram\0"
"\0"
- /* _mesa_function_pool[8866]: LoadTransposeMatrixdARB (will be remapped) */
+ /* _mesa_function_pool[9013]: LoadTransposeMatrixdARB (will be remapped) */
"p\0"
"glLoadTransposeMatrixd\0"
"glLoadTransposeMatrixdARB\0"
"\0"
- /* _mesa_function_pool[8918]: GetMinmax (offset 364) */
+ /* _mesa_function_pool[9065]: GetMinmax (offset 364) */
"iiiip\0"
"glGetMinmax\0"
"glGetMinmaxEXT\0"
"\0"
- /* _mesa_function_pool[8952]: StencilFuncSeparate (will be remapped) */
+ /* _mesa_function_pool[9099]: StencilFuncSeparate (will be remapped) */
"iiii\0"
"glStencilFuncSeparate\0"
"\0"
- /* _mesa_function_pool[8980]: SecondaryColor3sEXT (will be remapped) */
+ /* _mesa_function_pool[9127]: SecondaryColor3sEXT (will be remapped) */
"iii\0"
"glSecondaryColor3s\0"
"glSecondaryColor3sEXT\0"
"\0"
- /* _mesa_function_pool[9026]: Color3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[9173]: Color3fVertex3fvSUN (dynamic) */
"pp\0"
"glColor3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[9052]: Normal3fv (offset 57) */
+ /* _mesa_function_pool[9199]: Normal3fv (offset 57) */
"p\0"
"glNormal3fv\0"
"\0"
- /* _mesa_function_pool[9067]: GlobalAlphaFactorbSUN (dynamic) */
+ /* _mesa_function_pool[9214]: GlobalAlphaFactorbSUN (dynamic) */
"i\0"
"glGlobalAlphaFactorbSUN\0"
"\0"
- /* _mesa_function_pool[9094]: Color3us (offset 23) */
+ /* _mesa_function_pool[9241]: Color3us (offset 23) */
"iii\0"
"glColor3us\0"
"\0"
- /* _mesa_function_pool[9110]: ImageTransformParameterfvHP (dynamic) */
+ /* _mesa_function_pool[9257]: ImageTransformParameterfvHP (dynamic) */
"iip\0"
"glImageTransformParameterfvHP\0"
"\0"
- /* _mesa_function_pool[9145]: VertexAttrib4ivARB (will be remapped) */
+ /* _mesa_function_pool[9292]: VertexAttrib4ivARB (will be remapped) */
"ip\0"
"glVertexAttrib4iv\0"
"glVertexAttrib4ivARB\0"
"\0"
- /* _mesa_function_pool[9188]: End (offset 43) */
+ /* _mesa_function_pool[9335]: End (offset 43) */
"\0"
"glEnd\0"
"\0"
- /* _mesa_function_pool[9196]: VertexAttrib3fNV (will be remapped) */
+ /* _mesa_function_pool[9343]: VertexAttrib3fNV (will be remapped) */
"ifff\0"
"glVertexAttrib3fNV\0"
"\0"
- /* _mesa_function_pool[9221]: VertexAttribs2dvNV (will be remapped) */
+ /* _mesa_function_pool[9368]: VertexAttribs2dvNV (will be remapped) */
"iip\0"
"glVertexAttribs2dvNV\0"
"\0"
- /* _mesa_function_pool[9247]: GetQueryObjectui64vEXT (will be remapped) */
+ /* _mesa_function_pool[9394]: GetQueryObjectui64vEXT (will be remapped) */
"iip\0"
"glGetQueryObjectui64vEXT\0"
"\0"
- /* _mesa_function_pool[9277]: MultiTexCoord3fvARB (offset 395) */
+ /* _mesa_function_pool[9424]: MultiTexCoord3fvARB (offset 395) */
"ip\0"
"glMultiTexCoord3fv\0"
"glMultiTexCoord3fvARB\0"
"\0"
- /* _mesa_function_pool[9322]: SecondaryColor3dEXT (will be remapped) */
+ /* _mesa_function_pool[9469]: SecondaryColor3dEXT (will be remapped) */
"ddd\0"
"glSecondaryColor3d\0"
"glSecondaryColor3dEXT\0"
"\0"
- /* _mesa_function_pool[9368]: Color3ub (offset 19) */
+ /* _mesa_function_pool[9515]: Color3ub (offset 19) */
"iii\0"
"glColor3ub\0"
"\0"
- /* _mesa_function_pool[9384]: GetProgramParameterfvNV (will be remapped) */
+ /* _mesa_function_pool[9531]: GetProgramParameterfvNV (will be remapped) */
"iiip\0"
"glGetProgramParameterfvNV\0"
"\0"
- /* _mesa_function_pool[9416]: TangentPointerEXT (dynamic) */
+ /* _mesa_function_pool[9563]: TangentPointerEXT (dynamic) */
"iip\0"
"glTangentPointerEXT\0"
"\0"
- /* _mesa_function_pool[9441]: Color4fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[9588]: Color4fNormal3fVertex3fvSUN (dynamic) */
"ppp\0"
"glColor4fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[9476]: GetInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[9623]: GetInstrumentsSGIX (dynamic) */
"\0"
"glGetInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[9499]: Color3ui (offset 21) */
+ /* _mesa_function_pool[9646]: Color3ui (offset 21) */
"iii\0"
"glColor3ui\0"
"\0"
- /* _mesa_function_pool[9515]: EvalMapsNV (dynamic) */
+ /* _mesa_function_pool[9662]: EvalMapsNV (dynamic) */
"ii\0"
"glEvalMapsNV\0"
"\0"
- /* _mesa_function_pool[9532]: TexSubImage2D (offset 333) */
+ /* _mesa_function_pool[9679]: TexSubImage2D (offset 333) */
"iiiiiiiip\0"
"glTexSubImage2D\0"
"glTexSubImage2DEXT\0"
"\0"
- /* _mesa_function_pool[9578]: FragmentLightivSGIX (dynamic) */
+ /* _mesa_function_pool[9725]: FragmentLightivSGIX (dynamic) */
"iip\0"
"glFragmentLightivSGIX\0"
"\0"
- /* _mesa_function_pool[9605]: GetTexParameterPointervAPPLE (will be remapped) */
+ /* _mesa_function_pool[9752]: GetTexParameterPointervAPPLE (will be remapped) */
"iip\0"
"glGetTexParameterPointervAPPLE\0"
"\0"
- /* _mesa_function_pool[9641]: TexGenfv (offset 191) */
+ /* _mesa_function_pool[9788]: TexGenfv (offset 191) */
"iip\0"
"glTexGenfv\0"
"\0"
- /* _mesa_function_pool[9657]: GetTransformFeedbackVaryingEXT (will be remapped) */
+ /* _mesa_function_pool[9804]: GetTransformFeedbackVaryingEXT (will be remapped) */
"iiipppp\0"
"glGetTransformFeedbackVaryingEXT\0"
"glGetTransformFeedbackVarying\0"
"\0"
- /* _mesa_function_pool[9729]: VertexAttrib4bvARB (will be remapped) */
+ /* _mesa_function_pool[9876]: VertexAttrib4bvARB (will be remapped) */
"ip\0"
"glVertexAttrib4bv\0"
"glVertexAttrib4bvARB\0"
"\0"
- /* _mesa_function_pool[9772]: AlphaFragmentOp2ATI (will be remapped) */
+ /* _mesa_function_pool[9919]: AlphaFragmentOp2ATI (will be remapped) */
"iiiiiiiii\0"
"glAlphaFragmentOp2ATI\0"
"\0"
- /* _mesa_function_pool[9805]: GetIntegerIndexedvEXT (will be remapped) */
+ /* _mesa_function_pool[9952]: GetIntegerIndexedvEXT (will be remapped) */
"iip\0"
"glGetIntegerIndexedvEXT\0"
"\0"
- /* _mesa_function_pool[9834]: MultiTexCoord4sARB (offset 406) */
+ /* _mesa_function_pool[9981]: MultiTexCoord4sARB (offset 406) */
"iiiii\0"
"glMultiTexCoord4s\0"
"glMultiTexCoord4sARB\0"
"\0"
- /* _mesa_function_pool[9880]: GetFragmentMaterialivSGIX (dynamic) */
+ /* _mesa_function_pool[10027]: GetFragmentMaterialivSGIX (dynamic) */
"iip\0"
"glGetFragmentMaterialivSGIX\0"
"\0"
- /* _mesa_function_pool[9913]: WindowPos4dMESA (will be remapped) */
+ /* _mesa_function_pool[10060]: WindowPos4dMESA (will be remapped) */
"dddd\0"
"glWindowPos4dMESA\0"
"\0"
- /* _mesa_function_pool[9937]: WeightPointerARB (dynamic) */
+ /* _mesa_function_pool[10084]: WeightPointerARB (dynamic) */
"iiip\0"
"glWeightPointerARB\0"
"\0"
- /* _mesa_function_pool[9962]: WindowPos2dMESA (will be remapped) */
+ /* _mesa_function_pool[10109]: WindowPos2dMESA (will be remapped) */
"dd\0"
"glWindowPos2d\0"
"glWindowPos2dARB\0"
"glWindowPos2dMESA\0"
"\0"
- /* _mesa_function_pool[10015]: FramebufferTexture3DEXT (will be remapped) */
+ /* _mesa_function_pool[10162]: FramebufferTexture3DEXT (will be remapped) */
"iiiiii\0"
"glFramebufferTexture3D\0"
"glFramebufferTexture3DEXT\0"
"\0"
- /* _mesa_function_pool[10072]: BlendEquation (offset 337) */
+ /* _mesa_function_pool[10219]: BlendEquation (offset 337) */
"i\0"
"glBlendEquation\0"
"glBlendEquationEXT\0"
"\0"
- /* _mesa_function_pool[10110]: VertexAttrib3dNV (will be remapped) */
+ /* _mesa_function_pool[10257]: VertexAttrib3dNV (will be remapped) */
"iddd\0"
"glVertexAttrib3dNV\0"
"\0"
- /* _mesa_function_pool[10135]: VertexAttrib3dARB (will be remapped) */
+ /* _mesa_function_pool[10282]: VertexAttrib3dARB (will be remapped) */
"iddd\0"
"glVertexAttrib3d\0"
"glVertexAttrib3dARB\0"
"\0"
- /* _mesa_function_pool[10178]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[10325]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
"ppppp\0"
"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[10242]: VertexAttrib4fARB (will be remapped) */
+ /* _mesa_function_pool[10389]: VertexAttrib4fARB (will be remapped) */
"iffff\0"
"glVertexAttrib4f\0"
"glVertexAttrib4fARB\0"
"\0"
- /* _mesa_function_pool[10286]: GetError (offset 261) */
+ /* _mesa_function_pool[10433]: GetError (offset 261) */
"\0"
"glGetError\0"
"\0"
- /* _mesa_function_pool[10299]: IndexFuncEXT (dynamic) */
+ /* _mesa_function_pool[10446]: IndexFuncEXT (dynamic) */
"if\0"
"glIndexFuncEXT\0"
"\0"
- /* _mesa_function_pool[10318]: TexCoord3dv (offset 111) */
+ /* _mesa_function_pool[10465]: TexCoord3dv (offset 111) */
"p\0"
"glTexCoord3dv\0"
"\0"
- /* _mesa_function_pool[10335]: Indexdv (offset 45) */
+ /* _mesa_function_pool[10482]: Indexdv (offset 45) */
"p\0"
"glIndexdv\0"
"\0"
- /* _mesa_function_pool[10348]: FramebufferTexture2DEXT (will be remapped) */
+ /* _mesa_function_pool[10495]: FramebufferTexture2DEXT (will be remapped) */
"iiiii\0"
"glFramebufferTexture2D\0"
"glFramebufferTexture2DEXT\0"
"\0"
- /* _mesa_function_pool[10404]: Normal3s (offset 60) */
+ /* _mesa_function_pool[10551]: Normal3s (offset 60) */
"iii\0"
"glNormal3s\0"
"\0"
- /* _mesa_function_pool[10420]: GetObjectParameterivAPPLE (will be remapped) */
+ /* _mesa_function_pool[10567]: GetObjectParameterivAPPLE (will be remapped) */
"iiip\0"
"glGetObjectParameterivAPPLE\0"
"\0"
- /* _mesa_function_pool[10454]: PushName (offset 201) */
+ /* _mesa_function_pool[10601]: PushName (offset 201) */
"i\0"
"glPushName\0"
"\0"
- /* _mesa_function_pool[10468]: MultiTexCoord2dvARB (offset 385) */
+ /* _mesa_function_pool[10615]: MultiTexCoord2dvARB (offset 385) */
"ip\0"
"glMultiTexCoord2dv\0"
"glMultiTexCoord2dvARB\0"
"\0"
- /* _mesa_function_pool[10513]: CullParameterfvEXT (will be remapped) */
+ /* _mesa_function_pool[10660]: CullParameterfvEXT (will be remapped) */
"ip\0"
"glCullParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[10538]: Normal3i (offset 58) */
+ /* _mesa_function_pool[10685]: Normal3i (offset 58) */
"iii\0"
"glNormal3i\0"
"\0"
- /* _mesa_function_pool[10554]: ProgramNamedParameter4fvNV (will be remapped) */
+ /* _mesa_function_pool[10701]: ProgramNamedParameter4fvNV (will be remapped) */
"iipp\0"
"glProgramNamedParameter4fvNV\0"
"\0"
- /* _mesa_function_pool[10589]: SecondaryColorPointerEXT (will be remapped) */
+ /* _mesa_function_pool[10736]: SecondaryColorPointerEXT (will be remapped) */
"iiip\0"
"glSecondaryColorPointer\0"
"glSecondaryColorPointerEXT\0"
"\0"
- /* _mesa_function_pool[10646]: VertexAttrib4fvARB (will be remapped) */
+ /* _mesa_function_pool[10793]: VertexAttrib4fvARB (will be remapped) */
"ip\0"
"glVertexAttrib4fv\0"
"glVertexAttrib4fvARB\0"
"\0"
- /* _mesa_function_pool[10689]: ColorPointerListIBM (dynamic) */
+ /* _mesa_function_pool[10836]: ColorPointerListIBM (dynamic) */
"iiipi\0"
"glColorPointerListIBM\0"
"\0"
- /* _mesa_function_pool[10718]: GetActiveUniformARB (will be remapped) */
+ /* _mesa_function_pool[10865]: GetActiveUniformARB (will be remapped) */
"iiipppp\0"
"glGetActiveUniform\0"
"glGetActiveUniformARB\0"
"\0"
- /* _mesa_function_pool[10768]: ImageTransformParameteriHP (dynamic) */
+ /* _mesa_function_pool[10915]: ImageTransformParameteriHP (dynamic) */
"iii\0"
"glImageTransformParameteriHP\0"
"\0"
- /* _mesa_function_pool[10802]: Normal3b (offset 52) */
+ /* _mesa_function_pool[10949]: Normal3b (offset 52) */
"iii\0"
"glNormal3b\0"
"\0"
- /* _mesa_function_pool[10818]: Normal3d (offset 54) */
+ /* _mesa_function_pool[10965]: Normal3d (offset 54) */
"ddd\0"
"glNormal3d\0"
"\0"
- /* _mesa_function_pool[10834]: Normal3f (offset 56) */
+ /* _mesa_function_pool[10981]: Normal3f (offset 56) */
"fff\0"
"glNormal3f\0"
"\0"
- /* _mesa_function_pool[10850]: MultiTexCoord1svARB (offset 383) */
+ /* _mesa_function_pool[10997]: MultiTexCoord1svARB (offset 383) */
"ip\0"
"glMultiTexCoord1sv\0"
"glMultiTexCoord1svARB\0"
"\0"
- /* _mesa_function_pool[10895]: Indexi (offset 48) */
+ /* _mesa_function_pool[11042]: Indexi (offset 48) */
"i\0"
"glIndexi\0"
"\0"
- /* _mesa_function_pool[10907]: EGLImageTargetTexture2DOES (will be remapped) */
+ /* _mesa_function_pool[11054]: EGLImageTargetTexture2DOES (will be remapped) */
"ip\0"
"glEGLImageTargetTexture2DOES\0"
"\0"
- /* _mesa_function_pool[10940]: EndQueryARB (will be remapped) */
+ /* _mesa_function_pool[11087]: EndQueryARB (will be remapped) */
"i\0"
"glEndQuery\0"
"glEndQueryARB\0"
"\0"
- /* _mesa_function_pool[10968]: DeleteFencesNV (will be remapped) */
+ /* _mesa_function_pool[11115]: DeleteFencesNV (will be remapped) */
"ip\0"
"glDeleteFencesNV\0"
"\0"
- /* _mesa_function_pool[10989]: DeformationMap3dSGIX (dynamic) */
- "iddiiddiiddiip\0"
- "glDeformationMap3dSGIX\0"
- "\0"
- /* _mesa_function_pool[11028]: BindBufferRangeEXT (will be remapped) */
+ /* _mesa_function_pool[11136]: BindBufferRangeEXT (will be remapped) */
"iiiii\0"
"glBindBufferRangeEXT\0"
"glBindBufferRange\0"
"\0"
- /* _mesa_function_pool[11074]: DepthMask (offset 211) */
+ /* _mesa_function_pool[11182]: DepthMask (offset 211) */
"i\0"
"glDepthMask\0"
"\0"
- /* _mesa_function_pool[11089]: IsShader (will be remapped) */
+ /* _mesa_function_pool[11197]: IsShader (will be remapped) */
"i\0"
"glIsShader\0"
"\0"
- /* _mesa_function_pool[11103]: Indexf (offset 46) */
+ /* _mesa_function_pool[11211]: Indexf (offset 46) */
"f\0"
"glIndexf\0"
"\0"
- /* _mesa_function_pool[11115]: GetImageTransformParameterivHP (dynamic) */
+ /* _mesa_function_pool[11223]: GetImageTransformParameterivHP (dynamic) */
"iip\0"
"glGetImageTransformParameterivHP\0"
"\0"
- /* _mesa_function_pool[11153]: Indexd (offset 44) */
+ /* _mesa_function_pool[11261]: Indexd (offset 44) */
"d\0"
"glIndexd\0"
"\0"
- /* _mesa_function_pool[11165]: GetMaterialiv (offset 270) */
+ /* _mesa_function_pool[11273]: GetMaterialiv (offset 270) */
"iip\0"
"glGetMaterialiv\0"
"\0"
- /* _mesa_function_pool[11186]: StencilOp (offset 244) */
+ /* _mesa_function_pool[11294]: StencilOp (offset 244) */
"iii\0"
"glStencilOp\0"
"\0"
- /* _mesa_function_pool[11203]: WindowPos4ivMESA (will be remapped) */
+ /* _mesa_function_pool[11311]: WindowPos4ivMESA (will be remapped) */
"p\0"
"glWindowPos4ivMESA\0"
"\0"
- /* _mesa_function_pool[11225]: MultiTexCoord3svARB (offset 399) */
+ /* _mesa_function_pool[11333]: FramebufferTextureLayer (dynamic) */
+ "iiiii\0"
+ "glFramebufferTextureLayerARB\0"
+ "\0"
+ /* _mesa_function_pool[11369]: MultiTexCoord3svARB (offset 399) */
"ip\0"
"glMultiTexCoord3sv\0"
"glMultiTexCoord3svARB\0"
"\0"
- /* _mesa_function_pool[11270]: TexEnvfv (offset 185) */
+ /* _mesa_function_pool[11414]: TexEnvfv (offset 185) */
"iip\0"
"glTexEnvfv\0"
"\0"
- /* _mesa_function_pool[11286]: MultiTexCoord4iARB (offset 404) */
+ /* _mesa_function_pool[11430]: MultiTexCoord4iARB (offset 404) */
"iiiii\0"
"glMultiTexCoord4i\0"
"glMultiTexCoord4iARB\0"
"\0"
- /* _mesa_function_pool[11332]: Indexs (offset 50) */
+ /* _mesa_function_pool[11476]: Indexs (offset 50) */
"i\0"
"glIndexs\0"
"\0"
- /* _mesa_function_pool[11344]: Binormal3ivEXT (dynamic) */
+ /* _mesa_function_pool[11488]: Binormal3ivEXT (dynamic) */
"p\0"
"glBinormal3ivEXT\0"
"\0"
- /* _mesa_function_pool[11364]: ResizeBuffersMESA (will be remapped) */
+ /* _mesa_function_pool[11508]: ResizeBuffersMESA (will be remapped) */
"\0"
"glResizeBuffersMESA\0"
"\0"
- /* _mesa_function_pool[11386]: GetUniformivARB (will be remapped) */
+ /* _mesa_function_pool[11530]: GetUniformivARB (will be remapped) */
"iip\0"
"glGetUniformiv\0"
"glGetUniformivARB\0"
"\0"
- /* _mesa_function_pool[11424]: PixelTexGenParameteriSGIS (will be remapped) */
+ /* _mesa_function_pool[11568]: PixelTexGenParameteriSGIS (will be remapped) */
"ii\0"
"glPixelTexGenParameteriSGIS\0"
"\0"
- /* _mesa_function_pool[11456]: VertexPointervINTEL (dynamic) */
+ /* _mesa_function_pool[11600]: VertexPointervINTEL (dynamic) */
"iip\0"
"glVertexPointervINTEL\0"
"\0"
- /* _mesa_function_pool[11483]: Vertex2i (offset 130) */
+ /* _mesa_function_pool[11627]: Vertex2i (offset 130) */
"ii\0"
"glVertex2i\0"
"\0"
- /* _mesa_function_pool[11498]: LoadMatrixf (offset 291) */
+ /* _mesa_function_pool[11642]: LoadMatrixf (offset 291) */
"p\0"
"glLoadMatrixf\0"
"\0"
- /* _mesa_function_pool[11515]: Vertex2f (offset 128) */
+ /* _mesa_function_pool[11659]: Vertex2f (offset 128) */
"ff\0"
"glVertex2f\0"
"\0"
- /* _mesa_function_pool[11530]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[11674]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */
"pppp\0"
"glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[11583]: Color4bv (offset 26) */
+ /* _mesa_function_pool[11727]: Color4bv (offset 26) */
"p\0"
"glColor4bv\0"
"\0"
- /* _mesa_function_pool[11597]: VertexPointer (offset 321) */
+ /* _mesa_function_pool[11741]: VertexPointer (offset 321) */
"iiip\0"
"glVertexPointer\0"
"\0"
- /* _mesa_function_pool[11619]: SecondaryColor3uiEXT (will be remapped) */
+ /* _mesa_function_pool[11763]: SecondaryColor3uiEXT (will be remapped) */
"iii\0"
"glSecondaryColor3ui\0"
"glSecondaryColor3uiEXT\0"
"\0"
- /* _mesa_function_pool[11667]: StartInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[11811]: StartInstrumentsSGIX (dynamic) */
"\0"
"glStartInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[11692]: SecondaryColor3usvEXT (will be remapped) */
+ /* _mesa_function_pool[11836]: SecondaryColor3usvEXT (will be remapped) */
"p\0"
"glSecondaryColor3usv\0"
"glSecondaryColor3usvEXT\0"
"\0"
- /* _mesa_function_pool[11740]: VertexAttrib2fvNV (will be remapped) */
+ /* _mesa_function_pool[11884]: VertexAttrib2fvNV (will be remapped) */
"ip\0"
"glVertexAttrib2fvNV\0"
"\0"
- /* _mesa_function_pool[11764]: ProgramLocalParameter4dvARB (will be remapped) */
+ /* _mesa_function_pool[11908]: ProgramLocalParameter4dvARB (will be remapped) */
"iip\0"
"glProgramLocalParameter4dvARB\0"
"\0"
- /* _mesa_function_pool[11799]: DeleteLists (offset 4) */
+ /* _mesa_function_pool[11943]: DeleteLists (offset 4) */
"ii\0"
"glDeleteLists\0"
"\0"
- /* _mesa_function_pool[11817]: LogicOp (offset 242) */
+ /* _mesa_function_pool[11961]: LogicOp (offset 242) */
"i\0"
"glLogicOp\0"
"\0"
- /* _mesa_function_pool[11830]: MatrixIndexuivARB (dynamic) */
+ /* _mesa_function_pool[11974]: MatrixIndexuivARB (dynamic) */
"ip\0"
"glMatrixIndexuivARB\0"
"\0"
- /* _mesa_function_pool[11854]: Vertex2s (offset 132) */
+ /* _mesa_function_pool[11998]: Vertex2s (offset 132) */
"ii\0"
"glVertex2s\0"
"\0"
- /* _mesa_function_pool[11869]: RenderbufferStorageMultisample (will be remapped) */
+ /* _mesa_function_pool[12013]: RenderbufferStorageMultisample (will be remapped) */
"iiiii\0"
"glRenderbufferStorageMultisample\0"
"glRenderbufferStorageMultisampleEXT\0"
"\0"
- /* _mesa_function_pool[11945]: TexCoord4fv (offset 121) */
+ /* _mesa_function_pool[12089]: TexCoord4fv (offset 121) */
"p\0"
"glTexCoord4fv\0"
"\0"
- /* _mesa_function_pool[11962]: Tangent3sEXT (dynamic) */
+ /* _mesa_function_pool[12106]: Tangent3sEXT (dynamic) */
"iii\0"
"glTangent3sEXT\0"
"\0"
- /* _mesa_function_pool[11982]: GlobalAlphaFactorfSUN (dynamic) */
+ /* _mesa_function_pool[12126]: GlobalAlphaFactorfSUN (dynamic) */
"f\0"
"glGlobalAlphaFactorfSUN\0"
"\0"
- /* _mesa_function_pool[12009]: MultiTexCoord3iARB (offset 396) */
+ /* _mesa_function_pool[12153]: MultiTexCoord3iARB (offset 396) */
"iiii\0"
"glMultiTexCoord3i\0"
"glMultiTexCoord3iARB\0"
"\0"
- /* _mesa_function_pool[12054]: IsProgram (will be remapped) */
+ /* _mesa_function_pool[12198]: IsProgram (will be remapped) */
"i\0"
"glIsProgram\0"
"\0"
- /* _mesa_function_pool[12069]: TexCoordPointerListIBM (dynamic) */
+ /* _mesa_function_pool[12213]: TexCoordPointerListIBM (dynamic) */
"iiipi\0"
"glTexCoordPointerListIBM\0"
"\0"
- /* _mesa_function_pool[12101]: GlobalAlphaFactorusSUN (dynamic) */
+ /* _mesa_function_pool[12245]: GlobalAlphaFactorusSUN (dynamic) */
"i\0"
"glGlobalAlphaFactorusSUN\0"
"\0"
- /* _mesa_function_pool[12129]: VertexAttrib2dvNV (will be remapped) */
+ /* _mesa_function_pool[12273]: VertexAttrib2dvNV (will be remapped) */
"ip\0"
"glVertexAttrib2dvNV\0"
"\0"
- /* _mesa_function_pool[12153]: FramebufferRenderbufferEXT (will be remapped) */
+ /* _mesa_function_pool[12297]: FramebufferRenderbufferEXT (will be remapped) */
"iiii\0"
"glFramebufferRenderbuffer\0"
"glFramebufferRenderbufferEXT\0"
"\0"
- /* _mesa_function_pool[12214]: VertexAttrib1dvNV (will be remapped) */
+ /* _mesa_function_pool[12358]: VertexAttrib1dvNV (will be remapped) */
"ip\0"
"glVertexAttrib1dvNV\0"
"\0"
- /* _mesa_function_pool[12238]: GenTextures (offset 328) */
+ /* _mesa_function_pool[12382]: GenTextures (offset 328) */
"ip\0"
"glGenTextures\0"
"glGenTexturesEXT\0"
"\0"
- /* _mesa_function_pool[12273]: SetFenceNV (will be remapped) */
+ /* _mesa_function_pool[12417]: FramebufferTextureARB (will be remapped) */
+ "iiii\0"
+ "glFramebufferTextureARB\0"
+ "\0"
+ /* _mesa_function_pool[12447]: SetFenceNV (will be remapped) */
"ii\0"
"glSetFenceNV\0"
"\0"
- /* _mesa_function_pool[12290]: FramebufferTexture1DEXT (will be remapped) */
+ /* _mesa_function_pool[12464]: FramebufferTexture1DEXT (will be remapped) */
"iiiii\0"
"glFramebufferTexture1D\0"
"glFramebufferTexture1DEXT\0"
"\0"
- /* _mesa_function_pool[12346]: GetCombinerOutputParameterivNV (will be remapped) */
+ /* _mesa_function_pool[12520]: GetCombinerOutputParameterivNV (will be remapped) */
"iiip\0"
"glGetCombinerOutputParameterivNV\0"
"\0"
- /* _mesa_function_pool[12385]: PixelTexGenParameterivSGIS (will be remapped) */
+ /* _mesa_function_pool[12559]: MultiModeDrawArraysIBM (will be remapped) */
+ "pppii\0"
+ "glMultiModeDrawArraysIBM\0"
+ "\0"
+ /* _mesa_function_pool[12591]: PixelTexGenParameterivSGIS (will be remapped) */
"ip\0"
"glPixelTexGenParameterivSGIS\0"
"\0"
- /* _mesa_function_pool[12418]: TextureNormalEXT (dynamic) */
+ /* _mesa_function_pool[12624]: TextureNormalEXT (dynamic) */
"i\0"
"glTextureNormalEXT\0"
"\0"
- /* _mesa_function_pool[12440]: IndexPointerListIBM (dynamic) */
+ /* _mesa_function_pool[12646]: IndexPointerListIBM (dynamic) */
"iipi\0"
"glIndexPointerListIBM\0"
"\0"
- /* _mesa_function_pool[12468]: WeightfvARB (dynamic) */
+ /* _mesa_function_pool[12674]: WeightfvARB (dynamic) */
"ip\0"
"glWeightfvARB\0"
"\0"
- /* _mesa_function_pool[12486]: RasterPos2sv (offset 69) */
+ /* _mesa_function_pool[12692]: GetCombinerOutputParameterfvNV (will be remapped) */
+ "iiip\0"
+ "glGetCombinerOutputParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[12731]: RasterPos2sv (offset 69) */
"p\0"
"glRasterPos2sv\0"
"\0"
- /* _mesa_function_pool[12504]: Color4ubv (offset 36) */
+ /* _mesa_function_pool[12749]: Color4ubv (offset 36) */
"p\0"
"glColor4ubv\0"
"\0"
- /* _mesa_function_pool[12519]: DrawBuffer (offset 202) */
+ /* _mesa_function_pool[12764]: DrawBuffer (offset 202) */
"i\0"
"glDrawBuffer\0"
"\0"
- /* _mesa_function_pool[12535]: TexCoord2fv (offset 105) */
+ /* _mesa_function_pool[12780]: TexCoord2fv (offset 105) */
"p\0"
"glTexCoord2fv\0"
"\0"
- /* _mesa_function_pool[12552]: WindowPos4fMESA (will be remapped) */
+ /* _mesa_function_pool[12797]: WindowPos4fMESA (will be remapped) */
"ffff\0"
"glWindowPos4fMESA\0"
"\0"
- /* _mesa_function_pool[12576]: TexCoord1sv (offset 101) */
+ /* _mesa_function_pool[12821]: TexCoord1sv (offset 101) */
"p\0"
"glTexCoord1sv\0"
"\0"
- /* _mesa_function_pool[12593]: WindowPos3dvMESA (will be remapped) */
+ /* _mesa_function_pool[12838]: WindowPos3dvMESA (will be remapped) */
"p\0"
"glWindowPos3dv\0"
"glWindowPos3dvARB\0"
"glWindowPos3dvMESA\0"
"\0"
- /* _mesa_function_pool[12648]: DepthFunc (offset 245) */
+ /* _mesa_function_pool[12893]: DepthFunc (offset 245) */
"i\0"
"glDepthFunc\0"
"\0"
- /* _mesa_function_pool[12663]: PixelMapusv (offset 253) */
+ /* _mesa_function_pool[12908]: PixelMapusv (offset 253) */
"iip\0"
"glPixelMapusv\0"
"\0"
- /* _mesa_function_pool[12682]: GetQueryObjecti64vEXT (will be remapped) */
+ /* _mesa_function_pool[12927]: GetQueryObjecti64vEXT (will be remapped) */
"iip\0"
"glGetQueryObjecti64vEXT\0"
"\0"
- /* _mesa_function_pool[12711]: MultiTexCoord1dARB (offset 376) */
+ /* _mesa_function_pool[12956]: MultiTexCoord1dARB (offset 376) */
"id\0"
"glMultiTexCoord1d\0"
"glMultiTexCoord1dARB\0"
"\0"
- /* _mesa_function_pool[12754]: PointParameterivNV (will be remapped) */
+ /* _mesa_function_pool[12999]: PointParameterivNV (will be remapped) */
"ip\0"
"glPointParameteriv\0"
"glPointParameterivNV\0"
"\0"
- /* _mesa_function_pool[12798]: BlendFunc (offset 241) */
+ /* _mesa_function_pool[13043]: BlendFunc (offset 241) */
"ii\0"
"glBlendFunc\0"
"\0"
- /* _mesa_function_pool[12814]: EndTransformFeedbackEXT (will be remapped) */
+ /* _mesa_function_pool[13059]: EndTransformFeedbackEXT (will be remapped) */
"\0"
"glEndTransformFeedbackEXT\0"
"glEndTransformFeedback\0"
"\0"
- /* _mesa_function_pool[12865]: Uniform2fvARB (will be remapped) */
+ /* _mesa_function_pool[13110]: Uniform2fvARB (will be remapped) */
"iip\0"
"glUniform2fv\0"
"glUniform2fvARB\0"
"\0"
- /* _mesa_function_pool[12899]: BufferParameteriAPPLE (will be remapped) */
+ /* _mesa_function_pool[13144]: BufferParameteriAPPLE (will be remapped) */
"iii\0"
"glBufferParameteriAPPLE\0"
"\0"
- /* _mesa_function_pool[12928]: MultiTexCoord3dvARB (offset 393) */
+ /* _mesa_function_pool[13173]: MultiTexCoord3dvARB (offset 393) */
"ip\0"
"glMultiTexCoord3dv\0"
"glMultiTexCoord3dvARB\0"
"\0"
- /* _mesa_function_pool[12973]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[13218]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */
"pppp\0"
"glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[13029]: DeleteObjectARB (will be remapped) */
+ /* _mesa_function_pool[13274]: DeleteObjectARB (will be remapped) */
"i\0"
"glDeleteObjectARB\0"
"\0"
- /* _mesa_function_pool[13050]: MatrixIndexPointerARB (dynamic) */
+ /* _mesa_function_pool[13295]: MatrixIndexPointerARB (dynamic) */
"iiip\0"
"glMatrixIndexPointerARB\0"
"\0"
- /* _mesa_function_pool[13080]: ProgramNamedParameter4dvNV (will be remapped) */
+ /* _mesa_function_pool[13325]: ProgramNamedParameter4dvNV (will be remapped) */
"iipp\0"
"glProgramNamedParameter4dvNV\0"
"\0"
- /* _mesa_function_pool[13115]: Tangent3fvEXT (dynamic) */
+ /* _mesa_function_pool[13360]: Tangent3fvEXT (dynamic) */
"p\0"
"glTangent3fvEXT\0"
"\0"
- /* _mesa_function_pool[13134]: Flush (offset 217) */
+ /* _mesa_function_pool[13379]: Flush (offset 217) */
"\0"
"glFlush\0"
"\0"
- /* _mesa_function_pool[13144]: Color4uiv (offset 38) */
+ /* _mesa_function_pool[13389]: Color4uiv (offset 38) */
"p\0"
"glColor4uiv\0"
"\0"
- /* _mesa_function_pool[13159]: GenVertexArrays (will be remapped) */
+ /* _mesa_function_pool[13404]: GenVertexArrays (will be remapped) */
"ip\0"
"glGenVertexArrays\0"
"\0"
- /* _mesa_function_pool[13181]: RasterPos3sv (offset 77) */
+ /* _mesa_function_pool[13426]: RasterPos3sv (offset 77) */
"p\0"
"glRasterPos3sv\0"
"\0"
- /* _mesa_function_pool[13199]: BindFramebufferEXT (will be remapped) */
+ /* _mesa_function_pool[13444]: BindFramebufferEXT (will be remapped) */
"ii\0"
"glBindFramebuffer\0"
"glBindFramebufferEXT\0"
"\0"
- /* _mesa_function_pool[13242]: ReferencePlaneSGIX (dynamic) */
+ /* _mesa_function_pool[13487]: ReferencePlaneSGIX (dynamic) */
"p\0"
"glReferencePlaneSGIX\0"
"\0"
- /* _mesa_function_pool[13266]: PushAttrib (offset 219) */
+ /* _mesa_function_pool[13511]: PushAttrib (offset 219) */
"i\0"
"glPushAttrib\0"
"\0"
- /* _mesa_function_pool[13282]: RasterPos2i (offset 66) */
+ /* _mesa_function_pool[13527]: RasterPos2i (offset 66) */
"ii\0"
"glRasterPos2i\0"
"\0"
- /* _mesa_function_pool[13300]: ValidateProgramARB (will be remapped) */
+ /* _mesa_function_pool[13545]: ValidateProgramARB (will be remapped) */
"i\0"
"glValidateProgram\0"
"glValidateProgramARB\0"
"\0"
- /* _mesa_function_pool[13342]: TexParameteriv (offset 181) */
+ /* _mesa_function_pool[13587]: TexParameteriv (offset 181) */
"iip\0"
"glTexParameteriv\0"
"\0"
- /* _mesa_function_pool[13364]: UnlockArraysEXT (will be remapped) */
+ /* _mesa_function_pool[13609]: UnlockArraysEXT (will be remapped) */
"\0"
"glUnlockArraysEXT\0"
"\0"
- /* _mesa_function_pool[13384]: TexCoord2fColor3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[13629]: TexCoord2fColor3fVertex3fSUN (dynamic) */
"ffffffff\0"
"glTexCoord2fColor3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[13425]: WindowPos3fvMESA (will be remapped) */
+ /* _mesa_function_pool[13670]: WindowPos3fvMESA (will be remapped) */
"p\0"
"glWindowPos3fv\0"
"glWindowPos3fvARB\0"
"glWindowPos3fvMESA\0"
"\0"
- /* _mesa_function_pool[13480]: RasterPos2f (offset 64) */
+ /* _mesa_function_pool[13725]: RasterPos2f (offset 64) */
"ff\0"
"glRasterPos2f\0"
"\0"
- /* _mesa_function_pool[13498]: VertexAttrib1svNV (will be remapped) */
+ /* _mesa_function_pool[13743]: VertexAttrib1svNV (will be remapped) */
"ip\0"
"glVertexAttrib1svNV\0"
"\0"
- /* _mesa_function_pool[13522]: RasterPos2d (offset 62) */
+ /* _mesa_function_pool[13767]: RasterPos2d (offset 62) */
"dd\0"
"glRasterPos2d\0"
"\0"
- /* _mesa_function_pool[13540]: RasterPos3fv (offset 73) */
+ /* _mesa_function_pool[13785]: RasterPos3fv (offset 73) */
"p\0"
"glRasterPos3fv\0"
"\0"
- /* _mesa_function_pool[13558]: CopyTexSubImage3D (offset 373) */
+ /* _mesa_function_pool[13803]: CopyTexSubImage3D (offset 373) */
"iiiiiiiii\0"
"glCopyTexSubImage3D\0"
"glCopyTexSubImage3DEXT\0"
"\0"
- /* _mesa_function_pool[13612]: VertexAttrib2dARB (will be remapped) */
+ /* _mesa_function_pool[13857]: VertexAttrib2dARB (will be remapped) */
"idd\0"
"glVertexAttrib2d\0"
"glVertexAttrib2dARB\0"
"\0"
- /* _mesa_function_pool[13654]: Color4ub (offset 35) */
+ /* _mesa_function_pool[13899]: Color4ub (offset 35) */
"iiii\0"
"glColor4ub\0"
"\0"
- /* _mesa_function_pool[13671]: GetInteger64v (will be remapped) */
+ /* _mesa_function_pool[13916]: GetInteger64v (will be remapped) */
"ip\0"
"glGetInteger64v\0"
"\0"
- /* _mesa_function_pool[13691]: TextureColorMaskSGIS (dynamic) */
+ /* _mesa_function_pool[13936]: TextureColorMaskSGIS (dynamic) */
"iiii\0"
"glTextureColorMaskSGIS\0"
"\0"
- /* _mesa_function_pool[13720]: RasterPos2s (offset 68) */
+ /* _mesa_function_pool[13965]: RasterPos2s (offset 68) */
"ii\0"
"glRasterPos2s\0"
"\0"
- /* _mesa_function_pool[13738]: GetColorTable (offset 343) */
+ /* _mesa_function_pool[13983]: GetColorTable (offset 343) */
"iiip\0"
"glGetColorTable\0"
"glGetColorTableSGI\0"
"glGetColorTableEXT\0"
"\0"
- /* _mesa_function_pool[13798]: SelectBuffer (offset 195) */
+ /* _mesa_function_pool[14043]: SelectBuffer (offset 195) */
"ip\0"
"glSelectBuffer\0"
"\0"
- /* _mesa_function_pool[13817]: Indexiv (offset 49) */
+ /* _mesa_function_pool[14062]: Indexiv (offset 49) */
"p\0"
"glIndexiv\0"
"\0"
- /* _mesa_function_pool[13830]: TexCoord3i (offset 114) */
+ /* _mesa_function_pool[14075]: TexCoord3i (offset 114) */
"iii\0"
"glTexCoord3i\0"
"\0"
- /* _mesa_function_pool[13848]: CopyColorTable (offset 342) */
+ /* _mesa_function_pool[14093]: CopyColorTable (offset 342) */
"iiiii\0"
"glCopyColorTable\0"
"glCopyColorTableSGI\0"
"\0"
- /* _mesa_function_pool[13892]: GetHistogramParameterfv (offset 362) */
+ /* _mesa_function_pool[14137]: GetHistogramParameterfv (offset 362) */
"iip\0"
"glGetHistogramParameterfv\0"
"glGetHistogramParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[13952]: Frustum (offset 289) */
+ /* _mesa_function_pool[14197]: Frustum (offset 289) */
"dddddd\0"
"glFrustum\0"
"\0"
- /* _mesa_function_pool[13970]: GetString (offset 275) */
+ /* _mesa_function_pool[14215]: GetString (offset 275) */
"i\0"
"glGetString\0"
"\0"
- /* _mesa_function_pool[13985]: ColorPointervINTEL (dynamic) */
+ /* _mesa_function_pool[14230]: ColorPointervINTEL (dynamic) */
"iip\0"
"glColorPointervINTEL\0"
"\0"
- /* _mesa_function_pool[14011]: TexEnvf (offset 184) */
+ /* _mesa_function_pool[14256]: TexEnvf (offset 184) */
"iif\0"
"glTexEnvf\0"
"\0"
- /* _mesa_function_pool[14026]: TexCoord3d (offset 110) */
+ /* _mesa_function_pool[14271]: TexCoord3d (offset 110) */
"ddd\0"
"glTexCoord3d\0"
"\0"
- /* _mesa_function_pool[14044]: AlphaFragmentOp1ATI (will be remapped) */
+ /* _mesa_function_pool[14289]: AlphaFragmentOp1ATI (will be remapped) */
"iiiiii\0"
"glAlphaFragmentOp1ATI\0"
"\0"
- /* _mesa_function_pool[14074]: TexCoord3f (offset 112) */
+ /* _mesa_function_pool[14319]: TexCoord3f (offset 112) */
"fff\0"
"glTexCoord3f\0"
"\0"
- /* _mesa_function_pool[14092]: MultiTexCoord3ivARB (offset 397) */
+ /* _mesa_function_pool[14337]: MultiTexCoord3ivARB (offset 397) */
"ip\0"
"glMultiTexCoord3iv\0"
"glMultiTexCoord3ivARB\0"
"\0"
- /* _mesa_function_pool[14137]: MultiTexCoord2sARB (offset 390) */
+ /* _mesa_function_pool[14382]: MultiTexCoord2sARB (offset 390) */
"iii\0"
"glMultiTexCoord2s\0"
"glMultiTexCoord2sARB\0"
"\0"
- /* _mesa_function_pool[14181]: VertexAttrib1dvARB (will be remapped) */
+ /* _mesa_function_pool[14426]: VertexAttrib1dvARB (will be remapped) */
"ip\0"
"glVertexAttrib1dv\0"
"glVertexAttrib1dvARB\0"
"\0"
- /* _mesa_function_pool[14224]: DeleteTextures (offset 327) */
+ /* _mesa_function_pool[14469]: DeleteTextures (offset 327) */
"ip\0"
"glDeleteTextures\0"
"glDeleteTexturesEXT\0"
"\0"
- /* _mesa_function_pool[14265]: TexCoordPointerEXT (will be remapped) */
+ /* _mesa_function_pool[14510]: TexCoordPointerEXT (will be remapped) */
"iiiip\0"
"glTexCoordPointerEXT\0"
"\0"
- /* _mesa_function_pool[14293]: TexSubImage4DSGIS (dynamic) */
+ /* _mesa_function_pool[14538]: TexSubImage4DSGIS (dynamic) */
"iiiiiiiiiiiip\0"
"glTexSubImage4DSGIS\0"
"\0"
- /* _mesa_function_pool[14328]: TexCoord3s (offset 116) */
+ /* _mesa_function_pool[14573]: TexCoord3s (offset 116) */
"iii\0"
"glTexCoord3s\0"
"\0"
- /* _mesa_function_pool[14346]: GetTexLevelParameteriv (offset 285) */
+ /* _mesa_function_pool[14591]: GetTexLevelParameteriv (offset 285) */
"iiip\0"
"glGetTexLevelParameteriv\0"
"\0"
- /* _mesa_function_pool[14377]: DrawArraysInstanced (will be remapped) */
+ /* _mesa_function_pool[14622]: DrawArraysInstanced (will be remapped) */
"iiii\0"
"glDrawArraysInstanced\0"
"glDrawArraysInstancedARB\0"
"glDrawArraysInstancedEXT\0"
"\0"
- /* _mesa_function_pool[14455]: CombinerStageParameterfvNV (dynamic) */
+ /* _mesa_function_pool[14700]: CombinerStageParameterfvNV (dynamic) */
"iip\0"
"glCombinerStageParameterfvNV\0"
"\0"
- /* _mesa_function_pool[14489]: StopInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[14734]: StopInstrumentsSGIX (dynamic) */
"i\0"
"glStopInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[14514]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */
+ /* _mesa_function_pool[14759]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */
"fffffffffffffff\0"
"glTexCoord4fColor4fNormal3fVertex4fSUN\0"
"\0"
- /* _mesa_function_pool[14570]: ClearAccum (offset 204) */
+ /* _mesa_function_pool[14815]: ClearAccum (offset 204) */
"ffff\0"
"glClearAccum\0"
"\0"
- /* _mesa_function_pool[14589]: DeformSGIX (dynamic) */
+ /* _mesa_function_pool[14834]: DeformSGIX (dynamic) */
"i\0"
"glDeformSGIX\0"
"\0"
- /* _mesa_function_pool[14605]: GetVertexAttribfvARB (will be remapped) */
+ /* _mesa_function_pool[14850]: GetVertexAttribfvARB (will be remapped) */
"iip\0"
"glGetVertexAttribfv\0"
"glGetVertexAttribfvARB\0"
"\0"
- /* _mesa_function_pool[14653]: SecondaryColor3ivEXT (will be remapped) */
+ /* _mesa_function_pool[14898]: SecondaryColor3ivEXT (will be remapped) */
"p\0"
"glSecondaryColor3iv\0"
"glSecondaryColor3ivEXT\0"
"\0"
- /* _mesa_function_pool[14699]: TexCoord4iv (offset 123) */
+ /* _mesa_function_pool[14944]: TexCoord4iv (offset 123) */
"p\0"
"glTexCoord4iv\0"
"\0"
- /* _mesa_function_pool[14716]: UniformMatrix4x2fv (will be remapped) */
+ /* _mesa_function_pool[14961]: UniformMatrix4x2fv (will be remapped) */
"iiip\0"
"glUniformMatrix4x2fv\0"
"\0"
- /* _mesa_function_pool[14743]: GetDetailTexFuncSGIS (dynamic) */
+ /* _mesa_function_pool[14988]: GetDetailTexFuncSGIS (dynamic) */
"ip\0"
"glGetDetailTexFuncSGIS\0"
"\0"
- /* _mesa_function_pool[14770]: GetCombinerStageParameterfvNV (dynamic) */
+ /* _mesa_function_pool[15015]: GetCombinerStageParameterfvNV (dynamic) */
"iip\0"
"glGetCombinerStageParameterfvNV\0"
"\0"
- /* _mesa_function_pool[14807]: PolygonOffset (offset 319) */
+ /* _mesa_function_pool[15052]: PolygonOffset (offset 319) */
"ff\0"
"glPolygonOffset\0"
"\0"
- /* _mesa_function_pool[14827]: BindVertexArray (will be remapped) */
+ /* _mesa_function_pool[15072]: BindVertexArray (will be remapped) */
"i\0"
"glBindVertexArray\0"
"\0"
- /* _mesa_function_pool[14848]: Color4ubVertex2fvSUN (dynamic) */
+ /* _mesa_function_pool[15093]: Color4ubVertex2fvSUN (dynamic) */
"pp\0"
"glColor4ubVertex2fvSUN\0"
"\0"
- /* _mesa_function_pool[14875]: Rectd (offset 86) */
+ /* _mesa_function_pool[15120]: Rectd (offset 86) */
"dddd\0"
"glRectd\0"
"\0"
- /* _mesa_function_pool[14889]: TexFilterFuncSGIS (dynamic) */
+ /* _mesa_function_pool[15134]: TexFilterFuncSGIS (dynamic) */
"iiip\0"
"glTexFilterFuncSGIS\0"
"\0"
- /* _mesa_function_pool[14915]: SampleMaskSGIS (will be remapped) */
+ /* _mesa_function_pool[15160]: SampleMaskSGIS (will be remapped) */
"fi\0"
"glSampleMaskSGIS\0"
"glSampleMaskEXT\0"
"\0"
- /* _mesa_function_pool[14952]: GetAttribLocationARB (will be remapped) */
+ /* _mesa_function_pool[15197]: GetAttribLocationARB (will be remapped) */
"ip\0"
"glGetAttribLocation\0"
"glGetAttribLocationARB\0"
"\0"
- /* _mesa_function_pool[14999]: RasterPos3i (offset 74) */
+ /* _mesa_function_pool[15244]: RasterPos3i (offset 74) */
"iii\0"
"glRasterPos3i\0"
"\0"
- /* _mesa_function_pool[15018]: VertexAttrib4ubvARB (will be remapped) */
+ /* _mesa_function_pool[15263]: VertexAttrib4ubvARB (will be remapped) */
"ip\0"
"glVertexAttrib4ubv\0"
"glVertexAttrib4ubvARB\0"
"\0"
- /* _mesa_function_pool[15063]: DetailTexFuncSGIS (dynamic) */
+ /* _mesa_function_pool[15308]: DetailTexFuncSGIS (dynamic) */
"iip\0"
"glDetailTexFuncSGIS\0"
"\0"
- /* _mesa_function_pool[15088]: Normal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[15333]: Normal3fVertex3fSUN (dynamic) */
"ffffff\0"
"glNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[15118]: CopyTexImage2D (offset 324) */
+ /* _mesa_function_pool[15363]: CopyTexImage2D (offset 324) */
"iiiiiiii\0"
"glCopyTexImage2D\0"
"glCopyTexImage2DEXT\0"
"\0"
- /* _mesa_function_pool[15165]: GetBufferPointervARB (will be remapped) */
+ /* _mesa_function_pool[15410]: GetBufferPointervARB (will be remapped) */
"iip\0"
"glGetBufferPointerv\0"
"glGetBufferPointervARB\0"
"\0"
- /* _mesa_function_pool[15213]: ProgramEnvParameter4fARB (will be remapped) */
+ /* _mesa_function_pool[15458]: ProgramEnvParameter4fARB (will be remapped) */
"iiffff\0"
"glProgramEnvParameter4fARB\0"
"glProgramParameter4fNV\0"
"\0"
- /* _mesa_function_pool[15271]: Uniform3ivARB (will be remapped) */
+ /* _mesa_function_pool[15516]: Uniform3ivARB (will be remapped) */
"iip\0"
"glUniform3iv\0"
"glUniform3ivARB\0"
"\0"
- /* _mesa_function_pool[15305]: Lightfv (offset 160) */
+ /* _mesa_function_pool[15550]: Lightfv (offset 160) */
"iip\0"
"glLightfv\0"
"\0"
- /* _mesa_function_pool[15320]: ClearDepth (offset 208) */
+ /* _mesa_function_pool[15565]: ClearDepth (offset 208) */
"d\0"
"glClearDepth\0"
"\0"
- /* _mesa_function_pool[15336]: GetFenceivNV (will be remapped) */
+ /* _mesa_function_pool[15581]: GetFenceivNV (will be remapped) */
"iip\0"
"glGetFenceivNV\0"
"\0"
- /* _mesa_function_pool[15356]: WindowPos4dvMESA (will be remapped) */
+ /* _mesa_function_pool[15601]: WindowPos4dvMESA (will be remapped) */
"p\0"
"glWindowPos4dvMESA\0"
"\0"
- /* _mesa_function_pool[15378]: ColorSubTable (offset 346) */
+ /* _mesa_function_pool[15623]: ColorSubTable (offset 346) */
"iiiiip\0"
"glColorSubTable\0"
"glColorSubTableEXT\0"
"\0"
- /* _mesa_function_pool[15421]: Color4fv (offset 30) */
+ /* _mesa_function_pool[15666]: Color4fv (offset 30) */
"p\0"
"glColor4fv\0"
"\0"
- /* _mesa_function_pool[15435]: MultiTexCoord4ivARB (offset 405) */
+ /* _mesa_function_pool[15680]: MultiTexCoord4ivARB (offset 405) */
"ip\0"
"glMultiTexCoord4iv\0"
"glMultiTexCoord4ivARB\0"
"\0"
- /* _mesa_function_pool[15480]: DrawElementsInstanced (will be remapped) */
+ /* _mesa_function_pool[15725]: DrawElementsInstanced (will be remapped) */
"iiipi\0"
"glDrawElementsInstanced\0"
"glDrawElementsInstancedARB\0"
"glDrawElementsInstancedEXT\0"
"\0"
- /* _mesa_function_pool[15565]: ColorPointer (offset 308) */
+ /* _mesa_function_pool[15810]: ColorPointer (offset 308) */
"iiip\0"
"glColorPointer\0"
"\0"
- /* _mesa_function_pool[15586]: Rects (offset 92) */
+ /* _mesa_function_pool[15831]: Rects (offset 92) */
"iiii\0"
"glRects\0"
"\0"
- /* _mesa_function_pool[15600]: GetMapAttribParameterfvNV (dynamic) */
+ /* _mesa_function_pool[15845]: GetMapAttribParameterfvNV (dynamic) */
"iiip\0"
"glGetMapAttribParameterfvNV\0"
"\0"
- /* _mesa_function_pool[15634]: Lightiv (offset 162) */
+ /* _mesa_function_pool[15879]: Lightiv (offset 162) */
"iip\0"
"glLightiv\0"
"\0"
- /* _mesa_function_pool[15649]: VertexAttrib4sARB (will be remapped) */
+ /* _mesa_function_pool[15894]: VertexAttrib4sARB (will be remapped) */
"iiiii\0"
"glVertexAttrib4s\0"
"glVertexAttrib4sARB\0"
"\0"
- /* _mesa_function_pool[15693]: GetQueryObjectuivARB (will be remapped) */
+ /* _mesa_function_pool[15938]: GetQueryObjectuivARB (will be remapped) */
"iip\0"
"glGetQueryObjectuiv\0"
"glGetQueryObjectuivARB\0"
"\0"
- /* _mesa_function_pool[15741]: GetTexParameteriv (offset 283) */
+ /* _mesa_function_pool[15986]: GetTexParameteriv (offset 283) */
"iip\0"
"glGetTexParameteriv\0"
"\0"
- /* _mesa_function_pool[15766]: MapParameterivNV (dynamic) */
+ /* _mesa_function_pool[16011]: MapParameterivNV (dynamic) */
"iip\0"
"glMapParameterivNV\0"
"\0"
- /* _mesa_function_pool[15790]: GenRenderbuffersEXT (will be remapped) */
+ /* _mesa_function_pool[16035]: GenRenderbuffersEXT (will be remapped) */
"ip\0"
"glGenRenderbuffers\0"
"glGenRenderbuffersEXT\0"
"\0"
- /* _mesa_function_pool[15835]: VertexAttrib2dvARB (will be remapped) */
+ /* _mesa_function_pool[16080]: VertexAttrib2dvARB (will be remapped) */
"ip\0"
"glVertexAttrib2dv\0"
"glVertexAttrib2dvARB\0"
"\0"
- /* _mesa_function_pool[15878]: EdgeFlagPointerEXT (will be remapped) */
+ /* _mesa_function_pool[16123]: EdgeFlagPointerEXT (will be remapped) */
"iip\0"
"glEdgeFlagPointerEXT\0"
"\0"
- /* _mesa_function_pool[15904]: VertexAttribs2svNV (will be remapped) */
+ /* _mesa_function_pool[16149]: VertexAttribs2svNV (will be remapped) */
"iip\0"
"glVertexAttribs2svNV\0"
"\0"
- /* _mesa_function_pool[15930]: WeightbvARB (dynamic) */
+ /* _mesa_function_pool[16175]: WeightbvARB (dynamic) */
"ip\0"
"glWeightbvARB\0"
"\0"
- /* _mesa_function_pool[15948]: VertexAttrib2fvARB (will be remapped) */
+ /* _mesa_function_pool[16193]: VertexAttrib2fvARB (will be remapped) */
"ip\0"
"glVertexAttrib2fv\0"
"glVertexAttrib2fvARB\0"
"\0"
- /* _mesa_function_pool[15991]: GetBufferParameterivARB (will be remapped) */
+ /* _mesa_function_pool[16236]: GetBufferParameterivARB (will be remapped) */
"iip\0"
"glGetBufferParameteriv\0"
"glGetBufferParameterivARB\0"
"\0"
- /* _mesa_function_pool[16045]: Rectdv (offset 87) */
+ /* _mesa_function_pool[16290]: Rectdv (offset 87) */
"pp\0"
"glRectdv\0"
"\0"
- /* _mesa_function_pool[16058]: ListParameteriSGIX (dynamic) */
+ /* _mesa_function_pool[16303]: ListParameteriSGIX (dynamic) */
"iii\0"
"glListParameteriSGIX\0"
"\0"
- /* _mesa_function_pool[16084]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[16329]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */
"iffffffffff\0"
"glReplacementCodeuiColor4fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[16143]: InstrumentsBufferSGIX (dynamic) */
+ /* _mesa_function_pool[16388]: InstrumentsBufferSGIX (dynamic) */
"ip\0"
"glInstrumentsBufferSGIX\0"
"\0"
- /* _mesa_function_pool[16171]: VertexAttrib4NivARB (will be remapped) */
+ /* _mesa_function_pool[16416]: VertexAttrib4NivARB (will be remapped) */
"ip\0"
"glVertexAttrib4Niv\0"
"glVertexAttrib4NivARB\0"
"\0"
- /* _mesa_function_pool[16216]: GetAttachedShaders (will be remapped) */
+ /* _mesa_function_pool[16461]: GetAttachedShaders (will be remapped) */
"iipp\0"
"glGetAttachedShaders\0"
"\0"
- /* _mesa_function_pool[16243]: GenVertexArraysAPPLE (will be remapped) */
+ /* _mesa_function_pool[16488]: GenVertexArraysAPPLE (will be remapped) */
"ip\0"
"glGenVertexArraysAPPLE\0"
"\0"
- /* _mesa_function_pool[16270]: Materialiv (offset 172) */
+ /* _mesa_function_pool[16515]: Materialiv (offset 172) */
"iip\0"
"glMaterialiv\0"
"\0"
- /* _mesa_function_pool[16288]: PushClientAttrib (offset 335) */
+ /* _mesa_function_pool[16533]: PushClientAttrib (offset 335) */
"i\0"
"glPushClientAttrib\0"
"\0"
- /* _mesa_function_pool[16310]: ProgramEnvParameters4fvEXT (will be remapped) */
+ /* _mesa_function_pool[16555]: ProgramEnvParameters4fvEXT (will be remapped) */
"iiip\0"
"glProgramEnvParameters4fvEXT\0"
"\0"
- /* _mesa_function_pool[16345]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[16590]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
"pppp\0"
"glTexCoord2fColor4fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[16391]: WindowPos2iMESA (will be remapped) */
+ /* _mesa_function_pool[16636]: WindowPos2iMESA (will be remapped) */
"ii\0"
"glWindowPos2i\0"
"glWindowPos2iARB\0"
"glWindowPos2iMESA\0"
"\0"
- /* _mesa_function_pool[16444]: SecondaryColor3fvEXT (will be remapped) */
+ /* _mesa_function_pool[16689]: SecondaryColor3fvEXT (will be remapped) */
"p\0"
"glSecondaryColor3fv\0"
"glSecondaryColor3fvEXT\0"
"\0"
- /* _mesa_function_pool[16490]: PolygonMode (offset 174) */
+ /* _mesa_function_pool[16735]: PolygonMode (offset 174) */
"ii\0"
"glPolygonMode\0"
"\0"
- /* _mesa_function_pool[16508]: CompressedTexSubImage1DARB (will be remapped) */
+ /* _mesa_function_pool[16753]: CompressedTexSubImage1DARB (will be remapped) */
"iiiiiip\0"
"glCompressedTexSubImage1D\0"
"glCompressedTexSubImage1DARB\0"
"\0"
- /* _mesa_function_pool[16572]: GetVertexAttribivNV (will be remapped) */
+ /* _mesa_function_pool[16817]: GetVertexAttribivNV (will be remapped) */
"iip\0"
"glGetVertexAttribivNV\0"
"\0"
- /* _mesa_function_pool[16599]: GetProgramStringARB (will be remapped) */
+ /* _mesa_function_pool[16844]: GetProgramStringARB (will be remapped) */
"iip\0"
"glGetProgramStringARB\0"
"\0"
- /* _mesa_function_pool[16626]: TexBumpParameterfvATI (will be remapped) */
+ /* _mesa_function_pool[16871]: TexBumpParameterfvATI (will be remapped) */
"ip\0"
"glTexBumpParameterfvATI\0"
"\0"
- /* _mesa_function_pool[16654]: CompileShaderARB (will be remapped) */
+ /* _mesa_function_pool[16899]: CompileShaderARB (will be remapped) */
"i\0"
"glCompileShader\0"
"glCompileShaderARB\0"
"\0"
- /* _mesa_function_pool[16692]: DeleteShader (will be remapped) */
+ /* _mesa_function_pool[16937]: DeleteShader (will be remapped) */
"i\0"
"glDeleteShader\0"
"\0"
- /* _mesa_function_pool[16710]: DisableClientState (offset 309) */
+ /* _mesa_function_pool[16955]: DisableClientState (offset 309) */
"i\0"
"glDisableClientState\0"
"\0"
- /* _mesa_function_pool[16734]: TexGeni (offset 192) */
+ /* _mesa_function_pool[16979]: TexGeni (offset 192) */
"iii\0"
"glTexGeni\0"
"\0"
- /* _mesa_function_pool[16749]: TexGenf (offset 190) */
+ /* _mesa_function_pool[16994]: TexGenf (offset 190) */
"iif\0"
"glTexGenf\0"
"\0"
- /* _mesa_function_pool[16764]: Uniform3fARB (will be remapped) */
+ /* _mesa_function_pool[17009]: Uniform3fARB (will be remapped) */
"ifff\0"
"glUniform3f\0"
"glUniform3fARB\0"
"\0"
- /* _mesa_function_pool[16797]: TexGend (offset 188) */
+ /* _mesa_function_pool[17042]: TexGend (offset 188) */
"iid\0"
"glTexGend\0"
"\0"
- /* _mesa_function_pool[16812]: ListParameterfvSGIX (dynamic) */
+ /* _mesa_function_pool[17057]: ListParameterfvSGIX (dynamic) */
"iip\0"
"glListParameterfvSGIX\0"
"\0"
- /* _mesa_function_pool[16839]: GetPolygonStipple (offset 274) */
+ /* _mesa_function_pool[17084]: GetPolygonStipple (offset 274) */
"p\0"
"glGetPolygonStipple\0"
"\0"
- /* _mesa_function_pool[16862]: Tangent3dvEXT (dynamic) */
+ /* _mesa_function_pool[17107]: Tangent3dvEXT (dynamic) */
"p\0"
"glTangent3dvEXT\0"
"\0"
- /* _mesa_function_pool[16881]: BindBufferOffsetEXT (will be remapped) */
+ /* _mesa_function_pool[17126]: BindBufferOffsetEXT (will be remapped) */
"iiii\0"
"glBindBufferOffsetEXT\0"
"\0"
- /* _mesa_function_pool[16909]: WindowPos3sMESA (will be remapped) */
+ /* _mesa_function_pool[17154]: WindowPos3sMESA (will be remapped) */
"iii\0"
"glWindowPos3s\0"
"glWindowPos3sARB\0"
"glWindowPos3sMESA\0"
"\0"
- /* _mesa_function_pool[16963]: VertexAttrib2svNV (will be remapped) */
+ /* _mesa_function_pool[17208]: VertexAttrib2svNV (will be remapped) */
"ip\0"
"glVertexAttrib2svNV\0"
"\0"
- /* _mesa_function_pool[16987]: DisableIndexedEXT (will be remapped) */
+ /* _mesa_function_pool[17232]: DisableIndexedEXT (will be remapped) */
"ii\0"
"glDisableIndexedEXT\0"
"\0"
- /* _mesa_function_pool[17011]: BindBufferBaseEXT (will be remapped) */
+ /* _mesa_function_pool[17256]: BindBufferBaseEXT (will be remapped) */
"iii\0"
"glBindBufferBaseEXT\0"
"glBindBufferBase\0"
"\0"
- /* _mesa_function_pool[17053]: TexCoord2fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[17298]: TexCoord2fVertex3fvSUN (dynamic) */
"pp\0"
"glTexCoord2fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[17082]: WindowPos4sMESA (will be remapped) */
+ /* _mesa_function_pool[17327]: WindowPos4sMESA (will be remapped) */
"iiii\0"
"glWindowPos4sMESA\0"
"\0"
- /* _mesa_function_pool[17106]: VertexAttrib4NuivARB (will be remapped) */
+ /* _mesa_function_pool[17351]: VertexAttrib4NuivARB (will be remapped) */
"ip\0"
"glVertexAttrib4Nuiv\0"
"glVertexAttrib4NuivARB\0"
"\0"
- /* _mesa_function_pool[17153]: ClientActiveTextureARB (offset 375) */
+ /* _mesa_function_pool[17398]: ClientActiveTextureARB (offset 375) */
"i\0"
"glClientActiveTexture\0"
"glClientActiveTextureARB\0"
"\0"
- /* _mesa_function_pool[17203]: PixelTexGenSGIX (will be remapped) */
+ /* _mesa_function_pool[17448]: PixelTexGenSGIX (will be remapped) */
"i\0"
"glPixelTexGenSGIX\0"
"\0"
- /* _mesa_function_pool[17224]: ReplacementCodeusvSUN (dynamic) */
+ /* _mesa_function_pool[17469]: ReplacementCodeusvSUN (dynamic) */
"p\0"
"glReplacementCodeusvSUN\0"
"\0"
- /* _mesa_function_pool[17251]: Uniform4fARB (will be remapped) */
+ /* _mesa_function_pool[17496]: Uniform4fARB (will be remapped) */
"iffff\0"
"glUniform4f\0"
"glUniform4fARB\0"
"\0"
- /* _mesa_function_pool[17285]: Color4sv (offset 34) */
+ /* _mesa_function_pool[17530]: Color4sv (offset 34) */
"p\0"
"glColor4sv\0"
"\0"
- /* _mesa_function_pool[17299]: FlushMappedBufferRange (will be remapped) */
+ /* _mesa_function_pool[17544]: FlushMappedBufferRange (will be remapped) */
"iii\0"
"glFlushMappedBufferRange\0"
"\0"
- /* _mesa_function_pool[17329]: IsProgramNV (will be remapped) */
+ /* _mesa_function_pool[17574]: IsProgramNV (will be remapped) */
"i\0"
"glIsProgramARB\0"
"glIsProgramNV\0"
"\0"
- /* _mesa_function_pool[17361]: FlushMappedBufferRangeAPPLE (will be remapped) */
+ /* _mesa_function_pool[17606]: FlushMappedBufferRangeAPPLE (will be remapped) */
"iii\0"
"glFlushMappedBufferRangeAPPLE\0"
"\0"
- /* _mesa_function_pool[17396]: PixelZoom (offset 246) */
+ /* _mesa_function_pool[17641]: PixelZoom (offset 246) */
"ff\0"
"glPixelZoom\0"
"\0"
- /* _mesa_function_pool[17412]: ReplacementCodePointerSUN (dynamic) */
+ /* _mesa_function_pool[17657]: ReplacementCodePointerSUN (dynamic) */
"iip\0"
"glReplacementCodePointerSUN\0"
"\0"
- /* _mesa_function_pool[17445]: ProgramEnvParameter4dARB (will be remapped) */
+ /* _mesa_function_pool[17690]: ProgramEnvParameter4dARB (will be remapped) */
"iidddd\0"
"glProgramEnvParameter4dARB\0"
"glProgramParameter4dNV\0"
"\0"
- /* _mesa_function_pool[17503]: ColorTableParameterfv (offset 340) */
+ /* _mesa_function_pool[17748]: ColorTableParameterfv (offset 340) */
"iip\0"
"glColorTableParameterfv\0"
"glColorTableParameterfvSGI\0"
"\0"
- /* _mesa_function_pool[17559]: FragmentLightModelfSGIX (dynamic) */
+ /* _mesa_function_pool[17804]: FragmentLightModelfSGIX (dynamic) */
"if\0"
"glFragmentLightModelfSGIX\0"
"\0"
- /* _mesa_function_pool[17589]: Binormal3bvEXT (dynamic) */
+ /* _mesa_function_pool[17834]: Binormal3bvEXT (dynamic) */
"p\0"
"glBinormal3bvEXT\0"
"\0"
- /* _mesa_function_pool[17609]: PixelMapuiv (offset 252) */
+ /* _mesa_function_pool[17854]: PixelMapuiv (offset 252) */
"iip\0"
"glPixelMapuiv\0"
"\0"
- /* _mesa_function_pool[17628]: Color3dv (offset 12) */
+ /* _mesa_function_pool[17873]: Color3dv (offset 12) */
"p\0"
"glColor3dv\0"
"\0"
- /* _mesa_function_pool[17642]: IsTexture (offset 330) */
+ /* _mesa_function_pool[17887]: IsTexture (offset 330) */
"i\0"
"glIsTexture\0"
"glIsTextureEXT\0"
"\0"
- /* _mesa_function_pool[17672]: VertexWeightfvEXT (dynamic) */
+ /* _mesa_function_pool[17917]: VertexWeightfvEXT (dynamic) */
"p\0"
"glVertexWeightfvEXT\0"
"\0"
- /* _mesa_function_pool[17695]: VertexAttrib1dARB (will be remapped) */
+ /* _mesa_function_pool[17940]: VertexAttrib1dARB (will be remapped) */
"id\0"
"glVertexAttrib1d\0"
"glVertexAttrib1dARB\0"
"\0"
- /* _mesa_function_pool[17736]: ImageTransformParameterivHP (dynamic) */
+ /* _mesa_function_pool[17981]: ImageTransformParameterivHP (dynamic) */
"iip\0"
"glImageTransformParameterivHP\0"
"\0"
- /* _mesa_function_pool[17771]: TexCoord4i (offset 122) */
+ /* _mesa_function_pool[18016]: TexCoord4i (offset 122) */
"iiii\0"
"glTexCoord4i\0"
"\0"
- /* _mesa_function_pool[17790]: DeleteQueriesARB (will be remapped) */
+ /* _mesa_function_pool[18035]: DeleteQueriesARB (will be remapped) */
"ip\0"
"glDeleteQueries\0"
"glDeleteQueriesARB\0"
"\0"
- /* _mesa_function_pool[17829]: Color4ubVertex2fSUN (dynamic) */
+ /* _mesa_function_pool[18074]: Color4ubVertex2fSUN (dynamic) */
"iiiiff\0"
"glColor4ubVertex2fSUN\0"
"\0"
- /* _mesa_function_pool[17859]: FragmentColorMaterialSGIX (dynamic) */
+ /* _mesa_function_pool[18104]: FragmentColorMaterialSGIX (dynamic) */
"ii\0"
"glFragmentColorMaterialSGIX\0"
"\0"
- /* _mesa_function_pool[17891]: CurrentPaletteMatrixARB (dynamic) */
+ /* _mesa_function_pool[18136]: CurrentPaletteMatrixARB (dynamic) */
"i\0"
"glCurrentPaletteMatrixARB\0"
"\0"
- /* _mesa_function_pool[17920]: GetMapdv (offset 266) */
+ /* _mesa_function_pool[18165]: GetMapdv (offset 266) */
"iip\0"
"glGetMapdv\0"
"\0"
- /* _mesa_function_pool[17936]: ObjectPurgeableAPPLE (will be remapped) */
+ /* _mesa_function_pool[18181]: ObjectPurgeableAPPLE (will be remapped) */
"iii\0"
"glObjectPurgeableAPPLE\0"
"\0"
- /* _mesa_function_pool[17964]: SamplePatternSGIS (will be remapped) */
+ /* _mesa_function_pool[18209]: SamplePatternSGIS (will be remapped) */
"i\0"
"glSamplePatternSGIS\0"
"glSamplePatternEXT\0"
"\0"
- /* _mesa_function_pool[18006]: PixelStoref (offset 249) */
+ /* _mesa_function_pool[18251]: PixelStoref (offset 249) */
"if\0"
"glPixelStoref\0"
"\0"
- /* _mesa_function_pool[18024]: IsQueryARB (will be remapped) */
+ /* _mesa_function_pool[18269]: IsQueryARB (will be remapped) */
"i\0"
"glIsQuery\0"
"glIsQueryARB\0"
"\0"
- /* _mesa_function_pool[18050]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[18295]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */
"iiiiifff\0"
"glReplacementCodeuiColor4ubVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[18099]: PixelStorei (offset 250) */
+ /* _mesa_function_pool[18344]: PixelStorei (offset 250) */
"ii\0"
"glPixelStorei\0"
"\0"
- /* _mesa_function_pool[18117]: VertexAttrib4usvARB (will be remapped) */
+ /* _mesa_function_pool[18362]: VertexAttrib4usvARB (will be remapped) */
"ip\0"
"glVertexAttrib4usv\0"
"glVertexAttrib4usvARB\0"
"\0"
- /* _mesa_function_pool[18162]: LinkProgramARB (will be remapped) */
+ /* _mesa_function_pool[18407]: LinkProgramARB (will be remapped) */
"i\0"
"glLinkProgram\0"
"glLinkProgramARB\0"
"\0"
- /* _mesa_function_pool[18196]: VertexAttrib2fNV (will be remapped) */
+ /* _mesa_function_pool[18441]: VertexAttrib2fNV (will be remapped) */
"iff\0"
"glVertexAttrib2fNV\0"
"\0"
- /* _mesa_function_pool[18220]: ShaderSourceARB (will be remapped) */
+ /* _mesa_function_pool[18465]: ShaderSourceARB (will be remapped) */
"iipp\0"
"glShaderSource\0"
"glShaderSourceARB\0"
"\0"
- /* _mesa_function_pool[18259]: FragmentMaterialiSGIX (dynamic) */
+ /* _mesa_function_pool[18504]: FragmentMaterialiSGIX (dynamic) */
"iii\0"
"glFragmentMaterialiSGIX\0"
"\0"
- /* _mesa_function_pool[18288]: EvalCoord2dv (offset 233) */
+ /* _mesa_function_pool[18533]: EvalCoord2dv (offset 233) */
"p\0"
"glEvalCoord2dv\0"
"\0"
- /* _mesa_function_pool[18306]: VertexAttrib3svARB (will be remapped) */
+ /* _mesa_function_pool[18551]: VertexAttrib3svARB (will be remapped) */
"ip\0"
"glVertexAttrib3sv\0"
"glVertexAttrib3svARB\0"
"\0"
- /* _mesa_function_pool[18349]: ColorMaterial (offset 151) */
+ /* _mesa_function_pool[18594]: ColorMaterial (offset 151) */
"ii\0"
"glColorMaterial\0"
"\0"
- /* _mesa_function_pool[18369]: CompressedTexSubImage3DARB (will be remapped) */
+ /* _mesa_function_pool[18614]: CompressedTexSubImage3DARB (will be remapped) */
"iiiiiiiiiip\0"
"glCompressedTexSubImage3D\0"
"glCompressedTexSubImage3DARB\0"
"\0"
- /* _mesa_function_pool[18437]: WindowPos2ivMESA (will be remapped) */
+ /* _mesa_function_pool[18682]: WindowPos2ivMESA (will be remapped) */
"p\0"
"glWindowPos2iv\0"
"glWindowPos2ivARB\0"
"glWindowPos2ivMESA\0"
"\0"
- /* _mesa_function_pool[18492]: IsFramebufferEXT (will be remapped) */
+ /* _mesa_function_pool[18737]: IsFramebufferEXT (will be remapped) */
"i\0"
"glIsFramebuffer\0"
"glIsFramebufferEXT\0"
"\0"
- /* _mesa_function_pool[18530]: Uniform4ivARB (will be remapped) */
+ /* _mesa_function_pool[18775]: Uniform4ivARB (will be remapped) */
"iip\0"
"glUniform4iv\0"
"glUniform4ivARB\0"
"\0"
- /* _mesa_function_pool[18564]: GetVertexAttribdvARB (will be remapped) */
+ /* _mesa_function_pool[18809]: GetVertexAttribdvARB (will be remapped) */
"iip\0"
"glGetVertexAttribdv\0"
"glGetVertexAttribdvARB\0"
"\0"
- /* _mesa_function_pool[18612]: TexBumpParameterivATI (will be remapped) */
+ /* _mesa_function_pool[18857]: TexBumpParameterivATI (will be remapped) */
"ip\0"
"glTexBumpParameterivATI\0"
"\0"
- /* _mesa_function_pool[18640]: GetSeparableFilter (offset 359) */
+ /* _mesa_function_pool[18885]: GetSeparableFilter (offset 359) */
"iiippp\0"
"glGetSeparableFilter\0"
"glGetSeparableFilterEXT\0"
"\0"
- /* _mesa_function_pool[18693]: Binormal3dEXT (dynamic) */
+ /* _mesa_function_pool[18938]: Binormal3dEXT (dynamic) */
"ddd\0"
"glBinormal3dEXT\0"
"\0"
- /* _mesa_function_pool[18714]: SpriteParameteriSGIX (dynamic) */
+ /* _mesa_function_pool[18959]: SpriteParameteriSGIX (dynamic) */
"ii\0"
"glSpriteParameteriSGIX\0"
"\0"
- /* _mesa_function_pool[18741]: RequestResidentProgramsNV (will be remapped) */
+ /* _mesa_function_pool[18986]: RequestResidentProgramsNV (will be remapped) */
"ip\0"
"glRequestResidentProgramsNV\0"
"\0"
- /* _mesa_function_pool[18773]: TagSampleBufferSGIX (dynamic) */
+ /* _mesa_function_pool[19018]: TagSampleBufferSGIX (dynamic) */
"\0"
"glTagSampleBufferSGIX\0"
"\0"
- /* _mesa_function_pool[18797]: TransformFeedbackVaryingsEXT (will be remapped) */
+ /* _mesa_function_pool[19042]: TransformFeedbackVaryingsEXT (will be remapped) */
"iipi\0"
"glTransformFeedbackVaryingsEXT\0"
"glTransformFeedbackVaryings\0"
"\0"
- /* _mesa_function_pool[18862]: FeedbackBuffer (offset 194) */
+ /* _mesa_function_pool[19107]: FeedbackBuffer (offset 194) */
"iip\0"
"glFeedbackBuffer\0"
"\0"
- /* _mesa_function_pool[18884]: RasterPos2iv (offset 67) */
+ /* _mesa_function_pool[19129]: RasterPos2iv (offset 67) */
"p\0"
"glRasterPos2iv\0"
"\0"
- /* _mesa_function_pool[18902]: TexImage1D (offset 182) */
+ /* _mesa_function_pool[19147]: TexImage1D (offset 182) */
"iiiiiiip\0"
"glTexImage1D\0"
"\0"
- /* _mesa_function_pool[18925]: ListParameterivSGIX (dynamic) */
+ /* _mesa_function_pool[19170]: ListParameterivSGIX (dynamic) */
"iip\0"
"glListParameterivSGIX\0"
"\0"
- /* _mesa_function_pool[18952]: MultiDrawElementsEXT (will be remapped) */
+ /* _mesa_function_pool[19197]: MultiDrawElementsEXT (will be remapped) */
"ipipi\0"
"glMultiDrawElements\0"
"glMultiDrawElementsEXT\0"
"\0"
- /* _mesa_function_pool[19002]: Color3s (offset 17) */
+ /* _mesa_function_pool[19247]: Color3s (offset 17) */
"iii\0"
"glColor3s\0"
"\0"
- /* _mesa_function_pool[19017]: Uniform1ivARB (will be remapped) */
+ /* _mesa_function_pool[19262]: Uniform1ivARB (will be remapped) */
"iip\0"
"glUniform1iv\0"
"glUniform1ivARB\0"
"\0"
- /* _mesa_function_pool[19051]: WindowPos2sMESA (will be remapped) */
+ /* _mesa_function_pool[19296]: WindowPos2sMESA (will be remapped) */
"ii\0"
"glWindowPos2s\0"
"glWindowPos2sARB\0"
"glWindowPos2sMESA\0"
"\0"
- /* _mesa_function_pool[19104]: WeightusvARB (dynamic) */
+ /* _mesa_function_pool[19349]: WeightusvARB (dynamic) */
"ip\0"
"glWeightusvARB\0"
"\0"
- /* _mesa_function_pool[19123]: TexCoordPointer (offset 320) */
+ /* _mesa_function_pool[19368]: TexCoordPointer (offset 320) */
"iiip\0"
"glTexCoordPointer\0"
"\0"
- /* _mesa_function_pool[19147]: FogCoordPointerEXT (will be remapped) */
+ /* _mesa_function_pool[19392]: FogCoordPointerEXT (will be remapped) */
"iip\0"
"glFogCoordPointer\0"
"glFogCoordPointerEXT\0"
"\0"
- /* _mesa_function_pool[19191]: IndexMaterialEXT (dynamic) */
+ /* _mesa_function_pool[19436]: IndexMaterialEXT (dynamic) */
"ii\0"
"glIndexMaterialEXT\0"
"\0"
- /* _mesa_function_pool[19214]: Color3i (offset 15) */
+ /* _mesa_function_pool[19459]: Color3i (offset 15) */
"iii\0"
"glColor3i\0"
"\0"
- /* _mesa_function_pool[19229]: FrontFace (offset 157) */
+ /* _mesa_function_pool[19474]: FrontFace (offset 157) */
"i\0"
"glFrontFace\0"
"\0"
- /* _mesa_function_pool[19244]: EvalCoord2d (offset 232) */
+ /* _mesa_function_pool[19489]: EvalCoord2d (offset 232) */
"dd\0"
"glEvalCoord2d\0"
"\0"
- /* _mesa_function_pool[19262]: SecondaryColor3ubvEXT (will be remapped) */
+ /* _mesa_function_pool[19507]: SecondaryColor3ubvEXT (will be remapped) */
"p\0"
"glSecondaryColor3ubv\0"
"glSecondaryColor3ubvEXT\0"
"\0"
- /* _mesa_function_pool[19310]: EvalCoord2f (offset 234) */
+ /* _mesa_function_pool[19555]: EvalCoord2f (offset 234) */
"ff\0"
"glEvalCoord2f\0"
"\0"
- /* _mesa_function_pool[19328]: VertexAttrib4dvARB (will be remapped) */
+ /* _mesa_function_pool[19573]: VertexAttrib4dvARB (will be remapped) */
"ip\0"
"glVertexAttrib4dv\0"
"glVertexAttrib4dvARB\0"
"\0"
- /* _mesa_function_pool[19371]: BindAttribLocationARB (will be remapped) */
+ /* _mesa_function_pool[19616]: BindAttribLocationARB (will be remapped) */
"iip\0"
"glBindAttribLocation\0"
"glBindAttribLocationARB\0"
"\0"
- /* _mesa_function_pool[19421]: Color3b (offset 9) */
+ /* _mesa_function_pool[19666]: Color3b (offset 9) */
"iii\0"
"glColor3b\0"
"\0"
- /* _mesa_function_pool[19436]: MultiTexCoord2dARB (offset 384) */
+ /* _mesa_function_pool[19681]: MultiTexCoord2dARB (offset 384) */
"idd\0"
"glMultiTexCoord2d\0"
"glMultiTexCoord2dARB\0"
"\0"
- /* _mesa_function_pool[19480]: ExecuteProgramNV (will be remapped) */
+ /* _mesa_function_pool[19725]: ExecuteProgramNV (will be remapped) */
"iip\0"
"glExecuteProgramNV\0"
"\0"
- /* _mesa_function_pool[19504]: Color3f (offset 13) */
+ /* _mesa_function_pool[19749]: Color3f (offset 13) */
"fff\0"
"glColor3f\0"
"\0"
- /* _mesa_function_pool[19519]: LightEnviSGIX (dynamic) */
+ /* _mesa_function_pool[19764]: LightEnviSGIX (dynamic) */
"ii\0"
"glLightEnviSGIX\0"
"\0"
- /* _mesa_function_pool[19539]: Color3d (offset 11) */
+ /* _mesa_function_pool[19784]: Color3d (offset 11) */
"ddd\0"
"glColor3d\0"
"\0"
- /* _mesa_function_pool[19554]: Normal3dv (offset 55) */
+ /* _mesa_function_pool[19799]: Normal3dv (offset 55) */
"p\0"
"glNormal3dv\0"
"\0"
- /* _mesa_function_pool[19569]: Lightf (offset 159) */
+ /* _mesa_function_pool[19814]: Lightf (offset 159) */
"iif\0"
"glLightf\0"
"\0"
- /* _mesa_function_pool[19583]: ReplacementCodeuiSUN (dynamic) */
+ /* _mesa_function_pool[19828]: ReplacementCodeuiSUN (dynamic) */
"i\0"
"glReplacementCodeuiSUN\0"
"\0"
- /* _mesa_function_pool[19609]: MatrixMode (offset 293) */
+ /* _mesa_function_pool[19854]: MatrixMode (offset 293) */
"i\0"
"glMatrixMode\0"
"\0"
- /* _mesa_function_pool[19625]: GetPixelMapusv (offset 273) */
+ /* _mesa_function_pool[19870]: GetPixelMapusv (offset 273) */
"ip\0"
"glGetPixelMapusv\0"
"\0"
- /* _mesa_function_pool[19646]: Lighti (offset 161) */
+ /* _mesa_function_pool[19891]: Lighti (offset 161) */
"iii\0"
"glLighti\0"
"\0"
- /* _mesa_function_pool[19660]: VertexAttribPointerNV (will be remapped) */
+ /* _mesa_function_pool[19905]: VertexAttribPointerNV (will be remapped) */
"iiiip\0"
"glVertexAttribPointerNV\0"
"\0"
- /* _mesa_function_pool[19691]: ProgramLocalParameters4fvEXT (will be remapped) */
+ /* _mesa_function_pool[19936]: ProgramLocalParameters4fvEXT (will be remapped) */
"iiip\0"
"glProgramLocalParameters4fvEXT\0"
"\0"
- /* _mesa_function_pool[19728]: GetBooleanIndexedvEXT (will be remapped) */
+ /* _mesa_function_pool[19973]: GetBooleanIndexedvEXT (will be remapped) */
"iip\0"
"glGetBooleanIndexedvEXT\0"
"\0"
- /* _mesa_function_pool[19757]: GetFramebufferAttachmentParameterivEXT (will be remapped) */
+ /* _mesa_function_pool[20002]: GetFramebufferAttachmentParameterivEXT (will be remapped) */
"iiip\0"
"glGetFramebufferAttachmentParameteriv\0"
"glGetFramebufferAttachmentParameterivEXT\0"
"\0"
- /* _mesa_function_pool[19842]: PixelTransformParameterfEXT (dynamic) */
+ /* _mesa_function_pool[20087]: PixelTransformParameterfEXT (dynamic) */
"iif\0"
"glPixelTransformParameterfEXT\0"
"\0"
- /* _mesa_function_pool[19877]: MultiTexCoord4dvARB (offset 401) */
+ /* _mesa_function_pool[20122]: MultiTexCoord4dvARB (offset 401) */
"ip\0"
"glMultiTexCoord4dv\0"
"glMultiTexCoord4dvARB\0"
"\0"
- /* _mesa_function_pool[19922]: PixelTransformParameteriEXT (dynamic) */
+ /* _mesa_function_pool[20167]: PixelTransformParameteriEXT (dynamic) */
"iii\0"
"glPixelTransformParameteriEXT\0"
"\0"
- /* _mesa_function_pool[19957]: GetDoublev (offset 260) */
+ /* _mesa_function_pool[20202]: GetDoublev (offset 260) */
"ip\0"
"glGetDoublev\0"
"\0"
- /* _mesa_function_pool[19974]: MultMatrixd (offset 295) */
+ /* _mesa_function_pool[20219]: MultMatrixd (offset 295) */
"p\0"
"glMultMatrixd\0"
"\0"
- /* _mesa_function_pool[19991]: MultMatrixf (offset 294) */
+ /* _mesa_function_pool[20236]: MultMatrixf (offset 294) */
"p\0"
"glMultMatrixf\0"
"\0"
- /* _mesa_function_pool[20008]: TexCoord2fColor4ubVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[20253]: TexCoord2fColor4ubVertex3fSUN (dynamic) */
"ffiiiifff\0"
"glTexCoord2fColor4ubVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[20051]: Uniform1iARB (will be remapped) */
+ /* _mesa_function_pool[20296]: Uniform1iARB (will be remapped) */
"ii\0"
"glUniform1i\0"
"glUniform1iARB\0"
"\0"
- /* _mesa_function_pool[20082]: VertexAttribPointerARB (will be remapped) */
+ /* _mesa_function_pool[20327]: VertexAttribPointerARB (will be remapped) */
"iiiiip\0"
"glVertexAttribPointer\0"
"glVertexAttribPointerARB\0"
"\0"
- /* _mesa_function_pool[20137]: SharpenTexFuncSGIS (dynamic) */
+ /* _mesa_function_pool[20382]: VertexAttrib3sNV (will be remapped) */
+ "iiii\0"
+ "glVertexAttrib3sNV\0"
+ "\0"
+ /* _mesa_function_pool[20407]: SharpenTexFuncSGIS (dynamic) */
"iip\0"
"glSharpenTexFuncSGIS\0"
"\0"
- /* _mesa_function_pool[20163]: MultiTexCoord4fvARB (offset 403) */
+ /* _mesa_function_pool[20433]: MultiTexCoord4fvARB (offset 403) */
"ip\0"
"glMultiTexCoord4fv\0"
"glMultiTexCoord4fvARB\0"
"\0"
- /* _mesa_function_pool[20208]: UniformMatrix2x3fv (will be remapped) */
+ /* _mesa_function_pool[20478]: UniformMatrix2x3fv (will be remapped) */
"iiip\0"
"glUniformMatrix2x3fv\0"
"\0"
- /* _mesa_function_pool[20235]: TrackMatrixNV (will be remapped) */
+ /* _mesa_function_pool[20505]: TrackMatrixNV (will be remapped) */
"iiii\0"
"glTrackMatrixNV\0"
"\0"
- /* _mesa_function_pool[20257]: CombinerParameteriNV (will be remapped) */
+ /* _mesa_function_pool[20527]: CombinerParameteriNV (will be remapped) */
"ii\0"
"glCombinerParameteriNV\0"
"\0"
- /* _mesa_function_pool[20284]: DeleteAsyncMarkersSGIX (dynamic) */
+ /* _mesa_function_pool[20554]: DeleteAsyncMarkersSGIX (dynamic) */
"ii\0"
"glDeleteAsyncMarkersSGIX\0"
"\0"
- /* _mesa_function_pool[20313]: ReplacementCodeusSUN (dynamic) */
+ /* _mesa_function_pool[20583]: ReplacementCodeusSUN (dynamic) */
"i\0"
"glReplacementCodeusSUN\0"
"\0"
- /* _mesa_function_pool[20339]: IsAsyncMarkerSGIX (dynamic) */
+ /* _mesa_function_pool[20609]: IsAsyncMarkerSGIX (dynamic) */
"i\0"
"glIsAsyncMarkerSGIX\0"
"\0"
- /* _mesa_function_pool[20362]: FrameZoomSGIX (dynamic) */
+ /* _mesa_function_pool[20632]: FrameZoomSGIX (dynamic) */
"i\0"
"glFrameZoomSGIX\0"
"\0"
- /* _mesa_function_pool[20381]: Normal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[20651]: Normal3fVertex3fvSUN (dynamic) */
"pp\0"
"glNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[20408]: RasterPos4sv (offset 85) */
+ /* _mesa_function_pool[20678]: RasterPos4sv (offset 85) */
"p\0"
"glRasterPos4sv\0"
"\0"
- /* _mesa_function_pool[20426]: VertexAttrib4NsvARB (will be remapped) */
+ /* _mesa_function_pool[20696]: VertexAttrib4NsvARB (will be remapped) */
"ip\0"
"glVertexAttrib4Nsv\0"
"glVertexAttrib4NsvARB\0"
"\0"
- /* _mesa_function_pool[20471]: VertexAttrib3fvARB (will be remapped) */
+ /* _mesa_function_pool[20741]: VertexAttrib3fvARB (will be remapped) */
"ip\0"
"glVertexAttrib3fv\0"
"glVertexAttrib3fvARB\0"
"\0"
- /* _mesa_function_pool[20514]: ClearColor (offset 206) */
+ /* _mesa_function_pool[20784]: ClearColor (offset 206) */
"ffff\0"
"glClearColor\0"
"\0"
- /* _mesa_function_pool[20533]: GetSynciv (will be remapped) */
+ /* _mesa_function_pool[20803]: GetSynciv (will be remapped) */
"iiipp\0"
"glGetSynciv\0"
"\0"
- /* _mesa_function_pool[20552]: DeleteFramebuffersEXT (will be remapped) */
+ /* _mesa_function_pool[20822]: DeleteFramebuffersEXT (will be remapped) */
"ip\0"
"glDeleteFramebuffers\0"
"glDeleteFramebuffersEXT\0"
"\0"
- /* _mesa_function_pool[20601]: GlobalAlphaFactorsSUN (dynamic) */
+ /* _mesa_function_pool[20871]: GlobalAlphaFactorsSUN (dynamic) */
"i\0"
"glGlobalAlphaFactorsSUN\0"
"\0"
- /* _mesa_function_pool[20628]: IsEnabledIndexedEXT (will be remapped) */
+ /* _mesa_function_pool[20898]: IsEnabledIndexedEXT (will be remapped) */
"ii\0"
"glIsEnabledIndexedEXT\0"
"\0"
- /* _mesa_function_pool[20654]: TexEnviv (offset 187) */
+ /* _mesa_function_pool[20924]: TexEnviv (offset 187) */
"iip\0"
"glTexEnviv\0"
"\0"
- /* _mesa_function_pool[20670]: TexSubImage3D (offset 372) */
+ /* _mesa_function_pool[20940]: TexSubImage3D (offset 372) */
"iiiiiiiiiip\0"
"glTexSubImage3D\0"
"glTexSubImage3DEXT\0"
"\0"
- /* _mesa_function_pool[20718]: Tangent3fEXT (dynamic) */
+ /* _mesa_function_pool[20988]: Tangent3fEXT (dynamic) */
"fff\0"
"glTangent3fEXT\0"
"\0"
- /* _mesa_function_pool[20738]: SecondaryColor3uivEXT (will be remapped) */
+ /* _mesa_function_pool[21008]: SecondaryColor3uivEXT (will be remapped) */
"p\0"
"glSecondaryColor3uiv\0"
"glSecondaryColor3uivEXT\0"
"\0"
- /* _mesa_function_pool[20786]: MatrixIndexubvARB (dynamic) */
+ /* _mesa_function_pool[21056]: MatrixIndexubvARB (dynamic) */
"ip\0"
"glMatrixIndexubvARB\0"
"\0"
- /* _mesa_function_pool[20810]: Color4fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[21080]: Color4fNormal3fVertex3fSUN (dynamic) */
"ffffffffff\0"
"glColor4fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[20851]: PixelTexGenParameterfSGIS (will be remapped) */
+ /* _mesa_function_pool[21121]: PixelTexGenParameterfSGIS (will be remapped) */
"if\0"
"glPixelTexGenParameterfSGIS\0"
"\0"
- /* _mesa_function_pool[20883]: CreateShader (will be remapped) */
+ /* _mesa_function_pool[21153]: CreateShader (will be remapped) */
"i\0"
"glCreateShader\0"
"\0"
- /* _mesa_function_pool[20901]: GetColorTableParameterfv (offset 344) */
+ /* _mesa_function_pool[21171]: GetColorTableParameterfv (offset 344) */
"iip\0"
"glGetColorTableParameterfv\0"
"glGetColorTableParameterfvSGI\0"
"glGetColorTableParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[20993]: FragmentLightModelfvSGIX (dynamic) */
+ /* _mesa_function_pool[21263]: FragmentLightModelfvSGIX (dynamic) */
"ip\0"
"glFragmentLightModelfvSGIX\0"
"\0"
- /* _mesa_function_pool[21024]: Bitmap (offset 8) */
+ /* _mesa_function_pool[21294]: Bitmap (offset 8) */
"iiffffp\0"
"glBitmap\0"
"\0"
- /* _mesa_function_pool[21042]: MultiTexCoord3fARB (offset 394) */
+ /* _mesa_function_pool[21312]: MultiTexCoord3fARB (offset 394) */
"ifff\0"
"glMultiTexCoord3f\0"
"glMultiTexCoord3fARB\0"
"\0"
- /* _mesa_function_pool[21087]: GetTexLevelParameterfv (offset 284) */
+ /* _mesa_function_pool[21357]: GetTexLevelParameterfv (offset 284) */
"iiip\0"
"glGetTexLevelParameterfv\0"
"\0"
- /* _mesa_function_pool[21118]: GetPixelTexGenParameterfvSGIS (will be remapped) */
+ /* _mesa_function_pool[21388]: GetPixelTexGenParameterfvSGIS (will be remapped) */
"ip\0"
"glGetPixelTexGenParameterfvSGIS\0"
"\0"
- /* _mesa_function_pool[21154]: GenFramebuffersEXT (will be remapped) */
+ /* _mesa_function_pool[21424]: GenFramebuffersEXT (will be remapped) */
"ip\0"
"glGenFramebuffers\0"
"glGenFramebuffersEXT\0"
"\0"
- /* _mesa_function_pool[21197]: GetProgramParameterdvNV (will be remapped) */
+ /* _mesa_function_pool[21467]: GetProgramParameterdvNV (will be remapped) */
"iiip\0"
"glGetProgramParameterdvNV\0"
"\0"
- /* _mesa_function_pool[21229]: Vertex2sv (offset 133) */
+ /* _mesa_function_pool[21499]: Vertex2sv (offset 133) */
"p\0"
"glVertex2sv\0"
"\0"
- /* _mesa_function_pool[21244]: GetIntegerv (offset 263) */
+ /* _mesa_function_pool[21514]: GetIntegerv (offset 263) */
"ip\0"
"glGetIntegerv\0"
"\0"
- /* _mesa_function_pool[21262]: IsVertexArrayAPPLE (will be remapped) */
+ /* _mesa_function_pool[21532]: IsVertexArrayAPPLE (will be remapped) */
"i\0"
"glIsVertexArray\0"
"glIsVertexArrayAPPLE\0"
"\0"
- /* _mesa_function_pool[21302]: FragmentLightfvSGIX (dynamic) */
+ /* _mesa_function_pool[21572]: FragmentLightfvSGIX (dynamic) */
"iip\0"
"glFragmentLightfvSGIX\0"
"\0"
- /* _mesa_function_pool[21329]: DetachShader (will be remapped) */
+ /* _mesa_function_pool[21599]: DetachShader (will be remapped) */
"ii\0"
"glDetachShader\0"
"\0"
- /* _mesa_function_pool[21348]: VertexAttrib4NubARB (will be remapped) */
+ /* _mesa_function_pool[21618]: VertexAttrib4NubARB (will be remapped) */
"iiiii\0"
"glVertexAttrib4Nub\0"
"glVertexAttrib4NubARB\0"
"\0"
- /* _mesa_function_pool[21396]: GetProgramEnvParameterfvARB (will be remapped) */
+ /* _mesa_function_pool[21666]: GetProgramEnvParameterfvARB (will be remapped) */
"iip\0"
"glGetProgramEnvParameterfvARB\0"
"\0"
- /* _mesa_function_pool[21431]: GetTrackMatrixivNV (will be remapped) */
+ /* _mesa_function_pool[21701]: GetTrackMatrixivNV (will be remapped) */
"iiip\0"
"glGetTrackMatrixivNV\0"
"\0"
- /* _mesa_function_pool[21458]: VertexAttrib3svNV (will be remapped) */
+ /* _mesa_function_pool[21728]: VertexAttrib3svNV (will be remapped) */
"ip\0"
"glVertexAttrib3svNV\0"
"\0"
- /* _mesa_function_pool[21482]: Uniform4fvARB (will be remapped) */
+ /* _mesa_function_pool[21752]: Uniform4fvARB (will be remapped) */
"iip\0"
"glUniform4fv\0"
"glUniform4fvARB\0"
"\0"
- /* _mesa_function_pool[21516]: MultTransposeMatrixfARB (will be remapped) */
+ /* _mesa_function_pool[21786]: MultTransposeMatrixfARB (will be remapped) */
"p\0"
"glMultTransposeMatrixf\0"
"glMultTransposeMatrixfARB\0"
"\0"
- /* _mesa_function_pool[21568]: GetTexEnviv (offset 277) */
+ /* _mesa_function_pool[21838]: GetTexEnviv (offset 277) */
"iip\0"
"glGetTexEnviv\0"
"\0"
- /* _mesa_function_pool[21587]: ColorFragmentOp1ATI (will be remapped) */
+ /* _mesa_function_pool[21857]: ColorFragmentOp1ATI (will be remapped) */
"iiiiiii\0"
"glColorFragmentOp1ATI\0"
"\0"
- /* _mesa_function_pool[21618]: GetUniformfvARB (will be remapped) */
+ /* _mesa_function_pool[21888]: GetUniformfvARB (will be remapped) */
"iip\0"
"glGetUniformfv\0"
"glGetUniformfvARB\0"
"\0"
- /* _mesa_function_pool[21656]: EGLImageTargetRenderbufferStorageOES (will be remapped) */
+ /* _mesa_function_pool[21926]: EGLImageTargetRenderbufferStorageOES (will be remapped) */
"ip\0"
"glEGLImageTargetRenderbufferStorageOES\0"
"\0"
- /* _mesa_function_pool[21699]: PopClientAttrib (offset 334) */
+ /* _mesa_function_pool[21969]: PopClientAttrib (offset 334) */
"\0"
"glPopClientAttrib\0"
"\0"
- /* _mesa_function_pool[21719]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[21989]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
"iffffffffffff\0"
"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[21790]: DetachObjectARB (will be remapped) */
+ /* _mesa_function_pool[22060]: DetachObjectARB (will be remapped) */
"ii\0"
"glDetachObjectARB\0"
"\0"
- /* _mesa_function_pool[21812]: VertexBlendARB (dynamic) */
+ /* _mesa_function_pool[22082]: VertexBlendARB (dynamic) */
"i\0"
"glVertexBlendARB\0"
"\0"
- /* _mesa_function_pool[21832]: WindowPos3iMESA (will be remapped) */
+ /* _mesa_function_pool[22102]: WindowPos3iMESA (will be remapped) */
"iii\0"
"glWindowPos3i\0"
"glWindowPos3iARB\0"
"glWindowPos3iMESA\0"
"\0"
- /* _mesa_function_pool[21886]: SeparableFilter2D (offset 360) */
+ /* _mesa_function_pool[22156]: SeparableFilter2D (offset 360) */
"iiiiiipp\0"
"glSeparableFilter2D\0"
"glSeparableFilter2DEXT\0"
"\0"
- /* _mesa_function_pool[21939]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */
- "ppp\0"
- "glReplacementCodeuiColor4ubVertex3fvSUN\0"
+ /* _mesa_function_pool[22209]: ProgramParameteriARB (will be remapped) */
+ "iii\0"
+ "glProgramParameteriARB\0"
"\0"
- /* _mesa_function_pool[21984]: Map1d (offset 220) */
+ /* _mesa_function_pool[22237]: Map1d (offset 220) */
"iddiip\0"
"glMap1d\0"
"\0"
- /* _mesa_function_pool[22000]: Map1f (offset 221) */
+ /* _mesa_function_pool[22253]: Map1f (offset 221) */
"iffiip\0"
"glMap1f\0"
"\0"
- /* _mesa_function_pool[22016]: CompressedTexImage2DARB (will be remapped) */
+ /* _mesa_function_pool[22269]: CompressedTexImage2DARB (will be remapped) */
"iiiiiiip\0"
"glCompressedTexImage2D\0"
"glCompressedTexImage2DARB\0"
"\0"
- /* _mesa_function_pool[22075]: ArrayElement (offset 306) */
+ /* _mesa_function_pool[22328]: ArrayElement (offset 306) */
"i\0"
"glArrayElement\0"
"glArrayElementEXT\0"
"\0"
- /* _mesa_function_pool[22111]: TexImage2D (offset 183) */
+ /* _mesa_function_pool[22364]: TexImage2D (offset 183) */
"iiiiiiiip\0"
"glTexImage2D\0"
"\0"
- /* _mesa_function_pool[22135]: DepthBoundsEXT (will be remapped) */
+ /* _mesa_function_pool[22388]: DepthBoundsEXT (will be remapped) */
"dd\0"
"glDepthBoundsEXT\0"
"\0"
- /* _mesa_function_pool[22156]: ProgramParameters4fvNV (will be remapped) */
+ /* _mesa_function_pool[22409]: ProgramParameters4fvNV (will be remapped) */
"iiip\0"
"glProgramParameters4fvNV\0"
"\0"
- /* _mesa_function_pool[22187]: DeformationMap3fSGIX (dynamic) */
+ /* _mesa_function_pool[22440]: DeformationMap3fSGIX (dynamic) */
"iffiiffiiffiip\0"
"glDeformationMap3fSGIX\0"
"\0"
- /* _mesa_function_pool[22226]: GetProgramivNV (will be remapped) */
+ /* _mesa_function_pool[22479]: GetProgramivNV (will be remapped) */
"iip\0"
"glGetProgramivNV\0"
"\0"
- /* _mesa_function_pool[22248]: GetMinmaxParameteriv (offset 366) */
+ /* _mesa_function_pool[22501]: GetMinmaxParameteriv (offset 366) */
"iip\0"
"glGetMinmaxParameteriv\0"
"glGetMinmaxParameterivEXT\0"
"\0"
- /* _mesa_function_pool[22302]: PixelTransferf (offset 247) */
+ /* _mesa_function_pool[22555]: PixelTransferf (offset 247) */
"if\0"
"glPixelTransferf\0"
"\0"
- /* _mesa_function_pool[22323]: CopyTexImage1D (offset 323) */
+ /* _mesa_function_pool[22576]: CopyTexImage1D (offset 323) */
"iiiiiii\0"
"glCopyTexImage1D\0"
"glCopyTexImage1DEXT\0"
"\0"
- /* _mesa_function_pool[22369]: PushMatrix (offset 298) */
+ /* _mesa_function_pool[22622]: PushMatrix (offset 298) */
"\0"
"glPushMatrix\0"
"\0"
- /* _mesa_function_pool[22384]: Fogiv (offset 156) */
+ /* _mesa_function_pool[22637]: Fogiv (offset 156) */
"ip\0"
"glFogiv\0"
"\0"
- /* _mesa_function_pool[22396]: TexCoord1dv (offset 95) */
+ /* _mesa_function_pool[22649]: TexCoord1dv (offset 95) */
"p\0"
"glTexCoord1dv\0"
"\0"
- /* _mesa_function_pool[22413]: AlphaFragmentOp3ATI (will be remapped) */
+ /* _mesa_function_pool[22666]: AlphaFragmentOp3ATI (will be remapped) */
"iiiiiiiiiiii\0"
"glAlphaFragmentOp3ATI\0"
"\0"
- /* _mesa_function_pool[22449]: PixelTransferi (offset 248) */
+ /* _mesa_function_pool[22702]: PixelTransferi (offset 248) */
"ii\0"
"glPixelTransferi\0"
"\0"
- /* _mesa_function_pool[22470]: GetVertexAttribdvNV (will be remapped) */
+ /* _mesa_function_pool[22723]: GetVertexAttribdvNV (will be remapped) */
"iip\0"
"glGetVertexAttribdvNV\0"
"\0"
- /* _mesa_function_pool[22497]: VertexAttrib3fvNV (will be remapped) */
+ /* _mesa_function_pool[22750]: VertexAttrib3fvNV (will be remapped) */
"ip\0"
"glVertexAttrib3fvNV\0"
"\0"
- /* _mesa_function_pool[22521]: Rotatef (offset 300) */
+ /* _mesa_function_pool[22774]: Rotatef (offset 300) */
"ffff\0"
"glRotatef\0"
"\0"
- /* _mesa_function_pool[22537]: GetFinalCombinerInputParameterivNV (will be remapped) */
+ /* _mesa_function_pool[22790]: GetFinalCombinerInputParameterivNV (will be remapped) */
"iip\0"
"glGetFinalCombinerInputParameterivNV\0"
"\0"
- /* _mesa_function_pool[22579]: Vertex3i (offset 138) */
+ /* _mesa_function_pool[22832]: Vertex3i (offset 138) */
"iii\0"
"glVertex3i\0"
"\0"
- /* _mesa_function_pool[22595]: Vertex3f (offset 136) */
+ /* _mesa_function_pool[22848]: Vertex3f (offset 136) */
"fff\0"
"glVertex3f\0"
"\0"
- /* _mesa_function_pool[22611]: Clear (offset 203) */
+ /* _mesa_function_pool[22864]: Clear (offset 203) */
"i\0"
"glClear\0"
"\0"
- /* _mesa_function_pool[22622]: Vertex3d (offset 134) */
+ /* _mesa_function_pool[22875]: Vertex3d (offset 134) */
"ddd\0"
"glVertex3d\0"
"\0"
- /* _mesa_function_pool[22638]: GetMapParameterivNV (dynamic) */
+ /* _mesa_function_pool[22891]: GetMapParameterivNV (dynamic) */
"iip\0"
"glGetMapParameterivNV\0"
"\0"
- /* _mesa_function_pool[22665]: Uniform4iARB (will be remapped) */
+ /* _mesa_function_pool[22918]: Uniform4iARB (will be remapped) */
"iiiii\0"
"glUniform4i\0"
"glUniform4iARB\0"
"\0"
- /* _mesa_function_pool[22699]: ReadBuffer (offset 254) */
+ /* _mesa_function_pool[22952]: ReadBuffer (offset 254) */
"i\0"
"glReadBuffer\0"
"\0"
- /* _mesa_function_pool[22715]: ConvolutionParameteri (offset 352) */
+ /* _mesa_function_pool[22968]: ConvolutionParameteri (offset 352) */
"iii\0"
"glConvolutionParameteri\0"
"glConvolutionParameteriEXT\0"
"\0"
- /* _mesa_function_pool[22771]: Ortho (offset 296) */
+ /* _mesa_function_pool[23024]: Ortho (offset 296) */
"dddddd\0"
"glOrtho\0"
"\0"
- /* _mesa_function_pool[22787]: Binormal3sEXT (dynamic) */
+ /* _mesa_function_pool[23040]: Binormal3sEXT (dynamic) */
"iii\0"
"glBinormal3sEXT\0"
"\0"
- /* _mesa_function_pool[22808]: ListBase (offset 6) */
+ /* _mesa_function_pool[23061]: ListBase (offset 6) */
"i\0"
"glListBase\0"
"\0"
- /* _mesa_function_pool[22822]: Vertex3s (offset 140) */
+ /* _mesa_function_pool[23075]: Vertex3s (offset 140) */
"iii\0"
"glVertex3s\0"
"\0"
- /* _mesa_function_pool[22838]: ConvolutionParameterf (offset 350) */
+ /* _mesa_function_pool[23091]: ConvolutionParameterf (offset 350) */
"iif\0"
"glConvolutionParameterf\0"
"glConvolutionParameterfEXT\0"
"\0"
- /* _mesa_function_pool[22894]: GetColorTableParameteriv (offset 345) */
+ /* _mesa_function_pool[23147]: GetColorTableParameteriv (offset 345) */
"iip\0"
"glGetColorTableParameteriv\0"
"glGetColorTableParameterivSGI\0"
"glGetColorTableParameterivEXT\0"
"\0"
- /* _mesa_function_pool[22986]: ProgramEnvParameter4dvARB (will be remapped) */
+ /* _mesa_function_pool[23239]: ProgramEnvParameter4dvARB (will be remapped) */
"iip\0"
"glProgramEnvParameter4dvARB\0"
"glProgramParameter4dvNV\0"
"\0"
- /* _mesa_function_pool[23043]: ShadeModel (offset 177) */
+ /* _mesa_function_pool[23296]: ShadeModel (offset 177) */
"i\0"
"glShadeModel\0"
"\0"
- /* _mesa_function_pool[23059]: VertexAttribs2fvNV (will be remapped) */
+ /* _mesa_function_pool[23312]: VertexAttribs2fvNV (will be remapped) */
"iip\0"
"glVertexAttribs2fvNV\0"
"\0"
- /* _mesa_function_pool[23085]: Rectiv (offset 91) */
+ /* _mesa_function_pool[23338]: Rectiv (offset 91) */
"pp\0"
"glRectiv\0"
"\0"
- /* _mesa_function_pool[23098]: UseProgramObjectARB (will be remapped) */
+ /* _mesa_function_pool[23351]: UseProgramObjectARB (will be remapped) */
"i\0"
"glUseProgram\0"
"glUseProgramObjectARB\0"
"\0"
- /* _mesa_function_pool[23136]: GetMapParameterfvNV (dynamic) */
+ /* _mesa_function_pool[23389]: GetMapParameterfvNV (dynamic) */
"iip\0"
"glGetMapParameterfvNV\0"
"\0"
- /* _mesa_function_pool[23163]: EndConditionalRenderNV (will be remapped) */
+ /* _mesa_function_pool[23416]: EndConditionalRenderNV (will be remapped) */
"\0"
"glEndConditionalRenderNV\0"
"\0"
- /* _mesa_function_pool[23190]: PassTexCoordATI (will be remapped) */
+ /* _mesa_function_pool[23443]: PassTexCoordATI (will be remapped) */
"iii\0"
"glPassTexCoordATI\0"
"\0"
- /* _mesa_function_pool[23213]: DeleteProgram (will be remapped) */
+ /* _mesa_function_pool[23466]: DeleteProgram (will be remapped) */
"i\0"
"glDeleteProgram\0"
"\0"
- /* _mesa_function_pool[23232]: Tangent3ivEXT (dynamic) */
+ /* _mesa_function_pool[23485]: Tangent3ivEXT (dynamic) */
"p\0"
"glTangent3ivEXT\0"
"\0"
- /* _mesa_function_pool[23251]: Tangent3dEXT (dynamic) */
+ /* _mesa_function_pool[23504]: Tangent3dEXT (dynamic) */
"ddd\0"
"glTangent3dEXT\0"
"\0"
- /* _mesa_function_pool[23271]: SecondaryColor3dvEXT (will be remapped) */
+ /* _mesa_function_pool[23524]: SecondaryColor3dvEXT (will be remapped) */
"p\0"
"glSecondaryColor3dv\0"
"glSecondaryColor3dvEXT\0"
"\0"
- /* _mesa_function_pool[23317]: Vertex2fv (offset 129) */
+ /* _mesa_function_pool[23570]: Vertex2fv (offset 129) */
"p\0"
"glVertex2fv\0"
"\0"
- /* _mesa_function_pool[23332]: MultiDrawArraysEXT (will be remapped) */
+ /* _mesa_function_pool[23585]: MultiDrawArraysEXT (will be remapped) */
"ippi\0"
"glMultiDrawArrays\0"
"glMultiDrawArraysEXT\0"
"\0"
- /* _mesa_function_pool[23377]: BindRenderbufferEXT (will be remapped) */
+ /* _mesa_function_pool[23630]: BindRenderbufferEXT (will be remapped) */
"ii\0"
"glBindRenderbuffer\0"
"glBindRenderbufferEXT\0"
"\0"
- /* _mesa_function_pool[23422]: MultiTexCoord4dARB (offset 400) */
+ /* _mesa_function_pool[23675]: MultiTexCoord4dARB (offset 400) */
"idddd\0"
"glMultiTexCoord4d\0"
"glMultiTexCoord4dARB\0"
"\0"
- /* _mesa_function_pool[23468]: Vertex3sv (offset 141) */
+ /* _mesa_function_pool[23721]: FramebufferTextureFaceARB (will be remapped) */
+ "iiiii\0"
+ "glFramebufferTextureFaceARB\0"
+ "\0"
+ /* _mesa_function_pool[23756]: Vertex3sv (offset 141) */
"p\0"
"glVertex3sv\0"
"\0"
- /* _mesa_function_pool[23483]: SecondaryColor3usEXT (will be remapped) */
+ /* _mesa_function_pool[23771]: SecondaryColor3usEXT (will be remapped) */
"iii\0"
"glSecondaryColor3us\0"
"glSecondaryColor3usEXT\0"
"\0"
- /* _mesa_function_pool[23531]: ProgramLocalParameter4fvARB (will be remapped) */
+ /* _mesa_function_pool[23819]: ProgramLocalParameter4fvARB (will be remapped) */
"iip\0"
"glProgramLocalParameter4fvARB\0"
"\0"
- /* _mesa_function_pool[23566]: DeleteProgramsNV (will be remapped) */
+ /* _mesa_function_pool[23854]: DeleteProgramsNV (will be remapped) */
"ip\0"
"glDeleteProgramsARB\0"
"glDeleteProgramsNV\0"
"\0"
- /* _mesa_function_pool[23609]: EvalMesh1 (offset 236) */
+ /* _mesa_function_pool[23897]: EvalMesh1 (offset 236) */
"iii\0"
"glEvalMesh1\0"
"\0"
- /* _mesa_function_pool[23626]: MultiTexCoord1sARB (offset 382) */
+ /* _mesa_function_pool[23914]: PauseTransformFeedback (will be remapped) */
+ "\0"
+ "glPauseTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[23941]: MultiTexCoord1sARB (offset 382) */
"ii\0"
"glMultiTexCoord1s\0"
"glMultiTexCoord1sARB\0"
"\0"
- /* _mesa_function_pool[23669]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[23984]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */
"iffffff\0"
"glReplacementCodeuiColor3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[23716]: GetVertexAttribPointervNV (will be remapped) */
+ /* _mesa_function_pool[24031]: GetVertexAttribPointervNV (will be remapped) */
"iip\0"
"glGetVertexAttribPointerv\0"
"glGetVertexAttribPointervARB\0"
"glGetVertexAttribPointervNV\0"
"\0"
- /* _mesa_function_pool[23804]: VertexAttribs1fvNV (will be remapped) */
+ /* _mesa_function_pool[24119]: VertexAttribs1fvNV (will be remapped) */
"iip\0"
"glVertexAttribs1fvNV\0"
"\0"
- /* _mesa_function_pool[23830]: MultiTexCoord1dvARB (offset 377) */
+ /* _mesa_function_pool[24145]: MultiTexCoord1dvARB (offset 377) */
"ip\0"
"glMultiTexCoord1dv\0"
"glMultiTexCoord1dvARB\0"
"\0"
- /* _mesa_function_pool[23875]: Uniform2iARB (will be remapped) */
+ /* _mesa_function_pool[24190]: Uniform2iARB (will be remapped) */
"iii\0"
"glUniform2i\0"
"glUniform2iARB\0"
"\0"
- /* _mesa_function_pool[23907]: Vertex2iv (offset 131) */
+ /* _mesa_function_pool[24222]: Vertex2iv (offset 131) */
"p\0"
"glVertex2iv\0"
"\0"
- /* _mesa_function_pool[23922]: GetProgramStringNV (will be remapped) */
+ /* _mesa_function_pool[24237]: GetProgramStringNV (will be remapped) */
"iip\0"
"glGetProgramStringNV\0"
"\0"
- /* _mesa_function_pool[23948]: ColorPointerEXT (will be remapped) */
+ /* _mesa_function_pool[24263]: ColorPointerEXT (will be remapped) */
"iiiip\0"
"glColorPointerEXT\0"
"\0"
- /* _mesa_function_pool[23973]: LineWidth (offset 168) */
+ /* _mesa_function_pool[24288]: LineWidth (offset 168) */
"f\0"
"glLineWidth\0"
"\0"
- /* _mesa_function_pool[23988]: MapBufferARB (will be remapped) */
+ /* _mesa_function_pool[24303]: MapBufferARB (will be remapped) */
"ii\0"
"glMapBuffer\0"
"glMapBufferARB\0"
"\0"
- /* _mesa_function_pool[24019]: MultiDrawElementsBaseVertex (will be remapped) */
+ /* _mesa_function_pool[24334]: MultiDrawElementsBaseVertex (will be remapped) */
"ipipip\0"
"glMultiDrawElementsBaseVertex\0"
"\0"
- /* _mesa_function_pool[24057]: Binormal3svEXT (dynamic) */
+ /* _mesa_function_pool[24372]: Binormal3svEXT (dynamic) */
"p\0"
"glBinormal3svEXT\0"
"\0"
- /* _mesa_function_pool[24077]: ApplyTextureEXT (dynamic) */
+ /* _mesa_function_pool[24392]: ApplyTextureEXT (dynamic) */
"i\0"
"glApplyTextureEXT\0"
"\0"
- /* _mesa_function_pool[24098]: TexGendv (offset 189) */
+ /* _mesa_function_pool[24413]: TexGendv (offset 189) */
"iip\0"
"glTexGendv\0"
"\0"
- /* _mesa_function_pool[24114]: EnableIndexedEXT (will be remapped) */
+ /* _mesa_function_pool[24429]: EnableIndexedEXT (will be remapped) */
"ii\0"
"glEnableIndexedEXT\0"
"\0"
- /* _mesa_function_pool[24137]: TextureMaterialEXT (dynamic) */
+ /* _mesa_function_pool[24452]: TextureMaterialEXT (dynamic) */
"ii\0"
"glTextureMaterialEXT\0"
"\0"
- /* _mesa_function_pool[24162]: TextureLightEXT (dynamic) */
+ /* _mesa_function_pool[24477]: TextureLightEXT (dynamic) */
"i\0"
"glTextureLightEXT\0"
"\0"
- /* _mesa_function_pool[24183]: ResetMinmax (offset 370) */
+ /* _mesa_function_pool[24498]: ResetMinmax (offset 370) */
"i\0"
"glResetMinmax\0"
"glResetMinmaxEXT\0"
"\0"
- /* _mesa_function_pool[24217]: SpriteParameterfSGIX (dynamic) */
+ /* _mesa_function_pool[24532]: SpriteParameterfSGIX (dynamic) */
"if\0"
"glSpriteParameterfSGIX\0"
"\0"
- /* _mesa_function_pool[24244]: EnableClientState (offset 313) */
+ /* _mesa_function_pool[24559]: EnableClientState (offset 313) */
"i\0"
"glEnableClientState\0"
"\0"
- /* _mesa_function_pool[24267]: VertexAttrib4sNV (will be remapped) */
+ /* _mesa_function_pool[24582]: VertexAttrib4sNV (will be remapped) */
"iiiii\0"
"glVertexAttrib4sNV\0"
"\0"
- /* _mesa_function_pool[24293]: GetConvolutionParameterfv (offset 357) */
+ /* _mesa_function_pool[24608]: GetConvolutionParameterfv (offset 357) */
"iip\0"
"glGetConvolutionParameterfv\0"
"glGetConvolutionParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[24357]: VertexAttribs4dvNV (will be remapped) */
+ /* _mesa_function_pool[24672]: VertexAttribs4dvNV (will be remapped) */
"iip\0"
"glVertexAttribs4dvNV\0"
"\0"
- /* _mesa_function_pool[24383]: MultiModeDrawArraysIBM (will be remapped) */
- "pppii\0"
- "glMultiModeDrawArraysIBM\0"
- "\0"
- /* _mesa_function_pool[24415]: VertexAttrib4dARB (will be remapped) */
+ /* _mesa_function_pool[24698]: VertexAttrib4dARB (will be remapped) */
"idddd\0"
"glVertexAttrib4d\0"
"glVertexAttrib4dARB\0"
"\0"
- /* _mesa_function_pool[24459]: GetTexBumpParameterfvATI (will be remapped) */
+ /* _mesa_function_pool[24742]: GetTexBumpParameterfvATI (will be remapped) */
"ip\0"
"glGetTexBumpParameterfvATI\0"
"\0"
- /* _mesa_function_pool[24490]: ProgramNamedParameter4dNV (will be remapped) */
+ /* _mesa_function_pool[24773]: ProgramNamedParameter4dNV (will be remapped) */
"iipdddd\0"
"glProgramNamedParameter4dNV\0"
"\0"
- /* _mesa_function_pool[24527]: GetMaterialfv (offset 269) */
+ /* _mesa_function_pool[24810]: GetMaterialfv (offset 269) */
"iip\0"
"glGetMaterialfv\0"
"\0"
- /* _mesa_function_pool[24548]: VertexWeightfEXT (dynamic) */
+ /* _mesa_function_pool[24831]: VertexWeightfEXT (dynamic) */
"f\0"
"glVertexWeightfEXT\0"
"\0"
- /* _mesa_function_pool[24570]: Binormal3fEXT (dynamic) */
+ /* _mesa_function_pool[24853]: Binormal3fEXT (dynamic) */
"fff\0"
"glBinormal3fEXT\0"
"\0"
- /* _mesa_function_pool[24591]: CallList (offset 2) */
+ /* _mesa_function_pool[24874]: CallList (offset 2) */
"i\0"
"glCallList\0"
"\0"
- /* _mesa_function_pool[24605]: Materialfv (offset 170) */
+ /* _mesa_function_pool[24888]: Materialfv (offset 170) */
"iip\0"
"glMaterialfv\0"
"\0"
- /* _mesa_function_pool[24623]: TexCoord3fv (offset 113) */
+ /* _mesa_function_pool[24906]: TexCoord3fv (offset 113) */
"p\0"
"glTexCoord3fv\0"
"\0"
- /* _mesa_function_pool[24640]: FogCoordfvEXT (will be remapped) */
+ /* _mesa_function_pool[24923]: FogCoordfvEXT (will be remapped) */
"p\0"
"glFogCoordfv\0"
"glFogCoordfvEXT\0"
"\0"
- /* _mesa_function_pool[24672]: MultiTexCoord1ivARB (offset 381) */
+ /* _mesa_function_pool[24955]: MultiTexCoord1ivARB (offset 381) */
"ip\0"
"glMultiTexCoord1iv\0"
"glMultiTexCoord1ivARB\0"
"\0"
- /* _mesa_function_pool[24717]: SecondaryColor3ubEXT (will be remapped) */
+ /* _mesa_function_pool[25000]: SecondaryColor3ubEXT (will be remapped) */
"iii\0"
"glSecondaryColor3ub\0"
"glSecondaryColor3ubEXT\0"
"\0"
- /* _mesa_function_pool[24765]: MultiTexCoord2ivARB (offset 389) */
+ /* _mesa_function_pool[25048]: MultiTexCoord2ivARB (offset 389) */
"ip\0"
"glMultiTexCoord2iv\0"
"glMultiTexCoord2ivARB\0"
"\0"
- /* _mesa_function_pool[24810]: FogFuncSGIS (dynamic) */
+ /* _mesa_function_pool[25093]: FogFuncSGIS (dynamic) */
"ip\0"
"glFogFuncSGIS\0"
"\0"
- /* _mesa_function_pool[24828]: CopyTexSubImage2D (offset 326) */
+ /* _mesa_function_pool[25111]: CopyTexSubImage2D (offset 326) */
"iiiiiiii\0"
"glCopyTexSubImage2D\0"
"glCopyTexSubImage2DEXT\0"
"\0"
- /* _mesa_function_pool[24881]: GetObjectParameterivARB (will be remapped) */
+ /* _mesa_function_pool[25164]: GetObjectParameterivARB (will be remapped) */
"iip\0"
"glGetObjectParameterivARB\0"
"\0"
- /* _mesa_function_pool[24912]: Color3iv (offset 16) */
+ /* _mesa_function_pool[25195]: Color3iv (offset 16) */
"p\0"
"glColor3iv\0"
"\0"
- /* _mesa_function_pool[24926]: TexCoord4fVertex4fSUN (dynamic) */
+ /* _mesa_function_pool[25209]: TexCoord4fVertex4fSUN (dynamic) */
"ffffffff\0"
"glTexCoord4fVertex4fSUN\0"
"\0"
- /* _mesa_function_pool[24960]: DrawElements (offset 311) */
+ /* _mesa_function_pool[25243]: DrawElements (offset 311) */
"iiip\0"
"glDrawElements\0"
"\0"
- /* _mesa_function_pool[24981]: BindVertexArrayAPPLE (will be remapped) */
+ /* _mesa_function_pool[25264]: BindVertexArrayAPPLE (will be remapped) */
"i\0"
"glBindVertexArrayAPPLE\0"
"\0"
- /* _mesa_function_pool[25007]: GetProgramLocalParameterdvARB (will be remapped) */
+ /* _mesa_function_pool[25290]: GetProgramLocalParameterdvARB (will be remapped) */
"iip\0"
"glGetProgramLocalParameterdvARB\0"
"\0"
- /* _mesa_function_pool[25044]: GetHistogramParameteriv (offset 363) */
+ /* _mesa_function_pool[25327]: GetHistogramParameteriv (offset 363) */
"iip\0"
"glGetHistogramParameteriv\0"
"glGetHistogramParameterivEXT\0"
"\0"
- /* _mesa_function_pool[25104]: MultiTexCoord1iARB (offset 380) */
+ /* _mesa_function_pool[25387]: MultiTexCoord1iARB (offset 380) */
"ii\0"
"glMultiTexCoord1i\0"
"glMultiTexCoord1iARB\0"
"\0"
- /* _mesa_function_pool[25147]: GetConvolutionFilter (offset 356) */
+ /* _mesa_function_pool[25430]: GetConvolutionFilter (offset 356) */
"iiip\0"
"glGetConvolutionFilter\0"
"glGetConvolutionFilterEXT\0"
"\0"
- /* _mesa_function_pool[25202]: GetProgramivARB (will be remapped) */
+ /* _mesa_function_pool[25485]: GetProgramivARB (will be remapped) */
"iip\0"
"glGetProgramivARB\0"
"\0"
- /* _mesa_function_pool[25225]: BlendFuncSeparateEXT (will be remapped) */
+ /* _mesa_function_pool[25508]: BlendFuncSeparateEXT (will be remapped) */
"iiii\0"
"glBlendFuncSeparate\0"
"glBlendFuncSeparateEXT\0"
"glBlendFuncSeparateINGR\0"
"\0"
- /* _mesa_function_pool[25298]: MapBufferRange (will be remapped) */
+ /* _mesa_function_pool[25581]: MapBufferRange (will be remapped) */
"iiii\0"
"glMapBufferRange\0"
"\0"
- /* _mesa_function_pool[25321]: ProgramParameters4dvNV (will be remapped) */
+ /* _mesa_function_pool[25604]: ProgramParameters4dvNV (will be remapped) */
"iiip\0"
"glProgramParameters4dvNV\0"
"\0"
- /* _mesa_function_pool[25352]: TexCoord2fColor3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[25635]: TexCoord2fColor3fVertex3fvSUN (dynamic) */
"ppp\0"
"glTexCoord2fColor3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[25389]: EvalPoint2 (offset 239) */
+ /* _mesa_function_pool[25672]: EvalPoint2 (offset 239) */
"ii\0"
"glEvalPoint2\0"
"\0"
- /* _mesa_function_pool[25406]: EvalPoint1 (offset 237) */
+ /* _mesa_function_pool[25689]: EvalPoint1 (offset 237) */
"i\0"
"glEvalPoint1\0"
"\0"
- /* _mesa_function_pool[25422]: Binormal3dvEXT (dynamic) */
+ /* _mesa_function_pool[25705]: Binormal3dvEXT (dynamic) */
"p\0"
"glBinormal3dvEXT\0"
"\0"
- /* _mesa_function_pool[25442]: PopMatrix (offset 297) */
+ /* _mesa_function_pool[25725]: PopMatrix (offset 297) */
"\0"
"glPopMatrix\0"
"\0"
- /* _mesa_function_pool[25456]: FinishFenceNV (will be remapped) */
+ /* _mesa_function_pool[25739]: FinishFenceNV (will be remapped) */
"i\0"
"glFinishFenceNV\0"
"\0"
- /* _mesa_function_pool[25475]: GetFogFuncSGIS (dynamic) */
+ /* _mesa_function_pool[25758]: GetFogFuncSGIS (dynamic) */
"p\0"
"glGetFogFuncSGIS\0"
"\0"
- /* _mesa_function_pool[25495]: GetUniformLocationARB (will be remapped) */
+ /* _mesa_function_pool[25778]: GetUniformLocationARB (will be remapped) */
"ip\0"
"glGetUniformLocation\0"
"glGetUniformLocationARB\0"
"\0"
- /* _mesa_function_pool[25544]: SecondaryColor3fEXT (will be remapped) */
+ /* _mesa_function_pool[25827]: SecondaryColor3fEXT (will be remapped) */
"fff\0"
"glSecondaryColor3f\0"
"glSecondaryColor3fEXT\0"
"\0"
- /* _mesa_function_pool[25590]: GetTexGeniv (offset 280) */
+ /* _mesa_function_pool[25873]: GetTexGeniv (offset 280) */
"iip\0"
"glGetTexGeniv\0"
"\0"
- /* _mesa_function_pool[25609]: CombinerInputNV (will be remapped) */
+ /* _mesa_function_pool[25892]: CombinerInputNV (will be remapped) */
"iiiiii\0"
"glCombinerInputNV\0"
"\0"
- /* _mesa_function_pool[25635]: VertexAttrib3sARB (will be remapped) */
+ /* _mesa_function_pool[25918]: VertexAttrib3sARB (will be remapped) */
"iiii\0"
"glVertexAttrib3s\0"
"glVertexAttrib3sARB\0"
"\0"
- /* _mesa_function_pool[25678]: ColorMaskIndexedEXT (will be remapped) */
- "iiiii\0"
- "glColorMaskIndexedEXT\0"
+ /* _mesa_function_pool[25961]: IsTransformFeedback (will be remapped) */
+ "i\0"
+ "glIsTransformFeedback\0"
"\0"
- /* _mesa_function_pool[25707]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[25986]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */
"ppp\0"
"glReplacementCodeuiNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[25752]: Map2d (offset 222) */
+ /* _mesa_function_pool[26031]: Map2d (offset 222) */
"iddiiddiip\0"
"glMap2d\0"
"\0"
- /* _mesa_function_pool[25772]: Map2f (offset 223) */
+ /* _mesa_function_pool[26051]: Map2f (offset 223) */
"iffiiffiip\0"
"glMap2f\0"
"\0"
- /* _mesa_function_pool[25792]: ProgramStringARB (will be remapped) */
+ /* _mesa_function_pool[26071]: ProgramStringARB (will be remapped) */
"iiip\0"
"glProgramStringARB\0"
"\0"
- /* _mesa_function_pool[25817]: Vertex4s (offset 148) */
+ /* _mesa_function_pool[26096]: Vertex4s (offset 148) */
"iiii\0"
"glVertex4s\0"
"\0"
- /* _mesa_function_pool[25834]: TexCoord4fVertex4fvSUN (dynamic) */
+ /* _mesa_function_pool[26113]: TexCoord4fVertex4fvSUN (dynamic) */
"pp\0"
"glTexCoord4fVertex4fvSUN\0"
"\0"
- /* _mesa_function_pool[25863]: VertexAttrib3sNV (will be remapped) */
- "iiii\0"
- "glVertexAttrib3sNV\0"
+ /* _mesa_function_pool[26142]: FragmentLightModelivSGIX (dynamic) */
+ "ip\0"
+ "glFragmentLightModelivSGIX\0"
"\0"
- /* _mesa_function_pool[25888]: VertexAttrib1fNV (will be remapped) */
+ /* _mesa_function_pool[26173]: VertexAttrib1fNV (will be remapped) */
"if\0"
"glVertexAttrib1fNV\0"
"\0"
- /* _mesa_function_pool[25911]: Vertex4f (offset 144) */
+ /* _mesa_function_pool[26196]: Vertex4f (offset 144) */
"ffff\0"
"glVertex4f\0"
"\0"
- /* _mesa_function_pool[25928]: EvalCoord1d (offset 228) */
+ /* _mesa_function_pool[26213]: EvalCoord1d (offset 228) */
"d\0"
"glEvalCoord1d\0"
"\0"
- /* _mesa_function_pool[25945]: Vertex4d (offset 142) */
+ /* _mesa_function_pool[26230]: Vertex4d (offset 142) */
"dddd\0"
"glVertex4d\0"
"\0"
- /* _mesa_function_pool[25962]: RasterPos4dv (offset 79) */
+ /* _mesa_function_pool[26247]: RasterPos4dv (offset 79) */
"p\0"
"glRasterPos4dv\0"
"\0"
- /* _mesa_function_pool[25980]: FragmentLightfSGIX (dynamic) */
+ /* _mesa_function_pool[26265]: FragmentLightfSGIX (dynamic) */
"iif\0"
"glFragmentLightfSGIX\0"
"\0"
- /* _mesa_function_pool[26006]: GetCompressedTexImageARB (will be remapped) */
+ /* _mesa_function_pool[26291]: GetCompressedTexImageARB (will be remapped) */
"iip\0"
"glGetCompressedTexImage\0"
"glGetCompressedTexImageARB\0"
"\0"
- /* _mesa_function_pool[26062]: GetTexGenfv (offset 279) */
+ /* _mesa_function_pool[26347]: GetTexGenfv (offset 279) */
"iip\0"
"glGetTexGenfv\0"
"\0"
- /* _mesa_function_pool[26081]: Vertex4i (offset 146) */
+ /* _mesa_function_pool[26366]: Vertex4i (offset 146) */
"iiii\0"
"glVertex4i\0"
"\0"
- /* _mesa_function_pool[26098]: VertexWeightPointerEXT (dynamic) */
+ /* _mesa_function_pool[26383]: VertexWeightPointerEXT (dynamic) */
"iiip\0"
"glVertexWeightPointerEXT\0"
"\0"
- /* _mesa_function_pool[26129]: GetHistogram (offset 361) */
+ /* _mesa_function_pool[26414]: GetHistogram (offset 361) */
"iiiip\0"
"glGetHistogram\0"
"glGetHistogramEXT\0"
"\0"
- /* _mesa_function_pool[26169]: ActiveStencilFaceEXT (will be remapped) */
+ /* _mesa_function_pool[26454]: ActiveStencilFaceEXT (will be remapped) */
"i\0"
"glActiveStencilFaceEXT\0"
"\0"
- /* _mesa_function_pool[26195]: StencilFuncSeparateATI (will be remapped) */
+ /* _mesa_function_pool[26480]: StencilFuncSeparateATI (will be remapped) */
"iiii\0"
"glStencilFuncSeparateATI\0"
"\0"
- /* _mesa_function_pool[26226]: Materialf (offset 169) */
+ /* _mesa_function_pool[26511]: Materialf (offset 169) */
"iif\0"
"glMaterialf\0"
"\0"
- /* _mesa_function_pool[26243]: GetShaderSourceARB (will be remapped) */
+ /* _mesa_function_pool[26528]: GetShaderSourceARB (will be remapped) */
"iipp\0"
"glGetShaderSource\0"
"glGetShaderSourceARB\0"
"\0"
- /* _mesa_function_pool[26288]: IglooInterfaceSGIX (dynamic) */
+ /* _mesa_function_pool[26573]: IglooInterfaceSGIX (dynamic) */
"ip\0"
"glIglooInterfaceSGIX\0"
"\0"
- /* _mesa_function_pool[26313]: Materiali (offset 171) */
+ /* _mesa_function_pool[26598]: Materiali (offset 171) */
"iii\0"
"glMateriali\0"
"\0"
- /* _mesa_function_pool[26330]: VertexAttrib4dNV (will be remapped) */
+ /* _mesa_function_pool[26615]: VertexAttrib4dNV (will be remapped) */
"idddd\0"
"glVertexAttrib4dNV\0"
"\0"
- /* _mesa_function_pool[26356]: MultiModeDrawElementsIBM (will be remapped) */
+ /* _mesa_function_pool[26641]: MultiModeDrawElementsIBM (will be remapped) */
"ppipii\0"
"glMultiModeDrawElementsIBM\0"
"\0"
- /* _mesa_function_pool[26391]: Indexsv (offset 51) */
+ /* _mesa_function_pool[26676]: Indexsv (offset 51) */
"p\0"
"glIndexsv\0"
"\0"
- /* _mesa_function_pool[26404]: MultiTexCoord4svARB (offset 407) */
+ /* _mesa_function_pool[26689]: MultiTexCoord4svARB (offset 407) */
"ip\0"
"glMultiTexCoord4sv\0"
"glMultiTexCoord4svARB\0"
"\0"
- /* _mesa_function_pool[26449]: LightModelfv (offset 164) */
+ /* _mesa_function_pool[26734]: LightModelfv (offset 164) */
"ip\0"
"glLightModelfv\0"
"\0"
- /* _mesa_function_pool[26468]: TexCoord2dv (offset 103) */
+ /* _mesa_function_pool[26753]: TexCoord2dv (offset 103) */
"p\0"
"glTexCoord2dv\0"
"\0"
- /* _mesa_function_pool[26485]: GenQueriesARB (will be remapped) */
+ /* _mesa_function_pool[26770]: GenQueriesARB (will be remapped) */
"ip\0"
"glGenQueries\0"
"glGenQueriesARB\0"
"\0"
- /* _mesa_function_pool[26518]: EvalCoord1dv (offset 229) */
+ /* _mesa_function_pool[26803]: EvalCoord1dv (offset 229) */
"p\0"
"glEvalCoord1dv\0"
"\0"
- /* _mesa_function_pool[26536]: ReplacementCodeuiVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[26821]: ReplacementCodeuiVertex3fSUN (dynamic) */
"ifff\0"
"glReplacementCodeuiVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[26573]: Translated (offset 303) */
+ /* _mesa_function_pool[26858]: Translated (offset 303) */
"ddd\0"
"glTranslated\0"
"\0"
- /* _mesa_function_pool[26591]: Translatef (offset 304) */
+ /* _mesa_function_pool[26876]: Translatef (offset 304) */
"fff\0"
"glTranslatef\0"
"\0"
- /* _mesa_function_pool[26609]: StencilMask (offset 209) */
+ /* _mesa_function_pool[26894]: StencilMask (offset 209) */
"i\0"
"glStencilMask\0"
"\0"
- /* _mesa_function_pool[26626]: Tangent3iEXT (dynamic) */
+ /* _mesa_function_pool[26911]: Tangent3iEXT (dynamic) */
"iii\0"
"glTangent3iEXT\0"
"\0"
- /* _mesa_function_pool[26646]: GetLightiv (offset 265) */
+ /* _mesa_function_pool[26931]: GetLightiv (offset 265) */
"iip\0"
"glGetLightiv\0"
"\0"
- /* _mesa_function_pool[26664]: DrawMeshArraysSUN (dynamic) */
+ /* _mesa_function_pool[26949]: DrawMeshArraysSUN (dynamic) */
"iiii\0"
"glDrawMeshArraysSUN\0"
"\0"
- /* _mesa_function_pool[26690]: IsList (offset 287) */
+ /* _mesa_function_pool[26975]: IsList (offset 287) */
"i\0"
"glIsList\0"
"\0"
- /* _mesa_function_pool[26702]: IsSync (will be remapped) */
+ /* _mesa_function_pool[26987]: IsSync (will be remapped) */
"i\0"
"glIsSync\0"
"\0"
- /* _mesa_function_pool[26714]: RenderMode (offset 196) */
+ /* _mesa_function_pool[26999]: RenderMode (offset 196) */
"i\0"
"glRenderMode\0"
"\0"
- /* _mesa_function_pool[26730]: GetMapControlPointsNV (dynamic) */
+ /* _mesa_function_pool[27015]: GetMapControlPointsNV (dynamic) */
"iiiiiip\0"
"glGetMapControlPointsNV\0"
"\0"
- /* _mesa_function_pool[26763]: DrawBuffersARB (will be remapped) */
+ /* _mesa_function_pool[27048]: DrawBuffersARB (will be remapped) */
"ip\0"
"glDrawBuffers\0"
"glDrawBuffersARB\0"
"glDrawBuffersATI\0"
"\0"
- /* _mesa_function_pool[26815]: ProgramLocalParameter4fARB (will be remapped) */
+ /* _mesa_function_pool[27100]: ProgramLocalParameter4fARB (will be remapped) */
"iiffff\0"
"glProgramLocalParameter4fARB\0"
"\0"
- /* _mesa_function_pool[26852]: SpriteParameterivSGIX (dynamic) */
+ /* _mesa_function_pool[27137]: SpriteParameterivSGIX (dynamic) */
"ip\0"
"glSpriteParameterivSGIX\0"
"\0"
- /* _mesa_function_pool[26880]: ProvokingVertexEXT (will be remapped) */
+ /* _mesa_function_pool[27165]: ProvokingVertexEXT (will be remapped) */
"i\0"
"glProvokingVertexEXT\0"
"glProvokingVertex\0"
"\0"
- /* _mesa_function_pool[26922]: MultiTexCoord1fARB (offset 378) */
+ /* _mesa_function_pool[27207]: MultiTexCoord1fARB (offset 378) */
"if\0"
"glMultiTexCoord1f\0"
"glMultiTexCoord1fARB\0"
"\0"
- /* _mesa_function_pool[26965]: LoadName (offset 198) */
+ /* _mesa_function_pool[27250]: LoadName (offset 198) */
"i\0"
"glLoadName\0"
"\0"
- /* _mesa_function_pool[26979]: VertexAttribs4ubvNV (will be remapped) */
+ /* _mesa_function_pool[27264]: VertexAttribs4ubvNV (will be remapped) */
"iip\0"
"glVertexAttribs4ubvNV\0"
"\0"
- /* _mesa_function_pool[27006]: WeightsvARB (dynamic) */
+ /* _mesa_function_pool[27291]: WeightsvARB (dynamic) */
"ip\0"
"glWeightsvARB\0"
"\0"
- /* _mesa_function_pool[27024]: Uniform1fvARB (will be remapped) */
+ /* _mesa_function_pool[27309]: Uniform1fvARB (will be remapped) */
"iip\0"
"glUniform1fv\0"
"glUniform1fvARB\0"
"\0"
- /* _mesa_function_pool[27058]: CopyTexSubImage1D (offset 325) */
+ /* _mesa_function_pool[27343]: CopyTexSubImage1D (offset 325) */
"iiiiii\0"
"glCopyTexSubImage1D\0"
"glCopyTexSubImage1DEXT\0"
"\0"
- /* _mesa_function_pool[27109]: CullFace (offset 152) */
+ /* _mesa_function_pool[27394]: CullFace (offset 152) */
"i\0"
"glCullFace\0"
"\0"
- /* _mesa_function_pool[27123]: BindTexture (offset 307) */
+ /* _mesa_function_pool[27408]: BindTexture (offset 307) */
"ii\0"
"glBindTexture\0"
"glBindTextureEXT\0"
"\0"
- /* _mesa_function_pool[27158]: BeginFragmentShaderATI (will be remapped) */
+ /* _mesa_function_pool[27443]: BeginFragmentShaderATI (will be remapped) */
"\0"
"glBeginFragmentShaderATI\0"
"\0"
- /* _mesa_function_pool[27185]: MultiTexCoord4fARB (offset 402) */
+ /* _mesa_function_pool[27470]: MultiTexCoord4fARB (offset 402) */
"iffff\0"
"glMultiTexCoord4f\0"
"glMultiTexCoord4fARB\0"
"\0"
- /* _mesa_function_pool[27231]: VertexAttribs3svNV (will be remapped) */
+ /* _mesa_function_pool[27516]: VertexAttribs3svNV (will be remapped) */
"iip\0"
"glVertexAttribs3svNV\0"
"\0"
- /* _mesa_function_pool[27257]: StencilFunc (offset 243) */
+ /* _mesa_function_pool[27542]: StencilFunc (offset 243) */
"iii\0"
"glStencilFunc\0"
"\0"
- /* _mesa_function_pool[27276]: CopyPixels (offset 255) */
+ /* _mesa_function_pool[27561]: CopyPixels (offset 255) */
"iiiii\0"
"glCopyPixels\0"
"\0"
- /* _mesa_function_pool[27296]: Rectsv (offset 93) */
+ /* _mesa_function_pool[27581]: Rectsv (offset 93) */
"pp\0"
"glRectsv\0"
"\0"
- /* _mesa_function_pool[27309]: ReplacementCodeuivSUN (dynamic) */
+ /* _mesa_function_pool[27594]: ReplacementCodeuivSUN (dynamic) */
"p\0"
"glReplacementCodeuivSUN\0"
"\0"
- /* _mesa_function_pool[27336]: EnableVertexAttribArrayARB (will be remapped) */
+ /* _mesa_function_pool[27621]: EnableVertexAttribArrayARB (will be remapped) */
"i\0"
"glEnableVertexAttribArray\0"
"glEnableVertexAttribArrayARB\0"
"\0"
- /* _mesa_function_pool[27394]: NormalPointervINTEL (dynamic) */
+ /* _mesa_function_pool[27679]: NormalPointervINTEL (dynamic) */
"ip\0"
"glNormalPointervINTEL\0"
"\0"
- /* _mesa_function_pool[27420]: CopyConvolutionFilter2D (offset 355) */
+ /* _mesa_function_pool[27705]: CopyConvolutionFilter2D (offset 355) */
"iiiiii\0"
"glCopyConvolutionFilter2D\0"
"glCopyConvolutionFilter2DEXT\0"
"\0"
- /* _mesa_function_pool[27483]: WindowPos3ivMESA (will be remapped) */
+ /* _mesa_function_pool[27768]: WindowPos3ivMESA (will be remapped) */
"p\0"
"glWindowPos3iv\0"
"glWindowPos3ivARB\0"
"glWindowPos3ivMESA\0"
"\0"
- /* _mesa_function_pool[27538]: CopyBufferSubData (will be remapped) */
+ /* _mesa_function_pool[27823]: CopyBufferSubData (will be remapped) */
"iiiii\0"
"glCopyBufferSubData\0"
"\0"
- /* _mesa_function_pool[27565]: NormalPointer (offset 318) */
+ /* _mesa_function_pool[27850]: NormalPointer (offset 318) */
"iip\0"
"glNormalPointer\0"
"\0"
- /* _mesa_function_pool[27586]: TexParameterfv (offset 179) */
+ /* _mesa_function_pool[27871]: TexParameterfv (offset 179) */
"iip\0"
"glTexParameterfv\0"
"\0"
- /* _mesa_function_pool[27608]: IsBufferARB (will be remapped) */
+ /* _mesa_function_pool[27893]: IsBufferARB (will be remapped) */
"i\0"
"glIsBuffer\0"
"glIsBufferARB\0"
"\0"
- /* _mesa_function_pool[27636]: WindowPos4iMESA (will be remapped) */
+ /* _mesa_function_pool[27921]: WindowPos4iMESA (will be remapped) */
"iiii\0"
"glWindowPos4iMESA\0"
"\0"
- /* _mesa_function_pool[27660]: VertexAttrib4uivARB (will be remapped) */
+ /* _mesa_function_pool[27945]: VertexAttrib4uivARB (will be remapped) */
"ip\0"
"glVertexAttrib4uiv\0"
"glVertexAttrib4uivARB\0"
"\0"
- /* _mesa_function_pool[27705]: Tangent3bvEXT (dynamic) */
+ /* _mesa_function_pool[27990]: Tangent3bvEXT (dynamic) */
"p\0"
"glTangent3bvEXT\0"
"\0"
- /* _mesa_function_pool[27724]: UniformMatrix3x4fv (will be remapped) */
+ /* _mesa_function_pool[28009]: UniformMatrix3x4fv (will be remapped) */
"iiip\0"
"glUniformMatrix3x4fv\0"
"\0"
- /* _mesa_function_pool[27751]: ClipPlane (offset 150) */
+ /* _mesa_function_pool[28036]: ClipPlane (offset 150) */
"ip\0"
"glClipPlane\0"
"\0"
- /* _mesa_function_pool[27767]: Recti (offset 90) */
+ /* _mesa_function_pool[28052]: Recti (offset 90) */
"iiii\0"
"glRecti\0"
"\0"
- /* _mesa_function_pool[27781]: DrawRangeElementsBaseVertex (will be remapped) */
+ /* _mesa_function_pool[28066]: DrawRangeElementsBaseVertex (will be remapped) */
"iiiiipi\0"
"glDrawRangeElementsBaseVertex\0"
"\0"
- /* _mesa_function_pool[27820]: TexCoordPointervINTEL (dynamic) */
+ /* _mesa_function_pool[28105]: TexCoordPointervINTEL (dynamic) */
"iip\0"
"glTexCoordPointervINTEL\0"
"\0"
- /* _mesa_function_pool[27849]: DeleteBuffersARB (will be remapped) */
+ /* _mesa_function_pool[28134]: DeleteBuffersARB (will be remapped) */
"ip\0"
"glDeleteBuffers\0"
"glDeleteBuffersARB\0"
"\0"
- /* _mesa_function_pool[27888]: PixelTransformParameterfvEXT (dynamic) */
+ /* _mesa_function_pool[28173]: PixelTransformParameterfvEXT (dynamic) */
"iip\0"
"glPixelTransformParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[27924]: WindowPos4fvMESA (will be remapped) */
+ /* _mesa_function_pool[28209]: WindowPos4fvMESA (will be remapped) */
"p\0"
"glWindowPos4fvMESA\0"
"\0"
- /* _mesa_function_pool[27946]: GetPixelMapuiv (offset 272) */
+ /* _mesa_function_pool[28231]: GetPixelMapuiv (offset 272) */
"ip\0"
"glGetPixelMapuiv\0"
"\0"
- /* _mesa_function_pool[27967]: Rectf (offset 88) */
+ /* _mesa_function_pool[28252]: Rectf (offset 88) */
"ffff\0"
"glRectf\0"
"\0"
- /* _mesa_function_pool[27981]: VertexAttrib1sNV (will be remapped) */
+ /* _mesa_function_pool[28266]: VertexAttrib1sNV (will be remapped) */
"ii\0"
"glVertexAttrib1sNV\0"
"\0"
- /* _mesa_function_pool[28004]: Indexfv (offset 47) */
+ /* _mesa_function_pool[28289]: Indexfv (offset 47) */
"p\0"
"glIndexfv\0"
"\0"
- /* _mesa_function_pool[28017]: SecondaryColor3svEXT (will be remapped) */
+ /* _mesa_function_pool[28302]: SecondaryColor3svEXT (will be remapped) */
"p\0"
"glSecondaryColor3sv\0"
"glSecondaryColor3svEXT\0"
"\0"
- /* _mesa_function_pool[28063]: LoadTransposeMatrixfARB (will be remapped) */
+ /* _mesa_function_pool[28348]: LoadTransposeMatrixfARB (will be remapped) */
"p\0"
"glLoadTransposeMatrixf\0"
"glLoadTransposeMatrixfARB\0"
"\0"
- /* _mesa_function_pool[28115]: GetPointerv (offset 329) */
+ /* _mesa_function_pool[28400]: GetPointerv (offset 329) */
"ip\0"
"glGetPointerv\0"
"glGetPointervEXT\0"
"\0"
- /* _mesa_function_pool[28150]: Tangent3bEXT (dynamic) */
+ /* _mesa_function_pool[28435]: Tangent3bEXT (dynamic) */
"iii\0"
"glTangent3bEXT\0"
"\0"
- /* _mesa_function_pool[28170]: CombinerParameterfNV (will be remapped) */
+ /* _mesa_function_pool[28455]: CombinerParameterfNV (will be remapped) */
"if\0"
"glCombinerParameterfNV\0"
"\0"
- /* _mesa_function_pool[28197]: IndexMask (offset 212) */
+ /* _mesa_function_pool[28482]: IndexMask (offset 212) */
"i\0"
"glIndexMask\0"
"\0"
- /* _mesa_function_pool[28212]: BindProgramNV (will be remapped) */
+ /* _mesa_function_pool[28497]: BindProgramNV (will be remapped) */
"ii\0"
"glBindProgramARB\0"
"glBindProgramNV\0"
"\0"
- /* _mesa_function_pool[28249]: VertexAttrib4svARB (will be remapped) */
+ /* _mesa_function_pool[28534]: VertexAttrib4svARB (will be remapped) */
"ip\0"
"glVertexAttrib4sv\0"
"glVertexAttrib4svARB\0"
"\0"
- /* _mesa_function_pool[28292]: GetFloatv (offset 262) */
+ /* _mesa_function_pool[28577]: GetFloatv (offset 262) */
"ip\0"
"glGetFloatv\0"
"\0"
- /* _mesa_function_pool[28308]: CreateDebugObjectMESA (dynamic) */
+ /* _mesa_function_pool[28593]: CreateDebugObjectMESA (dynamic) */
"\0"
"glCreateDebugObjectMESA\0"
"\0"
- /* _mesa_function_pool[28334]: GetShaderiv (will be remapped) */
+ /* _mesa_function_pool[28619]: GetShaderiv (will be remapped) */
"iip\0"
"glGetShaderiv\0"
"\0"
- /* _mesa_function_pool[28353]: ClientWaitSync (will be remapped) */
+ /* _mesa_function_pool[28638]: ClientWaitSync (will be remapped) */
"iii\0"
"glClientWaitSync\0"
"\0"
- /* _mesa_function_pool[28375]: TexCoord4s (offset 124) */
+ /* _mesa_function_pool[28660]: TexCoord4s (offset 124) */
"iiii\0"
"glTexCoord4s\0"
"\0"
- /* _mesa_function_pool[28394]: TexCoord3sv (offset 117) */
+ /* _mesa_function_pool[28679]: TexCoord3sv (offset 117) */
"p\0"
"glTexCoord3sv\0"
"\0"
- /* _mesa_function_pool[28411]: BindFragmentShaderATI (will be remapped) */
+ /* _mesa_function_pool[28696]: BindFragmentShaderATI (will be remapped) */
"i\0"
"glBindFragmentShaderATI\0"
"\0"
- /* _mesa_function_pool[28438]: PopAttrib (offset 218) */
+ /* _mesa_function_pool[28723]: PopAttrib (offset 218) */
"\0"
"glPopAttrib\0"
"\0"
- /* _mesa_function_pool[28452]: Fogfv (offset 154) */
+ /* _mesa_function_pool[28737]: Fogfv (offset 154) */
"ip\0"
"glFogfv\0"
"\0"
- /* _mesa_function_pool[28464]: UnmapBufferARB (will be remapped) */
+ /* _mesa_function_pool[28749]: UnmapBufferARB (will be remapped) */
"i\0"
"glUnmapBuffer\0"
"glUnmapBufferARB\0"
"\0"
- /* _mesa_function_pool[28498]: InitNames (offset 197) */
+ /* _mesa_function_pool[28783]: InitNames (offset 197) */
"\0"
"glInitNames\0"
"\0"
- /* _mesa_function_pool[28512]: Normal3sv (offset 61) */
+ /* _mesa_function_pool[28797]: Normal3sv (offset 61) */
"p\0"
"glNormal3sv\0"
"\0"
- /* _mesa_function_pool[28527]: Minmax (offset 368) */
+ /* _mesa_function_pool[28812]: Minmax (offset 368) */
"iii\0"
"glMinmax\0"
"glMinmaxEXT\0"
"\0"
- /* _mesa_function_pool[28553]: TexCoord4d (offset 118) */
+ /* _mesa_function_pool[28838]: TexCoord4d (offset 118) */
"dddd\0"
"glTexCoord4d\0"
"\0"
- /* _mesa_function_pool[28572]: TexCoord4f (offset 120) */
+ /* _mesa_function_pool[28857]: DeformationMap3dSGIX (dynamic) */
+ "iddiiddiiddiip\0"
+ "glDeformationMap3dSGIX\0"
+ "\0"
+ /* _mesa_function_pool[28896]: TexCoord4f (offset 120) */
"ffff\0"
"glTexCoord4f\0"
"\0"
- /* _mesa_function_pool[28591]: FogCoorddvEXT (will be remapped) */
+ /* _mesa_function_pool[28915]: FogCoorddvEXT (will be remapped) */
"p\0"
"glFogCoorddv\0"
"glFogCoorddvEXT\0"
"\0"
- /* _mesa_function_pool[28623]: FinishTextureSUNX (dynamic) */
+ /* _mesa_function_pool[28947]: FinishTextureSUNX (dynamic) */
"\0"
"glFinishTextureSUNX\0"
"\0"
- /* _mesa_function_pool[28645]: GetFragmentLightfvSGIX (dynamic) */
+ /* _mesa_function_pool[28969]: GetFragmentLightfvSGIX (dynamic) */
"iip\0"
"glGetFragmentLightfvSGIX\0"
"\0"
- /* _mesa_function_pool[28675]: Binormal3fvEXT (dynamic) */
+ /* _mesa_function_pool[28999]: Binormal3fvEXT (dynamic) */
"p\0"
"glBinormal3fvEXT\0"
"\0"
- /* _mesa_function_pool[28695]: GetBooleanv (offset 258) */
+ /* _mesa_function_pool[29019]: GetBooleanv (offset 258) */
"ip\0"
"glGetBooleanv\0"
"\0"
- /* _mesa_function_pool[28713]: ColorFragmentOp3ATI (will be remapped) */
+ /* _mesa_function_pool[29037]: ColorFragmentOp3ATI (will be remapped) */
"iiiiiiiiiiiii\0"
"glColorFragmentOp3ATI\0"
"\0"
- /* _mesa_function_pool[28750]: Hint (offset 158) */
+ /* _mesa_function_pool[29074]: Hint (offset 158) */
"ii\0"
"glHint\0"
"\0"
- /* _mesa_function_pool[28761]: Color4dv (offset 28) */
+ /* _mesa_function_pool[29085]: Color4dv (offset 28) */
"p\0"
"glColor4dv\0"
"\0"
- /* _mesa_function_pool[28775]: VertexAttrib2svARB (will be remapped) */
+ /* _mesa_function_pool[29099]: VertexAttrib2svARB (will be remapped) */
"ip\0"
"glVertexAttrib2sv\0"
"glVertexAttrib2svARB\0"
"\0"
- /* _mesa_function_pool[28818]: AreProgramsResidentNV (will be remapped) */
+ /* _mesa_function_pool[29142]: AreProgramsResidentNV (will be remapped) */
"ipp\0"
"glAreProgramsResidentNV\0"
"\0"
- /* _mesa_function_pool[28847]: WindowPos3svMESA (will be remapped) */
+ /* _mesa_function_pool[29171]: WindowPos3svMESA (will be remapped) */
"p\0"
"glWindowPos3sv\0"
"glWindowPos3svARB\0"
"glWindowPos3svMESA\0"
"\0"
- /* _mesa_function_pool[28902]: CopyColorSubTable (offset 347) */
+ /* _mesa_function_pool[29226]: CopyColorSubTable (offset 347) */
"iiiii\0"
"glCopyColorSubTable\0"
"glCopyColorSubTableEXT\0"
"\0"
- /* _mesa_function_pool[28952]: WeightdvARB (dynamic) */
+ /* _mesa_function_pool[29276]: WeightdvARB (dynamic) */
"ip\0"
"glWeightdvARB\0"
"\0"
- /* _mesa_function_pool[28970]: DeleteRenderbuffersEXT (will be remapped) */
+ /* _mesa_function_pool[29294]: DeleteRenderbuffersEXT (will be remapped) */
"ip\0"
"glDeleteRenderbuffers\0"
"glDeleteRenderbuffersEXT\0"
"\0"
- /* _mesa_function_pool[29021]: VertexAttrib4NubvARB (will be remapped) */
+ /* _mesa_function_pool[29345]: VertexAttrib4NubvARB (will be remapped) */
"ip\0"
"glVertexAttrib4Nubv\0"
"glVertexAttrib4NubvARB\0"
"\0"
- /* _mesa_function_pool[29068]: VertexAttrib3dvNV (will be remapped) */
+ /* _mesa_function_pool[29392]: VertexAttrib3dvNV (will be remapped) */
"ip\0"
"glVertexAttrib3dvNV\0"
"\0"
- /* _mesa_function_pool[29092]: GetObjectParameterfvARB (will be remapped) */
+ /* _mesa_function_pool[29416]: GetObjectParameterfvARB (will be remapped) */
"iip\0"
"glGetObjectParameterfvARB\0"
"\0"
- /* _mesa_function_pool[29123]: Vertex4iv (offset 147) */
+ /* _mesa_function_pool[29447]: Vertex4iv (offset 147) */
"p\0"
"glVertex4iv\0"
"\0"
- /* _mesa_function_pool[29138]: GetProgramEnvParameterdvARB (will be remapped) */
+ /* _mesa_function_pool[29462]: GetProgramEnvParameterdvARB (will be remapped) */
"iip\0"
"glGetProgramEnvParameterdvARB\0"
"\0"
- /* _mesa_function_pool[29173]: TexCoord4dv (offset 119) */
+ /* _mesa_function_pool[29497]: TexCoord4dv (offset 119) */
"p\0"
"glTexCoord4dv\0"
"\0"
- /* _mesa_function_pool[29190]: LockArraysEXT (will be remapped) */
+ /* _mesa_function_pool[29514]: LockArraysEXT (will be remapped) */
"ii\0"
"glLockArraysEXT\0"
"\0"
- /* _mesa_function_pool[29210]: Begin (offset 7) */
+ /* _mesa_function_pool[29534]: Begin (offset 7) */
"i\0"
"glBegin\0"
"\0"
- /* _mesa_function_pool[29221]: LightModeli (offset 165) */
+ /* _mesa_function_pool[29545]: LightModeli (offset 165) */
"ii\0"
"glLightModeli\0"
"\0"
- /* _mesa_function_pool[29239]: Rectfv (offset 89) */
+ /* _mesa_function_pool[29563]: Rectfv (offset 89) */
"pp\0"
"glRectfv\0"
"\0"
- /* _mesa_function_pool[29252]: LightModelf (offset 163) */
+ /* _mesa_function_pool[29576]: LightModelf (offset 163) */
"if\0"
"glLightModelf\0"
"\0"
- /* _mesa_function_pool[29270]: GetTexParameterfv (offset 282) */
+ /* _mesa_function_pool[29594]: GetTexParameterfv (offset 282) */
"iip\0"
"glGetTexParameterfv\0"
"\0"
- /* _mesa_function_pool[29295]: GetLightfv (offset 264) */
+ /* _mesa_function_pool[29619]: GetLightfv (offset 264) */
"iip\0"
"glGetLightfv\0"
"\0"
- /* _mesa_function_pool[29313]: PixelTransformParameterivEXT (dynamic) */
+ /* _mesa_function_pool[29637]: PixelTransformParameterivEXT (dynamic) */
"iip\0"
"glPixelTransformParameterivEXT\0"
"\0"
- /* _mesa_function_pool[29349]: BinormalPointerEXT (dynamic) */
+ /* _mesa_function_pool[29673]: BinormalPointerEXT (dynamic) */
"iip\0"
"glBinormalPointerEXT\0"
"\0"
- /* _mesa_function_pool[29375]: VertexAttrib1dNV (will be remapped) */
+ /* _mesa_function_pool[29699]: VertexAttrib1dNV (will be remapped) */
"id\0"
"glVertexAttrib1dNV\0"
"\0"
- /* _mesa_function_pool[29398]: GetCombinerInputParameterivNV (will be remapped) */
+ /* _mesa_function_pool[29722]: GetCombinerInputParameterivNV (will be remapped) */
"iiiip\0"
"glGetCombinerInputParameterivNV\0"
"\0"
- /* _mesa_function_pool[29437]: Disable (offset 214) */
+ /* _mesa_function_pool[29761]: Disable (offset 214) */
"i\0"
"glDisable\0"
"\0"
- /* _mesa_function_pool[29450]: MultiTexCoord2fvARB (offset 387) */
+ /* _mesa_function_pool[29774]: MultiTexCoord2fvARB (offset 387) */
"ip\0"
"glMultiTexCoord2fv\0"
"glMultiTexCoord2fvARB\0"
"\0"
- /* _mesa_function_pool[29495]: GetRenderbufferParameterivEXT (will be remapped) */
+ /* _mesa_function_pool[29819]: GetRenderbufferParameterivEXT (will be remapped) */
"iip\0"
"glGetRenderbufferParameteriv\0"
"glGetRenderbufferParameterivEXT\0"
"\0"
- /* _mesa_function_pool[29561]: CombinerParameterivNV (will be remapped) */
+ /* _mesa_function_pool[29885]: CombinerParameterivNV (will be remapped) */
"ip\0"
"glCombinerParameterivNV\0"
"\0"
- /* _mesa_function_pool[29589]: GenFragmentShadersATI (will be remapped) */
+ /* _mesa_function_pool[29913]: GenFragmentShadersATI (will be remapped) */
"i\0"
"glGenFragmentShadersATI\0"
"\0"
- /* _mesa_function_pool[29616]: DrawArrays (offset 310) */
+ /* _mesa_function_pool[29940]: DrawArrays (offset 310) */
"iii\0"
"glDrawArrays\0"
"glDrawArraysEXT\0"
"\0"
- /* _mesa_function_pool[29650]: WeightuivARB (dynamic) */
+ /* _mesa_function_pool[29974]: WeightuivARB (dynamic) */
"ip\0"
"glWeightuivARB\0"
"\0"
- /* _mesa_function_pool[29669]: VertexAttrib2sARB (will be remapped) */
+ /* _mesa_function_pool[29993]: VertexAttrib2sARB (will be remapped) */
"iii\0"
"glVertexAttrib2s\0"
"glVertexAttrib2sARB\0"
"\0"
- /* _mesa_function_pool[29711]: ColorMask (offset 210) */
+ /* _mesa_function_pool[30035]: ColorMask (offset 210) */
"iiii\0"
"glColorMask\0"
"\0"
- /* _mesa_function_pool[29729]: GenAsyncMarkersSGIX (dynamic) */
+ /* _mesa_function_pool[30053]: GenAsyncMarkersSGIX (dynamic) */
"i\0"
"glGenAsyncMarkersSGIX\0"
"\0"
- /* _mesa_function_pool[29754]: Tangent3svEXT (dynamic) */
+ /* _mesa_function_pool[30078]: Tangent3svEXT (dynamic) */
"p\0"
"glTangent3svEXT\0"
"\0"
- /* _mesa_function_pool[29773]: GetListParameterivSGIX (dynamic) */
+ /* _mesa_function_pool[30097]: GetListParameterivSGIX (dynamic) */
"iip\0"
"glGetListParameterivSGIX\0"
"\0"
- /* _mesa_function_pool[29803]: BindBufferARB (will be remapped) */
+ /* _mesa_function_pool[30127]: BindBufferARB (will be remapped) */
"ii\0"
"glBindBuffer\0"
"glBindBufferARB\0"
"\0"
- /* _mesa_function_pool[29836]: GetInfoLogARB (will be remapped) */
+ /* _mesa_function_pool[30160]: GetInfoLogARB (will be remapped) */
"iipp\0"
"glGetInfoLogARB\0"
"\0"
- /* _mesa_function_pool[29858]: RasterPos4iv (offset 83) */
+ /* _mesa_function_pool[30182]: RasterPos4iv (offset 83) */
"p\0"
"glRasterPos4iv\0"
"\0"
- /* _mesa_function_pool[29876]: Enable (offset 215) */
+ /* _mesa_function_pool[30200]: Enable (offset 215) */
"i\0"
"glEnable\0"
"\0"
- /* _mesa_function_pool[29888]: LineStipple (offset 167) */
+ /* _mesa_function_pool[30212]: LineStipple (offset 167) */
"ii\0"
"glLineStipple\0"
"\0"
- /* _mesa_function_pool[29906]: VertexAttribs4svNV (will be remapped) */
+ /* _mesa_function_pool[30230]: VertexAttribs4svNV (will be remapped) */
"iip\0"
"glVertexAttribs4svNV\0"
"\0"
- /* _mesa_function_pool[29932]: EdgeFlagPointerListIBM (dynamic) */
+ /* _mesa_function_pool[30256]: EdgeFlagPointerListIBM (dynamic) */
"ipi\0"
"glEdgeFlagPointerListIBM\0"
"\0"
- /* _mesa_function_pool[29962]: UniformMatrix3x2fv (will be remapped) */
+ /* _mesa_function_pool[30286]: UniformMatrix3x2fv (will be remapped) */
"iiip\0"
"glUniformMatrix3x2fv\0"
"\0"
- /* _mesa_function_pool[29989]: GetMinmaxParameterfv (offset 365) */
+ /* _mesa_function_pool[30313]: GetMinmaxParameterfv (offset 365) */
"iip\0"
"glGetMinmaxParameterfv\0"
"glGetMinmaxParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[30043]: VertexAttrib1fvARB (will be remapped) */
+ /* _mesa_function_pool[30367]: VertexAttrib1fvARB (will be remapped) */
"ip\0"
"glVertexAttrib1fv\0"
"glVertexAttrib1fvARB\0"
"\0"
- /* _mesa_function_pool[30086]: GenBuffersARB (will be remapped) */
+ /* _mesa_function_pool[30410]: GenBuffersARB (will be remapped) */
"ip\0"
"glGenBuffers\0"
"glGenBuffersARB\0"
"\0"
- /* _mesa_function_pool[30119]: VertexAttribs1svNV (will be remapped) */
+ /* _mesa_function_pool[30443]: VertexAttribs1svNV (will be remapped) */
"iip\0"
"glVertexAttribs1svNV\0"
"\0"
- /* _mesa_function_pool[30145]: Vertex3fv (offset 137) */
+ /* _mesa_function_pool[30469]: Vertex3fv (offset 137) */
"p\0"
"glVertex3fv\0"
"\0"
- /* _mesa_function_pool[30160]: GetTexBumpParameterivATI (will be remapped) */
+ /* _mesa_function_pool[30484]: GetTexBumpParameterivATI (will be remapped) */
"ip\0"
"glGetTexBumpParameterivATI\0"
"\0"
- /* _mesa_function_pool[30191]: Binormal3bEXT (dynamic) */
+ /* _mesa_function_pool[30515]: Binormal3bEXT (dynamic) */
"iii\0"
"glBinormal3bEXT\0"
"\0"
- /* _mesa_function_pool[30212]: FragmentMaterialivSGIX (dynamic) */
+ /* _mesa_function_pool[30536]: FragmentMaterialivSGIX (dynamic) */
"iip\0"
"glFragmentMaterialivSGIX\0"
"\0"
- /* _mesa_function_pool[30242]: IsRenderbufferEXT (will be remapped) */
+ /* _mesa_function_pool[30566]: IsRenderbufferEXT (will be remapped) */
"i\0"
"glIsRenderbuffer\0"
"glIsRenderbufferEXT\0"
"\0"
- /* _mesa_function_pool[30282]: GenProgramsNV (will be remapped) */
+ /* _mesa_function_pool[30606]: GenProgramsNV (will be remapped) */
"ip\0"
"glGenProgramsARB\0"
"glGenProgramsNV\0"
"\0"
- /* _mesa_function_pool[30319]: VertexAttrib4dvNV (will be remapped) */
+ /* _mesa_function_pool[30643]: VertexAttrib4dvNV (will be remapped) */
"ip\0"
"glVertexAttrib4dvNV\0"
"\0"
- /* _mesa_function_pool[30343]: EndFragmentShaderATI (will be remapped) */
+ /* _mesa_function_pool[30667]: EndFragmentShaderATI (will be remapped) */
"\0"
"glEndFragmentShaderATI\0"
"\0"
- /* _mesa_function_pool[30368]: Binormal3iEXT (dynamic) */
+ /* _mesa_function_pool[30692]: Binormal3iEXT (dynamic) */
"iii\0"
"glBinormal3iEXT\0"
"\0"
- /* _mesa_function_pool[30389]: WindowPos2fMESA (will be remapped) */
+ /* _mesa_function_pool[30713]: WindowPos2fMESA (will be remapped) */
"ff\0"
"glWindowPos2f\0"
"glWindowPos2fARB\0"
@@ -4425,414 +4469,424 @@ static const char _mesa_function_pool[] =
/* these functions need to be remapped */
static const struct gl_function_pool_remap MESA_remap_table_functions[] = {
{ 1461, AttachShader_remap_index },
- { 8848, CreateProgram_remap_index },
- { 20883, CreateShader_remap_index },
- { 23213, DeleteProgram_remap_index },
- { 16692, DeleteShader_remap_index },
- { 21329, DetachShader_remap_index },
- { 16216, GetAttachedShaders_remap_index },
+ { 8995, CreateProgram_remap_index },
+ { 21153, CreateShader_remap_index },
+ { 23466, DeleteProgram_remap_index },
+ { 16937, DeleteShader_remap_index },
+ { 21599, DetachShader_remap_index },
+ { 16461, GetAttachedShaders_remap_index },
{ 4275, GetProgramInfoLog_remap_index },
{ 361, GetProgramiv_remap_index },
- { 5608, GetShaderInfoLog_remap_index },
- { 28334, GetShaderiv_remap_index },
- { 12054, IsProgram_remap_index },
- { 11089, IsShader_remap_index },
- { 8952, StencilFuncSeparate_remap_index },
+ { 5721, GetShaderInfoLog_remap_index },
+ { 28619, GetShaderiv_remap_index },
+ { 12198, IsProgram_remap_index },
+ { 11197, IsShader_remap_index },
+ { 9099, StencilFuncSeparate_remap_index },
{ 3487, StencilMaskSeparate_remap_index },
- { 6684, StencilOpSeparate_remap_index },
- { 20208, UniformMatrix2x3fv_remap_index },
+ { 6803, StencilOpSeparate_remap_index },
+ { 20478, UniformMatrix2x3fv_remap_index },
{ 2615, UniformMatrix2x4fv_remap_index },
- { 29962, UniformMatrix3x2fv_remap_index },
- { 27724, UniformMatrix3x4fv_remap_index },
- { 14716, UniformMatrix4x2fv_remap_index },
+ { 30286, UniformMatrix3x2fv_remap_index },
+ { 28009, UniformMatrix3x4fv_remap_index },
+ { 14961, UniformMatrix4x2fv_remap_index },
{ 2937, UniformMatrix4x3fv_remap_index },
- { 14377, DrawArraysInstanced_remap_index },
- { 15480, DrawElementsInstanced_remap_index },
- { 8866, LoadTransposeMatrixdARB_remap_index },
- { 28063, LoadTransposeMatrixfARB_remap_index },
- { 4848, MultTransposeMatrixdARB_remap_index },
- { 21516, MultTransposeMatrixfARB_remap_index },
+ { 14622, DrawArraysInstanced_remap_index },
+ { 15725, DrawElementsInstanced_remap_index },
+ { 9013, LoadTransposeMatrixdARB_remap_index },
+ { 28348, LoadTransposeMatrixfARB_remap_index },
+ { 4904, MultTransposeMatrixdARB_remap_index },
+ { 21786, MultTransposeMatrixfARB_remap_index },
{ 172, SampleCoverageARB_remap_index },
- { 5032, CompressedTexImage1DARB_remap_index },
- { 22016, CompressedTexImage2DARB_remap_index },
+ { 5117, CompressedTexImage1DARB_remap_index },
+ { 22269, CompressedTexImage2DARB_remap_index },
{ 3550, CompressedTexImage3DARB_remap_index },
- { 16508, CompressedTexSubImage1DARB_remap_index },
+ { 16753, CompressedTexSubImage1DARB_remap_index },
{ 1880, CompressedTexSubImage2DARB_remap_index },
- { 18369, CompressedTexSubImage3DARB_remap_index },
- { 26006, GetCompressedTexImageARB_remap_index },
+ { 18614, CompressedTexSubImage3DARB_remap_index },
+ { 26291, GetCompressedTexImageARB_remap_index },
{ 3395, DisableVertexAttribArrayARB_remap_index },
- { 27336, EnableVertexAttribArrayARB_remap_index },
- { 29138, GetProgramEnvParameterdvARB_remap_index },
- { 21396, GetProgramEnvParameterfvARB_remap_index },
- { 25007, GetProgramLocalParameterdvARB_remap_index },
- { 7126, GetProgramLocalParameterfvARB_remap_index },
- { 16599, GetProgramStringARB_remap_index },
- { 25202, GetProgramivARB_remap_index },
- { 18564, GetVertexAttribdvARB_remap_index },
- { 14605, GetVertexAttribfvARB_remap_index },
- { 8761, GetVertexAttribivARB_remap_index },
- { 17445, ProgramEnvParameter4dARB_remap_index },
- { 22986, ProgramEnvParameter4dvARB_remap_index },
- { 15213, ProgramEnvParameter4fARB_remap_index },
- { 7989, ProgramEnvParameter4fvARB_remap_index },
+ { 27621, EnableVertexAttribArrayARB_remap_index },
+ { 29462, GetProgramEnvParameterdvARB_remap_index },
+ { 21666, GetProgramEnvParameterfvARB_remap_index },
+ { 25290, GetProgramLocalParameterdvARB_remap_index },
+ { 7245, GetProgramLocalParameterfvARB_remap_index },
+ { 16844, GetProgramStringARB_remap_index },
+ { 25485, GetProgramivARB_remap_index },
+ { 18809, GetVertexAttribdvARB_remap_index },
+ { 14850, GetVertexAttribfvARB_remap_index },
+ { 8908, GetVertexAttribivARB_remap_index },
+ { 17690, ProgramEnvParameter4dARB_remap_index },
+ { 23239, ProgramEnvParameter4dvARB_remap_index },
+ { 15458, ProgramEnvParameter4fARB_remap_index },
+ { 8108, ProgramEnvParameter4fvARB_remap_index },
{ 3513, ProgramLocalParameter4dARB_remap_index },
- { 11764, ProgramLocalParameter4dvARB_remap_index },
- { 26815, ProgramLocalParameter4fARB_remap_index },
- { 23531, ProgramLocalParameter4fvARB_remap_index },
- { 25792, ProgramStringARB_remap_index },
- { 17695, VertexAttrib1dARB_remap_index },
- { 14181, VertexAttrib1dvARB_remap_index },
+ { 11908, ProgramLocalParameter4dvARB_remap_index },
+ { 27100, ProgramLocalParameter4fARB_remap_index },
+ { 23819, ProgramLocalParameter4fvARB_remap_index },
+ { 26071, ProgramStringARB_remap_index },
+ { 17940, VertexAttrib1dARB_remap_index },
+ { 14426, VertexAttrib1dvARB_remap_index },
{ 3688, VertexAttrib1fARB_remap_index },
- { 30043, VertexAttrib1fvARB_remap_index },
- { 6210, VertexAttrib1sARB_remap_index },
+ { 30367, VertexAttrib1fvARB_remap_index },
+ { 6329, VertexAttrib1sARB_remap_index },
{ 2054, VertexAttrib1svARB_remap_index },
- { 13612, VertexAttrib2dARB_remap_index },
- { 15835, VertexAttrib2dvARB_remap_index },
+ { 13857, VertexAttrib2dARB_remap_index },
+ { 16080, VertexAttrib2dvARB_remap_index },
{ 1480, VertexAttrib2fARB_remap_index },
- { 15948, VertexAttrib2fvARB_remap_index },
- { 29669, VertexAttrib2sARB_remap_index },
- { 28775, VertexAttrib2svARB_remap_index },
- { 10135, VertexAttrib3dARB_remap_index },
- { 7692, VertexAttrib3dvARB_remap_index },
+ { 16193, VertexAttrib2fvARB_remap_index },
+ { 29993, VertexAttrib2sARB_remap_index },
+ { 29099, VertexAttrib2svARB_remap_index },
+ { 10282, VertexAttrib3dARB_remap_index },
+ { 7811, VertexAttrib3dvARB_remap_index },
{ 1567, VertexAttrib3fARB_remap_index },
- { 20471, VertexAttrib3fvARB_remap_index },
- { 25635, VertexAttrib3sARB_remap_index },
- { 18306, VertexAttrib3svARB_remap_index },
+ { 20741, VertexAttrib3fvARB_remap_index },
+ { 25918, VertexAttrib3sARB_remap_index },
+ { 18551, VertexAttrib3svARB_remap_index },
{ 4301, VertexAttrib4NbvARB_remap_index },
- { 16171, VertexAttrib4NivARB_remap_index },
- { 20426, VertexAttrib4NsvARB_remap_index },
- { 21348, VertexAttrib4NubARB_remap_index },
- { 29021, VertexAttrib4NubvARB_remap_index },
- { 17106, VertexAttrib4NuivARB_remap_index },
+ { 16416, VertexAttrib4NivARB_remap_index },
+ { 20696, VertexAttrib4NsvARB_remap_index },
+ { 21618, VertexAttrib4NubARB_remap_index },
+ { 29345, VertexAttrib4NubvARB_remap_index },
+ { 17351, VertexAttrib4NuivARB_remap_index },
{ 2810, VertexAttrib4NusvARB_remap_index },
- { 9729, VertexAttrib4bvARB_remap_index },
- { 24415, VertexAttrib4dARB_remap_index },
- { 19328, VertexAttrib4dvARB_remap_index },
- { 10242, VertexAttrib4fARB_remap_index },
- { 10646, VertexAttrib4fvARB_remap_index },
- { 9145, VertexAttrib4ivARB_remap_index },
- { 15649, VertexAttrib4sARB_remap_index },
- { 28249, VertexAttrib4svARB_remap_index },
- { 15018, VertexAttrib4ubvARB_remap_index },
- { 27660, VertexAttrib4uivARB_remap_index },
- { 18117, VertexAttrib4usvARB_remap_index },
- { 20082, VertexAttribPointerARB_remap_index },
- { 29803, BindBufferARB_remap_index },
- { 5923, BufferDataARB_remap_index },
+ { 9876, VertexAttrib4bvARB_remap_index },
+ { 24698, VertexAttrib4dARB_remap_index },
+ { 19573, VertexAttrib4dvARB_remap_index },
+ { 10389, VertexAttrib4fARB_remap_index },
+ { 10793, VertexAttrib4fvARB_remap_index },
+ { 9292, VertexAttrib4ivARB_remap_index },
+ { 15894, VertexAttrib4sARB_remap_index },
+ { 28534, VertexAttrib4svARB_remap_index },
+ { 15263, VertexAttrib4ubvARB_remap_index },
+ { 27945, VertexAttrib4uivARB_remap_index },
+ { 18362, VertexAttrib4usvARB_remap_index },
+ { 20327, VertexAttribPointerARB_remap_index },
+ { 30127, BindBufferARB_remap_index },
+ { 6036, BufferDataARB_remap_index },
{ 1382, BufferSubDataARB_remap_index },
- { 27849, DeleteBuffersARB_remap_index },
- { 30086, GenBuffersARB_remap_index },
- { 15991, GetBufferParameterivARB_remap_index },
- { 15165, GetBufferPointervARB_remap_index },
+ { 28134, DeleteBuffersARB_remap_index },
+ { 30410, GenBuffersARB_remap_index },
+ { 16236, GetBufferParameterivARB_remap_index },
+ { 15410, GetBufferPointervARB_remap_index },
{ 1335, GetBufferSubDataARB_remap_index },
- { 27608, IsBufferARB_remap_index },
- { 23988, MapBufferARB_remap_index },
- { 28464, UnmapBufferARB_remap_index },
+ { 27893, IsBufferARB_remap_index },
+ { 24303, MapBufferARB_remap_index },
+ { 28749, UnmapBufferARB_remap_index },
{ 268, BeginQueryARB_remap_index },
- { 17790, DeleteQueriesARB_remap_index },
- { 10940, EndQueryARB_remap_index },
- { 26485, GenQueriesARB_remap_index },
+ { 18035, DeleteQueriesARB_remap_index },
+ { 11087, EndQueryARB_remap_index },
+ { 26770, GenQueriesARB_remap_index },
{ 1772, GetQueryObjectivARB_remap_index },
- { 15693, GetQueryObjectuivARB_remap_index },
+ { 15938, GetQueryObjectuivARB_remap_index },
{ 1624, GetQueryivARB_remap_index },
- { 18024, IsQueryARB_remap_index },
- { 7302, AttachObjectARB_remap_index },
- { 16654, CompileShaderARB_remap_index },
+ { 18269, IsQueryARB_remap_index },
+ { 7421, AttachObjectARB_remap_index },
+ { 16899, CompileShaderARB_remap_index },
{ 2879, CreateProgramObjectARB_remap_index },
- { 5868, CreateShaderObjectARB_remap_index },
- { 13029, DeleteObjectARB_remap_index },
- { 21790, DetachObjectARB_remap_index },
- { 10718, GetActiveUniformARB_remap_index },
- { 8464, GetAttachedObjectsARB_remap_index },
- { 8743, GetHandleARB_remap_index },
- { 29836, GetInfoLogARB_remap_index },
- { 29092, GetObjectParameterfvARB_remap_index },
- { 24881, GetObjectParameterivARB_remap_index },
- { 26243, GetShaderSourceARB_remap_index },
- { 25495, GetUniformLocationARB_remap_index },
- { 21618, GetUniformfvARB_remap_index },
- { 11386, GetUniformivARB_remap_index },
- { 18162, LinkProgramARB_remap_index },
- { 18220, ShaderSourceARB_remap_index },
- { 6584, Uniform1fARB_remap_index },
- { 27024, Uniform1fvARB_remap_index },
- { 20051, Uniform1iARB_remap_index },
- { 19017, Uniform1ivARB_remap_index },
+ { 5981, CreateShaderObjectARB_remap_index },
+ { 13274, DeleteObjectARB_remap_index },
+ { 22060, DetachObjectARB_remap_index },
+ { 10865, GetActiveUniformARB_remap_index },
+ { 8583, GetAttachedObjectsARB_remap_index },
+ { 8890, GetHandleARB_remap_index },
+ { 30160, GetInfoLogARB_remap_index },
+ { 29416, GetObjectParameterfvARB_remap_index },
+ { 25164, GetObjectParameterivARB_remap_index },
+ { 26528, GetShaderSourceARB_remap_index },
+ { 25778, GetUniformLocationARB_remap_index },
+ { 21888, GetUniformfvARB_remap_index },
+ { 11530, GetUniformivARB_remap_index },
+ { 18407, LinkProgramARB_remap_index },
+ { 18465, ShaderSourceARB_remap_index },
+ { 6703, Uniform1fARB_remap_index },
+ { 27309, Uniform1fvARB_remap_index },
+ { 20296, Uniform1iARB_remap_index },
+ { 19262, Uniform1ivARB_remap_index },
{ 2003, Uniform2fARB_remap_index },
- { 12865, Uniform2fvARB_remap_index },
- { 23875, Uniform2iARB_remap_index },
+ { 13110, Uniform2fvARB_remap_index },
+ { 24190, Uniform2iARB_remap_index },
{ 2123, Uniform2ivARB_remap_index },
- { 16764, Uniform3fARB_remap_index },
- { 8494, Uniform3fvARB_remap_index },
- { 5542, Uniform3iARB_remap_index },
- { 15271, Uniform3ivARB_remap_index },
- { 17251, Uniform4fARB_remap_index },
- { 21482, Uniform4fvARB_remap_index },
- { 22665, Uniform4iARB_remap_index },
- { 18530, Uniform4ivARB_remap_index },
- { 7354, UniformMatrix2fvARB_remap_index },
+ { 17009, Uniform3fARB_remap_index },
+ { 8613, Uniform3fvARB_remap_index },
+ { 5627, Uniform3iARB_remap_index },
+ { 15516, Uniform3ivARB_remap_index },
+ { 17496, Uniform4fARB_remap_index },
+ { 21752, Uniform4fvARB_remap_index },
+ { 22918, Uniform4iARB_remap_index },
+ { 18775, Uniform4ivARB_remap_index },
+ { 7473, UniformMatrix2fvARB_remap_index },
{ 17, UniformMatrix3fvARB_remap_index },
{ 2475, UniformMatrix4fvARB_remap_index },
- { 23098, UseProgramObjectARB_remap_index },
- { 13300, ValidateProgramARB_remap_index },
- { 19371, BindAttribLocationARB_remap_index },
+ { 23351, UseProgramObjectARB_remap_index },
+ { 13545, ValidateProgramARB_remap_index },
+ { 19616, BindAttribLocationARB_remap_index },
{ 4346, GetActiveAttribARB_remap_index },
- { 14952, GetAttribLocationARB_remap_index },
- { 26763, DrawBuffersARB_remap_index },
- { 11869, RenderbufferStorageMultisample_remap_index },
- { 17299, FlushMappedBufferRange_remap_index },
- { 25298, MapBufferRange_remap_index },
- { 14827, BindVertexArray_remap_index },
- { 13159, GenVertexArrays_remap_index },
- { 27538, CopyBufferSubData_remap_index },
- { 28353, ClientWaitSync_remap_index },
+ { 15197, GetAttribLocationARB_remap_index },
+ { 27048, DrawBuffersARB_remap_index },
+ { 12013, RenderbufferStorageMultisample_remap_index },
+ { 12417, FramebufferTextureARB_remap_index },
+ { 23721, FramebufferTextureFaceARB_remap_index },
+ { 22209, ProgramParameteriARB_remap_index },
+ { 17544, FlushMappedBufferRange_remap_index },
+ { 25581, MapBufferRange_remap_index },
+ { 15072, BindVertexArray_remap_index },
+ { 13404, GenVertexArrays_remap_index },
+ { 27823, CopyBufferSubData_remap_index },
+ { 28638, ClientWaitSync_remap_index },
{ 2394, DeleteSync_remap_index },
- { 6251, FenceSync_remap_index },
- { 13671, GetInteger64v_remap_index },
- { 20533, GetSynciv_remap_index },
- { 26702, IsSync_remap_index },
- { 8412, WaitSync_remap_index },
+ { 6370, FenceSync_remap_index },
+ { 13916, GetInteger64v_remap_index },
+ { 20803, GetSynciv_remap_index },
+ { 26987, IsSync_remap_index },
+ { 8531, WaitSync_remap_index },
{ 3363, DrawElementsBaseVertex_remap_index },
- { 27781, DrawRangeElementsBaseVertex_remap_index },
- { 24019, MultiDrawElementsBaseVertex_remap_index },
- { 4711, PolygonOffsetEXT_remap_index },
- { 21118, GetPixelTexGenParameterfvSGIS_remap_index },
+ { 28066, DrawRangeElementsBaseVertex_remap_index },
+ { 24334, MultiDrawElementsBaseVertex_remap_index },
+ { 4480, BindTransformFeedback_remap_index },
+ { 2906, DeleteTransformFeedbacks_remap_index },
+ { 5660, DrawTransformFeedback_remap_index },
+ { 8750, GenTransformFeedbacks_remap_index },
+ { 25961, IsTransformFeedback_remap_index },
+ { 23914, PauseTransformFeedback_remap_index },
+ { 4824, ResumeTransformFeedback_remap_index },
+ { 4739, PolygonOffsetEXT_remap_index },
+ { 21388, GetPixelTexGenParameterfvSGIS_remap_index },
{ 3895, GetPixelTexGenParameterivSGIS_remap_index },
- { 20851, PixelTexGenParameterfSGIS_remap_index },
+ { 21121, PixelTexGenParameterfSGIS_remap_index },
{ 580, PixelTexGenParameterfvSGIS_remap_index },
- { 11424, PixelTexGenParameteriSGIS_remap_index },
- { 12385, PixelTexGenParameterivSGIS_remap_index },
- { 14915, SampleMaskSGIS_remap_index },
- { 17964, SamplePatternSGIS_remap_index },
- { 23948, ColorPointerEXT_remap_index },
- { 15878, EdgeFlagPointerEXT_remap_index },
- { 5196, IndexPointerEXT_remap_index },
- { 5276, NormalPointerEXT_remap_index },
- { 14265, TexCoordPointerEXT_remap_index },
- { 6046, VertexPointerEXT_remap_index },
+ { 11568, PixelTexGenParameteriSGIS_remap_index },
+ { 12591, PixelTexGenParameterivSGIS_remap_index },
+ { 15160, SampleMaskSGIS_remap_index },
+ { 18209, SamplePatternSGIS_remap_index },
+ { 24263, ColorPointerEXT_remap_index },
+ { 16123, EdgeFlagPointerEXT_remap_index },
+ { 5281, IndexPointerEXT_remap_index },
+ { 5361, NormalPointerEXT_remap_index },
+ { 14510, TexCoordPointerEXT_remap_index },
+ { 6159, VertexPointerEXT_remap_index },
{ 3165, PointParameterfEXT_remap_index },
- { 6891, PointParameterfvEXT_remap_index },
- { 29190, LockArraysEXT_remap_index },
- { 13364, UnlockArraysEXT_remap_index },
- { 7898, CullParameterdvEXT_remap_index },
- { 10513, CullParameterfvEXT_remap_index },
+ { 7010, PointParameterfvEXT_remap_index },
+ { 29514, LockArraysEXT_remap_index },
+ { 13609, UnlockArraysEXT_remap_index },
+ { 8017, CullParameterdvEXT_remap_index },
+ { 10660, CullParameterfvEXT_remap_index },
{ 1151, SecondaryColor3bEXT_remap_index },
- { 7050, SecondaryColor3bvEXT_remap_index },
- { 9322, SecondaryColor3dEXT_remap_index },
- { 23271, SecondaryColor3dvEXT_remap_index },
- { 25544, SecondaryColor3fEXT_remap_index },
- { 16444, SecondaryColor3fvEXT_remap_index },
+ { 7169, SecondaryColor3bvEXT_remap_index },
+ { 9469, SecondaryColor3dEXT_remap_index },
+ { 23524, SecondaryColor3dvEXT_remap_index },
+ { 25827, SecondaryColor3fEXT_remap_index },
+ { 16689, SecondaryColor3fvEXT_remap_index },
{ 426, SecondaryColor3iEXT_remap_index },
- { 14653, SecondaryColor3ivEXT_remap_index },
- { 8980, SecondaryColor3sEXT_remap_index },
- { 28017, SecondaryColor3svEXT_remap_index },
- { 24717, SecondaryColor3ubEXT_remap_index },
- { 19262, SecondaryColor3ubvEXT_remap_index },
- { 11619, SecondaryColor3uiEXT_remap_index },
- { 20738, SecondaryColor3uivEXT_remap_index },
- { 23483, SecondaryColor3usEXT_remap_index },
- { 11692, SecondaryColor3usvEXT_remap_index },
- { 10589, SecondaryColorPointerEXT_remap_index },
- { 23332, MultiDrawArraysEXT_remap_index },
- { 18952, MultiDrawElementsEXT_remap_index },
- { 19147, FogCoordPointerEXT_remap_index },
+ { 14898, SecondaryColor3ivEXT_remap_index },
+ { 9127, SecondaryColor3sEXT_remap_index },
+ { 28302, SecondaryColor3svEXT_remap_index },
+ { 25000, SecondaryColor3ubEXT_remap_index },
+ { 19507, SecondaryColor3ubvEXT_remap_index },
+ { 11763, SecondaryColor3uiEXT_remap_index },
+ { 21008, SecondaryColor3uivEXT_remap_index },
+ { 23771, SecondaryColor3usEXT_remap_index },
+ { 11836, SecondaryColor3usvEXT_remap_index },
+ { 10736, SecondaryColorPointerEXT_remap_index },
+ { 23585, MultiDrawArraysEXT_remap_index },
+ { 19197, MultiDrawElementsEXT_remap_index },
+ { 19392, FogCoordPointerEXT_remap_index },
{ 4044, FogCoorddEXT_remap_index },
- { 28591, FogCoorddvEXT_remap_index },
+ { 28915, FogCoorddvEXT_remap_index },
{ 4136, FogCoordfEXT_remap_index },
- { 24640, FogCoordfvEXT_remap_index },
- { 17203, PixelTexGenSGIX_remap_index },
- { 25225, BlendFuncSeparateEXT_remap_index },
- { 5958, FlushVertexArrayRangeNV_remap_index },
- { 4660, VertexArrayRangeNV_remap_index },
- { 25609, CombinerInputNV_remap_index },
+ { 24923, FogCoordfvEXT_remap_index },
+ { 17448, PixelTexGenSGIX_remap_index },
+ { 25508, BlendFuncSeparateEXT_remap_index },
+ { 6071, FlushVertexArrayRangeNV_remap_index },
+ { 4688, VertexArrayRangeNV_remap_index },
+ { 25892, CombinerInputNV_remap_index },
{ 1946, CombinerOutputNV_remap_index },
- { 28170, CombinerParameterfNV_remap_index },
- { 4580, CombinerParameterfvNV_remap_index },
- { 20257, CombinerParameteriNV_remap_index },
- { 29561, CombinerParameterivNV_remap_index },
- { 6328, FinalCombinerInputNV_remap_index },
- { 8809, GetCombinerInputParameterfvNV_remap_index },
- { 29398, GetCombinerInputParameterivNV_remap_index },
- { 6127, GetCombinerOutputParameterfvNV_remap_index },
- { 12346, GetCombinerOutputParameterivNV_remap_index },
- { 5703, GetFinalCombinerInputParameterfvNV_remap_index },
- { 22537, GetFinalCombinerInputParameterivNV_remap_index },
- { 11364, ResizeBuffersMESA_remap_index },
- { 9962, WindowPos2dMESA_remap_index },
+ { 28455, CombinerParameterfNV_remap_index },
+ { 4608, CombinerParameterfvNV_remap_index },
+ { 20527, CombinerParameteriNV_remap_index },
+ { 29885, CombinerParameterivNV_remap_index },
+ { 6447, FinalCombinerInputNV_remap_index },
+ { 8956, GetCombinerInputParameterfvNV_remap_index },
+ { 29722, GetCombinerInputParameterivNV_remap_index },
+ { 12692, GetCombinerOutputParameterfvNV_remap_index },
+ { 12520, GetCombinerOutputParameterivNV_remap_index },
+ { 5816, GetFinalCombinerInputParameterfvNV_remap_index },
+ { 22790, GetFinalCombinerInputParameterivNV_remap_index },
+ { 11508, ResizeBuffersMESA_remap_index },
+ { 10109, WindowPos2dMESA_remap_index },
{ 944, WindowPos2dvMESA_remap_index },
- { 30389, WindowPos2fMESA_remap_index },
- { 6995, WindowPos2fvMESA_remap_index },
- { 16391, WindowPos2iMESA_remap_index },
- { 18437, WindowPos2ivMESA_remap_index },
- { 19051, WindowPos2sMESA_remap_index },
- { 4946, WindowPos2svMESA_remap_index },
- { 6820, WindowPos3dMESA_remap_index },
- { 12593, WindowPos3dvMESA_remap_index },
+ { 30713, WindowPos2fMESA_remap_index },
+ { 7114, WindowPos2fvMESA_remap_index },
+ { 16636, WindowPos2iMESA_remap_index },
+ { 18682, WindowPos2ivMESA_remap_index },
+ { 19296, WindowPos2sMESA_remap_index },
+ { 5031, WindowPos2svMESA_remap_index },
+ { 6939, WindowPos3dMESA_remap_index },
+ { 12838, WindowPos3dvMESA_remap_index },
{ 472, WindowPos3fMESA_remap_index },
- { 13425, WindowPos3fvMESA_remap_index },
- { 21832, WindowPos3iMESA_remap_index },
- { 27483, WindowPos3ivMESA_remap_index },
- { 16909, WindowPos3sMESA_remap_index },
- { 28847, WindowPos3svMESA_remap_index },
- { 9913, WindowPos4dMESA_remap_index },
- { 15356, WindowPos4dvMESA_remap_index },
- { 12552, WindowPos4fMESA_remap_index },
- { 27924, WindowPos4fvMESA_remap_index },
- { 27636, WindowPos4iMESA_remap_index },
- { 11203, WindowPos4ivMESA_remap_index },
- { 17082, WindowPos4sMESA_remap_index },
+ { 13670, WindowPos3fvMESA_remap_index },
+ { 22102, WindowPos3iMESA_remap_index },
+ { 27768, WindowPos3ivMESA_remap_index },
+ { 17154, WindowPos3sMESA_remap_index },
+ { 29171, WindowPos3svMESA_remap_index },
+ { 10060, WindowPos4dMESA_remap_index },
+ { 15601, WindowPos4dvMESA_remap_index },
+ { 12797, WindowPos4fMESA_remap_index },
+ { 28209, WindowPos4fvMESA_remap_index },
+ { 27921, WindowPos4iMESA_remap_index },
+ { 11311, WindowPos4ivMESA_remap_index },
+ { 17327, WindowPos4sMESA_remap_index },
{ 2857, WindowPos4svMESA_remap_index },
- { 24383, MultiModeDrawArraysIBM_remap_index },
- { 26356, MultiModeDrawElementsIBM_remap_index },
- { 10968, DeleteFencesNV_remap_index },
- { 25456, FinishFenceNV_remap_index },
+ { 12559, MultiModeDrawArraysIBM_remap_index },
+ { 26641, MultiModeDrawElementsIBM_remap_index },
+ { 11115, DeleteFencesNV_remap_index },
+ { 25739, FinishFenceNV_remap_index },
{ 3287, GenFencesNV_remap_index },
- { 15336, GetFenceivNV_remap_index },
- { 7287, IsFenceNV_remap_index },
- { 12273, SetFenceNV_remap_index },
+ { 15581, GetFenceivNV_remap_index },
+ { 7406, IsFenceNV_remap_index },
+ { 12447, SetFenceNV_remap_index },
{ 3744, TestFenceNV_remap_index },
- { 28818, AreProgramsResidentNV_remap_index },
- { 28212, BindProgramNV_remap_index },
- { 23566, DeleteProgramsNV_remap_index },
- { 19480, ExecuteProgramNV_remap_index },
- { 30282, GenProgramsNV_remap_index },
- { 21197, GetProgramParameterdvNV_remap_index },
- { 9384, GetProgramParameterfvNV_remap_index },
- { 23922, GetProgramStringNV_remap_index },
- { 22226, GetProgramivNV_remap_index },
- { 21431, GetTrackMatrixivNV_remap_index },
- { 23716, GetVertexAttribPointervNV_remap_index },
- { 22470, GetVertexAttribdvNV_remap_index },
- { 8307, GetVertexAttribfvNV_remap_index },
- { 16572, GetVertexAttribivNV_remap_index },
- { 17329, IsProgramNV_remap_index },
- { 8390, LoadProgramNV_remap_index },
- { 25321, ProgramParameters4dvNV_remap_index },
- { 22156, ProgramParameters4fvNV_remap_index },
- { 18741, RequestResidentProgramsNV_remap_index },
- { 20235, TrackMatrixNV_remap_index },
- { 29375, VertexAttrib1dNV_remap_index },
- { 12214, VertexAttrib1dvNV_remap_index },
- { 25888, VertexAttrib1fNV_remap_index },
+ { 29142, AreProgramsResidentNV_remap_index },
+ { 28497, BindProgramNV_remap_index },
+ { 23854, DeleteProgramsNV_remap_index },
+ { 19725, ExecuteProgramNV_remap_index },
+ { 30606, GenProgramsNV_remap_index },
+ { 21467, GetProgramParameterdvNV_remap_index },
+ { 9531, GetProgramParameterfvNV_remap_index },
+ { 24237, GetProgramStringNV_remap_index },
+ { 22479, GetProgramivNV_remap_index },
+ { 21701, GetTrackMatrixivNV_remap_index },
+ { 24031, GetVertexAttribPointervNV_remap_index },
+ { 22723, GetVertexAttribdvNV_remap_index },
+ { 8426, GetVertexAttribfvNV_remap_index },
+ { 16817, GetVertexAttribivNV_remap_index },
+ { 17574, IsProgramNV_remap_index },
+ { 8509, LoadProgramNV_remap_index },
+ { 25604, ProgramParameters4dvNV_remap_index },
+ { 22409, ProgramParameters4fvNV_remap_index },
+ { 18986, RequestResidentProgramsNV_remap_index },
+ { 20505, TrackMatrixNV_remap_index },
+ { 29699, VertexAttrib1dNV_remap_index },
+ { 12358, VertexAttrib1dvNV_remap_index },
+ { 26173, VertexAttrib1fNV_remap_index },
{ 2245, VertexAttrib1fvNV_remap_index },
- { 27981, VertexAttrib1sNV_remap_index },
- { 13498, VertexAttrib1svNV_remap_index },
+ { 28266, VertexAttrib1sNV_remap_index },
+ { 13743, VertexAttrib1svNV_remap_index },
{ 4251, VertexAttrib2dNV_remap_index },
- { 12129, VertexAttrib2dvNV_remap_index },
- { 18196, VertexAttrib2fNV_remap_index },
- { 11740, VertexAttrib2fvNV_remap_index },
- { 5106, VertexAttrib2sNV_remap_index },
- { 16963, VertexAttrib2svNV_remap_index },
- { 10110, VertexAttrib3dNV_remap_index },
- { 29068, VertexAttrib3dvNV_remap_index },
- { 9196, VertexAttrib3fNV_remap_index },
- { 22497, VertexAttrib3fvNV_remap_index },
- { 25863, VertexAttrib3sNV_remap_index },
- { 21458, VertexAttrib3svNV_remap_index },
- { 26330, VertexAttrib4dNV_remap_index },
- { 30319, VertexAttrib4dvNV_remap_index },
+ { 12273, VertexAttrib2dvNV_remap_index },
+ { 18441, VertexAttrib2fNV_remap_index },
+ { 11884, VertexAttrib2fvNV_remap_index },
+ { 5191, VertexAttrib2sNV_remap_index },
+ { 17208, VertexAttrib2svNV_remap_index },
+ { 10257, VertexAttrib3dNV_remap_index },
+ { 29392, VertexAttrib3dvNV_remap_index },
+ { 9343, VertexAttrib3fNV_remap_index },
+ { 22750, VertexAttrib3fvNV_remap_index },
+ { 20382, VertexAttrib3sNV_remap_index },
+ { 21728, VertexAttrib3svNV_remap_index },
+ { 26615, VertexAttrib4dNV_remap_index },
+ { 30643, VertexAttrib4dvNV_remap_index },
{ 3945, VertexAttrib4fNV_remap_index },
- { 8440, VertexAttrib4fvNV_remap_index },
- { 24267, VertexAttrib4sNV_remap_index },
+ { 8559, VertexAttrib4fvNV_remap_index },
+ { 24582, VertexAttrib4sNV_remap_index },
{ 1293, VertexAttrib4svNV_remap_index },
{ 4409, VertexAttrib4ubNV_remap_index },
{ 734, VertexAttrib4ubvNV_remap_index },
- { 19660, VertexAttribPointerNV_remap_index },
+ { 19905, VertexAttribPointerNV_remap_index },
{ 2097, VertexAttribs1dvNV_remap_index },
- { 23804, VertexAttribs1fvNV_remap_index },
- { 30119, VertexAttribs1svNV_remap_index },
- { 9221, VertexAttribs2dvNV_remap_index },
- { 23059, VertexAttribs2fvNV_remap_index },
- { 15904, VertexAttribs2svNV_remap_index },
- { 4608, VertexAttribs3dvNV_remap_index },
+ { 24119, VertexAttribs1fvNV_remap_index },
+ { 30443, VertexAttribs1svNV_remap_index },
+ { 9368, VertexAttribs2dvNV_remap_index },
+ { 23312, VertexAttribs2fvNV_remap_index },
+ { 16149, VertexAttribs2svNV_remap_index },
+ { 4636, VertexAttribs3dvNV_remap_index },
{ 1977, VertexAttribs3fvNV_remap_index },
- { 27231, VertexAttribs3svNV_remap_index },
- { 24357, VertexAttribs4dvNV_remap_index },
- { 4634, VertexAttribs4fvNV_remap_index },
- { 29906, VertexAttribs4svNV_remap_index },
- { 26979, VertexAttribs4ubvNV_remap_index },
- { 24459, GetTexBumpParameterfvATI_remap_index },
- { 30160, GetTexBumpParameterivATI_remap_index },
- { 16626, TexBumpParameterfvATI_remap_index },
- { 18612, TexBumpParameterivATI_remap_index },
- { 14044, AlphaFragmentOp1ATI_remap_index },
- { 9772, AlphaFragmentOp2ATI_remap_index },
- { 22413, AlphaFragmentOp3ATI_remap_index },
- { 27158, BeginFragmentShaderATI_remap_index },
- { 28411, BindFragmentShaderATI_remap_index },
- { 21587, ColorFragmentOp1ATI_remap_index },
+ { 27516, VertexAttribs3svNV_remap_index },
+ { 24672, VertexAttribs4dvNV_remap_index },
+ { 4662, VertexAttribs4fvNV_remap_index },
+ { 30230, VertexAttribs4svNV_remap_index },
+ { 27264, VertexAttribs4ubvNV_remap_index },
+ { 24742, GetTexBumpParameterfvATI_remap_index },
+ { 30484, GetTexBumpParameterivATI_remap_index },
+ { 16871, TexBumpParameterfvATI_remap_index },
+ { 18857, TexBumpParameterivATI_remap_index },
+ { 14289, AlphaFragmentOp1ATI_remap_index },
+ { 9919, AlphaFragmentOp2ATI_remap_index },
+ { 22666, AlphaFragmentOp3ATI_remap_index },
+ { 27443, BeginFragmentShaderATI_remap_index },
+ { 28696, BindFragmentShaderATI_remap_index },
+ { 21857, ColorFragmentOp1ATI_remap_index },
{ 3823, ColorFragmentOp2ATI_remap_index },
- { 28713, ColorFragmentOp3ATI_remap_index },
- { 4753, DeleteFragmentShaderATI_remap_index },
- { 30343, EndFragmentShaderATI_remap_index },
- { 29589, GenFragmentShadersATI_remap_index },
- { 23190, PassTexCoordATI_remap_index },
- { 6026, SampleMapATI_remap_index },
- { 5799, SetFragmentShaderConstantATI_remap_index },
+ { 29037, ColorFragmentOp3ATI_remap_index },
+ { 4781, DeleteFragmentShaderATI_remap_index },
+ { 30667, EndFragmentShaderATI_remap_index },
+ { 29913, GenFragmentShadersATI_remap_index },
+ { 23443, PassTexCoordATI_remap_index },
+ { 6139, SampleMapATI_remap_index },
+ { 5912, SetFragmentShaderConstantATI_remap_index },
{ 319, PointParameteriNV_remap_index },
- { 12754, PointParameterivNV_remap_index },
- { 26169, ActiveStencilFaceEXT_remap_index },
- { 24981, BindVertexArrayAPPLE_remap_index },
+ { 12999, PointParameterivNV_remap_index },
+ { 26454, ActiveStencilFaceEXT_remap_index },
+ { 25264, BindVertexArrayAPPLE_remap_index },
{ 2522, DeleteVertexArraysAPPLE_remap_index },
- { 16243, GenVertexArraysAPPLE_remap_index },
- { 21262, IsVertexArrayAPPLE_remap_index },
+ { 16488, GenVertexArraysAPPLE_remap_index },
+ { 21532, IsVertexArrayAPPLE_remap_index },
{ 775, GetProgramNamedParameterdvNV_remap_index },
{ 3128, GetProgramNamedParameterfvNV_remap_index },
- { 24490, ProgramNamedParameter4dNV_remap_index },
- { 13080, ProgramNamedParameter4dvNV_remap_index },
- { 7923, ProgramNamedParameter4fNV_remap_index },
- { 10554, ProgramNamedParameter4fvNV_remap_index },
- { 22135, DepthBoundsEXT_remap_index },
+ { 24773, ProgramNamedParameter4dNV_remap_index },
+ { 13325, ProgramNamedParameter4dvNV_remap_index },
+ { 8042, ProgramNamedParameter4fNV_remap_index },
+ { 10701, ProgramNamedParameter4fvNV_remap_index },
+ { 22388, DepthBoundsEXT_remap_index },
{ 1043, BlendEquationSeparateEXT_remap_index },
- { 13199, BindFramebufferEXT_remap_index },
- { 23377, BindRenderbufferEXT_remap_index },
- { 8659, CheckFramebufferStatusEXT_remap_index },
- { 20552, DeleteFramebuffersEXT_remap_index },
- { 28970, DeleteRenderbuffersEXT_remap_index },
- { 12153, FramebufferRenderbufferEXT_remap_index },
- { 12290, FramebufferTexture1DEXT_remap_index },
- { 10348, FramebufferTexture2DEXT_remap_index },
- { 10015, FramebufferTexture3DEXT_remap_index },
- { 21154, GenFramebuffersEXT_remap_index },
- { 15790, GenRenderbuffersEXT_remap_index },
- { 5745, GenerateMipmapEXT_remap_index },
- { 19757, GetFramebufferAttachmentParameterivEXT_remap_index },
- { 29495, GetRenderbufferParameterivEXT_remap_index },
- { 18492, IsFramebufferEXT_remap_index },
- { 30242, IsRenderbufferEXT_remap_index },
- { 7234, RenderbufferStorageEXT_remap_index },
+ { 13444, BindFramebufferEXT_remap_index },
+ { 23630, BindRenderbufferEXT_remap_index },
+ { 8806, CheckFramebufferStatusEXT_remap_index },
+ { 20822, DeleteFramebuffersEXT_remap_index },
+ { 29294, DeleteRenderbuffersEXT_remap_index },
+ { 12297, FramebufferRenderbufferEXT_remap_index },
+ { 12464, FramebufferTexture1DEXT_remap_index },
+ { 10495, FramebufferTexture2DEXT_remap_index },
+ { 10162, FramebufferTexture3DEXT_remap_index },
+ { 21424, GenFramebuffersEXT_remap_index },
+ { 16035, GenRenderbuffersEXT_remap_index },
+ { 5858, GenerateMipmapEXT_remap_index },
+ { 20002, GetFramebufferAttachmentParameterivEXT_remap_index },
+ { 29819, GetRenderbufferParameterivEXT_remap_index },
+ { 18737, IsFramebufferEXT_remap_index },
+ { 30566, IsRenderbufferEXT_remap_index },
+ { 7353, RenderbufferStorageEXT_remap_index },
{ 651, BlitFramebufferEXT_remap_index },
- { 12899, BufferParameteriAPPLE_remap_index },
- { 17361, FlushMappedBufferRangeAPPLE_remap_index },
+ { 13144, BufferParameteriAPPLE_remap_index },
+ { 17606, FlushMappedBufferRangeAPPLE_remap_index },
{ 2701, FramebufferTextureLayerEXT_remap_index },
- { 25678, ColorMaskIndexedEXT_remap_index },
- { 16987, DisableIndexedEXT_remap_index },
- { 24114, EnableIndexedEXT_remap_index },
- { 19728, GetBooleanIndexedvEXT_remap_index },
- { 9805, GetIntegerIndexedvEXT_remap_index },
- { 20628, IsEnabledIndexedEXT_remap_index },
+ { 4956, ColorMaskIndexedEXT_remap_index },
+ { 17232, DisableIndexedEXT_remap_index },
+ { 24429, EnableIndexedEXT_remap_index },
+ { 19973, GetBooleanIndexedvEXT_remap_index },
+ { 9952, GetIntegerIndexedvEXT_remap_index },
+ { 20898, IsEnabledIndexedEXT_remap_index },
{ 4074, BeginConditionalRenderNV_remap_index },
- { 23163, EndConditionalRenderNV_remap_index },
- { 8334, BeginTransformFeedbackEXT_remap_index },
- { 17011, BindBufferBaseEXT_remap_index },
- { 16881, BindBufferOffsetEXT_remap_index },
- { 11028, BindBufferRangeEXT_remap_index },
- { 12814, EndTransformFeedbackEXT_remap_index },
- { 9657, GetTransformFeedbackVaryingEXT_remap_index },
- { 18797, TransformFeedbackVaryingsEXT_remap_index },
- { 26880, ProvokingVertexEXT_remap_index },
- { 9605, GetTexParameterPointervAPPLE_remap_index },
+ { 23416, EndConditionalRenderNV_remap_index },
+ { 8453, BeginTransformFeedbackEXT_remap_index },
+ { 17256, BindBufferBaseEXT_remap_index },
+ { 17126, BindBufferOffsetEXT_remap_index },
+ { 11136, BindBufferRangeEXT_remap_index },
+ { 13059, EndTransformFeedbackEXT_remap_index },
+ { 9804, GetTransformFeedbackVaryingEXT_remap_index },
+ { 19042, TransformFeedbackVaryingsEXT_remap_index },
+ { 27165, ProvokingVertexEXT_remap_index },
+ { 9752, GetTexParameterPointervAPPLE_remap_index },
{ 4436, TextureRangeAPPLE_remap_index },
- { 10420, GetObjectParameterivAPPLE_remap_index },
- { 17936, ObjectPurgeableAPPLE_remap_index },
- { 4900, ObjectUnpurgeableAPPLE_remap_index },
- { 26195, StencilFuncSeparateATI_remap_index },
- { 16310, ProgramEnvParameters4fvEXT_remap_index },
- { 19691, ProgramLocalParameters4fvEXT_remap_index },
- { 12682, GetQueryObjecti64vEXT_remap_index },
- { 9247, GetQueryObjectui64vEXT_remap_index },
- { 21656, EGLImageTargetRenderbufferStorageOES_remap_index },
- { 10907, EGLImageTargetTexture2DOES_remap_index },
+ { 10567, GetObjectParameterivAPPLE_remap_index },
+ { 18181, ObjectPurgeableAPPLE_remap_index },
+ { 4985, ObjectUnpurgeableAPPLE_remap_index },
+ { 26480, StencilFuncSeparateATI_remap_index },
+ { 16555, ProgramEnvParameters4fvEXT_remap_index },
+ { 19936, ProgramLocalParameters4fvEXT_remap_index },
+ { 12927, GetQueryObjecti64vEXT_remap_index },
+ { 9394, GetQueryObjectui64vEXT_remap_index },
+ { 21926, EGLImageTargetRenderbufferStorageOES_remap_index },
+ { 11054, EGLImageTargetTexture2DOES_remap_index },
{ -1, -1 }
};
@@ -4841,108 +4895,108 @@ static const struct gl_function_remap MESA_alt_functions[] = {
/* from GL_EXT_blend_color */
{ 2440, _gloffset_BlendColor },
/* from GL_EXT_blend_minmax */
- { 10072, _gloffset_BlendEquation },
+ { 10219, _gloffset_BlendEquation },
/* from GL_EXT_color_subtable */
- { 15378, _gloffset_ColorSubTable },
- { 28902, _gloffset_CopyColorSubTable },
+ { 15623, _gloffset_ColorSubTable },
+ { 29226, _gloffset_CopyColorSubTable },
/* from GL_EXT_convolution */
{ 213, _gloffset_ConvolutionFilter1D },
{ 2284, _gloffset_CopyConvolutionFilter1D },
{ 3624, _gloffset_GetConvolutionParameteriv },
- { 7583, _gloffset_ConvolutionFilter2D },
- { 7749, _gloffset_ConvolutionParameteriv },
- { 8209, _gloffset_ConvolutionParameterfv },
- { 18640, _gloffset_GetSeparableFilter },
- { 21886, _gloffset_SeparableFilter2D },
- { 22715, _gloffset_ConvolutionParameteri },
- { 22838, _gloffset_ConvolutionParameterf },
- { 24293, _gloffset_GetConvolutionParameterfv },
- { 25147, _gloffset_GetConvolutionFilter },
- { 27420, _gloffset_CopyConvolutionFilter2D },
+ { 7702, _gloffset_ConvolutionFilter2D },
+ { 7868, _gloffset_ConvolutionParameteriv },
+ { 8328, _gloffset_ConvolutionParameterfv },
+ { 18885, _gloffset_GetSeparableFilter },
+ { 22156, _gloffset_SeparableFilter2D },
+ { 22968, _gloffset_ConvolutionParameteri },
+ { 23091, _gloffset_ConvolutionParameterf },
+ { 24608, _gloffset_GetConvolutionParameterfv },
+ { 25430, _gloffset_GetConvolutionFilter },
+ { 27705, _gloffset_CopyConvolutionFilter2D },
/* from GL_EXT_copy_texture */
- { 13558, _gloffset_CopyTexSubImage3D },
- { 15118, _gloffset_CopyTexImage2D },
- { 22323, _gloffset_CopyTexImage1D },
- { 24828, _gloffset_CopyTexSubImage2D },
- { 27058, _gloffset_CopyTexSubImage1D },
+ { 13803, _gloffset_CopyTexSubImage3D },
+ { 15363, _gloffset_CopyTexImage2D },
+ { 22576, _gloffset_CopyTexImage1D },
+ { 25111, _gloffset_CopyTexSubImage2D },
+ { 27343, _gloffset_CopyTexSubImage1D },
/* from GL_EXT_draw_range_elements */
- { 8546, _gloffset_DrawRangeElements },
+ { 8665, _gloffset_DrawRangeElements },
/* from GL_EXT_histogram */
{ 812, _gloffset_Histogram },
{ 3088, _gloffset_ResetHistogram },
- { 8918, _gloffset_GetMinmax },
- { 13892, _gloffset_GetHistogramParameterfv },
- { 22248, _gloffset_GetMinmaxParameteriv },
- { 24183, _gloffset_ResetMinmax },
- { 25044, _gloffset_GetHistogramParameteriv },
- { 26129, _gloffset_GetHistogram },
- { 28527, _gloffset_Minmax },
- { 29989, _gloffset_GetMinmaxParameterfv },
+ { 9065, _gloffset_GetMinmax },
+ { 14137, _gloffset_GetHistogramParameterfv },
+ { 22501, _gloffset_GetMinmaxParameteriv },
+ { 24498, _gloffset_ResetMinmax },
+ { 25327, _gloffset_GetHistogramParameteriv },
+ { 26414, _gloffset_GetHistogram },
+ { 28812, _gloffset_Minmax },
+ { 30313, _gloffset_GetMinmaxParameterfv },
/* from GL_EXT_paletted_texture */
- { 7445, _gloffset_ColorTable },
- { 13738, _gloffset_GetColorTable },
- { 20901, _gloffset_GetColorTableParameterfv },
- { 22894, _gloffset_GetColorTableParameteriv },
+ { 7564, _gloffset_ColorTable },
+ { 13983, _gloffset_GetColorTable },
+ { 21171, _gloffset_GetColorTableParameterfv },
+ { 23147, _gloffset_GetColorTableParameteriv },
/* from GL_EXT_subtexture */
- { 6166, _gloffset_TexSubImage1D },
- { 9532, _gloffset_TexSubImage2D },
+ { 6285, _gloffset_TexSubImage1D },
+ { 9679, _gloffset_TexSubImage2D },
/* from GL_EXT_texture3D */
{ 1658, _gloffset_TexImage3D },
- { 20670, _gloffset_TexSubImage3D },
+ { 20940, _gloffset_TexSubImage3D },
/* from GL_EXT_texture_object */
{ 2964, _gloffset_PrioritizeTextures },
- { 6615, _gloffset_AreTexturesResident },
- { 12238, _gloffset_GenTextures },
- { 14224, _gloffset_DeleteTextures },
- { 17642, _gloffset_IsTexture },
- { 27123, _gloffset_BindTexture },
+ { 6734, _gloffset_AreTexturesResident },
+ { 12382, _gloffset_GenTextures },
+ { 14469, _gloffset_DeleteTextures },
+ { 17887, _gloffset_IsTexture },
+ { 27408, _gloffset_BindTexture },
/* from GL_EXT_vertex_array */
- { 22075, _gloffset_ArrayElement },
- { 28115, _gloffset_GetPointerv },
- { 29616, _gloffset_DrawArrays },
+ { 22328, _gloffset_ArrayElement },
+ { 28400, _gloffset_GetPointerv },
+ { 29940, _gloffset_DrawArrays },
/* from GL_SGI_color_table */
- { 6733, _gloffset_ColorTableParameteriv },
- { 7445, _gloffset_ColorTable },
- { 13738, _gloffset_GetColorTable },
- { 13848, _gloffset_CopyColorTable },
- { 17503, _gloffset_ColorTableParameterfv },
- { 20901, _gloffset_GetColorTableParameterfv },
- { 22894, _gloffset_GetColorTableParameteriv },
+ { 6852, _gloffset_ColorTableParameteriv },
+ { 7564, _gloffset_ColorTable },
+ { 13983, _gloffset_GetColorTable },
+ { 14093, _gloffset_CopyColorTable },
+ { 17748, _gloffset_ColorTableParameterfv },
+ { 21171, _gloffset_GetColorTableParameterfv },
+ { 23147, _gloffset_GetColorTableParameteriv },
/* from GL_VERSION_1_3 */
{ 381, _gloffset_MultiTexCoord3sARB },
{ 613, _gloffset_ActiveTextureARB },
{ 3761, _gloffset_MultiTexCoord1fvARB },
- { 5301, _gloffset_MultiTexCoord3dARB },
- { 5346, _gloffset_MultiTexCoord2iARB },
- { 5470, _gloffset_MultiTexCoord2svARB },
- { 7401, _gloffset_MultiTexCoord2fARB },
- { 9277, _gloffset_MultiTexCoord3fvARB },
- { 9834, _gloffset_MultiTexCoord4sARB },
- { 10468, _gloffset_MultiTexCoord2dvARB },
- { 10850, _gloffset_MultiTexCoord1svARB },
- { 11225, _gloffset_MultiTexCoord3svARB },
- { 11286, _gloffset_MultiTexCoord4iARB },
- { 12009, _gloffset_MultiTexCoord3iARB },
- { 12711, _gloffset_MultiTexCoord1dARB },
- { 12928, _gloffset_MultiTexCoord3dvARB },
- { 14092, _gloffset_MultiTexCoord3ivARB },
- { 14137, _gloffset_MultiTexCoord2sARB },
- { 15435, _gloffset_MultiTexCoord4ivARB },
- { 17153, _gloffset_ClientActiveTextureARB },
- { 19436, _gloffset_MultiTexCoord2dARB },
- { 19877, _gloffset_MultiTexCoord4dvARB },
- { 20163, _gloffset_MultiTexCoord4fvARB },
- { 21042, _gloffset_MultiTexCoord3fARB },
- { 23422, _gloffset_MultiTexCoord4dARB },
- { 23626, _gloffset_MultiTexCoord1sARB },
- { 23830, _gloffset_MultiTexCoord1dvARB },
- { 24672, _gloffset_MultiTexCoord1ivARB },
- { 24765, _gloffset_MultiTexCoord2ivARB },
- { 25104, _gloffset_MultiTexCoord1iARB },
- { 26404, _gloffset_MultiTexCoord4svARB },
- { 26922, _gloffset_MultiTexCoord1fARB },
- { 27185, _gloffset_MultiTexCoord4fARB },
- { 29450, _gloffset_MultiTexCoord2fvARB },
+ { 5386, _gloffset_MultiTexCoord3dARB },
+ { 5431, _gloffset_MultiTexCoord2iARB },
+ { 5555, _gloffset_MultiTexCoord2svARB },
+ { 7520, _gloffset_MultiTexCoord2fARB },
+ { 9424, _gloffset_MultiTexCoord3fvARB },
+ { 9981, _gloffset_MultiTexCoord4sARB },
+ { 10615, _gloffset_MultiTexCoord2dvARB },
+ { 10997, _gloffset_MultiTexCoord1svARB },
+ { 11369, _gloffset_MultiTexCoord3svARB },
+ { 11430, _gloffset_MultiTexCoord4iARB },
+ { 12153, _gloffset_MultiTexCoord3iARB },
+ { 12956, _gloffset_MultiTexCoord1dARB },
+ { 13173, _gloffset_MultiTexCoord3dvARB },
+ { 14337, _gloffset_MultiTexCoord3ivARB },
+ { 14382, _gloffset_MultiTexCoord2sARB },
+ { 15680, _gloffset_MultiTexCoord4ivARB },
+ { 17398, _gloffset_ClientActiveTextureARB },
+ { 19681, _gloffset_MultiTexCoord2dARB },
+ { 20122, _gloffset_MultiTexCoord4dvARB },
+ { 20433, _gloffset_MultiTexCoord4fvARB },
+ { 21312, _gloffset_MultiTexCoord3fARB },
+ { 23675, _gloffset_MultiTexCoord4dARB },
+ { 23941, _gloffset_MultiTexCoord1sARB },
+ { 24145, _gloffset_MultiTexCoord1dvARB },
+ { 24955, _gloffset_MultiTexCoord1ivARB },
+ { 25048, _gloffset_MultiTexCoord2ivARB },
+ { 25387, _gloffset_MultiTexCoord1iARB },
+ { 26689, _gloffset_MultiTexCoord4svARB },
+ { 27207, _gloffset_MultiTexCoord1fARB },
+ { 27470, _gloffset_MultiTexCoord4fARB },
+ { 29774, _gloffset_MultiTexCoord2fvARB },
{ -1, -1 }
};
@@ -4950,7 +5004,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[] = {
- { 8267, -1 }, /* TbufferMask3DFX */
+ { 8386, -1 }, /* TbufferMask3DFX */
{ -1, -1 }
};
#endif
@@ -5018,6 +5072,14 @@ static const struct gl_function_remap GL_ARB_framebuffer_object_functions[] = {
};
#endif
+#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[] = {
+ { 11333, -1 }, /* FramebufferTextureLayer */
+ { -1, -1 }
+};
+#endif
+
#if defined(need_GL_ARB_map_buffer_range)
/* functions defined in MESA_remap_table_functions are excluded */
static const struct gl_function_remap GL_ARB_map_buffer_range_functions[] = {
@@ -5028,10 +5090,10 @@ 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[] = {
{ 3339, -1 }, /* MatrixIndexusvARB */
- { 11830, -1 }, /* MatrixIndexuivARB */
- { 13050, -1 }, /* MatrixIndexPointerARB */
- { 17891, -1 }, /* CurrentPaletteMatrixARB */
- { 20786, -1 }, /* MatrixIndexubvARB */
+ { 11974, -1 }, /* MatrixIndexuivARB */
+ { 13295, -1 }, /* MatrixIndexPointerARB */
+ { 18136, -1 }, /* CurrentPaletteMatrixARB */
+ { 21056, -1 }, /* MatrixIndexubvARB */
{ -1, -1 }
};
#endif
@@ -5085,6 +5147,13 @@ static const struct gl_function_remap GL_ARB_texture_compression_functions[] = {
};
#endif
+#if defined(need_GL_ARB_transform_feedback2)
+/* functions defined in MESA_remap_table_functions are excluded */
+static const struct gl_function_remap GL_ARB_transform_feedback2_functions[] = {
+ { -1, -1 }
+};
+#endif
+
#if defined(need_GL_ARB_transpose_matrix)
/* functions defined in MESA_remap_table_functions are excluded */
static const struct gl_function_remap GL_ARB_transpose_matrix_functions[] = {
@@ -5102,15 +5171,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[] = {
{ 2226, -1 }, /* WeightubvARB */
- { 5633, -1 }, /* WeightivARB */
- { 9937, -1 }, /* WeightPointerARB */
- { 12468, -1 }, /* WeightfvARB */
- { 15930, -1 }, /* WeightbvARB */
- { 19104, -1 }, /* WeightusvARB */
- { 21812, -1 }, /* VertexBlendARB */
- { 27006, -1 }, /* WeightsvARB */
- { 28952, -1 }, /* WeightdvARB */
- { 29650, -1 }, /* WeightuivARB */
+ { 5746, -1 }, /* WeightivARB */
+ { 10084, -1 }, /* WeightPointerARB */
+ { 12674, -1 }, /* WeightfvARB */
+ { 16175, -1 }, /* WeightbvARB */
+ { 19349, -1 }, /* WeightusvARB */
+ { 22082, -1 }, /* VertexBlendARB */
+ { 27291, -1 }, /* WeightsvARB */
+ { 29276, -1 }, /* WeightdvARB */
+ { 29974, -1 }, /* WeightuivARB */
{ -1, -1 }
};
#endif
@@ -5201,15 +5270,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[] = {
- { 10072, _gloffset_BlendEquation },
+ { 10219, _gloffset_BlendEquation },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_color_subtable)
static const struct gl_function_remap GL_EXT_color_subtable_functions[] = {
- { 15378, _gloffset_ColorSubTable },
- { 28902, _gloffset_CopyColorSubTable },
+ { 15623, _gloffset_ColorSubTable },
+ { 29226, _gloffset_CopyColorSubTable },
{ -1, -1 }
};
#endif
@@ -5226,55 +5295,55 @@ static const struct gl_function_remap GL_EXT_convolution_functions[] = {
{ 213, _gloffset_ConvolutionFilter1D },
{ 2284, _gloffset_CopyConvolutionFilter1D },
{ 3624, _gloffset_GetConvolutionParameteriv },
- { 7583, _gloffset_ConvolutionFilter2D },
- { 7749, _gloffset_ConvolutionParameteriv },
- { 8209, _gloffset_ConvolutionParameterfv },
- { 18640, _gloffset_GetSeparableFilter },
- { 21886, _gloffset_SeparableFilter2D },
- { 22715, _gloffset_ConvolutionParameteri },
- { 22838, _gloffset_ConvolutionParameterf },
- { 24293, _gloffset_GetConvolutionParameterfv },
- { 25147, _gloffset_GetConvolutionFilter },
- { 27420, _gloffset_CopyConvolutionFilter2D },
+ { 7702, _gloffset_ConvolutionFilter2D },
+ { 7868, _gloffset_ConvolutionParameteriv },
+ { 8328, _gloffset_ConvolutionParameterfv },
+ { 18885, _gloffset_GetSeparableFilter },
+ { 22156, _gloffset_SeparableFilter2D },
+ { 22968, _gloffset_ConvolutionParameteri },
+ { 23091, _gloffset_ConvolutionParameterf },
+ { 24608, _gloffset_GetConvolutionParameterfv },
+ { 25430, _gloffset_GetConvolutionFilter },
+ { 27705, _gloffset_CopyConvolutionFilter2D },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_coordinate_frame)
static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = {
- { 9416, -1 }, /* TangentPointerEXT */
- { 11344, -1 }, /* Binormal3ivEXT */
- { 11962, -1 }, /* Tangent3sEXT */
- { 13115, -1 }, /* Tangent3fvEXT */
- { 16862, -1 }, /* Tangent3dvEXT */
- { 17589, -1 }, /* Binormal3bvEXT */
- { 18693, -1 }, /* Binormal3dEXT */
- { 20718, -1 }, /* Tangent3fEXT */
- { 22787, -1 }, /* Binormal3sEXT */
- { 23232, -1 }, /* Tangent3ivEXT */
- { 23251, -1 }, /* Tangent3dEXT */
- { 24057, -1 }, /* Binormal3svEXT */
- { 24570, -1 }, /* Binormal3fEXT */
- { 25422, -1 }, /* Binormal3dvEXT */
- { 26626, -1 }, /* Tangent3iEXT */
- { 27705, -1 }, /* Tangent3bvEXT */
- { 28150, -1 }, /* Tangent3bEXT */
- { 28675, -1 }, /* Binormal3fvEXT */
- { 29349, -1 }, /* BinormalPointerEXT */
- { 29754, -1 }, /* Tangent3svEXT */
- { 30191, -1 }, /* Binormal3bEXT */
- { 30368, -1 }, /* Binormal3iEXT */
+ { 9563, -1 }, /* TangentPointerEXT */
+ { 11488, -1 }, /* Binormal3ivEXT */
+ { 12106, -1 }, /* Tangent3sEXT */
+ { 13360, -1 }, /* Tangent3fvEXT */
+ { 17107, -1 }, /* Tangent3dvEXT */
+ { 17834, -1 }, /* Binormal3bvEXT */
+ { 18938, -1 }, /* Binormal3dEXT */
+ { 20988, -1 }, /* Tangent3fEXT */
+ { 23040, -1 }, /* Binormal3sEXT */
+ { 23485, -1 }, /* Tangent3ivEXT */
+ { 23504, -1 }, /* Tangent3dEXT */
+ { 24372, -1 }, /* Binormal3svEXT */
+ { 24853, -1 }, /* Binormal3fEXT */
+ { 25705, -1 }, /* Binormal3dvEXT */
+ { 26911, -1 }, /* Tangent3iEXT */
+ { 27990, -1 }, /* Tangent3bvEXT */
+ { 28435, -1 }, /* Tangent3bEXT */
+ { 28999, -1 }, /* Binormal3fvEXT */
+ { 29673, -1 }, /* BinormalPointerEXT */
+ { 30078, -1 }, /* Tangent3svEXT */
+ { 30515, -1 }, /* Binormal3bEXT */
+ { 30692, -1 }, /* Binormal3iEXT */
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_copy_texture)
static const struct gl_function_remap GL_EXT_copy_texture_functions[] = {
- { 13558, _gloffset_CopyTexSubImage3D },
- { 15118, _gloffset_CopyTexImage2D },
- { 22323, _gloffset_CopyTexImage1D },
- { 24828, _gloffset_CopyTexSubImage2D },
- { 27058, _gloffset_CopyTexSubImage1D },
+ { 13803, _gloffset_CopyTexSubImage3D },
+ { 15363, _gloffset_CopyTexImage2D },
+ { 22576, _gloffset_CopyTexImage1D },
+ { 25111, _gloffset_CopyTexSubImage2D },
+ { 27343, _gloffset_CopyTexSubImage1D },
{ -1, -1 }
};
#endif
@@ -5309,7 +5378,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[] = {
- { 8546, _gloffset_DrawRangeElements },
+ { 8665, _gloffset_DrawRangeElements },
{ -1, -1 }
};
#endif
@@ -5353,37 +5422,37 @@ static const struct gl_function_remap GL_EXT_gpu_program_parameters_functions[]
static const struct gl_function_remap GL_EXT_histogram_functions[] = {
{ 812, _gloffset_Histogram },
{ 3088, _gloffset_ResetHistogram },
- { 8918, _gloffset_GetMinmax },
- { 13892, _gloffset_GetHistogramParameterfv },
- { 22248, _gloffset_GetMinmaxParameteriv },
- { 24183, _gloffset_ResetMinmax },
- { 25044, _gloffset_GetHistogramParameteriv },
- { 26129, _gloffset_GetHistogram },
- { 28527, _gloffset_Minmax },
- { 29989, _gloffset_GetMinmaxParameterfv },
+ { 9065, _gloffset_GetMinmax },
+ { 14137, _gloffset_GetHistogramParameterfv },
+ { 22501, _gloffset_GetMinmaxParameteriv },
+ { 24498, _gloffset_ResetMinmax },
+ { 25327, _gloffset_GetHistogramParameteriv },
+ { 26414, _gloffset_GetHistogram },
+ { 28812, _gloffset_Minmax },
+ { 30313, _gloffset_GetMinmaxParameterfv },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_index_func)
static const struct gl_function_remap GL_EXT_index_func_functions[] = {
- { 10299, -1 }, /* IndexFuncEXT */
+ { 10446, -1 }, /* IndexFuncEXT */
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_index_material)
static const struct gl_function_remap GL_EXT_index_material_functions[] = {
- { 19191, -1 }, /* IndexMaterialEXT */
+ { 19436, -1 }, /* IndexMaterialEXT */
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_light_texture)
static const struct gl_function_remap GL_EXT_light_texture_functions[] = {
- { 24077, -1 }, /* ApplyTextureEXT */
- { 24137, -1 }, /* TextureMaterialEXT */
- { 24162, -1 }, /* TextureLightEXT */
+ { 24392, -1 }, /* ApplyTextureEXT */
+ { 24452, -1 }, /* TextureMaterialEXT */
+ { 24477, -1 }, /* TextureLightEXT */
{ -1, -1 }
};
#endif
@@ -5404,20 +5473,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[] = {
- { 7445, _gloffset_ColorTable },
- { 13738, _gloffset_GetColorTable },
- { 20901, _gloffset_GetColorTableParameterfv },
- { 22894, _gloffset_GetColorTableParameteriv },
+ { 7564, _gloffset_ColorTable },
+ { 13983, _gloffset_GetColorTable },
+ { 21171, _gloffset_GetColorTableParameterfv },
+ { 23147, _gloffset_GetColorTableParameteriv },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_pixel_transform)
static const struct gl_function_remap GL_EXT_pixel_transform_functions[] = {
- { 19842, -1 }, /* PixelTransformParameterfEXT */
- { 19922, -1 }, /* PixelTransformParameteriEXT */
- { 27888, -1 }, /* PixelTransformParameterfvEXT */
- { 29313, -1 }, /* PixelTransformParameterivEXT */
+ { 20087, -1 }, /* PixelTransformParameterfEXT */
+ { 20167, -1 }, /* PixelTransformParameteriEXT */
+ { 28173, -1 }, /* PixelTransformParameterfvEXT */
+ { 29637, -1 }, /* PixelTransformParameterivEXT */
{ -1, -1 }
};
#endif
@@ -5459,8 +5528,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[] = {
- { 6166, _gloffset_TexSubImage1D },
- { 9532, _gloffset_TexSubImage2D },
+ { 6285, _gloffset_TexSubImage1D },
+ { 9679, _gloffset_TexSubImage2D },
{ -1, -1 }
};
#endif
@@ -5468,7 +5537,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[] = {
{ 1658, _gloffset_TexImage3D },
- { 20670, _gloffset_TexSubImage3D },
+ { 20940, _gloffset_TexSubImage3D },
{ -1, -1 }
};
#endif
@@ -5483,18 +5552,18 @@ static const struct gl_function_remap GL_EXT_texture_array_functions[] = {
#if defined(need_GL_EXT_texture_object)
static const struct gl_function_remap GL_EXT_texture_object_functions[] = {
{ 2964, _gloffset_PrioritizeTextures },
- { 6615, _gloffset_AreTexturesResident },
- { 12238, _gloffset_GenTextures },
- { 14224, _gloffset_DeleteTextures },
- { 17642, _gloffset_IsTexture },
- { 27123, _gloffset_BindTexture },
+ { 6734, _gloffset_AreTexturesResident },
+ { 12382, _gloffset_GenTextures },
+ { 14469, _gloffset_DeleteTextures },
+ { 17887, _gloffset_IsTexture },
+ { 27408, _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[] = {
- { 12418, -1 }, /* TextureNormalEXT */
+ { 12624, -1 }, /* TextureNormalEXT */
{ -1, -1 }
};
#endif
@@ -5516,18 +5585,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[] = {
- { 22075, _gloffset_ArrayElement },
- { 28115, _gloffset_GetPointerv },
- { 29616, _gloffset_DrawArrays },
+ { 22328, _gloffset_ArrayElement },
+ { 28400, _gloffset_GetPointerv },
+ { 29940, _gloffset_DrawArrays },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_vertex_weighting)
static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = {
- { 17672, -1 }, /* VertexWeightfvEXT */
- { 24548, -1 }, /* VertexWeightfEXT */
- { 26098, -1 }, /* VertexWeightPointerEXT */
+ { 17917, -1 }, /* VertexWeightfvEXT */
+ { 24831, -1 }, /* VertexWeightfEXT */
+ { 26383, -1 }, /* VertexWeightPointerEXT */
{ -1, -1 }
};
#endif
@@ -5536,10 +5605,10 @@ static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = {
static const struct gl_function_remap GL_HP_image_transform_functions[] = {
{ 2157, -1 }, /* GetImageTransformParameterfvHP */
{ 3305, -1 }, /* ImageTransformParameterfHP */
- { 9110, -1 }, /* ImageTransformParameterfvHP */
- { 10768, -1 }, /* ImageTransformParameteriHP */
- { 11115, -1 }, /* GetImageTransformParameterivHP */
- { 17736, -1 }, /* ImageTransformParameterivHP */
+ { 9257, -1 }, /* ImageTransformParameterfvHP */
+ { 10915, -1 }, /* ImageTransformParameteriHP */
+ { 11223, -1 }, /* GetImageTransformParameterivHP */
+ { 17981, -1 }, /* ImageTransformParameterivHP */
{ -1, -1 }
};
#endif
@@ -5554,13 +5623,13 @@ 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[] = {
{ 3857, -1 }, /* SecondaryColorPointerListIBM */
- { 5167, -1 }, /* NormalPointerListIBM */
- { 6789, -1 }, /* FogCoordPointerListIBM */
- { 7096, -1 }, /* VertexPointerListIBM */
- { 10689, -1 }, /* ColorPointerListIBM */
- { 12069, -1 }, /* TexCoordPointerListIBM */
- { 12440, -1 }, /* IndexPointerListIBM */
- { 29932, -1 }, /* EdgeFlagPointerListIBM */
+ { 5252, -1 }, /* NormalPointerListIBM */
+ { 6908, -1 }, /* FogCoordPointerListIBM */
+ { 7215, -1 }, /* VertexPointerListIBM */
+ { 10836, -1 }, /* ColorPointerListIBM */
+ { 12213, -1 }, /* TexCoordPointerListIBM */
+ { 12646, -1 }, /* IndexPointerListIBM */
+ { 30256, -1 }, /* EdgeFlagPointerListIBM */
{ -1, -1 }
};
#endif
@@ -5574,10 +5643,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[] = {
- { 11456, -1 }, /* VertexPointervINTEL */
- { 13985, -1 }, /* ColorPointervINTEL */
- { 27394, -1 }, /* NormalPointervINTEL */
- { 27820, -1 }, /* TexCoordPointervINTEL */
+ { 11600, -1 }, /* VertexPointervINTEL */
+ { 14230, -1 }, /* ColorPointervINTEL */
+ { 27679, -1 }, /* NormalPointervINTEL */
+ { 28105, -1 }, /* TexCoordPointervINTEL */
{ -1, -1 }
};
#endif
@@ -5594,7 +5663,7 @@ static const struct gl_function_remap GL_MESA_shader_debug_functions[] = {
{ 1522, -1 }, /* GetDebugLogLengthMESA */
{ 3063, -1 }, /* ClearDebugLogMESA */
{ 4018, -1 }, /* GetDebugLogMESA */
- { 28308, -1 }, /* CreateDebugObjectMESA */
+ { 28593, -1 }, /* CreateDebugObjectMESA */
{ -1, -1 }
};
#endif
@@ -5615,15 +5684,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[] = {
- { 5834, -1 }, /* GetMapAttribParameterivNV */
- { 7551, -1 }, /* MapControlPointsNV */
- { 7650, -1 }, /* MapParameterfvNV */
- { 9515, -1 }, /* EvalMapsNV */
- { 15600, -1 }, /* GetMapAttribParameterfvNV */
- { 15766, -1 }, /* MapParameterivNV */
- { 22638, -1 }, /* GetMapParameterivNV */
- { 23136, -1 }, /* GetMapParameterfvNV */
- { 26730, -1 }, /* GetMapControlPointsNV */
+ { 5947, -1 }, /* GetMapAttribParameterivNV */
+ { 7670, -1 }, /* MapControlPointsNV */
+ { 7769, -1 }, /* MapParameterfvNV */
+ { 9662, -1 }, /* EvalMapsNV */
+ { 15845, -1 }, /* GetMapAttribParameterfvNV */
+ { 16011, -1 }, /* MapParameterivNV */
+ { 22891, -1 }, /* GetMapParameterivNV */
+ { 23389, -1 }, /* GetMapParameterfvNV */
+ { 27015, -1 }, /* GetMapControlPointsNV */
{ -1, -1 }
};
#endif
@@ -5658,8 +5727,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[] = {
- { 14455, -1 }, /* CombinerStageParameterfvNV */
- { 14770, -1 }, /* GetCombinerStageParameterfvNV */
+ { 14700, -1 }, /* CombinerStageParameterfvNV */
+ { 15015, -1 }, /* GetCombinerStageParameterfvNV */
{ -1, -1 }
};
#endif
@@ -5687,23 +5756,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[] = {
- { 7735, -1 }, /* HintPGI */
+ { 7854, -1 }, /* HintPGI */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIS_detail_texture)
static const struct gl_function_remap GL_SGIS_detail_texture_functions[] = {
- { 14743, -1 }, /* GetDetailTexFuncSGIS */
- { 15063, -1 }, /* DetailTexFuncSGIS */
+ { 14988, -1 }, /* GetDetailTexFuncSGIS */
+ { 15308, -1 }, /* DetailTexFuncSGIS */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIS_fog_function)
static const struct gl_function_remap GL_SGIS_fog_function_functions[] = {
- { 24810, -1 }, /* FogFuncSGIS */
- { 25475, -1 }, /* GetFogFuncSGIS */
+ { 25093, -1 }, /* FogFuncSGIS */
+ { 25758, -1 }, /* GetFogFuncSGIS */
{ -1, -1 }
};
#endif
@@ -5731,8 +5800,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[] = {
- { 5895, -1 }, /* GetSharpenTexFuncSGIS */
- { 20137, -1 }, /* SharpenTexFuncSGIS */
+ { 6008, -1 }, /* GetSharpenTexFuncSGIS */
+ { 20407, -1 }, /* SharpenTexFuncSGIS */
{ -1, -1 }
};
#endif
@@ -5740,22 +5809,22 @@ 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[] = {
{ 894, -1 }, /* TexImage4DSGIS */
- { 14293, -1 }, /* TexSubImage4DSGIS */
+ { 14538, -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[] = {
- { 13691, -1 }, /* TextureColorMaskSGIS */
+ { 13936, -1 }, /* TextureColorMaskSGIS */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIS_texture_filter4)
static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = {
- { 6072, -1 }, /* GetTexFilterFuncSGIS */
- { 14889, -1 }, /* TexFilterFuncSGIS */
+ { 6185, -1 }, /* GetTexFilterFuncSGIS */
+ { 15134, -1 }, /* TexFilterFuncSGIS */
{ -1, -1 }
};
#endif
@@ -5764,17 +5833,17 @@ static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = {
static const struct gl_function_remap GL_SGIX_async_functions[] = {
{ 3014, -1 }, /* AsyncMarkerSGIX */
{ 3997, -1 }, /* FinishAsyncSGIX */
- { 4734, -1 }, /* PollAsyncSGIX */
- { 20284, -1 }, /* DeleteAsyncMarkersSGIX */
- { 20339, -1 }, /* IsAsyncMarkerSGIX */
- { 29729, -1 }, /* GenAsyncMarkersSGIX */
+ { 4762, -1 }, /* PollAsyncSGIX */
+ { 20554, -1 }, /* DeleteAsyncMarkersSGIX */
+ { 20609, -1 }, /* IsAsyncMarkerSGIX */
+ { 30053, -1 }, /* GenAsyncMarkersSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_flush_raster)
static const struct gl_function_remap GL_SGIX_flush_raster_functions[] = {
- { 6443, -1 }, /* FlushRasterSGIX */
+ { 6562, -1 }, /* FlushRasterSGIX */
{ -1, -1 }
};
#endif
@@ -5782,37 +5851,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[] = {
{ 2410, -1 }, /* FragmentMaterialfvSGIX */
- { 2906, -1 }, /* FragmentLightModelivSGIX */
- { 4685, -1 }, /* FragmentLightiSGIX */
- { 5575, -1 }, /* GetFragmentMaterialfvSGIX */
- { 7163, -1 }, /* FragmentMaterialfSGIX */
- { 7324, -1 }, /* GetFragmentLightivSGIX */
- { 8161, -1 }, /* FragmentLightModeliSGIX */
- { 9578, -1 }, /* FragmentLightivSGIX */
- { 9880, -1 }, /* GetFragmentMaterialivSGIX */
- { 17559, -1 }, /* FragmentLightModelfSGIX */
- { 17859, -1 }, /* FragmentColorMaterialSGIX */
- { 18259, -1 }, /* FragmentMaterialiSGIX */
- { 19519, -1 }, /* LightEnviSGIX */
- { 20993, -1 }, /* FragmentLightModelfvSGIX */
- { 21302, -1 }, /* FragmentLightfvSGIX */
- { 25980, -1 }, /* FragmentLightfSGIX */
- { 28645, -1 }, /* GetFragmentLightfvSGIX */
- { 30212, -1 }, /* FragmentMaterialivSGIX */
+ { 4713, -1 }, /* FragmentLightiSGIX */
+ { 5688, -1 }, /* GetFragmentMaterialfvSGIX */
+ { 7282, -1 }, /* FragmentMaterialfSGIX */
+ { 7443, -1 }, /* GetFragmentLightivSGIX */
+ { 8280, -1 }, /* FragmentLightModeliSGIX */
+ { 9725, -1 }, /* FragmentLightivSGIX */
+ { 10027, -1 }, /* GetFragmentMaterialivSGIX */
+ { 17804, -1 }, /* FragmentLightModelfSGIX */
+ { 18104, -1 }, /* FragmentColorMaterialSGIX */
+ { 18504, -1 }, /* FragmentMaterialiSGIX */
+ { 19764, -1 }, /* LightEnviSGIX */
+ { 21263, -1 }, /* FragmentLightModelfvSGIX */
+ { 21572, -1 }, /* FragmentLightfvSGIX */
+ { 26142, -1 }, /* FragmentLightModelivSGIX */
+ { 26265, -1 }, /* FragmentLightfSGIX */
+ { 28969, -1 }, /* GetFragmentLightfvSGIX */
+ { 30536, -1 }, /* FragmentMaterialivSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_framezoom)
static const struct gl_function_remap GL_SGIX_framezoom_functions[] = {
- { 20362, -1 }, /* FrameZoomSGIX */
+ { 20632, -1 }, /* FrameZoomSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_igloo_interface)
static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = {
- { 26288, -1 }, /* IglooInterfaceSGIX */
+ { 26573, -1 }, /* IglooInterfaceSGIX */
{ -1, -1 }
};
#endif
@@ -5820,11 +5889,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[] = {
{ 2573, -1 }, /* ReadInstrumentsSGIX */
- { 5651, -1 }, /* PollInstrumentsSGIX */
- { 9476, -1 }, /* GetInstrumentsSGIX */
- { 11667, -1 }, /* StartInstrumentsSGIX */
- { 14489, -1 }, /* StopInstrumentsSGIX */
- { 16143, -1 }, /* InstrumentsBufferSGIX */
+ { 5764, -1 }, /* PollInstrumentsSGIX */
+ { 9623, -1 }, /* GetInstrumentsSGIX */
+ { 11811, -1 }, /* StartInstrumentsSGIX */
+ { 14734, -1 }, /* StopInstrumentsSGIX */
+ { 16388, -1 }, /* InstrumentsBufferSGIX */
{ -1, -1 }
};
#endif
@@ -5833,10 +5902,10 @@ static const struct gl_function_remap GL_SGIX_instruments_functions[] = {
static const struct gl_function_remap GL_SGIX_list_priority_functions[] = {
{ 1125, -1 }, /* ListParameterfSGIX */
{ 2763, -1 }, /* GetListParameterfvSGIX */
- { 16058, -1 }, /* ListParameteriSGIX */
- { 16812, -1 }, /* ListParameterfvSGIX */
- { 18925, -1 }, /* ListParameterivSGIX */
- { 29773, -1 }, /* GetListParameterivSGIX */
+ { 16303, -1 }, /* ListParameteriSGIX */
+ { 17057, -1 }, /* ListParameterfvSGIX */
+ { 19170, -1 }, /* ListParameterivSGIX */
+ { 30097, -1 }, /* GetListParameterivSGIX */
{ -1, -1 }
};
#endif
@@ -5851,53 +5920,53 @@ 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[] = {
{ 3251, -1 }, /* LoadIdentityDeformationMapSGIX */
- { 10989, -1 }, /* DeformationMap3dSGIX */
- { 14589, -1 }, /* DeformSGIX */
- { 22187, -1 }, /* DeformationMap3fSGIX */
+ { 14834, -1 }, /* DeformSGIX */
+ { 22440, -1 }, /* DeformationMap3fSGIX */
+ { 28857, -1 }, /* DeformationMap3dSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_reference_plane)
static const struct gl_function_remap GL_SGIX_reference_plane_functions[] = {
- { 13242, -1 }, /* ReferencePlaneSGIX */
+ { 13487, -1 }, /* ReferencePlaneSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_sprite)
static const struct gl_function_remap GL_SGIX_sprite_functions[] = {
- { 8631, -1 }, /* SpriteParameterfvSGIX */
- { 18714, -1 }, /* SpriteParameteriSGIX */
- { 24217, -1 }, /* SpriteParameterfSGIX */
- { 26852, -1 }, /* SpriteParameterivSGIX */
+ { 8778, -1 }, /* SpriteParameterfvSGIX */
+ { 18959, -1 }, /* SpriteParameteriSGIX */
+ { 24532, -1 }, /* SpriteParameterfSGIX */
+ { 27137, -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[] = {
- { 18773, -1 }, /* TagSampleBufferSGIX */
+ { 19018, -1 }, /* TagSampleBufferSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGI_color_table)
static const struct gl_function_remap GL_SGI_color_table_functions[] = {
- { 6733, _gloffset_ColorTableParameteriv },
- { 7445, _gloffset_ColorTable },
- { 13738, _gloffset_GetColorTable },
- { 13848, _gloffset_CopyColorTable },
- { 17503, _gloffset_ColorTableParameterfv },
- { 20901, _gloffset_GetColorTableParameterfv },
- { 22894, _gloffset_GetColorTableParameteriv },
+ { 6852, _gloffset_ColorTableParameteriv },
+ { 7564, _gloffset_ColorTable },
+ { 13983, _gloffset_GetColorTable },
+ { 14093, _gloffset_CopyColorTable },
+ { 17748, _gloffset_ColorTableParameterfv },
+ { 21171, _gloffset_GetColorTableParameterfv },
+ { 23147, _gloffset_GetColorTableParameteriv },
{ -1, -1 }
};
#endif
#if defined(need_GL_SUNX_constant_data)
static const struct gl_function_remap GL_SUNX_constant_data_functions[] = {
- { 28623, -1 }, /* FinishTextureSUNX */
+ { 28947, -1 }, /* FinishTextureSUNX */
{ -1, -1 }
};
#endif
@@ -5906,19 +5975,19 @@ static const struct gl_function_remap GL_SUNX_constant_data_functions[] = {
static const struct gl_function_remap GL_SUN_global_alpha_functions[] = {
{ 3035, -1 }, /* GlobalAlphaFactorubSUN */
{ 4224, -1 }, /* GlobalAlphaFactoriSUN */
- { 5676, -1 }, /* GlobalAlphaFactordSUN */
- { 8715, -1 }, /* GlobalAlphaFactoruiSUN */
- { 9067, -1 }, /* GlobalAlphaFactorbSUN */
- { 11982, -1 }, /* GlobalAlphaFactorfSUN */
- { 12101, -1 }, /* GlobalAlphaFactorusSUN */
- { 20601, -1 }, /* GlobalAlphaFactorsSUN */
+ { 5789, -1 }, /* GlobalAlphaFactordSUN */
+ { 8862, -1 }, /* GlobalAlphaFactoruiSUN */
+ { 9214, -1 }, /* GlobalAlphaFactorbSUN */
+ { 12126, -1 }, /* GlobalAlphaFactorfSUN */
+ { 12245, -1 }, /* GlobalAlphaFactorusSUN */
+ { 20871, -1 }, /* GlobalAlphaFactorsSUN */
{ -1, -1 }
};
#endif
#if defined(need_GL_SUN_mesh_array)
static const struct gl_function_remap GL_SUN_mesh_array_functions[] = {
- { 26664, -1 }, /* DrawMeshArraysSUN */
+ { 26949, -1 }, /* DrawMeshArraysSUN */
{ -1, -1 }
};
#endif
@@ -5926,12 +5995,12 @@ static const struct gl_function_remap GL_SUN_mesh_array_functions[] = {
#if defined(need_GL_SUN_triangle_list)
static const struct gl_function_remap GL_SUN_triangle_list_functions[] = {
{ 3971, -1 }, /* ReplacementCodeubSUN */
- { 5515, -1 }, /* ReplacementCodeubvSUN */
- { 17224, -1 }, /* ReplacementCodeusvSUN */
- { 17412, -1 }, /* ReplacementCodePointerSUN */
- { 19583, -1 }, /* ReplacementCodeuiSUN */
- { 20313, -1 }, /* ReplacementCodeusSUN */
- { 27309, -1 }, /* ReplacementCodeuivSUN */
+ { 5600, -1 }, /* ReplacementCodeubvSUN */
+ { 17469, -1 }, /* ReplacementCodeusvSUN */
+ { 17657, -1 }, /* ReplacementCodePointerSUN */
+ { 19828, -1 }, /* ReplacementCodeuiSUN */
+ { 20583, -1 }, /* ReplacementCodeusSUN */
+ { 27594, -1 }, /* ReplacementCodeuivSUN */
{ -1, -1 }
};
#endif
@@ -5947,37 +6016,37 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = {
{ 2642, -1 }, /* Color4ubVertex3fvSUN */
{ 4105, -1 }, /* Color4ubVertex3fSUN */
{ 4181, -1 }, /* TexCoord2fVertex3fSUN */
- { 4480, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */
- { 4810, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */
- { 5410, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */
- { 6480, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */
- { 7192, -1 }, /* TexCoord2fNormal3fVertex3fSUN */
- { 7960, -1 }, /* Color3fVertex3fSUN */
- { 9026, -1 }, /* Color3fVertex3fvSUN */
- { 9441, -1 }, /* Color4fNormal3fVertex3fvSUN */
- { 10178, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */
- { 11530, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */
- { 12973, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */
- { 13384, -1 }, /* TexCoord2fColor3fVertex3fSUN */
- { 14514, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */
- { 14848, -1 }, /* Color4ubVertex2fvSUN */
- { 15088, -1 }, /* Normal3fVertex3fSUN */
- { 16084, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */
- { 16345, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */
- { 17053, -1 }, /* TexCoord2fVertex3fvSUN */
- { 17829, -1 }, /* Color4ubVertex2fSUN */
- { 18050, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */
- { 20008, -1 }, /* TexCoord2fColor4ubVertex3fSUN */
- { 20381, -1 }, /* Normal3fVertex3fvSUN */
- { 20810, -1 }, /* Color4fNormal3fVertex3fSUN */
- { 21719, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */
- { 21939, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */
- { 23669, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */
- { 24926, -1 }, /* TexCoord4fVertex4fSUN */
- { 25352, -1 }, /* TexCoord2fColor3fVertex3fvSUN */
- { 25707, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */
- { 25834, -1 }, /* TexCoord4fVertex4fvSUN */
- { 26536, -1 }, /* ReplacementCodeuiVertex3fSUN */
+ { 4508, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */
+ { 4866, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */
+ { 5495, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */
+ { 6240, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */
+ { 6599, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */
+ { 7311, -1 }, /* TexCoord2fNormal3fVertex3fSUN */
+ { 8079, -1 }, /* Color3fVertex3fSUN */
+ { 9173, -1 }, /* Color3fVertex3fvSUN */
+ { 9588, -1 }, /* Color4fNormal3fVertex3fvSUN */
+ { 10325, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */
+ { 11674, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */
+ { 13218, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */
+ { 13629, -1 }, /* TexCoord2fColor3fVertex3fSUN */
+ { 14759, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */
+ { 15093, -1 }, /* Color4ubVertex2fvSUN */
+ { 15333, -1 }, /* Normal3fVertex3fSUN */
+ { 16329, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */
+ { 16590, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */
+ { 17298, -1 }, /* TexCoord2fVertex3fvSUN */
+ { 18074, -1 }, /* Color4ubVertex2fSUN */
+ { 18295, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */
+ { 20253, -1 }, /* TexCoord2fColor4ubVertex3fSUN */
+ { 20651, -1 }, /* Normal3fVertex3fvSUN */
+ { 21080, -1 }, /* Color4fNormal3fVertex3fSUN */
+ { 21989, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */
+ { 23984, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */
+ { 25209, -1 }, /* TexCoord4fVertex4fSUN */
+ { 25635, -1 }, /* TexCoord2fColor3fVertex3fvSUN */
+ { 25986, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */
+ { 26113, -1 }, /* TexCoord4fVertex4fvSUN */
+ { 26821, -1 }, /* ReplacementCodeuiVertex3fSUN */
{ -1, -1 }
};
#endif
@@ -5988,37 +6057,37 @@ static const struct gl_function_remap GL_VERSION_1_3_functions[] = {
{ 381, _gloffset_MultiTexCoord3sARB },
{ 613, _gloffset_ActiveTextureARB },
{ 3761, _gloffset_MultiTexCoord1fvARB },
- { 5301, _gloffset_MultiTexCoord3dARB },
- { 5346, _gloffset_MultiTexCoord2iARB },
- { 5470, _gloffset_MultiTexCoord2svARB },
- { 7401, _gloffset_MultiTexCoord2fARB },
- { 9277, _gloffset_MultiTexCoord3fvARB },
- { 9834, _gloffset_MultiTexCoord4sARB },
- { 10468, _gloffset_MultiTexCoord2dvARB },
- { 10850, _gloffset_MultiTexCoord1svARB },
- { 11225, _gloffset_MultiTexCoord3svARB },
- { 11286, _gloffset_MultiTexCoord4iARB },
- { 12009, _gloffset_MultiTexCoord3iARB },
- { 12711, _gloffset_MultiTexCoord1dARB },
- { 12928, _gloffset_MultiTexCoord3dvARB },
- { 14092, _gloffset_MultiTexCoord3ivARB },
- { 14137, _gloffset_MultiTexCoord2sARB },
- { 15435, _gloffset_MultiTexCoord4ivARB },
- { 17153, _gloffset_ClientActiveTextureARB },
- { 19436, _gloffset_MultiTexCoord2dARB },
- { 19877, _gloffset_MultiTexCoord4dvARB },
- { 20163, _gloffset_MultiTexCoord4fvARB },
- { 21042, _gloffset_MultiTexCoord3fARB },
- { 23422, _gloffset_MultiTexCoord4dARB },
- { 23626, _gloffset_MultiTexCoord1sARB },
- { 23830, _gloffset_MultiTexCoord1dvARB },
- { 24672, _gloffset_MultiTexCoord1ivARB },
- { 24765, _gloffset_MultiTexCoord2ivARB },
- { 25104, _gloffset_MultiTexCoord1iARB },
- { 26404, _gloffset_MultiTexCoord4svARB },
- { 26922, _gloffset_MultiTexCoord1fARB },
- { 27185, _gloffset_MultiTexCoord4fARB },
- { 29450, _gloffset_MultiTexCoord2fvARB },
+ { 5386, _gloffset_MultiTexCoord3dARB },
+ { 5431, _gloffset_MultiTexCoord2iARB },
+ { 5555, _gloffset_MultiTexCoord2svARB },
+ { 7520, _gloffset_MultiTexCoord2fARB },
+ { 9424, _gloffset_MultiTexCoord3fvARB },
+ { 9981, _gloffset_MultiTexCoord4sARB },
+ { 10615, _gloffset_MultiTexCoord2dvARB },
+ { 10997, _gloffset_MultiTexCoord1svARB },
+ { 11369, _gloffset_MultiTexCoord3svARB },
+ { 11430, _gloffset_MultiTexCoord4iARB },
+ { 12153, _gloffset_MultiTexCoord3iARB },
+ { 12956, _gloffset_MultiTexCoord1dARB },
+ { 13173, _gloffset_MultiTexCoord3dvARB },
+ { 14337, _gloffset_MultiTexCoord3ivARB },
+ { 14382, _gloffset_MultiTexCoord2sARB },
+ { 15680, _gloffset_MultiTexCoord4ivARB },
+ { 17398, _gloffset_ClientActiveTextureARB },
+ { 19681, _gloffset_MultiTexCoord2dARB },
+ { 20122, _gloffset_MultiTexCoord4dvARB },
+ { 20433, _gloffset_MultiTexCoord4fvARB },
+ { 21312, _gloffset_MultiTexCoord3fARB },
+ { 23675, _gloffset_MultiTexCoord4dARB },
+ { 23941, _gloffset_MultiTexCoord1sARB },
+ { 24145, _gloffset_MultiTexCoord1dvARB },
+ { 24955, _gloffset_MultiTexCoord1ivARB },
+ { 25048, _gloffset_MultiTexCoord2ivARB },
+ { 25387, _gloffset_MultiTexCoord1iARB },
+ { 26689, _gloffset_MultiTexCoord4svARB },
+ { 27207, _gloffset_MultiTexCoord1fARB },
+ { 27470, _gloffset_MultiTexCoord4fARB },
+ { 29774, _gloffset_MultiTexCoord2fvARB },
{ -1, -1 }
};
#endif
diff --git a/src/mesa/main/restart.c b/src/mesa/main/restart.c
new file mode 100644
index 00000000000..ff366496f0a
--- /dev/null
+++ b/src/mesa/main/restart.c
@@ -0,0 +1,68 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 7.9
+ *
+ * Copyright (C) 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 OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+
+#include "glheader.h"
+#include "imports.h"
+#include "context.h"
+#include "restart.h"
+
+
+/**
+ */
+void GLAPIENTRY
+_mesa_PrimitiveRestart(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glPrimitiveRestart()");
+ return;
+ }
+
+ /* XXX call into vbo module */
+}
+
+
+
+/**
+ */
+void GLAPIENTRY
+_mesa_PrimitiveRestartIndex(GLuint index)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glPrimitiveRestartIndex()");
+ return;
+ }
+
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
+
+ FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
+
+ ctx->Array.RestartIndex = index;
+}
diff --git a/src/mesa/main/restart.h b/src/mesa/main/restart.h
new file mode 100644
index 00000000000..931cd701281
--- /dev/null
+++ b/src/mesa/main/restart.h
@@ -0,0 +1,40 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 7.9
+ *
+ * Copyright (C) 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 OR COPYRIGHT
+ * HOLDERS 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 RESTART_H
+#define RESTART_H
+
+
+extern void GLAPIENTRY
+_mesa_PrimitiveRestart(void);
+
+
+extern void GLAPIENTRY
+_mesa_PrimitiveRestartIndex(GLuint index);
+
+
+#endif
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
new file mode 100644
index 00000000000..89b9557e84f
--- /dev/null
+++ b/src/mesa/main/shaderapi.c
@@ -0,0 +1,1640 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2004-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
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * \file shaderapi.c
+ * \author Brian Paul
+ *
+ * Implementation of GLSL-related API functions.
+ * The glUniform* functions are in uniforms.c
+ *
+ *
+ * XXX things to do:
+ * 1. Check that the right error code is generated for all _mesa_error() calls.
+ * 2. Insert FLUSH_VERTICES calls in various places
+ */
+
+
+#include "main/glheader.h"
+#include "main/context.h"
+#include "main/dispatch.h"
+#include "main/enums.h"
+#include "main/hash.h"
+#include "main/shaderapi.h"
+#include "main/shaderobj.h"
+#include "program/program.h"
+#include "program/prog_parameter.h"
+#include "program/prog_uniform.h"
+#include "slang/slang_compile.h"
+#include "slang/slang_link.h"
+#include "talloc.h"
+
+
+/** Define this to enable shader substitution (see below) */
+#define SHADER_SUBST 0
+
+
+/**
+ * Return mask of GLSL_x flags by examining the MESA_GLSL env var.
+ */
+static GLbitfield
+get_shader_flags(void)
+{
+ GLbitfield flags = 0x0;
+ const char *env = _mesa_getenv("MESA_GLSL");
+
+ if (env) {
+ if (strstr(env, "dump"))
+ flags |= GLSL_DUMP;
+ if (strstr(env, "log"))
+ flags |= GLSL_LOG;
+ if (strstr(env, "nopvert"))
+ flags |= GLSL_NOP_VERT;
+ if (strstr(env, "nopfrag"))
+ flags |= GLSL_NOP_FRAG;
+ if (strstr(env, "nopt"))
+ flags |= GLSL_NO_OPT;
+ else if (strstr(env, "opt"))
+ flags |= GLSL_OPT;
+ if (strstr(env, "uniform"))
+ flags |= GLSL_UNIFORMS;
+ if (strstr(env, "useprog"))
+ flags |= GLSL_USE_PROG;
+ }
+
+ return flags;
+}
+
+
+/**
+ * Initialize context's shader state.
+ */
+void
+_mesa_init_shader_state(GLcontext *ctx)
+{
+ /* Device drivers may override these to control what kind of instructions
+ * are generated by the GLSL compiler.
+ */
+ ctx->Shader.EmitHighLevelInstructions = GL_TRUE;
+ ctx->Shader.EmitContReturn = GL_TRUE;
+ ctx->Shader.EmitCondCodes = GL_FALSE;
+ ctx->Shader.EmitComments = GL_FALSE;
+ ctx->Shader.EmitNoIfs = GL_FALSE;
+ ctx->Shader.Flags = get_shader_flags();
+
+ /* Default pragma settings */
+ ctx->Shader.DefaultPragmas.IgnoreOptimize = GL_FALSE;
+ ctx->Shader.DefaultPragmas.IgnoreDebug = GL_FALSE;
+ ctx->Shader.DefaultPragmas.Optimize = GL_TRUE;
+ ctx->Shader.DefaultPragmas.Debug = GL_FALSE;
+}
+
+
+/**
+ * Free the per-context shader-related state.
+ */
+void
+_mesa_free_shader_state(GLcontext *ctx)
+{
+ _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentProgram, NULL);
+}
+
+
+/**
+ * Return the size of the given GLSL datatype, in floats (components).
+ */
+GLint
+_mesa_sizeof_glsl_type(GLenum type)
+{
+ switch (type) {
+ case GL_FLOAT:
+ case GL_INT:
+ case GL_BOOL:
+ case GL_SAMPLER_1D:
+ case GL_SAMPLER_2D:
+ case GL_SAMPLER_3D:
+ case GL_SAMPLER_CUBE:
+ case GL_SAMPLER_1D_SHADOW:
+ case GL_SAMPLER_2D_SHADOW:
+ case GL_SAMPLER_2D_RECT_ARB:
+ case GL_SAMPLER_2D_RECT_SHADOW_ARB:
+ case GL_SAMPLER_1D_ARRAY_EXT:
+ case GL_SAMPLER_2D_ARRAY_EXT:
+ case GL_SAMPLER_1D_ARRAY_SHADOW_EXT:
+ case GL_SAMPLER_2D_ARRAY_SHADOW_EXT:
+ case GL_SAMPLER_CUBE_SHADOW_EXT:
+ return 1;
+ case GL_FLOAT_VEC2:
+ case GL_INT_VEC2:
+ case GL_UNSIGNED_INT_VEC2:
+ case GL_BOOL_VEC2:
+ return 2;
+ case GL_FLOAT_VEC3:
+ case GL_INT_VEC3:
+ case GL_UNSIGNED_INT_VEC3:
+ case GL_BOOL_VEC3:
+ return 3;
+ case GL_FLOAT_VEC4:
+ case GL_INT_VEC4:
+ case GL_UNSIGNED_INT_VEC4:
+ case GL_BOOL_VEC4:
+ return 4;
+ case GL_FLOAT_MAT2:
+ case GL_FLOAT_MAT2x3:
+ case GL_FLOAT_MAT2x4:
+ return 8; /* two float[4] vectors */
+ case GL_FLOAT_MAT3:
+ case GL_FLOAT_MAT3x2:
+ case GL_FLOAT_MAT3x4:
+ return 12; /* three float[4] vectors */
+ case GL_FLOAT_MAT4:
+ case GL_FLOAT_MAT4x2:
+ case GL_FLOAT_MAT4x3:
+ return 16; /* four float[4] vectors */
+ default:
+ _mesa_problem(NULL, "Invalid type in _mesa_sizeof_glsl_type()");
+ return 1;
+ }
+}
+
+
+/**
+ * Copy string from <src> to <dst>, up to maxLength characters, returning
+ * length of <dst> in <length>.
+ * \param src the strings source
+ * \param maxLength max chars to copy
+ * \param length returns number of chars copied
+ * \param dst the string destination
+ */
+void
+_mesa_copy_string(GLchar *dst, GLsizei maxLength,
+ GLsizei *length, const GLchar *src)
+{
+ GLsizei len;
+ for (len = 0; len < maxLength - 1 && src && src[len]; len++)
+ dst[len] = src[len];
+ if (maxLength > 0)
+ dst[len] = 0;
+ if (length)
+ *length = len;
+}
+
+
+
+/**
+ * Find the length of the longest transform feedback varying name
+ * which was specified with glTransformFeedbackVaryings().
+ */
+static GLint
+longest_feedback_varying_name(const struct gl_shader_program *shProg)
+{
+ GLuint i;
+ GLint max = 0;
+ for (i = 0; i < shProg->TransformFeedback.NumVarying; i++) {
+ GLint len = strlen(shProg->TransformFeedback.VaryingNames[i]);
+ if (len > max)
+ max = len;
+ }
+ return max;
+}
+
+
+
+static GLboolean
+is_program(GLcontext *ctx, GLuint name)
+{
+ struct gl_shader_program *shProg = _mesa_lookup_shader_program(ctx, name);
+ return shProg ? GL_TRUE : GL_FALSE;
+}
+
+
+static GLboolean
+is_shader(GLcontext *ctx, GLuint name)
+{
+ struct gl_shader *shader = _mesa_lookup_shader(ctx, name);
+ return shader ? GL_TRUE : GL_FALSE;
+}
+
+
+/**
+ * Attach shader to a shader program.
+ */
+static void
+attach_shader(GLcontext *ctx, GLuint program, GLuint shader)
+{
+ struct gl_shader_program *shProg;
+ struct gl_shader *sh;
+ GLuint i, n;
+
+ shProg = _mesa_lookup_shader_program_err(ctx, program, "glAttachShader");
+ if (!shProg)
+ return;
+
+ sh = _mesa_lookup_shader_err(ctx, shader, "glAttachShader");
+ if (!sh) {
+ return;
+ }
+
+ n = shProg->NumShaders;
+ for (i = 0; i < n; i++) {
+ if (shProg->Shaders[i] == sh) {
+ /* The shader is already attched to this program. The
+ * GL_ARB_shader_objects spec says:
+ *
+ * "The error INVALID_OPERATION is generated by AttachObjectARB
+ * if <obj> is already attached to <containerObj>."
+ */
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glAttachShader");
+ return;
+ }
+ }
+
+ /* grow list */
+ shProg->Shaders = (struct gl_shader **)
+ _mesa_realloc(shProg->Shaders,
+ n * sizeof(struct gl_shader *),
+ (n + 1) * sizeof(struct gl_shader *));
+ if (!shProg->Shaders) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAttachShader");
+ return;
+ }
+
+ /* append */
+ shProg->Shaders[n] = NULL; /* since realloc() didn't zero the new space */
+ _mesa_reference_shader(ctx, &shProg->Shaders[n], sh);
+ shProg->NumShaders++;
+}
+
+
+static GLint
+get_attrib_location(GLcontext *ctx, GLuint program, const GLchar *name)
+{
+ struct gl_shader_program *shProg
+ = _mesa_lookup_shader_program_err(ctx, program, "glGetAttribLocation");
+
+ if (!shProg) {
+ return -1;
+ }
+
+ if (!shProg->LinkStatus) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetAttribLocation(program not linked)");
+ return -1;
+ }
+
+ if (!name)
+ return -1;
+
+ if (shProg->VertexProgram) {
+ const struct gl_program_parameter_list *attribs =
+ shProg->VertexProgram->Base.Attributes;
+ if (attribs) {
+ GLint i = _mesa_lookup_parameter_index(attribs, -1, name);
+ if (i >= 0) {
+ return attribs->Parameters[i].StateIndexes[0];
+ }
+ }
+ }
+ return -1;
+}
+
+
+static void
+bind_attrib_location(GLcontext *ctx, GLuint program, GLuint index,
+ const GLchar *name)
+{
+ struct gl_shader_program *shProg;
+ const GLint size = -1; /* unknown size */
+ GLint i, oldIndex;
+ GLenum datatype = GL_FLOAT_VEC4;
+
+ shProg = _mesa_lookup_shader_program_err(ctx, program,
+ "glBindAttribLocation");
+ if (!shProg) {
+ return;
+ }
+
+ if (!name)
+ return;
+
+ if (strncmp(name, "gl_", 3) == 0) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBindAttribLocation(illegal name)");
+ return;
+ }
+
+ if (index >= ctx->Const.VertexProgram.MaxAttribs) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glBindAttribLocation(index)");
+ return;
+ }
+
+ if (shProg->LinkStatus) {
+ /* get current index/location for the attribute */
+ oldIndex = get_attrib_location(ctx, program, name);
+ }
+ else {
+ oldIndex = -1;
+ }
+
+ /* this will replace the current value if it's already in the list */
+ i = _mesa_add_attribute(shProg->Attributes, name, size, datatype, index);
+ if (i < 0) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBindAttribLocation");
+ return;
+ }
+
+ /*
+ * Note that this attribute binding won't go into effect until
+ * glLinkProgram is called again.
+ */
+}
+
+
+static GLuint
+create_shader(GLcontext *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:
+ _mesa_error(ctx, GL_INVALID_ENUM, "CreateShader(type)");
+ return 0;
+ }
+
+ _mesa_HashInsert(ctx->Shared->ShaderObjects, name, sh);
+
+ return name;
+}
+
+
+static GLuint
+create_shader_program(GLcontext *ctx)
+{
+ GLuint name;
+ struct gl_shader_program *shProg;
+
+ name = _mesa_HashFindFreeKeyBlock(ctx->Shared->ShaderObjects, 1);
+
+ shProg = ctx->Driver.NewShaderProgram(ctx, name);
+
+ _mesa_HashInsert(ctx->Shared->ShaderObjects, name, shProg);
+
+ assert(shProg->RefCount == 1);
+
+ return name;
+}
+
+
+/**
+ * Named w/ "2" to indicate OpenGL 2.x vs GL_ARB_fragment_programs's
+ * DeleteProgramARB.
+ */
+static void
+delete_shader_program(GLcontext *ctx, GLuint name)
+{
+ /*
+ * NOTE: deleting shaders/programs works a bit differently than
+ * texture objects (and buffer objects, etc). Shader/program
+ * handles/IDs exist in the hash table until the object is really
+ * deleted (refcount==0). With texture objects, the handle/ID is
+ * removed from the hash table in glDeleteTextures() while the tex
+ * object itself might linger until its refcount goes to zero.
+ */
+ struct gl_shader_program *shProg;
+
+ shProg = _mesa_lookup_shader_program_err(ctx, name, "glDeleteProgram");
+ if (!shProg)
+ return;
+
+ shProg->DeletePending = GL_TRUE;
+
+ /* effectively, decr shProg's refcount */
+ _mesa_reference_shader_program(ctx, &shProg, NULL);
+}
+
+
+static void
+delete_shader(GLcontext *ctx, GLuint shader)
+{
+ struct gl_shader *sh;
+
+ sh = _mesa_lookup_shader_err(ctx, shader, "glDeleteShader");
+ if (!sh)
+ return;
+
+ sh->DeletePending = GL_TRUE;
+
+ /* effectively, decr sh's refcount */
+ _mesa_reference_shader(ctx, &sh, NULL);
+}
+
+
+static void
+detach_shader(GLcontext *ctx, GLuint program, GLuint shader)
+{
+ struct gl_shader_program *shProg;
+ GLuint n;
+ GLuint i, j;
+
+ shProg = _mesa_lookup_shader_program_err(ctx, program, "glDetachShader");
+ if (!shProg)
+ return;
+
+ n = shProg->NumShaders;
+
+ for (i = 0; i < n; i++) {
+ if (shProg->Shaders[i]->Name == shader) {
+ /* found it */
+ struct gl_shader **newList;
+
+ /* release */
+ _mesa_reference_shader(ctx, &shProg->Shaders[i], NULL);
+
+ /* alloc new, smaller array */
+ newList = (struct gl_shader **)
+ malloc((n - 1) * sizeof(struct gl_shader *));
+ if (!newList) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glDetachShader");
+ return;
+ }
+ for (j = 0; j < i; j++) {
+ newList[j] = shProg->Shaders[j];
+ }
+ while (++i < n)
+ newList[j++] = shProg->Shaders[i];
+ free(shProg->Shaders);
+
+ shProg->Shaders = newList;
+ shProg->NumShaders = n - 1;
+
+#ifdef DEBUG
+ /* sanity check */
+ {
+ for (j = 0; j < shProg->NumShaders; j++) {
+ assert(shProg->Shaders[j]->Type == GL_VERTEX_SHADER ||
+ shProg->Shaders[j]->Type == GL_FRAGMENT_SHADER);
+ assert(shProg->Shaders[j]->RefCount > 0);
+ }
+ }
+#endif
+
+ return;
+ }
+ }
+
+ /* not found */
+ {
+ GLenum err;
+ if (is_shader(ctx, shader))
+ err = GL_INVALID_OPERATION;
+ else if (is_program(ctx, shader))
+ err = GL_INVALID_OPERATION;
+ else
+ err = GL_INVALID_VALUE;
+ _mesa_error(ctx, err, "glDetachProgram(shader)");
+ return;
+ }
+}
+
+
+static void
+get_active_attrib(GLcontext *ctx, GLuint program, GLuint index,
+ GLsizei maxLength, GLsizei *length, GLint *size,
+ GLenum *type, GLchar *nameOut)
+{
+ const struct gl_program_parameter_list *attribs = NULL;
+ struct gl_shader_program *shProg;
+
+ shProg = _mesa_lookup_shader_program_err(ctx, program, "glGetActiveAttrib");
+ if (!shProg)
+ return;
+
+ if (shProg->VertexProgram)
+ attribs = shProg->VertexProgram->Base.Attributes;
+
+ if (!attribs || index >= attribs->NumParameters) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetActiveAttrib(index)");
+ return;
+ }
+
+ _mesa_copy_string(nameOut, maxLength, length,
+ attribs->Parameters[index].Name);
+
+ if (size)
+ *size = attribs->Parameters[index].Size
+ / _mesa_sizeof_glsl_type(attribs->Parameters[index].DataType);
+
+ if (type)
+ *type = attribs->Parameters[index].DataType;
+}
+
+
+/**
+ * Return list of shaders attached to shader program.
+ */
+static void
+get_attached_shaders(GLcontext *ctx, GLuint program, GLsizei maxCount,
+ GLsizei *count, GLuint *obj)
+{
+ struct gl_shader_program *shProg =
+ _mesa_lookup_shader_program_err(ctx, program, "glGetAttachedShaders");
+ if (shProg) {
+ GLuint i;
+ for (i = 0; i < (GLuint) maxCount && i < shProg->NumShaders; i++) {
+ obj[i] = shProg->Shaders[i]->Name;
+ }
+ if (count)
+ *count = i;
+ }
+}
+
+
+/**
+ * glGetHandleARB() - return ID/name of currently bound shader program.
+ */
+static GLuint
+get_handle(GLcontext *ctx, GLenum pname)
+{
+ if (pname == GL_PROGRAM_OBJECT_ARB) {
+ if (ctx->Shader.CurrentProgram)
+ return ctx->Shader.CurrentProgram->Name;
+ else
+ return 0;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetHandleARB");
+ return 0;
+ }
+}
+
+
+/**
+ * glGetProgramiv() - get shader program state.
+ * Note that this is for GLSL shader programs, not ARB vertex/fragment
+ * programs (see glGetProgramivARB).
+ */
+static void
+get_programiv(GLcontext *ctx, GLuint program, GLenum pname, GLint *params)
+{
+ const struct gl_program_parameter_list *attribs;
+ struct gl_shader_program *shProg
+ = _mesa_lookup_shader_program(ctx, program);
+
+ if (!shProg) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetProgramiv(program)");
+ return;
+ }
+
+ if (shProg->VertexProgram)
+ attribs = shProg->VertexProgram->Base.Attributes;
+ else
+ attribs = NULL;
+
+ switch (pname) {
+ case GL_DELETE_STATUS:
+ *params = shProg->DeletePending;
+ break;
+ case GL_LINK_STATUS:
+ *params = shProg->LinkStatus;
+ break;
+ case GL_VALIDATE_STATUS:
+ *params = shProg->Validated;
+ break;
+ case GL_INFO_LOG_LENGTH:
+ *params = shProg->InfoLog ? strlen(shProg->InfoLog) + 1 : 0;
+ break;
+ case GL_ATTACHED_SHADERS:
+ *params = shProg->NumShaders;
+ break;
+ case GL_ACTIVE_ATTRIBUTES:
+ *params = attribs ? attribs->NumParameters : 0;
+ break;
+ case GL_ACTIVE_ATTRIBUTE_MAX_LENGTH:
+ *params = _mesa_longest_parameter_name(attribs, PROGRAM_INPUT) + 1;
+ break;
+ case GL_ACTIVE_UNIFORMS:
+ *params = shProg->Uniforms ? shProg->Uniforms->NumUniforms : 0;
+ break;
+ case GL_ACTIVE_UNIFORM_MAX_LENGTH:
+ *params = _mesa_longest_uniform_name(shProg->Uniforms);
+ if (*params > 0)
+ (*params)++; /* add one for terminating zero */
+ break;
+ case GL_PROGRAM_BINARY_LENGTH_OES:
+ *params = 0;
+ break;
+#if FEATURE_EXT_transform_feedback
+ case GL_TRANSFORM_FEEDBACK_VARYINGS:
+ *params = shProg->TransformFeedback.NumVarying;
+ break;
+ case GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH:
+ *params = longest_feedback_varying_name(shProg) + 1;
+ break;
+ case GL_TRANSFORM_FEEDBACK_BUFFER_MODE:
+ *params = shProg->TransformFeedback.BufferMode;
+ break;
+#endif
+#if FEATURE_ARB_geometry_shader4
+ case GL_GEOMETRY_VERTICES_OUT_ARB:
+ *params = shProg->Geom.VerticesOut;
+ break;
+ case GL_GEOMETRY_INPUT_TYPE_ARB:
+ *params = shProg->Geom.InputType;
+ break;
+ case GL_GEOMETRY_OUTPUT_TYPE_ARB:
+ *params = shProg->Geom.OutputType;
+ break;
+#endif
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramiv(pname)");
+ return;
+ }
+}
+
+
+/**
+ * glGetShaderiv() - get GLSL shader state
+ */
+static void
+get_shaderiv(GLcontext *ctx, GLuint name, GLenum pname, GLint *params)
+{
+ struct gl_shader *shader =
+ _mesa_lookup_shader_err(ctx, name, "glGetShaderiv");
+
+ if (!shader) {
+ return;
+ }
+
+ switch (pname) {
+ case GL_SHADER_TYPE:
+ *params = shader->Type;
+ break;
+ case GL_DELETE_STATUS:
+ *params = shader->DeletePending;
+ break;
+ case GL_COMPILE_STATUS:
+ *params = shader->CompileStatus;
+ break;
+ case GL_INFO_LOG_LENGTH:
+ *params = shader->InfoLog ? strlen(shader->InfoLog) + 1 : 0;
+ break;
+ case GL_SHADER_SOURCE_LENGTH:
+ *params = shader->Source ? strlen((char *) shader->Source) + 1 : 0;
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetShaderiv(pname)");
+ return;
+ }
+}
+
+
+static void
+get_program_info_log(GLcontext *ctx, GLuint program, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog)
+{
+ struct gl_shader_program *shProg
+ = _mesa_lookup_shader_program(ctx, program);
+ if (!shProg) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetProgramInfoLog(program)");
+ return;
+ }
+ _mesa_copy_string(infoLog, bufSize, length, shProg->InfoLog);
+}
+
+
+static void
+get_shader_info_log(GLcontext *ctx, GLuint shader, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog)
+{
+ struct gl_shader *sh = _mesa_lookup_shader(ctx, shader);
+ if (!sh) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetShaderInfoLog(shader)");
+ return;
+ }
+ _mesa_copy_string(infoLog, bufSize, length, sh->InfoLog);
+}
+
+
+/**
+ * Return shader source code.
+ */
+static void
+get_shader_source(GLcontext *ctx, GLuint shader, GLsizei maxLength,
+ GLsizei *length, GLchar *sourceOut)
+{
+ struct gl_shader *sh;
+ sh = _mesa_lookup_shader_err(ctx, shader, "glGetShaderSource");
+ if (!sh) {
+ return;
+ }
+ _mesa_copy_string(sourceOut, maxLength, length, sh->Source);
+}
+
+
+/**
+ * Set/replace shader source code.
+ */
+static void
+shader_source(GLcontext *ctx, GLuint shader, const GLchar *source)
+{
+ struct gl_shader *sh;
+
+ sh = _mesa_lookup_shader_err(ctx, shader, "glShaderSource");
+ if (!sh)
+ return;
+
+ /* free old shader source string and install new one */
+ if (sh->Source) {
+ free((void *) sh->Source);
+ }
+ sh->Source = source;
+ sh->CompileStatus = GL_FALSE;
+#ifdef DEBUG
+ sh->SourceChecksum = _mesa_str_checksum(sh->Source);
+#endif
+}
+
+
+/**
+ * Compile a shader.
+ */
+static void
+compile_shader(GLcontext *ctx, GLuint shaderObj)
+{
+ struct gl_shader *sh;
+
+ sh = _mesa_lookup_shader_err(ctx, shaderObj, "glCompileShader");
+ if (!sh)
+ return;
+
+ /* set default pragma state for shader */
+ sh->Pragmas = ctx->Shader.DefaultPragmas;
+
+ /* this call will set the sh->CompileStatus field to indicate if
+ * compilation was successful.
+ */
+ _mesa_glsl_compile_shader(ctx, sh);
+}
+
+
+/**
+ * Link a program's shaders.
+ */
+static void
+link_program(GLcontext *ctx, GLuint program)
+{
+ struct gl_shader_program *shProg;
+ struct gl_transform_feedback_object *obj =
+ ctx->TransformFeedback.CurrentObject;
+
+ shProg = _mesa_lookup_shader_program_err(ctx, program, "glLinkProgram");
+ if (!shProg)
+ return;
+
+ if (obj->Active && shProg == ctx->Shader.CurrentProgram) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glLinkProgram(transform feedback active");
+ return;
+ }
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+
+ _mesa_glsl_link_shader(ctx, shProg);
+
+ /* debug code */
+ if (0) {
+ GLuint i;
+
+ printf("Link %u shaders in program %u: %s\n",
+ shProg->NumShaders, shProg->Name,
+ shProg->LinkStatus ? "Success" : "Failed");
+
+ for (i = 0; i < shProg->NumShaders; i++) {
+ printf(" shader %u, type 0x%x\n",
+ shProg->Shaders[i]->Name,
+ shProg->Shaders[i]->Type);
+ }
+ }
+}
+
+
+/**
+ * Print basic shader info (for debug).
+ */
+static void
+print_shader_info(const struct gl_shader_program *shProg)
+{
+ GLuint i;
+
+ printf("Mesa: glUseProgram(%u)\n", shProg->Name);
+ for (i = 0; i < shProg->NumShaders; i++) {
+ const char *s;
+ switch (shProg->Shaders[i]->Type) {
+ case GL_VERTEX_SHADER:
+ s = "vertex";
+ break;
+ case GL_FRAGMENT_SHADER:
+ s = "fragment";
+ break;
+ case GL_GEOMETRY_SHADER:
+ s = "geometry";
+ break;
+ default:
+ s = "";
+ }
+ printf(" %s shader %u, checksum %u\n", s,
+ shProg->Shaders[i]->Name,
+ shProg->Shaders[i]->SourceChecksum);
+ }
+ if (shProg->VertexProgram)
+ printf(" vert prog %u\n", shProg->VertexProgram->Base.Id);
+ if (shProg->FragmentProgram)
+ printf(" frag prog %u\n", shProg->FragmentProgram->Base.Id);
+}
+
+
+/**
+ * Use the named shader program for subsequent rendering.
+ */
+void
+_mesa_use_program(GLcontext *ctx, GLuint program)
+{
+ struct gl_shader_program *shProg;
+ struct gl_transform_feedback_object *obj =
+ ctx->TransformFeedback.CurrentObject;
+
+ if (obj->Active) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glUseProgram(transform feedback active)");
+ 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) {
+ return;
+ }
+ if (!shProg->LinkStatus) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glUseProgram(program %u not linked)", program);
+ return;
+ }
+
+ /* debug code */
+ if (ctx->Shader.Flags & GLSL_USE_PROG) {
+ print_shader_info(shProg);
+ }
+ }
+ else {
+ shProg = NULL;
+ }
+
+ if (ctx->Shader.CurrentProgram != shProg) {
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM | _NEW_PROGRAM_CONSTANTS);
+ _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentProgram, shProg);
+ }
+
+ if (ctx->Driver.UseProgram)
+ ctx->Driver.UseProgram(ctx, shProg);
+}
+
+
+/**
+ * Validate a program's samplers.
+ * Specifically, check that there aren't two samplers of different types
+ * pointing to the same texture unit.
+ * \return GL_TRUE if valid, GL_FALSE if invalid
+ */
+static GLboolean
+validate_samplers(GLcontext *ctx, const struct gl_program *prog, char *errMsg)
+{
+ static const char *targetName[] = {
+ "TEXTURE_2D_ARRAY",
+ "TEXTURE_1D_ARRAY",
+ "TEXTURE_CUBE",
+ "TEXTURE_3D",
+ "TEXTURE_RECT",
+ "TEXTURE_2D",
+ "TEXTURE_1D",
+ };
+ GLint targetUsed[MAX_TEXTURE_IMAGE_UNITS];
+ GLbitfield samplersUsed = prog->SamplersUsed;
+ GLuint i;
+
+ assert(Elements(targetName) == NUM_TEXTURE_TARGETS);
+
+ if (samplersUsed == 0x0)
+ return GL_TRUE;
+
+ for (i = 0; i < Elements(targetUsed); i++)
+ targetUsed[i] = -1;
+
+ /* walk over bits which are set in 'samplers' */
+ while (samplersUsed) {
+ GLuint unit;
+ gl_texture_index target;
+ GLint sampler = _mesa_ffs(samplersUsed) - 1;
+ assert(sampler >= 0);
+ assert(sampler < MAX_TEXTURE_IMAGE_UNITS);
+ unit = prog->SamplerUnits[sampler];
+ target = prog->SamplerTargets[sampler];
+ if (targetUsed[unit] != -1 && targetUsed[unit] != target) {
+ _mesa_snprintf(errMsg, 100,
+ "Texture unit %d is accessed both as %s and %s",
+ unit, targetName[targetUsed[unit]], targetName[target]);
+ return GL_FALSE;
+ }
+ targetUsed[unit] = target;
+ samplersUsed ^= (1 << sampler);
+ }
+
+ return GL_TRUE;
+}
+
+
+/**
+ * Do validation of the given shader program.
+ * \param errMsg returns error message if validation fails.
+ * \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,
+ char *errMsg)
+{
+ const struct gl_vertex_program *vp = shProg->VertexProgram;
+ const struct gl_fragment_program *fp = shProg->FragmentProgram;
+
+ if (!shProg->LinkStatus) {
+ return GL_FALSE;
+ }
+
+ /* From the GL spec, a program is invalid if any of these are true:
+
+ any two active samplers in the current program object are of
+ different types, but refer to the same texture image unit,
+
+ any active sampler in the current program object refers to a texture
+ image unit where fixed-function fragment processing accesses a
+ texture target that does not match the sampler type, or
+
+ the sum of the number of active samplers in the program and the
+ number of texture image units enabled for fixed-function fragment
+ processing exceeds the combined limit on the total number of texture
+ image units allowed.
+ */
+
+
+ /*
+ * 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)) {
+ return GL_FALSE;
+ }
+ if (fp && !validate_samplers(ctx, &fp->Base, errMsg)) {
+ return GL_FALSE;
+ }
+
+ return GL_TRUE;
+}
+
+
+/**
+ * Called via glValidateProgram()
+ */
+static void
+validate_program(GLcontext *ctx, GLuint program)
+{
+ struct gl_shader_program *shProg;
+ char errMsg[100];
+
+ shProg = _mesa_lookup_shader_program_err(ctx, program, "glValidateProgram");
+ if (!shProg) {
+ return;
+ }
+
+ shProg->Validated = validate_shader_program(ctx, shProg, errMsg);
+ if (!shProg->Validated) {
+ /* update info log */
+ if (shProg->InfoLog) {
+ talloc_free(shProg->InfoLog);
+ }
+ shProg->InfoLog = talloc_strdup(shProg, errMsg);
+ }
+}
+
+
+
+void GLAPIENTRY
+_mesa_AttachObjectARB(GLhandleARB program, GLhandleARB shader)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ attach_shader(ctx, program, shader);
+}
+
+
+void GLAPIENTRY
+_mesa_AttachShader(GLuint program, GLuint shader)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ attach_shader(ctx, program, shader);
+}
+
+
+void GLAPIENTRY
+_mesa_BindAttribLocationARB(GLhandleARB program, GLuint index,
+ const GLcharARB *name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ bind_attrib_location(ctx, program, index, name);
+}
+
+
+void GLAPIENTRY
+_mesa_CompileShaderARB(GLhandleARB shaderObj)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ compile_shader(ctx, shaderObj);
+}
+
+
+GLuint GLAPIENTRY
+_mesa_CreateShader(GLenum type)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return create_shader(ctx, type);
+}
+
+
+GLhandleARB GLAPIENTRY
+_mesa_CreateShaderObjectARB(GLenum type)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return create_shader(ctx, type);
+}
+
+
+GLuint GLAPIENTRY
+_mesa_CreateProgram(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return create_shader_program(ctx);
+}
+
+
+GLhandleARB GLAPIENTRY
+_mesa_CreateProgramObjectARB(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return create_shader_program(ctx);
+}
+
+
+void GLAPIENTRY
+_mesa_DeleteObjectARB(GLhandleARB obj)
+{
+ if (obj) {
+ GET_CURRENT_CONTEXT(ctx);
+ if (is_program(ctx, obj)) {
+ delete_shader_program(ctx, obj);
+ }
+ else if (is_shader(ctx, obj)) {
+ delete_shader(ctx, obj);
+ }
+ else {
+ /* error? */
+ }
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_DeleteProgram(GLuint name)
+{
+ if (name) {
+ GET_CURRENT_CONTEXT(ctx);
+ delete_shader_program(ctx, name);
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_DeleteShader(GLuint name)
+{
+ if (name) {
+ GET_CURRENT_CONTEXT(ctx);
+ delete_shader(ctx, name);
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_DetachObjectARB(GLhandleARB program, GLhandleARB shader)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ detach_shader(ctx, program, shader);
+}
+
+
+void GLAPIENTRY
+_mesa_DetachShader(GLuint program, GLuint shader)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ detach_shader(ctx, program, shader);
+}
+
+
+void GLAPIENTRY
+_mesa_GetActiveAttribARB(GLhandleARB program, GLuint index,
+ GLsizei maxLength, GLsizei * length, GLint * size,
+ GLenum * type, GLcharARB * name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ get_active_attrib(ctx, program, index, maxLength, length, size, type, name);
+}
+
+
+void GLAPIENTRY
+_mesa_GetAttachedObjectsARB(GLhandleARB container, GLsizei maxCount,
+ GLsizei * count, GLhandleARB * obj)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ get_attached_shaders(ctx, container, maxCount, count, obj);
+}
+
+
+void GLAPIENTRY
+_mesa_GetAttachedShaders(GLuint program, GLsizei maxCount,
+ GLsizei *count, GLuint *obj)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ get_attached_shaders(ctx, program, maxCount, count, obj);
+}
+
+
+GLint GLAPIENTRY
+_mesa_GetAttribLocationARB(GLhandleARB program, const GLcharARB * name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return get_attrib_location(ctx, program, name);
+}
+
+
+void GLAPIENTRY
+_mesa_GetInfoLogARB(GLhandleARB object, GLsizei maxLength, GLsizei * length,
+ GLcharARB * infoLog)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ if (is_program(ctx, object)) {
+ get_program_info_log(ctx, object, maxLength, length, infoLog);
+ }
+ else if (is_shader(ctx, object)) {
+ get_shader_info_log(ctx, object, maxLength, length, infoLog);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetInfoLogARB");
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_GetObjectParameterivARB(GLhandleARB object, GLenum pname, GLint *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ /* Implement in terms of GetProgramiv, GetShaderiv */
+ if (is_program(ctx, object)) {
+ if (pname == GL_OBJECT_TYPE_ARB) {
+ *params = GL_PROGRAM_OBJECT_ARB;
+ }
+ else {
+ get_programiv(ctx, object, pname, params);
+ }
+ }
+ else if (is_shader(ctx, object)) {
+ if (pname == GL_OBJECT_TYPE_ARB) {
+ *params = GL_SHADER_OBJECT_ARB;
+ }
+ else {
+ get_shaderiv(ctx, object, pname, params);
+ }
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetObjectParameterivARB");
+ }
+}
+
+
+void GLAPIENTRY
+_mesa_GetObjectParameterfvARB(GLhandleARB object, GLenum pname,
+ GLfloat *params)
+{
+ GLint iparams[1]; /* XXX is one element enough? */
+ _mesa_GetObjectParameterivARB(object, pname, iparams);
+ params[0] = (GLfloat) iparams[0];
+}
+
+
+void GLAPIENTRY
+_mesa_GetProgramiv(GLuint program, GLenum pname, GLint *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ get_programiv(ctx, program, pname, params);
+}
+
+
+void GLAPIENTRY
+_mesa_GetShaderiv(GLuint shader, GLenum pname, GLint *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ get_shaderiv(ctx, shader, pname, params);
+}
+
+
+void GLAPIENTRY
+_mesa_GetProgramInfoLog(GLuint program, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ get_program_info_log(ctx, program, bufSize, length, infoLog);
+}
+
+
+void GLAPIENTRY
+_mesa_GetShaderInfoLog(GLuint shader, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ get_shader_info_log(ctx, shader, bufSize, length, infoLog);
+}
+
+
+void GLAPIENTRY
+_mesa_GetShaderSourceARB(GLhandleARB shader, GLsizei maxLength,
+ GLsizei *length, GLcharARB *sourceOut)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ get_shader_source(ctx, shader, maxLength, length, sourceOut);
+}
+
+
+GLhandleARB GLAPIENTRY
+_mesa_GetHandleARB(GLenum pname)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return get_handle(ctx, pname);
+}
+
+
+GLboolean GLAPIENTRY
+_mesa_IsProgram(GLuint name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return is_program(ctx, name);
+}
+
+
+GLboolean GLAPIENTRY
+_mesa_IsShader(GLuint name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return is_shader(ctx, name);
+}
+
+
+void GLAPIENTRY
+_mesa_LinkProgramARB(GLhandleARB programObj)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ link_program(ctx, programObj);
+}
+
+
+
+/**
+ * Read shader source code from a file.
+ * Useful for debugging to override an app's shader.
+ */
+static GLcharARB *
+read_shader(const char *fname)
+{
+ const int max = 50*1000;
+ FILE *f = fopen(fname, "r");
+ GLcharARB *buffer, *shader;
+ int len;
+
+ if (!f) {
+ return NULL;
+ }
+
+ buffer = (char *) malloc(max);
+ len = fread(buffer, 1, max, f);
+ buffer[len] = 0;
+
+ fclose(f);
+
+ shader = _mesa_strdup(buffer);
+ free(buffer);
+
+ return shader;
+}
+
+
+/**
+ * Called via glShaderSource() and glShaderSourceARB() API functions.
+ * Basically, concatenate the source code strings into one long string
+ * and pass it to _mesa_shader_source().
+ */
+void GLAPIENTRY
+_mesa_ShaderSourceARB(GLhandleARB shaderObj, GLsizei count,
+ const GLcharARB ** string, const GLint * length)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLint *offsets;
+ GLsizei i, totalLength;
+ GLcharARB *source;
+ GLuint checksum;
+
+ if (!shaderObj || string == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glShaderSourceARB");
+ return;
+ }
+
+ /*
+ * This array holds offsets of where the appropriate string ends, thus the
+ * last element will be set to the total length of the source code.
+ */
+ offsets = (GLint *) malloc(count * sizeof(GLint));
+ if (offsets == NULL) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glShaderSourceARB");
+ return;
+ }
+
+ for (i = 0; i < count; i++) {
+ if (string[i] == NULL) {
+ free((GLvoid *) offsets);
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glShaderSourceARB(null string)");
+ return;
+ }
+ if (length == NULL || length[i] < 0)
+ offsets[i] = strlen(string[i]);
+ else
+ offsets[i] = length[i];
+ /* accumulate string lengths */
+ if (i > 0)
+ offsets[i] += offsets[i - 1];
+ }
+
+ /* Total length of source string is sum off all strings plus two.
+ * One extra byte for terminating zero, another extra byte to silence
+ * valgrind warnings in the parser/grammer code.
+ */
+ totalLength = offsets[count - 1] + 2;
+ source = (GLcharARB *) malloc(totalLength * sizeof(GLcharARB));
+ if (source == NULL) {
+ free((GLvoid *) offsets);
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glShaderSourceARB");
+ return;
+ }
+
+ for (i = 0; i < count; i++) {
+ GLint start = (i > 0) ? offsets[i - 1] : 0;
+ memcpy(source + start, string[i],
+ (offsets[i] - start) * sizeof(GLcharARB));
+ }
+ source[totalLength - 1] = '\0';
+ source[totalLength - 2] = '\0';
+
+ if (SHADER_SUBST) {
+ /* Compute the shader's source code checksum then try to open a file
+ * named newshader_<CHECKSUM>. If it exists, use it in place of the
+ * original shader source code. For debugging.
+ */
+ char filename[100];
+ GLcharARB *newSource;
+
+ checksum = _mesa_str_checksum(source);
+
+ _mesa_snprintf(filename, sizeof(filename), "newshader_%d", checksum);
+
+ newSource = read_shader(filename);
+ if (newSource) {
+ fprintf(stderr, "Mesa: Replacing shader %u chksum=%d with %s\n",
+ shaderObj, checksum, filename);
+ free(source);
+ source = newSource;
+ }
+ }
+
+ shader_source(ctx, shaderObj, source);
+
+ if (SHADER_SUBST) {
+ struct gl_shader *sh = _mesa_lookup_shader(ctx, shaderObj);
+ if (sh)
+ sh->SourceChecksum = checksum; /* save original checksum */
+ }
+
+ free(offsets);
+}
+
+
+void GLAPIENTRY
+_mesa_UseProgramObjectARB(GLhandleARB program)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+ _mesa_use_program(ctx, program);
+}
+
+
+void GLAPIENTRY
+_mesa_ValidateProgramARB(GLhandleARB program)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ validate_program(ctx, program);
+}
+
+#ifdef FEATURE_ES2
+
+void GLAPIENTRY
+_mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype,
+ GLint* range, GLint* precision)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
+}
+
+
+void GLAPIENTRY
+_mesa_ReleaseShaderCompiler(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
+}
+
+
+void GLAPIENTRY
+_mesa_ShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat,
+ const void* binary, GLint length)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
+}
+
+#endif /* FEATURE_ES2 */
+
+
+#if FEATURE_ARB_geometry_shader4
+
+void GLAPIENTRY
+_mesa_ProgramParameteriARB(GLuint program, GLenum pname,
+ GLint value)
+{
+ struct gl_shader_program *shProg;
+ GET_CURRENT_CONTEXT(ctx);
+
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ shProg = _mesa_lookup_shader_program_err(ctx, program,
+ "glProgramParameteri");
+ if (!shProg)
+ return;
+
+ switch (pname) {
+ case GL_GEOMETRY_VERTICES_OUT_ARB:
+ if (value < 1 ||
+ value > ctx->Const.GeometryProgram.MaxGeometryOutputVertices) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glProgramParameteri(GL_GEOMETRY_VERTICES_OUT_ARB=%d",
+ value);
+ return;
+ }
+ shProg->Geom.VerticesOut = value;
+ break;
+ case GL_GEOMETRY_INPUT_TYPE_ARB:
+ switch (value) {
+ case GL_POINTS:
+ case GL_LINES:
+ case GL_LINES_ADJACENCY_ARB:
+ case GL_TRIANGLES:
+ case GL_TRIANGLES_ADJACENCY_ARB:
+ shProg->Geom.InputType = value;
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glProgramParameteri(geometry input type = %s",
+ _mesa_lookup_enum_by_nr(value));
+ return;
+ }
+ break;
+ case GL_GEOMETRY_OUTPUT_TYPE_ARB:
+ switch (value) {
+ case GL_POINTS:
+ case GL_LINE_STRIP:
+ case GL_TRIANGLE_STRIP:
+ shProg->Geom.OutputType = value;
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glProgramParameteri(geometry output type = %s",
+ _mesa_lookup_enum_by_nr(value));
+ return;
+ }
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glProgramParameteriARB(pname=%s)",
+ _mesa_lookup_enum_by_nr(pname));
+ break;
+ }
+}
+
+#endif
+
+
+/**
+ * Plug in shader-related functions into API dispatch table.
+ */
+void
+_mesa_init_shader_dispatch(struct _glapi_table *exec)
+{
+#if FEATURE_GL
+ /* GL_ARB_vertex/fragment_shader */
+ SET_DeleteObjectARB(exec, _mesa_DeleteObjectARB);
+ SET_GetHandleARB(exec, _mesa_GetHandleARB);
+ SET_DetachObjectARB(exec, _mesa_DetachObjectARB);
+ SET_CreateShaderObjectARB(exec, _mesa_CreateShaderObjectARB);
+ SET_ShaderSourceARB(exec, _mesa_ShaderSourceARB);
+ SET_CompileShaderARB(exec, _mesa_CompileShaderARB);
+ SET_CreateProgramObjectARB(exec, _mesa_CreateProgramObjectARB);
+ SET_AttachObjectARB(exec, _mesa_AttachObjectARB);
+ SET_LinkProgramARB(exec, _mesa_LinkProgramARB);
+ SET_UseProgramObjectARB(exec, _mesa_UseProgramObjectARB);
+ SET_ValidateProgramARB(exec, _mesa_ValidateProgramARB);
+ SET_GetObjectParameterfvARB(exec, _mesa_GetObjectParameterfvARB);
+ SET_GetObjectParameterivARB(exec, _mesa_GetObjectParameterivARB);
+ SET_GetInfoLogARB(exec, _mesa_GetInfoLogARB);
+ SET_GetAttachedObjectsARB(exec, _mesa_GetAttachedObjectsARB);
+ SET_GetShaderSourceARB(exec, _mesa_GetShaderSourceARB);
+
+ /* OpenGL 2.0 */
+ SET_AttachShader(exec, _mesa_AttachShader);
+ SET_CreateProgram(exec, _mesa_CreateProgram);
+ SET_CreateShader(exec, _mesa_CreateShader);
+ SET_DeleteProgram(exec, _mesa_DeleteProgram);
+ SET_DeleteShader(exec, _mesa_DeleteShader);
+ SET_DetachShader(exec, _mesa_DetachShader);
+ SET_GetAttachedShaders(exec, _mesa_GetAttachedShaders);
+ SET_GetProgramiv(exec, _mesa_GetProgramiv);
+ SET_GetProgramInfoLog(exec, _mesa_GetProgramInfoLog);
+ SET_GetShaderiv(exec, _mesa_GetShaderiv);
+ SET_GetShaderInfoLog(exec, _mesa_GetShaderInfoLog);
+ SET_IsProgram(exec, _mesa_IsProgram);
+ SET_IsShader(exec, _mesa_IsShader);
+
+#if FEATURE_ARB_vertex_shader
+ SET_BindAttribLocationARB(exec, _mesa_BindAttribLocationARB);
+ SET_GetActiveAttribARB(exec, _mesa_GetActiveAttribARB);
+ SET_GetAttribLocationARB(exec, _mesa_GetAttribLocationARB);
+#endif
+
+#if FEATURE_ARB_geometry_shader4
+ SET_ProgramParameteriARB(exec, _mesa_ProgramParameteriARB);
+#endif
+#endif /* FEATURE_GL */
+}
+
diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h
new file mode 100644
index 00000000000..16e22530de5
--- /dev/null
+++ b/src/mesa/main/shaderapi.h
@@ -0,0 +1,169 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2004-2007 Brian Paul All Rights Reserved.
+ * Copyright (C) 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 SHADERAPI_H
+#define SHADERAPI_H
+
+
+#include "glheader.h"
+#include "mtypes.h"
+
+
+extern GLint
+_mesa_sizeof_glsl_type(GLenum type);
+
+extern void
+_mesa_copy_string(GLchar *dst, GLsizei maxLength,
+ GLsizei *length, const GLchar *src);
+
+extern void
+_mesa_use_program(GLcontext *ctx, GLuint program);
+
+
+extern void
+_mesa_init_shader_dispatch(struct _glapi_table *exec);
+
+
+
+extern void GLAPIENTRY
+_mesa_AttachObjectARB(GLhandleARB, GLhandleARB);
+
+extern void GLAPIENTRY
+_mesa_CompileShaderARB(GLhandleARB);
+
+extern GLhandleARB GLAPIENTRY
+_mesa_CreateProgramObjectARB(void);
+
+extern GLhandleARB GLAPIENTRY
+_mesa_CreateShaderObjectARB(GLenum type);
+
+extern void GLAPIENTRY
+_mesa_DeleteObjectARB(GLhandleARB obj);
+
+extern void GLAPIENTRY
+_mesa_DetachObjectARB(GLhandleARB, GLhandleARB);
+
+extern void GLAPIENTRY
+_mesa_GetAttachedObjectsARB(GLhandleARB, GLsizei, GLsizei *, GLhandleARB *);
+
+extern GLhandleARB GLAPIENTRY
+_mesa_GetHandleARB(GLenum pname);
+
+extern void GLAPIENTRY
+_mesa_GetInfoLogARB(GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
+
+extern void GLAPIENTRY
+_mesa_GetObjectParameterfvARB(GLhandleARB, GLenum, GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_GetObjectParameterivARB(GLhandleARB, GLenum, GLint *);
+
+extern void GLAPIENTRY
+_mesa_GetShaderSourceARB(GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
+
+extern GLboolean GLAPIENTRY
+_mesa_IsProgram(GLuint name);
+
+extern GLboolean GLAPIENTRY
+_mesa_IsShader(GLuint name);
+
+extern void GLAPIENTRY
+_mesa_LinkProgramARB(GLhandleARB programObj);
+
+extern void GLAPIENTRY
+_mesa_ShaderSourceARB(GLhandleARB, GLsizei, const GLcharARB* *, const GLint *);
+
+extern void GLAPIENTRY
+_mesa_UseProgramObjectARB(GLhandleARB);
+
+extern void GLAPIENTRY
+_mesa_ValidateProgramARB(GLhandleARB);
+
+
+extern void GLAPIENTRY
+_mesa_BindAttribLocationARB(GLhandleARB, GLuint, const GLcharARB *);
+
+extern void GLAPIENTRY
+_mesa_GetActiveAttribARB(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *,
+ GLenum *, GLcharARB *);
+
+extern GLint GLAPIENTRY
+_mesa_GetAttribLocationARB(GLhandleARB, const GLcharARB *);
+
+
+
+extern void GLAPIENTRY
+_mesa_AttachShader(GLuint program, GLuint shader);
+
+extern GLuint GLAPIENTRY
+_mesa_CreateShader(GLenum);
+
+extern GLuint GLAPIENTRY
+_mesa_CreateProgram(void);
+
+extern void GLAPIENTRY
+_mesa_DeleteProgram(GLuint program);
+
+extern void GLAPIENTRY
+_mesa_DeleteShader(GLuint shader);
+
+extern void GLAPIENTRY
+_mesa_DetachShader(GLuint program, GLuint shader);
+
+extern void GLAPIENTRY
+_mesa_GetAttachedShaders(GLuint program, GLsizei maxCount,
+ GLsizei *count, GLuint *obj);
+
+extern void GLAPIENTRY
+_mesa_GetProgramiv(GLuint program, GLenum pname, GLint *params);
+
+extern void GLAPIENTRY
+_mesa_GetProgramInfoLog(GLuint program, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog);
+
+extern void GLAPIENTRY
+_mesa_GetShaderiv(GLuint shader, GLenum pname, GLint *params);
+
+extern void GLAPIENTRY
+_mesa_GetShaderInfoLog(GLuint shader, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog);
+
+
+extern void GLAPIENTRY
+_mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype,
+ GLint *range, GLint *precision);
+
+extern void GLAPIENTRY
+_mesa_ReleaseShaderCompiler(void);
+
+extern void GLAPIENTRY
+_mesa_ShaderBinary(GLint n, const GLuint *shaders, GLenum binaryformat,
+ const void* binary, GLint length);
+
+extern void GLAPIENTRY
+_mesa_ProgramParameteriARB(GLuint program, GLenum pname,
+ GLint value);
+
+#endif /* SHADERAPI_H */
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
new file mode 100644
index 00000000000..129d9742247
--- /dev/null
+++ b/src/mesa/main/shaderobj.c
@@ -0,0 +1,390 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2004-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
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * \file shaderobj.c
+ * \author Brian Paul
+ *
+ */
+
+
+#include "main/glheader.h"
+#include "main/context.h"
+#include "main/hash.h"
+#include "main/shaderobj.h"
+#include "program/program.h"
+#include "program/prog_parameter.h"
+#include "program/prog_uniform.h"
+#include "talloc.h"
+
+/**********************************************************************/
+/*** Shader object functions ***/
+/**********************************************************************/
+
+
+/**
+ * Set ptr to point to sh.
+ * If ptr is pointing to another shader, decrement its refcount (and delete
+ * if refcount hits zero).
+ * Then set ptr to point to sh, incrementing its refcount.
+ */
+void
+_mesa_reference_shader(GLcontext *ctx, struct gl_shader **ptr,
+ struct gl_shader *sh)
+{
+ assert(ptr);
+ if (*ptr == sh) {
+ /* no-op */
+ return;
+ }
+ if (*ptr) {
+ /* Unreference the old shader */
+ GLboolean deleteFlag = GL_FALSE;
+ struct gl_shader *old = *ptr;
+
+ ASSERT(old->RefCount > 0);
+ old->RefCount--;
+ /*printf("SHADER DECR %p (%d) to %d\n",
+ (void*) old, old->Name, old->RefCount);*/
+ deleteFlag = (old->RefCount == 0);
+
+ if (deleteFlag) {
+ _mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name);
+ ctx->Driver.DeleteShader(ctx, old);
+ }
+
+ *ptr = NULL;
+ }
+ assert(!*ptr);
+
+ if (sh) {
+ /* reference new */
+ sh->RefCount++;
+ /*printf("SHADER INCR %p (%d) to %d\n",
+ (void*) sh, sh->Name, sh->RefCount);*/
+ *ptr = sh;
+ }
+}
+
+
+/**
+ * Allocate a new gl_shader object, initialize it.
+ * Called via ctx->Driver.NewShader()
+ */
+struct gl_shader *
+_mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type)
+{
+ struct gl_shader *shader;
+ assert(type == GL_FRAGMENT_SHADER || type == GL_VERTEX_SHADER ||
+ type == GL_GEOMETRY_SHADER_ARB);
+ shader = talloc_zero(NULL, struct gl_shader);
+ if (shader) {
+ shader->Type = type;
+ shader->Name = name;
+ shader->RefCount = 1;
+ }
+ return shader;
+}
+
+
+/**
+ * Delete a shader object.
+ * Called via ctx->Driver.DeleteShader().
+ */
+static void
+__mesa_delete_shader(GLcontext *ctx, struct gl_shader *sh)
+{
+ if (sh->Source)
+ free((void *) sh->Source);
+ _mesa_reference_program(ctx, &sh->Program, NULL);
+ talloc_free(sh);
+}
+
+
+/**
+ * Lookup a GLSL shader object.
+ */
+struct gl_shader *
+_mesa_lookup_shader(GLcontext *ctx, GLuint name)
+{
+ if (name) {
+ struct gl_shader *sh = (struct gl_shader *)
+ _mesa_HashLookup(ctx->Shared->ShaderObjects, name);
+ /* Note that both gl_shader and gl_shader_program objects are kept
+ * in the same hash table. Check the object's type to be sure it's
+ * what we're expecting.
+ */
+ if (sh && sh->Type == GL_SHADER_PROGRAM_MESA) {
+ return NULL;
+ }
+ return sh;
+ }
+ return NULL;
+}
+
+
+/**
+ * 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)
+{
+ if (!name) {
+ _mesa_error(ctx, GL_INVALID_VALUE, caller);
+ return NULL;
+ }
+ else {
+ struct gl_shader *sh = (struct gl_shader *)
+ _mesa_HashLookup(ctx->Shared->ShaderObjects, name);
+ if (!sh) {
+ _mesa_error(ctx, GL_INVALID_VALUE, caller);
+ return NULL;
+ }
+ if (sh->Type == GL_SHADER_PROGRAM_MESA) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, caller);
+ return NULL;
+ }
+ return sh;
+ }
+}
+
+
+
+/**********************************************************************/
+/*** Shader Program object functions ***/
+/**********************************************************************/
+
+
+/**
+ * Set ptr to point to shProg.
+ * If ptr is pointing to another object, decrement its refcount (and delete
+ * if refcount hits zero).
+ * Then set ptr to point to shProg, incrementing its refcount.
+ */
+void
+_mesa_reference_shader_program(GLcontext *ctx,
+ struct gl_shader_program **ptr,
+ struct gl_shader_program *shProg)
+{
+ assert(ptr);
+ if (*ptr == shProg) {
+ /* no-op */
+ return;
+ }
+ if (*ptr) {
+ /* Unreference the old shader program */
+ GLboolean deleteFlag = GL_FALSE;
+ struct gl_shader_program *old = *ptr;
+
+ ASSERT(old->RefCount > 0);
+ old->RefCount--;
+#if 0
+ printf("ShaderProgram %p ID=%u RefCount-- to %d\n",
+ (void *) old, old->Name, old->RefCount);
+#endif
+ deleteFlag = (old->RefCount == 0);
+
+ if (deleteFlag) {
+ _mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name);
+ ctx->Driver.DeleteShaderProgram(ctx, old);
+ }
+
+ *ptr = NULL;
+ }
+ assert(!*ptr);
+
+ if (shProg) {
+ shProg->RefCount++;
+#if 0
+ printf("ShaderProgram %p ID=%u RefCount++ to %d\n",
+ (void *) shProg, shProg->Name, shProg->RefCount);
+#endif
+ *ptr = shProg;
+ }
+}
+
+
+/**
+ * Allocate a new gl_shader_program object, initialize it.
+ * Called via ctx->Driver.NewShaderProgram()
+ */
+static struct gl_shader_program *
+_mesa_new_shader_program(GLcontext *ctx, GLuint name)
+{
+ struct gl_shader_program *shProg;
+ shProg = talloc_zero(NULL, struct gl_shader_program);
+ if (shProg) {
+ shProg->Type = GL_SHADER_PROGRAM_MESA;
+ shProg->Name = name;
+ shProg->RefCount = 1;
+ shProg->Attributes = _mesa_new_parameter_list();
+#if FEATURE_ARB_geometry_shader4
+ shProg->Geom.VerticesOut = 0;
+ shProg->Geom.InputType = GL_TRIANGLES;
+ shProg->Geom.OutputType = GL_TRIANGLE_STRIP;
+#endif
+ }
+ return shProg;
+}
+
+
+/**
+ * Clear (free) the shader program state that gets produced by linking.
+ */
+void
+_mesa_clear_shader_program_data(GLcontext *ctx,
+ struct gl_shader_program *shProg)
+{
+ _mesa_reference_vertprog(ctx, &shProg->VertexProgram, NULL);
+ _mesa_reference_fragprog(ctx, &shProg->FragmentProgram, NULL);
+ _mesa_reference_geomprog(ctx, &shProg->GeometryProgram, NULL);
+
+ if (shProg->Uniforms) {
+ _mesa_free_uniform_list(shProg->Uniforms);
+ shProg->Uniforms = NULL;
+ }
+
+ if (shProg->Varying) {
+ _mesa_free_parameter_list(shProg->Varying);
+ shProg->Varying = NULL;
+ }
+}
+
+
+/**
+ * Free all the data that hangs off a shader program object, but not the
+ * object itself.
+ */
+void
+_mesa_free_shader_program_data(GLcontext *ctx,
+ struct gl_shader_program *shProg)
+{
+ GLuint i;
+
+ assert(shProg->Type == GL_SHADER_PROGRAM_MESA);
+
+ _mesa_clear_shader_program_data(ctx, shProg);
+
+ if (shProg->Attributes) {
+ _mesa_free_parameter_list(shProg->Attributes);
+ shProg->Attributes = NULL;
+ }
+
+ /* detach shaders */
+ for (i = 0; i < shProg->NumShaders; i++) {
+ _mesa_reference_shader(ctx, &shProg->Shaders[i], NULL);
+ }
+ shProg->NumShaders = 0;
+
+ if (shProg->Shaders) {
+ free(shProg->Shaders);
+ shProg->Shaders = NULL;
+ }
+
+ if (shProg->InfoLog) {
+ talloc_free(shProg->InfoLog);
+ shProg->InfoLog = NULL;
+ }
+
+ /* Transform feedback varying vars */
+ for (i = 0; i < shProg->TransformFeedback.NumVarying; i++) {
+ free(shProg->TransformFeedback.VaryingNames[i]);
+ }
+ free(shProg->TransformFeedback.VaryingNames);
+ shProg->TransformFeedback.VaryingNames = NULL;
+ shProg->TransformFeedback.NumVarying = 0;
+}
+
+
+/**
+ * Free/delete a shader program object.
+ * Called via ctx->Driver.DeleteShaderProgram().
+ */
+static void
+__mesa_delete_shader_program(GLcontext *ctx, struct gl_shader_program *shProg)
+{
+ _mesa_free_shader_program_data(ctx, shProg);
+
+ talloc_free(shProg);
+}
+
+
+/**
+ * Lookup a GLSL program object.
+ */
+struct gl_shader_program *
+_mesa_lookup_shader_program(GLcontext *ctx, GLuint name)
+{
+ struct gl_shader_program *shProg;
+ if (name) {
+ shProg = (struct gl_shader_program *)
+ _mesa_HashLookup(ctx->Shared->ShaderObjects, name);
+ /* Note that both gl_shader and gl_shader_program objects are kept
+ * in the same hash table. Check the object's type to be sure it's
+ * what we're expecting.
+ */
+ if (shProg && shProg->Type != GL_SHADER_PROGRAM_MESA) {
+ return NULL;
+ }
+ return shProg;
+ }
+ return NULL;
+}
+
+
+/**
+ * As above, but record an error if program is not found.
+ */
+struct gl_shader_program *
+_mesa_lookup_shader_program_err(GLcontext *ctx, GLuint name,
+ const char *caller)
+{
+ if (!name) {
+ _mesa_error(ctx, GL_INVALID_VALUE, caller);
+ return NULL;
+ }
+ else {
+ struct gl_shader_program *shProg = (struct gl_shader_program *)
+ _mesa_HashLookup(ctx->Shared->ShaderObjects, name);
+ if (!shProg) {
+ _mesa_error(ctx, GL_INVALID_VALUE, caller);
+ return NULL;
+ }
+ if (shProg->Type != GL_SHADER_PROGRAM_MESA) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, caller);
+ return NULL;
+ }
+ return shProg;
+ }
+}
+
+
+void
+_mesa_init_shader_object_functions(struct dd_function_table *driver)
+{
+ driver->NewShader = _mesa_new_shader;
+ driver->DeleteShader = __mesa_delete_shader;
+ driver->NewShaderProgram = _mesa_new_shader_program;
+ driver->DeleteShaderProgram = __mesa_delete_shader_program;
+}
diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h
new file mode 100644
index 00000000000..b48244dc0d2
--- /dev/null
+++ b/src/mesa/main/shaderobj.h
@@ -0,0 +1,98 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 6.5.3
+ *
+ * Copyright (C) 2004-2007 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#ifndef SHADEROBJ_H
+#define SHADEROBJ_H
+
+
+#include "main/glheader.h"
+#include "main/mtypes.h"
+#include "program/ir_to_mesa.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/**
+ * Internal functions
+ */
+
+extern void
+_mesa_init_shader_state(GLcontext * ctx);
+
+extern void
+_mesa_free_shader_state(GLcontext *ctx);
+
+
+extern void
+_mesa_reference_shader(GLcontext *ctx, struct gl_shader **ptr,
+ struct gl_shader *sh);
+
+extern struct gl_shader *
+_mesa_lookup_shader(GLcontext *ctx, GLuint name);
+
+extern struct gl_shader *
+_mesa_lookup_shader_err(GLcontext *ctx, GLuint name, const char *caller);
+
+
+
+extern void
+_mesa_reference_shader_program(GLcontext *ctx,
+ struct gl_shader_program **ptr,
+ struct gl_shader_program *shProg);
+
+extern struct gl_shader *
+_mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type);
+
+extern struct gl_shader_program *
+_mesa_lookup_shader_program(GLcontext *ctx, GLuint name);
+
+extern struct gl_shader_program *
+_mesa_lookup_shader_program_err(GLcontext *ctx, GLuint name,
+ const char *caller);
+
+extern void
+_mesa_clear_shader_program_data(GLcontext *ctx,
+ struct gl_shader_program *shProg);
+
+extern void
+_mesa_free_shader_program_data(GLcontext *ctx,
+ struct gl_shader_program *shProg);
+
+
+
+extern void
+_mesa_init_shader_object_functions(struct dd_function_table *driver);
+
+extern void
+_mesa_init_shader_state(GLcontext *ctx);
+
+extern void
+_mesa_free_shader_state(GLcontext *ctx);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* SHADEROBJ_H */
diff --git a/src/mesa/main/shaders.c b/src/mesa/main/shaders.c
deleted file mode 100644
index 65f1ee3efbd..00000000000
--- a/src/mesa/main/shaders.c
+++ /dev/null
@@ -1,932 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version: 7.3
- *
- * Copyright (C) 2004-2008 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-#include "glheader.h"
-#include "context.h"
-#include "shaders.h"
-#include "shader/shader_api.h"
-#include "main/dispatch.h"
-
-
-/** Define this to enable shader substitution (see below) */
-#define SHADER_SUBST 0
-
-
-
-/**
- * These are basically just wrappers/adaptors for calling the
- * ctx->Driver.foobar() GLSL-related functions.
- *
- * Things are biased toward the OpenGL 2.0 functions rather than the
- * ARB extensions (i.e. the ARB functions are layered on the 2.0 functions).
- *
- * The general idea here is to allow enough modularity such that a
- * completely different GLSL implemenation can be plugged in and co-exist
- * with Mesa's native GLSL code.
- */
-
-
-
-void GLAPIENTRY
-_mesa_AttachObjectARB(GLhandleARB program, GLhandleARB shader)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.AttachShader(ctx, program, shader);
-}
-
-
-void GLAPIENTRY
-_mesa_AttachShader(GLuint program, GLuint shader)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.AttachShader(ctx, program, shader);
-}
-
-
-void GLAPIENTRY
-_mesa_BindAttribLocationARB(GLhandleARB program, GLuint index,
- const GLcharARB *name)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.BindAttribLocation(ctx, program, index, name);
-}
-
-
-void GLAPIENTRY
-_mesa_CompileShaderARB(GLhandleARB shaderObj)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.CompileShader(ctx, shaderObj);
-}
-
-
-GLuint GLAPIENTRY
-_mesa_CreateShader(GLenum type)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.CreateShader(ctx, type);
-}
-
-
-GLhandleARB GLAPIENTRY
-_mesa_CreateShaderObjectARB(GLenum type)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.CreateShader(ctx, type);
-}
-
-
-GLuint GLAPIENTRY
-_mesa_CreateProgram(void)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.CreateProgram(ctx);
-}
-
-
-GLhandleARB GLAPIENTRY
-_mesa_CreateProgramObjectARB(void)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.CreateProgram(ctx);
-}
-
-
-void GLAPIENTRY
-_mesa_DeleteObjectARB(GLhandleARB obj)
-{
- if (obj) {
- GET_CURRENT_CONTEXT(ctx);
- if (ctx->Driver.IsProgram(ctx, obj)) {
- ctx->Driver.DeleteProgram2(ctx, obj);
- }
- else if (ctx->Driver.IsShader(ctx, obj)) {
- ctx->Driver.DeleteShader(ctx, obj);
- }
- else {
- /* error? */
- }
- }
-}
-
-
-void GLAPIENTRY
-_mesa_DeleteProgram(GLuint name)
-{
- if (name) {
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.DeleteProgram2(ctx, name);
- }
-}
-
-
-void GLAPIENTRY
-_mesa_DeleteShader(GLuint name)
-{
- if (name) {
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.DeleteShader(ctx, name);
- }
-}
-
-
-void GLAPIENTRY
-_mesa_DetachObjectARB(GLhandleARB program, GLhandleARB shader)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.DetachShader(ctx, program, shader);
-}
-
-
-void GLAPIENTRY
-_mesa_DetachShader(GLuint program, GLuint shader)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.DetachShader(ctx, program, shader);
-}
-
-
-void GLAPIENTRY
-_mesa_GetActiveAttribARB(GLhandleARB program, GLuint index,
- GLsizei maxLength, GLsizei * length, GLint * size,
- GLenum * type, GLcharARB * name)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetActiveAttrib(ctx, program, index, maxLength, length, size,
- type, name);
-}
-
-
-void GLAPIENTRY
-_mesa_GetActiveUniformARB(GLhandleARB program, GLuint index,
- GLsizei maxLength, GLsizei * length, GLint * size,
- GLenum * type, GLcharARB * name)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetActiveUniform(ctx, program, index, maxLength, length, size,
- type, name);
-}
-
-
-void GLAPIENTRY
-_mesa_GetAttachedObjectsARB(GLhandleARB container, GLsizei maxCount,
- GLsizei * count, GLhandleARB * obj)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetAttachedShaders(ctx, container, maxCount, count, obj);
-}
-
-
-void GLAPIENTRY
-_mesa_GetAttachedShaders(GLuint program, GLsizei maxCount,
- GLsizei *count, GLuint *obj)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetAttachedShaders(ctx, program, maxCount, count, obj);
-}
-
-
-GLint GLAPIENTRY
-_mesa_GetAttribLocationARB(GLhandleARB program, const GLcharARB * name)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.GetAttribLocation(ctx, program, name);
-}
-
-
-void GLAPIENTRY
-_mesa_GetInfoLogARB(GLhandleARB object, GLsizei maxLength, GLsizei * length,
- GLcharARB * infoLog)
-{
- GET_CURRENT_CONTEXT(ctx);
- /* Implement in terms of GetProgramInfoLog, GetShaderInfoLog */
- if (ctx->Driver.IsProgram(ctx, object)) {
- ctx->Driver.GetProgramInfoLog(ctx, object, maxLength, length, infoLog);
- }
- else if (ctx->Driver.IsShader(ctx, object)) {
- ctx->Driver.GetShaderInfoLog(ctx, object, maxLength, length, infoLog);
- }
- else {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glGetInfoLogARB");
- }
-}
-
-
-void GLAPIENTRY
-_mesa_GetObjectParameterivARB(GLhandleARB object, GLenum pname, GLint *params)
-{
- GET_CURRENT_CONTEXT(ctx);
- /* Implement in terms of GetProgramiv, GetShaderiv */
- if (ctx->Driver.IsProgram(ctx, object)) {
- if (pname == GL_OBJECT_TYPE_ARB) {
- *params = GL_PROGRAM_OBJECT_ARB;
- }
- else {
- ctx->Driver.GetProgramiv(ctx, object, pname, params);
- }
- }
- else if (ctx->Driver.IsShader(ctx, object)) {
- if (pname == GL_OBJECT_TYPE_ARB) {
- *params = GL_SHADER_OBJECT_ARB;
- }
- else {
- ctx->Driver.GetShaderiv(ctx, object, pname, params);
- }
- }
- else {
- _mesa_error(ctx, GL_INVALID_VALUE, "glGetObjectParameterivARB");
- }
-}
-
-
-void GLAPIENTRY
-_mesa_GetObjectParameterfvARB(GLhandleARB object, GLenum pname,
- GLfloat *params)
-{
- GLint iparams[1]; /* XXX is one element enough? */
- _mesa_GetObjectParameterivARB(object, pname, iparams);
- params[0] = (GLfloat) iparams[0];
-}
-
-
-void GLAPIENTRY
-_mesa_GetProgramiv(GLuint program, GLenum pname, GLint *params)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetProgramiv(ctx, program, pname, params);
-}
-
-
-void GLAPIENTRY
-_mesa_GetShaderiv(GLuint shader, GLenum pname, GLint *params)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetShaderiv(ctx, shader, pname, params);
-}
-
-
-void GLAPIENTRY
-_mesa_GetProgramInfoLog(GLuint program, GLsizei bufSize,
- GLsizei *length, GLchar *infoLog)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetProgramInfoLog(ctx, program, bufSize, length, infoLog);
-}
-
-
-void GLAPIENTRY
-_mesa_GetShaderInfoLog(GLuint shader, GLsizei bufSize,
- GLsizei *length, GLchar *infoLog)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetShaderInfoLog(ctx, shader, bufSize, length, infoLog);
-}
-
-
-void GLAPIENTRY
-_mesa_GetShaderSourceARB(GLhandleARB shader, GLsizei maxLength,
- GLsizei *length, GLcharARB *sourceOut)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetShaderSource(ctx, shader, maxLength, length, sourceOut);
-}
-
-
-void GLAPIENTRY
-_mesa_GetUniformfvARB(GLhandleARB program, GLint location, GLfloat * params)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetUniformfv(ctx, program, location, params);
-}
-
-
-void GLAPIENTRY
-_mesa_GetUniformivARB(GLhandleARB program, GLint location, GLint * params)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.GetUniformiv(ctx, program, location, params);
-}
-
-
-
-#if 0
-GLint GLAPIENTRY
-_mesa_GetUniformLocation(GLuint program, const GLcharARB *name)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.GetUniformLocation(ctx, program, name);
-}
-#endif
-
-
-GLhandleARB GLAPIENTRY
-_mesa_GetHandleARB(GLenum pname)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.GetHandle(ctx, pname);
-}
-
-
-GLint GLAPIENTRY
-_mesa_GetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.GetUniformLocation(ctx, programObj, name);
-}
-
-
-GLboolean GLAPIENTRY
-_mesa_IsProgram(GLuint name)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.IsProgram(ctx, name);
-}
-
-
-GLboolean GLAPIENTRY
-_mesa_IsShader(GLuint name)
-{
- GET_CURRENT_CONTEXT(ctx);
- return ctx->Driver.IsShader(ctx, name);
-}
-
-
-void GLAPIENTRY
-_mesa_LinkProgramARB(GLhandleARB programObj)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.LinkProgram(ctx, programObj);
-}
-
-
-
-/**
- * Read shader source code from a file.
- * Useful for debugging to override an app's shader.
- */
-static GLcharARB *
-_mesa_read_shader(const char *fname)
-{
- const int max = 50*1000;
- FILE *f = fopen(fname, "r");
- GLcharARB *buffer, *shader;
- int len;
-
- if (!f) {
- return NULL;
- }
-
- buffer = (char *) malloc(max);
- len = fread(buffer, 1, max, f);
- buffer[len] = 0;
-
- fclose(f);
-
- shader = _mesa_strdup(buffer);
- free(buffer);
-
- return shader;
-}
-
-
-/**
- * Called via glShaderSource() and glShaderSourceARB() API functions.
- * Basically, concatenate the source code strings into one long string
- * and pass it to ctx->Driver.ShaderSource().
- */
-void GLAPIENTRY
-_mesa_ShaderSourceARB(GLhandleARB shaderObj, GLsizei count,
- const GLcharARB ** string, const GLint * length)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLint *offsets;
- GLsizei i, totalLength;
- GLcharARB *source;
- GLuint checksum;
-
- if (!shaderObj || string == NULL) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glShaderSourceARB");
- return;
- }
-
- /*
- * This array holds offsets of where the appropriate string ends, thus the
- * last element will be set to the total length of the source code.
- */
- offsets = (GLint *) malloc(count * sizeof(GLint));
- if (offsets == NULL) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glShaderSourceARB");
- return;
- }
-
- for (i = 0; i < count; i++) {
- if (string[i] == NULL) {
- free((GLvoid *) offsets);
- _mesa_error(ctx, GL_INVALID_OPERATION, "glShaderSourceARB(null string)");
- return;
- }
- if (length == NULL || length[i] < 0)
- offsets[i] = strlen(string[i]);
- else
- offsets[i] = length[i];
- /* accumulate string lengths */
- if (i > 0)
- offsets[i] += offsets[i - 1];
- }
-
- /* Total length of source string is sum off all strings plus two.
- * One extra byte for terminating zero, another extra byte to silence
- * valgrind warnings in the parser/grammer code.
- */
- totalLength = offsets[count - 1] + 2;
- source = (GLcharARB *) malloc(totalLength * sizeof(GLcharARB));
- if (source == NULL) {
- free((GLvoid *) offsets);
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glShaderSourceARB");
- return;
- }
-
- for (i = 0; i < count; i++) {
- GLint start = (i > 0) ? offsets[i - 1] : 0;
- memcpy(source + start, string[i],
- (offsets[i] - start) * sizeof(GLcharARB));
- }
- source[totalLength - 1] = '\0';
- source[totalLength - 2] = '\0';
-
- if (SHADER_SUBST) {
- /* Compute the shader's source code checksum then try to open a file
- * named newshader_<CHECKSUM>. If it exists, use it in place of the
- * original shader source code. For debugging.
- */
- char filename[100];
- GLcharARB *newSource;
-
- checksum = _mesa_str_checksum(source);
-
- _mesa_snprintf(filename, sizeof(filename), "newshader_%d", checksum);
-
- newSource = _mesa_read_shader(filename);
- if (newSource) {
- fprintf(stderr, "Mesa: Replacing shader %u chksum=%d with %s\n",
- shaderObj, checksum, filename);
- free(source);
- source = newSource;
- }
- }
-
- ctx->Driver.ShaderSource(ctx, shaderObj, source);
-
- if (SHADER_SUBST) {
- struct gl_shader *sh = _mesa_lookup_shader(ctx, shaderObj);
- if (sh)
- sh->SourceChecksum = checksum; /* save original checksum */
- }
-
- free(offsets);
-}
-
-
-void GLAPIENTRY
-_mesa_Uniform1fARB(GLint location, GLfloat v0)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, 1, &v0, GL_FLOAT);
-}
-
-void GLAPIENTRY
-_mesa_Uniform2fARB(GLint location, GLfloat v0, GLfloat v1)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLfloat v[2];
- v[0] = v0;
- v[1] = v1;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_FLOAT_VEC2);
-}
-
-void GLAPIENTRY
-_mesa_Uniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLfloat v[3];
- v[0] = v0;
- v[1] = v1;
- v[2] = v2;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_FLOAT_VEC3);
-}
-
-void GLAPIENTRY
-_mesa_Uniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2,
- GLfloat v3)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLfloat v[4];
- v[0] = v0;
- v[1] = v1;
- v[2] = v2;
- v[3] = v3;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_FLOAT_VEC4);
-}
-
-void GLAPIENTRY
-_mesa_Uniform1iARB(GLint location, GLint v0)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, 1, &v0, GL_INT);
-}
-
-void GLAPIENTRY
-_mesa_Uniform2iARB(GLint location, GLint v0, GLint v1)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLint v[2];
- v[0] = v0;
- v[1] = v1;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_INT_VEC2);
-}
-
-void GLAPIENTRY
-_mesa_Uniform3iARB(GLint location, GLint v0, GLint v1, GLint v2)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLint v[3];
- v[0] = v0;
- v[1] = v1;
- v[2] = v2;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_INT_VEC3);
-}
-
-void GLAPIENTRY
-_mesa_Uniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLint v[4];
- v[0] = v0;
- v[1] = v1;
- v[2] = v2;
- v[3] = v3;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_INT_VEC4);
-}
-
-void GLAPIENTRY
-_mesa_Uniform1fvARB(GLint location, GLsizei count, const GLfloat * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_FLOAT);
-}
-
-void GLAPIENTRY
-_mesa_Uniform2fvARB(GLint location, GLsizei count, const GLfloat * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_FLOAT_VEC2);
-}
-
-void GLAPIENTRY
-_mesa_Uniform3fvARB(GLint location, GLsizei count, const GLfloat * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_FLOAT_VEC3);
-}
-
-void GLAPIENTRY
-_mesa_Uniform4fvARB(GLint location, GLsizei count, const GLfloat * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_FLOAT_VEC4);
-}
-
-void GLAPIENTRY
-_mesa_Uniform1ivARB(GLint location, GLsizei count, const GLint * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_INT);
-}
-
-void GLAPIENTRY
-_mesa_Uniform2ivARB(GLint location, GLsizei count, const GLint * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_INT_VEC2);
-}
-
-void GLAPIENTRY
-_mesa_Uniform3ivARB(GLint location, GLsizei count, const GLint * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_INT_VEC3);
-}
-
-void GLAPIENTRY
-_mesa_Uniform4ivARB(GLint location, GLsizei count, const GLint * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_INT_VEC4);
-}
-
-
-/** OpenGL 3.0 GLuint-valued functions **/
-void GLAPIENTRY
-_mesa_Uniform1ui(GLint location, GLuint v0)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, 1, &v0, GL_UNSIGNED_INT);
-}
-
-void GLAPIENTRY
-_mesa_Uniform2ui(GLint location, GLuint v0, GLuint v1)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLuint v[2];
- v[0] = v0;
- v[1] = v1;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_UNSIGNED_INT_VEC2);
-}
-
-void GLAPIENTRY
-_mesa_Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLuint v[3];
- v[0] = v0;
- v[1] = v1;
- v[2] = v2;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_UNSIGNED_INT_VEC3);
-}
-
-void GLAPIENTRY
-_mesa_Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
-{
- GET_CURRENT_CONTEXT(ctx);
- GLuint v[4];
- v[0] = v0;
- v[1] = v1;
- v[2] = v2;
- v[3] = v3;
- ctx->Driver.Uniform(ctx, location, 1, v, GL_UNSIGNED_INT_VEC4);
-}
-
-void GLAPIENTRY
-_mesa_Uniform1uiv(GLint location, GLsizei count, const GLuint *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_UNSIGNED_INT);
-}
-
-void GLAPIENTRY
-_mesa_Uniform2uiv(GLint location, GLsizei count, const GLuint *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_UNSIGNED_INT_VEC2);
-}
-
-void GLAPIENTRY
-_mesa_Uniform3uiv(GLint location, GLsizei count, const GLuint *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_UNSIGNED_INT_VEC3);
-}
-
-void GLAPIENTRY
-_mesa_Uniform4uiv(GLint location, GLsizei count, const GLuint *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.Uniform(ctx, location, count, value, GL_UNSIGNED_INT_VEC4);
-}
-
-
-
-void GLAPIENTRY
-_mesa_UniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 2, 2, location, count, transpose, value);
-}
-
-void GLAPIENTRY
-_mesa_UniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 3, 3, location, count, transpose, value);
-}
-
-void GLAPIENTRY
-_mesa_UniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat * value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 4, 4, location, count, transpose, value);
-}
-
-
-/**
- * Non-square UniformMatrix are OpenGL 2.1
- */
-void GLAPIENTRY
-_mesa_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 2, 3, location, count, transpose, value);
-}
-
-void GLAPIENTRY
-_mesa_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 3, 2, location, count, transpose, value);
-}
-
-void GLAPIENTRY
-_mesa_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 2, 4, location, count, transpose, value);
-}
-
-void GLAPIENTRY
-_mesa_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 4, 2, location, count, transpose, value);
-}
-
-void GLAPIENTRY
-_mesa_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 3, 4, location, count, transpose, value);
-}
-
-void GLAPIENTRY
-_mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.UniformMatrix(ctx, 4, 3, location, count, transpose, value);
-}
-
-
-void GLAPIENTRY
-_mesa_UseProgramObjectARB(GLhandleARB program)
-{
- GET_CURRENT_CONTEXT(ctx);
- FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- ctx->Driver.UseProgram(ctx, program);
-}
-
-
-void GLAPIENTRY
-_mesa_ValidateProgramARB(GLhandleARB program)
-{
- GET_CURRENT_CONTEXT(ctx);
- ctx->Driver.ValidateProgram(ctx, program);
-}
-
-#if FEATURE_ES2
-
-void GLAPIENTRY
-_mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype,
- GLint* range, GLint* precision)
-{
- GET_CURRENT_CONTEXT(ctx);
- _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
-}
-
-
-void GLAPIENTRY
-_mesa_ReleaseShaderCompiler(void)
-{
- GET_CURRENT_CONTEXT(ctx);
- _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
-}
-
-
-void GLAPIENTRY
-_mesa_ShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat,
- const void* binary, GLint length)
-{
- GET_CURRENT_CONTEXT(ctx);
- _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
-}
-
-#endif
-
-
-/**
- * Plug in shader-related functions into API dispatch table.
- */
-void
-_mesa_init_shader_dispatch(struct _glapi_table *exec)
-{
-#if FEATURE_GL
- /* GL_ARB_vertex/fragment_shader */
- SET_DeleteObjectARB(exec, _mesa_DeleteObjectARB);
- SET_GetHandleARB(exec, _mesa_GetHandleARB);
- SET_DetachObjectARB(exec, _mesa_DetachObjectARB);
- SET_CreateShaderObjectARB(exec, _mesa_CreateShaderObjectARB);
- SET_ShaderSourceARB(exec, _mesa_ShaderSourceARB);
- SET_CompileShaderARB(exec, _mesa_CompileShaderARB);
- SET_CreateProgramObjectARB(exec, _mesa_CreateProgramObjectARB);
- SET_AttachObjectARB(exec, _mesa_AttachObjectARB);
- SET_LinkProgramARB(exec, _mesa_LinkProgramARB);
- SET_UseProgramObjectARB(exec, _mesa_UseProgramObjectARB);
- SET_ValidateProgramARB(exec, _mesa_ValidateProgramARB);
- SET_Uniform1fARB(exec, _mesa_Uniform1fARB);
- SET_Uniform2fARB(exec, _mesa_Uniform2fARB);
- SET_Uniform3fARB(exec, _mesa_Uniform3fARB);
- SET_Uniform4fARB(exec, _mesa_Uniform4fARB);
- SET_Uniform1iARB(exec, _mesa_Uniform1iARB);
- SET_Uniform2iARB(exec, _mesa_Uniform2iARB);
- SET_Uniform3iARB(exec, _mesa_Uniform3iARB);
- SET_Uniform4iARB(exec, _mesa_Uniform4iARB);
- SET_Uniform1fvARB(exec, _mesa_Uniform1fvARB);
- SET_Uniform2fvARB(exec, _mesa_Uniform2fvARB);
- SET_Uniform3fvARB(exec, _mesa_Uniform3fvARB);
- SET_Uniform4fvARB(exec, _mesa_Uniform4fvARB);
- SET_Uniform1ivARB(exec, _mesa_Uniform1ivARB);
- SET_Uniform2ivARB(exec, _mesa_Uniform2ivARB);
- SET_Uniform3ivARB(exec, _mesa_Uniform3ivARB);
- SET_Uniform4ivARB(exec, _mesa_Uniform4ivARB);
- SET_UniformMatrix2fvARB(exec, _mesa_UniformMatrix2fvARB);
- SET_UniformMatrix3fvARB(exec, _mesa_UniformMatrix3fvARB);
- SET_UniformMatrix4fvARB(exec, _mesa_UniformMatrix4fvARB);
- SET_GetObjectParameterfvARB(exec, _mesa_GetObjectParameterfvARB);
- SET_GetObjectParameterivARB(exec, _mesa_GetObjectParameterivARB);
- SET_GetInfoLogARB(exec, _mesa_GetInfoLogARB);
- SET_GetAttachedObjectsARB(exec, _mesa_GetAttachedObjectsARB);
- SET_GetUniformLocationARB(exec, _mesa_GetUniformLocationARB);
- SET_GetActiveUniformARB(exec, _mesa_GetActiveUniformARB);
- SET_GetUniformfvARB(exec, _mesa_GetUniformfvARB);
- SET_GetUniformivARB(exec, _mesa_GetUniformivARB);
- SET_GetShaderSourceARB(exec, _mesa_GetShaderSourceARB);
-
- /* OpenGL 2.0 */
- SET_AttachShader(exec, _mesa_AttachShader);
- SET_CreateProgram(exec, _mesa_CreateProgram);
- SET_CreateShader(exec, _mesa_CreateShader);
- SET_DeleteProgram(exec, _mesa_DeleteProgram);
- SET_DeleteShader(exec, _mesa_DeleteShader);
- SET_DetachShader(exec, _mesa_DetachShader);
- SET_GetAttachedShaders(exec, _mesa_GetAttachedShaders);
- SET_GetProgramiv(exec, _mesa_GetProgramiv);
- SET_GetProgramInfoLog(exec, _mesa_GetProgramInfoLog);
- SET_GetShaderiv(exec, _mesa_GetShaderiv);
- SET_GetShaderInfoLog(exec, _mesa_GetShaderInfoLog);
- SET_IsProgram(exec, _mesa_IsProgram);
- SET_IsShader(exec, _mesa_IsShader);
-
- /* OpenGL 2.1 */
- SET_UniformMatrix2x3fv(exec, _mesa_UniformMatrix2x3fv);
- SET_UniformMatrix3x2fv(exec, _mesa_UniformMatrix3x2fv);
- SET_UniformMatrix2x4fv(exec, _mesa_UniformMatrix2x4fv);
- SET_UniformMatrix4x2fv(exec, _mesa_UniformMatrix4x2fv);
- SET_UniformMatrix3x4fv(exec, _mesa_UniformMatrix3x4fv);
- SET_UniformMatrix4x3fv(exec, _mesa_UniformMatrix4x3fv);
-
-#if FEATURE_ARB_vertex_shader
- SET_BindAttribLocationARB(exec, _mesa_BindAttribLocationARB);
- SET_GetActiveAttribARB(exec, _mesa_GetActiveAttribARB);
- SET_GetAttribLocationARB(exec, _mesa_GetAttribLocationARB);
-#endif
-
- /* OpenGL 3.0 */
- /* XXX finish dispatch */
- (void) _mesa_Uniform1ui;
- (void) _mesa_Uniform2ui;
- (void) _mesa_Uniform3ui;
- (void) _mesa_Uniform4ui;
- (void) _mesa_Uniform1uiv;
- (void) _mesa_Uniform2uiv;
- (void) _mesa_Uniform3uiv;
- (void) _mesa_Uniform4uiv;
-#endif /* FEATURE_GL */
-}
diff --git a/src/mesa/main/shaders.h b/src/mesa/main/shaders.h
deleted file mode 100644
index af65b2d01a7..00000000000
--- a/src/mesa/main/shaders.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version: 6.5.3
- *
- * Copyright (C) 2004-2007 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-#ifndef SHADERS_H
-#define SHADERS_H
-
-
-#include "glheader.h"
-#include "mtypes.h"
-
-extern void
-_mesa_init_shader_dispatch(struct _glapi_table *exec);
-
-extern void GLAPIENTRY
-_mesa_DeleteObjectARB(GLhandleARB obj);
-
-extern GLhandleARB GLAPIENTRY
-_mesa_GetHandleARB(GLenum pname);
-
-extern void GLAPIENTRY
-_mesa_DetachObjectARB (GLhandleARB, GLhandleARB);
-
-extern GLhandleARB GLAPIENTRY
-_mesa_CreateShaderObjectARB (GLenum);
-
-extern void GLAPIENTRY
-_mesa_ShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *);
-
-extern void GLAPIENTRY
-_mesa_CompileShaderARB (GLhandleARB);
-
-extern GLhandleARB GLAPIENTRY
-_mesa_CreateProgramObjectARB (void);
-
-extern void GLAPIENTRY
-_mesa_AttachObjectARB (GLhandleARB, GLhandleARB);
-
-extern void GLAPIENTRY
-_mesa_LinkProgramARB (GLhandleARB);
-
-extern void GLAPIENTRY
-_mesa_UseProgramObjectARB (GLhandleARB);
-
-extern void GLAPIENTRY
-_mesa_ValidateProgramARB (GLhandleARB);
-
-extern void GLAPIENTRY
-_mesa_Uniform1fARB (GLint, GLfloat);
-
-extern void GLAPIENTRY
-_mesa_Uniform2fARB (GLint, GLfloat, GLfloat);
-
-extern void GLAPIENTRY
-_mesa_Uniform3fARB (GLint, GLfloat, GLfloat, GLfloat);
-
-extern void GLAPIENTRY
-_mesa_Uniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
-
-extern void GLAPIENTRY
-_mesa_Uniform1iARB (GLint, GLint);
-
-extern void GLAPIENTRY
-_mesa_Uniform2iARB (GLint, GLint, GLint);
-
-extern void GLAPIENTRY
-_mesa_Uniform3iARB (GLint, GLint, GLint, GLint);
-
-extern void GLAPIENTRY
-_mesa_Uniform4iARB (GLint, GLint, GLint, GLint, GLint);
-
-extern void GLAPIENTRY
-_mesa_Uniform1fvARB (GLint, GLsizei, const GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_Uniform2fvARB (GLint, GLsizei, const GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_Uniform3fvARB (GLint, GLsizei, const GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_Uniform4fvARB (GLint, GLsizei, const GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_Uniform1ivARB (GLint, GLsizei, const GLint *);
-
-extern void GLAPIENTRY
-_mesa_Uniform2ivARB (GLint, GLsizei, const GLint *);
-
-extern void GLAPIENTRY
-_mesa_Uniform3ivARB (GLint, GLsizei, const GLint *);
-
-extern void GLAPIENTRY
-_mesa_Uniform4ivARB (GLint, GLsizei, const GLint *);
-
-extern void GLAPIENTRY
-_mesa_Uniform1ui(GLint location, GLuint v0);
-
-extern void GLAPIENTRY
-_mesa_Uniform2ui(GLint location, GLuint v0, GLuint v1);
-
-extern void GLAPIENTRY
-_mesa_Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
-
-extern void GLAPIENTRY
-_mesa_Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
-
-extern void GLAPIENTRY
-_mesa_Uniform1uiv(GLint location, GLsizei count, const GLuint *value);
-
-extern void GLAPIENTRY
-_mesa_Uniform2uiv(GLint location, GLsizei count, const GLuint *value);
-
-extern void GLAPIENTRY
-_mesa_Uniform3uiv(GLint location, GLsizei count, const GLuint *value);
-
-extern void GLAPIENTRY
-_mesa_Uniform4uiv(GLint location, GLsizei count, const GLuint *value);
-
-
-extern void GLAPIENTRY
-_mesa_UniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_UniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_UniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_GetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_GetObjectParameterivARB (GLhandleARB, GLenum, GLint *);
-
-extern void GLAPIENTRY
-_mesa_GetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
-
-extern void GLAPIENTRY
-_mesa_GetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *);
-
-extern GLint GLAPIENTRY
-_mesa_GetUniformLocationARB (GLhandleARB, const GLcharARB *);
-
-extern void GLAPIENTRY
-_mesa_GetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
-
-extern void GLAPIENTRY
-_mesa_GetUniformfvARB (GLhandleARB, GLint, GLfloat *);
-
-extern void GLAPIENTRY
-_mesa_GetUniformivARB (GLhandleARB, GLint, GLint *);
-
-extern void GLAPIENTRY
-_mesa_GetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
-
-#if FEATURE_ARB_vertex_shader
-
-extern void GLAPIENTRY
-_mesa_BindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *);
-
-extern void GLAPIENTRY
-_mesa_GetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
-
-extern GLint GLAPIENTRY
-_mesa_GetAttribLocationARB (GLhandleARB, const GLcharARB *);
-
-#endif /* FEATURE_ARB_vertex_shader */
-
-
-/* 2.0 */
-extern void GLAPIENTRY
-_mesa_AttachShader(GLuint program, GLuint shader);
-
-extern GLuint GLAPIENTRY
-_mesa_CreateShader(GLenum);
-
-extern GLuint GLAPIENTRY
-_mesa_CreateProgram(void);
-
-extern void GLAPIENTRY
-_mesa_DeleteProgram(GLuint program);
-
-extern void GLAPIENTRY
-_mesa_DeleteShader(GLuint shader);
-
-extern void GLAPIENTRY
-_mesa_DetachShader(GLuint program, GLuint shader);
-
-extern void GLAPIENTRY
-_mesa_GetAttachedShaders(GLuint program, GLsizei maxCount,
- GLsizei *count, GLuint *obj);
-
-extern void GLAPIENTRY
-_mesa_GetProgramiv(GLuint program, GLenum pname, GLint *params);
-
-extern void GLAPIENTRY
-_mesa_GetProgramInfoLog(GLuint program, GLsizei bufSize,
- GLsizei *length, GLchar *infoLog);
-
-extern void GLAPIENTRY
-_mesa_GetShaderiv(GLuint shader, GLenum pname, GLint *params);
-
-extern void GLAPIENTRY
-_mesa_GetShaderInfoLog(GLuint shader, GLsizei bufSize,
- GLsizei *length, GLchar *infoLog);
-
-extern GLboolean GLAPIENTRY
-_mesa_IsProgram(GLuint program);
-
-extern GLboolean GLAPIENTRY
-_mesa_IsShader(GLuint shader);
-
-
-
-/* 2.1 */
-extern void GLAPIENTRY
-_mesa_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value);
-
-extern void GLAPIENTRY
-_mesa_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value);
-
-extern void GLAPIENTRY
-_mesa_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value);
-
-extern void GLAPIENTRY
-_mesa_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value);
-
-extern void GLAPIENTRY
-_mesa_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value);
-
-extern void GLAPIENTRY
-_mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
- const GLfloat *value);
-
-/* GLES 2.0 */
-extern void GLAPIENTRY
-_mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype,
- GLint* range, GLint* precision);
-
-extern void GLAPIENTRY
-_mesa_ReleaseShaderCompiler(void);
-
-extern void GLAPIENTRY
-_mesa_ShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat,
- const void* binary, GLint length);
-
-#endif /* SHADERS_H */
diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c
index e364e24048f..f9d10f3bbea 100644
--- a/src/mesa/main/shared.c
+++ b/src/mesa/main/shared.c
@@ -33,14 +33,14 @@
#include "mtypes.h"
#include "hash.h"
#include "arrayobj.h"
+#if FEATURE_ATI_fragment_shader
+#include "atifragshader.h"
+#endif
#include "bufferobj.h"
#include "shared.h"
-#include "shader/program.h"
-#include "shader/shader_api.h"
+#include "program/program.h"
#include "dlist.h"
-#if FEATURE_ATI_fragment_shader
-#include "shader/atifragshader.h"
-#endif
+#include "shaderobj.h"
#if FEATURE_ARB_sync
#include "syncobj.h"
#endif
@@ -228,12 +228,12 @@ delete_shader_cb(GLuint id, void *data, void *userData)
GLcontext *ctx = (GLcontext *) userData;
struct gl_shader *sh = (struct gl_shader *) data;
if (sh->Type == GL_FRAGMENT_SHADER || sh->Type == GL_VERTEX_SHADER) {
- _mesa_free_shader(ctx, sh);
+ ctx->Driver.DeleteShader(ctx, sh);
}
else {
struct gl_shader_program *shProg = (struct gl_shader_program *) data;
ASSERT(shProg->Type == GL_SHADER_PROGRAM_MESA);
- _mesa_free_shader_program(ctx, shProg);
+ ctx->Driver.DeleteShaderProgram(ctx, shProg);
}
}
diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c
index b971cc976ee..4a3dffe4cf8 100644
--- a/src/mesa/main/state.c
+++ b/src/mesa/main/state.c
@@ -41,8 +41,8 @@
#include "light.h"
#include "matrix.h"
#include "pixel.h"
-#include "shader/program.h"
-#include "shader/prog_parameter.h"
+#include "program/program.h"
+#include "program/prog_parameter.h"
#include "state.h"
#include "stencil.h"
#include "texenvprogram.h"
@@ -250,6 +250,7 @@ update_program(GLcontext *ctx)
const struct gl_shader_program *shProg = ctx->Shader.CurrentProgram;
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;
GLbitfield new_state = 0x0;
/*
@@ -291,6 +292,15 @@ update_program(GLcontext *ctx)
_mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, NULL);
}
+ if (shProg && shProg->LinkStatus && shProg->GeometryProgram) {
+ /* Use shader programs */
+ _mesa_reference_geomprog(ctx, &ctx->GeometryProgram._Current,
+ shProg->GeometryProgram);
+ } else {
+ /* no fragment program */
+ _mesa_reference_geomprog(ctx, &ctx->GeometryProgram._Current, NULL);
+ }
+
/* Examine vertex program after fragment program as
* _mesa_get_fixed_func_vertex_program() needs to know active
* fragprog inputs.
@@ -327,7 +337,15 @@ update_program(GLcontext *ctx)
(struct gl_program *) ctx->FragmentProgram._Current);
}
}
-
+
+ if (ctx->GeometryProgram._Current != prevGP) {
+ new_state |= _NEW_PROGRAM;
+ if (ctx->Driver.BindProgram) {
+ ctx->Driver.BindProgram(ctx, MESA_GEOMETRY_PROGRAM,
+ (struct gl_program *) ctx->GeometryProgram._Current);
+ }
+ }
+
if (ctx->VertexProgram._Current != prevVP) {
new_state |= _NEW_PROGRAM;
if (ctx->Driver.BindProgram) {
@@ -356,6 +374,16 @@ update_program_constants(GLcontext *ctx)
}
}
+ if (ctx->GeometryProgram._Current) {
+ const struct gl_program_parameter_list *params =
+ ctx->GeometryProgram._Current->Base.Parameters;
+ /*FIXME: StateFlags is always 0 because we have unnamed constant
+ * not state changes */
+ if (params /*&& params->StateFlags & ctx->NewState*/) {
+ new_state |= _NEW_PROGRAM_CONSTANTS;
+ }
+ }
+
if (ctx->VertexProgram._Current) {
const struct gl_program_parameter_list *params =
ctx->VertexProgram._Current->Base.Parameters;
@@ -537,7 +565,7 @@ _mesa_update_state_locked( GLcontext *ctx )
/* Determine which state flags effect vertex/fragment program state */
if (ctx->FragmentProgram._MaintainTexEnvProgram) {
- prog_flags |= (_NEW_TEXTURE | _NEW_FOG |
+ prog_flags |= (_NEW_BUFFERS | _NEW_TEXTURE | _NEW_FOG |
_NEW_ARRAY | _NEW_LIGHT | _NEW_POINT | _NEW_RENDERMODE |
_NEW_PROGRAM);
}
diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c
index 964ba13c700..9fa8f02a8b0 100644
--- a/src/mesa/main/texenvprogram.c
+++ b/src/mesa/main/texenvprogram.c
@@ -28,13 +28,13 @@
#include "glheader.h"
#include "imports.h"
-#include "shader/program.h"
-#include "shader/prog_parameter.h"
-#include "shader/prog_cache.h"
-#include "shader/prog_instruction.h"
-#include "shader/prog_print.h"
-#include "shader/prog_statevars.h"
-#include "shader/programopt.h"
+#include "program/program.h"
+#include "program/prog_parameter.h"
+#include "program/prog_cache.h"
+#include "program/prog_instruction.h"
+#include "program/prog_print.h"
+#include "program/prog_statevars.h"
+#include "program/programopt.h"
#include "texenvprogram.h"
@@ -98,6 +98,7 @@ struct state_key {
GLuint fog_enabled:1;
GLuint fog_mode:2; /**< FOG_x */
GLuint inputs_available:12;
+ GLuint num_draw_buffers:4;
/* NOTE: This array of structs must be last! (see "keySize" below) */
struct {
@@ -485,6 +486,9 @@ static GLuint make_state_key( GLcontext *ctx, struct state_key *key )
inputs_referenced |= FRAG_BIT_FOGC; /* maybe */
}
+ /* _NEW_BUFFERS */
+ key->num_draw_buffers = ctx->DrawBuffer->_NumColorDrawBuffers;
+
key->inputs_available = (inputs_available & inputs_referenced);
/* compute size of state key, ignoring unused texture units */
@@ -1199,11 +1203,14 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit)
else
alpha_saturate = GL_FALSE;
- /* If this is the very last calculation, emit direct to output reg:
+ /* If this is the very last calculation (and various other conditions
+ * are met), emit directly to the color output register. Otherwise,
+ * emit to a temporary register.
*/
if (key->separate_specular ||
unit != p->last_tex_stage ||
alpha_shift ||
+ key->num_draw_buffers != 1 ||
rgb_shift)
dest = get_temp( p );
else
@@ -1438,10 +1445,10 @@ create_new_program(GLcontext *ctx, struct state_key *key,
p.program->Base.Parameters = _mesa_new_parameter_list();
p.program->Base.InputsRead = 0x0;
- if (ctx->DrawBuffer->_NumColorDrawBuffers == 1)
+ if (key->num_draw_buffers == 1)
p.program->Base.OutputsWritten = 1 << FRAG_RESULT_COLOR;
else {
- for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++)
+ for (i = 0; i < key->num_draw_buffers; i++)
p.program->Base.OutputsWritten |= (1 << (FRAG_RESULT_DATA0 + i));
}
@@ -1493,8 +1500,8 @@ create_new_program(GLcontext *ctx, struct state_key *key,
cf = get_source( &p, SRC_PREVIOUS, 0 );
- for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) {
- if (ctx->DrawBuffer->_NumColorDrawBuffers == 1)
+ for (i = 0; i < key->num_draw_buffers; i++) {
+ if (key->num_draw_buffers == 1)
out = make_ureg( PROGRAM_OUTPUT, FRAG_RESULT_COLOR );
else {
out = make_ureg( PROGRAM_OUTPUT, FRAG_RESULT_DATA0 + i );
diff --git a/src/mesa/main/texfetch.c b/src/mesa/main/texfetch.c
index 24d29137b0c..fe002082cca 100644
--- a/src/mesa/main/texfetch.c
+++ b/src/mesa/main/texfetch.c
@@ -552,6 +552,54 @@ texfetch_funcs[MESA_FORMAT_COUNT] =
fetch_texel_3d_f_intensity_f16,
store_texel_intensity_f16
},
+
+ /* non-normalized, signed int */
+ {
+ MESA_FORMAT_RGBA_INT8,
+ fetch_texel_1d_rgba_int8,
+ fetch_texel_2d_rgba_int8,
+ fetch_texel_3d_rgba_int8,
+ store_texel_rgba_int8
+ },
+ {
+ MESA_FORMAT_RGBA_INT16,
+ fetch_texel_1d_rgba_int16,
+ fetch_texel_2d_rgba_int16,
+ fetch_texel_3d_rgba_int16,
+ store_texel_rgba_int16
+ },
+ {
+ MESA_FORMAT_RGBA_INT32,
+ fetch_texel_1d_rgba_int32,
+ fetch_texel_2d_rgba_int32,
+ fetch_texel_3d_rgba_int32,
+ store_texel_rgba_int32
+ },
+
+ /* non-normalized, unsigned int */
+ {
+ MESA_FORMAT_RGBA_UINT8,
+ fetch_texel_1d_rgba_uint8,
+ fetch_texel_2d_rgba_uint8,
+ fetch_texel_3d_rgba_uint8,
+ store_texel_rgba_uint8
+ },
+ {
+ MESA_FORMAT_RGBA_UINT16,
+ fetch_texel_1d_rgba_uint16,
+ fetch_texel_2d_rgba_uint16,
+ fetch_texel_3d_rgba_uint16,
+ store_texel_rgba_uint16
+ },
+ {
+ MESA_FORMAT_RGBA_UINT32,
+ fetch_texel_1d_rgba_uint32,
+ fetch_texel_2d_rgba_uint32,
+ fetch_texel_3d_rgba_uint32,
+ store_texel_rgba_uint32
+ },
+
+ /* dudv */
{
MESA_FORMAT_DUDV8,
fetch_texel_1d_dudv8,
@@ -559,6 +607,8 @@ texfetch_funcs[MESA_FORMAT_COUNT] =
fetch_texel_3d_dudv8,
NULL
},
+
+ /* signed, normalized */
{
MESA_FORMAT_SIGNED_R8,
fetch_texel_1d_signed_r8,
diff --git a/src/mesa/main/texfetch_tmp.h b/src/mesa/main/texfetch_tmp.h
index e51fe3a5773..f943554370f 100644
--- a/src/mesa/main/texfetch_tmp.h
+++ b/src/mesa/main/texfetch_tmp.h
@@ -1195,6 +1195,174 @@ static void store_texel_sla8(struct gl_texture_image *texImage,
#endif
+/* MESA_FORMAT_RGBA_INT8 **************************************************/
+
+static void
+FETCH(rgba_int8)(const struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, GLfloat *texel )
+{
+ const GLbyte *src = TEXEL_ADDR(GLbyte, texImage, i, j, k, 4);
+ texel[RCOMP] = (GLfloat) src[0];
+ texel[GCOMP] = (GLfloat) src[1];
+ texel[BCOMP] = (GLfloat) src[2];
+ texel[ACOMP] = (GLfloat) src[3];
+}
+
+#if DIM == 3
+static void
+store_texel_rgba_int8(struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, const void *texel)
+{
+ const GLbyte *rgba = (const GLbyte *) texel;
+ GLbyte *dst = TEXEL_ADDR(GLbyte, texImage, i, j, k, 4);
+ dst[0] = rgba[RCOMP];
+ dst[1] = rgba[GCOMP];
+ dst[2] = rgba[BCOMP];
+ dst[3] = rgba[ACOMP];
+}
+#endif
+
+
+/* MESA_FORMAT_RGBA_INT16 **************************************************/
+
+static void
+FETCH(rgba_int16)(const struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, GLfloat *texel )
+{
+ const GLshort *src = TEXEL_ADDR(GLshort, texImage, i, j, k, 4);
+ texel[RCOMP] = (GLfloat) src[0];
+ texel[GCOMP] = (GLfloat) src[1];
+ texel[BCOMP] = (GLfloat) src[2];
+ texel[ACOMP] = (GLfloat) src[3];
+}
+
+#if DIM == 3
+static void
+store_texel_rgba_int16(struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, const void *texel)
+{
+ const GLshort *rgba = (const GLshort *) texel;
+ GLshort *dst = TEXEL_ADDR(GLshort, texImage, i, j, k, 4);
+ dst[0] = rgba[RCOMP];
+ dst[1] = rgba[GCOMP];
+ dst[2] = rgba[BCOMP];
+ dst[3] = rgba[ACOMP];
+}
+#endif
+
+
+/* MESA_FORMAT_RGBA_INT32 **************************************************/
+
+static void
+FETCH(rgba_int32)(const struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, GLfloat *texel )
+{
+ const GLint *src = TEXEL_ADDR(GLint, texImage, i, j, k, 4);
+ texel[RCOMP] = (GLfloat) src[0];
+ texel[GCOMP] = (GLfloat) src[1];
+ texel[BCOMP] = (GLfloat) src[2];
+ texel[ACOMP] = (GLfloat) src[3];
+}
+
+#if DIM == 3
+static void
+store_texel_rgba_int32(struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, const void *texel)
+{
+ const GLint *rgba = (const GLint *) texel;
+ GLint *dst = TEXEL_ADDR(GLint, texImage, i, j, k, 4);
+ dst[0] = rgba[RCOMP];
+ dst[1] = rgba[GCOMP];
+ dst[2] = rgba[BCOMP];
+ dst[3] = rgba[ACOMP];
+}
+#endif
+
+
+/* MESA_FORMAT_RGBA_UINT8 **************************************************/
+
+static void
+FETCH(rgba_uint8)(const struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, GLfloat *texel )
+{
+ const GLubyte *src = TEXEL_ADDR(GLubyte, texImage, i, j, k, 4);
+ texel[RCOMP] = (GLfloat) src[0];
+ texel[GCOMP] = (GLfloat) src[1];
+ texel[BCOMP] = (GLfloat) src[2];
+ texel[ACOMP] = (GLfloat) src[3];
+}
+
+#if DIM == 3
+static void
+store_texel_rgba_uint8(struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, const void *texel)
+{
+ const GLubyte *rgba = (const GLubyte *) texel;
+ GLubyte *dst = TEXEL_ADDR(GLubyte, texImage, i, j, k, 4);
+ dst[0] = rgba[RCOMP];
+ dst[1] = rgba[GCOMP];
+ dst[2] = rgba[BCOMP];
+ dst[3] = rgba[ACOMP];
+}
+#endif
+
+
+/* MESA_FORMAT_RGBA_UINT16 **************************************************/
+
+static void
+FETCH(rgba_uint16)(const struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, GLfloat *texel )
+{
+ const GLushort *src = TEXEL_ADDR(GLushort, texImage, i, j, k, 4);
+ texel[RCOMP] = (GLfloat) src[0];
+ texel[GCOMP] = (GLfloat) src[1];
+ texel[BCOMP] = (GLfloat) src[2];
+ texel[ACOMP] = (GLfloat) src[3];
+}
+
+#if DIM == 3
+static void
+store_texel_rgba_uint16(struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, const void *texel)
+{
+ const GLushort *rgba = (const GLushort *) texel;
+ GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 4);
+ dst[0] = rgba[RCOMP];
+ dst[1] = rgba[GCOMP];
+ dst[2] = rgba[BCOMP];
+ dst[3] = rgba[ACOMP];
+}
+#endif
+
+
+/* MESA_FORMAT_RGBA_UINT32 **************************************************/
+
+static void
+FETCH(rgba_uint32)(const struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, GLfloat *texel )
+{
+ const GLuint *src = TEXEL_ADDR(GLuint, texImage, i, j, k, 4);
+ texel[RCOMP] = (GLfloat) src[0];
+ texel[GCOMP] = (GLfloat) src[1];
+ texel[BCOMP] = (GLfloat) src[2];
+ texel[ACOMP] = (GLfloat) src[3];
+}
+
+#if DIM == 3
+static void
+store_texel_rgba_uint32(struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, const void *texel)
+{
+ const GLuint *rgba = (const GLuint *) texel;
+ GLuint *dst = TEXEL_ADDR(GLuint, texImage, i, j, k, 4);
+ dst[0] = rgba[RCOMP];
+ dst[1] = rgba[GCOMP];
+ dst[2] = rgba[BCOMP];
+ dst[3] = rgba[ACOMP];
+}
+#endif
+
+
/* MESA_FORMAT_DUDV8 ********************************************************/
/* this format by definition produces 0,0,0,1 as rgba values,
diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
index d235485721a..b9271ef58ef 100644
--- a/src/mesa/main/texformat.c
+++ b/src/mesa/main/texformat.c
@@ -382,6 +382,53 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
}
#endif /* FEATURE_EXT_texture_sRGB */
+ if (ctx->Extensions.EXT_texture_integer) {
+ switch (internalFormat) {
+ 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:
+ return MESA_FORMAT_RGBA_UINT32;
+ case GL_RGBA16UI_EXT:
+ case GL_RGB16UI_EXT:
+ case GL_ALPHA16UI_EXT:
+ case GL_INTENSITY16UI_EXT:
+ case GL_LUMINANCE16UI_EXT:
+ case GL_LUMINANCE_ALPHA16UI_EXT:
+ return MESA_FORMAT_RGBA_UINT16;
+ case GL_RGBA8UI_EXT:
+ case GL_RGB8UI_EXT:
+ case GL_ALPHA8UI_EXT:
+ case GL_INTENSITY8UI_EXT:
+ case GL_LUMINANCE8UI_EXT:
+ case GL_LUMINANCE_ALPHA8UI_EXT:
+ return MESA_FORMAT_RGBA_UINT8;
+ case GL_RGBA32I_EXT:
+ case GL_RGB32I_EXT:
+ case GL_ALPHA32I_EXT:
+ case GL_INTENSITY32I_EXT:
+ case GL_LUMINANCE32I_EXT:
+ case GL_LUMINANCE_ALPHA32I_EXT:
+ return MESA_FORMAT_RGBA_INT32;
+ case GL_RGBA16I_EXT:
+ case GL_RGB16I_EXT:
+ case GL_ALPHA16I_EXT:
+ case GL_INTENSITY16I_EXT:
+ case GL_LUMINANCE16I_EXT:
+ case GL_LUMINANCE_ALPHA16I_EXT:
+ return MESA_FORMAT_RGBA_INT16;
+ case GL_RGBA8I_EXT:
+ case GL_RGB8I_EXT:
+ case GL_ALPHA8I_EXT:
+ case GL_INTENSITY8I_EXT:
+ case GL_LUMINANCE8I_EXT:
+ case GL_LUMINANCE_ALPHA8I_EXT:
+ return MESA_FORMAT_RGBA_INT8;
+ }
+ }
+
_mesa_problem(ctx, "unexpected format in _mesa_choose_tex_format()");
return MESA_FORMAT_NONE;
}
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index ff752155ea9..9b7a0215619 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -348,12 +348,135 @@ _mesa_base_tex_format( GLcontext *ctx, GLint internalFormat )
case GL_SLUMINANCE8_EXT:
return GL_LUMINANCE;
default:
- ; /* fallthrough */
+ ; /* fallthrough */
}
}
-
#endif /* FEATURE_EXT_texture_sRGB */
+ if (ctx->Extensions.EXT_texture_integer) {
+ switch (internalFormat) {
+ case GL_RGBA8UI_EXT:
+ case GL_RGBA16UI_EXT:
+ case GL_RGBA32UI_EXT:
+ case GL_RGBA8I_EXT:
+ case GL_RGBA16I_EXT:
+ case GL_RGBA32I_EXT:
+ return GL_RGBA;
+ case GL_RGB8UI_EXT:
+ case GL_RGB16UI_EXT:
+ case GL_RGB32UI_EXT:
+ case GL_RGB8I_EXT:
+ case GL_RGB16I_EXT:
+ case GL_RGB32I_EXT:
+ return GL_RGB;
+ case GL_ALPHA8UI_EXT:
+ case GL_ALPHA16UI_EXT:
+ case GL_ALPHA32UI_EXT:
+ case GL_ALPHA8I_EXT:
+ case GL_ALPHA16I_EXT:
+ case GL_ALPHA32I_EXT:
+ return GL_ALPHA;
+ case GL_INTENSITY8UI_EXT:
+ case GL_INTENSITY16UI_EXT:
+ case GL_INTENSITY32UI_EXT:
+ case GL_INTENSITY8I_EXT:
+ case GL_INTENSITY16I_EXT:
+ case GL_INTENSITY32I_EXT:
+ return GL_INTENSITY;
+ case GL_LUMINANCE8UI_EXT:
+ case GL_LUMINANCE16UI_EXT:
+ case GL_LUMINANCE32UI_EXT:
+ case GL_LUMINANCE8I_EXT:
+ case GL_LUMINANCE16I_EXT:
+ case GL_LUMINANCE32I_EXT:
+ return GL_LUMINANCE;
+ case GL_LUMINANCE_ALPHA8UI_EXT:
+ case GL_LUMINANCE_ALPHA16UI_EXT:
+ case GL_LUMINANCE_ALPHA32UI_EXT:
+ case GL_LUMINANCE_ALPHA8I_EXT:
+ case GL_LUMINANCE_ALPHA16I_EXT:
+ case GL_LUMINANCE_ALPHA32I_EXT:
+ return GL_LUMINANCE_ALPHA;
+ default:
+ ; /* fallthrough */
+ }
+ }
+
+ if (ctx->Extensions.ARB_texture_rg) {
+ switch (internalFormat) {
+ case GL_R8:
+ case GL_R16:
+ case GL_R16F:
+ case GL_R32F:
+ case GL_R8I:
+ case GL_R8UI:
+ case GL_R16I:
+ case GL_R16UI:
+ case GL_R32I:
+ case GL_R32UI:
+ return GL_R;
+ case GL_RG:
+ case GL_RG_INTEGER:
+ case GL_RG8:
+ case GL_RG16:
+ case GL_RG16F:
+ case GL_RG32F:
+ case GL_RG8I:
+ case GL_RG8UI:
+ case GL_RG16I:
+ case GL_RG16UI:
+ case GL_RG32I:
+ case GL_RG32UI:
+ return GL_RG;
+ default:
+ ; /* fallthrough */
+ }
+ }
+
+ if (ctx->Extensions.EXT_texture_shared_exponent) {
+ switch (internalFormat) {
+ case GL_RGB9_E5_EXT:
+ return GL_RGB;
+ default:
+ ; /* fallthrough */
+ }
+ }
+
+ if (ctx->Extensions.EXT_packed_float) {
+ switch (internalFormat) {
+ case GL_R11F_G11F_B10F_EXT:
+ return GL_RGB;
+ default:
+ ; /* fallthrough */
+ }
+ }
+
+ if (ctx->Extensions.ARB_depth_buffer_float) {
+ switch (internalFormat) {
+ case GL_DEPTH_COMPONENT32F:
+ return GL_DEPTH_COMPONENT;
+ case GL_DEPTH32F_STENCIL8:
+ return GL_DEPTH_STENCIL;
+ default:
+ ; /* fallthrough */
+ }
+ }
+
+ if (ctx->Extensions.EXT_texture_compression_rgtc) {
+ switch (internalFormat) {
+ case GL_COMPRESSED_RED:
+ case GL_COMPRESSED_RED_RGTC1_EXT:
+ case GL_COMPRESSED_SIGNED_RED_RGTC1_EXT:
+ return GL_RED;
+ case GL_COMPRESSED_RG:
+ case GL_COMPRESSED_RED_GREEN_RGTC2_EXT:
+ case GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:
+ return GL_RG;
+ default:
+ ; /* fallthrough */
+ }
+ }
+
return -1; /* error */
}
@@ -2060,6 +2183,45 @@ override_internal_format(GLenum internalFormat, GLint width, GLint height)
}
+/**
+ * Choose the actual hardware format for a texture image.
+ * Try to use the same format as the previous image level when possible.
+ * Otherwise, ask the driver for the best format.
+ * It's important to try to choose a consistant format for all levels
+ * for efficient texture memory layout/allocation. In particular, this
+ * comes up during automatic mipmap generation.
+ */
+void
+_mesa_choose_texture_format(GLcontext *ctx,
+ struct gl_texture_object *texObj,
+ struct gl_texture_image *texImage,
+ GLenum target, GLint level,
+ GLenum internalFormat, GLenum format, GLenum type)
+{
+ /* see if we've already chosen a format for the previous level */
+ if (level > 0) {
+ struct gl_texture_image *prevImage =
+ _mesa_select_tex_image(ctx, texObj, target, level - 1);
+ /* See if the prev level is defined and has an internal format which
+ * matches the new internal format.
+ */
+ if (prevImage &&
+ prevImage->Width > 0 &&
+ prevImage->InternalFormat == internalFormat) {
+ /* use the same format */
+ texImage->TexFormat = prevImage->TexFormat;
+ return;
+ }
+ }
+
+ /* choose format from scratch */
+ texImage->TexFormat = ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
+ format, type);
+ ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+}
+
+
+
/*
* Called from the API. Note that width includes the border.
*/
@@ -2120,11 +2282,8 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat,
postConvWidth, 1, 1,
border, internalFormat);
- /* Choose actual texture format */
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
- format, type);
- ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, format, type);
/* Give the texture to the driver. <pixels> may be null. */
ASSERT(ctx->Driver.TexImage1D);
@@ -2159,12 +2318,14 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat,
}
else {
/* no error, set the tex image parameters */
+ struct gl_texture_object *texObj =
+ _mesa_get_current_tex_object(ctx, target);
ASSERT(texImage);
_mesa_init_teximage_fields(ctx, target, texImage,
postConvWidth, 1, 1,
border, internalFormat);
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat, format, type);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, format, type);
}
}
else {
@@ -2240,11 +2401,8 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
postConvWidth, postConvHeight, 1,
border, internalFormat);
- /* Choose actual texture format */
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
- format, type);
- ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, format, type);
/* Give the texture to the driver. <pixels> may be null. */
ASSERT(ctx->Driver.TexImage2D);
@@ -2286,11 +2444,13 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
}
else {
/* no error, set the tex image parameters */
+ struct gl_texture_object *texObj =
+ _mesa_get_current_tex_object(ctx, target);
_mesa_init_teximage_fields(ctx, target, texImage,
postConvWidth, postConvHeight, 1,
border, internalFormat);
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat, format, type);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, format, type);
}
}
else {
@@ -2356,11 +2516,8 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat,
width, height, depth,
border, internalFormat);
- /* Choose actual texture format */
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
- format, type);
- ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, format, type);
/* Give the texture to the driver. <pixels> may be null. */
ASSERT(ctx->Driver.TexImage3D);
@@ -2397,10 +2554,12 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat,
}
else {
/* no error, set the tex image parameters */
+ struct gl_texture_object *texObj =
+ _mesa_get_current_tex_object(ctx, target);
_mesa_init_teximage_fields(ctx, target, texImage, width, height,
depth, border, internalFormat);
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat, format, type);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, format, type);
}
}
else {
@@ -2713,11 +2872,8 @@ _mesa_CopyTexImage1D( GLenum target, GLint level,
_mesa_init_teximage_fields(ctx, target, texImage, postConvWidth, 1, 1,
border, internalFormat);
- /* Choose actual texture format */
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
- GL_NONE, GL_NONE);
- ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, GL_NONE, GL_NONE);
ASSERT(ctx->Driver.CopyTexImage1D);
ctx->Driver.CopyTexImage1D(ctx, target, level, internalFormat,
@@ -2794,11 +2950,8 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat,
postConvWidth, postConvHeight, 1,
border, internalFormat);
- /* Choose actual texture format */
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
- GL_NONE, GL_NONE);
- ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, GL_NONE, GL_NONE);
ASSERT(ctx->Driver.CopyTexImage2D);
ctx->Driver.CopyTexImage2D(ctx, target, level, internalFormat,
@@ -3082,6 +3235,10 @@ compressed_texture_error_check(GLcontext *ctx, GLint dimensions,
/* 3D compressed textures not allowed */
return GL_INVALID_ENUM;
}
+ else {
+ assert(0);
+ return GL_INVALID_ENUM;
+ }
maxTextureSize = 1 << (maxLevels - 1);
@@ -3319,11 +3476,8 @@ _mesa_CompressedTexImage1DARB(GLenum target, GLint level,
_mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1,
border, internalFormat);
- /* Choose actual texture format */
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
- GL_NONE, GL_NONE);
- ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, GL_NONE, GL_NONE);
ASSERT(ctx->Driver.CompressedTexImage1D);
ctx->Driver.CompressedTexImage1D(ctx, target, level,
@@ -3371,6 +3525,8 @@ _mesa_CompressedTexImage1DARB(GLenum target, GLint level,
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
_mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1,
border, internalFormat);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, GL_NONE, GL_NONE);
}
_mesa_unlock_texture(ctx, texObj);
}
@@ -3446,11 +3602,8 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level,
_mesa_init_teximage_fields(ctx, target, texImage, width, height, 1,
border, internalFormat);
- /* Choose actual texture format */
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
- GL_NONE, GL_NONE);
- ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, GL_NONE, GL_NONE);
ASSERT(ctx->Driver.CompressedTexImage2D);
ctx->Driver.CompressedTexImage2D(ctx, target, level,
@@ -3500,6 +3653,8 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level,
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
_mesa_init_teximage_fields(ctx, target, texImage, width, height, 1,
border, internalFormat);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, GL_NONE, GL_NONE);
}
_mesa_unlock_texture(ctx, texObj);
}
@@ -3556,10 +3711,8 @@ _mesa_CompressedTexImage3DARB(GLenum target, GLint level,
border, internalFormat);
/* Choose actual texture format */
- texImage->TexFormat =
- ctx->Driver.ChooseTextureFormat(ctx, internalFormat,
- GL_NONE, GL_NONE);
- ASSERT(texImage->TexFormat != MESA_FORMAT_NONE);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, GL_NONE, GL_NONE);
ASSERT(ctx->Driver.CompressedTexImage3D);
ctx->Driver.CompressedTexImage3D(ctx, target, level,
@@ -3608,6 +3761,8 @@ _mesa_CompressedTexImage3DARB(GLenum target, GLint level,
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
_mesa_init_teximage_fields(ctx, target, texImage, width, height,
depth, border, internalFormat);
+ _mesa_choose_texture_format(ctx, texObj, texImage, target, level,
+ internalFormat, GL_NONE, GL_NONE);
}
_mesa_unlock_texture(ctx, texObj);
}
diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h
index d82cc985211..0dcacab3cd0 100644
--- a/src/mesa/main/teximage.h
+++ b/src/mesa/main/teximage.h
@@ -73,6 +73,14 @@ _mesa_init_teximage_fields(GLcontext *ctx, GLenum target,
extern void
+_mesa_choose_texture_format(GLcontext *ctx,
+ struct gl_texture_object *texObj,
+ struct gl_texture_image *texImage,
+ GLenum target, GLint level,
+ GLenum internalFormat, GLenum format, GLenum type);
+
+
+extern void
_mesa_clear_texture_image(GLcontext *ctx, struct gl_texture_image *texImage);
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index de37e340393..1df165cf6a8 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -40,7 +40,7 @@
#include "teximage.h"
#include "texobj.h"
#include "mtypes.h"
-#include "shader/prog_instruction.h"
+#include "program/prog_instruction.h"
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index ca03404f12f..745a0aeec9d 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -39,7 +39,7 @@
#include "main/texparam.h"
#include "main/teximage.h"
#include "main/texstate.h"
-#include "shader/prog_instruction.h"
+#include "program/prog_instruction.h"
/**
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index fce17c2b660..dae173d1bde 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -528,7 +528,7 @@ update_texture_state( GLcontext *ctx )
/* Get the bitmask of texture target enables.
* enableBits will be a mask of the TEXTURE_*_BIT flags indicating
* which texture targets are enabled (fixed function) or referenced
- * by a fragment shader/program. When multiple flags are set, we'll
+ * by a fragment program/program. When multiple flags are set, we'll
* settle on the one with highest priority (see below).
*/
if (vprog) {
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index ce05652c935..0f21395af39 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -3278,6 +3278,392 @@ _mesa_texstore_rgba_float16(TEXSTORE_PARAMS)
}
+/* non-normalized, signed int8 */
+static GLboolean
+_mesa_texstore_rgba_int8(TEXSTORE_PARAMS)
+{
+ const GLuint texelBytes = _mesa_get_format_bytes(dstFormat);
+ const GLenum baseFormat = _mesa_get_format_base_format(dstFormat);
+ const GLint components = _mesa_components_in_format(baseFormat);
+
+ ASSERT(dstFormat == MESA_FORMAT_RGBA_INT8);
+ ASSERT(baseInternalFormat == GL_RGBA ||
+ baseInternalFormat == GL_RGB ||
+ baseInternalFormat == GL_ALPHA ||
+ baseInternalFormat == GL_LUMINANCE ||
+ baseInternalFormat == GL_LUMINANCE_ALPHA ||
+ baseInternalFormat == GL_INTENSITY);
+ ASSERT(texelBytes == components * sizeof(GLbyte));
+
+ if (!ctx->_ImageTransferState &&
+ !srcPacking->SwapBytes &&
+ baseInternalFormat == srcFormat &&
+ srcType == GL_BYTE) {
+ /* simple memcpy path */
+ memcpy_texture(ctx, dims,
+ dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
+ dstRowStride,
+ dstImageOffsets,
+ srcWidth, srcHeight, srcDepth, srcFormat, srcType,
+ srcAddr, srcPacking);
+ }
+ else {
+ /* general path */
+ const GLfloat *tempImage = make_temp_float_image(ctx, dims,
+ baseInternalFormat,
+ baseFormat,
+ srcWidth, srcHeight, srcDepth,
+ srcFormat, srcType, srcAddr,
+ srcPacking);
+ const GLfloat *src = tempImage;
+ GLint img, row;
+ if (!tempImage)
+ return GL_FALSE;
+ _mesa_adjust_image_for_convolution(ctx, dims, &srcWidth, &srcHeight);
+ for (img = 0; img < srcDepth; img++) {
+ GLubyte *dstRow = (GLubyte *) dstAddr
+ + dstImageOffsets[dstZoffset + img] * texelBytes
+ + dstYoffset * dstRowStride
+ + dstXoffset * texelBytes;
+ for (row = 0; row < srcHeight; row++) {
+ GLbyte *dstTexel = (GLbyte *) dstRow;
+ GLint i;
+ for (i = 0; i < srcWidth * components; i++) {
+ dstTexel[i] = (GLbyte) src[i];
+ }
+ dstRow += dstRowStride;
+ src += srcWidth * components;
+ }
+ }
+
+ free((void *) tempImage);
+ }
+ return GL_TRUE;
+}
+
+
+/* non-normalized, signed int16 */
+static GLboolean
+_mesa_texstore_rgba_int16(TEXSTORE_PARAMS)
+{
+ const GLuint texelBytes = _mesa_get_format_bytes(dstFormat);
+ const GLenum baseFormat = _mesa_get_format_base_format(dstFormat);
+ const GLint components = _mesa_components_in_format(baseFormat);
+
+ ASSERT(dstFormat == MESA_FORMAT_RGBA_INT16);
+ ASSERT(baseInternalFormat == GL_RGBA ||
+ baseInternalFormat == GL_RGB ||
+ baseInternalFormat == GL_ALPHA ||
+ baseInternalFormat == GL_LUMINANCE ||
+ baseInternalFormat == GL_LUMINANCE_ALPHA ||
+ baseInternalFormat == GL_INTENSITY);
+ ASSERT(texelBytes == components * sizeof(GLshort));
+
+ if (!ctx->_ImageTransferState &&
+ !srcPacking->SwapBytes &&
+ baseInternalFormat == srcFormat &&
+ srcType == GL_INT) {
+ /* simple memcpy path */
+ memcpy_texture(ctx, dims,
+ dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
+ dstRowStride,
+ dstImageOffsets,
+ srcWidth, srcHeight, srcDepth, srcFormat, srcType,
+ srcAddr, srcPacking);
+ }
+ else {
+ /* general path */
+ const GLfloat *tempImage = make_temp_float_image(ctx, dims,
+ baseInternalFormat,
+ baseFormat,
+ srcWidth, srcHeight, srcDepth,
+ srcFormat, srcType, srcAddr,
+ srcPacking);
+ const GLfloat *src = tempImage;
+ GLint img, row;
+ if (!tempImage)
+ return GL_FALSE;
+ _mesa_adjust_image_for_convolution(ctx, dims, &srcWidth, &srcHeight);
+ for (img = 0; img < srcDepth; img++) {
+ GLubyte *dstRow = (GLubyte *) dstAddr
+ + dstImageOffsets[dstZoffset + img] * texelBytes
+ + dstYoffset * dstRowStride
+ + dstXoffset * texelBytes;
+ for (row = 0; row < srcHeight; row++) {
+ GLshort *dstTexel = (GLshort *) dstRow;
+ GLint i;
+ for (i = 0; i < srcWidth * components; i++) {
+ dstTexel[i] = (GLint) src[i];
+ }
+ dstRow += dstRowStride;
+ src += srcWidth * components;
+ }
+ }
+
+ free((void *) tempImage);
+ }
+ return GL_TRUE;
+}
+
+
+/* non-normalized, signed int32 */
+static GLboolean
+_mesa_texstore_rgba_int32(TEXSTORE_PARAMS)
+{
+ const GLuint texelBytes = _mesa_get_format_bytes(dstFormat);
+ const GLenum baseFormat = _mesa_get_format_base_format(dstFormat);
+ const GLint components = _mesa_components_in_format(baseFormat);
+
+ ASSERT(dstFormat == MESA_FORMAT_RGBA_INT32);
+ ASSERT(baseInternalFormat == GL_RGBA ||
+ baseInternalFormat == GL_RGB ||
+ baseInternalFormat == GL_ALPHA ||
+ baseInternalFormat == GL_LUMINANCE ||
+ baseInternalFormat == GL_LUMINANCE_ALPHA ||
+ baseInternalFormat == GL_INTENSITY);
+ ASSERT(texelBytes == components * sizeof(GLint));
+
+ if (!ctx->_ImageTransferState &&
+ !srcPacking->SwapBytes &&
+ baseInternalFormat == srcFormat &&
+ srcType == GL_INT) {
+ /* simple memcpy path */
+ memcpy_texture(ctx, dims,
+ dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
+ dstRowStride,
+ dstImageOffsets,
+ srcWidth, srcHeight, srcDepth, srcFormat, srcType,
+ srcAddr, srcPacking);
+ }
+ else {
+ /* general path */
+ const GLfloat *tempImage = make_temp_float_image(ctx, dims,
+ baseInternalFormat,
+ baseFormat,
+ srcWidth, srcHeight, srcDepth,
+ srcFormat, srcType, srcAddr,
+ srcPacking);
+ const GLfloat *src = tempImage;
+ GLint img, row;
+ if (!tempImage)
+ return GL_FALSE;
+ _mesa_adjust_image_for_convolution(ctx, dims, &srcWidth, &srcHeight);
+ for (img = 0; img < srcDepth; img++) {
+ GLubyte *dstRow = (GLubyte *) dstAddr
+ + dstImageOffsets[dstZoffset + img] * texelBytes
+ + dstYoffset * dstRowStride
+ + dstXoffset * texelBytes;
+ for (row = 0; row < srcHeight; row++) {
+ GLint *dstTexel = (GLint *) dstRow;
+ GLint i;
+ for (i = 0; i < srcWidth * components; i++) {
+ dstTexel[i] = (GLint) src[i];
+ }
+ dstRow += dstRowStride;
+ src += srcWidth * components;
+ }
+ }
+
+ free((void *) tempImage);
+ }
+ return GL_TRUE;
+}
+
+
+/* non-normalized, unsigned int8 */
+static GLboolean
+_mesa_texstore_rgba_uint8(TEXSTORE_PARAMS)
+{
+ const GLuint texelBytes = _mesa_get_format_bytes(dstFormat);
+ const GLenum baseFormat = _mesa_get_format_base_format(dstFormat);
+ const GLint components = _mesa_components_in_format(baseFormat);
+
+ ASSERT(dstFormat == MESA_FORMAT_RGBA_UINT8);
+ ASSERT(baseInternalFormat == GL_RGBA ||
+ baseInternalFormat == GL_RGB ||
+ baseInternalFormat == GL_ALPHA ||
+ baseInternalFormat == GL_LUMINANCE ||
+ baseInternalFormat == GL_LUMINANCE_ALPHA ||
+ baseInternalFormat == GL_INTENSITY);
+ ASSERT(texelBytes == components * sizeof(GLubyte));
+
+ 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 {
+ /* general path */
+ const GLfloat *tempImage = make_temp_float_image(ctx, dims,
+ baseInternalFormat,
+ baseFormat,
+ srcWidth, srcHeight, srcDepth,
+ srcFormat, srcType, srcAddr,
+ srcPacking);
+ const GLfloat *src = tempImage;
+ GLint img, row;
+ if (!tempImage)
+ return GL_FALSE;
+ _mesa_adjust_image_for_convolution(ctx, dims, &srcWidth, &srcHeight);
+ for (img = 0; img < srcDepth; img++) {
+ GLubyte *dstRow = (GLubyte *) dstAddr
+ + dstImageOffsets[dstZoffset + img] * texelBytes
+ + dstYoffset * dstRowStride
+ + dstXoffset * texelBytes;
+ for (row = 0; row < srcHeight; row++) {
+ GLubyte *dstTexel = (GLubyte *) dstRow;
+ GLint i;
+ for (i = 0; i < srcWidth * components; i++) {
+ dstTexel[i] = (GLubyte) src[i];
+ }
+ dstRow += dstRowStride;
+ src += srcWidth * components;
+ }
+ }
+
+ free((void *) tempImage);
+ }
+ return GL_TRUE;
+}
+
+
+/* non-normalized, unsigned int16 */
+static GLboolean
+_mesa_texstore_rgba_uint16(TEXSTORE_PARAMS)
+{
+ const GLuint texelBytes = _mesa_get_format_bytes(dstFormat);
+ const GLenum baseFormat = _mesa_get_format_base_format(dstFormat);
+ const GLint components = _mesa_components_in_format(baseFormat);
+
+ ASSERT(dstFormat == MESA_FORMAT_RGBA_UINT16);
+ ASSERT(baseInternalFormat == GL_RGBA ||
+ baseInternalFormat == GL_RGB ||
+ baseInternalFormat == GL_ALPHA ||
+ baseInternalFormat == GL_LUMINANCE ||
+ baseInternalFormat == GL_LUMINANCE_ALPHA ||
+ baseInternalFormat == GL_INTENSITY);
+ ASSERT(texelBytes == components * sizeof(GLushort));
+
+ if (!ctx->_ImageTransferState &&
+ !srcPacking->SwapBytes &&
+ baseInternalFormat == srcFormat &&
+ srcType == GL_UNSIGNED_SHORT) {
+ /* simple memcpy path */
+ memcpy_texture(ctx, dims,
+ dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
+ dstRowStride,
+ dstImageOffsets,
+ srcWidth, srcHeight, srcDepth, srcFormat, srcType,
+ srcAddr, srcPacking);
+ }
+ else {
+ /* general path */
+ const GLfloat *tempImage = make_temp_float_image(ctx, dims,
+ baseInternalFormat,
+ baseFormat,
+ srcWidth, srcHeight, srcDepth,
+ srcFormat, srcType, srcAddr,
+ srcPacking);
+ const GLfloat *src = tempImage;
+ GLint img, row;
+ if (!tempImage)
+ return GL_FALSE;
+ _mesa_adjust_image_for_convolution(ctx, dims, &srcWidth, &srcHeight);
+ for (img = 0; img < srcDepth; img++) {
+ GLubyte *dstRow = (GLubyte *) dstAddr
+ + dstImageOffsets[dstZoffset + img] * texelBytes
+ + dstYoffset * dstRowStride
+ + dstXoffset * texelBytes;
+ for (row = 0; row < srcHeight; row++) {
+ GLushort *dstTexel = (GLushort *) dstRow;
+ GLint i;
+ for (i = 0; i < srcWidth * components; i++) {
+ dstTexel[i] = (GLushort) src[i];
+ }
+ dstRow += dstRowStride;
+ src += srcWidth * components;
+ }
+ }
+
+ free((void *) tempImage);
+ }
+ return GL_TRUE;
+}
+
+
+/* non-normalized, unsigned int32 */
+static GLboolean
+_mesa_texstore_rgba_uint32(TEXSTORE_PARAMS)
+{
+ const GLuint texelBytes = _mesa_get_format_bytes(dstFormat);
+ const GLenum baseFormat = _mesa_get_format_base_format(dstFormat);
+ const GLint components = _mesa_components_in_format(baseFormat);
+
+ ASSERT(dstFormat == MESA_FORMAT_RGBA_UINT32);
+ ASSERT(baseInternalFormat == GL_RGBA ||
+ baseInternalFormat == GL_RGB ||
+ baseInternalFormat == GL_ALPHA ||
+ baseInternalFormat == GL_LUMINANCE ||
+ baseInternalFormat == GL_LUMINANCE_ALPHA ||
+ baseInternalFormat == GL_INTENSITY);
+ ASSERT(texelBytes == components * sizeof(GLuint));
+
+ if (!ctx->_ImageTransferState &&
+ !srcPacking->SwapBytes &&
+ baseInternalFormat == srcFormat &&
+ srcType == GL_UNSIGNED_INT) {
+ /* simple memcpy path */
+ memcpy_texture(ctx, dims,
+ dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
+ dstRowStride,
+ dstImageOffsets,
+ srcWidth, srcHeight, srcDepth, srcFormat, srcType,
+ srcAddr, srcPacking);
+ }
+ else {
+ /* general path */
+ const GLfloat *tempImage = make_temp_float_image(ctx, dims,
+ baseInternalFormat,
+ baseFormat,
+ srcWidth, srcHeight, srcDepth,
+ srcFormat, srcType, srcAddr,
+ srcPacking);
+ const GLfloat *src = tempImage;
+ GLint img, row;
+ if (!tempImage)
+ return GL_FALSE;
+ _mesa_adjust_image_for_convolution(ctx, dims, &srcWidth, &srcHeight);
+ for (img = 0; img < srcDepth; img++) {
+ GLubyte *dstRow = (GLubyte *) dstAddr
+ + dstImageOffsets[dstZoffset + img] * texelBytes
+ + dstYoffset * dstRowStride
+ + dstXoffset * texelBytes;
+ for (row = 0; row < srcHeight; row++) {
+ GLuint *dstTexel = (GLuint *) dstRow;
+ GLint i;
+ for (i = 0; i < srcWidth * components; i++) {
+ dstTexel[i] = (GLuint) src[i];
+ }
+ dstRow += dstRowStride;
+ src += srcWidth * components;
+ }
+ }
+
+ free((void *) tempImage);
+ }
+ return GL_TRUE;
+}
+
+
+
+
#if FEATURE_EXT_texture_sRGB
static GLboolean
_mesa_texstore_srgb8(TEXSTORE_PARAMS)
@@ -3472,6 +3858,14 @@ texstore_funcs[MESA_FORMAT_COUNT] =
{ MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16, _mesa_texstore_rgba_float16 },
{ MESA_FORMAT_INTENSITY_FLOAT32, _mesa_texstore_rgba_float32 },
{ MESA_FORMAT_INTENSITY_FLOAT16, _mesa_texstore_rgba_float16 },
+
+ { MESA_FORMAT_RGBA_INT8, _mesa_texstore_rgba_int8 },
+ { MESA_FORMAT_RGBA_INT16, _mesa_texstore_rgba_int16 },
+ { MESA_FORMAT_RGBA_INT32, _mesa_texstore_rgba_int32 },
+ { MESA_FORMAT_RGBA_UINT8, _mesa_texstore_rgba_uint8 },
+ { MESA_FORMAT_RGBA_UINT16, _mesa_texstore_rgba_uint16 },
+ { MESA_FORMAT_RGBA_UINT32, _mesa_texstore_rgba_uint32 },
+
{ MESA_FORMAT_DUDV8, _mesa_texstore_dudv8 },
{ MESA_FORMAT_SIGNED_R8, _mesa_texstore_signed_r8 },
diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c
index 050ebf02701..f86f1911d1d 100644
--- a/src/mesa/main/transformfeedback.c
+++ b/src/mesa/main/transformfeedback.c
@@ -35,10 +35,12 @@
#include "context.h"
#include "hash.h"
#include "transformfeedback.h"
+#include "shaderapi.h"
+#include "shaderobj.h"
#include "main/dispatch.h"
-#include "shader/prog_parameter.h"
-#include "shader/shader_api.h"
+#include "program/prog_parameter.h"
+//#include "program/shader_api.h"
#if FEATURE_EXT_transform_feedback
@@ -132,10 +134,8 @@ _mesa_validate_transform_feedback_buffers(GLcontext *ctx)
void
_mesa_init_transform_feedback(GLcontext *ctx)
{
- if (!ctx->Driver.NewTransformFeedback) {
- /* this feature/extension may not be supported by the driver */
- return;
- }
+ /* core mesa expects this, even a dummy one, to be available */
+ ASSERT(ctx->Driver.NewTransformFeedback);
ctx->TransformFeedback.DefaultObject =
ctx->Driver.NewTransformFeedback(ctx, 0);
@@ -176,10 +176,8 @@ delete_cb(GLuint key, void *data, void *userData)
void
_mesa_free_transform_feedback(GLcontext *ctx)
{
- if (!ctx->Driver.NewTransformFeedback) {
- /* this feature/extension may not be supported by the driver */
- return;
- }
+ /* core mesa expects this, even a dummy one, to be available */
+ ASSERT(ctx->Driver.NewTransformFeedback);
_mesa_reference_buffer_object(ctx,
&ctx->TransformFeedback.CurrentBuffer,
@@ -187,6 +185,7 @@ _mesa_free_transform_feedback(GLcontext *ctx)
/* Delete all feedback objects */
_mesa_HashDeleteAll(ctx->TransformFeedback.Objects, delete_cb, ctx);
+ _mesa_DeleteHashTable(ctx->TransformFeedback.Objects);
/* Delete the default feedback object */
assert(ctx->Driver.DeleteTransformFeedback);
@@ -197,6 +196,40 @@ _mesa_free_transform_feedback(GLcontext *ctx)
}
+#else /* FEATURE_EXT_transform_feedback */
+
+/* forward declarations */
+static struct gl_transform_feedback_object *
+new_transform_feedback(GLcontext *ctx, GLuint name);
+
+static void
+delete_transform_feedback(GLcontext *ctx,
+ struct gl_transform_feedback_object *obj);
+
+/* dummy per-context init/clean-up for transform feedback */
+void
+_mesa_init_transform_feedback(GLcontext *ctx)
+{
+ ctx->TransformFeedback.DefaultObject = new_transform_feedback(ctx, 0);
+ ctx->TransformFeedback.CurrentObject = ctx->TransformFeedback.DefaultObject;
+ _mesa_reference_buffer_object(ctx,
+ &ctx->TransformFeedback.CurrentBuffer,
+ ctx->Shared->NullBufferObj);
+}
+
+void
+_mesa_free_transform_feedback(GLcontext *ctx)
+{
+ _mesa_reference_buffer_object(ctx,
+ &ctx->TransformFeedback.CurrentBuffer,
+ NULL);
+ ctx->TransformFeedback.CurrentObject = NULL;
+ delete_transform_feedback(ctx, ctx->TransformFeedback.DefaultObject);
+}
+
+#endif /* FEATURE_EXT_transform_feedback */
+
+
/** Default fallback for ctx->Driver.NewTransformFeedback() */
static struct gl_transform_feedback_object *
new_transform_feedback(GLcontext *ctx, GLuint name)
@@ -224,6 +257,10 @@ delete_transform_feedback(GLcontext *ctx,
free(obj);
}
+
+#if FEATURE_EXT_transform_feedback
+
+
/** Default fallback for ctx->Driver.BeginTransformFeedback() */
static void
begin_transform_feedback(GLcontext *ctx, GLenum mode,
diff --git a/src/mesa/main/transformfeedback.h b/src/mesa/main/transformfeedback.h
index b806488abdd..4d38522d6d9 100644
--- a/src/mesa/main/transformfeedback.h
+++ b/src/mesa/main/transformfeedback.h
@@ -28,6 +28,12 @@
#include "main/mtypes.h"
+extern void
+_mesa_init_transform_feedback(GLcontext *ctx);
+
+extern void
+_mesa_free_transform_feedback(GLcontext *ctx);
+
#if FEATURE_EXT_transform_feedback
extern GLboolean
@@ -36,12 +42,6 @@ _mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode);
extern GLboolean
_mesa_validate_transform_feedback_buffers(GLcontext *ctx);
-extern void
-_mesa_init_transform_feedback(GLcontext *ctx);
-
-extern void
-_mesa_free_transform_feedback(GLcontext *ctx);
-
extern void
_mesa_init_transform_feedback_functions(struct dd_function_table *driver);
@@ -118,16 +118,6 @@ _mesa_validate_transform_feedback_buffers(GLcontext *ctx)
}
static INLINE void
-_mesa_init_transform_feedback(GLcontext *ctx)
-{
-}
-
-static INLINE void
-_mesa_free_transform_feedback(GLcontext *ctx)
-{
-}
-
-static INLINE void
_mesa_init_transform_feedback_functions(struct dd_function_table *driver)
{
}
diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c
new file mode 100644
index 00000000000..d68a7768df5
--- /dev/null
+++ b/src/mesa/main/uniforms.c
@@ -0,0 +1,1370 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2004-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
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * \file uniforms.c
+ * Functions related to GLSL uniform variables.
+ * \author Brian Paul
+ */
+
+/**
+ * XXX things to do:
+ * 1. Check that the right error code is generated for all _mesa_error() calls.
+ * 2. Insert FLUSH_VERTICES calls in various places
+ */
+
+
+#include "main/glheader.h"
+#include "main/context.h"
+#include "main/dispatch.h"
+#include "main/shaderapi.h"
+#include "main/shaderobj.h"
+#include "main/uniforms.h"
+#include "program/prog_parameter.h"
+#include "program/prog_statevars.h"
+#include "program/prog_uniform.h"
+
+
+
+static GLenum
+base_uniform_type(GLenum type)
+{
+ switch (type) {
+#if 0 /* not needed, for now */
+ case GL_BOOL:
+ case GL_BOOL_VEC2:
+ case GL_BOOL_VEC3:
+ case GL_BOOL_VEC4:
+ return GL_BOOL;
+#endif
+ case GL_FLOAT:
+ case GL_FLOAT_VEC2:
+ case GL_FLOAT_VEC3:
+ case GL_FLOAT_VEC4:
+ return GL_FLOAT;
+ case GL_UNSIGNED_INT:
+ case GL_UNSIGNED_INT_VEC2:
+ case GL_UNSIGNED_INT_VEC3:
+ case GL_UNSIGNED_INT_VEC4:
+ return GL_UNSIGNED_INT;
+ case GL_INT:
+ case GL_INT_VEC2:
+ case GL_INT_VEC3:
+ case GL_INT_VEC4:
+ return GL_INT;
+ default:
+ _mesa_problem(NULL, "Invalid type in base_uniform_type()");
+ return GL_FLOAT;
+ }
+}
+
+
+static GLboolean
+is_boolean_type(GLenum type)
+{
+ switch (type) {
+ case GL_BOOL:
+ case GL_BOOL_VEC2:
+ case GL_BOOL_VEC3:
+ case GL_BOOL_VEC4:
+ return GL_TRUE;
+ default:
+ return GL_FALSE;
+ }
+}
+
+
+static GLboolean
+is_sampler_type(GLenum type)
+{
+ switch (type) {
+ case GL_SAMPLER_1D:
+ case GL_SAMPLER_2D:
+ case GL_SAMPLER_3D:
+ case GL_SAMPLER_CUBE:
+ case GL_SAMPLER_1D_SHADOW:
+ case GL_SAMPLER_2D_SHADOW:
+ case GL_SAMPLER_2D_RECT_ARB:
+ case GL_SAMPLER_2D_RECT_SHADOW_ARB:
+ case GL_SAMPLER_1D_ARRAY_EXT:
+ case GL_SAMPLER_2D_ARRAY_EXT:
+ case GL_SAMPLER_1D_ARRAY_SHADOW_EXT:
+ case GL_SAMPLER_2D_ARRAY_SHADOW_EXT:
+ return GL_TRUE;
+ default:
+ return GL_FALSE;
+ }
+}
+
+
+static struct gl_program_parameter *
+get_uniform_parameter(const struct gl_shader_program *shProg, GLuint index)
+{
+ const struct gl_program *prog = NULL;
+ GLint progPos;
+
+ progPos = shProg->Uniforms->Uniforms[index].VertPos;
+ if (progPos >= 0) {
+ prog = &shProg->VertexProgram->Base;
+ }
+ else {
+ progPos = shProg->Uniforms->Uniforms[index].FragPos;
+ if (progPos >= 0) {
+ prog = &shProg->FragmentProgram->Base;
+ } else {
+ progPos = shProg->Uniforms->Uniforms[index].GeomPos;
+ if (progPos >= 0) {
+ prog = &shProg->GeometryProgram->Base;
+ }
+ }
+ }
+
+ if (!prog || progPos < 0)
+ return NULL; /* should never happen */
+
+ return &prog->Parameters->Parameters[progPos];
+}
+
+
+/**
+ * Called by glGetActiveUniform().
+ */
+static void
+_mesa_get_active_uniform(GLcontext *ctx, GLuint program, GLuint index,
+ GLsizei maxLength, GLsizei *length, GLint *size,
+ GLenum *type, GLchar *nameOut)
+{
+ const struct gl_shader_program *shProg;
+ const struct gl_program *prog = NULL;
+ const struct gl_program_parameter *param;
+ GLint progPos;
+
+ shProg = _mesa_lookup_shader_program_err(ctx, program, "glGetActiveUniform");
+ if (!shProg)
+ return;
+
+ if (!shProg->Uniforms || index >= shProg->Uniforms->NumUniforms) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetActiveUniform(index)");
+ return;
+ }
+
+ progPos = shProg->Uniforms->Uniforms[index].VertPos;
+ if (progPos >= 0) {
+ prog = &shProg->VertexProgram->Base;
+ }
+ else {
+ progPos = shProg->Uniforms->Uniforms[index].FragPos;
+ if (progPos >= 0) {
+ prog = &shProg->FragmentProgram->Base;
+ } else {
+ progPos = shProg->Uniforms->Uniforms[index].GeomPos;
+ if (progPos >= 0) {
+ prog = &shProg->GeometryProgram->Base;
+ }
+ }
+ }
+
+ if (!prog || progPos < 0)
+ return; /* should never happen */
+
+ ASSERT(progPos < prog->Parameters->NumParameters);
+ param = &prog->Parameters->Parameters[progPos];
+
+ if (nameOut) {
+ _mesa_copy_string(nameOut, maxLength, length, param->Name);
+ }
+
+ if (size) {
+ GLint typeSize = _mesa_sizeof_glsl_type(param->DataType);
+ if ((GLint) param->Size > typeSize) {
+ /* This is an array.
+ * Array elements are placed on vector[4] boundaries so they're
+ * a multiple of four floats. We round typeSize up to next multiple
+ * of four to get the right size below.
+ */
+ typeSize = (typeSize + 3) & ~3;
+ }
+ /* Note that the returned size is in units of the <type>, not bytes */
+ *size = param->Size / typeSize;
+ }
+
+ if (type) {
+ *type = param->DataType;
+ }
+}
+
+
+
+static void
+get_matrix_dims(GLenum type, GLint *rows, GLint *cols)
+{
+ switch (type) {
+ case GL_FLOAT_MAT2:
+ *rows = *cols = 2;
+ break;
+ case GL_FLOAT_MAT2x3:
+ *rows = 3;
+ *cols = 2;
+ break;
+ case GL_FLOAT_MAT2x4:
+ *rows = 4;
+ *cols = 2;
+ break;
+ case GL_FLOAT_MAT3:
+ *rows = 3;
+ *cols = 3;
+ break;
+ case GL_FLOAT_MAT3x2:
+ *rows = 2;
+ *cols = 3;
+ break;
+ case GL_FLOAT_MAT3x4:
+ *rows = 4;
+ *cols = 3;
+ break;
+ case GL_FLOAT_MAT4:
+ *rows = 4;
+ *cols = 4;
+ break;
+ case GL_FLOAT_MAT4x2:
+ *rows = 2;
+ *cols = 4;
+ break;
+ case GL_FLOAT_MAT4x3:
+ *rows = 3;
+ *cols = 4;
+ break;
+ default:
+ *rows = *cols = 0;
+ }
+}
+
+
+/**
+ * Determine the number of rows and columns occupied by a uniform
+ * according to its datatype. For non-matrix types (such as GL_FLOAT_VEC4),
+ * the number of rows = 1 and cols = number of elements in the vector.
+ */
+static void
+get_uniform_rows_cols(const struct gl_program_parameter *p,
+ GLint *rows, GLint *cols)
+{
+ get_matrix_dims(p->DataType, rows, cols);
+ if (*rows == 0 && *cols == 0) {
+ /* not a matrix type, probably a float or vector */
+ if (p->Size <= 4) {
+ *rows = 1;
+ *cols = p->Size;
+ }
+ else {
+ *rows = p->Size / 4 + 1;
+ if (p->Size % 4 == 0)
+ *cols = 4;
+ else
+ *cols = p->Size % 4;
+ }
+ }
+}
+
+
+/**
+ * Helper for get_uniform[fi]v() functions.
+ * Given a shader program name and uniform location, return a pointer
+ * to the shader program and return the program parameter position.
+ */
+static void
+lookup_uniform_parameter(GLcontext *ctx, GLuint program, GLint location,
+ struct gl_program **progOut, GLint *paramPosOut)
+{
+ struct gl_shader_program *shProg
+ = _mesa_lookup_shader_program_err(ctx, program, "glGetUniform[if]v");
+ struct gl_program *prog = NULL;
+ GLint progPos = -1;
+
+ /* if shProg is NULL, we'll have already recorded an error */
+
+ if (shProg) {
+ if (!shProg->Uniforms ||
+ location < 0 ||
+ location >= (GLint) shProg->Uniforms->NumUniforms) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetUniformfv(location)");
+ }
+ else {
+ /* OK, find the gl_program and program parameter location */
+ progPos = shProg->Uniforms->Uniforms[location].VertPos;
+ if (progPos >= 0) {
+ prog = &shProg->VertexProgram->Base;
+ }
+ else {
+ progPos = shProg->Uniforms->Uniforms[location].FragPos;
+ if (progPos >= 0) {
+ prog = &shProg->FragmentProgram->Base;
+ } else {
+ progPos = shProg->Uniforms->Uniforms[location].GeomPos;
+ if (progPos >= 0) {
+ prog = &shProg->GeometryProgram->Base;
+ }
+ }
+ }
+ }
+ }
+
+ *progOut = prog;
+ *paramPosOut = progPos;
+}
+
+
+/**
+ * GLGL uniform arrays and structs require special handling.
+ *
+ * The GL_ARB_shader_objects spec says that if you use
+ * glGetUniformLocation to get the location of an array, you CANNOT
+ * access other elements of the array by adding an offset to the
+ * returned location. For example, you must call
+ * glGetUniformLocation("foo[16]") if you want to set the 16th element
+ * of the array with glUniform().
+ *
+ * HOWEVER, some other OpenGL drivers allow accessing array elements
+ * by adding an offset to the returned array location. And some apps
+ * seem to depend on that behaviour.
+ *
+ * Mesa's gl_uniform_list doesn't directly support this since each
+ * entry in the list describes one uniform variable, not one uniform
+ * element. We could insert dummy entries in the list for each array
+ * element after [0] but that causes complications elsewhere.
+ *
+ * We solve this problem by encoding two values in the location that's
+ * returned by glGetUniformLocation():
+ * a) index into gl_uniform_list::Uniforms[] for the uniform
+ * b) an array/field offset (0 for simple types)
+ *
+ * These two values are encoded in the high and low halves of a GLint.
+ * By putting the uniform number in the high part and the offset in the
+ * low part, we can support the unofficial ability to index into arrays
+ * by adding offsets to the location value.
+ */
+static void
+merge_location_offset(GLint *location, GLint offset)
+{
+ *location = (*location << 16) | offset;
+}
+
+
+/**
+ * Separate the uniform location and parameter offset. See above.
+ */
+static void
+split_location_offset(GLint *location, GLint *offset)
+{
+ *offset = *location & 0xffff;
+ *location = *location >> 16;
+}
+
+
+
+/**
+ * Called via glGetUniformfv().
+ */
+static void
+_mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location,
+ GLfloat *params)
+{
+ struct gl_program *prog;
+ GLint paramPos;
+ GLint offset;
+
+ split_location_offset(&location, &offset);
+
+ lookup_uniform_parameter(ctx, program, location, &prog, &paramPos);
+
+ if (prog) {
+ const struct gl_program_parameter *p =
+ &prog->Parameters->Parameters[paramPos];
+ GLint rows, cols, i, j, k;
+
+ get_uniform_rows_cols(p, &rows, &cols);
+
+ k = 0;
+ for (i = 0; i < rows; i++) {
+ for (j = 0; j < cols; j++ ) {
+ params[k++] = prog->Parameters->ParameterValues[paramPos+i][j];
+ }
+ }
+ }
+}
+
+
+/**
+ * Called via glGetUniformiv().
+ * \sa _mesa_get_uniformfv, only difference is a cast.
+ */
+static void
+_mesa_get_uniformiv(GLcontext *ctx, GLuint program, GLint location,
+ GLint *params)
+{
+ struct gl_program *prog;
+ GLint paramPos;
+ GLint offset;
+
+ split_location_offset(&location, &offset);
+
+ lookup_uniform_parameter(ctx, program, location, &prog, &paramPos);
+
+ if (prog) {
+ const struct gl_program_parameter *p =
+ &prog->Parameters->Parameters[paramPos];
+ GLint rows, cols, i, j, k;
+
+ get_uniform_rows_cols(p, &rows, &cols);
+
+ k = 0;
+ for (i = 0; i < rows; i++) {
+ for (j = 0; j < cols; j++ ) {
+ params[k++] = (GLint) prog->Parameters->ParameterValues[paramPos+i][j];
+ }
+ }
+ }
+}
+
+
+/**
+ * Called via glGetUniformLocation().
+ *
+ * The return value will encode two values, the uniform location and an
+ * offset (used for arrays, structs).
+ */
+static GLint
+_mesa_get_uniform_location(GLcontext *ctx, GLuint program, const GLchar *name)
+{
+ GLint offset = 0, location = -1;
+
+ struct gl_shader_program *shProg =
+ _mesa_lookup_shader_program_err(ctx, program, "glGetUniformLocation");
+
+ if (!shProg)
+ return -1;
+
+ if (shProg->LinkStatus == GL_FALSE) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetUniformfv(program)");
+ return -1;
+ }
+
+ /* XXX we should return -1 if the uniform was declared, but not
+ * actually used.
+ */
+
+ /* XXX we need to be able to parse uniform names for structs and arrays
+ * such as:
+ * mymatrix[1]
+ * mystruct.field1
+ */
+
+ {
+ /* handle 1-dimension arrays here... */
+ char *c = strchr(name, '[');
+ if (c) {
+ /* truncate name at [ */
+ const GLint len = c - name;
+ GLchar *newName = malloc(len + 1);
+ if (!newName)
+ return -1; /* out of mem */
+ memcpy(newName, name, len);
+ newName[len] = 0;
+
+ location = _mesa_lookup_uniform(shProg->Uniforms, newName);
+ if (location >= 0) {
+ const GLint element = atoi(c + 1);
+ if (element > 0) {
+ /* get type of the uniform array element */
+ struct gl_program_parameter *p;
+ p = get_uniform_parameter(shProg, location);
+ if (p) {
+ GLint rows, cols;
+ get_matrix_dims(p->DataType, &rows, &cols);
+ if (rows < 1)
+ rows = 1;
+ offset = element * rows;
+ }
+ }
+ }
+
+ free(newName);
+ }
+ }
+
+ if (location < 0) {
+ location = _mesa_lookup_uniform(shProg->Uniforms, name);
+ }
+
+ if (location >= 0) {
+ merge_location_offset(&location, offset);
+ }
+
+ return location;
+}
+
+
+
+/**
+ * Update the vertex/fragment program's TexturesUsed array.
+ *
+ * This needs to be called after glUniform(set sampler var) is called.
+ * A call to glUniform(samplerVar, value) causes a sampler to point to a
+ * particular texture unit. We know the sampler's texture target
+ * (1D/2D/3D/etc) from compile time but the sampler's texture unit is
+ * set by glUniform() calls.
+ *
+ * So, scan the program->SamplerUnits[] and program->SamplerTargets[]
+ * information to update the prog->TexturesUsed[] values.
+ * Each value of TexturesUsed[unit] is one of zero, TEXTURE_1D_INDEX,
+ * TEXTURE_2D_INDEX, TEXTURE_3D_INDEX, etc.
+ * We'll use that info for state validation before rendering.
+ */
+void
+_mesa_update_shader_textures_used(struct gl_program *prog)
+{
+ GLuint s;
+
+ memset(prog->TexturesUsed, 0, sizeof(prog->TexturesUsed));
+
+ for (s = 0; s < MAX_SAMPLERS; s++) {
+ if (prog->SamplersUsed & (1 << s)) {
+ GLuint unit = prog->SamplerUnits[s];
+ GLuint tgt = prog->SamplerTargets[s];
+ assert(unit < MAX_TEXTURE_IMAGE_UNITS);
+ assert(tgt < NUM_TEXTURE_TARGETS);
+ prog->TexturesUsed[unit] |= (1 << tgt);
+ }
+ }
+}
+
+
+/**
+ * Check if the type given by userType is allowed to set a uniform of the
+ * target type. Generally, equivalence is required, but setting Boolean
+ * uniforms can be done with glUniformiv or glUniformfv.
+ */
+static GLboolean
+compatible_types(GLenum userType, GLenum targetType)
+{
+ if (userType == targetType)
+ return GL_TRUE;
+
+ if (targetType == GL_BOOL && (userType == GL_FLOAT ||
+ userType == GL_UNSIGNED_INT ||
+ userType == GL_INT))
+ return GL_TRUE;
+
+ if (targetType == GL_BOOL_VEC2 && (userType == GL_FLOAT_VEC2 ||
+ userType == GL_UNSIGNED_INT_VEC2 ||
+ userType == GL_INT_VEC2))
+ return GL_TRUE;
+
+ if (targetType == GL_BOOL_VEC3 && (userType == GL_FLOAT_VEC3 ||
+ userType == GL_UNSIGNED_INT_VEC3 ||
+ userType == GL_INT_VEC3))
+ return GL_TRUE;
+
+ if (targetType == GL_BOOL_VEC4 && (userType == GL_FLOAT_VEC4 ||
+ userType == GL_UNSIGNED_INT_VEC4 ||
+ userType == GL_INT_VEC4))
+ return GL_TRUE;
+
+ if (is_sampler_type(targetType) && userType == GL_INT)
+ return GL_TRUE;
+
+ return GL_FALSE;
+}
+
+
+/**
+ * Set the value of a program's uniform variable.
+ * \param program the program whose uniform to update
+ * \param index the index of the program parameter for the uniform
+ * \param offset additional parameter slot offset (for arrays)
+ * \param type the incoming datatype of 'values'
+ * \param count the number of uniforms to set
+ * \param elems number of elements per uniform (1, 2, 3 or 4)
+ * \param values the new values, of datatype 'type'
+ */
+static void
+set_program_uniform(GLcontext *ctx, struct gl_program *program,
+ GLint index, GLint offset,
+ GLenum type, GLsizei count, GLint elems,
+ const void *values)
+{
+ const struct gl_program_parameter *param =
+ &program->Parameters->Parameters[index];
+
+ assert(offset >= 0);
+ assert(elems >= 1);
+ assert(elems <= 4);
+
+ if (!compatible_types(type, param->DataType)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glUniform(type mismatch)");
+ return;
+ }
+
+ if (index + offset > (GLint) program->Parameters->Size) {
+ /* out of bounds! */
+ return;
+ }
+
+ if (param->Type == PROGRAM_SAMPLER) {
+ /* This controls which texture unit which is used by a sampler */
+ GLboolean changed = GL_FALSE;
+ GLint i;
+
+ /* this should have been caught by the compatible_types() check */
+ ASSERT(type == GL_INT);
+
+ /* loop over number of samplers to change */
+ for (i = 0; i < count; i++) {
+ GLuint sampler =
+ (GLuint) program->Parameters->ParameterValues[index + offset + i][0];
+ GLuint texUnit = ((GLuint *) values)[i];
+
+ /* check that the sampler (tex unit index) is legal */
+ if (texUnit >= ctx->Const.MaxTextureImageUnits) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glUniform1(invalid sampler/tex unit index for '%s')",
+ param->Name);
+ return;
+ }
+
+ /* This maps a sampler to a texture unit: */
+ if (sampler < MAX_SAMPLERS) {
+#if 0
+ printf("Set program %p sampler %d '%s' to unit %u\n",
+ program, sampler, param->Name, texUnit);
+#endif
+ if (program->SamplerUnits[sampler] != texUnit) {
+ program->SamplerUnits[sampler] = texUnit;
+ changed = GL_TRUE;
+ }
+ }
+ }
+
+ if (changed) {
+ /* When a sampler's value changes it usually requires rewriting
+ * a GPU program's TEX instructions since there may not be a
+ * sampler->texture lookup table. We signal this with the
+ * ProgramStringNotify() callback.
+ */
+ FLUSH_VERTICES(ctx, _NEW_TEXTURE | _NEW_PROGRAM);
+ _mesa_update_shader_textures_used(program);
+ /* Do we need to care about the return value here?
+ * This should not be the first time the driver was notified of
+ * this program.
+ */
+ (void) ctx->Driver.ProgramStringNotify(ctx, program->Target, program);
+ }
+ }
+ else {
+ /* ordinary uniform variable */
+ const GLboolean isUniformBool = is_boolean_type(param->DataType);
+ const GLenum basicType = base_uniform_type(type);
+ const GLint slots = (param->Size + 3) / 4;
+ const GLint typeSize = _mesa_sizeof_glsl_type(param->DataType);
+ GLsizei k, i;
+
+ if ((GLint) param->Size > typeSize) {
+ /* an array */
+ /* we'll ignore extra data below */
+ }
+ else {
+ /* non-array: count must be at most one; count == 0 is handled by the loop below */
+ if (count > 1) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glUniform(uniform '%s' is not an array)",
+ param->Name);
+ return;
+ }
+ }
+
+ /* loop over number of array elements */
+ for (k = 0; k < count; k++) {
+ GLfloat *uniformVal;
+
+ if (offset + k >= slots) {
+ /* Extra array data is ignored */
+ break;
+ }
+
+ /* uniformVal (the destination) is always float[4] */
+ uniformVal = program->Parameters->ParameterValues[index + offset + k];
+
+ if (basicType == GL_INT) {
+ /* convert user's ints to floats */
+ const GLint *iValues = ((const GLint *) values) + k * elems;
+ for (i = 0; i < elems; i++) {
+ uniformVal[i] = (GLfloat) iValues[i];
+ }
+ }
+ else if (basicType == GL_UNSIGNED_INT) {
+ /* convert user's uints to floats */
+ const GLuint *iValues = ((const GLuint *) values) + k * elems;
+ for (i = 0; i < elems; i++) {
+ uniformVal[i] = (GLfloat) iValues[i];
+ }
+ }
+ else {
+ const GLfloat *fValues = ((const GLfloat *) values) + k * elems;
+ assert(basicType == GL_FLOAT);
+ for (i = 0; i < elems; i++) {
+ uniformVal[i] = fValues[i];
+ }
+ }
+
+ /* if the uniform is bool-valued, convert to 1.0 or 0.0 */
+ if (isUniformBool) {
+ for (i = 0; i < elems; i++) {
+ uniformVal[i] = uniformVal[i] ? 1.0f : 0.0f;
+ }
+ }
+ }
+ }
+}
+
+
+/**
+ * Called via glUniform*() functions.
+ */
+static void
+_mesa_uniform(GLcontext *ctx, GLint location, GLsizei count,
+ const GLvoid *values, GLenum type)
+{
+ struct gl_shader_program *shProg = ctx->Shader.CurrentProgram;
+ struct gl_uniform *uniform;
+ GLint elems, offset;
+
+ if (!shProg || !shProg->LinkStatus) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glUniform(program not linked)");
+ return;
+ }
+
+ if (location == -1)
+ return; /* The standard specifies this as a no-op */
+
+ if (location < -1) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glUniform(location=%d)",
+ location);
+ return;
+ }
+
+ split_location_offset(&location, &offset);
+
+ if (location < 0 || location >= (GLint) shProg->Uniforms->NumUniforms) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glUniform(location=%d)", location);
+ return;
+ }
+
+ if (count < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glUniform(count < 0)");
+ return;
+ }
+
+ elems = _mesa_sizeof_glsl_type(type);
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+
+ uniform = &shProg->Uniforms->Uniforms[location];
+
+ if (ctx->Shader.Flags & GLSL_UNIFORMS) {
+ const GLenum basicType = base_uniform_type(type);
+ GLint i;
+ printf("Mesa: set program %u uniform %s (loc %d) to: ",
+ shProg->Name, uniform->Name, location);
+ if (basicType == GL_INT) {
+ const GLint *v = (const GLint *) values;
+ for (i = 0; i < count * elems; i++) {
+ printf("%d ", v[i]);
+ }
+ }
+ else if (basicType == GL_UNSIGNED_INT) {
+ const GLuint *v = (const GLuint *) values;
+ for (i = 0; i < count * elems; i++) {
+ printf("%u ", v[i]);
+ }
+ }
+ else {
+ const GLfloat *v = (const GLfloat *) values;
+ assert(basicType == GL_FLOAT);
+ for (i = 0; i < count * elems; i++) {
+ printf("%g ", v[i]);
+ }
+ }
+ printf("\n");
+ }
+
+ /* A uniform var may be used by both a vertex shader and a fragment
+ * shader. We may need to update one or both shader's uniform here:
+ */
+ if (shProg->VertexProgram) {
+ /* convert uniform location to program parameter index */
+ GLint index = uniform->VertPos;
+ if (index >= 0) {
+ set_program_uniform(ctx, &shProg->VertexProgram->Base,
+ index, offset, type, count, elems, values);
+ }
+ }
+
+ if (shProg->FragmentProgram) {
+ /* convert uniform location to program parameter index */
+ GLint index = uniform->FragPos;
+ if (index >= 0) {
+ set_program_uniform(ctx, &shProg->FragmentProgram->Base,
+ index, offset, type, count, elems, values);
+ }
+ }
+
+ if (shProg->GeometryProgram) {
+ /* convert uniform location to program parameter index */
+ GLint index = uniform->GeomPos;
+ if (index >= 0) {
+ set_program_uniform(ctx, &shProg->GeometryProgram->Base,
+ index, offset, type, count, elems, values);
+ }
+ }
+
+ uniform->Initialized = GL_TRUE;
+}
+
+
+/**
+ * Set a matrix-valued program parameter.
+ */
+static void
+set_program_uniform_matrix(GLcontext *ctx, struct gl_program *program,
+ GLuint index, GLuint offset,
+ GLuint count, GLuint rows, GLuint cols,
+ GLboolean transpose, const GLfloat *values)
+{
+ GLuint mat, row, col;
+ GLuint src = 0;
+ const struct gl_program_parameter * param = &program->Parameters->Parameters[index];
+ const GLuint slots = (param->Size + 3) / 4;
+ const GLint typeSize = _mesa_sizeof_glsl_type(param->DataType);
+ GLint nr, nc;
+
+ /* check that the number of rows, columns is correct */
+ get_matrix_dims(param->DataType, &nr, &nc);
+ if (rows != nr || cols != nc) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glUniformMatrix(matrix size mismatch)");
+ return;
+ }
+
+ if ((GLint) param->Size <= typeSize) {
+ /* non-array: count must be at most one; count == 0 is handled by the loop below */
+ if (count > 1) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glUniformMatrix(uniform is not an array)");
+ return;
+ }
+ }
+
+ /*
+ * Note: the _columns_ of a matrix are stored in program registers, not
+ * the rows. So, the loops below look a little funny.
+ * XXX could optimize this a bit...
+ */
+
+ /* loop over matrices */
+ for (mat = 0; mat < count; mat++) {
+
+ /* each matrix: */
+ for (col = 0; col < cols; col++) {
+ GLfloat *v;
+ if (offset >= slots) {
+ /* Ignore writes beyond the end of (the used part of) an array */
+ return;
+ }
+ v = program->Parameters->ParameterValues[index + offset];
+ for (row = 0; row < rows; row++) {
+ if (transpose) {
+ v[row] = values[src + row * cols + col];
+ }
+ else {
+ v[row] = values[src + col * rows + row];
+ }
+ }
+
+ offset++;
+ }
+
+ src += rows * cols; /* next matrix */
+ }
+}
+
+
+/**
+ * Called by glUniformMatrix*() functions.
+ * Note: cols=2, rows=4 ==> array[2] of vec4
+ */
+static void
+_mesa_uniform_matrix(GLcontext *ctx, GLint cols, GLint rows,
+ GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *values)
+{
+ struct gl_shader_program *shProg = ctx->Shader.CurrentProgram;
+ struct gl_uniform *uniform;
+ GLint offset;
+
+ if (!shProg || !shProg->LinkStatus) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glUniformMatrix(program not linked)");
+ return;
+ }
+
+ if (location == -1)
+ return; /* The standard specifies this as a no-op */
+
+ if (location < -1) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glUniformMatrix(location)");
+ return;
+ }
+
+ split_location_offset(&location, &offset);
+
+ if (location < 0 || location >= (GLint) shProg->Uniforms->NumUniforms) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glUniformMatrix(location)");
+ return;
+ }
+ if (values == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glUniformMatrix");
+ return;
+ }
+
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+
+ uniform = &shProg->Uniforms->Uniforms[location];
+
+ if (shProg->VertexProgram) {
+ /* convert uniform location to program parameter index */
+ GLint index = uniform->VertPos;
+ if (index >= 0) {
+ set_program_uniform_matrix(ctx, &shProg->VertexProgram->Base,
+ index, offset,
+ count, rows, cols, transpose, values);
+ }
+ }
+
+ if (shProg->FragmentProgram) {
+ /* convert uniform location to program parameter index */
+ GLint index = uniform->FragPos;
+ if (index >= 0) {
+ set_program_uniform_matrix(ctx, &shProg->FragmentProgram->Base,
+ index, offset,
+ count, rows, cols, transpose, values);
+ }
+ }
+
+ if (shProg->GeometryProgram) {
+ /* convert uniform location to program parameter index */
+ GLint index = uniform->GeomPos;
+ if (index >= 0) {
+ set_program_uniform_matrix(ctx, &shProg->GeometryProgram->Base,
+ index, offset,
+ count, rows, cols, transpose, values);
+ }
+ }
+
+ uniform->Initialized = GL_TRUE;
+}
+
+
+void GLAPIENTRY
+_mesa_Uniform1fARB(GLint location, GLfloat v0)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, 1, &v0, GL_FLOAT);
+}
+
+void GLAPIENTRY
+_mesa_Uniform2fARB(GLint location, GLfloat v0, GLfloat v1)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLfloat v[2];
+ v[0] = v0;
+ v[1] = v1;
+ _mesa_uniform(ctx, location, 1, v, GL_FLOAT_VEC2);
+}
+
+void GLAPIENTRY
+_mesa_Uniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLfloat v[3];
+ v[0] = v0;
+ v[1] = v1;
+ v[2] = v2;
+ _mesa_uniform(ctx, location, 1, v, GL_FLOAT_VEC3);
+}
+
+void GLAPIENTRY
+_mesa_Uniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2,
+ GLfloat v3)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLfloat v[4];
+ v[0] = v0;
+ v[1] = v1;
+ v[2] = v2;
+ v[3] = v3;
+ _mesa_uniform(ctx, location, 1, v, GL_FLOAT_VEC4);
+}
+
+void GLAPIENTRY
+_mesa_Uniform1iARB(GLint location, GLint v0)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, 1, &v0, GL_INT);
+}
+
+void GLAPIENTRY
+_mesa_Uniform2iARB(GLint location, GLint v0, GLint v1)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLint v[2];
+ v[0] = v0;
+ v[1] = v1;
+ _mesa_uniform(ctx, location, 1, v, GL_INT_VEC2);
+}
+
+void GLAPIENTRY
+_mesa_Uniform3iARB(GLint location, GLint v0, GLint v1, GLint v2)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLint v[3];
+ v[0] = v0;
+ v[1] = v1;
+ v[2] = v2;
+ _mesa_uniform(ctx, location, 1, v, GL_INT_VEC3);
+}
+
+void GLAPIENTRY
+_mesa_Uniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLint v[4];
+ v[0] = v0;
+ v[1] = v1;
+ v[2] = v2;
+ v[3] = v3;
+ _mesa_uniform(ctx, location, 1, v, GL_INT_VEC4);
+}
+
+void GLAPIENTRY
+_mesa_Uniform1fvARB(GLint location, GLsizei count, const GLfloat * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, count, value, GL_FLOAT);
+}
+
+void GLAPIENTRY
+_mesa_Uniform2fvARB(GLint location, GLsizei count, const GLfloat * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, count, value, GL_FLOAT_VEC2);
+}
+
+void GLAPIENTRY
+_mesa_Uniform3fvARB(GLint location, GLsizei count, const GLfloat * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, count, value, GL_FLOAT_VEC3);
+}
+
+void GLAPIENTRY
+_mesa_Uniform4fvARB(GLint location, GLsizei count, const GLfloat * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, count, value, GL_FLOAT_VEC4);
+}
+
+void GLAPIENTRY
+_mesa_Uniform1ivARB(GLint location, GLsizei count, const GLint * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, count, value, GL_INT);
+}
+
+void GLAPIENTRY
+_mesa_Uniform2ivARB(GLint location, GLsizei count, const GLint * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, count, value, GL_INT_VEC2);
+}
+
+void GLAPIENTRY
+_mesa_Uniform3ivARB(GLint location, GLsizei count, const GLint * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, count, value, GL_INT_VEC3);
+}
+
+void GLAPIENTRY
+_mesa_Uniform4ivARB(GLint location, GLsizei count, const GLint * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, count, value, GL_INT_VEC4);
+}
+
+
+/** OpenGL 3.0 GLuint-valued functions **/
+void GLAPIENTRY
+_mesa_Uniform1ui(GLint location, GLuint v0)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, location, 1, &v0, GL_UNSIGNED_INT);
+}
+
+void GLAPIENTRY
+_mesa_Uniform2ui(GLint location, GLuint v0, GLuint v1)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLuint v[2];
+ v[0] = v0;
+ v[1] = v1;
+ _mesa_uniform(ctx, location, 1, v, GL_UNSIGNED_INT_VEC2);
+}
+
+void GLAPIENTRY
+_mesa_Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLuint v[3];
+ v[0] = v0;
+ v[1] = v1;
+ v[2] = v2;
+ _mesa_uniform(ctx, location, 1, v, GL_UNSIGNED_INT_VEC3);
+}
+
+void GLAPIENTRY
+_mesa_Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLuint v[4];
+ v[0] = v0;
+ v[1] = v1;
+ v[2] = v2;
+ v[3] = v3;
+ _mesa_uniform(ctx, 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, location, count, value, GL_UNSIGNED_INT);
+}
+
+void GLAPIENTRY
+_mesa_Uniform2uiv(GLint location, GLsizei count, const GLuint *value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform(ctx, 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, 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, location, count, value, GL_UNSIGNED_INT_VEC4);
+}
+
+
+
+void GLAPIENTRY
+_mesa_UniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 2, 2, location, count, transpose, value);
+}
+
+void GLAPIENTRY
+_mesa_UniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 3, 3, location, count, transpose, value);
+}
+
+void GLAPIENTRY
+_mesa_UniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat * value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 4, 4, location, count, transpose, value);
+}
+
+
+/**
+ * Non-square UniformMatrix are OpenGL 2.1
+ */
+void GLAPIENTRY
+_mesa_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 2, 3, location, count, transpose, value);
+}
+
+void GLAPIENTRY
+_mesa_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 3, 2, location, count, transpose, value);
+}
+
+void GLAPIENTRY
+_mesa_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 2, 4, location, count, transpose, value);
+}
+
+void GLAPIENTRY
+_mesa_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 4, 2, location, count, transpose, value);
+}
+
+void GLAPIENTRY
+_mesa_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 3, 4, location, count, transpose, value);
+}
+
+void GLAPIENTRY
+_mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_uniform_matrix(ctx, 4, 3, location, count, transpose, value);
+}
+
+
+void GLAPIENTRY
+_mesa_GetUniformfvARB(GLhandleARB program, GLint location, GLfloat *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_get_uniformfv(ctx, program, location, params);
+}
+
+
+void GLAPIENTRY
+_mesa_GetUniformivARB(GLhandleARB program, GLint location, GLint *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_get_uniformiv(ctx, program, location, params);
+}
+
+
+GLint GLAPIENTRY
+_mesa_GetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ return _mesa_get_uniform_location(ctx, programObj, name);
+}
+
+
+void GLAPIENTRY
+_mesa_GetActiveUniformARB(GLhandleARB program, GLuint index,
+ GLsizei maxLength, GLsizei * length, GLint * size,
+ GLenum * type, GLcharARB * name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_get_active_uniform(ctx, program, index, maxLength, length, size,
+ type, name);
+}
+
+
+/**
+ * Plug in shader uniform-related functions into API dispatch table.
+ */
+void
+_mesa_init_shader_uniform_dispatch(struct _glapi_table *exec)
+{
+#if FEATURE_GL
+ SET_Uniform1fARB(exec, _mesa_Uniform1fARB);
+ SET_Uniform2fARB(exec, _mesa_Uniform2fARB);
+ SET_Uniform3fARB(exec, _mesa_Uniform3fARB);
+ SET_Uniform4fARB(exec, _mesa_Uniform4fARB);
+ SET_Uniform1iARB(exec, _mesa_Uniform1iARB);
+ SET_Uniform2iARB(exec, _mesa_Uniform2iARB);
+ SET_Uniform3iARB(exec, _mesa_Uniform3iARB);
+ SET_Uniform4iARB(exec, _mesa_Uniform4iARB);
+ SET_Uniform1fvARB(exec, _mesa_Uniform1fvARB);
+ SET_Uniform2fvARB(exec, _mesa_Uniform2fvARB);
+ SET_Uniform3fvARB(exec, _mesa_Uniform3fvARB);
+ SET_Uniform4fvARB(exec, _mesa_Uniform4fvARB);
+ SET_Uniform1ivARB(exec, _mesa_Uniform1ivARB);
+ SET_Uniform2ivARB(exec, _mesa_Uniform2ivARB);
+ SET_Uniform3ivARB(exec, _mesa_Uniform3ivARB);
+ SET_Uniform4ivARB(exec, _mesa_Uniform4ivARB);
+ SET_UniformMatrix2fvARB(exec, _mesa_UniformMatrix2fvARB);
+ SET_UniformMatrix3fvARB(exec, _mesa_UniformMatrix3fvARB);
+ SET_UniformMatrix4fvARB(exec, _mesa_UniformMatrix4fvARB);
+
+ SET_GetActiveUniformARB(exec, _mesa_GetActiveUniformARB);
+ SET_GetUniformLocationARB(exec, _mesa_GetUniformLocationARB);
+ SET_GetUniformfvARB(exec, _mesa_GetUniformfvARB);
+ SET_GetUniformivARB(exec, _mesa_GetUniformivARB);
+
+ /* OpenGL 2.1 */
+ SET_UniformMatrix2x3fv(exec, _mesa_UniformMatrix2x3fv);
+ SET_UniformMatrix3x2fv(exec, _mesa_UniformMatrix3x2fv);
+ SET_UniformMatrix2x4fv(exec, _mesa_UniformMatrix2x4fv);
+ SET_UniformMatrix4x2fv(exec, _mesa_UniformMatrix4x2fv);
+ SET_UniformMatrix3x4fv(exec, _mesa_UniformMatrix3x4fv);
+ SET_UniformMatrix4x3fv(exec, _mesa_UniformMatrix4x3fv);
+
+ /* OpenGL 3.0 */
+ /* XXX finish dispatch */
+ (void) _mesa_Uniform1ui;
+ (void) _mesa_Uniform2ui;
+ (void) _mesa_Uniform3ui;
+ (void) _mesa_Uniform4ui;
+ (void) _mesa_Uniform1uiv;
+ (void) _mesa_Uniform2uiv;
+ (void) _mesa_Uniform3uiv;
+ (void) _mesa_Uniform4uiv;
+#endif /* FEATURE_GL */
+}
diff --git a/src/mesa/main/uniforms.h b/src/mesa/main/uniforms.h
new file mode 100644
index 00000000000..29f77cb35a0
--- /dev/null
+++ b/src/mesa/main/uniforms.h
@@ -0,0 +1,158 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 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 UNIFORMS_H
+#define UNIFORMS_H
+
+
+extern void GLAPIENTRY
+_mesa_Uniform1fARB(GLint, GLfloat);
+
+extern void GLAPIENTRY
+_mesa_Uniform2fARB(GLint, GLfloat, GLfloat);
+
+extern void GLAPIENTRY
+_mesa_Uniform3fARB(GLint, GLfloat, GLfloat, GLfloat);
+
+extern void GLAPIENTRY
+_mesa_Uniform4fARB(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+
+extern void GLAPIENTRY
+_mesa_Uniform1iARB(GLint, GLint);
+
+extern void GLAPIENTRY
+_mesa_Uniform2iARB(GLint, GLint, GLint);
+
+extern void GLAPIENTRY
+_mesa_Uniform3iARB(GLint, GLint, GLint, GLint);
+
+extern void GLAPIENTRY
+_mesa_Uniform4iARB(GLint, GLint, GLint, GLint, GLint);
+
+extern void GLAPIENTRY
+_mesa_Uniform1fvARB(GLint, GLsizei, const GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_Uniform2fvARB(GLint, GLsizei, const GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_Uniform3fvARB(GLint, GLsizei, const GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_Uniform4fvARB(GLint, GLsizei, const GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_Uniform1ivARB(GLint, GLsizei, const GLint *);
+
+extern void GLAPIENTRY
+_mesa_Uniform2ivARB(GLint, GLsizei, const GLint *);
+
+extern void GLAPIENTRY
+_mesa_Uniform3ivARB(GLint, GLsizei, const GLint *);
+
+extern void GLAPIENTRY
+_mesa_Uniform4ivARB(GLint, GLsizei, const GLint *);
+
+extern void GLAPIENTRY
+_mesa_Uniform1ui(GLint location, GLuint v0);
+
+extern void GLAPIENTRY
+_mesa_Uniform2ui(GLint location, GLuint v0, GLuint v1);
+
+extern void GLAPIENTRY
+_mesa_Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
+
+extern void GLAPIENTRY
+_mesa_Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+
+extern void GLAPIENTRY
+_mesa_Uniform1uiv(GLint location, GLsizei count, const GLuint *value);
+
+extern void GLAPIENTRY
+_mesa_Uniform2uiv(GLint location, GLsizei count, const GLuint *value);
+
+extern void GLAPIENTRY
+_mesa_Uniform3uiv(GLint location, GLsizei count, const GLuint *value);
+
+extern void GLAPIENTRY
+_mesa_Uniform4uiv(GLint location, GLsizei count, const GLuint *value);
+
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix2fvARB(GLint, GLsizei, GLboolean, const GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix3fvARB(GLint, GLsizei, GLboolean, const GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix4fvARB(GLint, GLsizei, GLboolean, const GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+
+extern void GLAPIENTRY
+_mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+
+
+extern void GLAPIENTRY
+_mesa_GetActiveUniformARB(GLhandleARB, GLuint, GLsizei, GLsizei *,
+ GLint *, GLenum *, GLcharARB *);
+
+extern void GLAPIENTRY
+_mesa_GetUniformfvARB(GLhandleARB, GLint, GLfloat *);
+
+extern void GLAPIENTRY
+_mesa_GetUniformivARB(GLhandleARB, GLint, GLint *);
+
+extern GLint GLAPIENTRY
+_mesa_GetUniformLocationARB(GLhandleARB, const GLcharARB *);
+
+
+
+extern void
+_mesa_update_shader_textures_used(struct gl_program *prog);
+
+
+extern void
+_mesa_init_shader_uniform_dispatch(struct _glapi_table *exec);
+
+#endif /* UNIFORMS_H */
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index da374acb5c8..6c0cfc4e327 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -1368,10 +1368,10 @@ print_array(const char *name, GLint index, const struct gl_client_array *array)
printf(" %s[%d]: ", name, index);
else
printf(" %s: ", name);
- printf("Ptr=%p, Type=0x%x, Size=%d, ElemSize=%u, Stride=%d, Buffer=%u(Size %u), MaxElem=%u\n",
+ printf("Ptr=%p, Type=0x%x, Size=%d, ElemSize=%u, Stride=%d, Buffer=%u(Size %lu), MaxElem=%u\n",
array->Ptr, array->Type, array->Size,
array->_ElementSize, array->StrideB,
- array->BufferObj->Name, array->BufferObj->Size,
+ array->BufferObj->Name, (unsigned long) array->BufferObj->Size,
array->_MaxElement);
}
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index dea3019d0bc..d833a160e9e 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -87,7 +87,71 @@ compute_version(GLcontext *ctx)
ctx->Extensions.ARB_shading_language_120 &&
ctx->Extensions.EXT_pixel_buffer_object &&
ctx->Extensions.EXT_texture_sRGB);
- if (ver_2_1) {
+ const GLboolean ver_3_0 = (ver_2_1 &&
+ ctx->Extensions.ARB_half_float_pixel &&
+ ctx->Extensions.ARB_map_buffer_range &&
+ ctx->Extensions.ARB_texture_float &&
+ ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.APPLE_vertex_array_object &&
+ ctx->Extensions.EXT_draw_buffers2 &&
+ ctx->Extensions.EXT_framebuffer_blit &&
+ ctx->Extensions.EXT_framebuffer_multisample &&
+ ctx->Extensions.EXT_framebuffer_object &&
+ ctx->Extensions.EXT_framebuffer_sRGB &&
+ ctx->Extensions.EXT_packed_depth_stencil &&
+ ctx->Extensions.EXT_packed_float &&
+ ctx->Extensions.EXT_texture_array &&
+ ctx->Extensions.EXT_texture_compression_rgtc &&
+ ctx->Extensions.EXT_texture_integer &&
+ ctx->Extensions.EXT_texture_shared_exponent &&
+ ctx->Extensions.EXT_transform_feedback &&
+ ctx->Extensions.NV_conditional_render);
+ const GLboolean ver_3_1 = (ver_3_0 &&
+ ctx->Extensions.ARB_copy_buffer &&
+ ctx->Extensions.ARB_draw_instanced &&
+ ctx->Extensions.ARB_texture_buffer_object &&
+ ctx->Extensions.ARB_uniform_buffer_object &&
+ ctx->Extensions.NV_primitive_restart &&
+ ctx->Extensions.NV_texture_rectangle &&
+ ctx->Const.MaxVertexTextureImageUnits >= 16);
+ const GLboolean ver_3_2 = (ver_3_1 &&
+ ctx->Extensions.ARB_depth_clamp &&
+ ctx->Extensions.ARB_draw_elements_base_vertex &&
+ ctx->Extensions.ARB_fragment_coord_conventions &&
+ ctx->Extensions.ARB_geometry_shader4 &&
+ ctx->Extensions.EXT_provoking_vertex &&
+ ctx->Extensions.ARB_seamless_cube_map &&
+ ctx->Extensions.ARB_sync &&
+ ctx->Extensions.ARB_texture_multisample &&
+ ctx->Extensions.EXT_vertex_array_bgra);
+ const GLboolean ver_3_3 = (ver_3_2 &&
+ ctx->Extensions.ARB_blend_func_extended &&
+ ctx->Extensions.ARB_explicit_attrib_location &&
+ ctx->Extensions.ARB_instanced_arrays &&
+ ctx->Extensions.ARB_occlusion_query2 &&
+ ctx->Extensions.ARB_sampler_objects &&
+ ctx->Extensions.ARB_texture_rgb10_a2ui &&
+ ctx->Extensions.ARB_timer_query &&
+ ctx->Extensions.ARB_vertex_type_2_10_10_10_rev &&
+ ctx->Extensions.EXT_texture_swizzle);
+
+ if (ver_3_3) {
+ major = 3;
+ minor = 3;
+ }
+ else if (ver_3_2) {
+ major = 3;
+ minor = 2;
+ }
+ else if (ver_3_1) {
+ major = 3;
+ minor = 1;
+ }
+ else if (ver_3_0) {
+ major = 3;
+ minor = 0;
+ }
+ else if (ver_2_1) {
major = 2;
minor = 1;
}