This repository has been archived on 2026-05-22. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Diamond/Diamond/GLWrapper.cs

49 lines
912 B
C#

using System;
using System.Diagnostics;
using OpenTK.Graphics;
using NLog;
namespace Diamond
{
internal abstract class GLWrapper : IDisposable
{
public int Id { get; protected set; }
public override string ToString() => $"{GetType().Name} {Id}";
public static explicit operator int(GLWrapper o) => o.Id;
#region IDisposable
public abstract void GLDelete();
private bool _disposed;
protected virtual void Dispose(bool disposing)
{
if (_disposed)
return;
// no managed resources to dispose
GLDelete();
Id = 0;
_disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
~GLWrapper()
{
Dispose(false);
}
#endregion
}
}