Interested Article - Графический интерфейс немедленного режима

Схематическое объяснение графического API немедленного режима

IMGUI ( immediate mode graphic user interface , Графический интерфейс немедленного режима ) представляет собой шаблон проектирования графического пользовательского интерфейса , который использует API немедленного режима для отображения элементов управления, в отличие от сохраненного режима .

Реализации

Большая часть инструментария виджетов IMGUI реализована в системных элементах управления по умолчанию и пользовательском рендеринге для разработки игр и графических приложений. Самая популярная реализация — библиотека .

Для реализации видеоигры, пользовательский интерфейс должен:

  • обновляться синхронно с игровой сценой или сложной графикой .
  • быть наложенным поверх игровой сцены или сложной графики (что особенно легко в обоих случаях тогда, когда и GUI, и игровая сцена управляются одним циклом ).
  • иметь необычный внешний вид. Это означает, что в пользовательском интерфейсе непосредственного режима клиентский код содержит свои собственные примитивы рендеринга и дизайн API, которые влияют на реализацию графического конвейера .

Инструментарий виджета GUI непосредственного режима

  • является более прямым в том смысле, что дерево виджетов часто представляет собой дерево вызовов функций, которое является составным и гибким, но с которым трудно взаимодействовать.
  • менее сложный и простой для понимания (с точки зрения меньшего количества неявных предположений на вызов API набора инструментов). Обычно это также приводит к меньшей функциональности.
  • является более сложным для создания и управления (обычно требуется больше вызовов API для управления виджетами), чем простое дерево виджетов , включая макет (абсолютное и относительное позиционирование со ссылкой на родителя или братьев и сестер).
  • имеет менее сложную окклюзионную отбраковку ( z-буферизацию ), проверку попадания, обработку изменения состояния, прокрутку и анимацию фокуса /управления горячими клавишами ( виджет ). Это также подразумевает необходимость управления самим логическим/визуальным деревом.
  • приходится полностью перестраивать буферы вершин с нуля для каждого нового кадра .
  • может создать постоянную нагрузку на ЦП , если не использовать шейдеры , загруженные на ГП .

Наборы инструментов для виджетов с графическим интерфейсом в немедленном режиме — хороший выбор для тех, кто предпочитает простой, легко изменяемый и расширяемый графический инструментарий. Обычно они являются универсальными, с открытым исходным кодом и кроссплатформенными . Одним из способов обеспечить гибкость и компоновку графического интерфейса в немедленном режиме без недостатков, связанных с сохранением дерева виджетов только в вызовах функций, при отсутствии прямого контроля над тем, как графический интерфейс отрисовывается в движке рендеринга , было бы использование виртуального дерева виджетов, точно так же, как React использует виртуальный DOM .

История

разработал эту технику и ввел термин «Графический пользовательский интерфейс в одноканальном (singlepath) режиме немедленного доступа» для ее описания. Одна из самых ранних общедоступных реализаций была написана Шоном Барреттом.

Другие типы графического интерфейса немедленного режима

Примечания

  1. Radich. . Win32 apps . Microsoft (30 мая 2018). Дата обращения: 21 декабря 2019. 19 августа 2022 года.
  2. (англ.) . Immediate-Mode Graphical User Interfaces (2005) . Дата обращения: 15 июня 2021. 6 мая 2021 года.
  3. silverspaceship.com . Дата обращения: 15 июня 2021. 6 мая 2021 года.
  4. Cornut. . GitHub (22 декабря 2019). Дата обращения: 6 мая 2023. 2 мая 2023 года.
  5. kotlin-graphics. . GitHub (19 декабря 2019). Дата обращения: 6 мая 2023. 19 апреля 2023 года.
  6. . GitHub (3 июня 2021). Дата обращения: 6 мая 2023. 11 мая 2023 года.
  7. . giDoui.org . Дата обращения: 14 ноября 2019. 14 ноября 2019 года.
  8. Korrovits. . GitHub (19 декабря 2019). Дата обращения: 6 мая 2023. 19 апреля 2023 года.
  9. . — 2023-05-06. 28 апреля 2023 года.
Источник —

Same as Графический интерфейс немедленного режима