namespace Dashboard.Drawing.OpenGL
{
    /// <summary>
    /// Interface much like <see cref="IDisposable"/> except GL resources are dropped.
    /// </summary>
    /// <remarks>
    /// The main reason this interface exists is that you need a way to differentiate
    /// when a context is deleted, versus when the context is to remain present.
    /// </remarks>
    public interface IGLDisposable : IDisposable
    {
        /// <inheritdoc cref="IDisposable.Dispose"/>
        /// <param name="safeExit">Set to true to spend the time clearing out GL objects.</param>
        void Dispose(bool safeExit);
    }
}