public static Rect FindCullAndClipWorldRect(List<RectMask2D> rectMaskParents, out bool validRect)
{
if (rectMaskParents.Count == 0)
{
validRect = false;
return new Rect();
}
Rect canvasRect = rectMaskParents[0].canvasRect;
for (int i = 0; i < rectMaskParents.Count; i++)
{
canvasRect = RectIntersect(canvasRect, rectMaskParents[i].canvasRect);
}
if ((canvasRect.width <= 0f) || (canvasRect.height <= 0f))
{
validRect = false;
return new Rect();
}
Vector3 vector = new Vector3(canvasRect.x, canvasRect.y, 0f);
Vector3 vector2 = new Vector3(canvasRect.x + canvasRect.width, canvasRect.y + canvasRect.height, 0f);
validRect = true;
return new Rect(vector.x, vector.y, vector2.x - vector.x, vector2.y - vector.y);
}