Name

    KHR_platform_android

Name Strings

    EGL_KHR_platform_android

Contributors

    Jesse Hall <jessehall 'at' google.com>
    The contributors to the EGL_KHR_platform_gbm extension, which this
        extension was based on.

Contacts

    Jesse Hall <jessehall 'at' google.com>

Status

    Complete.
    Approved by the EGL Working Group on January 31, 2014.
    Ratified by the Khronos Board of Promoters on March 14, 2014. 

Version

    Version 1, 2014/01/27

Number

    EGL Extension #68

Extension Type

    EGL client extension

Dependencies

    EGL 1.5 is required.

    This extension is written against the EGL 1.5 Specification (draft
    20140122).

Overview

    This extension defines how to create EGL resources from native Android
    resources using the EGL 1.5 platform functionality.

New Types

    None

New Procedures and Functions

    None

New Tokens

    Accepted as the <platform> argument of eglGetPlatformDisplay:

        EGL_PLATFORM_ANDROID_KHR                0x3141

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 for the Android device, call eglGetPlatformDisplay
    with <platform> set to EGL_PLATFORM_ANDROID_KHR and with <native_display>
    set to EGL_DEFAULT_DISPLAY.

    For each EGLConfig that belongs to the Android platform, the
    EGL_NATIVE_VISUAL_ID attribute is an Android window format, such as
    WINDOW_FORMAT_RGBA_8888.

    To obtain a rendering surface from an Android native window, call
    eglCreatePlatformWindowSurface with a <dpy> that belongs to the Android
    platform and a <native_window> that points to a ANativeWindow.

    It is not valid to call eglCreatePlatformPixmapSurface with a <dpy> that
    belongs to the Android platform. Any such call fails and generates
    an EGL_BAD_PARAMETER error.

Issues

    1. Should this extension even exist? Android devices only support one
       window system.

       RESOLUTION: Yes. Although the Android Open Source Project master branch 
       only supports one window system, customized versions of Android could
       extend that to support other window systems. More importantly, having a
       platform extension allows EGL 1.5 applications to use the platform and
       non-platform Get*Display and Create*WindowSurface calls interchangeably. As a user of the API it would be confusing if that didn't work.

Revision History

    Version 1, 2014/01/27 (Jesse Hall)
        - Initial draft.
