#include #include #include #include #include #include #include namespace mbgl { HeadlessBackend::HeadlessBackend() { } HeadlessBackend::HeadlessBackend(std::shared_ptr display_) : display(std::move(display_)) { } HeadlessBackend::~HeadlessBackend() { BackendScope scope(*this); context.reset(); } void HeadlessBackend::activate() { active = true; if (!hasContext()) { if (!hasDisplay()) { throw std::runtime_error("Display is not set"); } createContext(); } assert(hasContext()); impl->activateContext(); if (!extensionsLoaded) { gl::InitializeExtensions(initializeExtension); extensionsLoaded = true; } } void HeadlessBackend::deactivate() { assert(hasContext()); impl->deactivateContext(); active = false; } void HeadlessBackend::invalidate() { assert(false); } void HeadlessBackend::notifyMapChange(MapChange change) { if (mapChangeCallback) { mapChangeCallback(change); } } } // namespace mbgl