From 0bb7163c30194c3a24c9adeca41f2166a8da3e16 Mon Sep 17 00:00:00 2001 From: Dan Glastonbury Date: Thu, 20 Sep 2018 18:11:54 +1000 Subject: [PATCH] Don't create a debug_renderer if there is nothing to render. Was seeing the creation of debug shaders on creation of a new window with Ctrl+N in gecko. Fixes #3089 --- webrender/src/renderer.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/webrender/src/renderer.rs b/webrender/src/renderer.rs index e5daed0345..818d04f820 100644 --- a/webrender/src/renderer.rs +++ b/webrender/src/renderer.rs @@ -1307,6 +1307,11 @@ impl LazyInitializedDebugRenderer { self.debug_renderer.as_mut() } + /// Returns mut ref to `DebugRenderer` if one already exists, otherwise returns `None`. + pub fn try_get_mut<'a>(&'a mut self) -> Option<&'a mut DebugRenderer> { + self.debug_renderer.as_mut() + } + pub fn deinit(self, device: &mut Device) { if let Some(debug_renderer) = self.debug_renderer { debug_renderer.deinit(device); @@ -2466,7 +2471,7 @@ impl Renderer { self.gpu_profile.end_frame(); #[cfg(feature = "debug_renderer")] { - if let Some(debug_renderer) = self.debug.get_mut(&mut self.device) { + if let Some(debug_renderer) = self.debug.try_get_mut() { debug_renderer.render(&mut self.device, framebuffer_size); } }