Rasagar/Library/PackageCache/com.unity.2d.sprite/Editor/Interface/ITexture.cs
2024-08-26 23:07:20 +03:00

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;
}
}
}