diff options
Diffstat (limited to 'src/datavis3d/engine/abstract3dcontroller.cpp')
-rw-r--r-- | src/datavis3d/engine/abstract3dcontroller.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/datavis3d/engine/abstract3dcontroller.cpp b/src/datavis3d/engine/abstract3dcontroller.cpp index cb50faf5..9b6040c1 100644 --- a/src/datavis3d/engine/abstract3dcontroller.cpp +++ b/src/datavis3d/engine/abstract3dcontroller.cpp @@ -30,6 +30,7 @@ #include "q3dinputhandler.h" #endif +#include <QThread> QT_DATAVIS3D_BEGIN_NAMESPACE @@ -69,6 +70,12 @@ Abstract3DController::~Abstract3DController() delete m_cameraHelper; delete m_inputHandler; // Attached axes are children, so no need to explicitly delete them + + // Renderer can be in another thread, don't delete it directly in that case + if (m_renderer && m_renderer->thread() != QThread::currentThread()) + m_renderer->deleteLater(); + else + delete m_renderer; } void Abstract3DController::setRenderer(Abstract3DRenderer *renderer) |