19#include <initializer_list>
51 template<
typename...>
struct TComponentTypeIDsImpl;
57template<
int32 NumComponents,
bool AutoExpandAccessors>
128 inline explicit operator bool()
const
136template <
typename TaskType>
141template <
typename TaskType>
142static FTaskID SchedulePostTask(IEntitySystemScheduler*,
const FTaskParams&,
const TSharedPtr<TaskType>&,
void*)
147template <
typename TaskType,
typename TaskImplType>
152 static void Run(
const ITaskContext*
Context, FEntityAllocationWriteContext WriteContext)
154 static_cast<const TaskType*
>(
Context)->PreTask();
161template <
typename TaskType,
typename TaskImplType>
166 static void Run(
const ITaskContext*
Context, FEntityAllocationWriteContext WriteContext)
168 static_cast<const TaskType*
>(
Context)->PostTask();
179template<
typename... T>
288 this->CommonParams.TaskParams.StatId =
InStatId;
314 static_assert(
sizeof...(T) == 0,
"Dispatch() is only for non-structured logic, which means that any call to Read or Write (or their variants) won't do anything -- please remove them");
383 if (!this->HasAnyWork(EntityManager))
416 template<
typename TaskImpl>
461 if (!this->HasAnyWork(EntityManager))
501#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
519#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
537#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
555#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
567 template<
typename TaskImpl>
580 static_assert(
sizeof...(T) == 0,
"Default construction is only supported for TEntityTaskComponents<>");
598 if (!this->HasAnyWork(EntityManager))
603 using TaskType = TScheduledEntityTask<
TaskImpl, T...>;
609 FEntityComponentFilter
Filter;
610 this->PopulateFilter(&
Filter);
637template<
int... Indices,
typename... T>
666 template<
typename... U>
677 template<
typename... U>
688 template<
typename... U>
699 template<
typename... U>
715 template<
typename... U>
770 template<
typename... U>
885 template<
typename Callback>
899 template<
typename Callback>
914 template<
typename Callback>
935 TupleType ComponentData( Accessors.template
Get<Indices>().LockComponentData(Item, WriteContext)... );
938 for (
int32 ComponentOffset = 0; ComponentOffset <
Num && Result.Value; ++ComponentOffset )
953 template<
typename Callback>
969 auto ComponentData =
MakeTuple( Accessors.template
Get<Indices>().LockComponentData(Item, WriteContext)... );
989 static_assert(
Index <
sizeof...(T),
"Invalid component index specified");
995#if UE_MOVIESCENE_ENTITY_DEBUG
1003 return TEXT(
"<debug info compiled out> - enable UE_MOVIESCENE_ENTITY_DEBUG");
1031 template<
typename... T>
1035 template<
typename... T>
1050template<
typename... T>
1056 Components.PopulateFilter(&
Filter);
1062 Components.PopulateFilter(&
Filter);
1143 Filter.Combine(InFilter);
1162 Components.CommonParams.TaskParams.StatId =
InStatId;
1180 return Components.CommonParams.DesiredThread;
1188 return Components.CommonParams.TaskParams.StatId;
1196 return Components.CommonParams.bBreakOnRun;
1220 template<
typename ComponentType>
1240 template<
typename ComponentType>
1285 if (!Components.IsValid())
1291 if (!Components.HasAnyWork(EntityManager))
1317 Components.PopulateSubsequents(NewTask, *Subsequents);
1324 template<
typename TaskImpl>
1327 if (Components.IsValid())
1363 if (!Components.IsValid())
1369 if (!Components.HasAnyWork(EntityManager))
1395 Components.PopulateSubsequents(NewTask, *Subsequents);
1408#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1426#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1444#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1462#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1474 template<
typename TaskImpl>
1477 if (Components.IsValid())
1489 template<
typename Callback>
1501 template<
typename Callback>
1512 if (!Components.IsValid())
1517 if (!Components.HasAnyWork(EntityManager))
1522 using TaskType = TScheduledEntityTask<
TaskImpl, T...>;
1554 TEntityTaskComponents<T...> Components;
1556 FEntityComponentFilter
Filter;
1557 FComponentMask DynamicReadMask;
1558 FComponentMask DynamicWriteMask;
1561template<
typename TaskImpl,
typename... ComponentTypes>
1608 template <
typename T>
static void PreTask(T*
InTask,
decltype(&T::PreTask)* = 0)
1626template<
typename TaskImpl,
typename... ComponentTypes>
1658 this->
Run(TaskImplInstance);
1666template<
typename TaskImpl,
typename... ComponentTypes>
1678 PreTaskImpl(
const_cast<TaskImpl*
>(&TaskImplInstance));
1683 PostTaskImpl(
const_cast<TaskImpl*
>(&TaskImplInstance));
1689 Caller::ForEachEntityImpl(
This->TaskImplInstance, Item,
PreLockedData, WriteContext,
This->Components);
1694 Caller::ForEachAllocationImpl(
This->TaskImplInstance, Item,
PreLockedData, WriteContext,
This->Components);
1698 static void PreTaskImpl(
void*, ...){}
1699 template <
typename T>
static void PreTaskImpl(T*
InTask,
decltype(&T::PreTask)* = 0)
1704 static void PostTaskImpl(
void*, ...){}
1705 template <
typename T>
static void PostTaskImpl(T*
InTask,
decltype(&T::PostTask)* = 0)
1713 TEntityTaskComponents<ComponentTypes...> Components;
1716template<
typename TaskImpl,
typename... ComponentTypes>
1745 PreTask(&TaskImplInstance);
1757 PostTask(&TaskImplInstance);
1762 static void PreTask(
void*, ...){}
1763 template <
typename T>
static void PreTask(T*
InTask,
decltype(&T::PreTask)* = 0)
1768 static void PostTask(
void*, ...){}
1769 template <
typename T>
static void PostTask(T*
InTask,
decltype(&T::PostTask)* = 0)
1783template<
typename TaskImpl,
typename... ComponentTypes>
1815 this->
Run(TaskImplInstance);
1823template<
typename TaskImpl>
1856 checkf(CurrentThread == CommonParams.
DesiredThread,
TEXT(
"MovieScene evaluation task is not being run on its desired thread"));
1861 TaskImplInstance.Run();
1874template<
typename ...AccessorTypes>
1877 static constexpr int32 Num = (... + AccessorTypes::PreLockedDataNum);
1883 int Index = 0, DataIndex = 0;
1884 (...,
Assign(
Index, DataIndex, AccessorTypes::PreLockedDataNum));
1894template<
int... Indices>
1906 for (
int32 ComponentOffset = 0; ComponentOffset <
Num && Result.Value; ++ComponentOffset )
1921 for (
int32 ComponentOffset = 0; ComponentOffset <
Num && Result.Value; ++ComponentOffset )
1939 TaskImplInstance.ForEachAllocation(Item, LockedComponentData.template
Get<Indices>()...);
1943template<
int NumComponents>
1948template<
int32 NumComponents>
1951 template<
typename TaskImpl>
1954 static_assert(!std::is_same_v<TaskImpl, TaskImpl>,
"non-expanded entity iteration is not supported");
1960 TaskImplInstance.ForEachAllocation(Item, Components,
PreLockedData);
1966 TaskImplInstance.ForEachAllocation(Item, Components);
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define checkfSlow(expr, format,...)
Definition AssertionMacros.h:333
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define DECLARE_CYCLE_STAT(CounterName, StatId, GroupId)
Definition Stats.h:669
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
typename UE4IntegerSequence_Private::TMakeIntegerSequenceImpl< T, N >::Type TMakeIntegerSequence
Definition IntegerSequence.h:31
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
const bool
Definition NetworkReplayStreaming.h:178
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
constexpr TTuple< std::decay_t< Types >... > MakeTuple(Types &&... Args)
Definition Tuple.h:794
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition TaskGraphInterfaces.h:598
Definition SharedPointer.h:692
Definition MovieSceneEntityManager.h:81
MOVIESCENE_API EEntityThreadingModel GetThreadingModel() const
Definition MovieSceneEntityManager.cpp:609
MOVIESCENE_API FEntityAllocationIteratorProxy Iterate(const FEntityComponentFilter *InFilter) const
Definition MovieSceneEntityManager.cpp:1027
Definition IMovieSceneTaskScheduler.h:162
Type
Definition TaskGraphInterfaces.h:57
@ GameThread
Definition TaskGraphInterfaces.h:61
@ AnyHiPriThreadHiPriTask
Definition TaskGraphInterfaces.h:101
@ GameThread_Local
Definition TaskGraphInterfaces.h:97
@ AnyThread
Definition TaskGraphInterfaces.h:67
Type
Definition TaskGraphInterfaces.h:249
@ TrackSubsequents
Definition TaskGraphInterfaces.h:251
Definition OverriddenPropertySet.cpp:45
void Run(FMassRuntimePipeline &RuntimePipeline, FProcessingContext &ProcessingContext)
Definition MassExecutor.cpp:25
TVariant< UnboundTaskFunctionPtr, AllocationFunctionPtr, AllocationItemFunctionPtr, PreLockedAllocationItemFunctionPtr > TaskFunctionPtr
Definition IMovieSceneTaskScheduler.h:159
EComponentHeaderLockMode
Definition MovieSceneEntitySystemTypes.h:112
bool IsAccessorValid(const FEntityIDAccess *)
Definition MovieSceneComponentAccessors.h:612
auto GetComponentAtIndex(T *InAccessor, int32 Index) -> decltype(DeclVal< T >().ComponentAtIndex(0))
Definition MovieSceneComponentAccessors.h:601
void PopulatePrerequisites(const FEntityIDAccess *, const FSystemTaskPrerequisites &InPrerequisites, FGraphEventArray *OutGatheredPrereqs)
Definition MovieSceneComponentAccessors.h:464
void AddAccessorToFilter(const FEntityIDAccess *, FEntityComponentFilter *OutFilter)
Definition MovieSceneComponentAccessors.h:416
bool HasAccessorWork(const FEntityManager *, const FEntityIDAccess *)
Definition MovieSceneComponentAccessors.h:651
bool HasBeenWrittenToSince(const FEntityIDAccess *In, FEntityAllocation *Allocation, uint64 InSystemSerial)
Definition MovieSceneComponentAccessors.h:563
void PopulateReadWriteDependencies(const FEntityIDAccess *, FComponentMask &OutReadDependencies, FComponentMask &OutWriteDependencies)
Definition MovieSceneComponentAccessors.h:517
FEntityAllocationProxy FEntityAllocationIteratorItem
Definition EntityAllocationIterator.h:17
void PopulateSubsequents(const FWriteAccess *In, const FGraphEventRef &InEvent, FSystemSubsequentTasks &OutSubsequents)
Definition MovieSceneComponentAccessors.h:499
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition IntegerSequence.h:9
Definition LightweightStats.h:416
Definition MovieSceneEntitySystemTask.h:61
FTaskParams TaskParams
Definition MovieSceneEntitySystemTask.h:67
FCommonEntityTaskParams()
Definition MovieSceneEntitySystemTask.h:62
ENamedThreads::Type DesiredThread
Definition MovieSceneEntitySystemTask.h:70
bool bBreakOnRun
Definition MovieSceneEntitySystemTask.h:73
Definition MovieSceneEntityIDs.h:40
void SetAll(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntityIDs.h:454
FComponentMask & CombineWithBitwiseOR(const FComponentMask &Other, EBitwiseOperatorFlags InFlags)
Definition MovieSceneEntityIDs.h:76
void Set(FComponentTypeID InComponentType)
Definition MovieSceneEntityIDs.h:444
Definition MovieSceneEntityIDs.h:251
Definition MovieSceneEntityIDs.h:174
static FComponentTypeID Invalid()
Definition MovieSceneEntityIDs.h:179
Definition MovieSceneEntitySystemTypes.h:957
Definition MovieSceneEntitySystemTypes.h:977
MOVIESCENE_API const FEntityAllocation * GetAllocation() const
Definition MovieSceneEntitySystemTypes.cpp:144
Definition MovieSceneEntitySystemTypes.h:425
Definition MovieSceneEntitySystemTypes.h:624
int32 Num() const
Definition MovieSceneEntitySystemTypes.h:813
Definition MovieSceneEntitySystemTypes.h:295
Definition MovieSceneComponentAccessors.h:84
Definition MovieSceneEntitySystemTask.h:116
bool Value
Definition MovieSceneEntitySystemTask.h:133
friend FEntityIterationResult operator,(bool In, FEntityIterationResult)
Definition MovieSceneEntitySystemTask.h:123
friend FEntityIterationResult operator,(T, FEntityIterationResult)
Definition MovieSceneEntitySystemTask.h:118
Definition MovieSceneEntitySystemTask.h:1045
FEntityTaskBuilder()
Definition MovieSceneEntitySystemTask.h:1046
Definition MovieSceneComponentAccessors.h:187
Definition MovieSceneComponentAccessors.h:163
Definition MovieSceneComponentAccessors.h:229
Definition MovieSceneComponentAccessors.h:107
Definition MovieSceneEntitySystemTask.h:1030
static void ForEachAllocation(T &&...)
Definition MovieSceneEntitySystemTask.h:1032
static void ForEachEntity(T &&...)
Definition MovieSceneEntitySystemTask.h:1036
Definition MovieSceneSystemTaskDependencies.h:98
MOVIESCENE_API void AddRootTask(FGraphEventRef RootTask)
Definition MovieSceneSystemTaskDependencies.cpp:72
Definition MovieSceneSystemTaskDependencies.h:29
Definition IMovieSceneTaskScheduler.h:21
static FTaskID None()
Definition IMovieSceneTaskScheduler.h:32
Definition IMovieSceneTaskScheduler.h:44
uint8 bForcePrePostTask
Definition IMovieSceneTaskScheduler.h:106
TStatId StatId
Definition IMovieSceneTaskScheduler.h:103
uint8 bSerialTasks
Definition IMovieSceneTaskScheduler.h:105
Definition IMovieSceneTaskScheduler.h:113
Definition MovieSceneComponentTypeIDs.h:15
Definition MovieSceneEntityIDs.h:283
Definition MovieSceneEntitySystemTask.h:79
@ AutoExpandAccessors
Definition MovieSceneEntitySystemTask.h:104
Definition MovieSceneEntitySystemTask.h:1718
FEntityAllocationWriteContext WriteContext
Definition MovieSceneEntitySystemTask.h:1780
void Run(TaskImpl &TaskImplInstance)
Definition MovieSceneEntitySystemTask.h:1741
TFilteredEntityTask< ComponentTypes... > ComponentFilter
Definition MovieSceneEntitySystemTask.h:1778
TStatId GetStatId() const
Definition MovieSceneEntitySystemTask.h:1731
TEntityAllocationTaskBase(FEntityManager *InEntityManager, const TFilteredEntityTask< ComponentTypes... > &InComponentFilter)
Definition MovieSceneEntitySystemTask.h:1725
FEntityManager * EntityManager
Definition MovieSceneEntitySystemTask.h:1779
TEntityAllocationTaskBase(FEntityManager *InEntityManager, const TEntityTaskComponents< ComponentTypes... > &InComponents)
Definition MovieSceneEntitySystemTask.h:1719
ENamedThreads::Type GetDesiredThread() const
Definition MovieSceneEntitySystemTask.h:1736
Definition MovieSceneEntitySystemTask.h:1785
TEntityAllocationTask(FEntityManager *InEntityManager, const TFilteredEntityTask< ComponentTypes... > &InComponentFilter, ArgTypes &&... InArgs)
Definition MovieSceneEntitySystemTask.h:1793
static ESubsequentsMode::Type GetSubsequentsMode()
Definition MovieSceneEntitySystemTask.h:1798
TEntityAllocationTask(FEntityManager *InEntityManager, const TEntityTaskComponents< ComponentTypes... > &InComponents, ArgTypes &&... InArgs)
Definition MovieSceneEntitySystemTask.h:1787
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &CompletionGraphEvent)
Definition MovieSceneEntitySystemTask.h:1803
Definition MovieSceneEntitySystemTask.h:1563
TEntityTaskBase(FEntityManager *InEntityManager, const TEntityTaskComponents< ComponentTypes... > &InComponents)
Definition MovieSceneEntitySystemTask.h:1564
static void PostTask(T *InTask, decltype(&T::PostTask) *=0)
Definition MovieSceneEntitySystemTask.h:1614
TStatId GetStatId() const
Definition MovieSceneEntitySystemTask.h:1576
static void PreTask(void *,...)
Definition MovieSceneEntitySystemTask.h:1607
ENamedThreads::Type GetDesiredThread() const
Definition MovieSceneEntitySystemTask.h:1581
static void PreTask(T *InTask, decltype(&T::PreTask) *=0)
Definition MovieSceneEntitySystemTask.h:1608
TFilteredEntityTask< ComponentTypes... > FilteredTask
Definition MovieSceneEntitySystemTask.h:1621
static void PostTask(void *,...)
Definition MovieSceneEntitySystemTask.h:1613
FEntityAllocationWriteContext WriteContext
Definition MovieSceneEntitySystemTask.h:1623
TEntityTaskBase(FEntityManager *InEntityManager, const TFilteredEntityTask< ComponentTypes... > &InFilteredTask)
Definition MovieSceneEntitySystemTask.h:1570
void Run(TaskImpl &TaskImplInstance)
Definition MovieSceneEntitySystemTask.h:1586
FEntityManager * EntityManager
Definition MovieSceneEntitySystemTask.h:1622
static void ForEachAllocationImpl(TaskImpl &TaskImplInstance, FEntityAllocationIteratorItem Item, TArrayView< const FPreLockedDataPtr > PreLockedData, FEntityAllocationWriteContext WriteContext, const TEntityTaskComponents< AccessorTypes... > &Components)
Definition MovieSceneEntitySystemTask.h:1958
static void ForEachAllocationImpl(TaskImpl &TaskImplInstance, FEntityAllocationIteratorItem Item, const TEntityTaskComponents< AccessorTypes... > &Components)
Definition MovieSceneEntitySystemTask.h:1964
static void ForEachEntityImpl(TaskImpl &TaskImplInstance,...)
Definition MovieSceneEntitySystemTask.h:1952
static void ForEachEntityImpl(TaskImpl &TaskImplInstance, FEntityAllocationIteratorItem Item, FEntityAllocationWriteContext WriteContext, const TEntityTaskComponents< AccessorTypes... > &Components)
Definition MovieSceneEntitySystemTask.h:1913
static void ForEachAllocationImpl(TaskImpl &TaskImplInstance, FEntityAllocationIteratorItem Item, TArrayView< const FPreLockedDataPtr > PreLockedData, FEntityAllocationWriteContext WriteContext, const TEntityTaskComponents< AccessorTypes... > &Components)
Definition MovieSceneEntitySystemTask.h:1928
static void ForEachEntityImpl(TaskImpl &TaskImplInstance, FEntityAllocationIteratorItem Item, TArrayView< const FPreLockedDataPtr > PreLockedData, FEntityAllocationWriteContext WriteContext, const TEntityTaskComponents< AccessorTypes... > &Components)
Definition MovieSceneEntitySystemTask.h:1898
static void ForEachAllocationImpl(TaskImpl &TaskImplInstance, FEntityAllocationIteratorItem Item, FEntityAllocationWriteContext WriteContext, const TEntityTaskComponents< AccessorTypes... > &Components)
Definition MovieSceneEntitySystemTask.h:1936
Definition MovieSceneEntitySystemTask.h:1871
Definition MovieSceneEntitySystemTask.h:58
TEntityTaskComponents< T..., FErasedReadAccess > ReadErased(FComponentTypeID ComponentType) const
Definition MovieSceneEntitySystemTask.h:727
TEntityTaskComponents< T..., TReadAccess< U >... > ReadAllOf(const TComponentTypeIDs< U... > &TypeIDs, TIntegerSequence< int, ExtraIndices... > &&In) const
Definition MovieSceneEntitySystemTask.h:705
void PopulateFilter(FEntityComponentFilter *OutFilter) const
Definition MovieSceneEntitySystemTask.h:840
auto GetAccessor() const
Definition MovieSceneEntitySystemTask.h:987
TEntityTaskComponents< T..., TReadAccess< U >... > ReadAllOf(TComponentTypeID< U >... ComponentTypes) const
Definition MovieSceneEntitySystemTask.h:689
TEntityTaskComponentsImpl(const FCommonEntityTaskParams &InCommonParams, ConstructionTypes &&... InTypes)
Definition MovieSceneEntitySystemTask.h:1013
bool HasBeenWrittenToSince(uint32 InSystemVersion)
Definition MovieSceneEntitySystemTask.h:803
bool HasAnyWork(const FEntityManager *EntityManager) const
Definition MovieSceneEntitySystemTask.h:829
TEntityTaskComponents< T..., FFilterMatchPassthrough > PassthroughFilter(const FEntityComponentFilter &InFilter) const
Definition MovieSceneEntitySystemTask.h:798
TEntityTaskComponents< T..., TOptionalWriteAccess< U > > WriteOptional(TComponentTypeID< U > ComponentType, FComponentTypeIDFilter InConditionType=FComponentTypeIDFilter()) const
Definition MovieSceneEntitySystemTask.h:793
void Iterate_PerEntityImpl(FEntityManager *EntityManager, const FEntityComponentFilter &Filter, Callback &&InCallback) const
Definition MovieSceneEntitySystemTask.h:915
bool IsValid() const
Definition MovieSceneEntitySystemTask.h:816
TEntityTaskComponents< T..., TWriteAccess< U >... > WriteAllOf(TComponentTypeID< U >... ComponentTypes) const
Definition MovieSceneEntitySystemTask.h:771
TEntityTaskComponents< T..., FEntityIDAccess > ReadEntityIDs() const
Definition MovieSceneEntitySystemTask.h:643
TEntityTaskComponents< T..., FErasedOptionalReadAccess > ReadErasedOptional(FComponentTypeID ComponentType, FComponentTypeIDFilter InConditionType=FComponentTypeIDFilter()) const
Definition MovieSceneEntitySystemTask.h:738
void Iterate_PerAllocation(FEntityManager *EntityManager, Callback &&InCallback) const
Definition MovieSceneEntitySystemTask.h:886
TEntityTaskComponentsImpl()
Definition MovieSceneEntitySystemTask.h:1009
TTuple< T... > Accessors
Definition MovieSceneEntitySystemTask.h:1022
TEntityTaskComponents< T..., TReadAccess< U >... > ReadAllOf(const TComponentTypeIDs< U... > &TypeIDs) const
Definition MovieSceneEntitySystemTask.h:700
FString ToString(FEntityManager *EntityManager) const
Definition MovieSceneEntitySystemTask.h:993
void PreLockComponentHeaders(FEntityAllocationIteratorItem Item, TArray< FPreLockedDataPtr > &OutComponentHeaders) const
Definition MovieSceneEntitySystemTask.h:865
TEntityTaskComponents< T..., TOptionalReadAccess< U >... > ReadAnyOf(TComponentTypeID< U >... ComponentTypes) const
Definition MovieSceneEntitySystemTask.h:716
TEntityTaskComponents< T..., TOptionalReadAccess< U > > ReadOptional(TComponentTypeID< U > ComponentType, FComponentTypeIDFilter InConditionType=FComponentTypeIDFilter()) const
Definition MovieSceneEntitySystemTask.h:748
TEntityTaskComponents< T..., FErasedWriteAccess > WriteErased(FComponentTypeID ComponentType) const
Definition MovieSceneEntitySystemTask.h:782
FCommonEntityTaskParams CommonParams
Definition MovieSceneEntitySystemTask.h:1026
TEntityTaskComponents< T..., TWriteAccess< U > > Write(TComponentTypeID< U > ComponentType) const
Definition MovieSceneEntitySystemTask.h:760
void Iterate_PerAllocationImpl(FEntityManager *EntityManager, const FEntityComponentFilter &Filter, Callback &&InCallback) const
Definition MovieSceneEntitySystemTask.h:954
friend struct TEntityTaskComponentsImpl
Definition MovieSceneEntitySystemTask.h:1020
TEntityTaskComponents< T..., TReadOneOrMoreOfAccessor< U... > > ReadOneOrMoreOf(TComponentTypeID< U >... ComponentTypes) const
Definition MovieSceneEntitySystemTask.h:678
TEntityTaskComponents< T..., TReadAccess< U > > Read(TComponentTypeID< U > ComponentType) const
Definition MovieSceneEntitySystemTask.h:655
void Iterate_PerEntity(FEntityManager *EntityManager, Callback &&InCallback) const
Definition MovieSceneEntitySystemTask.h:900
void PopulateReadWriteDependencies(FComponentMask &OutReadDependencies, FComponentMask &OutWriteDependencies) const
Definition MovieSceneEntitySystemTask.h:873
void PopulatePrerequisites(const FSystemTaskPrerequisites &InPrerequisites, FGraphEventArray *OutGatheredPrereqs) const
Definition MovieSceneEntitySystemTask.h:847
TEntityTaskComponents< T..., TReadOneOfAccessor< U... > > ReadOneOf(TComponentTypeID< U >... ComponentTypes) const
Definition MovieSceneEntitySystemTask.h:667
void PopulateSubsequents(const FGraphEventRef &InEvent, FSystemSubsequentTasks &OutSubsequents) const
Definition MovieSceneEntitySystemTask.h:857
Definition MovieSceneEntitySystemTask.h:40
Definition MovieSceneEntitySystemTask.h:181
TFilteredEntityTask< T... > FilterAny(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTask.h:238
void RunInline_PerEntity(FEntityManager *EntityManager, TaskImpl &Task) const
Definition MovieSceneEntitySystemTask.h:568
TFilteredEntityTask< T... > FilterNone(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTask.h:218
TFilteredEntityTask< T... > FilterOut(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:248
TFilteredEntityTask< T... > FilterOut(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTask.h:258
TEntityTaskComponents< T... > & SetParams(const FTaskParams &InOtherParams)
Definition MovieSceneEntitySystemTask.h:295
FTaskID Schedule_PerEntity(FEntityManager *EntityManager, IEntitySystemScheduler *InScheduler, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:532
FGraphEventRef Dispatch(FEntityManager *EntityManager, const FSystemTaskPrerequisites &Prerequisites, FSystemSubsequentTasks *Subsequents, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:312
FTaskID Fork_PerAllocation(FEntityManager *EntityManager, IEntitySystemScheduler *InScheduler, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:514
FGraphEventRef Dispatch_PerAllocation(FEntityManager *EntityManager, const FSystemTaskPrerequisites &Prerequisites, FSystemSubsequentTasks *Subsequents, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:371
TFilteredEntityTask< T... > FilterNone(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:208
TEntityTaskComponents< T... > & SetDesiredThread(ENamedThreads::Type InDesiredThread)
Definition MovieSceneEntitySystemTask.h:276
FTaskID Schedule_PerAllocation(FEntityManager *EntityManager, IEntitySystemScheduler *InScheduler, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:550
void RunInline_PerAllocation(FEntityManager *EntityManager, TaskImpl &Task) const
Definition MovieSceneEntitySystemTask.h:417
TFilteredEntityTask< T... > FilterAny(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:228
FTaskID Fork_PerEntity(FEntityManager *EntityManager, IEntitySystemScheduler *InScheduler, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:496
TFilteredEntityTask< T... > FilterAll(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:188
TEntityTaskComponents< T... > & SetStat(TStatId InStatId)
Definition MovieSceneEntitySystemTask.h:286
TFilteredEntityTask< T... > CombineFilter(const FEntityComponentFilter &InFilter)
Definition MovieSceneEntitySystemTask.h:268
FGraphEventRef Dispatch_PerEntity(FEntityManager *EntityManager, const FSystemTaskPrerequisites &Prerequisites, FSystemSubsequentTasks *Subsequents, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:451
TFilteredEntityTask< T... > FilterAll(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTask.h:198
TEntityTaskComponents()
Definition MovieSceneEntitySystemTask.h:578
TEntityTaskComponents(const FCommonEntityTaskParams &InCommonParams, ConstructionTypes &&... InTypes)
Definition MovieSceneEntitySystemTask.h:584
Definition MovieSceneEntitySystemTask.h:111
Definition MovieSceneEntitySystemTask.h:1628
TEntityTask(FEntityManager *InEntityManager, const TFilteredEntityTask< ComponentTypes... > &InFilteredTask, ArgTypes &&... InArgs)
Definition MovieSceneEntitySystemTask.h:1636
TEntityTask(FEntityManager *InEntityManager, const TEntityTaskComponents< ComponentTypes... > &InComponents, ArgTypes &&... InArgs)
Definition MovieSceneEntitySystemTask.h:1630
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &CompletionGraphEvent)
Definition MovieSceneEntitySystemTask.h:1646
static ESubsequentsMode::Type GetSubsequentsMode()
Definition MovieSceneEntitySystemTask.h:1641
Definition MovieSceneEntitySystemTask.h:1052
TFilteredEntityTask< T... > & AddDynamicWriteDependency(TArrayView< ComponentType > InWriteDependencies)
Definition MovieSceneEntitySystemTask.h:1241
TFilteredEntityTask< T... > & AddDynamicWriteDependency(const FComponentMask &InDynamicWriteDependency)
Definition MovieSceneEntitySystemTask.h:1249
FTaskID Fork_PerAllocation(FEntityManager *EntityManager, IEntitySystemScheduler *InScheduler, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:1421
TFilteredEntityTask< T... > & SetStat(TStatId InStatId)
Definition MovieSceneEntitySystemTask.h:1160
void Iterate_PerAllocation(FEntityManager *EntityManager, Callback &&InCallback) const
Definition MovieSceneEntitySystemTask.h:1502
TFilteredEntityTask< T... > & FilterNone(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTask.h:1096
ENamedThreads::Type GetDesiredThread() const
Definition MovieSceneEntitySystemTask.h:1178
void RunInline_PerEntity(FEntityManager *EntityManager, TaskImpl Task) const
Definition MovieSceneEntitySystemTask.h:1475
void Iterate_PerEntity(FEntityManager *EntityManager, Callback &&InCallback) const
Definition MovieSceneEntitySystemTask.h:1490
FTaskID Schedule_PerEntity(FEntityManager *EntityManager, IEntitySystemScheduler *InScheduler, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:1439
TFilteredEntityTask< T... > & AddDynamicReadDependency(TArrayView< ComponentType > InReadDependencies)
Definition MovieSceneEntitySystemTask.h:1221
TFilteredEntityTask(const TEntityTaskComponents< T... > &InComponents, const FEntityComponentFilter &InFilter)
Definition MovieSceneEntitySystemTask.h:1058
const TEntityTaskComponents< T... > & GetComponents() const
Definition MovieSceneEntitySystemTask.h:1210
TFilteredEntityTask< T... > & SetParams(const FTaskParams &InOtherParams)
Definition MovieSceneEntitySystemTask.h:1169
bool ShouldBreakOnRun() const
Definition MovieSceneEntitySystemTask.h:1194
TFilteredEntityTask< T... > & AddDynamicWriteDependency(std::initializer_list< FComponentTypeID > InWriteDependencies)
Definition MovieSceneEntitySystemTask.h:1235
TFilteredEntityTask< T... > & FilterOut(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTask.h:1132
TFilteredEntityTask< T... > & FilterAll(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTask.h:1078
TFilteredEntityTask(const TEntityTaskComponents< T... > &InComponents)
Definition MovieSceneEntitySystemTask.h:1053
TFilteredEntityTask< T... > & AddDynamicReadDependency(const FComponentMask &InDynamicReadDependency)
Definition MovieSceneEntitySystemTask.h:1229
TFilteredEntityTask< T... > & CombineFilter(const FEntityComponentFilter &InFilter)
Definition MovieSceneEntitySystemTask.h:1141
FTaskID Fork_PerEntity(FEntityManager *EntityManager, IEntitySystemScheduler *InScheduler, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:1403
void RunInline_PerAllocation(FEntityManager *EntityManager, TaskImpl &Task) const
Definition MovieSceneEntitySystemTask.h:1325
TFilteredEntityTask< T... > & SetDesiredThread(ENamedThreads::Type InDesiredThread)
Definition MovieSceneEntitySystemTask.h:1150
TFilteredEntityTask< T... > & AddDynamicReadDependency(std::initializer_list< FComponentTypeID > InReadDependencies)
Definition MovieSceneEntitySystemTask.h:1215
TFilteredEntityTask< T... > & FilterOut(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:1123
FGraphEventRef Dispatch_PerAllocation(FEntityManager *EntityManager, const FSystemTaskPrerequisites &Prerequisites, FSystemSubsequentTasks *Subsequents, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:1281
TStatId GetStatId() const
Definition MovieSceneEntitySystemTask.h:1186
FTaskID Schedule_PerAllocation(FEntityManager *EntityManager, IEntitySystemScheduler *InScheduler, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:1457
TFilteredEntityTask< T... > & FilterNone(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:1087
const FEntityComponentFilter & GetFilter() const
Definition MovieSceneEntitySystemTask.h:1202
TFilteredEntityTask< T... > & FilterAny(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:1105
FGraphEventRef Dispatch_PerEntity(FEntityManager *EntityManager, const FSystemTaskPrerequisites &Prerequisites, FSystemSubsequentTasks *Subsequents, TaskConstructionArgs &&... InArgs) const
Definition MovieSceneEntitySystemTask.h:1359
TFilteredEntityTask< T... > & FilterAny(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTask.h:1114
TFilteredEntityTask< T... > & FilterAll(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:1069
Definition MovieSceneComponentAccessors.h:282
Definition MovieSceneComponentAccessors.h:306
Definition MovieSceneEntitySystemTask.h:1876
constexpr void Assign(int &Index, int &DataIndex, int DataSize)
Definition MovieSceneEntitySystemTask.h:1886
constexpr TPrelockedDataOffsets()
Definition MovieSceneEntitySystemTask.h:1881
int32 StartOffset[sizeof...(AccessorTypes)]
Definition MovieSceneEntitySystemTask.h:1879
static constexpr int32 Num
Definition MovieSceneEntitySystemTask.h:1877
Definition MovieSceneComponentAccessors.h:142
Definition MovieSceneComponentAccessors.h:348
Definition MovieSceneComponentAccessors.h:384
Definition MovieSceneEntitySystemTask.h:1668
void PostTask() const
Definition MovieSceneEntitySystemTask.h:1680
TScheduledEntityTask(const TEntityTaskComponents< ComponentTypes... > &InComponents, ArgTypes &&... InArgs)
Definition MovieSceneEntitySystemTask.h:1670
void PreTask() const
Definition MovieSceneEntitySystemTask.h:1675
static void ScheduledRun_PerEntity(FEntityAllocationIteratorItem Item, TArrayView< const FPreLockedDataPtr > PreLockedData, const ITaskContext *Context, FEntityAllocationWriteContext WriteContext)
Definition MovieSceneEntitySystemTask.h:1686
static void ScheduledRun_PerAllocation(FEntityAllocationIteratorItem Item, TArrayView< const FPreLockedDataPtr > PreLockedData, const ITaskContext *Context, FEntityAllocationWriteContext WriteContext)
Definition MovieSceneEntitySystemTask.h:1691
Definition MovieSceneEntitySystemTask.h:1825
TUnstructuredTask(const FCommonEntityTaskParams &InCommonParams, ArgTypes &&... InArgs)
Definition MovieSceneEntitySystemTask.h:1827
ENamedThreads::Type GetDesiredThread() const
Definition MovieSceneEntitySystemTask.h:1837
static ESubsequentsMode::Type GetSubsequentsMode()
Definition MovieSceneEntitySystemTask.h:1842
TStatId GetStatId() const
Definition MovieSceneEntitySystemTask.h:1832
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &CompletionGraphEvent)
Definition MovieSceneEntitySystemTask.h:1847
Definition MovieSceneComponentAccessors.h:258