SkiaGpuFactory.cs 776 B

1234567891011121314151617181920212223242526
  1. using Avalonia;
  2. using Avalonia.Skia;
  3. using Ryujinx.Ava.Ui.Vulkan;
  4. using Ryujinx.Ava.Ui.Backend.Vulkan;
  5. namespace Ryujinx.Ava.Ui.Backend
  6. {
  7. public static class SkiaGpuFactory
  8. {
  9. public static ISkiaGpu CreateVulkanGpu()
  10. {
  11. var skiaOptions = AvaloniaLocator.Current.GetService<SkiaOptions>() ?? new SkiaOptions();
  12. var platformInterface = AvaloniaLocator.Current.GetService<VulkanPlatformInterface>();
  13. if (platformInterface == null)
  14. {
  15. VulkanPlatformInterface.TryInitialize();
  16. }
  17. var gpu = new VulkanSkiaGpu(skiaOptions.MaxGpuResourceSizeBytes);
  18. AvaloniaLocator.CurrentMutable.Bind<VulkanSkiaGpu>().ToConstant(gpu);
  19. return gpu;
  20. }
  21. }
  22. }