示例#1
0
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);
    }
}
示例#2
0
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);
        }
    }
}