diff options
Diffstat (limited to 'src/quick3d/imports/scene3d/scene3ditem_p.h')
-rw-r--r-- | src/quick3d/imports/scene3d/scene3ditem_p.h | 15 |
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; |