Name

    CHROMIUM_image

Name Strings

    GL_CHROMIUM_image

Version

    Last Modifed Date: May 13, 2015

Dependencies

    OpenGL ES 2.0 is required.

    EXT_texture_format_BGRA8888 affects the definition of this extension.
    ARB_texture_rg affects the definition of this extension.

Overview

    This extension defines a new resource type that is suitable for
    sharing 2D arrays of image data between client APIs.

Issues

    None

New Tokens

    None

New Procedures and Functions

  GLuint CreateImageCHROMIUM(ClientBuffer buffer,
                             GLsizei width,
                             GLsizei height,
                             GLenum internalformat)

    Create an image from <buffer> with width equal to <width> and
    height equal to <height> and format equal to <internalformat>.

    Returns a unique identifier for the image that could be used in
    subsequent operations.

    INVALID_VALUE is generated if <width> or <height> is nonpositive.

    INVALID_VALUE is generated if <internalformat> is not one of
    RED, RGB, RGBA, BGRA_EXT, ATC_RGB_AMD, ATC_RGBA_INTERPOLATED_ALPHA_AMD,
    COMPRESSED_RGB_S3TC_DXT1_EXT, COMPRESSED_RGBA_S3TC_DXT5_EXT or
    ETC1_RGB8_OES.

  void DestroyImageCHROMIUM(GLuint image_id)

    Frees the image previously created by a call to CreateImageCHROMIUM.

    INVALID_OPERATION is generated if <image_id> is not a valid image id.

  void BindTexImage2DCHROMIUM(GLenum target, GLint image_id)

    Binds the texture object currently bound to <target> to the image
    <image_id> previously created by a call to CreateImageCHROMIUM.

    INVALID_OPERATION is generated if no texture is bound to <target>.

    INVALID_OPERATION is generated if <image_id> is not a valid image id.

  void BindTexImage2DWithInternalformatCHROMIUM(GLenum target,
                                                GLenum internalformat,
                                                GLint image_id)

    Behaves exactly like BindTexImage2DCHROMIUM, but forces the
    texture to use the specified <internalformat> rather than the
    default one. This function is provided solely as a workaround for
    driver bugs on some platforms. BindTexImage2DCHROMIUM should be
    used by almost all users.

  void ReleaseTexImage2DCHROMIUM(GLenum target, GLint image_id)

    Unbinds the texture object bound to <target> from the image
    <image_id> previously created by a call to CreateImageCHROMIUM. If
    the texture is not currently bound to the image, has no effect,
    though may still generate errors.

    INVALID_OPERATION is generated if no texture is bound to <target>.

    INVALID_OPERATION is generated if <image_id> is not a valid image id.

Dependencies on EXT_texture_format_BGRA8888

    If EXT_texture_format_BGRA8888 is not supported:
     * delete any reference to the BGRA_EXT format.

Dependencies on ARB_texture_rg

    If ARB_texture_rg is not supported:
     * delete any reference to the RED format.

Dependencies on AMD_compressed_ATC_texture

    If AMD_compressed_ATC_texture is not supported:
     * delete any reference to the ATC_RGB_AMD and
       ATC_RGBA_INTERPOLATED_ALPHA_AMD formats.

Dependencies on EXT_texture_compression_s3tc

    If EXT_texture_compression_s3tc is not supported:
     * delete any reference to the COMPRESSED_RGB_S3TC_DXT1_EXT and
       COMPRESSED_RGBA_S3TC_DXT5_EXT formats.

Dependencies on OES_compressed_ETC1_RGB8_texture

    If OES_compressed_ETC1_RGB8_texture is not supported:
     * delete any reference to the ETC1_RGB8_OES format.

Errors

    None.

New State

    None.

Revision History

    5/9/2013    Documented the extension
    4/30/2014   Moved usage flag to creation function.
    10/7/2014   Remove map/unmap API.
    4/6/2015    Add BGRA_EXT format.
    2/7/2015    Add R8 format.
    5/13/2015   Add compressed formats.
    11/5/2015   Change R8 format to RED.
