From cf30e24abd2114181fbf282f87d1841e4c48df66 Mon Sep 17 00:00:00 2001 From: Gregor Schneider Date: Wed, 30 Dec 2009 12:42:48 +0000 Subject: [PATCH] [win32k] Add support for mask offsets in IntEngStretchBlt svn path=/trunk/; revision=44809 --- .../subsystems/win32/win32k/eng/stretchblt.c | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/reactos/subsystems/win32/win32k/eng/stretchblt.c b/reactos/subsystems/win32/win32k/eng/stretchblt.c index 9973944dc65..ee5711c6d15 100644 --- a/reactos/subsystems/win32/win32k/eng/stretchblt.c +++ b/reactos/subsystems/win32/win32k/eng/stretchblt.c @@ -389,7 +389,7 @@ IntEngStretchBlt(SURFOBJ *psoDest, { BOOLEAN ret; COLORADJUSTMENT ca; - POINT MaskOrigin; + POINTL MaskOrigin = {0, 0}; SURFACE *psurfDest; SURFACE *psurfSource = NULL; RECTL InputClippedRect; @@ -456,7 +456,8 @@ IntEngStretchBlt(SURFOBJ *psoDest, if (pMaskOrigin != NULL) { - MaskOrigin.x = pMaskOrigin->x; MaskOrigin.y = pMaskOrigin->y; + MaskOrigin.x = pMaskOrigin->x; + MaskOrigin.y = pMaskOrigin->y; } /* No success yet */ @@ -482,16 +483,35 @@ IntEngStretchBlt(SURFOBJ *psoDest, if (psurfDest->flHooks & HOOK_STRETCHBLTROP) { /* Drv->StretchBltROP (look at http://www.osronline.com/ddkx/graphics/ddifncs_0z3b.htm ) */ - // FIXME: MaskOrigin is always NULL ! - ret = GDIDEVFUNCS(psoDest).StretchBltROP(psoDest, (UsesSource) ? psoSource : NULL, MaskSurf, ClipRegion, ColorTranslation, - &ca, BrushOrigin, &OutputRect, &InputRect, NULL, COLORONCOLOR, pbo, ROP); + ret = GDIDEVFUNCS(psoDest).StretchBltROP(psoDest, + (UsesSource) ? psoSource : NULL, + MaskSurf, + ClipRegion, + ColorTranslation, + &ca, BrushOrigin, + &OutputRect, + &InputRect, + &MaskOrigin, + COLORONCOLOR, + pbo, + ROP); } if (! ret) { - // FIXME: see previous fixme - ret = EngStretchBltROP(psoDest, (UsesSource) ? psoSource : NULL, MaskSurf, ClipRegion, ColorTranslation, - &ca, BrushOrigin, &OutputRect, &InputRect, NULL, COLORONCOLOR, pbo, ROP); + ret = EngStretchBltROP(psoDest, + (UsesSource) ? psoSource : NULL, + MaskSurf, + ClipRegion, + ColorTranslation, + &ca, + BrushOrigin, + &OutputRect, + &InputRect, + &MaskOrigin, + COLORONCOLOR, + pbo, + ROP); } if (UsesSource)