• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2017-2021 The Khronos Group Inc.
2# SPDX-License-Identifier: Apache-2.0
3
4# printreg(reg, varname)
5# Prints a registry Python data structure (see registry.py) in a consistent
6# fashion.
7
8def tab():
9    return '        '
10
11def quote(str):
12    return '\'' + str + '\''
13
14def printKey(key, value):
15    print(tab() + quote(key), ':', value + ',')
16
17def printNum(ext, key):
18    if (key in ext.keys()):
19        printKey(key, str(ext[key]))
20
21def printSet(ext, key):
22    if (key in ext.keys()):
23        value = ( '{ ' +
24                  ', '.join([quote(str(tag)) for tag in sorted(ext[key])]) +
25                  ' }' )
26        printKey(key, value)
27
28def printStr(ext, key):
29    if (key in ext.keys()):
30        printKey(key, quote(str(ext[key])))
31
32def striplibs(s):
33    return ( s.replace('GL_','').
34               replace('GLU_','').
35               replace('GLX_','').
36               replace('WGL_','') )
37
38def printreg(reg, varname):
39    print(varname, '= {')
40
41    # print('keys in registry =', len(reg.keys()))
42
43    print('# OpenGL extension number and name registry')
44    print('')
45
46    for key in sorted(reg.keys(), key = striplibs):
47        ext = reg[key]
48
49        print('    ' + quote(key), ': {')
50        printNum(ext, 'arbnumber')
51        printNum(ext, 'number')
52        printNum(ext, 'esnumber')
53        printNum(ext, 'scnumber')
54        printSet(ext, 'flags')
55        printSet(ext, 'supporters')
56        printStr(ext, 'url')
57        printStr(ext, 'esurl')
58        printSet(ext, 'alias')
59        printStr(ext, 'comments')
60        print('    },')
61
62    print('}')
63
64