diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2020-08-21 11:09:44 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2020-08-26 15:44:23 +0200 |
commit | 54c8d77ef2f4590c4d125274844665f2ea2c4f65 (patch) | |
tree | 0655de77b7874906743a6d30227c69f4856d5a81 /src/quick3d/imports/scene3d/scene3drenderer_p.h | |
parent | 6ab35d627447830ca293dc6749b715de20b9fd23 (diff) |
rhi: apply Scene3D changes from 5.15
Should fix potential crash on shutdown
Change-Id: If1b2180532d23ad8187b25014d0d3a51a7eb1ebe
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/quick3d/imports/scene3d/scene3drenderer_p.h')
-rw-r--r-- | src/quick3d/imports/scene3d/scene3drenderer_p.h | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/quick3d/imports/scene3d/scene3drenderer_p.h b/src/quick3d/imports/scene3d/scene3drenderer_p.h index c88094cf7..f42167981 100644 --- a/src/quick3d/imports/scene3d/scene3drenderer_p.h +++ b/src/quick3d/imports/scene3d/scene3drenderer_p.h @@ -95,20 +95,27 @@ public: void allowRender(); void setCompositingMode(Scene3DItem::CompositingMode mode); void setSkipFrame(bool skip); - void setScene3DViews(const QList<Scene3DView *> &views); void init(Scene3DItem *item, Qt3DCore::QAspectEngine *aspectEngine, QRenderAspect *renderAspect); - QRenderAspect *renderAspect() const - { - return m_renderAspect; - } + void setMultisample(bool multisample); + void setBoundingSize(const QSize &size); + + bool multisample() const { return m_multisample; } + QSize boundingSize() const { return m_boundingRectSize; } + + void setScene3DViews(const QList<Scene3DView *> &views); + void init(Qt3DCore::QAspectEngine *aspectEngine, QRenderAspect *renderAspect); + + void beforeSynchronize(); + void setWindow(QQuickWindow *window); + + bool hasShutdown() const { return !m_needsShutdown; } + + QRenderAspect *renderAspect() const { return m_renderAspect; } public Q_SLOTS: void shutdown(); - void onSceneGraphInvalidated(); - void onWindowChanged(QQuickWindow *w); private: - void scheduleRootEntityChange(); class QuickRenderer { @@ -173,12 +180,17 @@ private: QRhi *m_rhi = nullptr; }; - Scene3DItem *m_item; // Will be released by the QQuickWindow/QML Engine Qt3DCore::QAspectEngine *m_aspectEngine; // Will be released by the Scene3DItem QRenderAspect *m_renderAspect; // Will be released by the aspectEngine Scene3DSGNode *m_node; // Will be released by the QtQuick SceneGraph QQuickWindow *m_window; QMutex m_windowMutex; + + QSize m_lastSize; + QSize m_boundingRectSize; + bool m_multisample; + bool m_lastMultisample; + bool m_needsShutdown; bool m_shouldRender; bool m_dirtyViews; |