]> git.cworth.org Git - apitrace/commitdiff
Proper AttribArray / attrib_list support for applicable EGL functions.
authorAndreas Hartmetz <ahartmetz@gmail.com>
Mon, 8 Jul 2013 10:31:45 +0000 (12:31 +0200)
committerAndreas Hartmetz <ahartmetz@gmail.com>
Mon, 8 Jul 2013 11:24:23 +0000 (13:24 +0200)
The functions are:

eglChooseConfig
eglCreateWindowSurface
eglCreatePbufferSurface
eglCreatePixmapSurface
eglCreatePbufferFromClientBuffer
eglCreateContext
eglCreateImageKHR
eglCreateDRMImageMESA

specs/eglapi.py

index cc9584087891833ced125d243587fc4f2eacfe3d..59610eb89420a3ac2a9e3e59427ff23bcf323648 100644 (file)
@@ -78,6 +78,87 @@ 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',])
+
+EGLConfigAttribs = AttribArray(EGLenum, [
+    ('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)
+])
+
+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' ])
+
+EGLWindowsSurfaceAttribs = AttribArray(EGLenum, [
+    ('EGL_RENDER_BUFFER', FakeEnum(Int, ['EGL_SINGLE_BUFFER', 'EGL_BACK_BUFFER'])),
+    ('EGL_VG_ALPHA_FORMAT', EGLVGAlphaFormat),
+    ('EGL_VG_COLORSPACE', EGLVGColorspace)
+])
+
+EGLPixmapSurfaceAttribs = AttribArray(EGLenum, [
+    ('EGL_VG_ALPHA_FORMAT', EGLVGAlphaFormat),
+    ('EGL_VG_COLORSPACE', EGLVGColorspace)
+])
+
+EGLPbufferAttribs = AttribArray(EGLenum, [
+    ('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 = AttribArray(EGLenum, [
+    ('EGL_MIPMAP_TEXTURE', EGLBoolean),
+    ('EGL_TEXTURE_FORMAT', EGLTextureFormat),
+    ('EGL_TEXTURE_TARGET', EGLTextureTarget)
+])
+
+EGLDrmImageMesaAttribs = AttribArray(EGLenum, [
+    ('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']))
+])
+
 EGLProc = Opaque("__eglMustCastToProperFunctionPointerType")
 
 def GlFunction(*args, **kwargs):
@@ -95,12 +176,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 +192,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 +200,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"), (AttribArray(EGLenum, [('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")]),
 
@@ -142,7 +223,7 @@ eglapi.addFunctions([
     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"), (AttribArray(EGLenum, [('EGL_IMAGE_PRESERVED_KHR', EGLBoolean)]), "attrib_list")]),
     Function(EGLBoolean, "eglDestroyImageKHR", [(EGLDisplay, "dpy"), (EGLImageKHR, "image")]),
 
     # EGL_KHR_fence_sync
@@ -165,7 +246,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