#pragma once #include namespace mbgl { class HeadlessDisplay { public: static std::shared_ptr create() { static std::weak_ptr instance; auto shared = instance.lock(); if (!shared) { instance = shared = std::shared_ptr(new HeadlessDisplay()); } return shared; } ~HeadlessDisplay(); template DisplayAttribute attribute() const; private: HeadlessDisplay(); class Impl; std::unique_ptr impl; }; } // namespace mbgl