pub struct EngineHandle { /* private fields */ }Expand description
A handle to a running or initialized engine instance.
Holds the engine configuration, an optional Canvas 2D renderer, an
optional WebGPU renderer, and the optional scheduler handle once the
game loop has started. Use Engine::new_handle to construct one, then
call init_canvas or init_webgpu (matching the backend chosen in
RenderConfig) and finally start to begin the game loop.
Implementations§
Source§impl EngineHandle
Implements lifecycle management for EngineHandle.
impl EngineHandle
Implements lifecycle management for EngineHandle.
All getter methods (get_config, get_canvas_renderer, get_webgpu_renderer)
are generated by the Data derive on the struct definition; this impl
only contributes lifecycle and accessor behavior that is not expressible
as a plain getter.
Sourcepub fn init_canvas(&mut self) -> bool
pub fn init_canvas(&mut self) -> bool
Initializes the Canvas 2D rendering backend.
On success, populates canvas_renderer and clears webgpu_renderer.
On failure, both renderer fields remain None.
§Returns
bool-trueif the renderer was created successfully.
Sourcepub async fn init_webgpu(&mut self) -> Result<WebGpuRenderer, WebGpuInitError>
pub async fn init_webgpu(&mut self) -> Result<WebGpuRenderer, WebGpuInitError>
Initializes the WebGPU rendering backend.
On success, populates webgpu_renderer and clears canvas_renderer.
On failure, both renderer fields remain None and the typed error is
returned so the caller can decide how to surface it (typically via
Console::error).
§Returns
Result<WebGpuRenderer, WebGpuInitError>- The initialized renderer, or a typed error describing the specific failure.
Sourcepub fn init_webgl(&mut self) -> Result<WebGlRenderer, WebGlInitError>
pub fn init_webgl(&mut self) -> Result<WebGlRenderer, WebGlInitError>
Initializes the WebGL 2 rendering backend.
On success, populates webgl_renderer and clears the other renderer
fields. On failure, all renderer fields remain None and the typed
error is returned so the caller can decide how to surface it.
§Returns
Result<WebGlRenderer, WebGlInitError>- The initialized renderer, or a typed error describing the specific failure.
Sourcepub fn register_input(&mut self) -> Option<InputStateCell>
pub fn register_input(&mut self) -> Option<InputStateCell>
Attaches DOM input listeners and stores the shared input state.
Resolves the canvas element from the render configuration’s
canvas_selector and routes DOM events into a shared InputState:
keyboard events bind to window, mouse and touch events bind to the
canvas. This works for both the Canvas 2D and WebGPU backends because
either way the same <canvas> element receives the pointer events.
Returns None (and stores nothing) if the canvas selector does not
resolve at call time - for example when called before the canvas
element is mounted into the DOM.
The registered listeners stay alive for the lifetime of the document
(mount-only convention; there is no matching unregister_input).
§Returns
Option<InputStateCell>- The shared input state cell, orNoneif the canvas element was not found.
Sourcepub fn start(&mut self, handler: TickHandlerRc)
pub fn start(&mut self, handler: TickHandlerRc)
Starts the game loop with the given tick handler.
The scheduler configuration from EngineConfig controls the fixed
timestep and maximum frame time. The scheduler handle is stored
internally and can be stopped via stop.
§Arguments
TickHandlerRc- The tick handler receiving update and render callbacks.
Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
Returns whether the game loop is currently running.
§Returns
bool-trueif the scheduler is running.
Source§impl EngineHandle
impl EngineHandle
pub fn get_config(&self) -> &EngineConfig
pub fn get_mut_config(&mut self) -> &mut EngineConfig
pub fn set_config(&mut self, val: EngineConfig) -> &mut Self
pub fn get_canvas_renderer(&self) -> CanvasRenderer
pub fn try_get_canvas_renderer(&self) -> &Option<CanvasRenderer>
pub fn get_mut_canvas_renderer(&mut self) -> &mut Option<CanvasRenderer>
pub fn set_canvas_renderer(&mut self, val: Option<CanvasRenderer>) -> &mut Self
pub fn get_webgpu_renderer(&self) -> WebGpuRenderer
pub fn try_get_webgpu_renderer(&self) -> &Option<WebGpuRenderer>
pub fn get_mut_webgpu_renderer(&mut self) -> &mut Option<WebGpuRenderer>
pub fn set_webgpu_renderer(&mut self, val: Option<WebGpuRenderer>) -> &mut Self
pub fn get_webgl_renderer(&self) -> WebGlRenderer
pub fn try_get_webgl_renderer(&self) -> &Option<WebGlRenderer>
pub fn get_mut_webgl_renderer(&mut self) -> &mut Option<WebGlRenderer>
pub fn set_webgl_renderer(&mut self, val: Option<WebGlRenderer>) -> &mut Self
pub fn get_input_cell(&self) -> InputStateCell
pub fn try_get_input_cell(&self) -> &Option<InputStateCell>
pub fn get_mut_input_cell(&mut self) -> &mut Option<InputStateCell>
pub fn set_input_cell(&mut self, val: Option<InputStateCell>) -> &mut Self
pub fn get_scheduler_handle(&self) -> SchedulerHandle
pub fn try_get_scheduler_handle(&self) -> &Option<SchedulerHandle>
pub fn get_mut_scheduler_handle(&mut self) -> &mut Option<SchedulerHandle>
pub fn set_scheduler_handle( &mut self, val: Option<SchedulerHandle>, ) -> &mut Self
Source§impl EngineHandle
impl EngineHandle
pub fn new( config: EngineConfig, canvas_renderer: Option<CanvasRenderer>, webgpu_renderer: Option<WebGpuRenderer>, webgl_renderer: Option<WebGlRenderer>, scheduler_handle: Option<SchedulerHandle>, ) -> Self
Trait Implementations§
Source§impl Clone for EngineHandle
impl Clone for EngineHandle
Source§fn clone(&self) -> EngineHandle
fn clone(&self) -> EngineHandle
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more