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