You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
3.6 KiB
141 lines
3.6 KiB
using UnityEngine; |
|
using UnityTexture2D = UnityEngine.Texture2D; |
|
using System; |
|
|
|
namespace UnityEditor.U2D.Sprites |
|
{ |
|
internal abstract class ITexture2D |
|
{ |
|
public abstract int width { get; } |
|
public abstract int height { get; } |
|
public abstract TextureFormat format { get; } |
|
public abstract Color32[] GetPixels32(); |
|
public abstract FilterMode filterMode { get; set; } |
|
public abstract string name { get; } |
|
public abstract void SetPixels(Color[] c); |
|
public abstract void Apply(); |
|
public abstract float mipMapBias { get; } |
|
|
|
public static bool operator==(ITexture2D t1, ITexture2D t2) |
|
{ |
|
if (object.ReferenceEquals(t1, null)) |
|
{ |
|
return object.ReferenceEquals(t2, null) || t2 == null; |
|
} |
|
|
|
return t1.Equals(t2); |
|
} |
|
|
|
public static bool operator!=(ITexture2D t1, ITexture2D t2) |
|
{ |
|
if (object.ReferenceEquals(t1, null)) |
|
{ |
|
return !object.ReferenceEquals(t2, null) && t2 != null; |
|
} |
|
|
|
return !t1.Equals(t2); |
|
} |
|
|
|
public override bool Equals(object other) |
|
{ |
|
throw new NotImplementedException(); |
|
} |
|
|
|
public override int GetHashCode() |
|
{ |
|
throw new NotImplementedException(); |
|
} |
|
|
|
public static implicit operator UnityEngine.Object(ITexture2D t) |
|
{ |
|
return object.ReferenceEquals(t, null) ? null : t.ToUnityObject(); |
|
} |
|
|
|
public static implicit operator UnityEngine.Texture2D(ITexture2D t) |
|
{ |
|
return object.ReferenceEquals(t, null) ? null : t.ToUnityTexture(); |
|
} |
|
|
|
protected abstract UnityEngine.Object ToUnityObject(); |
|
protected abstract UnityEngine.Texture2D ToUnityTexture(); |
|
} |
|
|
|
internal class Texture2DWrapper : ITexture2D |
|
{ |
|
UnityTexture2D m_Texture; |
|
|
|
public Texture2DWrapper(UnityTexture2D texture) |
|
{ |
|
m_Texture = texture; |
|
} |
|
|
|
public override int width |
|
{ |
|
get { return m_Texture.width; } |
|
} |
|
|
|
public override int height |
|
{ |
|
get { return m_Texture.height; } |
|
} |
|
|
|
public override TextureFormat format |
|
{ |
|
get { return m_Texture.format; } |
|
} |
|
|
|
public override Color32[] GetPixels32() |
|
{ |
|
return m_Texture.GetPixels32(); |
|
} |
|
|
|
public override FilterMode filterMode |
|
{ |
|
get { return m_Texture.filterMode; } |
|
set { m_Texture.filterMode = value; } |
|
} |
|
|
|
public override float mipMapBias |
|
{ |
|
get { return m_Texture.mipMapBias; } |
|
} |
|
|
|
public override string name |
|
{ |
|
get { return m_Texture.name; } |
|
} |
|
|
|
public override bool Equals(object other) |
|
{ |
|
Texture2DWrapper t = other as Texture2DWrapper; |
|
if (object.ReferenceEquals(t, null)) |
|
return m_Texture == null; |
|
return m_Texture == t.m_Texture; |
|
} |
|
|
|
public override int GetHashCode() |
|
{ |
|
return m_Texture.GetHashCode(); |
|
} |
|
|
|
public override void SetPixels(Color[] c) |
|
{ |
|
m_Texture.SetPixels(c); |
|
} |
|
|
|
public override void Apply() |
|
{ |
|
m_Texture.Apply(); |
|
} |
|
|
|
protected override UnityEngine.Object ToUnityObject() |
|
{ |
|
return m_Texture; |
|
} |
|
|
|
protected override UnityEngine.Texture2D ToUnityTexture() |
|
{ |
|
return m_Texture; |
|
} |
|
} |
|
}
|
|
|