From 53222b46da2e9d86ef2085aa3ade4560babe4bb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Sat, 17 Apr 2010 22:48:44 +0000 Subject: [PATCH] [WIN32K] - 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 | 3 --- subsystems/win32/win32k/objects/freetype.c | 5 +++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/subsystems/win32/win32k/eng/bitblt.c b/subsystems/win32/win32k/eng/bitblt.c index abcceec6785..88ee1902993 100644 --- a/subsystems/win32/win32k/eng/bitblt.c +++ b/subsystems/win32/win32k/eng/bitblt.c @@ -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; diff --git a/subsystems/win32/win32k/objects/freetype.c b/subsystems/win32/win32k/objects/freetype.c index 3fed1d02de9..f5b660d85af 100644 --- a/subsystems/win32/win32k/objects/freetype.c +++ b/subsystems/win32/win32k/objects/freetype.c @@ -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;