summaryrefslogtreecommitdiff
path: root/src/location/labs/qsg/qmappolylineobjectqsg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/labs/qsg/qmappolylineobjectqsg.cpp')
-rw-r--r--src/location/labs/qsg/qmappolylineobjectqsg.cpp15
1 files changed, 14 insertions, 1 deletions
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();
}