diff options
Diffstat (limited to 'Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs')
-rw-r--r-- | Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs b/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs index 4954c882..236a0a16 100644 --- a/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs +++ b/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs @@ -1,10 +1,13 @@ +using Avalonia.Platform; using Ryujinx.Ava.Ui.Controls; using Silk.NET.Vulkan; using SPB.Graphics.Vulkan; +using SPB.Platform.GLX; using SPB.Platform.Win32; using SPB.Platform.X11; using SPB.Windowing; using System; +using System.Runtime.Versioning; namespace Ryujinx.Ava.Ui { @@ -12,6 +15,18 @@ namespace Ryujinx.Ava.Ui { private NativeWindowBase _window; + [SupportedOSPlatform("linux")] + protected override IPlatformHandle CreateLinux(IPlatformHandle parent) + { + X11Window = new GLXWindow(new NativeHandle(X11.DefaultDisplay), new NativeHandle(parent.Handle)); + WindowHandle = X11Window.WindowHandle.RawHandle; + X11Display = X11Window.DisplayHandle.RawHandle; + + X11Window.Hide(); + + return new PlatformHandle(WindowHandle, "X11"); + } + public SurfaceKHR CreateSurface(Instance instance) { if (OperatingSystem.IsWindows()) |