Marble

SphericalScanlineTextureMapper.h
1// SPDX-License-Identifier: LGPL-2.1-or-later
2//
3// SPDX-FileCopyrightText: 2007 Torsten Rahn <tackat@kde.org>
4// SPDX-FileCopyrightText: 2011 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
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
19namespace Marble
20{
21
22class 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 <rahn@kde.org>
32 */
33
34class 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
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:18:17 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.