protected int NewFloatBuffer(int attribArrayId, int elementSize, float[] data, int divisor = 0)
{
this.Bind();
int bufferId = NewVBO();
GL.BindBuffer(BufferTarget.ArrayBuffer, bufferId);
GL.EnableVertexAttribArray(attribArrayId);
GL.VertexAttribPointer(attribArrayId, elementSize, VertexAttribPointerType.Float, false, 0, IntPtr.Zero);
if (divisor > 0)
{
GL.VertexAttribDivisor(attribArrayId, divisor);
}
#if !__MOBILE__
GL.BufferData<float>(BufferTarget.ArrayBuffer, (IntPtr)(data.Length * sizeof(float)), data, BufferUsageHint.DynamicDraw);
#else
GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(data.Length * sizeof(float)), data, BufferUsage.DynamicDraw);
#endif
this.customBuffers[attribArrayId] = new VertexAttrib(bufferId, elementSize);
return bufferId;
}