diff --git a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs index b5a647f903..d28b4a50ff 100644 --- a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs +++ b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs @@ -33,8 +33,12 @@ namespace Avalonia.Rendering _root = root; _scene = new Scene(root); - _renderLoop = renderLoop; - _renderLoop.Tick += OnRenderLoopTick; + + if (renderLoop != null) + { + _renderLoop = renderLoop; + _renderLoop.Tick += OnRenderLoopTick; + } } public bool DrawFps { get; set; } @@ -53,13 +57,17 @@ namespace Avalonia.Rendering public void Dispose() { - _renderLoop.Tick -= OnRenderLoopTick; + if (_renderLoop != null) + { + _renderLoop.Tick -= OnRenderLoopTick; + } } public IEnumerable HitTest(Point p, Func filter) { - if (_needsUpdate) + if (_renderLoop == null && _needsUpdate) { + // When unit testing the renderLoop may be null, so update the scene manually. UpdateScene(); } diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensionsTests_GetVisualsAt.cs b/tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensionsTests_GetVisualsAt.cs index 44cc291be9..abe8d108c8 100644 --- a/tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensionsTests_GetVisualsAt.cs +++ b/tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensionsTests_GetVisualsAt.cs @@ -456,7 +456,6 @@ namespace Avalonia.Visuals.UnitTests.VisualTree return UnitTestApplication.Start( new TestServices( renderInterface: new MockRenderInterface(), - renderLoop: Mock.Of(), renderer: (root, loop) => new DeferredRenderer(root, loop))); } }