diff options
author | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2019-06-17 15:04:10 +0300 |
---|---|---|
committer | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2019-07-09 11:43:46 +0300 |
commit | 57402314e1be3180ce6f67d8ba29c17aceba6b60 (patch) | |
tree | efe5a01b6a2ced775726c0407528230166365a71 /src/mbgl/renderer/sources | |
parent | d6c1c838eb0c612aa971740fc58cc2a2e1086f77 (diff) | |
download | qtlocation-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/renderer/sources')
8 files changed, 8 insertions, 8 deletions
diff --git a/src/mbgl/renderer/sources/render_image_source.cpp b/src/mbgl/renderer/sources/render_image_source.cpp index 7e793c6a4a..6d197df9db 100644 --- a/src/mbgl/renderer/sources/render_image_source.cpp +++ b/src/mbgl/renderer/sources/render_image_source.cpp @@ -106,7 +106,7 @@ void RenderImageSource::prepare(const SourcePrepareParameters& parameters) { std::unordered_map<std::string, std::vector<Feature>> RenderImageSource::queryRenderedFeatures(const ScreenLineString&, const TransformState&, - const std::vector<const RenderLayer*>&, + const std::unordered_map<std::string, const RenderLayer*>&, const RenderedQueryOptions&, const mat4&) const { return std::unordered_map<std::string, std::vector<Feature>> {}; diff --git a/src/mbgl/renderer/sources/render_image_source.hpp b/src/mbgl/renderer/sources/render_image_source.hpp index d21f4fae10..4264f74564 100644 --- a/src/mbgl/renderer/sources/render_image_source.hpp +++ b/src/mbgl/renderer/sources/render_image_source.hpp @@ -57,7 +57,7 @@ public: std::unordered_map<std::string, std::vector<Feature>> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, - const std::vector<const RenderLayer*>& layers, + const std::unordered_map<std::string, const RenderLayer*>& layers, const RenderedQueryOptions& options, const mat4& projMatrix) 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 9854b4fdc3..841124fa4a 100644 --- a/src/mbgl/renderer/sources/render_raster_dem_source.cpp +++ b/src/mbgl/renderer/sources/render_raster_dem_source.cpp @@ -125,7 +125,7 @@ void RenderRasterDEMSource::onTileChanged(Tile& tile){ std::unordered_map<std::string, std::vector<Feature>> RenderRasterDEMSource::queryRenderedFeatures(const ScreenLineString&, const TransformState&, - const std::vector<const RenderLayer*>&, + const std::unordered_map<std::string, const RenderLayer*>&, const RenderedQueryOptions&, const mat4&) const { return std::unordered_map<std::string, std::vector<Feature>>{}; diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.hpp b/src/mbgl/renderer/sources/render_raster_dem_source.hpp index e49ad1d1d4..dd74f4d7e7 100644 --- a/src/mbgl/renderer/sources/render_raster_dem_source.hpp +++ b/src/mbgl/renderer/sources/render_raster_dem_source.hpp @@ -19,7 +19,7 @@ public: std::unordered_map<std::string, std::vector<Feature>> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, - const std::vector<const RenderLayer*>& layers, + const std::unordered_map<std::string, const RenderLayer*>& layers, const RenderedQueryOptions& options, const mat4& projMatrix) const override; diff --git a/src/mbgl/renderer/sources/render_raster_source.cpp b/src/mbgl/renderer/sources/render_raster_source.cpp index 827ffb9759..06eb36795b 100644 --- a/src/mbgl/renderer/sources/render_raster_source.cpp +++ b/src/mbgl/renderer/sources/render_raster_source.cpp @@ -60,7 +60,7 @@ void RenderRasterSource::prepare(const SourcePrepareParameters& parameters) { std::unordered_map<std::string, std::vector<Feature>> RenderRasterSource::queryRenderedFeatures(const ScreenLineString&, const TransformState&, - const std::vector<const RenderLayer*>&, + const std::unordered_map<std::string, const RenderLayer*>&, const RenderedQueryOptions&, const mat4&) const { return std::unordered_map<std::string, std::vector<Feature>>{}; diff --git a/src/mbgl/renderer/sources/render_raster_source.hpp b/src/mbgl/renderer/sources/render_raster_source.hpp index dc80630add..0071dddec9 100644 --- a/src/mbgl/renderer/sources/render_raster_source.hpp +++ b/src/mbgl/renderer/sources/render_raster_source.hpp @@ -19,7 +19,7 @@ public: std::unordered_map<std::string, std::vector<Feature>> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, - const std::vector<const RenderLayer*>& layers, + const std::unordered_map<std::string, const RenderLayer*>& layers, const RenderedQueryOptions& options, const mat4& projMatrix) const override; diff --git a/src/mbgl/renderer/sources/render_tile_source.cpp b/src/mbgl/renderer/sources/render_tile_source.cpp index 99bdfde485..93c41940b6 100644 --- a/src/mbgl/renderer/sources/render_tile_source.cpp +++ b/src/mbgl/renderer/sources/render_tile_source.cpp @@ -84,7 +84,7 @@ const Tile* RenderTileSource::getRenderedTile(const UnwrappedTileID& tileID) con std::unordered_map<std::string, std::vector<Feature>> RenderTileSource::queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, - const std::vector<const RenderLayer*>& layers, + const std::unordered_map<std::string, const RenderLayer*>& layers, const RenderedQueryOptions& options, const mat4& projMatrix) const { return tilePyramid.queryRenderedFeatures(geometry, transformState, layers, options, projMatrix); diff --git a/src/mbgl/renderer/sources/render_tile_source.hpp b/src/mbgl/renderer/sources/render_tile_source.hpp index e3148b45b9..8ec1439306 100644 --- a/src/mbgl/renderer/sources/render_tile_source.hpp +++ b/src/mbgl/renderer/sources/render_tile_source.hpp @@ -27,7 +27,7 @@ public: std::unordered_map<std::string, std::vector<Feature>> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, - const std::vector<const RenderLayer*>& layers, + const std::unordered_map<std::string, const RenderLayer*>& layers, const RenderedQueryOptions& options, const mat4& projMatrix) const override; |