Trait PeterEngineApp

Source
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§

Source

const WINDOW_TITLE: &'static str

Required Associated Types§

Source

type RenderResources: Send + Sync + 'static

Required Methods§

Source

fn get_shader_source() -> String

Source

fn init( &mut self, cc: &CreationContext<'_>, render_data: &mut RenderData, ) -> Self::RenderResources

Source

fn update(&mut self, egui_ctx: &Context, frame: &mut Frame, dt: f32)

Source

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>

Source

fn paint<'rp>( &mut self, render_data: &'rp RenderData, resources: &'rp Self::RenderResources, info: PaintCallbackInfo, render_pass: &mut RenderPass<'rp>, )

Provided Methods§

Source

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.

Implementors§