diff --git a/AssetRipper.TextureDecoder.ColorGenerator/AssetRipper.TextureDecoder.ColorGenerator.csproj b/AssetRipper.TextureDecoder.ColorGenerator/AssetRipper.TextureDecoder.ColorGenerator.csproj new file mode 100644 index 0000000..34dca93 --- /dev/null +++ b/AssetRipper.TextureDecoder.ColorGenerator/AssetRipper.TextureDecoder.ColorGenerator.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/AssetRipper.TextureDecoder.ColorGenerator/Program.cs b/AssetRipper.TextureDecoder.ColorGenerator/Program.cs new file mode 100644 index 0000000..6e241db --- /dev/null +++ b/AssetRipper.TextureDecoder.ColorGenerator/Program.cs @@ -0,0 +1,167 @@ +using System.CodeDom.Compiler; + +namespace AssetRipper.TextureDecoder.ColorGenerator; + +internal class Program +{ + private const string OutputNamespace = "AssetRipper.TextureDecoder.Rgb.Formats"; + private const string OutputFolder = "../../../../AssetRipper.TextureDecoder/Rgb/Formats/"; + + private static readonly Dictionary MinimumValues = new() + { + { typeof(byte), "byte.MinValue" }, + { typeof(sbyte), "sbyte.MinValue" }, + { typeof(short), "short.MinValue" }, + { typeof(ushort), "ushort.MinValue" }, + { typeof(Half), "default" }, + { typeof(float), "0f" }, + { typeof(double), "0d" }, + }; + + private static readonly Dictionary MaximumValues = new() + { + { typeof(byte), "byte.MaxValue" }, + { typeof(sbyte), "sbyte.MaxValue" }, + { typeof(short), "short.MaxValue" }, + { typeof(ushort), "ushort.MaxValue" }, + { typeof(Half), "(Half)1" }, + { typeof(float), "1f" }, + { typeof(double), "1d" }, + }; + + private static readonly Dictionary TypeNames = new() + { + { typeof(byte), "byte" }, + { typeof(sbyte), "sbyte" }, + { typeof(short), "short" }, + { typeof(ushort), "ushort" }, + { typeof(Half), "Half" }, + { typeof(float), "float" }, + { typeof(double), "double" }, + }; + + private static readonly List<(string, Type, bool, bool, bool, bool)> Colors = new() + { + ( "A8", typeof(byte), false, false, false, true ), + + ( "R8", typeof(byte), true, false, false, false ), + ( "RG16", typeof(byte), true, true, false, false ), + ( "RGB24", typeof(byte), true, true, true, false ), + ( "RGBA32", typeof(byte), true, true, true, true ), + + ( "R8Signed", typeof(sbyte), true, false, false, false ), + ( "RG16Signed", typeof(sbyte), true, true, false, false ), + ( "RGB24Signed", typeof(sbyte), true, true, true, false ), + ( "RGBA32Signed", typeof(sbyte), true, true, true, true ), + + ( "R16", typeof(ushort), true, false, false, false ), + ( "RG32", typeof(ushort), true, true, false, false ), + ( "RGB48", typeof(ushort), true, true, true, false ), + ( "RGBA64", typeof(ushort), true, true, true, true ), + + ( "R16Signed", typeof(short), true, false, false, false ), + ( "RG32Signed", typeof(short), true, true, false, false ), + ( "RGB48Signed", typeof(short), true, true, true, false ), + ( "RGBA64Signed", typeof(short), true, true, true, true ), + + ( "RHalf", typeof(Half), true, false, false, false ), + ( "RGHalf", typeof(Half), true, true, false, false ), + ( "RGBHalf", typeof(Half), true, true, true, false ), + ( "RGBAHalf", typeof(Half), true, true, true, true ), + + ( "RSingle", typeof(float), true, false, false, false ), + ( "RGSingle", typeof(float), true, true, false, false ), + ( "RGBSingle", typeof(float), true, true, true, false ), + ( "RGBASingle", typeof(float), true, true, true, true ), + }; + + static void Main() + { + foreach (var details in Colors) + { + WriteStruct(details); + } + Console.WriteLine("Done!"); + } + + private static void WriteStruct((string, Type, bool, bool, bool, bool) details) + { + string name = $"Color{details.Item1}"; + Console.WriteLine(name); + using FileStream stream = File.Create($"{OutputFolder}{name}.g.cs"); + using StreamWriter streamWriter = new StreamWriter(stream); + using IndentedTextWriter writer = new IndentedTextWriter(streamWriter, "\t"); + (_, Type type, bool hasRed, bool hasGreen, bool hasBlue, bool hasAlpha) = details; + WriteStruct(writer, name, type, hasRed, hasGreen, hasBlue, hasAlpha); + } + + private static void WriteStruct(IndentedTextWriter writer, string name, Type type, bool hasRed, bool hasGreen, bool hasBlue, bool hasAlpha) + { + string typeName = TypeNames[type]; + writer.WriteLine("//Auto-generated code. Do not modify."); + writer.WriteLine($"namespace {OutputNamespace}"); + writer.WriteLine('{'); + writer.Indent++; + + writer.WriteLine($"public partial struct {name} : IColor<{typeName}>"); + writer.WriteLine('{'); + writer.Indent++; + + WriteProperty(writer, hasRed, typeName, 'R', MinimumValues[type]); + writer.WriteLine(); + WriteProperty(writer, hasGreen, typeName, 'G', MinimumValues[type]); + writer.WriteLine(); + WriteProperty(writer, hasBlue, typeName, 'B', MinimumValues[type]); + writer.WriteLine(); + WriteProperty(writer, hasAlpha, typeName, 'A', MaximumValues[type]); + writer.WriteLine(); + + WriteGetChannels(writer, typeName); + writer.WriteLine(); + WriteSetChannels(writer, typeName); + + writer.Indent--; + writer.WriteLine('}'); + + writer.Indent--; + writer.WriteLine('}'); + } + + private static void WriteGetChannels(IndentedTextWriter writer, string typeName) + { + writer.WriteLine($"public void GetChannels(out {typeName} r, out {typeName} g, out {typeName} b, out {typeName} a)"); + writer.WriteLine('{'); + writer.Indent++; + writer.WriteLine("DefaultColorMethods.GetChannels(this, out r, out g, out b, out a);"); + writer.Indent--; + writer.WriteLine('}'); + } + + private static void WriteSetChannels(IndentedTextWriter writer, string typeName) + { + writer.WriteLine($"public void SetChannels({typeName} r, {typeName} g, {typeName} b, {typeName} a)"); + writer.WriteLine('{'); + writer.Indent++; + writer.WriteLine("DefaultColorMethods.SetChannels(ref this, r, g, b, a);"); + writer.Indent--; + writer.WriteLine('}'); + } + + private static void WriteProperty(IndentedTextWriter writer, bool hasColor, string typeName, char channel, string defaultValue) + { + if (hasColor) + { + writer.WriteLine($"public {typeName} {channel} {{ get; set; }}"); + } + else + { + writer.WriteLine($"public {typeName} {channel} "); + writer.WriteLine('{'); + writer.Indent++; + writer.WriteLine($"get => {defaultValue};"); + writer.WriteLine("set { }"); + writer.Indent--; + writer.WriteLine('}'); + } + } +} diff --git a/AssetRipper.TextureDecoder.TestGenerator/Program.cs b/AssetRipper.TextureDecoder.TestGenerator/Program.cs index 8f63154..dd9b3ce 100644 --- a/AssetRipper.TextureDecoder.TestGenerator/Program.cs +++ b/AssetRipper.TextureDecoder.TestGenerator/Program.cs @@ -15,17 +15,26 @@ namespace AssetRipper.TextureDecoder.TestGenerator new GenerationData(typeof(ColorA8), typeof(byte), 1), new GenerationData(typeof(ColorARGB16), typeof(byte), 2), new GenerationData(typeof(ColorARGB32), typeof(byte), 4), + new GenerationData(typeof(ColorBGRA32), typeof(byte), 4), new GenerationData(typeof(ColorR16), typeof(ushort), 2), + new GenerationData(typeof(ColorR16Signed), typeof(short), 2), new GenerationData(typeof(ColorR8), typeof(byte), 1), + new GenerationData(typeof(ColorR8Signed), typeof(sbyte), 1), new GenerationData(typeof(ColorRG16), typeof(byte), 2), + new GenerationData(typeof(ColorRG16Signed), typeof(sbyte), 2), new GenerationData(typeof(ColorRG32), typeof(ushort), 4), + new GenerationData(typeof(ColorRG32Signed), typeof(short), 4), new GenerationData(typeof(ColorRGB16), typeof(byte), 2), new GenerationData(typeof(ColorRGB24), typeof(byte), 3), + new GenerationData(typeof(ColorRGB24Signed), typeof(sbyte), 3), new GenerationData(typeof(ColorRGB48), typeof(ushort), 6), + new GenerationData(typeof(ColorRGB48Signed), typeof(short), 6), new GenerationData(typeof(ColorRGB9e5), typeof(double), 4), new GenerationData(typeof(ColorRGBA16), typeof(byte), 2), new GenerationData(typeof(ColorRGBA32), typeof(byte), 4), + new GenerationData(typeof(ColorRGBA32Signed), typeof(sbyte), 4), new GenerationData(typeof(ColorRGBA64), typeof(ushort), 8), + new GenerationData(typeof(ColorRGBA64Signed), typeof(short), 8), new GenerationData(typeof(ColorRGBAHalf), typeof(Half), 8), new GenerationData(typeof(ColorRGBASingle), typeof(float), 16), new GenerationData(typeof(ColorRGBHalf), typeof(Half), 6), @@ -38,14 +47,16 @@ namespace AssetRipper.TextureDecoder.TestGenerator private static readonly Dictionary randomValueDictionary = new() { + { typeof(sbyte), new ColorRandomValues("-0b01010101", "0b01110010", "-0b00001111", "-0b01000111", "0b01001110") }, { typeof(byte), new ColorRandomValues("0b11010101", "0b01110010", "0b10001111", "0b11000111", "0b01001110") }, + { typeof(short), new ColorRandomValues("-24000", "21354", "-80", "347", "31871") }, { typeof(ushort), new ColorRandomValues("44000", "21354", "60080", "347", "33871") }, { typeof(Half), new ColorRandomValues("(Half)0.447f", "(Half)0.224f", "(Half)0.95f", "(Half)0.897f", "(Half)0.333f") }, { typeof(float), new ColorRandomValues("0.447f", "0.224f", "0.95f", "0.897f", "0.333f") }, { typeof(double), new ColorRandomValues("0.447", "0.224", "0.95", "0.897", "0.333") }, }; - static void Main(string[] args) + static void Main() { Directory.CreateDirectory(OutputFolder); diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorBGRA32Tests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorBGRA32Tests.g.cs new file mode 100644 index 0000000..d666f29 --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorBGRA32Tests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorBGRA32Tests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(4)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorBGRA32 MakeRandomColor() + { + return new() + { + R = 0b11010101, + G = 0b01110010, + B = 0b10001111, + A = 0b11000111, + }; + } +} diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorR16SignedTests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorR16SignedTests.g.cs new file mode 100644 index 0000000..cb9e523 --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorR16SignedTests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorR16SignedTests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(2)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 31871; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorR16Signed MakeRandomColor() + { + return new() + { + R = -24000, + G = 21354, + B = -80, + A = 347, + }; + } +} diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorR8SignedTests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorR8SignedTests.g.cs new file mode 100644 index 0000000..436fb53 --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorR8SignedTests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorR8SignedTests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(1)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorR8Signed MakeRandomColor() + { + return new() + { + R = -0b01010101, + G = 0b01110010, + B = -0b00001111, + A = -0b01000111, + }; + } +} diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorRG16SignedTests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorRG16SignedTests.g.cs new file mode 100644 index 0000000..9f21f3b --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorRG16SignedTests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorRG16SignedTests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(2)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorRG16Signed MakeRandomColor() + { + return new() + { + R = -0b01010101, + G = 0b01110010, + B = -0b00001111, + A = -0b01000111, + }; + } +} diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorRG32SignedTests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorRG32SignedTests.g.cs new file mode 100644 index 0000000..291cf52 --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorRG32SignedTests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorRG32SignedTests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(4)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 31871; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorRG32Signed MakeRandomColor() + { + return new() + { + R = -24000, + G = 21354, + B = -80, + A = 347, + }; + } +} diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorRGB24SignedTests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorRGB24SignedTests.g.cs new file mode 100644 index 0000000..368126c --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorRGB24SignedTests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorRGB24SignedTests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(3)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorRGB24Signed MakeRandomColor() + { + return new() + { + R = -0b01010101, + G = 0b01110010, + B = -0b00001111, + A = -0b01000111, + }; + } +} diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorRGB48SignedTests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorRGB48SignedTests.g.cs new file mode 100644 index 0000000..a8ea982 --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorRGB48SignedTests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorRGB48SignedTests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(6)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 31871; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorRGB48Signed MakeRandomColor() + { + return new() + { + R = -24000, + G = 21354, + B = -80, + A = 347, + }; + } +} diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorRGBA32SignedTests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorRGBA32SignedTests.g.cs new file mode 100644 index 0000000..051c474 --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorRGBA32SignedTests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorRGBA32SignedTests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(4)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 0b01001110; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorRGBA32Signed MakeRandomColor() + { + return new() + { + R = -0b01010101, + G = 0b01110010, + B = -0b00001111, + A = -0b01000111, + }; + } +} diff --git a/AssetRipper.TextureDecoder.Tests/Formats/ColorRGBA64SignedTests.g.cs b/AssetRipper.TextureDecoder.Tests/Formats/ColorRGBA64SignedTests.g.cs new file mode 100644 index 0000000..8fdcd5a --- /dev/null +++ b/AssetRipper.TextureDecoder.Tests/Formats/ColorRGBA64SignedTests.g.cs @@ -0,0 +1,155 @@ +//This code is source generated. Do not edit manually. + +using AssetRipper.TextureDecoder.Rgb.Formats; +using System.Runtime.CompilerServices; + +namespace AssetRipper.TextureDecoder.Tests.Formats; + +public partial class ColorRGBA64SignedTests +{ + [Test] + public void CorrectSizeTest() + { + Assert.That(Unsafe.SizeOf(), Is.EqualTo(8)); + } + + [Test] + public void PropertyIsSymmetric_R() + { + var color = MakeRandomColor(); + var r = color.R; + color.R = r; + Assert.That(color.R, Is.EqualTo(r)); + } + + [Test] + public void PropertyIsSymmetric_G() + { + var color = MakeRandomColor(); + var g = color.G; + color.G = g; + Assert.That(color.G, Is.EqualTo(g)); + } + + [Test] + public void PropertyIsSymmetric_B() + { + var color = MakeRandomColor(); + var b = color.B; + color.B = b; + Assert.That(color.B, Is.EqualTo(b)); + } + + [Test] + public void PropertyIsSymmetric_A() + { + var color = MakeRandomColor(); + var a = color.A; + color.A = a; + Assert.That(color.A, Is.EqualTo(a)); + } + + [Test] + public void ChannelsAreIndependent_R() + { + var color = MakeRandomColor(); + var g = color.G; + var b = color.B; + var a = color.A; + color.R = 31871; + Assert.Multiple(() => + { + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_G() + { + var color = MakeRandomColor(); + var r = color.R; + var b = color.B; + var a = color.A; + color.G = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_B() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var a = color.A; + color.B = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void ChannelsAreIndependent_A() + { + var color = MakeRandomColor(); + var r = color.R; + var g = color.G; + var b = color.B; + color.A = 31871; + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + }); + } + + [Test] + public void GetMethodMatchesProperties() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + [Test] + public void MethodsAreSymmetric() + { + var color = MakeRandomColor(); + color.GetChannels(out var r, out var g, out var b, out var a); + color.SetChannels(r, g, b, a); + Assert.Multiple(() => + { + Assert.That(color.R, Is.EqualTo(r)); + Assert.That(color.G, Is.EqualTo(g)); + Assert.That(color.B, Is.EqualTo(b)); + Assert.That(color.A, Is.EqualTo(a)); + }); + } + + public static ColorRGBA64Signed MakeRandomColor() + { + return new() + { + R = -24000, + G = 21354, + B = -80, + A = 347, + }; + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorA8.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorA8.g.cs similarity index 69% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorA8.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorA8.g.cs index 19e4cc5..81a2019 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorA8.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorA8.g.cs @@ -1,29 +1,33 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorA8 : IColor + public partial struct ColorA8 : IColor { - public byte R + public byte R { get => byte.MinValue; set { } } - public byte G + + public byte G { get => byte.MinValue; set { } } - public byte B + + public byte B { get => byte.MinValue; set { } } + public byte A { get; set; } - + public void GetChannels(out byte r, out byte g, out byte b, out byte a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(byte r, byte g, byte b, byte a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorR16.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorR16.g.cs similarity index 69% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorR16.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorR16.g.cs index 10f7e07..22cb10b 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorR16.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorR16.g.cs @@ -1,29 +1,33 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorR16 : IColor + public partial struct ColorR16 : IColor { public ushort R { get; set; } - public ushort G + + public ushort G { get => ushort.MinValue; set { } } - public ushort B + + public ushort B { get => ushort.MinValue; set { } } - public ushort A + + public ushort A { get => ushort.MaxValue; set { } } - + public void GetChannels(out ushort r, out ushort g, out ushort b, out ushort a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(ushort r, ushort g, ushort b, ushort a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorR16Signed.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorR16Signed.g.cs new file mode 100644 index 0000000..a82f340 --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorR16Signed.g.cs @@ -0,0 +1,36 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorR16Signed : IColor + { + public short R { get; set; } + + public short G + { + get => short.MinValue; + set { } + } + + public short B + { + get => short.MinValue; + set { } + } + + public short A + { + get => short.MaxValue; + set { } + } + + public void GetChannels(out short r, out short g, out short b, out short a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(short r, short g, short b, short a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorR8.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorR8.g.cs similarity index 69% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorR8.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorR8.g.cs index ccc64cf..da941b9 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorR8.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorR8.g.cs @@ -1,29 +1,33 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorR8 : IColor + public partial struct ColorR8 : IColor { public byte R { get; set; } - public byte G + + public byte G { get => byte.MinValue; set { } } - public byte B + + public byte B { get => byte.MinValue; set { } } - public byte A + + public byte A { get => byte.MaxValue; set { } } - + public void GetChannels(out byte r, out byte g, out byte b, out byte a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(byte r, byte g, byte b, byte a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorR8Signed.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorR8Signed.g.cs new file mode 100644 index 0000000..8ae8f14 --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorR8Signed.g.cs @@ -0,0 +1,36 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorR8Signed : IColor + { + public sbyte R { get; set; } + + public sbyte G + { + get => sbyte.MinValue; + set { } + } + + public sbyte B + { + get => sbyte.MinValue; + set { } + } + + public sbyte A + { + get => sbyte.MaxValue; + set { } + } + + public void GetChannels(out sbyte r, out sbyte g, out sbyte b, out sbyte a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(sbyte r, sbyte g, sbyte b, sbyte a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16.g.cs similarity index 70% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16.g.cs index 9dbd384..5d75329 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16.g.cs @@ -1,25 +1,29 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRG16 : IColor + public partial struct ColorRG16 : IColor { public byte R { get; set; } + public byte G { get; set; } - public byte B + + public byte B { get => byte.MinValue; set { } } - public byte A + + public byte A { get => byte.MaxValue; set { } } - + public void GetChannels(out byte r, out byte g, out byte b, out byte a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(byte r, byte g, byte b, byte a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16Signed.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16Signed.g.cs new file mode 100644 index 0000000..1074ae6 --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG16Signed.g.cs @@ -0,0 +1,32 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorRG16Signed : IColor + { + public sbyte R { get; set; } + + public sbyte G { get; set; } + + public sbyte B + { + get => sbyte.MinValue; + set { } + } + + public sbyte A + { + get => sbyte.MaxValue; + set { } + } + + public void GetChannels(out sbyte r, out sbyte g, out sbyte b, out sbyte a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(sbyte r, sbyte g, sbyte b, sbyte a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32.g.cs similarity index 70% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32.g.cs index a1b6ab9..3cbc969 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32.g.cs @@ -1,25 +1,29 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRG32 : IColor + public partial struct ColorRG32 : IColor { public ushort R { get; set; } + public ushort G { get; set; } - public ushort B + + public ushort B { get => ushort.MinValue; set { } } - public ushort A + + public ushort A { get => ushort.MaxValue; set { } } - + public void GetChannels(out ushort r, out ushort g, out ushort b, out ushort a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(ushort r, ushort g, ushort b, ushort a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32Signed.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32Signed.g.cs new file mode 100644 index 0000000..5d10ea7 --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRG32Signed.g.cs @@ -0,0 +1,32 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorRG32Signed : IColor + { + public short R { get; set; } + + public short G { get; set; } + + public short B + { + get => short.MinValue; + set { } + } + + public short A + { + get => short.MaxValue; + set { } + } + + public void GetChannels(out short r, out short g, out short b, out short a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(short r, short g, short b, short a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24.g.cs similarity index 71% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24.g.cs index 774893a..e1a5f28 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24.g.cs @@ -1,21 +1,25 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGB24 : IColor + public partial struct ColorRGB24 : IColor { public byte R { get; set; } + public byte G { get; set; } + public byte B { get; set; } - public byte A + + public byte A { get => byte.MaxValue; set { } } - + public void GetChannels(out byte r, out byte g, out byte b, out byte a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(byte r, byte g, byte b, byte a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24Signed.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24Signed.g.cs new file mode 100644 index 0000000..0e31928 --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB24Signed.g.cs @@ -0,0 +1,28 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorRGB24Signed : IColor + { + public sbyte R { get; set; } + + public sbyte G { get; set; } + + public sbyte B { get; set; } + + public sbyte A + { + get => sbyte.MaxValue; + set { } + } + + public void GetChannels(out sbyte r, out sbyte g, out sbyte b, out sbyte a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(sbyte r, sbyte g, sbyte b, sbyte a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48.g.cs similarity index 72% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48.g.cs index c24a157..5a449f0 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48.g.cs @@ -1,21 +1,25 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGB48 : IColor + public partial struct ColorRGB48 : IColor { public ushort R { get; set; } + public ushort G { get; set; } + public ushort B { get; set; } - public ushort A + + public ushort A { get => ushort.MaxValue; set { } } - + public void GetChannels(out ushort r, out ushort g, out ushort b, out ushort a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(ushort r, ushort g, ushort b, ushort a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48Signed.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48Signed.g.cs new file mode 100644 index 0000000..e6a9071 --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGB48Signed.g.cs @@ -0,0 +1,28 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorRGB48Signed : IColor + { + public short R { get; set; } + + public short G { get; set; } + + public short B { get; set; } + + public short A + { + get => short.MaxValue; + set { } + } + + public void GetChannels(out short r, out short g, out short b, out short a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(short r, short g, short b, short a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32.g.cs similarity index 72% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32.g.cs index c186863..de10b80 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32.g.cs @@ -1,17 +1,21 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGBA32 : IColor + public partial struct ColorRGBA32 : IColor { public byte R { get; set; } + public byte G { get; set; } + public byte B { get; set; } + public byte A { get; set; } - + public void GetChannels(out byte r, out byte g, out byte b, out byte a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(byte r, byte g, byte b, byte a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32Signed.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32Signed.g.cs new file mode 100644 index 0000000..800ada2 --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA32Signed.g.cs @@ -0,0 +1,24 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorRGBA32Signed : IColor + { + public sbyte R { get; set; } + + public sbyte G { get; set; } + + public sbyte B { get; set; } + + public sbyte A { get; set; } + + public void GetChannels(out sbyte r, out sbyte g, out sbyte b, out sbyte a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(sbyte r, sbyte g, sbyte b, sbyte a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64.g.cs similarity index 73% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64.g.cs index 43756bf..101e09b 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64.g.cs @@ -1,17 +1,21 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGBA64 : IColor + public partial struct ColorRGBA64 : IColor { public ushort R { get; set; } + public ushort G { get; set; } + public ushort B { get; set; } + public ushort A { get; set; } - + public void GetChannels(out ushort r, out ushort g, out ushort b, out ushort a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(ushort r, ushort g, ushort b, ushort a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64Signed.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64Signed.g.cs new file mode 100644 index 0000000..d0ef45e --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBA64Signed.g.cs @@ -0,0 +1,24 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorRGBA64Signed : IColor + { + public short R { get; set; } + + public short G { get; set; } + + public short B { get; set; } + + public short A { get; set; } + + public void GetChannels(out short r, out short g, out short b, out short a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(short r, short g, short b, short a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBAHalf.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBAHalf.g.cs similarity index 72% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBAHalf.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBAHalf.g.cs index 1c3f245..831f2ec 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBAHalf.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBAHalf.g.cs @@ -1,17 +1,21 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGBAHalf : IColor + public partial struct ColorRGBAHalf : IColor { public Half R { get; set; } + public Half G { get; set; } + public Half B { get; set; } + public Half A { get; set; } - + public void GetChannels(out Half r, out Half g, out Half b, out Half a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(Half r, Half g, Half b, Half a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBASingle.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBASingle.cs deleted file mode 100644 index 14bcabe..0000000 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBASingle.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats -{ - public struct ColorRGBASingle : IColor - { - public float R { get; set; } - public float G { get; set; } - public float B { get; set; } - public float A { get; set; } - - public void GetChannels(out float r, out float g, out float b, out float a) - { - DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); - } - - public void SetChannels(float r, float g, float b, float a) - { - DefaultColorMethods.SetChannels(ref this, r, g, b, a); - } - } -} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBASingle.g.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBASingle.g.cs new file mode 100644 index 0000000..ffa7356 --- /dev/null +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBASingle.g.cs @@ -0,0 +1,24 @@ +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats +{ + public partial struct ColorRGBASingle : IColor + { + public float R { get; set; } + + public float G { get; set; } + + public float B { get; set; } + + public float A { get; set; } + + public void GetChannels(out float r, out float g, out float b, out float a) + { + DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); + } + + public void SetChannels(float r, float g, float b, float a) + { + DefaultColorMethods.SetChannels(ref this, r, g, b, a); + } + } +} diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBHalf.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBHalf.g.cs similarity index 70% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBHalf.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBHalf.g.cs index ad65b48..d7644c8 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBHalf.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBHalf.g.cs @@ -1,21 +1,25 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGBHalf : IColor + public partial struct ColorRGBHalf : IColor { public Half R { get; set; } + public Half G { get; set; } + public Half B { get; set; } - public Half A + + public Half A { get => (Half)1; set { } } - + public void GetChannels(out Half r, out Half g, out Half b, out Half a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(Half r, Half g, Half b, Half a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBSingle.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBSingle.g.cs similarity index 68% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBSingle.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBSingle.g.cs index ac7184e..14b5410 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBSingle.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGBSingle.g.cs @@ -1,21 +1,25 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGBSingle : IColor + public partial struct ColorRGBSingle : IColor { public float R { get; set; } + public float G { get; set; } + public float B { get; set; } - public float A + + public float A { - get => 1; + get => 1f; set { } } - + public void GetChannels(out float r, out float g, out float b, out float a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(float r, float g, float b, float a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGHalf.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGHalf.g.cs similarity index 69% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGHalf.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGHalf.g.cs index 947a616..90e79f9 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGHalf.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGHalf.g.cs @@ -1,25 +1,29 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGHalf : IColor + public partial struct ColorRGHalf : IColor { public Half R { get; set; } + public Half G { get; set; } - public Half B + + public Half B { get => default; set { } } - public Half A + + public Half A { get => (Half)1; set { } } - + public void GetChannels(out Half r, out Half g, out Half b, out Half a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(Half r, Half g, Half b, Half a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGSingle.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGSingle.g.cs similarity index 64% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRGSingle.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRGSingle.g.cs index 023f346..7d2a9e2 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGSingle.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRGSingle.g.cs @@ -1,25 +1,29 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRGSingle : IColor + public partial struct ColorRGSingle : IColor { public float R { get; set; } + public float G { get; set; } - public float B + + public float B { - get => default; + get => 0f; set { } } - public float A + + public float A { - get => 1; + get => 1f; set { } } - + public void GetChannels(out float r, out float g, out float b, out float a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(float r, float g, float b, float a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRHalf.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRHalf.g.cs similarity index 68% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRHalf.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRHalf.g.cs index 48d029e..d9faec0 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRHalf.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRHalf.g.cs @@ -1,29 +1,33 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRHalf : IColor + public partial struct ColorRHalf : IColor { public Half R { get; set; } - public Half G + + public Half G { get => default; set { } } - public Half B + + public Half B { get => default; set { } } - public Half A + + public Half A { get => (Half)1; set { } } - + public void GetChannels(out Half r, out Half g, out Half b, out Half a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(Half r, Half g, Half b, Half a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRSingle.cs b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRSingle.g.cs similarity index 60% rename from AssetRipper.TextureDecoder/Rgb/Formats/ColorRSingle.cs rename to AssetRipper.TextureDecoder/Rgb/Formats/ColorRSingle.g.cs index 3ca2cb2..67d5e8e 100644 --- a/AssetRipper.TextureDecoder/Rgb/Formats/ColorRSingle.cs +++ b/AssetRipper.TextureDecoder/Rgb/Formats/ColorRSingle.g.cs @@ -1,29 +1,33 @@ -namespace AssetRipper.TextureDecoder.Rgb.Formats +//Auto-generated code. Do not modify. +namespace AssetRipper.TextureDecoder.Rgb.Formats { - public struct ColorRSingle : IColor + public partial struct ColorRSingle : IColor { public float R { get; set; } - public float G + + public float G { - get => default; + get => 0f; set { } } - public float B + + public float B { - get => default; + get => 0f; set { } } - public float A + + public float A { - get => 1; + get => 1f; set { } } - + public void GetChannels(out float r, out float g, out float b, out float a) { DefaultColorMethods.GetChannels(this, out r, out g, out b, out a); } - + public void SetChannels(float r, float g, float b, float a) { DefaultColorMethods.SetChannels(ref this, r, g, b, a); diff --git a/TextureDecoder.sln b/TextureDecoder.sln index 1fa32ac..4fa2e37 100644 --- a/TextureDecoder.sln +++ b/TextureDecoder.sln @@ -31,6 +31,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AssetRipper.TextureDecoder. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AssetRipper.TextureDecoder.Benchmarks", "AssetRipper.TextureDecoder.Benchmarks\AssetRipper.TextureDecoder.Benchmarks.csproj", "{F85804F4-4864-412E-BDC6-8B6E2B5646A7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AssetRipper.TextureDecoder.ColorGenerator", "AssetRipper.TextureDecoder.ColorGenerator\AssetRipper.TextureDecoder.ColorGenerator.csproj", "{E9ED1120-1CEA-433E-9BFF-C4B20A34CC7B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -57,6 +59,10 @@ Global {F85804F4-4864-412E-BDC6-8B6E2B5646A7}.Debug|Any CPU.Build.0 = Debug|Any CPU {F85804F4-4864-412E-BDC6-8B6E2B5646A7}.Release|Any CPU.ActiveCfg = Release|Any CPU {F85804F4-4864-412E-BDC6-8B6E2B5646A7}.Release|Any CPU.Build.0 = Release|Any CPU + {E9ED1120-1CEA-433E-9BFF-C4B20A34CC7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9ED1120-1CEA-433E-9BFF-C4B20A34CC7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9ED1120-1CEA-433E-9BFF-C4B20A34CC7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9ED1120-1CEA-433E-9BFF-C4B20A34CC7B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE