diff options
author | Mika Salmela <mika.salmela@digia.com> | 2014-08-28 10:29:39 +0300 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2014-08-28 10:41:50 +0300 |
commit | 9a40207d83b66072fff4aaa03eca15b02f8a11c1 (patch) | |
tree | 57de189f7f06c0401bf63550b107a571736ce743 /src/datavisualization/engine/scatter3drenderer.cpp | |
parent | b2a039ca1db7cbf3e7b5950b277ac28b722df400 (diff) |
Range gradient for points on static optimization
Change-Id: Ic44a6a28617f272540d146f02bf50b4bd84cd9c8
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/scatter3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/scatter3drenderer.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp index 4b6a258e..0a670fe8 100644 --- a/src/datavisualization/engine/scatter3drenderer.cpp +++ b/src/datavisualization/engine/scatter3drenderer.cpp @@ -181,6 +181,7 @@ void Scatter3DRenderer::updateData() points = new ScatterPointBufferHelper(); cache->setBufferPoints(points); } + points->setScaleY(m_scaleY); points->load(cache); } else { ScatterObjectBufferHelper *object = cache->bufferObject(); @@ -219,7 +220,7 @@ void Scatter3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesLis if (changeTracker.baseGradientChanged || changeTracker.colorStyleChanged) { ScatterSeriesRenderCache *cache = static_cast<ScatterSeriesRenderCache *>(m_renderCacheList.value(scatterSeries)); - if (cache && cache->mesh() != QAbstract3DSeries::MeshPoint) + if (cache) cache->setStaticObjectUVDirty(true); } } @@ -265,8 +266,13 @@ void Scatter3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesLis } if (cache->staticObjectUVDirty()) { - ScatterObjectBufferHelper *object = cache->bufferObject(); - object->updateUVs(cache); + if (cache->mesh() == QAbstract3DSeries::MeshPoint) { + ScatterPointBufferHelper *object = cache->bufferPoints(); + object->updateUVs(cache); + } else { + ScatterObjectBufferHelper *object = cache->bufferObject(); + object->updateUVs(cache); + } cache->setStaticObjectUVDirty(false); } } @@ -522,7 +528,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) if (optimizationDefault) m_drawer->drawPoint(m_depthShader); else - m_drawer->drawPoints(m_depthShader, cache->bufferPoints()); + m_drawer->drawPoints(m_depthShader, cache->bufferPoints(), 0); } else { if (optimizationDefault) { // 1st attribute buffer : vertices @@ -853,6 +859,12 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) gradientTexture = cache->baseGradientTexture(); } + if (!optimizationDefault && rangeGradientPoints) { + dotShader = m_labelShader; + dotShader->bind(); + gradientTexture = cache->baseGradientTexture(); + } + GLfloat lightStrength = m_cachedTheme->lightStrength(); if (optimizationDefault && selectedSeries && (m_selectedItemIndex == i)) { if (useColor) @@ -905,7 +917,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) if (optimizationDefault) m_drawer->drawPoint(dotShader); else - m_drawer->drawPoints(dotShader, cache->bufferPoints()); + m_drawer->drawPoints(dotShader, cache->bufferPoints(), gradientTexture); } } else #endif @@ -923,7 +935,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) if (optimizationDefault) m_drawer->drawPoint(dotShader); else - m_drawer->drawPoints(dotShader, cache->bufferPoints()); + m_drawer->drawPoints(dotShader, cache->bufferPoints(), gradientTexture); } } } |