Class: SystemScheduler
Owns every registered ISystem, bucketed by phase, run in registration order — except where systems declare an order (GetOrder; sorted in SystemOrder.ts, lazily before the phase next runs).
parallel: false (default) — system runs serially. Any Promise it returns is awaited before the next system in the phase runs.
parallel: true — the hook is invoked without awaiting and its Promise joins a batch. The batch is drained at the next non-parallel system or at the phase boundary. Useful for async I/O work (asset loads, fetches); pure-CPU work doesn't benefit since JS is single-threaded.
Also handles scene transitions (OnStart / OnStop fire when the active scene changes) and propagates backend swaps via OnRendererChanged to every registered system.
Constructors
Constructor
ts
new SystemScheduler(engine): SystemScheduler;Parameters
| Parameter | Type |
|---|---|
engine | IEngine |
Returns
SystemScheduler
Methods
GetSystems()
ts
GetSystems(phase?): readonly ISystem[];Parameters
| Parameter | Type |
|---|---|
phase? | SystemPhase |
Returns
readonly ISystem[]
IsSimulationEnabled()
ts
IsSimulationEnabled(): boolean;Returns
boolean
NotifyRendererChanged()
ts
NotifyRendererChanged(renderer): void;Parameters
| Parameter | Type |
|---|---|
renderer | IRenderer |
Returns
void
Register()
ts
Register(system): void;Parameters
| Parameter | Type |
|---|---|
system | ISystem |
Returns
void
RunRenderPhases()
ts
RunRenderPhases(scene, renderer): Promise<void>;Parameters
| Parameter | Type |
|---|---|
scene | Scene | null |
renderer | IRenderer |
Returns
Promise<void>
RunUpdatePhases()
ts
RunUpdatePhases(
scene,
renderer,
dt
): Promise<void>;Parameters
| Parameter | Type |
|---|---|
scene | Scene | null |
renderer | IRenderer |
dt | number |
Returns
Promise<void>
SetProfiler()
ts
SetProfiler(profiler): void;Parameters
| Parameter | Type |
|---|---|
profiler | PerfProfiler | null |
Returns
void
SetSimulationEnabled()
ts
SetSimulationEnabled(enabled): void;Parameters
| Parameter | Type |
|---|---|
enabled | boolean |
Returns
void
Shutdown()
ts
Shutdown(): void;Returns
void
Unregister()
ts
Unregister(system): void;Parameters
| Parameter | Type |
|---|---|
system | ISystem |
Returns
void