#pragma once #include #include #include #include #include #include #include #include namespace mbgl { class FileSource; class SpriteLoaderObserver; class SpriteLoader : public util::noncopyable { public: SpriteLoader(float pixelRatio); ~SpriteLoader(); void load(const std::string& url, FileSource&); void setObserver(SpriteLoaderObserver*); private: void emitSpriteLoadedIfComplete(); // Invoked by SpriteAtlasWorker friend class SpriteLoaderWorker; void onParsed(std::vector>&&); void onError(std::exception_ptr); const float pixelRatio; struct Loader; std::unique_ptr loader; SpriteLoaderObserver* observer = nullptr; }; } // namespace mbgl