102f4aeb0Sopenharmony_ciName
202f4aeb0Sopenharmony_ci
302f4aeb0Sopenharmony_ci    EXT_platform_wayland
402f4aeb0Sopenharmony_ci
502f4aeb0Sopenharmony_ciName Strings
602f4aeb0Sopenharmony_ci
702f4aeb0Sopenharmony_ci    EGL_EXT_platform_wayland
802f4aeb0Sopenharmony_ci
902f4aeb0Sopenharmony_ciContributors
1002f4aeb0Sopenharmony_ci
1102f4aeb0Sopenharmony_ci    Chad Versace <chad.versace@intel.com>
1202f4aeb0Sopenharmony_ci
1302f4aeb0Sopenharmony_ciContacts
1402f4aeb0Sopenharmony_ci
1502f4aeb0Sopenharmony_ci    Chad Versace <chad.versace@intel.com>
1602f4aeb0Sopenharmony_ci
1702f4aeb0Sopenharmony_ciStatus
1802f4aeb0Sopenharmony_ci
1902f4aeb0Sopenharmony_ci    Complete
2002f4aeb0Sopenharmony_ci
2102f4aeb0Sopenharmony_ciVersion
2202f4aeb0Sopenharmony_ci
2302f4aeb0Sopenharmony_ci    Version 4, 2014-03-10
2402f4aeb0Sopenharmony_ci
2502f4aeb0Sopenharmony_ciNumber
2602f4aeb0Sopenharmony_ci
2702f4aeb0Sopenharmony_ci    EGL Extension #63
2802f4aeb0Sopenharmony_ci
2902f4aeb0Sopenharmony_ciExtension Type
3002f4aeb0Sopenharmony_ci
3102f4aeb0Sopenharmony_ci    EGL client extension
3202f4aeb0Sopenharmony_ci
3302f4aeb0Sopenharmony_ciDependencies
3402f4aeb0Sopenharmony_ci
3502f4aeb0Sopenharmony_ci    Requires EGL_EXT_client_extensions to query its existence without
3602f4aeb0Sopenharmony_ci    a display.
3702f4aeb0Sopenharmony_ci
3802f4aeb0Sopenharmony_ci    Requires EGL_EXT_platform_base.
3902f4aeb0Sopenharmony_ci
4002f4aeb0Sopenharmony_ci    This extension is written against the wording of version 7 of the
4102f4aeb0Sopenharmony_ci    EGL_EXT_platform_base specification.
4202f4aeb0Sopenharmony_ci
4302f4aeb0Sopenharmony_ciOverview
4402f4aeb0Sopenharmony_ci
4502f4aeb0Sopenharmony_ci    This extension defines how to create EGL resources from native Wayland
4602f4aeb0Sopenharmony_ci    resources using the functions defined by EGL_EXT_platform_base.
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 eglGetPlatformDisplayEXT:
5902f4aeb0Sopenharmony_ci
6002f4aeb0Sopenharmony_ci        EGL_PLATFORM_WAYLAND_EXT                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    eglGetPlatformDisplayEXT with <platform> set to EGL_PLATFORM_WAYLAND_EXT.  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    eglCreatePlatformWindowSurfaceEXT 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 eglCreatePlatformPixmapSurfaceEXT with a <dpy>
8502f4aeb0Sopenharmony_ci    that belongs to Wayland. Any such call fails and generates
8602f4aeb0Sopenharmony_ci    EGL_BAD_PARAMETER.
8702f4aeb0Sopenharmony_ci
8802f4aeb0Sopenharmony_ciIssues
8902f4aeb0Sopenharmony_ci
9002f4aeb0Sopenharmony_ci    1. Should this extension permit EGL_DEFAULT_DISPLAY as input to
9102f4aeb0Sopenharmony_ci       eglGetPlatformDisplayEXT()?
9202f4aeb0Sopenharmony_ci
9302f4aeb0Sopenharmony_ci       RESOLUTION: Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplayEXT
9402f4aeb0Sopenharmony_ci       returns a display backed by the default Wayland display.
9502f4aeb0Sopenharmony_ci
9602f4aeb0Sopenharmony_ci    2. Should this extension support creation EGLPixmap resources from Wayland
9702f4aeb0Sopenharmony_ci       pixmaps?
9802f4aeb0Sopenharmony_ci
9902f4aeb0Sopenharmony_ci       RESOLVED. No. Wayland has no pixmap type.
10002f4aeb0Sopenharmony_ci
10102f4aeb0Sopenharmony_ci    3. Should the extension namespace be EXT or MESA?
10202f4aeb0Sopenharmony_ci    
10302f4aeb0Sopenharmony_ci       The only shipping EGL implementation today (2013-04-26) that supports
10402f4aeb0Sopenharmony_ci       Wayland is Mesa. However, perhaps the extension should reside in the
10502f4aeb0Sopenharmony_ci       EXT namespace in expectation that other vendors will also begin
10602f4aeb0Sopenharmony_ci       supporting Wayland.
10702f4aeb0Sopenharmony_ci    
10802f4aeb0Sopenharmony_ci       RESOLVED. Use the EXT namespace because other vendors have expressed
10902f4aeb0Sopenharmony_ci       interest in Wayland.
11002f4aeb0Sopenharmony_ci
11102f4aeb0Sopenharmony_ciRevision History
11202f4aeb0Sopenharmony_ci
11302f4aeb0Sopenharmony_ci    Version 4, 2014-03-10(Chad Versace)
11402f4aeb0Sopenharmony_ci        - Change resolution of issue #1 from "no" to "yes". Now
11502f4aeb0Sopenharmony_ci          eglGetPlatformDisplayEXT accepts EGL_DEFAULT_DISPLAY for Wayland.
11602f4aeb0Sopenharmony_ci        - Explain in more detail how EGL connects to the default Wayland
11702f4aeb0Sopenharmony_ci          display.
11802f4aeb0Sopenharmony_ci
11902f4aeb0Sopenharmony_ci    Version 3, 2013-10-16 (Chad Versace)
12002f4aeb0Sopenharmony_ci        - Resolve issue #3 to use EXT namespace.
12102f4aeb0Sopenharmony_ci
12202f4aeb0Sopenharmony_ci    Version 2, 2013-09-12 (Chad Versace)
12302f4aeb0Sopenharmony_ci        - Update to wording of version 7 of EGL_EXT_platform_base spec.
12402f4aeb0Sopenharmony_ci        - Add section "Extension Type".
12502f4aeb0Sopenharmony_ci        - Rephrase the discussion of how to create a Wayland EGLDisplay
12602f4aeb0Sopenharmony_ci          to follow the analogous discussion in the published
12702f4aeb0Sopenharmony_ci          EGL_EXT_platform_x11 spec.
12802f4aeb0Sopenharmony_ci        - Change resolution of issue 1 from yes to no, because of likely type
12902f4aeb0Sopenharmony_ci          mismatch between EGL_DEFAULT_DISPLAY_TYPE and void*.
13002f4aeb0Sopenharmony_ci
13102f4aeb0Sopenharmony_ci    Version 1, 2013-04-26 (Chad Versace)
13202f4aeb0Sopenharmony_ci        - Initial draft
13302f4aeb0Sopenharmony_ci
13402f4aeb0Sopenharmony_ci# vim:ai:et:sw=4:ts=4:
13502f4aeb0Sopenharmony_ci
136