Dear ImGui v1.92.7: Spring again 🌱
✋ Reading the changelog is a good way to keep up to date with what Dear ImGui has to offer, and will give you ideas of some features that you've been ignoring until now!
📣 If you are browsing multiple releases: click version number above to display full release note contents, otherwise it is badly clipped by GitHub!
Links: Homepage - Release notes - FAQ - Issues, Q&A. Also see our Wiki with sections such as..
- Getting Started (~25 lines in an existing app)
- Useful Extensions/Widgets
- Software using Dear ImGui
- Language Bindings & Engine Backends
- and more! 👌
Dear ImGui is funded by your contributions and absolutely needs them to sustain and grow. We can invoice and accommodate to many situations. If your company uses Dear ImGui, please reach out. See Funding page. Did you know? If you need an excuse to pay, you may buy licenses for Test Engine and buy hours of support (and cough not use them all) and that will contribute to fund Dear ImGui.
❤️ Thanks to sponsors ❤️
First time sponsors!
And all recent years sponsors:
- Asobo Studio !
- BeamNG !
- G3Dvu !
- Gravity Well !
- ID Software !
- Lucid Games !
- OTOY !
- Mobigame !
- Remedy Entertainment !
- Passtech Games !
- Planestate Software !
- River End Games
- Riot Games !
- SCS Software !
- Scorewarrior !
- Sofistik !
- Tanius Technology !
- Thatgamecompany !
- Tuxedo Labs !
- Supercell !
- Valve !
- Vector Unit !
As well as various paid/corporate licenses to imgui_test_engine supporting the project.t
Fun fact 🏆
The french game industry kindly awarded me an honorary prize at the Pegases 2026 awards, principally motivated by my work on Dear ImGui. (photos: x / bsky).
News about Third-Party Projects
- imgui_explorer: @pthom's fabulous imgui_manual has been improved and rebranded as imgui_explorer. It also now includes ImPlot and ImPlot3d: https://pthom.github.io/imgui_explorer/
- @pthom also improved his Dear ImGui Bundle Explorer.
- ImGuiColorTextEdit: @goossens has rewritten the fancy text editor initially created by @BalazsJako (which was unmaintained and had many small forks). New version: https://github.com/goossens/ImGuiColorTextEdit
- Unreal Engine users? See "Converging toward a principal Unreal Engine backend/binding for Dear ImGui?"
Check the Useful Extensions/Widgets page for many more.
Changes in v1.92.7 (since v1.92.6)
🆘 Need help updating your custom rendering backend to support ImGuiBackendFlags_RendererHasTextures introduced in v1.92.0 ? You can read the recently improved docs/BACKENDS.md.
Breaking Changes
- Separator(): fixed a legacy quirk where
Separator()was submitting a zero-height item for layout purpose, even though it draws a 1-pixel separator. The fix could affect code e.g. computing height from multiple widgets in order to allocate vertical space for a footer or multi-line status bar. (#2657, #9263). The "Console" example had such a bug:Should be:float footer_height = style.ItemSpacing.y + ImGui::GetFrameHeightWithSpacing(); BeginChild("ScrollingRegion", { 0, -footer_height });
When such idiom was used and assuming zero-height Separator, it is likely that in 1.92.7 the resulting window will have unexpected 1 pixel scrolling range.float footer_height = style.ItemSpacing.y + style.SeparatorSize + ImGui::GetFrameHeightWithSpacing(); BeginChild("ScrollingRegion", { 0, -footer_height });
- Multi-Select: renamed
ImGuiMultiSelectFlags_SelectOnClicktoImGuiMultiSelectFlags_SelectOnAuto. Kept inline redirection enum (will obsolete). - Combo(), ListBox(): commented out legacy signatures which were obsoleted in 1.90 (Nov 2023), when the getter callback type was changed from:
bool (*getter)(void* user_data, int idx, const char** out_text)toconst char* (*getter)(void* user_data, int idx).
Other Changes
- TreeNode:
- Moved
TreeNodeGetOpen()helper to public API. I was hesitant to make this public because I intend to provide a more generic and feature-full version, but in the meanwhile this will do. (#3823, #9251, #7553, #6754, #5423, #2958, #2079, #1947, #1131, #722) - In 'Demo->Property Editor' demonstrate a way to perform tree clipping by fast-forwarding through non-visible chunks. (#3823, #9251, #6990, #6042) Using
SetNextItemStorageID()+TreeNodeGetOpen()makes this notably easier than it was prior to 1.91.
- Moved
- InputText:
- Shift+Enter in multi-line editor always adds a new line, regardless of
ImGuiInputTextFlags_CtrlEnterForNewLinebeing set or not. (#9239) - Reworked
io.ConfigInputTextEnterKeepActivemode so that pressing Enter will deactivate/reactivate the item in order for e.g.IsItemDeactivatedAfterEdit()signals to be emitted the same way regardless of that setting. (#9001, #9115) - Fixed a glitch when using
ImGuiInputTextFlags_ElideLeftwhere the local x offset would be incorrect during the deactivation frame. (#9298) - Fixed a crash introduced in 1.92.6 when handling
ImGuiInputTextFlags_CallbackResizein certain situations. (#9174) - Fixed selection highlight Y1 offset being very slightly off (since 1.92.3). (#9311) [@v-ein]
- InputTextMultiline: fixed an issue introduced in 1.92.3 where line count calculated for vertical scrollbar range would be +1 when the widget is inactive, word-wrap is disabled and the text buffer ends with '\n'. Fixed a similar issue related to clipping large amount of text.
- InputTextMultiline: avoid going through reactivation code and fixed losing revert value when activating scrollbar.
- InputTextMultiline: fixed an issue where edit buffer wouldn't be reapplied to back buffer on the
IsItemDeactivatedAfterEdit()frame. This could create issues when using the idiom of not applying edits beforeIsItemDeactivatedAfterEdit(). (#9308, #8915, #8273)
- Shift+Enter in multi-line editor always adds a new line, regardless of
- Tables:
- Allow reordering columns by dragging them in the context menu. (#9312)
- Context menu now presents columns in display order. (#9312)
- Fixed and clarified the behavior of using
TableSetupScrollFreeze()with columns>1, and where some of the columns within that range were Hidable.- Before:
TableSetupScrollFreeze(N, 0): include the N left-most visible columns as part of the scroll freeze. So if you intentionally hide columns <N, the scroll freeze area would start covering the subsequent/following columns (N+1) etc. - After:
TableSetupScrollFreeze(N, 0): include the N left-most columns (regardless of visibility), as part of the scroll freeze. So if you intentionally hide columns <N, the scroll freeze area will cover less columns. - This is generally more sane and logical.
- Before:
- Fixed dragging a header to reorder outside of visible bounds (due to horizontal scrolling) from losing active id.
- Angled Headers: angled section for column being reordered via the regular headers stays highlighted during reordering.
- Style:
- Fonts: fixed an issue introduced in 1.92.6 where
style.FontBaseSizewould be cleared during the first frame if no fonts was explicitly added before. - Border sizes are now scaled (and rounded) by
ScaleAllSizes(). - When using large values with
ScallAllSizes(), the following items thickness are scaled to integer amounts:
- Fonts: fixed an issue introduced in 1.92.6 where
- Nav:
- Popups: Shift+F10 or Menu key can now open popups menus when using
BeginPopupContextItem(),BeginPopupContextWindow()orOpenPopupOnItemClick(). (#8803, #9270) [@exelix11, @ocornut] - Changed Gamepad mapping for "Activate with Text Input" action: (#8803, #787)
- Previously: press North button (PS4/PS5 triangle, Switch X, Xbox Y).
- Now: long press (hold) Activate button (PS4/PS5 cross, Switch B, Xbox A) for ~0.60 secs.
This is rarely used, somehow easier to discover, and frees a button for other uses.
- Short Gamepad Activation press on InputText() always activate with Text Input mode.
- Popups: pressing North button (PS4/PS5 triangle, SwitchX, Xbox Y) also open popups menus.
- Popups: Shift+F10 or Menu key can now open popups menus when using
See updated Gamepad Control Sheets (PlayStation, Switch, Xbox):
https://www.dearimgui.com/controls_sheets
- Multi-Select:
- Clipper:
- Clear
DisplayStart/DisplayEndfields whenStep()returns false. - Added
UserIndexhelper storage. This is solely a convenience for cases where you may want to carry an index around. - Always pulls current context on
ImGuiListClipper::Begin(), consistent with public API design, and avoids issues with clipper instances outliving contexts. (#9324, #5856)
- Clear
- Scrollbar:
- Implemented a custom tweak to extend hit-testing bounding box when window is sitting at the edge of a viewport (e.g. fullscreen or docked window), so that e.g. mouse the mouse at the extreme of the screen will reach the scrollbar. (#9276)
- Fixed an issue which could lead initial click to move the current scroll by a pixel.
- Button:
- Moved
ImGuiButtonFlags_AllowOverlapfrom imgui_internal.h to imgui.h, as a convenience for when using e.g.InvisibleButton().
- Moved
- Focus: fixed fallback "Debug" window temporarily taking focus and setting
io.WantCaptureKeyboardfor one frame on e.g. application boot if no other windows are submitted. (#9243) - DrawList:
- Memory:
- Discard/GC of ImDrawList buffers for unused windows favor restoring them to ~Size*1.05 instead of Capacity when awakening again. Facilitate releasing ImDrawList buffers after unusual usage spike. (#9303)
- Fixed
GetForegroundDrawList()/GetBackgroundDrawList()per-viewport buffers not being collected when unused forio.ConfigMemoryCompactTimeramount of time. (#9303)
- Demo: fixed
IMGUI_DEMO_MARKERlocations for examples applets. (#9261, #3689) [@pthom] - Internals:
- ButtonBehavior: fixed internal/low-level
ImGuiButtonFlags_PressedOnRelease(as well as equivalentImGuiSelectableFlags_SelectOnReleasefor Selectable) from not taking current active id.ImGuiButtonFlags_NoHoldingActiveIDallows that. This was only used internally by MenuItem().
- ButtonBehavior: fixed internal/low-level
- Backends:
- DirectX9, OpenGL2, OpenGL3, Metal, SDLGPU3, SDLRenderer2, SDLRenderer3: fixed easy-to-fix issues in code assuming ImTextureID_Invalid is always defined to 0. (#9295, #9310)
- GLFW: mouse cursor is properly restored if changed by user app/code while using
glfwSetInputMode(..., GLFW_CURSOR_DISABLED)orImGuiConfigFlags_NoMouseCursorChange. Amend optimization done in 1.92.6. - SDLGPU3: removed unnecessary call to
SDL_WaitForGPUIdle()when releasing vertex/index buffers. (#9262) [@jaenis] - WebGPU: fixed version check for Emscripten 5.0.0+.
- WebGPU: removed support for Emscripten <4.0.10. (#9281) [@ypujante]
- WebGPU: added support for WGVK native backend via
IMGUI_IMPL_WEBGPU_BACKEND_WGVK, using SPIRV shaders if WGSL is not available. (#9316, #9246, #9257) [@r-lyeh] (WGVK is a lightweight alternative to Dawn or WGPU for native applications, which is easier to build/setup, see: https://github.com/manuel5975p/WGVK)
- Examples:
- Emscripten: added
tabindex=-1to canvas in our shell_minimal.htm. Without it, the canvas was not focusable in the DOM, which in turn make some backends (e.g. pongasoft/emscripten-glfw) not receive focus loss events. (#9259) [@pthom] - Emscripten: fixed minor rendering issues with our HTML shell. (#9281) [@ypujante]
- hidden small blue outline when canvas is focused on Chrome.
- hidden scrollbar in Firefox.
- Vulkan: added
ImGui_ImplVulkan_PipelineInfo::ExtraDynamicStates[]to allow specifying extra dynamic states to add when creating theVkPipeline. (#9211) [@DziubanMaciej] - Vulkan:
ImGui_ImplVulkan_AddTexture()skips updating descriptor_set if failing to allocate one. (#8677) [@micb25] - WebGPU: fixed undefined behaviors in example code for requesting adapter and device. (#9246, #9256) [@r-lyeh]
- SDL2+WebGPU: fixed hi-dpi handling. (#9300) [@ypujante]
- GLFW/SDL2/SDL3+WebGPU: added support for WGVK. (#9316, #9246, #9257) [@r-lyeh, @ocornut]
- GLFW/SDL2/SDL3+WebGPU: removed support for Emscripten <4.0.10. (#9281) [@ypujante]
- Emscripten: added
Changes from 1.92.6 to 1.92.7 specific to the Docking+Multi-Viewports branch:
git tag: v1.92.7-docking
- Viewports:
- Fixed an issue where the implicit "Debug" window would erroneously be targeted for mouse inputs while hidden if (1) the implicit "Debug" window was used in a previous session and moved to a secondary viewport and (2) the Platform Backend does not support the
ImGuiBackendFlags_HasMouseHoveredViewportfeature. (#9254) - Backends: SDL2, SDL3: fixed an issue dated 2025/04/09 (1.92 WIP) where a refactor and a merge caused
ImGuiBackendFlags_HasMouseHoveredViewportto never be set, causing foreign windows to be ignored when deciding of hovered viewport. (#9284) [@ravencgg] - Backends: SDL3: use
SDL_HAS_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED(SDL 3.4.0+) when available to avoid refreshing monitor work area every frame on Windows. (#8415) - Backends: Win32: fixed setting/getting correct size when viewports have OS decorations enabled (e.g.
io.ConfigViewportsNoDecoration = false)and process is running in Per-Monitor V2 DPI mode. May be related to incorrect mouse offset when using decorated OS windows. (#8897) [@lailoken]
- Fixed an issue where the implicit "Debug" window would erroneously be targeted for mouse inputs while hidden if (1) the implicit "Debug" window was used in a previous session and moved to a secondary viewport and (2) the Platform Backend does not support the
Gallery
Pyrite64: N64 Game-Engine and Editor using libdragon & tiny3d
https://github.com/HailToDodongo/pyrite64
Release video: https://www.youtube.com/watch?v=4BCmKnN5eGA
Flare-tic, personal internal software by Julien Vulliet for his demos/vj/video production/interactive installation etc.
https://nodeforum.org/people/julien-vulliet
https://www.mrvux.com
Gaussian Splatting in Superman 2025 movie (effect dev by Framestore)
https://www.youtube.com/watch?v=Pxd-q3ECBPs
Thor Editor
https://bsky.app/profile/krabouille.bsky.social/post/3mcwfbwa5z22b
Bento Blocks:
https://store.steampowered.com/app/3311670/Bento_Blocks <-- nice game!
@jet-jones: "nothing super fancy mostly just lists of properties. Main use on the project was for making quick inline debugging stuff which isn't very showable. All of the ingame ui is it's own immediate mode system heavily based on Dear Imgui code particularly the id hashing stuff. "
@BigJk: "Is building a markdown editor (imagine a barebones native obsidian) with ImGui a sane choice? Probably not, but it's a lot of fun 😄 I render the markdown to HTML with cmark-gfm and then use ImHTML to render it. The editor supports clickable links to navigate between pages or open websites, images, customisable themes, customisable css for the markdown..."
@FuXiii: "Control hint UI"
@smoke1080p: Password Defense — Offline-First Password Manager for Windows Built with C++ and Dear ImGui (DirectX 11)
https://passworddefense.net
ColumnLens: @marchildmann: "Query massive data files. Instantly. / Native C++ desktop app with built-in SQL engine, interactive charts, 3D city visualization, text toolkit, and Lua scripting. Opens 5GB+ CSV, JSONL, Parquet, Excel & SQLite files in seconds. 100% on-device."
https://columnlens.com
@adelciotto: "Thanks to all in this community who work on ImGui. I've been using it for years both professionally and in personal projects. It has helped immensely for productivity. "
[....]
An Intel 8080 Taito/Midway arcade board emulator for playing games like Space Invaders, Lunar Rescue and Balloon Bomber.
You need to provide your own rom zip files. Runs on the web and natively, you can download on my website

[...]
Also some screenshots of using it in my last job. A dental technology company. These screenshots just show ImGui in use for small R&D programs I made to help test / design specific algorithms that were a part of a bigger overall software that processed patient scans from intraoral medical scanners. I used ImGui for many more applications at this company but unfortunately don't have screenshots anymore of those.

(full post here)
"Game engine made in 5 days complete" by @AmelieHeinrich
https://x.com/Dispatch_Graph/status/2033325266685108533
https://github.com/AmelieHeinrich/Termina
@midwan: "For the Amiberry emulator (https://amiberry.com/), I needed to modernize the UI with a library that was portable, flexible, efficient and lightweight. Dear Imgui fitted the specs perfectly. I only added some theme customization on top, to make it look like AmigaOS, and also a Dark theme (we all want one)"
...More in gallery threads.
Also see previous releases details.
Note that GitHub are now clamping release notes sometimes really badly, click on a header/title to read full notes.
💰 🙏 Dear ImGui is funded by your contributions and absolutely needs them to sustain and grow. We can invoice and accommodate to many situations. If your company uses Dear ImGui, please reach out. See Funding page. Did you know? If you need an excuse to pay, you may buy licenses for Test Engine and buy hours of support (and cough not use them all) and that will contribute to fund Dear ImGui.



