diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2015-02-17 17:49:02 -0800 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2015-02-17 18:27:51 -0800 |
commit | 89c0ff5f3955ecd4316a7b4280e995b7b431817d (patch) | |
tree | 7ca855869e5d851ff2e8669c5526a5acab44bc97 /src/mbgl/style | |
parent | df23a6b7d7fc88ac90d0fe034a7e40c8aff928f8 (diff) | |
download | qtlocation-mapboxgl-89c0ff5f3955ecd4316a7b4280e995b7b431817d.tar.gz |
make StyleBucket mutable
refs #881
Diffstat (limited to 'src/mbgl/style')
-rw-r--r-- | src/mbgl/style/style_bucket.cpp | 7 | ||||
-rw-r--r-- | src/mbgl/style/style_bucket.hpp | 5 | ||||
-rw-r--r-- | src/mbgl/style/style_layer.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/style_parser.cpp | 18 |
4 files changed, 11 insertions, 21 deletions
diff --git a/src/mbgl/style/style_bucket.cpp b/src/mbgl/style/style_bucket.cpp index 6e866f3035..54c75fc574 100644 --- a/src/mbgl/style/style_bucket.cpp +++ b/src/mbgl/style/style_bucket.cpp @@ -9,13 +9,6 @@ template<> const StyleBucketRaster &defaultLayoutProperties() { static StyleBuck template<> const StyleBucketBackground &defaultLayoutProperties() { static StyleBucketBackground p; return p; } StyleBucket::StyleBucket(StyleLayerType type_) : type(type_) { - switch (type) { - case StyleLayerType::Fill: render.set<StyleBucketFill>(); break; - case StyleLayerType::Line: render.set<StyleBucketLine>(); break; - case StyleLayerType::Symbol: render.set<StyleBucketSymbol>(); break; - case StyleLayerType::Raster: render.set<StyleBucketRaster>(); break; - default: break; - } } }
\ No newline at end of file diff --git a/src/mbgl/style/style_bucket.hpp b/src/mbgl/style/style_bucket.hpp index eac899cb97..ec852c19f2 100644 --- a/src/mbgl/style/style_bucket.hpp +++ b/src/mbgl/style/style_bucket.hpp @@ -104,10 +104,6 @@ class StyleBucketBackground { public: }; -typedef mapbox::util::variant<StyleBucketFill, StyleBucketLine, StyleBucketSymbol, - StyleBucketRaster, StyleBucketBackground, std::false_type> StyleBucketRender; - - class StyleBucket : public util::noncopyable { public: typedef util::ptr<StyleBucket> Ptr; @@ -119,7 +115,6 @@ public: std::string source_layer; FilterExpression filter; ClassProperties layout; - StyleBucketRender render = std::false_type(); float min_zoom = -std::numeric_limits<float>::infinity(); float max_zoom = std::numeric_limits<float>::infinity(); VisibilityType visibility = VisibilityType::Visible; diff --git a/src/mbgl/style/style_layer.hpp b/src/mbgl/style/style_layer.hpp index 69af1dc230..1dadfed94b 100644 --- a/src/mbgl/style/style_layer.hpp +++ b/src/mbgl/style/style_layer.hpp @@ -67,7 +67,7 @@ public: // Bucket information, telling the renderer how to generate the geometries // for this layer (feature property filters, tessellation instructions, ...). - util::ptr<StyleBucket> bucket; + util::ptr<const StyleBucket> bucket; // Contains all style classes that can be applied to this layer. const std::map<ClassID, ClassProperties> styles; diff --git a/src/mbgl/style/style_parser.cpp b/src/mbgl/style/style_parser.cpp index af6a84492d..8840db0235 100644 --- a/src/mbgl/style/style_parser.cpp +++ b/src/mbgl/style/style_parser.cpp @@ -894,10 +894,10 @@ void StyleParser::parseReference(JSVal value, util::ptr<StyleLayer> &layer) { #pragma mark - Parse Bucket void StyleParser::parseBucket(JSVal value, util::ptr<StyleLayer> &layer) { - layer->bucket = std::make_shared<StyleBucket>(layer->type); + util::ptr<StyleBucket> bucket = std::make_shared<StyleBucket>(layer->type); // We name the buckets according to the layer that defined it. - layer->bucket->name = layer->id; + bucket->name = layer->id; if (value.HasMember("source")) { JSVal value_source = replaceConstant(value["source"]); @@ -905,7 +905,7 @@ void StyleParser::parseBucket(JSVal value, util::ptr<StyleLayer> &layer) { const std::string source_name = { value_source.GetString(), value_source.GetStringLength() }; auto source_it = sources.find(source_name); if (source_it != sources.end()) { - layer->bucket->style_source = source_it->second; + bucket->style_source = source_it->second; } else { Log::Warning(Event::ParseStyle, "can't find source '%s' required for layer '%s'", source_name.c_str(), layer->id.c_str()); } @@ -917,7 +917,7 @@ void StyleParser::parseBucket(JSVal value, util::ptr<StyleLayer> &layer) { if (value.HasMember("source-layer")) { JSVal value_source_layer = replaceConstant(value["source-layer"]); if (value_source_layer.IsString()) { - layer->bucket->source_layer = { value_source_layer.GetString(), value_source_layer.GetStringLength() }; + bucket->source_layer = { value_source_layer.GetString(), value_source_layer.GetStringLength() }; } else { Log::Warning(Event::ParseStyle, "source-layer of layer '%s' must be a string", layer->id.c_str()); } @@ -925,18 +925,18 @@ void StyleParser::parseBucket(JSVal value, util::ptr<StyleLayer> &layer) { if (value.HasMember("filter")) { JSVal value_filter = replaceConstant(value["filter"]); - layer->bucket->filter = parseFilterExpression(value_filter); + bucket->filter = parseFilterExpression(value_filter); } if (value.HasMember("layout")) { JSVal value_render = replaceConstant(value["layout"]); - parseLayout(value_render, layer->bucket); + parseLayout(value_render, bucket); } if (value.HasMember("minzoom")) { JSVal min_zoom = value["minzoom"]; if (min_zoom.IsNumber()) { - layer->bucket->min_zoom = min_zoom.GetDouble(); + bucket->min_zoom = min_zoom.GetDouble(); } else { Log::Warning(Event::ParseStyle, "minzoom of layer %s must be numeric", layer->id.c_str()); } @@ -945,11 +945,13 @@ void StyleParser::parseBucket(JSVal value, util::ptr<StyleLayer> &layer) { if (value.HasMember("maxzoom")) { JSVal max_zoom = value["maxzoom"]; if (max_zoom.IsNumber()) { - layer->bucket->min_zoom = max_zoom.GetDouble(); + bucket->min_zoom = max_zoom.GetDouble(); } else { Log::Warning(Event::ParseStyle, "maxzoom of layer %s must be numeric", layer->id.c_str()); } } + + layer->bucket = bucket; } void StyleParser::parseSprite(JSVal value) { |