public unsafe void SetData(BufferData data) { var currentBuffer = CurrentBuffer; Bind(); Size = data.Length; GCHandle h = data.CreateHandle(); try { GL.BufferData(Target, data.Length * data.ElementSize, h.AddrOfPinnedObject(), BufferUsageHint.StaticDraw); } finally { h.Free(); } }