diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-11-05 13:39:09 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-05 13:44:11 +0200 |
commit | 582dc50a49c60d7224f9ebbf5b5cbdf687b5f8d0 (patch) | |
tree | ceaf2d1d4c361db8ce8784c99101232c56818379 /src/datavisualization | |
parent | 91745c4b2f7933dfcb0c9eca28e87ad0fae93e66 (diff) |
ES2 shadow message
Task-number: QTRD-2536
Change-Id: I82f763547a632ceada070d9440785b218b3a0011
Change-Id: I82f763547a632ceada070d9440785b218b3a0011
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization')
4 files changed, 17 insertions, 6 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index 269c1302..6e3d8d81 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -167,8 +167,9 @@ void Abstract3DRenderer::updateTheme(Theme theme) m_cachedTheme.setFromTheme(theme); m_drawer->setTheme(m_cachedTheme); + // Re-initialize shaders - handleShadowQualityChange(); + reInitShaders(); } void Abstract3DRenderer::updateScene(Q3DScene *scene) @@ -179,7 +180,7 @@ void Abstract3DRenderer::updateScene(Q3DScene *scene) m_cachedScene->d_ptr->sync(*scene->d_ptr); } -void Abstract3DRenderer::handleShadowQualityChange() +void Abstract3DRenderer::reInitShaders() { #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowQualityNone) { @@ -216,6 +217,19 @@ void Abstract3DRenderer::handleShadowQualityChange() #endif } +void Abstract3DRenderer::handleShadowQualityChange() +{ + reInitShaders(); + +#if defined(QT_OPENGL_ES_2) + if (m_cachedShadowQuality != QDataVis::ShadowQualityNone) { + emit requestShadowQuality(QDataVis::ShadowQualityNone); + qWarning("Shadows are not yet supported for OpenGL ES2"); + m_cachedShadowQuality = QDataVis::ShadowQualityNone; + } +#endif +} + void Abstract3DRenderer::updateFont(const QFont &font) { m_cachedFont = font; diff --git a/src/datavisualization/engine/abstract3drenderer_p.h b/src/datavisualization/engine/abstract3drenderer_p.h index 133ef020..70f0dc80 100644 --- a/src/datavisualization/engine/abstract3drenderer_p.h +++ b/src/datavisualization/engine/abstract3drenderer_p.h @@ -135,6 +135,7 @@ protected: virtual void initializeOpenGL(); + void reInitShaders(); virtual void handleShadowQualityChange(); virtual void handleResize(); virtual void loadMeshFile() = 0; diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp index 5b4f9fcc..8ca943fb 100644 --- a/src/datavisualization/engine/bars3drenderer.cpp +++ b/src/datavisualization/engine/bars3drenderer.cpp @@ -120,8 +120,6 @@ void Bars3DRenderer::initializeOpenGL() Abstract3DRenderer::initializeOpenGL(); // Initialize shaders - handleShadowQualityChange(); - initLabelShaders(QStringLiteral(":/shaders/vertexLabel"), QStringLiteral(":/shaders/fragmentLabel")); diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp index 285560e3..e338b59f 100644 --- a/src/datavisualization/engine/scatter3drenderer.cpp +++ b/src/datavisualization/engine/scatter3drenderer.cpp @@ -108,8 +108,6 @@ void Scatter3DRenderer::initializeOpenGL() Abstract3DRenderer::initializeOpenGL(); // Initialize shaders - handleShadowQualityChange(); - initLabelShaders(QStringLiteral(":/shaders/vertexLabel"), QStringLiteral(":/shaders/fragmentLabel")); |