Name

    ANDROID_GLES_layers

Name Strings

    EGL_ANDROID_GLES_layers

Contributors

    Cody Northrop

Contact

    Cody Northrop, Google LLC (cnorthrop 'at' google.com)

Status

    Draft

Version

    Version 1, March 3, 2019

Number

    EGL Extension #132

Extension Type

    EGL client extension

Dependencies

    Requires EGL 1.5 or EGL_EXT_client_extensions

Overview

    This extension indicates the EGL loader supports GLES layering on Android.
    It does not add any requirements to drivers or hardware.

    See frameworks/native/opengl/libs/EGL/GLES_layers.md in Android for
    more information.

New Types

    None

New Procedures and Functions

    None

New Tokens

    None

Issues

    None

Revision History

#1 (Cody Northrop, March 3, 2019)
    - Initial draft.
