Replace Wgl.GetCurrentDC with cached dc

with
This commit is contained in:
Stefanos A. 2013-12-18 14:51:00 +01:00
parent ea1dbf7f5e
commit 93e7b896c2

View file

@ -29,6 +29,7 @@ namespace OpenTK.Platform.Windows
{ {
static readonly object LoadLock = new object(); static readonly object LoadLock = new object();
IntPtr device_context;
bool vsync_supported; bool vsync_supported;
readonly WinGraphicsMode ModeSelector; readonly WinGraphicsMode ModeSelector;
@ -210,7 +211,7 @@ namespace OpenTK.Platform.Windows
// side-effects (i.e. the old contexts can still be handled // side-effects (i.e. the old contexts can still be handled
// using the new entry points.) // using the new entry points.)
// Sigh... // Sigh...
Wgl.MakeCurrent(window.DeviceContext, Handle.Handle); MakeCurrent(window);
Wgl.LoadAll(); Wgl.LoadAll();
if (sharedContext != null) if (sharedContext != null)
@ -284,9 +285,13 @@ namespace OpenTK.Platform.Windows
success = Wgl.MakeCurrent(IntPtr.Zero, IntPtr.Zero); success = Wgl.MakeCurrent(IntPtr.Zero, IntPtr.Zero);
} }
device_context = wnd.DeviceContext;
if (!success) if (!success)
{
throw new GraphicsContextException(String.Format( throw new GraphicsContextException(String.Format(
"Failed to make context {0} current. Error: {1}", this, Marshal.GetLastWin32Error())); "Failed to make context {0} current. Error: {1}", this, Marshal.GetLastWin32Error()));
}
} }
} }
@ -435,11 +440,10 @@ namespace OpenTK.Platform.Windows
{ {
get get
{ {
return Wgl.GetCurrentDC(); return device_context;
} }
} }
#endregion #endregion
#endregion #endregion