From 6a380d6591e0f07e15edcbb6ace96baabec9b287 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Thu, 6 Sep 2018 23:49:52 -0500 Subject: [PATCH] Reorganize RenderLoopClock registration. --- src/Avalonia.Controls/AppBuilderBase.cs | 2 +- src/Avalonia.Controls/Application.cs | 7 +++++++ src/Windows/Avalonia.Win32/Win32Platform.cs | 5 ----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Avalonia.Controls/AppBuilderBase.cs b/src/Avalonia.Controls/AppBuilderBase.cs index c92d5d7694..9561282274 100644 --- a/src/Avalonia.Controls/AppBuilderBase.cs +++ b/src/Avalonia.Controls/AppBuilderBase.cs @@ -272,10 +272,10 @@ namespace Avalonia.Controls s_setupWasAlreadyCalled = true; - Instance.RegisterServices(); RuntimePlatformServicesInitializer(); WindowingSubsystemInitializer(); RenderingSubsystemInitializer(); + Instance.RegisterServices(); Instance.Initialize(); AfterSetupCallback(Self); } diff --git a/src/Avalonia.Controls/Application.cs b/src/Avalonia.Controls/Application.cs index 4c549ac7d4..8f6544ccd8 100644 --- a/src/Avalonia.Controls/Application.cs +++ b/src/Avalonia.Controls/Application.cs @@ -4,12 +4,14 @@ using System; using System.Reactive.Concurrency; using System.Threading; +using Avalonia.Animation; using Avalonia.Controls; using Avalonia.Controls.Templates; using Avalonia.Input; using Avalonia.Input.Platform; using Avalonia.Input.Raw; using Avalonia.Platform; +using Avalonia.Rendering; using Avalonia.Styling; using Avalonia.Threading; @@ -335,6 +337,11 @@ namespace Avalonia .Bind().ToConstant(AvaloniaScheduler.Instance) .Bind().ToConstant(DragDropDevice.Instance) .Bind().ToTransient(); + + var clock = new RenderLoopClock(); + AvaloniaLocator.CurrentMutable + .Bind().ToConstant(clock) + .GetService().Add(clock); } } } diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs index 812a557765..ef2dfd3c1a 100644 --- a/src/Windows/Avalonia.Win32/Win32Platform.cs +++ b/src/Windows/Avalonia.Win32/Win32Platform.cs @@ -77,8 +77,6 @@ namespace Avalonia.Win32 public static void Initialize(bool deferredRendering = true) { - var clock = new RenderLoopClock(); - AvaloniaLocator.CurrentMutable .Bind().ToSingleton() .Bind().ToConstant(CursorFactory.Instance) @@ -87,7 +85,6 @@ namespace Avalonia.Win32 .Bind().ToConstant(s_instance) .Bind().ToConstant(new RenderLoop()) .Bind().ToConstant(new RenderTimer(60)) - .Bind().ToConstant(clock) .Bind().ToSingleton() .Bind().ToConstant(s_instance) .Bind().ToConstant(s_instance); @@ -97,8 +94,6 @@ namespace Avalonia.Win32 if (OleContext.Current != null) AvaloniaLocator.CurrentMutable.Bind().ToSingleton(); - - AvaloniaLocator.Current.GetService().Add(clock); } public bool HasMessages()