diff --git a/src/mbgl/style/style.cpp b/src/mbgl/style/style.cpp index 5c6037a7d..5ca36b030 100644 --- a/src/mbgl/style/style.cpp +++ b/src/mbgl/style/style.cpp @@ -1,16 +1,12 @@ #include #include #include -#include -#include #include #include #include #include #include #include -#include -#include #include #include #include @@ -18,16 +14,17 @@ #include #include #include -#include +#include +#include #include #include +#include +#include #include #include #include #include -#include - #include namespace mbgl { @@ -35,8 +32,30 @@ namespace style { static Observer nullObserver; +Style::Style(FileSource& fileSource_, float pixelRatio) + : fileSource(fileSource_), + glyphStore(std::make_unique(fileSource)), + glyphAtlas(std::make_unique(1024, 1024)), + spriteStore(std::make_unique(pixelRatio)), + spriteAtlas(std::make_unique(1024, 1024, pixelRatio, *spriteStore)), + lineAtlas(std::make_unique(256, 512)), + observer(&nullObserver), + workers(4) { + glyphStore->setObserver(this); + spriteStore->setObserver(this); +} + +Style::~Style() { + for (const auto& source : sources) { + source->setObserver(nullptr); + } + + glyphStore->setObserver(nullptr); + spriteStore->setObserver(nullptr); +} + bool Style::addClass(const std::string& className, const TransitionOptions& properties) { - if (std::find(classes.begin(), classes.end(), className) != classes.end()) return false; + if (hasClass(className)) return false; classes.push_back(className); transitionProperties = properties; return true; @@ -65,19 +84,6 @@ std::vector Style::getClasses() const { return classes; } -Style::Style(FileSource& fileSource_, float pixelRatio) - : fileSource(fileSource_), - glyphStore(std::make_unique(fileSource)), - glyphAtlas(std::make_unique(1024, 1024)), - spriteStore(std::make_unique(pixelRatio)), - spriteAtlas(std::make_unique(1024, 1024, pixelRatio, *spriteStore)), - lineAtlas(std::make_unique(256, 512)), - observer(&nullObserver), - workers(4) { - glyphStore->setObserver(this); - spriteStore->setObserver(this); -} - void Style::setJSON(const std::string& json) { sources.clear(); layers.clear(); @@ -100,15 +106,6 @@ void Style::setJSON(const std::string& json) { loaded = true; } -Style::~Style() { - for (const auto& source : sources) { - source->setObserver(nullptr); - } - - glyphStore->setObserver(nullptr); - spriteStore->setObserver(nullptr); -} - void Style::addSource(std::unique_ptr source) { source->setObserver(this); sources.emplace_back(std::move(source));