aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs')
-rw-r--r--Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs15
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())