RadeonRaysContext.DestroyEvent
Declaration
public void DestroyEvent(LightTransport.EventID id);Параметры
| Параметр | Описание |
|---|---|
| Идентификатор | ID события для уничтожения. |
Описание
Уничтожить событие с заданным ID. Вы должны вызвать это, чтобы освободить временные ресурсы, связанные с событием. Попытка использовать событие после его уничтожения, например, с помощью IDeviceContext.Wait или IDeviceContext.IsCompleted, приведет к неопределенному поведению.
using Unity.Collections; using UnityEngine; using UnityEngine.LightTransport;
// Create context. using var ctx = new RadeonRaysContext(); ctx.Initialize();
// Create buffer. BufferID buffer = ctx.CreateBuffer(sizeof(int) * 8, sizeof(int)); using var array = new NativeArray<int>(8, Allocator.Persistent, NativeArrayOptions.ClearMemory);
// Write to buffer and wait for completion. EventID evt = ctx.CreateEvent(); ctx.WriteBuffer(buffer.Slice<int>(), array, evt); var flushOk = ctx.Flush(); Assert.IsTrue(flushOk); var waitOk = ctx.Wait(evt); Assert.IsTrue(waitOk);
// Cleanup. After this point, we may no longer use `evt`. ctx.DestroyEvent(evt); ctx.DestroyBuffer(buffer);
Правильное использование DestroyEvent.