5#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
16#include "MassProcessingPhaseManager.generated.h"
41#if WITH_EDITORONLY_DATA
81#if WITH_MASSENTITY_DEBUG
97 std::atomic<bool> bIsDuringMassProcessing =
false;
98 bool bRunInParallelMode =
true;
99 uint8 SupportedTickTypes = 0;
127 UE_DEPRECATED(5.6,
"This flavor of Configure is deprecated. Please use the one using a TSharedRef<FMassEntityManager> parameter instead")
178 bool IsRunning()
const {
return EntityManager.IsValid(); }
188 bool IsPaused()
const;
211 bool bNewArchetypes =
true;
212 bool bProcessorsNeedRebuild =
true;
213 bool bInitialized =
false;
218#if WITH_MASSENTITY_DEBUG
228 return TEXT(
"FMassProcessingPhaseManager");
282 bool bIsAllowedToTick =
false;
284 bool bIsPaused =
false;
285 bool bIsPauseTogglePending =
false;
287#if WITH_MASSENTITY_DEBUG
296 UE_DEPRECATED(5.6,
"This flavor of Start is deprecated. Please use the one using a TSharedRef<FMassEntityManager> parameter instead")
303#if WITH_MASSENTITY_DEBUG
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ETickingGroup
Definition EngineBaseTypes.h:84
ELevelTick
Definition EngineBaseTypes.h:70
EMassProcessingPhase
Definition MassProcessingTypes.h:171
EProcessorExecutionFlags
Definition MassProcessingTypes.h:24
T TNotNull
Definition NotNull.h:307
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
@ Stop
Definition PrecomputedVolumetricLightmapStreaming.cpp:26
UClass * StaticClass()
Definition ReflectedTypeAccessors.h:13
Definition IDelegateInstance.h:14
Definition GCObject.h:128
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition ArrayView.h:139
Definition MpscQueue.h:18
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SubclassOf.h:30
Definition MassProcessor.h:321
Definition MassProcessor.h:78
Type
Definition TaskGraphInterfaces.h:57
@ GameThread
Definition TaskGraphInterfaces.h:61
Definition MassArchetypeTypes.h:39
Definition MassCommandBuffer.h:99
Definition MassEntityManager.h:96
Definition MassProcessingPhaseManager.h:104
MASSENTITY_API void Configure(TArrayView< UMassProcessor *const > DynamicProcessors, TArray< TWeakObjectPtr< UMassProcessor > > &InOutRemovedDynamicProcessors, EProcessorExecutionFlags InWorldExecutionFlags, const TSharedRef< FMassEntityManager > &EntityManager, FMassProcessorDependencySolver::FResult &InOutOptionalResult)
Definition MassProcessingPhaseManager.cpp:159
const FMassProcessingPhaseConfig & PhaseConfig
Definition MassProcessingPhaseManager.h:118
EMassProcessingPhase Phase
Definition MassProcessingPhaseManager.h:120
bool bIsGameRuntime
Definition MassProcessingPhaseManager.h:122
UObject & ProcessorOuter
Definition MassProcessingPhaseManager.h:119
UMassCompositeProcessor & PhaseProcessor
Definition MassProcessingPhaseManager.h:117
FMassPhaseProcessorConfigurationHelper(UMassCompositeProcessor &InOutPhaseProcessor, const FMassProcessingPhaseConfig &InPhaseConfig, UObject &InProcessorOuter, EMassProcessingPhase InPhase)
Definition MassProcessingPhaseManager.h:105
bool bInitializeCreatedProcessors
Definition MassProcessingPhaseManager.h:121
Definition MassProcessingPhaseManager.h:29
FName PhaseName
Definition MassProcessingPhaseManager.h:33
TArray< TObjectPtr< UMassProcessor > > ProcessorCDOs
Definition MassProcessingPhaseManager.h:39
TSubclassOf< UMassCompositeProcessor > PhaseGroupClass
Definition MassProcessingPhaseManager.h:36
Definition MassProcessingPhaseManager.h:209
FMassProcessorDependencySolver::FResult LastResult
Definition MassProcessingPhaseManager.h:210
Definition MassProcessingPhaseManager.h:142
FMassEntityManager & GetEntityManagerRef()
Definition MassProcessingPhaseManager.h:149
const TSharedPtr< FMassEntityManager > & GetEntityManager() const
Definition MassProcessingPhaseManager.h:148
FMassProcessingPhaseManager(const FMassProcessingPhaseManager &Other)=delete
bool IsPaused() const
Definition MassProcessingPhaseManager.h:320
TArray< FMassProcessingPhaseConfig > ProcessingPhasesConfig
Definition MassProcessingPhaseManager.h:261
MASSENTITY_API void CreatePhases()
TSharedPtr< FMassEntityManager > EntityManager
Definition MassProcessingPhaseManager.h:273
TArray< TWeakObjectPtr< UMassProcessor > > RemovedDynamicProcessors
Definition MassProcessingPhaseManager.h:263
FMassProcessingPhaseManager & operator=(const FMassProcessingPhaseManager &Other)=delete
EDynamicProcessorOperationType
Definition MassProcessingPhaseManager.h:265
bool IsRunning() const
Definition MassProcessingPhaseManager.h:178
virtual FString GetReferencerName() const override
Definition MassProcessingPhaseManager.h:226
FDelegateHandle OnNewArchetypeHandle
Definition MassProcessingPhaseManager.h:279
FMassProcessingPhase::FOnPhaseEvent & GetOnPhaseStart(const EMassProcessingPhase Phase)
Definition MassProcessingPhaseManager.h:152
friend FMassProcessingPhase
Definition MassProcessingPhaseManager.h:242
FMassProcessingPhase::FOnPhaseEvent & GetOnPhaseEnd(const EMassProcessingPhase Phase)
Definition MassProcessingPhaseManager.h:154
TWeakObjectPtr< UObject > Owner
Definition MassProcessingPhaseManager.h:277
TArray< TObjectPtr< UMassProcessor > > DynamicProcessors
Definition MassProcessingPhaseManager.h:262
Definition MassProcessingPhaseManager.h:54
TObjectPtr< UMassCompositeProcessor > PhaseProcessor
Definition MassProcessingPhaseManager.h:89
EMassProcessingPhase Phase
Definition MassProcessingPhaseManager.h:91
MASSENTITY_API FMassProcessingPhase()
Definition MassProcessingPhaseManager.cpp:51
virtual MASSENTITY_API FName DiagnosticContext(bool bDetailed) override
Definition MassProcessingPhaseManager.cpp:143
virtual MASSENTITY_API void ExecuteTick(float DeltaTime, ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent) override
Definition MassProcessingPhaseManager.cpp:58
void RemoveSupportedTickType(const ELevelTick TickType)
Definition MassProcessingPhaseManager.h:79
virtual MASSENTITY_API FString DiagnosticMessage() override
Definition MassProcessingPhaseManager.cpp:138
FOnPhaseEvent OnPhaseStart
Definition MassProcessingPhaseManager.h:92
void AddSupportedTickType(const ELevelTick TickType)
Definition MassProcessingPhaseManager.h:78
friend FMassProcessingPhaseManager
Definition MassProcessingPhaseManager.h:86
FOnPhaseEvent OnPhaseEnd
Definition MassProcessingPhaseManager.h:93
FMassProcessingPhase & operator=(const FMassProcessingPhase &Other)=delete
void ConfigureForSingleThreadMode()
Definition MassProcessingPhaseManager.h:72
void ConfigureForParallelMode()
Definition MassProcessingPhaseManager.h:71
bool ShouldTick(const ELevelTick TickType) const
Definition MassProcessingPhaseManager.h:74
bool IsConfiguredForParallelMode() const
Definition MassProcessingPhaseManager.h:70
FMassProcessingPhase(const FMassProcessingPhase &Other)=delete
DECLARE_MULTICAST_DELEGATE_OneParam(FOnPhaseEvent, const float)
MASSENTITY_API void OnParallelExecutionDone(const float DeltaTime)
Definition MassProcessingPhaseManager.cpp:127
Definition MassProcessorDependencySolver.h:179
Definition MassProcessorDependencySolver.h:87
Definition EngineBaseTypes.h:173
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25