Home | History | Annotate | Download | only in specs
      1 Name
      2 
      3     MESA_platform_surfaceless
      4 
      5 Name Strings
      6 
      7     EGL_MESA_platform_surfaceless
      8 
      9 Contributors
     10 
     11     Chad Versace <chadversary (a] google.com>
     12     Haixia Shi <hshi (a] google.com>
     13     Stphane Marchesin <marcheu (a] google.com>
     14     Zach Reizner <zachr (a] chromium.org>
     15     Gurchetan Singh <gurchetansingh (a] google.com>
     16 
     17 Contacts
     18 
     19     Chad Versace <chadversary (a] google.com>
     20 
     21 Status
     22 
     23     DRAFT
     24 
     25 Version
     26 
     27     Version 2, 2016-10-13
     28 
     29 Number
     30 
     31     EGL Extension #TODO
     32 
     33 Extension Type
     34 
     35     EGL client extension
     36 
     37 Dependencies
     38 
     39     Requires EGL 1.5 or later; or EGL 1.4 with EGL_EXT_platform_base.
     40 
     41     This extension is written against the EGL 1.5 Specification (draft
     42     20140122).
     43 
     44     This extension interacts with EGL_EXT_platform_base as follows. If the
     45     implementation supports EGL_EXT_platform_base, then text regarding
     46     eglGetPlatformDisplay applies also to eglGetPlatformDisplayEXT;
     47     eglCreatePlatformWindowSurface to eglCreatePlatformWindowSurfaceEXT; and
     48     eglCreatePlatformPixmapSurface to eglCreatePlatformPixmapSurfaceEXT.
     49 
     50 Overview
     51 
     52     This extension defines a new EGL platform, the "surfaceless" platform. This
     53     platfom's defining property is that it has no native surfaces, and hence
     54     neither eglCreatePlatformWindowSurface nor eglCreatePlatformPixmapSurface
     55     can be used. The platform is independent of any native window system.
     56 
     57     The platform's intended use case is for enabling OpenGL and OpenGL ES
     58     applications on systems where no window system exists. However, the
     59     platform's permitted usage is not restricted to this case.  Since the
     60     platform is independent of any native window system, it may also be used on
     61     systems where a window system is present.
     62 
     63 New Types
     64 
     65     None
     66 
     67 New Procedures and Functions
     68 
     69     None
     70 
     71 New Tokens
     72 
     73     Accepted as the <platform> argument of eglGetPlatformDisplay:
     74 
     75         EGL_PLATFORM_SURFACELESS_MESA           0x31DD
     76 
     77 Additions to the EGL Specification
     78 
     79     None.
     80 
     81 New Behavior
     82 
     83     To determine if the EGL implementation supports this extension, clients
     84     should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
     85 
     86     To obtain an EGLDisplay on the surfaceless platform, call
     87     eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_SURFACELESS_MESA.
     88     The <native_display> parameter must be EGL_DEFAULT_DISPLAY.
     89 
     90     eglCreatePlatformWindowSurface fails when called with a <display> that
     91     belongs to the surfaceless platform. It returns EGL_NO_SURFACE and
     92     generates EGL_BAD_NATIVE_WINDOW. The justification for this unconditional
     93     failure is that the surfaceless platform has no native windows, and
     94     therefore the <native_window> parameter is always invalid.
     95 
     96     Likewise, eglCreatePlatformPixmapSurface also fails when called with a
     97     <display> that belongs to the surfaceless platform.  It returns
     98     EGL_NO_SURFACE and generates EGL_BAD_NATIVE_PIXMAP.
     99 
    100     The surfaceless platform imposes no platform-specific restrictions on the
    101     creation of pbuffers, as eglCreatePbufferSurface has no native surface
    102     parameter.  Specifically, if the EGLDisplay advertises an EGLConfig whose
    103     EGL_SURFACE_TYPE attribute contains EGL_PBUFFER_BIT, then the EGLDisplay
    104     permits the creation of pbuffers with that config.
    105 
    106 Issues
    107 
    108     None.
    109 
    110 Revision History
    111 
    112     Version 2, 2016-10-13 (Chad Versace)
    113         - Assign enum values
    114         - Define interfactions with EGL 1.4 and EGL_EXT_platform_base.
    115         - Add Gurchetan as contributor, as he implemented the pbuffer support.
    116 
    117     Version 1, 2016-09-23 (Chad Versace)
    118         - Initial version
    119         - Posted for review at
    120           https://lists.freedesktop.org/archives/mesa-dev/2016-September/129549.html
    121