Roderick Colenbrander : wined3d: Disable flipping through the source rectangle in BltOverride.

Alexandre Julliard julliard at winehq.org
Tue Mar 30 10:39:45 CDT 2010


Module: wine
Branch: master
Commit: c864ae6348aab90da305cfc143575dce77f82682
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c864ae6348aab90da305cfc143575dce77f82682

Author: Roderick Colenbrander <thunderbird2k at gmail.com>
Date:   Mon Mar 29 13:39:30 2010 +0200

wined3d: Disable flipping through the source rectangle in BltOverride.

---

 dlls/wined3d/surface.c |   23 ++++++++---------------
 1 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 4803964..c1ae2d2 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3936,7 +3936,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, const
     if((srcSwapchain || SrcSurface == myDevice->render_targets[0]) && !dstSwapchain) {
         /* Blit from render target to texture */
         WINED3DRECT srect;
-        BOOL upsideDown, stretchx;
+        BOOL upsideDown = FALSE, stretchx;
         BOOL paletteOverride = FALSE;
 
         if(Flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE)) {
@@ -3945,19 +3945,9 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, const
             /* Destination color key is checked above */
         }
 
-        /* Make sure that the top pixel is always above the bottom pixel, and keep a separate upside down flag
-         * glCopyTexSubImage is a bit picky about the parameters we pass to it
-         */
         if(SrcRect) {
-            if(SrcRect->top < SrcRect->bottom) {
-                srect.y1 = SrcRect->top;
-                srect.y2 = SrcRect->bottom;
-                upsideDown = FALSE;
-            } else {
-                srect.y1 = SrcRect->bottom;
-                srect.y2 = SrcRect->top;
-                upsideDown = TRUE;
-            }
+            srect.y1 = SrcRect->top;
+            srect.y2 = SrcRect->bottom;
             srect.x1 = SrcRect->left;
             srect.x2 = SrcRect->right;
         } else {
@@ -3965,13 +3955,16 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, const
             srect.y1 = 0;
             srect.x2 = Src->currentDesc.Width;
             srect.y2 = Src->currentDesc.Height;
-            upsideDown = FALSE;
         }
+
+        /* Make sure that the top pixel is always above the bottom pixel, and keep a separate upside down flag
+         * glCopyTexSubImage is a bit picky about the parameters we pass to it
+         */
         if(rect.y1 > rect.y2) {
             UINT tmp = rect.y2;
             rect.y2 = rect.y1;
             rect.y1 = tmp;
-            upsideDown = !upsideDown;
+            upsideDown = TRUE;
         }
 
         if(rect.x2 - rect.x1 != srect.x2 - srect.x1) {




More information about the wine-cvs mailing list