summaryrefslogtreecommitdiff
path: root/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/MaskUtilities.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-04-07 19:10:30 +0800
committerchai <chaifix@163.com>2021-04-07 19:10:30 +0800
commite7dfbec8e8634e767d78959941daf71a96e021cf (patch)
tree58895a7c60df0bd3f316e6461051eabd1c0a51e1 /Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/MaskUtilities.cs
parentff5a3fbf31db349db11bbc5c60ba199d26780f19 (diff)
*移动目录
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.cs182
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);
- }
- }
-}