CGLContextObj = Opaque("CGLContextObj")
-cglapi = API("CGL")
+cglapi = Module("CGL")
-cglapi.add_functions([
+cglapi.addFunctions([
# CGLCurrent.h, libGL.dylib
Function(CGLError, "CGLSetCurrentContext", [(CGLContextObj, "ctx")]),
Function(CGLContextObj, "CGLGetCurrentContext", []),
# OpenGL.h, OpenGL framework
- Function(CGLError, "CGLChoosePixelFormat", [(Array(Const(CGLPixelFormatAttribute), "__AttribList_size(attribs)"), "attribs"), Out(Pointer(CGLPixelFormatObj), "pix"), Out(Pointer(GLint), "npix")]),
+ Function(CGLError, "CGLChoosePixelFormat", [(Array(Const(CGLPixelFormatAttribute), "_AttribList_size(attribs)"), "attribs"), Out(Pointer(CGLPixelFormatObj), "pix"), Out(Pointer(GLint), "npix")]),
Function(CGLError, "CGLDestroyPixelFormat", [(CGLPixelFormatObj, "pix")]),
Function(CGLError, "CGLDescribePixelFormat", [(CGLPixelFormatObj, "pix"), (GLint, "pix_num"), (CGLPixelFormatAttribute, "attrib"), Out(Pointer(GLint), "value")]),
Function(Void, "CGLReleasePixelFormat", [(CGLPixelFormatObj, "pix")]),
Function(CGLError, "CGLFlushDrawable", [(CGLContextObj, "ctx")]),
Function(CGLError, "CGLEnable", [(CGLContextObj, "ctx"), (CGLContextEnable, "pname")]),
Function(CGLError, "CGLDisable", [(CGLContextObj, "ctx"), (CGLContextEnable, "pname")]),
- Function(CGLError, "CGLIsEnabled", [(CGLContextObj, "ctx"), (CGLContextEnable, "pname"), Out(Pointer(GLint), "enable")]),
+ Function(CGLError, "CGLIsEnabled", [(CGLContextObj, "ctx"), (CGLContextEnable, "pname"), Out(Pointer(GLint), "enable")], sideeffects=False),
Function(CGLError, "CGLSetParameter", [(CGLContextObj, "ctx"), (CGLContextParameter, "pname"), (Array(Const(GLint), 1), "params")]),
- Function(CGLError, "CGLGetParameter", [(CGLContextObj, "ctx"), (CGLContextParameter, "pname"), Out(Array(GLint, 1), "params")]),
+ Function(CGLError, "CGLGetParameter", [(CGLContextObj, "ctx"), (CGLContextParameter, "pname"), Out(Array(GLint, 1), "params")], sideeffects=False),
Function(CGLError, "CGLSetVirtualScreen", [(CGLContextObj, "ctx"), (GLint, "screen")]),
- Function(CGLError, "CGLGetVirtualScreen", [(CGLContextObj, "ctx"), Out(Pointer(GLint), "screen")]),
+ Function(CGLError, "CGLGetVirtualScreen", [(CGLContextObj, "ctx"), Out(Pointer(GLint), "screen")], sideeffects=False),
Function(CGLError, "CGLSetGlobalOption", [(CGLGlobalOption, "pname"), (OpaquePointer(Const(GLint)), "params")]),
Function(CGLError, "CGLGetGlobalOption", [(CGLGlobalOption, "pname"), Out(OpaquePointer(GLint), "params")]),
Function(CGLError, "CGLSetOption", [(CGLGlobalOption, "pname"), (GLint, "param")]),
- Function(CGLError, "CGLGetOption", [(CGLGlobalOption, "pname"), Out(Pointer(GLint), "param")]),
+ Function(CGLError, "CGLGetOption", [(CGLGlobalOption, "pname"), Out(Pointer(GLint), "param")], sideeffects=False),
Function(CGLError, "CGLLockContext", [(CGLContextObj, "ctx")]),
Function(CGLError, "CGLUnlockContext", [(CGLContextObj, "ctx")]),
- Function(Void, "CGLGetVersion", [Out(Pointer(GLint), "majorvers"), Out(Pointer(GLint), "minorvers")]),
- Function(Const(CString), "CGLErrorString", [(CGLError, "error")]),
+ Function(Void, "CGLGetVersion", [Out(Pointer(GLint), "majorvers"), Out(Pointer(GLint), "minorvers")], sideeffects=False),
+ Function(ConstCString, "CGLErrorString", [(CGLError, "error")], sideeffects=False),
# CGLIOSurface.h, OpenGL framework
Function(CGLError, "CGLTexImageIOSurface2D", [(CGLContextObj, "ctx"), (GLenum, "target"), (GLenum, "internal_format"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (IOSurfaceRef, "ioSurface"), (GLuint, "plane")]),
Function(CGLError, "CGLSetSurface", [(CGLContextObj, "ctx"), (CGSConnectionID, "cid"), (CGSWindowID, "wid"), (CGSSurfaceID, "sid")]),
Function(CGLError, "CGLGetSurface", [(CGLContextObj, "ctx"), (Pointer(CGSConnectionID), "cid"), (Pointer(CGSWindowID), "wid"), (Pointer(CGSSurfaceID), "sid")]),
Function(CGLError, "CGLUpdateContext", [(CGLContextObj, "ctx")]),
- # XXX: Confirm CGLOpenCLMuxLockDown
- Function(CGLError, "CGLOpenCLMuxLockDown", []),
- # FIXME: CGLAreContextsShared
- # FIXME: CGLBackDispatch
- # FIXME: CGLFrontDispatch
- # FIXME: CGLGetNextContext
- # FIXME: CGLRestoreDispatch
- # FIXME: CGLRestoreDispatchFunction
- # FIXME: CGLSelectDispatch
- # FIXME: CGLSelectDispatchBounded
- # FIXME: CGLSelectDispatchFunction
- # FIXME: CGLSetPBufferVolatileState
+ # XXX: All the following prototypes are little more than guesses
+ # TODO: A potentially simpler alternative would be to use the
+ # DYLD_INTERPOSE mechanism and only intercept the calls that we
+ # really care about
+ Function(CGLError, "CGLOpenCLMuxLockDown", [], internal=True),
+ Function(GLboolean, "CGLAreContextsShared", [(CGLContextObj, "ctx1"), (CGLContextObj, "ctx2")], internal=True),
+ Function(CGLContextObj, "CGLGetNextContext", [(CGLContextObj, "ctx")], internal=True),
+ Function(OpaquePointer(Void), "CGLFrontDispatch", [(CGLContextObj, "ctx")], internal=True),
+ Function(OpaquePointer(Void), "CGLBackDispatch", [(CGLContextObj, "ctx")], internal=True),
+ Function(Void, "CGLSelectDispatch", [(CGLContextObj, "ctx"), (OpaquePointer(Void), "dispatch")], internal=True),
+ Function(Void, "CGLSelectDispatchBounded", [(CGLContextObj, "ctx"), (OpaquePointer(Void), "dispatch"), (GLint, "size")], internal=True),
+ Function(Void, "CGLSelectDispatchFunction", [(CGLContextObj, "ctx"), (OpaquePointer(Void), "functionPtr"), (GLint, "functionId")], internal=True),
+ Function(Void, "CGLRestoreDispatch", [(CGLContextObj, "ctx")], internal=True),
+ Function(Void, "CGLRestoreDispatchFunction", [(CGLContextObj, "ctx"), (GLint, "functionId")], internal=True),
+ Function(CGLError, "CGLSetPBufferVolatileState", [(CGLPBufferObj, "pbuffer"), (OpaquePointer(Void), "state")], internal=True),
])