BOOL APIENTRY EngPaintRgn(SURFOBJ *pso, CLIPOBJ *ClipRegion, ULONG iColor, MIX Mix, BRUSHOBJ *BrushObj, POINTL *BrushPoint) { RECT_ENUM RectEnum; BOOL EnumMore; ULONG i; ASSERT(pso); ASSERT(ClipRegion); DPRINT("ClipRegion->iMode:%u, ClipRegion->iDComplexity: %u\n Color: %lu", ClipRegion->iMode, ClipRegion->iDComplexity, iColor); switch(ClipRegion->iMode) { case TC_RECTANGLES: /* Rectangular clipping can be handled without enumeration. Note that trivial clipping is not possible, since the clipping region defines the area to fill */ if (ClipRegion->iDComplexity == DC_RECT) { FillSolid(pso, &(ClipRegion->rclBounds), iColor); } else { /* Enumerate all the rectangles and draw them */ CLIPOBJ_cEnumStart(ClipRegion, FALSE, CT_RECTANGLES, CD_ANY, 0); do { EnumMore = CLIPOBJ_bEnum(ClipRegion, sizeof(RectEnum), (PVOID) &RectEnum); for (i = 0; i < RectEnum.c; i++) { FillSolid(pso, RectEnum.arcl + i, iColor); } } while (EnumMore); } return(TRUE); default: return(FALSE); } }
BOOL APIENTRY EngEraseSurface( _In_ SURFOBJ *pso, _In_ RECTL *prcl, _In_ ULONG iColor) { ASSERT(pso); ASSERT(prcl); return FillSolid(pso, prcl, iColor); }