#!/usr/bin/python2
# -*- Mode: Python; py-indent-offset: 8 -*-
-# (C) Copyright Zack Rusin 2005
-# All Rights Reserved.
+# (C) Copyright Zack Rusin 2005. All Rights Reserved.
+# Copyright (C) 2015 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# Authors:
# Zack Rusin <zack@kde.org>
+import argparse
+
import license
import gl_XML
import sys, getopt
print '#include "main/imports.h"'
print '#include "main/mtypes.h"'
print ''
- print 'typedef struct {'
- print ' size_t offset;'
+ print 'typedef struct PACKED {'
+ print ' uint16_t offset;'
print ' int n;'
print '} enum_elt;'
print ''
static char token_tmp[20];
-const char *_mesa_lookup_enum_by_nr( int nr )
+const char *_mesa_enum_to_string( int nr )
{
- enum_elt *elt = _mesa_bsearch(& nr, enum_string_table_offsets,
- Elements(enum_string_table_offsets),
- sizeof(enum_string_table_offsets[0]),
- (cfunc) compar_nr);
+ enum_elt *elt;
+
+ STATIC_ASSERT(sizeof(enum_string_table) < (1 << 16));
+
+ elt = bsearch(& nr, enum_string_table_offsets,
+ ARRAY_SIZE(enum_string_table_offsets),
+ sizeof(enum_string_table_offsets[0]),
+ (cfunc) compar_nr);
if (elt != NULL) {
return &enum_string_table[elt->offset];
"GL_LINE_STRIP_ADJACENCY",
"GL_TRIANGLES_ADJACENCY",
"GL_TRIANGLE_STRIP_ADJACENCY",
+ "GL_PATCHES",
"outside begin/end",
"unknown state"
};
const char *
_mesa_lookup_prim_by_nr(GLuint nr)
{
- if (nr < Elements(prim_names))
+ if (nr < ARRAY_SIZE(prim_names))
return prim_names[nr];
else
return "invalid mode";
string_offsets = {}
i = 0;
+ print '#if defined(__GNUC__)'
+ print '# define LONGSTRING __extension__'
+ print '#else'
+ print '# define LONGSTRING'
+ print '#endif'
+ print ''
print 'LONGSTRING static const char enum_string_table[] = '
for enum, name in enum_table:
print ' "%s\\0"' % (name)
enum.append( [name, priority] )
-def show_usage():
- print "Usage: %s [-f input_file_name]" % sys.argv[0]
- sys.exit(1)
+def _parser():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--input_file',
+ required=True,
+ help="Choose an xml file to parse.")
+ return parser.parse_args()
-if __name__ == '__main__':
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:")
- except Exception,e:
- show_usage()
- api_list = []
- for (arg,val) in args:
- if arg == "-f":
- api = gl_XML.parse_GL_API( val )
- api_list.append(api);
+def main():
+ args = _parser()
+ api_list = [gl_XML.parse_GL_API(args.input_file)]
printer = PrintGlEnums()
- printer.Print( api_list )
+ printer.Print(api_list)
+
+
+if __name__ == '__main__':
+ main()