Browse Source

Check for null from Scene.FindNode.

Scene.FindNode(layerRoot) may return null if the layer root has been hidden.
Steven Kirk 8 years ago
parent
commit
ec80b12e97
1 changed files with 13 additions and 10 deletions
  1. 13 10
      src/Avalonia.Visuals/Rendering/DeferredRenderer.cs

+ 13 - 10
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);
+                                }
                             }
                         }
                     }