diff --git a/src/mbgl/map/sprite.cpp b/src/mbgl/map/sprite.cpp index 5f6190f58..84fbce606 100644 --- a/src/mbgl/map/sprite.cpp +++ b/src/mbgl/map/sprite.cpp @@ -39,6 +39,7 @@ Sprite::Sprite(const std::string& baseUrl, float pixelRatio_) : pixelRatio(pixelRatio_ > 1 ? 2 : 1) { if (baseUrl.empty()) { // Treat a non-existent sprite as a successfully loaded empty sprite. + loaded = true; return; } @@ -95,6 +96,7 @@ void Sprite::emitSpriteLoadedIfComplete() { auto result = parseSprite(data->image, data->json); if (result.is()) { + loaded = true; observer->onSpriteLoaded(result.get()); } else { emitSpriteLoadingFailed(result.get()); diff --git a/src/mbgl/map/sprite.hpp b/src/mbgl/map/sprite.hpp index b2020e7d6..32fa16de1 100644 --- a/src/mbgl/map/sprite.hpp +++ b/src/mbgl/map/sprite.hpp @@ -36,7 +36,7 @@ public: ~Sprite(); inline bool isLoaded() const { - return loader == nullptr; + return loaded; } const float pixelRatio; @@ -50,6 +50,8 @@ private: struct Loader; std::unique_ptr loader; + bool loaded = false; + Observer* observer = nullptr; };