- Copy the source rectangle after checking it

- Create input rectangle from destination size if source is not used

svn path=/trunk/; revision=42742
This commit is contained in:
Gregor Schneider 2009-08-16 19:43:58 +00:00
parent d9bc76c65a
commit ea7be198c3

View file

@ -1,6 +1,6 @@
/* /*
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS Win32 kernelmode subsystem
* PURPOSE: GDI stretch blt functions * PURPOSE: GDI stretch blt functions
* FILE: subsystems/win32/win32k/eng/stretchblt.c * FILE: subsystems/win32/win32k/eng/stretchblt.c
* PROGRAMER: Jason Filby * PROGRAMER: Jason Filby
@ -160,13 +160,13 @@ EngStretchBltROP(
OutputRect.bottom = prclDest->top; OutputRect.bottom = prclDest->top;
} }
InputRect = *prclSrc;
if (UsesSource) if (UsesSource)
{ {
if (NULL == prclSrc) if (NULL == prclSrc)
{ {
return FALSE; return FALSE;
} }
InputRect = *prclSrc;
if (! IntEngEnter(&EnterLeaveSource, psoSource, &InputRect, TRUE, if (! IntEngEnter(&EnterLeaveSource, psoSource, &InputRect, TRUE,
&Translate, &psoInput)) &Translate, &psoInput))
@ -179,6 +179,13 @@ EngStretchBltROP(
InputRect.top += Translate.y; InputRect.top += Translate.y;
InputRect.bottom += Translate.y; InputRect.bottom += Translate.y;
} }
else
{
InputRect.left = 0;
InputRect.right = OutputRect.right - OutputRect.left;
InputRect.top = 0;
InputRect.bottom = OutputRect.bottom - OutputRect.top;
}
if (NULL != ClipRegion) if (NULL != ClipRegion)
{ {