You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
5.2 KiB
��

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<GraphicManager>();
}
if (GraphicManager.instance == null)
{
GraphicManager.instance = gameObject.GetComponent<GraphicManager>();
}
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<Man2D>.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<Man2D>.Instance.IsUseTextue(fileName))
{
return Singleton<Man2D>.Instance.LoadTexture(fileName);
}
return null;
}
// Token: 0x06000A75 RID: 2677 RVA: 0x0002E47C File Offset: 0x0002C67C
public static void LoadTexture(string fpath, Action<UnityTexture> 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<UnityTexture> handler)
{
string fname = GraphicManager.getFileName(fpath);
UnityTexture unityTexture = Singleton<Man2D>.Instance.LoadTexture(fname);
while (!Singleton<Man2D>.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<Man2D>.IsReady)
{
Man2D man2D = Singleton<Man2D>.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<GraphicManager.SceneGraphicHolder.UnityTextureHolder>();
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<GraphicManager.SceneGraphicHolder.UnityTextureHolder> 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<UnityTexture>(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;
}
}
}