#pragma once #include #include #include #include #include #include #include #include #include #include #include #include namespace mbgl { class HillshadeBucket final : public Bucket { public: HillshadeBucket(PremultipliedImage&&, Tileset::DEMEncoding encoding); HillshadeBucket(std::shared_ptr, Tileset::DEMEncoding encoding); HillshadeBucket(DEMData&&); ~HillshadeBucket() override; void upload(gfx::UploadPass&) override; bool hasData() const override; bool supportsLayer(const style::Layer::Impl&) 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 gfx::VertexVector vertices; gfx::IndexVector indices; SegmentVector segments; optional> vertexBuffer; optional indexBuffer; private: DEMData demdata; bool prepared = false; }; } // namespace mbgl