public static void GetRectMasksForClip(RectMask2D clipper, List<RectMask2D> masks)
{
masks.Clear();
List<Canvas> results = ListPool<Canvas>.Get();
List<RectMask2D> list2 = ListPool<RectMask2D>.Get();
clipper.transform.GetComponentsInParent<RectMask2D>(false, list2);
if (list2.Count > 0)
{
clipper.transform.GetComponentsInParent<Canvas>(false, results);
for (int i = list2.Count - 1; i >= 0; i--)
{
if (!list2[i].IsActive())
{
continue;
}
bool flag = true;
for (int j = results.Count - 1; j >= 0; j--)
{
if (!IsDescendantOrSelf(results[j].transform, list2[i].transform) && results[j].overrideSorting)
{
flag = false;
break;
}
}
if (flag)
{
masks.Add(list2[i]);
}
}
}
ListPool<RectMask2D>.Release(list2);
ListPool<Canvas>.Release(results);
}