William Horvath (@whrvt) commented about dlls/winex11.drv/opengl.c:
RtlSetLastWin32Error( ERROR_INVALID_HANDLE ); return FALSE; }
if (gl->type != DC_GL_WINDOW)
{
release_gl_drawable( gl );
return FALSE;
}
pthread_mutex_lock( &context_mutex ); set_swap_interval( gl, interval ); pthread_mutex_unlock( &context_mutex );
- switch (gl->type)
- if (!ctx || !gl->offscreen) pglXSwapBuffers( gdi_display, gl->drawable );
```suggestion:-0+0 if (!ctx || !gl->offscreen || !pglXSwapBuffersMscOML) pglXSwapBuffers( gdi_display, gl->drawable ); ```
Otherwise we'd never swap in the else condition, if `pglXSwapBuffersMscOML` isn't available, like with NVIDIA drivers. I assume there's no need to manually flush in this case, either, if I'm to believe this comment which was here before:
``` /* (glX)SwapBuffers has an implicit glFlush effect, however * GLX_MESA_copy_sub_buffer doesn't. Make sure GL is flushed before * copying */ ```
(this is what was causing the breakage you mentioned)