public void SetData <T>(T[] data) where T : struct { GCHandle handle = GCHandle.Alloc(data, GCHandleType.Pinned); FNA3D.FNA3D_SetIndexBufferData( GraphicsDevice.GLDevice, buffer, 0, handle.AddrOfPinnedObject(), data.Length * Marshal.SizeOf(typeof(T)), SetDataOptions.None ); handle.Free(); }
public void SetDataPointerEXT( int offsetInBytes, IntPtr data, int dataLength, SetDataOptions options ) { FNA3D.FNA3D_SetIndexBufferData( GraphicsDevice.GLDevice, buffer, offsetInBytes, data, dataLength, options ); }
public void SetData <T>( T[] data, int startIndex, int elementCount ) where T : struct { ErrorCheck(data, startIndex, elementCount); GCHandle handle = GCHandle.Alloc(data, GCHandleType.Pinned); FNA3D.FNA3D_SetIndexBufferData( GraphicsDevice.GLDevice, buffer, 0, handle.AddrOfPinnedObject() + (startIndex * Marshal.SizeOf(typeof(T))), elementCount * Marshal.SizeOf(typeof(T)), SetDataOptions.None ); handle.Free(); }