Stop using DisplayLocks for every MakeCurrent context call.
authorShane Kelly <shane.sparky.kelly@gmail.com>
Sat, 9 Dec 2017 07:39:44 +0000 (09:39 +0200)
committerShane Kelly <shane.sparky.kelly@gmail.com>
Sat, 9 Dec 2017 07:39:44 +0000 (09:39 +0200)
src/OpenTK/Platform/X11/X11GLContext.cs

index f661ee4..e0763fa 100644 (file)
@@ -319,14 +319,12 @@ namespace OpenTK.Platform.X11
                         Handle, System.Threading.Thread.CurrentThread.ManagedThreadId, Display));
 
                 bool result;
-                using (new XLock(Display))
+                result = Glx.MakeCurrent(Display, IntPtr.Zero, IntPtr.Zero);
+                if (result)
                 {
-                    result = Glx.MakeCurrent(Display, IntPtr.Zero, IntPtr.Zero);
-                    if (result)
-                    {
-                        currentWindow = null;
-                    }
+                    currentWindow = null;
                 }
+
                 Debug.Print("{0}", result ? "done!" : "failed.");
             }
             else
@@ -342,15 +340,16 @@ namespace OpenTK.Platform.X11
                     throw new InvalidOperationException("Invalid display, window or context.");
                 }
 
-                using (new XLock(Display))
+                result = Glx.MakeCurrent(Display, w.Handle, Handle);
+                if (result)
                 {
-                    result = Glx.MakeCurrent(Display, w.Handle, Handle);
-                    if (result)
-                    {
-                        currentWindow = w;
-                    }
+                    currentWindow = w;
                 }
 
+
+
+
+
                 if (!result)
                 {
                     throw new GraphicsContextException("Failed to make context current.");
@@ -488,10 +487,7 @@ namespace OpenTK.Platform.X11
 
                     if (IsCurrent)
                     {
-                        using (new XLock(display))
-                        {
-                            Glx.MakeCurrent(display, IntPtr.Zero, IntPtr.Zero);
-                        }
+                        Glx.MakeCurrent(display, IntPtr.Zero, IntPtr.Zero);
                     }
                     using (new XLock(display))
                     {