Font = Alias("Font", UInt32)
Pixmap = Alias("Pixmap", UInt32)
Window = Alias("Window", UInt32)
+Colormap = Alias("Colormap", UInt32)
GLXContext = Opaque("GLXContext")
GLXPixmap = Alias("GLXPixmap", UInt32)
"True",
])
-GLXAttrib = FakeEnum(Int, [
- "GLX_USE_GL",
- "GLX_BUFFER_SIZE",
- "GLX_LEVEL",
- "GLX_RGBA",
- "GLX_DOUBLEBUFFER",
- "GLX_STEREO",
- "GLX_AUX_BUFFERS",
- "GLX_RED_SIZE",
- "GLX_GREEN_SIZE",
- "GLX_BLUE_SIZE",
- "GLX_ALPHA_SIZE",
- "GLX_DEPTH_SIZE",
- "GLX_STENCIL_SIZE",
- "GLX_ACCUM_RED_SIZE",
- "GLX_ACCUM_GREEN_SIZE",
- "GLX_ACCUM_BLUE_SIZE",
- "GLX_ACCUM_ALPHA_SIZE",
+GLXEnum = FakeEnum(Int, [
+ #"GLX_USE_GL", # 1
+ "GLX_BUFFER_SIZE", # 2
+ "GLX_LEVEL", # 3
+ "GLX_RGBA", # 4
+ "GLX_DOUBLEBUFFER", # 5
+ "GLX_STEREO", # 6
+ "GLX_AUX_BUFFERS", # 7
+ "GLX_RED_SIZE", # 8
+ "GLX_GREEN_SIZE", # 9
+ "GLX_BLUE_SIZE", # 10
+ "GLX_ALPHA_SIZE", # 11
+ "GLX_DEPTH_SIZE", # 12
+ "GLX_STENCIL_SIZE", # 13
+ "GLX_ACCUM_RED_SIZE", # 14
+ "GLX_ACCUM_GREEN_SIZE", # 15
+ "GLX_ACCUM_BLUE_SIZE", # 16
+ "GLX_ACCUM_ALPHA_SIZE", # 17
"GLX_CONFIG_CAVEAT", # 0x20
"GLX_X_VISUAL_TYPE", # 0x22
"GLX_TRANSPARENT_BLUE_VALUE", # 0x27
"GLX_TRANSPARENT_ALPHA_VALUE", # 0x28
+ "GLX_CONTEXT_MAJOR_VERSION_ARB", # 0x2091
+ "GLX_CONTEXT_MINOR_VERSION_ARB", # 0x2092
+ "GLX_CONTEXT_FLAGS_ARB", # 0x2094
+
"GLX_BIND_TO_TEXTURE_RGB_EXT", # 0x20D0
"GLX_BIND_TO_TEXTURE_RGBA_EXT", # 0x20D1
"GLX_BIND_TO_MIPMAP_TEXTURE_EXT", # 0x20D2
"GLX_PBUFFER_HEIGHT", # 0x8040
"GLX_PBUFFER_WIDTH", # 0x8041
+ "GLX_CONTEXT_PROFILE_MASK_ARB", # 0x9126
+
"GLX_SAMPLE_BUFFERS", # 100000
"GLX_SAMPLES", # 100001
"GLX_ACCUM_BUFFER_BIT",
])
-GLXEnum = FakeEnum(Int, [
- "GLX_NONE",
- "GLX_SLOW_CONFIG",
- "GLX_TRUE_COLOR",
- "GLX_DIRECT_COLOR",
- "GLX_PSEUDO_COLOR",
- "GLX_STATIC_COLOR",
- "GLX_GRAY_SCALE",
- "GLX_STATIC_GRAY",
- "GLX_TRANSPARENT_RGB",
- "GLX_TRANSPARENT_INDEX",
- "GLX_VISUAL_ID",
- "GLX_SCREEN",
- "GLX_NON_CONFORMANT_CONFIG",
- "GLX_DRAWABLE_TYPE",
- "GLX_RENDER_TYPE",
- "GLX_X_RENDERABLE",
- "GLX_FBCONFIG_ID",
- "GLX_RGBA_TYPE",
- "GLX_COLOR_INDEX_TYPE",
- "GLX_MAX_PBUFFER_WIDTH",
- "GLX_MAX_PBUFFER_HEIGHT",
- "GLX_MAX_PBUFFER_PIXELS",
- "GLX_PRESERVED_CONTENTS",
- "GLX_LARGEST_PBUFFER",
- "GLX_WIDTH",
- "GLX_HEIGHT",
- "GLX_EVENT_MASK",
- "GLX_DAMAGED",
- "GLX_SAVED",
- "GLX_WINDOW",
- "GLX_PBUFFER",
- "GLX_PBUFFER_HEIGHT",
- "GLX_PBUFFER_WIDTH",
-])
-
GLXbuffer = Flags(Int, [
"GLX_RGBA_BIT",
"GLX_COLOR_INDEX_BIT",
"GLX_PBUFFER_CLOBBER_MASK",
])
-glxapi = API("GLX")
+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"]))
+])
+
+glxapi = Module("GLX")
PROC = Opaque("__GLXextFuncPtr")
-glxapi.add_functions([
+glxapi.addFunctions([
# GLX
- Function(Pointer(XVisualInfo), "glXChooseVisual", [(Display, "dpy"), (Int, "screen"), (Array(GLXAttrib, "__AttribList_size(attribList)"), "attribList")]),
+ Function(Pointer(XVisualInfo), "glXChooseVisual", [(Display, "dpy"), (Int, "screen"), (Array(GLXEnum, "_AttribList_size(attribList)"), "attribList")]),
Function(GLXContext, "glXCreateContext", [(Display, "dpy"), (Pointer(XVisualInfo), "vis"), (GLXContext, "shareList"), (Bool, "direct")]),
Function(Void, "glXDestroyContext", [(Display, "dpy"), (GLXContext, "ctx")]),
Function(Bool, "glXMakeCurrent", [(Display, "dpy"), (GLXDrawable, "drawable"), (GLXContext, "ctx")]),
Function(Bool, "glXQueryVersion", [(Display, "dpy"), Out(Pointer(Int), "maj"), Out(Pointer(Int), "min")]),
Function(Bool, "glXIsDirect", [(Display, "dpy"), (GLXContext, "ctx")]),
Function(GLXError, "glXGetConfig", [(Display, "dpy"), (Pointer(XVisualInfo), "visual"),
- (GLXAttrib, "attrib"), Out(Pointer(Int), "value")]),
+ (GLXEnum, "attrib"), Out(Pointer(Int), "value")]),
Function(GLXContext, "glXGetCurrentContext", [], sideeffects=False),
Function(GLXDrawable, "glXGetCurrentDrawable", [], sideeffects=False),
Function(Void, "glXWaitGL", []),
Function(Void, "glXUseXFont", [(Font, "font"), (Int, "first"), (Int, "count"), (Int, "list")]),
# GLX 1.1 and later
- Function((Const(String("char *"))), "glXQueryExtensionsString", [(Display, "dpy"), (Int, "screen")]),
- Function((Const(String("char *"))), "glXQueryServerString", [(Display, "dpy"), (Int, "screen"), (GLXname, "name")]),
- Function((Const(String("char *"))), "glXGetClientString", [(Display, "dpy"), (GLXname, "name")]),
+ 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 1.2 and later
Function(Display, "glXGetCurrentDisplay", [], sideeffects=False),
# GLX 1.3 and later
- Function(Array(GLXFBConfig, "*nitems"), "glXChooseFBConfig", [(Display, "dpy"), (Int, "screen"), (Array(Const(GLXAttrib), "__AttribList_size(attribList)"), "attribList"), Out(Pointer(Int), "nitems")]),
- Function(Int, "glXGetFBConfigAttrib", [(Display, "dpy"), (GLXFBConfig, "config"), (GLXAttrib, "attribute"), Out(Pointer(Int), "value")]),
+ Function(Array(GLXFBConfig, "*nitems"), "glXChooseFBConfig", [(Display, "dpy"), (Int, "screen"), (Array(Const(GLXEnum), "_AttribPairList_size(attribList)"), "attribList"), Out(Pointer(Int), "nitems")]),
+ Function(Int, "glXGetFBConfigAttrib", [(Display, "dpy"), (GLXFBConfig, "config"), (GLXEnum, "attribute"), Out(Pointer(Int), "value")]),
Function(Array(GLXFBConfig, "*nelements"), "glXGetFBConfigs", [(Display, "dpy"), (Int, "screen"),
Out(Pointer(Int), "nelements")]),
Function(Pointer(XVisualInfo), "glXGetVisualFromFBConfig", [(Display, "dpy"),
(GLXFBConfig, "config")]),
Function(GLXWindow, "glXCreateWindow", [(Display, "dpy"), (GLXFBConfig, "config"),
- (Window, "win"), (Array(Const(Int), "__AttribList_size(attribList)"), "attribList")]),
+ (Window, "win"), (Array(Const(GLXEnum), "_AttribPairList_size(attribList)"), "attribList")]),
Function(Void, "glXDestroyWindow", [(Display, "dpy"), (GLXWindow, "window")]),
Function(GLXPixmap, "glXCreatePixmap", [(Display, "dpy"), (GLXFBConfig, "config"),
- (Pixmap, "pixmap"), (Array(Const(Int), "__AttribList_size(attribList)"), "attribList")]),
+ (Pixmap, "pixmap"), (Array(Const(GLXEnum), "_AttribPairList_size(attribList)"), "attribList")]),
Function(Void, "glXDestroyPixmap", [(Display, "dpy"), (GLXPixmap, "pixmap")]),
Function(GLXPbuffer, "glXCreatePbuffer", [(Display, "dpy"), (GLXFBConfig, "config"),
- (Array(Const(GLXEnum), "__AttribList_size(attribList)"), "attribList")]),
+ (Array(Const(GLXEnum), "_AttribPairList_size(attribList)"), "attribList")]),
Function(Void, "glXDestroyPbuffer", [(Display, "dpy"), (GLXPbuffer, "pbuf")]),
Function(Void, "glXQueryDrawable", [(Display, "dpy"), (GLXDrawable, "draw"), (GLXEnum, "attribute"),
Out(Pointer(UInt), "value")]),
Out(Pointer(ULong), "mask")]),
# GLX_ARB_create_context
- Function(GLXContext, "glXCreateContextAttribsARB", [(Display, "dpy"), (GLXFBConfig, "config"), (GLXContext, "share_context"), (Bool, "direct"), (OpaquePointer(Const(Int)), "attrib_list")]),
+ Function(GLXContext, "glXCreateContextAttribsARB", [(Display, "dpy"), (GLXFBConfig, "config"),
+ (GLXContext, "share_context"), (Bool, "direct"),
+ (GLXContextAttribs, "attrib_list")]),
# GLX_SGI_swap_control
Function(Int, "glXSwapIntervalSGI", [(Int, "interval")]),
Function(Void, "glXFreeContextEXT", [(Display, "dpy"), (GLXContext, "context")]),
# GLX_SGIX_fbconfig
- Function(Int, "glXGetFBConfigAttribSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (Int, "attribute"), (OpaquePointer(Int), "value")]),
- Function(OpaquePointer(GLXFBConfigSGIX), "glXChooseFBConfigSGIX", [(Display, "dpy"), (Int, "screen"), (OpaquePointer(Int), "attrib_list"), (OpaquePointer(Int), "nelements")]),
+ Function(Int, "glXGetFBConfigAttribSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (Int, "attribute"), Out(Pointer(Int), "value")]),
+ Function(OpaquePointer(GLXFBConfigSGIX), "glXChooseFBConfigSGIX", [(Display, "dpy"), (Int, "screen"), (Array(GLXEnum, "_AttribPairList_size(attrib_list)"), "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(OpaquePointer(XVisualInfo), "glXGetVisualFromFBConfigSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config")]),
- Function(GLXFBConfigSGIX, "glXGetFBConfigFromVisualSGIX", [(Display, "dpy"), (OpaquePointer(XVisualInfo), "vis")]),
+ Function(Pointer(XVisualInfo), "glXGetVisualFromFBConfigSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config")]),
+ Function(GLXFBConfigSGIX, "glXGetFBConfigFromVisualSGIX", [(Display, "dpy"), Out(Pointer(XVisualInfo), "vis")]),
# GLX_SGIX_pbuffer
- Function(GLXPbufferSGIX, "glXCreateGLXPbufferSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (UInt, "width"), (UInt, "height"), (OpaquePointer(Int), "attrib_list")]),
+ Function(GLXPbufferSGIX, "glXCreateGLXPbufferSGIX", [(Display, "dpy"), (GLXFBConfigSGIX, "config"), (UInt, "width"), (UInt, "height"), (Array(Int, "_AttribPairList_size(attrib_list)"), "attrib_list")]),
Function(Void, "glXDestroyGLXPbufferSGIX", [(Display, "dpy"), (GLXPbufferSGIX, "pbuf")]),
- Function(Int, "glXQueryGLXPbufferSGIX", [(Display, "dpy"), (GLXPbufferSGIX, "pbuf"), (Int, "attribute"), (OpaquePointer(UInt), "value")]),
+ Function(Int, "glXQueryGLXPbufferSGIX", [(Display, "dpy"), (GLXPbufferSGIX, "pbuf"), (Int, "attribute"), Out(Pointer(UInt), "value")]),
Function(Void, "glXSelectEventSGIX", [(Display, "dpy"), (GLXDrawable, "drawable"), (ULong, "mask")]),
- Function(Void, "glXGetSelectedEventSGIX", [(Display, "dpy"), (GLXDrawable, "drawable"), (OpaquePointer(ULong), "mask")]),
+ Function(Void, "glXGetSelectedEventSGIX", [(Display, "dpy"), (GLXDrawable, "drawable"), Out(Pointer(ULong), "mask")]),
# GLX_SGI_cushion
Function(Void, "glXCushionSGI", [(Display, "dpy"), (Window, "window"), (Float, "cushion")]),
Function(Void, "glXCopySubBufferMESA", [(Display, "dpy"), (GLXDrawable, "drawable"), (Int, "x"), (Int, "y"), (Int, "width"), (Int, "height")]),
# GLX_MESA_pixmap_colormap
- #Function(GLXPixmap, "glXCreateGLXPixmapMESA", [(Display, "dpy"), (OpaquePointer(XVisualInfo), "visual"), (Pixmap, "pixmap"), (Colormap, "cmap")]),
+ Function(GLXPixmap, "glXCreateGLXPixmapMESA", [(Display, "dpy"), (Pointer(XVisualInfo), "visual"), (Pixmap, "pixmap"), (Colormap, "cmap")]),
# GLX_MESA_release_buffers
Function(Bool, "glXReleaseBuffersMESA", [(Display, "dpy"), (GLXDrawable, "drawable")]),
# GLX_MESA_set_3dfx_mode
Function(Bool, "glXSet3DfxModeMESA", [(Int, "mode")]),
+ # GLX_MESA_swap_control
+ Function(Int, "glXSwapIntervalMESA", [(UInt, "interval")]),
+ Function(Int, "glXGetSwapIntervalMESA", [], sideeffects=False),
+
# GLX_OML_sync_control
Function(Bool, "glXGetSyncValuesOML", [(Display, "dpy"), (GLXDrawable, "drawable"), (OpaquePointer(Int64), "ust"), (OpaquePointer(Int64), "msc"), (OpaquePointer(Int64), "sbc")]),
Function(Bool, "glXGetMscRateOML", [(Display, "dpy"), (GLXDrawable, "drawable"), (OpaquePointer(Int32), "numerator"), (OpaquePointer(Int32), "denominator")]),
Function(UInt, "glXGetAGPOffsetMESA", [(OpaquePointer(Const(Void)), "pointer")]),
# EXT_texture_from_pixmap
- Function(Void, "glXBindTexImageEXT", [(Display, "display"), (GLXDrawable, "drawable"), (Int, "buffer"), (Array(Const(Int), "__AttribList_size(attrib_list)"), "attrib_list")]),
- Function(Void, "glXReleaseTexImageEXT", [(Display, "display"), (GLXDrawable, "drawable"), (Int, "buffer")]),
+ Function(Void, "glXBindTexImageEXT", [(Display, "display"), (GLXDrawable, "drawable"), (GLXEnum, "buffer"), (Array(Const(GLXEnum), "_AttribPairList_size(attrib_list)"), "attrib_list")]),
+ Function(Void, "glXReleaseTexImageEXT", [(Display, "display"), (GLXDrawable, "drawable"), (GLXEnum, "buffer")]),
# GLX_NV_present_video
#Function(OpaquePointer(UInt), "glXEnumerateVideoDevicesNV", [(Display, "dpy"), (Int, "screen"), (OpaquePointer(Int), "nelements")]),
- #Function(Int, "glXBindVideoDeviceNV", [(Display, "dpy"), (UInt, "video_slot"), (UInt, "video_device"), (OpaquePointer(Const(Int)), "attrib_list")]),
+ #Function(Int, "glXBindVideoDeviceNV", [(Display, "dpy"), (UInt, "video_slot"), (UInt, "video_device"), (Array(Const(Int), "_AttribPairList_size(attrib_list)"), "attrib_list")]),
# GLX_NV_video_output
#Function(Int, "glXGetVideoDeviceNV", [(Display, "dpy"), (Int, "screen"), (Int, "numVideoDevices"), (OpaquePointer(GLXVideoDeviceNV), "pVideoDevice")]),
#Function(Void, "glXReleaseVideoCaptureDeviceNV", [(Display, "dpy"), (GLXVideoCaptureDeviceNV, "device")]),
# GLX_EXT_swap_control
- Function(Int, "glXSwapIntervalEXT", [(Display, "dpy"), (GLXDrawable, "drawable"), (Int, "interval")]),
+ Function(Void, "glXSwapIntervalEXT", [(Display, "dpy"), (GLXDrawable, "drawable"), (Int, "interval")]),
# GLX_NV_copy_image
Function(Void, "glXCopyImageSubDataNV", [(Display, "dpy"), (GLXContext, "srcCtx"), (GLuint, "srcName"), (GLenum, "srcTarget"), (GLint, "srcLevel"), (GLint, "srcX"), (GLint, "srcY"), (GLint, "srcZ"), (GLXContext, "dstCtx"), (GLuint, "dstName"), (GLenum, "dstTarget"), (GLint, "dstLevel"), (GLint, "dstX"), (GLint, "dstY"), (GLint, "dstZ"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth")]),
Function(Void, "glXFreeMemoryNV", [(OpaquePointer(Void), "pointer")]),
# Must be last
- Function(PROC, "glXGetProcAddressARB", [(Alias("const GLubyte *", CString), "procName")]),
- Function(PROC, "glXGetProcAddress", [(Alias("const GLubyte *", CString), "procName")]),
+ Function(PROC, "glXGetProcAddressARB", [(String(Const(GLubyte)), "procName")]),
+ Function(PROC, "glXGetProcAddress", [(String(Const(GLubyte)), "procName")]),
])
+# To prevent collision with stdapi.Bool
+del Bool