[ros-diffs] [greatlrd] 33873: BugFix : NtGdiPatBlt did not call on NtGdiMaskBlt when source have been set in ROP

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Sat Jun 7 01:37:42 CEST 2008


Author: greatlrd
Date: Fri Jun  6 18:37:41 2008
New Revision: 33873

URL: http://svn.reactos.org/svn/reactos?rev=33873&view=rev
Log:
BugFix : NtGdiPatBlt did not call on NtGdiMaskBlt when source have been set in ROP 

Modified:
    trunk/reactos/subsystems/win32/win32k/objects/bitblt.c

Modified: trunk/reactos/subsystems/win32/win32k/objects/bitblt.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/bitblt.c?rev=33873&r1=33872&r2=33873&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/bitblt.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/bitblt.c [iso-8859-1] Fri Jun  6 18:37:41 2008
@@ -1070,10 +1070,18 @@
    DWORD ROP)
 {
    PGDIBRUSHOBJ BrushObj;
-   DC *dc = DC_LockDc(hDC);
+   DC *dc;
    PDC_ATTR Dc_Attr;
+   BOOL UsesSource = ROP3_USES_SOURCE(ROP);
    BOOL ret;
 
+   if (UsesSource)
+   {
+       /* in this case we call on GdiMaskBlt */
+       return NtGdiMaskBlt(hDC, XLeft, YLeft, Width, Height, 0,0,0,0,0,0,ROP,0);
+   }
+
+   dc = DC_LockDc(hDC);
    if (dc == NULL)
    {
       SetLastWin32Error(ERROR_INVALID_HANDLE);



More information about the Ros-diffs mailing list