From ec80b12e9727a92a3d00bbe41ca73a7efe9456c7 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 29 Jun 2017 12:03:31 +0200 Subject: [PATCH] Check for null from Scene.FindNode. Scene.FindNode(layerRoot) may return null if the layer root has been hidden. --- .../Rendering/DeferredRenderer.cs | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs index 9976bc179e..9cb12abbc9 100644 --- a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs +++ b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs @@ -236,19 +236,22 @@ namespace Avalonia.Rendering var renderTarget = _layers[layer.LayerRoot].Bitmap; var node = (VisualNode)scene.FindNode(layer.LayerRoot); - using (var context = renderTarget.CreateDrawingContext(this)) + if (node != null) { - foreach (var rect in layer.Dirty) + using (var context = renderTarget.CreateDrawingContext(this)) { - context.Transform = Matrix.Identity; - context.PushClip(rect); - context.Clear(Colors.Transparent); - Render(context, node, layer.LayerRoot, rect); - context.PopClip(); - - if (DrawDirtyRects) + foreach (var rect in layer.Dirty) { - _dirtyRectsDisplay.Add(rect); + context.Transform = Matrix.Identity; + context.PushClip(rect); + context.Clear(Colors.Transparent); + Render(context, node, layer.LayerRoot, rect); + context.PopClip(); + + if (DrawDirtyRects) + { + _dirtyRectsDisplay.Add(rect); + } } } }