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.
impl AssetLoader
Implements asynchronous asset loading for AssetLoader.
Sourcepub fn load_image(&mut self, url: String)
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.
Sourcepub fn pending_count(&self) -> u32
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.
Sourcepub fn update(&mut self, delta_time: f64)
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.
Sourcepub fn collect(&mut self)
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.
Sourcepub fn is_all_loaded(&self) -> bool
pub fn is_all_loaded(&self) -> bool
Returns whether all requested assets have finished loading.
§Returns
bool- True if no assets are pending.
Sourcepub fn get_image<U>(&self, url: U) -> Option<HtmlImageElement>
pub fn get_image<U>(&self, url: U) -> Option<HtmlImageElement>
Source§impl AssetLoader
Implements static asset creation utilities for AssetLoader.
impl AssetLoader
Implements static asset creation utilities for AssetLoader.
Sourcepub fn create_image_element<U>(url: U) -> Option<HtmlImageElement>
pub fn create_image_element<U>(url: U) -> Option<HtmlImageElement>
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, orNoneif creation failed.
Source§impl AssetLoader
impl AssetLoader
pub fn get_cache(&self) -> &Rc<EngineCell<AssetCache>>
pub fn get_mut_cache(&mut self) -> &mut Rc<EngineCell<AssetCache>>
pub fn set_cache(&mut self, val: Rc<EngineCell<AssetCache>>) -> &mut Self
pub fn get_pending(&self) -> &AssetPending
pub fn get_mut_pending(&mut self) -> &mut AssetPending
pub fn set_pending(&mut self, val: AssetPending) -> &mut Self
pub fn get_closures(&self) -> &AssetClosures
pub fn get_mut_closures(&mut self) -> &mut AssetClosures
pub fn set_closures(&mut self, val: AssetClosures) -> &mut Self
Source§impl AssetLoader
impl AssetLoader
Trait Implementations§
Source§impl Clone for AssetLoader
impl Clone for AssetLoader
Source§impl Default for AssetLoader
Implements Default for AssetLoader as a new empty loader.
impl Default for AssetLoader
Implements Default for AssetLoader as a new empty loader.
Source§fn default() -> AssetLoader
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.
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.