public VertexBuffer GetVertexAttributeBuffer(string bufferName, string varNameInShader)
{
if (bufferName == strPosition)
{
if (this.positionBuffer == null)
{
//int length = TetrahedronModel.position.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 < TetrahedronModel.position.Length; i++)
// {
// array[i] = TetrahedronModel.position[i];
// }
// buffer.UnmapBuffer();
//}
//this.positionBuffer = buffer;
this.positionBuffer = TetrahedronModel.position.GenVertexBuffer(VBOConfig.Vec3, varNameInShader, BufferUsage.StaticDraw);
}
return this.positionBuffer;
}
else if (bufferName == strColor)
{
if (this.colorBuffer == null)
{
//int length = TetrahedronModel.color.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 < TetrahedronModel.color.Length; i++)
// {
// array[i] = TetrahedronModel.color[i];
// }
// buffer.UnmapBuffer();
//}
//this.colorBuffer = buffer;
this.colorBuffer = TetrahedronModel.color.GenVertexBuffer(VBOConfig.Vec3, varNameInShader, BufferUsage.StaticDraw);
}
return this.colorBuffer;
}
else if (bufferName == strNormal)
{
if (this.normalBuffer == null)
{
// int length = TetrahedronModel.normal.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 < TetrahedronModel.normal.Length; i++)
// {
// array[i] = TetrahedronModel.normal[i];
// }
// buffer.UnmapBuffer();
// }
// this.normalBuffer = buffer;
this.normalBuffer = TetrahedronModel.normal.GenVertexBuffer(VBOConfig.Vec3, varNameInShader, BufferUsage.StaticDraw);
}
return this.normalBuffer;
}
else
{
return null;
}
}