using System; using System.Collections; using System.Collections.Generic; using UnityEngine; // Token: 0x0200016C RID: 364 public class GraphicManager : MonoBehaviour { // Token: 0x17000155 RID: 341 // (get) Token: 0x06000A72 RID: 2674 RVA: 0x0002E3B8 File Offset: 0x0002C5B8 private static GraphicManager Instance { get { GameObject gameObject = GameObject.Find("__GraphicManager"); if (gameObject == null) { gameObject = new GameObject("__GraphicManager"); gameObject.AddComponent(); } if (GraphicManager.instance == null) { GraphicManager.instance = gameObject.GetComponent(); } return GraphicManager.instance; } } // Token: 0x06000A73 RID: 2675 RVA: 0x0002E410 File Offset: 0x0002C610 public static bool CheckLoadImageComplete(string fpath) { string fileName = GraphicManager.getFileName(fpath); return Singleton.Instance.IsUseTextue(fileName); } // Token: 0x06000A74 RID: 2676 RVA: 0x0002E430 File Offset: 0x0002C630 private static UnityTexture GetLoadedTexture(string fpath) { if (fpath == null || fpath == string.Empty) { return null; } string fileName = GraphicManager.getFileName(fpath); if (Singleton.Instance.IsUseTextue(fileName)) { return Singleton.Instance.LoadTexture(fileName); } return null; } // Token: 0x06000A75 RID: 2677 RVA: 0x0002E47C File Offset: 0x0002C67C public static void LoadTexture(string fpath, Action handler) { UnityTexture loadedTexture = GraphicManager.GetLoadedTexture(fpath); if (loadedTexture != null && loadedTexture.m_Texture != null) { handler(loadedTexture); } else { GraphicManager.Instance.StartCoroutine(GraphicManager.WaitLoadingImage(fpath, handler)); } } // Token: 0x06000A76 RID: 2678 RVA: 0x0002E4C8 File Offset: 0x0002C6C8 private static IEnumerator WaitLoadingImage(string fpath, Action handler) { string fname = GraphicManager.getFileName(fpath); UnityTexture unityTexture = Singleton.Instance.LoadTexture(fname); while (!Singleton.Instance.IsUseTextue(fname)) { yield return 0; } unityTexture.m_Texture.wrapMode = TextureWrapMode.Clamp; handler(unityTexture); yield break; } // Token: 0x06000A77 RID: 2679 RVA: 0x0002E4F8 File Offset: 0x0002C6F8 public static void ReleaseTexture(UnityTexture unityTexture) { if (Singleton.IsReady) { Man2D man2D = Singleton.Instance; if (man2D != null) { man2D.ReleaseTexture(unityTexture, false); } } } // Token: 0x06000A78 RID: 2680 RVA: 0x0002E52C File Offset: 0x0002C72C private static string getFileName(string fpath) { string[] array = fpath.Split(new char[] { '/' }); return array[array.Length - 1]; } // Token: 0x04000875 RID: 2165 private static GraphicManager instance; // Token: 0x0200016D RID: 365 public class SceneGraphicHolder { // Token: 0x06000A79 RID: 2681 RVA: 0x0002E558 File Offset: 0x0002C758 public SceneGraphicHolder(string[] path) { this.textureList = new List(); this.Create(path); } // Token: 0x06000A7A RID: 2682 RVA: 0x0002E574 File Offset: 0x0002C774 public void Create(string[] path) { this.Release(); foreach (string name_ in path) { this.textureList.Add(new GraphicManager.SceneGraphicHolder.UnityTextureHolder(name_)); } } // Token: 0x06000A7B RID: 2683 RVA: 0x0002E5B4 File Offset: 0x0002C7B4 public void Release() { foreach (GraphicManager.SceneGraphicHolder.UnityTextureHolder unityTextureHolder in this.textureList) { unityTextureHolder.Release(); } this.textureList.Clear(); } // Token: 0x06000A7C RID: 2684 RVA: 0x0002E624 File Offset: 0x0002C824 public bool isDone() { GraphicManager.SceneGraphicHolder.UnityTextureHolder unityTextureHolder = this.textureList.Find((GraphicManager.SceneGraphicHolder.UnityTextureHolder obj) => !obj.isDone()); return unityTextureHolder == null; } // Token: 0x06000A7D RID: 2685 RVA: 0x0002E660 File Offset: 0x0002C860 public IEnumerator WaitLoadTexture() { while (!this.isDone()) { yield return new WaitForSeconds(0.1f); } yield break; } // Token: 0x04000876 RID: 2166 private List textureList; // Token: 0x0200016E RID: 366 public class UnityTextureHolder { // Token: 0x06000A7F RID: 2687 RVA: 0x0002E688 File Offset: 0x0002C888 public UnityTextureHolder(string name_) { this.name = name_; this.unityTexture = null; GraphicManager.LoadTexture(this.name, new Action(this.LoadTextureHandler)); } // Token: 0x06000A80 RID: 2688 RVA: 0x0002E6B8 File Offset: 0x0002C8B8 public void LoadTextureHandler(UnityTexture unityTexture_) { this.unityTexture = unityTexture_; } // Token: 0x06000A81 RID: 2689 RVA: 0x0002E6C4 File Offset: 0x0002C8C4 public void Release() { GraphicManager.ReleaseTexture(this.unityTexture); } // Token: 0x06000A82 RID: 2690 RVA: 0x0002E6D4 File Offset: 0x0002C8D4 public bool isDone() { return this.unityTexture != null; } // Token: 0x04000878 RID: 2168 private string name; // Token: 0x04000879 RID: 2169 private UnityTexture unityTexture; } } }