tdf#94006 - need an explicit dispose for GLContext's SystemChildWindow.
Previously we would get an explicit ~OpenGLContext - and potentially leave FMR's around for other OGC users, now we treat the other users properly - we need an explicit dispose() to get Window::dispose ordering right. Change-Id: I5edcbd73399b6db3dbcfb391570f364f9ab0c70d Reviewed-on: https://gerrit.libreoffice.org/18412 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
This commit is contained in:
committed by
Markus Mohrhard
parent
f19049065a
commit
82d25c02f8
@@ -112,6 +112,13 @@ OpenGLContext::~OpenGLContext()
|
||||
assert (mnRefCount == 1);
|
||||
}
|
||||
|
||||
// release associated child-window if we have one
|
||||
void OpenGLContext::dispose()
|
||||
{
|
||||
reset();
|
||||
m_pChildWindow.disposeAndClear();
|
||||
}
|
||||
|
||||
rtl::Reference<OpenGLContext> OpenGLContext::Create()
|
||||
{
|
||||
return rtl::Reference<OpenGLContext>(new OpenGLContext);
|
||||
@@ -1191,6 +1198,7 @@ void OpenGLContext::reset()
|
||||
wglMakeCurrent(NULL, NULL);
|
||||
wglDeleteContext( m_aGLWin.hRC );
|
||||
ReleaseDC( m_aGLWin.hWnd, m_aGLWin.hDC );
|
||||
m_aGLWin.hRC = 0;
|
||||
}
|
||||
#elif defined( MACOSX )
|
||||
OpenGLWrapper::resetCurrent();
|
||||
@@ -1212,6 +1220,7 @@ void OpenGLContext::reset()
|
||||
|
||||
if (mbPixmap && m_aGLWin.glPix != None)
|
||||
glXDestroyPixmap(m_aGLWin.dpy, m_aGLWin.glPix);
|
||||
m_aGLWin.ctx = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user