/// <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>
 protected override bool MakeCurrentCore(IntPtr ctx)
 {
     using (Glx.XLock displayLock = new Glx.XLock(Display)) {
         return(Glx.MakeCurrent(Display, ctx != IntPtr.Zero ? _WindowHandle : IntPtr.Zero, ctx));
     }
 }