Name

    ANGLE_webgl_compatibility

Name Strings

    GL_ANGLE_webgl_compatibility

Contributors

    Geoff Lang

Contact

    Geoff Lang (geofflang 'at' google.com)

Notice

    Copyright (c) 2016 The Khronos Group Inc. Copyright terms at
        http://www.khronos.org/registry/speccopyright.html

Status

    Draft

Version

    Version 1, September 16, 2016

Number

    OpenGL ES Extension #??

Dependencies

    Requires OpenGL ES 2.0

    Written against the OpenGL ES 2.0 specification.

    Interacts with EGL_ANGLE_create_context_webgl_compatibility (or equivalent)
    extension.

Overview

    With this extension enabled, the OpenGL ES context will have additional
    features and validation to be compatible with the WebGL specification.

New Procedures and Functions

    boolean EnableExtension(const char *name)

New Tokens

    None

Additions to the OpenGL ES Specification

    The command

       boolean EnableExtension(const char *name)

    enables the OpenGL ES extension named <name>.  Returns true on success and
    false otherwise.  If the extension does not support being enabled or <name>
    does not name a valid OpenGL ES extension, INVALID_OPERATION is generated.
    If the extension is valid but is not supported by the context, no error is
    generated but false is returned.

    Additional validation will be performed according to the the sections of
    the WebGL specification entitled "Differences Between WebGL and OpenGL ES
    2.0" and "Differences Between WebGL and OpenGL ES 3.0".

New State

    None

Conformance Tests

    TBD

Issues

    (1) How can the user determine which extensions can be enabled without
        potentially generating errors?

      This can be solved by:
      a) Never generate an error in EnableExtensions, simply return false when
         the extension is not recognized or cannot be enabled.
      b) Add another entry point to query all extensions that the context
         supports enabling.

Revision History

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