From 0c985c024b4db6c8063648d493830c67ebff50bc Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Fri, 13 Mar 2015 13:05:32 -0700 Subject: Revert "Move atlas ownership to Style" This reverts commit bffee0715458530c6c86f440f757a4de667278a2. --- src/mbgl/map/map.cpp | 101 +++++++++++++++++++++++++++++++---- src/mbgl/renderer/painter.cpp | 16 +++--- src/mbgl/renderer/painter.hpp | 8 +-- src/mbgl/renderer/painter_fill.cpp | 6 +-- src/mbgl/renderer/painter_line.cpp | 14 ++--- src/mbgl/renderer/painter_symbol.cpp | 10 ++-- src/mbgl/style/style.cpp | 81 +++------------------------- src/mbgl/style/style.hpp | 31 ++--------- 8 files changed, 131 insertions(+), 136 deletions(-) (limited to 'src') diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index cdad5f3ba2..29521f9499 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -12,14 +13,19 @@ #include #include #include +#include +#include #include #include #include #include +#include +#include #include #include #include #include +#include #include #include @@ -59,8 +65,12 @@ Map::Map(View& view_, FileSource& fileSource_) mapThread(mainThread), transform(view_), fileSource(fileSource_), + glyphAtlas(util::make_unique(1024, 1024)), + glyphStore(std::make_shared(*env)), + spriteAtlas(util::make_unique(512, 512)), + lineAtlas(util::make_unique(512, 512)), texturePool(std::make_shared()), - painter(util::make_unique()) + painter(util::make_unique(*spriteAtlas, *glyphAtlas, *lineAtlas)) { view.initialize(this); } @@ -71,6 +81,9 @@ Map::~Map() { } // Explicitly reset all pointers. + activeSources.clear(); + sprite.reset(); + glyphStore.reset(); style.reset(); texturePool.reset(); workers.reset(); @@ -101,6 +114,7 @@ void Map::start(bool startPaused) { // Remove all of these to make sure they are destructed in the correct thread. style.reset(); workers.reset(); + activeSources.clear(); terminating = true; @@ -337,9 +351,9 @@ void Map::setStyleURL(const std::string &url) { void Map::setStyleJSON(std::string newStyleJSON, const std::string &base) { // TODO: Make threadsafe. styleJSON.swap(newStyleJSON); - + sprite.reset(); if (!style) { - style = std::make_shared