From c8e617231ccf8ec04c00d73caa94aa725d8073bb Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 30 Sep 2015 14:42:43 +0300 Subject: [PATCH] Moved render-related code from TopLevel to a separate class (needed for wm stuff) --- src/Gtk/Perspex.Cairo/CairoPlatform.cs | 4 +- .../Media/Imaging/RenderTargetBitmapImpl.cs | 8 +-- src/Gtk/Perspex.Cairo/Media/TileBrushes.cs | 2 +- src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj | 2 +- .../{Renderer.cs => Viewport.cs} | 8 +-- src/Perspex.Application/Application.cs | 2 +- src/Perspex.Controls/Perspex.Controls.csproj | 1 + .../Platform/ITopLevelRenderer.cs | 62 +++++++++++++++++++ src/Perspex.Controls/TopLevel.cs | 49 +++------------ .../Perspex.SceneGraph.csproj | 6 +- .../Platform/IPlatformRenderInterface.cs | 4 +- .../{IRenderer.cs => IRenderingViewport.cs} | 2 +- ...enderManager.cs => IRenderQueueManager.cs} | 4 +- .../Rendering/IRenderRoot.cs | 7 +-- ...RenderManager.cs => RenderQueueManager.cs} | 2 +- .../Rendering/RendererBase.cs | 20 +++--- src/Perspex.SceneGraph/Visual.cs | 6 +- .../Perspex.Direct2D1/Direct2D1Platform.cs | 4 +- .../Media/Imaging/RenderTargetBitmapImpl.cs | 4 +- .../Media/VisualBrushImpl.cs | 2 +- .../Perspex.Direct2D1.csproj | 2 +- .../{Renderer.cs => Viewport.cs} | 10 +-- .../ControlTests.cs | 4 +- tests/Perspex.Controls.UnitTests/TestRoot.cs | 4 +- .../TopLevelTests.cs | 6 +- .../FullLayoutTests.cs | 4 +- .../Perspex.SceneGraph.UnitTests/TestRoot.cs | 4 +- 27 files changed, 130 insertions(+), 103 deletions(-) rename src/Gtk/Perspex.Cairo/{Renderer.cs => Viewport.cs} (90%) create mode 100644 src/Perspex.Controls/Platform/ITopLevelRenderer.cs rename src/Perspex.SceneGraph/Platform/{IRenderer.cs => IRenderingViewport.cs} (95%) rename src/Perspex.SceneGraph/Rendering/{IRenderManager.cs => IRenderQueueManager.cs} (88%) rename src/Perspex.SceneGraph/Rendering/{RenderManager.cs => RenderQueueManager.cs} (96%) rename src/Windows/Perspex.Direct2D1/{Renderer.cs => Viewport.cs} (91%) diff --git a/src/Gtk/Perspex.Cairo/CairoPlatform.cs b/src/Gtk/Perspex.Cairo/CairoPlatform.cs index 55da932a59..7d4b5421ee 100644 --- a/src/Gtk/Perspex.Cairo/CairoPlatform.cs +++ b/src/Gtk/Perspex.Cairo/CairoPlatform.cs @@ -36,9 +36,9 @@ namespace Perspex.Cairo return new FormattedTextImpl(s_pangoContext, text, fontFamily, fontSize, fontStyle, textAlignment, fontWeight); } - public IRenderer CreateRenderer(IPlatformHandle handle, double width, double height) + public IRenderingViewport CreateRenderer(IPlatformHandle handle, double width, double height) { - return new Renderer(handle, width, height); + return new Viewport(handle, width, height); } public IRenderTargetBitmapImpl CreateRenderTargetBitmap(int width, int height) diff --git a/src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs b/src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs index e35780773a..a35c037875 100644 --- a/src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs +++ b/src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs @@ -14,7 +14,7 @@ namespace Perspex.Cairo.Media.Imaging public RenderTargetBitmapImpl(Cairo.ImageSurface surface) { Surface = surface; - renderer = new Renderer(Surface); + viewport = new Viewport(Surface); } public int PixelWidth => Surface.Width; @@ -23,7 +23,7 @@ namespace Perspex.Cairo.Media.Imaging public void Dispose() { - renderer.Dispose(); + viewport.Dispose(); } public Cairo.ImageSurface Surface @@ -31,10 +31,10 @@ namespace Perspex.Cairo.Media.Imaging get; } - private Renderer renderer; + private Viewport viewport; public void Render(IVisual visual) { - renderer.Render(visual, new PlatformHandle(IntPtr.Zero, "RTB")); + viewport.Render(visual, new PlatformHandle(IntPtr.Zero, "RTB")); } public void Save(string fileName) diff --git a/src/Gtk/Perspex.Cairo/Media/TileBrushes.cs b/src/Gtk/Perspex.Cairo/Media/TileBrushes.cs index 761efc2220..0a4c20246f 100644 --- a/src/Gtk/Perspex.Cairo/Media/TileBrushes.cs +++ b/src/Gtk/Perspex.Cairo/Media/TileBrushes.cs @@ -111,7 +111,7 @@ namespace Perspex.Cairo.Media scale, translate, out drawRect); - var renderer = new Renderer(intermediate); + var renderer = new Viewport(intermediate); context.Rectangle(drawRect.ToCairo()); context.Clip(); diff --git a/src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj b/src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj index e389fac5b2..3f5d54a26a 100644 --- a/src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj +++ b/src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj @@ -61,7 +61,7 @@ - + diff --git a/src/Gtk/Perspex.Cairo/Renderer.cs b/src/Gtk/Perspex.Cairo/Viewport.cs similarity index 90% rename from src/Gtk/Perspex.Cairo/Renderer.cs rename to src/Gtk/Perspex.Cairo/Viewport.cs index a99da669f7..2191611f15 100644 --- a/src/Gtk/Perspex.Cairo/Renderer.cs +++ b/src/Gtk/Perspex.Cairo/Viewport.cs @@ -15,22 +15,22 @@ namespace Perspex.Cairo /// /// A cairo renderer. /// - public class Renderer : IRenderer + public class Viewport : IRenderingViewport { private readonly Surface _surface; private Gdk.Window _window; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The window handle. /// The width of the window. /// The height of the window. - public Renderer(IPlatformHandle handle, double width, double height) + public Viewport(IPlatformHandle handle, double width, double height) { } - public Renderer(ImageSurface surface) + public Viewport(ImageSurface surface) { _surface = surface; } diff --git a/src/Perspex.Application/Application.cs b/src/Perspex.Application/Application.cs index f0a3c1a8ee..88f3a23ffe 100644 --- a/src/Perspex.Application/Application.cs +++ b/src/Perspex.Application/Application.cs @@ -168,7 +168,7 @@ namespace Perspex .Bind().ToTransient() .Bind().ToConstant(_styler) .Bind().ToTransient() - .Bind().ToTransient(); + .Bind().ToTransient(); } /// diff --git a/src/Perspex.Controls/Perspex.Controls.csproj b/src/Perspex.Controls/Perspex.Controls.csproj index 12a8f6f7e6..f29b366032 100644 --- a/src/Perspex.Controls/Perspex.Controls.csproj +++ b/src/Perspex.Controls/Perspex.Controls.csproj @@ -43,6 +43,7 @@ + diff --git a/src/Perspex.Controls/Platform/ITopLevelRenderer.cs b/src/Perspex.Controls/Platform/ITopLevelRenderer.cs new file mode 100644 index 0000000000..74afcceeb8 --- /dev/null +++ b/src/Perspex.Controls/Platform/ITopLevelRenderer.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Perspex.Platform; +using Perspex.Rendering; + +namespace Perspex.Controls.Platform +{ + public interface ITopLevelRenderer + { + void Attach(TopLevel topLevel); + } + + + class DefaultTopLevelRenderer : ITopLevelRenderer + { + + public void Attach(TopLevel topLevel) + { + var resources = new List(); + var initialClientSize = topLevel.PlatformImpl.ClientSize; + + + var queueManager = ((IRenderRoot)topLevel).RenderQueueManager; + + if (queueManager == null) + return; + + var platformRender = PerspexLocator.Current.GetService(); + if(platformRender == null) + return; + + var viewport = platformRender + .CreateRenderer(topLevel.PlatformImpl.Handle, initialClientSize.Width, initialClientSize.Height); + resources.Add(viewport); + + + resources.Add(topLevel.GetObservable(TopLevel.ClientSizeProperty).Subscribe(clientSize => + { + viewport.Resize((int) clientSize.Width, (int) clientSize.Height); + })); + resources.Add(queueManager.RenderNeeded.Subscribe(_ + => topLevel.PlatformImpl.Invalidate(new Rect(topLevel.ClientSize)))); + + topLevel.PlatformImpl.Paint = (rect, handle) => + { + viewport.Render(topLevel, handle); + queueManager.RenderFinished(); + }; + + topLevel.Closed += delegate + { + foreach (var disposable in resources) + disposable.Dispose(); + resources.Clear(); + }; + + } + } +} diff --git a/src/Perspex.Controls/TopLevel.cs b/src/Perspex.Controls/TopLevel.cs index 5936e08404..a34d7a1ad0 100644 --- a/src/Perspex.Controls/TopLevel.cs +++ b/src/Perspex.Controls/TopLevel.cs @@ -4,6 +4,7 @@ using System; using System.Reactive.Disposables; using System.Reactive.Linq; +using Perspex.Controls.Platform; using Perspex.Controls.Primitives; using Perspex.Input; using Perspex.Input.Raw; @@ -43,8 +44,8 @@ namespace Perspex.Controls public static readonly PerspexProperty PointerOverElementProperty = PerspexProperty.Register(nameof(IInputRoot.PointerOverElement)); - private readonly IRenderManager _renderManager; - private readonly IRenderer _renderer; + private readonly IRenderQueueManager _renderQueueManager; + private readonly IRenderingViewport _viewport; private readonly IInputManager _inputManager; private readonly IAccessKeyHandler _accessKeyHandler; private readonly IKeyboardNavigationHandler _keyboardNavigationHandler; @@ -92,21 +93,21 @@ namespace Perspex.Controls _inputManager = TryGetService(dependencyResolver); _keyboardNavigationHandler = TryGetService(dependencyResolver); LayoutManager = TryGetService(dependencyResolver); - _renderManager = TryGetService(dependencyResolver); + _renderQueueManager = TryGetService(dependencyResolver); + (TryGetService(dependencyResolver) ?? new DefaultTopLevelRenderer()).Attach(this); PlatformImpl.SetInputRoot(this); PlatformImpl.Activated = HandleActivated; PlatformImpl.Deactivated = HandleDeactivated; PlatformImpl.Closed = HandleClosed; PlatformImpl.Input = HandleInput; - PlatformImpl.Paint = HandlePaint; PlatformImpl.Resized = HandleResized; Size clientSize = ClientSize = PlatformImpl.ClientSize; if (renderInterface != null) { - _renderer = renderInterface.CreateRenderer(PlatformImpl.Handle, clientSize.Width, clientSize.Height); + _viewport = renderInterface.CreateRenderer(PlatformImpl.Handle, clientSize.Width, clientSize.Height); } if (LayoutManager != null) @@ -116,11 +117,6 @@ namespace Perspex.Controls LayoutManager.LayoutCompleted.Subscribe(_ => HandleLayoutCompleted()); } - if (_renderManager != null) - { - _renderManager.RenderNeeded.Subscribe(_ => HandleRenderNeeded()); - } - if (_keyboardNavigationHandler != null) { _keyboardNavigationHandler.SetOwner(this); @@ -188,16 +184,11 @@ namespace Perspex.Controls { get; } - - /// - /// Gets the window renderer. - /// - IRenderer IRenderRoot.Renderer => _renderer; - + /// /// Gets the window render manager. /// - IRenderManager IRenderRoot.RenderManager => _renderManager; + IRenderQueueManager IRenderRoot.RenderQueueManager => _renderQueueManager; /// /// Gets the access key handler for the window. @@ -297,7 +288,6 @@ namespace Perspex.Controls } ClientSize = clientSize; - _renderer.Resize((int)clientSize.Width, (int)clientSize.Height); LayoutManager.ExecuteLayoutPass(); PlatformImpl.Invalidate(new Rect(clientSize)); } @@ -389,28 +379,7 @@ namespace Perspex.Controls /// private void HandleLayoutCompleted() { - _renderManager?.InvalidateRender(this); - } - - /// - /// Handles a render request from . - /// - private void HandleRenderNeeded() - { - Dispatcher.UIThread.InvokeAsync( - () => PlatformImpl.Invalidate(new Rect(ClientSize)), - DispatcherPriority.Render); - } - - /// - /// Handles a paint request from . - /// - /// The rectangle to paint. - /// An optional platform-specific handle. - private void HandlePaint(Rect rect, IPlatformHandle handle) - { - _renderer.Render(this, handle); - _renderManager.RenderFinished(); + _renderQueueManager?.InvalidateRender(this); } } } diff --git a/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj b/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj index 4b8c5c3778..dafed3ddd9 100644 --- a/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj +++ b/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj @@ -105,7 +105,7 @@ - + @@ -114,9 +114,9 @@ - + - + diff --git a/src/Perspex.SceneGraph/Platform/IPlatformRenderInterface.cs b/src/Perspex.SceneGraph/Platform/IPlatformRenderInterface.cs index ca40ec8137..9adf05e2e4 100644 --- a/src/Perspex.SceneGraph/Platform/IPlatformRenderInterface.cs +++ b/src/Perspex.SceneGraph/Platform/IPlatformRenderInterface.cs @@ -49,8 +49,8 @@ namespace Perspex.Platform /// The platform handle for the renderer. /// The initial width of the render. /// The initial height of the render. - /// An . - IRenderer CreateRenderer(IPlatformHandle handle, double width, double height); + /// An . + IRenderingViewport CreateRenderer(IPlatformHandle handle, double width, double height); /// /// Creates a render target bitmap implementation. diff --git a/src/Perspex.SceneGraph/Platform/IRenderer.cs b/src/Perspex.SceneGraph/Platform/IRenderingViewport.cs similarity index 95% rename from src/Perspex.SceneGraph/Platform/IRenderer.cs rename to src/Perspex.SceneGraph/Platform/IRenderingViewport.cs index a19593406b..ef9a8452e7 100644 --- a/src/Perspex.SceneGraph/Platform/IRenderer.cs +++ b/src/Perspex.SceneGraph/Platform/IRenderingViewport.cs @@ -15,7 +15,7 @@ namespace Perspex.Platform /// as RenderBase has a default implementation for the non-platform specific parts of a /// renderer. /// - public interface IRenderer : IDisposable + public interface IRenderingViewport : IDisposable { /// /// Creates an for a rendering session. diff --git a/src/Perspex.SceneGraph/Rendering/IRenderManager.cs b/src/Perspex.SceneGraph/Rendering/IRenderQueueManager.cs similarity index 88% rename from src/Perspex.SceneGraph/Rendering/IRenderManager.cs rename to src/Perspex.SceneGraph/Rendering/IRenderQueueManager.cs index cb03a8a19a..a583bcbc85 100644 --- a/src/Perspex.SceneGraph/Rendering/IRenderManager.cs +++ b/src/Perspex.SceneGraph/Rendering/IRenderQueueManager.cs @@ -7,9 +7,9 @@ using System.Reactive; namespace Perspex.Rendering { /// - /// Defines the interface for a . + /// Defines the interface for a . /// - public interface IRenderManager + public interface IRenderQueueManager { /// /// Gets an observable that is fired whenever a render is required. diff --git a/src/Perspex.SceneGraph/Rendering/IRenderRoot.cs b/src/Perspex.SceneGraph/Rendering/IRenderRoot.cs index a6f5846f75..406eedbc3b 100644 --- a/src/Perspex.SceneGraph/Rendering/IRenderRoot.cs +++ b/src/Perspex.SceneGraph/Rendering/IRenderRoot.cs @@ -10,15 +10,10 @@ namespace Perspex.Rendering /// public interface IRenderRoot { - /// - /// Gets the renderer for the tree. - /// - IRenderer Renderer { get; } - /// /// Gets the render manager which schedules renders. /// - IRenderManager RenderManager { get; } + IRenderQueueManager RenderQueueManager { get; } /// /// Translates a point to screen co-ordinates. diff --git a/src/Perspex.SceneGraph/Rendering/RenderManager.cs b/src/Perspex.SceneGraph/Rendering/RenderQueueManager.cs similarity index 96% rename from src/Perspex.SceneGraph/Rendering/RenderManager.cs rename to src/Perspex.SceneGraph/Rendering/RenderQueueManager.cs index 8f89c6d31f..514bb547a6 100644 --- a/src/Perspex.SceneGraph/Rendering/RenderManager.cs +++ b/src/Perspex.SceneGraph/Rendering/RenderQueueManager.cs @@ -10,7 +10,7 @@ namespace Perspex.Rendering /// /// Schedules the rendering of a tree. /// - public class RenderManager : IRenderManager + public class RenderQueueManager : IRenderQueueManager { private readonly Subject _renderNeeded = new Subject(); diff --git a/src/Perspex.SceneGraph/Rendering/RendererBase.cs b/src/Perspex.SceneGraph/Rendering/RendererBase.cs index 4f9440eb4d..e0a886f66f 100644 --- a/src/Perspex.SceneGraph/Rendering/RendererBase.cs +++ b/src/Perspex.SceneGraph/Rendering/RendererBase.cs @@ -12,47 +12,47 @@ namespace Perspex.Rendering /// Base class for standard renderers. /// /// - /// This class provides implements the platform-independent parts of . + /// This class provides implements the platform-independent parts of . /// public static class RendererMixin { /// /// Renders the specified visual. /// - /// IRenderer instance + /// IRenderer instance /// The visual to render. /// An optional platform-specific handle. - public static void Render(this IRenderer renderer, IVisual visual, IPlatformHandle target) + public static void Render(this IRenderingViewport viewport, IVisual visual, IPlatformHandle target) { - using (var ctx = renderer.CreateDrawingContext(target)) + using (var ctx = viewport.CreateDrawingContext(target)) ctx.Render(visual); } /// /// Renders the specified visual. /// - /// IRenderer instance + /// IRenderer instance /// An optional platform-specific handle. /// The visual to render. /// The current translation. /// The current transform. - public static void Render(this IRenderer renderer, IVisual visual, IPlatformHandle target, Matrix translation, Matrix transform) + public static void Render(this IRenderingViewport viewport, IVisual visual, IPlatformHandle target, Matrix translation, Matrix transform) { - using (var ctx = renderer.CreateDrawingContext(target)) + using (var ctx = viewport.CreateDrawingContext(target)) ctx.Render(visual, translation, transform); } /// /// Renders the specified visual with the specified transform and clip. /// - /// IRenderer instance + /// IRenderer instance /// An optional platform-specific handle. /// The visual to render. /// The transform. /// An optional clip rectangle. - public static void Render(this IRenderer renderer, IVisual visual, IPlatformHandle target, Matrix transform, Rect? clip = null) + public static void Render(this IRenderingViewport viewport, IVisual visual, IPlatformHandle target, Matrix transform, Rect? clip = null) { - using (var context = renderer.CreateDrawingContext(target)) + using (var context = viewport.CreateDrawingContext(target)) context.Render(visual, transform, clip); } diff --git a/src/Perspex.SceneGraph/Visual.cs b/src/Perspex.SceneGraph/Visual.cs index 46020d8e07..45ac797d99 100644 --- a/src/Perspex.SceneGraph/Visual.cs +++ b/src/Perspex.SceneGraph/Visual.cs @@ -22,7 +22,7 @@ namespace Perspex /// /// /// The class acts as a node in the Perspex scene graph and holds - /// all the information needed for an to render the control. + /// all the information needed for an to render the control. /// To traverse the scene graph (aka Visual Tree), use the extension methods defined /// in . /// @@ -222,9 +222,9 @@ namespace Perspex .OfType() .FirstOrDefault(); - if (root != null && root.RenderManager != null) + if (root != null && root.RenderQueueManager != null) { - root.RenderManager.InvalidateRender(this); + root.RenderQueueManager.InvalidateRender(this); } } diff --git a/src/Windows/Perspex.Direct2D1/Direct2D1Platform.cs b/src/Windows/Perspex.Direct2D1/Direct2D1Platform.cs index 9005a9ffe3..65aa0b06d6 100644 --- a/src/Windows/Perspex.Direct2D1/Direct2D1Platform.cs +++ b/src/Windows/Perspex.Direct2D1/Direct2D1Platform.cs @@ -41,11 +41,11 @@ namespace Perspex.Direct2D1 return new FormattedTextImpl(text, fontFamily, fontSize, fontStyle, textAlignment, fontWeight); } - public IRenderer CreateRenderer(IPlatformHandle handle, double width, double height) + public IRenderingViewport CreateRenderer(IPlatformHandle handle, double width, double height) { if (handle.HandleDescriptor == "HWND") { - return new Renderer(handle.Handle, width, height); + return new Viewport(handle.Handle, width, height); } else { diff --git a/src/Windows/Perspex.Direct2D1/Media/Imaging/RenderTargetBitmapImpl.cs b/src/Windows/Perspex.Direct2D1/Media/Imaging/RenderTargetBitmapImpl.cs index 16cda058ce..3faaf762d8 100644 --- a/src/Windows/Perspex.Direct2D1/Media/Imaging/RenderTargetBitmapImpl.cs +++ b/src/Windows/Perspex.Direct2D1/Media/Imaging/RenderTargetBitmapImpl.cs @@ -39,8 +39,8 @@ namespace Perspex.Direct2D1.Media public void Render(IVisual visual) { - Renderer renderer = new Renderer(_target); - renderer.Render(visual, null); + Viewport viewport = new Viewport(_target); + viewport.Render(visual, null); } } } diff --git a/src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs b/src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs index 0acb5e07dc..8380b9c200 100644 --- a/src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs +++ b/src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs @@ -51,7 +51,7 @@ namespace Perspex.Direct2D1.Media scale, translate, out drawRect); - var renderer = new Renderer(intermediate); + var renderer = new Viewport(intermediate); renderer.Render(visual, null, transform, drawRect); diff --git a/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj b/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj index f352a6d7a8..eecdaeef6a 100644 --- a/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj +++ b/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj @@ -89,7 +89,7 @@ - + diff --git a/src/Windows/Perspex.Direct2D1/Renderer.cs b/src/Windows/Perspex.Direct2D1/Viewport.cs similarity index 91% rename from src/Windows/Perspex.Direct2D1/Renderer.cs rename to src/Windows/Perspex.Direct2D1/Viewport.cs index 607270ed69..e53a1c8b91 100644 --- a/src/Windows/Perspex.Direct2D1/Renderer.cs +++ b/src/Windows/Perspex.Direct2D1/Viewport.cs @@ -12,7 +12,7 @@ using DwFactory = SharpDX.DirectWrite.Factory; namespace Perspex.Direct2D1 { - public class Renderer : IRenderer + public class Viewport : IRenderingViewport { /// /// The render target. @@ -20,12 +20,12 @@ namespace Perspex.Direct2D1 private readonly RenderTarget _renderTarget; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The window handle. /// The width of the window. /// The height of the window. - public Renderer(IntPtr hwnd, double width, double height) + public Viewport(IntPtr hwnd, double width, double height) { Direct2DFactory = PerspexLocator.Current.GetService(); DirectWriteFactory = PerspexLocator.Current.GetService(); @@ -48,10 +48,10 @@ namespace Perspex.Direct2D1 } /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The render target. - public Renderer(RenderTarget renderTarget) + public Viewport(RenderTarget renderTarget) { Direct2DFactory = PerspexLocator.Current.GetService(); DirectWriteFactory = PerspexLocator.Current.GetService(); diff --git a/tests/Perspex.Controls.UnitTests/ControlTests.cs b/tests/Perspex.Controls.UnitTests/ControlTests.cs index 4a801fc0e9..d031467ca2 100644 --- a/tests/Perspex.Controls.UnitTests/ControlTests.cs +++ b/tests/Perspex.Controls.UnitTests/ControlTests.cs @@ -76,12 +76,12 @@ namespace Perspex.Controls.UnitTests get { throw new NotImplementedException(); } } - public IRenderer Renderer + public IRenderingViewport Viewport { get { throw new NotImplementedException(); } } - public IRenderManager RenderManager + public IRenderQueueManager RenderQueueManager { get { throw new NotImplementedException(); } } diff --git a/tests/Perspex.Controls.UnitTests/TestRoot.cs b/tests/Perspex.Controls.UnitTests/TestRoot.cs index 6f564550d2..a35bfc50ce 100644 --- a/tests/Perspex.Controls.UnitTests/TestRoot.cs +++ b/tests/Perspex.Controls.UnitTests/TestRoot.cs @@ -15,12 +15,12 @@ namespace Perspex.Controls.UnitTests public ILayoutManager LayoutManager => new Mock().Object; - public IRenderer Renderer + public IRenderingViewport Viewport { get { throw new NotImplementedException(); } } - public IRenderManager RenderManager + public IRenderQueueManager RenderQueueManager { get { throw new NotImplementedException(); } } diff --git a/tests/Perspex.Controls.UnitTests/TopLevelTests.cs b/tests/Perspex.Controls.UnitTests/TopLevelTests.cs index 7c8f6a52b4..5b8c08e8e2 100644 --- a/tests/Perspex.Controls.UnitTests/TopLevelTests.cs +++ b/tests/Perspex.Controls.UnitTests/TopLevelTests.cs @@ -180,7 +180,7 @@ namespace Perspex.Controls.UnitTests var target = new TestTopLevel(impl.Object); completed.OnNext(Unit.Default); - var renderManagerMock = Mock.Get(PerspexLocator.Current.GetService()); + var renderManagerMock = Mock.Get(PerspexLocator.Current.GetService()); renderManagerMock.Verify(x => x.InvalidateRender(target)); } } @@ -313,7 +313,7 @@ namespace Perspex.Controls.UnitTests var globalStyles = new Mock(); var layoutManager = fixture.Create(); var renderInterface = fixture.Create(); - var renderManager = fixture.Create(); + var renderManager = fixture.Create(); var windowImpl = new Mock(); var theme = new Styles(); @@ -327,7 +327,7 @@ namespace Perspex.Controls.UnitTests .Bind().ToConstant(layoutManager) .Bind().ToConstant(renderInterface) .Bind().ToConstant(new Mock().Object) - .Bind().ToConstant(renderManager) + .Bind().ToConstant(renderManager) .Bind().ToConstant(new Styler()); } diff --git a/tests/Perspex.Layout.UnitTests/FullLayoutTests.cs b/tests/Perspex.Layout.UnitTests/FullLayoutTests.cs index fb714e5278..c9df6639cd 100644 --- a/tests/Perspex.Layout.UnitTests/FullLayoutTests.cs +++ b/tests/Perspex.Layout.UnitTests/FullLayoutTests.cs @@ -134,7 +134,7 @@ namespace Perspex.Layout.UnitTests var formattedText = fixture.Create(); var globalStyles = new Mock(); var renderInterface = fixture.Create(); - var renderManager = fixture.Create(); + var renderManager = fixture.Create(); var theme = new DefaultTheme(); var windowImpl = new Mock(); @@ -148,7 +148,7 @@ namespace Perspex.Layout.UnitTests .Bind().ToConstant(new LayoutManager()) .Bind().ToConstant(renderInterface) .Bind().ToConstant(new Mock().Object) - .Bind().ToConstant(renderManager) + .Bind().ToConstant(renderManager) .Bind().ToConstant(new Styler()) .Bind().ToConstant(windowImpl.Object); } diff --git a/tests/Perspex.SceneGraph.UnitTests/TestRoot.cs b/tests/Perspex.SceneGraph.UnitTests/TestRoot.cs index 41215cfa08..8b447e42bb 100644 --- a/tests/Perspex.SceneGraph.UnitTests/TestRoot.cs +++ b/tests/Perspex.SceneGraph.UnitTests/TestRoot.cs @@ -9,12 +9,12 @@ namespace Perspex.SceneGraph.UnitTests { public class TestRoot : TestVisual, IRenderRoot { - public IRenderer Renderer + public IRenderingViewport Viewport { get { throw new NotImplementedException(); } } - public IRenderManager RenderManager + public IRenderQueueManager RenderQueueManager { get { throw new NotImplementedException(); } }