MainWindow.axaml.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using Avalonia;
  3. using Avalonia.Controls;
  4. using Avalonia.Markup.Xaml;
  5. using Avalonia.Rendering;
  6. using GpuInterop.D3DDemo;
  7. using GpuInterop.VulkanDemo;
  8. namespace GpuInterop
  9. {
  10. public class MainWindow : Window
  11. {
  12. public MainWindow() : this(DemoType.Vulkan)
  13. {
  14. }
  15. public MainWindow(DemoType demoType)
  16. {
  17. InitializeComponent();
  18. Title = demoType.ToString();
  19. Content = new GpuDemo
  20. {
  21. Demo = demoType switch
  22. {
  23. DemoType.Vulkan => new VulkanDemoControl(),
  24. DemoType.D3D11 => new D3D11DemoControl(),
  25. var unknown => throw new InvalidOperationException($"Unknown demo type {unknown}")
  26. }
  27. };
  28. this.AttachDevTools();
  29. RendererDiagnostics.DebugOverlays = RendererDebugOverlays.Fps;
  30. }
  31. private void InitializeComponent()
  32. {
  33. AvaloniaXamlLoader.Load(this);
  34. }
  35. }
  36. }