#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace mbgl { using namespace style; Map::Map(RendererFrontend& frontend, MapObserver& observer, const MapOptions& mapOptions, const ResourceOptions& resourceOptions) : impl(std::make_unique( frontend, observer, FileSourceManager::get() ? std::shared_ptr(FileSourceManager::get()->getFileSource(ResourceLoader, resourceOptions)) : nullptr, mapOptions)) {} Map::Map(std::unique_ptr impl_) : impl(std::move(impl_)) {} Map::~Map() = default; void Map::renderStill(StillImageCallback callback) { if (!callback) { Log::Error(Event::General, "StillImageCallback not set"); return; } if (impl->mode != MapMode::Static && impl->mode != MapMode::Tile) { callback(std::make_exception_ptr(util::MisuseException("Map is not in static or tile image render modes"))); return; } if (impl->stillImageRequest) { callback(std::make_exception_ptr(util::MisuseException("Map is currently rendering an image"))); return; } if (impl->style->impl->getLastError()) { callback(impl->style->impl->getLastError()); return; } impl->stillImageRequest = std::make_unique(std::move(callback)); impl->onUpdate(); } void Map::renderStill(const CameraOptions& camera, MapDebugOptions debugOptions, StillImageCallback callback) { impl->cameraMutated = true; impl->debugOptions = debugOptions; impl->transform.jumpTo(camera); renderStill(std::move(callback)); } void Map::triggerRepaint() { impl->onUpdate(); } #pragma mark - Style style::Style& Map::getStyle() { return *impl->style; } const style::Style& Map::getStyle() const { return *impl->style; } void Map::setStyle(std::unique_ptr