summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorBen Skeggs <[email protected]>2008-04-09 13:42:55 +1000
committerBen Skeggs <[email protected]>2008-04-09 13:42:55 +1000
commit2a8de8ff94e0e0e52e03f8c8427a9e92fae374f4 (patch)
treec13df91fcc114b297635eb4a254bab5578bc8239 /src/mesa
parent2655f6901289bcfe3835cf28d7b9eefa242045b8 (diff)
parent7e57a9e8bba322b2ba8a02eec4b79c90e7052738 (diff)
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/SConscript1
-rw-r--r--src/mesa/drivers/dri/common/extension_helper.h18
-rw-r--r--src/mesa/glapi/dispatch.h17
-rw-r--r--src/mesa/glapi/gl_API.xml31
-rw-r--r--src/mesa/glapi/glapioffsets.h12
-rw-r--r--src/mesa/glapi/glapitable.h11
-rw-r--r--src/mesa/glapi/glapitemp.h33
-rw-r--r--src/mesa/glapi/glprocs.h562
-rw-r--r--src/mesa/main/enums.c1224
-rw-r--r--src/mesa/main/mtypes.h8
-rw-r--r--src/mesa/main/state.c3
-rw-r--r--src/mesa/main/stencil.c295
-rw-r--r--src/mesa/main/stencil.h7
-rw-r--r--src/mesa/shader/prog_instruction.c17
-rw-r--r--src/mesa/shader/prog_instruction.h3
-rw-r--r--src/mesa/shader/prog_uniform.c157
-rw-r--r--src/mesa/shader/prog_uniform.h91
-rw-r--r--src/mesa/shader/program.c62
-rw-r--r--src/mesa/shader/program.h2
-rw-r--r--src/mesa/shader/programopt.c96
-rw-r--r--src/mesa/shader/programopt.h2
-rw-r--r--src/mesa/shader/shader_api.c308
-rw-r--r--src/mesa/shader/slang/slang_compile.c15
-rw-r--r--src/mesa/shader/slang/slang_link.c192
-rw-r--r--src/mesa/sources1
-rw-r--r--src/mesa/sparc/glapi_sparc.S2
-rw-r--r--src/mesa/state_tracker/st_atom_depth.c3
-rw-r--r--src/mesa/state_tracker/st_atom_pixeltransfer.c1
-rw-r--r--src/mesa/state_tracker/st_atom_texture.c15
-rw-r--r--src/mesa/state_tracker/st_cb_accum.c139
-rw-r--r--src/mesa/state_tracker/st_cb_bitmap.c61
-rw-r--r--src/mesa/state_tracker/st_cb_drawpixels.c1
-rw-r--r--src/mesa/state_tracker/st_cb_fbo.c56
-rw-r--r--src/mesa/state_tracker/st_cb_fbo.h3
-rw-r--r--src/mesa/state_tracker/st_cb_flush.c15
-rw-r--r--src/mesa/state_tracker/st_cb_queryobj.c6
-rw-r--r--src/mesa/state_tracker/st_cb_texture.c1
-rw-r--r--src/mesa/state_tracker/st_format.c13
-rw-r--r--src/mesa/state_tracker/st_framebuffer.c2
-rw-r--r--src/mesa/state_tracker/st_mesa_to_tgsi.c3
-rw-r--r--src/mesa/x86-64/glapi_x86-64.S46
-rw-r--r--src/mesa/x86/glapi_x86.S13
42 files changed, 2104 insertions, 1444 deletions
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
index b816a21b38d..a10c34c8c5e 100644
--- a/src/mesa/SConscript
+++ b/src/mesa/SConscript
@@ -184,6 +184,7 @@ SHADER_SOURCES = [
'shader/prog_parameter.c',
'shader/prog_print.c',
'shader/prog_statevars.c',
+ 'shader/prog_uniform.c',
'shader/programopt.c',
'shader/shader_api.c',
]
diff --git a/src/mesa/drivers/dri/common/extension_helper.h b/src/mesa/drivers/dri/common/extension_helper.h
index bf103a3931f..065c5d8dae7 100644
--- a/src/mesa/drivers/dri/common/extension_helper.h
+++ b/src/mesa/drivers/dri/common/extension_helper.h
@@ -1105,10 +1105,11 @@ static const char IsRenderbufferEXT_names[] =
"";
#endif
-#if defined(need_GL_VERSION_2_0)
+#if defined(need_GL_VERSION_2_0) || defined(need_GL_ATI_separate_stencil)
static const char StencilOpSeparate_names[] =
"iiii\0" /* Parameter signature */
"glStencilOpSeparate\0"
+ "glStencilOpSeparateATI\0"
"";
#endif
@@ -4179,6 +4180,13 @@ static const char ActiveStencilFaceEXT_names[] =
"";
#endif
+#if defined(need_GL_ATI_separate_stencil)
+static const char StencilFuncSeparateATI_names[] =
+ "iiii\0" /* Parameter signature */
+ "glStencilFuncSeparateATI\0"
+ "";
+#endif
+
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
static const char GetShaderSourceARB_names[] =
"iipp\0" /* Parameter signature */
@@ -5182,6 +5190,14 @@ static const struct dri_extension_function GL_ATI_fragment_shader_functions[] =
};
#endif
+#if defined(need_GL_ATI_separate_stencil)
+static const struct dri_extension_function GL_ATI_separate_stencil_functions[] = {
+ { StencilOpSeparate_names, StencilOpSeparate_remap_index, -1 },
+ { StencilFuncSeparateATI_names, StencilFuncSeparateATI_remap_index, -1 },
+ { NULL, 0, 0 }
+};
+#endif
+
#if defined(need_GL_EXT_blend_color)
static const struct dri_extension_function GL_EXT_blend_color_functions[] = {
{ BlendColor_names, -1, 336 },
diff --git a/src/mesa/glapi/dispatch.h b/src/mesa/glapi/dispatch.h
index 0ce59f7b99c..db23e44396d 100644
--- a/src/mesa/glapi/dispatch.h
+++ b/src/mesa/glapi/dispatch.h
@@ -2365,6 +2365,9 @@
#define CALL_FramebufferTextureLayerEXT(disp, parameters) (*((disp)->FramebufferTextureLayerEXT)) parameters
#define GET_FramebufferTextureLayerEXT(disp) ((disp)->FramebufferTextureLayerEXT)
#define SET_FramebufferTextureLayerEXT(disp, fn) ((disp)->FramebufferTextureLayerEXT = fn)
+#define CALL_StencilFuncSeparateATI(disp, parameters) (*((disp)->StencilFuncSeparateATI)) parameters
+#define GET_StencilFuncSeparateATI(disp) ((disp)->StencilFuncSeparateATI)
+#define SET_StencilFuncSeparateATI(disp, fn) ((disp)->StencilFuncSeparateATI = fn)
#define CALL_ProgramEnvParameters4fvEXT(disp, parameters) (*((disp)->ProgramEnvParameters4fvEXT)) parameters
#define GET_ProgramEnvParameters4fvEXT(disp) ((disp)->ProgramEnvParameters4fvEXT)
#define SET_ProgramEnvParameters4fvEXT(disp, fn) ((disp)->ProgramEnvParameters4fvEXT = fn)
@@ -2380,7 +2383,7 @@
#else
-#define driDispatchRemapTable_size 365
+#define driDispatchRemapTable_size 366
extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define AttachShader_remap_index 0
@@ -2744,10 +2747,11 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define RenderbufferStorageEXT_remap_index 358
#define BlitFramebufferEXT_remap_index 359
#define FramebufferTextureLayerEXT_remap_index 360
-#define ProgramEnvParameters4fvEXT_remap_index 361
-#define ProgramLocalParameters4fvEXT_remap_index 362
-#define GetQueryObjecti64vEXT_remap_index 363
-#define GetQueryObjectui64vEXT_remap_index 364
+#define StencilFuncSeparateATI_remap_index 361
+#define ProgramEnvParameters4fvEXT_remap_index 362
+#define ProgramLocalParameters4fvEXT_remap_index 363
+#define GetQueryObjecti64vEXT_remap_index 364
+#define GetQueryObjectui64vEXT_remap_index 365
#define CALL_AttachShader(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLuint, GLuint)), driDispatchRemapTable[AttachShader_remap_index], parameters)
#define GET_AttachShader(disp) GET_by_offset(disp, driDispatchRemapTable[AttachShader_remap_index])
@@ -3832,6 +3836,9 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define CALL_FramebufferTextureLayerEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLuint, GLint, GLint)), driDispatchRemapTable[FramebufferTextureLayerEXT_remap_index], parameters)
#define GET_FramebufferTextureLayerEXT(disp) GET_by_offset(disp, driDispatchRemapTable[FramebufferTextureLayerEXT_remap_index])
#define SET_FramebufferTextureLayerEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[FramebufferTextureLayerEXT_remap_index], fn)
+#define CALL_StencilFuncSeparateATI(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLint, GLuint)), driDispatchRemapTable[StencilFuncSeparateATI_remap_index], parameters)
+#define GET_StencilFuncSeparateATI(disp) GET_by_offset(disp, driDispatchRemapTable[StencilFuncSeparateATI_remap_index])
+#define SET_StencilFuncSeparateATI(disp, fn) SET_by_offset(disp, driDispatchRemapTable[StencilFuncSeparateATI_remap_index], fn)
#define CALL_ProgramEnvParameters4fvEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLuint, GLsizei, const GLfloat *)), driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index], parameters)
#define GET_ProgramEnvParameters4fvEXT(disp) GET_by_offset(disp, driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index])
#define SET_ProgramEnvParameters4fvEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index], fn)
diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml
index 4bd3b2f0fb7..3d47e6f2cef 100644
--- a/src/mesa/glapi/gl_API.xml
+++ b/src/mesa/glapi/gl_API.xml
@@ -5138,7 +5138,7 @@
<function name="StencilOpSeparate" offset="assign">
<param name="face" type="GLenum"/>
- <param name="fail" type="GLenum"/>
+ <param name="sfail" type="GLenum"/>
<param name="zfail" type="GLenum"/>
<param name="zpass" type="GLenum"/>
<glx ignore="true"/>
@@ -12156,6 +12156,35 @@
</function>
</category>
+<category name="GL_ATI_separate_stencil">
+ <enum name="STENCIL_BACK_FUNC_ATI" count="1" value="0x8800">
+ <size name="Get" mode="get"/>
+ </enum>
+ <enum name="STENCIL_BACK_FAIL_ATI" count="1" value="0x8801">
+ <size name="Get" mode="get"/>
+ </enum>
+ <enum name="STENCIL_BACK_PASS_DEPTH_FAIL_ATI" count="1" value="0x8802">
+ <size name="Get" mode="get"/>
+ </enum>
+ <enum name="STENCIL_BACK_PASS_DEPTH_PASS_ATI" count="1" value="0x8803">
+ <size name="Get" mode="get"/>
+ </enum>
+
+ <function name="StencilOpSeparateATI" alias="StencilOpSeparate" static_dispatch="false">
+ <param name="face" type="GLenum"/>
+ <param name="sfail" type="GLenum"/>
+ <param name="zfail" type="GLenum"/>
+ <param name="zpass" type="GLenum"/>
+ </function>
+ <function name="StencilFuncSeparateATI" offset="assign" static_dispatch="false">
+ <param name="frontfunc" type="GLenum"/>
+ <param name="backfunc" type="GLenum"/>
+ <param name="ref" type="GLint"/>
+ <param name="mask" type="GLuint"/>
+ </function>
+
+</category>
+
<category name="GL_EXT_gpu_program_parameters">
<function name="ProgramEnvParameters4fvEXT" offset="assign" static_dispatch="false">
<param name="target" type="GLenum"/>
diff --git a/src/mesa/glapi/glapioffsets.h b/src/mesa/glapi/glapioffsets.h
index c207a06ac46..4799fd3076e 100644
--- a/src/mesa/glapi/glapioffsets.h
+++ b/src/mesa/glapi/glapioffsets.h
@@ -801,11 +801,12 @@
#define _gloffset_RenderbufferStorageEXT 766
#define _gloffset_BlitFramebufferEXT 767
#define _gloffset_FramebufferTextureLayerEXT 768
-#define _gloffset_ProgramEnvParameters4fvEXT 769
-#define _gloffset_ProgramLocalParameters4fvEXT 770
-#define _gloffset_GetQueryObjecti64vEXT 771
-#define _gloffset_GetQueryObjectui64vEXT 772
-#define _gloffset_FIRST_DYNAMIC 773
+#define _gloffset_StencilFuncSeparateATI 769
+#define _gloffset_ProgramEnvParameters4fvEXT 770
+#define _gloffset_ProgramLocalParameters4fvEXT 771
+#define _gloffset_GetQueryObjecti64vEXT 772
+#define _gloffset_GetQueryObjectui64vEXT 773
+#define _gloffset_FIRST_DYNAMIC 774
#else
@@ -1170,6 +1171,7 @@
#define _gloffset_RenderbufferStorageEXT driDispatchRemapTable[RenderbufferStorageEXT_remap_index]
#define _gloffset_BlitFramebufferEXT driDispatchRemapTable[BlitFramebufferEXT_remap_index]
#define _gloffset_FramebufferTextureLayerEXT driDispatchRemapTable[FramebufferTextureLayerEXT_remap_index]
+#define _gloffset_StencilFuncSeparateATI driDispatchRemapTable[StencilFuncSeparateATI_remap_index]
#define _gloffset_ProgramEnvParameters4fvEXT driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index]
#define _gloffset_ProgramLocalParameters4fvEXT driDispatchRemapTable[ProgramLocalParameters4fvEXT_remap_index]
#define _gloffset_GetQueryObjecti64vEXT driDispatchRemapTable[GetQueryObjecti64vEXT_remap_index]
diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h
index 1e4c2949e46..22c2dc2f69f 100644
--- a/src/mesa/glapi/glapitable.h
+++ b/src/mesa/glapi/glapitable.h
@@ -464,7 +464,7 @@ struct _glapi_table
GLboolean (GLAPIENTRYP IsShader)(GLuint shader); /* 420 */
void (GLAPIENTRYP StencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask); /* 421 */
void (GLAPIENTRYP StencilMaskSeparate)(GLenum face, GLuint mask); /* 422 */
- void (GLAPIENTRYP StencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); /* 423 */
+ void (GLAPIENTRYP StencilOpSeparate)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass); /* 423 */
void (GLAPIENTRYP UniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 424 */
void (GLAPIENTRYP UniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 425 */
void (GLAPIENTRYP UniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 426 */
@@ -810,10 +810,11 @@ struct _glapi_table
void (GLAPIENTRYP RenderbufferStorageEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); /* 766 */
void (GLAPIENTRYP BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* 767 */
void (GLAPIENTRYP FramebufferTextureLayerEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); /* 768 */
- void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 769 */
- void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 770 */
- void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 771 */
- void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 772 */
+ void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 769 */
+ void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 770 */
+ void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 771 */
+ void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 772 */
+ void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 773 */
};
#endif /* !defined( _GLAPI_TABLE_H_ ) */
diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h
index 10af9b30858..6ded362c0ef 100644
--- a/src/mesa/glapi/glapitemp.h
+++ b/src/mesa/glapi/glapitemp.h
@@ -2754,9 +2754,16 @@ KEYWORD1 void KEYWORD2 NAME(StencilMaskSeparate)(GLenum face, GLuint mask)
DISPATCH(StencilMaskSeparate, (face, mask), (F, "glStencilMaskSeparate(0x%x, %d);\n", face, mask));
}
-KEYWORD1 void KEYWORD2 NAME(StencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+KEYWORD1 void KEYWORD2 NAME(StencilOpSeparate)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass)
{
- DISPATCH(StencilOpSeparate, (face, fail, zfail, zpass), (F, "glStencilOpSeparate(0x%x, 0x%x, 0x%x, 0x%x);\n", face, fail, zfail, zpass));
+ DISPATCH(StencilOpSeparate, (face, sfail, zfail, zpass), (F, "glStencilOpSeparate(0x%x, 0x%x, 0x%x, 0x%x);\n", face, sfail, zfail, zpass));
+}
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_423)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_423)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass)
+{
+ DISPATCH(StencilOpSeparate, (face, sfail, zfail, zpass), (F, "glStencilOpSeparateATI(0x%x, 0x%x, 0x%x, 0x%x);\n", face, sfail, zfail, zpass));
}
KEYWORD1 void KEYWORD2 NAME(UniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
@@ -5446,30 +5453,37 @@ KEYWORD1 void KEYWORD2 NAME(FramebufferTextureLayerEXT)(GLenum target, GLenum at
DISPATCH(FramebufferTextureLayerEXT, (target, attachment, texture, level, layer), (F, "glFramebufferTextureLayerEXT(0x%x, 0x%x, %d, %d, %d);\n", target, attachment, texture, level, layer));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_769)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_769)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_769)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_769)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
{
- DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
+ DISPATCH(StencilFuncSeparateATI, (frontfunc, backfunc, ref, mask), (F, "glStencilFuncSeparateATI(0x%x, 0x%x, %d, %d);\n", frontfunc, backfunc, ref, mask));
}
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_770)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_770)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
{
+ DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
+}
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_771)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_771)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
+{
DISPATCH(ProgramLocalParameters4fvEXT, (target, index, count, params), (F, "glProgramLocalParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_771)(GLuint id, GLenum pname, GLint64EXT * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_772)(GLuint id, GLenum pname, GLint64EXT * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_771)(GLuint id, GLenum pname, GLint64EXT * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_772)(GLuint id, GLenum pname, GLint64EXT * params)
{
DISPATCH(GetQueryObjecti64vEXT, (id, pname, params), (F, "glGetQueryObjecti64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_772)(GLuint id, GLenum pname, GLuint64EXT * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_773)(GLuint id, GLenum pname, GLuint64EXT * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_772)(GLuint id, GLenum pname, GLuint64EXT * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_773)(GLuint id, GLenum pname, GLuint64EXT * params)
{
DISPATCH(GetQueryObjectui64vEXT, (id, pname, params), (F, "glGetQueryObjectui64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params));
}
@@ -6261,6 +6275,7 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(_dispatch_stub_770),
TABLE_ENTRY(_dispatch_stub_771),
TABLE_ENTRY(_dispatch_stub_772),
+ TABLE_ENTRY(_dispatch_stub_773),
/* A whole bunch of no-op functions. These might be called
* when someone tries to call a dynamically-registered
* extension function without a current rendering context.
diff --git a/src/mesa/glapi/glprocs.h b/src/mesa/glapi/glprocs.h
index c461333c51e..abc22a9a042 100644
--- a/src/mesa/glapi/glprocs.h
+++ b/src/mesa/glapi/glprocs.h
@@ -821,6 +821,7 @@ static const char gl_string_table[] =
"glRenderbufferStorageEXT\0"
"glBlitFramebufferEXT\0"
"glFramebufferTextureLayerEXT\0"
+ "glStencilFuncSeparateATI\0"
"glProgramEnvParameters4fvEXT\0"
"glProgramLocalParameters4fvEXT\0"
"glGetQueryObjecti64vEXT\0"
@@ -916,6 +917,7 @@ static const char gl_string_table[] =
"glMultiTexCoord4iv\0"
"glMultiTexCoord4s\0"
"glMultiTexCoord4sv\0"
+ "glStencilOpSeparateATI\0"
"glLoadTransposeMatrixd\0"
"glLoadTransposeMatrixf\0"
"glMultTransposeMatrixd\0"
@@ -1148,6 +1150,7 @@ static const char gl_string_table[] =
#define gl_dispatch_stub_770 mgl_dispatch_stub_770
#define gl_dispatch_stub_771 mgl_dispatch_stub_771
#define gl_dispatch_stub_772 mgl_dispatch_stub_772
+#define gl_dispatch_stub_773 mgl_dispatch_stub_773
#endif /* USE_MGL_NAMESPACE */
@@ -1198,6 +1201,7 @@ extern void gl_dispatch_stub_769(void);
extern void gl_dispatch_stub_770(void);
extern void gl_dispatch_stub_771(void);
extern void gl_dispatch_stub_772(void);
+extern void gl_dispatch_stub_773(void);
#endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */
static const glprocs_table_t static_functions[] = {
@@ -1970,284 +1974,286 @@ static const glprocs_table_t static_functions[] = {
NAME_FUNC_OFFSET(13424, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
NAME_FUNC_OFFSET(13449, gl_dispatch_stub_767, gl_dispatch_stub_767, NULL, _gloffset_BlitFramebufferEXT),
NAME_FUNC_OFFSET(13470, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT),
- NAME_FUNC_OFFSET(13499, gl_dispatch_stub_769, gl_dispatch_stub_769, NULL, _gloffset_ProgramEnvParameters4fvEXT),
- NAME_FUNC_OFFSET(13528, gl_dispatch_stub_770, gl_dispatch_stub_770, NULL, _gloffset_ProgramLocalParameters4fvEXT),
- NAME_FUNC_OFFSET(13559, gl_dispatch_stub_771, gl_dispatch_stub_771, NULL, _gloffset_GetQueryObjecti64vEXT),
- NAME_FUNC_OFFSET(13583, gl_dispatch_stub_772, gl_dispatch_stub_772, NULL, _gloffset_GetQueryObjectui64vEXT),
- NAME_FUNC_OFFSET(13608, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement),
- NAME_FUNC_OFFSET(13626, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture),
- NAME_FUNC_OFFSET(13643, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays),
- NAME_FUNC_OFFSET(13659, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident),
- NAME_FUNC_OFFSET(13684, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D),
- NAME_FUNC_OFFSET(13704, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D),
- NAME_FUNC_OFFSET(13724, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D),
- NAME_FUNC_OFFSET(13747, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D),
- NAME_FUNC_OFFSET(13770, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures),
- NAME_FUNC_OFFSET(13790, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures),
- NAME_FUNC_OFFSET(13807, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv),
- NAME_FUNC_OFFSET(13824, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture),
- NAME_FUNC_OFFSET(13839, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures),
- NAME_FUNC_OFFSET(13863, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D),
- NAME_FUNC_OFFSET(13882, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D),
- NAME_FUNC_OFFSET(13901, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor),
- NAME_FUNC_OFFSET(13917, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation),
- NAME_FUNC_OFFSET(13936, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements),
- NAME_FUNC_OFFSET(13959, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
- NAME_FUNC_OFFSET(13975, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
- NAME_FUNC_OFFSET(13991, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv),
- NAME_FUNC_OFFSET(14018, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv),
- NAME_FUNC_OFFSET(14045, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable),
- NAME_FUNC_OFFSET(14065, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
- NAME_FUNC_OFFSET(14084, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
- NAME_FUNC_OFFSET(14103, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
- NAME_FUNC_OFFSET(14133, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
- NAME_FUNC_OFFSET(14163, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
- NAME_FUNC_OFFSET(14193, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
- NAME_FUNC_OFFSET(14223, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable),
- NAME_FUNC_OFFSET(14242, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable),
- NAME_FUNC_OFFSET(14265, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D),
- NAME_FUNC_OFFSET(14290, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D),
- NAME_FUNC_OFFSET(14315, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf),
- NAME_FUNC_OFFSET(14342, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv),
- NAME_FUNC_OFFSET(14370, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri),
- NAME_FUNC_OFFSET(14397, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv),
- NAME_FUNC_OFFSET(14425, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D),
- NAME_FUNC_OFFSET(14454, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D),
- NAME_FUNC_OFFSET(14483, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter),
- NAME_FUNC_OFFSET(14509, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv),
- NAME_FUNC_OFFSET(14540, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv),
- NAME_FUNC_OFFSET(14571, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter),
- NAME_FUNC_OFFSET(14595, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D),
- NAME_FUNC_OFFSET(14618, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram),
- NAME_FUNC_OFFSET(14636, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv),
- NAME_FUNC_OFFSET(14665, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv),
- NAME_FUNC_OFFSET(14694, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax),
- NAME_FUNC_OFFSET(14709, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv),
- NAME_FUNC_OFFSET(14735, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv),
- NAME_FUNC_OFFSET(14761, glHistogram, glHistogram, NULL, _gloffset_Histogram),
- NAME_FUNC_OFFSET(14776, glMinmax, glMinmax, NULL, _gloffset_Minmax),
- NAME_FUNC_OFFSET(14788, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram),
- NAME_FUNC_OFFSET(14808, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax),
- NAME_FUNC_OFFSET(14825, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D),
- NAME_FUNC_OFFSET(14841, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D),
- NAME_FUNC_OFFSET(14860, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D),
- NAME_FUNC_OFFSET(14883, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB),
- NAME_FUNC_OFFSET(14899, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB),
- NAME_FUNC_OFFSET(14921, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB),
- NAME_FUNC_OFFSET(14939, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB),
- NAME_FUNC_OFFSET(14958, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB),
- NAME_FUNC_OFFSET(14976, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB),
- NAME_FUNC_OFFSET(14995, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB),
- NAME_FUNC_OFFSET(15013, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB),
- NAME_FUNC_OFFSET(15032, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB),
- NAME_FUNC_OFFSET(15050, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB),
- NAME_FUNC_OFFSET(15069, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB),
- NAME_FUNC_OFFSET(15087, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB),
- NAME_FUNC_OFFSET(15106, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB),
- NAME_FUNC_OFFSET(15124, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB),
- NAME_FUNC_OFFSET(15143, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB),
- NAME_FUNC_OFFSET(15161, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB),
- NAME_FUNC_OFFSET(15180, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB),
- NAME_FUNC_OFFSET(15198, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB),
- NAME_FUNC_OFFSET(15217, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB),
- NAME_FUNC_OFFSET(15235, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB),
- NAME_FUNC_OFFSET(15254, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB),
- NAME_FUNC_OFFSET(15272, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB),
- NAME_FUNC_OFFSET(15291, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB),
- NAME_FUNC_OFFSET(15309, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB),
- NAME_FUNC_OFFSET(15328, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB),
- NAME_FUNC_OFFSET(15346, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB),
- NAME_FUNC_OFFSET(15365, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB),
- NAME_FUNC_OFFSET(15383, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB),
- NAME_FUNC_OFFSET(15402, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB),
- NAME_FUNC_OFFSET(15420, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB),
- NAME_FUNC_OFFSET(15439, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB),
- NAME_FUNC_OFFSET(15457, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB),
- NAME_FUNC_OFFSET(15476, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB),
- NAME_FUNC_OFFSET(15494, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB),
- NAME_FUNC_OFFSET(15513, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB),
- NAME_FUNC_OFFSET(15536, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB),
- NAME_FUNC_OFFSET(15559, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB),
- NAME_FUNC_OFFSET(15582, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB),
- NAME_FUNC_OFFSET(15605, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB),
- NAME_FUNC_OFFSET(15622, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB),
- NAME_FUNC_OFFSET(15645, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB),
- NAME_FUNC_OFFSET(15668, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB),
- NAME_FUNC_OFFSET(15691, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB),
- NAME_FUNC_OFFSET(15717, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB),
- NAME_FUNC_OFFSET(15743, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB),
- NAME_FUNC_OFFSET(15769, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB),
- NAME_FUNC_OFFSET(15793, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB),
- NAME_FUNC_OFFSET(15820, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB),
- NAME_FUNC_OFFSET(15846, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB),
- NAME_FUNC_OFFSET(15866, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB),
- NAME_FUNC_OFFSET(15886, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB),
- NAME_FUNC_OFFSET(15906, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB),
- NAME_FUNC_OFFSET(15923, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB),
- NAME_FUNC_OFFSET(15941, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB),
- NAME_FUNC_OFFSET(15958, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB),
- NAME_FUNC_OFFSET(15976, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB),
- NAME_FUNC_OFFSET(15993, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB),
- NAME_FUNC_OFFSET(16011, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB),
- NAME_FUNC_OFFSET(16028, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB),
- NAME_FUNC_OFFSET(16046, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB),
- NAME_FUNC_OFFSET(16063, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB),
- NAME_FUNC_OFFSET(16081, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB),
- NAME_FUNC_OFFSET(16098, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB),
- NAME_FUNC_OFFSET(16116, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB),
- NAME_FUNC_OFFSET(16133, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB),
- NAME_FUNC_OFFSET(16151, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB),
- NAME_FUNC_OFFSET(16168, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB),
- NAME_FUNC_OFFSET(16186, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB),
- NAME_FUNC_OFFSET(16203, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB),
- NAME_FUNC_OFFSET(16221, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB),
- NAME_FUNC_OFFSET(16240, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB),
- NAME_FUNC_OFFSET(16259, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB),
- NAME_FUNC_OFFSET(16278, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB),
- NAME_FUNC_OFFSET(16297, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
- NAME_FUNC_OFFSET(16317, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
- NAME_FUNC_OFFSET(16337, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
- NAME_FUNC_OFFSET(16357, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
- NAME_FUNC_OFFSET(16375, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
- NAME_FUNC_OFFSET(16392, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
- NAME_FUNC_OFFSET(16410, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
- NAME_FUNC_OFFSET(16427, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
- NAME_FUNC_OFFSET(16445, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
- NAME_FUNC_OFFSET(16463, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
- NAME_FUNC_OFFSET(16480, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
- NAME_FUNC_OFFSET(16498, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
- NAME_FUNC_OFFSET(16517, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
- NAME_FUNC_OFFSET(16536, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
- NAME_FUNC_OFFSET(16555, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
- NAME_FUNC_OFFSET(16577, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
- NAME_FUNC_OFFSET(16590, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
- NAME_FUNC_OFFSET(16603, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
- NAME_FUNC_OFFSET(16619, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
- NAME_FUNC_OFFSET(16635, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
- NAME_FUNC_OFFSET(16648, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
- NAME_FUNC_OFFSET(16671, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
- NAME_FUNC_OFFSET(16691, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
- NAME_FUNC_OFFSET(16710, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
- NAME_FUNC_OFFSET(16721, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
- NAME_FUNC_OFFSET(16733, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
- NAME_FUNC_OFFSET(16747, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
- NAME_FUNC_OFFSET(16760, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
- NAME_FUNC_OFFSET(16776, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
- NAME_FUNC_OFFSET(16787, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
- NAME_FUNC_OFFSET(16800, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
- NAME_FUNC_OFFSET(16819, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
- NAME_FUNC_OFFSET(16839, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
- NAME_FUNC_OFFSET(16852, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
- NAME_FUNC_OFFSET(16862, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
- NAME_FUNC_OFFSET(16878, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
- NAME_FUNC_OFFSET(16897, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
- NAME_FUNC_OFFSET(16915, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
- NAME_FUNC_OFFSET(16936, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
- NAME_FUNC_OFFSET(16951, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
- NAME_FUNC_OFFSET(16966, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
- NAME_FUNC_OFFSET(16980, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
- NAME_FUNC_OFFSET(16995, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
- NAME_FUNC_OFFSET(17007, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
- NAME_FUNC_OFFSET(17020, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
- NAME_FUNC_OFFSET(17032, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
- NAME_FUNC_OFFSET(17045, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
- NAME_FUNC_OFFSET(17057, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
- NAME_FUNC_OFFSET(17070, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
- NAME_FUNC_OFFSET(17082, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
- NAME_FUNC_OFFSET(17095, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
- NAME_FUNC_OFFSET(17107, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
- NAME_FUNC_OFFSET(17120, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
- NAME_FUNC_OFFSET(17132, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
- NAME_FUNC_OFFSET(17145, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
- NAME_FUNC_OFFSET(17157, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
- NAME_FUNC_OFFSET(17170, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
- NAME_FUNC_OFFSET(17182, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
- NAME_FUNC_OFFSET(17195, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
- NAME_FUNC_OFFSET(17214, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
- NAME_FUNC_OFFSET(17233, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
- NAME_FUNC_OFFSET(17252, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
- NAME_FUNC_OFFSET(17265, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
- NAME_FUNC_OFFSET(17283, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
- NAME_FUNC_OFFSET(17304, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
- NAME_FUNC_OFFSET(17322, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
- NAME_FUNC_OFFSET(17342, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
- NAME_FUNC_OFFSET(17356, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
- NAME_FUNC_OFFSET(17373, gl_dispatch_stub_568, gl_dispatch_stub_568, NULL, _gloffset_SampleMaskSGIS),
- NAME_FUNC_OFFSET(17389, gl_dispatch_stub_569, gl_dispatch_stub_569, NULL, _gloffset_SamplePatternSGIS),
- NAME_FUNC_OFFSET(17408, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
- NAME_FUNC_OFFSET(17426, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
- NAME_FUNC_OFFSET(17447, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
- NAME_FUNC_OFFSET(17469, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
- NAME_FUNC_OFFSET(17488, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
- NAME_FUNC_OFFSET(17510, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
- NAME_FUNC_OFFSET(17533, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
- NAME_FUNC_OFFSET(17552, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
- NAME_FUNC_OFFSET(17572, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
- NAME_FUNC_OFFSET(17591, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
- NAME_FUNC_OFFSET(17611, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
- NAME_FUNC_OFFSET(17630, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
- NAME_FUNC_OFFSET(17650, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
- NAME_FUNC_OFFSET(17669, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
- NAME_FUNC_OFFSET(17689, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
- NAME_FUNC_OFFSET(17708, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
- NAME_FUNC_OFFSET(17728, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
- NAME_FUNC_OFFSET(17748, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
- NAME_FUNC_OFFSET(17769, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
- NAME_FUNC_OFFSET(17789, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
- NAME_FUNC_OFFSET(17810, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
- NAME_FUNC_OFFSET(17830, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
- NAME_FUNC_OFFSET(17851, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
- NAME_FUNC_OFFSET(17875, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
- NAME_FUNC_OFFSET(17893, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
- NAME_FUNC_OFFSET(17913, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
- NAME_FUNC_OFFSET(17931, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
- NAME_FUNC_OFFSET(17943, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
- NAME_FUNC_OFFSET(17956, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
- NAME_FUNC_OFFSET(17968, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
- NAME_FUNC_OFFSET(17981, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
- NAME_FUNC_OFFSET(18001, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
- NAME_FUNC_OFFSET(18025, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
- NAME_FUNC_OFFSET(18039, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
- NAME_FUNC_OFFSET(18056, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
- NAME_FUNC_OFFSET(18071, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
- NAME_FUNC_OFFSET(18089, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
- NAME_FUNC_OFFSET(18103, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
- NAME_FUNC_OFFSET(18120, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
- NAME_FUNC_OFFSET(18135, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
- NAME_FUNC_OFFSET(18153, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
- NAME_FUNC_OFFSET(18167, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
- NAME_FUNC_OFFSET(18184, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
- NAME_FUNC_OFFSET(18199, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
- NAME_FUNC_OFFSET(18217, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
- NAME_FUNC_OFFSET(18231, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
- NAME_FUNC_OFFSET(18248, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
- NAME_FUNC_OFFSET(18263, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
- NAME_FUNC_OFFSET(18281, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
- NAME_FUNC_OFFSET(18295, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
- NAME_FUNC_OFFSET(18312, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
- NAME_FUNC_OFFSET(18327, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
- NAME_FUNC_OFFSET(18345, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
- NAME_FUNC_OFFSET(18359, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
- NAME_FUNC_OFFSET(18376, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
- NAME_FUNC_OFFSET(18391, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
- NAME_FUNC_OFFSET(18409, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
- NAME_FUNC_OFFSET(18423, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
- NAME_FUNC_OFFSET(18440, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
- NAME_FUNC_OFFSET(18455, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
- NAME_FUNC_OFFSET(18473, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
- NAME_FUNC_OFFSET(18487, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
- NAME_FUNC_OFFSET(18504, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
- NAME_FUNC_OFFSET(18519, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
- NAME_FUNC_OFFSET(18537, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
- NAME_FUNC_OFFSET(18554, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
- NAME_FUNC_OFFSET(18574, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
- NAME_FUNC_OFFSET(18591, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
- NAME_FUNC_OFFSET(18617, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
- NAME_FUNC_OFFSET(18646, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
- NAME_FUNC_OFFSET(18661, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
- NAME_FUNC_OFFSET(18679, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
- NAME_FUNC_OFFSET(18698, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
- NAME_FUNC_OFFSET(18722, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
+ NAME_FUNC_OFFSET(13499, gl_dispatch_stub_769, gl_dispatch_stub_769, NULL, _gloffset_StencilFuncSeparateATI),
+ NAME_FUNC_OFFSET(13524, gl_dispatch_stub_770, gl_dispatch_stub_770, NULL, _gloffset_ProgramEnvParameters4fvEXT),
+ NAME_FUNC_OFFSET(13553, gl_dispatch_stub_771, gl_dispatch_stub_771, NULL, _gloffset_ProgramLocalParameters4fvEXT),
+ NAME_FUNC_OFFSET(13584, gl_dispatch_stub_772, gl_dispatch_stub_772, NULL, _gloffset_GetQueryObjecti64vEXT),
+ NAME_FUNC_OFFSET(13608, gl_dispatch_stub_773, gl_dispatch_stub_773, NULL, _gloffset_GetQueryObjectui64vEXT),
+ NAME_FUNC_OFFSET(13633, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement),
+ NAME_FUNC_OFFSET(13651, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture),
+ NAME_FUNC_OFFSET(13668, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays),
+ NAME_FUNC_OFFSET(13684, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident),
+ NAME_FUNC_OFFSET(13709, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D),
+ NAME_FUNC_OFFSET(13729, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D),
+ NAME_FUNC_OFFSET(13749, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D),
+ NAME_FUNC_OFFSET(13772, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D),
+ NAME_FUNC_OFFSET(13795, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures),
+ NAME_FUNC_OFFSET(13815, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures),
+ NAME_FUNC_OFFSET(13832, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv),
+ NAME_FUNC_OFFSET(13849, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture),
+ NAME_FUNC_OFFSET(13864, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures),
+ NAME_FUNC_OFFSET(13888, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D),
+ NAME_FUNC_OFFSET(13907, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D),
+ NAME_FUNC_OFFSET(13926, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor),
+ NAME_FUNC_OFFSET(13942, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation),
+ NAME_FUNC_OFFSET(13961, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements),
+ NAME_FUNC_OFFSET(13984, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
+ NAME_FUNC_OFFSET(14000, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
+ NAME_FUNC_OFFSET(14016, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv),
+ NAME_FUNC_OFFSET(14043, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv),
+ NAME_FUNC_OFFSET(14070, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable),
+ NAME_FUNC_OFFSET(14090, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
+ NAME_FUNC_OFFSET(14109, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
+ NAME_FUNC_OFFSET(14128, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
+ NAME_FUNC_OFFSET(14158, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
+ NAME_FUNC_OFFSET(14188, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
+ NAME_FUNC_OFFSET(14218, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
+ NAME_FUNC_OFFSET(14248, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable),
+ NAME_FUNC_OFFSET(14267, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable),
+ NAME_FUNC_OFFSET(14290, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D),
+ NAME_FUNC_OFFSET(14315, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D),
+ NAME_FUNC_OFFSET(14340, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf),
+ NAME_FUNC_OFFSET(14367, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv),
+ NAME_FUNC_OFFSET(14395, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri),
+ NAME_FUNC_OFFSET(14422, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv),
+ NAME_FUNC_OFFSET(14450, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D),
+ NAME_FUNC_OFFSET(14479, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D),
+ NAME_FUNC_OFFSET(14508, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter),
+ NAME_FUNC_OFFSET(14534, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv),
+ NAME_FUNC_OFFSET(14565, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv),
+ NAME_FUNC_OFFSET(14596, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter),
+ NAME_FUNC_OFFSET(14620, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D),
+ NAME_FUNC_OFFSET(14643, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram),
+ NAME_FUNC_OFFSET(14661, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv),
+ NAME_FUNC_OFFSET(14690, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv),
+ NAME_FUNC_OFFSET(14719, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax),
+ NAME_FUNC_OFFSET(14734, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv),
+ NAME_FUNC_OFFSET(14760, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv),
+ NAME_FUNC_OFFSET(14786, glHistogram, glHistogram, NULL, _gloffset_Histogram),
+ NAME_FUNC_OFFSET(14801, glMinmax, glMinmax, NULL, _gloffset_Minmax),
+ NAME_FUNC_OFFSET(14813, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram),
+ NAME_FUNC_OFFSET(14833, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax),
+ NAME_FUNC_OFFSET(14850, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D),
+ NAME_FUNC_OFFSET(14866, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D),
+ NAME_FUNC_OFFSET(14885, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D),
+ NAME_FUNC_OFFSET(14908, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB),
+ NAME_FUNC_OFFSET(14924, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB),
+ NAME_FUNC_OFFSET(14946, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB),
+ NAME_FUNC_OFFSET(14964, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB),
+ NAME_FUNC_OFFSET(14983, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB),
+ NAME_FUNC_OFFSET(15001, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB),
+ NAME_FUNC_OFFSET(15020, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB),
+ NAME_FUNC_OFFSET(15038, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB),
+ NAME_FUNC_OFFSET(15057, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB),
+ NAME_FUNC_OFFSET(15075, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB),
+ NAME_FUNC_OFFSET(15094, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB),
+ NAME_FUNC_OFFSET(15112, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB),
+ NAME_FUNC_OFFSET(15131, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB),
+ NAME_FUNC_OFFSET(15149, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB),
+ NAME_FUNC_OFFSET(15168, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB),
+ NAME_FUNC_OFFSET(15186, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB),
+ NAME_FUNC_OFFSET(15205, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB),
+ NAME_FUNC_OFFSET(15223, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB),
+ NAME_FUNC_OFFSET(15242, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB),
+ NAME_FUNC_OFFSET(15260, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB),
+ NAME_FUNC_OFFSET(15279, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB),
+ NAME_FUNC_OFFSET(15297, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB),
+ NAME_FUNC_OFFSET(15316, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB),
+ NAME_FUNC_OFFSET(15334, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB),
+ NAME_FUNC_OFFSET(15353, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB),
+ NAME_FUNC_OFFSET(15371, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB),
+ NAME_FUNC_OFFSET(15390, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB),
+ NAME_FUNC_OFFSET(15408, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB),
+ NAME_FUNC_OFFSET(15427, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB),
+ NAME_FUNC_OFFSET(15445, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB),
+ NAME_FUNC_OFFSET(15464, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB),
+ NAME_FUNC_OFFSET(15482, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB),
+ NAME_FUNC_OFFSET(15501, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB),
+ NAME_FUNC_OFFSET(15519, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB),
+ NAME_FUNC_OFFSET(15538, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate),
+ NAME_FUNC_OFFSET(15561, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB),
+ NAME_FUNC_OFFSET(15584, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB),
+ NAME_FUNC_OFFSET(15607, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB),
+ NAME_FUNC_OFFSET(15630, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB),
+ NAME_FUNC_OFFSET(15653, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB),
+ NAME_FUNC_OFFSET(15670, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB),
+ NAME_FUNC_OFFSET(15693, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB),
+ NAME_FUNC_OFFSET(15716, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB),
+ NAME_FUNC_OFFSET(15739, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB),
+ NAME_FUNC_OFFSET(15765, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB),
+ NAME_FUNC_OFFSET(15791, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB),
+ NAME_FUNC_OFFSET(15817, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB),
+ NAME_FUNC_OFFSET(15841, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB),
+ NAME_FUNC_OFFSET(15868, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB),
+ NAME_FUNC_OFFSET(15894, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB),
+ NAME_FUNC_OFFSET(15914, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB),
+ NAME_FUNC_OFFSET(15934, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB),
+ NAME_FUNC_OFFSET(15954, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB),
+ NAME_FUNC_OFFSET(15971, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB),
+ NAME_FUNC_OFFSET(15989, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB),
+ NAME_FUNC_OFFSET(16006, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB),
+ NAME_FUNC_OFFSET(16024, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB),
+ NAME_FUNC_OFFSET(16041, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB),
+ NAME_FUNC_OFFSET(16059, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB),
+ NAME_FUNC_OFFSET(16076, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB),
+ NAME_FUNC_OFFSET(16094, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB),
+ NAME_FUNC_OFFSET(16111, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB),
+ NAME_FUNC_OFFSET(16129, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB),
+ NAME_FUNC_OFFSET(16146, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB),
+ NAME_FUNC_OFFSET(16164, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB),
+ NAME_FUNC_OFFSET(16181, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB),
+ NAME_FUNC_OFFSET(16199, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB),
+ NAME_FUNC_OFFSET(16216, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB),
+ NAME_FUNC_OFFSET(16234, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB),
+ NAME_FUNC_OFFSET(16251, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB),
+ NAME_FUNC_OFFSET(16269, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB),
+ NAME_FUNC_OFFSET(16288, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB),
+ NAME_FUNC_OFFSET(16307, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB),
+ NAME_FUNC_OFFSET(16326, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB),
+ NAME_FUNC_OFFSET(16345, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
+ NAME_FUNC_OFFSET(16365, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
+ NAME_FUNC_OFFSET(16385, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
+ NAME_FUNC_OFFSET(16405, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
+ NAME_FUNC_OFFSET(16423, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
+ NAME_FUNC_OFFSET(16440, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
+ NAME_FUNC_OFFSET(16458, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
+ NAME_FUNC_OFFSET(16475, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
+ NAME_FUNC_OFFSET(16493, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
+ NAME_FUNC_OFFSET(16511, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
+ NAME_FUNC_OFFSET(16528, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
+ NAME_FUNC_OFFSET(16546, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
+ NAME_FUNC_OFFSET(16565, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
+ NAME_FUNC_OFFSET(16584, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
+ NAME_FUNC_OFFSET(16603, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
+ NAME_FUNC_OFFSET(16625, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
+ NAME_FUNC_OFFSET(16638, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
+ NAME_FUNC_OFFSET(16651, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
+ NAME_FUNC_OFFSET(16667, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
+ NAME_FUNC_OFFSET(16683, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
+ NAME_FUNC_OFFSET(16696, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
+ NAME_FUNC_OFFSET(16719, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
+ NAME_FUNC_OFFSET(16739, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
+ NAME_FUNC_OFFSET(16758, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
+ NAME_FUNC_OFFSET(16769, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
+ NAME_FUNC_OFFSET(16781, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
+ NAME_FUNC_OFFSET(16795, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
+ NAME_FUNC_OFFSET(16808, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
+ NAME_FUNC_OFFSET(16824, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
+ NAME_FUNC_OFFSET(16835, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
+ NAME_FUNC_OFFSET(16848, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
+ NAME_FUNC_OFFSET(16867, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
+ NAME_FUNC_OFFSET(16887, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
+ NAME_FUNC_OFFSET(16900, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
+ NAME_FUNC_OFFSET(16910, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
+ NAME_FUNC_OFFSET(16926, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
+ NAME_FUNC_OFFSET(16945, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
+ NAME_FUNC_OFFSET(16963, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
+ NAME_FUNC_OFFSET(16984, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
+ NAME_FUNC_OFFSET(16999, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
+ NAME_FUNC_OFFSET(17014, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
+ NAME_FUNC_OFFSET(17028, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
+ NAME_FUNC_OFFSET(17043, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
+ NAME_FUNC_OFFSET(17055, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
+ NAME_FUNC_OFFSET(17068, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
+ NAME_FUNC_OFFSET(17080, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
+ NAME_FUNC_OFFSET(17093, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
+ NAME_FUNC_OFFSET(17105, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
+ NAME_FUNC_OFFSET(17118, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
+ NAME_FUNC_OFFSET(17130, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
+ NAME_FUNC_OFFSET(17143, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
+ NAME_FUNC_OFFSET(17155, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
+ NAME_FUNC_OFFSET(17168, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
+ NAME_FUNC_OFFSET(17180, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
+ NAME_FUNC_OFFSET(17193, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
+ NAME_FUNC_OFFSET(17205, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
+ NAME_FUNC_OFFSET(17218, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
+ NAME_FUNC_OFFSET(17230, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
+ NAME_FUNC_OFFSET(17243, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
+ NAME_FUNC_OFFSET(17262, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
+ NAME_FUNC_OFFSET(17281, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
+ NAME_FUNC_OFFSET(17300, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
+ NAME_FUNC_OFFSET(17313, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
+ NAME_FUNC_OFFSET(17331, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
+ NAME_FUNC_OFFSET(17352, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
+ NAME_FUNC_OFFSET(17370, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
+ NAME_FUNC_OFFSET(17390, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
+ NAME_FUNC_OFFSET(17404, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
+ NAME_FUNC_OFFSET(17421, gl_dispatch_stub_568, gl_dispatch_stub_568, NULL, _gloffset_SampleMaskSGIS),
+ NAME_FUNC_OFFSET(17437, gl_dispatch_stub_569, gl_dispatch_stub_569, NULL, _gloffset_SamplePatternSGIS),
+ NAME_FUNC_OFFSET(17456, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
+ NAME_FUNC_OFFSET(17474, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
+ NAME_FUNC_OFFSET(17495, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
+ NAME_FUNC_OFFSET(17517, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
+ NAME_FUNC_OFFSET(17536, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
+ NAME_FUNC_OFFSET(17558, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
+ NAME_FUNC_OFFSET(17581, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
+ NAME_FUNC_OFFSET(17600, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
+ NAME_FUNC_OFFSET(17620, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
+ NAME_FUNC_OFFSET(17639, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
+ NAME_FUNC_OFFSET(17659, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
+ NAME_FUNC_OFFSET(17678, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
+ NAME_FUNC_OFFSET(17698, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
+ NAME_FUNC_OFFSET(17717, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
+ NAME_FUNC_OFFSET(17737, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
+ NAME_FUNC_OFFSET(17756, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
+ NAME_FUNC_OFFSET(17776, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
+ NAME_FUNC_OFFSET(17796, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
+ NAME_FUNC_OFFSET(17817, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
+ NAME_FUNC_OFFSET(17837, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
+ NAME_FUNC_OFFSET(17858, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
+ NAME_FUNC_OFFSET(17878, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
+ NAME_FUNC_OFFSET(17899, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
+ NAME_FUNC_OFFSET(17923, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
+ NAME_FUNC_OFFSET(17941, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
+ NAME_FUNC_OFFSET(17961, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
+ NAME_FUNC_OFFSET(17979, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
+ NAME_FUNC_OFFSET(17991, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
+ NAME_FUNC_OFFSET(18004, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
+ NAME_FUNC_OFFSET(18016, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
+ NAME_FUNC_OFFSET(18029, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
+ NAME_FUNC_OFFSET(18049, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
+ NAME_FUNC_OFFSET(18073, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
+ NAME_FUNC_OFFSET(18087, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
+ NAME_FUNC_OFFSET(18104, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
+ NAME_FUNC_OFFSET(18119, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
+ NAME_FUNC_OFFSET(18137, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
+ NAME_FUNC_OFFSET(18151, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
+ NAME_FUNC_OFFSET(18168, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
+ NAME_FUNC_OFFSET(18183, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
+ NAME_FUNC_OFFSET(18201, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
+ NAME_FUNC_OFFSET(18215, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
+ NAME_FUNC_OFFSET(18232, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
+ NAME_FUNC_OFFSET(18247, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
+ NAME_FUNC_OFFSET(18265, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
+ NAME_FUNC_OFFSET(18279, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
+ NAME_FUNC_OFFSET(18296, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
+ NAME_FUNC_OFFSET(18311, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
+ NAME_FUNC_OFFSET(18329, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
+ NAME_FUNC_OFFSET(18343, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
+ NAME_FUNC_OFFSET(18360, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
+ NAME_FUNC_OFFSET(18375, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
+ NAME_FUNC_OFFSET(18393, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
+ NAME_FUNC_OFFSET(18407, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
+ NAME_FUNC_OFFSET(18424, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
+ NAME_FUNC_OFFSET(18439, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
+ NAME_FUNC_OFFSET(18457, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
+ NAME_FUNC_OFFSET(18471, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
+ NAME_FUNC_OFFSET(18488, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
+ NAME_FUNC_OFFSET(18503, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
+ NAME_FUNC_OFFSET(18521, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
+ NAME_FUNC_OFFSET(18535, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
+ NAME_FUNC_OFFSET(18552, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
+ NAME_FUNC_OFFSET(18567, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
+ NAME_FUNC_OFFSET(18585, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
+ NAME_FUNC_OFFSET(18602, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
+ NAME_FUNC_OFFSET(18622, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
+ NAME_FUNC_OFFSET(18639, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
+ NAME_FUNC_OFFSET(18665, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
+ NAME_FUNC_OFFSET(18694, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
+ NAME_FUNC_OFFSET(18709, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
+ NAME_FUNC_OFFSET(18727, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
+ NAME_FUNC_OFFSET(18746, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
+ NAME_FUNC_OFFSET(18770, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0)
};
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index d5019ae045a..6aeb18fa272 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -1433,9 +1433,13 @@ LONGSTRING static const char enum_string_table[] =
"GL_STENCIL\0"
"GL_STENCIL_ATTACHMENT_EXT\0"
"GL_STENCIL_BACK_FAIL\0"
+ "GL_STENCIL_BACK_FAIL_ATI\0"
"GL_STENCIL_BACK_FUNC\0"
+ "GL_STENCIL_BACK_FUNC_ATI\0"
"GL_STENCIL_BACK_PASS_DEPTH_FAIL\0"
+ "GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI\0"
"GL_STENCIL_BACK_PASS_DEPTH_PASS\0"
+ "GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI\0"
"GL_STENCIL_BACK_REF\0"
"GL_STENCIL_BACK_VALUE_MASK\0"
"GL_STENCIL_BACK_WRITEMASK\0"
@@ -1783,7 +1787,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ZOOM_Y\0"
;
-static const enum_elt all_enums[1746] =
+static const enum_elt all_enums[1750] =
{
{ 0, 0x00000600 }, /* GL_2D */
{ 6, 0x00001407 }, /* GL_2_BYTES */
@@ -3183,354 +3187,358 @@ static const enum_elt all_enums[1746] =
{ 29675, 0x00001802 }, /* GL_STENCIL */
{ 29686, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
{ 29712, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
- { 29733, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
- { 29754, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- { 29786, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- { 29818, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
- { 29838, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
- { 29865, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
- { 29891, 0x00000D57 }, /* GL_STENCIL_BITS */
- { 29907, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
- { 29929, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
- { 29952, 0x00000B94 }, /* GL_STENCIL_FAIL */
- { 29968, 0x00000B92 }, /* GL_STENCIL_FUNC */
- { 29984, 0x00001901 }, /* GL_STENCIL_INDEX */
- { 30001, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
- { 30024, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
- { 30046, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
- { 30068, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
- { 30090, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
- { 30111, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
- { 30138, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
- { 30165, 0x00000B97 }, /* GL_STENCIL_REF */
- { 30180, 0x00000B90 }, /* GL_STENCIL_TEST */
- { 30196, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
- { 30225, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
- { 30247, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
- { 30268, 0x00000C33 }, /* GL_STEREO */
- { 30278, 0x000088E2 }, /* GL_STREAM_COPY */
- { 30293, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
- { 30312, 0x000088E0 }, /* GL_STREAM_DRAW */
- { 30327, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
- { 30346, 0x000088E1 }, /* GL_STREAM_READ */
- { 30361, 0x000088E1 }, /* GL_STREAM_READ_ARB */
- { 30380, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
- { 30397, 0x000084E7 }, /* GL_SUBTRACT */
- { 30409, 0x000084E7 }, /* GL_SUBTRACT_ARB */
- { 30425, 0x00002001 }, /* GL_T */
- { 30430, 0x00002A2A }, /* GL_T2F_C3F_V3F */
- { 30445, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
- { 30464, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
- { 30480, 0x00002A2B }, /* GL_T2F_N3F_V3F */
- { 30495, 0x00002A27 }, /* GL_T2F_V3F */
- { 30506, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
- { 30525, 0x00002A28 }, /* GL_T4F_V4F */
- { 30536, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
- { 30559, 0x00001702 }, /* GL_TEXTURE */
- { 30570, 0x000084C0 }, /* GL_TEXTURE0 */
- { 30582, 0x000084C0 }, /* GL_TEXTURE0_ARB */
- { 30598, 0x000084C1 }, /* GL_TEXTURE1 */
- { 30610, 0x000084CA }, /* GL_TEXTURE10 */
- { 30623, 0x000084CA }, /* GL_TEXTURE10_ARB */
- { 30640, 0x000084CB }, /* GL_TEXTURE11 */
- { 30653, 0x000084CB }, /* GL_TEXTURE11_ARB */
- { 30670, 0x000084CC }, /* GL_TEXTURE12 */
- { 30683, 0x000084CC }, /* GL_TEXTURE12_ARB */
- { 30700, 0x000084CD }, /* GL_TEXTURE13 */
- { 30713, 0x000084CD }, /* GL_TEXTURE13_ARB */
- { 30730, 0x000084CE }, /* GL_TEXTURE14 */
- { 30743, 0x000084CE }, /* GL_TEXTURE14_ARB */
- { 30760, 0x000084CF }, /* GL_TEXTURE15 */
- { 30773, 0x000084CF }, /* GL_TEXTURE15_ARB */
- { 30790, 0x000084D0 }, /* GL_TEXTURE16 */
- { 30803, 0x000084D0 }, /* GL_TEXTURE16_ARB */
- { 30820, 0x000084D1 }, /* GL_TEXTURE17 */
- { 30833, 0x000084D1 }, /* GL_TEXTURE17_ARB */
- { 30850, 0x000084D2 }, /* GL_TEXTURE18 */
- { 30863, 0x000084D2 }, /* GL_TEXTURE18_ARB */
- { 30880, 0x000084D3 }, /* GL_TEXTURE19 */
- { 30893, 0x000084D3 }, /* GL_TEXTURE19_ARB */
- { 30910, 0x000084C1 }, /* GL_TEXTURE1_ARB */
- { 30926, 0x000084C2 }, /* GL_TEXTURE2 */
- { 30938, 0x000084D4 }, /* GL_TEXTURE20 */
- { 30951, 0x000084D4 }, /* GL_TEXTURE20_ARB */
- { 30968, 0x000084D5 }, /* GL_TEXTURE21 */
- { 30981, 0x000084D5 }, /* GL_TEXTURE21_ARB */
- { 30998, 0x000084D6 }, /* GL_TEXTURE22 */
- { 31011, 0x000084D6 }, /* GL_TEXTURE22_ARB */
- { 31028, 0x000084D7 }, /* GL_TEXTURE23 */
- { 31041, 0x000084D7 }, /* GL_TEXTURE23_ARB */
- { 31058, 0x000084D8 }, /* GL_TEXTURE24 */
- { 31071, 0x000084D8 }, /* GL_TEXTURE24_ARB */
- { 31088, 0x000084D9 }, /* GL_TEXTURE25 */
- { 31101, 0x000084D9 }, /* GL_TEXTURE25_ARB */
- { 31118, 0x000084DA }, /* GL_TEXTURE26 */
- { 31131, 0x000084DA }, /* GL_TEXTURE26_ARB */
- { 31148, 0x000084DB }, /* GL_TEXTURE27 */
- { 31161, 0x000084DB }, /* GL_TEXTURE27_ARB */
- { 31178, 0x000084DC }, /* GL_TEXTURE28 */
- { 31191, 0x000084DC }, /* GL_TEXTURE28_ARB */
- { 31208, 0x000084DD }, /* GL_TEXTURE29 */
- { 31221, 0x000084DD }, /* GL_TEXTURE29_ARB */
- { 31238, 0x000084C2 }, /* GL_TEXTURE2_ARB */
- { 31254, 0x000084C3 }, /* GL_TEXTURE3 */
- { 31266, 0x000084DE }, /* GL_TEXTURE30 */
- { 31279, 0x000084DE }, /* GL_TEXTURE30_ARB */
- { 31296, 0x000084DF }, /* GL_TEXTURE31 */
- { 31309, 0x000084DF }, /* GL_TEXTURE31_ARB */
- { 31326, 0x000084C3 }, /* GL_TEXTURE3_ARB */
- { 31342, 0x000084C4 }, /* GL_TEXTURE4 */
- { 31354, 0x000084C4 }, /* GL_TEXTURE4_ARB */
- { 31370, 0x000084C5 }, /* GL_TEXTURE5 */
- { 31382, 0x000084C5 }, /* GL_TEXTURE5_ARB */
- { 31398, 0x000084C6 }, /* GL_TEXTURE6 */
- { 31410, 0x000084C6 }, /* GL_TEXTURE6_ARB */
- { 31426, 0x000084C7 }, /* GL_TEXTURE7 */
- { 31438, 0x000084C7 }, /* GL_TEXTURE7_ARB */
- { 31454, 0x000084C8 }, /* GL_TEXTURE8 */
- { 31466, 0x000084C8 }, /* GL_TEXTURE8_ARB */
- { 31482, 0x000084C9 }, /* GL_TEXTURE9 */
- { 31494, 0x000084C9 }, /* GL_TEXTURE9_ARB */
- { 31510, 0x00000DE0 }, /* GL_TEXTURE_1D */
- { 31524, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
- { 31548, 0x00000DE1 }, /* GL_TEXTURE_2D */
- { 31562, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
- { 31586, 0x0000806F }, /* GL_TEXTURE_3D */
- { 31600, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
- { 31622, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
- { 31648, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
- { 31670, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
- { 31692, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- { 31724, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
- { 31746, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
- { 31778, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
- { 31800, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
- { 31828, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
- { 31860, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- { 31893, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
- { 31925, 0x00040000 }, /* GL_TEXTURE_BIT */
- { 31940, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
- { 31961, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
- { 31986, 0x00001005 }, /* GL_TEXTURE_BORDER */
- { 32004, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
- { 32028, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- { 32059, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- { 32089, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- { 32119, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- { 32154, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- { 32185, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 32223, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
- { 32250, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- { 32282, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
- { 32316, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
- { 32340, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
- { 32368, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
- { 32392, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
- { 32420, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- { 32453, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
- { 32477, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
- { 32499, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
- { 32521, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
- { 32547, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
- { 32581, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- { 32614, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
- { 32651, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
- { 32679, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
- { 32711, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
- { 32734, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- { 32772, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
- { 32814, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- { 32845, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- { 32873, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- { 32903, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- { 32931, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
- { 32951, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
- { 32975, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- { 33006, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
- { 33041, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- { 33072, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
- { 33107, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- { 33138, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
- { 33173, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- { 33204, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
- { 33239, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- { 33270, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
- { 33305, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- { 33336, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
- { 33371, 0x00008071 }, /* GL_TEXTURE_DEPTH */
- { 33388, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
- { 33410, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
- { 33436, 0x00002300 }, /* GL_TEXTURE_ENV */
- { 33451, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
- { 33472, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
- { 33492, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
- { 33518, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
- { 33538, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
- { 33555, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
- { 33572, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
- { 33589, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
- { 33606, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
- { 33631, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
- { 33653, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
- { 33679, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
- { 33697, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
- { 33723, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
- { 33749, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
- { 33779, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
- { 33806, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
- { 33831, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
- { 33851, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
- { 33875, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- { 33902, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- { 33929, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- { 33956, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
- { 33982, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
- { 34012, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
- { 34034, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
- { 34052, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- { 34082, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- { 34110, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- { 34138, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- { 34166, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
- { 34187, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
- { 34206, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
- { 34228, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
- { 34247, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
- { 34267, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
- { 34292, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
- { 34316, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
- { 34336, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
- { 34360, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
- { 34380, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
- { 34403, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
- { 34428, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- { 34462, 0x00001000 }, /* GL_TEXTURE_WIDTH */
- { 34479, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
- { 34497, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
- { 34515, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
- { 34533, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
- { 34553, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
- { 34572, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- { 34601, 0x00001000 }, /* GL_TRANSFORM_BIT */
- { 34618, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
- { 34644, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
- { 34674, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- { 34706, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- { 34736, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
- { 34770, 0x0000862C }, /* GL_TRANSPOSE_NV */
- { 34786, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- { 34817, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
- { 34852, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- { 34880, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
- { 34912, 0x00000004 }, /* GL_TRIANGLES */
- { 34925, 0x00000006 }, /* GL_TRIANGLE_FAN */
- { 34941, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
- { 34962, 0x00000005 }, /* GL_TRIANGLE_STRIP */
- { 34980, 0x00000001 }, /* GL_TRUE */
- { 34988, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
- { 35008, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
- { 35031, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
- { 35051, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
- { 35072, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
- { 35094, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
- { 35116, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
- { 35136, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
- { 35157, 0x00001401 }, /* GL_UNSIGNED_BYTE */
- { 35174, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- { 35201, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
- { 35224, 0x00001405 }, /* GL_UNSIGNED_INT */
- { 35240, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
- { 35267, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
- { 35291, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- { 35322, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
- { 35346, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- { 35374, 0x00001403 }, /* GL_UNSIGNED_SHORT */
- { 35392, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- { 35422, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- { 35448, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- { 35478, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- { 35504, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
- { 35528, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- { 35556, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- { 35584, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
- { 35611, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- { 35643, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
- { 35674, 0x00008CA2 }, /* GL_UPPER_LEFT */
- { 35688, 0x00002A20 }, /* GL_V2F */
- { 35695, 0x00002A21 }, /* GL_V3F */
- { 35702, 0x00008B83 }, /* GL_VALIDATE_STATUS */
- { 35721, 0x00001F00 }, /* GL_VENDOR */
- { 35731, 0x00001F02 }, /* GL_VERSION */
- { 35742, 0x00008074 }, /* GL_VERTEX_ARRAY */
- { 35758, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- { 35788, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- { 35819, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
- { 35854, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
- { 35878, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
- { 35899, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
- { 35922, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
- { 35943, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- { 35970, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- { 35998, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- { 36026, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- { 36054, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- { 36082, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- { 36110, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- { 36138, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- { 36165, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- { 36192, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- { 36219, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- { 36246, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- { 36273, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- { 36300, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- { 36327, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- { 36354, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- { 36381, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- { 36419, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
- { 36461, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- { 36492, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
- { 36527, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- { 36561, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
- { 36599, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- { 36630, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
- { 36665, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- { 36693, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
- { 36725, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- { 36755, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
- { 36789, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- { 36817, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
- { 36849, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
- { 36869, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
- { 36891, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
- { 36920, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
- { 36941, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- { 36970, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
- { 37003, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
- { 37035, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- { 37062, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
- { 37093, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
- { 37123, 0x00008B31 }, /* GL_VERTEX_SHADER */
- { 37140, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
- { 37161, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
- { 37188, 0x00000BA2 }, /* GL_VIEWPORT */
- { 37200, 0x00000800 }, /* GL_VIEWPORT_BIT */
- { 37216, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
- { 37236, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- { 37267, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
- { 37302, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- { 37330, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- { 37355, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- { 37382, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- { 37407, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
- { 37431, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
- { 37450, 0x000088B9 }, /* GL_WRITE_ONLY */
- { 37464, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
- { 37482, 0x00001506 }, /* GL_XOR */
- { 37489, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
- { 37508, 0x00008757 }, /* GL_YCBCR_MESA */
- { 37522, 0x00000000 }, /* GL_ZERO */
- { 37530, 0x00000D16 }, /* GL_ZOOM_X */
- { 37540, 0x00000D17 }, /* GL_ZOOM_Y */
+ { 29733, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
+ { 29758, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
+ { 29779, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
+ { 29804, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ { 29836, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
+ { 29872, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ { 29904, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
+ { 29940, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
+ { 29960, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
+ { 29987, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
+ { 30013, 0x00000D57 }, /* GL_STENCIL_BITS */
+ { 30029, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
+ { 30051, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
+ { 30074, 0x00000B94 }, /* GL_STENCIL_FAIL */
+ { 30090, 0x00000B92 }, /* GL_STENCIL_FUNC */
+ { 30106, 0x00001901 }, /* GL_STENCIL_INDEX */
+ { 30123, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
+ { 30146, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
+ { 30168, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
+ { 30190, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
+ { 30212, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
+ { 30233, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ { 30260, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
+ { 30287, 0x00000B97 }, /* GL_STENCIL_REF */
+ { 30302, 0x00000B90 }, /* GL_STENCIL_TEST */
+ { 30318, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ { 30347, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
+ { 30369, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
+ { 30390, 0x00000C33 }, /* GL_STEREO */
+ { 30400, 0x000088E2 }, /* GL_STREAM_COPY */
+ { 30415, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
+ { 30434, 0x000088E0 }, /* GL_STREAM_DRAW */
+ { 30449, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
+ { 30468, 0x000088E1 }, /* GL_STREAM_READ */
+ { 30483, 0x000088E1 }, /* GL_STREAM_READ_ARB */
+ { 30502, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
+ { 30519, 0x000084E7 }, /* GL_SUBTRACT */
+ { 30531, 0x000084E7 }, /* GL_SUBTRACT_ARB */
+ { 30547, 0x00002001 }, /* GL_T */
+ { 30552, 0x00002A2A }, /* GL_T2F_C3F_V3F */
+ { 30567, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
+ { 30586, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
+ { 30602, 0x00002A2B }, /* GL_T2F_N3F_V3F */
+ { 30617, 0x00002A27 }, /* GL_T2F_V3F */
+ { 30628, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
+ { 30647, 0x00002A28 }, /* GL_T4F_V4F */
+ { 30658, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
+ { 30681, 0x00001702 }, /* GL_TEXTURE */
+ { 30692, 0x000084C0 }, /* GL_TEXTURE0 */
+ { 30704, 0x000084C0 }, /* GL_TEXTURE0_ARB */
+ { 30720, 0x000084C1 }, /* GL_TEXTURE1 */
+ { 30732, 0x000084CA }, /* GL_TEXTURE10 */
+ { 30745, 0x000084CA }, /* GL_TEXTURE10_ARB */
+ { 30762, 0x000084CB }, /* GL_TEXTURE11 */
+ { 30775, 0x000084CB }, /* GL_TEXTURE11_ARB */
+ { 30792, 0x000084CC }, /* GL_TEXTURE12 */
+ { 30805, 0x000084CC }, /* GL_TEXTURE12_ARB */
+ { 30822, 0x000084CD }, /* GL_TEXTURE13 */
+ { 30835, 0x000084CD }, /* GL_TEXTURE13_ARB */
+ { 30852, 0x000084CE }, /* GL_TEXTURE14 */
+ { 30865, 0x000084CE }, /* GL_TEXTURE14_ARB */
+ { 30882, 0x000084CF }, /* GL_TEXTURE15 */
+ { 30895, 0x000084CF }, /* GL_TEXTURE15_ARB */
+ { 30912, 0x000084D0 }, /* GL_TEXTURE16 */
+ { 30925, 0x000084D0 }, /* GL_TEXTURE16_ARB */
+ { 30942, 0x000084D1 }, /* GL_TEXTURE17 */
+ { 30955, 0x000084D1 }, /* GL_TEXTURE17_ARB */
+ { 30972, 0x000084D2 }, /* GL_TEXTURE18 */
+ { 30985, 0x000084D2 }, /* GL_TEXTURE18_ARB */
+ { 31002, 0x000084D3 }, /* GL_TEXTURE19 */
+ { 31015, 0x000084D3 }, /* GL_TEXTURE19_ARB */
+ { 31032, 0x000084C1 }, /* GL_TEXTURE1_ARB */
+ { 31048, 0x000084C2 }, /* GL_TEXTURE2 */
+ { 31060, 0x000084D4 }, /* GL_TEXTURE20 */
+ { 31073, 0x000084D4 }, /* GL_TEXTURE20_ARB */
+ { 31090, 0x000084D5 }, /* GL_TEXTURE21 */
+ { 31103, 0x000084D5 }, /* GL_TEXTURE21_ARB */
+ { 31120, 0x000084D6 }, /* GL_TEXTURE22 */
+ { 31133, 0x000084D6 }, /* GL_TEXTURE22_ARB */
+ { 31150, 0x000084D7 }, /* GL_TEXTURE23 */
+ { 31163, 0x000084D7 }, /* GL_TEXTURE23_ARB */
+ { 31180, 0x000084D8 }, /* GL_TEXTURE24 */
+ { 31193, 0x000084D8 }, /* GL_TEXTURE24_ARB */
+ { 31210, 0x000084D9 }, /* GL_TEXTURE25 */
+ { 31223, 0x000084D9 }, /* GL_TEXTURE25_ARB */
+ { 31240, 0x000084DA }, /* GL_TEXTURE26 */
+ { 31253, 0x000084DA }, /* GL_TEXTURE26_ARB */
+ { 31270, 0x000084DB }, /* GL_TEXTURE27 */
+ { 31283, 0x000084DB }, /* GL_TEXTURE27_ARB */
+ { 31300, 0x000084DC }, /* GL_TEXTURE28 */
+ { 31313, 0x000084DC }, /* GL_TEXTURE28_ARB */
+ { 31330, 0x000084DD }, /* GL_TEXTURE29 */
+ { 31343, 0x000084DD }, /* GL_TEXTURE29_ARB */
+ { 31360, 0x000084C2 }, /* GL_TEXTURE2_ARB */
+ { 31376, 0x000084C3 }, /* GL_TEXTURE3 */
+ { 31388, 0x000084DE }, /* GL_TEXTURE30 */
+ { 31401, 0x000084DE }, /* GL_TEXTURE30_ARB */
+ { 31418, 0x000084DF }, /* GL_TEXTURE31 */
+ { 31431, 0x000084DF }, /* GL_TEXTURE31_ARB */
+ { 31448, 0x000084C3 }, /* GL_TEXTURE3_ARB */
+ { 31464, 0x000084C4 }, /* GL_TEXTURE4 */
+ { 31476, 0x000084C4 }, /* GL_TEXTURE4_ARB */
+ { 31492, 0x000084C5 }, /* GL_TEXTURE5 */
+ { 31504, 0x000084C5 }, /* GL_TEXTURE5_ARB */
+ { 31520, 0x000084C6 }, /* GL_TEXTURE6 */
+ { 31532, 0x000084C6 }, /* GL_TEXTURE6_ARB */
+ { 31548, 0x000084C7 }, /* GL_TEXTURE7 */
+ { 31560, 0x000084C7 }, /* GL_TEXTURE7_ARB */
+ { 31576, 0x000084C8 }, /* GL_TEXTURE8 */
+ { 31588, 0x000084C8 }, /* GL_TEXTURE8_ARB */
+ { 31604, 0x000084C9 }, /* GL_TEXTURE9 */
+ { 31616, 0x000084C9 }, /* GL_TEXTURE9_ARB */
+ { 31632, 0x00000DE0 }, /* GL_TEXTURE_1D */
+ { 31646, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
+ { 31670, 0x00000DE1 }, /* GL_TEXTURE_2D */
+ { 31684, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
+ { 31708, 0x0000806F }, /* GL_TEXTURE_3D */
+ { 31722, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
+ { 31744, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
+ { 31770, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
+ { 31792, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
+ { 31814, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ { 31846, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
+ { 31868, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ { 31900, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
+ { 31922, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ { 31950, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
+ { 31982, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ { 32015, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
+ { 32047, 0x00040000 }, /* GL_TEXTURE_BIT */
+ { 32062, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
+ { 32083, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
+ { 32108, 0x00001005 }, /* GL_TEXTURE_BORDER */
+ { 32126, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
+ { 32150, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ { 32181, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ { 32211, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ { 32241, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ { 32276, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ { 32307, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 32345, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ { 32372, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ { 32404, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ { 32438, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
+ { 32462, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
+ { 32490, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
+ { 32514, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
+ { 32542, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ { 32575, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
+ { 32599, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
+ { 32621, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
+ { 32643, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
+ { 32669, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
+ { 32703, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ { 32736, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
+ { 32773, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
+ { 32801, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
+ { 32833, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
+ { 32856, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ { 32894, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
+ { 32936, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ { 32967, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ { 32995, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ { 33025, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ { 33053, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
+ { 33073, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
+ { 33097, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ { 33128, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
+ { 33163, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ { 33194, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
+ { 33229, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ { 33260, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
+ { 33295, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ { 33326, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
+ { 33361, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ { 33392, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
+ { 33427, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ { 33458, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
+ { 33493, 0x00008071 }, /* GL_TEXTURE_DEPTH */
+ { 33510, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
+ { 33532, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
+ { 33558, 0x00002300 }, /* GL_TEXTURE_ENV */
+ { 33573, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
+ { 33594, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
+ { 33614, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
+ { 33640, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
+ { 33660, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
+ { 33677, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
+ { 33694, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
+ { 33711, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
+ { 33728, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ { 33753, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
+ { 33775, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
+ { 33801, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
+ { 33819, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ { 33845, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
+ { 33871, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
+ { 33901, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
+ { 33928, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ { 33953, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
+ { 33973, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
+ { 33997, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ { 34024, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ { 34051, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ { 34078, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
+ { 34104, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
+ { 34134, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
+ { 34156, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
+ { 34174, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 34204, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ { 34232, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ { 34260, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ { 34288, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
+ { 34309, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
+ { 34328, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
+ { 34350, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
+ { 34369, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
+ { 34389, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
+ { 34414, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
+ { 34438, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
+ { 34458, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
+ { 34482, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
+ { 34502, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
+ { 34525, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
+ { 34550, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ { 34584, 0x00001000 }, /* GL_TEXTURE_WIDTH */
+ { 34601, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
+ { 34619, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
+ { 34637, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
+ { 34655, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
+ { 34675, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
+ { 34694, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ { 34723, 0x00001000 }, /* GL_TRANSFORM_BIT */
+ { 34740, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
+ { 34766, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
+ { 34796, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ { 34828, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ { 34858, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
+ { 34892, 0x0000862C }, /* GL_TRANSPOSE_NV */
+ { 34908, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ { 34939, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
+ { 34974, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ { 35002, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
+ { 35034, 0x00000004 }, /* GL_TRIANGLES */
+ { 35047, 0x00000006 }, /* GL_TRIANGLE_FAN */
+ { 35063, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
+ { 35084, 0x00000005 }, /* GL_TRIANGLE_STRIP */
+ { 35102, 0x00000001 }, /* GL_TRUE */
+ { 35110, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
+ { 35130, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
+ { 35153, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
+ { 35173, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
+ { 35194, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
+ { 35216, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
+ { 35238, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
+ { 35258, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
+ { 35279, 0x00001401 }, /* GL_UNSIGNED_BYTE */
+ { 35296, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ { 35323, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
+ { 35346, 0x00001405 }, /* GL_UNSIGNED_INT */
+ { 35362, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
+ { 35389, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
+ { 35413, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ { 35444, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
+ { 35468, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ { 35496, 0x00001403 }, /* GL_UNSIGNED_SHORT */
+ { 35514, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ { 35544, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ { 35570, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ { 35600, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ { 35626, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
+ { 35650, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ { 35678, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ { 35706, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
+ { 35733, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ { 35765, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
+ { 35796, 0x00008CA2 }, /* GL_UPPER_LEFT */
+ { 35810, 0x00002A20 }, /* GL_V2F */
+ { 35817, 0x00002A21 }, /* GL_V3F */
+ { 35824, 0x00008B83 }, /* GL_VALIDATE_STATUS */
+ { 35843, 0x00001F00 }, /* GL_VENDOR */
+ { 35853, 0x00001F02 }, /* GL_VERSION */
+ { 35864, 0x00008074 }, /* GL_VERTEX_ARRAY */
+ { 35880, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
+ { 35910, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ { 35941, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
+ { 35976, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
+ { 36000, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
+ { 36021, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
+ { 36044, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
+ { 36065, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ { 36092, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ { 36120, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ { 36148, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ { 36176, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ { 36204, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ { 36232, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ { 36260, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ { 36287, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ { 36314, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ { 36341, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ { 36368, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ { 36395, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ { 36422, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ { 36449, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ { 36476, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ { 36503, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ { 36541, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
+ { 36583, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ { 36614, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
+ { 36649, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ { 36683, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
+ { 36721, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ { 36752, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
+ { 36787, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ { 36815, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
+ { 36847, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ { 36877, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
+ { 36911, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ { 36939, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
+ { 36971, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
+ { 36991, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
+ { 37013, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ { 37042, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
+ { 37063, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ { 37092, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
+ { 37125, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
+ { 37157, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ { 37184, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
+ { 37215, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
+ { 37245, 0x00008B31 }, /* GL_VERTEX_SHADER */
+ { 37262, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
+ { 37283, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
+ { 37310, 0x00000BA2 }, /* GL_VIEWPORT */
+ { 37322, 0x00000800 }, /* GL_VIEWPORT_BIT */
+ { 37338, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
+ { 37358, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ { 37389, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
+ { 37424, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ { 37452, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ { 37477, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ { 37504, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ { 37529, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
+ { 37553, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
+ { 37572, 0x000088B9 }, /* GL_WRITE_ONLY */
+ { 37586, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
+ { 37604, 0x00001506 }, /* GL_XOR */
+ { 37611, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
+ { 37630, 0x00008757 }, /* GL_YCBCR_MESA */
+ { 37644, 0x00000000 }, /* GL_ZERO */
+ { 37652, 0x00000D16 }, /* GL_ZOOM_X */
+ { 37662, 0x00000D17 }, /* GL_ZOOM_Y */
};
static const unsigned reduced_enums[1284] =
@@ -3539,9 +3547,9 @@ static const unsigned reduced_enums[1284] =
645, /* GL_LINES */
647, /* GL_LINE_LOOP */
654, /* GL_LINE_STRIP */
- 1637, /* GL_TRIANGLES */
- 1640, /* GL_TRIANGLE_STRIP */
- 1638, /* GL_TRIANGLE_FAN */
+ 1641, /* GL_TRIANGLES */
+ 1644, /* GL_TRIANGLE_STRIP */
+ 1642, /* GL_TRIANGLE_FAN */
1211, /* GL_QUADS */
1213, /* GL_QUAD_STRIP */
1099, /* GL_POLYGON */
@@ -3664,24 +3672,24 @@ static const unsigned reduced_enums[1284] =
321, /* GL_DEPTH_CLEAR_VALUE */
332, /* GL_DEPTH_FUNC */
12, /* GL_ACCUM_CLEAR_VALUE */
- 1418, /* GL_STENCIL_TEST */
- 1406, /* GL_STENCIL_CLEAR_VALUE */
- 1408, /* GL_STENCIL_FUNC */
- 1420, /* GL_STENCIL_VALUE_MASK */
- 1407, /* GL_STENCIL_FAIL */
- 1415, /* GL_STENCIL_PASS_DEPTH_FAIL */
- 1416, /* GL_STENCIL_PASS_DEPTH_PASS */
- 1417, /* GL_STENCIL_REF */
- 1421, /* GL_STENCIL_WRITEMASK */
+ 1422, /* GL_STENCIL_TEST */
+ 1410, /* GL_STENCIL_CLEAR_VALUE */
+ 1412, /* GL_STENCIL_FUNC */
+ 1424, /* GL_STENCIL_VALUE_MASK */
+ 1411, /* GL_STENCIL_FAIL */
+ 1419, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ 1420, /* GL_STENCIL_PASS_DEPTH_PASS */
+ 1421, /* GL_STENCIL_REF */
+ 1425, /* GL_STENCIL_WRITEMASK */
791, /* GL_MATRIX_MODE */
958, /* GL_NORMALIZE */
- 1727, /* GL_VIEWPORT */
+ 1731, /* GL_VIEWPORT */
932, /* GL_MODELVIEW_STACK_DEPTH */
1191, /* GL_PROJECTION_STACK_DEPTH */
- 1616, /* GL_TEXTURE_STACK_DEPTH */
+ 1620, /* GL_TEXTURE_STACK_DEPTH */
930, /* GL_MODELVIEW_MATRIX */
1190, /* GL_PROJECTION_MATRIX */
- 1601, /* GL_TEXTURE_MATRIX */
+ 1605, /* GL_TEXTURE_MATRIX */
61, /* GL_ATTRIB_STACK_DEPTH */
127, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
43, /* GL_ALPHA_TEST */
@@ -3706,17 +3714,17 @@ static const unsigned reduced_enums[1284] =
587, /* GL_INDEX_MODE */
1287, /* GL_RGBA_MODE */
353, /* GL_DOUBLEBUFFER */
- 1422, /* GL_STEREO */
+ 1426, /* GL_STEREO */
1246, /* GL_RENDER_MODE */
1043, /* GL_PERSPECTIVE_CORRECTION_HINT */
1092, /* GL_POINT_SMOOTH_HINT */
650, /* GL_LINE_SMOOTH_HINT */
1109, /* GL_POLYGON_SMOOTH_HINT */
478, /* GL_FOG_HINT */
- 1582, /* GL_TEXTURE_GEN_S */
- 1583, /* GL_TEXTURE_GEN_T */
- 1581, /* GL_TEXTURE_GEN_R */
- 1580, /* GL_TEXTURE_GEN_Q */
+ 1586, /* GL_TEXTURE_GEN_S */
+ 1587, /* GL_TEXTURE_GEN_T */
+ 1585, /* GL_TEXTURE_GEN_R */
+ 1584, /* GL_TEXTURE_GEN_Q */
1056, /* GL_PIXEL_MAP_I_TO_I */
1062, /* GL_PIXEL_MAP_S_TO_S */
1058, /* GL_PIXEL_MAP_I_TO_R */
@@ -3737,12 +3745,12 @@ static const unsigned reduced_enums[1284] =
1049, /* GL_PIXEL_MAP_G_TO_G_SIZE */
1047, /* GL_PIXEL_MAP_B_TO_B_SIZE */
1045, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- 1649, /* GL_UNPACK_SWAP_BYTES */
- 1644, /* GL_UNPACK_LSB_FIRST */
- 1645, /* GL_UNPACK_ROW_LENGTH */
- 1648, /* GL_UNPACK_SKIP_ROWS */
- 1647, /* GL_UNPACK_SKIP_PIXELS */
- 1642, /* GL_UNPACK_ALIGNMENT */
+ 1653, /* GL_UNPACK_SWAP_BYTES */
+ 1648, /* GL_UNPACK_LSB_FIRST */
+ 1649, /* GL_UNPACK_ROW_LENGTH */
+ 1652, /* GL_UNPACK_SKIP_ROWS */
+ 1651, /* GL_UNPACK_SKIP_PIXELS */
+ 1646, /* GL_UNPACK_ALIGNMENT */
1031, /* GL_PACK_SWAP_BYTES */
1026, /* GL_PACK_LSB_FIRST */
1027, /* GL_PACK_ROW_LENGTH */
@@ -3755,8 +3763,8 @@ static const unsigned reduced_enums[1284] =
588, /* GL_INDEX_OFFSET */
1235, /* GL_RED_SCALE */
1233, /* GL_RED_BIAS */
- 1744, /* GL_ZOOM_X */
- 1745, /* GL_ZOOM_Y */
+ 1748, /* GL_ZOOM_X */
+ 1749, /* GL_ZOOM_Y */
551, /* GL_GREEN_SCALE */
549, /* GL_GREEN_BIAS */
92, /* GL_BLUE_SCALE */
@@ -3777,14 +3785,14 @@ static const unsigned reduced_enums[1284] =
866, /* GL_MAX_TEXTURE_STACK_DEPTH */
880, /* GL_MAX_VIEWPORT_DIMS */
797, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- 1429, /* GL_SUBPIXEL_BITS */
+ 1433, /* GL_SUBPIXEL_BITS */
584, /* GL_INDEX_BITS */
1234, /* GL_RED_BITS */
550, /* GL_GREEN_BITS */
91, /* GL_BLUE_BITS */
41, /* GL_ALPHA_BITS */
316, /* GL_DEPTH_BITS */
- 1404, /* GL_STENCIL_BITS */
+ 1408, /* GL_STENCIL_BITS */
14, /* GL_ACCUM_RED_BITS */
13, /* GL_ACCUM_GREEN_BITS */
10, /* GL_ACCUM_BLUE_BITS */
@@ -3813,18 +3821,18 @@ static const unsigned reduced_enums[1284] =
692, /* GL_MAP1_GRID_SEGMENTS */
718, /* GL_MAP2_GRID_DOMAIN */
719, /* GL_MAP2_GRID_SEGMENTS */
- 1506, /* GL_TEXTURE_1D */
- 1508, /* GL_TEXTURE_2D */
+ 1510, /* GL_TEXTURE_1D */
+ 1512, /* GL_TEXTURE_2D */
439, /* GL_FEEDBACK_BUFFER_POINTER */
440, /* GL_FEEDBACK_BUFFER_SIZE */
441, /* GL_FEEDBACK_BUFFER_TYPE */
1330, /* GL_SELECTION_BUFFER_POINTER */
1331, /* GL_SELECTION_BUFFER_SIZE */
- 1619, /* GL_TEXTURE_WIDTH */
- 1587, /* GL_TEXTURE_HEIGHT */
- 1543, /* GL_TEXTURE_COMPONENTS */
- 1527, /* GL_TEXTURE_BORDER_COLOR */
- 1526, /* GL_TEXTURE_BORDER */
+ 1623, /* GL_TEXTURE_WIDTH */
+ 1591, /* GL_TEXTURE_HEIGHT */
+ 1547, /* GL_TEXTURE_COMPONENTS */
+ 1531, /* GL_TEXTURE_BORDER_COLOR */
+ 1530, /* GL_TEXTURE_BORDER */
345, /* GL_DONT_CARE */
437, /* GL_FASTEST */
954, /* GL_NICEST */
@@ -3841,11 +3849,11 @@ static const unsigned reduced_enums[1284] =
219, /* GL_COMPILE */
220, /* GL_COMPILE_AND_EXECUTE */
111, /* GL_BYTE */
- 1650, /* GL_UNSIGNED_BYTE */
+ 1654, /* GL_UNSIGNED_BYTE */
1344, /* GL_SHORT */
- 1659, /* GL_UNSIGNED_SHORT */
+ 1663, /* GL_UNSIGNED_SHORT */
592, /* GL_INT */
- 1653, /* GL_UNSIGNED_INT */
+ 1657, /* GL_UNSIGNED_INT */
444, /* GL_FLOAT */
1, /* GL_2_BYTES */
5, /* GL_3_BYTES */
@@ -3857,7 +3865,7 @@ static const unsigned reduced_enums[1284] =
269, /* GL_COPY */
50, /* GL_AND_INVERTED */
956, /* GL_NOOP */
- 1740, /* GL_XOR */
+ 1744, /* GL_XOR */
1018, /* GL_OR */
957, /* GL_NOR */
427, /* GL_EQUIV */
@@ -3873,12 +3881,12 @@ static const unsigned reduced_enums[1284] =
165, /* GL_COLOR_INDEXES */
897, /* GL_MODELVIEW */
1189, /* GL_PROJECTION */
- 1441, /* GL_TEXTURE */
+ 1445, /* GL_TEXTURE */
138, /* GL_COLOR */
313, /* GL_DEPTH */
1395, /* GL_STENCIL */
164, /* GL_COLOR_INDEX */
- 1409, /* GL_STENCIL_INDEX */
+ 1413, /* GL_STENCIL_INDEX */
322, /* GL_DEPTH_COMPONENT */
1230, /* GL_RED */
548, /* GL_GREEN */
@@ -3901,23 +3909,23 @@ static const unsigned reduced_enums[1284] =
1248, /* GL_REPLACE */
575, /* GL_INCR */
309, /* GL_DECR */
- 1674, /* GL_VENDOR */
+ 1678, /* GL_VENDOR */
1245, /* GL_RENDERER */
- 1675, /* GL_VERSION */
+ 1679, /* GL_VERSION */
431, /* GL_EXTENSIONS */
1294, /* GL_S */
- 1432, /* GL_T */
+ 1436, /* GL_T */
1220, /* GL_R */
1209, /* GL_Q */
933, /* GL_MODULATE */
308, /* GL_DECAL */
- 1577, /* GL_TEXTURE_ENV_MODE */
- 1576, /* GL_TEXTURE_ENV_COLOR */
- 1575, /* GL_TEXTURE_ENV */
+ 1581, /* GL_TEXTURE_ENV_MODE */
+ 1580, /* GL_TEXTURE_ENV_COLOR */
+ 1579, /* GL_TEXTURE_ENV */
432, /* GL_EYE_LINEAR */
980, /* GL_OBJECT_LINEAR */
1374, /* GL_SPHERE_MAP */
- 1579, /* GL_TEXTURE_GEN_MODE */
+ 1583, /* GL_TEXTURE_GEN_MODE */
982, /* GL_OBJECT_PLANE */
433, /* GL_EYE_PLANE */
948, /* GL_NEAREST */
@@ -3926,30 +3934,30 @@ static const unsigned reduced_enums[1284] =
644, /* GL_LINEAR_MIPMAP_NEAREST */
951, /* GL_NEAREST_MIPMAP_LINEAR */
643, /* GL_LINEAR_MIPMAP_LINEAR */
- 1600, /* GL_TEXTURE_MAG_FILTER */
- 1608, /* GL_TEXTURE_MIN_FILTER */
- 1621, /* GL_TEXTURE_WRAP_S */
- 1622, /* GL_TEXTURE_WRAP_T */
+ 1604, /* GL_TEXTURE_MAG_FILTER */
+ 1612, /* GL_TEXTURE_MIN_FILTER */
+ 1625, /* GL_TEXTURE_WRAP_S */
+ 1626, /* GL_TEXTURE_WRAP_T */
117, /* GL_CLAMP */
1247, /* GL_REPEAT */
1107, /* GL_POLYGON_OFFSET_UNITS */
1106, /* GL_POLYGON_OFFSET_POINT */
1105, /* GL_POLYGON_OFFSET_LINE */
1221, /* GL_R3_G3_B2 */
- 1671, /* GL_V2F */
- 1672, /* GL_V3F */
+ 1675, /* GL_V2F */
+ 1676, /* GL_V3F */
114, /* GL_C4UB_V2F */
115, /* GL_C4UB_V3F */
112, /* GL_C3F_V3F */
945, /* GL_N3F_V3F */
113, /* GL_C4F_N3F_V3F */
- 1437, /* GL_T2F_V3F */
- 1439, /* GL_T4F_V4F */
- 1435, /* GL_T2F_C4UB_V3F */
- 1433, /* GL_T2F_C3F_V3F */
- 1436, /* GL_T2F_N3F_V3F */
- 1434, /* GL_T2F_C4F_N3F_V3F */
- 1438, /* GL_T4F_C4F_N3F_V4F */
+ 1441, /* GL_T2F_V3F */
+ 1443, /* GL_T4F_V4F */
+ 1439, /* GL_T2F_C4UB_V3F */
+ 1437, /* GL_T2F_C3F_V3F */
+ 1440, /* GL_T2F_N3F_V3F */
+ 1438, /* GL_T2F_C4F_N3F_V3F */
+ 1442, /* GL_T4F_C4F_N3F_V4F */
130, /* GL_CLIP_PLANE0 */
131, /* GL_CLIP_PLANE1 */
132, /* GL_CLIP_PLANE2 */
@@ -4009,12 +4017,12 @@ static const unsigned reduced_enums[1284] =
882, /* GL_MINMAX */
884, /* GL_MINMAX_FORMAT */
886, /* GL_MINMAX_SINK */
- 1440, /* GL_TABLE_TOO_LARGE_EXT */
- 1652, /* GL_UNSIGNED_BYTE_3_3_2 */
- 1661, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- 1663, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- 1657, /* GL_UNSIGNED_INT_8_8_8_8 */
- 1654, /* GL_UNSIGNED_INT_10_10_10_2 */
+ 1444, /* GL_TABLE_TOO_LARGE_EXT */
+ 1656, /* GL_UNSIGNED_BYTE_3_3_2 */
+ 1665, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ 1667, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ 1661, /* GL_UNSIGNED_INT_8_8_8_8 */
+ 1658, /* GL_UNSIGNED_INT_10_10_10_2 */
1104, /* GL_POLYGON_OFFSET_FILL */
1103, /* GL_POLYGON_OFFSET_FACTOR */
1102, /* GL_POLYGON_OFFSET_BIAS */
@@ -4052,39 +4060,39 @@ static const unsigned reduced_enums[1284] =
1256, /* GL_RGB10_A2 */
1274, /* GL_RGBA12 */
1276, /* GL_RGBA16 */
- 1613, /* GL_TEXTURE_RED_SIZE */
- 1585, /* GL_TEXTURE_GREEN_SIZE */
- 1524, /* GL_TEXTURE_BLUE_SIZE */
- 1511, /* GL_TEXTURE_ALPHA_SIZE */
- 1598, /* GL_TEXTURE_LUMINANCE_SIZE */
- 1589, /* GL_TEXTURE_INTENSITY_SIZE */
+ 1617, /* GL_TEXTURE_RED_SIZE */
+ 1589, /* GL_TEXTURE_GREEN_SIZE */
+ 1528, /* GL_TEXTURE_BLUE_SIZE */
+ 1515, /* GL_TEXTURE_ALPHA_SIZE */
+ 1602, /* GL_TEXTURE_LUMINANCE_SIZE */
+ 1593, /* GL_TEXTURE_INTENSITY_SIZE */
1249, /* GL_REPLACE_EXT */
1197, /* GL_PROXY_TEXTURE_1D */
1200, /* GL_PROXY_TEXTURE_2D */
- 1617, /* GL_TEXTURE_TOO_LARGE_EXT */
- 1610, /* GL_TEXTURE_PRIORITY */
- 1615, /* GL_TEXTURE_RESIDENT */
- 1514, /* GL_TEXTURE_BINDING_1D */
- 1516, /* GL_TEXTURE_BINDING_2D */
- 1518, /* GL_TEXTURE_BINDING_3D */
+ 1621, /* GL_TEXTURE_TOO_LARGE_EXT */
+ 1614, /* GL_TEXTURE_PRIORITY */
+ 1619, /* GL_TEXTURE_RESIDENT */
+ 1518, /* GL_TEXTURE_BINDING_1D */
+ 1520, /* GL_TEXTURE_BINDING_2D */
+ 1522, /* GL_TEXTURE_BINDING_3D */
1028, /* GL_PACK_SKIP_IMAGES */
1024, /* GL_PACK_IMAGE_HEIGHT */
- 1646, /* GL_UNPACK_SKIP_IMAGES */
- 1643, /* GL_UNPACK_IMAGE_HEIGHT */
- 1510, /* GL_TEXTURE_3D */
+ 1650, /* GL_UNPACK_SKIP_IMAGES */
+ 1647, /* GL_UNPACK_IMAGE_HEIGHT */
+ 1514, /* GL_TEXTURE_3D */
1203, /* GL_PROXY_TEXTURE_3D */
- 1572, /* GL_TEXTURE_DEPTH */
- 1620, /* GL_TEXTURE_WRAP_R */
+ 1576, /* GL_TEXTURE_DEPTH */
+ 1624, /* GL_TEXTURE_WRAP_R */
794, /* GL_MAX_3D_TEXTURE_SIZE */
- 1676, /* GL_VERTEX_ARRAY */
+ 1680, /* GL_VERTEX_ARRAY */
959, /* GL_NORMAL_ARRAY */
139, /* GL_COLOR_ARRAY */
578, /* GL_INDEX_ARRAY */
- 1551, /* GL_TEXTURE_COORD_ARRAY */
+ 1555, /* GL_TEXTURE_COORD_ARRAY */
415, /* GL_EDGE_FLAG_ARRAY */
- 1681, /* GL_VERTEX_ARRAY_SIZE */
- 1683, /* GL_VERTEX_ARRAY_TYPE */
- 1682, /* GL_VERTEX_ARRAY_STRIDE */
+ 1685, /* GL_VERTEX_ARRAY_SIZE */
+ 1687, /* GL_VERTEX_ARRAY_TYPE */
+ 1686, /* GL_VERTEX_ARRAY_STRIDE */
964, /* GL_NORMAL_ARRAY_TYPE */
963, /* GL_NORMAL_ARRAY_STRIDE */
143, /* GL_COLOR_ARRAY_SIZE */
@@ -4092,15 +4100,15 @@ static const unsigned reduced_enums[1284] =
144, /* GL_COLOR_ARRAY_STRIDE */
583, /* GL_INDEX_ARRAY_TYPE */
582, /* GL_INDEX_ARRAY_STRIDE */
- 1555, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- 1557, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- 1556, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ 1559, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ 1561, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ 1560, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
419, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- 1680, /* GL_VERTEX_ARRAY_POINTER */
+ 1684, /* GL_VERTEX_ARRAY_POINTER */
962, /* GL_NORMAL_ARRAY_POINTER */
142, /* GL_COLOR_ARRAY_POINTER */
581, /* GL_INDEX_ARRAY_POINTER */
- 1554, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ 1558, /* GL_TEXTURE_COORD_ARRAY_POINTER */
418, /* GL_EDGE_FLAG_ARRAY_POINTER */
938, /* GL_MULTISAMPLE */
1306, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
@@ -4121,9 +4129,9 @@ static const unsigned reduced_enums[1284] =
1123, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
1118, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
1114, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- 1534, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ 1538, /* GL_TEXTURE_COLOR_TABLE_SGI */
1204, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- 1536, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ 1540, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
80, /* GL_BLEND_DST_RGB */
88, /* GL_BLEND_SRC_RGB */
79, /* GL_BLEND_DST_ALPHA */
@@ -4148,7 +4156,7 @@ static const unsigned reduced_enums[1284] =
72, /* GL_BGRA */
816, /* GL_MAX_ELEMENTS_VERTICES */
815, /* GL_MAX_ELEMENTS_INDICES */
- 1588, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ 1592, /* GL_TEXTURE_INDEX_SIZE_EXT */
136, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
1086, /* GL_POINT_SIZE_MIN */
1082, /* GL_POINT_SIZE_MAX */
@@ -4156,10 +4164,10 @@ static const unsigned reduced_enums[1284] =
1072, /* GL_POINT_DISTANCE_ATTENUATION */
118, /* GL_CLAMP_TO_BORDER */
121, /* GL_CLAMP_TO_EDGE */
- 1609, /* GL_TEXTURE_MIN_LOD */
- 1607, /* GL_TEXTURE_MAX_LOD */
- 1513, /* GL_TEXTURE_BASE_LEVEL */
- 1606, /* GL_TEXTURE_MAX_LEVEL */
+ 1613, /* GL_TEXTURE_MIN_LOD */
+ 1611, /* GL_TEXTURE_MAX_LOD */
+ 1517, /* GL_TEXTURE_BASE_LEVEL */
+ 1610, /* GL_TEXTURE_MAX_LEVEL */
572, /* GL_IGNORE_BORDER_HP */
246, /* GL_CONSTANT_BORDER_HP */
1250, /* GL_REPLICATE_BORDER_HP */
@@ -4167,51 +4175,51 @@ static const unsigned reduced_enums[1284] =
987, /* GL_OCCLUSION_TEST_HP */
988, /* GL_OCCLUSION_TEST_RESULT_HP */
641, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- 1528, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- 1530, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- 1532, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- 1533, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1531, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- 1529, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ 1532, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ 1534, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ 1536, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ 1537, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 1535, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ 1533, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
798, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
799, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
1149, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
1151, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
1148, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
1150, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- 1596, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- 1597, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- 1595, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ 1600, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ 1601, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ 1599, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
518, /* GL_GENERATE_MIPMAP */
519, /* GL_GENERATE_MIPMAP_HINT */
481, /* GL_FOG_OFFSET_SGIX */
482, /* GL_FOG_OFFSET_VALUE_SGIX */
- 1542, /* GL_TEXTURE_COMPARE_SGIX */
- 1541, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- 1592, /* GL_TEXTURE_LEQUAL_R_SGIX */
- 1584, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ 1546, /* GL_TEXTURE_COMPARE_SGIX */
+ 1545, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ 1596, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ 1588, /* GL_TEXTURE_GEQUAL_R_SGIX */
323, /* GL_DEPTH_COMPONENT16 */
326, /* GL_DEPTH_COMPONENT24 */
329, /* GL_DEPTH_COMPONENT32 */
274, /* GL_CULL_VERTEX_EXT */
276, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
275, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- 1737, /* GL_WRAP_BORDER_SUN */
- 1535, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ 1741, /* GL_WRAP_BORDER_SUN */
+ 1539, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
634, /* GL_LIGHT_MODEL_COLOR_CONTROL */
1345, /* GL_SINGLE_COLOR */
1333, /* GL_SEPARATE_SPECULAR_COLOR */
1342, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- 1651, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- 1664, /* GL_UNSIGNED_SHORT_5_6_5 */
- 1665, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- 1662, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- 1660, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- 1658, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- 1656, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- 1604, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- 1605, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- 1603, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ 1655, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ 1668, /* GL_UNSIGNED_SHORT_5_6_5 */
+ 1669, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ 1666, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ 1664, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ 1662, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ 1660, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ 1608, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ 1609, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ 1607, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
889, /* GL_MIRRORED_REPEAT */
1289, /* GL_RGB_S3TC */
1266, /* GL_RGB4_S3TC */
@@ -4244,46 +4252,46 @@ static const unsigned reduced_enums[1284] =
528, /* GL_GL_CURRENT_RASTER_SECONDARY_COLOR */
28, /* GL_ALIASED_POINT_SIZE_RANGE */
27, /* GL_ALIASED_LINE_WIDTH_RANGE */
- 1442, /* GL_TEXTURE0 */
- 1444, /* GL_TEXTURE1 */
- 1466, /* GL_TEXTURE2 */
- 1488, /* GL_TEXTURE3 */
- 1494, /* GL_TEXTURE4 */
- 1496, /* GL_TEXTURE5 */
- 1498, /* GL_TEXTURE6 */
- 1500, /* GL_TEXTURE7 */
- 1502, /* GL_TEXTURE8 */
- 1504, /* GL_TEXTURE9 */
- 1445, /* GL_TEXTURE10 */
- 1447, /* GL_TEXTURE11 */
- 1449, /* GL_TEXTURE12 */
- 1451, /* GL_TEXTURE13 */
- 1453, /* GL_TEXTURE14 */
- 1455, /* GL_TEXTURE15 */
- 1457, /* GL_TEXTURE16 */
- 1459, /* GL_TEXTURE17 */
- 1461, /* GL_TEXTURE18 */
- 1463, /* GL_TEXTURE19 */
- 1467, /* GL_TEXTURE20 */
- 1469, /* GL_TEXTURE21 */
- 1471, /* GL_TEXTURE22 */
- 1473, /* GL_TEXTURE23 */
- 1475, /* GL_TEXTURE24 */
- 1477, /* GL_TEXTURE25 */
- 1479, /* GL_TEXTURE26 */
- 1481, /* GL_TEXTURE27 */
- 1483, /* GL_TEXTURE28 */
- 1485, /* GL_TEXTURE29 */
- 1489, /* GL_TEXTURE30 */
- 1491, /* GL_TEXTURE31 */
+ 1446, /* GL_TEXTURE0 */
+ 1448, /* GL_TEXTURE1 */
+ 1470, /* GL_TEXTURE2 */
+ 1492, /* GL_TEXTURE3 */
+ 1498, /* GL_TEXTURE4 */
+ 1500, /* GL_TEXTURE5 */
+ 1502, /* GL_TEXTURE6 */
+ 1504, /* GL_TEXTURE7 */
+ 1506, /* GL_TEXTURE8 */
+ 1508, /* GL_TEXTURE9 */
+ 1449, /* GL_TEXTURE10 */
+ 1451, /* GL_TEXTURE11 */
+ 1453, /* GL_TEXTURE12 */
+ 1455, /* GL_TEXTURE13 */
+ 1457, /* GL_TEXTURE14 */
+ 1459, /* GL_TEXTURE15 */
+ 1461, /* GL_TEXTURE16 */
+ 1463, /* GL_TEXTURE17 */
+ 1465, /* GL_TEXTURE18 */
+ 1467, /* GL_TEXTURE19 */
+ 1471, /* GL_TEXTURE20 */
+ 1473, /* GL_TEXTURE21 */
+ 1475, /* GL_TEXTURE22 */
+ 1477, /* GL_TEXTURE23 */
+ 1479, /* GL_TEXTURE24 */
+ 1481, /* GL_TEXTURE25 */
+ 1483, /* GL_TEXTURE26 */
+ 1485, /* GL_TEXTURE27 */
+ 1487, /* GL_TEXTURE28 */
+ 1489, /* GL_TEXTURE29 */
+ 1493, /* GL_TEXTURE30 */
+ 1495, /* GL_TEXTURE31 */
18, /* GL_ACTIVE_TEXTURE */
124, /* GL_CLIENT_ACTIVE_TEXTURE */
867, /* GL_MAX_TEXTURE_UNITS */
- 1630, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- 1633, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- 1635, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- 1627, /* GL_TRANSPOSE_COLOR_MATRIX */
- 1430, /* GL_SUBTRACT */
+ 1634, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ 1637, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ 1639, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ 1631, /* GL_TRANSPOSE_COLOR_MATRIX */
+ 1434, /* GL_SUBTRACT */
856, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
222, /* GL_COMPRESSED_ALPHA */
226, /* GL_COMPRESSED_LUMINANCE */
@@ -4291,18 +4299,18 @@ static const unsigned reduced_enums[1284] =
224, /* GL_COMPRESSED_INTENSITY */
230, /* GL_COMPRESSED_RGB */
231, /* GL_COMPRESSED_RGBA */
- 1549, /* GL_TEXTURE_COMPRESSION_HINT */
- 1611, /* GL_TEXTURE_RECTANGLE_ARB */
- 1521, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ 1553, /* GL_TEXTURE_COMPRESSION_HINT */
+ 1615, /* GL_TEXTURE_RECTANGLE_ARB */
+ 1525, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
1207, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
854, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
335, /* GL_DEPTH_STENCIL_NV */
- 1655, /* GL_UNSIGNED_INT_24_8_NV */
+ 1659, /* GL_UNSIGNED_INT_24_8_NV */
863, /* GL_MAX_TEXTURE_LOD_BIAS */
- 1602, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ 1606, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
864, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- 1578, /* GL_TEXTURE_FILTER_CONTROL */
- 1593, /* GL_TEXTURE_LOD_BIAS */
+ 1582, /* GL_TEXTURE_FILTER_CONTROL */
+ 1597, /* GL_TEXTURE_LOD_BIAS */
207, /* GL_COMBINE4 */
857, /* GL_MAX_SHININESS_NV */
858, /* GL_MAX_SPOT_EXPONENT_NV */
@@ -4311,14 +4319,14 @@ static const unsigned reduced_enums[1284] =
909, /* GL_MODELVIEW1_ARB */
965, /* GL_NORMAL_MAP */
1236, /* GL_REFLECTION_MAP */
- 1558, /* GL_TEXTURE_CUBE_MAP */
- 1519, /* GL_TEXTURE_BINDING_CUBE_MAP */
- 1566, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- 1560, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- 1568, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- 1562, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- 1570, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- 1564, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ 1562, /* GL_TEXTURE_CUBE_MAP */
+ 1523, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ 1570, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ 1564, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ 1572, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ 1566, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ 1574, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ 1568, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
1205, /* GL_PROXY_TEXTURE_CUBE_MAP */
810, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
944, /* GL_MULTISAMPLE_FILTER_HINT_NV */
@@ -4350,26 +4358,26 @@ static const unsigned reduced_enums[1284] =
1004, /* GL_OPERAND1_ALPHA */
1010, /* GL_OPERAND2_ALPHA */
1016, /* GL_OPERAND3_ALPHA_NV */
- 1677, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- 1741, /* GL_YCBCR_422_APPLE */
- 1666, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- 1668, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ 1681, /* GL_VERTEX_ARRAY_BINDING_APPLE */
+ 1745, /* GL_YCBCR_422_APPLE */
+ 1670, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ 1672, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
1347, /* GL_SLICE_ACCUM_SUN */
1212, /* GL_QUAD_MESH_SUN */
- 1639, /* GL_TRIANGLE_MESH_SUN */
- 1715, /* GL_VERTEX_PROGRAM_ARB */
- 1726, /* GL_VERTEX_STATE_PROGRAM_NV */
- 1702, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- 1708, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- 1710, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- 1712, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ 1643, /* GL_TRIANGLE_MESH_SUN */
+ 1719, /* GL_VERTEX_PROGRAM_ARB */
+ 1730, /* GL_VERTEX_STATE_PROGRAM_NV */
+ 1706, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ 1712, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ 1714, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ 1716, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
301, /* GL_CURRENT_VERTEX_ATTRIB */
1168, /* GL_PROGRAM_LENGTH_ARB */
1182, /* GL_PROGRAM_STRING_ARB */
931, /* GL_MODELVIEW_PROJECTION_NV */
571, /* GL_IDENTITY_NV */
616, /* GL_INVERSE_NV */
- 1632, /* GL_TRANSPOSE_NV */
+ 1636, /* GL_TRANSPOSE_NV */
617, /* GL_INVERSE_TRANSPOSE_NV */
840, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
839, /* GL_MAX_PROGRAM_MATRICES_ARB */
@@ -4383,33 +4391,33 @@ static const unsigned reduced_enums[1284] =
783, /* GL_MATRIX7_NV */
286, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
283, /* GL_CURRENT_MATRIX_ARB */
- 1718, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- 1721, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ 1722, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ 1725, /* GL_VERTEX_PROGRAM_TWO_SIDE */
1180, /* GL_PROGRAM_PARAMETER_NV */
- 1706, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ 1710, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
1184, /* GL_PROGRAM_TARGET_NV */
1181, /* GL_PROGRAM_RESIDENT_NV */
- 1624, /* GL_TRACK_MATRIX_NV */
- 1625, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- 1716, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ 1628, /* GL_TRACK_MATRIX_NV */
+ 1629, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ 1720, /* GL_VERTEX_PROGRAM_BINDING_NV */
1162, /* GL_PROGRAM_ERROR_POSITION_ARB */
320, /* GL_DEPTH_CLAMP_NV */
- 1684, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- 1691, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- 1692, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- 1693, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- 1694, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- 1695, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- 1696, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- 1697, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- 1698, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- 1699, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- 1685, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- 1686, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- 1687, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- 1688, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- 1689, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- 1690, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ 1688, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ 1695, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ 1696, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ 1697, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ 1698, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ 1699, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ 1700, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ 1701, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ 1702, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ 1703, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ 1689, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ 1690, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ 1691, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ 1692, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ 1693, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ 1694, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
701, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
708, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
709, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
@@ -4442,20 +4450,20 @@ static const unsigned reduced_enums[1284] =
732, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
733, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
734, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- 1547, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- 1544, /* GL_TEXTURE_COMPRESSED */
+ 1551, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ 1548, /* GL_TEXTURE_COMPRESSED */
970, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
240, /* GL_COMPRESSED_TEXTURE_FORMATS */
879, /* GL_MAX_VERTEX_UNITS_ARB */
22, /* GL_ACTIVE_VERTEX_UNITS_ARB */
- 1736, /* GL_WEIGHT_SUM_UNITY_ARB */
- 1714, /* GL_VERTEX_BLEND_ARB */
+ 1740, /* GL_WEIGHT_SUM_UNITY_ARB */
+ 1718, /* GL_VERTEX_BLEND_ARB */
303, /* GL_CURRENT_WEIGHT_ARB */
- 1735, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- 1734, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- 1733, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- 1732, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- 1729, /* GL_WEIGHT_ARRAY_ARB */
+ 1739, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ 1738, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ 1737, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ 1736, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ 1733, /* GL_WEIGHT_ARRAY_ARB */
346, /* GL_DOT3_RGB */
347, /* GL_DOT3_RGBA */
238, /* GL_COMPRESSED_RGB_FXT1_3DFX */
@@ -4500,17 +4508,17 @@ static const unsigned reduced_enums[1284] =
934, /* GL_MODULATE_ADD_ATI */
935, /* GL_MODULATE_SIGNED_ADD_ATI */
936, /* GL_MODULATE_SUBTRACT_ATI */
- 1742, /* GL_YCBCR_MESA */
+ 1746, /* GL_YCBCR_MESA */
1025, /* GL_PACK_INVERT_MESA */
306, /* GL_DEBUG_OBJECT_MESA */
307, /* GL_DEBUG_PRINT_MESA */
305, /* GL_DEBUG_ASSERT_MESA */
107, /* GL_BUFFER_SIZE */
109, /* GL_BUFFER_USAGE */
- 1398, /* GL_STENCIL_BACK_FUNC */
+ 1399, /* GL_STENCIL_BACK_FUNC */
1397, /* GL_STENCIL_BACK_FAIL */
- 1399, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- 1400, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ 1401, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ 1403, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
485, /* GL_FRAGMENT_PROGRAM_ARB */
1159, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
1187, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
@@ -4552,10 +4560,10 @@ static const unsigned reduced_enums[1284] =
790, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
789, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
787, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- 1573, /* GL_TEXTURE_DEPTH_SIZE */
+ 1577, /* GL_TEXTURE_DEPTH_SIZE */
339, /* GL_DEPTH_TEXTURE_MODE */
- 1539, /* GL_TEXTURE_COMPARE_MODE */
- 1537, /* GL_TEXTURE_COMPARE_FUNC */
+ 1543, /* GL_TEXTURE_COMPARE_MODE */
+ 1541, /* GL_TEXTURE_COMPARE_FUNC */
217, /* GL_COMPARE_R_TO_TEXTURE */
1093, /* GL_POINT_SPRITE */
266, /* GL_COORD_REPLACE */
@@ -4565,7 +4573,7 @@ static const unsigned reduced_enums[1284] =
1216, /* GL_QUERY_RESULT */
1218, /* GL_QUERY_RESULT_AVAILABLE */
873, /* GL_MAX_VERTEX_ATTRIBS */
- 1704, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ 1708, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
337, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
336, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
859, /* GL_MAX_TEXTURE_COORDS */
@@ -4573,23 +4581,23 @@ static const unsigned reduced_enums[1284] =
1164, /* GL_PROGRAM_ERROR_STRING_ARB */
1166, /* GL_PROGRAM_FORMAT_ASCII_ARB */
1165, /* GL_PROGRAM_FORMAT_ARB */
- 1618, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ 1622, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
318, /* GL_DEPTH_BOUNDS_TEST_EXT */
317, /* GL_DEPTH_BOUNDS_EXT */
52, /* GL_ARRAY_BUFFER */
420, /* GL_ELEMENT_ARRAY_BUFFER */
54, /* GL_ARRAY_BUFFER_BINDING */
422, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- 1678, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ 1682, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
960, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
140, /* GL_COLOR_ARRAY_BUFFER_BINDING */
579, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- 1552, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ 1556, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
416, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
1323, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
463, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- 1730, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- 1700, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ 1734, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ 1704, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
1167, /* GL_PROGRAM_INSTRUCTIONS_ARB */
835, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
1173, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
@@ -4613,14 +4621,14 @@ static const unsigned reduced_enums[1284] =
836, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
832, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
1188, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- 1629, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ 1633, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
1226, /* GL_READ_ONLY */
- 1738, /* GL_WRITE_ONLY */
+ 1742, /* GL_WRITE_ONLY */
1228, /* GL_READ_WRITE */
101, /* GL_BUFFER_ACCESS */
103, /* GL_BUFFER_MAPPED */
105, /* GL_BUFFER_MAP_POINTER */
- 1623, /* GL_TIME_ELAPSED_EXT */
+ 1627, /* GL_TIME_ELAPSED_EXT */
746, /* GL_MATRIX0_ARB */
758, /* GL_MATRIX1_ARB */
770, /* GL_MATRIX2_ARB */
@@ -4653,9 +4661,9 @@ static const unsigned reduced_enums[1284] =
769, /* GL_MATRIX29_ARB */
772, /* GL_MATRIX30_ARB */
773, /* GL_MATRIX31_ARB */
- 1425, /* GL_STREAM_DRAW */
- 1427, /* GL_STREAM_READ */
- 1423, /* GL_STREAM_COPY */
+ 1429, /* GL_STREAM_DRAW */
+ 1431, /* GL_STREAM_READ */
+ 1427, /* GL_STREAM_COPY */
1391, /* GL_STATIC_DRAW */
1393, /* GL_STATIC_READ */
1389, /* GL_STATIC_COPY */
@@ -4672,12 +4680,12 @@ static const unsigned reduced_enums[1284] =
838, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
837, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
795, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
- 1419, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ 1423, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
17, /* GL_ACTIVE_STENCIL_FACE_EXT */
894, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
1304, /* GL_SAMPLES_PASSED */
486, /* GL_FRAGMENT_SHADER */
- 1724, /* GL_VERTEX_SHADER */
+ 1728, /* GL_VERTEX_SHADER */
1178, /* GL_PROGRAM_OBJECT_ARB */
1336, /* GL_SHADER_OBJECT_ARB */
819, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
@@ -4715,7 +4723,7 @@ static const unsigned reduced_enums[1284] =
312, /* GL_DELETE_STATUS */
221, /* GL_COMPILE_STATUS */
659, /* GL_LINK_STATUS */
- 1673, /* GL_VALIDATE_STATUS */
+ 1677, /* GL_VALIDATE_STATUS */
591, /* GL_INFO_LOG_LENGTH */
56, /* GL_ATTACHED_SHADERS */
20, /* GL_ACTIVE_UNIFORMS */
@@ -4738,12 +4746,12 @@ static const unsigned reduced_enums[1284] =
1038, /* GL_PALETTE8_RGB5_A1_OES */
574, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
573, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- 1507, /* GL_TEXTURE_1D_ARRAY_EXT */
+ 1511, /* GL_TEXTURE_1D_ARRAY_EXT */
1198, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
- 1509, /* GL_TEXTURE_2D_ARRAY_EXT */
+ 1513, /* GL_TEXTURE_2D_ARRAY_EXT */
1201, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
- 1515, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- 1517, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ 1519, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ 1521, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
543, /* GL_GL_SRGB */
544, /* GL_GL_SRGB8 */
546, /* GL_GL_SRGB_ALPHA */
@@ -4758,10 +4766,10 @@ static const unsigned reduced_enums[1284] =
525, /* GL_GL_COMPRESSED_SLUMINANCE_ALPHA */
1095, /* GL_POINT_SPRITE_COORD_ORIGIN */
667, /* GL_LOWER_LEFT */
- 1670, /* GL_UPPER_LEFT */
- 1401, /* GL_STENCIL_BACK_REF */
- 1402, /* GL_STENCIL_BACK_VALUE_MASK */
- 1403, /* GL_STENCIL_BACK_WRITEMASK */
+ 1674, /* GL_UPPER_LEFT */
+ 1405, /* GL_STENCIL_BACK_REF */
+ 1406, /* GL_STENCIL_BACK_VALUE_MASK */
+ 1407, /* GL_STENCIL_BACK_WRITEMASK */
403, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
1240, /* GL_RENDERBUFFER_BINDING_EXT */
1225, /* GL_READ_FRAMEBUFFER_EXT */
@@ -4806,15 +4814,15 @@ static const unsigned reduced_enums[1284] =
1244, /* GL_RENDERBUFFER_WIDTH_EXT */
1242, /* GL_RENDERBUFFER_HEIGHT_EXT */
1243, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
- 1414, /* GL_STENCIL_INDEX_EXT */
- 1411, /* GL_STENCIL_INDEX1_EXT */
- 1412, /* GL_STENCIL_INDEX4_EXT */
- 1413, /* GL_STENCIL_INDEX8_EXT */
- 1410, /* GL_STENCIL_INDEX16_EXT */
+ 1418, /* GL_STENCIL_INDEX_EXT */
+ 1415, /* GL_STENCIL_INDEX1_EXT */
+ 1416, /* GL_STENCIL_INDEX4_EXT */
+ 1417, /* GL_STENCIL_INDEX8_EXT */
+ 1414, /* GL_STENCIL_INDEX16_EXT */
428, /* GL_EVAL_BIT */
1222, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
661, /* GL_LIST_BIT */
- 1523, /* GL_TEXTURE_BIT */
+ 1527, /* GL_TEXTURE_BIT */
1319, /* GL_SCISSOR_BIT */
29, /* GL_ALL_ATTRIB_BITS */
941, /* GL_MULTISAMPLE_BIT */
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 8e49431a8fb..50b22d25bf3 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1868,6 +1868,7 @@ enum register_file
/** Vertex and fragment instructions */
struct prog_instruction;
struct gl_program_parameter_list;
+struct gl_uniform_list;
/**
@@ -2104,7 +2105,7 @@ struct gl_query_state
/**
- * A GLSL shader object.
+ * A GLSL vertex or fragment shader object.
*/
struct gl_shader
{
@@ -2122,7 +2123,8 @@ struct gl_shader
/**
- * A GLSL program object. Basically a linked collection of "shaders".
+ * A GLSL program object.
+ * Basically a linked collection of vertex and fragment shaders.
*/
struct gl_shader_program
{
@@ -2137,7 +2139,7 @@ struct gl_shader_program
/* post-link info: */
struct gl_vertex_program *VertexProgram; /**< Linked vertex program */
struct gl_fragment_program *FragmentProgram; /**< Linked fragment prog */
- struct gl_program_parameter_list *Uniforms; /**< Plus constants, etc */
+ struct gl_uniform_list *Uniforms;
struct gl_program_parameter_list *Varying;
struct gl_program_parameter_list *Attributes; /**< Vertex attributes */
GLboolean LinkStatus; /**< GL_LINK_STATUS */
diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c
index 2f88ec615a7..0b1c56fdd5f 100644
--- a/src/mesa/main/state.c
+++ b/src/mesa/main/state.c
@@ -818,6 +818,9 @@ _mesa_init_exec_table(struct _glapi_table *exec)
#if FEATURE_EXT_framebuffer_object
SET_FramebufferTextureLayerEXT(exec, _mesa_FramebufferTextureLayerEXT);
#endif
+
+ /* GL_ATI_separate_stencil */
+ SET_StencilFuncSeparateATI(exec, _mesa_StencilFuncSeparateATI);
}
diff --git a/src/mesa/main/stencil.c b/src/mesa/main/stencil.c
index e61eb0030c0..c1906197de1 100644
--- a/src/mesa/main/stencil.c
+++ b/src/mesa/main/stencil.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.2
+ * Version: 7.1
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * 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"),
@@ -53,6 +53,48 @@
#include "mtypes.h"
+static GLboolean
+validate_stencil_op(GLcontext *ctx, GLenum op)
+{
+ switch (op) {
+ case GL_KEEP:
+ case GL_ZERO:
+ case GL_REPLACE:
+ case GL_INCR:
+ case GL_DECR:
+ case GL_INVERT:
+ return GL_TRUE;
+ case GL_INCR_WRAP_EXT:
+ case GL_DECR_WRAP_EXT:
+ if (ctx->Extensions.EXT_stencil_wrap) {
+ return GL_TRUE;
+ }
+ /* FALL-THROUGH */
+ default:
+ return GL_FALSE;
+ }
+}
+
+
+static GLboolean
+validate_stencil_func(GLcontext *ctx, GLenum func)
+{
+ switch (func) {
+ case GL_NEVER:
+ case GL_LESS:
+ case GL_LEQUAL:
+ case GL_GREATER:
+ case GL_GEQUAL:
+ case GL_EQUAL:
+ case GL_NOTEQUAL:
+ case GL_ALWAYS:
+ return GL_TRUE;
+ default:
+ return GL_FALSE;
+ }
+}
+
+
/**
* Set the clear value for the stencil buffer.
*
@@ -85,6 +127,62 @@ _mesa_ClearStencil( GLint s )
/**
* Set the function and reference value for stencil testing.
*
+ * \param frontfunc front test function.
+ * \param backfunc back test function.
+ * \param ref front and back reference value.
+ * \param mask front and back bitmask.
+ *
+ * \sa glStencilFunc().
+ *
+ * Verifies the parameters and updates the respective values in
+ * __GLcontextRec::Stencil. On change flushes the vertices and notifies the
+ * driver via the dd_function_table::StencilFunc callback.
+ */
+void GLAPIENTRY
+_mesa_StencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask )
+{
+ GET_CURRENT_CONTEXT(ctx);
+ const GLint stencilMax = (1 << ctx->DrawBuffer->Visual.stencilBits) - 1;
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (!validate_stencil_func(ctx, frontfunc)) {
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glStencilFuncSeparateATI(frontfunc)");
+ return;
+ }
+ if (!validate_stencil_func(ctx, backfunc)) {
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glStencilFuncSeparateATI(backfunc)");
+ return;
+ }
+
+ ref = CLAMP( ref, 0, stencilMax );
+
+ /* set both front and back state */
+ if (ctx->Stencil.Function[0] == frontfunc &&
+ ctx->Stencil.Function[1] == backfunc &&
+ ctx->Stencil.ValueMask[0] == mask &&
+ ctx->Stencil.ValueMask[1] == mask &&
+ ctx->Stencil.Ref[0] == ref &&
+ ctx->Stencil.Ref[1] == ref)
+ return;
+ FLUSH_VERTICES(ctx, _NEW_STENCIL);
+ ctx->Stencil.Function[0] = frontfunc;
+ ctx->Stencil.Function[1] = backfunc;
+ ctx->Stencil.Ref[0] = ctx->Stencil.Ref[1] = ref;
+ ctx->Stencil.ValueMask[0] = ctx->Stencil.ValueMask[1] = mask;
+ if (ctx->Driver.StencilFuncSeparate) {
+ ctx->Driver.StencilFuncSeparate(ctx, GL_FRONT,
+ frontfunc, ref, mask);
+ ctx->Driver.StencilFuncSeparate(ctx, GL_BACK,
+ backfunc, ref, mask);
+ }
+}
+
+
+/**
+ * Set the function and reference value for stencil testing.
+ *
* \param func test function.
* \param ref reference value.
* \param mask bitmask.
@@ -102,19 +200,9 @@ _mesa_StencilFunc( GLenum func, GLint ref, GLuint mask )
const GLint stencilMax = (1 << ctx->DrawBuffer->Visual.stencilBits) - 1;
ASSERT_OUTSIDE_BEGIN_END(ctx);
- switch (func) {
- case GL_NEVER:
- case GL_LESS:
- case GL_LEQUAL:
- case GL_GREATER:
- case GL_GEQUAL:
- case GL_EQUAL:
- case GL_NOTEQUAL:
- case GL_ALWAYS:
- break;
- default:
- _mesa_error( ctx, GL_INVALID_ENUM, "glStencilFunc (0x%04x)", func );
- return;
+ if (!validate_stencil_func(ctx, func)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFunc(func)");
+ return;
}
ref = CLAMP( ref, 0, stencilMax );
@@ -218,59 +306,17 @@ _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
- switch (fail) {
- case GL_KEEP:
- case GL_ZERO:
- case GL_REPLACE:
- case GL_INCR:
- case GL_DECR:
- case GL_INVERT:
- break;
- case GL_INCR_WRAP_EXT:
- case GL_DECR_WRAP_EXT:
- if (ctx->Extensions.EXT_stencil_wrap) {
- break;
- }
- /* FALL-THROUGH */
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp");
- return;
+ if (!validate_stencil_op(ctx, fail)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(sfail)");
+ return;
}
- switch (zfail) {
- case GL_KEEP:
- case GL_ZERO:
- case GL_REPLACE:
- case GL_INCR:
- case GL_DECR:
- case GL_INVERT:
- break;
- case GL_INCR_WRAP_EXT:
- case GL_DECR_WRAP_EXT:
- if (ctx->Extensions.EXT_stencil_wrap) {
- break;
- }
- /* FALL-THROUGH */
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp");
- return;
+ if (!validate_stencil_op(ctx, zfail)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zfail)");
+ return;
}
- switch (zpass) {
- case GL_KEEP:
- case GL_ZERO:
- case GL_REPLACE:
- case GL_INCR:
- case GL_DECR:
- case GL_INVERT:
- break;
- case GL_INCR_WRAP_EXT:
- case GL_DECR_WRAP_EXT:
- if (ctx->Extensions.EXT_stencil_wrap) {
- break;
- }
- /* FALL-THROUGH */
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp");
- return;
+ if (!validate_stencil_op(ctx, zpass)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zpass)");
+ return;
}
if (ctx->Extensions.ATI_separate_stencil) {
@@ -343,85 +389,55 @@ _mesa_ActiveStencilFaceEXT(GLenum face)
* instead.
*/
void GLAPIENTRY
-_mesa_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+_mesa_StencilOpSeparate(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass)
{
+ GLboolean set = GL_FALSE;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
- if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(face)");
+ if (!validate_stencil_op(ctx, sfail)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(sfail)");
return;
}
-
- switch (fail) {
- case GL_KEEP:
- case GL_ZERO:
- case GL_REPLACE:
- case GL_INCR:
- case GL_DECR:
- case GL_INVERT:
- break;
- case GL_INCR_WRAP_EXT:
- case GL_DECR_WRAP_EXT:
- if (ctx->Extensions.EXT_stencil_wrap) {
- break;
- }
- /* FALL-THROUGH */
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(fail)");
- return;
+ if (!validate_stencil_op(ctx, zfail)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zfail)");
+ return;
}
- switch (zfail) {
- case GL_KEEP:
- case GL_ZERO:
- case GL_REPLACE:
- case GL_INCR:
- case GL_DECR:
- case GL_INVERT:
- break;
- case GL_INCR_WRAP_EXT:
- case GL_DECR_WRAP_EXT:
- if (ctx->Extensions.EXT_stencil_wrap) {
- break;
- }
- /* FALL-THROUGH */
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zfail)");
- return;
+ if (!validate_stencil_op(ctx, zpass)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zpass)");
+ return;
}
- switch (zpass) {
- case GL_KEEP:
- case GL_ZERO:
- case GL_REPLACE:
- case GL_INCR:
- case GL_DECR:
- case GL_INVERT:
- break;
- case GL_INCR_WRAP_EXT:
- case GL_DECR_WRAP_EXT:
- if (ctx->Extensions.EXT_stencil_wrap) {
- break;
- }
- /* FALL-THROUGH */
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zpass)");
- return;
+ if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(face)");
+ return;
}
- FLUSH_VERTICES(ctx, _NEW_STENCIL);
-
if (face != GL_BACK) {
- ctx->Stencil.FailFunc[0] = fail;
- ctx->Stencil.ZFailFunc[0] = zfail;
- ctx->Stencil.ZPassFunc[0] = zpass;
+ /* set front */
+ if (ctx->Stencil.ZFailFunc[0] != zfail ||
+ ctx->Stencil.ZPassFunc[0] != zpass ||
+ ctx->Stencil.FailFunc[0] != sfail){
+ FLUSH_VERTICES(ctx, _NEW_STENCIL);
+ ctx->Stencil.ZFailFunc[0] = zfail;
+ ctx->Stencil.ZPassFunc[0] = zpass;
+ ctx->Stencil.FailFunc[0] = sfail;
+ set = GL_TRUE;
+ }
}
if (face != GL_FRONT) {
- ctx->Stencil.FailFunc[1] = fail;
- ctx->Stencil.ZFailFunc[1] = zfail;
- ctx->Stencil.ZPassFunc[1] = zpass;
+ /* set back */
+ if (ctx->Stencil.ZFailFunc[1] != zfail ||
+ ctx->Stencil.ZPassFunc[1] != zpass ||
+ ctx->Stencil.FailFunc[1] != sfail) {
+ FLUSH_VERTICES(ctx, _NEW_STENCIL);
+ ctx->Stencil.ZFailFunc[1] = zfail;
+ ctx->Stencil.ZPassFunc[1] = zpass;
+ ctx->Stencil.FailFunc[1] = sfail;
+ set = GL_TRUE;
+ }
}
- if (ctx->Driver.StencilOpSeparate) {
- ctx->Driver.StencilOpSeparate(ctx, face, fail, zfail, zpass);
+ if (set && ctx->Driver.StencilOpSeparate) {
+ ctx->Driver.StencilOpSeparate(ctx, face, sfail, zfail, zpass);
}
}
@@ -438,20 +454,9 @@ _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(face)");
return;
}
-
- switch (func) {
- case GL_NEVER:
- case GL_LESS:
- case GL_LEQUAL:
- case GL_GREATER:
- case GL_GEQUAL:
- case GL_EQUAL:
- case GL_NOTEQUAL:
- case GL_ALWAYS:
- break;
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)");
- return;
+ if (!validate_stencil_func(ctx, func)) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)");
+ return;
}
ref = CLAMP(ref, 0, stencilMax);
diff --git a/src/mesa/main/stencil.h b/src/mesa/main/stencil.h
index 27c6362023c..252ac932acd 100644
--- a/src/mesa/main/stencil.h
+++ b/src/mesa/main/stencil.h
@@ -5,9 +5,9 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5
+ * Version: 7.1
*
- * Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
+ * 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"),
@@ -64,6 +64,9 @@ _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
extern void GLAPIENTRY
+_mesa_StencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+
+extern void GLAPIENTRY
_mesa_StencilMaskSeparate(GLenum face, GLuint mask);
diff --git a/src/mesa/shader/prog_instruction.c b/src/mesa/shader/prog_instruction.c
index 066129037a7..bea5d0551e4 100644
--- a/src/mesa/shader/prog_instruction.c
+++ b/src/mesa/shader/prog_instruction.c
@@ -119,6 +119,23 @@ _mesa_copy_instructions(struct prog_instruction *dest,
/**
+ * Free an array of instructions
+ */
+void
+_mesa_free_instructions(struct prog_instruction *inst, GLuint count)
+{
+ GLuint i;
+ for (i = 0; i < count; i++) {
+ if (inst[i].Data)
+ _mesa_free(inst[i].Data);
+ if (inst[i].Comment)
+ _mesa_free((char *) inst[i].Comment);
+ }
+ _mesa_free(inst);
+}
+
+
+/**
* Basic info about each instruction
*/
struct instruction_info
diff --git a/src/mesa/shader/prog_instruction.h b/src/mesa/shader/prog_instruction.h
index e8a2407ea85..711166f9ddb 100644
--- a/src/mesa/shader/prog_instruction.h
+++ b/src/mesa/shader/prog_instruction.h
@@ -439,6 +439,9 @@ extern struct prog_instruction *
_mesa_copy_instructions(struct prog_instruction *dest,
const struct prog_instruction *src, GLuint n);
+extern void
+_mesa_free_instructions(struct prog_instruction *inst, GLuint count);
+
extern GLuint
_mesa_num_inst_src_regs(gl_inst_opcode opcode);
diff --git a/src/mesa/shader/prog_uniform.c b/src/mesa/shader/prog_uniform.c
new file mode 100644
index 00000000000..20e004b350c
--- /dev/null
+++ b/src/mesa/shader/prog_uniform.c
@@ -0,0 +1,157 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 7.1
+ *
+ * Copyright (C) 1999-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.
+ */
+
+/**
+ * \file prog_uniform.c
+ * Shader uniform functions.
+ * \author Brian Paul
+ */
+
+#include "main/imports.h"
+#include "main/mtypes.h"
+#include "prog_uniform.h"
+
+
+struct gl_uniform_list *
+_mesa_new_uniform_list(void)
+{
+ return CALLOC_STRUCT(gl_uniform_list);
+}
+
+
+void
+_mesa_free_uniform_list(struct gl_uniform_list *list)
+{
+ GLuint i;
+ for (i = 0; i < list->NumUniforms; i++) {
+ _mesa_free((void *) list->Uniforms[i].Name);
+ }
+ _mesa_free(list->Uniforms);
+ _mesa_free(list);
+}
+
+
+GLboolean
+_mesa_append_uniform(struct gl_uniform_list *list,
+ const char *name, GLenum target, GLuint progPos)
+{
+ const GLuint oldNum = list->NumUniforms;
+ GLint index;
+
+ assert(target == GL_VERTEX_PROGRAM_ARB ||
+ target == GL_FRAGMENT_PROGRAM_ARB);
+
+ index = _mesa_lookup_uniform(list, name);
+ if (index < 0) {
+ /* not found - append to list */
+
+ if (oldNum + 1 > list->Size) {
+ /* Need to grow the list array (alloc some extra) */
+ list->Size += 4;
+
+ /* realloc arrays */
+ list->Uniforms = (struct gl_uniform *)
+ _mesa_realloc(list->Uniforms,
+ oldNum * sizeof(struct gl_uniform),
+ list->Size * sizeof(struct gl_uniform));
+ }
+
+ if (!list->Uniforms) {
+ /* out of memory */
+ list->NumUniforms = 0;
+ list->Size = 0;
+ return GL_FALSE;
+ }
+
+ list->Uniforms[oldNum].Name = _mesa_strdup(name);
+ list->Uniforms[oldNum].VertPos = -1;
+ list->Uniforms[oldNum].FragPos = -1;
+ index = oldNum;
+ list->NumUniforms++;
+ }
+
+ /* update position for the vertex or fragment program */
+ if (target == GL_VERTEX_PROGRAM_ARB) {
+ if (list->Uniforms[index].VertPos != -1) {
+ /* this uniform is already in the list - that shouldn't happen */
+ return GL_FALSE;
+ }
+ list->Uniforms[index].VertPos = progPos;
+ }
+ else {
+ if (list->Uniforms[index].FragPos != -1) {
+ /* this uniform is already in the list - that shouldn't happen */
+ return GL_FALSE;
+ }
+ list->Uniforms[index].FragPos = progPos;
+ }
+
+ return GL_TRUE;
+}
+
+
+/**
+ * Return the location/index of the named uniform in the uniform list,
+ * or -1 if not found.
+ */
+GLint
+_mesa_lookup_uniform(const struct gl_uniform_list *list, const char *name)
+{
+ GLuint i;
+ for (i = 0; i < list->NumUniforms; i++) {
+ if (!_mesa_strcmp(list->Uniforms[i].Name, name)) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+
+GLint
+_mesa_longest_uniform_name(const struct gl_uniform_list *list)
+{
+ GLint max = 0;
+ GLuint i;
+ for (i = 0; i < list->NumUniforms; i++) {
+ GLuint len = _mesa_strlen(list->Uniforms[i].Name);
+ if (len > max)
+ max = len;
+ }
+ return max;
+}
+
+
+void
+_mesa_print_uniforms(const struct gl_uniform_list *list)
+{
+ GLuint i;
+ printf("Uniform list %p:\n", (void *) list);
+ for (i = 0; i < list->NumUniforms; i++) {
+ printf("%d: %s %d %d\n",
+ i,
+ list->Uniforms[i].Name,
+ list->Uniforms[i].VertPos,
+ list->Uniforms[i].FragPos);
+ }
+}
diff --git a/src/mesa/shader/prog_uniform.h b/src/mesa/shader/prog_uniform.h
new file mode 100644
index 00000000000..735de28705a
--- /dev/null
+++ b/src/mesa/shader/prog_uniform.h
@@ -0,0 +1,91 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 7.1
+ *
+ * Copyright (C) 1999-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.
+ */
+
+/**
+ * \file prog_uniform.c
+ * Shader uniform functions.
+ * \author Brian Paul
+ */
+
+#ifndef PROG_UNIFORM_H
+#define PROG_UNIFORM_H
+
+#include "main/mtypes.h"
+#include "prog_statevars.h"
+
+
+/**
+ * Shader program uniform variable.
+ * The glGetUniformLocation() and glUniform() commands will use this
+ * information.
+ * Note that a uniform such as "binormal" might be used in both the
+ * vertex shader and the fragment shader. When glUniform() is called to
+ * set the uniform's value, it must be updated in both the vertex and
+ * fragment shaders. The uniform may be in different locations in the
+ * two shaders so we keep track of that here.
+ */
+struct gl_uniform
+{
+ const char *Name; /**< Null-terminated string */
+ GLint VertPos;
+ GLint FragPos;
+#if 0
+ GLenum DataType; /**< GL_FLOAT, GL_FLOAT_VEC2, etc */
+ GLuint Size; /**< Number of components (1..4) */
+#endif
+};
+
+
+/**
+ * List of gl_uniforms
+ */
+struct gl_uniform_list
+{
+ GLuint Size; /**< allocated size of Uniforms array */
+ GLuint NumUniforms; /**< number of uniforms in the array */
+ struct gl_uniform *Uniforms; /**< Array [Size] */
+};
+
+
+extern struct gl_uniform_list *
+_mesa_new_uniform_list(void);
+
+extern void
+_mesa_free_uniform_list(struct gl_uniform_list *list);
+
+extern GLboolean
+_mesa_append_uniform(struct gl_uniform_list *list,
+ const char *name, GLenum target, GLuint progPos);
+
+extern GLint
+_mesa_lookup_uniform(const struct gl_uniform_list *list, const char *name);
+
+extern GLint
+_mesa_longest_uniform_name(const struct gl_uniform_list *list);
+
+extern void
+_mesa_print_uniforms(const struct gl_uniform_list *list);
+
+
+#endif /* PROG_UNIFORM_H */
diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c
index 09a8494bd36..0ed7f833d20 100644
--- a/src/mesa/shader/program.c
+++ b/src/mesa/shader/program.c
@@ -287,16 +287,7 @@ _mesa_delete_program(GLcontext *ctx, struct gl_program *prog)
if (prog->String)
_mesa_free(prog->String);
- if (prog->Instructions) {
- GLuint i;
- for (i = 0; i < prog->NumInstructions; i++) {
- if (prog->Instructions[i].Data)
- _mesa_free(prog->Instructions[i].Data);
- if (prog->Instructions[i].Comment)
- _mesa_free((char *) prog->Instructions[i].Comment);
- }
- _mesa_free(prog->Instructions);
- }
+ _mesa_free_instructions(prog->Instructions, prog->NumInstructions);
if (prog->Parameters) {
_mesa_free_parameter_list(prog->Parameters);
@@ -361,6 +352,7 @@ _mesa_clone_program(GLcontext *ctx, const struct gl_program *prog)
prog->NumInstructions);
clone->InputsRead = prog->InputsRead;
clone->OutputsWritten = prog->OutputsWritten;
+ clone->SamplersUsed = prog->SamplersUsed;
memcpy(clone->TexturesUsed, prog->TexturesUsed, sizeof(prog->TexturesUsed));
if (prog->Parameters)
@@ -414,6 +406,55 @@ _mesa_clone_program(GLcontext *ctx, const struct gl_program *prog)
}
+/**
+ * Insert 'count' NOP instructions at 'start' in the given program.
+ * Adjust branch targets accordingly.
+ */
+GLboolean
+_mesa_insert_instructions(struct gl_program *prog, GLuint start, GLuint count)
+{
+ const GLuint origLen = prog->NumInstructions;
+ const GLuint newLen = origLen + count;
+ struct prog_instruction *newInst;
+ GLuint i;
+
+ /* adjust branches */
+ for (i = 0; i < prog->NumInstructions; i++) {
+ struct prog_instruction *inst = prog->Instructions + i;
+ if (inst->BranchTarget > 0) {
+ if (inst->BranchTarget >= start) {
+ inst->BranchTarget += count;
+ }
+ }
+ }
+
+ /* Alloc storage for new instructions */
+ newInst = _mesa_alloc_instructions(newLen);
+ if (!newInst) {
+ return GL_FALSE;
+ }
+
+ /* Copy 'start' instructions into new instruction buffer */
+ _mesa_copy_instructions(newInst, prog->Instructions, start);
+
+ /* init the new instructions */
+ _mesa_init_instructions(newInst + start, count);
+
+ /* Copy the remaining/tail instructions to new inst buffer */
+ _mesa_copy_instructions(newInst + start + count,
+ prog->Instructions + start,
+ origLen - start);
+
+ /* free old instructions */
+ _mesa_free_instructions(prog->Instructions, origLen);
+
+ /* install new instructions */
+ prog->Instructions = newInst;
+ prog->NumInstructions = newLen;
+
+ return GL_TRUE;
+}
+
/**
* Search instructions for registers that match (oldFile, oldIndex),
@@ -537,6 +578,7 @@ _mesa_combine_programs(GLcontext *ctx,
}
newProg->InputsRead = progA->InputsRead | inputsB;
newProg->OutputsWritten = progB->OutputsWritten;
+ newProg->SamplersUsed = progA->SamplersUsed | progB->SamplersUsed;
}
else {
/* vertex program */
diff --git a/src/mesa/shader/program.h b/src/mesa/shader/program.h
index 4b7297e4c65..414a57d39cc 100644
--- a/src/mesa/shader/program.h
+++ b/src/mesa/shader/program.h
@@ -87,6 +87,8 @@ _mesa_lookup_program(GLcontext *ctx, GLuint id);
extern struct gl_program *
_mesa_clone_program(GLcontext *ctx, const struct gl_program *prog);
+extern GLboolean
+_mesa_insert_instructions(struct gl_program *prog, GLuint start, GLuint count);
extern struct gl_program *
_mesa_combine_programs(GLcontext *ctx,
diff --git a/src/mesa/shader/programopt.c b/src/mesa/shader/programopt.c
index 9eeb71db1b6..7d560c74a54 100644
--- a/src/mesa/shader/programopt.c
+++ b/src/mesa/shader/programopt.c
@@ -35,6 +35,7 @@
#include "context.h"
#include "prog_parameter.h"
#include "prog_statevars.h"
+#include "program.h"
#include "programopt.h"
#include "prog_instruction.h"
@@ -102,7 +103,7 @@ _mesa_insert_mvp_code(GLcontext *ctx, struct gl_vertex_program *vprog)
_mesa_copy_instructions (newInst + 4, vprog->Base.Instructions, origLen);
/* free old instructions */
- _mesa_free(vprog->Base.Instructions);
+ _mesa_free_instructions(vprog->Base.Instructions, origLen);
/* install new instructions */
vprog->Base.Instructions = newInst;
@@ -274,7 +275,7 @@ _mesa_append_fog_code(GLcontext *ctx, struct gl_fragment_program *fprog)
inst++;
/* free old instructions */
- _mesa_free(fprog->Base.Instructions);
+ _mesa_free_instructions(fprog->Base.Instructions, origLen);
/* install new instructions */
fprog->Base.Instructions = newInst;
@@ -364,3 +365,94 @@ _mesa_count_texture_instructions(struct gl_program *prog)
}
}
+
+/**
+ * Scan/rewrite program to remove reads of varying (output) registers.
+ * In GLSL vertex shaders, varying vars can be read and written.
+ * Normally, vertex varying vars are implemented as output registers.
+ * On some hardware, trying to read an output register causes trouble.
+ * So, rewrite the program to use a temporary register in this case.
+ */
+void
+_mesa_remove_varying_reads(struct gl_program *prog)
+{
+ GLuint i;
+ GLint outputMap[VERT_RESULT_MAX];
+ GLuint numVaryingReads = 0;
+
+ assert(prog->Target == GL_VERTEX_PROGRAM_ARB);
+
+ for (i = 0; i < VERT_RESULT_MAX; i++)
+ outputMap[i] = -1;
+
+ /* look for instructions which read from varying vars */
+ for (i = 0; i < prog->NumInstructions; i++) {
+ struct prog_instruction *inst = prog->Instructions + i;
+ const GLuint numSrc = _mesa_num_inst_src_regs(inst->Opcode);
+ GLuint j;
+ for (j = 0; j < numSrc; j++) {
+ if (inst->SrcReg[j].File == PROGRAM_VARYING) {
+ /* replace the read with a temp reg */
+ const GLuint var = inst->SrcReg[j].Index;
+ if (outputMap[var] == -1) {
+ numVaryingReads++;
+ outputMap[var] = _mesa_find_free_register(prog,
+ PROGRAM_TEMPORARY);
+ }
+ inst->SrcReg[j].File = PROGRAM_TEMPORARY;
+ inst->SrcReg[j].Index = outputMap[var];
+ }
+ }
+ }
+
+ if (numVaryingReads == 0)
+ return; /* nothing to be done */
+
+ /* look for instructions which write to the varying vars identified above */
+ for (i = 0; i < prog->NumInstructions; i++) {
+ struct prog_instruction *inst = prog->Instructions + i;
+ const GLuint numSrc = _mesa_num_inst_src_regs(inst->Opcode);
+ GLuint j;
+ for (j = 0; j < numSrc; j++) {
+ if (inst->DstReg.File == PROGRAM_VARYING &&
+ outputMap[inst->DstReg.Index] >= 0) {
+ /* change inst to write to the temp reg, instead of the varying */
+ inst->DstReg.File = PROGRAM_TEMPORARY;
+ inst->DstReg.Index = outputMap[inst->DstReg.Index];
+ }
+ }
+ }
+
+ /* insert new instructions to copy the temp vars to the varying vars */
+ {
+ struct prog_instruction *inst;
+ GLint endPos, var;
+
+ /* Look for END instruction and insert the new varying writes */
+ endPos = -1;
+ for (i = 0; i < prog->NumInstructions; i++) {
+ struct prog_instruction *inst = prog->Instructions + i;
+ if (inst->Opcode == OPCODE_END) {
+ endPos = i;
+ _mesa_insert_instructions(prog, i, numVaryingReads);
+ break;
+ }
+ }
+
+ assert(endPos >= 0);
+
+ /* insert new MOV instructions here */
+ inst = prog->Instructions + endPos;
+ for (var = 0; var < VERT_RESULT_MAX; var++) {
+ if (outputMap[var] >= 0) {
+ /* MOV VAR[var], TEMP[tmp]; */
+ inst->Opcode = OPCODE_MOV;
+ inst->DstReg.File = PROGRAM_VARYING;
+ inst->DstReg.Index = var;
+ inst->SrcReg[0].File = PROGRAM_TEMPORARY;
+ inst->SrcReg[0].Index = outputMap[var];
+ inst++;
+ }
+ }
+ }
+}
diff --git a/src/mesa/shader/programopt.h b/src/mesa/shader/programopt.h
index ce63644bbf5..47ff2f0c7be 100644
--- a/src/mesa/shader/programopt.h
+++ b/src/mesa/shader/programopt.h
@@ -39,5 +39,7 @@ _mesa_count_texture_indirections(struct gl_program *prog);
extern void
_mesa_count_texture_instructions(struct gl_program *prog);
+extern void
+_mesa_remove_varying_reads(struct gl_program *prog);
#endif /* PROGRAMOPT_H */
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c
index 4cb8bb8ed1f..9c419c9903f 100644
--- a/src/mesa/shader/shader_api.c
+++ b/src/mesa/shader/shader_api.c
@@ -43,6 +43,7 @@
#include "prog_parameter.h"
#include "prog_print.h"
#include "prog_statevars.h"
+#include "prog_uniform.h"
#include "shader/shader_api.h"
#include "shader/slang/slang_compile.h"
#include "shader/slang/slang_link.h"
@@ -75,25 +76,25 @@ _mesa_clear_shader_program_data(GLcontext *ctx,
struct gl_shader_program *shProg)
{
if (shProg->VertexProgram) {
- if (shProg->VertexProgram->Base.Parameters == shProg->Uniforms) {
- /* to prevent a double-free in the next call */
- shProg->VertexProgram->Base.Parameters = NULL;
- }
+ /* Set ptr to NULL since the param list is shared with the
+ * original/unlinked program.
+ */
+ shProg->VertexProgram->Base.Parameters = NULL;
ctx->Driver.DeleteProgram(ctx, &shProg->VertexProgram->Base);
shProg->VertexProgram = NULL;
}
if (shProg->FragmentProgram) {
- if (shProg->FragmentProgram->Base.Parameters == shProg->Uniforms) {
- /* to prevent a double-free in the next call */
- shProg->FragmentProgram->Base.Parameters = NULL;
- }
+ /* Set ptr to NULL since the param list is shared with the
+ * original/unlinked program.
+ */
+ shProg->FragmentProgram->Base.Parameters = NULL;
ctx->Driver.DeleteProgram(ctx, &shProg->FragmentProgram->Base);
shProg->FragmentProgram = NULL;
}
if (shProg->Uniforms) {
- _mesa_free_parameter_list(shProg->Uniforms);
+ _mesa_free_uniform_list(shProg->Uniforms);
shProg->Uniforms = NULL;
}
@@ -673,39 +674,43 @@ _mesa_get_active_uniform(GLcontext *ctx, GLuint program, GLuint index,
GLsizei maxLength, GLsizei *length, GLint *size,
GLenum *type, GLchar *nameOut)
{
- struct gl_shader_program *shProg
+ const struct gl_shader_program *shProg
= _mesa_lookup_shader_program(ctx, program);
- GLuint ind, j;
+ const struct gl_program *prog;
+ GLint progPos;
if (!shProg) {
_mesa_error(ctx, GL_INVALID_VALUE, "glGetActiveUniform");
return;
}
- if (!shProg->Uniforms || index >= shProg->Uniforms->NumParameters) {
+ if (!shProg->Uniforms || index >= shProg->Uniforms->NumUniforms) {
_mesa_error(ctx, GL_INVALID_VALUE, "glGetActiveUniform(index)");
return;
}
- ind = 0;
- for (j = 0; j < shProg->Uniforms->NumParameters; j++) {
- if (shProg->Uniforms->Parameters[j].Type == PROGRAM_UNIFORM ||
- shProg->Uniforms->Parameters[j].Type == PROGRAM_SAMPLER) {
- if (ind == index) {
- /* found it */
- copy_string(nameOut, maxLength, length,
- shProg->Uniforms->Parameters[j].Name);
- if (size)
- *size = shProg->Uniforms->Parameters[j].Size;
- if (type)
- *type = shProg->Uniforms->Parameters[j].DataType;
- return;
- }
- ind++;
+ 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;
}
}
- _mesa_error(ctx, GL_INVALID_VALUE, "glGetActiveUniform(index)");
+ if (!prog || progPos < 0)
+ return; /* should never happen */
+
+ if (nameOut)
+ copy_string(nameOut, maxLength, length,
+ prog->Parameters->Parameters[progPos].Name);
+ if (size)
+ *size = prog->Parameters->Parameters[progPos].Size;
+
+ if (type)
+ *type = prog->Parameters->Parameters[progPos].DataType;
}
@@ -792,14 +797,10 @@ _mesa_get_programiv(GLcontext *ctx, GLuint program,
PROGRAM_INPUT) + 1;
break;
case GL_ACTIVE_UNIFORMS:
- *params
- = _mesa_num_parameters_of_type(shProg->Uniforms, PROGRAM_UNIFORM)
- + _mesa_num_parameters_of_type(shProg->Uniforms, PROGRAM_SAMPLER);
+ *params = shProg->Uniforms ? shProg->Uniforms->NumUniforms : 0;
break;
case GL_ACTIVE_UNIFORM_MAX_LENGTH:
- *params = MAX2(
- _mesa_longest_parameter_name(shProg->Uniforms, PROGRAM_UNIFORM),
- _mesa_longest_parameter_name(shProg->Uniforms, PROGRAM_SAMPLER));
+ *params = _mesa_longest_uniform_name(shProg->Uniforms);
if (*params > 0)
(*params)++; /* add one for terminating zero */
break;
@@ -896,10 +897,23 @@ _mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location,
struct gl_shader_program *shProg
= _mesa_lookup_shader_program(ctx, program);
if (shProg) {
- GLint i;
- if (location >= 0 && location < shProg->Uniforms->NumParameters) {
- for (i = 0; i < shProg->Uniforms->Parameters[location].Size; i++) {
- params[i] = shProg->Uniforms->ParameterValues[location][i];
+ if (location < shProg->Uniforms->NumUniforms) {
+ GLint progPos, i;
+ const struct gl_program *prog;
+
+ 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;
+ }
+ }
+
+ for (i = 0; i < prog->Parameters->Parameters[progPos].Size; i++) {
+ params[i] = prog->Parameters->ParameterValues[progPos][i];
}
}
else {
@@ -920,23 +934,10 @@ _mesa_get_uniform_location(GLcontext *ctx, GLuint program, const GLchar *name)
{
struct gl_shader_program *shProg
= _mesa_lookup_shader_program(ctx, program);
- if (shProg) {
- GLuint loc;
- for (loc = 0; loc < shProg->Uniforms->NumParameters; loc++) {
- const struct gl_program_parameter *u
- = shProg->Uniforms->Parameters + loc;
- /* XXX this is a temporary simplification / short-cut.
- * We need to handle things like "e.c[0].b" as seen in the
- * GLSL orange book, page 189.
- */
- if ((u->Type == PROGRAM_UNIFORM ||
- u->Type == PROGRAM_SAMPLER) && !strcmp(u->Name, name)) {
- return loc;
- }
- }
- }
- return -1;
+ if (!shProg)
+ return -1;
+ return _mesa_lookup_uniform(shProg->Uniforms, name);
}
@@ -1068,6 +1069,78 @@ update_textures_used(struct gl_program *prog)
/**
+ * Set the value of a program's uniform variable.
+ * \param program the program whose uniform to update
+ * \param location the location/index of the uniform
+ * \param type the datatype of the uniform
+ * \param count the number of uniforms to set
+ * \param elems number of elements per uniform
+ * \param values the new values
+ */
+static void
+set_program_uniform(GLcontext *ctx, struct gl_program *program, GLint location,
+ GLenum type, GLint count, GLint elems, const void *values)
+{
+ if (program->Parameters->Parameters[location].Type == PROGRAM_SAMPLER) {
+ /* This controls which texture unit which is used by a sampler */
+ GLuint texUnit, sampler;
+
+ /* data type for setting samplers must be int */
+ if (type != GL_INT || count != 1) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glUniform(only glUniform1i can be used "
+ "to set sampler uniforms)");
+ return;
+ }
+
+ sampler = (GLuint) program->Parameters->ParameterValues[location][0];
+ texUnit = ((GLuint *) values)[0];
+
+ /* 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)");
+ return;
+ }
+
+ /* This maps a sampler to a texture unit: */
+ program->SamplerUnits[sampler] = texUnit;
+ update_textures_used(program);
+
+ FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+ }
+ else {
+ /* ordinary uniform variable */
+ GLint k, i;
+
+ if (count * elems > program->Parameters->Parameters[location].Size) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glUniform(count too large)");
+ return;
+ }
+
+ for (k = 0; k < count; k++) {
+ GLfloat *uniformVal = program->Parameters->ParameterValues[location + k];
+ if (type == GL_INT ||
+ type == GL_INT_VEC2 ||
+ type == GL_INT_VEC3 ||
+ type == GL_INT_VEC4) {
+ const GLint *iValues = ((const GLint *) values) + k * elems;
+ for (i = 0; i < elems; i++) {
+ uniformVal[i] = (GLfloat) iValues[i];
+ }
+ }
+ else {
+ const GLfloat *fValues = ((const GLfloat *) values) + k * elems;
+ for (i = 0; i < elems; i++) {
+ uniformVal[i] = fValues[i];
+ }
+ }
+ }
+ }
+}
+
+
+/**
* Called via ctx->Driver.Uniform().
*/
static void
@@ -1075,20 +1148,18 @@ _mesa_uniform(GLcontext *ctx, GLint location, GLsizei count,
const GLvoid *values, GLenum type)
{
struct gl_shader_program *shProg = ctx->Shader.CurrentProgram;
- GLint elems, i, k;
+ GLint elems;
if (!shProg || !shProg->LinkStatus) {
_mesa_error(ctx, GL_INVALID_OPERATION, "glUniform(program not linked)");
return;
}
- if (location < 0 || location >= (GLint) shProg->Uniforms->NumParameters) {
+ if (location < 0 || location >= (GLint) shProg->Uniforms->NumUniforms) {
_mesa_error(ctx, GL_INVALID_VALUE, "glUniform(location)");
return;
}
- FLUSH_VERTICES(ctx, _NEW_PROGRAM);
-
if (count < 0) {
_mesa_error(ctx, GL_INVALID_VALUE, "glUniform(count < 0)");
return;
@@ -1116,63 +1187,54 @@ _mesa_uniform(GLcontext *ctx, GLint location, GLsizei count,
return;
}
- if (count * elems > shProg->Uniforms->Parameters[location].Size) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glUniform(count too large)");
- return;
- }
-
- if (shProg->Uniforms->Parameters[location].Type == PROGRAM_SAMPLER) {
- /* This controls which texture unit which is used by a sampler */
- GLuint texUnit, sampler;
-
- /* data type for setting samplers must be int */
- if (type != GL_INT || count != 1) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glUniform(only glUniform1i can be used "
- "to set sampler uniforms)");
- return;
- }
-
- sampler = (GLuint) shProg->Uniforms->ParameterValues[location][0];
- texUnit = ((GLuint *) values)[0];
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- /* 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)");
- return;
+ /* 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) {
+ GLint loc = shProg->Uniforms->Uniforms[location].VertPos;
+ if (loc >= 0) {
+ set_program_uniform(ctx, &shProg->VertexProgram->Base,
+ loc, type, count, elems, values);
}
+ }
- if (shProg->VertexProgram) {
- shProg->VertexProgram->Base.SamplerUnits[sampler] = texUnit;
- update_textures_used(&shProg->VertexProgram->Base);
- }
- if (shProg->FragmentProgram) {
- shProg->FragmentProgram->Base.SamplerUnits[sampler] = texUnit;
- update_textures_used(&shProg->FragmentProgram->Base);
+ if (shProg->FragmentProgram) {
+ GLint loc = shProg->Uniforms->Uniforms[location].FragPos;
+ if (loc >= 0) {
+ set_program_uniform(ctx, &shProg->FragmentProgram->Base,
+ loc, type, count, elems, values);
}
+ }
+}
- FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+static void
+set_program_uniform_matrix(GLcontext *ctx, struct gl_program *program,
+ GLuint location, GLuint rows, GLuint cols,
+ GLboolean transpose, const GLfloat *values)
+{
+ /*
+ * Note: the _columns_ of a matrix are stored in program registers, not
+ * the rows.
+ */
+ /* XXXX need to test 3x3 and 2x2 matrices... */
+ if (transpose) {
+ GLuint row, col;
+ for (col = 0; col < cols; col++) {
+ GLfloat *v = program->Parameters->ParameterValues[location + col];
+ for (row = 0; row < rows; row++) {
+ v[row] = values[row * cols + col];
+ }
+ }
}
else {
- /* ordinary uniform variable */
- for (k = 0; k < count; k++) {
- GLfloat *uniformVal = shProg->Uniforms->ParameterValues[location + k];
- if (type == GL_INT ||
- type == GL_INT_VEC2 ||
- type == GL_INT_VEC3 ||
- type == GL_INT_VEC4) {
- const GLint *iValues = ((const GLint *) values) + k * elems;
- for (i = 0; i < elems; i++) {
- uniformVal[i] = (GLfloat) iValues[i];
- }
- }
- else {
- const GLfloat *fValues = ((const GLfloat *) values) + k * elems;
- for (i = 0; i < elems; i++) {
- uniformVal[i] = fValues[i];
- }
+ GLuint row, col;
+ for (col = 0; col < cols; col++) {
+ GLfloat *v = program->Parameters->ParameterValues[location + col];
+ for (row = 0; row < rows; row++) {
+ v[row] = values[col * rows + row];
}
}
}
@@ -1193,7 +1255,7 @@ _mesa_uniform_matrix(GLcontext *ctx, GLint cols, GLint rows,
"glUniformMatrix(program not linked)");
return;
}
- if (location < 0 || location >= shProg->Uniforms->NumParameters) {
+ if (location < 0 || location >= shProg->Uniforms->NumUniforms) {
_mesa_error(ctx, GL_INVALID_VALUE, "glUniformMatrix(location)");
return;
}
@@ -1204,27 +1266,19 @@ _mesa_uniform_matrix(GLcontext *ctx, GLint cols, GLint rows,
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- /*
- * Note: the _columns_ of a matrix are stored in program registers, not
- * the rows.
- */
- /* XXXX need to test 3x3 and 2x2 matrices... */
- if (transpose) {
- GLuint row, col;
- for (col = 0; col < cols; col++) {
- GLfloat *v = shProg->Uniforms->ParameterValues[location + col];
- for (row = 0; row < rows; row++) {
- v[row] = values[row * cols + col];
- }
+ if (shProg->VertexProgram) {
+ GLint loc = shProg->Uniforms->Uniforms[location].VertPos;
+ if (loc >= 0) {
+ set_program_uniform_matrix(ctx, &shProg->VertexProgram->Base,
+ loc, rows, cols, transpose, values);
}
}
- else {
- GLuint row, col;
- for (col = 0; col < cols; col++) {
- GLfloat *v = shProg->Uniforms->ParameterValues[location + col];
- for (row = 0; row < rows; row++) {
- v[row] = values[col * rows + row];
- }
+
+ if (shProg->FragmentProgram) {
+ GLint loc = shProg->Uniforms->Uniforms[location].FragPos;
+ if (loc >= 0) {
+ set_program_uniform_matrix(ctx, &shProg->FragmentProgram->Base,
+ loc, rows, cols, transpose, values);
}
}
}
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c
index bfb9ca4db6a..0df673085b7 100644
--- a/src/mesa/shader/slang/slang_compile.c
+++ b/src/mesa/shader/slang/slang_compile.c
@@ -31,6 +31,8 @@
#include "main/imports.h"
#include "main/context.h"
#include "shader/program.h"
+#include "shader/programopt.h"
+#include "shader/prog_print.h"
#include "shader/prog_parameter.h"
#include "shader/grammar/grammar_mesa.h"
#include "slang_codegen.h"
@@ -2186,6 +2188,19 @@ _slang_compile(GLcontext *ctx, struct gl_shader *shader)
_slang_delete_mempool((slang_mempool *) ctx->Shader.MemPool);
ctx->Shader.MemPool = NULL;
+ if (shader->Type == GL_VERTEX_SHADER) {
+ /* remove any reads of varying (output) registers */
+#if 0
+ printf("Pre-remove output reads:\n");
+ _mesa_print_program(shader->Programs[0]);
+#endif
+ _mesa_remove_varying_reads(shader->Programs[0]);
+#if 0
+ printf("Post-remove output reads:\n");
+ _mesa_print_program(shader->Programs[0]);
+#endif
+ }
+
return success;
}
diff --git a/src/mesa/shader/slang/slang_link.c b/src/mesa/shader/slang/slang_link.c
index 390ae56aa5f..addff204218 100644
--- a/src/mesa/shader/slang/slang_link.c
+++ b/src/mesa/shader/slang/slang_link.c
@@ -37,12 +37,17 @@
#include "shader/prog_parameter.h"
#include "shader/prog_print.h"
#include "shader/prog_statevars.h"
+#include "shader/prog_uniform.h"
#include "shader/shader_api.h"
#include "slang_link.h"
-
+/**
+ * Linking varying vars involves rearranging varying vars so that the
+ * vertex program's output varyings matches the order of the fragment
+ * program's input varyings.
+ */
static GLboolean
link_varying_vars(struct gl_shader_program *shProg, struct gl_program *prog)
{
@@ -132,148 +137,53 @@ link_varying_vars(struct gl_shader_program *shProg, struct gl_program *prog)
}
-static GLboolean
-is_uniform(GLuint file)
-{
- return (file == PROGRAM_ENV_PARAM ||
- file == PROGRAM_STATE_VAR ||
- file == PROGRAM_NAMED_PARAM ||
- file == PROGRAM_CONSTANT ||
- file == PROGRAM_SAMPLER ||
- file == PROGRAM_UNIFORM);
-}
-
-
-static GLuint shProg_NumSamplers = 0; /** XXX temporary */
-
-
-static GLboolean
-link_uniform_vars(struct gl_shader_program *shProg, struct gl_program *prog)
+/**
+ * Build the shProg->Uniforms list.
+ * This is basically a list/index of all uniforms found in either/both of
+ * the vertex and fragment shaders.
+ */
+static void
+link_uniform_vars(struct gl_shader_program *shProg,
+ struct gl_program *prog,
+ GLuint *numSamplers)
{
- GLuint *map, i;
GLuint samplerMap[MAX_SAMPLERS];
+ GLuint i;
-#if 0
- printf("================ pre link uniforms ===============\n");
- _mesa_print_parameter_list(shProg->Uniforms);
-#endif
-
- map = (GLuint *) malloc(prog->Parameters->NumParameters * sizeof(GLuint));
- if (!map)
- return GL_FALSE;
-
- for (i = 0; i < prog->Parameters->NumParameters; /* incr below*/) {
- /* see if this uniform is in the linked uniform list */
+ for (i = 0; i < prog->Parameters->NumParameters; i++) {
const struct gl_program_parameter *p = prog->Parameters->Parameters + i;
- const GLfloat *pVals = prog->Parameters->ParameterValues[i];
- GLint j;
- GLint size;
- /* sanity check */
- assert(is_uniform(p->Type));
-
- /* See if this uniform is already in the linked program's list */
- if (p->Name) {
- /* this is a named uniform */
- j = _mesa_lookup_parameter_index(shProg->Uniforms, -1, p->Name);
- }
- else {
- /* this is an unnamed constant */
- /*GLuint swizzle;*/
- ASSERT(p->Type == PROGRAM_CONSTANT);
- if (_mesa_lookup_parameter_constant(shProg->Uniforms, pVals,
- p->Size, &j, NULL)) {
- assert(j >= 0);
- }
- else {
- j = -1;
- }
- }
-
- if (j >= 0) {
- /* already in linked program's list */
- /* check size XXX check this */
-#if 0
- assert(p->Size == shProg->Uniforms->Parameters[j].Size);
-#endif
- }
- else {
- /* not already in linked list */
- switch (p->Type) {
- case PROGRAM_ENV_PARAM:
- j = _mesa_add_named_parameter(shProg->Uniforms, p->Name, pVals);
- break;
- case PROGRAM_CONSTANT:
- j = _mesa_add_named_constant(shProg->Uniforms, p->Name, pVals, p->Size);
- break;
- case PROGRAM_STATE_VAR:
- j = _mesa_add_state_reference(shProg->Uniforms, p->StateIndexes);
- break;
- case PROGRAM_UNIFORM:
- j = _mesa_add_uniform(shProg->Uniforms, p->Name, p->Size, p->DataType);
- break;
- case PROGRAM_SAMPLER:
- {
- GLuint sampNum = shProg_NumSamplers++;
- GLuint oldSampNum;
- j = _mesa_add_sampler(shProg->Uniforms, p->Name,
- p->DataType, sampNum);
- oldSampNum = (GLuint) prog->Parameters->ParameterValues[i][0];
- assert(oldSampNum < MAX_SAMPLERS);
- samplerMap[oldSampNum] = sampNum;
- }
- break;
- default:
- _mesa_problem(NULL, "bad parameter type in link_uniform_vars()");
- return GL_FALSE;
- }
+ /*
+ * XXX FIX NEEDED HERE
+ * We should also be adding a uniform if p->Type == PROGRAM_STATE_VAR.
+ * For example, modelview matrix, light pos, etc.
+ * Also, we need to update the state-var name-generator code to
+ * generate GLSL-style names, like "gl_LightSource[0].position".
+ * Furthermore, we'll need to fix the state-var's size/datatype info.
+ */
+
+ if (p->Type == PROGRAM_UNIFORM ||
+ p->Type == PROGRAM_SAMPLER) {
+ _mesa_append_uniform(shProg->Uniforms, p->Name, prog->Target, i);
}
- ASSERT(j >= 0);
-
- size = p->Size;
- while (size > 0) {
- map[i] = j;
- i++;
- j++;
- size -= 4;
+ if (p->Type == PROGRAM_SAMPLER) {
+ /* Allocate a new sampler index */
+ GLuint sampNum = *numSamplers;
+ GLuint oldSampNum = (GLuint) prog->Parameters->ParameterValues[i][0];
+ assert(oldSampNum < MAX_SAMPLERS);
+ samplerMap[oldSampNum] = sampNum;
+ (*numSamplers)++;
}
-
}
-#if 0
- printf("================ post link uniforms ===============\n");
- _mesa_print_parameter_list(shProg->Uniforms);
-#endif
-
-#if 0
- {
- GLuint i;
- for (i = 0; i < prog->Parameters->NumParameters; i++) {
- printf("map[%d] = %d\n", i, map[i]);
- }
- _mesa_print_parameter_list(shProg->Uniforms);
- }
-#endif
- /* OK, now scan the program/shader instructions looking for uniform vars,
+ /* OK, now scan the program/shader instructions looking for sampler vars,
* replacing the old index with the new index.
*/
prog->SamplersUsed = 0x0;
for (i = 0; i < prog->NumInstructions; i++) {
struct prog_instruction *inst = prog->Instructions + i;
- GLuint j;
-
- if (is_uniform(inst->DstReg.File)) {
- inst->DstReg.Index = map[ inst->DstReg.Index ];
- }
-
- for (j = 0; j < 3; j++) {
- if (is_uniform(inst->SrcReg[j].File)) {
- inst->SrcReg[j].Index = map[ inst->SrcReg[j].Index ];
- }
- }
-
if (_mesa_is_tex_instruction(inst->Opcode)) {
/*
printf("====== remap sampler from %d to %d\n",
@@ -286,9 +196,6 @@ link_uniform_vars(struct gl_shader_program *shProg, struct gl_program *prog)
}
}
- free(map);
-
- return GL_TRUE;
}
@@ -476,13 +383,12 @@ _slang_link(GLcontext *ctx,
{
const struct gl_vertex_program *vertProg;
const struct gl_fragment_program *fragProg;
+ GLuint numSamplers = 0;
GLuint i;
- shProg_NumSamplers = 0; /** XXX temporary */
-
_mesa_clear_shader_program_data(ctx, shProg);
- shProg->Uniforms = _mesa_new_parameter_list();
+ shProg->Uniforms = _mesa_new_uniform_list();
shProg->Varying = _mesa_new_parameter_list();
/**
@@ -519,24 +425,30 @@ _slang_link(GLcontext *ctx,
shProg->FragmentProgram = NULL;
}
+ /* link varying vars */
if (shProg->VertexProgram)
link_varying_vars(shProg, &shProg->VertexProgram->Base);
if (shProg->FragmentProgram)
link_varying_vars(shProg, &shProg->FragmentProgram->Base);
+ /* link uniform vars */
if (shProg->VertexProgram)
- link_uniform_vars(shProg, &shProg->VertexProgram->Base);
+ link_uniform_vars(shProg, &shProg->VertexProgram->Base, &numSamplers);
if (shProg->FragmentProgram)
- link_uniform_vars(shProg, &shProg->FragmentProgram->Base);
+ link_uniform_vars(shProg, &shProg->FragmentProgram->Base, &numSamplers);
+
+ /*_mesa_print_uniforms(shProg->Uniforms);*/
- /* The vertex and fragment programs share a common set of uniforms now */
if (shProg->VertexProgram) {
- _mesa_free_parameter_list(shProg->VertexProgram->Base.Parameters);
- shProg->VertexProgram->Base.Parameters = shProg->Uniforms;
+ /* Rather than cloning the parameter list here, just share it.
+ * We need to be careful _mesa_clear_shader_program_data() in
+ * to avoid double-freeing.
+ */
+ shProg->VertexProgram->Base.Parameters = vertProg->Base.Parameters;
}
if (shProg->FragmentProgram) {
- _mesa_free_parameter_list(shProg->FragmentProgram->Base.Parameters);
- shProg->FragmentProgram->Base.Parameters = shProg->Uniforms;
+ /* see comment just above */
+ shProg->FragmentProgram->Base.Parameters = fragProg->Base.Parameters;
}
if (shProg->VertexProgram) {
diff --git a/src/mesa/sources b/src/mesa/sources
index d109dce5bcc..a4e2026e4b4 100644
--- a/src/mesa/sources
+++ b/src/mesa/sources
@@ -213,6 +213,7 @@ SHADER_SOURCES = \
shader/prog_parameter.c \
shader/prog_print.c \
shader/prog_statevars.c \
+ shader/prog_uniform.c \
shader/programopt.c \
shader/shader_api.c \
diff --git a/src/mesa/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S
index 8725c7ee4d3..b214bef54de 100644
--- a/src/mesa/sparc/glapi_sparc.S
+++ b/src/mesa/sparc/glapi_sparc.S
@@ -838,6 +838,7 @@ __glapi_sparc_icache_flush: /* %o0 = insn_addr */
.globl gl_dispatch_stub_770 ; .type gl_dispatch_stub_770,#function
.globl gl_dispatch_stub_771 ; .type gl_dispatch_stub_771,#function
.globl gl_dispatch_stub_772 ; .type gl_dispatch_stub_772,#function
+ .globl gl_dispatch_stub_773 ; .type gl_dispatch_stub_773,#function
.globl _mesa_sparc_glapi_begin ; .type _mesa_sparc_glapi_begin,#function
_mesa_sparc_glapi_begin:
@@ -1614,6 +1615,7 @@ _mesa_sparc_glapi_begin:
GL_STUB(gl_dispatch_stub_770, _gloffset__dispatch_stub_770)
GL_STUB(gl_dispatch_stub_771, _gloffset__dispatch_stub_771)
GL_STUB(gl_dispatch_stub_772, _gloffset__dispatch_stub_772)
+ GL_STUB(gl_dispatch_stub_773, _gloffset__dispatch_stub_773)
.globl _mesa_sparc_glapi_end ; .type _mesa_sparc_glapi_end,#function
_mesa_sparc_glapi_end:
diff --git a/src/mesa/state_tracker/st_atom_depth.c b/src/mesa/state_tracker/st_atom_depth.c
index 03057e37fa0..ef467582c00 100644
--- a/src/mesa/state_tracker/st_atom_depth.c
+++ b/src/mesa/state_tracker/st_atom_depth.c
@@ -115,7 +115,7 @@ update_depth_stencil_alpha(struct st_context *st)
dsa->stencil[0].value_mask = st->ctx->Stencil.ValueMask[0] & 0xff;
dsa->stencil[0].write_mask = st->ctx->Stencil.WriteMask[0] & 0xff;
- if (st->ctx->Stencil.TestTwoSide) {
+ if (st->ctx->Stencil._TestTwoSide) {
dsa->stencil[1].enabled = 1;
dsa->stencil[1].func = st_compare_func_to_pipe(st->ctx->Stencil.Function[1]);
dsa->stencil[1].fail_op = gl_stencil_op_to_pipe(st->ctx->Stencil.FailFunc[1]);
@@ -127,6 +127,7 @@ update_depth_stencil_alpha(struct st_context *st)
}
else {
dsa->stencil[1] = dsa->stencil[0];
+ dsa->stencil[1].enabled = 0;
}
}
diff --git a/src/mesa/state_tracker/st_atom_pixeltransfer.c b/src/mesa/state_tracker/st_atom_pixeltransfer.c
index 1e3effd5491..6410e7cb24d 100644
--- a/src/mesa/state_tracker/st_atom_pixeltransfer.c
+++ b/src/mesa/state_tracker/st_atom_pixeltransfer.c
@@ -130,6 +130,7 @@ get_pixel_transfer_program(GLcontext *ctx, const struct state_key *key)
ic++;
fp->Base.InputsRead = (1 << FRAG_ATTRIB_TEX0);
fp->Base.OutputsWritten = (1 << FRAG_RESULT_COLR);
+ fp->Base.SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */
/* MAD colorTemp, colorTemp, scale, bias; */
if (key->scaleAndBias) {
diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
index e1528c4d7b9..01c07dc26d3 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -47,19 +47,18 @@
static void
update_textures(struct st_context *st)
{
- /* ST_NEW_FRAGMENT_PROGRAM
- */
struct gl_fragment_program *fprog = st->ctx->FragmentProgram._Current;
- GLuint unit;
+ GLuint su;
st->state.num_textures = 0;
- for (unit = 0; unit < st->ctx->Const.MaxTextureCoordUnits; unit++) {
- const GLuint su = fprog->Base.SamplerUnits[unit];
+ for (su = 0; su < st->ctx->Const.MaxTextureCoordUnits; su++) {
struct pipe_texture *pt = NULL;
if (fprog->Base.SamplersUsed & (1 << su)) {
- struct gl_texture_object *texObj = st->ctx->Texture.Unit[su]._Current;
+ const GLuint texUnit = fprog->Base.SamplerUnits[su];
+ struct gl_texture_object *texObj
+ = st->ctx->Texture.Unit[texUnit]._Current;
struct st_texture_object *stObj = st_texture_object(texObj);
if (texObj) {
@@ -71,13 +70,13 @@ update_textures(struct st_context *st)
continue;
}
- st->state.num_textures = unit + 1;
+ st->state.num_textures = su + 1;
}
pt = st_get_stobj_texture(stObj);
}
- pipe_texture_reference(&st->state.sampler_texture[unit], pt);
+ pipe_texture_reference(&st->state.sampler_texture[su], pt);
}
st->pipe->set_sampler_textures(st->pipe, st->state.num_textures,
diff --git a/src/mesa/state_tracker/st_cb_accum.c b/src/mesa/state_tracker/st_cb_accum.c
index a623d0bcc06..4f9a22161c2 100644
--- a/src/mesa/state_tracker/st_cb_accum.c
+++ b/src/mesa/state_tracker/st_cb_accum.c
@@ -56,54 +56,123 @@
*/
+/**
+ * Wrapper for pipe_get_tile_rgba(). Do format/cpp override to make the
+ * tile util function think the surface is 16bit/channel, even if it's not.
+ * See also: st_renderbuffer_alloc_storage()
+ */
+static void
+acc_get_tile_rgba(struct pipe_context *pipe, struct pipe_surface *acc_ps,
+ uint x, uint y, uint w, uint h, float *p)
+{
+ const enum pipe_format f = acc_ps->format;
+ const int cpp = acc_ps->cpp;
+
+ acc_ps->format = DEFAULT_ACCUM_PIPE_FORMAT;
+ acc_ps->cpp = 8;
+
+ pipe_get_tile_rgba(pipe, acc_ps, x, y, w, h, p);
+
+ acc_ps->format = f;
+ acc_ps->cpp = cpp;
+}
+
+
+/**
+ * Wrapper for pipe_put_tile_rgba(). Do format/cpp override to make the
+ * tile util function think the surface is 16bit/channel, even if it's not.
+ * See also: st_renderbuffer_alloc_storage()
+ */
+static void
+acc_put_tile_rgba(struct pipe_context *pipe, struct pipe_surface *acc_ps,
+ uint x, uint y, uint w, uint h, const float *p)
+{
+ enum pipe_format f = acc_ps->format;
+ const int cpp = acc_ps->cpp;
+
+ acc_ps->format = DEFAULT_ACCUM_PIPE_FORMAT;
+ acc_ps->cpp = 8;
+
+ pipe_put_tile_rgba(pipe, acc_ps, x, y, w, h, p);
+
+ acc_ps->format = f;
+ acc_ps->cpp = cpp;
+}
+
+
+
void
st_clear_accum_buffer(GLcontext *ctx, struct gl_renderbuffer *rb)
{
- struct pipe_context *pipe = ctx->st->pipe;
struct st_renderbuffer *acc_strb = st_renderbuffer(rb);
struct pipe_surface *acc_ps = acc_strb->surface;
const GLint xpos = ctx->DrawBuffer->_Xmin;
const GLint ypos = ctx->DrawBuffer->_Ymin;
const GLint width = ctx->DrawBuffer->_Xmax - xpos;
const GLint height = ctx->DrawBuffer->_Ymax - ypos;
- const GLfloat r = ctx->Accum.ClearColor[0];
- const GLfloat g = ctx->Accum.ClearColor[1];
- const GLfloat b = ctx->Accum.ClearColor[2];
- const GLfloat a = ctx->Accum.ClearColor[3];
- GLfloat *accBuf = (GLfloat *) malloc(width * height * 4 * sizeof(GLfloat));
- int i;
-
- for (i = 0; i < width * height; i++) {
- accBuf[i*4+0] = r;
- accBuf[i*4+1] = g;
- accBuf[i*4+2] = b;
- accBuf[i*4+3] = a;
+ GLvoid *map;
+
+ map = pipe_surface_map(acc_ps);
+
+ /* note acc_strb->format might not equal acc_ps->format */
+ switch (acc_strb->format) {
+ case PIPE_FORMAT_R16G16B16A16_SNORM:
+ {
+ GLshort r = FLOAT_TO_SHORT(ctx->Accum.ClearColor[0]);
+ GLshort g = FLOAT_TO_SHORT(ctx->Accum.ClearColor[1]);
+ GLshort b = FLOAT_TO_SHORT(ctx->Accum.ClearColor[2]);
+ GLshort a = FLOAT_TO_SHORT(ctx->Accum.ClearColor[3]);
+ int i, j;
+ for (i = 0; i < height; i++) {
+ GLshort *dst = ((GLshort *) map
+ + ((ypos + i) * acc_ps->pitch + xpos) * 4);
+ for (j = 0; j < width; j++) {
+ dst[0] = r;
+ dst[1] = g;
+ dst[2] = b;
+ dst[3] = a;
+ dst += 4;
+ }
+ }
+ }
+ break;
+ default:
+ _mesa_problem(ctx, "unexpected format in st_clear_accum_buffer()");
}
- pipe_put_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, accBuf);
+ pipe_surface_unmap(acc_ps);
}
/** For ADD/MULT */
static void
-accum_mad(struct pipe_context *pipe, GLfloat scale, GLfloat bias,
+accum_mad(GLcontext *ctx, GLfloat scale, GLfloat bias,
GLint xpos, GLint ypos, GLint width, GLint height,
- struct pipe_surface *acc_ps)
+ struct st_renderbuffer *acc_strb)
{
- GLfloat *accBuf;
- GLint i;
-
- accBuf = (GLfloat *) malloc(width * height * 4 * sizeof(GLfloat));
-
- pipe_get_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, accBuf);
-
- for (i = 0; i < 4 * width * height; i++) {
- accBuf[i] = accBuf[i] * scale + bias;
+ struct pipe_surface *acc_ps = acc_strb->surface;
+ GLvoid *map;
+
+ map = pipe_surface_map(acc_ps);
+
+ /* note acc_strb->format might not equal acc_ps->format */
+ switch (acc_strb->format) {
+ case PIPE_FORMAT_R16G16B16A16_SNORM:
+ {
+ int i, j;
+ for (i = 0; i < height; i++) {
+ GLshort *acc = ((GLshort *) map
+ + ((ypos + i) * acc_ps->pitch + xpos) * 4);
+ for (j = 0; j < width * 4; j++) {
+ float val = SHORT_TO_FLOAT(acc[j]) * scale + bias;
+ acc[j] = FLOAT_TO_SHORT(val);
+ }
+ }
+ }
+ break;
+ default:
+ _mesa_problem(NULL, "unexpected format in st_clear_accum_buffer()");
}
-
- pipe_put_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, accBuf);
-
- free(accBuf);
}
@@ -120,13 +189,13 @@ accum_accum(struct pipe_context *pipe, GLfloat value,
accBuf = (GLfloat *) malloc(width * height * 4 * sizeof(GLfloat));
pipe_get_tile_rgba(pipe, color_ps, xpos, ypos, width, height, colorBuf);
- pipe_get_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, accBuf);
+ acc_get_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, accBuf);
for (i = 0; i < 4 * width * height; i++) {
accBuf[i] = accBuf[i] + colorBuf[i] * value;
}
- pipe_put_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, accBuf);
+ acc_put_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, accBuf);
free(colorBuf);
free(accBuf);
@@ -150,7 +219,7 @@ accum_load(struct pipe_context *pipe, GLfloat value,
buf[i] = buf[i] * value;
}
- pipe_put_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, buf);
+ acc_put_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, buf);
free(buf);
}
@@ -169,7 +238,7 @@ accum_return(GLcontext *ctx, GLfloat value,
abuf = (GLfloat *) malloc(width * height * 4 * sizeof(GLfloat));
- pipe_get_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, abuf);
+ acc_get_tile_rgba(pipe, acc_ps, xpos, ypos, width, height, abuf);
if (!colormask[0] || !colormask[1] || !colormask[2] || !colormask[3]) {
cbuf = (GLfloat *) malloc(width * height * 4 * sizeof(GLfloat));
@@ -219,12 +288,12 @@ st_Accum(GLcontext *ctx, GLenum op, GLfloat value)
switch (op) {
case GL_ADD:
if (value != 0.0F) {
- accum_mad(pipe, 1.0, value, xpos, ypos, width, height, acc_ps);
+ accum_mad(ctx, 1.0, value, xpos, ypos, width, height, acc_strb);
}
break;
case GL_MULT:
if (value != 1.0F) {
- accum_mad(pipe, value, 0.0, xpos, ypos, width, height, acc_ps);
+ accum_mad(ctx, value, 0.0, xpos, ypos, width, height, acc_strb);
}
break;
case GL_ACCUM:
diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c
index 0872f2bd28a..505a13cc2b3 100644
--- a/src/mesa/state_tracker/st_cb_bitmap.c
+++ b/src/mesa/state_tracker/st_cb_bitmap.c
@@ -148,6 +148,7 @@ make_bitmap_fragment_program(GLcontext *ctx)
p->InputsRead = FRAG_BIT_TEX0;
p->OutputsWritten = 0x0;
+ p->SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */
stfp = (struct st_fragment_program *) p;
stfp->Base.UsesKill = GL_TRUE;
@@ -546,36 +547,38 @@ void
st_flush_bitmap_cache(struct st_context *st)
{
if (!st->bitmap.cache->empty) {
- struct bitmap_cache *cache = st->bitmap.cache;
- struct pipe_context *pipe = st->pipe;
- struct pipe_screen *screen = pipe->screen;
- struct pipe_surface *surf;
- void *dest;
-
- assert(cache->xmin <= cache->xmax);
- /*
- printf("flush size %d x %d at %d, %d\n",
- cache->xmax - cache->xmin,
- cache->ymax - cache->ymin,
- cache->xpos, cache->ypos);
- */
-
- /* update the texture map image */
- surf = screen->get_tex_surface(screen, cache->texture, 0, 0, 0);
- dest = pipe_surface_map(surf);
- memcpy(dest, cache->buffer, sizeof(cache->buffer));
- pipe_surface_unmap(surf);
- pipe_surface_reference(&surf, NULL);
-
- pipe->texture_update(pipe, cache->texture, 0, 0x1);
-
- draw_bitmap_quad(st->ctx,
- cache->xpos,
- cache->ypos,
- st->ctx->Current.RasterPos[2],
- BITMAP_CACHE_WIDTH, BITMAP_CACHE_HEIGHT,
- cache->texture);
+ if (st->ctx->DrawBuffer) {
+ struct bitmap_cache *cache = st->bitmap.cache;
+ struct pipe_context *pipe = st->pipe;
+ struct pipe_screen *screen = pipe->screen;
+ struct pipe_surface *surf;
+ void *dest;
+
+ assert(cache->xmin <= cache->xmax);
+ /*
+ printf("flush size %d x %d at %d, %d\n",
+ cache->xmax - cache->xmin,
+ cache->ymax - cache->ymin,
+ cache->xpos, cache->ypos);
+ */
+
+ /* update the texture map image */
+ surf = screen->get_tex_surface(screen, cache->texture, 0, 0, 0);
+ dest = pipe_surface_map(surf);
+ memcpy(dest, cache->buffer, sizeof(cache->buffer));
+ pipe_surface_unmap(surf);
+ pipe_surface_reference(&surf, NULL);
+
+ pipe->texture_update(pipe, cache->texture, 0, 0x1);
+
+ draw_bitmap_quad(st->ctx,
+ cache->xpos,
+ cache->ypos,
+ st->ctx->Current.RasterPos[2],
+ BITMAP_CACHE_WIDTH, BITMAP_CACHE_HEIGHT,
+ cache->texture);
+ }
reset_cache(st);
}
}
diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
index c7796cfb6aa..c57e05312a9 100644
--- a/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -212,6 +212,7 @@ make_fragment_shader_z(struct st_context *st)
p->InputsRead = FRAG_BIT_TEX0 | FRAG_BIT_COL0;
p->OutputsWritten = (1 << FRAG_RESULT_COLR) | (1 << FRAG_RESULT_DEPR);
+ p->SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */
stfp = (struct st_fragment_program *) p;
st_translate_fragment_program(st, stfp, NULL);
diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c
index ec7788923a3..b1a56f3ca63 100644
--- a/src/mesa/state_tracker/st_cb_fbo.c
+++ b/src/mesa/state_tracker/st_cb_fbo.c
@@ -80,6 +80,8 @@ init_renderbuffer_bits(struct st_renderbuffer *strb,
/**
* gl_renderbuffer::AllocStorage()
+ * This is called to allocate the original drawing surface, and
+ * during window resize.
*/
static GLboolean
st_renderbuffer_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
@@ -90,8 +92,10 @@ st_renderbuffer_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
struct st_renderbuffer *strb = st_renderbuffer(rb);
enum pipe_format pipeFormat;
GLbitfield flags = 0x0; /* XXX needed? */
+ int ret;
if (!strb->surface) {
+ /* first time surface creation */
strb->surface = pipe->winsys->surface_alloc(pipe->winsys);
assert(strb->surface);
assert(strb->surface->refcount);
@@ -99,10 +103,10 @@ st_renderbuffer_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
if (!strb->surface)
return GL_FALSE;
}
-
- if (strb->surface->buffer)
- pipe_buffer_reference(pipe->winsys, &strb->surface->buffer,
- NULL);
+ else if (strb->surface->buffer) {
+ /* release/discard the old surface buffer */
+ pipe_buffer_reference(pipe->winsys, &strb->surface->buffer, NULL);
+ }
/* Determine surface format here */
if (strb->format != PIPE_FORMAT_NONE) {
@@ -116,20 +120,44 @@ st_renderbuffer_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
init_renderbuffer_bits(strb, pipeFormat);
- pipe->winsys->surface_alloc_storage(pipe->winsys,
- strb->surface,
- width,
- height,
- pipeFormat,
- flags);
- if (!strb->surface->buffer)
- return GL_FALSE; /* out of memory, try s/w buffer? */
+ ret = pipe->winsys->surface_alloc_storage(pipe->winsys,
+ strb->surface,
+ width,
+ height,
+ pipeFormat,
+ flags);
+ if (ret || !strb->surface->buffer) {
+ if (pipeFormat == DEFAULT_ACCUM_PIPE_FORMAT) {
+ /* Accum buffer. Try a different surface format. Since accum
+ * buffers are s/w only for now, the surface pixel format doesn't
+ * really matter, only that the buffer is large enough.
+ */
+ int sz, mult;
+ enum pipe_format accum_format;
+
+ /* allocate a buffer of (typically) double height to get 64bpp */
+ accum_format = st_choose_renderbuffer_format(pipe, GL_RGBA);
+ sz = pf_get_size(accum_format);
+ mult = pf_get_size(DEFAULT_ACCUM_PIPE_FORMAT) / sz;
+
+ ret = pipe->winsys->surface_alloc_storage(pipe->winsys,
+ strb->surface,
+ width, height * mult,
+ accum_format, flags);
+ if (ret)
+ return GL_FALSE; /* we've _really_ failed */
+
+ }
+ else {
+ return GL_FALSE; /* out of memory, try s/w buffer? */
+ }
+ }
ASSERT(strb->surface->buffer);
ASSERT(strb->surface->format);
ASSERT(strb->surface->cpp);
ASSERT(strb->surface->width == width);
- ASSERT(strb->surface->height == height);
+ /*ASSERT(strb->surface->height == height);*/
ASSERT(strb->surface->pitch);
strb->Base.Width = width;
@@ -247,7 +275,7 @@ st_new_renderbuffer_fb(enum pipe_format format)
strb->Base.InternalFormat = GL_STENCIL_INDEX8_EXT;
strb->Base._BaseFormat = GL_STENCIL_INDEX;
break;
- case PIPE_FORMAT_R16G16B16A16_SNORM:
+ case DEFAULT_ACCUM_PIPE_FORMAT: /*PIPE_FORMAT_R16G16B16A16_SNORM*/
strb->Base.InternalFormat = GL_RGBA16;
strb->Base._BaseFormat = GL_RGBA;
break;
diff --git a/src/mesa/state_tracker/st_cb_fbo.h b/src/mesa/state_tracker/st_cb_fbo.h
index 21e531d1d06..c1aa14f9b22 100644
--- a/src/mesa/state_tracker/st_cb_fbo.h
+++ b/src/mesa/state_tracker/st_cb_fbo.h
@@ -30,6 +30,9 @@
#define ST_CB_FBO_H
+#define DEFAULT_ACCUM_PIPE_FORMAT PIPE_FORMAT_R16G16B16A16_SNORM
+
+
/**
* Derived renderbuffer class. Just need to add a pointer to the
diff --git a/src/mesa/state_tracker/st_cb_flush.c b/src/mesa/state_tracker/st_cb_flush.c
index 1de3676bda6..c7efa40e38a 100644
--- a/src/mesa/state_tracker/st_cb_flush.c
+++ b/src/mesa/state_tracker/st_cb_flush.c
@@ -60,7 +60,9 @@ static void st_gl_flush( struct st_context *st, uint pipeFlushFlags,
{
GLframebuffer *fb = st->ctx->DrawBuffer;
- st_flush( st, pipeFlushFlags, fence );
+ st_flush_bitmap_cache(st);
+
+ FLUSH_VERTICES(st->ctx, 0);
if (!fb)
return;
@@ -85,6 +87,15 @@ static void st_gl_flush( struct st_context *st, uint pipeFlushFlags,
= st_renderbuffer(fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer);
struct pipe_surface *front_surf = strb->surface;
+ /* If we aren't rendering to the frontbuffer, this is a noop.
+ * This should be uncontroversial for glFlush, though people may
+ * feel more strongly about glFinish.
+ *
+ * Additionally, need to make sure that the frontbuffer_dirty
+ * flag really gets set on frontbuffer rendering.
+ */
+ st->pipe->flush( st->pipe, pipeFlushFlags, fence );
+
/* Hook for copying "fake" frontbuffer if necessary:
*/
st->pipe->winsys->flush_frontbuffer( st->pipe->winsys, front_surf,
@@ -107,7 +118,7 @@ void st_finish( struct st_context *st )
{
struct pipe_fence_handle *fence = NULL;
- st_gl_flush(st, PIPE_FLUSH_RENDER_CACHE, &fence);
+ st_flush(st, PIPE_FLUSH_RENDER_CACHE, &fence);
st->pipe->winsys->fence_finish(st->pipe->winsys, fence, 0);
st->pipe->winsys->fence_reference(st->pipe->winsys, &fence, NULL);
diff --git a/src/mesa/state_tracker/st_cb_queryobj.c b/src/mesa/state_tracker/st_cb_queryobj.c
index c1d0d086b4b..21c2c7dd9ff 100644
--- a/src/mesa/state_tracker/st_cb_queryobj.c
+++ b/src/mesa/state_tracker/st_cb_queryobj.c
@@ -90,11 +90,7 @@ st_DeleteQuery(GLcontext *ctx, struct gl_query_object *q)
FREE(stq);
}
-/**
- * Do glReadPixels by getting rows from the framebuffer surface with
- * get_tile(). Convert to requested format/type with Mesa image routines.
- * Image transfer ops are done in software too.
- */
+
static void
st_BeginQuery(GLcontext *ctx, struct gl_query_object *q)
{
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index d0bc234f365..43b43ec14cb 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -1519,6 +1519,7 @@ st_init_texture_functions(struct dd_function_table *functions)
/* compressed texture functions */
functions->CompressedTexImage2D = st_CompressedTexImage2D;
functions->GetCompressedTexImage = st_GetCompressedTexImage;
+ functions->CompressedTextureSize = _mesa_compressed_texture_size;
functions->NewTextureObject = st_NewTextureObject;
functions->NewTextureImage = st_NewTextureImage;
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index 761645c1057..cd41dc4684d 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -276,6 +276,14 @@ st_mesa_format_to_pipe_format(GLuint mesaFormat)
return PIPE_FORMAT_Z24S8_UNORM;
case MESA_FORMAT_YCBCR:
return PIPE_FORMAT_YCBCR;
+ case MESA_FORMAT_RGB_DXT1:
+ return PIPE_FORMAT_DXT1_RGB;
+ case MESA_FORMAT_RGBA_DXT1:
+ return PIPE_FORMAT_DXT1_RGBA;
+ case MESA_FORMAT_RGBA_DXT3:
+ return PIPE_FORMAT_DXT3_RGBA;
+ case MESA_FORMAT_RGBA_DXT5:
+ return PIPE_FORMAT_DXT5_RGBA;
default:
assert(0);
return 0;
@@ -313,7 +321,10 @@ default_deep_rgba_format(struct pipe_screen *screen, uint type)
if (screen->is_format_supported(screen, PIPE_FORMAT_R16G16B16A16_SNORM, type)) {
return PIPE_FORMAT_R16G16B16A16_SNORM;
}
- return PIPE_FORMAT_NONE;
+ if (type == PIPE_TEXTURE)
+ return default_rgba_format(screen, type);
+ else
+ return PIPE_FORMAT_NONE;
}
diff --git a/src/mesa/state_tracker/st_framebuffer.c b/src/mesa/state_tracker/st_framebuffer.c
index 075e9d1bd68..ea09d9234cd 100644
--- a/src/mesa/state_tracker/st_framebuffer.c
+++ b/src/mesa/state_tracker/st_framebuffer.c
@@ -107,7 +107,7 @@ st_create_framebuffer( const __GLcontextModes *visual,
if (visual->accumRedBits > 0) {
/* 16-bit/channel accum */
struct gl_renderbuffer *accumRb
- = st_new_renderbuffer_fb(PIPE_FORMAT_R16G16B16A16_SNORM);
+ = st_new_renderbuffer_fb(DEFAULT_ACCUM_PIPE_FORMAT);
_mesa_add_renderbuffer(&stfb->Base, BUFFER_ACCUM, accumRb);
}
diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c
index f3cfda0bfbb..578fd2ecb05 100644
--- a/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -833,8 +833,7 @@ tgsi_translate_mesa_program(
i++) {
if (program->Parameters->Parameters[i].Type == PROGRAM_CONSTANT) {
struct tgsi_full_immediate fullimm
- = make_immediate(program->Parameters->ParameterValues[i],
- program->Parameters->Parameters[i].Size);
+ = make_immediate(program->Parameters->ParameterValues[i], 4);
ti += tgsi_build_full_immediate(&fullimm,
&tokens[ti],
header,
diff --git a/src/mesa/x86-64/glapi_x86-64.S b/src/mesa/x86-64/glapi_x86-64.S
index 171e95d1b83..a239a6749d5 100644
--- a/src/mesa/x86-64/glapi_x86-64.S
+++ b/src/mesa/x86-64/glapi_x86-64.S
@@ -29220,7 +29220,11 @@ GL_PREFIX(_dispatch_stub_771):
pushq %rdi
pushq %rsi
pushq %rdx
+ pushq %rcx
+ pushq %rbp
call _x86_64_get_dispatch@PLT
+ popq %rbp
+ popq %rcx
popq %rdx
popq %rsi
popq %rdi
@@ -29236,7 +29240,11 @@ GL_PREFIX(_dispatch_stub_771):
pushq %rdi
pushq %rsi
pushq %rdx
+ pushq %rcx
+ pushq %rbp
call _glapi_get_dispatch
+ popq %rbp
+ popq %rcx
popq %rdx
popq %rsi
popq %rdi
@@ -29283,6 +29291,44 @@ GL_PREFIX(_dispatch_stub_772):
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(_dispatch_stub_772), .-GL_PREFIX(_dispatch_stub_772)
+ .p2align 4,,15
+ .globl GL_PREFIX(_dispatch_stub_773)
+ .type GL_PREFIX(_dispatch_stub_773), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_773))
+GL_PREFIX(_dispatch_stub_773):
+#if defined(GLX_USE_TLS)
+ call _x86_64_get_dispatch@PLT
+ movq 6184(%rax), %r11
+ jmp *%r11
+#elif defined(PTHREADS)
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ call _x86_64_get_dispatch@PLT
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ movq 6184(%rax), %r11
+ jmp *%r11
+#else
+ movq _glapi_Dispatch(%rip), %rax
+ testq %rax, %rax
+ je 1f
+ movq 6184(%rax), %r11
+ jmp *%r11
+1:
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ call _glapi_get_dispatch
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ movq 6184(%rax), %r11
+ jmp *%r11
+#endif /* defined(GLX_USE_TLS) */
+ .size GL_PREFIX(_dispatch_stub_773), .-GL_PREFIX(_dispatch_stub_773)
+
.globl GL_PREFIX(ArrayElementEXT) ; .set GL_PREFIX(ArrayElementEXT), GL_PREFIX(ArrayElement)
.globl GL_PREFIX(BindTextureEXT) ; .set GL_PREFIX(BindTextureEXT), GL_PREFIX(BindTexture)
.globl GL_PREFIX(DrawArraysEXT) ; .set GL_PREFIX(DrawArraysEXT), GL_PREFIX(DrawArrays)
diff --git a/src/mesa/x86/glapi_x86.S b/src/mesa/x86/glapi_x86.S
index 8b7204cdb79..40ecc207532 100644
--- a/src/mesa/x86/glapi_x86.S
+++ b/src/mesa/x86/glapi_x86.S
@@ -948,14 +948,16 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(_dispatch_stub_767, _gloffset_BlitFramebufferEXT, _dispatch_stub_767@40)
HIDDEN(GL_PREFIX(_dispatch_stub_767, _dispatch_stub_767@40))
GL_STUB(FramebufferTextureLayerEXT, _gloffset_FramebufferTextureLayerEXT, FramebufferTextureLayerEXT@20)
- GL_STUB(_dispatch_stub_769, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_769@16)
+ GL_STUB(_dispatch_stub_769, _gloffset_StencilFuncSeparateATI, _dispatch_stub_769@16)
HIDDEN(GL_PREFIX(_dispatch_stub_769, _dispatch_stub_769@16))
- GL_STUB(_dispatch_stub_770, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_770@16)
+ GL_STUB(_dispatch_stub_770, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_770@16)
HIDDEN(GL_PREFIX(_dispatch_stub_770, _dispatch_stub_770@16))
- GL_STUB(_dispatch_stub_771, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_771@12)
- HIDDEN(GL_PREFIX(_dispatch_stub_771, _dispatch_stub_771@12))
- GL_STUB(_dispatch_stub_772, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_772@12)
+ GL_STUB(_dispatch_stub_771, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_771@16)
+ HIDDEN(GL_PREFIX(_dispatch_stub_771, _dispatch_stub_771@16))
+ GL_STUB(_dispatch_stub_772, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_772@12)
HIDDEN(GL_PREFIX(_dispatch_stub_772, _dispatch_stub_772@12))
+ GL_STUB(_dispatch_stub_773, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_773@12)
+ HIDDEN(GL_PREFIX(_dispatch_stub_773, _dispatch_stub_773@12))
GL_STUB_ALIAS(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4, ArrayElement, ArrayElement@4)
GL_STUB_ALIAS(BindTextureEXT, _gloffset_BindTexture, BindTextureEXT@8, BindTexture, BindTexture@8)
GL_STUB_ALIAS(DrawArraysEXT, _gloffset_DrawArrays, DrawArraysEXT@12, DrawArrays, DrawArrays@12)
@@ -1087,6 +1089,7 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB_ALIAS(MultiTexCoord4iv, _gloffset_MultiTexCoord4ivARB, MultiTexCoord4iv@8, MultiTexCoord4ivARB, MultiTexCoord4ivARB@8)
GL_STUB_ALIAS(MultiTexCoord4s, _gloffset_MultiTexCoord4sARB, MultiTexCoord4s@20, MultiTexCoord4sARB, MultiTexCoord4sARB@20)
GL_STUB_ALIAS(MultiTexCoord4sv, _gloffset_MultiTexCoord4svARB, MultiTexCoord4sv@8, MultiTexCoord4svARB, MultiTexCoord4svARB@8)
+ GL_STUB_ALIAS(StencilOpSeparateATI, _gloffset_StencilOpSeparate, StencilOpSeparateATI@16, StencilOpSeparate, StencilOpSeparate@16)
GL_STUB_ALIAS(LoadTransposeMatrixd, _gloffset_LoadTransposeMatrixdARB, LoadTransposeMatrixd@4, LoadTransposeMatrixdARB, LoadTransposeMatrixdARB@4)
GL_STUB_ALIAS(LoadTransposeMatrixf, _gloffset_LoadTransposeMatrixfARB, LoadTransposeMatrixf@4, LoadTransposeMatrixfARB, LoadTransposeMatrixfARB@4)
GL_STUB_ALIAS(MultTransposeMatrixd, _gloffset_MultTransposeMatrixdARB, MultTransposeMatrixd@4, MultTransposeMatrixdARB, MultTransposeMatrixdARB@4)