From 948d0357850918596b56f38a6dc6e25cd186f5a0 Mon Sep 17 00:00:00 2001 From: Sean Harmer Date: Tue, 19 Apr 2016 17:16:52 +0100 Subject: Strip out cloning subsystem Change-Id: I4def54a11de0f9c676ef6b2d7bd8e723ded25ab9 Reviewed-by: Paul Lemire --- .../qgeometryrenderer/tst_qgeometryrenderer.cpp | 63 +++++++++++----------- 1 file changed, 30 insertions(+), 33 deletions(-) (limited to 'tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp') 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 #include #include +#include #include #include #include #include #include +#include #include #include @@ -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(QNode::clone(geometryRenderer)); + Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(geometryRenderer); + QVector 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 creationChangeData = + qSharedPointerCast>(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) -- cgit v1.2.3