summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/sources/render_tile_source.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/sources/render_tile_source.hpp')
-rw-r--r--src/mbgl/renderer/sources/render_tile_source.hpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/mbgl/renderer/sources/render_tile_source.hpp b/src/mbgl/renderer/sources/render_tile_source.hpp
index f961c20561..7edff726d5 100644
--- a/src/mbgl/renderer/sources/render_tile_source.hpp
+++ b/src/mbgl/renderer/sources/render_tile_source.hpp
@@ -11,7 +11,6 @@ namespace mbgl {
*/
class RenderTileSource : public RenderSource {
public:
- RenderTileSource(Immutable<style::Source::Impl>);
~RenderTileSource() override;
bool isLoaded() const override;
@@ -39,6 +38,7 @@ public:
void dumpDebugLogs() const override;
protected:
+ RenderTileSource(Immutable<style::Source::Impl>);
TilePyramid tilePyramid;
Immutable<std::vector<RenderTile>> renderTiles;
mutable RenderTiles filteredRenderTiles;
@@ -46,4 +46,31 @@ protected:
float bearing = 0.0f;
};
+/**
+ * @brief Base class for render sources that use tile sets.
+ */
+class RenderTileSetSource : public RenderTileSource {
+protected:
+ RenderTileSetSource(Immutable<style::Source::Impl>);
+ ~RenderTileSetSource() override;
+
+ virtual void updateInternal(const Tileset&,
+ const std::vector<Immutable<style::LayerProperties>>&,
+ bool needsRendering,
+ bool needsRelayout,
+ const TileParameters&) = 0;
+ // Returns tileset from the current impl.
+ virtual const optional<Tileset>& getTileset() const = 0;
+
+private:
+ uint8_t getMaxZoom() const final;
+ void update(Immutable<style::Source::Impl>,
+ const std::vector<Immutable<style::LayerProperties>>&,
+ bool needsRendering,
+ bool needsRelayout,
+ const TileParameters&) final;
+
+ optional<Tileset> cachedTileset;
+};
+
} // namespace mbgl