diff options
Diffstat (limited to 'Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs')
-rw-r--r-- | Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs b/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs new file mode 100644 index 00000000..d2c980dd --- /dev/null +++ b/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs @@ -0,0 +1,33 @@ +using Ryujinx.Ava.Ui.Controls; +using Silk.NET.Vulkan; +using SPB.Graphics.Vulkan; +using SPB.Platform.Win32; +using SPB.Platform.X11; +using SPB.Windowing; +using System; + +namespace Ryujinx.Ava.Ui +{ + public class VulkanEmbeddedWindow : EmbeddedWindow + { + private NativeWindowBase _window; + + public SurfaceKHR CreateSurface(Instance instance) + { + if (OperatingSystem.IsWindows()) + { + _window = new SimpleWin32Window(new NativeHandle(WindowHandle)); + } + else if (OperatingSystem.IsLinux()) + { + _window = X11Window; + } + else + { + throw new PlatformNotSupportedException(); + } + + return new SurfaceKHR((ulong?)VulkanHelper.CreateWindowSurface(instance.Handle, _window)); + } + } +}
\ No newline at end of file |