Immediate Mode GUI

Schematische Erläuterung des Unmittelbar-Modus eines Grafik-API

Immediate Mode GUI (wörtlich übersetzt: „Unmittelbar-Modus GUI“) ist eine Art der Implementierung von grafischen Benutzeroberflächen (GUIs), die das Immediate-Mode-Entwurfsmuster für die Gestaltung der Programmierschnittstelle (API) in Grafikbibliotheken verwendet – wobei unmittelbar bedeutet, dass

ohne Nutzung – also unmittelbar - umfangreicher Umleitungen auf gespeicherte Ressourcen und wo

Schematische Erläuterung des Modus mit gespeicherten Ressourcen eines Grafik-API im Unterschied

Dies impliziert, dass der Client-Code in einem Immediate Mode GUI seine eigenen grafischen Primitive verwaltet und dieses API-Design auch die Implementierung der Grafikpipeline beeinflusst.

Es gibt ein weiteres bedeutendes Entwurfsmuster der Programmierschnittstelle in Grafikbibliotheken – den Retained Mode. Im Retained Mode werden die grafischen Primitive durch das GUI-System/die GUI-Bibliothek verwaltet, oft vor dem Client-Code versteckt.

GUI-Toolkit

Die meisten GUI-Toolkits für den Immediate Mode sind Weiterentwicklungen aus der Videospielentwicklung und besonders geeignet, wenn

Typisch für ein GUI-Toolkit für den Immediate Mode ist, dass es

Deshalb sind Immediate-Mode-GUI-Toolkits eine gute Wahl für alle, die ein einfaches, aber leicht veränderbares und erweiterbares GUI-Toolkit wünschen. Sie sind in der Regel generisch, quelloffen und plattformübergreifend. Eine Möglichkeit, die Flexibilität und Kombinierbarkeit eines Immediate Mode GUI ohne die Nachteile der Verwaltung des Steuerelement-Baumes nur in Funktionsaufrufen mit dem Mangel an direkter Kontrolle, wie die grafische Benutzeroberfläche in der Render Engine gezeichnet wird, zu haben, wäre die Verwendung eines virtuellen Steuerelement-Baumes – so wie React einen virtuellen DOM verwendet.

Implementierungen

Das ursprüngliche Immediate Mode GUI Toolkit ist imgui by Adrien Herubel, das auf OpenGL basiert. Die Idee wurde von Casey Muratori verbreitet. Es existieren weitere Toolkits wie

Siehe auch

Einzelnachweise

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