Name

    CHROMIUM_schedule_ca_layer

Name Strings

    GL_CHROMIUM_schedule_ca_layer

Version

    Last Modified Date: December 16, 2015

Dependencies

    OpenGL ES 2.0 is required.

Overview

    This extension allows a client to request a texture be presented as a
    CoreAnimation layer. The expectation is that all the CALayers scheduled
    since the last call to glSwapBuffers or glPostSubBufferCHROMIUM are
    displayed atomically at the time of the next call to swap buffers. Scheduled
    CALayers are not stateful and need to be rescheduled after the buffers were
    swapped.

Issues

    None

New Tokens

    Accepted by the <edge_aa_mask> parameter of glScheduleCALayerCHROMIUM:
    GL_CA_LAYER_EDGE_LEFT_CHROMIUM                    0x01
    GL_CA_LAYER_EDGE_RIGHT_CHROMIUM                   0x02
    GL_CA_LAYER_EDGE_BOTTOM_CHROMIUM                  0x04
    GL_CA_LAYER_EDGE_TOP_CHROMIUM                     0x08

New Procedures and Functions

    The command

        glScheduleCALayerCHROMIUM(GLuint contents_texture_id,
                                  const GLfloat* contents_rect,
                                  GLfloat opacity,
                                  GLuint background_color,
                                  GLuint edge_aa_mask,
                                  const GLfloat* bounds_rect,
                                  GLboolean is_clipped,
                                  const GLfloat* clip_rect,
                                  const GLfloat* transform);

    Set the CALayer parameters to be presented at the time of the next call to
    swap buffers. The order of the calls schedule CALayers determines their
    back-to-front presentation order.
    <contents_texture_id> is the texture to be presented. If zero, then the
    CALayer will be a solid color.
    <contents_rect> contains four values indicating the x, y, width, and height
    of the sub-rectangle to display from the texture specified in
    <contents_texture_id>, in normalized coordinates.
    <opacity> specifies the opacity of the CALayer.
    <background_color> specifies the background color of the CALayer, as a
    32-bit ARGB value.
    <edge_aa_mask> is a bitfield specifying which of the edges of the layer are
    to have anti-aliasing.
    <bounds_rect> contains four values indicating the x, y, width, and height of
    the layer in pixels.
    <is_clipped> indicates if the layer should be clipped.
    <clip_rect> contains four values indicating the x, y, width, and height of
    the rectangle to clip the layer to, if it is to be clipped.
    <transform> contains sixteen values indicating the row major order 4x4
    transformation matrix to apply to the CALayer.

Errors

    None.

New State

    None.

Revision History

    12/16/2015   Add clipping and edge anti-aliasing.
    11/7/2015    Initial checkin

