From b3ec985568176b077756b66754470988436d43c1 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Fri, 12 May 2017 13:01:00 -0700 Subject: [core] Trim StyleObserver interface It doesn't need to inherit from SpriteLoaderObserver and GlyphAtlasObserver. --- src/mbgl/style/observer.hpp | 6 +----- src/mbgl/style/style.cpp | 7 ------- src/mbgl/style/style.hpp | 3 +-- test/sprite/sprite_loader.test.cpp | 19 +++++++++++++++++-- test/src/mbgl/test/stub_style_observer.hpp | 20 -------------------- test/text/glyph_atlas.test.cpp | 17 +++++++++++++++-- 6 files changed, 34 insertions(+), 38 deletions(-) diff --git a/src/mbgl/style/observer.hpp b/src/mbgl/style/observer.hpp index 77d97685be..3b2c0db3c0 100644 --- a/src/mbgl/style/observer.hpp +++ b/src/mbgl/style/observer.hpp @@ -1,7 +1,5 @@ #pragma once -#include -#include #include #include @@ -10,9 +8,7 @@ namespace mbgl { namespace style { -class Observer : public GlyphAtlasObserver, - public SpriteLoaderObserver, - public SourceObserver { +class Observer : public SourceObserver { public: virtual void onUpdate(Update) {} virtual void onStyleError(std::exception_ptr) {} diff --git a/src/mbgl/style/style.cpp b/src/mbgl/style/style.cpp index 5f67d495bd..ae9ed97427 100644 --- a/src/mbgl/style/style.cpp +++ b/src/mbgl/style/style.cpp @@ -729,15 +729,10 @@ void Style::setObserver(style::Observer* observer_) { observer = observer_; } -void Style::onGlyphsLoaded(const FontStack& fontStack, const GlyphRange& glyphRange) { - observer->onGlyphsLoaded(fontStack, glyphRange); -} - void Style::onGlyphsError(const FontStack& fontStack, const GlyphRange& glyphRange, std::exception_ptr error) { lastError = error; Log::Error(Event::Style, "Failed to load glyph range %d-%d for font stack %s: %s", glyphRange.first, glyphRange.second, fontStackToString(fontStack).c_str(), util::toString(error).c_str()); - observer->onGlyphsError(fontStack, glyphRange, error); observer->onResourceError(error); } @@ -789,14 +784,12 @@ void Style::onSpriteLoaded(SpriteLoader::Images&& images) { spriteAtlas->onSpriteLoaded(std::move(addedImages)); // Update observer - observer->onSpriteLoaded(std::move(images)); observer->onUpdate(Update::Repaint); // For *-pattern properties. } void Style::onSpriteError(std::exception_ptr error) { lastError = error; Log::Error(Event::Style, "Failed to load sprite: %s", util::toString(error).c_str()); - observer->onSpriteError(error); observer->onResourceError(error); } diff --git a/src/mbgl/style/style.hpp b/src/mbgl/style/style.hpp index 5953d823d9..fb724e2b46 100644 --- a/src/mbgl/style/style.hpp +++ b/src/mbgl/style/style.hpp @@ -154,8 +154,7 @@ private: std::vector>::const_iterator findLayer(const std::string& layerID) const; - // GlyphStoreObserver implementation. - void onGlyphsLoaded(const FontStack&, const GlyphRange&) override; + // GlyphAtlasObserver implementation. void onGlyphsError(const FontStack&, const GlyphRange&, std::exception_ptr) override; // SpriteLoaderObserver implementation. diff --git a/test/sprite/sprite_loader.test.cpp b/test/sprite/sprite_loader.test.cpp index 06018cc390..99f44e57e4 100644 --- a/test/sprite/sprite_loader.test.cpp +++ b/test/sprite/sprite_loader.test.cpp @@ -1,9 +1,9 @@ #include #include #include -#include #include +#include #include #include #include @@ -14,6 +14,21 @@ #include using namespace mbgl; +using namespace mbgl::style; + +class StubSpriteLoaderObserver : public SpriteLoaderObserver { +public: + void onSpriteLoaded(Images&& images) override { + if (spriteLoaded) spriteLoaded(std::move(images)); + } + + void onSpriteError(std::exception_ptr error) override { + if (spriteError) spriteError(error); + } + + std::function spriteLoaded; + std::function spriteError; +}; class SpriteLoaderTest { public: @@ -21,7 +36,7 @@ public: util::RunLoop loop; StubFileSource fileSource; - StubStyleObserver observer; + StubSpriteLoaderObserver observer; ThreadPool threadPool { 1 }; SpriteLoader spriteLoader{ 1 }; diff --git a/test/src/mbgl/test/stub_style_observer.hpp b/test/src/mbgl/test/stub_style_observer.hpp index a3a48b04c0..b97911cdb0 100644 --- a/test/src/mbgl/test/stub_style_observer.hpp +++ b/test/src/mbgl/test/stub_style_observer.hpp @@ -10,22 +10,6 @@ using namespace mbgl::style; */ class StubStyleObserver : public style::Observer { public: - void onGlyphsLoaded(const FontStack& fontStack, const GlyphRange& glyphRange) override { - if (glyphsLoaded) glyphsLoaded(fontStack, glyphRange); - } - - void onGlyphsError(const FontStack& fontStack, const GlyphRange& glyphRange, std::exception_ptr error) override { - if (glyphsError) glyphsError(fontStack, glyphRange, error); - } - - void onSpriteLoaded(Images&& images) override { - if (spriteLoaded) spriteLoaded(std::move(images)); - } - - void onSpriteError(std::exception_ptr error) override { - if (spriteError) spriteError(error); - } - void onSourceLoaded(Source& source) override { if (sourceLoaded) sourceLoaded(source); } @@ -46,10 +30,6 @@ public: if (resourceError) resourceError(error); }; - std::function glyphsLoaded; - std::function glyphsError; - std::function spriteLoaded; - std::function spriteError; std::function sourceLoaded; std::function sourceChanged; std::function sourceError; diff --git a/test/text/glyph_atlas.test.cpp b/test/text/glyph_atlas.test.cpp index 5aff1ee441..01e0f115c0 100644 --- a/test/text/glyph_atlas.test.cpp +++ b/test/text/glyph_atlas.test.cpp @@ -1,6 +1,5 @@ #include #include -#include #include #include @@ -10,6 +9,20 @@ using namespace mbgl; +class StubGlyphAtlasObserver : public GlyphAtlasObserver { +public: + void onGlyphsLoaded(const FontStack& fontStack, const GlyphRange& glyphRange) override { + if (glyphsLoaded) glyphsLoaded(fontStack, glyphRange); + } + + void onGlyphsError(const FontStack& fontStack, const GlyphRange& glyphRange, std::exception_ptr error) override { + if (glyphsError) glyphsError(fontStack, glyphRange, error); + } + + std::function glyphsLoaded; + std::function glyphsError; +}; + class StubGlyphRequestor : public GlyphRequestor { public: void onGlyphsAvailable(GlyphPositionMap positions) override { @@ -23,7 +36,7 @@ class GlyphAtlasTest { public: util::RunLoop loop; StubFileSource fileSource; - StubStyleObserver observer; + StubGlyphAtlasObserver observer; StubGlyphRequestor requestor; GlyphAtlas glyphAtlas{ { 32, 32 }, fileSource }; -- cgit v1.2.1