summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2015-03-20 19:22:27 +0100
committerKonstantin Käfer <mail@kkaefer.com>2015-03-23 11:02:19 +0100
commit9637176711f2f72e5bfa06561050c4737da6953c (patch)
tree613f4f0330a917aca3f35287f935c022356d981f /src
parent268975d4c2d8ce572a500a5f4b06a13eca51cf28 (diff)
downloadqtlocation-mapboxgl-9637176711f2f72e5bfa06561050c4737da6953c.tar.gz
move defaultTransitionDuration to MapData
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/map/map.cpp18
-rw-r--r--src/mbgl/map/map_data.hpp9
2 files changed, 21 insertions, 6 deletions
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index 8d4dd1461d..4ebd4100b9 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -649,14 +649,15 @@ std::vector<std::string> Map::getClasses() const {
}
void Map::setDefaultTransitionDuration(std::chrono::steady_clock::duration duration) {
- defaultTransitionDuration = duration;
- if (style) {
- style->setDefaultTransitionDuration(duration);
- }
+ assert(Environment::currentlyOn(ThreadType::Main));
+
+ data->setDefaultTransitionDuration(duration);
+ triggerUpdate(Update::DefaultTransitionDuration);
}
std::chrono::steady_clock::duration Map::getDefaultTransitionDuration() {
- return defaultTransitionDuration;
+ assert(Environment::currentlyOn(ThreadType::Main));
+ return data->getDefaultTransitionDuration();
}
void Map::updateSources() {
@@ -753,7 +754,7 @@ void Map::loadStyleJSON(const std::string& json, const std::string& base) {
style->base = base;
style->loadJSON((const uint8_t *)json.c_str());
style->cascadeClasses(classes);
- style->setDefaultTransitionDuration(defaultTransitionDuration);
+ style->setDefaultTransitionDuration(data->getDefaultTransitionDuration());
const std::string glyphURL = util::mapbox::normalizeGlyphsURL(style->glyph_url, getAccessToken());
glyphStore->setURL(glyphURL);
@@ -772,6 +773,11 @@ void Map::prepare() {
assert(painter);
painter->setDebug(data->getDebug());
}
+ if (u & static_cast<UpdateType>(Update::DefaultTransitionDuration)) {
+ if (style) {
+ style->setDefaultTransitionDuration(data->getDefaultTransitionDuration());
+ }
+ }
// Update transform transitions.
diff --git a/src/mbgl/map/map_data.hpp b/src/mbgl/map/map_data.hpp
index 8efa43911b..972ad34064 100644
--- a/src/mbgl/map/map_data.hpp
+++ b/src/mbgl/map/map_data.hpp
@@ -20,6 +20,7 @@ class MapData {
public:
inline MapData() {
setAnimationTime(std::chrono::steady_clock::time_point::min());
+ setDefaultTransitionDuration(std::chrono::steady_clock::duration::zero());
}
inline StyleInfo getStyleInfo() const {
@@ -50,12 +51,20 @@ public:
animationTime = timePoint.time_since_epoch();
};
+ inline std::chrono::steady_clock::duration getDefaultTransitionDuration() const {
+ return defaultTransitionDuration;
+ }
+ inline void setDefaultTransitionDuration(std::chrono::steady_clock::duration duration) {
+ defaultTransitionDuration = duration;
+ };
+
private:
mutable std::mutex mtx;
StyleInfo styleInfo;
std::atomic<uint8_t> debug { false };
std::atomic<std::chrono::steady_clock::time_point::duration> animationTime;
+ std::atomic<std::chrono::steady_clock::duration> defaultTransitionDuration;
};
}