summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-08-03 18:50:45 +0200
committerPaul Lemire <paul.lemire@kdab.com>2015-08-07 11:30:31 +0000
commit661815d71c5748b43e5c6cf2c36c54dc128142a9 (patch)
tree16d5fb89b914a59cccee016da6180540de11f91b /tests
parent8efa2c26a51e57b0f519ba45d96c363d6bfb46e7 (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.cpp16
-rw-r--r--tests/auto/render/rendergeometryrenderer/tst_rendergeometryrenderer.cpp18
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);