Evgeniy Boltik <bstsoft@narod.ru>

- Fix copypaste mistake in EngStretchBltROP.
- Fix check in EngStretchBltROP, it should check original InputRect, not the clipped one.
- Fix improper variable type in DIB_XXBPP_StretchBlt: PatternX and PatternY could be negative.
See issue #4336 for more details.

svn path=/trunk/; revision=40362
This commit is contained in:
Aleksey Bragin 2009-04-04 18:24:24 +00:00
parent c0fd81e39e
commit fe2cbf3735
2 changed files with 5 additions and 5 deletions

View file

@ -50,7 +50,7 @@ BOOLEAN DIB_XXBPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf, SURFOBJ *Ma
PFN_DIB_GetPixel fnPattern_GetPixel = NULL; PFN_DIB_GetPixel fnPattern_GetPixel = NULL;
PFN_DIB_GetPixel fnMask_GetPixel = NULL; PFN_DIB_GetPixel fnMask_GetPixel = NULL;
ULONG PatternX = 0, PatternY = 0; LONG PatternX = 0, PatternY = 0;
BOOL UsesSource = ROP4_USES_SOURCE(ROP); BOOL UsesSource = ROP4_USES_SOURCE(ROP);
BOOL UsesPattern = ROP4_USES_PATTERN(ROP); BOOL UsesPattern = ROP4_USES_PATTERN(ROP);

View file

@ -938,8 +938,8 @@ EngStretchBltROP(
} }
if (OutputRect.bottom < OutputRect.top) if (OutputRect.bottom < OutputRect.top)
{ {
OutputRect.left = prclDest->right; OutputRect.top = prclDest->bottom;
OutputRect.right = prclDest->left; OutputRect.bottom = prclDest->top;
} }
InputRect = *prclSrc; InputRect = *prclSrc;
@ -1198,8 +1198,8 @@ IntEngStretchBlt(SURFOBJ *psoDest,
} }
InputRect = *SourceRect; InputRect = *SourceRect;
if (InputClippedRect.right < InputClippedRect.left || if (InputRect.right < InputRect.left ||
InputClippedRect.bottom < InputClippedRect.top) InputRect.bottom < InputRect.top)
{ {
/* Everything clipped away, nothing to do */ /* Everything clipped away, nothing to do */
return TRUE; return TRUE;