Skip to main content

SceneManager

Struct SceneManager 

Source
pub struct SceneManager { /* private fields */ }
Expand description

Manages scene registration, transitions, and lifecycle.

Implementations§

Source§

impl SceneManager

Implements static scene creation for SceneManager.

Source

pub fn create_scene<T>(scene: T) -> SceneRc
where T: Scene + 'static,

Creates a new SceneRc wrapping the given scene in a reference-counted cell.

§Arguments
  • T - The concrete scene type implementing Scene.
§Returns
  • SceneRc - The wrapped scene.
Source§

impl SceneManager

Implements scene registration and lifecycle management for SceneManager.

Source

pub fn register(&mut self, name: String, scene: SceneRc)

Registers a scene under the given name.

§Arguments
  • String - The name to register the scene under.
  • SceneRc - The scene to register.
Source

pub fn unregister<N>(&mut self, name: N)
where N: AsRef<str>,

Unregisters and removes the scene with the given name.

§Arguments
  • N: AsRef<str> - The name of the scene to remove.
Source

pub fn switch_to<N>(&mut self, name: N) -> bool
where N: AsRef<str>,

Transitions to the scene with the given name.

Calls on_exit on the current scene and on_enter on the new scene. Returns false if no scene with the given name is registered.

§Arguments
  • N: AsRef<str> - The name of the scene to switch to.
§Returns
  • bool - True if the transition was successful.
Source

pub fn request_transition(&mut self, name: String)

Requests a deferred scene transition to be applied on the next update.

§Arguments
  • String - The name of the scene to switch to.
Source

pub fn process_pending_transition(&mut self)

Processes a pending scene transition if one was requested.

Source

pub fn update(&mut self, delta_time: f64)

Calls on_update on the current scene.

§Arguments
  • f64 - The delta time in seconds.
Source

pub fn render(&mut self, context: &CanvasRenderingContext2d)

Calls on_render on the current scene, recording into the shared draw list.

The manager’s reusable DrawList is cleared, filled by the scene, and left populated for the caller to replay (e.g. via CanvasRenderer::replay). Reusing the list avoids per-frame allocation.

§Arguments
  • &CanvasRenderingContext2d - The canvas rendering context used to replay the recorded commands.
Source

pub fn has_scene<N>(&self, name: N) -> bool
where N: AsRef<str>,

Returns whether a scene with the given name is registered.

§Arguments
  • N: AsRef<str> - The scene name to check.
§Returns
  • bool - True if the scene is registered.
Source

pub fn current_name(&self) -> Option<&str>

Returns the name of the currently active scene.

§Returns
  • Option<&str> - The current scene name, or None.
Source§

impl SceneManager

Source

pub fn new() -> Self

Trait Implementations§

Source§

impl Clone for SceneManager

Source§

fn clone(&self) -> SceneManager

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for SceneManager

Implements Default for SceneManager as a new empty manager.

Source§

fn default() -> SceneManager

Returns the “default value” for a type. Read more
Source§

impl Updatable for SceneManager

Forwards SceneManager::update through the Updatable trait so that scene managers can be driven alongside entities, animators, and physics worlds in a single homogeneous update loop.

The inherent SceneManager::update method is the canonical implementation; this impl exists purely for trait dispatch. The inherent call resolves first when both are in scope, so there is no recursion.

Source§

fn update(&mut self, delta_time: f64)

Advance the object’s internal state by the given delta time. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more