diff --git a/src/lib/marble/graphicsview/MarbleGraphicsItem.cpp b/src/lib/marble/graphicsview/MarbleGraphicsItem.cpp --- a/src/lib/marble/graphicsview/MarbleGraphicsItem.cpp +++ b/src/lib/marble/graphicsview/MarbleGraphicsItem.cpp @@ -57,12 +57,16 @@ if ( ItemCoordinateCache == cacheMode() || DeviceCoordinateCache == cacheMode() ) { - const QSize neededPixmapSize = size().toSize() + QSize( 1, 1 ); // adding a pixel for rounding errors + const qreal scale = painter->device()->devicePixelRatio(); + + const QSize neededPixmapSize = scale * (size().toSize() + QSize( 1, 1 )); // adding a pixel for rounding errors + if ( p()->m_pixmap.size() != neededPixmapSize ) { if ( p()->m_pixmap.size() != neededPixmapSize ) { if ( size().isValid() && !size().isNull() ) { p()->m_pixmap = QPixmap( neededPixmapSize ); + p()->m_pixmap.setDevicePixelRatio(scale); } else { mDebug() << "Warning: Invalid pixmap size suggested: " << d->m_size;