A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

34 lines
1.1 KiB

using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.Rendering;
using Avalonia.Rendering.Composition;
using Avalonia.Threading;
using Moq;
namespace Avalonia.UnitTests
{
public static class RendererMocks
{
internal static Mock<IRenderer> CreateRenderer()
{
var renderer = new Mock<IRenderer>();
renderer.SetupGet(r => r.Diagnostics).Returns(new RendererDiagnostics());
return renderer;
}
public static Compositor CreateDummyCompositor() =>
new(new RenderLoop(new CompositorTestServices.ManualRenderTimer()), null, false,
new CompositionCommitScheduler(), true, Dispatcher.UIThread);
class CompositionCommitScheduler : ICompositorScheduler
{
public void CommitRequested(Compositor compositor)
{
if (AvaloniaLocator.Current.GetService<IPlatformRenderInterface>() == null)
return;
Dispatcher.UIThread.Post(() => compositor.Commit(), DispatcherPriority.AfterRender);
}
}
}
}