#include #include #include #include #include namespace mbgl { using namespace style; RenderVectorSource::RenderVectorSource(Immutable impl_) : RenderSource(impl_) { tilePyramid.setObserver(this); } const style::VectorSource::Impl& RenderVectorSource::impl() const { return static_cast(*baseImpl); } bool RenderVectorSource::isLoaded() const { return tilePyramid.isLoaded(); } void RenderVectorSource::invalidateTiles() { tilePyramid.invalidateTiles(); } void RenderVectorSource::startRender(algorithm::ClipIDGenerator& generator, const mat4& projMatrix, const mat4& clipMatrix, const TransformState& transform) { generator.update(tilePyramid.getRenderTiles()); tilePyramid.startRender(projMatrix, clipMatrix, transform); } void RenderVectorSource::finishRender(Painter& painter) { tilePyramid.finishRender(painter); } std::map& RenderVectorSource::getRenderTiles() { return tilePyramid.getRenderTiles(); } void RenderVectorSource::updateTiles(const TileParameters& parameters) { optional tileset = impl().getTileset(); if (!tileset) { return; } if (tileURLTemplates != tileset->tiles) { tileURLTemplates = tileset->tiles; tilePyramid.invalidateTiles(); } tilePyramid.updateTiles(parameters, SourceType::Vector, util::tileSize, tileset->zoomRange, [&] (const OverscaledTileID& tileID) { return std::make_unique(tileID, impl().id, parameters, *tileset); }); } void RenderVectorSource::removeTiles() { tilePyramid.removeTiles(); } void RenderVectorSource::reloadTiles() { tilePyramid.reloadTiles(); } std::unordered_map> RenderVectorSource::queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, const style::Style& style, const RenderedQueryOptions& options) const { return tilePyramid.queryRenderedFeatures(geometry, transformState, style, options); } std::vector RenderVectorSource::querySourceFeatures(const SourceQueryOptions& options) const { return tilePyramid.querySourceFeatures(options); } void RenderVectorSource::setCacheSize(size_t size) { tilePyramid.setCacheSize(size); } void RenderVectorSource::onLowMemory() { tilePyramid.onLowMemory(); } void RenderVectorSource::dumpDebugLogs() const { tilePyramid.dumpDebugLogs(); } } // namespace mbgl