public void Bind()
{
if (!Window.IsObsolete)
{
GL.BindVertexArray(this.vertexArrayId);
}
else
{
// vertex
GL.BindBuffer(BufferTarget.ArrayBuffer, this.vBufferId);
GL.EnableVertexAttribArray(0);
GL.VertexAttribPointer(0, 2, VertexAttribPointerType.Float, false, 0, IntPtr.Zero);
// uv
GL.BindBuffer(BufferTarget.ArrayBuffer, this.uvBufferId);
GL.EnableVertexAttribArray(1);
GL.VertexAttribPointer(1, 2, VertexAttribPointerType.Float, false, 0, IntPtr.Zero);
// vc
GL.BindBuffer(BufferTarget.ArrayBuffer, this.vcBufferId);
GL.EnableVertexAttribArray(2);
GL.VertexAttribPointer(2, 4, VertexAttribPointerType.Float, false, 0, IntPtr.Zero);
// custom buffers
foreach (int customAttribId in this.customBuffers.Keys)
{
int customBufferId = this.customBuffers[customAttribId].bufferId;
int customBufferElementSize = this.customBuffers[customAttribId].elementSize;
GL.BindBuffer(BufferTarget.ArrayBuffer, customBufferId);
GL.EnableVertexAttribArray(customAttribId);
GL.VertexAttribPointer(customAttribId, customBufferElementSize, VertexAttribPointerType.Float, false, 0, IntPtr.Zero);
}
}
}