diff options
Diffstat (limited to 'specs/glxapi.py')
-rw-r--r-- | specs/glxapi.py | 104 |
1 files changed, 69 insertions, 35 deletions
diff --git a/specs/glxapi.py b/specs/glxapi.py index ac7525c1..0d3cd969 100644 --- a/specs/glxapi.py +++ b/specs/glxapi.py @@ -106,6 +106,8 @@ GLXEnum = FakeEnum(Int, [ "GLX_CONTEXT_MINOR_VERSION_ARB", # 0x2092 "GLX_CONTEXT_FLAGS_ARB", # 0x2094 "GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB", # 0x2095 + "GLX_CONTEXT_RELEASE_BEHAVIOR_ARB", # 0x2097 + "GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB", # 0x2098 "GLX_FLOAT_COMPONENTS_NV", # 0x20B0 "GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT", # 0x20B1 "GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB", # 0x20B2 @@ -275,7 +277,10 @@ GLXbuffer = Flags(Int, [ UnusedAttribs = AttribArray(Const(GLXEnum), []) -GLXCommonSizeAttribs = [ +GLXCommonAttribs = [ + ('GLX_BUFFER_SIZE', UInt), + ('GLX_LEVEL', Int), + ('GLX_AUX_BUFFERS', UInt), ('GLX_RED_SIZE', UInt), ('GLX_GREEN_SIZE', UInt), ('GLX_BLUE_SIZE', UInt), @@ -285,60 +290,66 @@ GLXCommonSizeAttribs = [ ('GLX_ACCUM_RED_SIZE', UInt), ('GLX_ACCUM_GREEN_SIZE', UInt), ('GLX_ACCUM_BLUE_SIZE', UInt), - ('GLX_ACCUM_ALPHA_SIZE', UInt) + ('GLX_ACCUM_ALPHA_SIZE', UInt), + ('GLX_CONFIG_CAVEAT', FakeEnum(Int, ["GLX_NONE", "GLX_SLOW_CONFIG", "GLX_NON_CONFORMANT_CONFIG"])), + ('GLX_X_VISUAL_TYPE', FakeEnum(Int, ["GLX_TRUE_COLOR", "GLX_DIRECT_COLOR", "GLX_PSEUDO_COLOR", "GLX_STATIC_COLOR"])), + ('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), + ('GLX_SAMPLE_BUFFERS', UInt), + ('GLX_SAMPLES', UInt), ] -GLXVisualAttribs = AttribArray(GLXEnum, GLXCommonSizeAttribs + [ +GLXVisualAttribs = AttribArray(GLXEnum, GLXCommonAttribs + [ ('GLX_USE_GL', None), - ('GLX_BUFFER_SIZE', UInt), - ('GLX_LEVEL', Int), ('GLX_RGBA', None), ('GLX_DOUBLEBUFFER', None), ('GLX_STEREO', None), - ('GLX_AUX_BUFFERS', UInt), - ('GLX_SAMPLE_BUFFERS', UInt), - ('GLX_SAMPLES', UInt)], -) +]) -GLXFBConfigCommonAttribs = GLXCommonSizeAttribs + [ - ('GLX_BUFFER_SIZE', UInt), - ('GLX_LEVEL', Int), +GLXFBConfigCommonAttribs = GLXCommonAttribs + [ ('GLX_DOUBLEBUFFER', Bool), ('GLX_STEREO', Bool), - ('GLX_AUX_BUFFERS', UInt), - ('GLX_SAMPLE_BUFFERS', UInt), - ('GLX_SAMPLES', 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? + ('GLX_FBCONFIG_ID', GLXFBConfigID), ('GLX_MAX_PBUFFER_WIDTH', Int), ('GLX_MAX_PBUFFER_HEIGHT', Int), ('GLX_MAX_PBUFFER_PIXELS', Int), - ('GLX_VISUAL_ID', Int) # another XID + ('GLX_VISUAL_ID', VisualID), ] GLXFBConfigAttribs = AttribArray(Const(GLXEnum), GLXFBConfigGLXAttribs) GLXFBConfigSGIXAttribs = AttribArray(GLXEnum, GLXFBConfigCommonAttribs) +GLXContextProfileMask = Flags(Int, [ + "GLX_CONTEXT_CORE_PROFILE_BIT_ARB", + "GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB", + "GLX_CONTEXT_ES_PROFILE_BIT_EXT", +]) + GLXContextARBAttribs = AttribArray(Const(GLXEnum), [ - ('GLX_RENDER_TYPE', Flags(Int, ["GLX_RGBA_BIT", "GLX_COLOR_INDEX_BIT"])), + ('GLX_RENDER_TYPE', FakeEnum(Int, ["GLX_RGBA_TYPE", "GLX_COLOR_INDEX_TYPE"])), ('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_ROBUST_ACCESS_BIT_ARB"])), - ('GLX_CONTEXT_PROFILE_MASK_ARB', Flags(Int, ["GLX_CONTEXT_CORE_PROFILE_BIT_ARB", "GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB"])), + ('GLX_CONTEXT_FLAGS_ARB', Flags(Int, [ + "GLX_CONTEXT_DEBUG_BIT_ARB", + "GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB", + "GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB", + ])), + ('GLX_CONTEXT_PROFILE_MASK_ARB', GLXContextProfileMask), ('GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB', GLXEnum), + ('GLX_CONTEXT_RELEASE_BEHAVIOR_ARB', FakeEnum(Int, [ + 'GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB', + 'GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB', + ])), ]) GLXPbufferAttribs = AttribArray(Const(GLXEnum), [ @@ -354,6 +365,23 @@ GLXPbufferSGIXAttribs = AttribArray(GLXEnum, [ #('GLX_DIGITAL_MEDIA_PBUFFER_SGIX', Bool), ]) +GLXRendererAttrPointer = Polymorphic('attribute', [ + ("GLX_RENDERER_VENDOR_ID_MESA", Pointer(UInt)), + ("GLX_RENDERER_DEVICE_ID_MESA", Pointer(UInt)), + ("GLX_RENDERER_VERSION_MESA", Array(UInt, 3)), + ("GLX_RENDERER_ACCELERATED_MESA", Pointer(Bool)), + ("GLX_RENDERER_VIDEO_MEMORY_MESA", Pointer(UInt)), + ("GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA", Pointer(Bool)), + ("GLX_RENDERER_PREFERRED_PROFILE_MESA", Pointer(GLXContextProfileMask)), + ("GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA", Array(UInt, 2) ), + ("GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA", Array(UInt, 2)), + ("GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA", Array(UInt, 2)), + ("GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA", Array(UInt, 2)), + ], + Pointer(UInt) +) + + glxapi = Module("GLX") PROC = Opaque("__GLXextFuncPtr") @@ -382,9 +410,9 @@ glxapi.addFunctions([ Function(Void, "glXUseXFont", [(Font, "font"), (Int, "first"), (Int, "count"), (Int, "list")]), # GLX_VERSION_1_1 - Function((ConstCString), "glXQueryExtensionsString", [(Display, "dpy"), (Int, "screen")], sideeffects=False), - Function((ConstCString), "glXQueryServerString", [(Display, "dpy"), (Int, "screen"), (GLXname, "name")], sideeffects=False), - Function((ConstCString), "glXGetClientString", [(Display, "dpy"), (GLXname, "name")], sideeffects=False), + Function(ConstCString, "glXQueryExtensionsString", [(Display, "dpy"), (Int, "screen")], sideeffects=False), + Function(ConstCString, "glXQueryServerString", [(Display, "dpy"), (Int, "screen"), (GLXname, "name")], sideeffects=False), + Function(ConstCString, "glXGetClientString", [(Display, "dpy"), (GLXname, "name")], sideeffects=False), # GLX_VERSION_1_2 Function(Display, "glXGetCurrentDisplay", [], sideeffects=False), @@ -448,6 +476,12 @@ glxapi.addFunctions([ # GLX_MESA_pixmap_colormap Function(GLXPixmap, "glXCreateGLXPixmapMESA", [(Display, "dpy"), (Pointer(XVisualInfo), "visual"), (Pixmap, "pixmap"), (Colormap, "cmap")]), + # GLX_MESA_query_renderer + GlFunction(Bool, "glXQueryCurrentRendererIntegerMESA", [(GLXEnum, "attribute"), Out(GLXRendererAttrPointer, "value")], sideeffects=False), + GlFunction(ConstCString, "glXQueryCurrentRendererStringMESA", [(GLXEnum, "attribute")], sideeffects=False), + GlFunction(Bool, "glXQueryRendererIntegerMESA", [(Display, "dpy"), (Int, "screen"), (Int, "renderer"), (GLXEnum, "attribute"), Out(GLXRendererAttrPointer, "value")], sideeffects=False), + GlFunction(ConstCString, "glXQueryRendererStringMESA", [(Display, "dpy"), (Int, "screen"), (Int, "renderer"), (GLXEnum, "attribute")], sideeffects=False), + # GLX_MESA_release_buffers Function(Bool, "glXReleaseBuffersMESA", [(Display, "dpy"), (GLXDrawable, "drawable")]), @@ -517,12 +551,12 @@ glxapi.addFunctions([ #Function(Bool, "glXAssociateDMPbufferSGIX", [(Display, "dpy"), (GLXPbufferSGIX, "pbuffer"), (OpaquePointer(DMparams), "params"), (DMbuffer, "dmbuffer")]), # GLX_SGIX_fbconfig - Function(Int, "glXGetFBConfigAttribSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (Int, "attribute"), Out(Pointer(Int), "value")]), - Function(OpaquePointer(GLXFBConfigSGIX), "glXChooseFBConfigSGIX", [(Display, "dpy"), (Int, "screen"), (GLXFBConfigSGIXAttribs, "attrib_list"), Out(Pointer(Int), "nelements")]), + Function(Int, "glXGetFBConfigAttribSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (GLXEnum, "attribute"), Out(Pointer(Int), "value")]), + Function(Array(GLXFBConfigSGIX, "*nelements"), "glXChooseFBConfigSGIX", [(Display, "dpy"), (Int, "screen"), (GLXFBConfigSGIXAttribs, "attrib_list"), Out(Pointer(Int), "nelements")]), Function(GLXPixmap, "glXCreateGLXPixmapWithConfigSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (Pixmap, "pixmap")]), - Function(GLXContext, "glXCreateContextWithConfigSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (Int, "render_type"), (GLXContext, "share_list"), (Bool, "direct")]), + Function(GLXContext, "glXCreateContextWithConfigSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (GLXEnum, "render_type"), (GLXContext, "share_list"), (Bool, "direct")]), Function(Pointer(XVisualInfo), "glXGetVisualFromFBConfigSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config")]), - Function(GLXFBConfigSGIX, "glXGetFBConfigFromVisualSGIX", [(Display, "dpy"), Out(Pointer(XVisualInfo), "vis")]), + Function(GLXFBConfigSGIX, "glXGetFBConfigFromVisualSGIX", [(Display, "dpy"), (Pointer(XVisualInfo), "vis")]), # GLX_SGIX_hyperpipe #Function(OpaquePointer(GLXHyperpipeNetworkSGIX), "glXQueryHyperpipeNetworkSGIX", [(Display, "dpy"), (OpaquePointer(Int), "npipes")]), |