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