MESA_framebuffer_flip_y

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)