73 entt::locator<BS::priority_thread_pool>::value().wait();
75 entt::locator<sol::state>::reset();
77 entt::locator<SceneManager>::reset();
78 entt::locator<SystemFactory>::reset();
79 entt::locator<Mouse>::reset();
80 entt::locator<Keyboard>::reset();
81 entt::locator<Window>::reset();
82 entt::locator<VirtualFileSystem>::reset();
83 entt::locator<Log>::reset();
84 entt::locator<Config>::reset();
85 entt::locator<BS::priority_thread_pool>::reset();
177 auto& window = entt::locator<Window>::value();
178 auto& scenes = entt::locator<SceneManager>::value();
182 constexpr const auto dt = std::chrono::duration<long long, std::ratio<1, 60>> {1};
185 using clock = std::chrono::steady_clock;
186 using duration =
decltype(clock::duration {} + dt);
187 using time_point = std::chrono::time_point<clock, duration>;
190 time_point prev = clock::now();
191 time_point now = clock::now();
197 while (window.is_open())
200 auto elapsed = now - prev;
221 case SDL_EVENT_LOCALE_CHANGED:
225 case SDL_EVENT_WINDOW_SHOWN:
229 case SDL_EVENT_WINDOW_HIDDEN:
230 case SDL_EVENT_WINDOW_MINIMIZED:
235 window.handle_window_events(
m_events);
269 window.append_title(std::format(
" | UPS: {0}, FPS: {1}", updates, frames));
393 if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_EVENTS | SDL_INIT_GAMEPAD | SDL_INIT_JOYSTICK))