aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Ryujinx.Ava/UI/Renderer/SPBOpenGLContext.cs2
-rw-r--r--src/Ryujinx.Graphics.OpenGL/BackgroundContextWorker.cs2
-rw-r--r--src/Ryujinx.Graphics.OpenGL/IOpenGLContext.cs17
-rw-r--r--src/Ryujinx.Graphics.OpenGL/OpenGLRenderer.cs2
-rw-r--r--src/Ryujinx.Headless.SDL2/OpenGL/OpenGLWindow.cs2
-rw-r--r--src/Ryujinx/Ui/SPBOpenGLContext.cs2
6 files changed, 10 insertions, 17 deletions
diff --git a/src/Ryujinx.Ava/UI/Renderer/SPBOpenGLContext.cs b/src/Ryujinx.Ava/UI/Renderer/SPBOpenGLContext.cs
index 5ff756f2..63bf6cf7 100644
--- a/src/Ryujinx.Ava/UI/Renderer/SPBOpenGLContext.cs
+++ b/src/Ryujinx.Ava/UI/Renderer/SPBOpenGLContext.cs
@@ -29,6 +29,8 @@ namespace Ryujinx.Ava.UI.Renderer
_context.MakeCurrent(_window);
}
+ public bool HasContext() => _context.IsCurrent;
+
public static SPBOpenGLContext CreateBackgroundContext(OpenGLContextBase sharedContext)
{
OpenGLContextBase context = PlatformHelper.CreateOpenGLContext(FramebufferFormat.Default, 3, 3, OpenGLContextFlags.Compat, true, sharedContext);
diff --git a/src/Ryujinx.Graphics.OpenGL/BackgroundContextWorker.cs b/src/Ryujinx.Graphics.OpenGL/BackgroundContextWorker.cs
index ae647e38..f22e0df5 100644
--- a/src/Ryujinx.Graphics.OpenGL/BackgroundContextWorker.cs
+++ b/src/Ryujinx.Graphics.OpenGL/BackgroundContextWorker.cs
@@ -30,6 +30,8 @@ namespace Ryujinx.Graphics.OpenGL
_thread.Start();
}
+ public bool HasContext() => _backgroundContext.HasContext();
+
private void Run()
{
InBackground = true;
diff --git a/src/Ryujinx.Graphics.OpenGL/IOpenGLContext.cs b/src/Ryujinx.Graphics.OpenGL/IOpenGLContext.cs
index a11b9cb2..525418d7 100644
--- a/src/Ryujinx.Graphics.OpenGL/IOpenGLContext.cs
+++ b/src/Ryujinx.Graphics.OpenGL/IOpenGLContext.cs
@@ -7,21 +7,6 @@ namespace Ryujinx.Graphics.OpenGL
{
void MakeCurrent();
- // TODO: Support more APIs per platform.
- static bool HasContext()
- {
- if (OperatingSystem.IsWindows())
- {
- return WGLHelper.GetCurrentContext() != IntPtr.Zero;
- }
- else if (OperatingSystem.IsLinux())
- {
- return GLXHelper.GetCurrentContext() != IntPtr.Zero;
- }
- else
- {
- return false;
- }
- }
+ bool HasContext();
}
}
diff --git a/src/Ryujinx.Graphics.OpenGL/OpenGLRenderer.cs b/src/Ryujinx.Graphics.OpenGL/OpenGLRenderer.cs
index 3d774aad..eabcb3c1 100644
--- a/src/Ryujinx.Graphics.OpenGL/OpenGLRenderer.cs
+++ b/src/Ryujinx.Graphics.OpenGL/OpenGLRenderer.cs
@@ -248,7 +248,7 @@ namespace Ryujinx.Graphics.OpenGL
{
// alwaysBackground is ignored, since we cannot switch from the current context.
- if (IOpenGLContext.HasContext())
+ if (_window.BackgroundContext.HasContext())
{
action(); // We have a context already - use that (assuming it is the main one).
}
diff --git a/src/Ryujinx.Headless.SDL2/OpenGL/OpenGLWindow.cs b/src/Ryujinx.Headless.SDL2/OpenGL/OpenGLWindow.cs
index 3fb93a0e..7ea6e148 100644
--- a/src/Ryujinx.Headless.SDL2/OpenGL/OpenGLWindow.cs
+++ b/src/Ryujinx.Headless.SDL2/OpenGL/OpenGLWindow.cs
@@ -96,6 +96,8 @@ namespace Ryujinx.Headless.SDL2.OpenGL
}
}
+ public bool HasContext() => SDL_GL_GetCurrentContext() != IntPtr.Zero;
+
public void Dispose()
{
SDL_GL_DeleteContext(_context);
diff --git a/src/Ryujinx/Ui/SPBOpenGLContext.cs b/src/Ryujinx/Ui/SPBOpenGLContext.cs
index 6f2db697..0c5e5736 100644
--- a/src/Ryujinx/Ui/SPBOpenGLContext.cs
+++ b/src/Ryujinx/Ui/SPBOpenGLContext.cs
@@ -29,6 +29,8 @@ namespace Ryujinx.Ui
_context.MakeCurrent(_window);
}
+ public bool HasContext() => _context.IsCurrent;
+
public static SPBOpenGLContext CreateBackgroundContext(OpenGLContextBase sharedContext)
{
OpenGLContextBase context = PlatformHelper.CreateOpenGLContext(FramebufferFormat.Default, 3, 3, OpenGLContextFlags.Compat, true, sharedContext);