diff options
author | Brian Paul <brianp@vmware.com> | 2016-08-24 08:52:29 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2016-08-25 07:19:35 -0600 |
commit | 2a2dc416b6816ac8914c5f45ac80545d2c09246f (patch) | |
tree | e37447b8b29c767df067efd38c510ccbd61ab87a /src/mesa/drivers/dri/swrast | |
parent | 3ff0b67e1b6b492d5793c1580f4be0c6f58a1bc2 (diff) | |
download | external_mesa3d-2a2dc416b6816ac8914c5f45ac80545d2c09246f.zip external_mesa3d-2a2dc416b6816ac8914c5f45ac80545d2c09246f.tar.gz external_mesa3d-2a2dc416b6816ac8914c5f45ac80545d2c09246f.tar.bz2 |
swrast: fix incorrectly positioned putImage() in swrast driver
Some front buffer rendering was in the wrong position. This included
scissored clears, glDrawPixels and glCopyPixels. The problem was the
y coordinate passed to putImage() didn't match the y coordinate passed
to getImage().
We fix this by setting xrb->map_y to the inverted coordinate in
swrast_map_renderbuffer() which is used later by the putImage() call.
Also pass xrb->map_y to getImage() to be symmetric.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97426
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/mesa/drivers/dri/swrast')
-rw-r--r-- | src/mesa/drivers/dri/swrast/swrast.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index 6d3b00b..0402232 100644 --- a/src/mesa/drivers/dri/swrast/swrast.c +++ b/src/mesa/drivers/dri/swrast/swrast.c @@ -484,14 +484,14 @@ swrast_map_renderbuffer(struct gl_context *ctx, xrb->map_mode = mode; xrb->map_x = x; - xrb->map_y = y; + xrb->map_y = rb->Height - y - h; xrb->map_w = w; xrb->map_h = h; stride = w * cpp; xrb->Base.Buffer = malloc(h * stride); - sPriv->swrast_loader->getImage(dPriv, x, rb->Height - y - h, w, h, + sPriv->swrast_loader->getImage(dPriv, x, xrb->map_y, w, h, (char *) xrb->Base.Buffer, dPriv->loaderPrivate); |