summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-11-18 12:29:48 +0000
committerMike Krus <mike.krus@kdab.com>2020-11-20 14:58:17 +0000
commitc6aec09f4f6030fa11b9ba911e4c0df2fe7485b2 (patch)
tree3f2fbc49f76264fefaa8ceccbeacbde1b7ddaae7 /tests
parentb0dbd67d7b95cb4c74a502e04b68e3b3f9dc8e6b (diff)
Introduce QGeometryRenderer::sortIndex
Lets user override the sorting order of entities. [ChangeLog] Add sortIndex property to QGeometryRenderer to explicitly control the order in which entities are rendered Pick-to: 5.15 Change-Id: Iab7fd0d705f7ddcb424a59f86f8c2c28059813d1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp14
-rw-r--r--tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp10
2 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp b/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp
index 9d236b516..3338eb3b3 100644
--- a/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp
+++ b/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp
@@ -67,6 +67,7 @@ private Q_SLOTS:
geometryRenderer.setPrimitiveType(Qt3DRender::QGeometryRenderer::Patches);
geometryRenderer.setGeometry(&geometry);
geometryRenderer.setEnabled(false);
+ geometryRenderer.setSortIndex(42.f);
// WHEN
renderGeometryRenderer.setRenderer(&renderer);
@@ -86,6 +87,8 @@ private Q_SLOTS:
QCOMPARE(renderGeometryRenderer.primitiveType(), geometryRenderer.primitiveType());
QCOMPARE(renderGeometryRenderer.geometryId(), geometry.id());
QCOMPARE(renderGeometryRenderer.isEnabled(), false);
+ QCOMPARE(renderGeometryRenderer.sortIndex(), geometryRenderer.sortIndex());
+ QCOMPARE(renderGeometryRenderer.sortIndex(), 42.f);
}
void checkInitialAndCleanedUpState()
@@ -108,6 +111,7 @@ private Q_SLOTS:
QCOMPARE(renderGeometryRenderer.primitiveType(), Qt3DRender::QGeometryRenderer::Triangles);
QVERIFY(renderGeometryRenderer.geometryFactory().isNull());
QVERIFY(!renderGeometryRenderer.isEnabled());
+ QCOMPARE(renderGeometryRenderer.sortIndex(), -1.f);
// GIVEN
Qt3DRender::QGeometryRenderer geometryRenderer;
@@ -124,6 +128,7 @@ private Q_SLOTS:
geometryRenderer.setPrimitiveType(Qt3DRender::QGeometryRenderer::Patches);
geometryRenderer.setGeometry(&geometry);
geometryRenderer.setEnabled(true);
+ geometryRenderer.setSortIndex(42.f);
// WHEN
renderGeometryRenderer.setRenderer(&renderer);
@@ -143,6 +148,7 @@ private Q_SLOTS:
QCOMPARE(renderGeometryRenderer.primitiveRestartEnabled(), false);
QCOMPARE(renderGeometryRenderer.primitiveType(), Qt3DRender::QGeometryRenderer::Triangles);
QVERIFY(!renderGeometryRenderer.isEnabled());
+ QCOMPARE(renderGeometryRenderer.sortIndex(), -1.f);
}
void checkPropertyChanges()
@@ -303,6 +309,14 @@ private Q_SLOTS:
// THEN
QCOMPARE(backEndRenderer.isEnabled(), true);
QVERIFY(!backEndRenderer.isDirty());
+
+ // WHEN
+ frontEndRenderer.setSortIndex(42.f);
+ backEndRenderer.syncFromFrontEnd(&frontEndRenderer, false);
+
+ // THEN
+ QCOMPARE(backEndRenderer.sortIndex(), 42.f);
+ QVERIFY(!backEndRenderer.isDirty());
}
void checkSetRendererDirtyOnInitialization()
diff --git a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp
index f3560e353..8fd08b133 100644
--- a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp
+++ b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp
@@ -162,6 +162,16 @@ private Q_SLOTS:
QCOMPARE(arbiter.dirtyNodes().front(), geometryRenderer.data());
arbiter.clear();
+
+ // WHEN
+ geometryRenderer->setSortIndex(42.f);
+ QCoreApplication::processEvents();
+
+ // THEN
+ QCOMPARE(arbiter.dirtyNodes().size(), 1);
+ QCOMPARE(arbiter.dirtyNodes().front(), geometryRenderer.data());
+
+ arbiter.clear();
}
void checkGeometryBookkeeping()