wined3d: Disable flipping through the source rectangle in BltOverride.
authorRoderick Colenbrander <thunderbird2k@gmail.com>
Mon, 29 Mar 2010 11:39:30 +0000 (13:39 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 30 Mar 2010 12:10:45 +0000 (14:10 +0200)
dlls/wined3d/surface.c

index 48039640f32355f85999c59ce78b4492f77cb2d1..c1ae2d2023125c1a174263f295370f0a58ccf542 100644 (file)
@@ -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) {