2.1.7 Dear ImGui 1.91.3
Hexa.NET.ImGui Changes
- Updated to Dear ImGui 1.91.3.
- Moved internal functions to ImGuiP.XXX for better clarity to avoid misuse/unintentional use of the internal API. (see #16)
- Added aggressive inlining for native methods to improve performance.
- Bug fix for FunctionTable generation which generated empty spaces. (nothing serious)
New Sponsor
🎉 A big thank you to @Doprez for their generous support! Their contributions have been invaluable in helping this project thrive.
Forwarded from https://github.com/ocornut/imgui/releases/tag/v1.91.3 (removed @ to avoid spam)
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_AlwaysClamp
to 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_ClampOnInput
instead 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.ConfigErrorRecovery
to enable error recovery support. - Added
io.ConfigErrorRecoveryEnableAssert
to assert on recoverable errors. - Added
io.ConfigErrorRecoveryEnableDebugLog
to output to debug log on recoverable errors. - Added
io.ConfigErrorRecoveryEnableTooltip
to 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_ResizeY
in 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.ConfigScrollbarScrollByPage
setting (default to true). Setio.ConfigScrollbarScrollByPage=false
to enforce always scrolling to clicked location. (#8002, #7328) - Drags: split
ImGuiSliderFlags_AlwaysClamp
into two distinct flags: (#7968, #3361, #76)ImGuiSliderFlags_AlwaysClamp
=ImGuiSliderFlags_ClampOnInput
+ImGuiSliderFlags_ClampZeroRange
.- Previously
_AlwaysClamp
only did the equivalent of_ClampOnInput
. - Added
ImGuiSliderFlags_ClampOnInput
which is now a subset of_AlwaysClamp
(note that it was the old name of_AlwaysClamp
, but we are reintroducing that name). - Added
ImGuiSliderFlags_ClampZeroRange
to 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_bool
removal.SDL_INIT_TIMER
removal. - Backends: WebGPU: Fixed DAWN api change using
WGPUStringView
inWGPUShaderSourceWGSL
. (#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)