summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d/scene3ditem_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d/imports/scene3d/scene3ditem_p.h')
-rw-r--r--src/quick3d/imports/scene3d/scene3ditem_p.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/quick3d/imports/scene3d/scene3ditem_p.h b/src/quick3d/imports/scene3d/scene3ditem_p.h
index e46bb20af..0beaf94c0 100644
--- a/src/quick3d/imports/scene3d/scene3ditem_p.h
+++ b/src/quick3d/imports/scene3d/scene3ditem_p.h
@@ -71,6 +71,7 @@ class Scene3DRenderer;
class Scene3DCleaner;
class Scene3DView;
class QFrameGraphNode;
+class QRenderSurfaceSelector;
class Scene3DItem : public QQuickItem
{
@@ -138,16 +139,20 @@ private:
void updateCameraAspectRatio();
void mousePressEvent(QMouseEvent *event) override;
bool needsRender();
+ void updateWindowSurface();
+ void createDummySurface(QWindow *window, QRenderSurfaceSelector *surfaceSelector);
+ void applyAspects();
QStringList m_aspects;
- Qt3DCore::QEntity *m_entity;
+ // Store as shared pointer so that aspect engine doesn't delete it.
+ QSharedPointer<Qt3DCore::QEntity> m_entity;
Qt3DCore::QEntity *m_viewHolderEntity;
Qt3DRender::QFrameGraphNode *m_viewHolderFG;
Qt3DCore::QAspectEngine *m_aspectEngine;
+ Qt3DCore::QAspectEngine *m_aspectToDelete;
QRenderAspect *m_renderAspect;
Scene3DRenderer *m_renderer;
- Scene3DCleaner *m_rendererCleaner;
bool m_multisample;
bool m_dirty;
@@ -160,6 +165,7 @@ private:
CompositingMode m_compositingMode;
QOffscreenSurface *m_dummySurface;
QVector<Scene3DView *> m_views;
+ QMetaObject::Connection m_windowConnection;
};
} // Qt3DRender