Warning, file /education/marble/src/lib/marble/SphericalScanlineTextureMapper.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2007 Torsten Rahn <tackat@kde.org>
0004 // SPDX-FileCopyrightText: 2011 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
0005 //
0006 
0007 #ifndef MARBLE_SPHERICALSCANLINETEXTUREMAPPER_H
0008 #define MARBLE_SPHERICALSCANLINETEXTUREMAPPER_H
0009 
0010 
0011 #include "TextureMapperInterface.h"
0012 
0013 #include "MarbleGlobal.h"
0014 
0015 #include <QThreadPool>
0016 #include <QImage>
0017 
0018 
0019 namespace Marble
0020 {
0021 
0022 class StackedTileLoader;
0023 
0024 
0025 /*
0026  * @short Texture mapping onto a sphere
0027  *
0028  * This class provides a fast way to map textures onto a sphere
0029  * without making use of hardware acceleration. 
0030  *
0031  * @author Torsten Rahn <rahn@kde.org>
0032  */
0033 
0034 class SphericalScanlineTextureMapper : public TextureMapperInterface
0035 {
0036  public:
0037     explicit SphericalScanlineTextureMapper( StackedTileLoader *tileLoader );
0038 
0039     void mapTexture( GeoPainter *painter,
0040                              const ViewportParams *viewport,
0041                              int tileZoomLevel,
0042                              const QRect &dirtyRect,
0043                              TextureColorizer *texColorizer ) override;
0044 
0045  private:
0046     void mapTexture( const ViewportParams *viewport, int tileZoomLevel, MapQuality mapQuality );
0047 
0048  private:
0049     class RenderJob;
0050     StackedTileLoader *const m_tileLoader;
0051     int m_radius;
0052     QImage m_canvasImage;
0053     QThreadPool m_threadPool;
0054 };
0055 
0056 }
0057 
0058 #endif