public IMesh <TVertex> Create <TVertex>(TVertex[] data, MeshUsageHint usage = MeshUsageHint.Static) where TVertex : struct, IVertex { var mesh = new GLMesh <TVertex>(); mesh.SetData(data, usage); return(mesh); }
public void SetData(TVertex[] data, MeshUsageHint usage = MeshUsageHint.Static) { VertexCount = data.Length; if (VertexCount == 0) { return; } VertexAttribute[] attributes = data[0].GetVertexAttributes(); for (int i = 0; i < attributes.Length; ++i) { VAO.SetVertexAttribute(i, attributes[i], VBO); } BufferUsageHint glUsage = usageMap[usage]; VBO.SetData(data, glUsage); }