PO/Library/PackageCache/com.unity.2d.psdimporter@4.1.0/Editor/TexturePlatformSettingsModa...

381 lines
16 KiB
C#

namespace UnityEditor.U2D.PSD
{
internal static class TexturePlatformSettingsModal
{
public static readonly TextureImporterFormat[] kFormatsWithCompressionSettings =
{
TextureImporterFormat.PVRTC_RGB2,
TextureImporterFormat.PVRTC_RGB4,
TextureImporterFormat.PVRTC_RGBA2,
TextureImporterFormat.PVRTC_RGBA4,
TextureImporterFormat.ETC_RGB4,
TextureImporterFormat.ETC2_RGBA8,
TextureImporterFormat.ETC_RGB4,
TextureImporterFormat.ETC2_RGB4,
TextureImporterFormat.ETC2_RGB4_PUNCHTHROUGH_ALPHA,
TextureImporterFormat.ETC2_RGBA8,
#if UNITY_2019_1_OR_NEWER
TextureImporterFormat.ASTC_4x4,
TextureImporterFormat.ASTC_5x5,
TextureImporterFormat.ASTC_6x6,
TextureImporterFormat.ASTC_8x8,
TextureImporterFormat.ASTC_10x10,
TextureImporterFormat.ASTC_12x12,
#else
TextureImporterFormat.ASTC_RGB_4x4,
TextureImporterFormat.ASTC_RGB_5x5,
TextureImporterFormat.ASTC_RGB_6x6,
TextureImporterFormat.ASTC_RGB_8x8,
TextureImporterFormat.ASTC_RGB_10x10,
TextureImporterFormat.ASTC_RGB_12x12,
TextureImporterFormat.ASTC_RGBA_4x4,
TextureImporterFormat.ASTC_RGBA_5x5,
TextureImporterFormat.ASTC_RGBA_6x6,
TextureImporterFormat.ASTC_RGBA_8x8,
TextureImporterFormat.ASTC_RGBA_10x10,
TextureImporterFormat.ASTC_RGBA_12x12
#endif
};
public struct BuildPlatformData
{
public string buildTargetName;
public TextureImporterFormat defaultTextureFormat;
public BuildTarget[] buildTarget;
}
// Add new platforms here
public static readonly BuildPlatformData[] kValidBuildPlatform = new BuildPlatformData[]
{
new BuildPlatformData()
{
buildTargetName = "Default",
defaultTextureFormat = TextureImporterFormat.Automatic,
buildTarget = new[]
{
BuildTarget.NoTarget
}
},
new BuildPlatformData()
{
buildTargetName = "PC, Mac & Linux Standalone",
defaultTextureFormat = TextureImporterFormat.RGBA32,
buildTarget = new[]
{
BuildTarget.StandaloneWindows,
BuildTarget.StandaloneWindows64,
BuildTarget.StandaloneLinux64,
BuildTarget.StandaloneOSX,
}
},
new BuildPlatformData()
{
buildTargetName = "iOS",
defaultTextureFormat = TextureImporterFormat.RGBA32,
buildTarget = new[] { BuildTarget.iOS }
},
new BuildPlatformData()
{
buildTargetName = "tvOS",
defaultTextureFormat = TextureImporterFormat.RGBA32,
buildTarget = new[] { BuildTarget.tvOS }
},
new BuildPlatformData()
{
buildTargetName = "Android",
defaultTextureFormat = TextureImporterFormat.RGBA32,
buildTarget = new[] { BuildTarget.Android }
},
new BuildPlatformData()
{
buildTargetName = "Universal Windows Platform",
defaultTextureFormat = TextureImporterFormat.RGBA32,
buildTarget = new[] { BuildTarget.WSAPlayer }
},
};
public static readonly int[] kTextureFormatsValueApplePVR =
{
(int)TextureImporterFormat.PVRTC_RGB2,
(int)TextureImporterFormat.PVRTC_RGBA2,
(int)TextureImporterFormat.PVRTC_RGB4,
(int)TextureImporterFormat.PVRTC_RGBA4,
#if UNITY_2019_1_OR_NEWER
(int)TextureImporterFormat.ASTC_4x4,
(int)TextureImporterFormat.ASTC_5x5,
(int)TextureImporterFormat.ASTC_6x6,
(int)TextureImporterFormat.ASTC_8x8,
(int)TextureImporterFormat.ASTC_10x10,
(int)TextureImporterFormat.ASTC_12x12,
#else
(int)TextureImporterFormat.ASTC_RGB_4x4,
(int)TextureImporterFormat.ASTC_RGB_5x5,
(int)TextureImporterFormat.ASTC_RGB_6x6,
(int)TextureImporterFormat.ASTC_RGB_8x8,
(int)TextureImporterFormat.ASTC_RGB_10x10,
(int)TextureImporterFormat.ASTC_RGB_12x12,
(int)TextureImporterFormat.ASTC_RGBA_4x4,
(int)TextureImporterFormat.ASTC_RGBA_5x5,
(int)TextureImporterFormat.ASTC_RGBA_6x6,
(int)TextureImporterFormat.ASTC_RGBA_8x8,
(int)TextureImporterFormat.ASTC_RGBA_10x10,
(int)TextureImporterFormat.ASTC_RGBA_12x12,
#endif
(int)TextureImporterFormat.RGB16,
(int)TextureImporterFormat.RGB24,
(int)TextureImporterFormat.Alpha8,
(int)TextureImporterFormat.RGBA16,
(int)TextureImporterFormat.RGBA32
};
public static readonly int[] kTextureFormatsValueAndroid =
{
(int)TextureImporterFormat.DXT1,
(int)TextureImporterFormat.DXT5,
#if ENABLE_CRUNCH_TEXTURE_COMPRESSION
(int)TextureImporterFormat.DXT1Crunched,
(int)TextureImporterFormat.DXT5Crunched,
#endif
(int)TextureImporterFormat.ETC_RGB4,
(int)TextureImporterFormat.ETC2_RGB4,
(int)TextureImporterFormat.ETC2_RGB4_PUNCHTHROUGH_ALPHA,
(int)TextureImporterFormat.ETC2_RGBA8,
(int)TextureImporterFormat.PVRTC_RGB2,
(int)TextureImporterFormat.PVRTC_RGBA2,
(int)TextureImporterFormat.PVRTC_RGB4,
(int)TextureImporterFormat.PVRTC_RGBA4,
(int)TextureImporterFormat.ETC_RGB4,
(int)TextureImporterFormat.ETC2_RGBA8,
#if UNITY_2019_1_OR_NEWER
(int)TextureImporterFormat.ASTC_4x4,
(int)TextureImporterFormat.ASTC_5x5,
(int)TextureImporterFormat.ASTC_6x6,
(int)TextureImporterFormat.ASTC_8x8,
(int)TextureImporterFormat.ASTC_10x10,
(int)TextureImporterFormat.ASTC_12x12,
#else
(int)TextureImporterFormat.ASTC_RGB_4x4,
(int)TextureImporterFormat.ASTC_RGB_5x5,
(int)TextureImporterFormat.ASTC_RGB_6x6,
(int)TextureImporterFormat.ASTC_RGB_8x8,
(int)TextureImporterFormat.ASTC_RGB_10x10,
(int)TextureImporterFormat.ASTC_RGB_12x12,
(int)TextureImporterFormat.ASTC_RGBA_4x4,
(int)TextureImporterFormat.ASTC_RGBA_5x5,
(int)TextureImporterFormat.ASTC_RGBA_6x6,
(int)TextureImporterFormat.ASTC_RGBA_8x8,
(int)TextureImporterFormat.ASTC_RGBA_10x10,
(int)TextureImporterFormat.ASTC_RGBA_12x12,
#endif
(int)TextureImporterFormat.RGB16,
(int)TextureImporterFormat.RGB24,
(int)TextureImporterFormat.Alpha8,
(int)TextureImporterFormat.RGBA16,
(int)TextureImporterFormat.RGBA32
};
public static readonly int[] kTextureFormatsValueSTV =
{
(int)TextureImporterFormat.ETC_RGB4,
(int)TextureImporterFormat.RGB16,
(int)TextureImporterFormat.RGB24,
(int)TextureImporterFormat.Alpha8,
(int)TextureImporterFormat.RGBA16,
(int)TextureImporterFormat.RGBA32,
};
public static readonly int[] kTextureFormatsValueWebGL =
{
(int)TextureImporterFormat.DXT1,
(int)TextureImporterFormat.DXT5,
#if ENABLE_CRUNCH_TEXTURE_COMPRESSION
(int)TextureImporterFormat.DXT1Crunched,
(int)TextureImporterFormat.DXT5Crunched,
#endif
(int)TextureImporterFormat.RGB16,
(int)TextureImporterFormat.RGB24,
(int)TextureImporterFormat.Alpha8,
(int)TextureImporterFormat.ARGB16,
(int)TextureImporterFormat.RGBA32
};
public static readonly int[] kNormalFormatsValueDefault =
{
(int)TextureImporterFormat.BC5,
(int)TextureImporterFormat.BC7,
(int)TextureImporterFormat.DXT5,
#if ENABLE_CRUNCH_TEXTURE_COMPRESSION
(int)TextureImporterFormat.DXT5Crunched,
#endif
(int)TextureImporterFormat.ARGB16,
(int)TextureImporterFormat.RGBA32,
};
public static readonly int[] kTextureFormatsValueDefault =
{
(int)TextureImporterFormat.DXT1,
(int)TextureImporterFormat.DXT5,
#if ENABLE_CRUNCH_TEXTURE_COMPRESSION
(int)TextureImporterFormat.DXT1Crunched,
(int)TextureImporterFormat.DXT5Crunched,
#endif
(int)TextureImporterFormat.RGB16,
(int)TextureImporterFormat.RGB24,
(int)TextureImporterFormat.Alpha8,
(int)TextureImporterFormat.ARGB16,
(int)TextureImporterFormat.RGBA32,
(int)TextureImporterFormat.RGBAHalf,
(int)TextureImporterFormat.BC4,
(int)TextureImporterFormat.BC5,
(int)TextureImporterFormat.BC6H,
(int)TextureImporterFormat.BC7,
};
public static readonly int[] kTextureFormatsValueSingleChannel =
{
(int)TextureImporterFormat.Alpha8,
(int)TextureImporterFormat.BC4,
};
internal static string[] s_TextureFormatStringsWebGL;
internal static string[] s_TextureFormatStringsApplePVR;
internal static string[] s_TextureFormatStringsAndroid;
internal static string[] s_TextureFormatStringsSTV;
internal static string[] s_TextureFormatStringsSingleChannel;
internal static string[] s_TextureFormatStringsDefault;
static TexturePlatformSettingsModal()
{
s_TextureFormatStringsApplePVR = BuildTextureStrings(kTextureFormatsValueApplePVR);
s_TextureFormatStringsAndroid = BuildTextureStrings(kTextureFormatsValueAndroid);
s_TextureFormatStringsSTV = BuildTextureStrings(kTextureFormatsValueSTV);
s_TextureFormatStringsWebGL = BuildTextureStrings(kTextureFormatsValueWebGL);
s_TextureFormatStringsDefault = BuildTextureStrings(kTextureFormatsValueDefault);
s_TextureFormatStringsSingleChannel = BuildTextureStrings(kTextureFormatsValueSingleChannel);
}
internal static string[] BuildTextureStrings(int[] texFormatValues)
{
string[] retval = new string[texFormatValues.Length];
for (int i = 0; i < texFormatValues.Length; i++)
{
int val = texFormatValues[i];
retval[i] = GetTextureFormatString((TextureImporterFormat)val);
}
return retval;
}
static string GetTextureFormatString(TextureImporterFormat format)
{
switch (format)
{
case TextureImporterFormat.DXT1:
return "RGB Crunched DTX1";
case TextureImporterFormat.DXT5:
return "RGB Crunched DTX5";
case TextureImporterFormat.RGB16:
return "RGB 16 bit";
case TextureImporterFormat.RGB24:
return "RGB 24 bit";
case TextureImporterFormat.Alpha8:
return "Alpha 8";
case TextureImporterFormat.ARGB16:
return "ARGB 16 bit";
case TextureImporterFormat.RGBA32:
return "RGBA 32 bit";
case TextureImporterFormat.ARGB32:
return "ARGB 32 bit";
case TextureImporterFormat.RGBA16:
return "RGBA 16 bit";
case TextureImporterFormat.RGBAHalf:
return "RGBA Half";
case TextureImporterFormat.BC4:
return "R Compressed BC4";
case TextureImporterFormat.BC5:
return "RG Compressed BC5";
case TextureImporterFormat.BC6H:
return "RGB HDR Compressed BC6H";
case TextureImporterFormat.BC7:
return "RGB(A) Compressed BC7";
case TextureImporterFormat.PVRTC_RGB2:
return "RGB Compressed PVRTC 2 bits";
case TextureImporterFormat.PVRTC_RGBA2:
return "RGBA Compressed PVRTC 2 bits";
case TextureImporterFormat.PVRTC_RGB4:
return "RGB Compressed PVRTC 4 bits";
case TextureImporterFormat.PVRTC_RGBA4:
return "RGBA Compressed PVRTC 4 bits";
case TextureImporterFormat.ETC_RGB4:
return "RGB Compressed ETC 4 bits";
case TextureImporterFormat.EAC_R:
return "11-bit R Compressed EAC 4 bit";
case TextureImporterFormat.EAC_R_SIGNED:
return "11-bit signed R Compressed EAC 4 bit";
case TextureImporterFormat.EAC_RG:
return "11-bit RG Compressed EAC 8 bit";
case TextureImporterFormat.EAC_RG_SIGNED:
return "11-bit signed RG Compressed EAC 8 bit";
case TextureImporterFormat.ETC2_RGB4:
return "RGB Compressed ETC2 4 bits";
case TextureImporterFormat.ETC2_RGB4_PUNCHTHROUGH_ALPHA:
return "RGB + 1-bit Alpha Compressed ETC2 4 bits";
case TextureImporterFormat.ETC2_RGBA8:
return "RGBA Compressed ETC2 8 bits";
#if UNITY_2019_1_OR_NEWER
case TextureImporterFormat.ASTC_4x4:
return "RGB(A) Compressed ASTC 4 x 4 block";
case TextureImporterFormat.ASTC_5x5:
return "RGB(A) Compressed ASTC 5 x 5 block";
case TextureImporterFormat.ASTC_6x6:
return "RGB(A) Compressed ASTC 6 x 6 block";
case TextureImporterFormat.ASTC_8x8:
return "RGB(A) Compressed ASTC 8 x 8 block";
case TextureImporterFormat.ASTC_10x10:
return "RGB(A) Compressed ASTC 10 x 10 block";
case TextureImporterFormat.ASTC_12x12:
return "RGB(A) Compressed ASTC 12 x 12 block";
#else
case TextureImporterFormat.ASTC_RGB_4x4:
return "RGB Compressed ASTC 4 x 4 block";
case TextureImporterFormat.ASTC_RGB_5x5:
return "RGB Compressed ASTC 5 x 5 block";
case TextureImporterFormat.ASTC_RGB_6x6:
return "RGB Compressed ASTC 6 x 6 block";
case TextureImporterFormat.ASTC_RGB_8x8:
return "RGB Compressed ASTC 8 x 8 block";
case TextureImporterFormat.ASTC_RGB_10x10:
return "RGB Compressed ASTC 10 x 10 block";
case TextureImporterFormat.ASTC_RGB_12x12:
return "RGB Compressed ASTC 12 x 12 block";
case TextureImporterFormat.ASTC_RGBA_4x4:
return "RGBA Compressed ASTC 4 x 4 block";
case TextureImporterFormat.ASTC_RGBA_5x5:
return "RGBA Compressed ASTC 5 x 5 block";
case TextureImporterFormat.ASTC_RGBA_6x6:
return "RGBA Compressed ASTC 6 x 6 block";
case TextureImporterFormat.ASTC_RGBA_8x8:
return "RGBA Compressed ASTC 8 x 8 block";
case TextureImporterFormat.ASTC_RGBA_10x10:
return "RGBA Compressed ASTC 10 x 10 block";
case TextureImporterFormat.ASTC_RGBA_12x12:
return "RGBA Compressed ASTC 12 x 12 block";
#endif
}
return "Unsupported";
}
}
}