summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Crocker <jesse@gaiagps.com>2016-11-29 14:36:35 -0700
committerKonstantin Käfer <mail@kkaefer.com>2017-03-20 18:14:03 +0100
commit461a157caeec4b21bee0fc0adc002fbb64ab1444 (patch)
treefca7b2f3390b3940829d0ee17ce55a5f29decf6a
parentffd0e21baa5593e4719ecccd01be77173e47be3f (diff)
downloadqtlocation-mapboxgl-461a157caeec4b21bee0fc0adc002fbb64ab1444.tar.gz
[core] Move *TileID hashing to separate header
-rw-r--r--cmake/core-files.cmake1
-rw-r--r--src/mbgl/algorithm/generate_clip_ids.hpp1
-rw-r--r--src/mbgl/algorithm/update_renderables.hpp1
-rw-r--r--src/mbgl/style/source_impl.hpp1
-rw-r--r--src/mbgl/tile/tile_id.hpp35
-rw-r--r--src/mbgl/tile/tile_id_hash.hpp40
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