diff --git a/test/api/annotations.cpp b/test/api/annotations.cpp index 39862b106..a9ebb4ab0 100644 --- a/test/api/annotations.cpp +++ b/test/api/annotations.cpp @@ -1,6 +1,8 @@ #include "../fixtures/util.hpp" #include +#include +#include #include #include #include @@ -32,3 +34,64 @@ TEST(Annotations, PointAnnotation) { const std::string png = util::compress_png(result->width, result->height, result->pixels.get()); util::write_file("test/output/point_annotation.png", png); } + +TEST(Annotations, LineAnnotation) { + using namespace mbgl; + + auto display = std::make_shared(); + HeadlessView view(display, 1); + DefaultFileSource fileSource(nullptr); + + Map map(view, fileSource, MapMode::Still); + map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"), ""); + + AnnotationSegments segments = {{ {{ { 0, 0 }, { 45, 45 } }} }}; + + LineProperties lineProperties; + lineProperties.color = {{ 255, 0, 0, 1 }}; + lineProperties.width = 5; + + StyleProperties styleProperties; + styleProperties.set(lineProperties); + + map.addShapeAnnotation(ShapeAnnotation(segments, styleProperties)); + + std::promise> promise; + map.renderStill([&promise](std::exception_ptr, std::unique_ptr image) { + promise.set_value(std::move(image)); + }); + + auto result = promise.get_future().get(); + const std::string png = util::compress_png(result->width, result->height, result->pixels.get()); + util::write_file("test/output/line_annotation.png", png); +} + +TEST(Annotations, FillAnnotation) { + using namespace mbgl; + + auto display = std::make_shared(); + HeadlessView view(display, 1); + DefaultFileSource fileSource(nullptr); + + Map map(view, fileSource, MapMode::Still); + map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"), ""); + + AnnotationSegments segments = {{ {{ { 0, 0 }, { 0, 45 }, { 45, 45 }, { 45, 0 } }} }}; + + FillProperties fillProperties; + fillProperties.fill_color = {{ 255, 0, 0, 1 }}; + + StyleProperties styleProperties; + styleProperties.set(fillProperties); + + map.addShapeAnnotation(ShapeAnnotation(segments, styleProperties)); + + std::promise> promise; + map.renderStill([&promise](std::exception_ptr, std::unique_ptr image) { + promise.set_value(std::move(image)); + }); + + auto result = promise.get_future().get(); + const std::string png = util::compress_png(result->width, result->height, result->pixels.get()); + util::write_file("test/output/fill_annotation.png", png); +}