From e584f8753a39d3364aa50b4b89bafa4a0209af7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Fri, 18 Nov 2016 13:12:13 +0200 Subject: Allow light position modification by user Change-Id: I7efd56754bae16990fd11081493da0a37698f76b Task-number: QTRD-1803 Reviewed-by: Miikka Heikkinen --- src/datavisualization/engine/abstract3drenderer.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/datavisualization/engine/abstract3drenderer.cpp') diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index 4a681554..dd3212ac 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -500,6 +500,11 @@ void Abstract3DRenderer::handleShadowQualityChange() { reInitShaders(); + if (m_cachedScene->activeLight()->isAutoPosition() + || m_cachedShadowQuality > QAbstract3DGraph::ShadowQualityNone) { + m_cachedScene->d_ptr->setLightPositionRelativeToCamera(defaultLightPos); + emit needRender(); + } if (m_isOpenGLES && m_cachedShadowQuality != QAbstract3DGraph::ShadowQualityNone) { emit requestShadowQuality(QAbstract3DGraph::ShadowQualityNone); qWarning("Shadows are not yet supported for OpenGL ES2"); @@ -1994,8 +1999,12 @@ void Abstract3DRenderer::updateCameraViewport() m_oldCameraTarget = adjustedTarget; } m_cachedScene->activeCamera()->d_ptr->updateViewMatrix(m_autoScaleAdjustment); - // Set light position (i.e rotate light with activeCamera, a bit above it) - m_cachedScene->d_ptr->setLightPositionRelativeToCamera(defaultLightPos); + // Set light position (i.e rotate light with activeCamera, a bit above it). + // Check if we want to use automatic light positioning even without shadows + if (m_cachedScene->activeLight()->isAutoPosition() + || m_cachedShadowQuality > QAbstract3DGraph::ShadowQualityNone) { + m_cachedScene->d_ptr->setLightPositionRelativeToCamera(defaultLightPos); + } } QT_END_NAMESPACE_DATAVISUALIZATION -- cgit v1.2.3