From 2455275bf47e1671a92eb2c1296c6b48f11f6b2e Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Tue, 2 Apr 2019 12:57:45 -0400 Subject: add onStyleImageMissing to allow dynamically loaded or generated images (#14253) Also make `Style#updateImage(...)` much faster when the image doesn't change size. This can be useful for asynchronously generating images. --- test/renderer/image_manager.test.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/renderer/image_manager.test.cpp b/test/renderer/image_manager.test.cpp index 20451827ce..b73d9b5c7a 100644 --- a/test/renderer/image_manager.test.cpp +++ b/test/renderer/image_manager.test.cpp @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -107,11 +108,11 @@ TEST(ImageManager, RemoveReleasesBinPackRect) { class StubImageRequestor : public ImageRequestor { public: - void onImagesAvailable(ImageMap icons, ImageMap patterns, uint64_t imageCorrelationID_) final { - if (imagesAvailable && imageCorrelationID == imageCorrelationID_) imagesAvailable(icons, patterns); + void onImagesAvailable(ImageMap icons, ImageMap patterns, std::unordered_map versionMap, uint64_t imageCorrelationID_) final { + if (imagesAvailable && imageCorrelationID == imageCorrelationID_) imagesAvailable(icons, patterns, versionMap); } - std::function imagesAvailable; + std::function)> imagesAvailable; uint64_t imageCorrelationID = 0; }; @@ -120,7 +121,10 @@ TEST(ImageManager, NotifiesRequestorWhenSpriteIsLoaded) { StubImageRequestor requestor; bool notified = false; - requestor.imagesAvailable = [&] (ImageMap, ImageMap) { + ImageManagerObserver observer; + imageManager.setObserver(&observer); + + requestor.imagesAvailable = [&] (ImageMap, ImageMap, std::unordered_map) { notified = true; }; @@ -131,6 +135,8 @@ TEST(ImageManager, NotifiesRequestorWhenSpriteIsLoaded) { ASSERT_FALSE(notified); imageManager.setLoaded(true); + ASSERT_FALSE(notified); + imageManager.notifyIfMissingImageAdded(); ASSERT_TRUE(notified); } @@ -139,7 +145,7 @@ TEST(ImageManager, NotifiesRequestorImmediatelyIfDependenciesAreSatisfied) { StubImageRequestor requestor; bool notified = false; - requestor.imagesAvailable = [&] (ImageMap, ImageMap) { + requestor.imagesAvailable = [&] (ImageMap, ImageMap, std::unordered_map) { notified = true; }; -- cgit v1.2.1