diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-05-16 14:37:40 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-05-19 18:15:33 +0300 |
commit | f2ad89c463c6110d89caacd2ae62e85efb78af17 (patch) | |
tree | 831adee6ca63ce6a9678a8ee42c44fc9bc5ad126 /src/mbgl/renderer/renderer_impl.cpp | |
parent | 44fd6dcf7c0ef477a8108f878834cadf01a625f2 (diff) | |
download | qtlocation-mapboxgl-f2ad89c463c6110d89caacd2ae62e85efb78af17.tar.gz |
[core] Remove RenderLayerSymbolInterface
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 4ca7f3847b..76c45aef76 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -224,7 +224,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { }; std::set<RenderItem> renderItems; - std::vector<std::reference_wrapper<RenderLayer>> symbolLayers; + std::vector<std::reference_wrapper<RenderLayer>> layersNeedPlacement; auto renderItemsEmplaceHint = renderItems.begin(); // Update all sources and initialize renderItems. @@ -298,8 +298,8 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { } RenderLayer& renderLayer = renderItem.layer; renderLayer.setRenderTiles(renderItem.source->getRenderTiles(), updateParameters.transformState); - if (const RenderLayerSymbolInterface* symbolLayer = renderLayer.getSymbolInterface()) { - symbolLayers.push_back(renderLayer); + if (renderLayer.needsPlacement()) { + layersNeedPlacement.emplace_back(renderLayer); } } @@ -321,13 +321,13 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { updateParameters.transformState.getProjMatrix(projMatrix); } - for (auto it = symbolLayers.rbegin(); it != symbolLayers.rend(); ++it) { - const RenderLayer& symbolLayer = *it; - if (crossTileSymbolIndex.addLayer(symbolLayer, updateParameters.transformState.getLatLng().longitude())) symbolBucketsChanged = true; + for (auto it = layersNeedPlacement.rbegin(); it != layersNeedPlacement.rend(); ++it) { + const RenderLayer& layer = *it; + if (crossTileSymbolIndex.addLayer(layer, updateParameters.transformState.getLatLng().longitude())) symbolBucketsChanged = true; if (placementChanged) { - usedSymbolLayers.insert(symbolLayer.getID()); - placement->placeLayer(symbolLayer, projMatrix, updateParameters.debugOptions & MapDebugOptions::Collision); + usedSymbolLayers.insert(layer.getID()); + placement->placeLayer(layer, projMatrix, updateParameters.debugOptions & MapDebugOptions::Collision); } } @@ -340,9 +340,8 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { } if (placementChanged || symbolBucketsChanged) { - for (auto it = symbolLayers.rbegin(); it != symbolLayers.rend(); ++it) { - const RenderLayer& symbolLayer = *it; - placement->updateLayerOpacities(symbolLayer); + for (auto it = layersNeedPlacement.rbegin(); it != layersNeedPlacement.rend(); ++it) { + placement->updateLayerOpacities(*it); } } } |