omar/imgui: Release v1.91.3
1.91.3: opt-in error recovery features + misc drags/tooltips/scrollbar/backends work.
❤️ 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 starting to sponsor Dear ImGui!
Special thanks to @GamingMinds-DanielC, @PathogenDavid & more for for their help with patches and answers!
Changes (since v1.91.2)
Breaking Changes:
- Drags: treat v_min==v_max as a valid clamping range when != 0.0f. Zero is still a special value due to legacy reasons, unless using
ImGuiSliderFlags_ClampZeroRange. (#7968, #3361, #76) - Drags: extended behavior of
ImGuiSliderFlags_AlwaysClampto includeImGuiSliderFlags_ClampZeroRange. It considers v_min==v_max==0.0f as a valid clamping range (aka edits not allowed). Although unlikely, it you wish to only clamp on text input but want v_min==v_max==0.0f to mean unclamped drags, you can use_ClampOnInputinstead of_AlwaysClamp. (#7968, #3361, #76)
Other changes:
- Error Handling: Enabled/improved error recovery systems. (#1651, #5654)
- Read https://github.com/ocornut/imgui/wiki/Error-Handling for a bit more details.
- Error recovery is provided as a way to facilitate:
- Recovery after a programming error. Native code or scripting language (the later tends to facilitate iterating on code while running).
- Recovery after running an exception handler or any error processing which may skip code after an error has been detected.
- Error recovery is not perfect nor guaranteed! It is a feature to ease development. You not are not supposed to rely on it in the course of a normal application run.
- Functions that support error recovery are using
IM_ASSERT_USER_ERROR()instead ofIM_ASSERT(). - By design, we do not allow error recovery to be 100% silent. One of the options needs to be enabled!
- Possible usage: facilitate recovery from errors triggered from a scripting language or after specific exceptions handlers. Surface errors to programmers in less aggressive ways.
- Always ensure that on programmers seats you have at minimum Asserts or Tooltips enabled when making direct imgui API calls! Otherwise it would severely hinder your ability to catch and correct mistakes!
- Added
io.ConfigErrorRecoveryto enable error recovery support. - Added
io.ConfigErrorRecoveryEnableAssertto assert on recoverable errors. - Added
io.ConfigErrorRecoveryEnableDebugLogto output to debug log on recoverable errors. - Added
io.ConfigErrorRecoveryEnableTooltipto enable displaying an error tooltip on recoverable errors. The tooltip include a way to enable asserts if they were disabled. - All options are enabled by default.
- Windows: BeginChild(): made it possible to call
SetNextWindowSize()on a child window usingImGuiChildFlags_ResizeX,ImGuiChildFlags_ResizeYin order to override its current size. (#1710, #8020) - Scrollbar: Shift+Click scroll to clicked location (pre-1.90.8 default). (#8002, #7328)
- Scrollbar: added
io.ConfigScrollbarScrollByPagesetting (default to true). Setio.ConfigScrollbarScrollByPage=falseto enforce always scrolling to clicked location. (#8002, #7328) - Drags: split
ImGuiSliderFlags_AlwaysClampinto two distinct flags: (#7968, #3361, #76)ImGuiSliderFlags_AlwaysClamp=ImGuiSliderFlags_ClampOnInput+ImGuiSliderFlags_ClampZeroRange.- Previously
_AlwaysClamponly did the equivalent of_ClampOnInput. - Added
ImGuiSliderFlags_ClampOnInputwhich is now a subset of_AlwaysClamp(note that it was the old name of_AlwaysClamp, but we are reintroducing that name). - Added
ImGuiSliderFlags_ClampZeroRangeto enforce clamping even when v_min==v_max==0.0f in drag functions. Sliders are not affected.
- Tooltips, Drag and Drop: Fixed an issue where the fallback drag and drop payload tooltip appeared during drag and drop release.
- Tooltips, Drag and Drop: Stabilized name of drag and drop tooltip window so thattransitioning from an item tooltip to a drag tooltip doesn't leak window auto-sizing info from one to the other. (#8036)
- Tooltips: Tooltips triggered from touch inputs are positioned above the item. (#8036)
- Backends: SDL3: Update for API changes:
SDL_boolremoval.SDL_INIT_TIMERremoval. - Backends: WebGPU: Fixed DAWN api change using
WGPUStringViewinWGPUShaderSourceWGSL. (#8009, #8010) [@blitz-research]
Changes from 1.91.2 to 1.91.3 in the Docking branch:
- Backends: SDL2, SDL3: Fixed building for UWP platforms. (#8008)
- Backends: Win32: Use
ResisterClassW()/CreateWindowExW()for secondary viewports, to ensure correct IME input even if the backend was compiled in MBCS mode. (#7979, #5725)
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.