diff options
Diffstat (limited to 'Ryujinx.Ava/Ui/Controls/IGlContextExtension.cs')
-rw-r--r-- | Ryujinx.Ava/Ui/Controls/IGlContextExtension.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Ryujinx.Ava/Ui/Controls/IGlContextExtension.cs b/Ryujinx.Ava/Ui/Controls/IGlContextExtension.cs new file mode 100644 index 00000000..4ca5bd59 --- /dev/null +++ b/Ryujinx.Ava/Ui/Controls/IGlContextExtension.cs @@ -0,0 +1,25 @@ +using Avalonia.OpenGL; +using SPB.Graphics.OpenGL; +using System; + +namespace Ryujinx.Ava.Ui.Controls +{ + public static class IGlContextExtension + { + public static OpenGLContextBase AsOpenGLContextBase(this IGlContext context) + { + var handle = (IntPtr)context.GetType().GetProperty("Handle").GetValue(context); + + if (OperatingSystem.IsWindows()) + { + return new AvaloniaWglContext(handle); + } + else if (OperatingSystem.IsLinux()) + { + return new AvaloniaGlxContext(handle); + } + + return null; + } + } +}
\ No newline at end of file |