package/qt5/qt5location: fix build failures without opengl
Backport a patch that fixes several "const marked override but does not override" compilation errors when openGL is not enabled. Patch fetched from: https://codereview.qt-project.org/c/qt/qtlocation/+/340353 Fixes: http://autobuild.buildroot.net/results/6378e43d50dfad13a45522492f14c9df7acd64e4 Signed-off-by: Adam Duskett <aduskett@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
5c31953a5b
commit
cea2b082eb
@ -0,0 +1,528 @@
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user