[WIN32K]
authorJérôme Gardou <jerome.gardou@reactos.org>
Sat, 17 Apr 2010 22:48:44 +0000 (22:48 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Sat, 17 Apr 2010 22:48:44 +0000 (22:48 +0000)
  - Use DC_vPrepareForBlit, DC_vFinishBlit in GreTextOutputW
  - So we can get rid of MouseSafetyOnDraw{Start,End} in IntEngMaskBlt

svn path=/branches/reactos-yarotows/; revision=46911

subsystems/win32/win32k/eng/bitblt.c
subsystems/win32/win32k/objects/freetype.c

index abcceec..88ee190 100644 (file)
@@ -973,8 +973,6 @@ IntEngMaskBlt(SURFOBJ *psoDest,
     psurfDest = CONTAINING_RECORD(psoDest, SURFACE, SurfObj);
 
     SURFACE_LockBitmapBits(psurfDest);
-    MouseSafetyOnDrawStart(psoDest, OutputRect.left, OutputRect.top,
-                           OutputRect.right, OutputRect.bottom);
 
     /* Dummy BitBlt to let driver know that it should flush its changes.
        This should really be done using a call to DrvSynchronizeSurface,
@@ -991,7 +989,6 @@ IntEngMaskBlt(SURFOBJ *psoDest,
                    DestRect, pptlMask, pptlMask, pbo, BrushOrigin,
                    R4_NOOP, FALSE);
 
-    MouseSafetyOnDrawEnd(psoDest);
     SURFACE_UnlockBitmapBits(psurfDest);
 
     return ret;
index 3fed1d0..f5b660d 100644 (file)
@@ -3187,6 +3187,9 @@ GreExtTextOutW(
         return TRUE;
     }
 
+    /* FIXME : This is ugly, but this function must be rewritten anyway */
+    DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds, NULL, DestRect);
+
     pdcattr = dc->pdcattr;
 
     if (pdcattr->ulDirty_ & DIRTY_TEXT)
@@ -3613,6 +3616,7 @@ GreExtTextOutW(
     if (TextObj != NULL)
         TEXTOBJ_UnlockText(TextObj);
 good:
+    DC_vFinishBlit(dc, NULL);
     DC_UnlockDc( dc );
 
     return TRUE;
@@ -3623,6 +3627,7 @@ fail2:
 fail:
     if (TextObj != NULL)
         TEXTOBJ_UnlockText(TextObj);
+    DC_vFinishBlit(dc, NULL);
     DC_UnlockDc(dc);
 
     return FALSE;