/// <summary>
///
/// </summary>
/// <returns></returns>
public IndexBuffer GetIndexBuffer()
{
if (indexBuffer == null)
{
ushort[] faces = model.GetFaces();
int length = faces.Length;
OneIndexBuffer buffer = GLBuffer.Create(IndexBufferElementType.UShort, length, DrawMode.Triangles, BufferUsage.StaticDraw);
unsafe
{
IntPtr pointer = buffer.MapBuffer(MapBufferAccess.WriteOnly);
var array = (ushort *)pointer;
for (int i = 0; i < faces.Length; i++)
{
array[i] = (ushort)(faces[i] - 1);
}
buffer.UnmapBuffer();
}
this.indexBuffer = buffer;
}
return(indexBuffer);
}