From 582dc50a49c60d7224f9ebbf5b5cbdf687b5f8d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Tue, 5 Nov 2013 13:39:09 +0200 Subject: ES2 shadow message Task-number: QTRD-2536 Change-Id: I82f763547a632ceada070d9440785b218b3a0011 Change-Id: I82f763547a632ceada070d9440785b218b3a0011 Reviewed-by: Miikka Heikkinen --- src/datavisualization/engine/abstract3drenderer.cpp | 18 ++++++++++++++++-- src/datavisualization/engine/abstract3drenderer_p.h | 1 + src/datavisualization/engine/bars3drenderer.cpp | 2 -- src/datavisualization/engine/scatter3drenderer.cpp | 2 -- 4 files changed, 17 insertions(+), 6 deletions(-) (limited to 'src/datavisualization') 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")); -- cgit v1.2.3