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