summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-03 13:49:27 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-03 14:37:14 +0200
commitb2e4f1485df801a9e7f3812a66e4e7fc6c578980 (patch)
tree4f47c7a24a3a0896136aff477144aa6c9d87d15c /src
parent7206dc36f1be77515cf6759795b265c986b2e20b (diff)
Enable querying shadow support from graphs
Also some example tweaking. Change-Id: If69e9d3617afc37b88fed4fd0e02ae19f0af7f78 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc6
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp9
-rw-r--r--src/datavisualization/engine/abstract3dcontroller_p.h1
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.cpp9
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.h1
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp5
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h4
7 files changed, 35 insertions, 0 deletions
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc
index 5b251768..891cc5c1 100644
--- a/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc
@@ -45,6 +45,12 @@
*/
/*!
+ \qmlproperty bool AbstractGraph3D::shadowsSupported
+ This read-only property indicates if shadows are supported with the
+ current configuration or not. OpenGL ES2 configurations do not support shadows.
+ */
+
+/*!
\qmlproperty Scene3D AbstractGraph3D::scene
Read only Q3DScene that can be used to access e.g. camera object.
*/
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index acb63f0a..ec18a850 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -730,6 +730,15 @@ QAbstract3DGraph::ShadowQuality Abstract3DController::shadowQuality() const
return m_shadowQuality;
}
+bool Abstract3DController::shadowsSupported() const
+{
+#if defined(QT_OPENGL_ES_2)
+ return false;
+#else
+ return true;
+#endif
+}
+
bool Abstract3DController::isSlicingActive() const
{
return m_scene->isSlicingActive();
diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h
index 5bae17d6..06be450e 100644
--- a/src/datavisualization/engine/abstract3dcontroller_p.h
+++ b/src/datavisualization/engine/abstract3dcontroller_p.h
@@ -202,6 +202,7 @@ public:
virtual void setShadowQuality(QAbstract3DGraph::ShadowQuality quality);
virtual QAbstract3DGraph::ShadowQuality shadowQuality() const;
+ virtual bool shadowsSupported() const;
bool isSlicingActive() const;
void setSlicingActive(bool isSlicing);
diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp
index cce2c235..bde5b585 100644
--- a/src/datavisualization/engine/qabstract3dgraph.cpp
+++ b/src/datavisualization/engine/qabstract3dgraph.cpp
@@ -331,6 +331,15 @@ QAbstract3DGraph::ShadowQuality QAbstract3DGraph::shadowQuality() const
}
/*!
+ * \return true if shadows are supported with the current configuration.
+ * OpenGL ES2 configurations do not support shadows.
+ */
+bool QAbstract3DGraph::shadowsSupported() const
+{
+ return d_ptr->m_visualController->shadowsSupported();
+}
+
+/*!
* \property QAbstract3DGraph::scene
*
* This property contains the read only Q3DScene that can be used to access, for example, a camera object.
diff --git a/src/datavisualization/engine/qabstract3dgraph.h b/src/datavisualization/engine/qabstract3dgraph.h
index adf67912..f11bbd90 100644
--- a/src/datavisualization/engine/qabstract3dgraph.h
+++ b/src/datavisualization/engine/qabstract3dgraph.h
@@ -89,6 +89,7 @@ public:
void setShadowQuality(ShadowQuality quality);
ShadowQuality shadowQuality() const;
+ virtual bool shadowsSupported() const;
Q3DScene *scene() const;
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
index de5aa9aa..d07ea540 100644
--- a/src/datavisualizationqml2/abstractdeclarative.cpp
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -202,6 +202,11 @@ AbstractDeclarative::ShadowQuality AbstractDeclarative::shadowQuality() const
return ShadowQuality(m_controller->shadowQuality());
}
+bool AbstractDeclarative::shadowsSupported() const
+{
+ return m_controller->shadowsSupported();
+}
+
void AbstractDeclarative::setSharedController(Abstract3DController *controller)
{
Q_ASSERT(controller);
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
index cfe62e3c..428ca0b5 100644
--- a/src/datavisualizationqml2/abstractdeclarative_p.h
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -60,6 +60,7 @@ class AbstractDeclarative : public QQuickItem
Q_FLAGS(SelectionFlag SelectionFlags)
Q_PROPERTY(SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged)
Q_PROPERTY(ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged)
+ Q_PROPERTY(bool shadowsSupported READ shadowsSupported NOTIFY shadowsSupportedChanged)
Q_PROPERTY(int msaaSamples READ msaaSamples WRITE setMsaaSamples NOTIFY msaaSamplesChanged)
Q_PROPERTY(Declarative3DScene* scene READ scene NOTIFY sceneChanged)
Q_PROPERTY(QAbstract3DInputHandler* inputHandler READ inputHandler WRITE setInputHandler NOTIFY inputHandlerChanged)
@@ -110,6 +111,8 @@ public:
virtual void setShadowQuality(ShadowQuality quality);
virtual AbstractDeclarative::ShadowQuality shadowQuality() const;
+ virtual bool shadowsSupported() const;
+
virtual void setMsaaSamples(int samples);
virtual int msaaSamples() const;
@@ -158,6 +161,7 @@ protected:
signals:
void selectionModeChanged(SelectionFlags mode);
void shadowQualityChanged(ShadowQuality quality);
+ void shadowsSupportedChanged(bool supported);
void msaaSamplesChanged(int samples);
void sceneChanged(Q3DScene *scene);
void inputHandlerChanged(QAbstract3DInputHandler *inputHandler);