• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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