Reuse a RenderPass as much as possible in iced_wgpu

This commit is contained in:
Héctor Ramón Jiménez 2023-02-08 00:47:16 +01:00
parent b8c1809ea1
commit 730d6a0756
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
8 changed files with 197 additions and 171 deletions

View file

@ -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;
}
}