Skip to content

2.2.9 Dear ImGui 1.92.2b

Latest

Choose a tag to compare

@JunaMeinhold JunaMeinhold released this 10 Oct 06:36
· 39 commits to main since this release

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

πŸŽ‰ Thanks to all Supporters


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_PrintScreen under 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 ImTextureID to be SDL_GPUTexture* (!).
  • Keyboard/navigation fixes, table fixes, font fixes, new SDL3+Metal example & many more.

Breaking Changes

  • Tabs: Renamed ImGuiTabBarFlags_FittingPolicyResizeDown to ImGuiTabBarFlags_FittingPolicyShrink. Kept inline redirection enum (will obsolete). (#261, #351)
  • Backends: SDL_GPU3: changed ImTextureID type from SDL_GPUTextureSamplerBinding* to SDL_GPUTexture*, which is more natural and easier for user to manage. If you need to change the current sampler, you can access the ImGui_ImplSDLGPU3_RenderState struct. (#8866, #8163, #7998, #7988)

Other Changes

  • Fixed an old inconsistency between IsItemHovered() and internal hovering check, where IsItemHovered() 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 use ImGuiHoveredFlags_AllowWhenBlockedByActiveItem to bypass the active id check. (#8877) [achabense, ocornut]
  • Fonts: fixed an issue when a font using MergeMode has 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 calling GetTexDataAsAlpha8(). (#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_Invalid to 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, whereas TableGetRowIndex() includes header rows).
  • Tables: fixed imgui_internal.h's TableGetHoveredRow() the same way. (#7350, #6588, #6250)
  • Tabs: added new fitting policy ImGuiTabBarFlags_FittingPolicyMixed and 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_TabMinWidthShrink to control the width to shrink to in ImGuiTabBarFlags_FittingPolicyMixed mode. (#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_TabMinWidthBase to 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() and TableSetBgColor() calls. (#1651, #8499)
  • Misc: fixed building with IMGUI_DISABLE_DEBUG_TOOLS only. (#8796)
  • Misc: fixed building with IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION since 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() in operator= if Data isn'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 of SDL_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_ALIGNMENT to 1 before updating textures. (#8802) [Daandelange]
  • Backends: SDL_GPU3: expose current SDL_GPUSampler* in the ImGui_ImplSDLGPU3_RenderState struct. (#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 temporary ImGuiViewportFlags_NoInputs flag, preventing further interactions with the viewport. (#5324) (thanks mdelaharpe)
  • Viewports: added io.ConfigViewportPlatformFocusSetsImGuiFocus to 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)