imgui v1.77 Release Notes

Release Date: 2020-10-20 // over 3 years ago
  • Reading the full 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!

    ๐Ÿ’ฅ Breaking Changes

    (Read carefully, not as scary as it sounds. If you maintain a language binding for dear imgui, you may want to evaluate how this might impact users, depending on the language provide dynamic dispatch functions, or simply let the low-level code handle it)

    • โœ‚ Removed FontAtlas::addCustomRectRegular() unnecessary first argument ID. Please note that this is a Beta api and will likely be reworked in order to support multi-DPI across multiple monitor s.
    • ๐Ÿ“‡ Renamed openPopupOnItemClick() to openPopupContextItem(). Kept inline redirection function (will obsolete).
    • โœ‚ Removed beginPopupContextWindow(label: String, mouseButton: Int, alsoOverItems: Boolean) in favor of beginPopupContextWindow(label: String, flags: PopupFlag) with PopupFlag.NoOverItems.
    • โœ‚ Removed obsoleted calcItemRectClosestPoint() entry point (has been asserting since December 2017).

    Other Changes

    • TreeNode: Fixed bug where beginDragDropSource() failed when the _OpenOnDoubleClick flag is enabled (bug introduced in 1.76, but pre-1.76 it would also fail unless the _OpenOnArrow flag was also set, and _OpenOnArrow is frequently set along with _OpenOnDoubleClick).
    • TreeNode: Fixed bug where dragging a payload over a treeNode() with either _OpenOnDoubleClick or _OpenOnArrow would open the node. (#143)
    • ๐Ÿ Windows: Fix unintended feedback loops when resizing windows close to main viewport edges. [@rokups]
    • ๐Ÿ’… Tabs: Added style.tabMinWidthForUnselectedCloseButton settings:
      • Set to 0f (default) to always make a close button appear on hover (same as Chrome, VS).
      • Set to Float.MAX_VALUE to only display a close button when selected (merely hovering is not enough).
      • Set to an intermediary value to toggle behavior based on width (same as Firefox).
    • Tabs: Added a TabItemFlag.NoTooltip flag to disable the tooltip for individual tab item (vs TabBarFlag.NoTooltip for entire tab bar). - [@Xipiryon]
      Popups: All functions capable of opening popups (openPopup*, beginPopupContext*) now take a new PopupFlags sets of flags instead of a mouse button index. The API is automatically backward compatible as PopupFlags is guaranteed to hold mouse button index in the lower bits.
    • Popups: Added PopupFlag.NoOpenOverExistingPopup for openPopup*/beginPopupContext* functions to first test for the presence of another popup at the same level.
    • โœ… Popups: Added PopupFlag.NoOpenOverItems for beginPopupContextWindow() - similar to testing for !isAnyItemHovered() prior to doing an openPopup().
    • Popups: Added PopupFlag.AnyPopupId and PopupFlag.AnyPopupLevel flags for isPopupOpen(), allowing to check if any popup is open at the current level, if a given popup is open at any popup level, if any popup is open at all.
    • Popups: Fix an edge case where programmatically closing a popup while clicking on its empty space would attempt to focus it and close other popups. (#2880)
    • Popups: Fix beginPopupContextVoid() when clicking over the area made unavailable by a modal. (#1636)
    • Popups: Clarified some of the comments and function prototypes.
    • ๐Ÿ Modals: beginPopupModal() doesn't set the WindowFlag.NoSavedSettings flag anymore, and will not always be auto-centered. Note that modals are more similar to regular windows than they are to popups, so api and behavior may evolve further toward embracing this. (#915, #3091). Enforce centering using e.g. setNextWindowPos(io.displaySize * 0.5f, Cond.Appearing, Vec2(0.5f)).
    • Metrics: Added a "Settings" section with some details about persistent ini settings.
    • Nav, Menus: Fix vertical wrap-around in menus or popups created with multiple appending calls to beginMenu()/endMenu() or beginPopup()/endPopup(). (#3223, #1207) [@rokups]
    • ๐Ÿ›  Drag and Drop: Fixed unintended fallback "..." tooltip display during drag operation when
    • drag source uses SourceNoPreviewTooltip flags. (#3160) [@rokups]
    • Columns: Lower overhead on column switches and switching to background channel.
    • Benefits Columns but was primarily made with Tables in mind!
    • Fonts: Fix getGlyphRangesKorean() end-range to end at 0xD7A3 (instead of 0xD79D). (#348, #3217) [@marukrap]
    • ๐Ÿ”€ DrawList: Fixed an issue where draw command merging or primitive unreserve while crossing the VtxOffset boundary would lead to draw commands with wrong VtxOffset. (#3129, #3163, #3232, #2591) [@thedmd, @ShironekoBen, @sergeyn, @ocornut]
    • ๐Ÿ›  DrawList, DrawListSplitter, Columns: Fixed an issue where changing channels with different TextureId, VtxOffset would incorrectly apply new settings to draw channels. (#3129, #3163) [@ocornut, @thedmd, @ShironekoBen]
    • ๐Ÿ›  DrawList, DrawListSplitter, Columns: Fixed an issue where starting a split when current VtxOffset was not zero would lead to draw commands with wrong VtxOffset. (#2591)
    • ๐Ÿ›  DrawList, DrawListSplitter, Columns: Fixed an issue where starting a split right after a callback draw command would incorrectly override the callback draw command.
    • ๐Ÿ›  DrawList: Fixed minor bug introduced in 1.75 where addCircle() with 12 segments would generate an extra unrequired vertex. [@ShironekoBen]
    • ๐Ÿ“„ Docs: Improved and moved font documentation to docs/FONTS.md so it can be readable on the web. Updated various links/wiki accordingly. Added FAQ entry about DPI. (#2861) [@ButternCream, @ocornut]
    • Backends: OpenGL: Fixed handling of GL 4.5+ glClipControl(GL_UPPER_LEFT) by inverting the projection matrix top and bottom values. (#3143, #3146) [@u3shit]
    • ๐Ÿ Examples: GLFW+Vulkan, SDL+Vulkan: Fix for handling of minimized windows. (#3259)

    ๐Ÿš€ Original Changelogs