revert to version 1.18 for now to fix segfaults in some applications
[mesa.git] / src / mesa / glapi / gloffsets.py
1 #!/usr/bin/env python
2
3 # $Id: gloffsets.py,v 1.5 2001/11/18 22:42:57 brianp Exp $
4
5 # Mesa 3-D graphics library
6 # Version: 4.1
7 #
8 # Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
9 #
10 # Permission is hereby granted, free of charge, to any person obtaining a
11 # copy of this software and associated documentation files (the "Software"),
12 # to deal in the Software without restriction, including without limitation
13 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 # and/or sell copies of the Software, and to permit persons to whom the
15 # Software is furnished to do so, subject to the following conditions:
16 #
17 # The above copyright notice and this permission notice shall be included
18 # in all copies or substantial portions of the Software.
19 #
20 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23 # BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
24 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
27
28 # Generate the glapioffsets.h file.
29 #
30 # Usage:
31 # gloffsets.py >glapioffsets.h
32 #
33 # Dependencies:
34 # The apispec file must be in the current directory.
35
36
37
38 import apiparser;
39
40
41 def PrintHead():
42 print '/* DO NOT EDIT - This file generated automatically by gloffsets.py script */'
43 print '#ifndef _GLAPI_OFFSETS_H_'
44 print '#define _GLAPI_OFFSETS_H_'
45 print ''
46 return
47 #enddef
48
49
50 def PrintTail():
51 print ''
52 print '#endif'
53 #enddef
54
55
56 records = {}
57
58 def AddOffset(name, returnType, argTypeList, argNameList, alias, offset):
59 argList = apiparser.MakeArgList(argTypeList, argNameList)
60 if offset >= 0 and not records.has_key(offset):
61 records[offset] = name
62 #print '#define _gloffset_%s %d' % (name, offset)
63 #enddef
64
65
66 def PrintRecords():
67 keys = records.keys()
68 keys.sort()
69 prevk = -1
70 for k in keys:
71 if k != prevk + 1:
72 #print 'Missing offset %d' % (prevk)
73 pass
74 prevk = int(k)
75 name = records[k]
76 print '#define _gloffset_%s %d' % (name, k)
77 #endef
78
79
80
81
82 PrintHead()
83 apiparser.ProcessSpecFile("APIspec", AddOffset)
84 PrintRecords()
85 PrintTail()