diff --git a/PCK-Studio/Extensions/BlendMode.cs b/PCK-Studio/Extensions/BlendMode.cs index 79fac7f3..76709d50 100644 --- a/PCK-Studio/Extensions/BlendMode.cs +++ b/PCK-Studio/Extensions/BlendMode.cs @@ -8,6 +8,7 @@ internal enum BlendMode Average, DescendingOrder, AscendingOrder, - Screen + Screen, + Overlay } } \ No newline at end of file diff --git a/PCK-Studio/Extensions/ColorExtensions.cs b/PCK-Studio/Extensions/ColorExtensions.cs index a1fa0074..3a94de60 100644 --- a/PCK-Studio/Extensions/ColorExtensions.cs +++ b/PCK-Studio/Extensions/ColorExtensions.cs @@ -28,6 +28,7 @@ internal static byte BlendValues(float source, float overlay, BlendMode blendTyp BlendMode.AscendingOrder => source > overlay ? overlay : source, BlendMode.DescendingOrder => source < overlay ? overlay : source, BlendMode.Screen => 1f - (1f - source) * (1f - overlay), + BlendMode.Overlay => source < 0.5f ? 2f * source * overlay : 1f - 2f * (1f - source) * (1f - overlay), _ => 0.0f }; return (byte)MathExtensions.Clamp(resultValue * 255, 0, 255);