X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=specs%2Feglapi.py;h=b4b30e68e1b529b4655be41881de1157eaa50dab;hb=ae4339fcbfb7ce2986cb45ff633e3ea78799e625;hp=9149e08ec75ec2499293e3539f743094689d7d3f;hpb=0765c82077080857a199555aa45bbbed3a170c69;p=apitrace diff --git a/specs/eglapi.py b/specs/eglapi.py index 9149e08..b4b30e6 100644 --- a/specs/eglapi.py +++ b/specs/eglapi.py @@ -76,7 +76,97 @@ EGLuint64NV = Alias("EGLuint64NV", UInt64) eglapi = Module("EGL") -EGLAttribList = Array(Const(EGLattrib), "_AttribPairList_size(attrib_list, EGL_NONE)") +EGLSurfaceFlags = Flags(Int, [ + 'EGL_MULTISAMPLE_RESOLVE_BOX_BIT', + 'EGL_PBUFFER_BIT', + 'EGL_PIXMAP_BIT', + 'EGL_SWAP_BEHAVIOR_PRESERVED_BIT', + 'EGL_VG_ALPHA_FORMAT_PRE_BIT', + 'EGL_VG_COLORSPACE_LINEAR_BIT', + 'EGL_WINDOW_BIT' +]) + +EGLConformantFlags = Flags(Int, ['EGL_OPENGL_BIT','EGL_OPENGL_ES_BIT', 'EGL_OPENGL_ES2_BIT', 'EGL_OPENVG_BIT']) + +EGLVGAlphaFormat = FakeEnum(Int, ['EGL_VG_ALPHA_FORMAT_NONPRE', 'EGL_VG_ALPHA_FORMAT_PRE']) +EGLVGColorspace = FakeEnum(Int, ['EGL_VG_COLORSPACE_sRGB', 'EGL_VG_COLORSPACE_LINEAR']) +EGLTextureFormat = FakeEnum(Int, ['EGL_NO_TEXTURE', 'EGL_TEXTURE_RGB', 'EGL_TEXTURE_RGBA']) +EGLTextureTarget = FakeEnum(Int, ['EGL_TEXTURE_2D', 'EGL_NO_TEXTURE']) + +def EGLAttribArray(values): + return AttribArray(Const(EGLint_enum), values, terminator = 'EGL_NONE') + +EGLConfigAttribs = EGLAttribArray([ + ('EGL_ALPHA_MASK_SIZE', UInt), + ('EGL_ALPHA_SIZE', UInt), + ('EGL_BIND_TO_TEXTURE_RGB', EGLBoolean), + ('EGL_BIND_TO_TEXTURE_RGBA', EGLBoolean), + ('EGL_BLUE_SIZE', UInt), + ('EGL_BUFFER_SIZE', UInt), + ('EGL_COLOR_BUFFER_TYPE', FakeEnum(Int, ['EGL_RGB_BUFFER', 'EGL_LUMINANCE_BUFFER'])), + ('EGL_CONFIG_CAVEAT', FakeEnum(Int, ['EGL_DONT_CARE', 'EGL_NONE', 'EGL_SLOW_CONFIG', 'EGL_NON_CONFORMANT_CONFIG'])), + ('EGL_CONFIG_ID', Int), + ('EGL_CONFORMANT', EGLConformantFlags), + ('EGL_DEPTH_SIZE', Int), + ('EGL_GREEN_SIZE', UInt), + ('EGL_LEVEL', Int), + ('EGL_LUMINANCE_SIZE', UInt), + ('EGL_MATCH_NATIVE_PIXMAP', Int), + ('EGL_NATIVE_RENDERABLE', FakeEnum(Int, ['EGL_DONT_CARE', 'EGL_TRUE', 'EGL_FALSE'])), + ('EGL_MAX_SWAP_INTERVAL', Int), + ('EGL_MIN_SWAP_INTERVAL', Int), + ('EGL_RED_SIZE', UInt), + ('EGL_SAMPLE_BUFFERS', Int), + ('EGL_SAMPLES', Int), + ('EGL_STENCIL_SIZE', UInt), + ('EGL_RENDERABLE_TYPE', EGLConformantFlags), + ('EGL_SURFACE_TYPE', EGLSurfaceFlags), + ('EGL_TRANSPARENT_TYPE', FakeEnum(Int, ['EGL_NONE', 'EGL_TRANSPARENT_RGB'])), + ('EGL_TRANSPARENT_RED_VALUE', Int), + ('EGL_TRANSPARENT_GREEN_VALUE', Int), + ('EGL_TRANSPARENT_BLUE_VALUE ', Int) +]) + +EGLWindowsSurfaceAttribs = EGLAttribArray([ + ('EGL_RENDER_BUFFER', FakeEnum(Int, ['EGL_SINGLE_BUFFER', 'EGL_BACK_BUFFER'])), + ('EGL_VG_ALPHA_FORMAT', EGLVGAlphaFormat), + ('EGL_VG_COLORSPACE', EGLVGColorspace)]) + +EGLPixmapSurfaceAttribs = EGLAttribArray([ + ('EGL_VG_ALPHA_FORMAT', EGLVGAlphaFormat), + ('EGL_VG_COLORSPACE', EGLVGColorspace) +]) + +EGLPbufferAttribs = EGLAttribArray([ + ('EGL_HEIGHT', Int), + ('EGL_LARGEST_PBUFFER', EGLBoolean), + ('EGL_MIPMAP_TEXTURE', UInt), + ('EGL_TEXTURE_FORMAT', EGLTextureFormat), + ('EGL_TEXTURE_TARGET', EGLTextureTarget), + ('EGL_VG_ALPHA_FORMAT', EGLVGAlphaFormat), + ('EGL_VG_COLORSPACE', EGLVGColorspace), + ('EGL_WIDTH', Int) +]) + +EGLPbufferFromClientBufferAttribs = EGLAttribArray([ + ('EGL_MIPMAP_TEXTURE', EGLBoolean), + ('EGL_TEXTURE_FORMAT', EGLTextureFormat), + ('EGL_TEXTURE_TARGET', EGLTextureTarget) +]) + +EGLDrmImageMesaAttribs = EGLAttribArray([ + ('EGL_DRM_BUFFER_FORMAT_MESA', FakeEnum(Int, ['EGL_DRM_BUFFER_FORMAT_ARGB32_MESA'])), + ('EGL_DRM_BUFFER_USE_MESA', Flags(Int, ['EGL_DRM_BUFFER_USE_SCANOUT_MESA', 'EGL_DRM_BUFFER_USE_SHARE_MESA'])) +]) + +EGLLockSurfaceKHRAttribs = EGLAttribArray([ + ('EGL_MAP_PRESERVE_PIXELS_KHR', EGLBoolean), + ('EGL_LOCK_USAGE_HINT_KHR', Flags(Int, ['EGL_READ_SURFACE_BIT_KHR', 'EGL_WRITE_SURFACE_BIT_KHR'])) +]) + +EGLFenceSyncNVAttribs = EGLAttribArray([ + ('EGL_SYNC_STATUS_NV', Flags(Int, ['EGL_SIGNALED_NV', 'EGL_UNSIGNALED_NV'])) +]) EGLProc = Opaque("__eglMustCastToProperFunctionPointerType") @@ -95,12 +185,12 @@ eglapi.addFunctions([ Function(ConstCString, "eglQueryString", [(EGLDisplay, "dpy"), (EGLint_enum, "name")], sideeffects=False), Function(EGLBoolean, "eglGetConfigs", [(EGLDisplay, "dpy"), (Array(EGLConfig, "config_size"), "configs"), (EGLint, "config_size"), Out(Pointer(EGLint), "num_config")]), - Function(EGLBoolean, "eglChooseConfig", [(EGLDisplay, "dpy"), (EGLAttribList, "attrib_list"), (Array(EGLConfig, "config_size"), "configs"), (EGLint, "config_size"), Out(Pointer(EGLint), "num_config")]), + Function(EGLBoolean, "eglChooseConfig", [(EGLDisplay, "dpy"), (EGLConfigAttribs, "attrib_list"), (Array(EGLConfig, "config_size"), "configs"), (EGLint, "config_size"), Out(Pointer(EGLint), "num_config")]), Function(EGLBoolean, "eglGetConfigAttrib", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLattrib, "attribute"), Out(Pointer(EGLint), "value")], sideeffects=False), - Function(EGLSurface, "eglCreateWindowSurface", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLNativeWindowType, "win"), (EGLAttribList, "attrib_list")]), - Function(EGLSurface, "eglCreatePbufferSurface", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLAttribList, "attrib_list")]), - Function(EGLSurface, "eglCreatePixmapSurface", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLNativePixmapType, "pixmap"), (EGLAttribList, "attrib_list")]), + Function(EGLSurface, "eglCreateWindowSurface", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLNativeWindowType, "win"), (EGLWindowsSurfaceAttribs, "attrib_list")]), + Function(EGLSurface, "eglCreatePbufferSurface", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLPbufferAttribs, "attrib_list")]), + Function(EGLSurface, "eglCreatePixmapSurface", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLNativePixmapType, "pixmap"), (EGLPixmapSurfaceAttribs, "attrib_list")]), Function(EGLBoolean, "eglDestroySurface", [(EGLDisplay, "dpy"), (EGLSurface, "surface")]), Function(EGLBoolean, "eglQuerySurface", [(EGLDisplay, "dpy"), (EGLSurface, "surface"), (EGLattrib, "attribute"), Out(Pointer(EGLint), "value")], sideeffects=False), @@ -111,7 +201,7 @@ eglapi.addFunctions([ Function(EGLBoolean, "eglReleaseThread", []), - Function(EGLSurface, "eglCreatePbufferFromClientBuffer", [(EGLDisplay, "dpy"), (EGLenum, "buftype"), (EGLClientBuffer, "buffer"), (EGLConfig, "config"), (EGLAttribList, "attrib_list")]), + Function(EGLSurface, "eglCreatePbufferFromClientBuffer", [(EGLDisplay, "dpy"), (EGLenum, "buftype"), (EGLClientBuffer, "buffer"), (EGLConfig, "config"), (EGLPbufferFromClientBufferAttribs, "attrib_list")]), Function(EGLBoolean, "eglSurfaceAttrib", [(EGLDisplay, "dpy"), (EGLSurface, "surface"), (EGLattrib, "attribute"), (EGLint, "value")]), Function(EGLBoolean, "eglBindTexImage", [(EGLDisplay, "dpy"), (EGLSurface, "surface"), (EGLattrib, "buffer")]), @@ -119,7 +209,7 @@ eglapi.addFunctions([ Function(EGLBoolean, "eglSwapInterval", [(EGLDisplay, "dpy"), (EGLint, "interval")]), - Function(EGLContext, "eglCreateContext", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLContext, "share_context"), (EGLAttribList, "attrib_list")]), + Function(EGLContext, "eglCreateContext", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (EGLContext, "share_context"), (EGLAttribArray([('EGL_CONTEXT_CLIENT_VERSION', Int)]), "attrib_list")]), Function(EGLBoolean, "eglDestroyContext", [(EGLDisplay, "dpy"), (EGLContext, "ctx")]), Function(EGLBoolean, "eglMakeCurrent", [(EGLDisplay, "dpy"), (EGLSurface, "draw"), (EGLSurface, "read"), (EGLContext, "ctx")]), @@ -137,22 +227,24 @@ eglapi.addFunctions([ Function(EGLProc, "eglGetProcAddress", [(ConstCString, "procname")]), # EGL_KHR_lock_surface - Function(EGLBoolean, "eglLockSurfaceKHR", [(EGLDisplay, "display"), (EGLSurface, "surface"), (EGLAttribList, "attrib_list")]), + # EGL_KHR_lock_surface2 + Function(EGLBoolean, "eglLockSurfaceKHR", [(EGLDisplay, "display"), (EGLSurface, "surface"), (EGLLockSurfaceKHRAttribs, "attrib_list")]), Function(EGLBoolean, "eglUnlockSurfaceKHR", [(EGLDisplay, "display"), (EGLSurface, "surface")]), # EGL_KHR_image_base - Function(EGLImageKHR, "eglCreateImageKHR", [(EGLDisplay, "dpy"), (EGLContext, "ctx"), (EGLenum, "target"), (EGLClientBuffer, "buffer"), (EGLAttribList, "attrib_list")]), + Function(EGLImageKHR, "eglCreateImageKHR", [(EGLDisplay, "dpy"), (EGLContext, "ctx"), (EGLenum, "target"), (EGLClientBuffer, "buffer"), (EGLAttribArray([('EGL_IMAGE_PRESERVED_KHR', EGLBoolean)]), "attrib_list")]), Function(EGLBoolean, "eglDestroyImageKHR", [(EGLDisplay, "dpy"), (EGLImageKHR, "image")]), + # EGL_KHR_fence_sync # EGL_KHR_reusable_sync - Function(EGLSyncKHR, "eglCreateSyncKHR", [(EGLDisplay, "dpy"), (EGLenum, "type"), (EGLAttribList, "attrib_list")]), + Function(EGLSyncKHR, "eglCreateSyncKHR", [(EGLDisplay, "dpy"), (EGLenum, "type"), (EGLAttribArray([]), "attrib_list")]), Function(EGLBoolean, "eglDestroySyncKHR", [(EGLDisplay, "dpy"), (EGLSyncKHR, "sync")]), Function(EGLint, "eglClientWaitSyncKHR", [(EGLDisplay, "dpy"), (EGLSyncKHR, "sync"), (EGLint, "flags"), (EGLTimeKHR, "timeout")]), Function(EGLBoolean, "eglSignalSyncKHR", [(EGLDisplay, "dpy"), (EGLSyncKHR, "sync"), (EGLenum, "mode")]), Function(EGLBoolean, "eglGetSyncAttribKHR", [(EGLDisplay, "dpy"), (EGLSyncKHR, "sync"), (EGLattrib, "attribute"), Out(Pointer(EGLint), "value")], sideeffects=False), # EGL_NV_sync - Function(EGLSyncNV, "eglCreateFenceSyncNV", [(EGLDisplay, "dpy"), (EGLenum, "condition"), (EGLAttribList, "attrib_list")]), + Function(EGLSyncNV, "eglCreateFenceSyncNV", [(EGLDisplay, "dpy"), (EGLenum, "condition"), (EGLFenceSyncNVAttribs, "attrib_list")]), Function(EGLBoolean, "eglDestroySyncNV", [(EGLSyncNV, "sync")]), Function(EGLBoolean, "eglFenceNV", [(EGLSyncNV, "sync")]), Function(EGLint, "eglClientWaitSyncNV", [(EGLSyncNV, "sync"), (EGLint, "flags"), (EGLTimeNV, "timeout")]), @@ -163,7 +255,7 @@ eglapi.addFunctions([ Function(EGLSurface, "eglCreatePixmapSurfaceHI", [(EGLDisplay, "dpy"), (EGLConfig, "config"), (Pointer(EGLClientPixmapHI), "pixmap")]), # EGL_MESA_drm_image - Function(EGLImageKHR, "eglCreateDRMImageMESA", [(EGLDisplay, "dpy"), (EGLAttribList, "attrib_list")]), + Function(EGLImageKHR, "eglCreateDRMImageMESA", [(EGLDisplay, "dpy"), (EGLDrmImageMesaAttribs, "attrib_list")]), Function(EGLBoolean, "eglExportDRMImageMESA", [(EGLDisplay, "dpy"), (EGLImageKHR, "image"), Out(Pointer(EGLint), "name"), Out(Pointer(EGLint), "handle"), Out(Pointer(EGLint), "stride")]), # EGL_NV_post_sub_buffer