15 changed files with 151 additions and 10 deletions
@ -0,0 +1,19 @@ |
|||
using Avalonia.Rendering; |
|||
using System.Threading.Tasks; |
|||
using System; |
|||
|
|||
|
|||
#if AVALONIA_SKIA
|
|||
namespace Avalonia.Skia.RenderTests |
|||
#else
|
|||
namespace Avalonia.Direct2D1.RenderTests |
|||
#endif
|
|||
{ |
|||
public class ManualRenderTimer : IRenderTimer |
|||
{ |
|||
public event Action<TimeSpan> Tick; |
|||
public bool RunsInBackground => false; |
|||
public void TriggerTick() => Tick?.Invoke(TimeSpan.Zero); |
|||
public Task TriggerBackgroundTick() => Task.Run(TriggerTick); |
|||
} |
|||
} |
|||
@ -0,0 +1,48 @@ |
|||
using Avalonia.Rendering; |
|||
using System.Threading.Tasks; |
|||
using System; |
|||
using Avalonia.Controls; |
|||
using Avalonia.Platform; |
|||
|
|||
|
|||
#if AVALONIA_SKIA
|
|||
namespace Avalonia.Skia.RenderTests |
|||
#else
|
|||
namespace Avalonia.Direct2D1.RenderTests |
|||
#endif
|
|||
{ |
|||
public class TestRenderRoot : Decorator, IRenderRoot |
|||
{ |
|||
private readonly IRenderTarget _renderTarget; |
|||
public Size ClientSize { get; private set; } |
|||
public IRenderer Renderer { get; private set; } |
|||
public double RenderScaling { get; } |
|||
|
|||
public TestRenderRoot(double scaling, IRenderTarget renderTarget) |
|||
{ |
|||
_renderTarget = renderTarget; |
|||
RenderScaling = scaling; |
|||
} |
|||
|
|||
public void Initialize(IRenderer renderer, Control child) |
|||
{ |
|||
Renderer = renderer; |
|||
Child = child; |
|||
Width = child.Width; |
|||
Height = child.Height; |
|||
ClientSize = new Size(Width, Height); |
|||
Measure(ClientSize); |
|||
Arrange(new Rect(ClientSize)); |
|||
} |
|||
|
|||
public IRenderTarget CreateRenderTarget() => _renderTarget; |
|||
|
|||
public void Invalidate(Rect rect) |
|||
{ |
|||
} |
|||
|
|||
public Point PointToClient(PixelPoint point) => point.ToPoint(RenderScaling); |
|||
|
|||
public PixelPoint PointToScreen(Point point) => PixelPoint.FromPoint(point, RenderScaling); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue