Add some debug messages
[mesa.git] / src / mesa / glapi / gl_offsets.py
index f5bd7f40ed75e135469b048a7a6905d0a1e101aa..59f8d372b0e2a7f55a1a046d40825e82d48ec7cd 100644 (file)
@@ -1,6 +1,6 @@
-#!/usr/bin/python2
+#!/usr/bin/env python
 
-# (C) Copyright IBM Corporation 2004
+# (C) Copyright IBM Corporation 2004, 2005
 # All Rights Reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # Authors:
 #    Ian Romanick <idr@us.ibm.com>
 
-from xml.sax import saxutils
-from xml.sax import make_parser
-from xml.sax.handler import feature_namespaces
-
 import gl_XML
 import license
 import sys, getopt
 
-class PrintGlOffsets(gl_XML.FilterGLAPISpecBase):
-       name = "gl_offsets.py (from Mesa)"
-
+class PrintGlOffsets(gl_XML.gl_print_base):
        def __init__(self):
-               gl_XML.FilterGLAPISpecBase.__init__(self)
+               gl_XML.gl_print_base.__init__(self)
+
+               self.name = "gl_offsets.py (from Mesa)"
                self.header_tag = '_GLAPI_OFFSETS_H_'
                self.license = license.bsd_license_template % ( \
 """Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
 (C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
+               return
+
+       def printBody(self, api):
+               abi = [ "1.0", "1.1", "1.2", "GL_ARB_multitexture" ]
+
+               functions = []
+               abi_functions = []
+               count = 0
+               for f in api.functionIterateByOffset():
+                       [category, num] = api.get_category_for_name( f.name )
+                       if category not in abi:
+                               functions.append( [f, count] )
+                               count += 1
+                       else:
+                               abi_functions.append( f )
+
+
+               for f in abi_functions:
+                       print '#define _gloffset_%s %d' % (f.name, f.offset)
+                       last_static = f.offset
+
+               print ''
+               print '#if !defined(IN_DRI_DRIVER)'
+               print ''
 
-       def printFunction(self, f):
-               if f.fn_offset < 0: return
-               print '#define _gloffset_%s %d' % (f.name, f.fn_offset)
+               for [f, index] in functions:
+                       print '#define _gloffset_%s %d' % (f.name, f.offset)
+
+               print '#define _gloffset_FIRST_DYNAMIC %d' % (api.next_offset)
+
+               print ''
+               print '#else'
+               print ''
+
+               for [f, index] in functions:
+                       print '#define _gloffset_%s driDispatchRemapTable[%s_remap_index]' % (f.name, f.name)
+
+               print ''
+               print '#endif /* !defined(IN_DRI_DRIVER) */'
+
+               return
 
 
 def show_usage():
@@ -64,14 +97,7 @@ if __name__ == '__main__':
                if arg == "-f":
                        file_name = val
 
-       dh = PrintGlOffsets()
-
-       parser = make_parser()
-       parser.setFeature(feature_namespaces, 0)
-       parser.setContentHandler(dh)
-
-       f = open(file_name)
+       api = gl_XML.parse_GL_API( file_name )
 
-       dh.printHeader()
-       parser.parse(f)
-       dh.printFooter()
+       printer = PrintGlOffsets()
+       printer.Print( api )