public static void BufferSubData(BufferTarget target, int offset, int size, ref object dataArray) { GCHandle hData = GCHandle.Alloc(dataArray, GCHandleType.Pinned); try { Delegates.BufferSubDataARB_IP(target, offset, size, hData.AddrOfPinnedObject()); } finally { hData.Free(); } }
public static void BufferSubData <TArray>(BufferTarget target, int offset, int size, ref TArray[] data) where TArray : struct { // unsafe { fixed (void *ptr = data) { Delegates.BufferSubDataARB(target, offset, size, ptr); } } GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned); try { Delegates.BufferSubDataARB_IP(target, offset, size, hData.AddrOfPinnedObject()); } finally { hData.Free(); } }