1b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangName
2b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
3b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    ANGLE_platform_angle
4b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
5b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangName Strings
6b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
7b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_ANGLE_platform_angle
8b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
9b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangContributors
10b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
11b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Scott Graham, Google
12b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Shannon Woods, Google
13b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Geoff Lang, Google
14b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
15b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangContacts
16b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
17b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Scott Graham, Google (scottmg 'at' google 'dot' com)
18b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
19b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangStatus
20b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
21b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Draft
22b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
23b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangVersion
24b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
25b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Version 2, 2014-06-05
26b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
27b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangNumber
28b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
29b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL Extension XXX
30b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
31b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangExtension Type
32b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
33b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL client extension
34b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
35b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangDependencies
36b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
37b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Requires EGL_EXT_client_extensions to query its existence without
38b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    a display.
39b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
40b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Requires EGL_EXT_platform_base.
41b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
42b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    This extension is written against the wording of version 9 of the
43b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_EXT_platform_base specification.
44b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
45b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    ANGLE_platform_angle_d3d affects the definition of this extension.
46b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    ANGLE_platform_angle_opengl affects the definition of this extension.
47b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
48b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangOverview
49b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
50b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    This extension defines how to create EGL resources from resources using
51b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    the functions defined by EGL_EXT_platform_base.
52b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
53b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangNew Types
54b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
55b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    None
56b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
57b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangNew Procedures and Functions
58b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
59b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    None
60b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
61b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangNew Tokens
62b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
63b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Accepted as the <platform> argument of eglGetPlatformDisplayEXT:
64b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
65b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        EGL_PLATFORM_ANGLE_ANGLE                           0x3201
66b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
67b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Accepted as an attribute name in the <attrib_list> argument of
68b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    eglGetPlatformDisplayEXT:
69b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
70b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        EGL_PLATFORM_ANGLE_TYPE_ANGLE                      0x3202
71b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
72b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Accepted as values for the EGL_PLATFORM_ANGLE_TYPE_ANGLE attribute:
73b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
74b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE              0x3203
75b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
76b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangAdditions to the EGL Specification
77b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
78b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    None.
79b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
80b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangNew Behavior
81b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
82b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    To determine if the EGL implementation supports this extension, clients
83b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
84b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
85b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    To obtain an EGLDisplay backed by a ANGLE display, call
86b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    eglGetPlatformDisplayEXT with <platform> set to EGL_PLATFORM_ANGLE_ANGLE.
87b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
88b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    The <native_display> parameter is of type EGLNativeDisplayType. If
89b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    <native_display> is EGL_DEFAULT_DISPLAY a default display is returned.
90b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Multiple calls with the same <native_display> will return the same
91b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGLDisplay handle. The value of EGL_PLATFORM_ANGLE_TYPE_ANGLE, if any,
92b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    is ignored if there was previously a EGLDisplay successfully created for a
93b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    given value of EGLNativeDisplayType.
94b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
95b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    If no <attrib_list> is specified, the value of
96b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_PLATFORM_ANGLE_TYPE_ANGLE is implicitly set to
97b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE. Otherwise, the value of
98b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_PLATFORM_ANGLE_TYPE_ANGLE should be:
99b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang      - EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE for an implementation dependent
100b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        display, equivalent to using a <native_display> of EGL_DEFAULT_DISPLAY,
101b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang      - EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE for a D3D9 display which translates
102b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        to OpenGL ES,
103b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang      - EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE for a D3D11 display which
104b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        translates to OpenGL ES,
105b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang      - EGL_PLATFORM_ANGLE_TYPE_D3D11_WARP_ANGLE a D3D11 WARP display which
106b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        translates to OpenGL ES,
107b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang      - EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE for an OpenGL display which
108b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        translates to OpenGL ES,
109b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang      - EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE for a native OpenGL ES display
110b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
111b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    If no display matching the requested <native_display> or of the type
112b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    requested by the value of EGL_PLATFORM_ANGLE_TYPE_ANGLE is available,
113b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_NO_DISPLAY is returned. No error condition is raised in this case.
114b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
115b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangDependencies on ANGLE_platform_angle_d3d
116b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
117b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    The EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE,
118b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE and
119b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_PLATFORM_ANGLE_TYPE_D3D11_WARP_ANGLE <native_display> parameters to
120b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    eglGetPlatformDisplayEXT are only valid if ANGLE_platform_angle_d3d is
121b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    supported.
122b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
123b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangDependencies on ANGLE_platform_angle_opengl
124b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
125b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    The EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE and
126b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE <native_display> parameters to
127b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    eglGetPlatformDisplayEXT are only valid if ANGLE_platform_angle_opengl is
128b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    supported.
129b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
130b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangIssues
131b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
132b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    None
133b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
134b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff LangRevision History
135b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang
136b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Version 1, 2014-02-04 (Scott Graham)
137b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        - Initial draft
138b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang    Version 2, 2014-06-05 (Geoff Lang)
139b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        - Rename extension from ANGLE_platform_angle_d3d to
140b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang          ANGLE_platform_angle.
141b9f240b1c3fc25f4497a75d1e47c09bf86875328Geoff Lang        - Add sub-extensions for specific platforms.
142