/// <summary> /// Makes the context current on the calling thread. /// </summary> /// <param name="ctx"> /// A <see cref="IntPtr"/> that specify the context to be current on the calling thread, bound to /// thise device context. It can be IntPtr.Zero indicating that no context will be current. /// </param> /// <returns> /// It returns a boolean value indicating whether the operation was successful. /// </returns> /// <exception cref="NotSupportedException"> /// Exception thrown if the current platform is not supported. /// </exception> public override bool MakeCurrent(IntPtr ctx) { // Avoid actual call to wglMakeCurrent if it is not necessary // Efficient on simple/nominal applications IntPtr currentContext = Wgl.GetCurrentContext(), currentDc = Wgl.GetCurrentDC(); if (ctx == currentContext && _DeviceContext == currentDc) return (true); // Base implementation return (base.MakeCurrent(ctx)); }