Marble

SphericalScanlineTextureMapper.h
1 // SPDX-License-Identifier: LGPL-2.1-or-later
2 //
3 // SPDX-FileCopyrightText: 2007 Torsten Rahn <[email protected]>
4 // SPDX-FileCopyrightText: 2011 Bernhard Beschow <[email protected]>
5 //
6 
7 #ifndef MARBLE_SPHERICALSCANLINETEXTUREMAPPER_H
8 #define MARBLE_SPHERICALSCANLINETEXTUREMAPPER_H
9 
10 
11 #include "TextureMapperInterface.h"
12 
13 #include "MarbleGlobal.h"
14 
15 #include <QThreadPool>
16 #include <QImage>
17 
18 
19 namespace Marble
20 {
21 
22 class StackedTileLoader;
23 
24 
25 /*
26  * @short Texture mapping onto a sphere
27  *
28  * This class provides a fast way to map textures onto a sphere
29  * without making use of hardware acceleration.
30  *
31  * @author Torsten Rahn <[email protected]>
32  */
33 
34 class SphericalScanlineTextureMapper : public TextureMapperInterface
35 {
36  public:
37  explicit SphericalScanlineTextureMapper( StackedTileLoader *tileLoader );
38 
39  void mapTexture( GeoPainter *painter,
40  const ViewportParams *viewport,
41  int tileZoomLevel,
42  const QRect &dirtyRect,
43  TextureColorizer *texColorizer ) override;
44 
45  private:
46  void mapTexture( const ViewportParams *viewport, int tileZoomLevel, MapQuality mapQuality );
47 
48  private:
49  class RenderJob;
50  StackedTileLoader *const m_tileLoader;
51  int m_radius;
52  QImage m_canvasImage;
53  QThreadPool m_threadPool;
54 };
55 
56 }
57 
58 #endif
MapQuality
This enum is used to choose the map quality shown in the view.
Definition: MarbleGlobal.h:74
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Sep 25 2023 03:50:20 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.