public static void BufferSubData <T>(BufferTarget target, int offset, int size, T[] data) { GCHandle ptr = GCHandle.Alloc(data, GCHandleType.Pinned); GLCore.BufferSubData(target, (IntPtr)offset, (IntPtr)size, ptr.AddrOfPinnedObject()); ptr.Free(); }