summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2015-11-24 10:07:18 -0800
committerJohn Firebaugh <john.firebaugh@gmail.com>2015-11-25 15:57:36 -0800
commit0c1e378bc9555f6cf826bb38b1a36fa742f8ce9b (patch)
tree9aec8e4f475ff715645072503b3e0ec78f0573af /test
parent2de0a351a0635192bd05116cebdf0103c2638d05 (diff)
downloadqtlocation-mapboxgl-0c1e378bc9555f6cf826bb38b1a36fa742f8ce9b.tar.gz
[core] Rewrite image handling
* Consolidate Image and StillImage * Typecheck unassociated vs premultiplied images * Rewrite default platform image decoding implementation
Diffstat (limited to 'test')
-rw-r--r--test/api/annotations.cpp9
-rw-r--r--test/api/api_misuse.cpp3
-rw-r--r--test/api/repeated_render.cpp27
-rw-r--r--test/miscellaneous/bilinear.cpp7
-rw-r--r--test/sprite/sprite_parser.cpp22
-rw-r--r--test/style/pending_resources.cpp3
6 files changed, 31 insertions, 40 deletions
diff --git a/test/api/annotations.cpp b/test/api/annotations.cpp
index 55f5ca6749..b16ec71ef6 100644
--- a/test/api/annotations.cpp
+++ b/test/api/annotations.cpp
@@ -4,7 +4,6 @@
#include <mbgl/annotation/shape_annotation.hpp>
#include <mbgl/sprite/sprite_image.hpp>
#include <mbgl/map/map.hpp>
-#include <mbgl/map/still_image.hpp>
#include <mbgl/platform/default/headless_display.hpp>
#include <mbgl/platform/default/headless_view.hpp>
#include <mbgl/storage/default_file_source.hpp>
@@ -17,13 +16,11 @@
using namespace mbgl;
std::string renderPNG(Map& map) {
- std::promise<std::unique_ptr<const StillImage>> promise;
- map.renderStill([&](std::exception_ptr, std::unique_ptr<const StillImage> image) {
+ std::promise<UnassociatedImage> promise;
+ map.renderStill([&](std::exception_ptr, UnassociatedImage&& image) {
promise.set_value(std::move(image));
});
-
- auto result = promise.get_future().get();
- return util::compress_png(result->width, result->height, result->pixels.get());
+ return encodePNG(promise.get_future().get());
}
TEST(Annotations, PointAnnotation) {
diff --git a/test/api/api_misuse.cpp b/test/api/api_misuse.cpp
index 1f54855323..4d5fe11042 100644
--- a/test/api/api_misuse.cpp
+++ b/test/api/api_misuse.cpp
@@ -2,7 +2,6 @@
#include "../fixtures/fixture_log_observer.hpp"
#include <mbgl/map/map.hpp>
-#include <mbgl/map/still_image.hpp>
#include <mbgl/platform/default/headless_display.hpp>
#include <mbgl/platform/default/headless_view.hpp>
#include <mbgl/storage/default_file_source.hpp>
@@ -46,7 +45,7 @@ TEST(API, RenderWithoutStyle) {
Map map(view, fileSource, MapMode::Still);
std::promise<std::exception_ptr> promise;
- map.renderStill([&promise](std::exception_ptr error, std::unique_ptr<const StillImage>) {
+ map.renderStill([&promise](std::exception_ptr error, UnassociatedImage&&) {
promise.set_value(error);
});
diff --git a/test/api/repeated_render.cpp b/test/api/repeated_render.cpp
index 3317b4e3a4..79349c67e7 100644
--- a/test/api/repeated_render.cpp
+++ b/test/api/repeated_render.cpp
@@ -2,7 +2,6 @@
#include "../fixtures/fixture_log_observer.hpp"
#include <mbgl/map/map.hpp>
-#include <mbgl/map/still_image.hpp>
#include <mbgl/platform/default/headless_view.hpp>
#include <mbgl/platform/default/headless_display.hpp>
#include <mbgl/storage/default_file_source.hpp>
@@ -26,28 +25,26 @@ TEST(API, RepeatedRender) {
{
map.setStyleJSON(style, "");
- std::promise<std::unique_ptr<const StillImage>> promise;
- map.renderStill([&promise](std::exception_ptr, std::unique_ptr<const StillImage> image) {
+ std::promise<UnassociatedImage> promise;
+ map.renderStill([&promise](std::exception_ptr, UnassociatedImage&& image) {
promise.set_value(std::move(image));
});
- auto result = promise.get_future().get();
- ASSERT_EQ(256, result->width);
- ASSERT_EQ(512, result->height);
- const std::string png = util::compress_png(result->width, result->height, result->pixels.get());
- util::write_file("test/fixtures/api/1.png", png);
+ auto result = std::move(promise.get_future().get());
+ ASSERT_EQ(256, result.width);
+ ASSERT_EQ(512, result.height);
+ util::write_file("test/fixtures/api/1.png", encodePNG(result));
}
{
map.setStyleJSON(style, "TEST_DATA/suite");
- std::promise<std::unique_ptr<const StillImage>> promise;
- map.renderStill([&promise](std::exception_ptr, std::unique_ptr<const StillImage> image) {
+ std::promise<UnassociatedImage> promise;
+ map.renderStill([&promise](std::exception_ptr, UnassociatedImage&& image) {
promise.set_value(std::move(image));
});
- auto result = promise.get_future().get();
- ASSERT_EQ(256, result->width);
- ASSERT_EQ(512, result->height);
- const std::string png = util::compress_png(result->width, result->height, result->pixels.get());
- util::write_file("test/fixtures/api/2.png", png);
+ auto result = std::move(promise.get_future().get());
+ ASSERT_EQ(256, result.width);
+ ASSERT_EQ(512, result.height);
+ util::write_file("test/fixtures/api/2.png", encodePNG(result));
}
auto observer = Log::removeObserver();
diff --git a/test/miscellaneous/bilinear.cpp b/test/miscellaneous/bilinear.cpp
index 722e7265c0..740025bbbc 100644
--- a/test/miscellaneous/bilinear.cpp
+++ b/test/miscellaneous/bilinear.cpp
@@ -23,8 +23,9 @@ TEST(Bilinear, Scaling) {
const uint32_t *srcData = reinterpret_cast<const uint32_t *>(src + 8);
const vec2<uint32_t> srcSize { width, height };
const vec2<uint32_t> dstSize { 128, 128 };
- auto dst = std::make_unique<uint32_t[]>(dstSize.x * dstSize.y);
- uint32_t *dstData = dst.get();
+
+ UnassociatedImage dst { dstSize.x, dstSize.y };
+ uint32_t *dstData = reinterpret_cast<uint32_t*>(dst.data.get());
std::fill(dstData, dstData + dstSize.x * dstSize.y, 0xFFFF00FF);
util::bilinearScale(srcData, srcSize, { 0, 0, 24, 24 }, dstData, dstSize, { 8, 8, 24, 24 }, false);
@@ -42,7 +43,7 @@ TEST(Bilinear, Scaling) {
util::bilinearScale(srcData, srcSize, { 252, 380, 12, 12 }, dstData, dstSize, { 18, 90, 24, 24 }, false);
const std::string data { reinterpret_cast<char *>(dstData), dstSize.x * dstSize.y * sizeof(uint32_t) };
- util::write_file("test/fixtures/sprites/atlas_actual.png", util::compress_png(dstSize.x, dstSize.y, reinterpret_cast<uint8_t *>(dstData)));
+ util::write_file("test/fixtures/sprites/atlas_actual.png", encodePNG(dst));
util::write_file("test/fixtures/sprites/atlas_actual.bin", util::compress(data));
const std::string reference = util::decompress(util::read_file("test/fixtures/sprites/atlas_reference.bin"));
diff --git a/test/sprite/sprite_parser.cpp b/test/sprite/sprite_parser.cpp
index c2e4df3c58..dfa3a1055b 100644
--- a/test/sprite/sprite_parser.cpp
+++ b/test/sprite/sprite_parser.cpp
@@ -13,10 +13,10 @@ using namespace mbgl;
TEST(Sprite, SpriteImageCreationInvalid) {
FixtureLog log;
- const util::Image image_1x(util::read_file("test/fixtures/annotations/emerald.png"));
- ASSERT_TRUE(image_1x);
- ASSERT_EQ(200u, image_1x.getWidth());
- ASSERT_EQ(299u, image_1x.getHeight());
+ const PremultipliedImage image_1x = decodeImage(util::read_file("test/fixtures/annotations/emerald.png"));
+
+ ASSERT_EQ(200u, image_1x.width);
+ ASSERT_EQ(299u, image_1x.height);
ASSERT_EQ(nullptr, createSpriteImage(image_1x, 0, 0, 0, 16, 1, false)); // width == 0
ASSERT_EQ(nullptr, createSpriteImage(image_1x, 0, 0, 16, 0, 1, false)); // height == 0
@@ -34,10 +34,10 @@ TEST(Sprite, SpriteImageCreationInvalid) {
}
TEST(Sprite, SpriteImageCreation1x) {
- const util::Image image_1x(util::read_file("test/fixtures/annotations/emerald.png"));
- ASSERT_TRUE(image_1x);
- ASSERT_EQ(200u, image_1x.getWidth());
- ASSERT_EQ(299u, image_1x.getHeight());
+ const PremultipliedImage image_1x = decodeImage(util::read_file("test/fixtures/annotations/emerald.png"));
+
+ ASSERT_EQ(200u, image_1x.width);
+ ASSERT_EQ(299u, image_1x.height);
{ // "museum_icon":{"x":177,"y":187,"width":18,"height":18,"pixelRatio":1,"sdf":false}
const auto sprite = createSpriteImage(image_1x, 177, 187, 18, 18, 1, false);
@@ -74,8 +74,7 @@ TEST(Sprite, SpriteImageCreation1x) {
}
TEST(Sprite, SpriteImageCreation2x) {
- const util::Image image_2x(util::read_file("test/fixtures/annotations/emerald@2x.png"));
- ASSERT_TRUE(image_2x);
+ const PremultipliedImage image_2x = decodeImage(util::read_file("test/fixtures/annotations/emerald@2x.png"));
// "museum_icon":{"x":354,"y":374,"width":36,"height":36,"pixelRatio":2,"sdf":false}
const auto sprite = createSpriteImage(image_2x, 354, 374, 36, 36, 2, false);
@@ -89,8 +88,7 @@ TEST(Sprite, SpriteImageCreation2x) {
}
TEST(Sprite, SpriteImageCreation1_5x) {
- const util::Image image_2x(util::read_file("test/fixtures/annotations/emerald@2x.png"));
- ASSERT_TRUE(image_2x);
+ const PremultipliedImage image_2x = decodeImage(util::read_file("test/fixtures/annotations/emerald@2x.png"));
// "museum_icon":{"x":354,"y":374,"width":36,"height":36,"pixelRatio":2,"sdf":false}
const auto sprite = createSpriteImage(image_2x, 354, 374, 36, 36, 1.5, false);
diff --git a/test/style/pending_resources.cpp b/test/style/pending_resources.cpp
index 3ba59657de..58dc72937e 100644
--- a/test/style/pending_resources.cpp
+++ b/test/style/pending_resources.cpp
@@ -3,7 +3,6 @@
#include "../fixtures/util.hpp"
#include <mbgl/map/map.hpp>
-#include <mbgl/map/still_image.hpp>
#include <mbgl/platform/default/headless_display.hpp>
#include <mbgl/platform/default/headless_view.hpp>
#include <mbgl/util/io.hpp>
@@ -40,7 +39,7 @@ TEST_P(PendingResources, DeleteMapObjectWithPendingRequest) {
const std::string style = util::read_file("test/fixtures/resources/style.json");
map->setStyleJSON(style, ".");
- map->renderStill([&endTest](std::exception_ptr, std::unique_ptr<const StillImage>) {
+ map->renderStill([&endTest](std::exception_ptr, UnassociatedImage&&) {
EXPECT_TRUE(false) << "Should never happen.";
});