#pragma once #include #include #include #include #include #include #include #include #include #include #include #include namespace mbgl { class HillshadeBucket : public Bucket { public: HillshadeBucket(PremultipliedImage&&, Tileset::DEMEncoding encoding); HillshadeBucket(std::shared_ptr, Tileset::DEMEncoding encoding); HillshadeBucket(DEMData&&); void upload(gl::Context&) override; bool hasData() const override; void clear(); void setMask(TileMask&&); optional dem; optional texture; TileMask mask{ { 0, 0, 0 } }; const DEMData& getDEMData() const; DEMData& getDEMData(); bool isPrepared() const { return prepared; } void setPrepared (bool preparedState) { prepared = preparedState; } // Raster-DEM Tile Sources use the default buffers from Painter gl::VertexVector vertices; gl::IndexVector indices; SegmentVector segments; optional> vertexBuffer; optional> indexBuffer; private: DEMData demdata; bool prepared = false; }; template <> inline bool Bucket::is() const { return layerType == style::LayerType::Hillshade; } } // namespace mbgl