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§
Sourceconst HANDEDNESS: Handedness
const HANDEDNESS: Handedness
The handedness of the coordinate system of the renderer.
Required Methods§
Sourcefn sample_count(&self) -> SampleCount
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§
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
Sourcefn scale_factor(&self) -> f32
fn scale_factor(&self) -> f32
Determines the scale factor used
fn setup( &mut self, window: &Window, renderer: &Arc<Renderer>, routines: &Arc<DefaultRoutines>, surface_format: TextureFormat, )
Sourcefn 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),
)
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.