142 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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;
 | |
|         }
 | |
|     }
 | |
| }
 |