#pragma once #include #include #include namespace mbgl { /** * @brief Base class for render sources that provide render tiles. */ class RenderTileSource : public RenderSource { public: RenderTileSource(Immutable); ~RenderTileSource() override; bool isLoaded() const override; std::unique_ptr createRenderItem() override; void prepare(const SourcePrepareParameters&) override; void updateFadingTiles() override; bool hasFadingTiles() const override; RenderTiles getRenderTiles() const override; RenderTiles getRenderTilesSortedByYPosition() const override; const Tile* getRenderedTile(const UnwrappedTileID&) const override; std::unordered_map> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, const std::vector& layers, const RenderedQueryOptions& options, const mat4& projMatrix) const override; std::vector querySourceFeatures(const SourceQueryOptions&) const override; void reduceMemoryUse() override; void dumpDebugLogs() const override; protected: TilePyramid tilePyramid; Immutable> renderTiles; mutable RenderTiles filteredRenderTiles; mutable RenderTiles renderTilesSortedByY; float bearing = 0.0f; }; } // namespace mbgl