[win32k] Add support for mask offsets in IntEngStretchBlt

svn path=/trunk/; revision=44809
This commit is contained in:
Gregor Schneider 2009-12-30 12:42:48 +00:00
parent 9ba0500088
commit cf30e24abd

View file

@ -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)