summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-02-17 08:19:35 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-02-17 08:24:00 +0200
commita0a443c3abfe2995122ed04ec479ac60072f49a0 (patch)
treeea7463b992f4f12140cf2bafd3e2b0c889ef27aa /src
parent2a05ac83e4423815456e2995b74f80070239ad78 (diff)
Draw surface grid in slice when wireframe only
Task-number: QTRD-2876 Change-Id: Iaa09592250e7e827ef194abc27cee86596ca5d8d Change-Id: Iaa09592250e7e827ef194abc27cee86596ca5d8d Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp50
1 files changed, 26 insertions, 24 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index c5ccbe47..5f3c0a2d 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -329,7 +329,7 @@ void Surface3DRenderer::updateRows(const QVector<Surface3DController::ChangeRow>
updateBuffers = true;
for (int j = 0; j < sampleSpace.width(); j++) {
(*(dstArray.at(row - sampleSpace.y())))[j] =
- srcArray->at(row)->at(j + sampleSpace.x());
+ srcArray->at(row)->at(j + sampleSpace.x());
}
if (cache->isFlatShadingEnabled()) {
@@ -404,7 +404,7 @@ void Surface3DRenderer::updateSliceDataModel(const QPoint &point)
} else {
if (m_selectedSeries) {
SurfaceSeriesRenderCache *cache =
- m_renderCacheList.value(const_cast<QSurface3DSeries *>(m_selectedSeries));
+ m_renderCacheList.value(const_cast<QSurface3DSeries *>(m_selectedSeries));
if (cache)
updateSliceObject(cache, point);
}
@@ -653,34 +653,36 @@ void Surface3DRenderer::drawSlicedScene()
bool drawGrid = false;
foreach (SurfaceSeriesRenderCache *cache, m_renderCacheList) {
- if (cache->sliceSurfaceObject()->indexCount() && cache->surfaceVisible()
- && cache->isSeriesVisible()) {
+ if (cache->sliceSurfaceObject()->indexCount() && cache->isSeriesVisible()
+ && (cache->surfaceVisible() || cache->surfaceGridVisible())) {
if (cache->surfaceGridVisible()) {
glEnable(GL_POLYGON_OFFSET_FILL);
glPolygonOffset(0.5f, 1.0f);
drawGrid = true;
}
- ShaderHelper *surfaceShader = m_surfaceFlatShader;
- surfaceShader->bind();
-
- GLuint colorTexture = cache->baseUniformTexture();;
- if (cache->colorStyle() != Q3DTheme::ColorStyleUniform)
- colorTexture = cache->baseGradientTexture();
-
- // Set shader bindings
- surfaceShader->setUniformValue(surfaceShader->lightP(), lightPos);
- surfaceShader->setUniformValue(surfaceShader->view(), viewMatrix);
- surfaceShader->setUniformValue(surfaceShader->model(), modelMatrix);
- surfaceShader->setUniformValue(surfaceShader->nModel(),
- itModelMatrix.inverted().transposed());
- surfaceShader->setUniformValue(surfaceShader->MVP(), MVPMatrix);
- surfaceShader->setUniformValue(surfaceShader->lightS(), 0.15f);
- surfaceShader->setUniformValue(surfaceShader->ambientS(),
- m_cachedTheme->ambientLightStrength() * 2.3f);
- surfaceShader->setUniformValue(surfaceShader->lightColor(), lightColor);
-
- m_drawer->drawObject(surfaceShader, cache->sliceSurfaceObject(), colorTexture);
+ if (cache->surfaceVisible()) {
+ ShaderHelper *surfaceShader = m_surfaceFlatShader;
+ surfaceShader->bind();
+
+ GLuint colorTexture = cache->baseUniformTexture();;
+ if (cache->colorStyle() != Q3DTheme::ColorStyleUniform)
+ colorTexture = cache->baseGradientTexture();
+
+ // Set shader bindings
+ surfaceShader->setUniformValue(surfaceShader->lightP(), lightPos);
+ surfaceShader->setUniformValue(surfaceShader->view(), viewMatrix);
+ surfaceShader->setUniformValue(surfaceShader->model(), modelMatrix);
+ surfaceShader->setUniformValue(surfaceShader->nModel(),
+ itModelMatrix.inverted().transposed());
+ surfaceShader->setUniformValue(surfaceShader->MVP(), MVPMatrix);
+ surfaceShader->setUniformValue(surfaceShader->lightS(), 0.15f);
+ surfaceShader->setUniformValue(surfaceShader->ambientS(),
+ m_cachedTheme->ambientLightStrength() * 2.3f);
+ surfaceShader->setUniformValue(surfaceShader->lightColor(), lightColor);
+
+ m_drawer->drawObject(surfaceShader, cache->sliceSurfaceObject(), colorTexture);
+ }
}
}