Name

    CHROMIUM_color_buffer_float_rgb

Name Strings

    GL_CHROMIUM_color_buffer_float_rgb

Version

    Last Modifed Date: February 7, 2014

Dependencies

    This extension is written against the OpenGL ES 2.0 specification.

    OpenGL ES 2.0 is required.

    OES_texture_float is required.

Overview

    This extension implements a subset of ARB_color_buffer_float on top of
    OpenGL ES 2.0.

    This extension enables rendering to floating point RGB textures. When
    this extension is enabled:

    * The 32-bit floating point type GL_RGB32F becomes available as a
      color-renderable internal format. Textures created with type = FLOAT,
      and internal format GL_RGB32F, can be attached to framebuffer object
      color attachments for rendering.

    * GL_RGB / GL_RGB32F becomes an allowable format / internalformat parameter
      pair for TexImage2D. The restriction in section 3.7.1 of the OpenGL ES
      2.0 spec that the internalformat parameter and format parameter of
      TexImage2D must match is lifted for this case.

    Floating point RGB textures may still be created also with the unsized
    GL_RGB internal format, but whether such textures are renderable is not
    guaranteed.

New Tokens

    Accepted by the <internalformat> parameter of TexImage2D:

    GL_RGB32F       0x8815

New Procedures and Functions

    None.

Errors

    None.

New State

    None.

Revision History

    2/7/2014    Documented the extension

