summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/sources
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/sources')
-rw-r--r--src/mbgl/renderer/sources/render_custom_geometry_source.cpp4
-rw-r--r--src/mbgl/renderer/sources/render_custom_geometry_source.hpp2
-rw-r--r--src/mbgl/renderer/sources/render_geojson_source.cpp4
-rw-r--r--src/mbgl/renderer/sources/render_geojson_source.hpp2
-rw-r--r--src/mbgl/renderer/sources/render_image_source.hpp2
-rw-r--r--src/mbgl/renderer/sources/render_raster_dem_source.cpp21
-rw-r--r--src/mbgl/renderer/sources/render_raster_dem_source.hpp9
-rw-r--r--src/mbgl/renderer/sources/render_raster_source.cpp19
-rw-r--r--src/mbgl/renderer/sources/render_raster_source.hpp4
-rw-r--r--src/mbgl/renderer/sources/render_vector_source.cpp19
-rw-r--r--src/mbgl/renderer/sources/render_vector_source.hpp4
11 files changed, 49 insertions, 41 deletions
diff --git a/src/mbgl/renderer/sources/render_custom_geometry_source.cpp b/src/mbgl/renderer/sources/render_custom_geometry_source.cpp
index df615a7e20..057ad5a4a7 100644
--- a/src/mbgl/renderer/sources/render_custom_geometry_source.cpp
+++ b/src/mbgl/renderer/sources/render_custom_geometry_source.cpp
@@ -76,8 +76,8 @@ std::vector<Feature> RenderCustomGeometrySource::querySourceFeatures(const Sourc
return tilePyramid.querySourceFeatures(options);
}
-void RenderCustomGeometrySource::onLowMemory() {
- tilePyramid.onLowMemory();
+void RenderCustomGeometrySource::reduceMemoryUse() {
+ tilePyramid.reduceMemoryUse();
}
void RenderCustomGeometrySource::dumpDebugLogs() const {
diff --git a/src/mbgl/renderer/sources/render_custom_geometry_source.hpp b/src/mbgl/renderer/sources/render_custom_geometry_source.hpp
index 82e691d5c9..033d731029 100644
--- a/src/mbgl/renderer/sources/render_custom_geometry_source.hpp
+++ b/src/mbgl/renderer/sources/render_custom_geometry_source.hpp
@@ -33,7 +33,7 @@ public:
std::vector<Feature>
querySourceFeatures(const SourceQueryOptions&) const final;
- void onLowMemory() final;
+ void reduceMemoryUse() final;
void dumpDebugLogs() const final;
private:
diff --git a/src/mbgl/renderer/sources/render_geojson_source.cpp b/src/mbgl/renderer/sources/render_geojson_source.cpp
index 8ea80cd813..cbf4db70b5 100644
--- a/src/mbgl/renderer/sources/render_geojson_source.cpp
+++ b/src/mbgl/renderer/sources/render_geojson_source.cpp
@@ -94,8 +94,8 @@ std::vector<Feature> RenderGeoJSONSource::querySourceFeatures(const SourceQueryO
return tilePyramid.querySourceFeatures(options);
}
-void RenderGeoJSONSource::onLowMemory() {
- tilePyramid.onLowMemory();
+void RenderGeoJSONSource::reduceMemoryUse() {
+ tilePyramid.reduceMemoryUse();
}
void RenderGeoJSONSource::dumpDebugLogs() const {
diff --git a/src/mbgl/renderer/sources/render_geojson_source.hpp b/src/mbgl/renderer/sources/render_geojson_source.hpp
index 55166ea901..72fccbd043 100644
--- a/src/mbgl/renderer/sources/render_geojson_source.hpp
+++ b/src/mbgl/renderer/sources/render_geojson_source.hpp
@@ -37,7 +37,7 @@ public:
std::vector<Feature>
querySourceFeatures(const SourceQueryOptions&) const final;
- void onLowMemory() final;
+ void reduceMemoryUse() final;
void dumpDebugLogs() const final;
private:
diff --git a/src/mbgl/renderer/sources/render_image_source.hpp b/src/mbgl/renderer/sources/render_image_source.hpp
index 72cf4cea61..85ee0ace11 100644
--- a/src/mbgl/renderer/sources/render_image_source.hpp
+++ b/src/mbgl/renderer/sources/render_image_source.hpp
@@ -37,7 +37,7 @@ public:
std::vector<Feature> querySourceFeatures(const SourceQueryOptions&) const final;
- void onLowMemory() final {
+ void reduceMemoryUse() final {
}
void dumpDebugLogs() const final;
diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.cpp b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
index 76716518d7..b3153622c3 100644
--- a/src/mbgl/renderer/sources/render_raster_dem_source.cpp
+++ b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
@@ -32,21 +32,22 @@ void RenderRasterDEMSource::update(Immutable<style::Source::Impl> baseImpl_,
enabled = needsRendering;
- optional<Tileset> tileset = impl().getTileset();
-
- if (!tileset) {
- return;
- }
-
- if (tileURLTemplates != tileset->tiles) {
- tileURLTemplates = tileset->tiles;
+ optional<Tileset> _tileset = impl().getTileset();
+ if (tileset != _tileset) {
+ tileset = _tileset;
+ maxzoom = tileset->zoomRange.max;
// TODO: this removes existing buckets, and will cause flickering.
// Should instead refresh tile data in place.
tilePyramid.tiles.clear();
tilePyramid.renderTiles.clear();
tilePyramid.cache.clear();
}
+ // Allow clearing the tile pyramid first, before the early return in case
+ // the new tileset is not yet available or has an error in loading
+ if (!_tileset) {
+ return;
+ }
tilePyramid.update(layers,
needsRendering,
@@ -154,8 +155,8 @@ std::vector<Feature> RenderRasterDEMSource::querySourceFeatures(const SourceQuer
return {};
}
-void RenderRasterDEMSource::onLowMemory() {
- tilePyramid.onLowMemory();
+void RenderRasterDEMSource::reduceMemoryUse() {
+ tilePyramid.reduceMemoryUse();
}
void RenderRasterDEMSource::dumpDebugLogs() const {
diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.hpp b/src/mbgl/renderer/sources/render_raster_dem_source.hpp
index b6b8bf977c..741214a14d 100644
--- a/src/mbgl/renderer/sources/render_raster_dem_source.hpp
+++ b/src/mbgl/renderer/sources/render_raster_dem_source.hpp
@@ -33,14 +33,19 @@ public:
std::vector<Feature>
querySourceFeatures(const SourceQueryOptions&) const final;
- void onLowMemory() final;
+ void reduceMemoryUse() final;
void dumpDebugLogs() const final;
+ uint8_t getMaxZoom() const {
+ return maxzoom;
+ };
+
private:
const style::RasterSource::Impl& impl() const;
TilePyramid tilePyramid;
- optional<std::vector<std::string>> tileURLTemplates;
+ optional<Tileset> tileset;
+ uint8_t maxzoom = 15;
protected:
void onTileChanged(Tile&) final;
diff --git a/src/mbgl/renderer/sources/render_raster_source.cpp b/src/mbgl/renderer/sources/render_raster_source.cpp
index e99cd040e9..60b3fa9a3b 100644
--- a/src/mbgl/renderer/sources/render_raster_source.cpp
+++ b/src/mbgl/renderer/sources/render_raster_source.cpp
@@ -29,14 +29,10 @@ void RenderRasterSource::update(Immutable<style::Source::Impl> baseImpl_,
enabled = needsRendering;
- optional<Tileset> tileset = impl().getTileset();
+ optional<Tileset> _tileset = impl().getTileset();
- if (!tileset) {
- return;
- }
-
- if (tileURLTemplates != tileset->tiles) {
- tileURLTemplates = tileset->tiles;
+ if (tileset != _tileset) {
+ tileset = _tileset;
// TODO: this removes existing buckets, and will cause flickering.
// Should instead refresh tile data in place.
@@ -44,6 +40,11 @@ void RenderRasterSource::update(Immutable<style::Source::Impl> baseImpl_,
tilePyramid.renderTiles.clear();
tilePyramid.cache.clear();
}
+ // Allow clearing the tile pyramid first, before the early return in case
+ // the new tileset is not yet available or has an error in loading
+ if (!_tileset) {
+ return;
+ }
tilePyramid.update(layers,
needsRendering,
@@ -84,8 +85,8 @@ std::vector<Feature> RenderRasterSource::querySourceFeatures(const SourceQueryOp
return {};
}
-void RenderRasterSource::onLowMemory() {
- tilePyramid.onLowMemory();
+void RenderRasterSource::reduceMemoryUse() {
+ tilePyramid.reduceMemoryUse();
}
void RenderRasterSource::dumpDebugLogs() const {
diff --git a/src/mbgl/renderer/sources/render_raster_source.hpp b/src/mbgl/renderer/sources/render_raster_source.hpp
index 25041fde43..78eda199ac 100644
--- a/src/mbgl/renderer/sources/render_raster_source.hpp
+++ b/src/mbgl/renderer/sources/render_raster_source.hpp
@@ -33,14 +33,14 @@ public:
std::vector<Feature>
querySourceFeatures(const SourceQueryOptions&) const final;
- void onLowMemory() final;
+ void reduceMemoryUse() final;
void dumpDebugLogs() const final;
private:
const style::RasterSource::Impl& impl() const;
TilePyramid tilePyramid;
- optional<std::vector<std::string>> tileURLTemplates;
+ optional<Tileset> tileset;
};
template <>
diff --git a/src/mbgl/renderer/sources/render_vector_source.cpp b/src/mbgl/renderer/sources/render_vector_source.cpp
index d53023e4d0..e87bea5dcd 100644
--- a/src/mbgl/renderer/sources/render_vector_source.cpp
+++ b/src/mbgl/renderer/sources/render_vector_source.cpp
@@ -32,14 +32,10 @@ void RenderVectorSource::update(Immutable<style::Source::Impl> baseImpl_,
enabled = needsRendering;
- optional<Tileset> tileset = impl().getTileset();
+ optional<Tileset> _tileset = impl().getTileset();
- if (!tileset) {
- return;
- }
-
- if (tileURLTemplates != tileset->tiles) {
- tileURLTemplates = tileset->tiles;
+ if (tileset != _tileset) {
+ tileset = _tileset;
// TODO: this removes existing buckets, and will cause flickering.
// Should instead refresh tile data in place.
@@ -47,6 +43,11 @@ void RenderVectorSource::update(Immutable<style::Source::Impl> baseImpl_,
tilePyramid.renderTiles.clear();
tilePyramid.cache.clear();
}
+ // Allow clearing the tile pyramid first, before the early return in case
+ // the new tileset is not yet available or has an error in loading
+ if (!_tileset) {
+ return;
+ }
tilePyramid.update(layers,
needsRendering,
@@ -87,8 +88,8 @@ std::vector<Feature> RenderVectorSource::querySourceFeatures(const SourceQueryOp
return tilePyramid.querySourceFeatures(options);
}
-void RenderVectorSource::onLowMemory() {
- tilePyramid.onLowMemory();
+void RenderVectorSource::reduceMemoryUse() {
+ tilePyramid.reduceMemoryUse();
}
void RenderVectorSource::dumpDebugLogs() const {
diff --git a/src/mbgl/renderer/sources/render_vector_source.hpp b/src/mbgl/renderer/sources/render_vector_source.hpp
index 4a992e854f..592160dc16 100644
--- a/src/mbgl/renderer/sources/render_vector_source.hpp
+++ b/src/mbgl/renderer/sources/render_vector_source.hpp
@@ -33,14 +33,14 @@ public:
std::vector<Feature>
querySourceFeatures(const SourceQueryOptions&) const final;
- void onLowMemory() final;
+ void reduceMemoryUse() final;
void dumpDebugLogs() const final;
private:
const style::VectorSource::Impl& impl() const;
TilePyramid tilePyramid;
- optional<std::vector<std::string>> tileURLTemplates;
+ optional<Tileset> tileset;
};
template <>