X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=specs%2Fcglapi.py;h=f54ce8a29c7910660de87f49053f05b8ceb436bd;hb=48a92b99752143a34a6b5f6b94bad183564cecab;hp=6cea02887f3f3945bf9b99099a6a2a2b09d21d86;hpb=81301939f025407ceb284a9dcd5d5a1f05d27b8f;p=apitrace diff --git a/specs/cglapi.py b/specs/cglapi.py index 6cea028..f54ce8a 100644 --- a/specs/cglapi.py +++ b/specs/cglapi.py @@ -44,49 +44,57 @@ CGSConnectionID = Opaque("CGSConnectionID") CGSWindowID = Alias("CGSWindowID", Int) CGSSurfaceID = Alias("CGSSurfaceID", Int) -CGLPixelFormatAttribute = Enum("CGLPixelFormatAttribute", [ +CGLPixelFormatBoolAttributes = [ "kCGLPFAAllRenderers", "kCGLPFADoubleBuffer", "kCGLPFAStereo", "kCGLPFAAuxBuffers", - "kCGLPFAColorSize", - "kCGLPFAAlphaSize", - "kCGLPFADepthSize", - "kCGLPFAStencilSize", - "kCGLPFAAccumSize", "kCGLPFAMinimumPolicy", "kCGLPFAMaximumPolicy", "kCGLPFAOffScreen", "kCGLPFAFullScreen", - "kCGLPFASampleBuffers", - "kCGLPFASamples", "kCGLPFAAuxDepthStencil", "kCGLPFAColorFloat", "kCGLPFAMultisample", "kCGLPFASupersample", "kCGLPFASampleAlpha", - "kCGLPFARendererID", "kCGLPFASingleRenderer", "kCGLPFANoRecovery", "kCGLPFAAccelerated", "kCGLPFAClosestPolicy", + "kCGLPFARobust", "kCGLPFABackingStore", + "kCGLPFAMPSafe", "kCGLPFAWindow", + "kCGLPFAMultiScreen", "kCGLPFACompliant", - "kCGLPFADisplayMask", "kCGLPFAPBuffer", "kCGLPFARemotePBuffer", "kCGLPFAAllowOfflineRenderers", "kCGLPFAAcceleratedCompute", + "kCGLOGLPVersion_Legacy", + "kCGLOGLPVersion_3_2_Core" +] + +CGLPixelFormatIntAttributes = [ + "kCGLPFAColorSize", + "kCGLPFAAlphaSize", + "kCGLPFADepthSize", + "kCGLPFAStencilSize", + "kCGLPFAAccumSize", + "kCGLPFASampleBuffers", + "kCGLPFASamples", + "kCGLPFARendererID", + "kCGLPFADisplayMask", "kCGLPFAOpenGLProfile", - "kCGLPFAVirtualScreenCount", - "kCGLPFARobust", - "kCGLPFAMPSafe", - "kCGLPFAMultiScreen", + "kCGLPFAVirtualScreenCount" +] - "kCGLOGLPVersion_Legacy", - "kCGLOGLPVersion_3_2_Core", -]) +CGLPixelFormatAttribute = Enum("CGLPixelFormatAttribute", CGLPixelFormatBoolAttributes + CGLPixelFormatIntAttributes) + +CGLPixelFormatAttribs = AttribArray(Const(CGLPixelFormatAttribute), + [(a, None) for a in CGLPixelFormatBoolAttributes] + + [(a, Int) for a in CGLPixelFormatIntAttributes]) CGLRendererProperty = Enum("CGLRendererProperty", [ "kCGLRPOffScreen", @@ -188,7 +196,7 @@ cglapi.addFunctions([ 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", [(CGLPixelFormatAttribs, "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")]), @@ -221,19 +229,19 @@ cglapi.addFunctions([ 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(ConstCString, "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")]), @@ -245,17 +253,20 @@ cglapi.addFunctions([ 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), ])