summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/sources/render_tile_source.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-06-06 11:26:52 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-06-10 19:36:47 +0300
commit737665bc070e9db4544b5d78ca69baf72ec958dc (patch)
treeb16f5e0c771765362ade518e4b440d4b8fabc322 /src/mbgl/renderer/sources/render_tile_source.cpp
parentf5631d8ef5a1307e50975ab2f767dd7ee544f466 (diff)
downloadqtlocation-mapboxgl-737665bc070e9db4544b5d78ca69baf72ec958dc.tar.gz
[core] Refactor tile pyramid
Tile pyramid is no longer operating with `RenderTiles` and does not perform rendering operations (upload, finish render). Render tiles belong to rendering, and tile pyramid belongs to orchestration.
Diffstat (limited to 'src/mbgl/renderer/sources/render_tile_source.cpp')
-rw-r--r--src/mbgl/renderer/sources/render_tile_source.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/mbgl/renderer/sources/render_tile_source.cpp b/src/mbgl/renderer/sources/render_tile_source.cpp
index a906945e4f..b1fa824e68 100644
--- a/src/mbgl/renderer/sources/render_tile_source.cpp
+++ b/src/mbgl/renderer/sources/render_tile_source.cpp
@@ -1,4 +1,6 @@
#include <mbgl/renderer/sources/render_tile_source.hpp>
+
+#include <mbgl/renderer/buckets/debug_bucket.hpp>
#include <mbgl/renderer/render_tile.hpp>
#include <mbgl/renderer/paint_parameters.hpp>
#include <mbgl/tile/vector_tile.hpp>
@@ -19,15 +21,23 @@ bool RenderTileSource::isLoaded() const {
}
void RenderTileSource::upload(gfx::UploadPass& parameters) {
- tilePyramid.upload(parameters);
+ for (auto& tile : renderTiles) {
+ tile.upload(parameters);
+ }
}
void RenderTileSource::prepare(const SourcePrepareParameters& parameters) {
- tilePyramid.prepare(parameters);
+ renderTiles.clear();
+ for (auto& entry : tilePyramid.getRenderTiles()) {
+ renderTiles.emplace_back(entry.first, entry.second);
+ renderTiles.back().prepare(parameters);
+ }
}
void RenderTileSource::finishRender(PaintParameters& parameters) {
- tilePyramid.finishRender(parameters);
+ for (auto& tile : renderTiles) {
+ tile.finishRender(parameters);
+ }
}
void RenderTileSource::updateFadingTiles() {
@@ -39,7 +49,7 @@ bool RenderTileSource::hasFadingTiles() const {
}
std::vector<std::reference_wrapper<RenderTile>> RenderTileSource::getRenderTiles() {
- return tilePyramid.getRenderTiles();
+ return { renderTiles.begin(), renderTiles.end() };
}
std::unordered_map<std::string, std::vector<Feature>>