Roderick Colenbrander : winex11: When a mask picture is active, the source offsets should be relative to mask_pict instead of src_pict.

Alexandre Julliard julliard at winehq.org
Mon Feb 22 08:46:50 CST 2010


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

Author: Roderick Colenbrander <thunderbird2k at gmail.com>
Date:   Mon Feb 22 00:14:31 2010 +0100

winex11: When a mask picture is active, the source offsets should be relative to mask_pict instead of src_pict.

---

 dlls/winex11.drv/xrender.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c
index d3600b7..5bbc886 100644
--- a/dlls/winex11.drv/xrender.c
+++ b/dlls/winex11.drv/xrender.c
@@ -1871,11 +1871,16 @@ static void xrender_blit(Picture src_pict, Picture mask_pict, Picture dst_pict,
     else
     {
         if(mask_pict)
+        {
             set_xrender_transformation(mask_pict, 1, 1, 0, 0);
+            /* Note since the 'source data' is in the mask picture, we have to pass x_src / y_src using mask_x / mask_y */
+            pXRenderComposite(gdi_display, op, src_pict, mask_pict, dst_pict, 0, 0, x_src, y_src, 0, 0, width, height);
+        }
         else
+        {
             set_xrender_transformation(src_pict, 1, 1, 0, 0);
-
-        pXRenderComposite(gdi_display, op, src_pict, mask_pict, dst_pict, x_src, y_src, 0, 0, 0, 0, width, height);
+            pXRenderComposite(gdi_display, op, src_pict, mask_pict, dst_pict, x_src, y_src, 0, 0, 0, 0, width, height);
+        }
     }
 }
 




More information about the wine-cvs mailing list