Commit b4d2195e authored by Nicholas Miell's avatar Nicholas Miell Committed by Brian Paul
Browse files

glean: Release GLX context before destroying the window



GLEAN::Window::~Window was calling XDestroyWindow on the currently
bound GLX drawable, which would cause the subsequent test to explode
when it called glXMakeCurrent and Mesa attempted to flush the
outstanding state to the now destroyed window.

Now the Window destructor checks if the window being destroyed is
bound to the current GLX context, and if so, releases the current GLX
context before destroying the window.

I also included the equivalent WGL change, but that is untested.
The AGL and BeOS versions are untouched, but probably needs something
similar.

With this change, the glean basic sanity test now passes on Mesa swrast.
Signed-off-by: Nicholas Miell's avatarNicholas Miell <nmiell@gmail.com>
Signed-off-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
parent f1862c32
......@@ -198,8 +198,12 @@ DrawingSurface::commonDestructorCode() {
Window::~Window() {
#if defined(__X11__)
if (glXGetCurrentDrawable() == xWindow)
glXMakeCurrent(winSys->dpy, None, NULL);
XDestroyWindow(winSys->dpy, xWindow);
#elif defined(__WIN__)
if (wglGetCurrentDC() == hDC)
wglMakeCurrent(NULL, NULL);
ReleaseDC(hWindow,hDC);
DestroyWindow(hWindow);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment