Immediate mode GUI

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Immediate mode GUI in computer graphics is a GUI implemented using an immediate mode pattern, where the event processing is directly controlled by the application.

There are two major patterns of API design in graphics libraries - retained mode and immediate mode.[1] In the retained mode, the rendering primitives are managed by the GUI system/library, often hidden from the application code. In the immediate mode, the application code is holding on its own rendering primitives. The API design also effects graphics pipeline implementation.

Widget toolkit[edit]

The immediate mode GUI widget toolkits are more direct and thus less complex, thus they are a good choice for those who want a simple but easily changeable and extendable GUI toolkit, they are usually generic, open source and cross-platform. The original Immediate Mode GUI toolkit was imgui by Adrien Herubel[2] which is based on OpenGL. The idea was popularized by Casey Muratori. There are others such as nuklear[3] with backends for several graphics libraries, kiss_sdl[4] for SDL (Simple DirectMedia Layer), Gio[5] for Go, or dear imgui[6] written in C++ (here the jvm port[7]).

External links[edit]

  1. ^ Quinn Radich (May 30, 2018). "Retained Mode Versus Immediate Mode". Win32 apps. Microsoft. Retrieved 21 December 2019.
  2. ^ Herubel, Adrien (2019-12-18). "AdrienHerubel/imgui: A small multiplatform immediate mode graphical user interface with OpenGL3.2 backend".
  3. ^ Mettke, Micha (2019-12-22). "vurtun/nuklear: A single-header ANSI C gui library".
  4. ^ Korrovits, Tarvo (2019-12-19). "actsl/kiss_sdl: Simple generic GUI widget toolkit for SDL2".
  5. ^ "Gio - immediate mode GUI in Go". gioui.org. Retrieved 2019-11-14.
  6. ^ Cornut, Omar (2019-12-22). "ocornut/imgui: Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies".
  7. ^ kotlin-graphics (2019-12-19). "kotlin-graphics/imgui: Bloat-free Immediate Mode Graphical User interface for JVM with minimal dependencies (rewrite of dear imgui)".