diff options
author | Ansis Brammanis <ansis@mapbox.com> | 2017-11-10 11:32:37 -0500 |
---|---|---|
committer | Chris Loer <chris.loer@mapbox.com> | 2017-11-17 10:05:15 -0800 |
commit | 22c07596a0c1e2cca12df730be4448bbe79be13d (patch) | |
tree | 6f50cda446e03660c6e34aae4122177cffd73fe9 /src/mbgl/renderer/renderer_impl.cpp | |
parent | 5bdee52e5c441e6daaae7cf9f320257d0ea3d031 (diff) | |
download | qtlocation-mapboxgl-22c07596a0c1e2cca12df730be4448bbe79be13d.tar.gz |
[core] Split MapMode::Still into Static and Tile
`Tile` makes sure the symbols in the resulting tile are tileable while
symbols in `Still` match rendering in `Continuous` mode.
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 529d1f438d..5d0ffed65f 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -59,7 +59,7 @@ Renderer::Impl::Impl(RendererBackend& backend_, , layerImpls(makeMutable<std::vector<Immutable<style::Layer::Impl>>>()) , renderLight(makeMutable<Light::Impl>()) , crossTileSymbolIndex(std::make_unique<CrossTileSymbolIndex>()) - , placement(std::make_unique<Placement>(TransformState{}, MapMode::Still)) { + , placement(std::make_unique<Placement>(TransformState{}, MapMode::Static)) { glyphManager->setObserver(this); } @@ -83,7 +83,7 @@ void Renderer::Impl::setObserver(RendererObserver* observer_) { } void Renderer::Impl::render(const UpdateParameters& updateParameters) { - if (updateParameters.mode == MapMode::Still) { + if (updateParameters.mode != MapMode::Continuous) { // Don't load/render anyting in still mode until explicitly requested. if (!updateParameters.stillImageRequest) { return; @@ -260,7 +260,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { }; bool loaded = updateParameters.styleLoaded && isLoaded(); - if (updateParameters.mode == MapMode::Still && !loaded) { + if (updateParameters.mode != MapMode::Continuous && !loaded) { return; } @@ -355,10 +355,8 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { sortedTilesForInsertion.emplace_back(tile); tile.used = true; - // We only need clipping when we're _not_ drawing a symbol layer. The only exception - // for symbol layers is when we're rendering still images. See render_symbol_layer.cpp - // for the exception we make there. - if (!symbolLayer || parameters.mapMode == MapMode::Still) { + // We only need clipping when we're _not_ drawing a symbol layer. + if (!symbolLayer) { tile.needsClipping = true; } } @@ -368,7 +366,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { } bool symbolBucketsChanged = false; - if (parameters.mapMode == MapMode::Still) { + if (parameters.mapMode != MapMode::Continuous) { // TODO: Think about right way for symbol index to handle still rendering crossTileSymbolIndex->reset(); } |