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