diff options
author | Erik Faye-Lund <erik.faye-lund@collabora.com> | 2020-05-05 13:51:04 +0200 |
---|---|---|
committer | Erik Faye-Lund <erik.faye-lund@collabora.com> | 2020-05-07 21:56:35 +0200 |
commit | 5b7b7975e656fa93e3aa35585fc285676a476192 (patch) | |
tree | 480ed95fd029455a507a4ef204e5e8b2da558459 | |
parent | 17d959043d768dff67c7872406ef6886008c9428 (diff) |
Revert "wglgears: do not re-create window after re-creating context"
This fix wasn't a great idea; even if it seems to work fine on modern
Windows versions, the documentation says that SetPixelFormat can only be
set once per window. And worse, Mesa's OpenGL32.DLL emulation code seems
to depend on this, ignoring any consecutive calls. This means that with
Mesa, we get no multisampling here.
So, let's revert this, and instead follow what the docs say.
This reverts commit 27813895adef5866e9aee62975c7f5965cd9c601.
Reviewed-by: Brian Paul <brianp@vmware.com>
-rw-r--r-- | src/wgl/wglgears.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/wgl/wglgears.c b/src/wgl/wglgears.c index 49e3b611..5769c07e 100644 --- a/src/wgl/wglgears.c +++ b/src/wgl/wglgears.c @@ -486,6 +486,16 @@ make_window(const char *name, int x, int y, int width, int height) /* now, create new context with new pixel format */ wglMakeCurrent(hDC, NULL); wglDeleteContext(hRC); + DeleteDC(hDC); + + hWnd = CreateWindowEx(dwExStyle, name, name, + WS_CLIPSIBLINGS | WS_CLIPCHILDREN | dwStyle, + 0, 0, + winrect.right - winrect.left, + winrect.bottom - winrect.top, + NULL, NULL, hInst, NULL); + + hDC = GetDC(hWnd); SetPixelFormat(hDC, pixelFormat, &pfd); hRC = wglCreateContext(hDC); wglMakeCurrent(hDC, hRC); |