summaryrefslogtreecommitdiff
path: root/src/location/declarativemaps/qdeclarativecirclemapitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/declarativemaps/qdeclarativecirclemapitem.cpp')
-rw-r--r--src/location/declarativemaps/qdeclarativecirclemapitem.cpp20
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 &center, qreal distance, const QGeoProjectionWebMercator &p)