Add new attribute called static_dispatch to the <function> element. This
boolean attribute, which defaults to true, determines whether or not a static dispatch function is available in libGL for applications to link against. Ideally, any new functions that are not part of the ABI should not have directly accessable dispatch functions. This forces applications to use glXGetProcAddress to access these functions. By doing this we can gracefully remove functions from libGL without breaking the linkage of applications. Note that the static dispatch functions are still generated. However, they are given names like gl_dispatch_stub_820 and are marked with the "hidden" linker attribute. All extension functions added since the previous Mesa release (6.5) have been marked as 'static_dispatch="false"'.
This commit is contained in:
@@ -5,21 +5,21 @@
|
|||||||
<category name="GL_APPLE_vertex_array_object" number="273">
|
<category name="GL_APPLE_vertex_array_object" number="273">
|
||||||
<enum name="VERTEX_ARRAY_BINDING_APPLE" value="0x85B5"/>
|
<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"/>
|
<param name="array" type="GLuint"/>
|
||||||
</function>
|
</function>
|
||||||
|
|
||||||
<function name="DeleteVertexArraysAPPLE" offset="820">
|
<function name="DeleteVertexArraysAPPLE" offset="820" static_dispatch="false">
|
||||||
<param name="n" type="GLsizei"/>
|
<param name="n" type="GLsizei"/>
|
||||||
<param name="arrays" type="const GLuint *" count="n"/>
|
<param name="arrays" type="const GLuint *" count="n"/>
|
||||||
</function>
|
</function>
|
||||||
|
|
||||||
<function name="GenVertexArraysAPPLE" offset="821">
|
<function name="GenVertexArraysAPPLE" offset="821" static_dispatch="false">
|
||||||
<param name="n" type="GLsizei"/>
|
<param name="n" type="GLsizei"/>
|
||||||
<param name="arrays" type="GLuint *" count="n" output="true"/>
|
<param name="arrays" type="GLuint *" count="n" output="true"/>
|
||||||
</function>
|
</function>
|
||||||
|
|
||||||
<function name="IsVertexArrayAPPLE" offset="822">
|
<function name="IsVertexArrayAPPLE" offset="822" static_dispatch="false">
|
||||||
<param name="array" type="GLuint"/>
|
<param name="array" type="GLuint"/>
|
||||||
<return type="GLboolean"/>
|
<return type="GLboolean"/>
|
||||||
</function>
|
</function>
|
||||||
|
@@ -33,6 +33,7 @@
|
|||||||
<!ATTLIST function name NMTOKEN #REQUIRED
|
<!ATTLIST function name NMTOKEN #REQUIRED
|
||||||
alias NMTOKEN #IMPLIED
|
alias NMTOKEN #IMPLIED
|
||||||
offset CDATA #IMPLIED
|
offset CDATA #IMPLIED
|
||||||
|
static_dispatch (true | false) "true"
|
||||||
vectorequiv NMTOKEN #IMPLIED>
|
vectorequiv NMTOKEN #IMPLIED>
|
||||||
<!ATTLIST size name NMTOKEN #REQUIRED
|
<!ATTLIST size name NMTOKEN #REQUIRED
|
||||||
count NMTOKEN #IMPLIED
|
count NMTOKEN #IMPLIED
|
||||||
|
@@ -11552,14 +11552,14 @@
|
|||||||
</category>
|
</category>
|
||||||
|
|
||||||
<category name="GL_EXT_gpu_program_parameters" number="319">
|
<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="target" type="GLenum"/>
|
||||||
<param name="index" type="GLuint"/>
|
<param name="index" type="GLuint"/>
|
||||||
<param name="count" type="GLsizei"/>
|
<param name="count" type="GLsizei"/>
|
||||||
<param name="params" type="const GLfloat *"/>
|
<param name="params" type="const GLfloat *"/>
|
||||||
</function>
|
</function>
|
||||||
|
|
||||||
<function name="ProgramLocalParameters4fvEXT" offset="824">
|
<function name="ProgramLocalParameters4fvEXT" offset="824" static_dispatch="false">
|
||||||
<param name="target" type="GLenum"/>
|
<param name="target" type="GLenum"/>
|
||||||
<param name="index" type="GLuint"/>
|
<param name="index" type="GLuint"/>
|
||||||
<param name="count" type="GLsizei"/>
|
<param name="count" type="GLsizei"/>
|
||||||
|
@@ -82,14 +82,24 @@ class PrintGenericStubs(gl_XML.gl_print_base):
|
|||||||
|
|
||||||
def printBody(self, api):
|
def printBody(self, api):
|
||||||
for f in api.functionIterateByOffset():
|
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 '\t\t.globl _mesa_sparc_glapi_begin ; .type _mesa_sparc_glapi_begin,#function'
|
||||||
print '_mesa_sparc_glapi_begin:'
|
print '_mesa_sparc_glapi_begin:'
|
||||||
print ''
|
print ''
|
||||||
|
|
||||||
for f in api.functionIterateByOffset():
|
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 ''
|
||||||
print '\t\t.globl _mesa_sparc_glapi_end ; .type _mesa_sparc_glapi_end,#function'
|
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 f in api.functionIterateByOffset():
|
||||||
for n in f.entry_points:
|
if f.static_dispatch:
|
||||||
if n != f.name:
|
for n in f.entry_points:
|
||||||
print '\t.globl gl%s ; .type gl%s,#function ; gl%s = gl%s' % (n, n, n, f.name)
|
if n != f.name:
|
||||||
|
print '\t.globl gl%s ; .type gl%s,#function ; gl%s = gl%s' % (n, n, n, f.name)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@@ -575,6 +575,8 @@ class gl_function( gl_item ):
|
|||||||
name = element.nsProp( "name", None )
|
name = element.nsProp( "name", None )
|
||||||
alias = element.nsProp( "alias", None )
|
alias = element.nsProp( "alias", None )
|
||||||
|
|
||||||
|
self.static_dispatch = is_attr_true(element, "static_dispatch")
|
||||||
|
|
||||||
self.entry_points.append( name )
|
self.entry_points.append( name )
|
||||||
if alias:
|
if alias:
|
||||||
true_name = alias
|
true_name = alias
|
||||||
|
@@ -39,6 +39,7 @@ class PrintGlOffsets(gl_XML.gl_print_base):
|
|||||||
(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
|
(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
|
||||||
|
|
||||||
self.undef_list.append( "KEYWORD1" )
|
self.undef_list.append( "KEYWORD1" )
|
||||||
|
self.undef_list.append( "KEYWORD1_ALT" )
|
||||||
self.undef_list.append( "KEYWORD2" )
|
self.undef_list.append( "KEYWORD2" )
|
||||||
self.undef_list.append( "NAME" )
|
self.undef_list.append( "NAME" )
|
||||||
self.undef_list.append( "DISPATCH" )
|
self.undef_list.append( "DISPATCH" )
|
||||||
@@ -54,6 +55,13 @@ class PrintGlOffsets(gl_XML.gl_print_base):
|
|||||||
t_string = ""
|
t_string = ""
|
||||||
comma = ""
|
comma = ""
|
||||||
|
|
||||||
|
if f.static_dispatch:
|
||||||
|
n = name
|
||||||
|
keyword = "KEYWORD1"
|
||||||
|
else:
|
||||||
|
n = "_dispatch_stub_%u" % (f.offset)
|
||||||
|
keyword = "KEYWORD1_ALT"
|
||||||
|
|
||||||
for p in f.parameterIterator():
|
for p in f.parameterIterator():
|
||||||
if p.is_pointer():
|
if p.is_pointer():
|
||||||
cast = "(const void *) "
|
cast = "(const void *) "
|
||||||
@@ -71,8 +79,11 @@ class PrintGlOffsets(gl_XML.gl_print_base):
|
|||||||
else:
|
else:
|
||||||
dispatch = "DISPATCH"
|
dispatch = "DISPATCH"
|
||||||
|
|
||||||
print 'KEYWORD1 %s KEYWORD2 NAME(%s)(%s)' \
|
if not f.static_dispatch:
|
||||||
% (f.return_type, name, f.get_parameter_string(name))
|
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 '{'
|
print '{'
|
||||||
if p_string == "":
|
if p_string == "":
|
||||||
print ' %s(%s, (), (F, "gl%s();\\n"));' \
|
print ' %s(%s, (), (F, "gl%s();\\n"));' \
|
||||||
@@ -85,6 +96,8 @@ class PrintGlOffsets(gl_XML.gl_print_base):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def printRealHeader(self):
|
def printRealHeader(self):
|
||||||
|
print ''
|
||||||
|
self.printVisibility( "HIDDEN", "hidden" )
|
||||||
print """
|
print """
|
||||||
/*
|
/*
|
||||||
* This file is a template which generates the OpenGL API entry point
|
* 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
|
#define KEYWORD1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef KEYWORD1_ALT
|
||||||
|
#define KEYWORD1_ALT HIDDEN
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef KEYWORD2
|
#ifndef KEYWORD2
|
||||||
#define KEYWORD2
|
#define KEYWORD2
|
||||||
#endif
|
#endif
|
||||||
@@ -149,7 +166,12 @@ class PrintGlOffsets(gl_XML.gl_print_base):
|
|||||||
|
|
||||||
static _glapi_proc DISPATCH_TABLE_NAME[] = {"""
|
static _glapi_proc DISPATCH_TABLE_NAME[] = {"""
|
||||||
for f in api.functionIterateByOffset():
|
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 ' /* A whole bunch of no-op functions. These might be called'
|
||||||
print ' * when someone tries to call a dynamically-registered'
|
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[] = {"""
|
static _glapi_proc UNUSED_TABLE_NAME[] = {"""
|
||||||
|
|
||||||
for f in api.functionIterateByOffset():
|
for f in api.functionIterateByOffset():
|
||||||
for n in f.entry_points:
|
if f.static_dispatch:
|
||||||
if n != f.name:
|
for n in f.entry_points:
|
||||||
print ' TABLE_ENTRY(%s),' % (n)
|
if n != f.name:
|
||||||
|
print ' TABLE_ENTRY(%s),' % (n)
|
||||||
|
|
||||||
print '};'
|
print '};'
|
||||||
print '#endif /*UNUSED_TABLE_NAME*/'
|
print '#endif /*UNUSED_TABLE_NAME*/'
|
||||||
@@ -186,8 +209,11 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {"""
|
|||||||
|
|
||||||
def printBody(self, api):
|
def printBody(self, api):
|
||||||
for func in api.functionIterateByOffset():
|
for func in api.functionIterateByOffset():
|
||||||
for n in func.entry_points:
|
if func.static_dispatch:
|
||||||
self.printFunction( func, n )
|
for n in func.entry_points:
|
||||||
|
self.printFunction( func, n )
|
||||||
|
else:
|
||||||
|
self.printFunction(func, func.name)
|
||||||
|
|
||||||
self.printInitDispatch(api)
|
self.printInitDispatch(api)
|
||||||
self.printAliasedTable(api)
|
self.printAliasedTable(api)
|
||||||
|
@@ -87,8 +87,13 @@ class PrintGlProcs(gl_XML.gl_print_base):
|
|||||||
base_offset = 0
|
base_offset = 0
|
||||||
table = []
|
table = []
|
||||||
for func in api.functionIterateByOffset():
|
for func in api.functionIterateByOffset():
|
||||||
|
if func.static_dispatch:
|
||||||
|
name = func.name
|
||||||
|
else:
|
||||||
|
name = "_dispatch_stub_%u" % (func.offset)
|
||||||
|
|
||||||
self.printFunctionString( func.name )
|
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",
|
# The length of the function's name, plus 2 for "gl",
|
||||||
# plus 1 for the NUL.
|
# plus 1 for the NUL.
|
||||||
@@ -99,8 +104,13 @@ class PrintGlProcs(gl_XML.gl_print_base):
|
|||||||
for func in api.functionIterateByOffset():
|
for func in api.functionIterateByOffset():
|
||||||
for n in func.entry_points:
|
for n in func.entry_points:
|
||||||
if n != func.name:
|
if n != func.name:
|
||||||
|
if func.static_dispatch:
|
||||||
|
name = n
|
||||||
|
else:
|
||||||
|
name = "_dispatch_stub_%u" % (func.offset)
|
||||||
|
|
||||||
self.printFunctionString( n )
|
self.printFunctionString( n )
|
||||||
table.append((base_offset, n, func.name))
|
table.append((base_offset, name, func.name))
|
||||||
base_offset += len(n) + 3
|
base_offset += len(n) + 3
|
||||||
|
|
||||||
|
|
||||||
@@ -109,6 +119,14 @@ class PrintGlProcs(gl_XML.gl_print_base):
|
|||||||
else:
|
else:
|
||||||
print '};'
|
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 ''
|
||||||
print 'static const glprocs_table_t static_functions[] = {'
|
print 'static const glprocs_table_t static_functions[] = {'
|
||||||
|
|
||||||
|
@@ -236,10 +236,17 @@ class PrintGenericStubs(gl_XML.gl_print_base):
|
|||||||
registers.append( ["%rbp", 0] )
|
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.p2align\t4,,15'
|
||||||
print '\t.globl\tGL_PREFIX(%s)' % (f.name)
|
print '\t.globl\tGL_PREFIX(%s)' % (name)
|
||||||
print '\t.type\tGL_PREFIX(%s), @function' % (f.name)
|
print '\t.type\tGL_PREFIX(%s), @function' % (name)
|
||||||
print 'GL_PREFIX(%s):' % (f.name)
|
if not f.static_dispatch:
|
||||||
|
print '\tHIDDEN(GL_PREFIX(%s))' % (name)
|
||||||
|
print 'GL_PREFIX(%s):' % (name)
|
||||||
print '#if defined(GLX_USE_TLS)'
|
print '#if defined(GLX_USE_TLS)'
|
||||||
print '\tcall\t_x86_64_get_dispatch@PLT'
|
print '\tcall\t_x86_64_get_dispatch@PLT'
|
||||||
print '\tmovq\t%u(%%rax), %%r11' % (f.offset * 8)
|
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 '\tjmp\t*%r11'
|
||||||
print '#endif /* defined(GLX_USE_TLS) */'
|
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 ''
|
print ''
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -284,9 +291,10 @@ class PrintGenericStubs(gl_XML.gl_print_base):
|
|||||||
|
|
||||||
|
|
||||||
for f in api.functionIterateByOffset():
|
for f in api.functionIterateByOffset():
|
||||||
for n in f.entry_points:
|
if f.static_dispatch:
|
||||||
if n != f.name:
|
for n in f.entry_points:
|
||||||
print '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, f.name)
|
if n != f.name:
|
||||||
|
print '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, f.name)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@@ -197,20 +197,35 @@ class PrintGenericStubs(gl_XML.gl_print_base):
|
|||||||
|
|
||||||
def printBody(self, api):
|
def printBody(self, api):
|
||||||
for f in api.functionIterateByOffset():
|
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)
|
stack = self.get_stack_size(f)
|
||||||
|
|
||||||
alt = "%s@%u" % (f.name, stack)
|
alt = "%s@%u" % (name, stack)
|
||||||
print '\tGL_STUB(%s, _gloffset_%s, %s)' % (f.name, f.name, alt)
|
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():
|
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)
|
stack = self.get_stack_size(f)
|
||||||
|
|
||||||
alt = "%s@%u" % (f.name, stack)
|
alt = "%s@%u" % (name, stack)
|
||||||
|
|
||||||
for n in f.entry_points:
|
if f.static_dispatch:
|
||||||
if n != f.name:
|
for n in f.entry_points:
|
||||||
alt2 = "%s@%u" % (n, stack)
|
if n != f.name:
|
||||||
print '\tGL_STUB_ALIAS(%s, _gloffset_%s, %s, %s, %s)' % (n, f.name, alt2, f.name, alt)
|
alt2 = "%s@%u" % (n, stack)
|
||||||
|
print '\tGL_STUB_ALIAS(%s, _gloffset_%s, %s, %s, %s)' % (n, f.name, alt2, f.name, alt)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@@ -99,6 +99,7 @@ warn(void)
|
|||||||
|
|
||||||
|
|
||||||
#define KEYWORD1 static
|
#define KEYWORD1 static
|
||||||
|
#define KEYWORD1_ALT static
|
||||||
#define KEYWORD2 GLAPIENTRY
|
#define KEYWORD2 GLAPIENTRY
|
||||||
#define NAME(func) NoOp##func
|
#define NAME(func) NoOp##func
|
||||||
|
|
||||||
|
@@ -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
|
* This file is a template which generates the OpenGL API entry point
|
||||||
* functions. It should be included by a .c file which first defines
|
* functions. It should be included by a .c file which first defines
|
||||||
@@ -57,6 +63,10 @@
|
|||||||
#define KEYWORD1
|
#define KEYWORD1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef KEYWORD1_ALT
|
||||||
|
#define KEYWORD1_ALT HIDDEN
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef KEYWORD2
|
#ifndef KEYWORD2
|
||||||
#define KEYWORD2
|
#define KEYWORD2
|
||||||
#endif
|
#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));
|
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));
|
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));
|
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));
|
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));
|
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));
|
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));
|
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(GetQueryObjecti64vEXT),
|
||||||
TABLE_ENTRY(GetQueryObjectui64vEXT),
|
TABLE_ENTRY(GetQueryObjectui64vEXT),
|
||||||
TABLE_ENTRY(BlitFramebufferEXT),
|
TABLE_ENTRY(BlitFramebufferEXT),
|
||||||
TABLE_ENTRY(BindVertexArrayAPPLE),
|
TABLE_ENTRY(_dispatch_stub_819),
|
||||||
TABLE_ENTRY(DeleteVertexArraysAPPLE),
|
TABLE_ENTRY(_dispatch_stub_820),
|
||||||
TABLE_ENTRY(GenVertexArraysAPPLE),
|
TABLE_ENTRY(_dispatch_stub_821),
|
||||||
TABLE_ENTRY(IsVertexArrayAPPLE),
|
TABLE_ENTRY(_dispatch_stub_822),
|
||||||
TABLE_ENTRY(ProgramEnvParameters4fvEXT),
|
TABLE_ENTRY(_dispatch_stub_823),
|
||||||
TABLE_ENTRY(ProgramLocalParameters4fvEXT),
|
TABLE_ENTRY(_dispatch_stub_824),
|
||||||
/* A whole bunch of no-op functions. These might be called
|
/* A whole bunch of no-op functions. These might be called
|
||||||
* when someone tries to call a dynamically-registered
|
* when someone tries to call a dynamically-registered
|
||||||
* extension function without a current rendering context.
|
* extension function without a current rendering context.
|
||||||
@@ -6220,6 +6242,7 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {
|
|||||||
|
|
||||||
|
|
||||||
# undef KEYWORD1
|
# undef KEYWORD1
|
||||||
|
# undef KEYWORD1_ALT
|
||||||
# undef KEYWORD2
|
# undef KEYWORD2
|
||||||
# undef NAME
|
# undef NAME
|
||||||
# undef DISPATCH
|
# undef DISPATCH
|
||||||
@@ -6227,3 +6250,4 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {
|
|||||||
# undef DISPATCH_TABLE_NAME
|
# undef DISPATCH_TABLE_NAME
|
||||||
# undef UNUSED_TABLE_NAME
|
# undef UNUSED_TABLE_NAME
|
||||||
# undef TABLE_ENTRY
|
# undef TABLE_ENTRY
|
||||||
|
# undef HIDDEN
|
||||||
|
@@ -1051,6 +1051,16 @@ static const char gl_string_table[] =
|
|||||||
"glBlendEquationSeparateATI\0"
|
"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[] = {
|
static const glprocs_table_t static_functions[] = {
|
||||||
NAME_FUNC_OFFSET( 0, glNewList, _gloffset_NewList ),
|
NAME_FUNC_OFFSET( 0, glNewList, _gloffset_NewList ),
|
||||||
NAME_FUNC_OFFSET( 10, glEndList, _gloffset_EndList ),
|
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( 14671, glGetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT ),
|
||||||
NAME_FUNC_OFFSET( 14695, glGetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT ),
|
NAME_FUNC_OFFSET( 14695, glGetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT ),
|
||||||
NAME_FUNC_OFFSET( 14720, glBlitFramebufferEXT, _gloffset_BlitFramebufferEXT ),
|
NAME_FUNC_OFFSET( 14720, glBlitFramebufferEXT, _gloffset_BlitFramebufferEXT ),
|
||||||
NAME_FUNC_OFFSET( 14741, glBindVertexArrayAPPLE, _gloffset_BindVertexArrayAPPLE ),
|
NAME_FUNC_OFFSET( 14741, gl_dispatch_stub_819, _gloffset_BindVertexArrayAPPLE ),
|
||||||
NAME_FUNC_OFFSET( 14764, glDeleteVertexArraysAPPLE, _gloffset_DeleteVertexArraysAPPLE ),
|
NAME_FUNC_OFFSET( 14764, gl_dispatch_stub_820, _gloffset_DeleteVertexArraysAPPLE ),
|
||||||
NAME_FUNC_OFFSET( 14790, glGenVertexArraysAPPLE, _gloffset_GenVertexArraysAPPLE ),
|
NAME_FUNC_OFFSET( 14790, gl_dispatch_stub_821, _gloffset_GenVertexArraysAPPLE ),
|
||||||
NAME_FUNC_OFFSET( 14813, glIsVertexArrayAPPLE, _gloffset_IsVertexArrayAPPLE ),
|
NAME_FUNC_OFFSET( 14813, gl_dispatch_stub_822, _gloffset_IsVertexArrayAPPLE ),
|
||||||
NAME_FUNC_OFFSET( 14834, glProgramEnvParameters4fvEXT, _gloffset_ProgramEnvParameters4fvEXT ),
|
NAME_FUNC_OFFSET( 14834, gl_dispatch_stub_823, _gloffset_ProgramEnvParameters4fvEXT ),
|
||||||
NAME_FUNC_OFFSET( 14863, glProgramLocalParameters4fvEXT, _gloffset_ProgramLocalParameters4fvEXT ),
|
NAME_FUNC_OFFSET( 14863, gl_dispatch_stub_824, _gloffset_ProgramLocalParameters4fvEXT ),
|
||||||
NAME_FUNC_OFFSET( 14894, glArrayElementEXT, _gloffset_ArrayElement ),
|
NAME_FUNC_OFFSET( 14894, glArrayElementEXT, _gloffset_ArrayElement ),
|
||||||
NAME_FUNC_OFFSET( 14912, glBindTextureEXT, _gloffset_BindTexture ),
|
NAME_FUNC_OFFSET( 14912, glBindTextureEXT, _gloffset_BindTexture ),
|
||||||
NAME_FUNC_OFFSET( 14929, glDrawArraysEXT, _gloffset_DrawArrays ),
|
NAME_FUNC_OFFSET( 14929, glDrawArraysEXT, _gloffset_DrawArrays ),
|
||||||
|
@@ -884,12 +884,12 @@ __glapi_sparc_icache_flush: /* %o0 = insn_addr */
|
|||||||
.globl glGetQueryObjecti64vEXT ; .type glGetQueryObjecti64vEXT,#function
|
.globl glGetQueryObjecti64vEXT ; .type glGetQueryObjecti64vEXT,#function
|
||||||
.globl glGetQueryObjectui64vEXT ; .type glGetQueryObjectui64vEXT,#function
|
.globl glGetQueryObjectui64vEXT ; .type glGetQueryObjectui64vEXT,#function
|
||||||
.globl glBlitFramebufferEXT ; .type glBlitFramebufferEXT,#function
|
.globl glBlitFramebufferEXT ; .type glBlitFramebufferEXT,#function
|
||||||
.globl glBindVertexArrayAPPLE ; .type glBindVertexArrayAPPLE,#function
|
.globl gl_dispatch_stub_819 ; .type gl_dispatch_stub_819,#function
|
||||||
.globl glDeleteVertexArraysAPPLE ; .type glDeleteVertexArraysAPPLE,#function
|
.globl gl_dispatch_stub_820 ; .type gl_dispatch_stub_820,#function
|
||||||
.globl glGenVertexArraysAPPLE ; .type glGenVertexArraysAPPLE,#function
|
.globl gl_dispatch_stub_821 ; .type gl_dispatch_stub_821,#function
|
||||||
.globl glIsVertexArrayAPPLE ; .type glIsVertexArrayAPPLE,#function
|
.globl gl_dispatch_stub_822 ; .type gl_dispatch_stub_822,#function
|
||||||
.globl glProgramEnvParameters4fvEXT ; .type glProgramEnvParameters4fvEXT,#function
|
.globl gl_dispatch_stub_823 ; .type gl_dispatch_stub_823,#function
|
||||||
.globl glProgramLocalParameters4fvEXT ; .type glProgramLocalParameters4fvEXT,#function
|
.globl gl_dispatch_stub_824 ; .type gl_dispatch_stub_824,#function
|
||||||
.globl _mesa_sparc_glapi_begin ; .type _mesa_sparc_glapi_begin,#function
|
.globl _mesa_sparc_glapi_begin ; .type _mesa_sparc_glapi_begin,#function
|
||||||
_mesa_sparc_glapi_begin:
|
_mesa_sparc_glapi_begin:
|
||||||
|
|
||||||
@@ -1712,12 +1712,12 @@ _mesa_sparc_glapi_begin:
|
|||||||
GL_STUB(glGetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT)
|
GL_STUB(glGetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT)
|
||||||
GL_STUB(glGetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT)
|
GL_STUB(glGetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT)
|
||||||
GL_STUB(glBlitFramebufferEXT, _gloffset_BlitFramebufferEXT)
|
GL_STUB(glBlitFramebufferEXT, _gloffset_BlitFramebufferEXT)
|
||||||
GL_STUB(glBindVertexArrayAPPLE, _gloffset_BindVertexArrayAPPLE)
|
GL_STUB(gl_dispatch_stub_819, _gloffset__dispatch_stub_819)
|
||||||
GL_STUB(glDeleteVertexArraysAPPLE, _gloffset_DeleteVertexArraysAPPLE)
|
GL_STUB(gl_dispatch_stub_820, _gloffset__dispatch_stub_820)
|
||||||
GL_STUB(glGenVertexArraysAPPLE, _gloffset_GenVertexArraysAPPLE)
|
GL_STUB(gl_dispatch_stub_821, _gloffset__dispatch_stub_821)
|
||||||
GL_STUB(glIsVertexArrayAPPLE, _gloffset_IsVertexArrayAPPLE)
|
GL_STUB(gl_dispatch_stub_822, _gloffset__dispatch_stub_822)
|
||||||
GL_STUB(glProgramEnvParameters4fvEXT, _gloffset_ProgramEnvParameters4fvEXT)
|
GL_STUB(gl_dispatch_stub_823, _gloffset__dispatch_stub_823)
|
||||||
GL_STUB(glProgramLocalParameters4fvEXT, _gloffset_ProgramLocalParameters4fvEXT)
|
GL_STUB(gl_dispatch_stub_824, _gloffset__dispatch_stub_824)
|
||||||
|
|
||||||
.globl _mesa_sparc_glapi_end ; .type _mesa_sparc_glapi_end,#function
|
.globl _mesa_sparc_glapi_end ; .type _mesa_sparc_glapi_end,#function
|
||||||
_mesa_sparc_glapi_end:
|
_mesa_sparc_glapi_end:
|
||||||
|
@@ -30937,9 +30937,10 @@ GL_PREFIX(BlitFramebufferEXT):
|
|||||||
.size GL_PREFIX(BlitFramebufferEXT), .-GL_PREFIX(BlitFramebufferEXT)
|
.size GL_PREFIX(BlitFramebufferEXT), .-GL_PREFIX(BlitFramebufferEXT)
|
||||||
|
|
||||||
.p2align 4,,15
|
.p2align 4,,15
|
||||||
.globl GL_PREFIX(BindVertexArrayAPPLE)
|
.globl GL_PREFIX(_dispatch_stub_819)
|
||||||
.type GL_PREFIX(BindVertexArrayAPPLE), @function
|
.type GL_PREFIX(_dispatch_stub_819), @function
|
||||||
GL_PREFIX(BindVertexArrayAPPLE):
|
HIDDEN(GL_PREFIX(_dispatch_stub_819))
|
||||||
|
GL_PREFIX(_dispatch_stub_819):
|
||||||
#if defined(GLX_USE_TLS)
|
#if defined(GLX_USE_TLS)
|
||||||
call _x86_64_get_dispatch@PLT
|
call _x86_64_get_dispatch@PLT
|
||||||
movq 6552(%rax), %r11
|
movq 6552(%rax), %r11
|
||||||
@@ -30963,12 +30964,13 @@ GL_PREFIX(BindVertexArrayAPPLE):
|
|||||||
movq 6552(%rax), %r11
|
movq 6552(%rax), %r11
|
||||||
jmp *%r11
|
jmp *%r11
|
||||||
#endif /* defined(GLX_USE_TLS) */
|
#endif /* defined(GLX_USE_TLS) */
|
||||||
.size GL_PREFIX(BindVertexArrayAPPLE), .-GL_PREFIX(BindVertexArrayAPPLE)
|
.size GL_PREFIX(_dispatch_stub_819), .-GL_PREFIX(_dispatch_stub_819)
|
||||||
|
|
||||||
.p2align 4,,15
|
.p2align 4,,15
|
||||||
.globl GL_PREFIX(DeleteVertexArraysAPPLE)
|
.globl GL_PREFIX(_dispatch_stub_820)
|
||||||
.type GL_PREFIX(DeleteVertexArraysAPPLE), @function
|
.type GL_PREFIX(_dispatch_stub_820), @function
|
||||||
GL_PREFIX(DeleteVertexArraysAPPLE):
|
HIDDEN(GL_PREFIX(_dispatch_stub_820))
|
||||||
|
GL_PREFIX(_dispatch_stub_820):
|
||||||
#if defined(GLX_USE_TLS)
|
#if defined(GLX_USE_TLS)
|
||||||
call _x86_64_get_dispatch@PLT
|
call _x86_64_get_dispatch@PLT
|
||||||
movq 6560(%rax), %r11
|
movq 6560(%rax), %r11
|
||||||
@@ -31000,12 +31002,13 @@ GL_PREFIX(DeleteVertexArraysAPPLE):
|
|||||||
movq 6560(%rax), %r11
|
movq 6560(%rax), %r11
|
||||||
jmp *%r11
|
jmp *%r11
|
||||||
#endif /* defined(GLX_USE_TLS) */
|
#endif /* defined(GLX_USE_TLS) */
|
||||||
.size GL_PREFIX(DeleteVertexArraysAPPLE), .-GL_PREFIX(DeleteVertexArraysAPPLE)
|
.size GL_PREFIX(_dispatch_stub_820), .-GL_PREFIX(_dispatch_stub_820)
|
||||||
|
|
||||||
.p2align 4,,15
|
.p2align 4,,15
|
||||||
.globl GL_PREFIX(GenVertexArraysAPPLE)
|
.globl GL_PREFIX(_dispatch_stub_821)
|
||||||
.type GL_PREFIX(GenVertexArraysAPPLE), @function
|
.type GL_PREFIX(_dispatch_stub_821), @function
|
||||||
GL_PREFIX(GenVertexArraysAPPLE):
|
HIDDEN(GL_PREFIX(_dispatch_stub_821))
|
||||||
|
GL_PREFIX(_dispatch_stub_821):
|
||||||
#if defined(GLX_USE_TLS)
|
#if defined(GLX_USE_TLS)
|
||||||
call _x86_64_get_dispatch@PLT
|
call _x86_64_get_dispatch@PLT
|
||||||
movq 6568(%rax), %r11
|
movq 6568(%rax), %r11
|
||||||
@@ -31037,12 +31040,13 @@ GL_PREFIX(GenVertexArraysAPPLE):
|
|||||||
movq 6568(%rax), %r11
|
movq 6568(%rax), %r11
|
||||||
jmp *%r11
|
jmp *%r11
|
||||||
#endif /* defined(GLX_USE_TLS) */
|
#endif /* defined(GLX_USE_TLS) */
|
||||||
.size GL_PREFIX(GenVertexArraysAPPLE), .-GL_PREFIX(GenVertexArraysAPPLE)
|
.size GL_PREFIX(_dispatch_stub_821), .-GL_PREFIX(_dispatch_stub_821)
|
||||||
|
|
||||||
.p2align 4,,15
|
.p2align 4,,15
|
||||||
.globl GL_PREFIX(IsVertexArrayAPPLE)
|
.globl GL_PREFIX(_dispatch_stub_822)
|
||||||
.type GL_PREFIX(IsVertexArrayAPPLE), @function
|
.type GL_PREFIX(_dispatch_stub_822), @function
|
||||||
GL_PREFIX(IsVertexArrayAPPLE):
|
HIDDEN(GL_PREFIX(_dispatch_stub_822))
|
||||||
|
GL_PREFIX(_dispatch_stub_822):
|
||||||
#if defined(GLX_USE_TLS)
|
#if defined(GLX_USE_TLS)
|
||||||
call _x86_64_get_dispatch@PLT
|
call _x86_64_get_dispatch@PLT
|
||||||
movq 6576(%rax), %r11
|
movq 6576(%rax), %r11
|
||||||
@@ -31066,12 +31070,13 @@ GL_PREFIX(IsVertexArrayAPPLE):
|
|||||||
movq 6576(%rax), %r11
|
movq 6576(%rax), %r11
|
||||||
jmp *%r11
|
jmp *%r11
|
||||||
#endif /* defined(GLX_USE_TLS) */
|
#endif /* defined(GLX_USE_TLS) */
|
||||||
.size GL_PREFIX(IsVertexArrayAPPLE), .-GL_PREFIX(IsVertexArrayAPPLE)
|
.size GL_PREFIX(_dispatch_stub_822), .-GL_PREFIX(_dispatch_stub_822)
|
||||||
|
|
||||||
.p2align 4,,15
|
.p2align 4,,15
|
||||||
.globl GL_PREFIX(ProgramEnvParameters4fvEXT)
|
.globl GL_PREFIX(_dispatch_stub_823)
|
||||||
.type GL_PREFIX(ProgramEnvParameters4fvEXT), @function
|
.type GL_PREFIX(_dispatch_stub_823), @function
|
||||||
GL_PREFIX(ProgramEnvParameters4fvEXT):
|
HIDDEN(GL_PREFIX(_dispatch_stub_823))
|
||||||
|
GL_PREFIX(_dispatch_stub_823):
|
||||||
#if defined(GLX_USE_TLS)
|
#if defined(GLX_USE_TLS)
|
||||||
call _x86_64_get_dispatch@PLT
|
call _x86_64_get_dispatch@PLT
|
||||||
movq 6584(%rax), %r11
|
movq 6584(%rax), %r11
|
||||||
@@ -31111,12 +31116,13 @@ GL_PREFIX(ProgramEnvParameters4fvEXT):
|
|||||||
movq 6584(%rax), %r11
|
movq 6584(%rax), %r11
|
||||||
jmp *%r11
|
jmp *%r11
|
||||||
#endif /* defined(GLX_USE_TLS) */
|
#endif /* defined(GLX_USE_TLS) */
|
||||||
.size GL_PREFIX(ProgramEnvParameters4fvEXT), .-GL_PREFIX(ProgramEnvParameters4fvEXT)
|
.size GL_PREFIX(_dispatch_stub_823), .-GL_PREFIX(_dispatch_stub_823)
|
||||||
|
|
||||||
.p2align 4,,15
|
.p2align 4,,15
|
||||||
.globl GL_PREFIX(ProgramLocalParameters4fvEXT)
|
.globl GL_PREFIX(_dispatch_stub_824)
|
||||||
.type GL_PREFIX(ProgramLocalParameters4fvEXT), @function
|
.type GL_PREFIX(_dispatch_stub_824), @function
|
||||||
GL_PREFIX(ProgramLocalParameters4fvEXT):
|
HIDDEN(GL_PREFIX(_dispatch_stub_824))
|
||||||
|
GL_PREFIX(_dispatch_stub_824):
|
||||||
#if defined(GLX_USE_TLS)
|
#if defined(GLX_USE_TLS)
|
||||||
call _x86_64_get_dispatch@PLT
|
call _x86_64_get_dispatch@PLT
|
||||||
movq 6592(%rax), %r11
|
movq 6592(%rax), %r11
|
||||||
@@ -31156,7 +31162,7 @@ GL_PREFIX(ProgramLocalParameters4fvEXT):
|
|||||||
movq 6592(%rax), %r11
|
movq 6592(%rax), %r11
|
||||||
jmp *%r11
|
jmp *%r11
|
||||||
#endif /* defined(GLX_USE_TLS) */
|
#endif /* defined(GLX_USE_TLS) */
|
||||||
.size GL_PREFIX(ProgramLocalParameters4fvEXT), .-GL_PREFIX(ProgramLocalParameters4fvEXT)
|
.size GL_PREFIX(_dispatch_stub_824), .-GL_PREFIX(_dispatch_stub_824)
|
||||||
|
|
||||||
.globl GL_PREFIX(ArrayElementEXT) ; .set GL_PREFIX(ArrayElementEXT), GL_PREFIX(ArrayElement)
|
.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(BindTextureEXT) ; .set GL_PREFIX(BindTextureEXT), GL_PREFIX(BindTexture)
|
||||||
|
@@ -960,12 +960,18 @@ GLNAME(gl_dispatch_functions_start):
|
|||||||
GL_STUB(GetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT, GetQueryObjecti64vEXT@12)
|
GL_STUB(GetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT, GetQueryObjecti64vEXT@12)
|
||||||
GL_STUB(GetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT, GetQueryObjectui64vEXT@12)
|
GL_STUB(GetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT, GetQueryObjectui64vEXT@12)
|
||||||
GL_STUB(BlitFramebufferEXT, _gloffset_BlitFramebufferEXT, BlitFramebufferEXT@40)
|
GL_STUB(BlitFramebufferEXT, _gloffset_BlitFramebufferEXT, BlitFramebufferEXT@40)
|
||||||
GL_STUB(BindVertexArrayAPPLE, _gloffset_BindVertexArrayAPPLE, BindVertexArrayAPPLE@4)
|
GL_STUB(_dispatch_stub_819, _gloffset_BindVertexArrayAPPLE, _dispatch_stub_819@4)
|
||||||
GL_STUB(DeleteVertexArraysAPPLE, _gloffset_DeleteVertexArraysAPPLE, DeleteVertexArraysAPPLE@8)
|
HIDDEN(GL_PREFIX(_dispatch_stub_819, _dispatch_stub_819@4))
|
||||||
GL_STUB(GenVertexArraysAPPLE, _gloffset_GenVertexArraysAPPLE, GenVertexArraysAPPLE@8)
|
GL_STUB(_dispatch_stub_820, _gloffset_DeleteVertexArraysAPPLE, _dispatch_stub_820@8)
|
||||||
GL_STUB(IsVertexArrayAPPLE, _gloffset_IsVertexArrayAPPLE, IsVertexArrayAPPLE@4)
|
HIDDEN(GL_PREFIX(_dispatch_stub_820, _dispatch_stub_820@8))
|
||||||
GL_STUB(ProgramEnvParameters4fvEXT, _gloffset_ProgramEnvParameters4fvEXT, ProgramEnvParameters4fvEXT@16)
|
GL_STUB(_dispatch_stub_821, _gloffset_GenVertexArraysAPPLE, _dispatch_stub_821@8)
|
||||||
GL_STUB(ProgramLocalParameters4fvEXT, _gloffset_ProgramLocalParameters4fvEXT, ProgramLocalParameters4fvEXT@16)
|
HIDDEN(GL_PREFIX(_dispatch_stub_821, _dispatch_stub_821@8))
|
||||||
|
GL_STUB(_dispatch_stub_822, _gloffset_IsVertexArrayAPPLE, _dispatch_stub_822@4)
|
||||||
|
HIDDEN(GL_PREFIX(_dispatch_stub_822, _dispatch_stub_822@4))
|
||||||
|
GL_STUB(_dispatch_stub_823, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_823@16)
|
||||||
|
HIDDEN(GL_PREFIX(_dispatch_stub_823, _dispatch_stub_823@16))
|
||||||
|
GL_STUB(_dispatch_stub_824, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_824@16)
|
||||||
|
HIDDEN(GL_PREFIX(_dispatch_stub_824, _dispatch_stub_824@16))
|
||||||
GL_STUB_ALIAS(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4, ArrayElement, ArrayElement@4)
|
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(BindTextureEXT, _gloffset_BindTexture, BindTextureEXT@8, BindTexture, BindTexture@8)
|
||||||
GL_STUB_ALIAS(DrawArraysEXT, _gloffset_DrawArrays, DrawArraysEXT@12, DrawArrays, DrawArrays@12)
|
GL_STUB_ALIAS(DrawArraysEXT, _gloffset_DrawArrays, DrawArraysEXT@12, DrawArrays, DrawArrays@12)
|
||||||
|
Reference in New Issue
Block a user