pixwerx/tools/glad-0.1.14a0/glad/spec.py

54 lines
1.3 KiB
Python

from glad.parse import Spec
class EGLSpec(Spec):
API = 'https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/'
NAME = 'egl'
class GLSpec(Spec):
API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/'
NAME = 'gl'
def __init__(self, root):
Spec.__init__(self, root)
self._profile = 'compatibility'
self._remove = set()
@property
def profile(self):
return self._profile
@profile.setter
def profile(self, value):
if value not in ('core', 'compatibility'):
raise ValueError('profile must either be core or compatibility')
self._profile = value
@property
def removed(self):
if self._profile == 'core':
return frozenset(self._remove)
return frozenset()
class GLXSpec(Spec):
API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/'
NAME = 'glx'
class WGLSpec(Spec):
API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/'
NAME = 'wgl'
SPECS = dict()
# reflection to fill SPECS
import sys
import inspect
for name, cls in inspect.getmembers(sys.modules[__name__], inspect.isclass):
if issubclass(cls, Spec):
SPECS[cls.NAME] = cls