private void init(IBufferLayoutDesc bufferLayoutDesc, int vertexCount)
{
vertexArraySize = bufferLayoutDesc.FloatCount;
var positions = bufferLayoutDesc.ElementsUsages(BufferLayoutElementUsages.Position);
positionOffset = new int[positions.Count];
positionTypes = new BufferLayoutElementTypes[positions.Count];
int i = 0;
foreach (var position in positions)
{
positionOffset[i] = position.FloatOffset;
positionTypes[i] = position.Type;
++i;
}
var colors = bufferLayoutDesc.ElementsUsages(BufferLayoutElementUsages.Color);
colorOffset = new int[colors.Count];
i = 0;
foreach (var color in colors)
{
colorOffset[i] = color.FloatOffset;
++i;
}
var uvs = bufferLayoutDesc.ElementsUsages(BufferLayoutElementUsages.UV);
uvOffset = new int[uvs.Count];
i = 0;
foreach (var uv in uvs)
{
uvOffset[i] = uv.FloatOffset;
++i;
}
var normals = bufferLayoutDesc.ElementsUsages(BufferLayoutElementUsages.Normal);
normalOffset = new int[normals.Count];
i = 0;
foreach (var normal in normals)
{
normalOffset[i] = normal.FloatOffset;
++i;
}
vertex = new float[vertexArraySize];
for (i = 0; i != vertex.Length; ++i)
{
vertex[i] = 0;
}
this.vertexCount = vertexCount;
vertices = new float[vertexCount * vertexArraySize];
for (i = 0; i != vertices.Length; ++i)
{
vertices[i] = 0;
}
}