Reuse a RenderPass as much as possible in iced_wgpu
This commit is contained in:
parent
b8c1809ea1
commit
730d6a0756
8 changed files with 197 additions and 171 deletions
|
|
@ -45,7 +45,6 @@ pub struct Pipeline {
|
|||
|
||||
layers: Vec<Layer>,
|
||||
prepare_layer: usize,
|
||||
render_layer: usize,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
|
@ -321,7 +320,6 @@ impl Pipeline {
|
|||
|
||||
layers: Vec::new(),
|
||||
prepare_layer: 0,
|
||||
render_layer: 0,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -452,11 +450,12 @@ impl Pipeline {
|
|||
}
|
||||
|
||||
pub fn render<'a>(
|
||||
&'a mut self,
|
||||
&'a self,
|
||||
layer: usize,
|
||||
bounds: Rectangle<u32>,
|
||||
render_pass: &mut wgpu::RenderPass<'a>,
|
||||
) {
|
||||
if let Some(layer) = self.layers.get(self.render_layer) {
|
||||
if let Some(layer) = self.layers.get(layer) {
|
||||
render_pass.set_pipeline(&self.pipeline);
|
||||
|
||||
render_pass.set_scissor_rect(
|
||||
|
|
@ -474,8 +473,6 @@ impl Pipeline {
|
|||
render_pass.set_vertex_buffer(0, self.vertices.slice(..));
|
||||
|
||||
layer.render(render_pass);
|
||||
|
||||
self.render_layer += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -496,7 +493,6 @@ impl Pipeline {
|
|||
.trim(&mut self.texture_atlas, &mut (device, queue, encoder));
|
||||
|
||||
self.prepare_layer = 0;
|
||||
self.render_layer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue