Blame src/generate/eglFunctionList.py

Packit Service c8dffe
#!/usr/bin/python3
Packit Service 9e77c8
Packit Service 9e77c8
"""
Packit Service 9e77c8
Contains a list of EGL functions to generate dispatch functions for.
Packit Service 9e77c8
Packit Service 9e77c8
This is used from gen_egl_dispatch.py.
Packit Service 9e77c8
Packit Service 9e77c8
EGL_FUNCTIONS is a sequence of (name, eglData) pairs, where name is the name
Packit Service 9e77c8
of the function, and eglData is a dictionary containing data about that
Packit Service 9e77c8
function.
Packit Service 9e77c8
Packit Service 9e77c8
The values in the eglData dictionary are:
Packit Service 9e77c8
- method (string):
Packit Service 9e77c8
    How to select a vendor library. See "Method values" below.
Packit Service 9e77c8
Packit Service 9e77c8
- prefix (string):
Packit Service 9e77c8
    This string is prepended to the name of the dispatch function. If
Packit Service 9e77c8
    unspecified, the default is "" (an empty string).
Packit Service 9e77c8
Packit Service 9e77c8
- static (boolean)
Packit Service 9e77c8
  If True, this function should be declared static.
Packit Service 9e77c8
Packit Service 9e77c8
- "public" (boolean)
Packit Service 9e77c8
    If True, the function should be exported from the library. Vendor libraries
Packit Service 9e77c8
    generally should not use this.
Packit Service 9e77c8
Packit Service 9e77c8
- extension (string):
Packit Service 9e77c8
    If specified, this is the name of a macro to check for before defining a
Packit Service 9e77c8
    function. Used for checking for extension macros and such.
Packit Service 9e77c8
Packit Service 9e77c8
- retval (string):
Packit Service 9e77c8
    If specified, this is a C expression with the default value to return if we
Packit Service 9e77c8
    can't find a function to call. By default, it will try to guess from the
Packit Service 9e77c8
    return type: EGL_NO_whatever for the various handle types, NULL for
Packit Service 9e77c8
    pointers, and zero for everything else.
Packit Service 9e77c8
Packit Service 9e77c8
method values:
Packit Service 9e77c8
- "custom"
Packit Service 9e77c8
    The dispatch stub will be hand-written instead of generated.
Packit Service 9e77c8
Packit Service 9e77c8
- "none"
Packit Service 9e77c8
    No dispatch function exists at all, but the function should still have an
Packit Service 9e77c8
    entry in the index array. This is for other functions that a stub may need
Packit Service 9e77c8
    to call that are implemented in libEGL itself.
Packit Service 9e77c8
Packit Service 9e77c8
- "display"
Packit Service 9e77c8
    Select a vendor from an EGLDisplay argument.
Packit Service 9e77c8
Packit Service 9e77c8
- "device"
Packit Service 9e77c8
    Select a vendor from an EGLDeviceEXT argument.
Packit Service 9e77c8
Packit Service 9e77c8
- "current"
Packit Service 9e77c8
    Select the vendor that owns the current context.
Packit Service 9e77c8
"""
Packit Service 9e77c8
Packit Service 9e77c8
def _eglFunc(name, method, static=False, public=False, inheader=None, prefix="", extension=None, retval=None):
Packit Service 9e77c8
    """
Packit Service 9e77c8
    A convenience function to define an entry in the EGL function list.
Packit Service 9e77c8
    """
Packit Service 9e77c8
    if (inheader == None):
Packit Service 9e77c8
        inheader = (not public)
Packit Service 9e77c8
    values = {
Packit Service 9e77c8
        "method" : method,
Packit Service 9e77c8
        "prefix" : prefix,
Packit Service 9e77c8
        "extension" : extension,
Packit Service 9e77c8
        "retval" : retval,
Packit Service 9e77c8
        "static" : static,
Packit Service 9e77c8
        "public" : public,
Packit Service 9e77c8
        "inheader" : inheader,
Packit Service 9e77c8
    }
Packit Service 9e77c8
    return (name, values)
Packit Service 9e77c8
Packit Service 9e77c8
def _eglCore(name, method, **kwargs):
Packit Service 9e77c8
    return _eglFunc(name, method, public=True, **kwargs)
Packit Service 9e77c8
Packit Service 9e77c8
def _eglExt(name, method, **kwargs):
Packit Service 9e77c8
    return _eglFunc(name, method, public=False, **kwargs)
Packit Service 9e77c8
Packit Service 9e77c8
EGL_FUNCTIONS = (
Packit Service 9e77c8
    # EGL_VERSION_1_0
Packit Service 9e77c8
    _eglCore("eglChooseConfig",                      "display"),
Packit Service 9e77c8
    _eglCore("eglCopyBuffers",                       "display"),
Packit Service 9e77c8
    _eglCore("eglCreateContext",                     "display"),
Packit Service 9e77c8
    _eglCore("eglCreatePbufferSurface",              "display"),
Packit Service 9e77c8
    _eglCore("eglCreatePixmapSurface",               "display"),
Packit Service 9e77c8
    _eglCore("eglCreateWindowSurface",               "display"),
Packit Service 9e77c8
    _eglCore("eglDestroyContext",                    "display"),
Packit Service 9e77c8
    _eglCore("eglDestroySurface",                    "display"),
Packit Service 9e77c8
    _eglCore("eglGetConfigAttrib",                   "display"),
Packit Service 9e77c8
    _eglCore("eglGetConfigs",                        "display"),
Packit Service 9e77c8
    _eglCore("eglQueryContext",                      "display"),
Packit Service 9e77c8
    _eglCore("eglQuerySurface",                      "display"),
Packit Service 9e77c8
    _eglCore("eglSwapBuffers",                       "display"),
Packit Service 9e77c8
    _eglCore("eglWaitGL",                            "current", retval="EGL_TRUE"),
Packit Service 9e77c8
    _eglCore("eglWaitNative",                        "current", retval="EGL_TRUE"),
Packit Service 9e77c8
    _eglCore("eglTerminate",                         "display"),
Packit Service 9e77c8
    _eglCore("eglInitialize",                        "display"),
Packit Service 9e77c8
Packit Service 9e77c8
    _eglCore("eglGetCurrentDisplay",                 "custom"),
Packit Service 9e77c8
    _eglCore("eglGetCurrentSurface",                 "custom"),
Packit Service 9e77c8
    _eglCore("eglGetDisplay",                        "custom"),
Packit Service 9e77c8
    _eglCore("eglGetError",                          "custom"),
Packit Service 9e77c8
    _eglCore("eglGetProcAddress",                    "custom"),
Packit Service 9e77c8
    _eglCore("eglMakeCurrent",                       "custom"),
Packit Service 9e77c8
    _eglCore("eglQueryString",                       "custom"),
Packit Service 9e77c8
Packit Service 9e77c8
    # EGL_VERSION_1_1
Packit Service 9e77c8
    _eglCore("eglBindTexImage",                      "display"),
Packit Service 9e77c8
    _eglCore("eglReleaseTexImage",                   "display"),
Packit Service 9e77c8
    _eglCore("eglSurfaceAttrib",                     "display"),
Packit Service 9e77c8
    _eglCore("eglSwapInterval",                      "display"),
Packit Service 9e77c8
Packit Service 9e77c8
    # EGL_VERSION_1_2
Packit Service 9e77c8
    _eglCore("eglCreatePbufferFromClientBuffer",     "display"),
Packit Service 9e77c8
    _eglCore("eglWaitClient",                        "current", retval="EGL_TRUE"),
Packit Service 9e77c8
    _eglCore("eglBindAPI",                           "custom"),
Packit Service 9e77c8
    _eglCore("eglQueryAPI",                          "custom"),
Packit Service 9e77c8
    _eglCore("eglReleaseThread",                     "custom"),
Packit Service 9e77c8
Packit Service 9e77c8
    # EGL_VERSION_1_4
Packit Service 9e77c8
    _eglCore("eglGetCurrentContext",                 "custom"),
Packit Service 9e77c8
Packit Service 9e77c8
    # EGL_VERSION_1_5
Packit Service 9e77c8
    _eglCore("eglCreateSync",                        "display"),
Packit Service 9e77c8
    _eglCore("eglDestroySync",                       "display"),
Packit Service 9e77c8
    _eglCore("eglClientWaitSync",                    "display"),
Packit Service 9e77c8
    _eglCore("eglGetSyncAttrib",                     "display"),
Packit Service 9e77c8
    _eglCore("eglCreateImage",                       "display"),
Packit Service 9e77c8
    _eglCore("eglDestroyImage",                      "display"),
Packit Service 9e77c8
    _eglCore("eglCreatePlatformWindowSurface",       "display"),
Packit Service 9e77c8
    _eglCore("eglCreatePlatformPixmapSurface",       "display"),
Packit Service 9e77c8
    _eglCore("eglWaitSync",                          "display"),
Packit Service 9e77c8
    _eglCore("eglGetPlatformDisplay",                "custom"),
Packit Service 9e77c8
Packit Service 9e77c8
    # EGL_EXT_platform_base
Packit Service 9e77c8
    _eglExt("eglCreatePlatformWindowSurfaceEXT",    "display"),
Packit Service 9e77c8
    _eglExt("eglCreatePlatformPixmapSurfaceEXT",    "display"),
Packit Service 9e77c8
    _eglExt("eglGetPlatformDisplayEXT",             "custom"),
Packit Service 9e77c8
Packit Service 9e77c8
    # EGL_EXT_device_enumeration
Packit Service 9e77c8
    _eglExt("eglQueryDevicesEXT",                   "custom"),
Packit Service 9e77c8
Packit Service 9e77c8
    # EGL_KHR_debug
Packit Service 9e77c8
    _eglExt("eglDebugMessageControlKHR",            "custom"),
Packit Service 9e77c8
    _eglExt("eglQueryDebugKHR",                     "custom"),
Packit Service 9e77c8
    _eglExt("eglLabelObjectKHR",                    "custom"),
Packit Service 9e77c8
)
Packit Service 9e77c8