diff options
author | TSRBerry <20988865+TSRBerry@users.noreply.github.com> | 2022-11-26 12:06:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-26 12:06:53 +0100 |
commit | 6f0f99ee2b844284d00da9ef8533acfd96de08fd (patch) | |
tree | 37f8c32145e0df494c25b0390314e9326522a48c /Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs | |
parent | 70f2da8fdf313c22ffcb72d492cc7c865d6cb77e (diff) |
Avalonia: Fix OpenGL crashing on Linux (#3902)1.1.390
* ava: Fix OpenGL crashing on Linux
Fixes a regression from #3901
* Fix formatting
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()) |