pub trait PipelineRunner {
    type QueryItems<'r>: Query;
    type QueryState<'r>;

    // Required methods
    fn query_state(scene: &Scene) -> Self::QueryState<'_>;
    fn prepare<'a>(
        &mut self,
        gpu: &Gpu,
        per_frame_uniforms: &PerFrameUniforms,
        scene: &'a Scene,
    ) -> Self::QueryState<'a>;
    fn run<'r>(
        &'r mut self,
        render_pass: &mut RenderPass<'r>,
        per_frame_uniforms: &'r PerFrameUniforms,
        _render_params: &RenderConfig,
        query_state: &'r mut Self::QueryState<'_>,
        _scene: &Scene,
    );
    fn begin_pass(&mut self);
    fn update_locals(&mut self, gpu: &Gpu, scene: &Scene);

    // Provided methods
    fn input_layout_desc() -> BindGroupLayoutDesc { ... }
    fn update_input_bind_group(
        &mut self,
        _gpu: &Gpu,
        _scene: &Scene,
        _per_frame_uniforms: &PerFrameUniforms,
    ) { ... }
    fn update_locals_inner<Locals: LocalEntData + ShaderType + WriteInto, Q: Query>(
        gpu: &Gpu,
        scene: &Scene,
        locals_uniform: &mut Buffer,
        locals_bind_groups: &mut impl BindGroupCollection,
        query_state: &mut QueryBorrow<'_, Q>,
    ) { ... }
}

Required Associated Types§

Required Methods§

Source

fn query_state(scene: &Scene) -> Self::QueryState<'_>

Source

fn prepare<'a>( &mut self, gpu: &Gpu, per_frame_uniforms: &PerFrameUniforms, scene: &'a Scene, ) -> Self::QueryState<'a>

Source

fn run<'r>( &'r mut self, render_pass: &mut RenderPass<'r>, per_frame_uniforms: &'r PerFrameUniforms, _render_params: &RenderConfig, query_state: &'r mut Self::QueryState<'_>, _scene: &Scene, )

Source

fn begin_pass(&mut self)

Source

fn update_locals(&mut self, gpu: &Gpu, scene: &Scene)

Provided Methods§

Source

fn input_layout_desc() -> BindGroupLayoutDesc

Source

fn update_input_bind_group( &mut self, _gpu: &Gpu, _scene: &Scene, _per_frame_uniforms: &PerFrameUniforms, )

Source

fn update_locals_inner<Locals: LocalEntData + ShaderType + WriteInto, Q: Query>( gpu: &Gpu, scene: &Scene, locals_uniform: &mut Buffer, locals_bind_groups: &mut impl BindGroupCollection, query_state: &mut QueryBorrow<'_, Q>, )

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§