diff options
Diffstat (limited to 'Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/MaskUtilities.cs')
-rw-r--r-- | Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/MaskUtilities.cs | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/MaskUtilities.cs b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/MaskUtilities.cs deleted file mode 100644 index c975dc6..0000000 --- a/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/MaskUtilities.cs +++ /dev/null @@ -1,182 +0,0 @@ -using System.Collections.Generic; -using UnityEngine.EventSystems; - -namespace UnityEngine.UI -{ - public class MaskUtilities - { - public static void Notify2DMaskStateChanged(Component mask) - { - var components = ListPool<Component>.Get(); - mask.GetComponentsInChildren(components); - for (var i = 0; i < components.Count; i++) - { - if (components[i] == null || components[i].gameObject == mask.gameObject) - continue; - - var toNotify = components[i] as IClippable; - if (toNotify != null) - toNotify.RecalculateClipping(); - } - ListPool<Component>.Release(components); - } - - public static void NotifyStencilStateChanged(Component mask) - { - var components = ListPool<Component>.Get(); - mask.GetComponentsInChildren(components); - for (var i = 0; i < components.Count; i++) - { - if (components[i] == null || components[i].gameObject == mask.gameObject) - continue; - - var toNotify = components[i] as IMaskable; - if (toNotify != null) - toNotify.RecalculateMasking(); - } - ListPool<Component>.Release(components); - } - - public static Transform FindRootSortOverrideCanvas(Transform start) - { - var canvasList = ListPool<Canvas>.Get(); - start.GetComponentsInParent(false, canvasList); - Canvas canvas = null; - - for (int i = 0; i < canvasList.Count; ++i) - { - canvas = canvasList[i]; - - // We found the canvas we want to use break - if (canvas.overrideSorting) - break; - } - ListPool<Canvas>.Release(canvasList); - - return canvas != null ? canvas.transform : null; - } - - public static int GetStencilDepth(Transform transform, Transform stopAfter) - { - var depth = 0; - if (transform == stopAfter) - return depth; - - var t = transform.parent; - var components = ListPool<Mask>.Get(); - while (t != null) - { - t.GetComponents<Mask>(components); - for (var i = 0; i < components.Count; ++i) - { - if (components[i] != null && components[i].MaskEnabled() && components[i].graphic.IsActive()) - { - ++depth; - break; - } - } - - if (t == stopAfter) - break; - - t = t.parent; - } - ListPool<Mask>.Release(components); - return depth; - } - - public static bool IsDescendantOrSelf(Transform father, Transform child) - { - if (father == null || child == null) - return false; - - if (father == child) - return true; - - while (child.parent != null) - { - if (child.parent == father) - return true; - - child = child.parent; - } - - return false; - } - - public static RectMask2D GetRectMaskForClippable(IClippable clippable) - { - List<RectMask2D> rectMaskComponents = ListPool<RectMask2D>.Get(); - List<Canvas> canvasComponents = ListPool<Canvas>.Get(); - RectMask2D componentToReturn = null; - - clippable.rectTransform.GetComponentsInParent(false, rectMaskComponents); - - if (rectMaskComponents.Count > 0) - { - for (int rmi = 0; rmi < rectMaskComponents.Count; rmi++) - { - componentToReturn = rectMaskComponents[rmi]; - if (componentToReturn.gameObject == clippable.gameObject) - { - componentToReturn = null; - continue; - } - if (!componentToReturn.isActiveAndEnabled) - { - componentToReturn = null; - continue; - } - clippable.rectTransform.GetComponentsInParent(false, canvasComponents); - for (int i = canvasComponents.Count - 1; i >= 0; i--) - { - if (!IsDescendantOrSelf(canvasComponents[i].transform, componentToReturn.transform) && canvasComponents[i].overrideSorting) - { - componentToReturn = null; - break; - } - } - return componentToReturn; - } - } - - ListPool<RectMask2D>.Release(rectMaskComponents); - ListPool<Canvas>.Release(canvasComponents); - - return componentToReturn; - } - - public static void GetRectMasksForClip(RectMask2D clipper, List<RectMask2D> masks) - { - masks.Clear(); - - List<Canvas> canvasComponents = ListPool<Canvas>.Get(); - List<RectMask2D> rectMaskComponents = ListPool<RectMask2D>.Get(); - clipper.transform.GetComponentsInParent(false, rectMaskComponents); - - if (rectMaskComponents.Count > 0) - { - clipper.transform.GetComponentsInParent(false, canvasComponents); - for (int i = rectMaskComponents.Count - 1; i >= 0; i--) - { - if (!rectMaskComponents[i].IsActive()) - continue; - bool shouldAdd = true; - for (int j = canvasComponents.Count - 1; j >= 0; j--) - { - if (!IsDescendantOrSelf(canvasComponents[j].transform, rectMaskComponents[i].transform) && canvasComponents[j].overrideSorting) - { - shouldAdd = false; - break; - } - } - if (shouldAdd) - masks.Add(rectMaskComponents[i]); - } - } - - ListPool<RectMask2D>.Release(rectMaskComponents); - ListPool<Canvas>.Release(canvasComponents); - } - } -} |