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/GLObject.cs

33 lines
687 B
C#

using System;
namespace Diamond
{
public abstract class GLObject : IDisposable
{
public uint Id { get; protected set; }
protected GLObject(uint id)
{
Id = id;
}
protected abstract void Delete();
private bool _disposed = false;
public void Dispose()
{
if (_disposed) return;
_disposed = true;
Delete();
GC.SuppressFinalize(this);
}
~GLObject()
{
Dispose();
}
public static explicit operator uint(GLObject o) => o.Id;
public static explicit operator int(GLObject o) => (int) o.Id;
}
}