Mesa (master): i965: Refactor y-flipping coordinate transform.

Kenneth Graunke kwg at kemper.freedesktop.org
Fri Oct 13 04:44:56 UTC 2017


Module: Mesa
Branch: master
Commit: acd3e073e4f6d611ab14c5b4d2a8e8d5704f5809
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=acd3e073e4f6d611ab14c5b4d2a8e8d5704f5809

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed Oct 11 20:33:25 2017 -0700

i965: Refactor y-flipping coordinate transform.

I want to reuse it for the BLORP download path.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>

---

 src/mesa/drivers/dri/i965/brw_blorp.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c
index 835dbd2af3..2bfeb80668 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp.c
+++ b/src/mesa/drivers/dri/i965/brw_blorp.c
@@ -601,6 +601,14 @@ try_blorp_blit(struct brw_context *brw,
    return true;
 }
 
+static void
+apply_y_flip(int *y0, int *y1, int height)
+{
+   int tmp = height - *y0;
+   *y0 = height - *y1;
+   *y1 = tmp;
+}
+
 bool
 brw_blorp_copytexsubimage(struct brw_context *brw,
                           struct gl_renderbuffer *src_rb,
@@ -672,13 +680,9 @@ brw_blorp_copytexsubimage(struct brw_context *brw,
    /* Account for the fact that in the system framebuffer, the origin is at
     * the lower left.
     */
-   bool mirror_y = false;
-   if (_mesa_is_winsys_fbo(ctx->ReadBuffer)) {
-      GLint tmp = src_rb->Height - srcY0;
-      srcY0 = src_rb->Height - srcY1;
-      srcY1 = tmp;
-      mirror_y = true;
-   }
+   bool mirror_y = _mesa_is_winsys_fbo(ctx->ReadBuffer);
+   if (mirror_y)
+      apply_y_flip(&srcY0, &srcY1, src_rb->Height);
 
    /* Account for face selection and texture view MinLayer */
    int dst_slice = slice + dst_image->TexObject->MinLayer + dst_image->Face;




More information about the mesa-commit mailing list