1Name 2 3 EXT_platform_wayland 4 5Name Strings 6 7 EGL_EXT_platform_wayland 8 9Contributors 10 11 Chad Versace <chad.versace@intel.com> 12 13Contacts 14 15 Chad Versace <chad.versace@intel.com> 16 17Status 18 19 Complete 20 21Version 22 23 Version 4, 2014-03-10 24 25Number 26 27 EGL Extension #63 28 29Extension Type 30 31 EGL client extension 32 33Dependencies 34 35 Requires EGL_EXT_client_extensions to query its existence without 36 a display. 37 38 Requires EGL_EXT_platform_base. 39 40 This extension is written against the wording of version 7 of the 41 EGL_EXT_platform_base specification. 42 43Overview 44 45 This extension defines how to create EGL resources from native Wayland 46 resources using the functions defined by EGL_EXT_platform_base. 47 48New Types 49 50 None 51 52New Procedures and Functions 53 54 None 55 56New Tokens 57 58 Accepted as the <platform> argument of eglGetPlatformDisplayEXT: 59 60 EGL_PLATFORM_WAYLAND_EXT 0x31D8 61 62Additions to the EGL Specification 63 64 None. 65 66New Behavior 67 68 To determine if the EGL implementation supports this extension, clients 69 should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY. 70 71 To obtain an EGLDisplay backed by a Wayland display, call 72 eglGetPlatformDisplayEXT with <platform> set to EGL_PLATFORM_WAYLAND_EXT. The 73 <native_display> parameter specifies the Wayland display to use and must 74 either point to a `struct wl_display` or be EGL_DEFAULT_DISPLAY. If 75 <native_display> is EGL_DEFAULT_DISPLAY, then EGL will create a new 76 wl_display structure by connecting to the default Wayland socket. The 77 manual page wl_display_connect(3) defines the location of the default 78 Wayland socket. 79 80 To obtain an on-screen rendering surface from a Wayland window, call 81 eglCreatePlatformWindowSurfaceEXT with a <dpy> that belongs to Wayland and 82 a <native_window> that points to a `struct wl_egl_surface`. 83 84 It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a <dpy> 85 that belongs to Wayland. Any such call fails and generates 86 EGL_BAD_PARAMETER. 87 88Issues 89 90 1. Should this extension permit EGL_DEFAULT_DISPLAY as input to 91 eglGetPlatformDisplayEXT()? 92 93 RESOLUTION: Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplayEXT 94 returns a display backed by the default Wayland display. 95 96 2. Should this extension support creation EGLPixmap resources from Wayland 97 pixmaps? 98 99 RESOLVED. No. Wayland has no pixmap type. 100 101 3. Should the extension namespace be EXT or MESA? 102 103 The only shipping EGL implementation today (2013-04-26) that supports 104 Wayland is Mesa. However, perhaps the extension should reside in the 105 EXT namespace in expectation that other vendors will also begin 106 supporting Wayland. 107 108 RESOLVED. Use the EXT namespace because other vendors have expressed 109 interest in Wayland. 110 111Revision History 112 113 Version 4, 2014-03-10(Chad Versace) 114 - Change resolution of issue #1 from "no" to "yes". Now 115 eglGetPlatformDisplayEXT accepts EGL_DEFAULT_DISPLAY for Wayland. 116 - Explain in more detail how EGL connects to the default Wayland 117 display. 118 119 Version 3, 2013-10-16 (Chad Versace) 120 - Resolve issue #3 to use EXT namespace. 121 122 Version 2, 2013-09-12 (Chad Versace) 123 - Update to wording of version 7 of EGL_EXT_platform_base spec. 124 - Add section "Extension Type". 125 - Rephrase the discussion of how to create a Wayland EGLDisplay 126 to follow the analogous discussion in the published 127 EGL_EXT_platform_x11 spec. 128 - Change resolution of issue 1 from yes to no, because of likely type 129 mismatch between EGL_DEFAULT_DISPLAY_TYPE and void*. 130 131 Version 1, 2013-04-26 (Chad Versace) 132 - Initial draft 133 134# vim:ai:et:sw=4:ts=4: 135 136