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