public virtual void PerformClipping()
{
if (this.m_ShouldRecalculateClipRects)
{
MaskUtilities.GetRectMasksForClip(this, this.m_Clippers);
this.m_ShouldRecalculateClipRects = false;
}
bool validRect = true;
Rect rect = Clipping.FindCullAndClipWorldRect(this.m_Clippers, out validRect);
if ((rect != this.m_LastClipRectCanvasSpace) || this.m_ForceClip)
{
foreach (IClippable clippable in this.m_ClipTargets)
{
clippable.SetClipRect(rect, validRect);
}
this.m_LastClipRectCanvasSpace = rect;
this.m_LastValidClipRect = validRect;
}
foreach (IClippable clippable2 in this.m_ClipTargets)
{
clippable2.Cull(this.m_LastClipRectCanvasSpace, this.m_LastValidClipRect);
}
}