diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-19 17:16:52 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2016-04-29 16:22:24 +0000 |
commit | 948d0357850918596b56f38a6dc6e25cd186f5a0 (patch) | |
tree | 2a522442757660b6eadecd3a6decde1f34ab5740 /tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp | |
parent | ae5ac1128bc61176f797f6e248d18b9ced051ad9 (diff) |
Strip out cloning subsystem
Change-Id: I4def54a11de0f9c676ef6b2d7bd8e723ded25ab9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp')
-rw-r--r-- | tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp index c025619ad..626066a0d 100644 --- a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp +++ b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp @@ -29,12 +29,14 @@ #include <QtTest/QTest> #include <Qt3DCore/private/qnode_p.h> #include <Qt3DCore/private/qscene_p.h> +#include <Qt3DCore/private/qnodecreatedchangegenerator_p.h> #include <Qt3DRender/qgeometryrenderer.h> #include <Qt3DRender/qgeometryfactory.h> #include <Qt3DRender/qgeometry.h> #include <Qt3DRender/qattribute.h> #include <Qt3DRender/qbuffer.h> +#include <Qt3DRender/private/qgeometryrenderer_p.h> #include <Qt3DCore/QNodePropertyChange> #include <Qt3DCore/QNodeAddedPropertyChange> @@ -68,9 +70,7 @@ private: int m_size; }; -// We need to call QNode::clone which is protected -// So we sublcass QNode instead of QObject -class tst_QGeometryRenderer: public Qt3DCore::QNode +class tst_QGeometryRenderer: public QObject { Q_OBJECT @@ -116,31 +116,35 @@ private Q_SLOTS: QFETCH(Qt3DRender::QGeometryRenderer *, geometryRenderer); // WHEN - Qt3DRender::QGeometryRenderer *clone = static_cast<Qt3DRender::QGeometryRenderer *>(QNode::clone(geometryRenderer)); + Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(geometryRenderer); + QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges(); // THEN - QVERIFY(clone != Q_NULLPTR); - - QCOMPARE(clone->id(), geometryRenderer->id()); - QCOMPARE(clone->instanceCount(), geometryRenderer->instanceCount()); - QCOMPARE(clone->vertexCount(), geometryRenderer->vertexCount()); - QCOMPARE(clone->indexOffset(), geometryRenderer->indexOffset()); - QCOMPARE(clone->firstInstance(), geometryRenderer->firstInstance()); - QCOMPARE(clone->restartIndexValue(), geometryRenderer->restartIndexValue()); - QCOMPARE(clone->primitiveRestartEnabled(), geometryRenderer->primitiveRestartEnabled()); - QCOMPARE(clone->primitiveType(), geometryRenderer->primitiveType()); - QCOMPARE(clone->verticesPerPatch(), geometryRenderer->verticesPerPatch()); - - if (geometryRenderer->geometry() != Q_NULLPTR) { - QVERIFY(clone->geometry() != Q_NULLPTR); - QCOMPARE(clone->geometry()->id(), geometryRenderer->geometry()->id()); - } - - QCOMPARE(clone->geometryFactory(), geometryRenderer->geometryFactory()); - if (geometryRenderer->geometryFactory()) { - QVERIFY(clone->geometryFactory()); - QVERIFY(*clone->geometryFactory() == *geometryRenderer->geometryFactory()); - } + QCOMPARE(creationChanges.size(), 1 + (geometryRenderer->geometry() ? 1 : 0)); + + const Qt3DCore::QNodeCreatedChangePtr<Qt3DRender::QGeometryRendererData> creationChangeData = + qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DRender::QGeometryRendererData>>(creationChanges.first()); + const Qt3DRender::QGeometryRendererData &cloneData = creationChangeData->data; + + QCOMPARE(geometryRenderer->id(), creationChangeData->subjectId()); + QCOMPARE(geometryRenderer->isEnabled(), creationChangeData->isNodeEnabled()); + QCOMPARE(geometryRenderer->metaObject(), creationChangeData->metaObject()); + + QCOMPARE(cloneData.instanceCount, geometryRenderer->instanceCount()); + QCOMPARE(cloneData.vertexCount, geometryRenderer->vertexCount()); + QCOMPARE(cloneData.indexOffset, geometryRenderer->indexOffset()); + QCOMPARE(cloneData.firstInstance, geometryRenderer->firstInstance()); + QCOMPARE(cloneData.restartIndexValue, geometryRenderer->restartIndexValue()); + QCOMPARE(cloneData.primitiveRestart, geometryRenderer->primitiveRestartEnabled()); + QCOMPARE(cloneData.primitiveType, geometryRenderer->primitiveType()); + QCOMPARE(cloneData.verticesPerPatch, geometryRenderer->verticesPerPatch()); + + if (geometryRenderer->geometry() != Q_NULLPTR) + QCOMPARE(cloneData.geometryId, geometryRenderer->geometry()->id()); + + QCOMPARE(cloneData.geometryFactory, geometryRenderer->geometryFactory()); + if (geometryRenderer->geometryFactory()) + QVERIFY(*cloneData.geometryFactory == *geometryRenderer->geometryFactory()); } void checkPropertyUpdates() @@ -300,13 +304,6 @@ private Q_SLOTS: arbiter.events.clear(); } - -protected: - Qt3DCore::QNode *doClone() const Q_DECL_OVERRIDE - { - return Q_NULLPTR; - } - }; QTEST_MAIN(tst_QGeometryRenderer) |