summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-02-11 01:54:05 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-02-11 14:34:46 +0200
commit64e2bcdf4395a1c65cd9faca81f98c4c5d974bd6 (patch)
tree672f0cb62600314c76c26478d44ebf6d56c96577 /test
parent146e0ac8ed6a287b77505ffdefa9fe77da93eee1 (diff)
downloadqtlocation-mapboxgl-64e2bcdf4395a1c65cd9faca81f98c4c5d974bd6.tar.gz
[core] Loading images to style optimization
This change enables attaching images to the style with batches and avoids massive re-allocations. Thus, it improves UI performance especially at start-up time.
Diffstat (limited to 'test')
-rw-r--r--test/renderer/image_manager.test.cpp6
-rw-r--r--test/renderer/pattern_atlas.test.cpp4
-rw-r--r--test/sprite/sprite_loader.test.cpp8
-rw-r--r--test/sprite/sprite_parser.test.cpp24
4 files changed, 22 insertions, 20 deletions
diff --git a/test/renderer/image_manager.test.cpp b/test/renderer/image_manager.test.cpp
index a891f48b48..c3ab0d8227 100644
--- a/test/renderer/image_manager.test.cpp
+++ b/test/renderer/image_manager.test.cpp
@@ -27,10 +27,10 @@ TEST(ImageManager, Basic) {
auto images = parseSprite(util::read_file("test/fixtures/annotations/emerald.png"),
util::read_file("test/fixtures/annotations/emerald.json"));
for (auto& image : images) {
- imageManager.addImage(image->baseImpl);
- auto* stored = imageManager.getImage(image->getID());
+ imageManager.addImage(image);
+ auto* stored = imageManager.getImage(image->id);
ASSERT_TRUE(stored);
- EXPECT_EQ(image->getImage().size, stored->image.size);
+ EXPECT_EQ(image->image.size, stored->image.size);
}
}
diff --git a/test/renderer/pattern_atlas.test.cpp b/test/renderer/pattern_atlas.test.cpp
index 350a64adb4..143ee928b5 100644
--- a/test/renderer/pattern_atlas.test.cpp
+++ b/test/renderer/pattern_atlas.test.cpp
@@ -21,8 +21,8 @@ TEST(PatternAtlas, Basic) {
auto images = parseSprite(util::read_file("test/fixtures/annotations/emerald.png"),
util::read_file("test/fixtures/annotations/emerald.json"));
for (auto& image : images) {
- if (image->getID() == "metro") {
- ASSERT_TRUE(patternAtlas.addPattern(*image->baseImpl));
+ if (image->id == "metro") {
+ ASSERT_TRUE(patternAtlas.addPattern(*image));
}
}
auto found = patternAtlas.getPattern("metro");
diff --git a/test/sprite/sprite_loader.test.cpp b/test/sprite/sprite_loader.test.cpp
index 122e711f51..4e68bff505 100644
--- a/test/sprite/sprite_loader.test.cpp
+++ b/test/sprite/sprite_loader.test.cpp
@@ -17,7 +17,7 @@ using namespace mbgl::style;
class StubSpriteLoaderObserver : public SpriteLoaderObserver {
public:
- void onSpriteLoaded(std::vector<std::unique_ptr<style::Image>>&& images) override {
+ void onSpriteLoaded(std::vector<Immutable<style::Image::Impl>> images) override {
if (spriteLoaded) spriteLoaded(std::move(images));
}
@@ -25,7 +25,7 @@ public:
if (spriteError) spriteError(error);
}
- std::function<void (std::vector<std::unique_ptr<style::Image>>&&)> spriteLoaded;
+ std::function<void(std::vector<Immutable<style::Image::Impl>>)> spriteLoaded;
std::function<void (std::exception_ptr)> spriteError;
};
@@ -92,7 +92,7 @@ TEST(SpriteLoader, LoadingSuccess) {
test.end();
};
- test.observer.spriteLoaded = [&] (std::vector<std::unique_ptr<style::Image>>&& images) {
+ test.observer.spriteLoaded = [&](std::vector<Immutable<style::Image::Impl>> images) {
EXPECT_EQ(images.size(), 367u);
test.end();
};
@@ -169,7 +169,7 @@ TEST(SpriteLoader, LoadingCancel) {
return optional<Response>();
};
- test.observer.spriteLoaded = [&] (const std::vector<std::unique_ptr<style::Image>>&) {
+ test.observer.spriteLoaded = [&](std::vector<Immutable<style::Image::Impl>>) {
FAIL() << "Should never be called";
};
diff --git a/test/sprite/sprite_parser.test.cpp b/test/sprite/sprite_parser.test.cpp
index c37fee02b9..58979a0e61 100644
--- a/test/sprite/sprite_parser.test.cpp
+++ b/test/sprite/sprite_parser.test.cpp
@@ -3,6 +3,7 @@
#include <mbgl/sprite/sprite_parser.hpp>
#include <mbgl/style/image.hpp>
+#include <mbgl/style/image_impl.hpp>
#include <mbgl/util/image.hpp>
#include <mbgl/util/io.hpp>
#include <mbgl/util/string.hpp>
@@ -242,8 +243,8 @@ TEST(Sprite, SpriteParsing) {
const auto images = parseSprite(image_1x, json_1x);
std::set<std::string> names;
- std::transform(images.begin(), images.end(), std::inserter(names, names.begin()),
- [](const auto& image) { return image->getID(); });
+ std::transform(
+ images.begin(), images.end(), std::inserter(names, names.begin()), [](const auto& image) { return image->id; });
EXPECT_EQ(std::set<std::string>({ "airfield_icon",
"airport_icon",
@@ -321,11 +322,12 @@ TEST(Sprite, SpriteParsing) {
names);
{
- auto& sprite = *std::find_if(images.begin(), images.end(), [] (const auto& image) { return image->getID() == "generic-metro"; });
- EXPECT_EQ(18u, sprite->getImage().size.width);
- EXPECT_EQ(18u, sprite->getImage().size.height);
- EXPECT_EQ(1, sprite->getPixelRatio());
- EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteparsing.png"), sprite->getImage());
+ auto& sprite =
+ *std::find_if(images.begin(), images.end(), [](const auto& image) { return image->id == "generic-metro"; });
+ EXPECT_EQ(18u, sprite->image.size.width);
+ EXPECT_EQ(18u, sprite->image.size.height);
+ EXPECT_EQ(1, sprite->pixelRatio);
+ EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteparsing.png"), sprite->image);
}
}
@@ -460,10 +462,10 @@ TEST(Sprite, SpriteParsingStretchAndContent) {
}
})JSON");
EXPECT_EQ(1u, images.size());
- EXPECT_EQ("image", images[0]->getID());
- EXPECT_EQ((style::ImageStretches{{2, 14}}), images[0]->getStretchX());
- EXPECT_EQ((style::ImageStretches{{0, 4}, {12, 16}}), images[0]->getStretchY());
- EXPECT_EQ((style::ImageContent{2, 2, 14, 14}), images[0]->getContent());
+ EXPECT_EQ("image", images[0]->id);
+ EXPECT_EQ((style::ImageStretches{{2, 14}}), images[0]->stretchX);
+ EXPECT_EQ((style::ImageStretches{{0, 4}, {12, 16}}), images[0]->stretchY);
+ EXPECT_EQ((style::ImageContent{2, 2, 14, 14}), images[0]->content);
}
TEST(Sprite, SpriteParsingEmptyImage) {