102f4aeb0Sopenharmony_ciName
202f4aeb0Sopenharmony_ci
302f4aeb0Sopenharmony_ci    KHR_platform_wayland
402f4aeb0Sopenharmony_ci
502f4aeb0Sopenharmony_ciName Strings
602f4aeb0Sopenharmony_ci
702f4aeb0Sopenharmony_ci    EGL_KHR_platform_wayland
802f4aeb0Sopenharmony_ci
902f4aeb0Sopenharmony_ciContributors
1002f4aeb0Sopenharmony_ci
1102f4aeb0Sopenharmony_ci    Chad Versace <chad.versace@intel.com>
1202f4aeb0Sopenharmony_ci    Jon Leech (oddhack 'at' sonic.net)
1302f4aeb0Sopenharmony_ci
1402f4aeb0Sopenharmony_ciContacts
1502f4aeb0Sopenharmony_ci
1602f4aeb0Sopenharmony_ci    Chad Versace <chad.versace@intel.com>
1702f4aeb0Sopenharmony_ci
1802f4aeb0Sopenharmony_ciStatus
1902f4aeb0Sopenharmony_ci
2002f4aeb0Sopenharmony_ci    Complete.
2102f4aeb0Sopenharmony_ci    Approved by the EGL Working Group on January 31, 2014.
2202f4aeb0Sopenharmony_ci    Ratified by the Khronos Board of Promoters on March 14, 2014. 
2302f4aeb0Sopenharmony_ci
2402f4aeb0Sopenharmony_ciVersion
2502f4aeb0Sopenharmony_ci
2602f4aeb0Sopenharmony_ci    Version 2, 2014/02/18
2702f4aeb0Sopenharmony_ci
2802f4aeb0Sopenharmony_ciNumber
2902f4aeb0Sopenharmony_ci
3002f4aeb0Sopenharmony_ci    EGL Extension #70
3102f4aeb0Sopenharmony_ci
3202f4aeb0Sopenharmony_ciExtension Type
3302f4aeb0Sopenharmony_ci
3402f4aeb0Sopenharmony_ci    EGL client extension
3502f4aeb0Sopenharmony_ci
3602f4aeb0Sopenharmony_ciDependencies
3702f4aeb0Sopenharmony_ci
3802f4aeb0Sopenharmony_ci    EGL 1.5 is required.
3902f4aeb0Sopenharmony_ci
4002f4aeb0Sopenharmony_ci    This extension is written against the EGL 1.5 Specification (draft
4102f4aeb0Sopenharmony_ci    20140122).
4202f4aeb0Sopenharmony_ci
4302f4aeb0Sopenharmony_ciOverview
4402f4aeb0Sopenharmony_ci
4502f4aeb0Sopenharmony_ci    This extension defines how to create EGL resources from native Wayland
4602f4aeb0Sopenharmony_ci    resources using the EGL 1.5 platform functionality.
4702f4aeb0Sopenharmony_ci
4802f4aeb0Sopenharmony_ciNew Types
4902f4aeb0Sopenharmony_ci
5002f4aeb0Sopenharmony_ci    None
5102f4aeb0Sopenharmony_ci
5202f4aeb0Sopenharmony_ciNew Procedures and Functions
5302f4aeb0Sopenharmony_ci
5402f4aeb0Sopenharmony_ci    None
5502f4aeb0Sopenharmony_ci
5602f4aeb0Sopenharmony_ciNew Tokens
5702f4aeb0Sopenharmony_ci
5802f4aeb0Sopenharmony_ci    Accepted as the <platform> argument of eglGetPlatformDisplay:
5902f4aeb0Sopenharmony_ci
6002f4aeb0Sopenharmony_ci        EGL_PLATFORM_WAYLAND_KHR                0x31D8
6102f4aeb0Sopenharmony_ci
6202f4aeb0Sopenharmony_ciAdditions to the EGL Specification
6302f4aeb0Sopenharmony_ci
6402f4aeb0Sopenharmony_ci    None.
6502f4aeb0Sopenharmony_ci
6602f4aeb0Sopenharmony_ciNew Behavior
6702f4aeb0Sopenharmony_ci
6802f4aeb0Sopenharmony_ci    To determine if the EGL implementation supports this extension, clients
6902f4aeb0Sopenharmony_ci    should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
7002f4aeb0Sopenharmony_ci
7102f4aeb0Sopenharmony_ci    To obtain an EGLDisplay backed by a Wayland display, call
7202f4aeb0Sopenharmony_ci    eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_WAYLAND_KHR.  The
7302f4aeb0Sopenharmony_ci    <native_display> parameter specifies the Wayland display  to use and must
7402f4aeb0Sopenharmony_ci    either point to a `struct wl_display` or be EGL_DEFAULT_DISPLAY. If
7502f4aeb0Sopenharmony_ci    <native_display> is EGL_DEFAULT_DISPLAY, then EGL will create a new
7602f4aeb0Sopenharmony_ci    wl_display structure by connecting to the default Wayland socket.  The
7702f4aeb0Sopenharmony_ci    manual page wl_display_connect(3) defines the location of the default
7802f4aeb0Sopenharmony_ci    Wayland socket.
7902f4aeb0Sopenharmony_ci
8002f4aeb0Sopenharmony_ci    To obtain an on-screen rendering surface from a Wayland window, call
8102f4aeb0Sopenharmony_ci    eglCreatePlatformWindowSurface with a <dpy> that belongs to Wayland and
8202f4aeb0Sopenharmony_ci    a <native_window> that points to a `struct wl_egl_surface`.
8302f4aeb0Sopenharmony_ci
8402f4aeb0Sopenharmony_ci    It is not valid to call eglCreatePlatformPixmapSurface with a <dpy> that
8502f4aeb0Sopenharmony_ci    belongs to Wayland. Any such call fails and generates an
8602f4aeb0Sopenharmony_ci    EGL_BAD_PARAMETER error.
8702f4aeb0Sopenharmony_ci
8802f4aeb0Sopenharmony_ciIssues
8902f4aeb0Sopenharmony_ci
9002f4aeb0Sopenharmony_ci    1. Should this extension permit EGL_DEFAULT_DISPLAY as input to
9102f4aeb0Sopenharmony_ci       eglGetPlatformDisplay()?
9202f4aeb0Sopenharmony_ci
9302f4aeb0Sopenharmony_ci       RESOLUTION: Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplay
9402f4aeb0Sopenharmony_ci       returns a display backed by the default Wayland display.
9502f4aeb0Sopenharmony_ci
9602f4aeb0Sopenharmony_ci    2. Should this extension support creation of EGLPixmap resources from
9702f4aeb0Sopenharmony_ci       Wayland pixmaps?
9802f4aeb0Sopenharmony_ci
9902f4aeb0Sopenharmony_ci       RESOLVED. No. Wayland has no pixmap type.
10002f4aeb0Sopenharmony_ci
10102f4aeb0Sopenharmony_ciRevision History
10202f4aeb0Sopenharmony_ci
10302f4aeb0Sopenharmony_ci    Version 2, 2014/02/18 (Chad Versace)
10402f4aeb0Sopenharmony_ci        - Change resolution of issue #1 from "no" to "yes". Now
10502f4aeb0Sopenharmony_ci          eglGetPlatformDisplay accepts EGL_DEFAULT_DISPLAY for Wayland.
10602f4aeb0Sopenharmony_ci        - Explain in more detail how EGL connects to the default Wayland
10702f4aeb0Sopenharmony_ci          display.
10802f4aeb0Sopenharmony_ci
10902f4aeb0Sopenharmony_ci    Version 1, 2014/01/22 (Jon Leech)
11002f4aeb0Sopenharmony_ci        - Promote EGL_EXT_platform_wayland to KHR to go with EGL 1.5.
111