# Authors:
# Ian Romanick <idr@us.ibm.com>
-import gl_XML, license
+import license
+import gl_XML, glX_XML
import sys, getopt
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)
-
+ name = f.dispatch_name()
stack = self.get_stack_size(f)
-
alt = "%s@%u" % (name, stack)
+
print '\tGL_STUB(%s, _gloffset_%s, %s)' % (name, f.name, alt)
- if not f.static_dispatch:
+ if not f.is_static_entry_point(f.name):
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)
-
+ name = f.dispatch_name()
stack = self.get_stack_size(f)
-
alt = "%s@%u" % (name, stack)
- if f.static_dispatch:
+ if f.is_static_entry_point(f.name):
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)
+ text = '\tGL_STUB_ALIAS(%s, _gloffset_%s, %s, %s, %s)' % (n, f.name, alt2, f.name, alt)
+
+ if f.has_different_protocol(n):
+ print '#ifndef GLX_INDIRECT_RENDERING'
+ print text
+ print '#endif'
+ else:
+ print text
return
print "ERROR: Invalid mode \"%s\" specified." % mode
show_usage()
- api = gl_XML.parse_GL_API( file_name )
-
- printer.Print( api )
+ api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
+ printer.Print(api)