private void OnFontChanged() { Func <UnityEngine.Object, bool> func = null; Func <dfControl, int> func1 = null; try { if (!this.invalidatingDependentControls) { dfGUIManager.RenderCallback renderCallback = null; renderCallback = (dfGUIManager manager) => { dfGUIManager.AfterRender -= renderCallback; this.invalidatingDependentControls = true; try { !this.wasFontAtlasRebuilt; UnityEngine.Object[] objArray = UnityEngine.Object.FindObjectsOfType(typeof(dfControl)); if (func == null) { func = (UnityEngine.Object x) => x is IDFMultiRender; } IEnumerable <dfControl> dfControls = ((IEnumerable <UnityEngine.Object>)objArray).Where <UnityEngine.Object>(func).Cast <dfControl>(); if (func1 == null) { func1 = (dfControl x) => x.RenderOrder; } List <dfControl> list = dfControls.OrderBy <dfControl, int>(func1).ToList <dfControl>(); for (int i = 0; i < list.Count; i++) { list[i].Invalidate(); } if (this.wasFontAtlasRebuilt) { manager.Render(); } } finally { this.wasFontAtlasRebuilt = false; this.invalidatingDependentControls = false; } }; dfGUIManager.AfterRender += renderCallback; } } finally { } }
private void OnFontChanged() { if (invalidatingDependentControls) { return; } dfGUIManager.RenderCallback callback = null; callback = (unused) => { dfGUIManager.AfterRender -= callback; invalidatingDependentControls = true; try { var guiManagers = new List <dfGUIManager>(dfGUIManager.ActiveManagers); guiManagers.Sort((x, y) => x.RenderQueueBase.CompareTo(y.RenderQueueBase)); foreach (var manager in guiManagers) { // All controls that render dynamic font text will use the // IDFMultiRender interface. Find all IDFMultiRender controls // and invalidate them to ensure that they get rendered on // the next pass with the new dynamic font atlas var renderedControls = manager.ControlsRendered; for (int i = 0; i < renderedControls.Count; i++) { if (renderedControls[i] is IDFMultiRender) { renderedControls[i].Invalidate(); } } manager.Render(); } } finally { invalidatingDependentControls = false; } }; dfGUIManager.AfterRender += callback; }