UiRenderPolicy
Политика частоты обновления и рендера retained UI, управляющая пересборкой кадра по таймингу или сигналам инвалидации.
Обзор
UiRenderPolicy определяет, перерисовывает ли runtime интерфейс каждый игровой кадр, только при изменении состояния виджетов (dirty signal), с фиксированным FPS или с привязкой к VSYNC дисплея. Это позволяет существенно снизить нагрузку на CPU и GPU на статичных экранах.
Режимы рендера
CONTINUOUS: Полная перестройка и рендер каждый кадр. Идеально для плавных анимаций (60+ FPS), шейдерных эффектов и вьюпортов редактора.ON_DIRTY: Рендер выполняется только при явном сигнале инвалидации (dirty). Сводит к нулю расход ресурсов в состоянии покоя.FIXED_FPS: Ограничивает частоту рендера заданным значением FPS (например, 30 FPS).VSYNC: Синхронизирует интервалы обновления с частотой развёртки экрана.
Производительность и энергоэффективность
Статичные экраны с глубоким деревом виджетов создают избыточную нагрузку при ежекадровом рендере. Переключение на onDirty() полностью исключает лишнюю генерацию draw-команд, запуская перерисовку только в ответ на ввод пользователя или события данных.
Настройка рендера по событию для статичных меню
Включение VSYNC для плавной анимации
API
UiRenderPolicy::continuous()
continuous()
Возвращает политику непрерывного ежекадрового рендера.
Возвращает UiRenderPolicy: Экземпляр непрерывной политики рендера..
UiRenderPolicy::mode()
mode()
Возвращает текущий режим политики рендера.
Возвращает Mode: Режим политики..
UiRenderPolicy::onDirty()
onDirty()
Возвращает политику рендера только по сигналу инвалидации (dirty).
Возвращает UiRenderPolicy: Экземпляр on-dirty политики рендера..
UiRenderPolicy::fixedFps(float)
fixedFps(float)
Создаёт политику с фиксированной целевой частотой кадров.
| Параметр | Тип | Описание |
|---|---|---|
fps |
float |
Целевая частота кадров; должна быть конечным положительным числом. |
Возвращает UiRenderPolicy: Экземпляр политики фиксированного FPS..
UiRenderPolicy::vsync()
vsync()
Возвращает политику, синхронизированную с частотой обновления экрана (VSYNC).
Возвращает UiRenderPolicy: Экземпляр VSYNC-политики..
UiRenderPolicy::fps()
fps()
Возвращает целевой FPS для режима FIXED_FPS или 0.0 для остальных режимов.
Возвращает float: Значение целевого FPS..
UiRenderPolicy::intervalNanos()
intervalNanos()
Возвращает минимальный интервал между кадрами в наносекундах для режима FIXED_FPS.
Возвращает long: Интервал в наносекундах или 0, если режим не FIXED_FPS..