This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (August 2017) (Learn how and when to remove this message) This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: "Immediate mode GUI" – news · newspapers · books · scholar · JSTOR (February 2021) (Learn how and when to remove this message) (Learn how and when to remove this message)
Schematic explanation of an immediate mode graphics API

An immediate mode graphic user interface (GUI), also known as IMGUI, is a graphical user interface design pattern which uses an immediate mode API to render controls, as opposed to a retained mode one.[1]

Implementations

This section does not cite any sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged and removed. (August 2020) (Learn how and when to remove this message)

Most of the immediate mode GUI widget toolkit is implemented in default system controls and custom rendering for game development, graphic apps. Libraries include Scaleform, and Dear ImGui.

For game implementation, a GUI should

The immediate mode GUI widget toolkit

Immediate mode GUI widget toolkits are a good choice for those who prefer a simple, easily changeable, and extendable GUI toolkit. They are usually generic, open-source, and cross-platform. One way to have the flexibility and composability of an immediate mode GUI without the disadvantages of keeping the widget tree only in function calls, with the lack of direct control of how the GUI is drawn in the rendering engine would be to use a virtual widget tree, just like React uses a virtual DOM.

History

Casey Muratori developed the technique and coined the term "Single-path Immediate Mode Graphical User Interface" to describe it.[2][3] One of the earliest publicly available implementations was written by Sean Barrett.[4]

Other types of immediate mode GUI

References

  1. ^ Radich, Quinn (May 30, 2018). "Retained Mode Versus Immediate Mode". Win32 apps. Microsoft. Retrieved 21 December 2019.
  2. ^ "Immediate-Mode Graphical User Interfaces (2005)". Immediate-Mode Graphical User Interfaces (2005). Retrieved 2021-06-15.
  3. ^ Barrett, Sean (September 2005). "Immediate Mode GUIs" (PDF). Game Developer. Vol. 12. pp. 34–36. Retrieved 14 February 2021.
  4. ^ "Sample IMGUI implementation and demo program". silverspaceship.com. Retrieved 2021-06-15.
  5. ^ Cornut, Omar (2019-12-22). "ocornut/imgui: Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies". GitHub.
  6. ^ kotlin-graphics (2019-12-19). "kotlin-graphics/imgui: Bloat-free Immediate Mode Graphical User interface for JVM with minimal dependencies (rewrite of dear imgui)". GitHub.
  7. ^ "egui: an easy-to-use immediate mode GUI in pure Rust". GitHub. 3 June 2021.
  8. ^ "Gio - immediate mode GUI in Go". giDoui.org. Retrieved 2019-11-14.
  9. ^ Korrovits, Tarvo (2019-12-19). "actsl/kiss_sdl: Simple generic GUI widget toolkit for SDL2". GitHub.
  10. ^ Mettke, Micha (2019-12-22). "vurtun/nuklear: A single-header ANSI C gui library". GitHub.