Перейти к содержанию

Главный цикл приложения

Вызовите framework::init() до создания GUI, инициализируйте окно, затем вызовите framework::run(). Для завершения используется framework::stop(). started() сообщает о наличии активного экземпляра framework, get_error() — об ошибке. Метода framework::end() нет.

Бэкенд Обработка событий
Windows Цикл сообщений Win32
Linux Обработка XCB-событий окон; framework ждёт остановки
macOS Главный цикл AppKit в основном потоке
WASM Asyncify-цикл уступает управление браузеру и возвращается после stop()

Объекты приложения должны жить всё время работы run(). Закрытие окна и остановка приложения — разные операции: явно вызывайте stop в callback главного окна, если нужно завершать приложение. Закрытие вспомогательного окна может не останавливать владельца.

window->init("Application", {-1, -1, 800, 600}, wui::window_style::frame,
    [] { wui::framework::stop(); });
wui::framework::run();

См. Hello world и потоки.