remove Settings object from Painter

This commit is contained in:
Konstantin Käfer
2014-04-16 16:45:09 -04:00
parent 7e3f374bd4
commit b119aa92d8
3 changed files with 15 additions and 8 deletions

View File

@@ -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;

View File

@@ -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();

View File

@@ -12,7 +12,6 @@
#include <llmr/renderer/raster_bucket.hpp>
#include <llmr/map/transform.hpp>
#include <llmr/map/settings.hpp>
#include <llmr/geometry/debug_font_buffer.hpp>
#include <llmr/platform/gl.hpp>
#include <llmr/style/style.hpp>
@@ -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);
}
}