From 163a2f1a1076d518b04ee37911bdd40afe8b9b2c Mon Sep 17 00:00:00 2001 From: Sarah B Date: Sat, 20 Jan 2024 15:28:48 -0800 Subject: Added finalizers --- Drawable.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'Drawable.cs') diff --git a/Drawable.cs b/Drawable.cs index f01c478..67e4344 100644 --- a/Drawable.cs +++ b/Drawable.cs @@ -34,11 +34,25 @@ abstract class Drawable : IDisposable public static void DisposeAll() { foreach (Drawable drawable in Drawables.ToArray()) drawable?.Dispose(); + Drawables.Clear(); } public abstract void Draw(); public abstract void Update(float delta); - public virtual void Dispose() => Drawables.Remove(this); + bool disposed = false; + + public void Dispose() + { + if (disposed) return; + Unload(); + Drawables.Remove(this); + GC.SuppressFinalize(this); + disposed = true; + } + + protected abstract void Unload(); + + ~Drawable() => Dispose(); } \ No newline at end of file -- cgit