"Fossies" - the Fresh Open Source Software Archive

Member "mesa-20.1.8/src/egl/generate/eglFunctionList.py" (16 Sep 2020, 8704 Bytes) of package /linux/misc/mesa-20.1.8.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Python source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. For more information about "eglFunctionList.py" see the Fossies "Dox" file reference documentation.

    1 #!/usr/bin/env python
    2 
    3 """
    4 Contains a list of EGL functions to generate dispatch functions for.
    5 
    6 This is used from gen_egl_dispatch.py.
    7 
    8 EGL_FUNCTIONS is a sequence of (name, eglData) pairs, where name is the name
    9 of the function, and eglData is a dictionary containing data about that
   10 function.
   11 
   12 The values in the eglData dictionary are:
   13 - method (string):
   14     How to select a vendor library. See "Method values" below.
   15 
   16 - prefix (string):
   17     This string is prepended to the name of the dispatch function. If
   18     unspecified, the default is "" (an empty string).
   19 
   20 - static (boolean)
   21   If True, this function should be declared static.
   22 
   23 - "public" (boolean)
   24     If True, the function should be exported from the library. Vendor libraries
   25     generally should not use this.
   26 
   27 - extension (string):
   28     If specified, this is the name of a macro to check for before defining a
   29     function. Used for checking for extension macros and such.
   30 
   31 - retval (string):
   32     If specified, this is a C expression with the default value to return if we
   33     can't find a function to call. By default, it will try to guess from the
   34     return type: EGL_NO_whatever for the various handle types, NULL for
   35     pointers, and zero for everything else.
   36 
   37 method values:
   38 - "custom"
   39     The dispatch stub will be hand-written instead of generated.
   40 
   41 - "none"
   42     No dispatch function exists at all, but the function should still have an
   43     entry in the index array. This is for other functions that a stub may need
   44     to call that are implemented in libEGL itself.
   45 
   46 - "display"
   47     Select a vendor from an EGLDisplay argument.
   48 
   49 - "device"
   50     Select a vendor from an EGLDeviceEXT argument.
   51 
   52 - "current"
   53     Select the vendor that owns the current context.
   54 """
   55 
   56 def _eglFunc(name, method, static=None, public=False, inheader=None, prefix="dispatch_", extension=None, retval=None):
   57     """
   58     A convenience function to define an entry in the EGL function list.
   59     """
   60     if static is None:
   61         static = (not public and method != "custom")
   62     if inheader is None:
   63         inheader = (not static)
   64     values = {
   65         "method" : method,
   66         "prefix" : prefix,
   67         "extension" : extension,
   68         "retval" : retval,
   69         "static" : static,
   70         "public" : public,
   71         "inheader" : inheader,
   72     }
   73     return (name, values)
   74 
   75 EGL_FUNCTIONS = (
   76     # EGL_VERSION_1_0
   77     _eglFunc("eglChooseConfig",                      "none"),
   78     _eglFunc("eglCopyBuffers",                       "none"),
   79     _eglFunc("eglCreateContext",                     "none"),
   80     _eglFunc("eglCreatePbufferSurface",              "none"),
   81     _eglFunc("eglCreatePixmapSurface",               "none"),
   82     _eglFunc("eglCreateWindowSurface",               "none"),
   83     _eglFunc("eglDestroyContext",                    "none"),
   84     _eglFunc("eglDestroySurface",                    "none"),
   85     _eglFunc("eglGetConfigAttrib",                   "none"),
   86     _eglFunc("eglGetConfigs",                        "none"),
   87     _eglFunc("eglQueryContext",                      "none"),
   88     _eglFunc("eglQuerySurface",                      "none"),
   89     _eglFunc("eglSwapBuffers",                       "none"),
   90     _eglFunc("eglWaitGL",                            "none"),
   91     _eglFunc("eglWaitNative",                        "none"),
   92     _eglFunc("eglTerminate",                         "none"),
   93     _eglFunc("eglInitialize",                        "none"),
   94 
   95     _eglFunc("eglGetCurrentDisplay",                 "none"),
   96     _eglFunc("eglGetCurrentSurface",                 "none"),
   97     _eglFunc("eglGetDisplay",                        "none"),
   98     _eglFunc("eglGetError",                          "none"),
   99     _eglFunc("eglGetProcAddress",                    "none"),
  100     _eglFunc("eglMakeCurrent",                       "none"),
  101     _eglFunc("eglQueryString",                       "none"),
  102 
  103     # EGL_VERSION_1_1
  104     _eglFunc("eglBindTexImage",                      "none"),
  105     _eglFunc("eglReleaseTexImage",                   "none"),
  106     _eglFunc("eglSurfaceAttrib",                     "none"),
  107     _eglFunc("eglSwapInterval",                      "none"),
  108 
  109     # EGL_VERSION_1_2
  110     _eglFunc("eglCreatePbufferFromClientBuffer",     "none"),
  111     _eglFunc("eglWaitClient",                        "none"),
  112     _eglFunc("eglBindAPI",                           "none"),
  113     _eglFunc("eglQueryAPI",                          "none"),
  114     _eglFunc("eglReleaseThread",                     "none"),
  115 
  116     # EGL_VERSION_1_4
  117     _eglFunc("eglGetCurrentContext",                 "none"),
  118 
  119     # EGL_VERSION_1_5
  120     _eglFunc("eglCreateSync",                        "none"),
  121     _eglFunc("eglDestroySync",                       "none"),
  122     _eglFunc("eglClientWaitSync",                    "none"),
  123     _eglFunc("eglGetSyncAttrib",                     "none"),
  124     _eglFunc("eglCreateImage",                       "none"),
  125     _eglFunc("eglDestroyImage",                      "none"),
  126     _eglFunc("eglCreatePlatformWindowSurface",       "none"),
  127     _eglFunc("eglCreatePlatformPixmapSurface",       "none"),
  128     _eglFunc("eglWaitSync",                          "none"),
  129     _eglFunc("eglGetPlatformDisplay",                "none"),
  130 
  131     # EGL_EXT_platform_base
  132     _eglFunc("eglCreatePlatformWindowSurfaceEXT",    "display"),
  133     _eglFunc("eglCreatePlatformPixmapSurfaceEXT",    "display"),
  134     _eglFunc("eglGetPlatformDisplayEXT",             "none"),
  135 
  136     # TODO: Most of these extensions should be provided by the vendor
  137     # libraries, not by libEGL. They're here now to make testing everything
  138     # else easier.
  139 
  140     # EGL_EXT_swap_buffers_with_damage
  141     _eglFunc("eglSwapBuffersWithDamageEXT",          "display"),
  142 
  143     # KHR_EXT_swap_buffers_with_damage
  144     _eglFunc("eglSwapBuffersWithDamageKHR",          "display"),
  145 
  146     # EGL_KHR_cl_event2
  147     _eglFunc("eglCreateSync64KHR",                   "display"),
  148 
  149     # EGL_KHR_fence_sync
  150     _eglFunc("eglCreateSyncKHR",                     "display"),
  151     _eglFunc("eglDestroySyncKHR",                    "display"),
  152     _eglFunc("eglClientWaitSyncKHR",                 "display"),
  153     _eglFunc("eglGetSyncAttribKHR",                  "display"),
  154 
  155     # EGL_KHR_image
  156     _eglFunc("eglCreateImageKHR",                    "display"),
  157     _eglFunc("eglDestroyImageKHR",                   "display"),
  158 
  159     # EGL_KHR_image_base
  160     # eglCreateImageKHR already defined in EGL_KHR_image
  161     # eglDestroyImageKHR already defined in EGL_KHR_image
  162 
  163     # EGL_KHR_reusable_sync
  164     _eglFunc("eglSignalSyncKHR",                     "display"),
  165     # eglCreateSyncKHR already defined in EGL_KHR_fence_sync
  166     # eglDestroySyncKHR already defined in EGL_KHR_fence_sync
  167     # eglClientWaitSyncKHR already defined in EGL_KHR_fence_sync
  168     # eglGetSyncAttribKHR already defined in EGL_KHR_fence_sync
  169 
  170     # EGL_KHR_wait_sync
  171     _eglFunc("eglWaitSyncKHR",                       "display"),
  172 
  173     # EGL_MESA_drm_image
  174     _eglFunc("eglCreateDRMImageMESA",                "display"),
  175     _eglFunc("eglExportDRMImageMESA",                "display"),
  176 
  177     # EGL_MESA_image_dma_buf_export
  178     _eglFunc("eglExportDMABUFImageQueryMESA",        "display"),
  179     _eglFunc("eglExportDMABUFImageMESA",             "display"),
  180 
  181     # EGL_NOK_swap_region
  182     _eglFunc("eglSwapBuffersRegionNOK",              "display"),
  183 
  184     # EGL_NV_post_sub_buffer
  185     _eglFunc("eglPostSubBufferNV",                   "display"),
  186 
  187     # EGL_WL_bind_wayland_display
  188     _eglFunc("eglCreateWaylandBufferFromImageWL",    "display"),
  189     _eglFunc("eglUnbindWaylandDisplayWL",            "display"),
  190     _eglFunc("eglQueryWaylandBufferWL",              "display"),
  191     _eglFunc("eglBindWaylandDisplayWL",              "display"),
  192 
  193     # EGL_CHROMIUM_get_sync_values
  194     _eglFunc("eglGetSyncValuesCHROMIUM",             "display"),
  195 
  196     # EGL_ANDROID_native_fence_sync
  197     _eglFunc("eglDupNativeFenceFDANDROID",           "display"),
  198 
  199     # EGL_ANDROID_blob_cache
  200     _eglFunc("eglSetBlobCacheFuncsANDROID",          "display"),
  201 
  202     # EGL_EXT_image_dma_buf_import_modifiers
  203     _eglFunc("eglQueryDmaBufFormatsEXT",             "display"),
  204     _eglFunc("eglQueryDmaBufModifiersEXT",           "display"),
  205 
  206     # EGL_EXT_device_base
  207     _eglFunc("eglQueryDeviceAttribEXT",              "device"),
  208     _eglFunc("eglQueryDeviceStringEXT",              "device"),
  209     _eglFunc("eglQueryDevicesEXT",                   "none"),
  210     _eglFunc("eglQueryDisplayAttribEXT",             "display"),
  211 
  212     # EGL_MESA_query_driver
  213     _eglFunc("eglGetDisplayDriverName",              "display"),
  214     _eglFunc("eglGetDisplayDriverConfig",            "display"),
  215 
  216     # EGL_KHR_partial_update
  217     _eglFunc("eglSetDamageRegionKHR",                "display"),
  218 
  219 )
  220