gallium: fix do_flip bug in sp_surface_copy()

Surfaces are always in y=0=top raster order so the caller should invert
the Y coordinate if needed; don't do it in sp_surface_copy().

Fixes a glCopyTexture regression.
This commit is contained in:
Brian Paul
2008-08-19 17:41:34 -06:00
parent 63c0970dca
commit 7f9959ae83
+4 -1
View File
@@ -39,6 +39,9 @@
* Copy a rectangular region from one surface to another.
* Surfaces must have same bpp.
*
* Note that it's always the case that Y=0=top of the raster.
* If do_flip is non-zero, the region being copied will be flipped vertically.
*
* Assumes all values are within bounds -- no checking at this level -
* do it higher up if required.
*/
@@ -72,7 +75,7 @@ sp_surface_copy(struct pipe_context *pipe,
width, height,
src_map,
do_flip ? -(int) src->stride : src->stride,
srcx, do_flip ? src->height - 1 - srcy : srcy);
srcx, srcy);
pipe->screen->surface_unmap(pipe->screen, src);
pipe->screen->surface_unmap(pipe->screen, dst);