summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mbgl/map/map.hpp2
-rw-r--r--src/mbgl/map/map.cpp15
-rw-r--r--src/mbgl/map/map_data.hpp6
3 files changed, 16 insertions, 7 deletions
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp
index 9ea5c72f6e..71e81d0771 100644
--- a/include/mbgl/map/map.hpp
+++ b/include/mbgl/map/map.hpp
@@ -80,6 +80,7 @@ public:
enum class Update : UpdateType {
Nothing = 0,
StyleInfo = 1 << 0,
+ Debug = 1 << 1,
};
void triggerUpdate(Update = Update::Nothing);
@@ -254,7 +255,6 @@ private:
std::chrono::steady_clock::duration defaultTransitionDuration;
- bool debug = false;
std::chrono::steady_clock::time_point animationTime = std::chrono::steady_clock::time_point::min();
std::set<util::ptr<StyleSource>> activeSources;
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index 57000e040c..e00cf6e0ab 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -591,18 +591,17 @@ void Map::updateAnnotationTiles(std::vector<Tile::ID>& ids) {
#pragma mark - Toggles
void Map::setDebug(bool value) {
- debug = value;
- assert(painter);
- painter->setDebug(debug);
- triggerUpdate();
+ data->setDebug(value);
+ triggerUpdate(Update::Debug);
}
void Map::toggleDebug() {
- setDebug(!debug);
+ data->toggleDebug();
+ triggerUpdate(Update::Debug);
}
bool Map::getDebug() const {
- return debug;
+ return data->getDebug();
}
void Map::addClass(const std::string& klass) {
@@ -765,6 +764,10 @@ void Map::prepare() {
if (u & static_cast<UpdateType>(Update::StyleInfo)) {
reloadStyle();
}
+ if (u & static_cast<UpdateType>(Update::Debug)) {
+ assert(painter);
+ painter->setDebug(data->getDebug());
+ }
// Update transform transitions.
animationTime = std::chrono::steady_clock::now();
diff --git a/src/mbgl/map/map_data.hpp b/src/mbgl/map/map_data.hpp
index 98d2518a2c..55bf5f7f6e 100644
--- a/src/mbgl/map/map_data.hpp
+++ b/src/mbgl/map/map_data.hpp
@@ -3,6 +3,7 @@
#include <string>
#include <mutex>
+#include <atomic>
namespace mbgl {
@@ -25,10 +26,15 @@ public:
styleInfo = info;
}
+ inline bool getDebug() const { return debug; }
+ inline bool toggleDebug() { return debug ^= 1u; }
+ inline void setDebug(bool value) { debug = value; }
+
private:
mutable std::mutex mtx;
StyleInfo styleInfo;
+ std::atomic<uint8_t> debug;
};
}