Huw Davies : winex11: Use logical co-ords to call GdiAlphaBlend().

Alexandre Julliard julliard at winehq.org
Wed Jun 28 15:10:25 CDT 2017


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Tue Jun 27 16:40:36 2017 +0100

winex11: Use logical co-ords to call GdiAlphaBlend().

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winex11.drv/window.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index ea4933f..eaf6dcf 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -2583,7 +2583,7 @@ BOOL CDECL X11DRV_UpdateLayeredWindow( HWND hwnd, const UPDATELAYEREDWINDOWINFO
     char buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )];
     BITMAPINFO *bmi = (BITMAPINFO *)buffer;
     void *src_bits, *dst_bits;
-    RECT rect;
+    RECT rect, src_rect;
     HDC hdc = 0;
     HBITMAP dib;
     BOOL ret = FALSE;
@@ -2631,11 +2631,13 @@ BOOL CDECL X11DRV_UpdateLayeredWindow( HWND hwnd, const UPDATELAYEREDWINDOWINFO
         memcpy( src_bits, dst_bits, bmi->bmiHeader.biSizeImage );
         PatBlt( hdc, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, BLACKNESS );
     }
+    src_rect = rect;
+    if (info->pptSrc) OffsetRect( &src_rect, info->pptSrc->x, info->pptSrc->y );
+    DPtoLP( info->hdcSrc, (POINT *)&src_rect, 2 );
+
     ret = GdiAlphaBlend( hdc, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,
-                         info->hdcSrc,
-                         rect.left + (info->pptSrc ? info->pptSrc->x : 0),
-                         rect.top + (info->pptSrc ? info->pptSrc->y : 0),
-                         rect.right - rect.left, rect.bottom - rect.top,
+                         info->hdcSrc, src_rect.left, src_rect.top,
+                         src_rect.right - src_rect.left, src_rect.bottom - src_rect.top,
                          (info->dwFlags & ULW_ALPHA) ? *info->pblend : blend );
     if (ret)
     {




More information about the wine-cvs mailing list