Name

    CHROMIUM_set_draw_rectangle

Name Strings

    GL_CHROMIUM_set_draw_rectangle

Version

    Last Modified Date: Jan 23, 2017

Dependencies

    OpenGL ES 2.0 is required.

Overview

    This extension allows a client to indicate what area is going to be drawn to.

Issues

    None

New Tokens

    None

New Procedures and Functions

    The command

        glSetDrawRectangleCHROMIUM (GLint x, GLint y, GLint width, GLint height);

    indicates that the client will fill in the entire rectangle specified of
    the default framebuffer. This command can only be specified once per swap.
    If the extension is supported, this function must be called before any
    drawing to the default framebuffer. The contents of the framebuffer are
    undefined after this command and must be filled in completely before a
    swap happens. Rendering outside this rectangle causes undefined behavior,
    and the scissor test must be enabled when drawing.

    For the first call to this, and the first call after a resize, the
    rectangle must be equal to the size of the entire buffer.

Errors

    None.

New State

    None.
