v1.91.2
1.91.2: detect id conflicts, table fixes, faster input text & more.
❤️ A month ago was the 10th anniversary of v1.00! Read: 10 years of Dear ImGui ! 🎉
✋ Reading the changelog is a good way to keep up to date with the things Dear ImGui has to offer, and maybe 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
- Bindings & 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.
In recent year, Dear ImGui has been financially supported by many companies.
Thank you SCS Software for joining the list! Thank you to FUTO for their recent migrogrant!
Following the 10 years of Dear ImGui post, there has been an unusually high amount of individual donations. Thank you Adam, Albert, Antoine, Arthur, Bruno, Caleb, Charles, Daniel, Geoff, Giacomo, Israelle, Jean-Sebastien, Jonathan, Liam, Lucas, Martin, Nathaniel, Ondrej, Peter, Simon, Yuvan.
Special thanks to @GamingMinds-DanielC, @PathogenDavid, @cfillion & more for for their help with patches and answers!
Changes (since v1.91.1)
- Added
io.ConfigDebugHighlightIdConflicts
debug feature! (#7961, #7669)
THIS DETECTS THE MOST COMMON USER ERROR BY FIRST-TIME DEAR IMGUI PROGRAMMERS! See Debug Tools page.- The tool detects when multiple items are sharing the same identifier, due to not using
PushID
/PopID
in loops, or not using ID stack facilities such as"##"
suffixes. Very frequently it happens when using empty""
labels. - When hovering an item with a conflicting ID, all visible items with the same ID will be highlighted and an explanatory tooltip is made visible.
- The feature may be disabled and is exposed in Demo->Tools menu.
- I've been wanting to add this tool for a long time, but was stalled by finding a way to
not make it spammy + make it practically zero cost. After @pthom made various proposals to
solve the same problem (thanks for pushing me!), I decided it was time to finish it. - Added
ImGuiItemFlags_AllowDuplicateId
to use withPushItemFlag()
/PopItemFlag()
if for some
reason you intend to have duplicate identifiers. - (#74, #96, #480, #501, #647, #654, #719, #843, #894, #1057, #1173, #1390, #1414, #1556, #1768, #2041, #2116, #2330, #2475, #2562, #2667, #2807, #2885, #3102, #3375, #3526, #3964, #4008, #4070, #4158, #4172, #4199, #4375, #4395, #4471, #4548, #4612, #4631, #4657, #4796, #5210, #5303, #5360, #5393, #5533, #5692, #5707, #5729, #5773, #5787, #5884, #6046, #6093, #6186, #6223, #6364, #6387, #6567, #6692, #6724, #6939, #6984, #7246, #7270, #7375, #7421, #7434, #7472, #7581, #7724, #7926, #7937 and probably more..)
- The tool detects when multiple items are sharing the same identifier, due to not using
- Nav: pressing any keyboard key while holding Alt disable toggling nav layer on Alt release. (#4439)
- MultiSelect+Tables: fixed an issue where box-select would skip items while drag-scrolling in a table with outer borders. (#7970, #7821).
- Inputs:
SetNextItemShortcut()
withImGuiInputFlags_Tooltip
doesn't show tooltip when item is active. - InputText: internal refactoring to simplify and optimize the code. The ImWchar buffer has been removed. Simplifications allowed to implement new optimizations for handling very large text buffers (e.g. in our testing, handling of a 1 MB text buffer is now 3 times faster in VS2022 Debug build). This is the first step toward more refactoring. (#7925) [@alektron, @ocornut]
- InputText: added CJK double-width punctuation to list of separators considered for CTRL+Arrow.
- Tables: fixed auto-width columns when using synced-instances of same table. The previous fix done in v1.90.5 was incomplete. (#7218)
- Tables: fixed assertion related to inconsistent outer clipping when sizes are not rounded. (#7957) [@eclbtownsend]
- Tables: fixed assertion with tables with borders when clipped by parent. (#6765, #3752, #7428)
- Windows: fixed an issue where double-click to collapse could be triggered even while another item is active, if the item didn't use the left mouse button. (#7841)
- Misc: Made it accepted to call
SetMouseCursor()
with any out-of-bound value, as a way to allow hacking in custom cursors if desirable. - Fonts: fixed ellipsis
"..."
rendering width miscalculation bug introduced in 1.91.0. (#7976) [@DDeimos] - TextLinkOpenURL(): modified tooltip to display a verb "Open 'xxxx'". (#7885, #7660)
- Backends: SDL2: use
SDL_Vulkan_GetDrawableSize()
when available. (#7967, #3190) [@scribam] - Backends: GLFW+Emscripten: use OSX behaviors automatically when using contrib glfw port. (#7965, #7915) [@ypujante]
- Backends: WebGPU: Added support for optional
IMGUI_IMPL_WEBGPU_BACKEND_DAWN
/IMGUI_IMPL_WEBGPU_BACKEND_WGPU
defines to handle ever-changing native implementations. (#7977, #7969, #6602, #6188, #7523) [@acgaudette]
Changes from 1.91.1 to 1.91.2 in the Docking branch:
- Viewports: fixed an issue where a window manually constrained to the main viewport while crossing over main viewport bounds isn't translated properly. (#7985)
- Backends: SDL2, SDL3, Win32: ensure that
ImGuiPlatformMonitor
list is available after backend Init call. (#7995) - Backends: Win32: fixed direct calls to
platform_io.Platform_SetWindowPos()
/Platform_SetWindowSize()
on windows created by application (typically main viewport). - Backends: Win32: fixed an issue where a viewport destroyed while clicking would hog mouse tracking and temporary lead to incorrect update of HoveredWindow. (#7971)
- Backends: SDL3: added support for
viewport->ParentViewportId
field to support parenting windows at OS level. (#7973, #7989) [@RT2Code]
Gallery
@EddieEldridge: "Using ImGUI and a custom Lua wrapper to enable users to create their own custom GUI elements for the base game and it's modifications in the strategy game Medieval II: Total War" (Demo video,Medieval 2 Engine Overhaul Project).
@untodesu: "I'm back at it with my ImGui-based Game UI for my voxel game - Voxelius This time the game features an almost-full fledged UI with the most recent addition being in-game chat! "
@Green-Sky: "Recently I also started to use DearImGui for a non game program, my messenger (framework frontend) tomato, which has Tox support built-in. It also supports loading plugins."
"With doom as a plugin 😏 :"
@SirMallard: "Used at Roblox as an internal development tool for the engine. Shown during RDC24 (Roblox Developer Conference)."
"Only the engine programmers (Roblox employees) are able to use Dear ImGui. Developers using the Roblox engine do not have access to it, nor the ability to add it to the engine themselves, hence the implementation of Dear ImGui in Roblox Luau, Iris."
@bryanedds:
Nu Game Engine and Omni Blade (steam) from @bryanedds
https://github.com/bryanedds/Nu
"ImGui is the KEY factor that enables our game editor's user-extensibility far beyond what any retained gui can provide in practice. To us, the extensibility built into the ImGui paradigm was and continues to be the primary value proposition. And Dear ImGui specifically is the reason why we didn't even have to consider writing an ImGui ourselves! There's no sufficient way to emphasize how Dear ImGui and its lineage makes straight-forward the otherwise impractical!"
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.
❤️ A month ago was the 10th anniversary of v1.00! Read: 10 years of Dear ImGui ! 🎉
💰 🙏 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.