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