diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-08-29 12:52:49 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-09-06 12:52:14 -0700 |
commit | 3635b9f1476ffd5d8f38a7abdf5742faef012850 (patch) | |
tree | e1ec24db4a0b90e7eb0c23768312183d1a2a526d /src/mbgl/style | |
parent | 5b4f6335e384169bcd88633e38d59a500319a47b (diff) | |
download | qtlocation-mapboxgl-3635b9f1476ffd5d8f38a7abdf5742faef012850.tar.gz |
[core] Prepare style observer interfaces for source reloading
* Renamed {Source,Tile}Observer::onNeedsRepaint to onTileUpdated. Messages should be in terms of what happened to the observed object, not in terms of what the observer needs to do. This also removes a confusing overlap of virtual methods on StyleObserver.
* Added style::Observer::onUpdate(Update). This is also a violation of the above rule, but I'm hopeful that it will disappear when update batching is implemented.
Diffstat (limited to 'src/mbgl/style')
-rw-r--r-- | src/mbgl/style/observer.hpp | 9 | ||||
-rw-r--r-- | src/mbgl/style/source_impl.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/style/source_impl.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/source_observer.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/style/style.cpp | 12 | ||||
-rw-r--r-- | src/mbgl/style/style.hpp | 2 |
6 files changed, 14 insertions, 18 deletions
diff --git a/src/mbgl/style/observer.hpp b/src/mbgl/style/observer.hpp index c4d31ae249..41b1b46da7 100644 --- a/src/mbgl/style/observer.hpp +++ b/src/mbgl/style/observer.hpp @@ -3,6 +3,7 @@ #include <mbgl/text/glyph_store_observer.hpp> #include <mbgl/sprite/sprite_store_observer.hpp> #include <mbgl/style/source_observer.hpp> +#include <mbgl/map/update.hpp> namespace mbgl { namespace style { @@ -11,13 +12,7 @@ class Observer : public GlyphStoreObserver, public SpriteStoreObserver, public SourceObserver { public: - /** - * 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 `onNeedsRepaint` will be called. - */ - void onNeedsRepaint() override {} + virtual void onUpdate(Update) {} virtual void onStyleError() {} virtual void onResourceError(std::exception_ptr) {} }; diff --git a/src/mbgl/style/source_impl.cpp b/src/mbgl/style/source_impl.cpp index d5e33caa55..45cc27ef1f 100644 --- a/src/mbgl/style/source_impl.cpp +++ b/src/mbgl/style/source_impl.cpp @@ -266,8 +266,8 @@ void Source::Impl::onTileError(Tile& tile, std::exception_ptr error) { observer->onTileError(base, tile.id, error); } -void Source::Impl::onNeedsRepaint() { - observer->onNeedsRepaint(); +void Source::Impl::onTileUpdated(Tile& tile) { + observer->onTileUpdated(base, tile.id); } void Source::Impl::dumpDebugLogs() const { diff --git a/src/mbgl/style/source_impl.hpp b/src/mbgl/style/source_impl.hpp index 93add4ad13..52b2e46a38 100644 --- a/src/mbgl/style/source_impl.hpp +++ b/src/mbgl/style/source_impl.hpp @@ -86,7 +86,7 @@ private: // TileObserver implementation. void onTileLoaded(Tile&, bool isNewTile) override; void onTileError(Tile&, std::exception_ptr) override; - void onNeedsRepaint() override; + void onTileUpdated(Tile&) override; virtual uint16_t getTileSize() const = 0; virtual Range<uint8_t> getZoomRange() = 0; diff --git a/src/mbgl/style/source_observer.hpp b/src/mbgl/style/source_observer.hpp index 020ead4dba..8c353e4d82 100644 --- a/src/mbgl/style/source_observer.hpp +++ b/src/mbgl/style/source_observer.hpp @@ -16,9 +16,10 @@ public: virtual void onSourceLoaded(Source&) {} virtual void onSourceError(Source&, std::exception_ptr) {} + virtual void onTileLoaded(Source&, const OverscaledTileID&, bool /* isNewTile */) {} virtual void onTileError(Source&, const OverscaledTileID&, std::exception_ptr) {} - virtual void onNeedsRepaint() {} + virtual void onTileUpdated(Source&, const OverscaledTileID&) {} }; } // namespace style diff --git a/src/mbgl/style/style.cpp b/src/mbgl/style/style.cpp index 20202cbcf4..bb0e2b61f6 100644 --- a/src/mbgl/style/style.cpp +++ b/src/mbgl/style/style.cpp @@ -423,7 +423,7 @@ void Style::setObserver(style::Observer* observer_) { void Style::onGlyphsLoaded(const FontStack& fontStack, const GlyphRange& glyphRange) { shouldReparsePartialTiles = true; observer->onGlyphsLoaded(fontStack, glyphRange); - observer->onNeedsRepaint(); + observer->onUpdate(Update::Repaint); } void Style::onGlyphsError(const FontStack& fontStack, const GlyphRange& glyphRange, std::exception_ptr error) { @@ -436,7 +436,7 @@ void Style::onGlyphsError(const FontStack& fontStack, const GlyphRange& glyphRan void Style::onSourceLoaded(Source& source) { observer->onSourceLoaded(source); - observer->onNeedsRepaint(); + observer->onUpdate(Update::Repaint); } void Style::onSourceError(Source& source, std::exception_ptr error) { @@ -453,7 +453,7 @@ void Style::onTileLoaded(Source& source, const OverscaledTileID& tileID, bool is } observer->onTileLoaded(source, tileID, isNewTile); - observer->onNeedsRepaint(); + observer->onUpdate(Update::Repaint); } void Style::onTileError(Source& source, const OverscaledTileID& tileID, std::exception_ptr error) { @@ -464,14 +464,14 @@ void Style::onTileError(Source& source, const OverscaledTileID& tileID, std::exc observer->onResourceError(error); } -void Style::onNeedsRepaint() { - observer->onNeedsRepaint(); +void Style::onTileUpdated(Source&, const OverscaledTileID&) { + observer->onUpdate(Update::Repaint); } void Style::onSpriteLoaded() { shouldReparsePartialTiles = true; observer->onSpriteLoaded(); - observer->onNeedsRepaint(); + observer->onUpdate(Update::Repaint); } void Style::onSpriteError(std::exception_ptr error) { diff --git a/src/mbgl/style/style.hpp b/src/mbgl/style/style.hpp index 671e25bdc1..ca6526478e 100644 --- a/src/mbgl/style/style.hpp +++ b/src/mbgl/style/style.hpp @@ -127,7 +127,7 @@ private: void onSourceError(Source&, std::exception_ptr) override; void onTileLoaded(Source&, const OverscaledTileID&, bool isNewTile) override; void onTileError(Source&, const OverscaledTileID&, std::exception_ptr) override; - void onNeedsRepaint() override; + void onTileUpdated(Source&, const OverscaledTileID&) override; Observer nullObserver; Observer* observer = &nullObserver; |