1.91.5: many tweaks/fixes & obsoleted old IO
❤️ A few months 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.
❤️ Thanks to recently joining sponsors: id Software, SCS Software! Valve! Gravity Well! ❤️
❤️ Thanks to other present and past sponsors incl Supercell! BeamNG! OTOY! Arkane Lyon, Asobo Studio, Lucid Games! Asobo! G3Dvu ! Planestate Software! Aras P! FUTO! & many individuals ❤️
Thanks to @GamingMinds-DanielC, @PathogenDavid & more for for their help with github answers!
Changes (since v1.91.4)
Breaking Changes:
- Commented out pre-1.87 IO system (equivalent to using
IMGUI_DISABLE_OBSOLETE_KEYIO
orIMGUI_DISABLE_OBSOLETE_FUNCTIONS
before).io.KeyMap[]
andio.KeysDown[]
are removed (obsoleted February 2022).io.NavInputs[]
andImGuiNavInput
enum are removed (obsoleted July 2022).- Pre-1.87 backends are not supported:
- backends need to call
io.AddKeyEvent()
,io.AddMouseEvent()
instead of writing toio.KeysDown[]
,io.MouseDown[]
fields. - backends need to call
io.AddKeyAnalogEvent()
for gamepad values instead of writing toio.NavInputs[]
fields.
- backends need to call
- For more references:
- If you have trouble updating a very old codebase using legacy backend-specific key codes:
consider updating to 1.91.4 first, then #define IMGUI_DISABLE_OBSOLETE_KEYIO, then update to latest. - Obsoleted
ImGuiKey_COUNT
(it was unusually error-prone/misleading since valid keys don't start at 0). Probably useImGuiKey_NamedKey_BEGIN
/ImGuiKey_NamedKey_END
instead?
- Fonts: removed const qualifiers from most font functions in prevision for upcoming fonts improvements.
Other changes:
- Selectable: selected
Selectable
useImGuiCol_Header
instead of an arbitrary lerp between_Header
and_HeaderHovered
which was introduced v1.91 (#8106, #1861) - Buttons: using
ImGuiItemFlags_ButtonRepeat
makes default button behavior use_PressedOnClick
instead of_PressedOnClickRelease
when unspecified.- This is intended to make the +/- buttons of
InputInt()
/InputFloat()
react on the initial mouse down event. - Note that it may reveal incorrect usage if you were using
InputInt()
/InputFloat()
without persistent storage by relying solely on e.g.IsItemDeactivatedAfterEdit()
: this was never supported and didn't work consistently (see #8149).
- This is intended to make the +/- buttons of
- InputText: fixed a bug (regression in 1.91.2) where modifying text buffer within a callback would sometimes prevents further appending to the buffer.
- Tabs, Style: made
ImGuiCol_TabDimmedSelectedOverline
alpha 0 (not visible) in default styles as the current look is not right (butImGuiCol_TabSelectedOverline
stays the same). - Log/Capture: added experimental
io.ConfigWindowsCopyContentsWithCtrlC
option to automatically copy window contents into clipboard using CTRL+C. This is experimental because (1) it currently breaks on nested Begin/End, (2) text output quality varies, and (3) text output comes in submission order rather than spatial order. - Log/Capture: better decorating of
BeginMenu()
andTabItem()
output. - Log/Capture: a non terminated log ends automatically in the window which called it.
- imgui_freetype: Fixed a crash in build font atlas when using merged fonts and the first font in a merged set has no loaded glyph. (#8081)
- Backends: DX12: Unmap() call specify written range. The range is informational and may be used by debug tools.
- Backends: SDL2: Replace
SDL_Vulkan_GetDrawableSize()
forward declaration with the actual include. (#8095, #7967, #3190) [@sev-] - Backends: SDL2, SDL3:
SDL_EVENT_MOUSE_WHEEL
event doesn't require dividing by 100.0f on Emscripten target. (#4019, #6096, #1463) - Examples: SDL3+Vulkan: Added example. (#8084, #8085)
- Examples: Android+OpenGL: Using
ALooper_pollOnce()
instead ofALooper_pollAll()
which has been deprecated. (#8013) [@feather179]
Changes from 1.91.4 to 1.91.5 in the Docking branch:
- Backends: GLFW: added Linux workaround for spurious mouse up events emitted while dragging and creating new viewports. Generally they would be interrupting a dragging operations. (#3158, #7733, #7922) [@rokups, @ocornut]
- Docking: fixed using
ImGuiDockNodeFlags_KeepAliveOnly
withDockSpaceOverViewport()
: the normally invisible space did erroneously claim mouse hover and could be potentially focused. (#8125) [@kcbanner] ‼️ *EDIT* The imgui_impl_win32 backend in this release has a crashing bug when using multi-viewports + running multiple processes simultaneously (because I didn't realize Win32's SetProp()/GetProp() data were not process bound). Fixed by dad1047 head but not in a tagged release yet. You may cherry-pick dad1047 from 1.91.5.‼️
How the output of io.ConfigWindowsCopyContentsWithCtrlC
looks:
Gallery
@elvissteinjr: "I've just released Desktop+ 3.0, a SteamVR desktop/windows mirroring application, which features a fully revamped UI, naturally using ImGui. While it was using ImGui before (last gallery post in 2020), the UI is now fancier with multiple windows floating in VR, some animated widgets and a custom VR keyboard (which is also just a ImGui window).
Nowadays also available on Steam (free). The Steam announcement for this release also has some short video clips and more screencaps, though not all focused on the interface itself." read more
@koki10190: "Editor for my game engine! The engine itself is similar to how unity works"
https://github.com/Vault-Software-Team/Vault-Engine
@vircon32: "Hi! Never got to show it here, but for some time now I have been using Dear Imgui. I made Vircon32, a game console I designed from scratch, and my emulator uses ImGui to show menus."
@343587787: "I used ImGui combined with OpenCASCADE to create a 3D model visualization software for debugging some of my graphics algorithms."
@Riztazz: "We built a single/multi-webcam motion capture app AImation Studio with the help of ImGui, thank you for this library! Testing some of the features, streaming to unreal and other features available on our website if anyone is interested"
aimation_imgui_ver_three.mp4
@tay10r: "I use ImGui for practically everything at work and at home. Here's an app I made for monitoring training loops for neural networks. In this particular case I'm training an anomaly detector based on data augmentation techniques from: https://www.sciencedirect.com/science/article/abs/pii/S0031320320305094 Thanks @ocornut for maintaining this awesome library!"
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 few months 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.