summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLauren Budorick <lauren@mapbox.com>2017-04-20 13:18:20 -0700
committerLauren Budorick <lauren@mapbox.com>2017-04-24 17:11:01 -0700
commit51ee5b2fd2f2adf432a17d8c33b6b48a2b4034ab (patch)
treeaf7d0e25da59e95f87047258b3d1d6ef3d72d4af
parentb01c6009f6be1045708875181035d65d8c06d5e4 (diff)
downloadqtlocation-mapboxgl-51ee5b2fd2f2adf432a17d8c33b6b48a2b4034ab.tar.gz
Manage light as unique_ptr of style
-rw-r--r--include/mbgl/map/map.hpp2
-rw-r--r--src/mbgl/map/map.cpp6
-rw-r--r--src/mbgl/style/light_impl.hpp6
-rw-r--r--src/mbgl/style/style.cpp5
-rw-r--r--src/mbgl/style/style.hpp2
5 files changed, 11 insertions, 10 deletions
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp
index 84ea3104d8..3cb16e1ddf 100644
--- a/include/mbgl/map/map.hpp
+++ b/include/mbgl/map/map.hpp
@@ -182,7 +182,7 @@ public:
// Light
void setLight(std::unique_ptr<style::Light>);
- style::Light* getLight();
+ std::unique_ptr<style::Light> getLight();
// Defaults
std::string getStyleName() const;
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index 838e508bcf..17d1c5fa77 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -984,15 +984,15 @@ void Map::setLight(std::unique_ptr<style::Light> light) {
return;
}
- impl->style->light = *light;
+ impl->style->light = std::move(light);
}
-style::Light* Map::getLight() {
+std::unique_ptr<style::Light> Map::getLight() {
if (!impl->style) {
return nullptr;
}
- return &impl->style->light;
+ return std::move(impl->style->light);
}
#pragma mark - Defaults
diff --git a/src/mbgl/style/light_impl.hpp b/src/mbgl/style/light_impl.hpp
index d1825090fc..7886b61291 100644
--- a/src/mbgl/style/light_impl.hpp
+++ b/src/mbgl/style/light_impl.hpp
@@ -27,12 +27,12 @@ private:
public:
Transitioning() = default;
- Transitioning(const Raw& raw, Transitioning&& prior, const CascadeParameters& params)
+ Transitioning(const Raw* raw, Transitioning&& prior, const CascadeParameters& params)
: Super {
TransitioningProperty<typename Ps::ValueType>(
- raw.template get<Ps>().value,
+ raw->template get<Ps>().value,
std::move(prior.template get<Ps>()),
- raw.template get<Ps>().transition.reverseMerge(params.transition),
+ raw->template get<Ps>().transition.reverseMerge(params.transition),
params.now)...
} {}
diff --git a/src/mbgl/style/style.cpp b/src/mbgl/style/style.cpp
index b584cb9e8a..9ea8d82e6a 100644
--- a/src/mbgl/style/style.cpp
+++ b/src/mbgl/style/style.cpp
@@ -46,6 +46,7 @@ Style::Style(Scheduler& scheduler_, FileSource& fileSource_, float pixelRatio)
glyphAtlas(std::make_unique<GlyphAtlas>(Size{ 2048, 2048 }, fileSource)),
spriteAtlas(std::make_unique<SpriteAtlas>(Size{ 1024, 1024 }, pixelRatio)),
lineAtlas(std::make_unique<LineAtlas>(Size{ 256, 512 })),
+ light(std::make_unique<Light>()),
observer(&nullObserver) {
glyphAtlas->setObserver(this);
spriteAtlas->setObserver(this);
@@ -132,7 +133,7 @@ void Style::setJSON(const std::string& json) {
defaultZoom = parser.zoom;
defaultBearing = parser.bearing;
defaultPitch = parser.pitch;
- light = parser.light;
+ light = std::make_unique<Light>(parser.light);
glyphAtlas->setURL(parser.glyphURL);
spriteAtlas->load(parser.spriteURL, scheduler, fileSource);
@@ -309,7 +310,7 @@ void Style::cascade(const TimePoint& timePoint, MapMode mode) {
layer->baseImpl->cascade(parameters);
}
- transitioningLight = TransitioningLight(light, std::move(transitioningLight), parameters);
+ transitioningLight = TransitioningLight(light.get(), std::move(transitioningLight), parameters);
}
void Style::recalculate(float z, const TimePoint& timePoint, MapMode mode) {
diff --git a/src/mbgl/style/style.hpp b/src/mbgl/style/style.hpp
index 5a9ce8dd9b..1c8b426ee3 100644
--- a/src/mbgl/style/style.hpp
+++ b/src/mbgl/style/style.hpp
@@ -114,7 +114,7 @@ public:
std::unique_ptr<SpriteAtlas> spriteAtlas;
std::unique_ptr<LineAtlas> lineAtlas;
- Light light;
+ std::unique_ptr<Light> light;
TransitioningLight transitioningLight;
EvaluatedLight evaluatedLight;