diff options
Diffstat (limited to 'src/mbgl/renderer/terrain_bucket.hpp')
-rw-r--r-- | src/mbgl/renderer/terrain_bucket.hpp | 39 |
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 |