Hexa.NET.ImGui Changes
- Updated to Dear ImGui 1.92.2b
- Add MonoGame Example by @AristurtleDev in #80
- Update native libraries for ImGui to the latest version (v1.92.2b) by @github-actions[bot] in #85
- Update native libraries for ImGuiImpl to the latest version (v1.92.2b) by @github-actions[bot] in #86
Full Changelog: 2.2.8.5...2.2.9
New Contributors
- @AristurtleDev made their first contribution in #80
π Thanks to all Supporters
- @GlebLava
- @maidopi-usagi
- F. K.
- @Demorome
- Mr Villa
- @qian-o
Forwarded from v1.92.2 v1.92.2b (removed @ to avoid spam)
v1.92.2b: Hotfix for 1.92.2
Changes (since v1.92.2)
This is a hot fix for v1.92.2 which has issues with using IsItemHovered() on disabled items or items with no identifier while clicking on them.
- Fixed
IsItemHovered()failing on disabled items and items that have no identifier (e.g. Text() calls) when holding mouse button. (Regression in 1.92.2). (#8877, #8883) - Made
IsItemHovered()on holding mouse button down on disabled items not leak between items when the window cannot be moved. - Backends: Allegro5: Fixed texture format setup which didn't work on all setups/drivers. (#8770, #8465)
- Backends: Allegro5: Added
ImGui_ImplAllegro5_SetDisplay()function to change current ALLEGRO_DISPLAY, as Allegro applications often need to do that. - Backends: Allegro5: Fixed missing support for
ImGuiKey_PrintScreenunder Windows, as raw Allegro 5 does not receive it.
Changes (since v1.92.1)
This is a general maintenance release addressing some issues discovered in 1.92.0.
Read v1.92.0 Changelog for details and links on larger changes.
π Need help updating your custom rendering backend to support ImGuiBackendFlags_RendererHasTextures ?
You can read the newly improved docs/BACKENDS.md.
TL;DR;
- New tab bar resizing logic (combining shrinking and scrolling) and configuration options.
- Fixed Vulkan backend on some setup (following 1.92.0) changes.
- SDL_GPU backend changes
ImTextureIDto beSDL_GPUTexture*(!). - Keyboard/navigation fixes, table fixes, font fixes, new SDL3+Metal example & many more.
Breaking Changes
- Tabs: Renamed
ImGuiTabBarFlags_FittingPolicyResizeDowntoImGuiTabBarFlags_FittingPolicyShrink. Kept inline redirection enum (will obsolete). (#261, #351) - Backends: SDL_GPU3: changed
ImTextureIDtype fromSDL_GPUTextureSamplerBinding*toSDL_GPUTexture*, which is more natural and easier for user to manage. If you need to change the current sampler, you can access theImGui_ImplSDLGPU3_RenderStatestruct. (#8866, #8163, #7998, #7988)
Other Changes
- Fixed an old inconsistency between
IsItemHovered()and internal hovering check, whereIsItemHovered()would return true to mouse was first clicked on the background of a non-moveable window then moved over the item or button. Note that while it is consistent with other logic, there is a possibility that some third-party code may accidentally relied on this. One can always useImGuiHoveredFlags_AllowWhenBlockedByActiveItemto bypass the active id check. (#8877) [achabense, ocornut] - Fonts: fixed an issue when a font using
MergeModehas a reference size specified but the target font doesn't. Usually either all fonts should have a reference size (only required when specifying e.g.GlyphOffset), or none should have a reference size. - Fonts: fixed a crash when changing texture format when using a legacy backend. Most commonly would happen when calling
GetTexDataAsRGBA32()then immediately callingGetTexDataAsAlpha8(). (#8824) - Windows: fixed an issue where resizable child windows would emit border logic when hidden/non-visible (e.g. when in a docked window that is not selected), impacting code not checking for
BeginChild()return value. (#8815) - Textures: Fixed support for
#define ImTextureID_Invalidto non-zero value:ImFontAtlas()was incorrectly cleared with zeroes. (#8860, #8745) [cfillion] - Tables: fixed
TableGetRowIndex()which never correctly worked when using a clipper (it exists for consistency but is almost never used, as it is often more convenient to use index in caller-code, whereasTableGetRowIndex()includes header rows). - Tables: fixed imgui_internal.h's
TableGetHoveredRow()the same way. (#7350, #6588, #6250) - Tabs: added new fitting policy
ImGuiTabBarFlags_FittingPolicyMixedand made it the default. This policy shrink tab width down to a given amount, and then beyond that it enable scrolling buttons. (#3421, #8800) - Tabs: added
style.TabMinWidthShrink,ImGuiStyleVar_TabMinWidthShrinkto control the width to shrink to inImGuiTabBarFlags_FittingPolicyMixedmode. (#3421, #8800). - Tabs: when scrolling is enabled, track selected tabs when resizing down parent container. This does not prevent to horizontally scroll it out of view during normal operations. (#3421, #8800)
- Tabs: added
style.TabMinWidthBase,ImGuiStyleVar_TabMinWidthBaseto control the base minimum width of a tab (default to 1.0f). This is the size before any potential shrinking is applied. - Tabs: fixed tab bar underline not drawing below scroll buttons, when they are enabled (minor regression from 1.90). (#6820, #4859, #5022, #5239)
- Tabs: made scrolling buttons never keyboard/gamepad navigation candidates.
- Nav, Tables: fixed navigation within scrolling tables when item boundaries goes beyond columns limits. The fix done in 1.89.6 didn't work correctly on scrolling windows. (#8816, #2221)
- Nav: fixed a bug where
ImGuiKey_NavGamepadMenu(==ImGuiKey_GamepadFaceLeft) button couldn't toggle between main and menu layers while navigating a Modal window. (#8834) - Error Handling: minor improvements to error handling for
TableGetSortSpecs()andTableSetBgColor()calls. (#1651, #8499) - Misc: fixed building with
IMGUI_DISABLE_DEBUG_TOOLSonly. (#8796) - Misc: fixed building with
IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATIONsince 1.92.0. (#8794) - Misc: removed more redundant inline static linkage from imgui_internal.h to facilitate using in C++ modules. (#8813, #8682, #8358) [stripe2933]
- Misc: ImVector: skip
memcpy()inoperator=ifDataisn't initialized in order to play nice with-fsanitize=undefined. (#8874) [i25e] - CI: Added SDL3 builds to MacOS and Windows. (#8819, #8778) [scribam]
- CI: Updated Windows CI to use a more recent SDL2. (#8819, #8778) [scribam]
- Examples: SDL3+Metal: added SDL3+Metal example. (#8827, #8825) [shi-yan]
- Examples: SDL3+SDL_GPU: use
SDL_WaitAndAcquireGPUSwapchainTexture()instead ofSDL_AcquireGPUSwapchainTexture(). (#8830) [itsdanott] - Examples: SDL3+SDL_GPU: use SDL_GPU_PRESENTMODE_VSYNC present mode.
- Backends: OpenGL3: add and call embedded loader shutdown in
ImGui_ImplOpenGL3_Shutdown()to facilitate multiple init/shutdown cycles in same process. (#8792) [tim-rex] - Backends: OpenGL2, OpenGL3: set
GL_UNPACK_ALIGNMENTto 1 before updating textures. (#8802) [Daandelange] - Backends: SDL_GPU3: expose current
SDL_GPUSampler*in theImGui_ImplSDLGPU3_RenderStatestruct. (#8866, #8163, #7998, #7988) - Backends: Vulkan: Fixed texture update corruption introduced in 1.92.0, affecting some drivers/setups. (#8801, #8755, #8840) [Retro52, Miolith]
- Backends: Vulkan: Avoid calling
vkCmdBindDescriptorSets()when texture has not changed. (#8666) [micb25]
Changes from 1.92.1 to 1.92.2 specific to the Docking+Multi-Viewports branch:
- Windows, Viewport: fixed an issue where interrupting a viewport move with e.g. a
ClearActiveID()call would leave the dragged viewport with the normally temporaryImGuiViewportFlags_NoInputsflag, preventing further interactions with the viewport. (#5324) (thanks mdelaharpe) - Viewports: added
io.ConfigViewportPlatformFocusSetsImGuiFocusto opt-out of focusing imgui windows When a platform window is focused (e.g. using Alt+Tab, clicking Platform Title Bar). In principle this is better enabled but we provide an opt-out because some Linux window managers tend to eagerly focus windows (on e.g. mouse hover, or even on a simple window pos/size change). (#6299, #6462)