using System.Windows.Forms; using Matrix_App.PregeneratedMods.reflection; using static Matrix_App.GifGeneratorUtils; namespace Matrix_App.PregeneratedMods { public sealed class Grayscale : MatrixGifGenerator { [UiWidget] [UiDescription(title: "use Luminance", description: "Use luminance as defined by ITU-R BT.709 as grayscale output")] private bool byLuminance = false; protected override void ColorFragment(in int x, in int y, in float u, in float v, in int frame, out float r, out float g, out float b) { SampleFrame(actualStore!, frame, x, y, width, out float lr, out float lg, out float lb); if (byLuminance) { float luminance = 0.2126f * lr + 0.7152f * lg + 0.0722f * lb; r = luminance; g = luminance; b = luminance; } else { float average = (lr + lg + lb) * 0.3333f; r = average; g = average; b = average; } } protected override void CreateUi(FlowLayoutPanel anchor, update invokeGenerator) { } } }