From 696f3b955fd9ee99899608b3aa9ab4b7b61a8565 Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Sat, 6 Jul 2024 00:04:07 +0200 Subject: [PATCH] Initial commit (WIP) --- HPPH.Benchmark/HPPH.Benchmark.csproj | 19 + HPPH.Benchmark/Program.cs | 1 + HPPH.DotSettings | 3 + HPPH.Generators/ColorFormatData.cs | 50 ++ HPPH.Generators/ColorFormatSourceGenerator.cs | 90 ++++ HPPH.Generators/ColorSortData.cs | 3 + HPPH.Generators/ColorSortSourceGenerator.cs | 135 ++++++ HPPH.Generators/Features/Average.cs | 47 ++ HPPH.Generators/Features/Colors.cs | 200 ++++++++ HPPH.Generators/Features/IGeneratorFeature.cs | 10 + HPPH.Generators/Features/MinMax.cs | 162 +++++++ HPPH.Generators/Features/Quantize.cs | 56 +++ HPPH.Generators/Features/Sum.cs | 129 ++++++ HPPH.Generators/HPPH.Generators.csproj | 21 + .../HPPH.Generators.csproj.DotSettings | 2 + HPPH.Reference/HPPH.Reference.csproj | 13 + HPPH.Reference/HPPHExtensions.cs | 14 + HPPH.Reference/PixelHelper.Average.cs | 43 ++ HPPH.Reference/PixelHelper.MinMax.cs | 73 +++ HPPH.Reference/PixelHelper.Quantize.cs | 8 + HPPH.Reference/PixelHelper.Sort.cs | 26 ++ HPPH.Reference/PixelHelper.Sum.cs | 55 +++ HPPH.Reference/PixelHelper.cs | 3 + HPPH.Test/AverageTests.cs | 65 +++ HPPH.Test/HPPH.Test.csproj | 29 ++ HPPH.Test/ImageHelper.cs | 44 ++ HPPH.Test/MinMaxTests.cs | 85 ++++ HPPH.Test/SortTests.cs | 143 ++++++ HPPH.Test/SumTests.cs | 65 +++ HPPH.sln | 49 ++ HPPH.sln.DotSettings | 2 + HPPH/Colors/Colors.cs | 22 + HPPH/Colors/IColor.cs | 34 ++ HPPH/Colors/IColorFormat.cs | 15 + .../ReadOnlyRefEnumerable.cs | 265 +++++++++++ HPPH/Data/Generic3ByteData.cs | 8 + HPPH/Data/Generic3ByteMinMax.cs | 17 + HPPH/Data/Generic4ByteData.cs | 9 + HPPH/Data/Generic4ByteMinMax.cs | 21 + HPPH/Data/Generic4LongData.cs | 9 + HPPH/Data/IMinMax.cs | 21 + HPPH/Data/ISum.cs | 9 + HPPH/Extensions/HPPHExtensions.cs | 94 ++++ .../ColorSortGeneratorAttribute.g.cs | 8 + .../PixelHelper.g.cs | 393 ++++++++++++++++ .../ColorABGR.g.cs | 57 +++ .../ColorARGB.g.cs | 57 +++ .../ColorBGR.g.cs | 55 +++ .../ColorBGRA.g.cs | 57 +++ .../ColorFormatABGR.Average.g.cs | 12 + .../ColorFormatABGR.MinMax.g.cs | 12 + .../ColorFormatABGR.Quantize.g.cs | 21 + .../ColorFormatABGR.Sum.g.cs | 12 + .../ColorFormatABGR.g.cs | 20 + .../ColorFormatARGB.Average.g.cs | 12 + .../ColorFormatARGB.MinMax.g.cs | 12 + .../ColorFormatARGB.Quantize.g.cs | 21 + .../ColorFormatARGB.Sum.g.cs | 12 + .../ColorFormatARGB.g.cs | 20 + .../ColorFormatBGR.Average.g.cs | 12 + .../ColorFormatBGR.MinMax.g.cs | 12 + .../ColorFormatBGR.Quantize.g.cs | 21 + .../ColorFormatBGR.Sum.g.cs | 12 + .../ColorFormatBGR.g.cs | 20 + .../ColorFormatBGRA.Average.g.cs | 12 + .../ColorFormatBGRA.MinMax.g.cs | 12 + .../ColorFormatBGRA.Quantize.g.cs | 21 + .../ColorFormatBGRA.Sum.g.cs | 12 + .../ColorFormatBGRA.g.cs | 20 + .../ColorFormatRGB.Average.g.cs | 12 + .../ColorFormatRGB.MinMax.g.cs | 12 + .../ColorFormatRGB.Quantize.g.cs | 21 + .../ColorFormatRGB.Sum.g.cs | 12 + .../ColorFormatRGB.g.cs | 20 + .../ColorFormatRGBA.Average.g.cs | 12 + .../ColorFormatRGBA.MinMax.g.cs | 12 + .../ColorFormatRGBA.Quantize.g.cs | 21 + .../ColorFormatRGBA.Sum.g.cs | 12 + .../ColorFormatRGBA.g.cs | 20 + .../ColorGeneratorAttribute.g.cs | 4 + .../ColorRGB.g.cs | 55 +++ .../ColorRGBA.g.cs | 57 +++ .../IColorFormat.Average.g.cs | 6 + .../IColorFormat.Instances.cs.g.cs | 15 + .../IColorFormat.MinMax.g.cs | 6 + .../IColorFormat.Quantize.g.cs | 6 + .../IColorFormat.Sum.g.cs | 6 + .../MinMaxABGR.g.cs | 52 +++ .../MinMaxARGB.g.cs | 52 +++ .../MinMaxBGR.g.cs | 49 ++ .../MinMaxBGRA.g.cs | 52 +++ .../MinMaxRGB.g.cs | 49 ++ .../MinMaxRGBA.g.cs | 52 +++ .../SumABGR.g.cs | 34 ++ .../SumARGB.g.cs | 34 ++ .../SumBGR.g.cs | 34 ++ .../SumBGRA.g.cs | 34 ++ .../SumRGB.g.cs | 34 ++ .../SumRGBA.g.cs | 34 ++ HPPH/HPPH.csproj | 20 + HPPH/HPPH.csproj.DotSettings | 15 + HPPH/Images/IImage.cs | 189 ++++++++ HPPH/Images/Image.cs | 428 ++++++++++++++++++ HPPH/Images/RefImage.cs | 367 +++++++++++++++ HPPH/PixelHelper.Average.cs | 89 ++++ HPPH/PixelHelper.MinMax.cs | 212 +++++++++ HPPH/PixelHelper.Quantize.cs | 91 ++++ HPPH/PixelHelper.Sort.cs | 45 ++ HPPH/PixelHelper.Sum.cs | 258 +++++++++++ HPPH/PixelHelper.cs | 6 + HPPH/Quantization/ColorCube.cs | 72 +++ HPPH/Quantization/SortTarget.cs | 6 + README.md | 3 +- sample_data/1.png | Bin 0 -> 2077538 bytes sample_data/2.png | Bin 0 -> 2447681 bytes sample_data/3.png | Bin 0 -> 2267863 bytes sample_data/4.png | Bin 0 -> 1760168 bytes sample_data/5.png | Bin 0 -> 2660471 bytes sample_data/6.png | Bin 0 -> 2389772 bytes sample_data/7.png | Bin 0 -> 2789826 bytes sample_data/8.png | Bin 0 -> 288292 bytes 121 files changed, 5723 insertions(+), 1 deletion(-) create mode 100644 HPPH.Benchmark/HPPH.Benchmark.csproj create mode 100644 HPPH.Benchmark/Program.cs create mode 100644 HPPH.DotSettings create mode 100644 HPPH.Generators/ColorFormatData.cs create mode 100644 HPPH.Generators/ColorFormatSourceGenerator.cs create mode 100644 HPPH.Generators/ColorSortData.cs create mode 100644 HPPH.Generators/ColorSortSourceGenerator.cs create mode 100644 HPPH.Generators/Features/Average.cs create mode 100644 HPPH.Generators/Features/Colors.cs create mode 100644 HPPH.Generators/Features/IGeneratorFeature.cs create mode 100644 HPPH.Generators/Features/MinMax.cs create mode 100644 HPPH.Generators/Features/Quantize.cs create mode 100644 HPPH.Generators/Features/Sum.cs create mode 100644 HPPH.Generators/HPPH.Generators.csproj create mode 100644 HPPH.Generators/HPPH.Generators.csproj.DotSettings create mode 100644 HPPH.Reference/HPPH.Reference.csproj create mode 100644 HPPH.Reference/HPPHExtensions.cs create mode 100644 HPPH.Reference/PixelHelper.Average.cs create mode 100644 HPPH.Reference/PixelHelper.MinMax.cs create mode 100644 HPPH.Reference/PixelHelper.Quantize.cs create mode 100644 HPPH.Reference/PixelHelper.Sort.cs create mode 100644 HPPH.Reference/PixelHelper.Sum.cs create mode 100644 HPPH.Reference/PixelHelper.cs create mode 100644 HPPH.Test/AverageTests.cs create mode 100644 HPPH.Test/HPPH.Test.csproj create mode 100644 HPPH.Test/ImageHelper.cs create mode 100644 HPPH.Test/MinMaxTests.cs create mode 100644 HPPH.Test/SortTests.cs create mode 100644 HPPH.Test/SumTests.cs create mode 100644 HPPH.sln create mode 100644 HPPH.sln.DotSettings create mode 100644 HPPH/Colors/Colors.cs create mode 100644 HPPH/Colors/IColor.cs create mode 100644 HPPH/Colors/IColorFormat.cs create mode 100644 HPPH/CommunityToolkit.HighPerformance/ReadOnlyRefEnumerable.cs create mode 100644 HPPH/Data/Generic3ByteData.cs create mode 100644 HPPH/Data/Generic3ByteMinMax.cs create mode 100644 HPPH/Data/Generic4ByteData.cs create mode 100644 HPPH/Data/Generic4ByteMinMax.cs create mode 100644 HPPH/Data/Generic4LongData.cs create mode 100644 HPPH/Data/IMinMax.cs create mode 100644 HPPH/Data/ISum.cs create mode 100644 HPPH/Extensions/HPPHExtensions.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSortSourceGenerator/ColorSortGeneratorAttribute.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSortSourceGenerator/PixelHelper.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorABGR.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorARGB.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorBGR.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorBGRA.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Average.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.MinMax.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Quantize.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Sum.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Average.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.MinMax.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Quantize.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Sum.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Average.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.MinMax.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Quantize.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Sum.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Average.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.MinMax.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Quantize.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Sum.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Average.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.MinMax.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Quantize.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Sum.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Average.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.MinMax.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Quantize.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Sum.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorGeneratorAttribute.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorRGB.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorRGBA.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Average.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Instances.cs.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.MinMax.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Quantize.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Sum.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxABGR.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxARGB.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxBGR.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxBGRA.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxRGB.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxRGBA.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumABGR.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumARGB.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumBGR.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumBGRA.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumRGB.g.cs create mode 100644 HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumRGBA.g.cs create mode 100644 HPPH/HPPH.csproj create mode 100644 HPPH/HPPH.csproj.DotSettings create mode 100644 HPPH/Images/IImage.cs create mode 100644 HPPH/Images/Image.cs create mode 100644 HPPH/Images/RefImage.cs create mode 100644 HPPH/PixelHelper.Average.cs create mode 100644 HPPH/PixelHelper.MinMax.cs create mode 100644 HPPH/PixelHelper.Quantize.cs create mode 100644 HPPH/PixelHelper.Sort.cs create mode 100644 HPPH/PixelHelper.Sum.cs create mode 100644 HPPH/PixelHelper.cs create mode 100644 HPPH/Quantization/ColorCube.cs create mode 100644 HPPH/Quantization/SortTarget.cs create mode 100644 sample_data/1.png create mode 100644 sample_data/2.png create mode 100644 sample_data/3.png create mode 100644 sample_data/4.png create mode 100644 sample_data/5.png create mode 100644 sample_data/6.png create mode 100644 sample_data/7.png create mode 100644 sample_data/8.png diff --git a/HPPH.Benchmark/HPPH.Benchmark.csproj b/HPPH.Benchmark/HPPH.Benchmark.csproj new file mode 100644 index 0000000..d519e0a --- /dev/null +++ b/HPPH.Benchmark/HPPH.Benchmark.csproj @@ -0,0 +1,19 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + + + + + + diff --git a/HPPH.Benchmark/Program.cs b/HPPH.Benchmark/Program.cs new file mode 100644 index 0000000..a751bf5 --- /dev/null +++ b/HPPH.Benchmark/Program.cs @@ -0,0 +1 @@ +Console.WriteLine("Empty"); \ No newline at end of file diff --git a/HPPH.DotSettings b/HPPH.DotSettings new file mode 100644 index 0000000..8860971 --- /dev/null +++ b/HPPH.DotSettings @@ -0,0 +1,3 @@ + + BGR + BGRA \ No newline at end of file diff --git a/HPPH.Generators/ColorFormatData.cs b/HPPH.Generators/ColorFormatData.cs new file mode 100644 index 0000000..02625b7 --- /dev/null +++ b/HPPH.Generators/ColorFormatData.cs @@ -0,0 +1,50 @@ +using System.Text; + +namespace HPPH.Generators; + +internal readonly struct ColorFormatData(string typeName, int bpp, char firstEntry, char secondEntry, char thirdEntry, char fourthEntry) +{ + public readonly string TypeName = typeName; + public readonly int Bpp = bpp; + public readonly string FirstEntry = firstEntry.ToString().ToLowerInvariant(); + public readonly string SecondEntry = secondEntry.ToString().ToLowerInvariant(); + public readonly string ThirdEntry = thirdEntry.ToString().ToLowerInvariant(); + public readonly string FourthEntry = fourthEntry.ToString().ToLowerInvariant(); + + public string FirstEntryName => GetEntryName(FirstEntry); + public string SecondEntryName => GetEntryName(SecondEntry); + public string ThirdEntryName => GetEntryName(ThirdEntry); + public string FourthEntryName => GetEntryName(FourthEntry); + + public string Format + { + get + { + StringBuilder sb = new(); + + if (!string.IsNullOrWhiteSpace(FirstEntry)) + sb.Append(FirstEntry); + + if (!string.IsNullOrWhiteSpace(SecondEntry)) + sb.Append(SecondEntry); + + if (!string.IsNullOrWhiteSpace(ThirdEntry)) + sb.Append(ThirdEntry); + + if (!string.IsNullOrWhiteSpace(FourthEntry)) + sb.Append(FourthEntry); + + return sb.ToString().ToUpper(); + } + } + + private static string GetEntryName(string entry) + => entry switch + { + "a" => "Alpha", + "r" => "Red", + "g" => "Green", + "b" => "Blue", + _ => string.Empty + }; +} \ No newline at end of file diff --git a/HPPH.Generators/ColorFormatSourceGenerator.cs b/HPPH.Generators/ColorFormatSourceGenerator.cs new file mode 100644 index 0000000..42e7b72 --- /dev/null +++ b/HPPH.Generators/ColorFormatSourceGenerator.cs @@ -0,0 +1,90 @@ +using System.Collections.Immutable; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Text; + +namespace HPPH.Generators; + +[Generator(LanguageNames.CSharp)] +public class ColorSourceGenerator : IIncrementalGenerator +{ + #region Properties & Fields + + private static readonly Regex COLOR_FORMAT_REGEX = new("^Color(?[ARGB]{3,4})$", RegexOptions.Compiled); + + private static readonly IGeneratorFeature[] FEATURES = + [ + new Colors(), + new Average(), + new MinMax(), + new Sum(), + new Quantize() + ]; + + private const string COLOR_GENERATOR_ATTRIBUTE_SOURCE = """ + namespace HPPH; + + [AttributeUsage(AttributeTargets.Struct)] + internal class ColorGeneratorAttribute : Attribute; + """; + + #endregion + + #region Methods + + public void Initialize(IncrementalGeneratorInitializationContext context) + { + // if (!Debugger.IsAttached) + // Debugger.Launch(); + + context.RegisterPostInitializationOutput(ctx => ctx.AddSource("ColorGeneratorAttribute.g.cs", SourceText.From(COLOR_GENERATOR_ATTRIBUTE_SOURCE, Encoding.UTF8))); + + IncrementalValueProvider> classes = context.SyntaxProvider + .ForAttributeWithMetadataName("HPPH.ColorGeneratorAttribute", static (_, __) => true, Transform) + .Where(type => type.HasValue) + .Select((data, _) => data!.Value) + .Collect(); + context.RegisterSourceOutput(classes, GenerateCode); + } + + private static ColorFormatData? Transform(GeneratorAttributeSyntaxContext context, CancellationToken cancellationToken) + { + if (context.TargetNode is not StructDeclarationSyntax structDeclaration) return null; + if (context.SemanticModel.GetDeclaredSymbol(structDeclaration, cancellationToken) is not ITypeSymbol type) return null; + + Match m = COLOR_FORMAT_REGEX.Match(type.Name); + if (!m.Success) return null; + + string colorFormat = m.Groups["colorFormat"].Value; + if (colorFormat.Distinct().Count() != colorFormat.Length) return null; + + return new ColorFormatData(type.Name, + colorFormat.Length, + colorFormat.Length > 0 ? colorFormat[0] : ' ', + colorFormat.Length > 1 ? colorFormat[1] : ' ', + colorFormat.Length > 2 ? colorFormat[2] : ' ', + colorFormat.Length > 3 ? colorFormat[3] : ' '); + } + + private static void GenerateCode(SourceProductionContext context, ImmutableArray colorFormats) + { + if (colorFormats.IsDefaultOrEmpty) return; + + foreach (ColorFormatData formatData in colorFormats) + { + foreach (IGeneratorFeature feature in FEATURES) + foreach ((string name, string source) in feature.GenerateFor(formatData)) + context.AddSource($"{name}.g.cs", SourceText.From(source, Encoding.UTF8)); + } + + foreach (IGeneratorFeature feature in FEATURES) + foreach ((string name, string source) in feature.GenerateFor(colorFormats)) + context.AddSource($"{name}.g.cs", SourceText.From(source, Encoding.UTF8)); + } + + #endregion +} \ No newline at end of file diff --git a/HPPH.Generators/ColorSortData.cs b/HPPH.Generators/ColorSortData.cs new file mode 100644 index 0000000..730c498 --- /dev/null +++ b/HPPH.Generators/ColorSortData.cs @@ -0,0 +1,3 @@ +namespace HPPH.Generators; + +internal record struct ColorSortData(string Namespace, string Class, string ClassModifiers, string Signature, string DataTypeName, string SortValueName); \ No newline at end of file diff --git a/HPPH.Generators/ColorSortSourceGenerator.cs b/HPPH.Generators/ColorSortSourceGenerator.cs new file mode 100644 index 0000000..c05c75d --- /dev/null +++ b/HPPH.Generators/ColorSortSourceGenerator.cs @@ -0,0 +1,135 @@ +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Linq; +using System.Text; +using System.Threading; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Text; + +namespace HPPH.Generators; + +[Generator(LanguageNames.CSharp)] +public class ColorSortSourceGenerator : IIncrementalGenerator +{ + #region Properties & Fields + + private const string SORT_GENERATOR_ATTRIBUTE_SOURCE = """ + namespace HPPH; + + [AttributeUsage(AttributeTargets.Method)] + internal class ColorSortGeneratorAttribute(string dataTypeName, string sortValueName) : Attribute + { + public string DataTypeName { get; } = dataTypeName; + public string SortValueName { get; } = sortValueName; + } + """; + + #endregion + + #region Methods + + public void Initialize(IncrementalGeneratorInitializationContext context) + { + //if (!Debugger.IsAttached) + // Debugger.Launch(); + + context.RegisterPostInitializationOutput(ctx => ctx.AddSource("ColorSortGeneratorAttribute.g.cs", SourceText.From(SORT_GENERATOR_ATTRIBUTE_SOURCE, Encoding.UTF8))); + + IncrementalValueProvider> classes = context.SyntaxProvider + .ForAttributeWithMetadataName("HPPH.ColorSortGeneratorAttribute", static (_, __) => true, Transform) + .Where(type => type.HasValue) + .Select((data, _) => data!.Value) + .Collect(); + context.RegisterSourceOutput(classes, GenerateCode); + } + + private static ColorSortData? Transform(GeneratorAttributeSyntaxContext context, CancellationToken cancellationToken) + { + if (context.TargetNode is not MethodDeclarationSyntax methodDeclaration) return null; + if (context.SemanticModel.GetDeclaredSymbol(methodDeclaration, cancellationToken) is not IMethodSymbol method) return null; + if (!method.IsPartialDefinition) return null; + + foreach (AttributeData attribute in method.GetAttributes()) + { + if (attribute.AttributeClass?.Name != "ColorSortGeneratorAttribute") + continue; + + if (!attribute.ConstructorArguments.IsEmpty) + { + ImmutableArray args = attribute.ConstructorArguments; + if (args.Any(arg => arg.Kind == TypedConstantKind.Error)) break; + + return new ColorSortData(method.ContainingNamespace.Name, method.ContainingType.Name, ((ClassDeclarationSyntax)methodDeclaration.Parent!).Modifiers.ToString(), $"{methodDeclaration.Modifiers} {methodDeclaration.ReturnType} {methodDeclaration.Identifier}{methodDeclaration.TypeParameterList}{methodDeclaration.ParameterList} {methodDeclaration.ConstraintClauses}", args[0].Value!.ToString(), args[1].Value!.ToString()); + } + } + + return null; + } + + private static void GenerateCode(SourceProductionContext context, ImmutableArray colorSorts) + { + if (colorSorts.IsDefaultOrEmpty) return; + + Dictionary<(string, string, string), string> sourceMapping = colorSorts.Select(x => (x.Namespace, x.Class, x.ClassModifiers)).Distinct().ToDictionary(x => x, _ => string.Empty); + + foreach (ColorSortData colorSort in colorSorts) + sourceMapping[(colorSort.Namespace, colorSort.Class, colorSort.ClassModifiers)] += GenerateSortMethodSource(colorSort); + + foreach (KeyValuePair<(string @namespace, string @class, string classModifier), string> data in sourceMapping) + { + context.AddSource($"{data.Key.@class}.g.cs", SourceText.From($$""" + using System.Buffers; + + namespace {{data.Key.@namespace}}; + + {{data.Key.classModifier}} class {{data.Key.@class}} + { + {{data.Value}} + } + """, Encoding.UTF8)); + } + } + + private static string GenerateSortMethodSource(ColorSortData colorSort) + => $$""" + {{colorSort.Signature}} + { + fixed ({{colorSort.DataTypeName}}* ptr = colors) + { + {{colorSort.DataTypeName}}* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for ({{colorSort.DataTypeName}}* color = ptr; color < end; color++) + histogram[(*color).{{colorSort.SortValueName}}]++; + + {{colorSort.DataTypeName}}[] bucketsArray = ArrayPool<{{colorSort.DataTypeName}}>.Shared.Rent(colors.Length); + try + { + Span<{{colorSort.DataTypeName}}> buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for ({{colorSort.DataTypeName}}* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).{{colorSort.SortValueName}}]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool<{{colorSort.DataTypeName}}>.Shared.Return(bucketsArray); + } + } + } + + """; + + #endregion +} \ No newline at end of file diff --git a/HPPH.Generators/Features/Average.cs b/HPPH.Generators/Features/Average.cs new file mode 100644 index 0000000..0441165 --- /dev/null +++ b/HPPH.Generators/Features/Average.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Collections.Immutable; + +namespace HPPH.Generators; + +internal class Average : IGeneratorFeature +{ + public IEnumerable<(string name, string source)> GenerateFor(ColorFormatData colorFormat) + { + yield return ($"ColorFormat{colorFormat.Format}.Average", GenerateColorFormatAverage(colorFormat)); + } + + public IEnumerable<(string name, string source)> GenerateFor(ImmutableArray colorFormats) + { + yield return ("IColorFormat.Average", GenerateColorFormatInterfaceAverage()); + } + + private static string GenerateColorFormatAverage(ColorFormatData colorFormat) + { + return $$""" + using System.Runtime.InteropServices; + + namespace HPPH; + + public sealed partial class ColorFormat{{colorFormat.Format}} + { + #region Methods + + unsafe IColor IColorFormat.Average(ReadOnlySpan data) => PixelHelper.Average(MemoryMarshal.Cast(data)); + + #endregion + } + """; + } + + private static string GenerateColorFormatInterfaceAverage() + { + return """ + namespace HPPH; + + public partial interface IColorFormat + { + internal IColor Average(ReadOnlySpan data); + } + """; + } +} \ No newline at end of file diff --git a/HPPH.Generators/Features/Colors.cs b/HPPH.Generators/Features/Colors.cs new file mode 100644 index 0000000..d60bc18 --- /dev/null +++ b/HPPH.Generators/Features/Colors.cs @@ -0,0 +1,200 @@ +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Text; + +namespace HPPH.Generators; + +internal class Colors : IGeneratorFeature +{ + public IEnumerable<(string name, string source)> GenerateFor(ColorFormatData colorFormat) + { + string colorStructCode = GenerateColorStructCode(colorFormat); + if (!string.IsNullOrWhiteSpace(colorStructCode)) + { + yield return (colorFormat.TypeName, colorStructCode!); + yield return ($"ColorFormat{colorFormat.Format}", GenerateColorFormatCode(colorFormat)); + } + } + + public IEnumerable<(string name, string source)> GenerateFor(ImmutableArray colorFormats) + { + yield return ("IColorFormat.Instances.cs", GenerateColorFormats(colorFormats)); + } + + private static string GenerateColorStructCode(ColorFormatData colorFormat) + => colorFormat.Bpp switch + { + 3 => $$""" + // ReSharper disable ConvertToAutoProperty + // ReSharper disable ConvertToAutoPropertyWhenPossible + // ReSharper disable ReplaceWithPrimaryConstructorParameter + + using System.Diagnostics; + using System.Runtime.InteropServices; + + namespace HPPH; + + /// + /// Represents a color in 24 bit {{colorFormat.Format}}-format. + /// + /// + /// Initializes a new instance of the class. + /// + /// The {{colorFormat.FirstEntryName}}-component of the color. + /// The {{colorFormat.SecondEntryName}}-component of the color. + /// The {{colorFormat.ThirdEntryName}}-component of the color. + [DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] + [StructLayout(LayoutKind.Sequential)] + public readonly partial struct {{colorFormat.TypeName}}(byte {{colorFormat.FirstEntry}}, byte {{colorFormat.SecondEntry}}, byte {{colorFormat.ThirdEntry}}): IColor + { + #region Properties & Fields + + /// + public static IColorFormat ColorFormat => IColorFormat.{{colorFormat.Format}}; + + private readonly byte _{{colorFormat.FirstEntry}} = {{colorFormat.FirstEntry}}; + private readonly byte _{{colorFormat.SecondEntry}} = {{colorFormat.SecondEntry}}; + private readonly byte _{{colorFormat.ThirdEntry}} = {{colorFormat.ThirdEntry}}; + + /// + public byte R => _r; + + /// + public byte G => _g; + + /// + public byte B => _b; + + /// + public byte A => byte.MaxValue; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + /// + public static IColor Create(byte r, byte g, byte b, byte a) => new {{colorFormat.TypeName}}({{colorFormat.FirstEntry}}, {{colorFormat.SecondEntry}}, {{colorFormat.ThirdEntry}}); + + #endregion + } + + """, + + 4 => $$""" + // ReSharper disable ConvertToAutoProperty + // ReSharper disable ConvertToAutoPropertyWhenPossible + // ReSharper disable ReplaceWithPrimaryConstructorParameter + + using System.Diagnostics; + using System.Runtime.InteropServices; + + namespace HPPH; + + /// + /// Represents a color in 32 bit {{colorFormat.Format}}-format. + /// + /// + /// Initializes a new instance of the class. + /// + /// The {{colorFormat.FirstEntryName}}-component of the color. + /// The {{colorFormat.SecondEntryName}}-component of the color. + /// The {{colorFormat.ThirdEntryName}}-component of the color. + /// The {{colorFormat.FourthEntryName}}-component of the color. + [DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] + [StructLayout(LayoutKind.Sequential)] + public readonly partial struct {{colorFormat.TypeName}}(byte {{colorFormat.FirstEntry}}, byte {{colorFormat.SecondEntry}}, byte {{colorFormat.ThirdEntry}}, byte {{colorFormat.FourthEntry}}) : IColor + { + #region Properties & Fields + + /// + public static IColorFormat ColorFormat => IColorFormat.{{colorFormat.Format}}; + + private readonly byte _{{colorFormat.FirstEntry}} = {{colorFormat.FirstEntry}}; + private readonly byte _{{colorFormat.SecondEntry}} = {{colorFormat.SecondEntry}}; + private readonly byte _{{colorFormat.ThirdEntry}} = {{colorFormat.ThirdEntry}}; + private readonly byte _{{colorFormat.FourthEntry}} = {{colorFormat.FourthEntry}}; + + /// + public byte R => _r; + + /// + public byte G => _g; + + /// + public byte B => _b; + + /// + public byte A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + /// + public static IColor Create(byte r, byte g, byte b, byte a) => new {{colorFormat.TypeName}}({{colorFormat.FirstEntry}}, {{colorFormat.SecondEntry}}, {{colorFormat.ThirdEntry}}, {{colorFormat.FourthEntry}}); + + #endregion + } + + """, + _ => null + }; + + private static string GenerateColorFormatCode(ColorFormatData colorFormat) + { + return $$""" + namespace HPPH; + + public sealed partial class ColorFormat{{colorFormat.Format}} : IColorFormat + { + #region Properties & Fields + + public static ColorFormat{{colorFormat.Format}} Instance { get; } = new(); + + public int BytesPerPixel => {{colorFormat.Bpp}}; + + public string Name => "{{colorFormat.Format}}"; + + #endregion + + #region Constructors + + private ColorFormat{{colorFormat.Format}}() {} + + #endregion + } + """; + } + + private static string GenerateColorFormats(ImmutableArray colorFormats) + { + StringBuilder sb = new(); + sb.AppendLine(""" + namespace HPPH; + + public partial interface IColorFormat + { + #region Instances + """); + + sb.AppendLine(); + + foreach (ColorFormatData colorFormat in colorFormats) + sb.AppendLine($" public static ColorFormat{colorFormat.Format} {colorFormat.Format} => ColorFormat{colorFormat.Format}.Instance;"); + + sb.AppendLine(); + + sb.AppendLine(""" + #endregion + } + """); + + return sb.ToString(); + } +} \ No newline at end of file diff --git a/HPPH.Generators/Features/IGeneratorFeature.cs b/HPPH.Generators/Features/IGeneratorFeature.cs new file mode 100644 index 0000000..9c7a8e2 --- /dev/null +++ b/HPPH.Generators/Features/IGeneratorFeature.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using System.Collections.Immutable; + +namespace HPPH.Generators; + +internal interface IGeneratorFeature +{ + public IEnumerable<(string name, string source)> GenerateFor(ColorFormatData colorFormat); + public IEnumerable<(string name, string source)> GenerateFor(ImmutableArray colorFormats); +} \ No newline at end of file diff --git a/HPPH.Generators/Features/MinMax.cs b/HPPH.Generators/Features/MinMax.cs new file mode 100644 index 0000000..c84aeda --- /dev/null +++ b/HPPH.Generators/Features/MinMax.cs @@ -0,0 +1,162 @@ +using System.Collections.Generic; +using System.Collections.Immutable; + +namespace HPPH.Generators; + +internal class MinMax : IGeneratorFeature +{ + public IEnumerable<(string name, string source)> GenerateFor(ColorFormatData colorFormat) + { + yield return ($"MinMax{colorFormat.Format}", GenerateMinMaxStruct(colorFormat)); + yield return ($"ColorFormat{colorFormat.Format}.MinMax", GenerateColorFormatMinMax(colorFormat)); + } + + public IEnumerable<(string name, string source)> GenerateFor(ImmutableArray colorFormats) + { + yield return ("IColorFormat.MinMax", GenerateColorFormatInterfaceMinMax()); + } + + private static string GenerateMinMaxStruct(ColorFormatData colorFormat) + => colorFormat.Bpp switch + { + 3 => $$""" + // ReSharper disable ConvertToAutoProperty + // ReSharper disable ReplaceWithPrimaryConstructorParameter + + using System.Diagnostics; + using System.Runtime.InteropServices; + + namespace HPPH; + + [DebuggerDisplay("[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]")] + [StructLayout(LayoutKind.Sequential)] + public readonly partial struct MinMax{{colorFormat.Format}}(byte {{colorFormat.FirstEntry}}Min, byte {{colorFormat.FirstEntry}}Max, byte {{colorFormat.SecondEntry}}Min, byte {{colorFormat.SecondEntry}}Max, byte {{colorFormat.ThirdEntry}}Min, byte {{colorFormat.ThirdEntry}}Max) : IMinMax + { + #region Properties & Fields + + private readonly byte _{{colorFormat.FirstEntry}}Min = {{colorFormat.FirstEntry}}Min; + private readonly byte _{{colorFormat.FirstEntry}}Max = {{colorFormat.FirstEntry}}Max; + + private readonly byte _{{colorFormat.SecondEntry}}Min = {{colorFormat.SecondEntry}}Min; + private readonly byte _{{colorFormat.SecondEntry}}Max = {{colorFormat.SecondEntry}}Max; + + private readonly byte _{{colorFormat.ThirdEntry}}Min = {{colorFormat.ThirdEntry}}Min; + private readonly byte _{{colorFormat.ThirdEntry}}Max = {{colorFormat.ThirdEntry}}Max; + + public byte RedMin => _rMin; + public byte RedMax => _rMax; + + public byte GreenMin => _gMin; + public byte GreenMax => _gMax; + + public byte BlueMin => _bMin; + public byte BlueMax => _bMax; + + public byte AlphaMin => byte.MaxValue; + public byte AlphaMax => byte.MaxValue; + + public byte RedRange => (byte)(_rMax - _rMin); + public byte GreenRange => (byte)(_gMax - _gMin); + public byte BlueRange => (byte)(_bMax - _bMin); + public byte AlphaRange => 0; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]"; + + #endregion + } + + """, + + 4 => $$""" + // ReSharper disable ConvertToAutoProperty + // ReSharper disable ReplaceWithPrimaryConstructorParameter + + using System.Diagnostics; + using System.Runtime.InteropServices; + + namespace HPPH; + + [DebuggerDisplay("[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]")] + [StructLayout(LayoutKind.Sequential)] + public readonly partial struct MinMax{{colorFormat.Format}}(byte {{colorFormat.FirstEntry}}Min, byte {{colorFormat.FirstEntry}}Max, byte {{colorFormat.SecondEntry}}Min, byte {{colorFormat.SecondEntry}}Max, byte {{colorFormat.ThirdEntry}}Min, byte {{colorFormat.ThirdEntry}}Max, byte {{colorFormat.FourthEntry}}Min, byte {{colorFormat.FourthEntry}}Max) : IMinMax + { + #region Properties & Fields + + private readonly byte _{{colorFormat.FirstEntry}}Min = {{colorFormat.FirstEntry}}Min; + private readonly byte _{{colorFormat.FirstEntry}}Max = {{colorFormat.FirstEntry}}Max; + + private readonly byte _{{colorFormat.SecondEntry}}Min = {{colorFormat.SecondEntry}}Min; + private readonly byte _{{colorFormat.SecondEntry}}Max = {{colorFormat.SecondEntry}}Max; + + private readonly byte _{{colorFormat.ThirdEntry}}Min = {{colorFormat.ThirdEntry}}Min; + private readonly byte _{{colorFormat.ThirdEntry}}Max = {{colorFormat.ThirdEntry}}Max; + + private readonly byte _{{colorFormat.FourthEntry}}Min = {{colorFormat.FourthEntry}}Min; + private readonly byte _{{colorFormat.FourthEntry}}Max = {{colorFormat.FourthEntry}}Max; + + public byte RedMin => _rMin; + public byte RedMax => _rMax; + + public byte GreenMin => _gMin; + public byte GreenMax => _gMax; + + public byte BlueMin => _bMin; + public byte BlueMax => _bMax; + + public byte AlphaMin => _aMin; + public byte AlphaMax => _aMax; + + public byte RedRange => (byte)(_rMax - _rMin); + public byte GreenRange => (byte)(_gMax - _gMin); + public byte BlueRange => (byte)(_bMax - _bMin); + public byte AlphaRange => (byte)(_aMax - _aMin); + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]"; + + #endregion + } + + """, + _ => null + }; + + private static string GenerateColorFormatMinMax(ColorFormatData colorFormat) + { + return $$""" + using System.Runtime.InteropServices; + + namespace HPPH; + + public sealed partial class ColorFormat{{colorFormat.Format}} + { + #region Methods + + unsafe IMinMax IColorFormat.MinMax(ReadOnlySpan data) => PixelHelper.MinMax(MemoryMarshal.Cast(data)); + + #endregion + } + """; + } + + private static string GenerateColorFormatInterfaceMinMax() + { + return """ + namespace HPPH; + + public partial interface IColorFormat + { + internal IMinMax MinMax(ReadOnlySpan data); + } + """; + } +} \ No newline at end of file diff --git a/HPPH.Generators/Features/Quantize.cs b/HPPH.Generators/Features/Quantize.cs new file mode 100644 index 0000000..c0b6224 --- /dev/null +++ b/HPPH.Generators/Features/Quantize.cs @@ -0,0 +1,56 @@ +using System.Collections.Generic; +using System.Collections.Immutable; + +namespace HPPH.Generators; + +internal class Quantize : IGeneratorFeature +{ + public IEnumerable<(string name, string source)> GenerateFor(ColorFormatData colorFormat) + { + yield return ($"ColorFormat{colorFormat.Format}.Quantize", GenerateColorFormatQuantize(colorFormat)); + } + + public IEnumerable<(string name, string source)> GenerateFor(ImmutableArray colorFormats) + { + yield return ("IColorFormat.Quantize", GenerateColorFormatInterfaceQuantize()); + } + + private static string GenerateColorFormatQuantize(ColorFormatData colorFormat) + { + return $$""" + using System.Runtime.InteropServices; + + namespace HPPH; + + public sealed partial class ColorFormat{{colorFormat.Format}} + { + #region Methods + + unsafe IColor[] IColorFormat.CreateColorPalette(ReadOnlySpan data, int paletteSize) + { + Color{{colorFormat.Format}}[] colors = PixelHelper.CreateColorPalette(MemoryMarshal.Cast(data), paletteSize); + + IColor[] result = new IColor[colors.Length]; + for(int i = 0; i < colors.Length; i++) + result[i] = colors[i]; + + return result; + } + + #endregion + } + """; + } + + private static string GenerateColorFormatInterfaceQuantize() + { + return """ + namespace HPPH; + + public partial interface IColorFormat + { + internal IColor[] CreateColorPalette(ReadOnlySpan data, int paletteSize); + } + """; + } +} \ No newline at end of file diff --git a/HPPH.Generators/Features/Sum.cs b/HPPH.Generators/Features/Sum.cs new file mode 100644 index 0000000..0b869bb --- /dev/null +++ b/HPPH.Generators/Features/Sum.cs @@ -0,0 +1,129 @@ +using System.Collections.Generic; +using System.Collections.Immutable; + +namespace HPPH.Generators; + +internal class Sum : IGeneratorFeature +{ + public IEnumerable<(string name, string source)> GenerateFor(ColorFormatData colorFormat) + { + yield return ($"Sum{colorFormat.Format}", GenerateSumStruct(colorFormat)); + yield return ($"ColorFormat{colorFormat.Format}.Sum", GenerateColorFormatSum(colorFormat)); + } + + public IEnumerable<(string name, string source)> GenerateFor(ImmutableArray colorFormats) + { + yield return ("IColorFormat.Sum", GenerateColorFormatInterfaceSum()); + } + + private static string GenerateSumStruct(ColorFormatData colorFormat) + => colorFormat.Bpp switch + { + 3 => $$""" + // ReSharper disable ConvertToAutoProperty + // ReSharper disable ConvertToAutoPropertyWhenPossible + // ReSharper disable ReplaceWithPrimaryConstructorParameter + + using System.Diagnostics; + using System.Runtime.InteropServices; + + namespace HPPH; + + [DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] + [StructLayout(LayoutKind.Sequential)] + public readonly partial struct Sum{{colorFormat.Format}}(long {{colorFormat.FirstEntry}}, long {{colorFormat.SecondEntry}}, long {{colorFormat.ThirdEntry}}, long a) : ISum + { + #region Properties & Fields + + private readonly long _{{colorFormat.FirstEntry}} = {{colorFormat.FirstEntry}}; + private readonly long _{{colorFormat.SecondEntry}} = {{colorFormat.SecondEntry}}; + private readonly long _{{colorFormat.ThirdEntry}} = {{colorFormat.ThirdEntry}}; + private readonly long _a = a; + + public long A => _a; + public long R => _r; + public long G => _g; + public long B => _b; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + #endregion + } + + """, + + 4 => $$""" + // ReSharper disable ConvertToAutoProperty + // ReSharper disable ConvertToAutoPropertyWhenPossible + // ReSharper disable ReplaceWithPrimaryConstructorParameter + + using System.Diagnostics; + using System.Runtime.InteropServices; + + namespace HPPH; + + [DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] + [StructLayout(LayoutKind.Sequential)] + public readonly partial struct Sum{{colorFormat.Format}}(long {{colorFormat.FirstEntry}}, long {{colorFormat.SecondEntry}}, long {{colorFormat.ThirdEntry}}, long {{colorFormat.FourthEntry}}) : ISum + { + #region Properties & Fields + + private readonly long _{{colorFormat.FirstEntry}} = {{colorFormat.FirstEntry}}; + private readonly long _{{colorFormat.SecondEntry}} = {{colorFormat.SecondEntry}}; + private readonly long _{{colorFormat.ThirdEntry}} = {{colorFormat.ThirdEntry}}; + private readonly long _{{colorFormat.FourthEntry}} = {{colorFormat.FourthEntry}}; + + public long R => _r; + public long G => _g; + public long B => _b; + public long A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + #endregion + } + + """, + _ => null + }; + + private static string GenerateColorFormatSum(ColorFormatData colorFormat) + { + return $$""" + using System.Runtime.InteropServices; + + namespace HPPH; + + public sealed partial class ColorFormat{{colorFormat.Format}} + { + #region Methods + + unsafe ISum IColorFormat.Sum(ReadOnlySpan data) => PixelHelper.Sum(MemoryMarshal.Cast(data)); + + #endregion + } + """; + } + + private static string GenerateColorFormatInterfaceSum() + { + return """ + namespace HPPH; + + public partial interface IColorFormat + { + internal ISum Sum(ReadOnlySpan data); + } + """; + } +} \ No newline at end of file diff --git a/HPPH.Generators/HPPH.Generators.csproj b/HPPH.Generators/HPPH.Generators.csproj new file mode 100644 index 0000000..18611e6 --- /dev/null +++ b/HPPH.Generators/HPPH.Generators.csproj @@ -0,0 +1,21 @@ + + + + netstandard2.0 + true + true + true + false + true + latest + True + False + True + True + + + + + + + diff --git a/HPPH.Generators/HPPH.Generators.csproj.DotSettings b/HPPH.Generators/HPPH.Generators.csproj.DotSettings new file mode 100644 index 0000000..3a36d17 --- /dev/null +++ b/HPPH.Generators/HPPH.Generators.csproj.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/HPPH.Reference/HPPH.Reference.csproj b/HPPH.Reference/HPPH.Reference.csproj new file mode 100644 index 0000000..69fb405 --- /dev/null +++ b/HPPH.Reference/HPPH.Reference.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/HPPH.Reference/HPPHExtensions.cs b/HPPH.Reference/HPPHExtensions.cs new file mode 100644 index 0000000..8212d6d --- /dev/null +++ b/HPPH.Reference/HPPHExtensions.cs @@ -0,0 +1,14 @@ +namespace HPPH.Reference; + +internal static class HPPHExtensions +{ + public static byte GetByteValueFromPercentage(this float percentage) + { + if (float.IsNaN(percentage) || (percentage < 0)) return 0; + + return (byte)(percentage >= 1.0f ? 255 : percentage * 256.0f); + } + + public static float GetPercentageFromByteValue(this byte value) + => value == 255 ? 1.0f : (value / 256.0f); +} \ No newline at end of file diff --git a/HPPH.Reference/PixelHelper.Average.cs b/HPPH.Reference/PixelHelper.Average.cs new file mode 100644 index 0000000..5544155 --- /dev/null +++ b/HPPH.Reference/PixelHelper.Average.cs @@ -0,0 +1,43 @@ +namespace HPPH.Reference; + +public static partial class ReferencePixelHelper +{ + #region Methods + + public static IColor Average(IImage image) + { + float count = image.Width * image.Height; + + ISum sum = Sum(image); + return new ColorRGBA((sum.R / count).GetByteValueFromPercentage(), + (sum.G / count).GetByteValueFromPercentage(), + (sum.B / count).GetByteValueFromPercentage(), + (sum.A / count).GetByteValueFromPercentage()); + } + + public static T Average(RefImage image) + where T : struct, IColor + { + float count = image.Width * image.Height; + + ISum sum = Sum(image); + return (T)T.Create((sum.R / count).GetByteValueFromPercentage(), + (sum.G / count).GetByteValueFromPercentage(), + (sum.B / count).GetByteValueFromPercentage(), + (sum.A / count).GetByteValueFromPercentage()); + } + + public static T Average(ReadOnlySpan colors) + where T : struct, IColor + { + float count = colors.Length; + + ISum sum = Sum(colors); + return (T)T.Create((sum.R / count).GetByteValueFromPercentage(), + (sum.G / count).GetByteValueFromPercentage(), + (sum.B / count).GetByteValueFromPercentage(), + (sum.A / count).GetByteValueFromPercentage()); + } + + #endregion +} diff --git a/HPPH.Reference/PixelHelper.MinMax.cs b/HPPH.Reference/PixelHelper.MinMax.cs new file mode 100644 index 0000000..80ce107 --- /dev/null +++ b/HPPH.Reference/PixelHelper.MinMax.cs @@ -0,0 +1,73 @@ +namespace HPPH.Reference; + +public static partial class ReferencePixelHelper +{ + #region Methods + + public static IMinMax MinMax(IImage image) + { + byte minR = byte.MaxValue, minG = byte.MaxValue, minB = byte.MaxValue, minA = byte.MaxValue; + byte maxR = byte.MinValue, maxG = byte.MinValue, maxB = byte.MinValue, maxA = byte.MinValue; + + foreach (IColor color in image) + { + minR = Math.Min(minR, color.R); + minG = Math.Min(minG, color.G); + minB = Math.Min(minB, color.B); + minA = Math.Min(minA, color.A); + + maxR = Math.Max(maxR, color.R); + maxG = Math.Max(maxG, color.G); + maxB = Math.Max(maxB, color.B); + maxA = Math.Max(maxA, color.A); + } + + return new MinMaxRGBA(minR, maxR, minG, maxG, minB, maxB, minA, maxA); + } + + public static IMinMax MinMax(RefImage image) + where T : struct, IColor + { + byte minR = byte.MaxValue, minG = byte.MaxValue, minB = byte.MaxValue, minA = byte.MaxValue; + byte maxR = byte.MinValue, maxG = byte.MinValue, maxB = byte.MinValue, maxA = byte.MinValue; + + foreach (T color in image) + { + minR = Math.Min(minR, color.R); + minG = Math.Min(minG, color.G); + minB = Math.Min(minB, color.B); + minA = Math.Min(minA, color.A); + + maxR = Math.Max(maxR, color.R); + maxG = Math.Max(maxG, color.G); + maxB = Math.Max(maxB, color.B); + maxA = Math.Max(maxA, color.A); + } + + return new MinMaxRGBA(minR, maxR, minG, maxG, minB, maxB, minA, maxA); + } + + public static IMinMax MinMax(ReadOnlySpan colors) + where T : struct, IColor + { + byte minR = byte.MaxValue, minG = byte.MaxValue, minB = byte.MaxValue, minA = byte.MaxValue; + byte maxR = byte.MinValue, maxG = byte.MinValue, maxB = byte.MinValue, maxA = byte.MinValue; + + foreach (T color in colors) + { + minR = Math.Min(minR, color.R); + minG = Math.Min(minG, color.G); + minB = Math.Min(minB, color.B); + minA = Math.Min(minA, color.A); + + maxR = Math.Max(maxR, color.R); + maxG = Math.Max(maxG, color.G); + maxB = Math.Max(maxB, color.B); + maxA = Math.Max(maxA, color.A); + } + + return new MinMaxRGBA(minR, maxR, minG, maxG, minB, maxB, minA, maxA); + } + + #endregion +} diff --git a/HPPH.Reference/PixelHelper.Quantize.cs b/HPPH.Reference/PixelHelper.Quantize.cs new file mode 100644 index 0000000..7a5e7ee --- /dev/null +++ b/HPPH.Reference/PixelHelper.Quantize.cs @@ -0,0 +1,8 @@ +namespace HPPH.Reference; + +public static partial class ReferencePixelHelper +{ + #region Methods + + #endregion +} diff --git a/HPPH.Reference/PixelHelper.Sort.cs b/HPPH.Reference/PixelHelper.Sort.cs new file mode 100644 index 0000000..9952f3f --- /dev/null +++ b/HPPH.Reference/PixelHelper.Sort.cs @@ -0,0 +1,26 @@ +namespace HPPH.Reference; + +public static partial class ReferencePixelHelper +{ + #region Methods + + // DarthAffe 05.07.2024: LINQ OrderBy uses a stable sorting algorithm -> it's a good reference as the optimized sort is supposed to be stable. + + public static void SortByRed(Span colors) + where T : unmanaged, IColor + => colors.ToArray().OrderBy(x => x.R).ToArray().AsSpan().CopyTo(colors); + + public static void SortByGreen(Span colors) + where T : unmanaged, IColor + => colors.ToArray().OrderBy(x => x.G).ToArray().AsSpan().CopyTo(colors); + + public static void SortByBlue(Span colors) + where T : unmanaged, IColor + => colors.ToArray().OrderBy(x => x.B).ToArray().AsSpan().CopyTo(colors); + + public static void SortByAlpha(Span colors) + where T : unmanaged, IColor + => colors.ToArray().OrderBy(x => x.A).ToArray().AsSpan().CopyTo(colors); + + #endregion +} diff --git a/HPPH.Reference/PixelHelper.Sum.cs b/HPPH.Reference/PixelHelper.Sum.cs new file mode 100644 index 0000000..6ea5e38 --- /dev/null +++ b/HPPH.Reference/PixelHelper.Sum.cs @@ -0,0 +1,55 @@ +namespace HPPH.Reference; + +public static partial class ReferencePixelHelper +{ + #region Methods + + public static ISum Sum(IImage image) + { + long sumR = 0, sumG = 0, sumB = 0, sumA = 0; + + foreach (IColor color in image) + { + sumR += color.R; + sumG += color.G; + sumB += color.B; + sumA += color.A; + } + + return new SumRGBA(sumR, sumG, sumB, sumA); + } + + public static ISum Sum(RefImage image) + where T : struct, IColor + { + long sumR = 0, sumG = 0, sumB = 0, sumA = 0; + + foreach (T color in image) + { + sumR += color.R; + sumG += color.G; + sumB += color.B; + sumA += color.A; + } + + return new SumRGBA(sumR, sumG, sumB, sumA); + } + + public static ISum Sum(ReadOnlySpan colors) + where T : struct, IColor + { + long sumR = 0, sumG = 0, sumB = 0, sumA = 0; + + foreach (T color in colors) + { + sumR += color.R; + sumG += color.G; + sumB += color.B; + sumA += color.A; + } + + return new SumRGBA(sumR, sumG, sumB, sumA); + } + + #endregion +} diff --git a/HPPH.Reference/PixelHelper.cs b/HPPH.Reference/PixelHelper.cs new file mode 100644 index 0000000..faee3b8 --- /dev/null +++ b/HPPH.Reference/PixelHelper.cs @@ -0,0 +1,3 @@ +namespace HPPH.Reference; + +public static partial class ReferencePixelHelper; diff --git a/HPPH.Test/AverageTests.cs b/HPPH.Test/AverageTests.cs new file mode 100644 index 0000000..fbc375a --- /dev/null +++ b/HPPH.Test/AverageTests.cs @@ -0,0 +1,65 @@ +using HPPH.Reference; + +namespace HPPH.Test; + +[TestClass] +public class AverageTests +{ + private static IEnumerable GetTestImages() => Directory.EnumerateFiles(@"..\..\..\..\sample_data", "*.png", SearchOption.AllDirectories); + + [TestMethod] + public void AverageImage3Byte() + { + } + + [TestMethod] + public void AverageRefImage3Byte() + { + } + + [TestMethod] + public void AverageReadOnlySpan3Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGB[] data = ImageHelper.Get3ByteColorsFromImage(image); + ReadOnlySpan span = data; + + ColorRGB reference = ReferencePixelHelper.Average(span); + ColorRGB test = PixelHelper.Average(span); + + Assert.AreEqual(reference.R, test.R, "R differs"); + Assert.AreEqual(reference.G, test.G, "G differs"); + Assert.AreEqual(reference.B, test.B, "B differs"); + Assert.AreEqual(reference.A, test.A, "A differs"); + } + } + + [TestMethod] + public void AverageImage4Byte() + { + } + + [TestMethod] + public void AverageRefImage4Byte() + { + } + + [TestMethod] + public void AverageReadOnlySpan4Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGBA[] data = ImageHelper.Get4ByteColorsFromImage(image); + ReadOnlySpan span = data; + + ColorRGBA reference = ReferencePixelHelper.Average(span); + ColorRGBA test = PixelHelper.Average(span); + + Assert.AreEqual(reference.R, test.R, "R differs"); + Assert.AreEqual(reference.G, test.G, "G differs"); + Assert.AreEqual(reference.B, test.B, "B differs"); + Assert.AreEqual(reference.A, test.A, "A differs"); + } + } +} \ No newline at end of file diff --git a/HPPH.Test/HPPH.Test.csproj b/HPPH.Test/HPPH.Test.csproj new file mode 100644 index 0000000..9ff21f8 --- /dev/null +++ b/HPPH.Test/HPPH.Test.csproj @@ -0,0 +1,29 @@ + + + + net8.0-windows + enable + enable + + false + true + + + + + + + + + + + + + + + + + + + + diff --git a/HPPH.Test/ImageHelper.cs b/HPPH.Test/ImageHelper.cs new file mode 100644 index 0000000..f779dd7 --- /dev/null +++ b/HPPH.Test/ImageHelper.cs @@ -0,0 +1,44 @@ +using System.Drawing; + +namespace HPPH.Test; + +internal static class ImageHelper +{ + #region Methods + + public static ColorRGB[] Get3ByteColorsFromImage(string file) + { + using FileStream stream = File.OpenRead(file); + using Bitmap bmp = new(stream); + + ColorRGB[] colors = new ColorRGB[bmp.Width * bmp.Height]; + int i = 0; + for (int x = 0; x < bmp.Width; x++) + for (int y = 0; y < bmp.Height; y++) + { + Color color = bmp.GetPixel(x, y); + colors[i++] = new ColorRGB(color.R, color.G, color.B); + } + + return colors; + } + + public static ColorRGBA[] Get4ByteColorsFromImage(string file) + { + using FileStream stream = File.OpenRead(file); + using Bitmap bmp = new(stream); + + ColorRGBA[] colors = new ColorRGBA[bmp.Width * bmp.Height]; + int i = 0; + for (int x = 0; x < bmp.Width; x++) + for (int y = 0; y < bmp.Height; y++) + { + Color color = bmp.GetPixel(x, y); + colors[i++] = new ColorRGBA(color.R, color.G, color.B, color.A); + } + + return colors; + } + + #endregion +} \ No newline at end of file diff --git a/HPPH.Test/MinMaxTests.cs b/HPPH.Test/MinMaxTests.cs new file mode 100644 index 0000000..5f3ecb8 --- /dev/null +++ b/HPPH.Test/MinMaxTests.cs @@ -0,0 +1,85 @@ +using HPPH.Reference; + +namespace HPPH.Test; + +[TestClass] +public class MinMaxTests +{ + private static IEnumerable GetTestImages() => Directory.EnumerateFiles(@"..\..\..\..\sample_data", "*.png", SearchOption.AllDirectories); + + [TestMethod] + public void MinMaxImage3Byte() + { + } + + [TestMethod] + public void MinMaxRefImage3Byte() + { + } + + [TestMethod] + public void MinMaxReadOnlySpan3Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGB[] data = ImageHelper.Get3ByteColorsFromImage(image); + ReadOnlySpan span = data; + + IMinMax reference = ReferencePixelHelper.MinMax(span); + IMinMax test = PixelHelper.MinMax(span); + + Assert.AreEqual(reference.RedMin, test.RedMin, "RedMin differs"); + Assert.AreEqual(reference.GreenMin, test.GreenMin, "GreenMin differs"); + Assert.AreEqual(reference.BlueMin, test.BlueMin, "BlueMin differs"); + Assert.AreEqual(reference.AlphaMin, test.AlphaMin, "AlphaMin differs"); + + Assert.AreEqual(reference.RedMax, test.RedMax, "RedMax differs"); + Assert.AreEqual(reference.GreenMax, test.GreenMax, "GreenMax differs"); + Assert.AreEqual(reference.BlueMax, test.BlueMax, "BlueMax differs"); + Assert.AreEqual(reference.AlphaMax, test.AlphaMax, "AlphaMax differs"); + + Assert.AreEqual(reference.RedRange, test.RedRange, "RedRange differs"); + Assert.AreEqual(reference.GreenRange, test.GreenRange, "GreenRange differs"); + Assert.AreEqual(reference.BlueRange, test.BlueRange, "BlueRange differs"); + Assert.AreEqual(reference.AlphaRange, test.AlphaRange, "AlphaRange differs"); + } + } + + [TestMethod] + public void MinMaxImage4Byte() + { + } + + [TestMethod] + public void MinMaxRefImage4Byte() + { + } + + [TestMethod] + public void MinMaxReadOnlySpan4Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGBA[] data = ImageHelper.Get4ByteColorsFromImage(image); + ReadOnlySpan span = data; + + IMinMax reference = ReferencePixelHelper.MinMax(span); + IMinMax test = PixelHelper.MinMax(span); + + Assert.AreEqual(reference.RedMin, test.RedMin, "RedMin differs"); + Assert.AreEqual(reference.GreenMin, test.GreenMin, "GreenMin differs"); + Assert.AreEqual(reference.BlueMin, test.BlueMin, "BlueMin differs"); + Assert.AreEqual(reference.AlphaMin, test.AlphaMin, "AlphaMin differs"); + + Assert.AreEqual(reference.RedMax, test.RedMax, "RedMax differs"); + Assert.AreEqual(reference.GreenMax, test.GreenMax, "GreenMax differs"); + Assert.AreEqual(reference.BlueMax, test.BlueMax, "BlueMax differs"); + Assert.AreEqual(reference.AlphaMax, test.AlphaMax, "AlphaMax differs"); + + Assert.AreEqual(reference.RedRange, test.RedRange, "RedRange differs"); + Assert.AreEqual(reference.GreenRange, test.GreenRange, "GreenRange differs"); + Assert.AreEqual(reference.BlueRange, test.BlueRange, "BlueRange differs"); + Assert.AreEqual(reference.AlphaRange, test.AlphaRange, "AlphaRange differs"); + } + } +} \ No newline at end of file diff --git a/HPPH.Test/SortTests.cs b/HPPH.Test/SortTests.cs new file mode 100644 index 0000000..e41159a --- /dev/null +++ b/HPPH.Test/SortTests.cs @@ -0,0 +1,143 @@ +using HPPH.Reference; + +namespace HPPH.Test; + +[TestClass] +public class SortTests +{ + private static IEnumerable GetTestImages() => Directory.EnumerateFiles(@"..\..\..\..\sample_data", "*.png", SearchOption.AllDirectories); + + + [TestMethod] + public void SortByRed3Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGB[] referenceData = ImageHelper.Get3ByteColorsFromImage(image); + ColorRGB[] testData = new ColorRGB[referenceData.Length]; + Span referenceSpan = referenceData; + Span testSpan = testData; + referenceSpan.CopyTo(testSpan); + + ReferencePixelHelper.SortByRed(referenceSpan); + PixelHelper.SortByRed(testSpan); + + for (int i = 0; i < referenceData.Length; i++) + Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs"); + } + } + + [TestMethod] + public void SortByGreen3Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGB[] referenceData = ImageHelper.Get3ByteColorsFromImage(image); + ColorRGB[] testData = new ColorRGB[referenceData.Length]; + Span referenceSpan = referenceData; + Span testSpan = testData; + referenceSpan.CopyTo(testSpan); + + ReferencePixelHelper.SortByGreen(referenceSpan); + PixelHelper.SortByGreen(testSpan); + + for (int i = 0; i < referenceData.Length; i++) + Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs"); + } + } + + [TestMethod] + public void SortByBlue3Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGB[] referenceData = ImageHelper.Get3ByteColorsFromImage(image); + ColorRGB[] testData = new ColorRGB[referenceData.Length]; + Span referenceSpan = referenceData; + Span testSpan = testData; + referenceSpan.CopyTo(testSpan); + + ReferencePixelHelper.SortByBlue(referenceSpan); + PixelHelper.SortByBlue(testSpan); + + for (int i = 0; i < referenceData.Length; i++) + Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs"); + } + } + + [TestMethod] + public void SortByRed4Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGBA[] referenceData = ImageHelper.Get4ByteColorsFromImage(image); + ColorRGBA[] testData = new ColorRGBA[referenceData.Length]; + Span referenceSpan = referenceData; + Span testSpan = testData; + referenceSpan.CopyTo(testSpan); + + ReferencePixelHelper.SortByRed(referenceSpan); + PixelHelper.SortByRed(testSpan); + + for (int i = 0; i < referenceData.Length; i++) + Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs"); + } + } + + [TestMethod] + public void SortByGreen4Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGBA[] referenceData = ImageHelper.Get4ByteColorsFromImage(image); + ColorRGBA[] testData = new ColorRGBA[referenceData.Length]; + Span referenceSpan = referenceData; + Span testSpan = testData; + referenceSpan.CopyTo(testSpan); + + ReferencePixelHelper.SortByGreen(referenceSpan); + PixelHelper.SortByGreen(testSpan); + + for (int i = 0; i < referenceData.Length; i++) + Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs"); + } + } + + [TestMethod] + public void SortByBlue4Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGBA[] referenceData = ImageHelper.Get4ByteColorsFromImage(image); + ColorRGBA[] testData = new ColorRGBA[referenceData.Length]; + Span referenceSpan = referenceData; + Span testSpan = testData; + referenceSpan.CopyTo(testSpan); + + ReferencePixelHelper.SortByBlue(referenceSpan); + PixelHelper.SortByBlue(testSpan); + + for (int i = 0; i < referenceData.Length; i++) + Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs"); + } + } + + [TestMethod] + public void SortByAlpha4Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGBA[] referenceData = ImageHelper.Get4ByteColorsFromImage(image); + ColorRGBA[] testData = new ColorRGBA[referenceData.Length]; + Span referenceSpan = referenceData; + Span testSpan = testData; + referenceSpan.CopyTo(testSpan); + + ReferencePixelHelper.SortByAlpha(referenceSpan); + PixelHelper.SortByAlpha(testSpan); + + for (int i = 0; i < referenceData.Length; i++) + Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs"); + } + } +} \ No newline at end of file diff --git a/HPPH.Test/SumTests.cs b/HPPH.Test/SumTests.cs new file mode 100644 index 0000000..d227e5e --- /dev/null +++ b/HPPH.Test/SumTests.cs @@ -0,0 +1,65 @@ +using HPPH.Reference; + +namespace HPPH.Test; + +[TestClass] +public class SumTests +{ + private static IEnumerable GetTestImages() => Directory.EnumerateFiles(@"..\..\..\..\sample_data", "*.png", SearchOption.AllDirectories); + + [TestMethod] + public void SumImage3Byte() + { + } + + [TestMethod] + public void SumRefImage3Byte() + { + } + + [TestMethod] + public void SumReadOnlySpan3Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGB[] data = ImageHelper.Get3ByteColorsFromImage(image); + ReadOnlySpan span = data; + + ISum reference = ReferencePixelHelper.Sum(span); + ISum test = PixelHelper.Sum(span); + + Assert.AreEqual(reference.R, test.R, "R differs"); + Assert.AreEqual(reference.G, test.G, "G differs"); + Assert.AreEqual(reference.B, test.B, "B differs"); + Assert.AreEqual(reference.A, test.A, "A differs"); + } + } + + [TestMethod] + public void SumImage4Byte() + { + } + + [TestMethod] + public void SumRefImage4Byte() + { + } + + [TestMethod] + public void SumReadOnlySpan4Byte() + { + foreach (string image in GetTestImages()) + { + ColorRGBA[] data = ImageHelper.Get4ByteColorsFromImage(image); + ReadOnlySpan span = data; + + ISum reference = ReferencePixelHelper.Sum(span); + ISum test = PixelHelper.Sum(span); + + Assert.AreEqual(reference.R, test.R, "R differs"); + Assert.AreEqual(reference.G, test.G, "G differs"); + Assert.AreEqual(reference.B, test.B, "B differs"); + Assert.AreEqual(reference.A, test.A, "A differs"); + } + } +} \ No newline at end of file diff --git a/HPPH.sln b/HPPH.sln new file mode 100644 index 0000000..67c72eb --- /dev/null +++ b/HPPH.sln @@ -0,0 +1,49 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34714.143 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HPPH", "HPPH\HPPH.csproj", "{FDC79AD8-26FF-4EA4-B1FF-7D4818F57A79}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HPPH.Test", "HPPH.Test\HPPH.Test.csproj", "{11795808-7916-4EAA-A69A-B09FEF46F71D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HPPH.Benchmark", "HPPH.Benchmark\HPPH.Benchmark.csproj", "{233CFF7C-DDA4-4450-AB88-17C1B58EBFB5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HPPH.Reference", "HPPH.Reference\HPPH.Reference.csproj", "{1675FE68-1F51-4202-9567-BB46215B2BBD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HPPH.Generators", "HPPH.Generators\HPPH.Generators.csproj", "{C247512B-E6D2-4591-8AFA-F2268F1AEAB2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FDC79AD8-26FF-4EA4-B1FF-7D4818F57A79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDC79AD8-26FF-4EA4-B1FF-7D4818F57A79}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDC79AD8-26FF-4EA4-B1FF-7D4818F57A79}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDC79AD8-26FF-4EA4-B1FF-7D4818F57A79}.Release|Any CPU.Build.0 = Release|Any CPU + {11795808-7916-4EAA-A69A-B09FEF46F71D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11795808-7916-4EAA-A69A-B09FEF46F71D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11795808-7916-4EAA-A69A-B09FEF46F71D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11795808-7916-4EAA-A69A-B09FEF46F71D}.Release|Any CPU.Build.0 = Release|Any CPU + {233CFF7C-DDA4-4450-AB88-17C1B58EBFB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {233CFF7C-DDA4-4450-AB88-17C1B58EBFB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {233CFF7C-DDA4-4450-AB88-17C1B58EBFB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {233CFF7C-DDA4-4450-AB88-17C1B58EBFB5}.Release|Any CPU.Build.0 = Release|Any CPU + {1675FE68-1F51-4202-9567-BB46215B2BBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1675FE68-1F51-4202-9567-BB46215B2BBD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1675FE68-1F51-4202-9567-BB46215B2BBD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1675FE68-1F51-4202-9567-BB46215B2BBD}.Release|Any CPU.Build.0 = Release|Any CPU + {C247512B-E6D2-4591-8AFA-F2268F1AEAB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C247512B-E6D2-4591-8AFA-F2268F1AEAB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C247512B-E6D2-4591-8AFA-F2268F1AEAB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C247512B-E6D2-4591-8AFA-F2268F1AEAB2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EAF6CA55-D81E-4887-9FAC-8D633BBC0096} + EndGlobalSection +EndGlobal diff --git a/HPPH.sln.DotSettings b/HPPH.sln.DotSettings new file mode 100644 index 0000000..c50ef0d --- /dev/null +++ b/HPPH.sln.DotSettings @@ -0,0 +1,2 @@ + + HPPH \ No newline at end of file diff --git a/HPPH/Colors/Colors.cs b/HPPH/Colors/Colors.cs new file mode 100644 index 0000000..9e22c38 --- /dev/null +++ b/HPPH/Colors/Colors.cs @@ -0,0 +1,22 @@ +// ReSharper disable UnusedType.Global +// ReSharper disable InconsistentNaming + +namespace HPPH; + +[ColorGenerator] +public readonly partial struct ColorRGB; + +[ColorGenerator] +public readonly partial struct ColorBGR; + +[ColorGenerator] +public readonly partial struct ColorARGB; + +[ColorGenerator] +public readonly partial struct ColorABGR; + +[ColorGenerator] +public readonly partial struct ColorRGBA; + +[ColorGenerator] +public readonly partial struct ColorBGRA; diff --git a/HPPH/Colors/IColor.cs b/HPPH/Colors/IColor.cs new file mode 100644 index 0000000..82d5a29 --- /dev/null +++ b/HPPH/Colors/IColor.cs @@ -0,0 +1,34 @@ +namespace HPPH; + +/// +/// Represents a generic color made of 4 bytes (alpha, red, green and blue) +/// +public interface IColor +{ + /// + /// Gets the red-component of this color. + /// + byte R { get; } + + /// + /// Gets the green-component of this color. + /// + byte G { get; } + + /// + /// Gets the blue-component of this color. + /// + byte B { get; } + + /// + /// Gets the alpha-component of this color. + /// + byte A { get; } + + /// + /// Gets the color-format of this color. + /// + public static virtual IColorFormat ColorFormat => throw new NotSupportedException(); + + public static virtual IColor Create(byte r, byte g, byte b, byte a) => throw new NotSupportedException(); +} \ No newline at end of file diff --git a/HPPH/Colors/IColorFormat.cs b/HPPH/Colors/IColorFormat.cs new file mode 100644 index 0000000..7c33a71 --- /dev/null +++ b/HPPH/Colors/IColorFormat.cs @@ -0,0 +1,15 @@ +namespace HPPH; + +/// +/// Represents a color format. +/// +// ReSharper disable once InconsistentNaming +public partial interface IColorFormat +{ + /// + /// Gets the Bytes per pixel for this color-format. + /// + int BytesPerPixel { get; } + + string Name { get; } +} \ No newline at end of file diff --git a/HPPH/CommunityToolkit.HighPerformance/ReadOnlyRefEnumerable.cs b/HPPH/CommunityToolkit.HighPerformance/ReadOnlyRefEnumerable.cs new file mode 100644 index 0000000..cbc49f2 --- /dev/null +++ b/HPPH/CommunityToolkit.HighPerformance/ReadOnlyRefEnumerable.cs @@ -0,0 +1,265 @@ +// DarthAffe 05.09.2023: Based on https://github.com/CommunityToolkit/dotnet/blob/b0d6c4f9c0cfb5d860400abb00b0ca1b3e94dfa4/src/CommunityToolkit.HighPerformance/Enumerables/ReadOnlyRefEnumerable%7BT%7D.cs + +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace HPPH; + +/// +/// A that iterates readonly items from arbitrary memory locations. +/// +/// The type of items to enumerate. +public readonly ref struct ReadOnlyRefEnumerable +{ + #region Properties & Fields + + /// + /// The instance pointing to the first item in the target memory area. + /// + /// The field maps to the total available length. + private readonly ReadOnlySpan _span; + + /// + /// The distance between items in the sequence to enumerate. + /// + /// The distance refers to items, not byte offset. + private readonly int _step; + + /// + /// Gets the total available length for the sequence. + /// + public int Length + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => _span.Length; + } + + /// + /// Gets the element at the specified zero-based index. + /// + /// The zero-based index of the element. + /// A reference to the element at the specified index. + /// + /// Thrown when is invalid. + /// + public ref readonly T this[int index] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + if ((uint)index >= (uint)Length) throw new IndexOutOfRangeException(); + + ref T r0 = ref MemoryMarshal.GetReference(_span); + nint offset = (nint)(uint)index * (nint)(uint)_step; + ref T ri = ref Unsafe.Add(ref r0, offset); + + return ref ri; + } + } + + /// + /// Gets the element at the specified zero-based index. + /// + /// The zero-based index of the element. + /// A reference to the element at the specified index. + /// + /// Thrown when is invalid. + /// + public ref readonly T this[Index index] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => ref this[index.GetOffset(Length)]; + } + + #endregion + + #region Constructors + + /// + /// Initializes a new instance of the struct. + /// + /// A reference to the first item of the sequence. + /// The number of items in the sequence. + /// The distance between items in the sequence to enumerate. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal ReadOnlyRefEnumerable(in T reference, int length, int step) + { + this._step = step; + + _span = MemoryMarshal.CreateReadOnlySpan(ref Unsafe.AsRef(in reference), length); + } + + #endregion + + #region Methods + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public Enumerator GetEnumerator() => new(_span, _step); + + public T[] ToArray() + { + int length = _span.Length; + + // Empty array if no data is mapped + if (length == 0) + return []; + + T[] array = new T[length]; + CopyTo(array); + + return array; + } + + /// + /// Copies the contents of this into a destination instance. + /// + /// The destination instance. + /// + /// Thrown when is shorter than the source instance. + /// + public void CopyTo(Span destination) + { + if (_step == 1) + { + _span.CopyTo(destination); + return; + } + + ref T sourceRef = ref MemoryMarshal.GetReference(_span); + int length = _span.Length; + if ((uint)destination.Length < (uint)length) + throw new ArgumentException("The target span is too short to copy all the current items to."); + + ref T destinationRef = ref MemoryMarshal.GetReference(destination); + + CopyTo(ref sourceRef, ref destinationRef, (nint)(uint)length, (nint)(uint)_step); + } + + /// + /// Attempts to copy the current instance to a destination . + /// + /// The target of the copy operation. + /// Whether or not the operation was successful. + public bool TryCopyTo(Span destination) + { + if (destination.Length >= _span.Length) + { + CopyTo(destination); + return true; + } + + return false; + } + + private static void CopyTo(ref T sourceRef, ref T destinationRef, nint length, nint sourceStep) + { + nint sourceOffset = 0; + nint destinationOffset = 0; + + while (length >= 8) + { + Unsafe.Add(ref destinationRef, destinationOffset + 0) = Unsafe.Add(ref sourceRef, sourceOffset); + Unsafe.Add(ref destinationRef, destinationOffset + 1) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + Unsafe.Add(ref destinationRef, destinationOffset + 2) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + Unsafe.Add(ref destinationRef, destinationOffset + 3) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + Unsafe.Add(ref destinationRef, destinationOffset + 4) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + Unsafe.Add(ref destinationRef, destinationOffset + 5) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + Unsafe.Add(ref destinationRef, destinationOffset + 6) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + Unsafe.Add(ref destinationRef, destinationOffset + 7) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + + length -= 8; + sourceOffset += sourceStep; + destinationOffset += 8; + } + + if (length >= 4) + { + Unsafe.Add(ref destinationRef, destinationOffset + 0) = Unsafe.Add(ref sourceRef, sourceOffset); + Unsafe.Add(ref destinationRef, destinationOffset + 1) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + Unsafe.Add(ref destinationRef, destinationOffset + 2) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + Unsafe.Add(ref destinationRef, destinationOffset + 3) = Unsafe.Add(ref sourceRef, sourceOffset += sourceStep); + + length -= 4; + sourceOffset += sourceStep; + destinationOffset += 4; + } + + while (length > 0) + { + Unsafe.Add(ref destinationRef, destinationOffset) = Unsafe.Add(ref sourceRef, sourceOffset); + + length -= 1; + sourceOffset += sourceStep; + destinationOffset += 1; + } + } + + #endregion + + /// + /// A custom enumerator type to traverse items within a instance. + /// + public ref struct Enumerator + { + #region Properties & Fields + + /// + private readonly ReadOnlySpan _span; + + /// + private readonly int _step; + + /// + /// The current position in the sequence. + /// + private int _position; + + /// + public readonly ref readonly T Current + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ref T r0 = ref MemoryMarshal.GetReference(_span); + + nint offset = (nint)(uint)_position * (nint)(uint)_step; + ref T ri = ref Unsafe.Add(ref r0, offset); + + return ref ri; + } + } + + #endregion + + #region Constructors + + /// + /// Initializes a new instance of the struct. + /// + /// The instance with the info on the items to traverse. + /// The distance between items in the sequence to enumerate. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal Enumerator(ReadOnlySpan span, int step) + { + this._span = span; + this._step = step; + + _position = -1; + } + + #endregion + + #region Methods + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool MoveNext() => ++_position < _span.Length; + + #endregion + } +} diff --git a/HPPH/Data/Generic3ByteData.cs b/HPPH/Data/Generic3ByteData.cs new file mode 100644 index 0000000..d2d239e --- /dev/null +++ b/HPPH/Data/Generic3ByteData.cs @@ -0,0 +1,8 @@ +namespace HPPH; + +internal readonly struct Generic3ByteData(byte b1, byte b2, byte b3) +{ + public readonly byte B1 = b1; + public readonly byte B2 = b2; + public readonly byte B3 = b3; +} \ No newline at end of file diff --git a/HPPH/Data/Generic3ByteMinMax.cs b/HPPH/Data/Generic3ByteMinMax.cs new file mode 100644 index 0000000..ad9c9b8 --- /dev/null +++ b/HPPH/Data/Generic3ByteMinMax.cs @@ -0,0 +1,17 @@ +namespace HPPH; + +internal readonly struct Generic3ByteMinMax(byte b1Min, byte b1Max, byte b2Min, byte b2Max, byte b3Min, byte b3Max) +{ + public readonly byte B1Min = b1Min; + public readonly byte B1Max = b1Max; + + public readonly byte B2Min = b2Min; + public readonly byte B2Max = b2Max; + + public readonly byte B3Min = b3Min; + public readonly byte B3Max = b3Max; + + public byte B1Range => (byte)(B1Max - B1Min); + public byte B2Range => (byte)(B2Max - B2Min); + public byte B3Range => (byte)(B3Max - B3Min); +} diff --git a/HPPH/Data/Generic4ByteData.cs b/HPPH/Data/Generic4ByteData.cs new file mode 100644 index 0000000..1163c61 --- /dev/null +++ b/HPPH/Data/Generic4ByteData.cs @@ -0,0 +1,9 @@ +namespace HPPH; + +internal readonly struct Generic4ByteData(byte b1, byte b2, byte b3, byte b4) +{ + public readonly byte B1 = b1; + public readonly byte B2 = b2; + public readonly byte B3 = b3; + public readonly byte B4 = b4; +} \ No newline at end of file diff --git a/HPPH/Data/Generic4ByteMinMax.cs b/HPPH/Data/Generic4ByteMinMax.cs new file mode 100644 index 0000000..b256660 --- /dev/null +++ b/HPPH/Data/Generic4ByteMinMax.cs @@ -0,0 +1,21 @@ +namespace HPPH; + +internal readonly struct Generic4ByteMinMax(byte b1Min, byte b1Max, byte b2Min, byte b2Max, byte b3Min, byte b3Max, byte b4Min, byte b4Max) +{ + public readonly byte B1Min = b1Min; + public readonly byte B1Max = b1Max; + + public readonly byte B2Min = b2Min; + public readonly byte B2Max = b2Max; + + public readonly byte B3Min = b3Min; + public readonly byte B3Max = b3Max; + + public readonly byte B4Min = b4Min; + public readonly byte B4Max = b4Max; + + public byte B1Range => (byte)(B1Max - B1Min); + public byte B2Range => (byte)(B2Max - B2Min); + public byte B3Range => (byte)(B3Max - B3Min); + public byte B4Range => (byte)(B4Max - B4Min); +} diff --git a/HPPH/Data/Generic4LongData.cs b/HPPH/Data/Generic4LongData.cs new file mode 100644 index 0000000..122c1fc --- /dev/null +++ b/HPPH/Data/Generic4LongData.cs @@ -0,0 +1,9 @@ +namespace HPPH; + +internal readonly struct Generic4LongData(long l1, long l2, long l3, long l4) +{ + public readonly long L1 = l1; + public readonly long L2 = l2; + public readonly long L3 = l3; + public readonly long L4 = l4; +} \ No newline at end of file diff --git a/HPPH/Data/IMinMax.cs b/HPPH/Data/IMinMax.cs new file mode 100644 index 0000000..4650cd7 --- /dev/null +++ b/HPPH/Data/IMinMax.cs @@ -0,0 +1,21 @@ +namespace HPPH; + +public interface IMinMax +{ + public byte RedMin { get; } + public byte RedMax { get; } + + public byte GreenMin { get; } + public byte GreenMax { get; } + + public byte BlueMin { get; } + public byte BlueMax { get; } + + public byte AlphaMin { get; } + public byte AlphaMax { get; } + + public byte RedRange { get; } + public byte GreenRange { get; } + public byte BlueRange { get; } + public byte AlphaRange { get; } +} \ No newline at end of file diff --git a/HPPH/Data/ISum.cs b/HPPH/Data/ISum.cs new file mode 100644 index 0000000..8dcbad9 --- /dev/null +++ b/HPPH/Data/ISum.cs @@ -0,0 +1,9 @@ +namespace HPPH; + +public interface ISum +{ + public long R { get; } + public long G { get; } + public long B { get; } + public long A { get; } +} \ No newline at end of file diff --git a/HPPH/Extensions/HPPHExtensions.cs b/HPPH/Extensions/HPPHExtensions.cs new file mode 100644 index 0000000..66dae82 --- /dev/null +++ b/HPPH/Extensions/HPPHExtensions.cs @@ -0,0 +1,94 @@ +using System.Numerics; +using System.Runtime.CompilerServices; + +namespace HPPH; + +/// +/// Offers some extensions and helper-methods for the work with floats. +/// +internal static class HPPHExtensions +{ + #region Constants + + /// + /// Defines the precision RGB.NET processes floating point comparisons in. + /// + public const float TOLERANCE = 1E-7f; + + #endregion + + #region Methods + + /// + /// Checks if two values are equal respecting the . + /// + /// The first value to compare. + /// The first value to compare. + /// true if the difference is smaller than the ; otherwise, false. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool EqualsInTolerance(this float value1, float value2) => Math.Abs(value1 - value2) < TOLERANCE; + + /// + /// Clamps the provided value to be bigger or equal min and smaller or equal max. + /// + /// The value to clamp. + /// The lower value of the range the value is clamped to. + /// The higher value of the range the value is clamped to. + /// The clamped value. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static T Clamp(this T value, T min, T max) + where T : INumber + { + // ReSharper disable ConvertIfStatementToReturnStatement - I'm not sure why, but inlining this statement reduces performance by ~10% + if (value < min) return min; + if (value > max) return max; + return value; + // ReSharper restore ConvertIfStatementToReturnStatement + } + + /// + /// Enforces the provided value to be in the specified range by wrapping it around the edges if it exceeds them. + /// + /// The value to wrap. + /// The lower value of the range the value is wrapped into. + /// The higher value of the range the value is wrapped into. + /// The wrapped value. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static T Wrap(this T value, T min, T max) + where T : INumber + { + T range = max - min; + + while (value >= max) + value -= range; + + while (value < min) + value += range; + + return value; + } + + /// + /// Converts a normalized float value in the range [0..1] to a byte [0..255]. + /// + /// The normalized float value to convert. + /// The byte value. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static byte GetByteValueFromPercentage(this float percentage) + { + if (float.IsNaN(percentage) || (percentage < 0)) return 0; + + return (byte)(percentage >= 1.0f ? 255 : percentage * 256.0f); + } + + /// + /// Converts a byte value [0..255] to a normalized float value in the range [0..1]. + /// + /// The byte value to convert. + /// The normalized float value. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float GetPercentageFromByteValue(this byte value) + => value == 255 ? 1.0f : (value / 256.0f); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSortSourceGenerator/ColorSortGeneratorAttribute.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSortSourceGenerator/ColorSortGeneratorAttribute.g.cs new file mode 100644 index 0000000..4ae6eb7 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSortSourceGenerator/ColorSortGeneratorAttribute.g.cs @@ -0,0 +1,8 @@ +namespace HPPH; + +[AttributeUsage(AttributeTargets.Method)] +internal class ColorSortGeneratorAttribute(string dataTypeName, string sortValueName) : Attribute +{ + public string DataTypeName { get; } = dataTypeName; + public string SortValueName { get; } = sortValueName; +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSortSourceGenerator/PixelHelper.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSortSourceGenerator/PixelHelper.g.cs new file mode 100644 index 0000000..da7195d --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSortSourceGenerator/PixelHelper.g.cs @@ -0,0 +1,393 @@ +using System.Buffers; + +namespace HPPH; + +public static unsafe partial class PixelHelper +{ + public static partial void SortByRed(Span colors) where T : unmanaged, IColor + { + fixed (T* ptr = colors) + { + T* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (T* color = ptr; color < end; color++) + histogram[(*color).R]++; + + T[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (T* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).R]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + public static partial void SortByGreen(Span colors) where T : unmanaged, IColor + { + fixed (T* ptr = colors) + { + T* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (T* color = ptr; color < end; color++) + histogram[(*color).G]++; + + T[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (T* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).G]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + public static partial void SortByBlue(Span colors) where T : unmanaged, IColor + { + fixed (T* ptr = colors) + { + T* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (T* color = ptr; color < end; color++) + histogram[(*color).B]++; + + T[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (T* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).B]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + public static partial void SortByAlpha(Span colors) where T : unmanaged, IColor + { + fixed (T* ptr = colors) + { + T* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (T* color = ptr; color < end; color++) + histogram[(*color).A]++; + + T[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (T* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).A]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + internal static partial void SortB1(Span colors) + { + fixed (Generic3ByteData* ptr = colors) + { + Generic3ByteData* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (Generic3ByteData* color = ptr; color < end; color++) + histogram[(*color).B1]++; + + Generic3ByteData[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (Generic3ByteData* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).B1]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + internal static partial void SortB2(Span colors) + { + fixed (Generic3ByteData* ptr = colors) + { + Generic3ByteData* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (Generic3ByteData* color = ptr; color < end; color++) + histogram[(*color).B2]++; + + Generic3ByteData[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (Generic3ByteData* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).B2]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + internal static partial void SortB3(Span colors) + { + fixed (Generic3ByteData* ptr = colors) + { + Generic3ByteData* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (Generic3ByteData* color = ptr; color < end; color++) + histogram[(*color).B3]++; + + Generic3ByteData[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (Generic3ByteData* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).B3]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + internal static partial void SortB1(Span colors) + { + fixed (Generic4ByteData* ptr = colors) + { + Generic4ByteData* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (Generic4ByteData* color = ptr; color < end; color++) + histogram[(*color).B1]++; + + Generic4ByteData[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (Generic4ByteData* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).B1]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + internal static partial void SortB2(Span colors) + { + fixed (Generic4ByteData* ptr = colors) + { + Generic4ByteData* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (Generic4ByteData* color = ptr; color < end; color++) + histogram[(*color).B2]++; + + Generic4ByteData[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (Generic4ByteData* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).B2]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + internal static partial void SortB3(Span colors) + { + fixed (Generic4ByteData* ptr = colors) + { + Generic4ByteData* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (Generic4ByteData* color = ptr; color < end; color++) + histogram[(*color).B3]++; + + Generic4ByteData[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (Generic4ByteData* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).B3]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + internal static partial void SortB4(Span colors) + { + fixed (Generic4ByteData* ptr = colors) + { + Generic4ByteData* end = ptr + colors.Length; + + Span histogram = stackalloc int[256]; + histogram.Clear(); + for (Generic4ByteData* color = ptr; color < end; color++) + histogram[(*color).B4]++; + + Generic4ByteData[] bucketsArray = ArrayPool.Shared.Rent(colors.Length); + try + { + Span buckets = bucketsArray.AsSpan()[..colors.Length]; + Span currentBucketIndex = stackalloc int[256]; + + int offset = 0; + for (int i = 0; i < histogram.Length; i++) + { + currentBucketIndex[i] = offset; + offset += histogram[i]; + } + + for (Generic4ByteData* color = ptr; color < end; color++) + buckets[currentBucketIndex[(*color).B4]++] = (*color); + + buckets.CopyTo(colors); + } + finally + { + ArrayPool.Shared.Return(bucketsArray); + } + } + } + +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorABGR.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorABGR.g.cs new file mode 100644 index 0000000..5adf3e4 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorABGR.g.cs @@ -0,0 +1,57 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +/// +/// Represents a color in 32 bit ABGR-format. +/// +/// +/// Initializes a new instance of the class. +/// +/// The Alpha-component of the color. +/// The Blue-component of the color. +/// The Green-component of the color. +/// The Red-component of the color. +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct ColorABGR(byte a, byte b, byte g, byte r) : IColor +{ + #region Properties & Fields + + /// + public static IColorFormat ColorFormat => IColorFormat.ABGR; + + private readonly byte _a = a; + private readonly byte _b = b; + private readonly byte _g = g; + private readonly byte _r = r; + + /// + public byte R => _r; + + /// + public byte G => _g; + + /// + public byte B => _b; + + /// + public byte A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + /// + public static IColor Create(byte r, byte g, byte b, byte a) => new ColorABGR(a, b, g, r); + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorARGB.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorARGB.g.cs new file mode 100644 index 0000000..19d95a1 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorARGB.g.cs @@ -0,0 +1,57 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +/// +/// Represents a color in 32 bit ARGB-format. +/// +/// +/// Initializes a new instance of the class. +/// +/// The Alpha-component of the color. +/// The Red-component of the color. +/// The Green-component of the color. +/// The Blue-component of the color. +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct ColorARGB(byte a, byte r, byte g, byte b) : IColor +{ + #region Properties & Fields + + /// + public static IColorFormat ColorFormat => IColorFormat.ARGB; + + private readonly byte _a = a; + private readonly byte _r = r; + private readonly byte _g = g; + private readonly byte _b = b; + + /// + public byte R => _r; + + /// + public byte G => _g; + + /// + public byte B => _b; + + /// + public byte A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + /// + public static IColor Create(byte r, byte g, byte b, byte a) => new ColorARGB(a, r, g, b); + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorBGR.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorBGR.g.cs new file mode 100644 index 0000000..6133d7b --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorBGR.g.cs @@ -0,0 +1,55 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +/// +/// Represents a color in 24 bit BGR-format. +/// +/// +/// Initializes a new instance of the class. +/// +/// The Blue-component of the color. +/// The Green-component of the color. +/// The Red-component of the color. +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct ColorBGR(byte b, byte g, byte r): IColor +{ + #region Properties & Fields + + /// + public static IColorFormat ColorFormat => IColorFormat.BGR; + + private readonly byte _b = b; + private readonly byte _g = g; + private readonly byte _r = r; + + /// + public byte R => _r; + + /// + public byte G => _g; + + /// + public byte B => _b; + + /// + public byte A => byte.MaxValue; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + /// + public static IColor Create(byte r, byte g, byte b, byte a) => new ColorBGR(b, g, r); + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorBGRA.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorBGRA.g.cs new file mode 100644 index 0000000..da510c4 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorBGRA.g.cs @@ -0,0 +1,57 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +/// +/// Represents a color in 32 bit BGRA-format. +/// +/// +/// Initializes a new instance of the class. +/// +/// The Blue-component of the color. +/// The Green-component of the color. +/// The Red-component of the color. +/// The Alpha-component of the color. +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct ColorBGRA(byte b, byte g, byte r, byte a) : IColor +{ + #region Properties & Fields + + /// + public static IColorFormat ColorFormat => IColorFormat.BGRA; + + private readonly byte _b = b; + private readonly byte _g = g; + private readonly byte _r = r; + private readonly byte _a = a; + + /// + public byte R => _r; + + /// + public byte G => _g; + + /// + public byte B => _b; + + /// + public byte A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + /// + public static IColor Create(byte r, byte g, byte b, byte a) => new ColorBGRA(b, g, r, a); + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Average.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Average.g.cs new file mode 100644 index 0000000..89256c8 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Average.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatABGR +{ + #region Methods + + unsafe IColor IColorFormat.Average(ReadOnlySpan data) => PixelHelper.Average(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.MinMax.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.MinMax.g.cs new file mode 100644 index 0000000..bfa8909 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.MinMax.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatABGR +{ + #region Methods + + unsafe IMinMax IColorFormat.MinMax(ReadOnlySpan data) => PixelHelper.MinMax(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Quantize.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Quantize.g.cs new file mode 100644 index 0000000..d8c4820 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Quantize.g.cs @@ -0,0 +1,21 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatABGR +{ + #region Methods + + unsafe IColor[] IColorFormat.CreateColorPalette(ReadOnlySpan data, int paletteSize) + { + ColorABGR[] colors = PixelHelper.CreateColorPalette(MemoryMarshal.Cast(data), paletteSize); + + IColor[] result = new IColor[colors.Length]; + for(int i = 0; i < colors.Length; i++) + result[i] = colors[i]; + + return result; + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Sum.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Sum.g.cs new file mode 100644 index 0000000..8747e73 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.Sum.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatABGR +{ + #region Methods + + unsafe ISum IColorFormat.Sum(ReadOnlySpan data) => PixelHelper.Sum(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.g.cs new file mode 100644 index 0000000..076f185 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatABGR.g.cs @@ -0,0 +1,20 @@ +namespace HPPH; + +public sealed partial class ColorFormatABGR : IColorFormat +{ + #region Properties & Fields + + public static ColorFormatABGR Instance { get; } = new(); + + public int BytesPerPixel => 4; + + public string Name => "ABGR"; + + #endregion + + #region Constructors + + private ColorFormatABGR() {} + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Average.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Average.g.cs new file mode 100644 index 0000000..75a4c40 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Average.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatARGB +{ + #region Methods + + unsafe IColor IColorFormat.Average(ReadOnlySpan data) => PixelHelper.Average(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.MinMax.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.MinMax.g.cs new file mode 100644 index 0000000..37d06a3 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.MinMax.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatARGB +{ + #region Methods + + unsafe IMinMax IColorFormat.MinMax(ReadOnlySpan data) => PixelHelper.MinMax(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Quantize.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Quantize.g.cs new file mode 100644 index 0000000..411e19c --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Quantize.g.cs @@ -0,0 +1,21 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatARGB +{ + #region Methods + + unsafe IColor[] IColorFormat.CreateColorPalette(ReadOnlySpan data, int paletteSize) + { + ColorARGB[] colors = PixelHelper.CreateColorPalette(MemoryMarshal.Cast(data), paletteSize); + + IColor[] result = new IColor[colors.Length]; + for(int i = 0; i < colors.Length; i++) + result[i] = colors[i]; + + return result; + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Sum.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Sum.g.cs new file mode 100644 index 0000000..0275eff --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.Sum.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatARGB +{ + #region Methods + + unsafe ISum IColorFormat.Sum(ReadOnlySpan data) => PixelHelper.Sum(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.g.cs new file mode 100644 index 0000000..5dcb76d --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatARGB.g.cs @@ -0,0 +1,20 @@ +namespace HPPH; + +public sealed partial class ColorFormatARGB : IColorFormat +{ + #region Properties & Fields + + public static ColorFormatARGB Instance { get; } = new(); + + public int BytesPerPixel => 4; + + public string Name => "ARGB"; + + #endregion + + #region Constructors + + private ColorFormatARGB() {} + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Average.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Average.g.cs new file mode 100644 index 0000000..932d2c7 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Average.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatBGR +{ + #region Methods + + unsafe IColor IColorFormat.Average(ReadOnlySpan data) => PixelHelper.Average(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.MinMax.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.MinMax.g.cs new file mode 100644 index 0000000..2276eb2 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.MinMax.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatBGR +{ + #region Methods + + unsafe IMinMax IColorFormat.MinMax(ReadOnlySpan data) => PixelHelper.MinMax(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Quantize.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Quantize.g.cs new file mode 100644 index 0000000..0f82830 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Quantize.g.cs @@ -0,0 +1,21 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatBGR +{ + #region Methods + + unsafe IColor[] IColorFormat.CreateColorPalette(ReadOnlySpan data, int paletteSize) + { + ColorBGR[] colors = PixelHelper.CreateColorPalette(MemoryMarshal.Cast(data), paletteSize); + + IColor[] result = new IColor[colors.Length]; + for(int i = 0; i < colors.Length; i++) + result[i] = colors[i]; + + return result; + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Sum.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Sum.g.cs new file mode 100644 index 0000000..4d46ad0 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.Sum.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatBGR +{ + #region Methods + + unsafe ISum IColorFormat.Sum(ReadOnlySpan data) => PixelHelper.Sum(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.g.cs new file mode 100644 index 0000000..1de747c --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGR.g.cs @@ -0,0 +1,20 @@ +namespace HPPH; + +public sealed partial class ColorFormatBGR : IColorFormat +{ + #region Properties & Fields + + public static ColorFormatBGR Instance { get; } = new(); + + public int BytesPerPixel => 3; + + public string Name => "BGR"; + + #endregion + + #region Constructors + + private ColorFormatBGR() {} + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Average.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Average.g.cs new file mode 100644 index 0000000..2226df5 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Average.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatBGRA +{ + #region Methods + + unsafe IColor IColorFormat.Average(ReadOnlySpan data) => PixelHelper.Average(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.MinMax.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.MinMax.g.cs new file mode 100644 index 0000000..d954759 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.MinMax.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatBGRA +{ + #region Methods + + unsafe IMinMax IColorFormat.MinMax(ReadOnlySpan data) => PixelHelper.MinMax(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Quantize.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Quantize.g.cs new file mode 100644 index 0000000..9c1e1e6 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Quantize.g.cs @@ -0,0 +1,21 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatBGRA +{ + #region Methods + + unsafe IColor[] IColorFormat.CreateColorPalette(ReadOnlySpan data, int paletteSize) + { + ColorBGRA[] colors = PixelHelper.CreateColorPalette(MemoryMarshal.Cast(data), paletteSize); + + IColor[] result = new IColor[colors.Length]; + for(int i = 0; i < colors.Length; i++) + result[i] = colors[i]; + + return result; + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Sum.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Sum.g.cs new file mode 100644 index 0000000..e4f3926 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.Sum.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatBGRA +{ + #region Methods + + unsafe ISum IColorFormat.Sum(ReadOnlySpan data) => PixelHelper.Sum(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.g.cs new file mode 100644 index 0000000..17feeb9 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatBGRA.g.cs @@ -0,0 +1,20 @@ +namespace HPPH; + +public sealed partial class ColorFormatBGRA : IColorFormat +{ + #region Properties & Fields + + public static ColorFormatBGRA Instance { get; } = new(); + + public int BytesPerPixel => 4; + + public string Name => "BGRA"; + + #endregion + + #region Constructors + + private ColorFormatBGRA() {} + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Average.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Average.g.cs new file mode 100644 index 0000000..9891fb8 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Average.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatRGB +{ + #region Methods + + unsafe IColor IColorFormat.Average(ReadOnlySpan data) => PixelHelper.Average(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.MinMax.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.MinMax.g.cs new file mode 100644 index 0000000..31c5360 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.MinMax.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatRGB +{ + #region Methods + + unsafe IMinMax IColorFormat.MinMax(ReadOnlySpan data) => PixelHelper.MinMax(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Quantize.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Quantize.g.cs new file mode 100644 index 0000000..3a7daca --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Quantize.g.cs @@ -0,0 +1,21 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatRGB +{ + #region Methods + + unsafe IColor[] IColorFormat.CreateColorPalette(ReadOnlySpan data, int paletteSize) + { + ColorRGB[] colors = PixelHelper.CreateColorPalette(MemoryMarshal.Cast(data), paletteSize); + + IColor[] result = new IColor[colors.Length]; + for(int i = 0; i < colors.Length; i++) + result[i] = colors[i]; + + return result; + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Sum.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Sum.g.cs new file mode 100644 index 0000000..70a9b12 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.Sum.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatRGB +{ + #region Methods + + unsafe ISum IColorFormat.Sum(ReadOnlySpan data) => PixelHelper.Sum(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.g.cs new file mode 100644 index 0000000..1208503 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGB.g.cs @@ -0,0 +1,20 @@ +namespace HPPH; + +public sealed partial class ColorFormatRGB : IColorFormat +{ + #region Properties & Fields + + public static ColorFormatRGB Instance { get; } = new(); + + public int BytesPerPixel => 3; + + public string Name => "RGB"; + + #endregion + + #region Constructors + + private ColorFormatRGB() {} + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Average.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Average.g.cs new file mode 100644 index 0000000..609b087 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Average.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatRGBA +{ + #region Methods + + unsafe IColor IColorFormat.Average(ReadOnlySpan data) => PixelHelper.Average(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.MinMax.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.MinMax.g.cs new file mode 100644 index 0000000..381cb6b --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.MinMax.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatRGBA +{ + #region Methods + + unsafe IMinMax IColorFormat.MinMax(ReadOnlySpan data) => PixelHelper.MinMax(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Quantize.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Quantize.g.cs new file mode 100644 index 0000000..43a36dd --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Quantize.g.cs @@ -0,0 +1,21 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatRGBA +{ + #region Methods + + unsafe IColor[] IColorFormat.CreateColorPalette(ReadOnlySpan data, int paletteSize) + { + ColorRGBA[] colors = PixelHelper.CreateColorPalette(MemoryMarshal.Cast(data), paletteSize); + + IColor[] result = new IColor[colors.Length]; + for(int i = 0; i < colors.Length; i++) + result[i] = colors[i]; + + return result; + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Sum.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Sum.g.cs new file mode 100644 index 0000000..1ffb1ff --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.Sum.g.cs @@ -0,0 +1,12 @@ +using System.Runtime.InteropServices; + +namespace HPPH; + +public sealed partial class ColorFormatRGBA +{ + #region Methods + + unsafe ISum IColorFormat.Sum(ReadOnlySpan data) => PixelHelper.Sum(MemoryMarshal.Cast(data)); + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.g.cs new file mode 100644 index 0000000..1e29a15 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorFormatRGBA.g.cs @@ -0,0 +1,20 @@ +namespace HPPH; + +public sealed partial class ColorFormatRGBA : IColorFormat +{ + #region Properties & Fields + + public static ColorFormatRGBA Instance { get; } = new(); + + public int BytesPerPixel => 4; + + public string Name => "RGBA"; + + #endregion + + #region Constructors + + private ColorFormatRGBA() {} + + #endregion +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorGeneratorAttribute.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorGeneratorAttribute.g.cs new file mode 100644 index 0000000..d847095 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorGeneratorAttribute.g.cs @@ -0,0 +1,4 @@ +namespace HPPH; + +[AttributeUsage(AttributeTargets.Struct)] +internal class ColorGeneratorAttribute : Attribute; \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorRGB.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorRGB.g.cs new file mode 100644 index 0000000..34b6b9d --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorRGB.g.cs @@ -0,0 +1,55 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +/// +/// Represents a color in 24 bit RGB-format. +/// +/// +/// Initializes a new instance of the class. +/// +/// The Red-component of the color. +/// The Green-component of the color. +/// The Blue-component of the color. +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct ColorRGB(byte r, byte g, byte b): IColor +{ + #region Properties & Fields + + /// + public static IColorFormat ColorFormat => IColorFormat.RGB; + + private readonly byte _r = r; + private readonly byte _g = g; + private readonly byte _b = b; + + /// + public byte R => _r; + + /// + public byte G => _g; + + /// + public byte B => _b; + + /// + public byte A => byte.MaxValue; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + /// + public static IColor Create(byte r, byte g, byte b, byte a) => new ColorRGB(r, g, b); + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorRGBA.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorRGBA.g.cs new file mode 100644 index 0000000..134a1a2 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/ColorRGBA.g.cs @@ -0,0 +1,57 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +/// +/// Represents a color in 32 bit RGBA-format. +/// +/// +/// Initializes a new instance of the class. +/// +/// The Red-component of the color. +/// The Green-component of the color. +/// The Blue-component of the color. +/// The Alpha-component of the color. +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct ColorRGBA(byte r, byte g, byte b, byte a) : IColor +{ + #region Properties & Fields + + /// + public static IColorFormat ColorFormat => IColorFormat.RGBA; + + private readonly byte _r = r; + private readonly byte _g = g; + private readonly byte _b = b; + private readonly byte _a = a; + + /// + public byte R => _r; + + /// + public byte G => _g; + + /// + public byte B => _b; + + /// + public byte A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + /// + public static IColor Create(byte r, byte g, byte b, byte a) => new ColorRGBA(r, g, b, a); + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Average.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Average.g.cs new file mode 100644 index 0000000..9227055 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Average.g.cs @@ -0,0 +1,6 @@ +namespace HPPH; + +public partial interface IColorFormat +{ + internal IColor Average(ReadOnlySpan data); +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Instances.cs.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Instances.cs.g.cs new file mode 100644 index 0000000..49328d2 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Instances.cs.g.cs @@ -0,0 +1,15 @@ +namespace HPPH; + +public partial interface IColorFormat +{ + #region Instances + + public static ColorFormatRGB RGB => ColorFormatRGB.Instance; + public static ColorFormatBGR BGR => ColorFormatBGR.Instance; + public static ColorFormatARGB ARGB => ColorFormatARGB.Instance; + public static ColorFormatABGR ABGR => ColorFormatABGR.Instance; + public static ColorFormatRGBA RGBA => ColorFormatRGBA.Instance; + public static ColorFormatBGRA BGRA => ColorFormatBGRA.Instance; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.MinMax.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.MinMax.g.cs new file mode 100644 index 0000000..98aa3ea --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.MinMax.g.cs @@ -0,0 +1,6 @@ +namespace HPPH; + +public partial interface IColorFormat +{ + internal IMinMax MinMax(ReadOnlySpan data); +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Quantize.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Quantize.g.cs new file mode 100644 index 0000000..2bb8aca --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Quantize.g.cs @@ -0,0 +1,6 @@ +namespace HPPH; + +public partial interface IColorFormat +{ + internal IColor[] CreateColorPalette(ReadOnlySpan data, int paletteSize); +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Sum.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Sum.g.cs new file mode 100644 index 0000000..d05861e --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/IColorFormat.Sum.g.cs @@ -0,0 +1,6 @@ +namespace HPPH; + +public partial interface IColorFormat +{ + internal ISum Sum(ReadOnlySpan data); +} \ No newline at end of file diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxABGR.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxABGR.g.cs new file mode 100644 index 0000000..9fb0a3f --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxABGR.g.cs @@ -0,0 +1,52 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct MinMaxABGR(byte aMin, byte aMax, byte bMin, byte bMax, byte gMin, byte gMax, byte rMin, byte rMax) : IMinMax +{ + #region Properties & Fields + + private readonly byte _aMin = aMin; + private readonly byte _aMax = aMax; + + private readonly byte _bMin = bMin; + private readonly byte _bMax = bMax; + + private readonly byte _gMin = gMin; + private readonly byte _gMax = gMax; + + private readonly byte _rMin = rMin; + private readonly byte _rMax = rMax; + + public byte RedMin => _rMin; + public byte RedMax => _rMax; + + public byte GreenMin => _gMin; + public byte GreenMax => _gMax; + + public byte BlueMin => _bMin; + public byte BlueMax => _bMax; + + public byte AlphaMin => _aMin; + public byte AlphaMax => _aMax; + + public byte RedRange => (byte)(_rMax - _rMin); + public byte GreenRange => (byte)(_gMax - _gMin); + public byte BlueRange => (byte)(_bMax - _bMin); + public byte AlphaRange => (byte)(_aMax - _aMin); + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxARGB.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxARGB.g.cs new file mode 100644 index 0000000..4065e99 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxARGB.g.cs @@ -0,0 +1,52 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct MinMaxARGB(byte aMin, byte aMax, byte rMin, byte rMax, byte gMin, byte gMax, byte bMin, byte bMax) : IMinMax +{ + #region Properties & Fields + + private readonly byte _aMin = aMin; + private readonly byte _aMax = aMax; + + private readonly byte _rMin = rMin; + private readonly byte _rMax = rMax; + + private readonly byte _gMin = gMin; + private readonly byte _gMax = gMax; + + private readonly byte _bMin = bMin; + private readonly byte _bMax = bMax; + + public byte RedMin => _rMin; + public byte RedMax => _rMax; + + public byte GreenMin => _gMin; + public byte GreenMax => _gMax; + + public byte BlueMin => _bMin; + public byte BlueMax => _bMax; + + public byte AlphaMin => _aMin; + public byte AlphaMax => _aMax; + + public byte RedRange => (byte)(_rMax - _rMin); + public byte GreenRange => (byte)(_gMax - _gMin); + public byte BlueRange => (byte)(_bMax - _bMin); + public byte AlphaRange => (byte)(_aMax - _aMin); + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxBGR.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxBGR.g.cs new file mode 100644 index 0000000..ef4d4e7 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxBGR.g.cs @@ -0,0 +1,49 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct MinMaxBGR(byte bMin, byte bMax, byte gMin, byte gMax, byte rMin, byte rMax) : IMinMax +{ + #region Properties & Fields + + private readonly byte _bMin = bMin; + private readonly byte _bMax = bMax; + + private readonly byte _gMin = gMin; + private readonly byte _gMax = gMax; + + private readonly byte _rMin = rMin; + private readonly byte _rMax = rMax; + + public byte RedMin => _rMin; + public byte RedMax => _rMax; + + public byte GreenMin => _gMin; + public byte GreenMax => _gMax; + + public byte BlueMin => _bMin; + public byte BlueMax => _bMax; + + public byte AlphaMin => byte.MaxValue; + public byte AlphaMax => byte.MaxValue; + + public byte RedRange => (byte)(_rMax - _rMin); + public byte GreenRange => (byte)(_gMax - _gMin); + public byte BlueRange => (byte)(_bMax - _bMin); + public byte AlphaRange => 0; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxBGRA.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxBGRA.g.cs new file mode 100644 index 0000000..ab76312 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxBGRA.g.cs @@ -0,0 +1,52 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct MinMaxBGRA(byte bMin, byte bMax, byte gMin, byte gMax, byte rMin, byte rMax, byte aMin, byte aMax) : IMinMax +{ + #region Properties & Fields + + private readonly byte _bMin = bMin; + private readonly byte _bMax = bMax; + + private readonly byte _gMin = gMin; + private readonly byte _gMax = gMax; + + private readonly byte _rMin = rMin; + private readonly byte _rMax = rMax; + + private readonly byte _aMin = aMin; + private readonly byte _aMax = aMax; + + public byte RedMin => _rMin; + public byte RedMax => _rMax; + + public byte GreenMin => _gMin; + public byte GreenMax => _gMax; + + public byte BlueMin => _bMin; + public byte BlueMax => _bMax; + + public byte AlphaMin => _aMin; + public byte AlphaMax => _aMax; + + public byte RedRange => (byte)(_rMax - _rMin); + public byte GreenRange => (byte)(_gMax - _gMin); + public byte BlueRange => (byte)(_bMax - _bMin); + public byte AlphaRange => (byte)(_aMax - _aMin); + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxRGB.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxRGB.g.cs new file mode 100644 index 0000000..0c5e9ce --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxRGB.g.cs @@ -0,0 +1,49 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct MinMaxRGB(byte rMin, byte rMax, byte gMin, byte gMax, byte bMin, byte bMax) : IMinMax +{ + #region Properties & Fields + + private readonly byte _rMin = rMin; + private readonly byte _rMax = rMax; + + private readonly byte _gMin = gMin; + private readonly byte _gMax = gMax; + + private readonly byte _bMin = bMin; + private readonly byte _bMax = bMax; + + public byte RedMin => _rMin; + public byte RedMax => _rMax; + + public byte GreenMin => _gMin; + public byte GreenMax => _gMax; + + public byte BlueMin => _bMin; + public byte BlueMax => _bMax; + + public byte AlphaMin => byte.MaxValue; + public byte AlphaMax => byte.MaxValue; + + public byte RedRange => (byte)(_rMax - _rMin); + public byte GreenRange => (byte)(_gMax - _gMin); + public byte BlueRange => (byte)(_bMax - _bMin); + public byte AlphaRange => 0; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxRGBA.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxRGBA.g.cs new file mode 100644 index 0000000..44d1c4a --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/MinMaxRGBA.g.cs @@ -0,0 +1,52 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct MinMaxRGBA(byte rMin, byte rMax, byte gMin, byte gMax, byte bMin, byte bMax, byte aMin, byte aMax) : IMinMax +{ + #region Properties & Fields + + private readonly byte _rMin = rMin; + private readonly byte _rMax = rMax; + + private readonly byte _gMin = gMin; + private readonly byte _gMax = gMax; + + private readonly byte _bMin = bMin; + private readonly byte _bMax = bMax; + + private readonly byte _aMin = aMin; + private readonly byte _aMax = aMax; + + public byte RedMin => _rMin; + public byte RedMax => _rMax; + + public byte GreenMin => _gMin; + public byte GreenMax => _gMax; + + public byte BlueMin => _bMin; + public byte BlueMax => _bMax; + + public byte AlphaMin => _aMin; + public byte AlphaMax => _aMax; + + public byte RedRange => (byte)(_rMax - _rMin); + public byte GreenRange => (byte)(_gMax - _gMin); + public byte BlueRange => (byte)(_bMax - _bMin); + public byte AlphaRange => (byte)(_aMax - _aMin); + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {AlphaMin}-{AlphaMax}, R: {RedMin}-{RedMax}, G: {GreenMin}-{GreenMax}, B: {BlueMin}-{BlueMax}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumABGR.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumABGR.g.cs new file mode 100644 index 0000000..5330cbf --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumABGR.g.cs @@ -0,0 +1,34 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct SumABGR(long a, long b, long g, long r) : ISum +{ + #region Properties & Fields + + private readonly long _a = a; + private readonly long _b = b; + private readonly long _g = g; + private readonly long _r = r; + + public long R => _r; + public long G => _g; + public long B => _b; + public long A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumARGB.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumARGB.g.cs new file mode 100644 index 0000000..351ec90 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumARGB.g.cs @@ -0,0 +1,34 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct SumARGB(long a, long r, long g, long b) : ISum +{ + #region Properties & Fields + + private readonly long _a = a; + private readonly long _r = r; + private readonly long _g = g; + private readonly long _b = b; + + public long R => _r; + public long G => _g; + public long B => _b; + public long A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumBGR.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumBGR.g.cs new file mode 100644 index 0000000..df489ce --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumBGR.g.cs @@ -0,0 +1,34 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct SumBGR(long b, long g, long r, long a) : ISum +{ + #region Properties & Fields + + private readonly long _b = b; + private readonly long _g = g; + private readonly long _r = r; + private readonly long _a = a; + + public long A => _a; + public long R => _r; + public long G => _g; + public long B => _b; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumBGRA.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumBGRA.g.cs new file mode 100644 index 0000000..2e5cf13 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumBGRA.g.cs @@ -0,0 +1,34 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct SumBGRA(long b, long g, long r, long a) : ISum +{ + #region Properties & Fields + + private readonly long _b = b; + private readonly long _g = g; + private readonly long _r = r; + private readonly long _a = a; + + public long R => _r; + public long G => _g; + public long B => _b; + public long A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumRGB.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumRGB.g.cs new file mode 100644 index 0000000..c852c37 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumRGB.g.cs @@ -0,0 +1,34 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct SumRGB(long r, long g, long b, long a) : ISum +{ + #region Properties & Fields + + private readonly long _r = r; + private readonly long _g = g; + private readonly long _b = b; + private readonly long _a = a; + + public long A => _a; + public long R => _r; + public long G => _g; + public long B => _b; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + #endregion +} diff --git a/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumRGBA.g.cs b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumRGBA.g.cs new file mode 100644 index 0000000..7799ff2 --- /dev/null +++ b/HPPH/Generated/HPPH.Generators/HPPH.Generators.ColorSourceGenerator/SumRGBA.g.cs @@ -0,0 +1,34 @@ +// ReSharper disable ConvertToAutoProperty +// ReSharper disable ConvertToAutoPropertyWhenPossible +// ReSharper disable ReplaceWithPrimaryConstructorParameter + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace HPPH; + +[DebuggerDisplay("[A: {A}, R: {R}, G: {G}, B: {B}]")] +[StructLayout(LayoutKind.Sequential)] +public readonly partial struct SumRGBA(long r, long g, long b, long a) : ISum +{ + #region Properties & Fields + + private readonly long _r = r; + private readonly long _g = g; + private readonly long _b = b; + private readonly long _a = a; + + public long R => _r; + public long G => _g; + public long B => _b; + public long A => _a; + + #endregion + + #region Methods + + /// + public override string ToString() => $"[A: {A}, R: {R}, G: {G}, B: {B}]"; + + #endregion +} diff --git a/HPPH/HPPH.csproj b/HPPH/HPPH.csproj new file mode 100644 index 0000000..0561bbc --- /dev/null +++ b/HPPH/HPPH.csproj @@ -0,0 +1,20 @@ + + + + net8.0 + enable + enable + true + true + Generated + + + + + + + + + + + diff --git a/HPPH/HPPH.csproj.DotSettings b/HPPH/HPPH.csproj.DotSettings new file mode 100644 index 0000000..f85fea1 --- /dev/null +++ b/HPPH/HPPH.csproj.DotSettings @@ -0,0 +1,15 @@ + + True + True + True + True + True + True + True + True + True + True + True + True + True + True \ No newline at end of file diff --git a/HPPH/Images/IImage.cs b/HPPH/Images/IImage.cs new file mode 100644 index 0000000..bd5cac6 --- /dev/null +++ b/HPPH/Images/IImage.cs @@ -0,0 +1,189 @@ +namespace HPPH; + +/// +/// Represents a image. +/// +public interface IImage : IEnumerable +{ + /// + /// Gets the color format used in this image. + /// + IColorFormat ColorFormat { get; } + + /// + /// Gets the width of this image. + /// + int Width { get; } + + /// + /// Gets the height of this image. + /// + int Height { get; } + + /// + /// Gets the size in bytes of this image. + /// + int SizeInBytes { get; } + + /// + /// Gets the color at the specified location. + /// + /// The X-location to read. + /// The Y-location to read. + /// The color at the specified location. + IColor this[int x, int y] { get; } + + /// + /// Gets an image representing the specified location. + /// + /// The X-location of the image. + /// The Y-location of the image. + /// The width of the sub-image. + /// + /// + IImage this[int x, int y, int width, int height] { get; } + + /// + /// Gets a list of all rows of this image. + /// + IImageRows Rows { get; } + + /// + /// Gets a list of all columns of this image. + /// + IImageColumns Columns { get; } + + /// + /// Gets an representing this . + /// + /// The color-type of the iamge. + /// The . + RefImage AsRefImage() where TColor : struct, IColor; + + /// + /// Copies the contents of this into a destination instance. + /// + /// The destination instance. + /// + /// Thrown when is shorter than the source instance. + /// + void CopyTo(Span destination); + + /// + /// Allocates a new array and copies this into it. + /// + /// The new array containing the data of this . + byte[] ToArray(); + + /// + /// Represents a list of rows of an image. + /// + public interface IImageRows : IEnumerable + { + /// + /// Gets the amount of rows in this list. + /// + int Count { get; } + + /// + /// Gets a specific . + /// + /// The ´row to get. + /// The requested . + IImageRow this[int column] { get; } + } + + /// + /// Represents a list of columns of an image. + /// + public interface IImageColumns : IEnumerable + { + /// + /// Gets the amount of columns in this list. + /// + int Count { get; } + + /// + /// Gets a specific . + /// + /// The column to get. + /// The requested . + IImageColumn this[int column] { get; } + } + + /// + /// Represents a single row of an image. + /// + public interface IImageRow : IEnumerable + { + /// + /// Gets the length of the row. + /// + int Length { get; } + + /// + /// Gets the size in bytes of this row. + /// + int SizeInBytes { get; } + + /// + /// Gets the at the specified location. + /// + /// The location to get the color from. + /// The at the specified location. + IColor this[int x] { get; } + + /// + /// Copies the contents of this into a destination instance. + /// + /// The destination instance. + /// + /// Thrown when is shorter than the source instance. + /// + void CopyTo(Span destination); + + /// + /// Allocates a new array and copies this into it. + /// + /// The new array containing the data of this . + byte[] ToArray(); + } + + /// + /// Represents a single column of an image. + /// + public interface IImageColumn : IEnumerable + { + /// + /// Gets the length of the column. + /// + int Length { get; } + + /// + /// Gets the size in bytes of this column. + /// + int SizeInBytes { get; } + + /// + /// Gets the at the specified location. + /// + /// The location to get the color from. + /// The at the specified location. + IColor this[int y] { get; } + + /// + /// Copies the contents of this into a destination instance. + /// + /// The destination instance. + /// + /// Thrown when is shorter than the source instance. + /// + void CopyTo(Span destination); + + /// + /// Allocates a new array and copies this into it. + /// + /// The new array containing the data of this . + byte[] ToArray(); + } +} \ No newline at end of file diff --git a/HPPH/Images/Image.cs b/HPPH/Images/Image.cs new file mode 100644 index 0000000..3833d78 --- /dev/null +++ b/HPPH/Images/Image.cs @@ -0,0 +1,428 @@ +using System.Collections; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace HPPH; + +/// +public sealed class Image : IImage + where TColor : struct, IColor +{ + #region Properties & Fields + + private readonly byte[] _buffer; + + private readonly int _x; + private readonly int _y; + private readonly int _stride; + + /// + public IColorFormat ColorFormat + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => TColor.ColorFormat; + } + + /// + public int Width { get; } + + /// + public int Height { get; } + + /// + public int SizeInBytes => Width * Height * ColorFormat.BytesPerPixel; + + #endregion + + #region Indexer + + /// + public IColor this[int x, int y] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + if ((x < 0) || (y < 0) || (x >= Width) || (y >= Height)) throw new IndexOutOfRangeException(); + + return MemoryMarshal.Cast(_buffer)[((_y + y) * _stride) + (_x + x)]; + } + } + + /// + public IImage this[int x, int y, int width, int height] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + if ((x < 0) || (y < 0) || (width <= 0) || (height <= 0) || ((x + width) > Width) || ((y + height) > Height)) throw new IndexOutOfRangeException(); + + return new Image(_buffer, _x + x, _y + y, width, height, _stride); + } + } + + /// + public IImage.IImageRows Rows + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new ImageRows(_buffer, _x, _y, Width, Height, _stride); + } + + /// + public IImage.IImageColumns Columns + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new ImageColumns(_buffer, _x, _y, Width, Height, _stride); + } + + #endregion + + #region Constructors + + internal Image(byte[] buffer, int x, int y, int width, int height, int stride) + { + this._buffer = buffer; + this._x = x; + this._y = y; + this.Width = width; + this.Height = height; + this._stride = stride; + } + + #endregion + + #region Methods + + /// + public void CopyTo(Span destination) + { + if (destination == null) throw new ArgumentNullException(nameof(destination)); + if (destination.Length < SizeInBytes) throw new ArgumentException("The destination is too small to fit this image.", nameof(destination)); + + int targetStride = Width * ColorFormat.BytesPerPixel; + IImage.IImageRows rows = Rows; + Span target = destination; + foreach (IImage.IImageRow row in rows) + { + row.CopyTo(target); + target = target[targetStride..]; + } + } + + /// + public byte[] ToArray() + { + byte[] array = new byte[SizeInBytes]; + CopyTo(array); + return array; + } + + /// + public RefImage AsRefImage() + where T : struct, IColor + { + if (typeof(T) != typeof(TColor)) throw new ArgumentException("The requested color format does not fit this image.", nameof(T)); + + return new RefImage(MemoryMarshal.Cast(_buffer), _x, _y, Width, Height, _stride); + } + + /// + public IEnumerator GetEnumerator() + { + for (int y = 0; y < Height; y++) + for (int x = 0; x < Width; x++) + yield return this[x, y]; + } + + /// + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + + #endregion + + #region Indexer-Classes + + /// + private sealed class ImageRows : IImage.IImageRows + { + #region Properties & Fields + + private readonly byte[] _buffer; + private readonly int _x; + private readonly int _y; + private readonly int _width; + private readonly int _height; + private readonly int _stride; + + /// + public int Count => _height; + + #endregion + + #region Indexer + + /// + public IImage.IImageRow this[int row] + { + get + { + if ((row < 0) || (row >= _height)) throw new IndexOutOfRangeException(); + + return new ImageRow(_buffer, (((row + _y) * _stride) + _x), _width); + } + } + + #endregion + + #region Constructors + + internal ImageRows(byte[] buffer, int x, int y, int width, int height, int stride) + { + this._buffer = buffer; + this._x = x; + this._y = y; + this._width = width; + this._height = height; + this._stride = stride; + } + + #endregion + + #region Methods + + /// + public IEnumerator GetEnumerator() + { + for (int y = 0; y < _height; y++) + yield return this[y]; + } + + /// + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + + #endregion + } + + /// + private sealed class ImageRow : IImage.IImageRow + { + #region Properties & Fields + + private readonly byte[] _buffer; + private readonly int _start; + private readonly int _length; + + /// + public int Length => _length; + + /// + public int SizeInBytes => Length * TColor.ColorFormat.BytesPerPixel; + + #endregion + + #region Indexer + + /// + public IColor this[int x] + { + get + { + if ((x < 0) || (x >= _length)) throw new IndexOutOfRangeException(); + + ReadOnlySpan row = MemoryMarshal.Cast(_buffer)[_start..]; + return row[x]; + } + } + + #endregion + + #region Constructors + + internal ImageRow(byte[] buffer, int start, int length) + { + this._buffer = buffer; + this._start = start; + this._length = length; + } + + #endregion + + #region Methods + + /// + public void CopyTo(Span destination) + { + if (destination == null) throw new ArgumentNullException(nameof(destination)); + if (destination.Length < SizeInBytes) throw new ArgumentException("The destination is too small to fit this image.", nameof(destination)); + + MemoryMarshal.Cast(_buffer).Slice(_start, _length).CopyTo(MemoryMarshal.Cast(destination)); + } + + /// + public byte[] ToArray() + { + byte[] array = new byte[SizeInBytes]; + CopyTo(array); + return array; + } + + /// + public IEnumerator GetEnumerator() + { + for (int x = 0; x < _length; x++) + yield return this[x]; + } + + /// + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + + #endregion + } + + /// + private sealed class ImageColumns : IImage.IImageColumns + { + #region Properties & Fields + + private readonly byte[] _buffer; + private readonly int _x; + private readonly int _y; + private readonly int _width; + private readonly int _height; + private readonly int _stride; + + /// + public int Count => _width; + + #endregion + + #region Indexer + + /// + public IImage.IImageColumn this[int column] + { + get + { + if ((column < 0) || (column >= _width)) throw new IndexOutOfRangeException(); + + return new ImageColumn(_buffer, (_y * _stride) + _x + column, _height, _stride); + } + } + + #endregion + + #region Constructors + + internal ImageColumns(byte[] buffer, int x, int y, int width, int height, int stride) + { + this._buffer = buffer; + this._x = x; + this._y = y; + this._width = width; + this._height = height; + this._stride = stride; + } + + #endregion + + #region Methods + + /// + public IEnumerator GetEnumerator() + { + for (int y = 0; y < _height; y++) + yield return this[y]; + } + + /// + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + + #endregion + } + + /// + private sealed class ImageColumn : IImage.IImageColumn + { + #region Properties & Fields + + private readonly byte[] _buffer; + private readonly int _start; + private readonly int _length; + private readonly int _step; + + /// + public int Length => _length; + + /// + public int SizeInBytes => Length * TColor.ColorFormat.BytesPerPixel; + + #endregion + + #region Indexer + + /// + public IColor this[int y] + { + get + { + if ((y < 0) || (y >= _length)) throw new IndexOutOfRangeException(); + + ReadOnlySpan data = MemoryMarshal.Cast(_buffer)[_start..]; + return data[y * _step]; + } + } + + #endregion + + #region Constructors + + internal ImageColumn(byte[] buffer, int start, int length, int step) + { + this._buffer = buffer; + this._start = start; + this._length = length; + this._step = step; + } + + #endregion + + #region Methods + + /// + public void CopyTo(Span destination) + { + if (destination == null) throw new ArgumentNullException(nameof(destination)); + if (destination.Length < SizeInBytes) throw new ArgumentException("The destination is too small to fit this image.", nameof(destination)); + + if (_step == 1) + _buffer.AsSpan(_start, SizeInBytes).CopyTo(destination); + else + { + ReadOnlySpan data = MemoryMarshal.Cast(_buffer)[_start..]; + Span target = MemoryMarshal.Cast(destination); + for (int i = 0; i < Length; i++) + target[i] = data[i * _step]; + } + } + + /// + public byte[] ToArray() + { + byte[] array = new byte[SizeInBytes]; + CopyTo(array); + return array; + } + + /// + public IEnumerator GetEnumerator() + { + for (int y = 0; y < _length; y++) + yield return this[y]; + } + + /// + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + + #endregion + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/Images/RefImage.cs b/HPPH/Images/RefImage.cs new file mode 100644 index 0000000..8e7a725 --- /dev/null +++ b/HPPH/Images/RefImage.cs @@ -0,0 +1,367 @@ +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace HPPH; + +public readonly ref struct RefImage + where TColor : struct, IColor +{ + #region Properties & Fields + + private readonly ReadOnlySpan _pixels; + + private readonly int _x; + private readonly int _y; + + /// + /// Gets the width of the image. + /// + public int Width { get; } + + /// + /// Gets the height of the image. + /// + public int Height { get; } + + /// + /// Gets the stride (entries per row) of the underlying buffer. + /// Only useful if you want to work with a pinned buffer. + /// + public int RawStride { get; } + + #endregion + + #region Indexer + + public ref readonly TColor this[int x, int y] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + if ((x < 0) || (y < 0) || (x >= Width) || (y >= Height)) throw new IndexOutOfRangeException(); + + ref TColor r0 = ref MemoryMarshal.GetReference(_pixels); + nint offset = (nint)(uint)((_y + y) * RawStride) + (_x + x); + return ref Unsafe.Add(ref r0, offset); + } + } + + public RefImage this[int x, int y, int width, int height] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + if ((x < 0) || (y < 0) || (width <= 0) || (height <= 0) || ((x + width) > Width) || ((y + height) > Height)) throw new IndexOutOfRangeException(); + + return new RefImage(_pixels, _x + x, _y + y, width, height, RawStride); + } + } + + public ImageRows Rows + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new(_pixels, _x, _y, Width, Height, RawStride); + } + + public ImageColumns Columns + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new(_pixels, _x, _y, Width, Height, RawStride); + } + + #endregion + + #region Constructors + + internal RefImage(ReadOnlySpan pixels, int x, int y, int width, int height, int stride) + { + this._pixels = pixels; + this._x = x; + this._y = y; + this.Width = width; + this.Height = height; + this.RawStride = stride; + } + + #endregion + + #region Methods + + /// + /// Copies the contents of this into a destination instance. + /// + /// The destination instance. + /// + /// Thrown when is shorter than the source instance. + /// + public void CopyTo(Span destination) + { + if (destination == null) throw new ArgumentNullException(nameof(destination)); + if (destination.Length < (Width * Height)) throw new ArgumentException("The destination is too small to fit this image.", nameof(destination)); + + ImageRows rows = Rows; + Span target = destination; + foreach (ReadOnlyRefEnumerable row in rows) + { + row.CopyTo(target); + target = target[Width..]; + } + } + + /// + /// Allocates a new array and copies this into it. + /// + /// The new array containing the data of this . + public TColor[] ToArray() + { + TColor[] array = new TColor[Width * Height]; + CopyTo(array); + return array; + } + + /// + /// Returns a reference to the first element of this image inside the full image buffer. + /// + public ref readonly TColor GetPinnableReference() + { + if (_pixels.Length == 0) + return ref Unsafe.NullRef(); + + int offset = (_y * RawStride) + _x; + return ref MemoryMarshal.GetReference(_pixels[offset..]); + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ImageEnumerator GetEnumerator() => new(_pixels); + + #endregion + + public ref struct ImageEnumerator + { + #region Properties & Fields + + private readonly ReadOnlySpan _pixels; + private int _position; + + /// + public TColor Current + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => _pixels[_position]; + } + + #endregion + + #region Constructors + + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal ImageEnumerator(ReadOnlySpan pixels) + { + this._pixels = pixels; + + _position = -1; + } + + #endregion + + #region Methods + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool MoveNext() => ++_position < _pixels.Length; + + #endregion + } + + #region Indexer-Structs + + public readonly ref struct ImageRows + { + #region Properties & Fields + + private readonly ReadOnlySpan _pixels; + private readonly int _x; + private readonly int _y; + private readonly int _width; + private readonly int _height; + private readonly int _stride; + + public int Count => _height; + + #endregion + + #region Indexer + + public readonly ReadOnlyRefEnumerable this[int row] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + if ((row < 0) || (row > _height)) throw new IndexOutOfRangeException(); + + ref TColor r0 = ref MemoryMarshal.GetReference(_pixels); + ref TColor rr = ref Unsafe.Add(ref r0, (nint)(uint)(((row + _y) * _stride) + _x)); + + return new ReadOnlyRefEnumerable(rr, _width, 1); + } + } + + #endregion + + #region Constructors + + public ImageRows(ReadOnlySpan pixels, int x, int y, int width, int height, int stride) + { + this._pixels = pixels; + this._x = x; + this._y = y; + this._width = width; + this._height = height; + this._stride = stride; + } + + #endregion + + #region Methods + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ImageRowsEnumerator GetEnumerator() => new(this); + + #endregion + + public ref struct ImageRowsEnumerator + { + #region Properties & Fields + + private readonly ImageRows _rows; + private int _position; + + /// + public ReadOnlyRefEnumerable Current + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => _rows[_position]; + } + + #endregion + + #region Constructors + + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal ImageRowsEnumerator(ImageRows rows) + { + this._rows = rows; + + _position = -1; + } + + #endregion + + #region Methods + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool MoveNext() => ++_position < _rows._height; + + #endregion + } + } + + public readonly ref struct ImageColumns + { + #region Properties & Fields + + private readonly ReadOnlySpan _pixels; + private readonly int _x; + private readonly int _y; + private readonly int _width; + private readonly int _height; + private readonly int _stride; + + public int Count => _width; + + #endregion + + #region Indexer + + public ReadOnlyRefEnumerable this[int column] + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + if ((column < 0) || (column > _width)) throw new IndexOutOfRangeException(); + + ref TColor r0 = ref MemoryMarshal.GetReference(_pixels); + ref TColor rc = ref Unsafe.Add(ref r0, (nint)(uint)((_y * _stride) + (column + _x))); + + return new ReadOnlyRefEnumerable(rc, _height, _stride); + } + } + + #endregion + + #region Constructors + + public ImageColumns(ReadOnlySpan pixels, int x, int y, int width, int height, int stride) + { + this._pixels = pixels; + this._x = x; + this._y = y; + this._width = width; + this._height = height; + this._stride = stride; + } + + #endregion + + #region Methods + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ImageColumnsEnumerator GetEnumerator() => new(this); + + #endregion + + public ref struct ImageColumnsEnumerator + { + #region Properties & Fields + + private readonly ImageColumns _columns; + private int _position; + + /// + public ReadOnlyRefEnumerable Current + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => _columns[_position]; + } + + #endregion + + #region Constructors + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal ImageColumnsEnumerator(ImageColumns columns) + { + this._columns = columns; + this._position = -1; + } + + #endregion + + #region Methods + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool MoveNext() => ++_position < _columns._width; + + #endregion + } + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/PixelHelper.Average.cs b/HPPH/PixelHelper.Average.cs new file mode 100644 index 0000000..1b2d6f5 --- /dev/null +++ b/HPPH/PixelHelper.Average.cs @@ -0,0 +1,89 @@ +using System.Buffers; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace HPPH; + +public static partial class PixelHelper +{ + #region Methods + + public static IColor Average(IImage image) + { + ArgumentNullException.ThrowIfNull(image); + + int dataLength = image.SizeInBytes; + byte[] array = ArrayPool.Shared.Rent(dataLength); + Span buffer = array.AsSpan()[..dataLength]; + try + { + image.CopyTo(buffer); + return image.ColorFormat.Average(buffer); + } + finally + { + ArrayPool.Shared.Return(array); + } + } + + public static T Average(RefImage image) + where T : struct, IColor + { + int dataLength = image.Width * image.Height; + T[] array = ArrayPool.Shared.Rent(dataLength); + Span buffer = array.AsSpan()[..(dataLength)]; + try + { + image.CopyTo(buffer); + return Average(buffer); + } + finally + { + ArrayPool.Shared.Return(array); + } + } + + public static T Average(ReadOnlySpan colors) + where T : struct, IColor + { + if (colors == null) throw new ArgumentNullException(nameof(colors)); + + return T.ColorFormat.BytesPerPixel switch + { + 3 => Unsafe.BitCast(Average(MemoryMarshal.Cast(colors))), + 4 => Unsafe.BitCast(Average(MemoryMarshal.Cast(colors))), + _ => throw new NotSupportedException("Data is not of a supported valid color-type.") + }; + } + + internal static Generic3ByteData Average(ReadOnlySpan data) + { + if (data == null) throw new ArgumentNullException(nameof(data)); + if (data.Length == 0) return default; + if (data.Length == 1) return data[0]; + + Generic4LongData sum = Sum(data); + + float count = data.Length; + return new Generic3ByteData((sum.L1 / count).GetByteValueFromPercentage(), + (sum.L2 / count).GetByteValueFromPercentage(), + (sum.L3 / count).GetByteValueFromPercentage()); + } + + internal static Generic4ByteData Average(ReadOnlySpan data) + { + if (data == null) throw new ArgumentNullException(nameof(data)); + if (data.Length == 0) return default; + if (data.Length == 1) return data[0]; + + Generic4LongData sum = Sum(data); + + float count = data.Length; + return new Generic4ByteData((sum.L1 / count).GetByteValueFromPercentage(), + (sum.L2 / count).GetByteValueFromPercentage(), + (sum.L3 / count).GetByteValueFromPercentage(), + (sum.L4 / count).GetByteValueFromPercentage()); + } + + #endregion +} diff --git a/HPPH/PixelHelper.MinMax.cs b/HPPH/PixelHelper.MinMax.cs new file mode 100644 index 0000000..39d1bf7 --- /dev/null +++ b/HPPH/PixelHelper.MinMax.cs @@ -0,0 +1,212 @@ +using System.Buffers; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace HPPH; + +public static unsafe partial class PixelHelper +{ + #region Methods + + public static IMinMax MinMax(IImage image) + { + ArgumentNullException.ThrowIfNull(image); + + int dataLength = image.SizeInBytes; + byte[] array = ArrayPool.Shared.Rent(dataLength); + Span buffer = array.AsSpan()[..dataLength]; + try + { + image.CopyTo(buffer); + return image.ColorFormat.MinMax(buffer); + } + finally + { + ArrayPool.Shared.Return(array); + } + } + + public static IMinMax MinMax(RefImage image) + where T : struct, IColor + { + int dataLength = image.Width * image.Height; + T[] array = ArrayPool.Shared.Rent(dataLength); + Span buffer = array.AsSpan()[..(dataLength)]; + try + { + image.CopyTo(buffer); + return MinMax(buffer); + } + finally + { + ArrayPool.Shared.Return(array); + } + } + + public static IMinMax MinMax(ReadOnlySpan colors) + where T : struct, IColor + => T.ColorFormat.MinMax(MemoryMarshal.AsBytes(colors)); + + internal static IMinMax MinMax(ReadOnlySpan colors) + where T : struct, IColor + where TMinMax : struct, IMinMax + { + if (colors == null) throw new ArgumentNullException(nameof(colors)); + + return T.ColorFormat.BytesPerPixel switch + { + 3 => Unsafe.BitCast(MinMax(MemoryMarshal.Cast(colors))), + 4 => Unsafe.BitCast(MinMax(MemoryMarshal.Cast(colors))), + _ => throw new NotSupportedException("Data is not of a supported valid color-type.") + }; + } + + internal static Generic3ByteMinMax MinMax(ReadOnlySpan data) + { + byte minB1 = byte.MaxValue, minB2 = byte.MaxValue, minB3 = byte.MaxValue; + byte maxB1 = byte.MinValue, maxB2 = byte.MinValue, maxB3 = byte.MinValue; + + const int BYTES_PER_COLOR = 3; + int elementsPerVector = Vector.Count / BYTES_PER_COLOR; + + int chunks; + if (Vector.IsHardwareAccelerated && ((chunks = data.Length / elementsPerVector) > 1)) + { + int bytesPerVector = elementsPerVector * BYTES_PER_COLOR; + int missingElements = data.Length - (chunks * elementsPerVector); + + Vector max = Vector.Zero; + Vector min = new(byte.MaxValue); + + ReadOnlySpan colorBytes = MemoryMarshal.AsBytes(data); + fixed (byte* colorPtr = colorBytes) + { + for (int i = 0; i < chunks; i++) + { + Vector vector = *(Vector*)(colorPtr + (i * bytesPerVector)); + + max = Vector.Max(max, vector); + min = Vector.Min(min, vector); + } + } + + for (int i = 0; i < bytesPerVector; i += BYTES_PER_COLOR) + { + minB1 = Math.Min(minB1, min[i]); + minB2 = Math.Min(minB2, min[i + 1]); + minB3 = Math.Min(minB3, min[i + 2]); + + maxB1 = Math.Max(maxB1, max[i]); + maxB2 = Math.Max(maxB2, max[i + 1]); + maxB3 = Math.Max(maxB3, max[i + 2]); + } + + for (int i = 0; i < missingElements; i++) + { + Generic3ByteData d = data[^(i + 1)]; + + minB1 = Math.Min(minB1, d.B1); + minB2 = Math.Min(minB2, d.B2); + minB3 = Math.Min(minB3, d.B3); + + maxB1 = Math.Max(maxB1, d.B1); + maxB2 = Math.Max(maxB2, d.B2); + maxB3 = Math.Max(maxB3, d.B3); + } + } + else + { + foreach (Generic3ByteData d in data) + { + minB1 = Math.Min(minB1, d.B1); + minB2 = Math.Min(minB2, d.B2); + minB3 = Math.Min(minB3, d.B3); + + maxB1 = Math.Max(maxB1, d.B1); + maxB2 = Math.Max(maxB2, d.B2); + maxB3 = Math.Max(maxB3, d.B3); + } + } + + return new Generic3ByteMinMax(minB1, maxB1, minB2, maxB2, minB3, maxB3); + } + + internal static Generic4ByteMinMax MinMax(ReadOnlySpan data) + { + byte minB1 = byte.MaxValue, minB2 = byte.MaxValue, minB3 = byte.MaxValue, minB4 = byte.MaxValue; + byte maxB1 = byte.MinValue, maxB2 = byte.MinValue, maxB3 = byte.MinValue, maxB4 = byte.MinValue; + + const int BYTES_PER_COLOR = 4; + int elementsPerVector = Vector.Count / BYTES_PER_COLOR; + + int chunks; + if (Vector.IsHardwareAccelerated && ((chunks = data.Length / elementsPerVector) > 1)) + { + int bytesPerVector = elementsPerVector * BYTES_PER_COLOR; + int missingElements = data.Length - (chunks * elementsPerVector); + + Vector max = Vector.Zero; + Vector min = new(byte.MaxValue); + + ReadOnlySpan colorBytes = MemoryMarshal.AsBytes(data); + fixed (byte* colorPtr = colorBytes) + { + for (int i = 0; i < chunks; i++) + { + Vector vector = *(Vector*)(colorPtr + (i * bytesPerVector)); + + max = Vector.Max(max, vector); + min = Vector.Min(min, vector); + } + } + + for (int i = 0; i < bytesPerVector; i += BYTES_PER_COLOR) + { + minB1 = Math.Min(minB1, min[i]); + minB2 = Math.Min(minB2, min[i + 1]); + minB3 = Math.Min(minB3, min[i + 2]); + minB4 = Math.Min(minB4, min[i + 3]); + + maxB1 = Math.Max(maxB1, max[i]); + maxB2 = Math.Max(maxB2, max[i + 1]); + maxB3 = Math.Max(maxB3, max[i + 2]); + maxB4 = Math.Max(maxB4, max[i + 3]); + } + + for (int i = 0; i < missingElements; i++) + { + Generic4ByteData d = data[^(i + 1)]; + + minB1 = Math.Min(minB1, d.B1); + minB2 = Math.Min(minB2, d.B2); + minB3 = Math.Min(minB3, d.B3); + minB4 = Math.Min(minB4, d.B4); + + maxB1 = Math.Max(maxB1, d.B1); + maxB2 = Math.Max(maxB2, d.B2); + maxB3 = Math.Max(maxB3, d.B3); + maxB4 = Math.Max(maxB4, d.B4); + } + } + else + { + foreach (Generic4ByteData d in data) + { + minB1 = Math.Min(minB1, d.B1); + minB2 = Math.Min(minB2, d.B2); + minB3 = Math.Min(minB3, d.B3); + minB4 = Math.Min(minB4, d.B4); + + maxB1 = Math.Max(maxB1, d.B1); + maxB2 = Math.Max(maxB2, d.B2); + maxB3 = Math.Max(maxB3, d.B3); + maxB4 = Math.Max(maxB4, d.B4); + } + } + + return new Generic4ByteMinMax(minB1, maxB1, minB2, maxB2, minB3, maxB3, minB4, maxB4); + } + + #endregion +} diff --git a/HPPH/PixelHelper.Quantize.cs b/HPPH/PixelHelper.Quantize.cs new file mode 100644 index 0000000..85f4618 --- /dev/null +++ b/HPPH/PixelHelper.Quantize.cs @@ -0,0 +1,91 @@ +using System.Buffers; +using System.Numerics; + +namespace HPPH; + +public static partial class PixelHelper +{ + #region Methods + + public static IColor[] CreateColorPalette(IImage image, int paletteSize) + { + ArgumentNullException.ThrowIfNull(image); + + int dataLength = image.SizeInBytes; + byte[] array = ArrayPool.Shared.Rent(dataLength); + Span buffer = array.AsSpan()[..dataLength]; + try + { + image.CopyTo(buffer); + return image.ColorFormat.CreateColorPalette(buffer, paletteSize); + } + finally + { + ArrayPool.Shared.Return(array); + } + } + + public static T[] CreateColorPalette(RefImage image, int paletteSize) + where T : unmanaged, IColor + { + int dataLength = image.Width * image.Height; + T[] array = ArrayPool.Shared.Rent(dataLength); + Span buffer = array.AsSpan()[..(dataLength)]; + try + { + image.CopyTo(buffer); + return CreateColorPalette(buffer, paletteSize); + } + finally + { + ArrayPool.Shared.Return(array); + } + } + + public static T[] CreateColorPalette(ReadOnlySpan colors, int paletteSize) + where T : unmanaged, IColor + { + T[] buffer = ArrayPool.Shared.Rent(colors.Length); + try + { + Span colorBuffer = buffer.AsSpan()[..colors.Length]; + colors.CopyTo(colorBuffer); + + return CreateColorPalette(colorBuffer, paletteSize); + } + finally + { + ArrayPool.Shared.Return(buffer); + } + } + + public static T[] CreateColorPalette(Span colors, int paletteSize) + where T : unmanaged, IColor + { + int splits = BitOperations.Log2((uint)paletteSize); + + Span> cubes = new ColorCube[1 << splits]; + cubes[0] = new ColorCube(0, colors.Length, SortTarget.None); + + int currentIndex = 0; + for (int i = 0; i < splits; i++) + { + int currentCubeCount = 1 << i; + Span> currentCubes = cubes[..currentCubeCount]; + for (int j = 0; j < currentCubes.Length; j++) + { + currentCubes[j].Split(colors, out ColorCube a, out ColorCube b); + currentCubes[j] = a; + cubes[++currentIndex] = b; + } + } + + T[] result = new T[cubes.Length]; + for (int i = 0; i < cubes.Length; i++) + result[i] = Average(cubes[i].Slice(colors)); + + return result; + } + + #endregion +} diff --git a/HPPH/PixelHelper.Sort.cs b/HPPH/PixelHelper.Sort.cs new file mode 100644 index 0000000..8706653 --- /dev/null +++ b/HPPH/PixelHelper.Sort.cs @@ -0,0 +1,45 @@ +namespace HPPH; + +public static unsafe partial class PixelHelper +{ + #region Methods + + [ColorSortGenerator("T", "R")] + public static partial void SortByRed(Span colors) + where T : unmanaged, IColor; + + [ColorSortGenerator("T", "G")] + public static partial void SortByGreen(Span colors) + where T : unmanaged, IColor; + + [ColorSortGenerator("T", "B")] + public static partial void SortByBlue(Span colors) + where T : unmanaged, IColor; + + [ColorSortGenerator("T", "A")] + public static partial void SortByAlpha(Span colors) + where T : unmanaged, IColor; + + [ColorSortGenerator("Generic3ByteData", "B1")] + internal static partial void SortB1(Span colors); + + [ColorSortGenerator("Generic3ByteData", "B2")] + internal static partial void SortB2(Span colors); + + [ColorSortGenerator("Generic3ByteData", "B3")] + internal static partial void SortB3(Span colors); + + [ColorSortGenerator("Generic4ByteData", "B1")] + internal static partial void SortB1(Span colors); + + [ColorSortGenerator("Generic4ByteData", "B2")] + internal static partial void SortB2(Span colors); + + [ColorSortGenerator("Generic4ByteData", "B3")] + internal static partial void SortB3(Span colors); + + [ColorSortGenerator("Generic4ByteData", "B4")] + internal static partial void SortB4(Span colors); + + #endregion +} diff --git a/HPPH/PixelHelper.Sum.cs b/HPPH/PixelHelper.Sum.cs new file mode 100644 index 0000000..3fa0417 --- /dev/null +++ b/HPPH/PixelHelper.Sum.cs @@ -0,0 +1,258 @@ +using System.Runtime.InteropServices; +using System.Runtime.Intrinsics.X86; +using System.Runtime.Intrinsics; +using System.Buffers; +using System.Runtime.CompilerServices; + +namespace HPPH; + +public static unsafe partial class PixelHelper +{ + #region Methods + + public static ISum Sum(IImage image) + { + ArgumentNullException.ThrowIfNull(image); + + int dataLength = image.SizeInBytes; + byte[] array = ArrayPool.Shared.Rent(dataLength); + Span buffer = array.AsSpan()[..dataLength]; + try + { + image.CopyTo(buffer); + return image.ColorFormat.Sum(buffer); + } + finally + { + ArrayPool.Shared.Return(array); + } + } + + public static ISum Sum(RefImage image) + where T : struct, IColor + { + int dataLength = image.Width * image.Height; + T[] array = ArrayPool.Shared.Rent(dataLength); + Span buffer = array.AsSpan()[..(dataLength)]; + try + { + image.CopyTo(buffer); + return Sum(buffer); + } + finally + { + ArrayPool.Shared.Return(array); + } + } + + public static ISum Sum(ReadOnlySpan colors) + where T : struct, IColor + => T.ColorFormat.Sum(MemoryMarshal.AsBytes(colors)); + + internal static ISum Sum(ReadOnlySpan colors) + where T : struct, IColor + where TSum : struct, ISum + { + if (colors == null) throw new ArgumentNullException(nameof(colors)); + + return T.ColorFormat.BytesPerPixel switch + { + // DarthAffe 05.07.2024: Important: The sum of 3-byte colors are result in 4 byte data! + 3 => Unsafe.BitCast(Sum(MemoryMarshal.Cast(colors))), + 4 => Unsafe.BitCast(Sum(MemoryMarshal.Cast(colors))), + _ => throw new NotSupportedException("Data is not of a supported valid color-type.") + }; + } + + internal static Generic4LongData Sum(ReadOnlySpan data) + { + long b1Sum = 0, b2Sum = 0, b3Sum = 0; + + const int ELEMENTS_PER_VECTOR = 32; + int chunks; + if (Avx2.IsSupported && ((chunks = data.Length / ELEMENTS_PER_VECTOR) > 0)) + { + ReadOnlySpan blendMask1 = + [ + 255, 0, 0, + 255, 0, 0, + 255, 0, 0, + 255, 0, 0, + 255, 0, 0, + 255, 0, 0, + 255, 0, 0, + 255, 0, 0, + 255, 0, 0, + 255, 0, 0, + 255, 0 + ]; + + ReadOnlySpan blendMask2 = + [ + 0, 255, 0, + 0, 255, 0, + 0, 255, 0, + 0, 255, 0, + 0, 255, 0, + 0, 255, 0, + 0, 255, 0, + 0, 255, 0, + 0, 255, 0, + 0, 255, 0, + 0, 255 + ]; + + ReadOnlySpan blendMask3 = + [ + 0, 0, 255, + 0, 0, 255, + 0, 0, 255, + 0, 0, 255, + 0, 0, 255, + 0, 0, 255, + 0, 0, 255, + 0, 0, 255, + 0, 0, 255, + 0, 0, 255, + 0, 0 + ]; + + Vector256 blend1MaskVector = Vector256.LoadUnsafe(ref MemoryMarshal.GetReference(blendMask1)); + Vector256 blend2MaskVector = Vector256.LoadUnsafe(ref MemoryMarshal.GetReference(blendMask2)); + Vector256 blend3MaskVector = Vector256.LoadUnsafe(ref MemoryMarshal.GetReference(blendMask3)); + + Vector256 b1SumVector = Vector256.Zero; + Vector256 b2SumVector = Vector256.Zero; + Vector256 b3SumVector = Vector256.Zero; + + int missingElements = data.Length - (chunks * ELEMENTS_PER_VECTOR); + + ReadOnlySpan dataBytes = MemoryMarshal.AsBytes(data); + fixed (byte* bytePtr = dataBytes) + { + for (int i = 0; i < chunks; i++) + { + byte* basePtr = bytePtr + (i * 96); + Vector256 data1 = *(Vector256*)(basePtr); + Vector256 data2 = *(Vector256*)(basePtr + 32); + Vector256 data3 = *(Vector256*)(basePtr + 64); + + Vector256 vectorB1Blend1 = Avx2.BlendVariable(data2, data1, blend1MaskVector); + Vector256 vectorB2Blend1 = Avx2.BlendVariable(data2, data1, blend2MaskVector); + Vector256 vectorB3Blend1 = Avx2.BlendVariable(data2, data1, blend3MaskVector); + + Vector256 vectorB1Blend2 = Avx2.BlendVariable(vectorB1Blend1, data3, blend3MaskVector); + Vector256 vectorB2Blend2 = Avx2.BlendVariable(vectorB2Blend1, data3, blend1MaskVector); + Vector256 vectorB3Blend2 = Avx2.BlendVariable(vectorB3Blend1, data3, blend2MaskVector); + + Vector256 sumB1 = Avx2.SumAbsoluteDifferences(vectorB1Blend2, Vector256.Zero).AsInt64(); + Vector256 sumB2 = Avx2.SumAbsoluteDifferences(vectorB2Blend2, Vector256.Zero).AsInt64(); + Vector256 sumB3 = Avx2.SumAbsoluteDifferences(vectorB3Blend2, Vector256.Zero).AsInt64(); + + b1SumVector = Avx2.Add(b1SumVector, sumB1); + b2SumVector = Avx2.Add(b2SumVector, sumB2); + b3SumVector = Avx2.Add(b3SumVector, sumB3); + } + } + + b1Sum = b1SumVector[0] + b1SumVector[1] + b1SumVector[2] + b1SumVector[3]; + b2Sum = b2SumVector[0] + b2SumVector[1] + b2SumVector[2] + b2SumVector[3]; + b3Sum = b3SumVector[0] + b3SumVector[1] + b3SumVector[2] + b3SumVector[3]; + + for (int i = 0; i < missingElements; i++) + { + Generic3ByteData d = data[^(i + 1)]; + b1Sum += d.B1; + b2Sum += d.B2; + b3Sum += d.B3; + } + } + else + { + foreach (Generic3ByteData d in data) + { + b1Sum += d.B1; + b2Sum += d.B2; + b3Sum += d.B3; + } + } + + return new Generic4LongData(b1Sum, b2Sum, b3Sum, data.Length * 255); + } + + internal static Generic4LongData Sum(ReadOnlySpan data) + { + long b1Sum, b2Sum, b3Sum, b4Sum; + int i = 0; + + if (Avx2.IsSupported && (data.Length >= 8)) + { + ReadOnlySpan avx2ShuffleMask = + [ + // Byte 1 + 15, 11, 7, 3, + // Byte 2 + 14, 10, 6, 2, + // Byte 3 + 13, 9, 5, 1, + // Byte 4 + 12, 8, 4, 0 + ]; + + ReadOnlySpan avx2ControlData = + [ + // Byte 1 + 7, 3, + // Byte 2 + 6, 2, + // Byte 3 + 5, 1, + // Byte 4 + 4, 0 + ]; + + Vector256 rgbaSum64 = Vector256.Zero; + + ReadOnlySpan dataBytes = MemoryMarshal.AsBytes(data); + fixed (byte* bytePtr = dataBytes) + fixed (int* controlPtr = avx2ControlData) + fixed (byte* maskPtr = avx2ShuffleMask) + { + Vector256 avx2ShuffleMaskVector = Avx2.BroadcastVector128ToVector256(maskPtr); + + for (int j = 0; j < (data.Length / 8); j++, i += 8) + { + Vector256 chunk = *(Vector256*)(bytePtr + (i * 4)); + Vector256 deinterleaved = Avx2.Shuffle(chunk, avx2ShuffleMaskVector); + Vector256 deinterleaved2 = Avx2.PermuteVar8x32(deinterleaved.AsInt32(), *(Vector256*)controlPtr); + Vector256 sum = Avx2.SumAbsoluteDifferences(deinterleaved2.AsByte(), Vector256.Zero).AsInt64(); + rgbaSum64 = Avx2.Add(rgbaSum64, sum); + } + } + + Vector128 b1B2Sum = rgbaSum64.GetLower(); + Vector128 b3B4Sum = rgbaSum64.GetUpper(); + + b1Sum = b1B2Sum.GetLower()[0]; + b2Sum = b1B2Sum.GetUpper()[0]; + b3Sum = b3B4Sum.GetLower()[0]; + b4Sum = b3B4Sum.GetUpper()[0]; + } + else + { + b1Sum = b2Sum = b3Sum = b4Sum = 0; + } + + for (; i < data.Length; i++) + { + b1Sum += data[i].B1; + b2Sum += data[i].B2; + b3Sum += data[i].B3; + b4Sum += data[i].B4; + } + + return new Generic4LongData(b1Sum, b2Sum, b3Sum, b4Sum); + } + + #endregion +} diff --git a/HPPH/PixelHelper.cs b/HPPH/PixelHelper.cs new file mode 100644 index 0000000..a15aaca --- /dev/null +++ b/HPPH/PixelHelper.cs @@ -0,0 +1,6 @@ +using System.Runtime.CompilerServices; + +namespace HPPH; + +[SkipLocalsInit] +public static partial class PixelHelper; diff --git a/HPPH/Quantization/ColorCube.cs b/HPPH/Quantization/ColorCube.cs new file mode 100644 index 0000000..e0ee60b --- /dev/null +++ b/HPPH/Quantization/ColorCube.cs @@ -0,0 +1,72 @@ +using System.Runtime.CompilerServices; + +namespace HPPH; + +[SkipLocalsInit] +internal struct ColorCube + where T : unmanaged, IColor +{ + #region Properties & Fields + + private readonly int _offset; + private readonly int _length; + private SortTarget _sortOrder; + + #endregion + + #region Constructors + + internal ColorCube(int offset, int length, SortTarget sortOrder) + { + this._offset = offset; + this._length = length; + this._sortOrder = sortOrder; + } + + #endregion + + #region Methods + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal Span Slice(Span fullColorList) => fullColorList.Slice(_offset, _length); + + internal void Split(Span fullColorList, out ColorCube a, out ColorCube b) + { + OrderColors(Slice(fullColorList), _sortOrder); + + int median = _length / 2; + + a = new ColorCube(_offset, median, _sortOrder); + b = new ColorCube(_offset + median, _length - median, _sortOrder); + } + + private void OrderColors(Span colors, SortTarget preOrdered) + { + if (colors.Length < 2) return; + IMinMax colorRanges = PixelHelper.MinMax(colors); + + if ((colorRanges.RedRange > colorRanges.GreenRange) && (colorRanges.RedRange > colorRanges.BlueRange)) + { + if (preOrdered != SortTarget.Red) + PixelHelper.SortByRed(colors); + + _sortOrder = SortTarget.Red; + } + else if (colorRanges.GreenRange > colorRanges.BlueRange) + { + if (preOrdered != SortTarget.Green) + PixelHelper.SortByGreen(colors); + + _sortOrder = SortTarget.Green; + } + else + { + if (preOrdered != SortTarget.Blue) + PixelHelper.SortByBlue(colors); + + _sortOrder = SortTarget.Blue; + } + } + + #endregion +} \ No newline at end of file diff --git a/HPPH/Quantization/SortTarget.cs b/HPPH/Quantization/SortTarget.cs new file mode 100644 index 0000000..0547430 --- /dev/null +++ b/HPPH/Quantization/SortTarget.cs @@ -0,0 +1,6 @@ +namespace HPPH; + +internal enum SortTarget +{ + None, Red, Green, Blue +} \ No newline at end of file diff --git a/README.md b/README.md index 45b31da..05d2e25 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # HPPH -C# High Performance Pixel Handling + +**WIP** diff --git a/sample_data/1.png b/sample_data/1.png new file mode 100644 index 0000000000000000000000000000000000000000..d366d84e2c5fff91a03d67dab1f8dd9de209197f GIT binary patch literal 2077538 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�Y*l$wUEFRC4As$p(bb-QZS3 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ðSfP-V`!d0w=RIy$e+$C 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쒡I~g;S+$mR$LI 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 z

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�Sr(^R7DX+OpcO?@6hug4d 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ȋEEXm{i_3ttXIWau@w3D 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

^%)lOgo;5vlYxlFlW;QcvrFZeDrZ^|?P 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