summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/renderviews
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2017-09-03 12:09:57 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2017-09-04 21:20:25 +0000
commit5e13bb3f093627af02f86602ab02f98bbf3648a2 (patch)
tree994b0f9fc18344ec5adfbab78f2584948fddc173 /tests/auto/render/renderviews
parente2a214855303f9579fc5c5e941a7e1a7e4080566 (diff)
Add support for FrontToBack sorting
A typical renderer with opaque-transparent passes will often want to use FrontToBack in the opaque pass (even though this is usually not strictly required). Change-Id: I071b62424a5446c86d76c6045c126a599534bf80 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/auto/render/renderviews')
-rw-r--r--tests/auto/render/renderviews/tst_renderviews.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/render/renderviews/tst_renderviews.cpp b/tests/auto/render/renderviews/tst_renderviews.cpp
index 2c8486ed0..d941126e2 100644
--- a/tests/auto/render/renderviews/tst_renderviews.cpp
+++ b/tests/auto/render/renderviews/tst_renderviews.cpp
@@ -205,6 +205,35 @@ private Q_SLOTS:
// RenderCommands are deleted by RenderView dtor
}
+ void checkRenderCommandFrontToBackSorting()
+ {
+ // GIVEN
+ RenderView renderView;
+ QVector<RenderCommand *> rawCommands;
+ QVector<QSortPolicy::SortType> sortTypes;
+
+ sortTypes.push_back(QSortPolicy::FrontToBack);
+
+ for (int i = 0; i < 200; ++i) {
+ RenderCommand *c = new RenderCommand();
+ c->m_depth = float(i);
+ rawCommands.push_back(c);
+ }
+
+ // WHEN
+ renderView.addSortType(sortTypes);
+ renderView.setCommands(rawCommands);
+ renderView.sort();
+
+ // THEN
+ const QVector<RenderCommand *> sortedCommands = renderView.commands();
+ QCOMPARE(rawCommands.size(), sortedCommands.size());
+ for (int j = 1; j < sortedCommands.size(); ++j)
+ QVERIFY(sortedCommands.at(j - 1)->m_depth < sortedCommands.at(j)->m_depth);
+
+ // RenderCommands are deleted by RenderView dtor
+ }
+
void checkRenderCommandStateCostSorting()
{
// GIVEN