using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StgSharp.Graphics
{
///
/// Interface of all kinds OpenGL buffer onjects
///
public abstract class BufferObjectBase : IDisposable
{
protected glHandleSet _bufferHandle;
protected IglFunc GL;
///
/// Get the only handle to one of the Object instance
///
///
///
public glHandle this[int index]
{
get { return _bufferHandle[index]; }
}
///
/// Bind a buffer instance to OpenGL
///
/// Index of handle of the object in this instance to be bind
public abstract void Bind(int index);
///
public override string ToString()
{
return $"This is a {GetType().FullName}, containing {_bufferHandle.length} buffer handles: {_bufferHandle.ToString()}.";
}
protected abstract void Dispose(bool disposing);
~BufferObjectBase()
{
Dispose(disposing: false);
}
public void Dispose()
{
Dispose(disposing: true);
GC.SuppressFinalize(this);
}
}
}