diff --git a/RGB.NET.Core/Brushes/AbstractBrush.cs b/RGB.NET.Core/Brushes/AbstractBrush.cs index f198908..a2b71e1 100644 --- a/RGB.NET.Core/Brushes/AbstractBrush.cs +++ b/RGB.NET.Core/Brushes/AbstractBrush.cs @@ -14,6 +14,9 @@ namespace RGB.NET.Core { #region Properties & Fields + /// + public bool IsEnabled { get; set; } = true; + /// public BrushCalculationMode BrushCalculationMode { get; set; } = BrushCalculationMode.Relative; diff --git a/RGB.NET.Core/Brushes/IBrush.cs b/RGB.NET.Core/Brushes/IBrush.cs index b4beac8..c890b5a 100644 --- a/RGB.NET.Core/Brushes/IBrush.cs +++ b/RGB.NET.Core/Brushes/IBrush.cs @@ -11,6 +11,11 @@ namespace RGB.NET.Core /// public interface IBrush : IEffectTarget { + /// + /// Gets or sets if the is enabled and will be drawn on an update. + /// + bool IsEnabled { get; set; } + /// /// Gets or sets the calculation mode used for the rectangle/points used for color-selection in brushes. /// diff --git a/RGB.NET.Core/Effects/AbstractBrushEffect.cs b/RGB.NET.Core/Effects/AbstractBrushEffect.cs index 12ef4e8..7ae06f5 100644 --- a/RGB.NET.Core/Effects/AbstractBrushEffect.cs +++ b/RGB.NET.Core/Effects/AbstractBrushEffect.cs @@ -10,6 +10,9 @@ namespace RGB.NET.Core { #region Properties & Fields + /// + public bool IsEnabled { get; set; } = true; + /// public bool IsDone { get; protected set; } diff --git a/RGB.NET.Core/Effects/AbstractEffectTarget.cs b/RGB.NET.Core/Effects/AbstractEffectTarget.cs index cc65cd7..45d49e8 100644 --- a/RGB.NET.Core/Effects/AbstractEffectTarget.cs +++ b/RGB.NET.Core/Effects/AbstractEffectTarget.cs @@ -45,6 +45,8 @@ namespace RGB.NET.Core for (int i = EffectTimes.Count - 1; i >= 0; i--) { EffectTimeContainer effectTime = EffectTimes[i]; + if (!effectTime.Effect.IsEnabled) continue; + long currentTicks = DateTime.Now.Ticks; double deltaTime; diff --git a/RGB.NET.Core/Effects/AbstractLedGroupEffect.cs b/RGB.NET.Core/Effects/AbstractLedGroupEffect.cs index 2e2dcfe..e53707a 100644 --- a/RGB.NET.Core/Effects/AbstractLedGroupEffect.cs +++ b/RGB.NET.Core/Effects/AbstractLedGroupEffect.cs @@ -12,6 +12,9 @@ namespace RGB.NET.Core { #region Properties & Fields + /// + public bool IsEnabled { get; set; } = true; + /// public bool IsDone { get; protected set; } diff --git a/RGB.NET.Core/Effects/IEffect.cs b/RGB.NET.Core/Effects/IEffect.cs index 165f81f..f0bc7bd 100644 --- a/RGB.NET.Core/Effects/IEffect.cs +++ b/RGB.NET.Core/Effects/IEffect.cs @@ -11,6 +11,11 @@ namespace RGB.NET.Core { #region Properties & Fields + /// + /// Gets or sets if the is enabled and will be updated. + /// + bool IsEnabled { get; set; } + /// /// Gets if this has finished all of his work. /// diff --git a/RGB.NET.Core/RGBSurface.cs b/RGB.NET.Core/RGBSurface.cs index 45d2528..c77c161 100644 --- a/RGB.NET.Core/RGBSurface.cs +++ b/RGB.NET.Core/RGBSurface.cs @@ -93,6 +93,8 @@ namespace RGB.NET.Core IList leds = ledGroup.GetLeds().ToList(); IBrush brush = ledGroup.Brush; + if (!brush.IsEnabled) return; + try { switch (brush.BrushCalculationMode)