Browse Source

Reorganize RenderLoopClock registration.

pull/1715/head
Jeremy Koritzinsky 8 years ago
parent
commit
6a380d6591
  1. 2
      src/Avalonia.Controls/AppBuilderBase.cs
  2. 7
      src/Avalonia.Controls/Application.cs
  3. 5
      src/Windows/Avalonia.Win32/Win32Platform.cs

2
src/Avalonia.Controls/AppBuilderBase.cs

@ -272,10 +272,10 @@ namespace Avalonia.Controls
s_setupWasAlreadyCalled = true; s_setupWasAlreadyCalled = true;
Instance.RegisterServices();
RuntimePlatformServicesInitializer(); RuntimePlatformServicesInitializer();
WindowingSubsystemInitializer(); WindowingSubsystemInitializer();
RenderingSubsystemInitializer(); RenderingSubsystemInitializer();
Instance.RegisterServices();
Instance.Initialize(); Instance.Initialize();
AfterSetupCallback(Self); AfterSetupCallback(Self);
} }

7
src/Avalonia.Controls/Application.cs

@ -4,12 +4,14 @@
using System; using System;
using System.Reactive.Concurrency; using System.Reactive.Concurrency;
using System.Threading; using System.Threading;
using Avalonia.Animation;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Controls.Templates; using Avalonia.Controls.Templates;
using Avalonia.Input; using Avalonia.Input;
using Avalonia.Input.Platform; using Avalonia.Input.Platform;
using Avalonia.Input.Raw; using Avalonia.Input.Raw;
using Avalonia.Platform; using Avalonia.Platform;
using Avalonia.Rendering;
using Avalonia.Styling; using Avalonia.Styling;
using Avalonia.Threading; using Avalonia.Threading;
@ -335,6 +337,11 @@ namespace Avalonia
.Bind<IScheduler>().ToConstant(AvaloniaScheduler.Instance) .Bind<IScheduler>().ToConstant(AvaloniaScheduler.Instance)
.Bind<IDragDropDevice>().ToConstant(DragDropDevice.Instance) .Bind<IDragDropDevice>().ToConstant(DragDropDevice.Instance)
.Bind<IPlatformDragSource>().ToTransient<InProcessDragSource>(); .Bind<IPlatformDragSource>().ToTransient<InProcessDragSource>();
var clock = new RenderLoopClock();
AvaloniaLocator.CurrentMutable
.Bind<Clock>().ToConstant(clock)
.GetService<IRenderLoop>().Add(clock);
} }
} }
} }

5
src/Windows/Avalonia.Win32/Win32Platform.cs

@ -77,8 +77,6 @@ namespace Avalonia.Win32
public static void Initialize(bool deferredRendering = true) public static void Initialize(bool deferredRendering = true)
{ {
var clock = new RenderLoopClock();
AvaloniaLocator.CurrentMutable AvaloniaLocator.CurrentMutable
.Bind<IClipboard>().ToSingleton<ClipboardImpl>() .Bind<IClipboard>().ToSingleton<ClipboardImpl>()
.Bind<IStandardCursorFactory>().ToConstant(CursorFactory.Instance) .Bind<IStandardCursorFactory>().ToConstant(CursorFactory.Instance)
@ -87,7 +85,6 @@ namespace Avalonia.Win32
.Bind<IPlatformThreadingInterface>().ToConstant(s_instance) .Bind<IPlatformThreadingInterface>().ToConstant(s_instance)
.Bind<IRenderLoop>().ToConstant(new RenderLoop()) .Bind<IRenderLoop>().ToConstant(new RenderLoop())
.Bind<IRenderTimer>().ToConstant(new RenderTimer(60)) .Bind<IRenderTimer>().ToConstant(new RenderTimer(60))
.Bind<Clock>().ToConstant(clock)
.Bind<ISystemDialogImpl>().ToSingleton<SystemDialogImpl>() .Bind<ISystemDialogImpl>().ToSingleton<SystemDialogImpl>()
.Bind<IWindowingPlatform>().ToConstant(s_instance) .Bind<IWindowingPlatform>().ToConstant(s_instance)
.Bind<IPlatformIconLoader>().ToConstant(s_instance); .Bind<IPlatformIconLoader>().ToConstant(s_instance);
@ -97,8 +94,6 @@ namespace Avalonia.Win32
if (OleContext.Current != null) if (OleContext.Current != null)
AvaloniaLocator.CurrentMutable.Bind<IPlatformDragSource>().ToSingleton<DragSource>(); AvaloniaLocator.CurrentMutable.Bind<IPlatformDragSource>().ToSingleton<DragSource>();
AvaloniaLocator.Current.GetService<IRenderLoop>().Add(clock);
} }
public bool HasMessages() public bool HasMessages()

Loading…
Cancel
Save