diff options
Diffstat (limited to 'Drawable.cs')
| -rw-r--r-- | Drawable.cs | 16 |
1 files changed, 15 insertions, 1 deletions
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 |
