Name

    ANGLE_platform_angle_device_context_volatile_cgl

Name Strings

    EGL_ANGLE_platform_angle_device_context_volatile_cgl

Contributors
    Kimmo Kinnunen, Apple
    Kenneth Russell, Google

Contacts
    Kimmo Kinnunen, Apple (kkinnunen 'at' apple 'dot' org)
    Kenneth Russell, Google (kbr 'at' chromium 'dot' org)

Status

    Draft

Version

    Version 1, 2020-09-30

Number

    EGL Extension XXX

Extension Type

    EGL client extension

Dependencies

    Requires ANGLE_platform_angle.

Overview

    This extension allows the client to request a Display that internally
    is able to function even if client changes current CGL context of the
    thread. Requesting a volatile device context contexts may impact performance.
    The extension is useful for using EGL in a library that cannot guarantee
    which platform APIs its clients will use.

New Types

    None

New Procedures and Functions

    None

New Tokens

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

        EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_CGL_ANGLE    0x34A3

Additions to the EGL Specification

    None.

New Behavior

    To request a display that internally supports the feature,
    use the attribute EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_CGL_ANGLE.
    EGL_TRUE enables volatile CGL device context and EGL_FALSE disables it.
    Any value other than these will result in an error.
    The default value for EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_CGL_ANGLE
    is EGL_FALSE.

    When the device context of the display is set as volatile CGL, then
    each EGL function will change the current CGL context state accordingly
    to use the internal device context, if needed. If the internal device context
    is not using CGL, the property has no effect.

    Calls to OpenGL or OpenGL ES functions will not ensure the underlying device
    context is correct. If the state of the current CGL context is unknown,
    clients should call MakeCurrent to ensure that the internal device
    context is made current.

Issues

    None

Revision History

    Version 1, 2020-09-30 (Kimmo Kinnunen)
      - Initial draft
