summaryrefslogtreecommitdiff
path: root/src/mbgl/style/style.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/style.hpp')
-rw-r--r--src/mbgl/style/style.hpp36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/mbgl/style/style.hpp b/src/mbgl/style/style.hpp
index ed5df04256..ba5da7435a 100644
--- a/src/mbgl/style/style.hpp
+++ b/src/mbgl/style/style.hpp
@@ -58,12 +58,18 @@ public:
Style(MapData&);
~Style();
- class Observer {
+ class Observer : public GlyphStore::Observer,
+ public SpriteStore::Observer,
+ public Source::Observer {
public:
- virtual ~Observer() = default;
-
- virtual void onTileDataChanged() = 0;
- virtual void onResourceLoadingFailed(std::exception_ptr error) = 0;
+ /**
+ * In addition to the individual glyph, sprite, and source events, the
+ * following "rollup" events are provided for convenience. They are
+ * strictly additive; e.g. when a source is loaded, both `onSourceLoaded`
+ * and `onResourceLoaded` will be called.
+ */
+ virtual void onResourceLoaded() {};
+ virtual void onResourceError(std::exception_ptr) {};
};
void setJSON(const std::string& data, const std::string& base);
@@ -115,25 +121,23 @@ private:
std::vector<std::unique_ptr<StyleLayer>>::const_iterator findLayer(const std::string& layerID) const;
// GlyphStore::Observer implementation.
- void onGlyphRangeLoaded() override;
- void onGlyphRangeLoadingFailed(std::exception_ptr error) override;
+ void onGlyphsLoaded(const std::string& fontStack, const GlyphRange&) override;
+ void onGlyphsError(const std::string& fontStack, const GlyphRange&, std::exception_ptr) override;
// SpriteStore::Observer implementation.
void onSpriteLoaded() override;
- void onSpriteLoadingFailed(std::exception_ptr error) override;
+ void onSpriteError(std::exception_ptr) override;
// Source::Observer implementation.
- void onSourceLoaded() override;
- void onSourceLoadingFailed(std::exception_ptr error) override;
- void onTileLoaded(bool isNewTile) override;
- void onTileLoadingFailed(std::exception_ptr error) override;
-
- void emitTileDataChanged();
- void emitResourceLoadingFailed(std::exception_ptr error);
+ void onSourceLoaded(Source&) override;
+ void onSourceError(Source&, std::exception_ptr) override;
+ void onTileLoaded(Source&, const TileID&, bool isNewTile) override;
+ void onTileError(Source&, const TileID&, std::exception_ptr) override;
bool shouldReparsePartialTiles = false;
- Observer* observer = nullptr;
+ Observer nullObserver;
+ Observer* observer = &nullObserver;
std::exception_ptr lastError;