diff options
7 files changed, 37 insertions, 5 deletions
diff --git a/dist/changes-5.9.4 b/dist/changes-5.9.4 new file mode 100644 index 00000000..d49a42f5 --- /dev/null +++ b/dist/changes-5.9.4 @@ -0,0 +1,25 @@ +Qt 5.9.4 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.9.4 Changes * +**************************************************************************** + + - This release contains only minor code improvements. + diff --git a/examples/datavisualization/qmloscilloscope/datasource.cpp b/examples/datavisualization/qmloscilloscope/datasource.cpp index 843eb3d6..19580e03 100644 --- a/examples/datavisualization/qmloscilloscope/datasource.cpp +++ b/examples/datavisualization/qmloscilloscope/datasource.cpp @@ -40,7 +40,7 @@ Q_DECLARE_METATYPE(QSurface3DSeries *) DataSource::DataSource(QObject *parent) : QObject(parent), m_index(-1), - m_resetArray(0) + m_resetArray(nullptr) { //! [4] qRegisterMetaType<QSurface3DSeries *>(); @@ -126,7 +126,7 @@ void DataSource::update(QSurface3DSeries *series) // If the first time or the dimensions of the cache array have changed, // reconstruct the reset array - if (m_resetArray || series->dataProxy()->rowCount() != newRowCount + if (!m_resetArray || series->dataProxy()->rowCount() != newRowCount || series->dataProxy()->columnCount() != newColumnCount) { m_resetArray = new QSurfaceDataArray(); m_resetArray->reserve(newRowCount); 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) diff --git a/src/datavisualization/engine/abstract3drenderer_p.h b/src/datavisualization/engine/abstract3drenderer_p.h index bf64bc6d..c312b771 100644 --- a/src/datavisualization/engine/abstract3drenderer_p.h +++ b/src/datavisualization/engine/abstract3drenderer_p.h @@ -267,6 +267,7 @@ protected: QPoint m_inputPosition; QHash<QAbstract3DSeries *, SeriesRenderCache *> m_renderCacheList; CustomRenderItemArray m_customRenderCache; + QList<QCustom3DItem *> m_customItemDrawOrder; QRect m_primarySubViewport; QRect m_secondarySubViewport; float m_devicePixelRatio; diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp index cb09082e..284ab408 100644 --- a/src/datavisualization/engine/qabstract3dgraph.cpp +++ b/src/datavisualization/engine/qabstract3dgraph.cpp @@ -442,6 +442,9 @@ void QAbstract3DGraph::clearSelection() * if trying to add a null item, and the index of the item if trying to add an * already added item. * + * Items are rendered in the order they have been inserted. The rendering order needs to + * be taken into account when having solid and transparent items. + * * \sa removeCustomItems(), removeCustomItem(), removeCustomItemAt(), customItems() * * \since QtDataVisualization 1.1 diff --git a/src/datavisualization/engine/shaders/surfaceTexturedFlat.frag b/src/datavisualization/engine/shaders/surfaceTexturedFlat.frag index 7c654e0c..6b1ea91a 100644 --- a/src/datavisualization/engine/shaders/surfaceTexturedFlat.frag +++ b/src/datavisualization/engine/shaders/surfaceTexturedFlat.frag @@ -2,7 +2,6 @@ #extension GL_EXT_gpu_shader4 : require -varying highp vec3 coords_mdl; varying highp vec3 position_wrld; flat varying highp vec3 normal_cmr; varying highp vec3 eyeDirection_cmr; diff --git a/src/datavisualization/engine/shaders/surfaceTexturedShadowFlat.frag b/src/datavisualization/engine/shaders/surfaceTexturedShadowFlat.frag index 496f4777..4a4284e1 100644 --- a/src/datavisualization/engine/shaders/surfaceTexturedShadowFlat.frag +++ b/src/datavisualization/engine/shaders/surfaceTexturedShadowFlat.frag @@ -2,7 +2,7 @@ #extension GL_EXT_gpu_shader4 : require -varying highp vec3 coords_mdl; +varying highp vec2 coords_mdl; varying highp vec3 position_wrld; flat varying highp vec3 normal_cmr; varying highp vec3 eyeDirection_cmr; |