summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d/scene3drenderer_p.h
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2020-08-21 11:09:44 +0200
committerPaul Lemire <paul.lemire@kdab.com>2020-08-26 15:44:23 +0200
commit54c8d77ef2f4590c4d125274844665f2ea2c4f65 (patch)
tree0655de77b7874906743a6d30227c69f4856d5a81 /src/quick3d/imports/scene3d/scene3drenderer_p.h
parent6ab35d627447830ca293dc6749b715de20b9fd23 (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.h30
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;