diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2008-02-13 11:39:58 +0000 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2008-02-13 11:39:58 +0000 |
commit | e922adbe1d6c1764968377658ea92ae6de0585db (patch) | |
tree | 7260e77f9696a8752d3800a0a616b8f461d4d871 /src/mesa/pipe/i915simple | |
parent | 4bb1a14d901fcddb25efeeff49c4dea8ca872f73 (diff) |
gallium: pipe->surface_copy can flip the contents vertically when necessary.
Fixes gears being upside down on the box in demos/gearbox.
Diffstat (limited to 'src/mesa/pipe/i915simple')
-rw-r--r-- | src/mesa/pipe/i915simple/i915_blit.c | 1 | ||||
-rw-r--r-- | src/mesa/pipe/i915simple/i915_blit.h | 1 | ||||
-rw-r--r-- | src/mesa/pipe/i915simple/i915_surface.c | 6 |
3 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/pipe/i915simple/i915_blit.c b/src/mesa/pipe/i915simple/i915_blit.c index d49876f970..db4671ff55 100644 --- a/src/mesa/pipe/i915simple/i915_blit.c +++ b/src/mesa/pipe/i915simple/i915_blit.c @@ -85,6 +85,7 @@ i915_fill_blit(struct i915_context *i915, void i915_copy_blit( struct i915_context *i915, + unsigned do_flip, unsigned cpp, short src_pitch, struct pipe_buffer *src_buffer, diff --git a/src/mesa/pipe/i915simple/i915_blit.h b/src/mesa/pipe/i915simple/i915_blit.h index d7a66be10a..6e5b44e124 100644 --- a/src/mesa/pipe/i915simple/i915_blit.h +++ b/src/mesa/pipe/i915simple/i915_blit.h @@ -31,6 +31,7 @@ #include "i915_context.h" extern void i915_copy_blit(struct i915_context *i915, + unsigned do_flip, unsigned cpp, short src_pitch, struct pipe_buffer *src_buffer, diff --git a/src/mesa/pipe/i915simple/i915_surface.c b/src/mesa/pipe/i915simple/i915_surface.c index 1bdaba773f..6d4b8a0aa9 100644 --- a/src/mesa/pipe/i915simple/i915_surface.c +++ b/src/mesa/pipe/i915simple/i915_surface.c @@ -83,6 +83,7 @@ i915_get_tex_surface(struct pipe_context *pipe, */ static void i915_surface_copy(struct pipe_context *pipe, + unsigned do_flip, struct pipe_surface *dst, unsigned dstx, unsigned dsty, struct pipe_surface *src, @@ -98,14 +99,15 @@ i915_surface_copy(struct pipe_context *pipe, dstx, dsty, width, height, pipe_surface_map(src), - src->pitch, - srcx, srcy); + do_flip ? -src->pitch : src->pitch, + srcx, do_flip ? 1 - srcy - height : srcy); pipe_surface_unmap(src); pipe_surface_unmap(dst); } else { i915_copy_blit( i915_context(pipe), + do_flip, dst->cpp, (short) src->pitch, src->buffer, src->offset, (short) dst->pitch, dst->buffer, dst->offset, |