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.

360 lines
9.6 KiB
C#

using System;
using System.Collections;
using Qoo;
using UnityEngine;
// Token: 0x02000154 RID: 340
public class Man2D : Singleton<Man2D>
{
// Token: 0x17000129 RID: 297
// (get) Token: 0x06000974 RID: 2420 RVA: 0x00029DFC File Offset: 0x00027FFC
public ManSprite SpriteManager
{
get
{
return this.m_Sprite;
}
}
// Token: 0x1700012A RID: 298
// (get) Token: 0x06000975 RID: 2421 RVA: 0x00029E04 File Offset: 0x00028004
public ManTexture TexManager
{
get
{
return this.m_Texture;
}
}
// Token: 0x06000976 RID: 2422 RVA: 0x00029E0C File Offset: 0x0002800C
private void Awake()
{
this.m_nScreenW = 960;
this.m_nScreenH = 544;
this.CreateCamera();
this.CreateSpriteManager();
this.m_Texture = base.gameObject.AddComponent<ManTexture>();
this.CreateFrameBuffer();
/*this.m_BackSprite = this.AddSprite(string.Empty);
this.m_BackSprite.z = 0;
this.m_BackSprite.w = this.m_nScreenW;
this.m_BackSprite.h = this.m_nScreenH;
this.m_BackSprite.R = 0;
this.m_BackSprite.G = 0;
this.m_BackSprite.B = 0;
this.m_BackSprite.A = byte.MaxValue;
this.m_BackSprite.Brend = SPRITE_DRAW_MODE.BACK;*/
base.enabled = false;
}
// Token: 0x06000977 RID: 2423 RVA: 0x00029ED8 File Offset: 0x000280D8
private void OnEnable()
{
this.m_Sprite.Enable();
base.GetComponent<Camera>().enabled = true;
}
// Token: 0x06000978 RID: 2424 RVA: 0x00029EF4 File Offset: 0x000280F4
private void OnDisable()
{
this.m_Sprite.Disable();
base.GetComponent<Camera>().enabled = false;
}
// Token: 0x06000979 RID: 2425 RVA: 0x00029F10 File Offset: 0x00028110
public IEnumerator EraseFrameBuffer()
{
bool old = Singleton<Man2D>.Instance.enabled;
Singleton<Man2D>.Instance.enabled = true;
yield return 0;
Singleton<Man2D>.Instance.UpdateFrameBuffer();
yield return 0;
Singleton<Man2D>.Instance.UpdateFrameBuffer();
yield return 0;
Singleton<Man2D>.Instance.enabled = old;
yield break;
}
// Token: 0x0600097A RID: 2426 RVA: 0x00029F24 File Offset: 0x00028124
public static UnitySprite Sprite(string name = "")
{
return Singleton<Man2D>.Instance.AddSprite(name);
}
// Token: 0x0600097B RID: 2427 RVA: 0x00029F34 File Offset: 0x00028134
public static UnityTextSprite TextSprite(UIFont font = null)
{
UnityTextSprite unityTextSprite = Singleton<Man2D>.Instance.AddTextSprite();
if (font == null)
{
unityTextSprite.Font = Singleton<UnityGraph>.Instance.Font;
}
else
{
unityTextSprite.Font = font;
}
return unityTextSprite;
}
// Token: 0x0600097C RID: 2428 RVA: 0x00029F78 File Offset: 0x00028178
public static UnityTexture Texture(string name)
{
return Singleton<Man2D>.Instance.LoadTexture(name);
}
// Token: 0x0600097D RID: 2429 RVA: 0x00029F88 File Offset: 0x00028188
internal static void ReadyTexture(string name, bool IsDec = true)
{
if (!Singleton<Man2D>.Instance.m_Texture.IsFind(name))
{
Singleton<Man2D>.Instance.m_Texture.Ready(name, IsDec);
}
}
// Token: 0x0600097E RID: 2430 RVA: 0x00029FBC File Offset: 0x000281BC
public static bool IsUseTexture(string name)
{
return Singleton<Man2D>.Instance.m_Texture.IsFind(name) && Singleton<Man2D>.Instance.m_Texture.IsUse(name);
}
// Token: 0x0600097F RID: 2431 RVA: 0x00029FE8 File Offset: 0x000281E8
public UnitySprite AddSprite(string grp = "")
{
if (grp != null && grp.Length > 0)
{
UnitySprite unitySprite = this.m_Sprite.Add(new UnitySprite(true, base.gameObject, false));
unitySprite.SetImage(this.LoadTexture(grp));
return unitySprite;
}
return this.m_Sprite.Add(new UnitySprite(true, base.gameObject, false));
}
// Token: 0x06000980 RID: 2432 RVA: 0x0002A048 File Offset: 0x00028248
public UnityTextSprite AddTextSprite()
{
UnityTextSprite unityTextSprite = new UnityTextSprite(true, base.gameObject);
this.m_Sprite.Add(unityTextSprite);
return unityTextSprite;
}
// Token: 0x06000981 RID: 2433 RVA: 0x0002A070 File Offset: 0x00028270
public bool RemoveSprite(UnitySprite sp)
{
if (sp != null)
{
UnityEngine.Object.Destroy(sp.obj);
if (sp.tex != null && sp.IsTexRelease)
{
this.ReleaseTexture(sp.tex, false);
}
sp.Reset();
return this.m_Sprite.Remove(sp);
}
return true;
}
// Token: 0x06000982 RID: 2434 RVA: 0x0002A0C8 File Offset: 0x000282C8
public UnityTexture LoadTexture(string name)
{
return this.m_Texture.Add(name);
}
// Token: 0x06000983 RID: 2435 RVA: 0x0002A0D8 File Offset: 0x000282D8
public bool IsUseTextue(string name)
{
return this.m_Texture.IsUse(name);
}
// Token: 0x06000984 RID: 2436 RVA: 0x0002A0E8 File Offset: 0x000282E8
public UnityTexture LoadTexture(string name, byte[] data_)
{
return this.m_Texture.Add(name, data_);
}
// Token: 0x06000985 RID: 2437 RVA: 0x0002A0F8 File Offset: 0x000282F8
public UnityTexture SetTexture(string name, Texture2D tex)
{
return this.m_Texture.Add(name, tex);
}
// Token: 0x06000986 RID: 2438 RVA: 0x0002A108 File Offset: 0x00028308
public void ReleaseTexture(UnityTexture tex, bool IsForce = false)
{
if (tex != null)
{
this.m_Texture.Remove(tex, IsForce);
}
}
// Token: 0x06000987 RID: 2439 RVA: 0x0002A120 File Offset: 0x00028320
public bool ReleaseTexture(string name, bool IsForce = false)
{
return name != null && this.m_Texture.Remove(name, IsForce);
}
// Token: 0x06000988 RID: 2440 RVA: 0x0002A138 File Offset: 0x00028338
public RenderTexture GetFrameBuffer()
{
if (!this.IsReadyFrameBuffer())
{
return null;
}
if (this.m_FrameBufferAr[this.GetFrameNoNew()] != null && this.m_FrameBufferAr[this.GetFrameNoNew()].IsReady)
{
return this.m_FrameBufferAr[this.GetFrameNoNew()].Tex;
}
return null;
}
// Token: 0x06000989 RID: 2441 RVA: 0x0002A190 File Offset: 0x00028390
public RenderTexture GetFrameBufferOld()
{
if (!this.IsReadyFrameBuffer())
{
return null;
}
if (this.m_FrameBufferAr[this.GetFrameNoOld()] != null && this.m_FrameBufferAr[this.GetFrameNoOld()].IsReady)
{
return this.m_FrameBufferAr[this.GetFrameNoOld()].Tex;
}
return null;
}
// Token: 0x0600098A RID: 2442 RVA: 0x0002A1E8 File Offset: 0x000283E8
private int GetFrameNoNew()
{
int num = this.m_nFrameNo - 1;
if (num < 0)
{
num += this.m_FrameBufferAr.Length;
}
return num;
}
// Token: 0x0600098B RID: 2443 RVA: 0x0002A214 File Offset: 0x00028414
private int GetFrameNoOld()
{
int num = this.m_nFrameNo - 2;
if (num < 0)
{
num += this.m_FrameBufferAr.Length;
}
return num;
}
// Token: 0x0600098C RID: 2444 RVA: 0x0002A240 File Offset: 0x00028440
private bool IsReadyFrameBuffer()
{
for (int i = 0; i < this.m_FrameBufferAr.Length; i++)
{
if (this.m_FrameBufferAr[this.m_nFrameNo] == null || !this.m_FrameBufferAr[this.m_nFrameNo].IsReady)
{
return false;
}
}
return true;
}
// Token: 0x0600098D RID: 2445 RVA: 0x0002A294 File Offset: 0x00028494
private void Update()
{
this.m_Sprite.Update();
}
// Token: 0x0600098E RID: 2446 RVA: 0x0002A2A4 File Offset: 0x000284A4
public void UpdateFrameBuffer()
{
if (base.GetComponent<Camera>().targetTexture != null && this.m_FrameBufferAr[this.m_nFrameNo] != null)
{
this.m_FrameBufferAr[this.m_nFrameNo].IsReady = true;
}
this.m_nFrameNo++;
if (this.m_nFrameNo < 0 || this.m_nFrameNo >= this.m_FrameBufferAr.Length)
{
this.m_nFrameNo = 0;
}
if (this.m_FrameBufferAr[this.m_nFrameNo] != null)
{
base.GetComponent<Camera>().targetTexture = this.m_FrameBufferAr[this.m_nFrameNo].Tex;
}
}
// Token: 0x0600098F RID: 2447 RVA: 0x0002A350 File Offset: 0x00028550
private void CreateCamera()
{
base.gameObject.AddComponent<Camera>();
CreateSprite.CreateSpriteCamera(base.gameObject, this.m_nScreenH, true);
base.gameObject.GetComponent<Camera>().aspect = 1.7647059f;
}
// Token: 0x06000990 RID: 2448 RVA: 0x0002A390 File Offset: 0x00028590
private void CreateSpriteManager()
{
this.m_Sprite = new ManSprite();
float z = base.GetComponent<Camera>().transform.localPosition.z;
this.m_Sprite.SetZ(base.GetComponent<Camera>().nearClipPlane + z, base.GetComponent<Camera>().farClipPlane + z);
this.m_Sprite.SetScreenSize(this.m_nScreenW, this.m_nScreenH);
}
// Token: 0x06000991 RID: 2449 RVA: 0x0002A400 File Offset: 0x00028600
public void CreateFrameBuffer()
{
this.ReleaseFrameBuffer();
Qoo.Debug.Print("Create Frame Buffer");
int w = 960;
int h = 544;
/*if (iPhone.generation == iPhoneGeneration.iPhone4)
{
w = 512;
h = 512;
}*/
//Qoo.Debug.Print("Info:iPhone.generation:" + iPhone.generation);
for (int i = 0; i < this.m_FrameBufferAr.Length; i++)
{
this.m_FrameBufferAr[i] = new FrameBuffer(w, h, "2D Sprite FrameBuffer" + i);
}
this.m_nFrameNo = 0;
base.GetComponent<Camera>().targetTexture = this.m_FrameBufferAr[this.m_nFrameNo].Tex;
}
// Token: 0x06000992 RID: 2450 RVA: 0x0002A4B8 File Offset: 0x000286B8
public void ReleaseFrameBuffer()
{
Qoo.Debug.Print("Release Frame Buffer");
base.GetComponent<Camera>().targetTexture = null;
for (int i = 0; i < this.m_FrameBufferAr.Length; i++)
{
if (this.m_FrameBufferAr[i] != null)
{
UnityEngine.Object.Destroy(this.m_FrameBufferAr[i].Tex);
this.m_FrameBufferAr[i].Tex = null;
}
this.m_FrameBufferAr[i] = null;
}
}
// Token: 0x040007D3 RID: 2003
private const int FrameBufferNum = 2;
// Token: 0x040007D4 RID: 2004
private ManSprite m_Sprite;
// Token: 0x040007D5 RID: 2005
private ManTexture m_Texture;
// Token: 0x040007D6 RID: 2006
private int m_nScreenH;
// Token: 0x040007D7 RID: 2007
private int m_nScreenW;
// Token: 0x040007D8 RID: 2008
private UnitySprite m_BackSprite;
// Token: 0x040007D9 RID: 2009
private FrameBuffer[] m_FrameBufferAr = new FrameBuffer[2];
// Token: 0x040007DA RID: 2010
private int m_nFrameNo;
}