diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2018-01-19 10:36:58 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-01-22 06:08:57 +0000 |
commit | bf6d107b90b8a5e9f24da0c0f551c66952dbf57b (patch) | |
tree | af6cb25075ea8d8ea2fc68904f6a42950dc5e731 /src/render/geometry/qmesh_p.h | |
parent | 2ca0dbadaac328826807c6b9bf2b46dbb955e3d2 (diff) |
QMesh: do not rely on QAspectEngine to create QGeometryFactory
- This would prevent QMesh created without parent/scene to have a proper
geometry factory.
- This avoid passing the engine around
Change-Id: I5091970f96e87ab8b129475a1113ef84ce170388
Task-number: QTBUG-65506
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/render/geometry/qmesh_p.h')
-rw-r--r-- | src/render/geometry/qmesh_p.h | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/src/render/geometry/qmesh_p.h b/src/render/geometry/qmesh_p.h index 76fc351a8..dfbd9016d 100644 --- a/src/render/geometry/qmesh_p.h +++ b/src/render/geometry/qmesh_p.h @@ -59,8 +59,16 @@ QT_BEGIN_NAMESPACE +namespace Qt3DCore { +class QDownloadHelperService; +} + namespace Qt3DRender { +namespace Render { +class NodeManagers; +} + class QT3DRENDERSHARED_PRIVATE_EXPORT QMeshPrivate : public QGeometryRendererPrivate { public: @@ -81,28 +89,44 @@ public: class Q_AUTOTEST_EXPORT MeshDownloadRequest : public Qt3DCore::QDownloadRequest { public: - MeshDownloadRequest(Qt3DCore::QNodeId mesh, QUrl source, Qt3DCore::QAspectEngine *engine); + MeshDownloadRequest(Qt3DCore::QNodeId mesh, QUrl source, Render::NodeManagers *managers); void onCompleted() override; private: Qt3DCore::QNodeId m_mesh; - Qt3DCore::QAspectEngine *m_engine; + Render::NodeManagers *m_nodeManagers; }; class Q_AUTOTEST_EXPORT MeshLoaderFunctor : public QGeometryFactory { public : - MeshLoaderFunctor(QMesh *mesh, Qt3DCore::QAspectEngine *engine, const QByteArray &sourceData = QByteArray()); + MeshLoaderFunctor(QMesh *mesh, const QByteArray &sourceData = QByteArray()); + + void setNodeManagers(Render::NodeManagers *managers) { m_nodeManagers = managers; } + Render::NodeManagers *nodeManagers() const { return m_nodeManagers; } + + void setDownloaderService(Qt3DCore::QDownloadHelperService *service) { m_downloaderService = service; } + Qt3DCore::QDownloadHelperService *downloaderService() const { return m_downloaderService; } + + void setSourceData(const QByteArray &data) { m_sourceData = data; } + QByteArray sourceData() const { return m_sourceData; } + + QUrl sourcePath() const { return m_sourcePath; } + Qt3DCore::QNodeId mesh() const { return m_mesh; } + QString meshName() const { return m_meshName; } + QGeometry *operator()() override; bool operator ==(const QGeometryFactory &other) const override; QT3D_FUNCTOR(MeshLoaderFunctor) +private: Qt3DCore::QNodeId m_mesh; QUrl m_sourcePath; QString m_meshName; - Qt3DCore::QAspectEngine *m_engine; QByteArray m_sourceData; + Render::NodeManagers *m_nodeManagers; + Qt3DCore::QDownloadHelperService *m_downloaderService; }; |