From 25db60e4367b48fb1f351341e568f9ee2e41bbad Mon Sep 17 00:00:00 2001 From: Syntriax Date: Thu, 16 Oct 2025 08:25:02 +0300 Subject: [PATCH] perf: memory allocations reduced on universe update --- Engine.Core/Universe.cs | 7 ++++--- Engine.Core/UniverseTime.cs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Engine.Core/Universe.cs b/Engine.Core/Universe.cs index 49cc883..8e3c28f 100644 --- a/Engine.Core/Universe.cs +++ b/Engine.Core/Universe.cs @@ -131,9 +131,10 @@ public class Universe : BaseEntity, IUniverse UnscaledTime = engineTime; Time = new(TimeSpan.FromTicks((long)(Time.TimeSinceStart.Ticks + engineTime.DeltaSpan.Ticks * TimeScale)), TimeSpan.FromTicks((long)(engineTime.DeltaSpan.Ticks * TimeScale))); - OnPreUpdate?.Invoke(this, new(Time)); - OnUpdate?.Invoke(this, new(Time)); - OnPostUpdate?.Invoke(this, new(Time)); + IUniverse.UpdateArguments args = new(Time); + OnPreUpdate?.Invoke(this, args); + OnUpdate?.Invoke(this, args); + OnPostUpdate?.Invoke(this, args); } public void Draw() diff --git a/Engine.Core/UniverseTime.cs b/Engine.Core/UniverseTime.cs index 505fa77..460ed8a 100644 --- a/Engine.Core/UniverseTime.cs +++ b/Engine.Core/UniverseTime.cs @@ -2,7 +2,7 @@ using System; namespace Engine.Core; -public readonly struct UniverseTime(TimeSpan TimeSinceStart, TimeSpan TimeDelta) +public readonly record struct UniverseTime(TimeSpan TimeSinceStart, TimeSpan TimeDelta) { public readonly TimeSpan TimeSinceStart = TimeSinceStart; public readonly TimeSpan DeltaSpan = TimeDelta;