From 37aca44e45923511500ee1e6a8f39a30810b7f63 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Sat, 26 Jul 2025 12:03:28 +0300 Subject: [PATCH] feat: monogame premultiplied color extension method added --- .../Engine.Integration.MonoGame/EngineConverter.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Engine.Integration/Engine.Integration.MonoGame/EngineConverter.cs b/Engine.Integration/Engine.Integration.MonoGame/EngineConverter.cs index 4a10da4..cea1b55 100644 --- a/Engine.Integration/Engine.Integration.MonoGame/EngineConverter.cs +++ b/Engine.Integration/Engine.Integration.MonoGame/EngineConverter.cs @@ -19,6 +19,12 @@ public static class EngineConverterExtensions [MethodImpl(MethodImplOptions.AggressiveInlining)] public static Color ToColor(this ColorRGBA color) => new(color.R, color.G, color.B, color.A); + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Color ToPreMultipliedColor(this ColorRGBA color) + { + float alphaMultiplier = color.A / 255f; + return new((byte)(color.R * alphaMultiplier), (byte)(color.G * alphaMultiplier), (byte)(color.B * alphaMultiplier), color.A); + } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static ColorRGBA ToColorRGBA(this Color color) => new(color.R, color.G, color.B, color.A);