Пример #1
0
 /// <summary>Update a CPU-writable buffer by mapping it with write+discard flags, and calling memcpy.</summary>
 public static void writeBuffer(this IDeviceContext context, IBuffer buffer, ReadOnlySpan <byte> data)
 {
     unsafe
     {
         fixed(byte *pointer = &data.GetPinnableReference())
         context.MapBufferWriteDiscard(buffer, (IntPtr)pointer, data.Length);
     }
 }
Пример #2
0
        /// <summary>Update a CPU-writable buffer by mapping it with write+discard flags, and calling memcpy.</summary>
        public static void writeBuffer <T>(this IDeviceContext context, IBuffer buffer, T[] array) where T : unmanaged
        {
            int cb = Marshal.SizeOf <T>() * array.Length;

            unsafe
            {
                fixed(T *pointer = array)
                context.MapBufferWriteDiscard(buffer, (IntPtr)pointer, cb);
            }
        }
Пример #3
0
        /// <summary>Update a CPU-writable buffer by mapping it with write+discard flags, and calling memcpy.</summary>
        public static void writeBuffer <T>(this IDeviceContext context, IBuffer buffer, ref T value) where T : unmanaged
        {
            int cb = Marshal.SizeOf <T>();

            unsafe
            {
                fixed(T *pointer = &value)
                context.MapBufferWriteDiscard(buffer, (IntPtr)pointer, cb);
            }
        }