![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <SceneUpdateCommandQueue.h>
Classes | |
| struct | FUpdateCommand |
| struct | TConstPayloadIterator |
| struct | TPayloadBase |
| struct | TPayloadRangeView |
Public Types | |
| using | EDirtyFlags = EInDirtyFlagsType |
| using | FSceneInfo = InSceneInfoType |
| using | FSceneInfoPersistentId = typename InSceneInfoType::FPersistentId |
| using | EId = EInId |
Static Public Attributes | |
| static constexpr int32 | MaxId = int32(EId::MAX) |
An unordered queue for sending scene object updates (agnostic to the object type InSceneInfoType/FSceneInfo). Several update payloads can be enqueued for each object but only the last of each type will have effect. The update payloads are stored in a typed compact array, but are not themselves required to have virtual destructors or even be of any particular type. TPayloadBase is a helper & example that can be used as a base class to implement payload data types. Update payload types are identified by an ID that comes from the template argument enum EInId. While iterating the FUpdateCommand it is possible to access each type of update payload safely, or one can interate the payload types in a continuous fashion.
| using TSceneUpdateCommandQueue< InSceneInfoType, EInDirtyFlagsType, EInId >::EDirtyFlags = EInDirtyFlagsType |
| using TSceneUpdateCommandQueue< InSceneInfoType, EInDirtyFlagsType, EInId >::EId = EInId |
| using TSceneUpdateCommandQueue< InSceneInfoType, EInDirtyFlagsType, EInId >::FSceneInfo = InSceneInfoType |
| using TSceneUpdateCommandQueue< InSceneInfoType, EInDirtyFlagsType, EInId >::FSceneInfoPersistentId = typename InSceneInfoType::FPersistentId |
|
inline |
|
delete |
|
inline |
|
inline |
|
inline |
Enqueue an update with a data payload.
|
inline |
Enqueue an Add command. This will mark the command for the scene object as added, and must always be the first command for the object.
|
inline |
Enqueue a Delete command. This will mark the command for the scene object as deleted, but does not remove the command or associated updates. Thus a command may have both add/delete flags and update payloads. It is up to the consumer to handle these appropriately.
|
inline |
|
inline |
|
inline |
|
inline |
Filter on ESceneUpdateCommandFilter and updates on DirtyFlags mask. I.e., the DirtyFlags mask only matters if the Command is an update. E.g., ForEachUpdateCommand(ESceneUpdateCommandFilter::Added,...) will return all added commands regardless of payload mask. E.g., ForEachUpdateCommand(ESceneUpdateCommandFilter::Added | ESceneUpdateCommandFilter::Updated,...) will return all added commands regardless of DirtyFlags AND all updates that match the DirtyFlags.
|
inline |
Filter on ESceneUpdateCommandFilter and updates on payload mask. I.e., the payload mask only matters if the Command is an update. E.g., ForEachUpdateCommand(ESceneUpdateCommandFilter::Added,...) will return all added commands regardless of payload mask. E.g., ForEachUpdateCommand(ESceneUpdateCommandFilter::Added | ESceneUpdateCommandFilter::Updated,...) will return all added commands regardless of UpdatePayloadMask AND all updates that match the UpdatePayloadMask.
|
inline |
Get an iterator to iterate updates with a given payload type.
|
inline |
Get the number of updates with a given payload type.
|
inline |
Retriev a pointer to the PayloadType data for the given command. Returs nullptr if no such data exists.
|
inline |
Get a "range" that can be used in a range for loop to access updates of a single payload type. e.g. for (auto& Item : Buffer.GetRangeView<MyUpdatePayloadType>()); Deleted items are automatically skipped.
|
inline |
|
inline |
|
inline |
|
inline |
Reset the command and payload data stored in the buffer, leaving allocations unchanged.
|
staticconstexpr |