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