#include <MovieSceneTaskScheduler.h>
|
| | FEntitySystemScheduler (FEntityManager *InEntityManager) |
| |
| | ~FEntitySystemScheduler () |
| |
| void | BeginConstruction () |
| |
| void | BeginSystem (uint16 NodeID) |
| |
| bool | HasAnyTasksToPropagateDownstream () const |
| |
| void | PropagatePrerequisite (uint16 ToNodeID) |
| |
| void | EndSystem (uint16 NodeID) |
| |
| void | EndConstruction () |
| |
| template<typename TaskType , typename ... TaskArgTypes> |
| FTaskID | AddTask (const FTaskParams &InParams, TaskArgTypes &&... Args) |
| |
| FTaskID | AddNullTask () |
| |
| FTaskID | AddTask (const FTaskParams &InParams, TSharedPtr< ITaskContext > InTaskContext, TaskFunctionPtr InTaskFunction) |
| |
| FTaskID | CreateForkedAllocationTask (const FTaskParams &InParams, TSharedPtr< ITaskContext > InTaskContext, TaskFunctionPtr InTaskFunction, TFunctionRef< void(FEntityAllocationIteratorItem, TArray< FPreLockedDataPtr > &)> InPreLockFunc, const FEntityComponentFilter &Filter, const FComponentMask &ReadDeps, const FComponentMask &WriteDeps) |
| |
| void | AddPrerequisite (FTaskID Prerequisite, FTaskID Subsequent) |
| |
| void | AddChildBack (FTaskID Parent, FTaskID Child) |
| |
| void | AddChildFront (FTaskID Parent, FTaskID Child) |
| |
| void | ShuffleTasks () |
| |
| const FEntityManager * | GetEntityManager () const |
| |
| FEntityAllocationWriteContext | GetWriteContextOffset () const |
| |
| void | ExecuteTasks () |
| |
| void | CompleteTask (const FScheduledTask *Task, FTaskExecutionFlags InFlags) const |
| |
| void | PrerequisiteCompleted (FTaskID TaskID, int32 *OptRunInlineIndex) const |
| |
| void | PrerequisiteCompleted (const FScheduledTask *Task, int32 *OptRunInlineIndex) const |
| |
| void | OnAllTasksFinished () const |
| |
| FString | ToString () const |
| |
| template<typename TaskType , typename ... TaskArgTypes> |
| FTaskID | AddTask (const FTaskParams &InParams, TaskArgTypes &&... Args) |
| |
| template<typename TaskType > |
| FTaskID | AddMemberFunctionTask (const FTaskParams &InParams, TaskType *Instance, typename TMemberFunctionTaskWrapper< TaskType >::MemberFunctionPtr FunctionPtr) |
| |
| MOVIESCENE_API FTaskID | AddNullTask () |
| |
| MOVIESCENE_API FTaskID | AddTask (const FTaskParams &InParams, TSharedPtr< ITaskContext > InTaskContext, TaskFunctionPtr InTaskFunction) |
| |
| MOVIESCENE_API FTaskID | CreateForkedAllocationTask (const FTaskParams &InParams, TSharedPtr< ITaskContext > InTaskContext, TaskFunctionPtr InTaskFunction, TFunctionRef< void(FEntityAllocationIteratorItem, TArray< FPreLockedDataPtr > &)> InPreLockFunc, const FEntityComponentFilter &Filter, const FComponentMask &ReadDeps, const FComponentMask &WriteDeps) |
| |
| MOVIESCENE_API void | AddPrerequisite (FTaskID Prerequisite, FTaskID Subsequent) |
| |
| MOVIESCENE_API void | AddChildBack (FTaskID Parent, FTaskID Child) |
| |
| MOVIESCENE_API void | AddChildFront (FTaskID Parent, FTaskID Child) |
| |
◆ FEntitySystemScheduler()
| UE::MovieScene::FEntitySystemScheduler::FEntitySystemScheduler |
( |
FEntityManager * |
InEntityManager | ) |
|
|
explicit |
Construction from an entity manager pointer that must outlive the instance of this class
◆ ~FEntitySystemScheduler()
| UE::MovieScene::FEntitySystemScheduler::~FEntitySystemScheduler |
( |
| ) |
|
◆ AddChildBack()
| void UE::MovieScene::FEntitySystemScheduler::AddChildBack |
( |
FTaskID |
Parent, |
|
|
FTaskID |
Child |
|
) |
| |
Add a child to the front of a previously created 'forked' task. Used for defining 'PreTask' work
◆ AddChildFront()
| void UE::MovieScene::FEntitySystemScheduler::AddChildFront |
( |
FTaskID |
Parent, |
|
|
FTaskID |
Child |
|
) |
| |
Add a child to the back of a previously created 'forked' task. Used for defining 'PostTask' work
◆ AddNullTask()
| FTaskID UE::MovieScene::FEntitySystemScheduler::AddNullTask |
( |
| ) |
|
Add a 'null' task that can be used to join many tasks into a single dependency
◆ AddPrerequisite()
| void UE::MovieScene::FEntitySystemScheduler::AddPrerequisite |
( |
FTaskID |
Prerequisite, |
|
|
FTaskID |
Subsequent |
|
) |
| |
Define a prerequisite for the given task
◆ AddTask() [1/2]
Add a new task of the specified type for the currently open node ID
Example usage: TaskScheduler->AddTask<FMyTaskType>(FTaskParams(GET_STAT_ID(StatId))); TaskScheduler->AddTask<FMyTaskType2>(FTaskParams(GET_STAT_ID(StatId)), ConstructorArg1, ConstructorArg2);
◆ AddTask() [2/2]
Add an anonymous unbound task for doing non-ecs work
◆ BeginConstruction()
| void UE::MovieScene::FEntitySystemScheduler::BeginConstruction |
( |
| ) |
|
Reset this task scheduler to its default state ready to start rebuilding its task graph
◆ BeginSystem()
| void UE::MovieScene::FEntitySystemScheduler::BeginSystem |
( |
uint16 |
NodeID | ) |
|
Begin construction of tasks for a system with the specified unique Node ID. Only one system at a time is supported. Must call EndSystem with the same ID before the next system can begin.
◆ CompleteTask()
Called when a task has been completed
◆ CreateForkedAllocationTask()
Create one task for each of the entity allocations that match the specified filter
◆ EndConstruction()
| void UE::MovieScene::FEntitySystemScheduler::EndConstruction |
( |
| ) |
|
Complete construction of the task graph and clean up transient data
◆ EndSystem()
| void UE::MovieScene::FEntitySystemScheduler::EndSystem |
( |
uint16 |
NodeID | ) |
|
Begin construction of tasks for a system with the specified unique Node ID
◆ ExecuteTasks()
| void UE::MovieScene::FEntitySystemScheduler::ExecuteTasks |
( |
| ) |
|
Execute all tasks as soon as possible, waiting for the result
◆ GetEntityManager()
| const FEntityManager * UE::MovieScene::FEntitySystemScheduler::GetEntityManager |
( |
| ) |
const |
|
inline |
◆ GetWriteContextOffset()
◆ HasAnyTasksToPropagateDownstream()
| bool UE::MovieScene::FEntitySystemScheduler::HasAnyTasksToPropagateDownstream |
( |
| ) |
const |
Check whether the currently open node has produced any tasks that need to be propagated to downstream system dependencies
◆ IsCustomSchedulingEnabled()
| bool UE::MovieScene::FEntitySystemScheduler::IsCustomSchedulingEnabled |
( |
| ) |
|
|
static |
Check whether custom task scheduling is enabled based on the state of the Sequencer.CustomTaskScheduling console variable
◆ OnAllTasksFinished()
| void UE::MovieScene::FEntitySystemScheduler::OnAllTasksFinished |
( |
| ) |
const |
Called when all tasks have been completed
◆ PrerequisiteCompleted() [1/2]
| void UE::MovieScene::FEntitySystemScheduler::PrerequisiteCompleted |
( |
const FScheduledTask * |
Task, |
|
|
int32 * |
OptRunInlineIndex |
|
) |
| const |
◆ PrerequisiteCompleted() [2/2]
| void UE::MovieScene::FEntitySystemScheduler::PrerequisiteCompleted |
( |
FTaskID |
TaskID, |
|
|
int32 * |
OptRunInlineIndex |
|
) |
| const |
Called when a task that was defined as a prerequisite for TaskID has been completed. If this was the last remaining prerequisite, the task will be scheduled
- Parameters
-
| TaskID | The subsequent task that may be ready to be scheduled |
| OptRunInlineIndex | (Optional) When non-null, can be assigned a new task to run inline after this function call to avoid scheduling overhead |
◆ PropagatePrerequisite()
| void UE::MovieScene::FEntitySystemScheduler::PropagatePrerequisite |
( |
uint16 |
ToNodeID | ) |
|
Propagate the outputs of this system to the specified downstream node as prerequisites for (optional) consumption when it is built. Normally systems do not depend on the outputs of other systems other than strict read/write ordering on components, unless there is a strict system dependency
◆ ShuffleTasks()
| void UE::MovieScene::FEntitySystemScheduler::ShuffleTasks |
( |
| ) |
|
(Debug only) Shuffle the task buffer to test determinism regardless of construction order
◆ ToString()
| FString UE::MovieScene::FEntitySystemScheduler::ToString |
( |
| ) |
const |
The documentation for this class was generated from the following files: