Program.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using Avalonia;
  3. using Avalonia.Logging;
  4. using Avalonia.Vulkan;
  5. namespace GpuInterop
  6. {
  7. public static class Program
  8. {
  9. public static void Main(string[] args)
  10. {
  11. var demoType = OperatingSystem.IsWindows() && args.AsSpan().Contains("--d3d") ? DemoType.D3D11 : DemoType.Vulkan;
  12. BuildAvaloniaAppCore(demoType).StartWithClassicDesktopLifetime(args);
  13. }
  14. public static AppBuilder BuildAvaloniaApp() => BuildAvaloniaAppCore(DemoType.Vulkan);
  15. private static AppBuilder BuildAvaloniaAppCore(DemoType demoType) =>
  16. AppBuilder
  17. .Configure(() => new App { DemoType = demoType })
  18. .UsePlatformDetect()
  19. .With(new Win32PlatformOptions
  20. {
  21. RenderingMode = [demoType == DemoType.D3D11 ? Win32RenderingMode.AngleEgl : Win32RenderingMode.Vulkan]
  22. })
  23. .With(new X11PlatformOptions
  24. {
  25. RenderingMode = [X11RenderingMode.Vulkan]
  26. })
  27. .With(new VulkanOptions
  28. {
  29. VulkanInstanceCreationOptions = new VulkanInstanceCreationOptions
  30. {
  31. UseDebug = true
  32. }
  33. })
  34. .LogToTrace(LogEventLevel.Debug, "Vulkan");
  35. }
  36. }