Name

    ANGLE_create_context_webgl_compatibility

Name Strings

    EGL_ANGLE_create_context_webgl_compatibility

Contributors

    Geoff Lang

Contacts

    Geoff Lang (geofflang 'at' google.com)

Status

    Draft

Version

    Version 1, September 16, 2016

Number

    EGL Extension #??

Dependencies

    Requires EGL 1.4.

    Written against the EGL 1.4 specification.

    This spec interacts with GL_ANGLE_webgl_compatibility (or equivalent)
    extension.

Overview

    This extension allows the creation of an OpenGL or OpenGL ES context that
    provides additional WebGL features and validation.

New Types

    None

New Procedures and Functions

    None

New Tokens

    Accepted as an attribute name in the <*attrib_list> argument to
    eglCreateContext:

        EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE 0x33AC

Additions to the EGL 1.4 Specification

    Add the following to section 3.7.1 "Creating Rendering Contexts":

    EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE indicates whether a WebGL mode should
    be enabled for the OpenGL ES context.  In this mode, the OpenGL ES context
    will provide additional features and validation to be compatible with the
    WebGL specification. The default value of
    EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE is EGL_FALSE.

Errors

    None

New State

    None

Conformance Tests

    TBD

Issues

    None

Revision History

    Rev.    Date         Author     Changes
    ----  -------------  ---------  ----------------------------------------
      1   Sept 16, 2016  geofflang  Initial version
