@startuml title Рабочий цикл приложения и пользовательского интерфейса start :Запуск приложения; :Создание WindowContext,\nCanvas, RenderEngine; repeat :Обработка событий ввода\n(мышь, колесо, кнопки); :Обновление состояния UI\n(панели, свойства, инструменты); :Пересчёт видимой области\nи параметров масштаба; if (Требуется перерисовка?) then (да) :Вызов CPU-рендера документа; :Обновление текстуры холста; endif :Показ статистики и кадра; repeat while (Приложение активно?) is (да) :Освобождение ресурсов; stop @enduml