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.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/quick3d/imports/scene3d/scene3ditem_p.h b/src/quick3d/imports/scene3d/scene3ditem_p.h
index 03de6ca0f..eb38149fb 100644
--- a/src/quick3d/imports/scene3d/scene3ditem_p.h
+++ b/src/quick3d/imports/scene3d/scene3ditem_p.h
@@ -73,6 +73,7 @@ class Scene3DCleaner;
class Scene3DView;
class QFrameGraphNode;
class QRenderSurfaceSelector;
+class AspectEngineDestroyer;
class Scene3DItem : public QQuickItem
{
@@ -130,34 +131,36 @@ Q_SIGNALS:
private Q_SLOTS:
void applyRootEntityChange();
- void onBeforeSync();
void requestUpdate();
private:
+ void synchronize();
+ bool prepareQt3DFrame();
QSGNode *updatePaintNode(QSGNode *node, UpdatePaintNodeData *nodeData) override;
void setWindowSurface(QObject *rootObject);
void setCameraAspectModeHelper();
void updateCameraAspectRatio();
void mousePressEvent(QMouseEvent *event) override;
- bool needsRender();
+ bool needsRender(QRenderAspect *renderAspect);
void updateWindowSurface();
void createDummySurface(QWindow *window, QRenderSurfaceSelector *surfaceSelector);
void applyAspects();
QStringList m_aspects;
- // Store as shared pointer so that aspect engine doesn't delete it.
- QSharedPointer<Qt3DCore::QEntity> m_entity;
+ 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;
+ QSGNode *m_lastManagerNode;
+ AspectEngineDestroyer *m_aspectEngineDestroyer;
bool m_multisample;
bool m_dirty;
bool m_dirtyViews;
+ bool m_wasFrameProcessed;
+ bool m_wasSGUpdated;
QPointer<Qt3DRender::QCamera> m_camera;
CameraAspectRatioMode m_cameraAspectRatioMode;