perf!: events refactored throughout all the project to use Event<> class

All delegate events are refactored to use the Event<TSender> and Event<TSender, TArgument> for performance issues regarding delegate events creating garbage, also this gives us better control on event invocation since C# Delegates did also create unnecessary garbage during Delegate.DynamicInvoke
This commit is contained in:
2025-05-31 00:14:43 +03:00
parent 996e61d0ad
commit 61e2761580
58 changed files with 637 additions and 485 deletions

View File

@@ -1,4 +1,3 @@
namespace Syntriax.Engine.Core;
public class DrawManager : UniverseObject
@@ -33,9 +32,9 @@ public class DrawManager : UniverseObject
drawEntities.Assign(universe);
postDrawEntities.Assign(universe);
universe.OnPreDraw += OnPreDraw;
universe.OnDraw += OnDraw;
universe.OnPostDraw += OnPostDraw;
universe.OnPreDraw.AddListener(OnPreDraw);
universe.OnDraw.AddListener(OnDraw);
universe.OnPostDraw.AddListener(OnPostDraw);
}
protected override void OnExitingUniverse(IUniverse universe)
@@ -44,8 +43,8 @@ public class DrawManager : UniverseObject
drawEntities.Unassign();
postDrawEntities.Unassign();
universe.OnPreDraw -= OnPreDraw;
universe.OnDraw -= OnDraw;
universe.OnPostDraw -= OnPostDraw;
universe.OnPreDraw.RemoveListener(OnPreDraw);
universe.OnDraw.RemoveListener(OnDraw);
universe.OnPostDraw.RemoveListener(OnPostDraw);
}
}