[Bf-blender-cvs] [1d8739b] soc-2014-viewport_fx: need to call releaseNativeHandles in GHOST_WindowX11's destructor, as well as some additional checks in GHOST_ContextGLX's destructor
Jason Wilkins
noreply at git.blender.org
Fri Jul 11 01:02:39 CEST 2014
Commit: 1d8739b014322ddb6a7a5d5cdb911869d3aac69b
Author: Jason Wilkins
Date: Thu Jul 10 17:59:56 2014 -0500
https://developer.blender.org/rB1d8739b014322ddb6a7a5d5cdb911869d3aac69b
need to call releaseNativeHandles in GHOST_WindowX11's destructor, as well as some additional checks in GHOST_ContextGLX's destructor
===================================================================
M intern/ghost/intern/GHOST_ContextGLX.cpp
M intern/ghost/intern/GHOST_WindowX11.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_ContextGLX.cpp b/intern/ghost/intern/GHOST_ContextGLX.cpp
index c05177d..110124c 100644
--- a/intern/ghost/intern/GHOST_ContextGLX.cpp
+++ b/intern/ghost/intern/GHOST_ContextGLX.cpp
@@ -79,21 +79,23 @@ GHOST_ContextGLX::GHOST_ContextGLX(
GHOST_ContextGLX::~GHOST_ContextGLX()
{
- if (m_context != NULL) {
+ if (m_display != NULL) {
activateGLXEW();
- if (m_context == ::glXGetCurrentContext())
- ::glXMakeCurrent(m_display, m_window, NULL);
+ if (m_context != None) {
+ if (m_window != 0 && m_context == ::glXGetCurrentContext())
+ ::glXMakeCurrent(m_display, m_window, NULL);
- if (m_context != s_sharedContext || s_sharedCount == 1) {
- assert(s_sharedCount > 0);
+ if (m_context != s_sharedContext || s_sharedCount == 1) {
+ assert(s_sharedCount > 0);
- s_sharedCount--;
+ s_sharedCount--;
- if (s_sharedCount == 0)
- s_sharedContext = NULL;
+ if (s_sharedCount == 0)
+ s_sharedContext = NULL;
- ::glXDestroyContext(m_display, m_context);
+ ::glXDestroyContext(m_display, m_context);
+ }
}
delete m_glxewContext;
@@ -297,8 +299,7 @@ GHOST_TSuccess GHOST_ContextGLX::initializeDrawingContext()
GHOST_TSuccess GHOST_ContextGLX::releaseNativeHandles()
{
- m_window = 0;
- m_display = NULL;
+ m_window = 0;
return GHOST_kSuccess;
}
diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp
index fbdd0f7..ade76f2 100644
--- a/intern/ghost/intern/GHOST_WindowX11.cpp
+++ b/intern/ghost/intern/GHOST_WindowX11.cpp
@@ -1077,6 +1077,8 @@ GHOST_WindowX11::
delete m_dropTarget;
#endif
+ releaseNativeHandles();
+
XDestroyWindow(m_display, m_window);
}
More information about the Bf-blender-cvs
mailing list