529 lines
21 KiB
Diff
529 lines
21 KiB
Diff
|
From 4bcacd0dc8f73de7b9e5e5f5fa2129fd88bdff3b Mon Sep 17 00:00:00 2001
|
||
|
From: Michal Klocek <michal.klocek@qt.io>
|
||
|
Date: Mon, 11 Jan 2021 16:02:14 +0100
|
||
|
Subject: [PATCH] Fix compilation for no opengl builds
|
||
|
|
||
|
Disables experimental labs qml plugin, which
|
||
|
since a4469cad40 depends heavily on opengl backend.
|
||
|
|
||
|
Fix warnings with msvc when compiling without experimental
|
||
|
plugin.
|
||
|
|
||
|
Task-number: QTBUG-91623
|
||
|
Fixes: QTBUG-88017
|
||
|
Change-Id: I53c5da915981bd05f39134ba57f585d0a0786aa8
|
||
|
|
||
|
Signed-off-by: Michal Klocek <michal.klocek@qt.io>
|
||
|
Signed-off-by: Alex Blasche <alexander.blasche@qt.io>
|
||
|
|
||
|
[Retrieved from: https://codereview.qt-project.org/c/qt/qtlocation/+/340353]
|
||
|
Signed-off-by: Adam Duskett <aduskett@gmail.com>
|
||
|
---
|
||
|
src/location/configure.json | 1 +
|
||
|
.../qdeclarativecirclemapitem.cpp | 20 +++++++++++--
|
||
|
.../qdeclarativecirclemapitem_p_p.h | 2 ++
|
||
|
.../qdeclarativepolygonmapitem.cpp | 27 +++++++++++++----
|
||
|
.../qdeclarativepolygonmapitem_p_p.h | 6 ++++
|
||
|
.../qdeclarativepolylinemapitem.cpp | 30 +++++++++++++++----
|
||
|
.../qdeclarativepolylinemapitem_p.h | 2 ++
|
||
|
.../qdeclarativepolylinemapitem_p_p.h | 5 +++-
|
||
|
.../qdeclarativerectanglemapitem.cpp | 17 +++++++++--
|
||
|
.../qdeclarativerectanglemapitem_p_p.h | 2 ++
|
||
|
src/location/location.pro | 9 +++++-
|
||
|
.../itemsoverlay/qgeomapitemsoverlay.cpp | 9 +++++-
|
||
|
12 files changed, 109 insertions(+), 21 deletions(-)
|
||
|
|
||
|
diff --git a/src/location/configure.json b/src/location/configure.json
|
||
|
index 62ab029..6d01a9a 100644
|
||
|
--- a/src/location/configure.json
|
||
|
+++ b/src/location/configure.json
|
||
|
@@ -9,6 +9,7 @@
|
||
|
"label": "Qt.labs.location experimental QML plugin",
|
||
|
"purpose": "Provides experimental QtLocation QML types",
|
||
|
"section": "Location",
|
||
|
+ "condition": "config.opengl",
|
||
|
"output": [ "privateFeature" ]
|
||
|
},
|
||
|
"geoservices_osm": {
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativecirclemapitem.cpp b/src/location/declarativemaps/qdeclarativecirclemapitem.cpp
|
||
|
index 841c29a..955de2c 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)
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativecirclemapitem_p_p.h b/src/location/declarativemaps/qdeclarativecirclemapitem_p_p.h
|
||
|
index 4cf4217..dbe6c8b 100644
|
||
|
--- a/src/location/declarativemaps/qdeclarativecirclemapitem_p_p.h
|
||
|
+++ b/src/location/declarativemaps/qdeclarativecirclemapitem_p_p.h
|
||
|
@@ -275,6 +275,7 @@ public:
|
||
|
MapPolygonNode *m_node = nullptr;
|
||
|
};
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
class Q_LOCATION_PRIVATE_EXPORT QDeclarativeCircleMapItemPrivateOpenGL: public QDeclarativeCircleMapItemPrivate
|
||
|
{
|
||
|
public:
|
||
|
@@ -443,6 +444,7 @@ public:
|
||
|
MapPolygonNodeGL *m_node = nullptr;
|
||
|
MapPolylineNodeOpenGLExtruded *m_polylinenode = nullptr;
|
||
|
};
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
|
||
|
QT_END_NAMESPACE
|
||
|
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp b/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp
|
||
|
index fa6ee17..af4f55e 100644
|
||
|
--- a/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp
|
||
|
+++ b/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp
|
||
|
@@ -334,6 +334,7 @@ void QGeoMapPolygonGeometry::updateScreenPoints(const QGeoMap &map, qreal stroke
|
||
|
this->translate(QPointF(strokeWidth, strokeWidth));
|
||
|
}
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
QGeoMapPolygonGeometryOpenGL::QGeoMapPolygonGeometryOpenGL(){
|
||
|
}
|
||
|
|
||
|
@@ -344,6 +345,7 @@ void QGeoMapPolygonGeometryOpenGL::updateSourcePoints(const QGeoMap &map, const
|
||
|
geopath.append(QWebMercator::mercatorToCoord(c));
|
||
|
updateSourcePoints(map, geopath);
|
||
|
}
|
||
|
+#endif
|
||
|
|
||
|
// wrapPath always preserves the geometry
|
||
|
// This one handles holes
|
||
|
@@ -452,6 +454,7 @@ static void cutPathEars(const QList<QDoubleVector2D> &wrappedPath,
|
||
|
screenIndices << quint32(i);
|
||
|
}
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
/*!
|
||
|
\internal
|
||
|
*/
|
||
|
@@ -594,7 +597,7 @@ void QGeoMapPolygonGeometryOpenGL::updateQuickGeometry(const QGeoProjectionWebMe
|
||
|
sourceBounds_.setWidth(brect.width());
|
||
|
sourceBounds_.setHeight(brect.height());
|
||
|
}
|
||
|
-
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
/*
|
||
|
* QDeclarativePolygonMapItem Private Implementations
|
||
|
*/
|
||
|
@@ -603,8 +606,9 @@ QDeclarativePolygonMapItemPrivate::~QDeclarativePolygonMapItemPrivate() {}
|
||
|
|
||
|
QDeclarativePolygonMapItemPrivateCPU::~QDeclarativePolygonMapItemPrivateCPU() {}
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
QDeclarativePolygonMapItemPrivateOpenGL::~QDeclarativePolygonMapItemPrivateOpenGL() {}
|
||
|
-
|
||
|
+#endif
|
||
|
/*
|
||
|
* QDeclarativePolygonMapItem Implementation
|
||
|
*/
|
||
|
@@ -689,9 +693,17 @@ void QDeclarativePolygonMapItem::setBackend(QDeclarativePolygonMapItem::Backend
|
||
|
if (b == m_backend)
|
||
|
return;
|
||
|
m_backend = b;
|
||
|
- QScopedPointer<QDeclarativePolygonMapItemPrivate> d((m_backend == Software)
|
||
|
- ? static_cast<QDeclarativePolygonMapItemPrivate *>(new QDeclarativePolygonMapItemPrivateCPU(*this))
|
||
|
- : static_cast<QDeclarativePolygonMapItemPrivate * >(new QDeclarativePolygonMapItemPrivateOpenGL(*this)));
|
||
|
+ QScopedPointer<QDeclarativePolygonMapItemPrivate> d(
|
||
|
+ (m_backend == Software) ? static_cast<QDeclarativePolygonMapItemPrivate *>(
|
||
|
+ new QDeclarativePolygonMapItemPrivateCPU(*this))
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
+ : static_cast<QDeclarativePolygonMapItemPrivate *>(
|
||
|
+ new QDeclarativePolygonMapItemPrivateOpenGL(*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();
|
||
|
@@ -898,6 +910,7 @@ void QDeclarativePolygonMapItem::geometryChanged(const QRectF &newGeometry, cons
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
QSGMaterialShader *MapPolygonMaterial::createShader() const
|
||
|
{
|
||
|
return new MapPolygonShader();
|
||
|
@@ -916,6 +929,7 @@ QSGMaterialType *MapPolygonMaterial::type() const
|
||
|
static QSGMaterialType type;
|
||
|
return &type;
|
||
|
}
|
||
|
+#endif
|
||
|
|
||
|
MapPolygonNode::MapPolygonNode() :
|
||
|
border_(new MapPolylineNode()),
|
||
|
@@ -967,6 +981,7 @@ void MapPolygonNode::update(const QColor &fillColor, const QColor &borderColor,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
MapPolygonNodeGL::MapPolygonNodeGL() :
|
||
|
//fill_material_(this),
|
||
|
fill_material_(),
|
||
|
@@ -1052,5 +1067,5 @@ void MapPolygonShader::updateState(const QSGMaterialShader::RenderState &state,
|
||
|
program()->setUniformValue(m_center_lowpart_id, vecCenter_lowpart);
|
||
|
program()->setUniformValue(m_wrapOffset_id, float(newMaterial->wrapOffset()));
|
||
|
}
|
||
|
-
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
QT_END_NAMESPACE
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativepolygonmapitem_p_p.h b/src/location/declarativemaps/qdeclarativepolygonmapitem_p_p.h
|
||
|
index 8d566e6..5e75deb 100644
|
||
|
--- a/src/location/declarativemaps/qdeclarativepolygonmapitem_p_p.h
|
||
|
+++ b/src/location/declarativemaps/qdeclarativepolygonmapitem_p_p.h
|
||
|
@@ -89,6 +89,7 @@ protected:
|
||
|
bool assumeSimple_;
|
||
|
};
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
class Q_LOCATION_PRIVATE_EXPORT QGeoMapPolygonGeometryOpenGL : public QGeoMapItemGeometry
|
||
|
{
|
||
|
public:
|
||
|
@@ -197,6 +198,7 @@ private:
|
||
|
int m_color_id;
|
||
|
int m_wrapOffset_id;
|
||
|
};
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
|
||
|
class Q_LOCATION_PRIVATE_EXPORT MapPolygonMaterial : public QSGFlatColorMaterial
|
||
|
{
|
||
|
@@ -269,6 +271,7 @@ private:
|
||
|
QSGGeometry geometry_;
|
||
|
};
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
class Q_LOCATION_PRIVATE_EXPORT MapPolygonNodeGL : public MapItemGeometryNode
|
||
|
{
|
||
|
|
||
|
@@ -284,6 +287,7 @@ public:
|
||
|
MapPolygonMaterial fill_material_;
|
||
|
QSGGeometry geometry_;
|
||
|
};
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
|
||
|
class Q_LOCATION_PRIVATE_EXPORT QDeclarativePolygonMapItemPrivate
|
||
|
{
|
||
|
@@ -479,6 +483,7 @@ public:
|
||
|
MapPolygonNode *m_node = nullptr;
|
||
|
};
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
class Q_LOCATION_PRIVATE_EXPORT QDeclarativePolygonMapItemPrivateOpenGL: public QDeclarativePolygonMapItemPrivate
|
||
|
{
|
||
|
public:
|
||
|
@@ -662,6 +667,7 @@ public:
|
||
|
MapPolygonNodeGL *m_node = nullptr;
|
||
|
MapPolylineNodeOpenGLExtruded *m_polylinenode = nullptr;
|
||
|
};
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
|
||
|
QT_END_NAMESPACE
|
||
|
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp b/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp
|
||
|
index d59704d..83d253f 100644
|
||
|
--- a/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp
|
||
|
+++ b/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp
|
||
|
@@ -769,6 +769,7 @@ bool QGeoMapPolylineGeometry::contains(const QPointF &point) const
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
void QGeoMapPolylineGeometryOpenGL::updateSourcePoints(const QGeoMap &map, const QGeoPolygon &poly)
|
||
|
{
|
||
|
if (!sourceDirty_)
|
||
|
@@ -921,6 +922,7 @@ void QGeoMapPolylineGeometryOpenGL::updateQuickGeometry(const QGeoProjectionWebM
|
||
|
sourceBounds_.setWidth(brect.width() + strokeWidth);
|
||
|
sourceBounds_.setHeight(brect.height() + strokeWidth);
|
||
|
}
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
|
||
|
/*
|
||
|
* QDeclarativePolygonMapItem Private Implementations
|
||
|
@@ -928,12 +930,13 @@ void QGeoMapPolylineGeometryOpenGL::updateQuickGeometry(const QGeoProjectionWebM
|
||
|
|
||
|
QDeclarativePolylineMapItemPrivate::~QDeclarativePolylineMapItemPrivate() {}
|
||
|
|
||
|
-
|
||
|
QDeclarativePolylineMapItemPrivateCPU::~QDeclarativePolylineMapItemPrivateCPU() {}
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
QDeclarativePolylineMapItemPrivateOpenGLLineStrip::~QDeclarativePolylineMapItemPrivateOpenGLLineStrip() {}
|
||
|
|
||
|
QDeclarativePolylineMapItemPrivateOpenGLExtruded::~QDeclarativePolylineMapItemPrivateOpenGLExtruded() {}
|
||
|
+#endif
|
||
|
|
||
|
/*
|
||
|
* QDeclarativePolygonMapItem Implementation
|
||
|
@@ -941,10 +944,12 @@ QDeclarativePolylineMapItemPrivateOpenGLExtruded::~QDeclarativePolylineMapItemPr
|
||
|
|
||
|
struct PolylineBackendSelector
|
||
|
{
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
PolylineBackendSelector()
|
||
|
{
|
||
|
backend = (qgetenv("QTLOCATION_OPENGL_ITEMS").toInt()) ? QDeclarativePolylineMapItem::OpenGLExtruded : QDeclarativePolylineMapItem::Software;
|
||
|
}
|
||
|
+#endif
|
||
|
QDeclarativePolylineMapItem::Backend backend = QDeclarativePolylineMapItem::Software;
|
||
|
};
|
||
|
|
||
|
@@ -1236,11 +1241,22 @@ void QDeclarativePolylineMapItem::setBackend(QDeclarativePolylineMapItem::Backen
|
||
|
if (b == m_backend)
|
||
|
return;
|
||
|
m_backend = b;
|
||
|
- QScopedPointer<QDeclarativePolylineMapItemPrivate> d((m_backend == Software)
|
||
|
- ? static_cast<QDeclarativePolylineMapItemPrivate *>(new QDeclarativePolylineMapItemPrivateCPU(*this))
|
||
|
- : ((m_backend == OpenGLExtruded)
|
||
|
- ? static_cast<QDeclarativePolylineMapItemPrivate * >(new QDeclarativePolylineMapItemPrivateOpenGLExtruded(*this))
|
||
|
- : static_cast<QDeclarativePolylineMapItemPrivate * >(new QDeclarativePolylineMapItemPrivateOpenGLLineStrip(*this))));
|
||
|
+ QScopedPointer<QDeclarativePolylineMapItemPrivate> d(
|
||
|
+ (m_backend == Software)
|
||
|
+ ? static_cast<QDeclarativePolylineMapItemPrivate *>(
|
||
|
+ new QDeclarativePolylineMapItemPrivateCPU(*this))
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
+ : ((m_backend == OpenGLExtruded)
|
||
|
+ ? static_cast<QDeclarativePolylineMapItemPrivate *>(
|
||
|
+ new QDeclarativePolylineMapItemPrivateOpenGLExtruded(*this))
|
||
|
+ : static_cast<QDeclarativePolylineMapItemPrivate *>(
|
||
|
+ new QDeclarativePolylineMapItemPrivateOpenGLLineStrip(
|
||
|
+ *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();
|
||
|
@@ -1477,6 +1493,7 @@ void MapPolylineNode::update(const QColor &fillColor,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
MapPolylineNodeOpenGLLineStrip::MapPolylineNodeOpenGLLineStrip()
|
||
|
: geometry_(QSGGeometry::defaultAttributes_Point2D(), 0)
|
||
|
{
|
||
|
@@ -2080,5 +2097,6 @@ unsigned int QGeoMapItemLODGeometry::zoomForLOD(unsigned int zoom)
|
||
|
return res;
|
||
|
return res + 1; // give more resolution when closing in
|
||
|
}
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
|
||
|
QT_END_NAMESPACE
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h b/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h
|
||
|
index 9cd20ea..d3d0ebd 100644
|
||
|
--- a/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h
|
||
|
+++ b/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h
|
||
|
@@ -97,8 +97,10 @@ class Q_LOCATION_PRIVATE_EXPORT QDeclarativePolylineMapItem : public QDeclarativ
|
||
|
public:
|
||
|
enum Backend {
|
||
|
Software = 0,
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
OpenGLLineStrip = 1,
|
||
|
OpenGLExtruded = 2,
|
||
|
+#endif
|
||
|
};
|
||
|
|
||
|
explicit QDeclarativePolylineMapItem(QQuickItem *parent = 0);
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h b/src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h
|
||
|
index 2a921e2..e184391 100644
|
||
|
--- a/src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h
|
||
|
+++ b/src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h
|
||
|
@@ -213,6 +213,7 @@ protected:
|
||
|
QSGGeometry geometry_;
|
||
|
};
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
class Q_LOCATION_PRIVATE_EXPORT QGeoMapItemLODGeometry
|
||
|
{
|
||
|
public:
|
||
|
@@ -566,6 +567,7 @@ protected:
|
||
|
MapPolylineMaterialExtruded fill_material_;
|
||
|
QSGGeometry m_geometryTriangulating;
|
||
|
};
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
|
||
|
class Q_LOCATION_PRIVATE_EXPORT QDeclarativePolylineMapItemPrivate
|
||
|
{
|
||
|
@@ -720,6 +722,7 @@ public:
|
||
|
MapPolylineNode *m_node = nullptr;
|
||
|
};
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
class Q_LOCATION_PRIVATE_EXPORT QDeclarativePolylineMapItemPrivateOpenGLLineStrip: public QDeclarativePolylineMapItemPrivate
|
||
|
{
|
||
|
public:
|
||
|
@@ -884,7 +887,7 @@ public:
|
||
|
|
||
|
MapPolylineNodeOpenGLExtruded *m_nodeTri = nullptr;
|
||
|
};
|
||
|
-
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
QT_END_NAMESPACE
|
||
|
|
||
|
#endif // QDECLARATIVEPOLYLINEMAPITEM_P_P_H
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp b/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp
|
||
|
index 74d2cc1..6192be0 100644
|
||
|
--- a/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp
|
||
|
+++ b/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp
|
||
|
@@ -185,9 +185,18 @@ void QDeclarativeRectangleMapItem::setBackend(QDeclarativeRectangleMapItem::Back
|
||
|
if (b == m_backend)
|
||
|
return;
|
||
|
m_backend = b;
|
||
|
- QScopedPointer<QDeclarativeRectangleMapItemPrivate> d((m_backend == Software)
|
||
|
- ? static_cast<QDeclarativeRectangleMapItemPrivate *>(new QDeclarativeRectangleMapItemPrivateCPU(*this))
|
||
|
- : static_cast<QDeclarativeRectangleMapItemPrivate * >(new QDeclarativeRectangleMapItemPrivateOpenGL(*this)));
|
||
|
+ QScopedPointer<QDeclarativeRectangleMapItemPrivate> d(
|
||
|
+ (m_backend == Software) ? static_cast<QDeclarativeRectangleMapItemPrivate *>(
|
||
|
+ new QDeclarativeRectangleMapItemPrivateCPU(*this))
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
+ : static_cast<QDeclarativeRectangleMapItemPrivate *>(
|
||
|
+ new QDeclarativeRectangleMapItemPrivateOpenGL(*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();
|
||
|
@@ -397,6 +406,8 @@ QDeclarativeRectangleMapItemPrivate::~QDeclarativeRectangleMapItemPrivate() {}
|
||
|
|
||
|
QDeclarativeRectangleMapItemPrivateCPU::~QDeclarativeRectangleMapItemPrivateCPU() {}
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
QDeclarativeRectangleMapItemPrivateOpenGL::~QDeclarativeRectangleMapItemPrivateOpenGL() {}
|
||
|
+#endif
|
||
|
|
||
|
QT_END_NAMESPACE
|
||
|
diff --git a/src/location/declarativemaps/qdeclarativerectanglemapitem_p_p.h b/src/location/declarativemaps/qdeclarativerectanglemapitem_p_p.h
|
||
|
index 65d2f61..f7ecd2a 100644
|
||
|
--- a/src/location/declarativemaps/qdeclarativerectanglemapitem_p_p.h
|
||
|
+++ b/src/location/declarativemaps/qdeclarativerectanglemapitem_p_p.h
|
||
|
@@ -244,6 +244,7 @@ public:
|
||
|
MapPolygonNode *m_node = nullptr;
|
||
|
};
|
||
|
|
||
|
+#if QT_CONFIG(opengl)
|
||
|
class Q_LOCATION_PRIVATE_EXPORT QDeclarativeRectangleMapItemPrivateOpenGL: public QDeclarativeRectangleMapItemPrivate
|
||
|
{
|
||
|
public:
|
||
|
@@ -410,6 +411,7 @@ public:
|
||
|
MapPolygonNodeGL *m_node = nullptr;
|
||
|
MapPolylineNodeOpenGLExtruded *m_polylinenode = nullptr;
|
||
|
};
|
||
|
+#endif // QT_CONFIG(opengl)
|
||
|
|
||
|
QT_END_NAMESPACE
|
||
|
|
||
|
diff --git a/src/location/location.pro b/src/location/location.pro
|
||
|
index b0e2c3f..ae20271 100644
|
||
|
--- a/src/location/location.pro
|
||
|
+++ b/src/location/location.pro
|
||
|
@@ -39,7 +39,14 @@ include(maps/maps.pri)
|
||
|
include(places/places.pri)
|
||
|
include(declarativemaps/declarativemaps.pri)
|
||
|
include(declarativeplaces/declarativeplaces.pri)
|
||
|
-qtConfig(location-labs-plugin):include(labs/labs.pri)
|
||
|
+qtConfig(location-labs-plugin) {
|
||
|
+ include(labs/labs.pri)
|
||
|
+} else {
|
||
|
+ # FIXME: this should be moved out of plugin source code, geojson is referenced from other places
|
||
|
+ # within codebase,however compilation of location-labs-plugin is optional
|
||
|
+ PRIVATE_HEADERS += labs/qgeojson_p.h
|
||
|
+ SOURCES += labs/qgeojson.cpp
|
||
|
+}
|
||
|
|
||
|
HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS
|
||
|
|
||
|
diff --git a/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.cpp b/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.cpp
|
||
|
index 1ebad08..a764438 100644
|
||
|
--- a/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.cpp
|
||
|
+++ b/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.cpp
|
||
|
@@ -103,6 +103,7 @@ QGeoMap::Capabilities QGeoMapItemsOverlay::capabilities() const
|
||
|
bool QGeoMapItemsOverlay::createMapObjectImplementation(QGeoMapObject *obj)
|
||
|
{
|
||
|
#ifndef LOCATIONLABS
|
||
|
+ Q_UNUSED(obj);
|
||
|
return false;
|
||
|
#else
|
||
|
Q_D(QGeoMapItemsOverlay);
|
||
|
@@ -132,7 +133,9 @@ QSGNode *QGeoMapItemsOverlay::updateSceneGraph(QSGNode *node, QQuickWindow *wind
|
||
|
|
||
|
void QGeoMapItemsOverlay::removeMapObject(QGeoMapObject *obj)
|
||
|
{
|
||
|
-#ifdef LOCATIONLABS
|
||
|
+#ifndef LOCATIONLABS
|
||
|
+ Q_UNUSED(obj);
|
||
|
+#else
|
||
|
Q_D(QGeoMapItemsOverlay);
|
||
|
d->removeMapObject(obj);
|
||
|
#endif
|
||
|
@@ -169,7 +172,11 @@ QRectF QGeoMapItemsOverlayPrivate::visibleArea() const
|
||
|
QGeoMapItemsOverlayPrivate::QGeoMapItemsOverlayPrivate(QGeoMappingManagerEngineItemsOverlay *engine, QGeoMapItemsOverlay *map)
|
||
|
: QGeoMapPrivate(engine, new QGeoProjectionWebMercator)
|
||
|
{
|
||
|
+#ifndef LOCATIONLABS
|
||
|
+ Q_UNUSED(map);
|
||
|
+#else
|
||
|
m_qsgSupport.m_map = map;
|
||
|
+#endif
|
||
|
}
|
||
|
|
||
|
QGeoMapItemsOverlayPrivate::~QGeoMapItemsOverlayPrivate()
|
||
|
--
|
||
|
2.33.1
|
||
|
|