| # |
| # Copyright (c) 2017 The Khronos Group Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # printreg(reg, varname) |
| # Prints a registry Python data structure (see registry.py) in a consistent |
| # fashion. |
| |
| def tab(): |
| return ' ' |
| |
| def quote(str): |
| return '\'' + str + '\'' |
| |
| def printKey(key, value): |
| print(tab() + quote(key), ':', value + ',') |
| |
| def printNum(ext, key): |
| if (key in ext.keys()): |
| printKey(key, str(ext[key])) |
| |
| def printSet(ext, key): |
| if (key in ext.keys()): |
| value = ( '{ ' + |
| ', '.join([quote(str(tag)) for tag in sorted(ext[key])]) + |
| ' }' ) |
| printKey(key, value) |
| |
| def printStr(ext, key): |
| if (key in ext.keys()): |
| printKey(key, quote(str(ext[key]))) |
| |
| def striplibs(s): |
| return ( s.replace('GL_',''). |
| replace('GLU_',''). |
| replace('GLX_',''). |
| replace('WGL_','') ) |
| |
| def printreg(reg, varname): |
| print(varname, '= {') |
| |
| # print('keys in registry =', len(reg.keys())) |
| |
| print('# OpenGL extension number and name registry') |
| print('') |
| |
| for key in sorted(reg.keys(), key = striplibs): |
| ext = reg[key] |
| |
| print(' ' + quote(key), ': {') |
| printNum(ext, 'arbnumber') |
| printNum(ext, 'number') |
| printNum(ext, 'esnumber') |
| printSet(ext, 'flags') |
| printSet(ext, 'supporters') |
| printStr(ext, 'url') |
| printStr(ext, 'esurl') |
| printSet(ext, 'alias') |
| printStr(ext, 'comments') |
| print(' },') |
| |
| print('}') |
| |