コード例 #1
0
        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();
        }
コード例 #2
0
 public void SetDataPointerEXT(
     int offsetInBytes,
     IntPtr data,
     int dataLength,
     SetDataOptions options
     )
 {
     FNA3D.FNA3D_SetIndexBufferData(
         GraphicsDevice.GLDevice,
         buffer,
         offsetInBytes,
         data,
         dataLength,
         options
         );
 }
コード例 #3
0
        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();
        }