From 23ebfb707a52d03a7beceaa5e197b4491619ae1d Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 29 Oct 2019 01:21:28 +0100 Subject: Issue draw calls only when necessary --- wgpu/src/renderer.rs | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'wgpu/src/renderer.rs') 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() { -- cgit