diff --git a/include/llmr/renderer/painter.hpp b/include/llmr/renderer/painter.hpp index 5cca820ec..51203c52b 100644 --- a/include/llmr/renderer/painter.hpp +++ b/include/llmr/renderer/painter.hpp @@ -20,7 +20,6 @@ namespace llmr { class Transform; -class Settings; class Style; class Tile; @@ -32,7 +31,7 @@ class RasterBucket; class Painter : private util::noncopyable { public: - Painter(Transform& transform, Settings& settings, Style& style, GlyphAtlas& glyphAtlas); + Painter(Transform& transform, Style& style, GlyphAtlas& glyphAtlas); void setup(); void clear(); @@ -47,6 +46,9 @@ public: void resize(); + // Changes whether debug information is drawn onto the map + void setDebug(bool enabled); + void prepareClippingMask(); void drawClippingMask(const mat4& matrix, uint8_t clip_id); void finishClippingMask(); @@ -70,12 +72,13 @@ public: private: Transform& transform; - Settings& settings; Style& style; GlyphAtlas& glyphAtlas; FrameHistory frameHistory; + bool debug = false; + uint32_t gl_program = 0; float gl_lineWidth = 0; bool gl_depthMask = true; diff --git a/src/map/map.cpp b/src/map/map.cpp index 756ef6a4c..6fb5b608a 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -17,7 +17,7 @@ Map::Map(Settings& settings) texturepool(), style(), glyphAtlas(1024, 1024), - painter(transform, settings, style, glyphAtlas) { + painter(transform, style, glyphAtlas) { } Map::~Map() { @@ -65,6 +65,7 @@ void Map::loadSettings() { transform.setAngle(settings.angle); transform.setScale(settings.scale); transform.setLonLat(settings.longitude, settings.latitude); + painter.setDebug(settings.debug); update(); } @@ -256,6 +257,7 @@ void Map::resetZoom() { void Map::toggleDebug() { settings.debug = !settings.debug; + painter.setDebug(settings.debug); update(); settings.persist(); diff --git a/src/renderer/painter.cpp b/src/renderer/painter.cpp index 1d26946af..83e8d972f 100644 --- a/src/renderer/painter.cpp +++ b/src/renderer/painter.cpp @@ -12,7 +12,6 @@ #include #include -#include #include #include #include @@ -24,9 +23,8 @@ using namespace llmr; #define BUFFER_OFFSET(i) ((char *)nullptr + (i)) -Painter::Painter(Transform& transform, Settings& settings, Style& style, GlyphAtlas& glyphAtlas) +Painter::Painter(Transform& transform, Style& style, GlyphAtlas& glyphAtlas) : transform(transform), - settings(settings), style(style), glyphAtlas(glyphAtlas) { } @@ -81,6 +79,10 @@ void Painter::resize() { glViewport(0, 0, transform.getFramebufferWidth(), transform.getFramebufferHeight()); } +void Painter::setDebug(bool enabled) { + debug = enabled; +} + void Painter::useProgram(uint32_t program) { if (gl_program != program) { glUseProgram(program); @@ -178,7 +180,7 @@ void Painter::render(const Tile& tile) { renderLayers(tile.data, style.layers); - if (settings.debug) { + if (debug) { renderDebug(tile.data); } }