Table of Contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Welcome to the Dear ImGui wiki! Feel free to edit and contribute!
New to Dear ImGui? Check out the Getting Started guide.
Index
General
General documentation
- FAQ (Frequently Asked Questions) (docs/FAQ.md)
- Homepage Readme (docs/README.md)
- Getting Started
- Glossary
- Software using Dear ImGui
- Sponsors
- User quotes
- Upcoming changes (~roadmap)
- Tips (for people working with dear imgui)
- Developer tips (for people working on dear imgui)
- Releases / Changelogs with annotations and pictures.
Community
- Github Issues: for feature requests, bug reports, feedback, code snippets, etc. Searching there is recommended as many topics have been discussed and referenced already! Also see Labels for categorized issues.
- How to open an Issue or Pull Request #2261
- Help wanted
- Gallery threads / Gallery Label: Post your screenshots / code here
Demo, Examples
- About Examples apps (docs/EXAMPLES.md)
- The examples/ folder contains 23 standalone example applications for varieties of platforms and frameworks.
- The imgui_demo.cpp file has a
ImGui::ShowDemoWindow()
function which you can call from any imgui-enabled application to showcase variety of features. The demo function is called from all examples/ apps. - Third-party: @pthom's imgui_manual: web version of imgui_demo with interactive browsing of sources.
Language Bindings
- List of language bindings (C, C#, D, Go, JavaScript, Lua, Python, Rust and many others...)
- List of binding generators (cimgui, dear_bindings)
Platform and Rendering Backends
- List of engine/framework backends (Unity, Unreal and many others...)
- About Backends (docs/BACKENDS.md)
- The backends/ folder contains 18 reusable backends for varieties of platforms and frameworks.
Third-Party Extensions
- List of useful third-party extensions/widgets: Text editors, node editors, plotting/graphing, curves/animations/gradients editors, file dialogs, knobs, spinners, toggles, layout, remoting, 3d gizmos, inspectors, and many more!
Testing / Automation
Notable branches
- master branch
- docking branch (fully maintained): include Docking + Multi-Viewports features.
Features
Debug Tools
- See Debug Tools wiki page explaining
ShowMetricsWindow()
,ShowDebugLogWindow()
,ShowIdStackToolWindow()
, Item Picker..
Images
- Tutorial: Image Loading and Displaying Examples (helpful if you are confused about
ImTextureID
).
Fonts/Text
- Read: Using Fonts (docs/FONTS.md)
- Search in Issues: font/text
- Freetype renderer: imgui_freetype (misc/freetype/imgui_freetype)
Tables
- #3740 Main Tables Topic
- Search in Issues: tables/columns
Multi-Select
Docking
- About Docking
- Search in Issues: docking
- #2109 Main Docking topic
- List of legacy third-party Docking extensions (prior to official docking: LumixEngine, imguiDock, ImWindow, imgui_wm, etc.)
Multi-viewports
- About Multi-Viewports
- Search in Issues: multi-viewports
- #1542 Main Multi-viewports topic
- #2117 Linux/Mac compatibility of multi-viewports
Inputs
- Search in Issues: inputs
- 1.87 new IO event queue API #4921
Input / IO queue for very low framerate applications: gist
Miscellaneous
Building / Packaging Cruft
- https://vcpkg.io/ has Dear ImGui available.
- Meson WrapDB has a Meson Wrap for Dear ImGui.
- #1713 CMake project to build Examples (PR) by @podsvirov (need feedback)
- #3027 Add CMake configuration (PR) by @Qix- (need feedback)
- rokups' cmake Self-contained single-file cmake build script
- Premake5 https://github.com/ocornut/imgui/tree/features/premake5 (unmerged branch)
- Conan github/conan-center-index/conan-imgui, conan-center
- Fips (fips-imgui): fipsified imgui for fips build system github/fungos/fips-imgui
- GN (Chromium, ninja) BUILD.gn file: github/ndsol/VolcanoSamples
Third-party Frameworks, Templates
(Please also check our examples/ folder in the repo, they work fine as starter apps!)
C/C++, Python:
- imgui_bundle: bundle including various powerful libraries [...] easily create ImGui applications in C++ and Python, under Windows, macOS, and Linux github/pthom/imgui_bundle
C/C++
- asap: Starter project for portable app with optional GUI (GLFW/ImGui) github/abdes/asap
- GGWeb: Template for making a GUI app with C++ / Dear ImGui / SDL / OpenGL / Emscripten that can run both natively and in the browser. github/ggerganov/ggweb
- Walnut: simple application framework for Vulkan and Dear ImGui apps. github/TheCherno/Walnut
- imgui-app: amalgamation of Dear ImGui and Sokol into two files github/pplux/imgui-app
- imgui_application: Tiny library for making c++ imgui-based apps (web & native) github/inobelar/imgui_application
- wiimag's framework: C/C++ Application Framework for Windows, MacOS, and Linux. github/wiimag/framework
- Hello ImGui: enables quickly writing multiplatform apps with the simplicity of a "Hello World" app github/pthom/hello_imgui
- imgui_dojo: an easy setup example for imgui github/LiuZHolmes/imgui_dojo
- mahi-gui: Dirt Simple C++ GUI Toolkit using GLFW, glad, and ImGui github/mahilab/mahi-gui
- sdl-bgfx-imgui-starter: A starter project for graphics applications github/pr0g/sdl-bgfx-imgui-starter
- Starter dear-imgui GLFW/OpenGL 3 based CMake C++ project: github/urddru/imgui-glfw
- ImDuino (ESP32+TFT+ImSoft+ImGui example): github/LAK132/ImDuino
- ImFrame: Dear ImGui + GLFW C++ / CMake application framework: github/JamesBoer/ImFrame
- UntitledImGuiFramework: A desktop software development framework: github/MadLadSquad/UntitledImGuiFramework
Other:
- ImTemplate: Template for making a single-windowed (or not) Dear ImGui application in Nim. github/Patitotective/ImTemplate
- Bimpy: bundled imgui for python: github/podgorskiy/bimpy
- giu: Cross platform rapid GUI framework for golang based on Dear ImGui. github/AllenDang/giu
- Dear PyGui: A Simple Python GUI framework github/hoffstadt/DearPyGui
- ImGui Javascript Sandbox: web
- DarknessFX Zig projects, templates, programs, libs and tools: github.com/DarknessFX/zig_workbench
Notable forks
- https://github.com/adobe/imgui
- https://github.com/ubisoftinc/imgui
- https://github.com/mojang/imgui
- https://github.com/thedmd/imgui
- https://github.com/flix01/imgui
- https://github.com/Csabix/imgui
Ports, Rewrites, Clones
- See: Ports, Rewrites, Clones section.
Related/Suggested Libraries
- stb (stb single-file public domain libraries for C/C++) https://github.com/nothings/stb
- str (lightweight C++ string type with an optional local buffer) https://github.com/ocornut/Str
- nuklear (A single-header ANSI C gui library) https://github.com/Immediate-Mode-UI/Nuklear
- egui (egui: an easy-to-use immediate mode GUI in Rust) https://github.com/emilk/egui
- im3d (Immediate mode rendering and 3d gizmos) https://github.com/john-chapman/im3d
- An immediate mode 3D gizmo (translation, rotation, scale for scene editing) https://github.com/meshula/tinygizmo
- small libraries with minimal dependencies https://github.com/nothings/single_file_libs
Job Board
See https://github.com/ocornut/imgui/issues/5031 for industry job offers relating to use of Dear ImGui.
Articles, Videos
Articles/Videos About Dear ImGui
English
- 2016-07: Using imgui with STL types blog [note that this article is now outdated: BeginCombo() api makes it natural to enumerate from any containers, InputText() supports resizing callbacks and imgui_stdlib.h provides wrapper for std::string]
- 2016-10: CppCon 2016: Nicolas Guillemot “Dear imgui,": video.
- 2017-03: Why I think Immediate Mode GUI is way to go for GameDev tools: post.
- 2018-04: TheChernoProject: ImGui in OpenGL / ImGui Game Engine series / ImGui Events / Docking & Viewport
- 2018-08: Mana Engine: Thread safety of APIs medium/tloch34
- 2018-10: C++ DirectX 11 Engine Tutorial 35/36: Set up ImGui: Part 35, Part 36
- 2019-01: Could ImGUI be the future of GUIs? games.greggman.com
- 2019-03: Rust: Making a basic game ui with imgui and ggez blog
- 2019-05: Frictionless Debug UI In C++: pdf
- 2019-06: An introduction to the Dear ImGui library: blog.
- 2019-08: Integrating Dear ImGui in a custom Vulkan renderer blog
- 2020-02: Runtime Compiled C++ Dear ImGui and DX11 Tutorial: blog.
- 2020-03: C++ Weekly - Ep 210: Getting Started With SFML & Dear ImGui youtube
- 2020-03: C++ desktop application with Dear Imgui: blog
- 2020-06: A Preface to the Dear ImGUI C++ Library: blog
- 2020-09: A Vulkan + Dear ImGui Sandbox: blog
- 2021-01: Gamefromscratch: Dear ImGui C++ GUI Framework For AAA Games and Game Engines youtube
- 2021-02: Introduction to the Dear ImGui C++ Library with Conan: video, blog
- 2021-04: Thinking in Immediate: video
- 2021-05: ImGui-SFML: Using CMake and managing dependencies: blog
- 2021-05: ImGui + GLFW Tutorial: video
- 2022-02: BEST WAY to make Desktop Applications in C++: video
- 2022-04: Make your own GUI apps in C++ (with Dear ImGui and Vulkan) video
- 2022-05: Dear ImGui in Unreal Engine 5 with C++ video + followup
- 2023-02: Dear ImGui for Unity - easiest GUI menus and bars video
- 2023-07: Custom title bars (Make Beautiful Desktop Applications in C++) video
- 2023-08: Dear IMGUI in C# .NET! Tutorial video
- 2023-09: Leveraging Dear ImGui in Unreal: blog
- 2023-09: Visual node graph with ImGui: blog
Korean
- 2018-01: GLFW 사용 방법 정리 (Windows 10, VS2017) 3dshovel.blogspot.com
Japanese
- 2016-12: OpenGLやDirectXなGUIにimguiが最強すぎる qiita.com/Ushio
- 2016-16: 最強すぎるGUIことImGuiの見た目もイイ感じにする qiita.com/izumin5210
- 2018-03: ImGuiでデバッグツール hikita12312.hatenablog.com
- 2018-02: OpenSiv3DでImGuiを使う qiita.com/RareAmayuki
- 2018-12: ダッシュボードオーバーレイ(OpenVR overlay)を作りimguiとDirectXで描いてみる qiita.com/ondorela
- 2019-07: imgui で GUI を作るときのメモ qiita.com/syoyo
- 2019-12: Dear ImGuiの使い方まとめ qiita.com/mizuma
- 2020-01: imguiのwindowの中で3d cubeの描画をしてやった qiita.com/ssaattwworg
- 2020-02: imgui 使ってみた note.com/onswar
- 2020-03: Dear ImGui で作成したウィンドウの中に OpenGL で描画するサンプルプログラム github/tokoik
- 2020-12: OpenSiv3Dで自作したImGuiライクなGUIライブラリの紹介 qiita.com/sthairno
- 2020-12:【UE4】GUIフレームワーク「Dear ImGui」を使ってデバッグ・ツール用UIを作ってみよう!pafuhana1213.hatenablog.com
- 2020-12:【UE4】【C++】ImGuiを使ってみてハマった所、気付いた所 toofu0.hatenablog.com
- 2021-03: UE4:ImGui導入手順 toncrimentan-w.hatenablog.com
- 2022-07: ImGui で日本語と記号♥と絵文字😺の表示 zenn.dev/tenka
- 2022-11:【Unity】Dear ImGuiの導入方法 limegame.hatenablog +【Unity】Dear ImGuiのメニューバー実装方法 limegame.hatenablog
- 2023-01: Java 3D LWJGL 改造 〜Chapter10:Imgui を使用した GUI 描画を改造〜 zenryokuservice.com
- 2023-03: DirectX12でImGuiを使用する zenn.dev/norainu
- 2023-06:【Unity】Dear ImGuiの日本語フォント導入方法 limegame.hatenablog.com
Chinese (Trad)
- 2020-10: Day 17 ImGui 元件 ithelp.ithome.com.tw
- 2022-11:【ImGui 入门到精通 课程介绍】 video
French
- 2020-11: Dear ImGui : une bibliothèque d'interface utilisateur graphique "bloat-free" pour C++ cpp.developpez.com
German
- 2023-04: Interaktive GUI mit C++ und ImGui: Praktische Beispiele udemy.com/course
Portuguese
- 2022-05: Como Criar Interfaces Gráficas com Dear ImGui e SFML video
Polish
- 2018-01: Szkolenie z biblioteki dear imgui Video Part 1 2 3 4 5 6 7 8 9, Slide
- 2021-02: Dear ImGui: pragmatyczne podejście do programowania interfejsów użytkownika programista mag
About the IMGUI paradigm
Dear ImGui is one possible implementation of an idea generally described as the IMGUI (Immediate Mode GUI) paradigm. The Immediate Mode GUI paradigm may at first appear unusual to some users. This is mainly because "Retained Mode" GUIs have been so widespread and predominant. The following links can give you a better understanding about how Immediate Mode GUIs works.
- Our Wiki page About the IMGUI paradigm.
- Johannes 'johno' Norneby's article, 2007.
- A presentation by Rickard Gustafsson and Johannes Algelind, 2011.
- Jari Komppa's tutorial on building an IMGUI library, @jarikomppa, 2006.
- Casey Muratori's original video that popularized the concept, 2005.
- First notable post by Casey on 2005-07-05.
- 2007 Mirror of Molly Rocket's IMGUI forums (with posts).
- 2013 Mirror of Molly Rocket's IMGUI forums (index only, missing posts).
- Sean Barrett's article in Game Developer Magazine (Page 34), September 2005.
- Sean Barrett's IMGUI page and toolkit, @nothings, 2005.
- Nicolas Guillemot's CppCon'16 flash-talk about Dear ImGui, 2016.
- Thierry Excoffier's ZMV (Zero Memory Widget), 2004.
Another notable uses of IMGUI paradigm include Unity's own IMGUI widget library, often informally referred to as OnGUI()
, which powers the Unity editor and its extensions. This library is unrelated from Dear ImGui. The IMGUI library used by Unity has in the past received mixed feedback from its users, presumably because it may have been perceived as a potential candidate for game-facing UI solutions, which it doesn't excel at. However Unity has since provided separate libraries to tackle that case, and their IMGUI library is still very much in use for the Unity Editor and has been its UI backbone for the past 15+ years.