2023-02-26 02:38:17 -05:00

36 lines
1.3 KiB
C#

using AssetRipper.SourceGenerated.Classes.ClassID_1006;
using AssetRipper.SourceGenerated.Enums;
namespace AssetRipper.SourceGenerated.Extensions;
public static class TextureImporterExtensions
{
public static void GetSwizzle(this ITextureImporter importer, out TextureImporterSwizzle channel0, out TextureImporterSwizzle channel1, out TextureImporterSwizzle channel2, out TextureImporterSwizzle channel3)
{
if (importer.Has_Swizzle_C1006())
{
uint value = importer.Swizzle_C1006;
channel0 = (TextureImporterSwizzle)(value & 0x_00_00_00_FF);
channel1 = (TextureImporterSwizzle)((value & 0x_00_00_FF_00) >> 8);
channel2 = (TextureImporterSwizzle)((value & 0x_00_FF_00_00) >> 16);
channel3 = (TextureImporterSwizzle)(value >> 24);
}
else
{
channel0 = TextureImporterSwizzle.R;
channel1 = TextureImporterSwizzle.G;
channel2 = TextureImporterSwizzle.B;
channel3 = TextureImporterSwizzle.A;
}
}
public static void SetSwizzle(this ITextureImporter importer, TextureImporterSwizzle channel0, TextureImporterSwizzle channel1, TextureImporterSwizzle channel2, TextureImporterSwizzle channel3)
{
if (importer.Has_Swizzle_C1006())
{
uint value = (byte)channel0 | ((uint)(byte)channel1 << 8) | ((uint)(byte)channel2 << 16) | ((uint)(byte)channel3 << 24);
importer.Swizzle_C1006 = value;
}
}
}