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 argument of eglGetPlatformDisplayEXT: EGL_PLATFORM_ANGLE_ANGLE 0x3202 Accepted as an attribute name in the 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 set to EGL_PLATFORM_ANGLE_ANGLE. The parameter is of type EGLNativeDisplayType. If is EGL_DEFAULT_DISPLAY a default display is returned. Multiple calls with the same will return the same EGLDisplay handle. If 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 , if any. If no is specified, the value of EGL_PLATFORM_ANGLE_TYPE_ANGLE is implicitly set to EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE. If no 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 is specified, the value of EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED is implicitly set to EGL_DONT_CARE. If no 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 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 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.