summaryrefslogtreecommitdiffstats
path: root/src/mesa/glapi
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/glapi')
-rw-r--r--src/mesa/glapi/APPLE_vertex_array_object.xml8
-rw-r--r--src/mesa/glapi/gl_API.dtd1
-rw-r--r--src/mesa/glapi/gl_API.xml4
-rw-r--r--src/mesa/glapi/gl_SPARC_asm.py21
-rw-r--r--src/mesa/glapi/gl_XML.py2
-rw-r--r--src/mesa/glapi/gl_apitemp.py42
-rw-r--r--src/mesa/glapi/gl_procs.py22
-rw-r--r--src/mesa/glapi/gl_x86-64_asm.py22
-rw-r--r--src/mesa/glapi/gl_x86_asm.py29
-rw-r--r--src/mesa/glapi/glapi.c1
-rw-r--r--src/mesa/glapi/glapitemp.h48
-rw-r--r--src/mesa/glapi/glprocs.h22
12 files changed, 169 insertions, 53 deletions
diff --git a/src/mesa/glapi/APPLE_vertex_array_object.xml b/src/mesa/glapi/APPLE_vertex_array_object.xml
index 3c0c1cc57f8..0d871563d02 100644
--- a/src/mesa/glapi/APPLE_vertex_array_object.xml
+++ b/src/mesa/glapi/APPLE_vertex_array_object.xml
@@ -5,21 +5,21 @@
<category name="GL_APPLE_vertex_array_object" number="273">
<enum name="VERTEX_ARRAY_BINDING_APPLE" value="0x85B5"/>
- <function name="BindVertexArrayAPPLE" offset="819">
+ <function name="BindVertexArrayAPPLE" offset="819" static_dispatch="false">
<param name="array" type="GLuint"/>
</function>
- <function name="DeleteVertexArraysAPPLE" offset="820">
+ <function name="DeleteVertexArraysAPPLE" offset="820" static_dispatch="false">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *" count="n"/>
</function>
- <function name="GenVertexArraysAPPLE" offset="821">
+ <function name="GenVertexArraysAPPLE" offset="821" static_dispatch="false">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *" count="n" output="true"/>
</function>
- <function name="IsVertexArrayAPPLE" offset="822">
+ <function name="IsVertexArrayAPPLE" offset="822" static_dispatch="false">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
diff --git a/src/mesa/glapi/gl_API.dtd b/src/mesa/glapi/gl_API.dtd
index ded487bc922..2f0c88aae5b 100644
--- a/src/mesa/glapi/gl_API.dtd
+++ b/src/mesa/glapi/gl_API.dtd
@@ -33,6 +33,7 @@
<!ATTLIST function name NMTOKEN #REQUIRED
alias NMTOKEN #IMPLIED
offset CDATA #IMPLIED
+ static_dispatch (true | false) "true"
vectorequiv NMTOKEN #IMPLIED>
<!ATTLIST size name NMTOKEN #REQUIRED
count NMTOKEN #IMPLIED
diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml
index 419d3bc880c..b5b549ccf06 100644
--- a/src/mesa/glapi/gl_API.xml
+++ b/src/mesa/glapi/gl_API.xml
@@ -11552,14 +11552,14 @@
</category>
<category name="GL_EXT_gpu_program_parameters" number="319">
- <function name="ProgramEnvParameters4fvEXT" offset="823">
+ <function name="ProgramEnvParameters4fvEXT" offset="823" static_dispatch="false">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ProgramLocalParameters4fvEXT" offset="824">
+ <function name="ProgramLocalParameters4fvEXT" offset="824" static_dispatch="false">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="count" type="GLsizei"/>
diff --git a/src/mesa/glapi/gl_SPARC_asm.py b/src/mesa/glapi/gl_SPARC_asm.py
index 1a8823cc405..1368e24a087 100644
--- a/src/mesa/glapi/gl_SPARC_asm.py
+++ b/src/mesa/glapi/gl_SPARC_asm.py
@@ -82,14 +82,24 @@ class PrintGenericStubs(gl_XML.gl_print_base):
def printBody(self, api):
for f in api.functionIterateByOffset():
- print '\t\t.globl gl%s ; .type gl%s,#function' % (f.name, f.name)
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
+ print '\t\t.globl gl%s ; .type gl%s,#function' % (name, name)
print '\t\t.globl _mesa_sparc_glapi_begin ; .type _mesa_sparc_glapi_begin,#function'
print '_mesa_sparc_glapi_begin:'
print ''
for f in api.functionIterateByOffset():
- print '\tGL_STUB(gl%s, _gloffset_%s)' % (f.name, f.name)
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
+ print '\tGL_STUB(gl%s, _gloffset_%s)' % (name, name)
print ''
print '\t\t.globl _mesa_sparc_glapi_end ; .type _mesa_sparc_glapi_end,#function'
@@ -98,9 +108,10 @@ class PrintGenericStubs(gl_XML.gl_print_base):
for f in api.functionIterateByOffset():
- for n in f.entry_points:
- if n != f.name:
- print '\t.globl gl%s ; .type gl%s,#function ; gl%s = gl%s' % (n, n, n, f.name)
+ if f.static_dispatch:
+ for n in f.entry_points:
+ if n != f.name:
+ print '\t.globl gl%s ; .type gl%s,#function ; gl%s = gl%s' % (n, n, n, f.name)
return
diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py
index 11b23b7a867..e1bff79abc0 100644
--- a/src/mesa/glapi/gl_XML.py
+++ b/src/mesa/glapi/gl_XML.py
@@ -575,6 +575,8 @@ class gl_function( gl_item ):
name = element.nsProp( "name", None )
alias = element.nsProp( "alias", None )
+ self.static_dispatch = is_attr_true(element, "static_dispatch")
+
self.entry_points.append( name )
if alias:
true_name = alias
diff --git a/src/mesa/glapi/gl_apitemp.py b/src/mesa/glapi/gl_apitemp.py
index 7cc434fa89b..30ee6596ed3 100644
--- a/src/mesa/glapi/gl_apitemp.py
+++ b/src/mesa/glapi/gl_apitemp.py
@@ -39,6 +39,7 @@ class PrintGlOffsets(gl_XML.gl_print_base):
(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
self.undef_list.append( "KEYWORD1" )
+ self.undef_list.append( "KEYWORD1_ALT" )
self.undef_list.append( "KEYWORD2" )
self.undef_list.append( "NAME" )
self.undef_list.append( "DISPATCH" )
@@ -54,6 +55,13 @@ class PrintGlOffsets(gl_XML.gl_print_base):
t_string = ""
comma = ""
+ if f.static_dispatch:
+ n = name
+ keyword = "KEYWORD1"
+ else:
+ n = "_dispatch_stub_%u" % (f.offset)
+ keyword = "KEYWORD1_ALT"
+
for p in f.parameterIterator():
if p.is_pointer():
cast = "(const void *) "
@@ -71,8 +79,11 @@ class PrintGlOffsets(gl_XML.gl_print_base):
else:
dispatch = "DISPATCH"
- print 'KEYWORD1 %s KEYWORD2 NAME(%s)(%s)' \
- % (f.return_type, name, f.get_parameter_string(name))
+ if not f.static_dispatch:
+ print '%s %s KEYWORD2 NAME(%s)(%s);' % (keyword, f.return_type, n, f.get_parameter_string(name))
+ print ''
+
+ print '%s %s KEYWORD2 NAME(%s)(%s)' % (keyword, f.return_type, n, f.get_parameter_string(name))
print '{'
if p_string == "":
print ' %s(%s, (), (F, "gl%s();\\n"));' \
@@ -85,6 +96,8 @@ class PrintGlOffsets(gl_XML.gl_print_base):
return
def printRealHeader(self):
+ print ''
+ self.printVisibility( "HIDDEN", "hidden" )
print """
/*
* This file is a template which generates the OpenGL API entry point
@@ -116,6 +129,10 @@ class PrintGlOffsets(gl_XML.gl_print_base):
#define KEYWORD1
#endif
+#ifndef KEYWORD1_ALT
+#define KEYWORD1_ALT HIDDEN
+#endif
+
#ifndef KEYWORD2
#define KEYWORD2
#endif
@@ -149,7 +166,12 @@ class PrintGlOffsets(gl_XML.gl_print_base):
static _glapi_proc DISPATCH_TABLE_NAME[] = {"""
for f in api.functionIterateByOffset():
- print ' TABLE_ENTRY(%s),' % (f.name)
+ if f.static_dispatch:
+ n = f.name
+ else:
+ n = "_dispatch_stub_%u" % (f.offset)
+
+ print ' TABLE_ENTRY(%s),' % (n)
print ' /* A whole bunch of no-op functions. These might be called'
print ' * when someone tries to call a dynamically-registered'
@@ -174,9 +196,10 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {"""
static _glapi_proc UNUSED_TABLE_NAME[] = {"""
for f in api.functionIterateByOffset():
- for n in f.entry_points:
- if n != f.name:
- print ' TABLE_ENTRY(%s),' % (n)
+ if f.static_dispatch:
+ for n in f.entry_points:
+ if n != f.name:
+ print ' TABLE_ENTRY(%s),' % (n)
print '};'
print '#endif /*UNUSED_TABLE_NAME*/'
@@ -186,8 +209,11 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {"""
def printBody(self, api):
for func in api.functionIterateByOffset():
- for n in func.entry_points:
- self.printFunction( func, n )
+ if func.static_dispatch:
+ for n in func.entry_points:
+ self.printFunction( func, n )
+ else:
+ self.printFunction(func, func.name)
self.printInitDispatch(api)
self.printAliasedTable(api)
diff --git a/src/mesa/glapi/gl_procs.py b/src/mesa/glapi/gl_procs.py
index 76131b83a0b..145243ee0e9 100644
--- a/src/mesa/glapi/gl_procs.py
+++ b/src/mesa/glapi/gl_procs.py
@@ -87,8 +87,13 @@ class PrintGlProcs(gl_XML.gl_print_base):
base_offset = 0
table = []
for func in api.functionIterateByOffset():
+ if func.static_dispatch:
+ name = func.name
+ else:
+ name = "_dispatch_stub_%u" % (func.offset)
+
self.printFunctionString( func.name )
- table.append((base_offset, func.name, func.name))
+ table.append((base_offset, name, func.name))
# The length of the function's name, plus 2 for "gl",
# plus 1 for the NUL.
@@ -99,8 +104,13 @@ class PrintGlProcs(gl_XML.gl_print_base):
for func in api.functionIterateByOffset():
for n in func.entry_points:
if n != func.name:
+ if func.static_dispatch:
+ name = n
+ else:
+ name = "_dispatch_stub_%u" % (func.offset)
+
self.printFunctionString( n )
- table.append((base_offset, n, func.name))
+ table.append((base_offset, name, func.name))
base_offset += len(n) + 3
@@ -110,6 +120,14 @@ class PrintGlProcs(gl_XML.gl_print_base):
print '};'
print ''
+ print '/* FIXME: Having these (incorrect) prototypes here is ugly. */'
+ print '#ifdef NEED_FUNCTION_POINTER'
+ for func in api.functionIterateByOffset():
+ if not func.static_dispatch:
+ print 'extern void gl_dispatch_stub_%u(void);' % (func.offset)
+ print '#endif /* NEED_FUNCTION_POINTER */'
+
+ print ''
print 'static const glprocs_table_t static_functions[] = {'
for (offset, disp_name, real_name) in table:
diff --git a/src/mesa/glapi/gl_x86-64_asm.py b/src/mesa/glapi/gl_x86-64_asm.py
index ea13d2ac522..eb440009b2f 100644
--- a/src/mesa/glapi/gl_x86-64_asm.py
+++ b/src/mesa/glapi/gl_x86-64_asm.py
@@ -236,10 +236,17 @@ class PrintGenericStubs(gl_XML.gl_print_base):
registers.append( ["%rbp", 0] )
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
print '\t.p2align\t4,,15'
- print '\t.globl\tGL_PREFIX(%s)' % (f.name)
- print '\t.type\tGL_PREFIX(%s), @function' % (f.name)
- print 'GL_PREFIX(%s):' % (f.name)
+ print '\t.globl\tGL_PREFIX(%s)' % (name)
+ print '\t.type\tGL_PREFIX(%s), @function' % (name)
+ if not f.static_dispatch:
+ print '\tHIDDEN(GL_PREFIX(%s))' % (name)
+ print 'GL_PREFIX(%s):' % (name)
print '#if defined(GLX_USE_TLS)'
print '\tcall\t_x86_64_get_dispatch@PLT'
print '\tmovq\t%u(%%rax), %%r11' % (f.offset * 8)
@@ -273,7 +280,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
print '\tjmp\t*%r11'
print '#endif /* defined(GLX_USE_TLS) */'
- print '\t.size\tGL_PREFIX(%s), .-GL_PREFIX(%s)' % (f.name, f.name)
+ print '\t.size\tGL_PREFIX(%s), .-GL_PREFIX(%s)' % (name, name)
print ''
return
@@ -284,9 +291,10 @@ class PrintGenericStubs(gl_XML.gl_print_base):
for f in api.functionIterateByOffset():
- for n in f.entry_points:
- if n != f.name:
- print '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, f.name)
+ if f.static_dispatch:
+ for n in f.entry_points:
+ if n != f.name:
+ print '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, f.name)
return
diff --git a/src/mesa/glapi/gl_x86_asm.py b/src/mesa/glapi/gl_x86_asm.py
index 899cce64b99..3ce8404f8c9 100644
--- a/src/mesa/glapi/gl_x86_asm.py
+++ b/src/mesa/glapi/gl_x86_asm.py
@@ -197,20 +197,35 @@ class PrintGenericStubs(gl_XML.gl_print_base):
def printBody(self, api):
for f in api.functionIterateByOffset():
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
stack = self.get_stack_size(f)
- alt = "%s@%u" % (f.name, stack)
- print '\tGL_STUB(%s, _gloffset_%s, %s)' % (f.name, f.name, alt)
+ alt = "%s@%u" % (name, stack)
+ print '\tGL_STUB(%s, _gloffset_%s, %s)' % (name, f.name, alt)
+
+ if not f.static_dispatch:
+ print '\tHIDDEN(GL_PREFIX(%s, %s))' % (name, alt)
+
for f in api.functionIterateByOffset():
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
stack = self.get_stack_size(f)
- alt = "%s@%u" % (f.name, stack)
+ alt = "%s@%u" % (name, stack)
- for n in f.entry_points:
- if n != f.name:
- alt2 = "%s@%u" % (n, stack)
- print '\tGL_STUB_ALIAS(%s, _gloffset_%s, %s, %s, %s)' % (n, f.name, alt2, f.name, alt)
+ if f.static_dispatch:
+ for n in f.entry_points:
+ if n != f.name:
+ alt2 = "%s@%u" % (n, stack)
+ print '\tGL_STUB_ALIAS(%s, _gloffset_%s, %s, %s, %s)' % (n, f.name, alt2, f.name, alt)
return
diff --git a/src/mesa/glapi/glapi.c b/src/mesa/glapi/glapi.c
index c095de3961a..b82304b2fce 100644
--- a/src/mesa/glapi/glapi.c
+++ b/src/mesa/glapi/glapi.c
@@ -99,6 +99,7 @@ warn(void)
#define KEYWORD1 static
+#define KEYWORD1_ALT static
#define KEYWORD2 GLAPIENTRY
#define NAME(func) NoOp##func
diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h
index 442fccf2955..52ca9733f3e 100644
--- a/src/mesa/glapi/glapitemp.h
+++ b/src/mesa/glapi/glapitemp.h
@@ -27,6 +27,12 @@
*/
+# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__)
+# define HIDDEN __attribute__((visibility("hidden")))
+# else
+# define HIDDEN
+# endif
+
/*
* This file is a template which generates the OpenGL API entry point
* functions. It should be included by a .c file which first defines
@@ -57,6 +63,10 @@
#define KEYWORD1
#endif
+#ifndef KEYWORD1_ALT
+#define KEYWORD1_ALT HIDDEN
+#endif
+
#ifndef KEYWORD2
#define KEYWORD2
#endif
@@ -5055,32 +5065,44 @@ KEYWORD1 void KEYWORD2 NAME(BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint
DISPATCH(BlitFramebufferEXT, (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter), (F, "glBlitFramebufferEXT(%d, %d, %d, %d, %d, %d, %d, %d, %d, 0x%x);\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter));
}
-KEYWORD1 void KEYWORD2 NAME(BindVertexArrayAPPLE)(GLuint array)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_819)(GLuint array);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_819)(GLuint array)
{
DISPATCH(BindVertexArrayAPPLE, (array), (F, "glBindVertexArrayAPPLE(%d);\n", array));
}
-KEYWORD1 void KEYWORD2 NAME(DeleteVertexArraysAPPLE)(GLsizei n, const GLuint * arrays)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_820)(GLsizei n, const GLuint * arrays);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_820)(GLsizei n, const GLuint * arrays)
{
DISPATCH(DeleteVertexArraysAPPLE, (n, arrays), (F, "glDeleteVertexArraysAPPLE(%d, %p);\n", n, (const void *) arrays));
}
-KEYWORD1 void KEYWORD2 NAME(GenVertexArraysAPPLE)(GLsizei n, GLuint * arrays)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_821)(GLsizei n, GLuint * arrays);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_821)(GLsizei n, GLuint * arrays)
{
DISPATCH(GenVertexArraysAPPLE, (n, arrays), (F, "glGenVertexArraysAPPLE(%d, %p);\n", n, (const void *) arrays));
}
-KEYWORD1 GLboolean KEYWORD2 NAME(IsVertexArrayAPPLE)(GLuint array)
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_822)(GLuint array);
+
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_822)(GLuint array)
{
RETURN_DISPATCH(IsVertexArrayAPPLE, (array), (F, "glIsVertexArrayAPPLE(%d);\n", array));
}
-KEYWORD1 void KEYWORD2 NAME(ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_823)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_823)(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 void KEYWORD2 NAME(ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_824)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_824)(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));
}
@@ -5918,12 +5940,12 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(GetQueryObjecti64vEXT),
TABLE_ENTRY(GetQueryObjectui64vEXT),
TABLE_ENTRY(BlitFramebufferEXT),
- TABLE_ENTRY(BindVertexArrayAPPLE),
- TABLE_ENTRY(DeleteVertexArraysAPPLE),
- TABLE_ENTRY(GenVertexArraysAPPLE),
- TABLE_ENTRY(IsVertexArrayAPPLE),
- TABLE_ENTRY(ProgramEnvParameters4fvEXT),
- TABLE_ENTRY(ProgramLocalParameters4fvEXT),
+ TABLE_ENTRY(_dispatch_stub_819),
+ TABLE_ENTRY(_dispatch_stub_820),
+ TABLE_ENTRY(_dispatch_stub_821),
+ TABLE_ENTRY(_dispatch_stub_822),
+ TABLE_ENTRY(_dispatch_stub_823),
+ TABLE_ENTRY(_dispatch_stub_824),
/* 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.
@@ -6220,6 +6242,7 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {
# undef KEYWORD1
+# undef KEYWORD1_ALT
# undef KEYWORD2
# undef NAME
# undef DISPATCH
@@ -6227,3 +6250,4 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {
# undef DISPATCH_TABLE_NAME
# undef UNUSED_TABLE_NAME
# undef TABLE_ENTRY
+# undef HIDDEN
diff --git a/src/mesa/glapi/glprocs.h b/src/mesa/glapi/glprocs.h
index 3a858ca0e74..b1943c11ec3 100644
--- a/src/mesa/glapi/glprocs.h
+++ b/src/mesa/glapi/glprocs.h
@@ -1051,6 +1051,16 @@ static const char gl_string_table[] =
"glBlendEquationSeparateATI\0"
;
+/* FIXME: Having these (incorrect) prototypes here is ugly. */
+#ifdef NEED_FUNCTION_POINTER
+extern void gl_dispatch_stub_819(void);
+extern void gl_dispatch_stub_820(void);
+extern void gl_dispatch_stub_821(void);
+extern void gl_dispatch_stub_822(void);
+extern void gl_dispatch_stub_823(void);
+extern void gl_dispatch_stub_824(void);
+#endif /* NEED_FUNCTION_POINTER */
+
static const glprocs_table_t static_functions[] = {
NAME_FUNC_OFFSET( 0, glNewList, _gloffset_NewList ),
NAME_FUNC_OFFSET( 10, glEndList, _gloffset_EndList ),
@@ -1871,12 +1881,12 @@ static const glprocs_table_t static_functions[] = {
NAME_FUNC_OFFSET( 14671, glGetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT ),
NAME_FUNC_OFFSET( 14695, glGetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT ),
NAME_FUNC_OFFSET( 14720, glBlitFramebufferEXT, _gloffset_BlitFramebufferEXT ),
- NAME_FUNC_OFFSET( 14741, glBindVertexArrayAPPLE, _gloffset_BindVertexArrayAPPLE ),
- NAME_FUNC_OFFSET( 14764, glDeleteVertexArraysAPPLE, _gloffset_DeleteVertexArraysAPPLE ),
- NAME_FUNC_OFFSET( 14790, glGenVertexArraysAPPLE, _gloffset_GenVertexArraysAPPLE ),
- NAME_FUNC_OFFSET( 14813, glIsVertexArrayAPPLE, _gloffset_IsVertexArrayAPPLE ),
- NAME_FUNC_OFFSET( 14834, glProgramEnvParameters4fvEXT, _gloffset_ProgramEnvParameters4fvEXT ),
- NAME_FUNC_OFFSET( 14863, glProgramLocalParameters4fvEXT, _gloffset_ProgramLocalParameters4fvEXT ),
+ NAME_FUNC_OFFSET( 14741, gl_dispatch_stub_819, _gloffset_BindVertexArrayAPPLE ),
+ NAME_FUNC_OFFSET( 14764, gl_dispatch_stub_820, _gloffset_DeleteVertexArraysAPPLE ),
+ NAME_FUNC_OFFSET( 14790, gl_dispatch_stub_821, _gloffset_GenVertexArraysAPPLE ),
+ NAME_FUNC_OFFSET( 14813, gl_dispatch_stub_822, _gloffset_IsVertexArrayAPPLE ),
+ NAME_FUNC_OFFSET( 14834, gl_dispatch_stub_823, _gloffset_ProgramEnvParameters4fvEXT ),
+ NAME_FUNC_OFFSET( 14863, gl_dispatch_stub_824, _gloffset_ProgramLocalParameters4fvEXT ),
NAME_FUNC_OFFSET( 14894, glArrayElementEXT, _gloffset_ArrayElement ),
NAME_FUNC_OFFSET( 14912, glBindTextureEXT, _gloffset_BindTexture ),
NAME_FUNC_OFFSET( 14929, glDrawArraysEXT, _gloffset_DrawArrays ),