Browse Source

Moved render-related code from TopLevel to a separate class

(needed for wm stuff)
pull/228/head
Nikita Tsukanov 11 years ago
parent
commit
c8e617231c
  1. 4
      src/Gtk/Perspex.Cairo/CairoPlatform.cs
  2. 8
      src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs
  3. 2
      src/Gtk/Perspex.Cairo/Media/TileBrushes.cs
  4. 2
      src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj
  5. 8
      src/Gtk/Perspex.Cairo/Viewport.cs
  6. 2
      src/Perspex.Application/Application.cs
  7. 1
      src/Perspex.Controls/Perspex.Controls.csproj
  8. 62
      src/Perspex.Controls/Platform/ITopLevelRenderer.cs
  9. 49
      src/Perspex.Controls/TopLevel.cs
  10. 6
      src/Perspex.SceneGraph/Perspex.SceneGraph.csproj
  11. 4
      src/Perspex.SceneGraph/Platform/IPlatformRenderInterface.cs
  12. 2
      src/Perspex.SceneGraph/Platform/IRenderingViewport.cs
  13. 4
      src/Perspex.SceneGraph/Rendering/IRenderQueueManager.cs
  14. 7
      src/Perspex.SceneGraph/Rendering/IRenderRoot.cs
  15. 2
      src/Perspex.SceneGraph/Rendering/RenderQueueManager.cs
  16. 20
      src/Perspex.SceneGraph/Rendering/RendererBase.cs
  17. 6
      src/Perspex.SceneGraph/Visual.cs
  18. 4
      src/Windows/Perspex.Direct2D1/Direct2D1Platform.cs
  19. 4
      src/Windows/Perspex.Direct2D1/Media/Imaging/RenderTargetBitmapImpl.cs
  20. 2
      src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs
  21. 2
      src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj
  22. 10
      src/Windows/Perspex.Direct2D1/Viewport.cs
  23. 4
      tests/Perspex.Controls.UnitTests/ControlTests.cs
  24. 4
      tests/Perspex.Controls.UnitTests/TestRoot.cs
  25. 6
      tests/Perspex.Controls.UnitTests/TopLevelTests.cs
  26. 4
      tests/Perspex.Layout.UnitTests/FullLayoutTests.cs
  27. 4
      tests/Perspex.SceneGraph.UnitTests/TestRoot.cs

4
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)

8
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)

2
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();

2
src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj

@ -61,7 +61,7 @@
<Compile Include="Media\RadialGradientBrushImpl.cs" />
<Compile Include="Media\TileBrushes.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Renderer.cs" />
<Compile Include="Viewport.cs" />
<Compile Include="CairoExtensions.cs" />
<Compile Include="Media\StreamGeometryContextImpl.cs" />
<Compile Include="Media\StreamGeometryImpl.cs" />

8
src/Gtk/Perspex.Cairo/Renderer.cs → src/Gtk/Perspex.Cairo/Viewport.cs

@ -15,22 +15,22 @@ namespace Perspex.Cairo
/// <summary>
/// A cairo renderer.
/// </summary>
public class Renderer : IRenderer
public class Viewport : IRenderingViewport
{
private readonly Surface _surface;
private Gdk.Window _window;
/// <summary>
/// Initializes a new instance of the <see cref="Renderer"/> class.
/// Initializes a new instance of the <see cref="Viewport"/> class.
/// </summary>
/// <param name="handle">The window handle.</param>
/// <param name="width">The width of the window.</param>
/// <param name="height">The height of the window.</param>
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;
}

2
src/Perspex.Application/Application.cs

@ -168,7 +168,7 @@ namespace Perspex
.Bind<IKeyboardNavigationHandler>().ToTransient<KeyboardNavigationHandler>()
.Bind<IStyler>().ToConstant(_styler)
.Bind<ILayoutManager>().ToTransient<LayoutManager>()
.Bind<IRenderManager>().ToTransient<RenderManager>();
.Bind<IRenderQueueManager>().ToTransient<RenderQueueManager>();
}
/// <summary>

1
src/Perspex.Controls/Perspex.Controls.csproj

@ -43,6 +43,7 @@
</Compile>
<Compile Include="DockPanel.cs" />
<Compile Include="HotkeyManager.cs" />
<Compile Include="Platform\ITopLevelRenderer.cs" />
<Compile Include="SystemDialog.cs" />
<Compile Include="Generators\ITreeItemContainerGenerator.cs" />
<Compile Include="Generators\ItemContainers.cs" />

62
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<IDisposable>();
var initialClientSize = topLevel.PlatformImpl.ClientSize;
var queueManager = ((IRenderRoot)topLevel).RenderQueueManager;
if (queueManager == null)
return;
var platformRender = PerspexLocator.Current.GetService<IPlatformRenderInterface>();
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();
};
}
}
}

49
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<IInputElement> PointerOverElementProperty =
PerspexProperty.Register<TopLevel, IInputElement>(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<IInputManager>(dependencyResolver);
_keyboardNavigationHandler = TryGetService<IKeyboardNavigationHandler>(dependencyResolver);
LayoutManager = TryGetService<ILayoutManager>(dependencyResolver);
_renderManager = TryGetService<IRenderManager>(dependencyResolver);
_renderQueueManager = TryGetService<IRenderQueueManager>(dependencyResolver);
(TryGetService<ITopLevelRenderer>(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;
}
/// <summary>
/// Gets the window renderer.
/// </summary>
IRenderer IRenderRoot.Renderer => _renderer;
/// <summary>
/// Gets the window render manager.
/// </summary>
IRenderManager IRenderRoot.RenderManager => _renderManager;
IRenderQueueManager IRenderRoot.RenderQueueManager => _renderQueueManager;
/// <summary>
/// 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
/// </summary>
private void HandleLayoutCompleted()
{
_renderManager?.InvalidateRender(this);
}
/// <summary>
/// Handles a render request from <see cref="RenderManager.RenderNeeded"/>.
/// </summary>
private void HandleRenderNeeded()
{
Dispatcher.UIThread.InvokeAsync(
() => PlatformImpl.Invalidate(new Rect(ClientSize)),
DispatcherPriority.Render);
}
/// <summary>
/// Handles a paint request from <see cref="ITopLevelImpl.Paint"/>.
/// </summary>
/// <param name="rect">The rectangle to paint.</param>
/// <param name="handle">An optional platform-specific handle.</param>
private void HandlePaint(Rect rect, IPlatformHandle handle)
{
_renderer.Render(this, handle);
_renderManager.RenderFinished();
_renderQueueManager?.InvalidateRender(this);
}
}
}

6
src/Perspex.SceneGraph/Perspex.SceneGraph.csproj

@ -105,7 +105,7 @@
<Compile Include="Platform\IBitmapImpl.cs" />
<Compile Include="Platform\IGeometryImpl.cs" />
<Compile Include="Platform\IPlatformRenderInterface.cs" />
<Compile Include="Platform\IRenderer.cs" />
<Compile Include="Platform\IRenderingViewport.cs" />
<Compile Include="Platform\IRenderTargetBitmapImpl.cs" />
<Compile Include="Platform\IStreamGeometryContextImpl.cs" />
<Compile Include="Platform\IStreamGeometryImpl.cs" />
@ -114,9 +114,9 @@
<Compile Include="RelativeRect.cs" />
<Compile Include="Rect.cs" />
<Compile Include="Rendering\IRenderRoot.cs" />
<Compile Include="Rendering\IRenderManager.cs" />
<Compile Include="Rendering\IRenderQueueManager.cs" />
<Compile Include="Rendering\RendererBase.cs" />
<Compile Include="Rendering\RenderManager.cs" />
<Compile Include="Rendering\RenderQueueManager.cs" />
<Compile Include="Size.cs" />
<Compile Include="Thickness.cs" />
<Compile Include="Vector.cs" />

4
src/Perspex.SceneGraph/Platform/IPlatformRenderInterface.cs

@ -49,8 +49,8 @@ namespace Perspex.Platform
/// <param name="handle">The platform handle for the renderer.</param>
/// <param name="width">The initial width of the render.</param>
/// <param name="height">The initial height of the render.</param>
/// <returns>An <see cref="IRenderer"/>.</returns>
IRenderer CreateRenderer(IPlatformHandle handle, double width, double height);
/// <returns>An <see cref="IRenderingViewport"/>.</returns>
IRenderingViewport CreateRenderer(IPlatformHandle handle, double width, double height);
/// <summary>
/// Creates a render target bitmap implementation.

2
src/Perspex.SceneGraph/Platform/IRenderer.cs → 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.
/// </remarks>
public interface IRenderer : IDisposable
public interface IRenderingViewport : IDisposable
{
/// <summary>
/// Creates an <see cref="IDrawingContext"/> for a rendering session.

4
src/Perspex.SceneGraph/Rendering/IRenderManager.cs → src/Perspex.SceneGraph/Rendering/IRenderQueueManager.cs

@ -7,9 +7,9 @@ using System.Reactive;
namespace Perspex.Rendering
{
/// <summary>
/// Defines the interface for a <see cref="RenderManager"/>.
/// Defines the interface for a <see cref="RenderQueueManager"/>.
/// </summary>
public interface IRenderManager
public interface IRenderQueueManager
{
/// <summary>
/// Gets an observable that is fired whenever a render is required.

7
src/Perspex.SceneGraph/Rendering/IRenderRoot.cs

@ -10,15 +10,10 @@ namespace Perspex.Rendering
/// </summary>
public interface IRenderRoot
{
/// <summary>
/// Gets the renderer for the tree.
/// </summary>
IRenderer Renderer { get; }
/// <summary>
/// Gets the render manager which schedules renders.
/// </summary>
IRenderManager RenderManager { get; }
IRenderQueueManager RenderQueueManager { get; }
/// <summary>
/// Translates a point to screen co-ordinates.

2
src/Perspex.SceneGraph/Rendering/RenderManager.cs → src/Perspex.SceneGraph/Rendering/RenderQueueManager.cs

@ -10,7 +10,7 @@ namespace Perspex.Rendering
/// <summary>
/// Schedules the rendering of a tree.
/// </summary>
public class RenderManager : IRenderManager
public class RenderQueueManager : IRenderQueueManager
{
private readonly Subject<Unit> _renderNeeded = new Subject<Unit>();

20
src/Perspex.SceneGraph/Rendering/RendererBase.cs

@ -12,47 +12,47 @@ namespace Perspex.Rendering
/// Base class for standard renderers.
/// </summary>
/// <remarks>
/// This class provides implements the platform-independent parts of <see cref="IRenderer"/>.
/// This class provides implements the platform-independent parts of <see cref="IRenderingViewport"/>.
/// </remarks>
public static class RendererMixin
{
/// <summary>
/// Renders the specified visual.
/// </summary>
/// <param name="renderer">IRenderer instance</param>
/// <param name="viewport">IRenderer instance</param>
/// <param name="visual">The visual to render.</param>
/// <param name="target">An optional platform-specific handle.</param>
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);
}
/// <summary>
/// Renders the specified visual.
/// </summary>
/// <param name="renderer">IRenderer instance</param>
/// <param name="viewport">IRenderer instance</param>
/// <param name="target">An optional platform-specific handle.</param>
/// <param name="visual">The visual to render.</param>
/// <param name="translation">The current translation.</param>
/// <param name="transform">The current transform.</param>
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);
}
/// <summary>
/// Renders the specified visual with the specified transform and clip.
/// </summary>
/// <param name="renderer">IRenderer instance</param>
/// <param name="viewport">IRenderer instance</param>
/// <param name="target">An optional platform-specific handle.</param>
/// <param name="visual">The visual to render.</param>
/// <param name="transform">The transform.</param>
/// <param name="clip">An optional clip rectangle.</param>
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);
}

6
src/Perspex.SceneGraph/Visual.cs

@ -22,7 +22,7 @@ namespace Perspex
/// </summary>
/// <remarks>
/// The <see cref="Visual"/> class acts as a node in the Perspex scene graph and holds
/// all the information needed for an <see cref="IRenderer"/> to render the control.
/// all the information needed for an <see cref="IRenderingViewport"/> to render the control.
/// To traverse the scene graph (aka Visual Tree), use the extension methods defined
/// in <see cref="VisualExtensions"/>.
/// </remarks>
@ -222,9 +222,9 @@ namespace Perspex
.OfType<IRenderRoot>()
.FirstOrDefault();
if (root != null && root.RenderManager != null)
if (root != null && root.RenderQueueManager != null)
{
root.RenderManager.InvalidateRender(this);
root.RenderQueueManager.InvalidateRender(this);
}
}

4
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
{

4
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);
}
}
}

2
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);

2
src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj

@ -89,7 +89,7 @@
<Compile Include="Media\FormattedTextImpl.cs" />
<Compile Include="PrimitiveExtensions.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Renderer.cs" />
<Compile Include="Viewport.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />

10
src/Windows/Perspex.Direct2D1/Renderer.cs → 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
{
/// <summary>
/// The render target.
@ -20,12 +20,12 @@ namespace Perspex.Direct2D1
private readonly RenderTarget _renderTarget;
/// <summary>
/// Initializes a new instance of the <see cref="Renderer"/> class.
/// Initializes a new instance of the <see cref="Viewport"/> class.
/// </summary>
/// <param name="hwnd">The window handle.</param>
/// <param name="width">The width of the window.</param>
/// <param name="height">The height of the window.</param>
public Renderer(IntPtr hwnd, double width, double height)
public Viewport(IntPtr hwnd, double width, double height)
{
Direct2DFactory = PerspexLocator.Current.GetService<Factory>();
DirectWriteFactory = PerspexLocator.Current.GetService<DwFactory>();
@ -48,10 +48,10 @@ namespace Perspex.Direct2D1
}
/// <summary>
/// Initializes a new instance of the <see cref="Renderer"/> class.
/// Initializes a new instance of the <see cref="Viewport"/> class.
/// </summary>
/// <param name="renderTarget">The render target.</param>
public Renderer(RenderTarget renderTarget)
public Viewport(RenderTarget renderTarget)
{
Direct2DFactory = PerspexLocator.Current.GetService<Factory>();
DirectWriteFactory = PerspexLocator.Current.GetService<DwFactory>();

4
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(); }
}

4
tests/Perspex.Controls.UnitTests/TestRoot.cs

@ -15,12 +15,12 @@ namespace Perspex.Controls.UnitTests
public ILayoutManager LayoutManager => new Mock<ILayoutManager>().Object;
public IRenderer Renderer
public IRenderingViewport Viewport
{
get { throw new NotImplementedException(); }
}
public IRenderManager RenderManager
public IRenderQueueManager RenderQueueManager
{
get { throw new NotImplementedException(); }
}

6
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<IRenderManager>());
var renderManagerMock = Mock.Get(PerspexLocator.Current.GetService<IRenderQueueManager>());
renderManagerMock.Verify(x => x.InvalidateRender(target));
}
}
@ -313,7 +313,7 @@ namespace Perspex.Controls.UnitTests
var globalStyles = new Mock<IGlobalStyles>();
var layoutManager = fixture.Create<ILayoutManager>();
var renderInterface = fixture.Create<IPlatformRenderInterface>();
var renderManager = fixture.Create<IRenderManager>();
var renderManager = fixture.Create<IRenderQueueManager>();
var windowImpl = new Mock<IWindowImpl>();
var theme = new Styles();
@ -327,7 +327,7 @@ namespace Perspex.Controls.UnitTests
.Bind<ILayoutManager>().ToConstant(layoutManager)
.Bind<IPlatformRenderInterface>().ToConstant(renderInterface)
.Bind<IPlatformThreadingInterface>().ToConstant(new Mock<IPlatformThreadingInterface>().Object)
.Bind<IRenderManager>().ToConstant(renderManager)
.Bind<IRenderQueueManager>().ToConstant(renderManager)
.Bind<IStyler>().ToConstant(new Styler());
}

4
tests/Perspex.Layout.UnitTests/FullLayoutTests.cs

@ -134,7 +134,7 @@ namespace Perspex.Layout.UnitTests
var formattedText = fixture.Create<IFormattedTextImpl>();
var globalStyles = new Mock<IGlobalStyles>();
var renderInterface = fixture.Create<IPlatformRenderInterface>();
var renderManager = fixture.Create<IRenderManager>();
var renderManager = fixture.Create<IRenderQueueManager>();
var theme = new DefaultTheme();
var windowImpl = new Mock<IWindowImpl>();
@ -148,7 +148,7 @@ namespace Perspex.Layout.UnitTests
.Bind<ILayoutManager>().ToConstant(new LayoutManager())
.Bind<IPlatformRenderInterface>().ToConstant(renderInterface)
.Bind<IPlatformThreadingInterface>().ToConstant(new Mock<IPlatformThreadingInterface>().Object)
.Bind<IRenderManager>().ToConstant(renderManager)
.Bind<IRenderQueueManager>().ToConstant(renderManager)
.Bind<IStyler>().ToConstant(new Styler())
.Bind<IWindowImpl>().ToConstant(windowImpl.Object);
}

4
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(); }
}

Loading…
Cancel
Save