diff options
Diffstat (limited to 'src/location/declarativemaps/qdeclarativecirclemapitem.cpp')
-rw-r--r-- | src/location/declarativemaps/qdeclarativecirclemapitem.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/location/declarativemaps/qdeclarativecirclemapitem.cpp b/src/location/declarativemaps/qdeclarativecirclemapitem.cpp index 841c29a8..955de2c0 100644 --- a/src/location/declarativemaps/qdeclarativecirclemapitem.cpp +++ b/src/location/declarativemaps/qdeclarativecirclemapitem.cpp @@ -446,6 +446,7 @@ void QDeclarativeCircleMapItem::updatePolish() */ void QDeclarativeCircleMapItem::possiblySwitchBackend(const QGeoCoordinate &oldCenter, qreal oldRadius, const QGeoCoordinate &newCenter, qreal newRadius) { +#if QT_CONFIG(opengl) if (m_backend != QDeclarativeCircleMapItem::OpenGL) return; @@ -459,6 +460,9 @@ void QDeclarativeCircleMapItem::possiblySwitchBackend(const QGeoCoordinate &oldC QScopedPointer<QDeclarativeCircleMapItemPrivate> d(static_cast<QDeclarativeCircleMapItemPrivate *>(new QDeclarativeCircleMapItemPrivateOpenGL(*this))); m_d.swap(d); } +#else + return; +#endif } /*! @@ -534,9 +538,17 @@ void QDeclarativeCircleMapItem::setBackend(QDeclarativeCircleMapItem::Backend b) if (b == m_backend) return; m_backend = b; - QScopedPointer<QDeclarativeCircleMapItemPrivate> d((m_backend == Software) - ? static_cast<QDeclarativeCircleMapItemPrivate *>(new QDeclarativeCircleMapItemPrivateCPU(*this)) - : static_cast<QDeclarativeCircleMapItemPrivate * >(new QDeclarativeCircleMapItemPrivateOpenGL(*this))); + QScopedPointer<QDeclarativeCircleMapItemPrivate> d( + (m_backend == Software) ? static_cast<QDeclarativeCircleMapItemPrivate *>( + new QDeclarativeCircleMapItemPrivateCPU(*this)) +#if QT_CONFIG(opengl) + : static_cast<QDeclarativeCircleMapItemPrivate *>( + new QDeclarativeCircleMapItemPrivateOpenGL(*this))); +#else + : nullptr); + qFatal("Requested non software rendering backend, but source code is compiled wihtout opengl " + "support"); +#endif m_d.swap(d); m_d->onGeoGeometryChanged(); emit backendChanged(); @@ -565,7 +577,9 @@ QDeclarativeCircleMapItemPrivate::~QDeclarativeCircleMapItemPrivate() {} QDeclarativeCircleMapItemPrivateCPU::~QDeclarativeCircleMapItemPrivateCPU() {} +#if QT_CONFIG(opengl) QDeclarativeCircleMapItemPrivateOpenGL::~QDeclarativeCircleMapItemPrivateOpenGL() {} +#endif bool QDeclarativeCircleMapItemPrivate::preserveCircleGeometry (QList<QDoubleVector2D> &path, const QGeoCoordinate ¢er, qreal distance, const QGeoProjectionWebMercator &p) |