diff options
author | Mike Krus <mike.krus@kdab.com> | 2020-11-18 12:29:48 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2020-11-20 14:58:17 +0000 |
commit | c6aec09f4f6030fa11b9ba911e4c0df2fe7485b2 (patch) | |
tree | 3f2fbc49f76264fefaa8ceccbeacbde1b7ddaae7 /tests/auto/render | |
parent | b0dbd67d7b95cb4c74a502e04b68e3b3f9dc8e6b (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/auto/render')
-rw-r--r-- | tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp | 14 | ||||
-rw-r--r-- | tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp | 10 |
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() |