diff options
author | Ian Romanick <[email protected]> | 2006-10-11 22:37:14 +0000 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2006-10-11 22:37:14 +0000 |
commit | f3f51bc844c8749250724d164722402cb9a07dc7 (patch) | |
tree | 68ccc40931c2d10f7a521d531609aeeb5b1637f9 /src/mesa/glapi/gl_x86_asm.py | |
parent | 8a5871a98c23ce1a1d893b681f59dc8c42228dd1 (diff) |
Fix bug #4681.
glDeleteTextures and glDeleteTexturesEXT were erroneously listed as
aliases of each other. For anything /except/ GLX protocol they are
aliases. This set of changes allows functions that are functionally
identical but have different GLX protocol to be listed as aliases.
When building with GLX_INDIRECT_RENDERING set, different static
functions are used. These functions determine whether the current
context is direct rendering or not. If the context is direct
rendering, the aliased function (e.g., glDeleteTextures in the case of
glDeleteTexturesEXT) is called. If the context is not direct
rendering, the correct GLX protocol is sent.
For a deeper explanation of what is changed, please see:
http://dri.freedesktop.org/wiki/PartiallyAliasedFunctions
Diffstat (limited to 'src/mesa/glapi/gl_x86_asm.py')
-rw-r--r-- | src/mesa/glapi/gl_x86_asm.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/mesa/glapi/gl_x86_asm.py b/src/mesa/glapi/gl_x86_asm.py index 5825960ce38..977e0329cc5 100644 --- a/src/mesa/glapi/gl_x86_asm.py +++ b/src/mesa/glapi/gl_x86_asm.py @@ -25,7 +25,8 @@ # Authors: # Ian Romanick <[email protected]> -import gl_XML, license +import license +import gl_XML, glX_XML import sys, getopt class PrintGenericStubs(gl_XML.gl_print_base): @@ -216,7 +217,14 @@ class PrintGenericStubs(gl_XML.gl_print_base): 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 @@ -245,6 +253,5 @@ if __name__ == '__main__': 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) |