#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace mln; using namespace mln::style; TEST(API, RecycleMapUpdateImages) { util::RunLoop loop; HeadlessFrontend frontend{1}; auto map = std::make_unique( frontend, MapObserver::nullObserver(), std::make_shared(ResourceOptions::Default(), ClientOptions()), MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())); EXPECT_TRUE(map); auto loadStyle = [&](auto markerName, auto markerPath) { auto source = std::make_unique("geometry"); source->setGeoJSON(Geometry{Point{0, 0}}); auto layer = std::make_unique("geometry", "geometry"); layer->setIconImage({markerName}); map->getStyle().loadJSON(util::read_file("test/fixtures/api/empty.json")); map->getStyle().addSource(std::move(source)); map->getStyle().addLayer(std::move(layer)); map->getStyle().addImage( std::make_unique(markerName, decodeImage(util::read_file(markerPath)), 1.0f)); }; // default marker loadStyle("default_marker", "test/fixtures/sprites/default_marker.png"); test::checkImage("test/fixtures/recycle_map/default_marker", frontend.render(*map).image, 0.0006, 0.1); // flipped marker loadStyle("flipped_marker", "test/fixtures/sprites/flipped_marker.png"); test::checkImage("test/fixtures/recycle_map/flipped_marker", frontend.render(*map).image, 0.0006, 0.1); }