IMGUI
(
immediate mode graphic user interface
,
Графический интерфейс немедленного режима
) представляет собой
шаблон проектирования
графического пользовательского интерфейса
, который использует
API
немедленного режима для отображения элементов управления, в отличие от сохраненного режима .
Содержание
Реализации
Большая часть инструментария
виджетов
IMGUI реализована в системных элементах управления по умолчанию и пользовательском
рендеринге
для
разработки игр
и графических приложений. Самая популярная реализация —
библиотека
.
обновляться синхронно с игровой сценой или сложной
графикой
.
быть наложенным поверх игровой сцены или сложной графики (что особенно легко в обоих случаях тогда, когда и GUI, и игровая сцена управляются одним
циклом
).
иметь необычный внешний вид. Это означает, что в пользовательском интерфейсе непосредственного режима
клиентский
код содержит свои собственные примитивы рендеринга и дизайн API, которые влияют на реализацию графического конвейера .
является более прямым в том смысле, что дерево
виджетов
часто представляет собой дерево вызовов функций, которое является составным и гибким, но с которым трудно взаимодействовать.
менее сложный и простой для понимания (с точки зрения меньшего количества неявных предположений на вызов
API
набора инструментов). Обычно это также приводит к меньшей функциональности.
является более сложным для создания и управления (обычно требуется больше вызовов API для управления виджетами), чем простое дерево
виджетов
, включая макет (абсолютное и относительное позиционирование со ссылкой на родителя или братьев и сестер).
имеет менее сложную окклюзионную отбраковку (
z-буферизацию
), проверку попадания, обработку изменения состояния,
прокрутку
и анимацию
фокуса
/управления горячими клавишами (
виджет
). Это также подразумевает необходимость управления самим логическим/визуальным деревом.
приходится полностью перестраивать буферы вершин с нуля для каждого нового
кадра
.
может создать постоянную нагрузку на
ЦП
, если не использовать
шейдеры
, загруженные на
ГП
.
Наборы инструментов для виджетов с графическим интерфейсом в немедленном режиме — хороший выбор для тех, кто предпочитает простой, легко изменяемый и расширяемый графический инструментарий. Обычно они являются универсальными, с
открытым исходным кодом
и
кроссплатформенными
. Одним из способов обеспечить гибкость и компоновку графического интерфейса в немедленном режиме без недостатков, связанных с сохранением дерева виджетов только в вызовах функций, при отсутствии прямого контроля над тем, как графический интерфейс отрисовывается в
движке рендеринга
, было бы использование виртуального дерева виджетов, точно так же, как
React
использует виртуальный
DOM
.
История
разработал эту технику и ввел термин «Графический пользовательский интерфейс в одноканальном (singlepath) режиме немедленного доступа» для ее описания.
Одна из самых ранних общедоступных реализаций была написана Шоном Барреттом.
Другие типы графического интерфейса немедленного режима