diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2015-08-03 18:50:45 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2015-08-07 11:30:31 +0000 |
commit | 661815d71c5748b43e5c6cf2c36c54dc128142a9 (patch) | |
tree | 16d5fb89b914a59cccee016da6180540de11f91b /tests | |
parent | 8efa2c26a51e57b0f519ba45d96c363d6bfb46e7 (diff) |
QGeometryRenderer: add a primitiveCount property
This will be used as the count to pass to the draw calls
Change-Id: I2bccb35775cd6ba1132944d4d91aa5724ab00033
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp | 16 | ||||
-rw-r--r-- | tests/auto/render/rendergeometryrenderer/tst_rendergeometryrenderer.cpp | 18 |
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp index 6641aa1b4..39a0ad7c0 100644 --- a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp +++ b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp @@ -149,6 +149,7 @@ private Q_SLOTS: geometry1->setRestartIndex(-1); geometry1->setPrimitiveRestart(false); geometry1->setPrimitiveType(Qt3D::QGeometryRenderer::Triangles); + geometry1->setPrimitiveCount(15); QTest::newRow("triangle") << geometry1; Qt3D::QGeometryRenderer *geometry2 = new Qt3D::QGeometryRenderer(); @@ -157,6 +158,7 @@ private Q_SLOTS: geometry2->setBaseVertex(58); geometry2->setBaseInstance(10); geometry2->setRestartIndex(65535); + geometry1->setPrimitiveCount(2056); geometry2->setPrimitiveRestart(true); geometry2->setPrimitiveType(Qt3D::QGeometryRenderer::Lines); QTest::newRow("lines with restart") << geometry2; @@ -175,6 +177,7 @@ private Q_SLOTS: QCOMPARE(clone->id(), geometryRenderer->id()); QCOMPARE(clone->instanceCount(), geometryRenderer->instanceCount()); + QCOMPARE(clone->primitiveCount(), geometryRenderer->primitiveCount()); QCOMPARE(clone->baseVertex(), geometryRenderer->baseVertex()); QCOMPARE(clone->baseInstance(), geometryRenderer->baseInstance()); QCOMPARE(clone->restartIndex(), geometryRenderer->restartIndex()); @@ -207,6 +210,19 @@ private Q_SLOTS: arbiter.events.clear(); // WHEN + geometryRenderer->setPrimitiveCount(1340); + QCoreApplication::processEvents(); + + // THEN + QCOMPARE(arbiter.events.size(), 1); + change = arbiter.events.first().staticCast<Qt3D::QScenePropertyChange>(); + QCOMPARE(change->propertyName(), "primitiveCount"); + QCOMPARE(change->value().value<int>(), 1340); + QCOMPARE(change->type(), Qt3D::NodeUpdated); + + arbiter.events.clear(); + + // WHEN geometryRenderer->setBaseVertex(883); QCoreApplication::processEvents(); diff --git a/tests/auto/render/rendergeometryrenderer/tst_rendergeometryrenderer.cpp b/tests/auto/render/rendergeometryrenderer/tst_rendergeometryrenderer.cpp index d6a933240..086e6330a 100644 --- a/tests/auto/render/rendergeometryrenderer/tst_rendergeometryrenderer.cpp +++ b/tests/auto/render/rendergeometryrenderer/tst_rendergeometryrenderer.cpp @@ -52,6 +52,7 @@ private Q_SLOTS: Qt3D::QGeometry geometry; geometryRenderer.setInstanceCount(1584); + geometryRenderer.setPrimitiveCount(1609); geometryRenderer.setBaseVertex(750); geometryRenderer.setBaseInstance(883); geometryRenderer.setRestartIndex(65536); @@ -66,6 +67,7 @@ private Q_SLOTS: QCOMPARE(renderGeometryRenderer.peerUuid(), geometryRenderer.id()); QCOMPARE(renderGeometryRenderer.isDirty(), true); QCOMPARE(renderGeometryRenderer.instanceCount(), geometryRenderer.instanceCount()); + QCOMPARE(renderGeometryRenderer.primitiveCount(), geometryRenderer.primitiveCount()); QCOMPARE(renderGeometryRenderer.baseVertex(), geometryRenderer.baseVertex()); QCOMPARE(renderGeometryRenderer.baseInstance(), geometryRenderer.baseInstance()); QCOMPARE(renderGeometryRenderer.restartIndex(), geometryRenderer.restartIndex()); @@ -84,6 +86,7 @@ private Q_SLOTS: QVERIFY(renderGeometryRenderer.geometryId().isNull()); QCOMPARE(renderGeometryRenderer.isDirty(), false); QCOMPARE(renderGeometryRenderer.instanceCount(), 0); + QCOMPARE(renderGeometryRenderer.primitiveCount(), 0); QCOMPARE(renderGeometryRenderer.baseVertex(), 0); QCOMPARE(renderGeometryRenderer.baseInstance(), 0); QCOMPARE(renderGeometryRenderer.restartIndex(), -1); @@ -95,6 +98,7 @@ private Q_SLOTS: Qt3D::QGeometry geometry; geometryRenderer.setInstanceCount(454); + geometryRenderer.setPrimitiveCount(350); geometryRenderer.setBaseVertex(427); geometryRenderer.setBaseInstance(383); geometryRenderer.setRestartIndex(555); @@ -111,6 +115,7 @@ private Q_SLOTS: QVERIFY(renderGeometryRenderer.geometryId().isNull()); QCOMPARE(renderGeometryRenderer.isDirty(), false); QCOMPARE(renderGeometryRenderer.instanceCount(), 0); + QCOMPARE(renderGeometryRenderer.primitiveCount(), 0); QCOMPARE(renderGeometryRenderer.baseVertex(), 0); QCOMPARE(renderGeometryRenderer.baseInstance(), 0); QCOMPARE(renderGeometryRenderer.restartIndex(), -1); @@ -140,6 +145,19 @@ private Q_SLOTS: // WHEN updateChange.reset(new Qt3D::QScenePropertyChange(Qt3D::NodeUpdated, Qt3D::QSceneChange::Node, Qt3D::QNodeId())); + updateChange->setPropertyName("primitiveCount"); + updateChange->setValue(56); + renderGeometryRenderer.sceneChangeEvent(updateChange); + + // THEN + QCOMPARE(renderGeometryRenderer.primitiveCount(), 56); + QVERIFY(renderGeometryRenderer.isDirty()); + + renderGeometryRenderer.unsetDirty(); + QVERIFY(!renderGeometryRenderer.isDirty()); + + // WHEN + updateChange.reset(new Qt3D::QScenePropertyChange(Qt3D::NodeUpdated, Qt3D::QSceneChange::Node, Qt3D::QNodeId())); updateChange->setPropertyName("baseVertex"); updateChange->setValue(65); renderGeometryRenderer.sceneChangeEvent(updateChange); |