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)