pub enum SystemStage {
Startup,
PreUpdate,
Update,
PostUpdate,
PreRender,
AssetSync,
AssetSyncDeps,
Render,
PostRender,
}Expand description
Determines when during a frame a system is executed.
Stages are iterated in the order defined here — Startup
runs once during App::build, all others run every App::update tick.
Asset sync stages (AssetSync,
AssetSyncDeps) run after PreRender
so that the GPU backend — which is delivered in PreRender via a one-shot
channel — is guaranteed to be present before asset upload is attempted.
Variants§
Startup
Runs once at startup, before the main loop begins.
PreUpdate
Runs before the main update.
Update
Main game-logic update.
PostUpdate
Runs after the main update.
PreRender
Prepare rendering data and poll for the GPU backend. The backend resource becomes available here on the tick it finishes initialising, making it visible to the asset sync stages below.
AssetSync
Upload CPU-side source assets to the GPU backend.
Runs after PreRender so the backend is
guaranteed to be present.
AssetSyncDeps
Construct lazy GPU resources and upload assets that depend on other processed assets. Runs in a convergence loop so dependency chains (e.g. LazyResource A → LazyResource B) resolve within a single tick.
Render
Issue draw calls.
PostRender
Cleanup or post-processing after rendering.
Implementations§
Source§impl SystemStage
impl SystemStage
Sourcepub fn is_convergent(self) -> bool
pub fn is_convergent(self) -> bool
Returns true for stages that are re-run until no new resources are
inserted — collapsing multi-tick dependency chains into one tick.
Trait Implementations§
Source§impl Clone for SystemStage
impl Clone for SystemStage
Source§fn clone(&self) -> SystemStage
fn clone(&self) -> SystemStage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more