Mesa (gallium-mesa-7.4): st/mesa: fix incorrect sprite origin when drawing to FBO/texture

Brian Paul brianp at kemper.freedesktop.org
Mon Jun 1 21:08:21 UTC 2009


Module: Mesa
Branch: gallium-mesa-7.4
Commit: 29b822e4cf9626d3f0b8105375a2c0954e653e12
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=29b822e4cf9626d3f0b8105375a2c0954e653e12

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Jun  1 15:07:47 2009 -0600

st/mesa: fix incorrect sprite origin when drawing to FBO/texture

Need to take the draw buffer's up/down orientation into consideration
when setting the sprite_coord_mode field.

Fixes inverted sprites when drawing into an FBO.

(cherry picked from commit 0e8a5a84742adf6e99236f246c77325fad174204)

---

 src/mesa/state_tracker/st_atom_rasterizer.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c b/src/mesa/state_tracker/st_atom_rasterizer.c
index ea76487..775ebe0 100644
--- a/src/mesa/state_tracker/st_atom_rasterizer.c
+++ b/src/mesa/state_tracker/st_atom_rasterizer.c
@@ -209,7 +209,8 @@ static void update_raster_state( struct st_context *st )
    raster->point_sprite = ctx->Point.PointSprite;
    for (i = 0; i < MAX_TEXTURE_COORD_UNITS; i++) {
       if (ctx->Point.CoordReplace[i]) {
-         if (ctx->Point.SpriteOrigin == GL_UPPER_LEFT)
+         if ((ctx->Point.SpriteOrigin == GL_UPPER_LEFT) ^
+             (st_fb_orientation(ctx->DrawBuffer) == Y_0_BOTTOM))
             raster->sprite_coord_mode[i] = PIPE_SPRITE_COORD_UPPER_LEFT;
          else 
             raster->sprite_coord_mode[i] = PIPE_SPRITE_COORD_LOWER_LEFT;




More information about the mesa-commit mailing list