+UnusedAttribs = AttribArray(GLXEnum, [])
+
+GLXFBConfigCommonAttribs = [
+ ('GLX_BUFFER_SIZE', UInt),
+ ('GLX_LEVEL', Int),
+ ('GLX_DOUBLEBUFFER', Bool),
+ ('GLX_STEREO', Bool),
+ ('GLX_AUX_BUFFERS', UInt),
+ ('GLX_RED_SIZE', UInt),
+ ('GLX_GREEN_SIZE', UInt),
+ ('GLX_BLUE_SIZE', UInt),
+ ('GLX_ALPHA_SIZE', UInt),
+ ('GLX_DEPTH_SIZE', UInt),
+ ('GLX_STENCIL_SIZE', UInt),
+ ('GLX_ACCUM_RED_SIZE', UInt),
+ ('GLX_ACCUM_GREEN_SIZE', UInt),
+ ('GLX_ACCUM_BLUE_SIZE', UInt),
+ ('GLX_ACCUM_ALPHA_SIZE', UInt),
+ ('GLX_RENDER_TYPE', Flags(Int, ["GLX_RGBA_BIT", "GLX_COLOR_INDEX_BIT"])),
+ ('GLX_DRAWABLE_TYPE', Flags(Int, ["GLX_WINDOW_BIT", "GLX_PIXMAP_BIT", "GLX_PBUFFER_BIT"])),
+ ('GLX_X_RENDERABLE', Bool),
+ ('GLX_X_VISUAL_TYPE', FakeEnum(Int, ["GLX_TRUE_COLOR", "GLX_DIRECT_COLOR", "GLX_PSEUDO_COLOR", "GLX_STATIC_COLOR"])),
+ ('GLX_CONFIG_CAVEAT', FakeEnum(Int, ["GLX_NONE", "GLX_SLOW_CONFIG", "GLX_NON_CONFORMANT_CONFIG"])),
+ ('GLX_TRANSPARENT_TYPE', FakeEnum(Int, ["GLX_NONE", "GLX_TRANSPARENT_RGB", "GLX_TRANSPARENT_INDEX"])),
+ ('GLX_TRANSPARENT_INDEX_VALUE', Int),
+ ('GLX_TRANSPARENT_RED_VALUE', Int),
+ ('GLX_TRANSPARENT_GREEN_VALUE', Int),
+ ('GLX_TRANSPARENT_BLUE_VALUE', Int),
+ ('GLX_TRANSPARENT_ALPHA_VALUE', Int)
+
+]
+
+GLXFBConfigGLXAttribs = GLXFBConfigCommonAttribs + [
+ ('GLX_FBCONFIG_ID', Int), # an XID, can we do better than int?
+]
+
+GLXFBConfigSGIXAttribs = GLXFBConfigCommonAttribs + [
+ ('GLX_SAMPLE_BUFFERS', UInt),
+ ('GLX_SAMPLES', UInt)
+]
+
+GLXFBConfigAttribs = AttribArray(GLXEnum, GLXFBConfigGLXAttribs)
+GLXFBConfigSGIXAttribs = AttribArray(GLXEnum, GLXFBConfigSGIXAttribs, isConst = False)
+
+GLXContextAttribs = AttribArray(GLXEnum, [
+ ('GLX_CONTEXT_MAJOR_VERSION_ARB', Int),
+ ('GLX_CONTEXT_MINOR_VERSION_ARB', Int),
+ ('GLX_CONTEXT_FLAGS_ARB', Flags(Int, ["GLX_CONTEXT_DEBUG_BIT_ARB", "GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB"])),
+ ('GLX_CONTEXT_PROFILE_MASK_ARB', Flags(Int, ["GLX_CONTEXT_CORE_PROFILE_BIT_ARB", "GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB"]))
+])
+
+GLXPbufferAttribs = AttribArray(GLXEnum, [
+ ('GLX_PBUFFER_WIDTH', Int),
+ ('GLX_PBUFFER_HEIGHT', Int),
+ ('GLX_LARGEST_PBUFFER', Bool),
+ ('GLX_PRESERVED_CONTENTS', Bool)
+])
+
+GLXPbufferSGIXAttribs = AttribArray(GLXEnum, [
+ ('GLX_PRESERVED_CONTENTS_SGIX', Bool),
+ ('GLX_LARGEST_PBUFFER', Bool),
+ ('GLX_DIGITAL_MEDIA_PBUFFER_SGIX', Bool)],
+ isConst = False
+)
+
+glxapi = Module("GLX")