![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <WorldCollision.h>
Inheritance diagram for AsyncTraceData:Public Member Functions | |
| ENGINE_API | AsyncTraceData () |
| ENGINE_API | ~AsyncTraceData () |
Additional Inherited Members | |
Protected Member Functions inherited from FNoncopyable | |
| FNoncopyable () | |
| ~FNoncopyable () | |
Contains all Async Trace Result for one frame.
We use double buffer for trace data pool. FrameNumber % 2 = is going to be the one collecting NEW data Check FWorldAsyncTraceState to see how this is used. For now it is only double buffer, but it can be more.
| AsyncTraceData::AsyncTraceData | ( | ) |
|
default |
| FGraphEventArray AsyncTraceData::AsyncTraceCompletionEvent |
Thread completion event for batch
| bool AsyncTraceData::bAsyncAllowed |
if Execution is all done, set this to be true
when reinitialize bAsyncAllowed is true, once execution is done, this will set to be false this is to find cases where execution is already done but another request is made again within the same frame.
| bool AsyncTraceData::bAsyncTasksCompleted |
| int32 AsyncTraceData::NumQueuedOverlapData |
Datum entries in OverlapData are persistent for efficiency. This is the number of them that are actually in use (rather than OverlapData.Num()).
| int32 AsyncTraceData::NumQueuedTraceData |
Datum entries in TraceData are persistent for efficiency. This is the number of them that are actually in use (rather than TraceData.Num()).
| TArray<TUniquePtr<TTraceThreadData<FOverlapDatum> > > AsyncTraceData::OverlapData |
| TArray<TUniquePtr<TTraceThreadData<FTraceDatum> > > AsyncTraceData::TraceData |
Data Buffer for each trace type - one for Trace/Sweep and one for Overlap
FTraceThreadData is one atomic data size for thread so once that's filled up, this will be sent to thread if you need more, it will allocate new FTraceThreadData and add to TArray
however when we calculate index of buffer, we calculate continuously, meaning if TraceData(1).Buffer[50] will have 1*ASYNC_TRACE_BUFFER_SIZE + 50 as index in order to give UNIQUE INDEX to every data in this buffer
| FTransactionalAsyncTraceBuffer<FOverlapDatum> AsyncTraceData::TransactionalOverlapData |
| FTransactionalAsyncTraceBuffer<FTraceDatum> AsyncTraceData::TransactionalTraceData |
Data for Transactional async queries. This is effectively the same as above, however it must be stored separately as we cannot run any async queries until a transaction is closed.