IDeviceContext.WriteBuffer
Declaration
public void WriteBuffer(BufferSlice<T> dst, NativeArray<T> src);public void WriteBuffer(BufferSlice<T> dst, NativeArray<T> src, LightTransport.EventID id);Параметры
| Параметр | Описание |
|---|---|
| дст | Буферный фрагмент, указывающий место назначения на устройстве. |
| сердце | Исходный массив в памяти CPU. Должен оставаться действительным до завершения операции. |
| Идентификатор | Необязательное событие ID для отслеживания завершения операции записи. |
Описание
Асинхронное копирование данных из памяти узла в буфер устройства.
Инициирует асинхронную передачу данных из памяти узла в память устройства. Метод возвращается сразу после очереди операции. Используйте Flush, чтобы убедиться, что операция начала выполняться, затем используйте Wait или IsCompleted с указанным событием, чтобы определить, когда передача завершена.
Источник NativeArray<T0> должен оставаться выделенным и неизменным до завершения операции записи, как указано событием.
Предупреждение: экземпляры EventID являются одноразовыми. Не используйте повторно событие, переданное этому методу.
// Prepare data and write to buffer using var inputData = new NativeArray<float>(512, Allocator.Persistent); for (int i = 0; i < inputData.Length; i++) inputData[i] = i * 0.5f;
var writeEvent = context.CreateEvent(); context.WriteBuffer(bufferSlice, inputData, writeEvent); context.Flush();
// Wait for write to complete before using the buffer context.Wait(writeEvent); context.DestroyEvent(writeEvent);