зеркало из https://github.com/AvaloniaUI/angle.git
180 строки
6.1 KiB
Plaintext
180 строки
6.1 KiB
Plaintext
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 5, 2017-12-28
|
|
|
|
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 native 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 0x3202
|
|
|
|
Accepted as an attribute name in the <attrib_list> argument of
|
|
eglGetPlatformDisplayEXT:
|
|
|
|
EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3203
|
|
EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE 0x3204
|
|
EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE 0x3205
|
|
EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED 0x3451
|
|
EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE 0x348F
|
|
|
|
Accepted as values for the EGL_PLATFORM_ANGLE_TYPE_ANGLE attribute:
|
|
|
|
EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE 0x3206
|
|
|
|
Accepted as values for the EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE attribute:
|
|
|
|
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE 0x320A
|
|
EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE 0x345E
|
|
|
|
Accepted as values for the EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE
|
|
attribute:
|
|
|
|
EGL_PLATFORM_X11_EXT 0x31D5
|
|
EGL_PLATFORM_DEVICE_EXT 0x313F
|
|
EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
|
|
|
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 parameters will return the same EGLDisplay
|
|
handle. If <platform> is set to EGL_PLATFORM_ANGLE_ANGLE and the returned
|
|
display is in an uninitialized state, its attributes are overwritten by
|
|
those provided in the <attrib_list>, if any.
|
|
|
|
If no <attrib_list> is specified, the value of
|
|
EGL_PLATFORM_ANGLE_TYPE_ANGLE is implicitly set to
|
|
EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE.
|
|
|
|
If no <attrib_list> is specified, the values of
|
|
EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE and
|
|
EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE are implicitly set to
|
|
EGL_DONT_CARE.
|
|
|
|
If no <attrib_list> is specified, the value of
|
|
EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED is implicitly set to
|
|
EGL_DONT_CARE.
|
|
|
|
If no <attrib_list> is specified to eglGetPlatformDisplayEXT, the value of
|
|
EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE is implicitly set to
|
|
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE. Otherwise, the value of
|
|
EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE should be:
|
|
- EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE to request a hardware
|
|
accelerated device.
|
|
- EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE to request a no-op driver
|
|
for testing. If unavailable, the implementation will fall back to
|
|
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE.
|
|
|
|
If EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE is set to EGL_DONT_CARE and
|
|
EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE is not set to EGL_DONT_CARE,
|
|
an EGL_BAD_ATTRIBUTE error is generated and EGL_NO_DISPLAY is returned.
|
|
|
|
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.
|
|
|
|
If EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED is specified, it
|
|
controls enabling back-end validation layers. EGL_TRUE enables
|
|
validation and EGL_FALSE disables it. If it is set to EGL_DONT_CARE, the
|
|
default setting depends on the implementation. Any value other than these
|
|
will result in an error.
|
|
|
|
EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE is an additional optional
|
|
attribute that helps ANGLE to identify what native underlaying platform
|
|
it should use. If no display matching the requested type of native platform
|
|
found, EGL_NO_DISPLAY should be returned. if no <attrib_list> is specified
|
|
to eglGetPlatformDisplayEXT, ANGLE is free to make the choice.
|
|
|
|
Issues
|
|
|
|
1) Should the validation layers default to on, off, or no guarantee?
|
|
|
|
Defaulting to off offers some consistency. However, it's customary for
|
|
some applications like ANGLE to turn on debugging features by default
|
|
in Debug builds.
|
|
|
|
RESOLVED: default to implementation-dependent behaviour.
|
|
|
|
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.
|
|
Version 3, 2014-10-20 (Geoff Lang)
|
|
- Add attributes to request specific feature level and context versions.
|
|
- Moved descriptions of platforms to child extension specs.
|
|
Version 4, 2017-07-19 (Jamie Madill)
|
|
- Add a debug layers enabled attribute to control runtime validation.
|
|
Version 5, 2017-12-28 (Jamie Madill)
|
|
- Expose device type selection.
|
|
Version 6, 2020-05-28 (Maksim Sisov)
|
|
- Add EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE attribute.
|