diff options
author | Mika Salmela <mika.salmela@qt.io> | 2017-11-14 18:22:19 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@qt.io> | 2017-11-16 07:49:06 +0000 |
commit | 34b202cf744bf7a5d076634ae2f64921ed3bc7e8 (patch) | |
tree | 7706fe4d9fb16e1a0097b4101ca82afbd3e0f420 /src/datavisualization/engine/abstract3drenderer.cpp | |
parent | 32fc1c7d360fe2eff44666fb1a8c4fb7d538ddc7 (diff) |
Render custom items at insertion order
Changes the rendering order of custom items to insertion order.
Task-number: QTBUG-64312
Change-Id: I1ce865a3492c145ffa269cd12baa15ffff8d6a59
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/abstract3drenderer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index dd3212ac..417be0e8 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -755,6 +755,9 @@ void Abstract3DRenderer::updateCustomData(const QList<QCustom3DItem *> &customIt delete renderItem; } } + + m_customItemDrawOrder.clear(); + m_customItemDrawOrder = QList<QCustom3DItem *>(customItems); } void Abstract3DRenderer::updateCustomItems() @@ -1436,7 +1439,8 @@ void Abstract3DRenderer::drawCustomItems(RenderingState state, bool volumeDetected = false; int loopCount = 0; while (loopCount < 2) { - foreach (CustomRenderItem *item, m_customRenderCache) { + for (QCustom3DItem *customItem : qAsConst(m_customItemDrawOrder)) { + CustomRenderItem *item = m_customRenderCache.value(customItem); // Check that the render item is visible, and skip drawing if not // Also check if reflected item is on the "wrong" side, and skip drawing if it is if (!item->isVisible() || ((m_reflectionEnabled && reflection < 0.0f) |