3 # $Id: gloffsets.py,v 1.4 2000/05/11 17:45:20 brianp Exp $
5 # Mesa 3-D graphics library
8 # Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
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:
17 # The above copyright notice and this permission notice shall be included
18 # in all copies or substantial portions of the Software.
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.
28 # Generate the glapioffsets.h file.
31 # gloffsets.py >glapioffsets.h
34 # The gl.spec file from the SI must be in the current directory.
36 # Brian Paul 3 February 2000
44 print '/* DO NOT EDIT - This file generated automatically by gloffsets.py script */'
45 print '#ifndef _GLAPI_OFFSETS_H_'
46 print '#define _GLAPI_OFFSETS_H_'
58 def GenerateDefine(name
, offset
):
59 s
= '#define _gloffset_' + name
+ ' ' + str(offset
)
65 functionPattern
= re
.compile('^[a-zA-Z0-9]+\(')
66 functionNamePattern
= re
.compile('^[a-zA-Z0-9]+')
74 for line
in f
.readlines():
76 m
= functionPattern
.match(line
)
79 n
= functionNamePattern
.findall(line
)
82 m
= string
.split(line
)
88 #print 'WARNING skipping', funcName
91 funcOffset
= int(m
[1])
92 if funcOffset
> maxOffset
:
93 maxOffset
= funcOffset
94 s
= GenerateDefine(funcName
, funcOffset
)
95 if offsetInfo
.has_key(funcOffset
):
96 print 'ERROR: offset', funcOffset
, 'already used!'
99 offsetInfo
[funcOffset
] = s
;
106 # Now print the #defines in order of dispatch offset
107 for i
in range(0, maxOffset
+ 1):
108 if offsetInfo
.has_key(i
):
111 print 'ERROR: missing offset:', i