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)