summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/abstract3dcontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavis3d/engine/abstract3dcontroller.cpp')
-rw-r--r--src/datavis3d/engine/abstract3dcontroller.cpp7
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)