summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/geometry_tile.cpp
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2019-06-17 15:04:10 +0300
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2019-07-09 11:43:46 +0300
commit57402314e1be3180ce6f67d8ba29c17aceba6b60 (patch)
treeefe5a01b6a2ced775726c0407528230166365a71 /src/mbgl/tile/geometry_tile.cpp
parentd6c1c838eb0c612aa971740fc58cc2a2e1086f77 (diff)
downloadqtlocation-mapboxgl-57402314e1be3180ce6f67d8ba29c17aceba6b60.tar.gz
[core] Improve performance for query rendered features
- query rendered symbols only from layers that support it - remove unnecessary iterations over vectors
Diffstat (limited to 'src/mbgl/tile/geometry_tile.cpp')
-rw-r--r--src/mbgl/tile/geometry_tile.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp
index e87d21503a..7f1bed49f4 100644
--- a/src/mbgl/tile/geometry_tile.cpp
+++ b/src/mbgl/tile/geometry_tile.cpp
@@ -291,12 +291,12 @@ LayerRenderData* GeometryTile::getLayerRenderData(const style::Layer::Impl& laye
return layoutResult ? layoutResult->getLayerRenderData(layerImpl) : nullptr;
}
-float GeometryTile::getQueryPadding(const std::vector<const RenderLayer*>& layers) {
+float GeometryTile::getQueryPadding(const std::unordered_map<std::string, const RenderLayer*>& layers) {
float queryPadding = 0;
- for (const RenderLayer* layer : layers) {
- const LayerRenderData* data = getLayerRenderData(*layer->baseImpl);
+ for (const auto& pair : layers) {
+ const LayerRenderData* data = getLayerRenderData(*pair.second->baseImpl);
if (data && data->bucket && data->bucket->hasData()) {
- queryPadding = std::max(queryPadding, data->bucket->getQueryRadius(*layer));
+ queryPadding = std::max(queryPadding, data->bucket->getQueryRadius(*pair.second));
}
}
return queryPadding;
@@ -306,7 +306,7 @@ void GeometryTile::queryRenderedFeatures(
std::unordered_map<std::string, std::vector<Feature>>& result,
const GeometryCoordinates& queryGeometry,
const TransformState& transformState,
- const std::vector<const RenderLayer*>& layers,
+ const std::unordered_map<std::string, const RenderLayer*>& layers,
const RenderedQueryOptions& options,
const mat4& projMatrix) {