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§
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>, )
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.