Was ist ImGui? Dear ImGui erklärt (2026)

ImGui (Dear ImGui) ist eine Immediate-Mode-GUI-Bibliothek für C++. Es zeichnet Menüs jeden Frame ohne gespeicherten Widget-Baum, was in Game-Tools und nativen Clients üblich ist.

Librariesby trqUpdated June 4, 2026
Key takeaways
  • ImGui (Dear ImGui) ist eine kleine GUI-Bibliothek für C++ mit sofortigem Modus.
  • Es zeichnet das Menü jeden Frame neu aus Funktionsaufrufen, ohne einen Widget-Baum zu pflegen.
  • Native Clients und Tools wählen es für Low-Latency-Overlays über eine 3D-Szene.
  • Es ist ein C++-Muster; ein Java Fabric-Mod verwendet stattdessen die eigenen GUI-Hooks des Spiels.

ImGui, kurz für Dear ImGui, ist eine kleine GUI-Bibliothek für C++ mit sofortigem Modus. Sie zeichnet ein Menü jeden Frame aus einfachen Funktionsaufrufen neu, anstatt einen Baum von Widget-Objekten zu verwalten. Das macht die Integration schnell und einfach und ermöglicht es, sie problemlos über die bestehende Render-Schleife eines Spiels zu legen, weshalb Werkzeuge und native Clients sie für Overlay-Anwendungen mit geringer Latenz verwenden.

Wo Opal Einzug hält

Opal ist ein Fabric Mod, der seine Benutzeroberfläche über die eigenen GUI-Hooks des Spiels und nicht über ImGui aufbaut. Wenn Sie Funktionen hinzufügen möchten, ohne den nativen Code zu verändern, ist die GraalVM JavaScript-Skripting-Engine der richtige Ausgangspunkt. Sehen Sie sich den Einrichtungsleitfaden und den Skripting-Leitfaden an.

Was Immediate-Mode bedeutet

ImGui baut die Benutzeroberfläche in jedem Frame neu auf. Sie erstellen kein Button-Objekt und speichern es. Sie rufen eine Funktion auf, die sagt: "Zeichne hier einen Button", und dieser Aufruf zeichnet sowohl den Button als auch teilt Ihnen mit, ob er in diesem Frame angeklickt wurde.

Ein Retained-Mode-Toolkit funktioniert umgekehrt. Es hält einen langlebigen Widget-Baum im Speicher und aktualisiert diesen, wenn sich der Zustand ändert. Immediate-Mode tauscht diese persistente Struktur gegen Code, der von oben nach unten gelesen wird und neben Ihrem eigenen Zustand existiert.

Warum Tools und Clients es wählen

ImGui ist beliebt für Menüs, die über eine 3D-Szene gelegt werden. Die Gründe sind praktisch.

  • Geringe Latenz: Es hängt in einen Frame ein, den das Programm bereits rendert, sodass das Menü sofort reagiert.
  • Weniger Bindeglied: Ein Fenster und ein paar Steuerelemente sind eine Handvoll Funktionsaufrufe. Es gibt keine Layout-Datei und keinen separaten UI-Thread, der verwaltet werden muss.
  • Autonom: Die Bibliothek hat wenige Abhängigkeiten und passt sich häufig verwendeten Grafik-Backends an, sodass sie kein schweres Framework benötigt.
  • Debug-freundlich: Die gleichen Aufrufe, die ein Release-Menü erstellen, erstellen auch die temporären Debug-Panels, die Entwickler beim Erstellen einer Funktion verwenden.

Immediate-Mode vs. Retained-Mode

AspektImmediate-Mode (ImGui)Retained-Mode-Toolkit
ZustandsverwaltungIhr Code verwaltet die DatenDas Toolkit verwaltet einen Widget-Baum
Frame-bezogene ArbeitDie Benutzeroberfläche wird jeden Frame neu aufgebautDer Baum wird bei Änderungen aktualisiert
EinrichtungskostenEinige FunktionsaufrufeMehr Struktur im Voraus
Am besten geeignet fürOverlays, Tools, SpielmenüsGroße, dokumentenähnliche Anwendungen

Wie es zu einem nativen Client passt

Ein nativer Utility-Client, der in C++ geschrieben ist, zeichnet oft sein Menü mit ImGui über den Frame des Spiels. Der Menücode läuft innerhalb der Render-Schleife, liest die eigenen Einstellungen des Clients und schreibt Änderungen direkt zurück. Es gibt keinen separaten UI-Prozess, sodass das Umschalten einer Funktion ein einzelner Funktionsaufruf gegen einen Wert ist, den der Client bereits besitzt.

Dies ist ein C++-Muster. Ein Fabric Mod, der in Java geschrieben ist, erreicht seine Schnittstelle über die eigenen GUI-Hooks des Spiels, sodass ImGui hauptsächlich in Clients auftaucht, die als nativen Code und nicht als Java-Mods ausgeliefert werden.

FAQ