3 using System.Collections.Generic;
5 #if UNITY_2018_1_OR_NEWER 17 private readonly List<TMP_Text> m_LayoutRebuildQueue =
new List<TMP_Text>();
18 private Dictionary<int, int> m_LayoutQueueLookup =
new Dictionary<int, int>();
20 private readonly List<TMP_Text> m_GraphicRebuildQueue =
new List<TMP_Text>();
21 private Dictionary<int, int> m_GraphicQueueLookup =
new Dictionary<int, int>();
47 #if UNITY_2018_1_OR_NEWER 62 private bool InternalRegisterTextElementForLayoutRebuild(
TMP_Text element)
64 int id = element.GetInstanceID();
66 if (this.m_LayoutQueueLookup.ContainsKey(
id))
69 m_LayoutQueueLookup[id] = id;
70 this.m_LayoutRebuildQueue.Add(element);
85 private bool InternalRegisterTextElementForGraphicRebuild(
TMP_Text element)
87 int id = element.GetInstanceID();
89 if (this.m_GraphicQueueLookup.ContainsKey(
id))
92 m_GraphicQueueLookup[id] = id;
93 this.m_GraphicRebuildQueue.Add(element);
106 if (cameras.Length == 1 && cameras[0].cameraType == CameraType.Preview)
120 if (cam.cameraType == CameraType.Preview)
132 for (
int i = 0; i < m_LayoutRebuildQueue.Count; i++)
134 m_LayoutRebuildQueue[i].Rebuild(CanvasUpdate.Prelayout);
137 if (m_LayoutRebuildQueue.Count > 0)
139 m_LayoutRebuildQueue.Clear();
140 m_LayoutQueueLookup.Clear();
144 for (
int i = 0; i < m_GraphicRebuildQueue.Count; i++)
146 m_GraphicRebuildQueue[i].Rebuild(CanvasUpdate.PreRender);
150 if (m_GraphicRebuildQueue.Count > 0)
152 m_GraphicRebuildQueue.Clear();
153 m_GraphicQueueLookup.Clear();
168 private void InternalUnRegisterTextElementForGraphicRebuild(
TMP_Text element)
176 int id = element.GetInstanceID();
180 m_GraphicQueueLookup.Remove(
id);
184 private void InternalUnRegisterTextElementForLayoutRebuild(TMP_Text element)
192 int id = element.GetInstanceID();
196 m_LayoutQueueLookup.Remove(
id);
static void RegisterTextElementForLayoutRebuild(TMP_Text element)
Function to register elements which require a layout rebuild.
static void RegisterTextElementForGraphicRebuild(TMP_Text element)
Function to register elements which require a layout rebuild.
Base class which contains common properties and functions shared between the TextMeshPro and TextMesh...
static void UnRegisterTextElementForRebuild(TMP_Text element)
Function to unregister elements which no longer require a rebuild.
TMP_UpdateManager()
Register to receive rendering callbacks.
void OnCameraPreCull(Camera cam)
Callback which occurs just before the cam is rendered.
static TMP_UpdateManager instance
Get a singleton instance of the registry
void DoRebuilds()
Process the rebuild requests in the rebuild queues.
void OnBeginFrameRendering(Camera[] cameras)
Callback which occurs just before the Scriptable Render Pipeline (SRP) begins rendering.