summaryrefslogtreecommitdiff
path: root/src/location/labs/qsg
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/labs/qsg')
-rw-r--r--src/location/labs/qsg/qmapcircleobjectqsg.cpp2
-rw-r--r--src/location/labs/qsg/qmappolylineobjectqsg.cpp15
-rw-r--r--src/location/labs/qsg/qmappolylineobjectqsg_p_p.h2
3 files changed, 17 insertions, 2 deletions
diff --git a/src/location/labs/qsg/qmapcircleobjectqsg.cpp b/src/location/labs/qsg/qmapcircleobjectqsg.cpp
index 5b1f5361..750b20f2 100644
--- a/src/location/labs/qsg/qmapcircleobjectqsg.cpp
+++ b/src/location/labs/qsg/qmapcircleobjectqsg.cpp
@@ -297,7 +297,7 @@ QSGNode *QMapCircleObjectPrivateQSG::updateMapObjectNodeGL(QSGNode *oldNode,
combinedMatrix,
cameraCenter,
Qt::SquareCap,
- true);
+ true); // No LOD for circles ATM
m_dataGL->m_borderGeometry.setPreserveGeometry(false);
m_dataGL->m_borderGeometry.markClean();
}
diff --git a/src/location/labs/qsg/qmappolylineobjectqsg.cpp b/src/location/labs/qsg/qmappolylineobjectqsg.cpp
index 817d4df5..8efbfc2f 100644
--- a/src/location/labs/qsg/qmappolylineobjectqsg.cpp
+++ b/src/location/labs/qsg/qmappolylineobjectqsg.cpp
@@ -102,6 +102,18 @@ void QMapPolylineObjectPrivateQSG::updateGeometry()
m_borderGeometry.m_wrapOffset = p.projectionWrapFactor(m_leftBoundMercator) + 1;
}
+/*!
+ \internal
+*/
+unsigned int QMapPolylineObjectPrivateQSG::zoomForLOD(int zoom) const
+{
+ // LOD Threshold currently fixed to 12 for MapPolylineObject(QSG).
+ // ToDo: Consider allowing to change this via DynamicParameter.
+ if (zoom >= 12)
+ return 30;
+ return uint(zoom);
+}
+
QSGNode *QMapPolylineObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode,
VisibleNode **visibleNode,
QSGNode *root,
@@ -127,7 +139,8 @@ QSGNode *QMapPolylineObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode,
combinedMatrix,
cameraCenter,
Qt::SquareCap,
- true);
+ true,
+ zoomForLOD(int(m_map->cameraData().zoomLevel())));
m_borderGeometry.setPreserveGeometry(false);
m_borderGeometry.markClean();
}
diff --git a/src/location/labs/qsg/qmappolylineobjectqsg_p_p.h b/src/location/labs/qsg/qmappolylineobjectqsg_p_p.h
index 63ebcde9..8bba2703 100644
--- a/src/location/labs/qsg/qmappolylineobjectqsg_p_p.h
+++ b/src/location/labs/qsg/qmappolylineobjectqsg_p_p.h
@@ -85,6 +85,8 @@ public:
QGeoMapObjectPrivate *clone() override;
virtual QGeoShape geoShape() const override;
+ unsigned int zoomForLOD(int zoom) const;
+
// Data Members
QDoubleVector2D m_leftBoundMercator;
QGeoMapPolylineGeometryOpenGL m_borderGeometry;