Author: jimtabor
Date: Sat Nov 15 20:19:43 2008
New Revision: 37385
URL:
http://svn.reactos.org/svn/reactos?rev=37385&view=rev
Log:
- Fix AlphaBlend checks that pass wine bitmap gdi32 crosstests. Tested in 16 and 24 bit
mode Qemu and 32 bit mode hardware, with our AlphaBlend rendering demo program.
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/ob…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/bitblt.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/bitblt.c [iso-8859-1] Sat Nov 15
20:19:43 2008
@@ -96,11 +96,24 @@
DestRect.top = YOriginDest;
DestRect.right = XOriginDest + WidthDest;
DestRect.bottom = YOriginDest + HeightDest;
+ IntLPtoDP(DCDest, (LPPOINT)&DestRect, 2);
SourceRect.left = XOriginSrc;
SourceRect.top = YOriginSrc;
SourceRect.right = XOriginSrc + WidthSrc;
SourceRect.bottom = YOriginSrc + HeightSrc;
+ IntLPtoDP(DCSrc, (LPPOINT)&SourceRect, 2);
+
+ if (!DestRect.right ||
+ !DestRect.bottom ||
+ !SourceRect.right ||
+ !SourceRect.bottom)
+ {
+ if (hDCSrc != hDCDest)
+ DC_UnlockDc(DCSrc);
+ DC_UnlockDc(DCDest);
+ return TRUE;
+ }
/* Determine surfaces to be used in the bitblt */
BitmapDest = BITMAPOBJ_LockBitmap(DCDest->w.hBitmap);