File indexing completed on 2024-04-21 03:49:47
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2007 Carlos Licea <carlos _licea@hotmail.com> 0004 // SPDX-FileCopyrightText: 2008 Inge Wallin <inge@lysator.liu.se> 0005 // SPDX-FileCopyrightText: 2011 Bernhard Beschow <bbeschow@cs.tu-berlin.de> 0006 // 0007 0008 #ifndef MARBLE_MERCATORSCANLINETEXTUREMAPPER_H 0009 #define MARBLE_MERCATORSCANLINETEXTUREMAPPER_H 0010 0011 0012 #include "TextureMapperInterface.h" 0013 0014 #include "MarbleGlobal.h" 0015 0016 #include <QThreadPool> 0017 #include <QImage> 0018 0019 0020 namespace Marble 0021 { 0022 0023 class StackedTileLoader; 0024 0025 class MercatorScanlineTextureMapper : public TextureMapperInterface 0026 { 0027 public: 0028 explicit MercatorScanlineTextureMapper( StackedTileLoader *tileLoader ); 0029 0030 void mapTexture( GeoPainter *painter, 0031 const ViewportParams *viewport, 0032 int tileZoomLevel, 0033 const QRect &dirtyRect, 0034 TextureColorizer *texColorizer ) override; 0035 0036 private: 0037 void mapTexture( const ViewportParams *viewport, int tileZoomLevel, MapQuality mapQuality ); 0038 0039 private: 0040 class RenderJob; 0041 0042 StackedTileLoader *const m_tileLoader; 0043 int m_radius; 0044 QImage m_canvasImage; 0045 int m_oldYPaintedTop; 0046 QThreadPool m_threadPool; 0047 }; 0048 0049 } 0050 0051 #endif