Trait App

Source
pub trait App<T: 'static = ()> {
    const HANDEDNESS: Handedness;

    // Required method
    fn sample_count(&self) -> SampleCount;

    // Provided methods
    fn register_logger(&mut self) { ... }
    fn register_panic_hook(&mut self) { ... }
    fn create_window(
        &mut self,
        builder: WindowBuilder,
    ) -> (EventLoop<UserResizeEvent<T>>, Window) { ... }
    fn create_iad<'a>(
        &'a mut self,
    ) -> Pin<Box<dyn Future<Output = Result<InstanceAdapterDevice>> + 'a>> { ... }
    fn create_base_rendergraph(
        &mut self,
        renderer: &Renderer,
    ) -> BaseRenderGraph { ... }
    fn scale_factor(&self) -> f32 { ... }
    fn setup(
        &mut self,
        window: &Window,
        renderer: &Arc<Renderer>,
        routines: &Arc<DefaultRoutines>,
        surface_format: TextureFormat,
    ) { ... }
    fn handle_event(
        &mut self,
        window: &Window,
        renderer: &Arc<Renderer>,
        routines: &Arc<DefaultRoutines>,
        base_rendergraph: &BaseRenderGraph,
        surface: Option<&Arc<Surface>>,
        resolution: UVec2,
        event: Event<'_, T>,
        control_flow: impl FnOnce(ControlFlow),
    ) { ... }
}

Required Associated Constants§

Source

const HANDEDNESS: Handedness

The handedness of the coordinate system of the renderer.

Required Methods§

Source

fn sample_count(&self) -> SampleCount

Determines the sample count used, this may change dynamically. This function is what the framework actually calls, so overriding this will always use the right values.

It is called on main events cleared and things are remade if this changes.

Provided Methods§

Source

fn register_logger(&mut self)

Source

fn register_panic_hook(&mut self)

Source

fn create_window( &mut self, builder: WindowBuilder, ) -> (EventLoop<UserResizeEvent<T>>, Window)

Source

fn create_iad<'a>( &'a mut self, ) -> Pin<Box<dyn Future<Output = Result<InstanceAdapterDevice>> + 'a>>

Source

fn create_base_rendergraph(&mut self, renderer: &Renderer) -> BaseRenderGraph

Source

fn scale_factor(&self) -> f32

Determines the scale factor used

Source

fn setup( &mut self, window: &Window, renderer: &Arc<Renderer>, routines: &Arc<DefaultRoutines>, surface_format: TextureFormat, )

Source

fn handle_event( &mut self, window: &Window, renderer: &Arc<Renderer>, routines: &Arc<DefaultRoutines>, base_rendergraph: &BaseRenderGraph, surface: Option<&Arc<Surface>>, resolution: UVec2, event: Event<'_, T>, control_flow: impl FnOnce(ControlFlow), )

RedrawRequested/RedrawEventsCleared will only be fired if the window size is non-zero. As such you should always render in RedrawRequested and use MainEventsCleared for things that need to keep running when minimized.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§