Name

    MESA_framebuffer_flip_y

Name Strings

    GL_MESA_framebuffer_flip_y

Contact

    Fritz Koenig <frkoenig@google.com>

Contributors

    Fritz Koenig, Google
    Kristian Høgsberg, Google
    Chad Versace, Google
    Heinrich Fink, DAQRI

Status

    Proposal

Version

    Version 3, August, 2019

Number

    OpenGL Extension #540
    OpenGL ES Extension #302

Dependencies

    Requires OpenGL ES 3.0, OpenGL 4.3, or ARB_framebuffer_no_attachments.

Overview

    This extension defines a new framebuffer parameter,
    GL_FRAMEBUFFER_FLIP_Y_MESA, that changes the behavior of the reads and
    writes to the framebuffer attachment points. When GL_FRAMEBUFFER_FLIP_Y_MESA
    is GL_TRUE, render commands and pixel transfer operations access the
    backing store of each attachment point with an y-inverted coordinate
    system. This y-inversion is relative to the coordinate system set when
    GL_FRAMEBUFFER_FLIP_Y_MESA is GL_FALSE.

    Access through TexSubImage2D and similar calls will notice the effect of
    the flip when they are not attached to framebuffer objects because
    GL_FRAMEBUFFER_FLIP_Y_MESA is associated with the framebuffer object and
    not the attachment points.

IP Status

    None

Issues

    None

New Procedures and Functions

    OpenGL ES must provide the following functions:

    void FramebufferParameteriMESA(enum target, enum pname, int param);
    void GetFramebufferParameterivMESA(enum target, enum pname, int *params);

New Types

    None

New Tokens

    Accepted by the <pname> argument of FramebufferParameteriMESA and
    GetFramebufferParameterivMESA:

        GL_FRAMEBUFFER_FLIP_Y_MESA                      0x8BBB

Interactions with OpenGL 4.3, OpenGL ES 3.1, ARB_framebuffer_no_attachments
and any other versions and extensions that provide the entry points
FramebufferParameteri and GetFramebufferParameteriv

        Token GL_FRAMEBUFFER_FLIP_Y_MESA is accepted as the <pname> argument of
        FramebufferParameteri and GetFramebufferParameteriv.

Errors

    An INVALID_OPERATION error is generated by GetFramebufferParameteriv or
    GetFramebufferParameterivMESA if the default framebuffer is bound
    to <target> and <pname> is GL_FRAMEBUFFER_FLIP_Y_MESA.





Revision History

    Version 3, August, 2019
        Allow OpenGL ES 3.0 to implement by adding functions
        FramebufferParameteriMESA and GetFramebufferParameterivMESA which were
        previously only available in OpenGL ES 3.1.

    Version 2, June, 2019
        Enable extension for OpenGL 4.3 and beyond

    Version 1, June, 2018
        Initial draft (Fritz Koenig)
