diff options
author | 2019-10-29 01:21:28 +0100 | |
---|---|---|
committer | 2019-10-29 01:21:28 +0100 | |
commit | 23ebfb707a52d03a7beceaa5e197b4491619ae1d (patch) | |
tree | b1a4e62f9e4cfe7127f2d690ee66ecdb5bab74ee /wgpu | |
parent | 2b23e0986c532dbacd89ccd73bb603db558cbdaf (diff) | |
download | iced-23ebfb707a52d03a7beceaa5e197b4491619ae1d.tar.gz iced-23ebfb707a52d03a7beceaa5e197b4491619ae1d.tar.bz2 iced-23ebfb707a52d03a7beceaa5e197b4491619ae1d.zip |
Issue draw calls only when necessary
Diffstat (limited to 'wgpu')
-rw-r--r-- | wgpu/src/renderer.rs | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/wgpu/src/renderer.rs b/wgpu/src/renderer.rs index 0f91428e..bb7cb858 100644 --- a/wgpu/src/renderer.rs +++ b/wgpu/src/renderer.rs @@ -294,25 +294,29 @@ impl Renderer { let translated = transformation * Transformation::translate(0.0, -(layer.y_offset as f32)); - self.quad_pipeline.draw( - &mut self.device, - encoder, - &layer.quads, - transformation, - layer.bounds, - target, - ); + if layer.quads.len() > 0 { + self.quad_pipeline.draw( + &mut self.device, + encoder, + &layer.quads, + transformation, + layer.bounds, + target, + ); + } - self.image_pipeline.draw( - &mut self.device, - encoder, - &layer.images, - translated, - layer.bounds, - target, - ); + if layer.images.len() > 0 { + self.image_pipeline.draw( + &mut self.device, + encoder, + &layer.images, + translated, + layer.bounds, + target, + ); + } - { + if layer.text.len() > 0 { let mut glyph_brush = self.glyph_brush.borrow_mut(); for text in layer.text.iter() { |