using System; namespace RenderHookAPI.Hook.Common { [Serializable] public abstract class Element: IOverlayElement, IDisposable { public virtual bool Hidden { get; set; } ~Element() { Dispose(false); } public virtual void Frame() { } public virtual object Clone() { return MemberwiseClone(); } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /// /// Releases unmanaged and optionally managed resources /// /// true if disposing both unmanaged and managed protected virtual void Dispose(bool disposing) { if (disposing) { } } protected void SafeDispose(IDisposable disposableObj) { if (disposableObj != null) disposableObj.Dispose(); } } }