mesa: GL_MESA_framebuffer_flip_y extension [v4]

Adds an extension to glFramebufferParameteri
that will specify if the framebuffer is vertically
flipped. Historically system framebuffers are
vertically flipped and user framebuffers are not.
Checking to see the state was done by looking at
the name field.  This adds an explicit field.

v2:
  * updated spec language [for chadv]
  * correctly specifying ES 3.1 [for chadv]
  * refactor access to rb->Name [for jason]
  * handle GetFramebufferParameteriv [for chadv]
v3:
  * correct _mesa_GetMultisamplefv [for kusmabite]
v4:
  * update spec language [for chadv]
  * s/GLboolean/bool/g [for chadv]
  * s/InvertedY/FlipY/g [for chadv]
  * s/inverted_y/flip_y/g [for chadv]
  * assert changes [for chadv]

Reviewed-by: Chad Versace <chadversary@chromium.org>
This commit is contained in:
Fritz Koenig
2018-07-23 10:10:54 -07:00
committed by Chad Versace
parent 7953399e59
commit 318c265160
30 changed files with 235 additions and 56 deletions

View File

@@ -573,7 +573,8 @@ osmesa_MapRenderbuffer(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint x, GLuint y, GLuint w, GLuint h,
GLbitfield mode,
GLubyte **mapOut, GLint *rowStrideOut)
GLubyte **mapOut, GLint *rowStrideOut,
bool flip_y)
{
const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
@@ -601,7 +602,7 @@ osmesa_MapRenderbuffer(struct gl_context *ctx,
}
else {
_swrast_map_soft_renderbuffer(ctx, rb, x, y, w, h, mode,
mapOut, rowStrideOut);
mapOut, rowStrideOut, flip_y);
}
}