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