IN ULONG ulMode)
{
ULONG i;
+ CLIPOBJ *pcoPriv = NULL;
+ BOOL ret = FALSE;
+
+ if (!pco)
+ {
+ pco = pcoPriv = IntEngCreateClipRegion(0, 0, prclExtents);
+ if (!pco)
+ {
+ return FALSE;
+ }
+ }
switch(ulMode)
{
if(!IntEngGradientFillRect(psoDest, pco, pxlo, pVertex, nVertex, gr, prclExtents,
pptlDitherOrg, (ulMode == GRADIENT_FILL_RECT_H)))
{
- return FALSE;
+ break;
}
}
- return TRUE;
+ ret = TRUE;
+ break;
}
case GRADIENT_FILL_TRIANGLE:
{
if(!IntEngGradientFillTriangle(psoDest, pco, pxlo, pVertex, nVertex, gt, prclExtents,
pptlDitherOrg))
{
- return FALSE;
+ break;
}
}
- return TRUE;
+ ret = TRUE;
+ break;
}
}
- return FALSE;
+
+ if (pcoPriv)
+ {
+ IntEngDeleteClipRegion(pcoPriv);
+ }
+
+ return ret;
}
BOOL STDCALL
BOOL Ret;
BITMAPOBJ *pboDest;
ASSERT(psoDest);
- ASSERT(pco);
pboDest = CONTAINING_RECORD(psoDest, BITMAPOBJ, SurfObj);
ASSERT(pboDest);