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 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                           0x3201

    Accepted as an attribute name in the <attrib_list> argument of
    eglGetPlatformDisplayEXT:

        EGL_PLATFORM_ANGLE_TYPE_ANGLE                      0x3202
        EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE         0x3203
        EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE         0x3204

    Accepted as values for the EGL_PLATFORM_ANGLE_TYPE_ANGLE attribute:

        EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE              0x3205

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. 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 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.

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.
    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.
