Make sure that functions added to gl_API.xml that do not have any GLX
authorIan Romanick <idr@us.ibm.com>
Mon, 24 Jan 2005 20:08:28 +0000 (20:08 +0000)
committerIan Romanick <idr@us.ibm.com>
Mon, 24 Jan 2005 20:08:28 +0000 (20:08 +0000)
section are marked as ignored.  Also ignore any functions that don't have
assigned dispatch offsets.

Fold Adam Jackson's changes to indirect_size.c into the generator scripts so
that they don't get lost.  "DO NOT EDIT" really means "DO NOT EDIT". ;)

src/mesa/glapi/glX_XML.py
src/mesa/glapi/glX_proto_send.py

index 6da454c58c12ea29dcd1f72547061c5eb9898755..de854a6ae25c16f32dbc0ed69204ed696ea63ccc 100644 (file)
@@ -62,6 +62,10 @@ def printNoinline():
 #    define NOINLINE
 #  endif"""
 
+def printHaveAlias():
+       print """#  if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+#    define HAVE_ALIAS
+#  endif"""
 
 class glXItemFactory(gl_XML.glItemFactory):
        """Factory to create GLX protocol oriented objects derived from glItem."""
@@ -371,6 +375,28 @@ class glXFunction(gl_XML.glFunction):
                        gl_XML.glFunction.startElement(self, name, attrs)
 
 
+       def endElement(self, name):
+               if name == "function":
+                       # Mark any function that does not have GLX protocol
+                       # defined as "ignore".  This prevents bad things from
+                       # happening when people add new functions to the GL
+                       # API XML without adding any GLX section.
+                       #
+                       # This will also mark functions that don't have a
+                       # dispatch offset at ignored.
+
+                       if (self.fn_offset == -1 and not self.fn_alias) or not (self.handcode or self.glx_rop or self.glx_sop or self.glx_vendorpriv or self.vectorequiv or self.fn_alias):
+                               #if not self.ignore:
+                               #       if self.fn_offset == -1:
+                               #               print '/* %s ignored becuase no offset assigned. */' % (self.name)
+                               #       else:
+                               #               print '/* %s ignored becuase no GLX opcode assigned. */' % (self.name)
+
+                               self.ignore = 1
+
+               return gl_XML.glFunction.endElement(self, name)
+
+
        def append(self, tag_name, p):
                gl_XML.glFunction.append(self, tag_name, p)
 
index e7cda2f7797d8db55b8bf24b213dea16ba6cd306..32d8d6082e3c35ccdf0148466e7d719a688c3cab 100644 (file)
@@ -789,6 +789,8 @@ class PrintGlxSizeStubs(glX_XML.GlxProto):
                print '#include <GL/gl.h>'
                print '#include "indirect_size.h"'
                
+               print ''
+               glX_XML.printHaveAlias()
                print ''
                glX_XML.printPure()
                print ''