pub trait PeterEngineApp: Send + 'static {
type RenderResources: Send + Sync + 'static;
const WINDOW_TITLE: &'static str;
// Required methods
fn get_shader_source() -> String;
fn init(
&mut self,
cc: &CreationContext<'_>,
render_data: &mut RenderData,
) -> Self::RenderResources;
fn update(&mut self, egui_ctx: &Context, frame: &mut Frame, dt: f32);
fn prepare(
&mut self,
render_data: &mut RenderData,
resources: &mut Self::RenderResources,
device: &Device,
queue: &Queue,
encoder: &mut CommandEncoder,
screen_size: (u32, u32),
) -> Vec<CommandBuffer>;
fn paint<'rp>(
&mut self,
render_data: &'rp RenderData,
resources: &'rp Self::RenderResources,
info: PaintCallbackInfo,
render_pass: &mut RenderPass<'rp>,
);
// Provided method
fn central_panel_input(
&mut self,
_egui_ctx: &Context,
_response: Response,
_allocated_rect: &Rect,
) { ... }
}
Required Associated Constants§
const WINDOW_TITLE: &'static str
Required Associated Types§
type RenderResources: Send + Sync + 'static
Required Methods§
fn get_shader_source() -> String
fn init( &mut self, cc: &CreationContext<'_>, render_data: &mut RenderData, ) -> Self::RenderResources
fn update(&mut self, egui_ctx: &Context, frame: &mut Frame, dt: f32)
fn prepare( &mut self, render_data: &mut RenderData, resources: &mut Self::RenderResources, device: &Device, queue: &Queue, encoder: &mut CommandEncoder, screen_size: (u32, u32), ) -> Vec<CommandBuffer>
fn paint<'rp>( &mut self, render_data: &'rp RenderData, resources: &'rp Self::RenderResources, info: PaintCallbackInfo, render_pass: &mut RenderPass<'rp>, )
Provided Methods§
fn central_panel_input( &mut self, _egui_ctx: &Context, _response: Response, _allocated_rect: &Rect, )
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.