summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-19 17:16:52 +0100
committerPaul Lemire <paul.lemire@kdab.com>2016-04-29 16:22:24 +0000
commit948d0357850918596b56f38a6dc6e25cd186f5a0 (patch)
tree2a522442757660b6eadecd3a6decde1f34ab5740 /tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp
parentae5ac1128bc61176f797f6e248d18b9ced051ad9 (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.cpp63
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)