diff options
author | 2023-02-08 00:47:16 +0100 | |
---|---|---|
committer | 2023-02-24 13:37:31 +0100 | |
commit | 730d6a07564d014c470e02f233394ec98325d463 (patch) | |
tree | 531f0a7865058b1e9f17f8d6a67f75c301df00ce /wgpu/src/triangle.rs | |
parent | b8c1809ea101cece6943432fd3597f785c39af09 (diff) | |
download | iced-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.rs | 10 |
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; } } |