#include #include namespace frostbite2D { Application &Application::get() { static Application instance; return instance; } void Application::use(Module &m) { for (auto *existing : modules_) { if (existing == &m) { return; } } modules_.push_back(&m); } void Application::use(std::initializer_list modules) { for (auto *m : modules) { if (m) { use(*m); } } } bool Application::init() { AppConfig cfg; return init(cfg); } bool Application::init(const AppConfig &config) { if (initialized_) { return true; } this->window_ = new Window(); if (!window_->create(config.windowConfig)) { SDL_Log("Failed to create window"); return false; } return true; } void Application::shutdown() { if (!initialized_) return; // VRAMMgr::get().printStats(); // ServiceLocator::instance().clear(); // window_ = nullptr; initialized_ = false; running_ = false; } Application::~Application() { if (initialized_) { shutdown(); } } } // namespace frostbite2D