aboutsummaryrefslogtreecommitdiffstats
path: root/src/mbgl/renderer/terrain_bucket.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/terrain_bucket.hpp')
-rw-r--r--src/mbgl/renderer/terrain_bucket.hpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/mbgl/renderer/terrain_bucket.hpp b/src/mbgl/renderer/terrain_bucket.hpp
new file mode 100644
index 000000000..3a96372ff
--- /dev/null
+++ b/src/mbgl/renderer/terrain_bucket.hpp
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <mbgl/renderer/bucket.hpp>
+#include <mbgl/util/image.hpp>
+#include <mbgl/util/optional.hpp>
+#include <mbgl/gl/texture.hpp>
+#include <mbgl/geometry/dem_pyramid.hpp>
+
+namespace mbgl {
+
+class TerrainPrepareShader;
+class TerrainShader;
+class RasterShader;
+class RasterVertex;
+
+namespace gl {
+class Context;
+template <class> class VertexBuffer;
+class VertexArrayObject;
+} // namespace gl
+
+class TerrainBucket : public Bucket {
+public:
+ TerrainBucket(PremultipliedImage&&);
+ TerrainBucket(DEMPyramid&&);
+
+ void upload(gl::Context&) override;
+ void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) override;
+ bool hasData() const override;
+
+ optional<gl::Texture> dem;
+ optional<gl::Texture> texture;
+ bool prepared = false;
+
+private:
+ DEMPyramid pyramid;
+};
+
+} // namespace mbgl