summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3drenderer.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-31 12:25:00 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-31 13:34:06 +0200
commit3f2dd48dbbb2a67ffc00ddab36b44c0449455126 (patch)
tree3999ef41197f8861a867cb5ec95361e5dd77e297 /src/datavisualization/engine/abstract3drenderer.cpp
parentb44b030ec0c74649daee92160c73cbd2fe93d7c1 (diff)
Cleaning controller callbacks from renderers, part 2
Removed m_controller from renderers so it won't accidentally be used again. Replaced the remaining callbacks with queued signals. Task-number: QTRD-2216 Change-Id: Ib10bc661bcdc3d810baa8b2513f5e6dd67f7207e Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/abstract3drenderer.cpp45
1 files changed, 43 insertions, 2 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp
index 27820067..7aec8adf 100644
--- a/src/datavisualization/engine/abstract3drenderer.cpp
+++ b/src/datavisualization/engine/abstract3drenderer.cpp
@@ -26,9 +26,10 @@
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+Q_DECLARE_METATYPE(QDataVis::ShadowQuality)
+
Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller)
: QObject(0),
- m_controller(controller),
m_hasNegativeValues(false),
m_cachedTheme(),
m_cachedFont(QFont(QStringLiteral("Arial"))),
@@ -50,8 +51,10 @@ Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller)
{
QObject::connect(m_drawer, &Drawer::drawerChanged, this, &Abstract3DRenderer::updateTextures);
- QObject::connect(this, &Abstract3DRenderer::needRender, m_controller,
+ QObject::connect(this, &Abstract3DRenderer::needRender, controller,
&Abstract3DController::needRender, Qt::QueuedConnection);
+ QObject::connect(this, &Abstract3DRenderer::requestShadowQuality, controller,
+ &Abstract3DController::handleRequestShadowQuality, Qt::QueuedConnection);
}
Abstract3DRenderer::~Abstract3DRenderer()
@@ -322,5 +325,43 @@ AxisRenderCache &Abstract3DRenderer::axisCacheForOrientation(Q3DAbstractAxis::Ax
}
}
+void Abstract3DRenderer::lowerShadowQuality()
+{
+ QDataVis::ShadowQuality newQuality = QDataVis::ShadowQualityNone;
+
+ switch (m_cachedShadowQuality) {
+ case QDataVis::ShadowQualityHigh:
+ qWarning("Creating high quality shadows failed. Changing to medium quality.");
+ newQuality = QDataVis::ShadowQualityMedium;
+ break;
+ case QDataVis::ShadowQualityMedium:
+ qWarning("Creating medium quality shadows failed. Changing to low quality.");
+ newQuality = QDataVis::ShadowQualityLow;
+ break;
+ case QDataVis::ShadowQualityLow:
+ qWarning("Creating low quality shadows failed. Switching shadows off.");
+ newQuality = QDataVis::ShadowQualityNone;
+ break;
+ case QDataVis::ShadowQualitySoftHigh:
+ qWarning("Creating soft high quality shadows failed. Changing to soft medium quality.");
+ newQuality = QDataVis::ShadowQualitySoftMedium;
+ break;
+ case QDataVis::ShadowQualitySoftMedium:
+ qWarning("Creating soft medium quality shadows failed. Changing to soft low quality.");
+ newQuality = QDataVis::ShadowQualitySoftLow;
+ break;
+ case QDataVis::ShadowQualitySoftLow:
+ qWarning("Creating soft low quality shadows failed. Switching shadows off.");
+ newQuality = QDataVis::ShadowQualityNone;
+ break;
+ default:
+ // You'll never get here
+ break;
+ }
+
+ emit requestShadowQuality(newQuality);
+ updateShadowQuality(newQuality);
+}
+
QT_DATAVISUALIZATION_END_NAMESPACE