summaryrefslogtreecommitdiffstats
path: root/wgpu/src/triangle.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-02-08 00:47:16 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-02-24 13:37:31 +0100
commit730d6a07564d014c470e02f233394ec98325d463 (patch)
tree531f0a7865058b1e9f17f8d6a67f75c301df00ce /wgpu/src/triangle.rs
parentb8c1809ea101cece6943432fd3597f785c39af09 (diff)
downloadiced-730d6a07564d014c470e02f233394ec98325d463.tar.gz
iced-730d6a07564d014c470e02f233394ec98325d463.tar.bz2
iced-730d6a07564d014c470e02f233394ec98325d463.zip
Reuse a `RenderPass` as much as possible in `iced_wgpu`
Diffstat (limited to 'wgpu/src/triangle.rs')
-rw-r--r--wgpu/src/triangle.rs10
1 files changed, 3 insertions, 7 deletions
diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs
index 572af1e8..1b537bf4 100644
--- a/wgpu/src/triangle.rs
+++ b/wgpu/src/triangle.rs
@@ -22,7 +22,6 @@ pub struct Pipeline {
layers: Vec<Layer>,
prepare_layer: usize,
- render_layer: usize,
}
#[derive(Debug)]
@@ -235,7 +234,7 @@ impl Layer {
}
fn render<'a>(
- &'a mut self,
+ &'a self,
solid: &'a solid::Pipeline,
#[cfg(not(target_arch = "wasm32"))] gradient: &'a gradient::Pipeline,
meshes: &[Mesh<'_>],
@@ -331,7 +330,6 @@ impl Pipeline {
layers: Vec::new(),
prepare_layer: 0,
- render_layer: 0,
}
}
@@ -373,6 +371,7 @@ impl Pipeline {
device: &wgpu::Device,
encoder: &mut wgpu::CommandEncoder,
target: &wgpu::TextureView,
+ layer: usize,
target_size: Size<u32>,
meshes: &[Mesh<'_>],
scale_factor: f32,
@@ -413,7 +412,7 @@ impl Pipeline {
depth_stencil_attachment: None,
});
- let layer = &mut self.layers[self.render_layer];
+ let layer = &mut self.layers[layer];
layer.render(
&self.solid,
@@ -425,8 +424,6 @@ impl Pipeline {
);
}
- self.render_layer += 1;
-
if let Some(blit) = &mut self.blit {
blit.draw(encoder, target);
}
@@ -434,7 +431,6 @@ impl Pipeline {
pub fn end_frame(&mut self) {
self.prepare_layer = 0;
- self.render_layer = 0;
}
}