From 25b72971880093256d8773c19f950a8c470f1a9f Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 10 Aug 2018 21:46:11 +0200 Subject: [PATCH] Added RenderLoop docs. --- src/Avalonia.Visuals/Rendering/IRenderLoop.cs | 22 ++++++++++++++++++- src/Avalonia.Visuals/Rendering/RenderLoop.cs | 20 +++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Visuals/Rendering/IRenderLoop.cs b/src/Avalonia.Visuals/Rendering/IRenderLoop.cs index bd1086d178..dd7442e7f8 100644 --- a/src/Avalonia.Visuals/Rendering/IRenderLoop.cs +++ b/src/Avalonia.Visuals/Rendering/IRenderLoop.cs @@ -1,8 +1,28 @@ namespace Avalonia.Rendering { + /// + /// The application render loop. + /// + /// + /// The render loop is responsible for advancing the animation timer and updating the scene + /// graph for visible windows. + /// public interface IRenderLoop { + /// + /// Adds an update task. + /// + /// The update task. + /// + /// Registered update tasks will be polled on each tick of the render loop after the + /// animation timer has been pulsed. + /// void Add(IRenderLoopTask i); + + /// + /// Removes an update task. + /// + /// The update task. void Remove(IRenderLoopTask i); } -} \ No newline at end of file +} diff --git a/src/Avalonia.Visuals/Rendering/RenderLoop.cs b/src/Avalonia.Visuals/Rendering/RenderLoop.cs index 076e8bbd33..98fc12b4b1 100644 --- a/src/Avalonia.Visuals/Rendering/RenderLoop.cs +++ b/src/Avalonia.Visuals/Rendering/RenderLoop.cs @@ -5,6 +5,13 @@ using Avalonia.Threading; namespace Avalonia.Rendering { + /// + /// The application render loop. + /// + /// + /// The render loop is responsible for advancing the animation timer and updating the scene + /// graph for visible windows. + /// public class RenderLoop : IRenderLoop { private readonly IDispatcher _dispatcher; @@ -12,17 +19,28 @@ namespace Avalonia.Rendering private IRenderTimer _timer; private bool inTick; + /// + /// Initializes a new instance of the class. + /// public RenderLoop() { _dispatcher = Dispatcher.UIThread; } + /// + /// Initializes a new instance of the class. + /// + /// The render timer. + /// The UI thread dispatcher. public RenderLoop(IRenderTimer timer, IDispatcher dispatcher) { _timer = timer; _dispatcher = dispatcher; } + /// + /// Gets the render timer. + /// protected IRenderTimer Timer { get @@ -36,6 +54,7 @@ namespace Avalonia.Rendering } } + /// public void Add(IRenderLoopTask i) { Contract.Requires(i != null); @@ -49,6 +68,7 @@ namespace Avalonia.Rendering } } + /// public void Remove(IRenderLoopTask i) { Contract.Requires(i != null);