Dmitry Timoshkov : winex11.drv: Add an optimized path for BitBlt(SRCINVERT) .

Alexandre Julliard julliard at winehq.org
Thu Feb 21 07:42:42 CST 2008


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

Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date:   Thu Feb 21 18:24:48 2008 +0800

winex11.drv: Add an optimized path for BitBlt(SRCINVERT).

---

 dlls/winex11.drv/bitblt.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/winex11.drv/bitblt.c b/dlls/winex11.drv/bitblt.c
index 771a52b..6f91413 100644
--- a/dlls/winex11.drv/bitblt.c
+++ b/dlls/winex11.drv/bitblt.c
@@ -1390,10 +1390,11 @@ static BOOL BITBLT_InternalStretchBlt( X11DRV_PDEVICE *physDevDst, INT xDst, INT
 	return TRUE;
 
     case SRCCOPY:  /* 0xcc */
+    case SRCINVERT:
         if (physDevSrc->depth == physDevDst->depth)
         {
             wine_tsx11_lock();
-            XSetFunction( gdi_display, physDevDst->gc, GXcopy );
+            XSetFunction( gdi_display, physDevDst->gc, rop == SRCCOPY ? GXcopy : GXxor );
             XCopyArea( gdi_display, physDevSrc->drawable,
                        physDevDst->drawable, physDevDst->gc,
                        physDevSrc->dc_rect.left + visRectSrc.left,
@@ -1414,7 +1415,7 @@ static BOOL BITBLT_InternalStretchBlt( X11DRV_PDEVICE *physDevDst, INT xDst, INT
 
             XSetBackground( gdi_display, physDevDst->gc, fg );
             XSetForeground( gdi_display, physDevDst->gc, bg );
-            XSetFunction( gdi_display, physDevDst->gc, GXcopy );
+            XSetFunction( gdi_display, physDevDst->gc, rop == SRCCOPY ? GXcopy : GXxor );
             XCopyPlane( gdi_display, physDevSrc->drawable,
                         physDevDst->drawable, physDevDst->gc,
                         physDevSrc->dc_rect.left + visRectSrc.left,




More information about the wine-cvs mailing list