#pragma once #include #include #include namespace mbgl { class RenderVectorSource : public RenderSource { public: RenderVectorSource(const style::VectorSource::Impl&); bool isLoaded() const final; // Called when the camera has changed. May load new tiles, unload obsolete tiles, or // trigger re-placement of existing complete tiles. void updateTiles(const TileParameters&) final; // Removes all tiles (by putting them into the cache). void removeTiles() final; // Remove all tiles and clear the cache. void invalidateTiles() final; // Request that all loaded tiles re-run the layout operation on the existing source // data with fresh style information. void reloadTiles() final; void startRender(algorithm::ClipIDGenerator&, const mat4& projMatrix, const mat4& clipMatrix, const TransformState&) final; void finishRender(Painter&) final; std::map& getRenderTiles() final; std::unordered_map> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, const RenderedQueryOptions& options) const final; std::vector querySourceFeatures(const SourceQueryOptions&) const final; void setCacheSize(size_t) final; void onLowMemory() final; void dumpDebugLogs() const final; private: const style::VectorSource::Impl& impl; TilePyramid tilePyramid; optional> tileURLTemplates; }; } // namespace mbgl