summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-29 01:21:28 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-29 01:21:28 +0100
commit23ebfb707a52d03a7beceaa5e197b4491619ae1d (patch)
treeb1a4e62f9e4cfe7127f2d690ee66ecdb5bab74ee /wgpu
parent2b23e0986c532dbacd89ccd73bb603db558cbdaf (diff)
downloadiced-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.rs38
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() {