diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-03-03 13:49:27 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-03-03 14:37:14 +0200 |
commit | b2e4f1485df801a9e7f3812a66e4e7fc6c578980 (patch) | |
tree | 4f47c7a24a3a0896136aff477144aa6c9d87d15c /src | |
parent | 7206dc36f1be77515cf6759795b265c986b2e20b (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')
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); |