internal static unsafe void BufferData(GraphicsLibrary gl, BufferTarget target, byte[] data, BufferUsage usage)
 {
     fixed(byte *b = data)
     {
         gl.BufferData(target, new IntPtr(data.Length), new IntPtr(b), usage);
     }
 }
 internal static unsafe void BufferData(GraphicsLibrary gl, BufferTarget target, ushort[] data, BufferUsage usage)
 {
     fixed(ushort *b = data)
     {
         gl.BufferData(target, new IntPtr(data.Length * sizeof(ushort)), new IntPtr(b), usage);
     }
 }