From 46960200accd4fc9e2776ce3fbcf3ba670879aee Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Sat, 18 Apr 2020 14:22:52 +0200 Subject: [PATCH] Small Performance-improvements in Brush-Color-Finalization --- RGB.NET.Core/Brushes/AbstractBrush.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/RGB.NET.Core/Brushes/AbstractBrush.cs b/RGB.NET.Core/Brushes/AbstractBrush.cs index 7e36afc..7521bf2 100644 --- a/RGB.NET.Core/Brushes/AbstractBrush.cs +++ b/RGB.NET.Core/Brushes/AbstractBrush.cs @@ -110,14 +110,20 @@ namespace RGB.NET.Core /// The finalized color. protected virtual Color FinalizeColor(Color color) { - foreach (IColorCorrection colorCorrection in ColorCorrections) - color = colorCorrection.ApplyTo(color); + if (ColorCorrections.Count > 0) + foreach (IColorCorrection colorCorrection in ColorCorrections) + color = colorCorrection.ApplyTo(color); // Since we use HSV to calculate there is no way to make a color 'brighter' than 100% // Be carefull with the naming: Since we use HSV the correct term is 'value' but outside we call it 'brightness' // THIS IS NOT A HSB CALCULATION!!! - return color.MultiplyHSV(value: Brightness.Clamp(0, 1)) - .MultiplyA(Opacity.Clamp(0, 1)); + if (Brightness < 1) + color = color.MultiplyHSV(value: Brightness.Clamp(0, 1)); + + if (Opacity < 1) + color = color.MultiplyA(Opacity.Clamp(0, 1)); + + return color; } #endregion