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