diff options
author | Jesse Crocker <jesse@gaiagps.com> | 2016-11-29 14:36:35 -0700 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2017-03-20 18:14:03 +0100 |
commit | 461a157caeec4b21bee0fc0adc002fbb64ab1444 (patch) | |
tree | fca7b2f3390b3940829d0ee17ce55a5f29decf6a | |
parent | ffd0e21baa5593e4719ecccd01be77173e47be3f (diff) | |
download | qtlocation-mapboxgl-461a157caeec4b21bee0fc0adc002fbb64ab1444.tar.gz |
[core] Move *TileID hashing to separate header
-rw-r--r-- | cmake/core-files.cmake | 1 | ||||
-rw-r--r-- | src/mbgl/algorithm/generate_clip_ids.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/algorithm/update_renderables.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/style/source_impl.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/tile/tile_id.hpp | 35 | ||||
-rw-r--r-- | src/mbgl/tile/tile_id_hash.hpp | 40 |
6 files changed, 45 insertions, 34 deletions
diff --git a/cmake/core-files.cmake b/cmake/core-files.cmake index 9b5ddc97d6..2b8e41b2d4 100644 --- a/cmake/core-files.cmake +++ b/cmake/core-files.cmake @@ -422,6 +422,7 @@ set(MBGL_CORE_FILES src/mbgl/tile/tile_cache.cpp src/mbgl/tile/tile_cache.hpp src/mbgl/tile/tile_id.hpp + src/mbgl/tile/tile_id_hash.hpp src/mbgl/tile/tile_id_io.cpp src/mbgl/tile/tile_loader.hpp src/mbgl/tile/tile_loader_impl.hpp diff --git a/src/mbgl/algorithm/generate_clip_ids.hpp b/src/mbgl/algorithm/generate_clip_ids.hpp index d917b398af..fb12fdcd2b 100644 --- a/src/mbgl/algorithm/generate_clip_ids.hpp +++ b/src/mbgl/algorithm/generate_clip_ids.hpp @@ -1,6 +1,7 @@ #pragma once #include <mbgl/tile/tile_id.hpp> +#include <mbgl/tile/tile_id_hash.hpp> #include <mbgl/util/clip_id.hpp> #include <unordered_set> diff --git a/src/mbgl/algorithm/update_renderables.hpp b/src/mbgl/algorithm/update_renderables.hpp index fe2dc2c570..d6d177f329 100644 --- a/src/mbgl/algorithm/update_renderables.hpp +++ b/src/mbgl/algorithm/update_renderables.hpp @@ -1,6 +1,7 @@ #pragma once #include <mbgl/tile/tile_id.hpp> +#include <mbgl/tile/tile_id_hash.hpp> #include <mbgl/util/range.hpp> #include <mbgl/storage/resource.hpp> diff --git a/src/mbgl/style/source_impl.hpp b/src/mbgl/style/source_impl.hpp index fbec2b0eba..2c8bda48da 100644 --- a/src/mbgl/style/source_impl.hpp +++ b/src/mbgl/style/source_impl.hpp @@ -3,6 +3,7 @@ #include <mbgl/style/source.hpp> #include <mbgl/tile/tile_id.hpp> +#include <mbgl/tile/tile_id_hash.hpp> #include <mbgl/tile/tile_observer.hpp> #include <mbgl/tile/tile.hpp> #include <mbgl/tile/tile_cache.hpp> diff --git a/src/mbgl/tile/tile_id.hpp b/src/mbgl/tile/tile_id.hpp index 1ce3eea98e..a6561cb89b 100644 --- a/src/mbgl/tile/tile_id.hpp +++ b/src/mbgl/tile/tile_id.hpp @@ -4,11 +4,11 @@ #include <cstdint> #include <array> +#include <tuple> #include <forward_list> #include <algorithm> #include <iosfwd> #include <cassert> -#include <boost/functional/hash.hpp> namespace mbgl { @@ -240,36 +240,3 @@ inline float UnwrappedTileID::pixelsToTileUnits(const float pixelValue, const fl } } // namespace mbgl - -namespace std { - -template <> struct hash<mbgl::CanonicalTileID> { - size_t operator()(const mbgl::CanonicalTileID &id) const { - std::size_t seed = 0; - boost::hash_combine(seed, id.x); - boost::hash_combine(seed, id.y); - boost::hash_combine(seed, id.z); - return seed; - } -}; - -template <> struct hash<mbgl::UnwrappedTileID> { - size_t operator()(const mbgl::UnwrappedTileID &id) const { - std::size_t seed = 0; - boost::hash_combine(seed, std::hash<mbgl::CanonicalTileID>{}(id.canonical)); - boost::hash_combine(seed, id.wrap); - return seed; - } -}; - -template <> struct hash<mbgl::OverscaledTileID> { - size_t operator()(const mbgl::OverscaledTileID &id) const { - std::size_t seed = 0; - boost::hash_combine(seed, std::hash<mbgl::CanonicalTileID>{}(id.canonical)); - boost::hash_combine(seed, id.overscaledZ); - return seed; - } -}; - -} // namespace std - diff --git a/src/mbgl/tile/tile_id_hash.hpp b/src/mbgl/tile/tile_id_hash.hpp new file mode 100644 index 0000000000..ca7de0dddc --- /dev/null +++ b/src/mbgl/tile/tile_id_hash.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include <mbgl/tile/tile_id.hpp> + +#include <boost/functional/hash.hpp> + +namespace std { + +template <> +struct hash<mbgl::CanonicalTileID> { + size_t operator()(const mbgl::CanonicalTileID& id) const { + std::size_t seed = 0; + boost::hash_combine(seed, id.x); + boost::hash_combine(seed, id.y); + boost::hash_combine(seed, id.z); + return seed; + } +}; + +template <> +struct hash<mbgl::UnwrappedTileID> { + size_t operator()(const mbgl::UnwrappedTileID& id) const { + std::size_t seed = 0; + boost::hash_combine(seed, std::hash<mbgl::CanonicalTileID>{}(id.canonical)); + boost::hash_combine(seed, id.wrap); + return seed; + } +}; + +template <> +struct hash<mbgl::OverscaledTileID> { + size_t operator()(const mbgl::OverscaledTileID& id) const { + std::size_t seed = 0; + boost::hash_combine(seed, std::hash<mbgl::CanonicalTileID>{}(id.canonical)); + boost::hash_combine(seed, id.overscaledZ); + return seed; + } +}; + +} // namespace std |