mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
glapi/glx: Thunk non-ABI calls through GetProcAddress
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
ce3f0b23d1
commit
c2f0bc2537
1 changed files with 8 additions and 2 deletions
|
|
@ -117,6 +117,9 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
|
|||
|
||||
return
|
||||
|
||||
def fptrType(self, name):
|
||||
fptr = "pfngl" + name + "proc"
|
||||
return fptr.upper()
|
||||
|
||||
def printFunction(self, f, name):
|
||||
if (f.glx_sop or f.glx_vendorpriv) and (len(f.get_images()) != 0):
|
||||
|
|
@ -134,6 +137,9 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
|
|||
|
||||
print '{'
|
||||
|
||||
if not f.is_abi():
|
||||
print ' %s %s = __glGetProcAddress("gl%s");' % (self.fptrType(name), name, name)
|
||||
|
||||
if f.glx_rop or f.vectorequiv:
|
||||
self.printRenderFunction(f)
|
||||
elif f.glx_sop or f.glx_vendorpriv:
|
||||
|
|
@ -218,6 +224,7 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
|
|||
|
||||
def emit_function_call(self, f, retval_assign, indent):
|
||||
list = []
|
||||
prefix = "gl" if f.is_abi() else ""
|
||||
|
||||
for param in f.parameterIterator():
|
||||
if param.is_padding:
|
||||
|
|
@ -230,8 +237,7 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
|
|||
|
||||
list.append( '%s %s' % (indent, location) )
|
||||
|
||||
|
||||
print '%s %sgl%s(%s);' % (indent, retval_assign, f.name, string.join(list, ',\n'))
|
||||
print '%s %s%s%s(%s);' % (indent, retval_assign, prefix, f.name, string.join(list, ',\n'))
|
||||
|
||||
|
||||
def common_func_print_just_start(self, f, indent):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue