diff options
author | 2023-02-07 22:53:08 +0100 | |
---|---|---|
committer | 2023-02-24 13:37:31 +0100 | |
commit | 363966ee9e7aa81a3679eaea776d2c867aa6c3b0 (patch) | |
tree | df76191179cf23da9153ab00dc91791d7113d829 /wgpu/src/backend.rs | |
parent | 34c963f7b39e3f16b55665a978948ead5b869f0f (diff) | |
download | iced-363966ee9e7aa81a3679eaea776d2c867aa6c3b0.tar.gz iced-363966ee9e7aa81a3679eaea776d2c867aa6c3b0.tar.bz2 iced-363966ee9e7aa81a3679eaea776d2c867aa6c3b0.zip |
Refactor `image::Pipeline` into `prepare` and `render` architecture
Diffstat (limited to 'wgpu/src/backend.rs')
-rw-r--r-- | wgpu/src/backend.rs | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 395d28d5..90a511ef 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -106,7 +106,7 @@ impl Backend { self.text_pipeline.end_frame(); #[cfg(any(feature = "image", feature = "svg"))] - self.image_pipeline.trim_cache(device, encoder); + self.image_pipeline.end_frame(device, queue, encoder); } fn flush( @@ -177,16 +177,32 @@ impl Backend { let scaled = transformation * Transformation::scale(scale_factor, scale_factor); - self.image_pipeline.draw( + self.image_pipeline.prepare( device, - staging_belt, + queue, encoder, &layer.images, scaled, - bounds, - target, scale_factor, ); + + let mut render_pass = + encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + label: Some("iced_wgpu::image render pass"), + color_attachments: &[Some( + wgpu::RenderPassColorAttachment { + view: target, + resolve_target: None, + ops: wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }, + }, + )], + depth_stencil_attachment: None, + }); + + self.image_pipeline.render(bounds, &mut render_pass); } } |