Skip to main content

AssetLoader

Struct AssetLoader 

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

An asynchronous asset loader that fetches resources over HTTP and populates a shared AssetCache.

Implementations§

Source§

impl AssetLoader

Implements asynchronous asset loading for AssetLoader.

Source

pub fn load_image(&mut self, url: String)

Begins loading an image asset from the given URL.

Creates an HtmlImageElement, sets its src, and registers onload/onerror callbacks to update the shared cache state. The image loads asynchronously.

Both callbacks decrement the shared pending counter and mark their own closure slot settled. The closures themselves are released later by AssetLoader::collect, which is the only place a Closure may be dropped safely — see AssetClosures for why a load callback cannot free itself.

§Arguments
  • String - The URL of the image to load.
Source

pub fn pending_count(&self) -> u32

Returns the number of loads that have been requested but not settled.

§Returns
  • u32 - The in-flight load count.
Source

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

Advances the loader by one engine update step.

Implements Updatable so an AssetLoader can be registered with the scheduler’s TaskRegistry and driven on every fixed step. The only work is AssetLoader::collect, which is the safe point to release load callbacks that have already run.

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

pub fn collect(&mut self)

Releases the load callbacks that have already run.

A wasm_bindgen::Closure must not be dropped while JavaScript is executing it, so AssetLoader::load_image callbacks only mark their own slot settled. This method is the safe drop point: it must be called from a context that is not inside a load callback, such as the engine’s update step.

Slots that have not settled belong to loads still in flight and are kept alive, so only settled slots are released. The onload and onerror closures of the same asset settle independently — a successful load settles only its onload slot — so the paired slot is released once both halves have run.

Source

pub fn is_all_loaded(&self) -> bool

Returns whether all requested assets have finished loading.

§Returns
  • bool - True if no assets are pending.
Source

pub fn get_image<U>(&self, url: U) -> Option<HtmlImageElement>
where U: AsRef<str>,

Returns the loaded image for the given URL.

§Arguments
  • U: AsRef<str> - The asset URL.
§Returns
  • Option<HtmlImageElement> - The loaded image, or None.
Source

pub fn progress(&self) -> f64

Returns the progress ratio of loaded assets.

§Returns
  • f64 - The ratio in the range 0.0 to 1.0.
Source§

impl AssetLoader

Implements static asset creation utilities for AssetLoader.

Source

pub fn create_image_element<U>(url: U) -> Option<HtmlImageElement>
where U: AsRef<str>,

Creates an HtmlImageElement from the given URL without caching.

The image loads asynchronously. Returns immediately with the image element whose src is set but may not have finished loading yet.

§Arguments
  • U: AsRef<str> - The image URL.
§Returns
  • Option<HtmlImageElement> - The image element, or None if creation failed.
Source§

impl AssetLoader

Source

pub fn get_cache(&self) -> &Rc<EngineCell<AssetCache>>

Source

pub fn get_mut_cache(&mut self) -> &mut Rc<EngineCell<AssetCache>>

Source

pub fn set_cache(&mut self, val: Rc<EngineCell<AssetCache>>) -> &mut Self

Source

pub fn get_pending(&self) -> &AssetPending

Source

pub fn get_mut_pending(&mut self) -> &mut AssetPending

Source

pub fn set_pending(&mut self, val: AssetPending) -> &mut Self

Source

pub fn get_closures(&self) -> &AssetClosures

Source

pub fn get_mut_closures(&mut self) -> &mut AssetClosures

Source

pub fn set_closures(&mut self, val: AssetClosures) -> &mut Self

Source§

impl AssetLoader

Source

pub fn new() -> Self

Trait Implementations§

Source§

impl Clone for AssetLoader

Source§

fn clone(&self) -> Self

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 AssetLoader

Implements Default for AssetLoader as a new empty loader.

Source§

fn default() -> AssetLoader

Constructs a default AssetLoader value.

§Returns
  • AssetLoader - A default-constructed instance with the documented initial state.
Source§

impl Updatable for AssetLoader

Forwards AssetLoader::update through the Updatable trait so a loader can be registered with the scheduler’s TaskRegistry and collect its finished load callbacks on every fixed step. The inherent AssetLoader::update method is the canonical implementation; this impl exists purely for trait dispatch.

Source§

fn update(&mut self, delta_time: f64)

Advances the loader by delta_time seconds.

§Arguments
  • f64 - Seconds elapsed since the previous update.

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 = !

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

fn try_from(value: U) -> Result<T, !>

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