10#define UE_API MASSENTITY_API
63 return Read.IsEmpty();
139 struct FResourceUsage
147 struct FResourceUsers
152 struct FResourceAccess
164 template<
typename TBitSet>
168 template<
typename TBitSet>
184 UE_DEPRECATED(5.6,
"This property is deprecated, replaced by PrunedProcessors")
219 void LogNode(
const FNode& Node,
int Indent = 0);
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#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
#define MASS_DO_PARALLEL
Definition MassProcessingTypes.h:14
#define UE_API
Definition MassProcessorDependencySolver.h:10
const bool
Definition NetworkReplayStreaming.h:178
Definition NameTypes.h:617
Definition ArrayView.h:139
void Reset(SizeType NewSize=0)
Definition Array.h:2246
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SubclassOf.h:30
Definition MassProcessor.h:78
Definition MassProcessorDependencySolver.h:20
constexpr uint32 Read
Definition MassProcessorDependencySolver.h:21
constexpr uint32 Write
Definition MassProcessorDependencySolver.h:22
constexpr uint32 MAX
Definition MassProcessorDependencySolver.h:23
Definition MassArchetypeData.h:21
Definition MassEntityTypes.h:74
Definition MassProcessorDependencySolver.h:68
UE_API void CountResourcesUsed()
Definition MassProcessorDependencySolver.cpp:155
TMassExecutionAccess< FMassFragmentBitSet > Fragments
Definition MassProcessorDependencySolver.h:75
FMassTagBitSet RequiredNoneTags
Definition MassProcessorDependencySolver.h:82
FMassTagBitSet RequiredAnyTags
Definition MassProcessorDependencySolver.h:81
TMassExecutionAccess< FMassExternalSubsystemBitSet > RequiredSubsystems
Definition MassProcessorDependencySolver.h:79
UE_API int32 GetTotalBitsUsedCount()
Definition MassProcessorDependencySolver.cpp:168
UE_API bool IsEmpty() const
Definition MassProcessorDependencySolver.cpp:176
TMassExecutionAccess< FMassConstSharedFragmentBitSet > ConstSharedFragments
Definition MassProcessorDependencySolver.h:78
TMassExecutionAccess< FMassSharedFragmentBitSet > SharedFragments
Definition MassProcessorDependencySolver.h:77
TMassExecutionAccess< FMassChunkFragmentBitSet > ChunkFragments
Definition MassProcessorDependencySolver.h:76
int32 ResourcesUsedCount
Definition MassProcessorDependencySolver.h:83
FMassTagBitSet RequiredAllTags
Definition MassProcessorDependencySolver.h:80
UE_API FMassArchetypeCompositionDescriptor AsCompositionDescriptor() const
Definition MassProcessorDependencySolver.cpp:183
Definition MassProcessorDependencySolver.h:89
FMassExecutionRequirements Requirements
Definition MassProcessorDependencySolver.h:117
FName Name
Definition MassProcessorDependencySolver.h:111
int32 SequencePositionIndex
Definition MassProcessorDependencySolver.h:133
int32 MaxExecutionPriority
Definition MassProcessorDependencySolver.h:128
int32 NodeIndex
Definition MassProcessorDependencySolver.h:118
int32 TotalWaitingNodes
Definition MassProcessorDependencySolver.h:120
TArray< int32 > OriginalDependencies
Definition MassProcessorDependencySolver.h:113
TArray< FName > ExecuteBefore
Definition MassProcessorDependencySolver.h:115
TArray< FMassArchetypeHandle > ValidArchetypes
Definition MassProcessorDependencySolver.h:135
bool IncreaseWaitingNodesCountAndPriority(TArrayView< FNode > InAllNodes, const int32 IterationsLimit, TArray< int32 > &OutCycleIndices, const int32 InChildPriority=TNumericLimits< int32 >::Min())
Definition MassProcessorDependencySolver.cpp:379
TArray< int32 > SubNodeIndices
Definition MassProcessorDependencySolver.h:134
bool IncreaseWaitingNodesCount(TArrayView< FNode > InAllNodes, const int32 IterationsLimit, TArray< int32 > &OutCycleIndices)
Definition MassProcessorDependencySolver.cpp:354
TArray< FName > ExecuteAfter
Definition MassProcessorDependencySolver.h:116
TArray< int32 > TransientDependencies
Definition MassProcessorDependencySolver.h:114
bool IsGroup() const
Definition MassProcessorDependencySolver.h:94
FNode(const FName InName, UMassProcessor *InProcessor, const int32 InNodeIndex=INDEX_NONE)
Definition MassProcessorDependencySolver.h:90
void UpdateExecutionPriority(const int32 ChildExecutionPriority)
Definition MassProcessorDependencySolver.h:102
UMassProcessor * Processor
Definition MassProcessorDependencySolver.h:112
Definition MassProcessorDependencySolver.h:179
int32 MaxSequenceLength
Definition MassProcessorDependencySolver.h:182
FString DependencyGraphFileName
Definition MassProcessorDependencySolver.h:180
TArray< TSubclassOf< UMassProcessor > > PrunedProcessorClasses
Definition MassProcessorDependencySolver.h:185
uint32 ArchetypeDataVersion
Definition MassProcessorDependencySolver.h:183
TArray< TObjectPtr< UMassProcessor > > PrunedProcessors
Definition MassProcessorDependencySolver.h:181
void Reset()
Definition MassProcessorDependencySolver.h:187
Definition MassProcessorDependencySolver.h:87
const bool bGameRuntime
Definition MassProcessorDependencySolver.h:234
void Solve(TArray< FMassProcessorOrderInfo > &OutResult)
Definition MassProcessorDependencySolver.cpp:727
FString DependencyGraphFileName
Definition MassProcessorDependencySolver.h:235
TArrayView< UMassProcessor *const > Processors
Definition MassProcessorDependencySolver.h:224
MASSENTITY_API void ResolveDependencies(TArray< FMassProcessorOrderInfo > &OutResult, TSharedPtr< FMassEntityManager > EntityManager=nullptr, FResult *InOutOptionalResult=nullptr)
Definition MassProcessorDependencySolver.cpp:848
static bool IsResultUpToDate(const FResult &InResult, TSharedPtr< FMassEntityManager > EntityManager)
Definition MassProcessorDependencySolver.cpp:982
TArray< FNode > AllNodes
Definition MassProcessorDependencySolver.h:236
void LogNode(const FNode &Node, int Indent=0)
Definition MassProcessorDependencySolver.cpp:703
const bool bSingleThreadTarget
Definition MassProcessorDependencySolver.h:233
int32 CreateNodes(UMassProcessor &Processor)
Definition MassProcessorDependencySolver.cpp:502
void BuildDependencies()
Definition MassProcessorDependencySolver.cpp:589
static MASSENTITY_API void CreateSubGroupNames(FName InGroupName, TArray< FString > &SubGroupNames)
Definition MassProcessorDependencySolver.cpp:481
bool IsSolvingForSingleThread() const
Definition MassProcessorDependencySolver.h:203
bool PerformSolverStep(FResourceUsage &ResourceUsage, TArray< int32 > &InOutIndicesRemaining, TArray< int32 > &OutNodeIndices)
Definition MassProcessorDependencySolver.cpp:412
TMap< FName, int32 > NodeIndexMap
Definition MassProcessorDependencySolver.h:237
void GatherSubsystemInformation(const UE::Mass::FTypeManager &TypeManager)
Definition MassProcessorDependencySolver.cpp:1002
FMassExternalSubsystemBitSet MultiThreadedSystemsBitSet
Definition MassProcessorDependencySolver.h:240
FMassConstSharedFragmentBitSet Read
Definition MassProcessorDependencySolver.h:56
bool IsEmpty() const
Definition MassProcessorDependencySolver.h:61
TConstArrayView< FMassConstSharedFragmentBitSet > AsArrayView() const
Definition MassProcessorDependencySolver.h:57
Definition MassProcessorDependencySolver.h:28
T & operator[](const uint32 OpIndex)
Definition MassProcessorDependencySolver.h:32
T Read
Definition MassProcessorDependencySolver.h:29
const T & operator[](const uint32 OpIndex) const
Definition MassProcessorDependencySolver.h:38
T Write
Definition MassProcessorDependencySolver.h:30
bool IsEmpty() const
Definition MassProcessorDependencySolver.h:46
TConstArrayView< T > AsArrayView() const
Definition MassProcessorDependencySolver.h:44
Definition NumericLimits.h:41
Definition MassTypeManager.h:141