diff options
author | Lauren Budorick <lauren@mapbox.com> | 2017-04-20 13:18:20 -0700 |
---|---|---|
committer | Lauren Budorick <lauren@mapbox.com> | 2017-04-24 17:11:01 -0700 |
commit | 51ee5b2fd2f2adf432a17d8c33b6b48a2b4034ab (patch) | |
tree | af7d0e25da59e95f87047258b3d1d6ef3d72d4af | |
parent | b01c6009f6be1045708875181035d65d8c06d5e4 (diff) | |
download | qtlocation-mapboxgl-51ee5b2fd2f2adf432a17d8c33b6b48a2b4034ab.tar.gz |
Manage light as unique_ptr of style
-rw-r--r-- | include/mbgl/map/map.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/map/map.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/style/light_impl.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/style/style.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/style/style.hpp | 2 |
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; |