Mesa (7.8): st/mesa: invert scissor rect depending on FB orientation
Brian Paul
brianp at kemper.freedesktop.org
Mon Apr 19 16:11:51 UTC 2010
Module: Mesa
Branch: 7.8
Commit: c060265bdb953f0c9d73e60f08c53a2e3b1a1176
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c060265bdb953f0c9d73e60f08c53a2e3b1a1176
Author: Brian Paul <brianp at vmware.com>
Date: Mon Apr 19 10:10:41 2010 -0600
st/mesa: invert scissor rect depending on FB orientation
Fixes fd.o bug 27715
---
src/mesa/state_tracker/st_atom_scissor.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/mesa/state_tracker/st_atom_scissor.c b/src/mesa/state_tracker/st_atom_scissor.c
index 5e0c51c..56b1383 100644
--- a/src/mesa/state_tracker/st_atom_scissor.c
+++ b/src/mesa/state_tracker/st_atom_scissor.c
@@ -72,12 +72,15 @@ update_scissor( struct st_context *st )
scissor.minx = scissor.miny = scissor.maxx = scissor.maxy = 0;
}
- /* Now invert Y. Pipe drivers use the convention Y=0=top for surfaces
+ /* Now invert Y if needed.
+ * Gallium drivers use the convention Y=0=top for surfaces.
*/
- miny = fb->Height - scissor.maxy;
- maxy = fb->Height - scissor.miny;
- scissor.miny = miny;
- scissor.maxy = maxy;
+ if (st_fb_orientation(fb) == Y_0_TOP) {
+ miny = fb->Height - scissor.maxy;
+ maxy = fb->Height - scissor.miny;
+ scissor.miny = miny;
+ scissor.maxy = maxy;
+ }
if (memcmp(&scissor, &st->state.scissor, sizeof(scissor)) != 0) {
/* state has changed */
More information about the mesa-commit
mailing list