Skip to content

Commit 54f3903

Browse files
author
Aytackydln
committed
reduce garbage memory generated from inactive layer overrides
1 parent 6e892d0 commit 54f3903

2 files changed

Lines changed: 27 additions & 27 deletions

File tree

Project-Aurora/Project-Aurora/EffectsEngine/EmptyLayer.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System.Collections.Generic;
2-
using System.Drawing;
1+
using System.Drawing;
32
using AuroraRgb.Settings;
43
using Common.Devices;
54

@@ -44,11 +43,6 @@ public void Set(KeySequence sequence, ref readonly Color color)
4443
{
4544
}
4645

47-
public void PercentEffect(Color foregroundColor, Color backgroundColor, IReadOnlyList<DeviceKeys> keys, double value, double total,
48-
PercentEffectType percentEffectType = PercentEffectType.Progressive, double flashPast = 0, bool flashReversed = false, bool blinkBackground = false)
49-
{
50-
}
51-
5246
public EffectLayer Add(EffectLayer other)
5347
{
5448
return other;

Project-Aurora/Project-Aurora/Settings/Layers/Layer.cs

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class Layer : INotifyPropertyChanged, ICloneable, IDisposable
3232

3333
public bool Enabled { get; set; } = true;
3434

35-
public Dictionary<string, IOverrideLogic>? OverrideLogic { get; set; }
35+
public Dictionary<string, IOverrideLogic> OverrideLogic { get; set; } = [];
3636
// private void OnOverrideLogicChanged() => // Make the logic collection changed event trigger a property change to ensure it gets saved?
3737

3838
#region Constructors
@@ -66,32 +66,38 @@ public EffectLayer Render(IGameState gs)
6666
{
6767
try
6868
{
69-
if (OverrideLogic != null)
69+
// first check Enabled override, if it exists, and if it says disabled, return an empty layer
70+
if (OverrideLogic.TryGetValue(nameof(LayerHandlerProperties.Enabled), out var enabledLogic) ||
71+
OverrideLogic.TryGetValue(nameof(LayerHandlerProperties._Enabled), out enabledLogic))
7072
{
71-
// For every property which has an override logic assigned
72-
foreach (var (key, overrideLogic) in OverrideLogic)
73-
// Set the value of the logic evaluation as the override for this property
73+
var enabledValue = enabledLogic.Evaluate(gs);
74+
if (enabledValue is false)
75+
return EmptyLayer.Instance;
76+
}
77+
78+
// For every property which has an override logic assigned
79+
foreach (var (key, overrideLogic) in OverrideLogic)
80+
{
81+
// Set the value of the logic evaluation as the override for this property
82+
var value = overrideLogic.Evaluate(gs);
83+
try
7484
{
75-
var value = overrideLogic.Evaluate(gs);
76-
try
85+
if (overrideLogic.VarType is { IsEnum: true })
7786
{
78-
if (overrideLogic.VarType is { IsEnum: true })
79-
{
80-
Handler.Properties.SetOverride(key,
81-
value == null ? null : Enum.ToObject(overrideLogic.VarType, value));
82-
}
83-
else
84-
{
85-
Handler.Properties.SetOverride(key, value);
86-
}
87+
Handler.Properties.SetOverride(key,
88+
value == null ? null : Enum.ToObject(overrideLogic.VarType, value));
8789
}
88-
catch (OverrideNameRefactoredException)
90+
else
8991
{
90-
OverrideLogic.Remove(key);
91-
OverrideLogic.Add(key[1..], overrideLogic);
92-
break;
92+
Handler.Properties.SetOverride(key, value);
9393
}
9494
}
95+
catch (OverrideNameRefactoredException)
96+
{
97+
OverrideLogic.Remove(key);
98+
OverrideLogic.Add(key[1..], overrideLogic);
99+
break;
100+
}
95101
}
96102

97103
if (!Handler.Properties.Enabled)

0 commit comments

Comments
 (0)