Stop using DisplayLocks for every MakeCurrent context call.

This commit is contained in:
Shane Kelly 2017-12-09 09:39:44 +02:00
parent bbfc98853e
commit 67563520ff

View file

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