diff options
Diffstat (limited to 'Ryujinx.Ava/Ui/Backend/SkiaGpuFactory.cs')
-rw-r--r-- | Ryujinx.Ava/Ui/Backend/SkiaGpuFactory.cs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Ryujinx.Ava/Ui/Backend/SkiaGpuFactory.cs b/Ryujinx.Ava/Ui/Backend/SkiaGpuFactory.cs new file mode 100644 index 00000000..335bc905 --- /dev/null +++ b/Ryujinx.Ava/Ui/Backend/SkiaGpuFactory.cs @@ -0,0 +1,26 @@ +using Avalonia; +using Avalonia.Skia; +using Ryujinx.Ava.Ui.Vulkan; +using Ryujinx.Ava.Ui.Backend.Vulkan; + +namespace Ryujinx.Ava.Ui.Backend +{ + public static class SkiaGpuFactory + { + public static ISkiaGpu CreateVulkanGpu() + { + var skiaOptions = AvaloniaLocator.Current.GetService<SkiaOptions>() ?? new SkiaOptions(); + var platformInterface = AvaloniaLocator.Current.GetService<VulkanPlatformInterface>(); + + if (platformInterface == null) + { + VulkanPlatformInterface.TryInitialize(); + } + + var gpu = new VulkanSkiaGpu(skiaOptions.MaxGpuResourceSizeBytes); + AvaloniaLocator.CurrentMutable.Bind<VulkanSkiaGpu>().ToConstant(gpu); + + return gpu; + } + } +}
\ No newline at end of file |