#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include namespace mbgl { class PaintParameters; class TransformState; class RenderTile; class RenderLayer; class RenderedQueryOptions; class SourceQueryOptions; class TileParameters; class TilePyramid { public: TilePyramid(); ~TilePyramid(); bool isLoaded() const; void update(const std::vector>&, bool needsRendering, bool needsRelayout, const TileParameters&, style::SourceType type, uint16_t tileSize, Range zoomRange, std::function (const OverscaledTileID&)> createTile); void startRender(PaintParameters&); void finishRender(PaintParameters&); std::vector> getRenderTiles(); std::unordered_map> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, const std::vector&, const RenderedQueryOptions& options, const CollisionIndex& collisionIndex) const; std::vector querySourceFeatures(const SourceQueryOptions&) const; void setCacheSize(size_t); void onLowMemory(); void setObserver(TileObserver*); void dumpDebugLogs() const; bool enabled = false; std::map> tiles; TileCache cache; std::vector renderTiles; TileObserver* observer = nullptr; }; } // namespace mbgl