void TextRenderer::RenderWithFunctor(DrwFunctor drw_fnr, const Rect& drw_rct, const Rect& obj_rct) { Rect rct = Intersection(drw_rct, obj_rct); if( !rct.IsNull() ) { CairoStateSave save(caiCont); RenderBegin(rct); drw_fnr(); RenderEnd(rct); } }
void RegionEraserVis::ProcessImpl(bool exceed) { if( exceed ) return; AcceptOnlyObject(lObj, *this); if( !plc.IsNull() ) { RectListRgn& r_lst = mPack.thRgn.GetCanvasBuf().RenderList(); CalcSubRegions(r_lst); if( r_lst.size() ) { // рекурсивно вызываем обновление EraseLinkedMenus(mPack); } } }