381 lines
16 KiB
C#
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";
|
||
|
}
|
||
|
}
|
||
|
}
|