diff options
Diffstat (limited to 'src/location/labs/qsg/qmappolylineobjectqsg.cpp')
-rw-r--r-- | src/location/labs/qsg/qmappolylineobjectqsg.cpp | 15 |
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(); } |