summaryrefslogtreecommitdiffstats
path: root/src/render/geometry/qmesh_p.h
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2018-01-19 10:36:58 +0100
committerPaul Lemire <paul.lemire@kdab.com>2018-01-22 06:08:57 +0000
commitbf6d107b90b8a5e9f24da0c0f551c66952dbf57b (patch)
treeaf6cb25075ea8d8ea2fc68904f6a42950dc5e731 /src/render/geometry/qmesh_p.h
parent2ca0dbadaac328826807c6b9bf2b46dbb955e3d2 (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.h32
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;
};