After wglMakeCurrent(NULL, NULL); wglSwapBuffers(HDC) actually swaps buffers for the device context. That works on Windows and basically with Wine glx (as glxSwapBuffers also works on drawable and doesn't need GLX context). But that doesn't work for child window rendering: first because of NULL ctx dereference (checked for NULL elsewhere) and next because of GLX_OML_sync_control path.
Fixes Black Desert Online launcher being black screen. The launcher does the following for drawing a frame (while drawing on the child window): ``` wglMakeCurrent(hdc, valid context); <gl drawing> wglMakeCurrent(NULL, NULL); wglSwapBuffers(hdc); ```
-- v3: winex11.drv: Fix wglSwapBuffers() with NULL current context with child window rendering.