android/GlueIOIOPort: fix spurious errors after IOIO baud rate change
[xcsoar.git] / src / Terrain / TerrainRenderer.hpp
blob49462b2fcc3cac354fa9adbc349644f486b63711
1 /*
2 Copyright_License {
4 XCSoar Glide Computer - http://www.xcsoar.org/
5 Copyright (C) 2000-2013 The XCSoar Project
6 A detailed list of copyright holders can be found in the file "AUTHORS".
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 as published by the Free Software Foundation; either version 2
11 of the License, or (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 #ifndef XCSOAR_TERRAIN_RENDERER_HPP
25 #define XCSOAR_TERRAIN_RENDERER_HPP
27 #include "RasterRenderer.hpp"
28 #include "Util/NonCopyable.hpp"
29 #include "Util/Serial.hpp"
30 #include "Terrain/TerrainSettings.hpp"
32 #ifndef ENABLE_OPENGL
33 #include "Projection/CompareProjection.hpp"
34 #endif
36 class Canvas;
37 class WindowProjection;
38 class RasterTerrain;
39 struct ColorRamp;
41 class TerrainRenderer : private NonCopyable {
42 const RasterTerrain *terrain;
44 Serial terrain_serial;
46 protected:
47 struct TerrainRendererSettings settings;
49 #ifndef ENABLE_OPENGL
50 CompareProjection compare_projection;
51 #endif
53 Angle last_sun_azimuth;
55 const ColorRamp *last_color_ramp;
57 RasterRenderer raster_renderer;
59 public:
60 TerrainRenderer(const RasterTerrain *_terrain);
61 virtual ~TerrainRenderer() {}
63 protected:
64 void CopyTo(Canvas &canvas, unsigned width, unsigned height) const;
66 public:
67 const TerrainRendererSettings &GetSettings() const {
68 return settings;
71 void SetSettings(const TerrainRendererSettings &_settings);
73 virtual void Generate(const WindowProjection &map_projection,
74 const Angle sunazimuth);
76 void Draw(Canvas &canvas, const WindowProjection &map_projection) const;
79 #endif