UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::FChaosMarshallingManager Class Reference

#include <ChaosMarshallingManager.h>

Public Member Functions

CHAOS_API FChaosMarshallingManager ()
 
CHAOS_API ~FChaosMarshallingManager ()
 
FPushPhysicsDataGetProducerData_External ()
 
FPushPhysicsDataGetConsumerData_Internal ()
 
void SetConsumerData_Internal (FPushPhysicsData *InPushData)
 
void AddDirtyProxy (IPhysicsProxyBase *ProxyBaseIn)
 
void RemoveDirtyProxy (IPhysicsProxyBase *ProxyBaseIn)
 
void RemoveDirtyProxyFromHistory_Internal (IPhysicsProxyBase *ProxyBaseIn)
 
void RemoveDirtyProxyIfNoShapesAreDirty (IPhysicsProxyBase *ProxyBaseIn)
 
const FDirtyProxiesBucketInfoGetDirtyProxyBucketInfo_External ()
 
int32 GetDirtyProxyBucketInfoNum_External (EPhysicsProxyType Type)
 
template<typename TProxiesArray >
void AddDirtyProxiesUnsafe (TProxiesArray &ProxiesArray)
 
void AddDirtyProxyShape (IPhysicsProxyBase *ProxyBaseIn, int32 ShapeIdx)
 
void SetNumDirtyShapes (IPhysicsProxyBase *Proxy, int32 NumShapes)
 
void RegisterSimCallbackObject_External (ISimCallbackObject *SimCallbackObject)
 
void RegisterSimCommand_External (FSimCallbackCommandObject *SimCommand)
 
void EnqueueCommandScheduled_Internal (FSimCallbackCommandObject *SimCommand)
 
TArray< FSimCallbackCommandObject * > & GetSimCommandsScheduled_Internal ()
 
void UnregisterSimCallbackObject_External (ISimCallbackObject *SimCallbackObject)
 
void AddSimCallbackInputData_External (ISimCallbackObject *SimCallbackObject, FSimCallbackInput *InputData)
 
CHAOS_API void Step_External (FReal ExternalDT, const int32 NumSteps=1, bool bSolverSubstepped=false)
 
CHAOS_API FPushPhysicsDataStepInternalTime_External ()
 
CHAOS_API void FreeData_Internal (FPushPhysicsData *PushData)
 
CHAOS_API void FreeDataToHistory_Internal (FPushPhysicsData *PushData)
 
CHAOS_API void FreePullData_External (FPullPhysicsData *PullData)
 
int32 GetExternalTimestamp_External () const
 
FReal GetExternalTime_External () const
 
int32 GetInternalStep_External () const
 
void SetTickDelay_External (int32 InDelay)
 
FPullPhysicsDataGetCurrentPullData_Internal ()
 
CHAOS_API void FinalizePullData_Internal (int32 LatestExternalTimestampConsumed, FReal SimStartTime, FReal DeltaTime)
 
FPullPhysicsDataPopPullData_External ()
 
CHAOS_API void SetHistoryLength_Internal (int32 InHistoryLength)
 
CHAOS_API TArray< FPushPhysicsData * > StealHistory_Internal (int32 NumFrames)
 
int32 GetNumHistory_Internal () const
 
FRWLockGetMarshallingManagerLock ()
 

Detailed Description

Manages data that gets marshaled from GT to PT using a timestamp

Constructor & Destructor Documentation

◆ FChaosMarshallingManager()

Chaos::FChaosMarshallingManager::FChaosMarshallingManager ( )

◆ ~FChaosMarshallingManager()

Chaos::FChaosMarshallingManager::~FChaosMarshallingManager ( )

Member Function Documentation

◆ AddDirtyProxiesUnsafe()

template<typename TProxiesArray >
void Chaos::FChaosMarshallingManager::AddDirtyProxiesUnsafe ( TProxiesArray ProxiesArray)
inline

◆ AddDirtyProxy()

void Chaos::FChaosMarshallingManager::AddDirtyProxy ( IPhysicsProxyBase ProxyBaseIn)
inline

◆ AddDirtyProxyShape()

void Chaos::FChaosMarshallingManager::AddDirtyProxyShape ( IPhysicsProxyBase ProxyBaseIn,
int32  ShapeIdx 
)
inline

◆ AddSimCallbackInputData_External()

void Chaos::FChaosMarshallingManager::AddSimCallbackInputData_External ( ISimCallbackObject SimCallbackObject,
FSimCallbackInput InputData 
)
inline

◆ EnqueueCommandScheduled_Internal()

void Chaos::FChaosMarshallingManager::EnqueueCommandScheduled_Internal ( FSimCallbackCommandObject SimCommand)
inline

◆ FinalizePullData_Internal()

void Chaos::FChaosMarshallingManager::FinalizePullData_Internal ( int32  LatestExternalTimestampConsumed,
FReal  SimStartTime,
FReal  DeltaTime 
)

Hands pull data off to external thread

◆ FreeData_Internal()

void Chaos::FChaosMarshallingManager::FreeData_Internal ( FPushPhysicsData PushData)

Frees the push data back into the pool. Internal thread should call this when finished processing data

◆ FreeDataToHistory_Internal()

void Chaos::FChaosMarshallingManager::FreeDataToHistory_Internal ( FPushPhysicsData PushData)

May record data to history, or may free immediately depending on rewind needs. Either way you should assume data is gone after calling this

Process SimCallbackObjects that are pending delete and clear their cached AsyncInputs from history At this point the SimCallbackObject is already unregistered from all callbacks and keeping it alive longer (until the end of the rewind history) is only a risk

◆ FreePullData_External()

void Chaos::FChaosMarshallingManager::FreePullData_External ( FPullPhysicsData PullData)

Frees the pull data back into the pool. External thread should call this when finished processing data

◆ GetConsumerData_Internal()

FPushPhysicsData * Chaos::FChaosMarshallingManager::GetConsumerData_Internal ( )
inline

Grabs the consumer data to read from. Should only be called by internal thread

◆ GetCurrentPullData_Internal()

FPullPhysicsData * Chaos::FChaosMarshallingManager::GetCurrentPullData_Internal ( )
inline

Returns the current pull data being written to. This holds the results of dirty data to be read later by external thread

◆ GetDirtyProxyBucketInfo_External()

const FDirtyProxiesBucketInfo & Chaos::FChaosMarshallingManager::GetDirtyProxyBucketInfo_External ( )
inline

◆ GetDirtyProxyBucketInfoNum_External()

int32 Chaos::FChaosMarshallingManager::GetDirtyProxyBucketInfoNum_External ( EPhysicsProxyType  Type)
inline

◆ GetExternalTime_External()

FReal Chaos::FChaosMarshallingManager::GetExternalTime_External ( ) const
inline

Returns the amount of external time pushed so far. Any external commands or events should be associated with this time

◆ GetExternalTimestamp_External()

int32 Chaos::FChaosMarshallingManager::GetExternalTimestamp_External ( ) const
inline

Returns the timestamp associated with inputs enqueued.

◆ GetInternalStep_External()

int32 Chaos::FChaosMarshallingManager::GetInternalStep_External ( ) const
inline

Returns the internal step that the current PushData will be associated with once it is marshalled over

◆ GetMarshallingManagerLock()

FRWLock & Chaos::FChaosMarshallingManager::GetMarshallingManagerLock ( )
inline

Used for multithreaded access

◆ GetNumHistory_Internal()

int32 Chaos::FChaosMarshallingManager::GetNumHistory_Internal ( ) const
inline

Return the size of the history queue

◆ GetProducerData_External()

FPushPhysicsData * Chaos::FChaosMarshallingManager::GetProducerData_External ( )
inline

Grabs the producer data to write into. Should only be called by external thread

◆ GetSimCommandsScheduled_Internal()

TArray< FSimCallbackCommandObject * > & Chaos::FChaosMarshallingManager::GetSimCommandsScheduled_Internal ( )
inline

◆ PopPullData_External()

FPullPhysicsData * Chaos::FChaosMarshallingManager::PopPullData_External ( )
inline

Pops and returns the earliest pull data available. nullptr means results are not ready or no work is pending

◆ RegisterSimCallbackObject_External()

void Chaos::FChaosMarshallingManager::RegisterSimCallbackObject_External ( ISimCallbackObject SimCallbackObject)
inline

◆ RegisterSimCommand_External()

void Chaos::FChaosMarshallingManager::RegisterSimCommand_External ( FSimCallbackCommandObject SimCommand)
inline

◆ RemoveDirtyProxy()

void Chaos::FChaosMarshallingManager::RemoveDirtyProxy ( IPhysicsProxyBase ProxyBaseIn)
inline

◆ RemoveDirtyProxyFromHistory_Internal()

void Chaos::FChaosMarshallingManager::RemoveDirtyProxyFromHistory_Internal ( IPhysicsProxyBase ProxyBaseIn)
inline

◆ RemoveDirtyProxyIfNoShapesAreDirty()

void Chaos::FChaosMarshallingManager::RemoveDirtyProxyIfNoShapesAreDirty ( IPhysicsProxyBase ProxyBaseIn)
inline

◆ SetConsumerData_Internal()

void Chaos::FChaosMarshallingManager::SetConsumerData_Internal ( FPushPhysicsData InPushData)
inline

Sets a new internal consumer data to read from. Should only be called by internal thread

◆ SetHistoryLength_Internal()

void Chaos::FChaosMarshallingManager::SetHistoryLength_Internal ( int32  InHistoryLength)

◆ SetNumDirtyShapes()

void Chaos::FChaosMarshallingManager::SetNumDirtyShapes ( IPhysicsProxyBase Proxy,
int32  NumShapes 
)
inline

◆ SetTickDelay_External()

void Chaos::FChaosMarshallingManager::SetTickDelay_External ( int32  InDelay)
inline

Used to delay marshalled data. This is mainly used for testing at the moment

◆ StealHistory_Internal()

TArray< FPushPhysicsData * > Chaos::FChaosMarshallingManager::StealHistory_Internal ( int32  NumFrames)

Returns the history buffer of the latest NumFrames. The history that comes before these frames is discarded

◆ Step_External()

void Chaos::FChaosMarshallingManager::Step_External ( FReal  ExternalDT,
const int32  NumSteps = 1,
bool  bSolverSubstepped = false 
)

Step forward using the external delta time. Should only be called by external thread

◆ StepInternalTime_External()

FPushPhysicsData * Chaos::FChaosMarshallingManager::StepInternalTime_External ( )

Step the internal time forward if possible

◆ UnregisterSimCallbackObject_External()

void Chaos::FChaosMarshallingManager::UnregisterSimCallbackObject_External ( ISimCallbackObject SimCallbackObject)
inline

The documentation for this class was generated from the following files: