public VertexBuffer GetVertexAttributeBuffer(string bufferName, string varNameInShader)
{
if (bufferName == strPosition)
{
if (this.positionBuffer == null)
{
//int length = positions.Length;
//VertexBuffer buffer = VertexBuffer.Create(typeof(vec3), length, VBOConfig.Vec3, varNameInShader, BufferUsage.StaticDraw);
//unsafe
//{
// IntPtr pointer = buffer.MapBuffer(MapBufferAccess.WriteOnly);
// var array = (vec3*)pointer;
// for (int i = 0; i < positions.Length; i++)
// {
// array[i] = positions[i];
// }
// buffer.UnmapBuffer();
//}
//this.positionBuffer = buffer;
this.positionBuffer = positions.GenVertexBuffer(VBOConfig.Vec3, varNameInShader, BufferUsage.StaticDraw);
}
return this.positionBuffer;
}
else if (bufferName == strColor)
{
if (this.colorBuffer == null)
{
//int length = colors.Length;
//VertexBuffer buffer = VertexBuffer.Create(typeof(vec3), length, VBOConfig.Vec3, varNameInShader, BufferUsage.StaticDraw);
//unsafe
//{
// IntPtr pointer = buffer.MapBuffer(MapBufferAccess.WriteOnly);
// var array = (vec3*)pointer;
// for (int i = 0; i < colors.Length; i++)
// {
// array[i] = colors[i];
// }
// buffer.UnmapBuffer();
//}
//this.colorBuffer = buffer;
this.colorBuffer = colors.GenVertexBuffer(VBOConfig.Vec3, varNameInShader, BufferUsage.StaticDraw);
}
return this.colorBuffer;
}
else
{
throw new ArgumentException();
}
}