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()
toopenPopupContextItem()
. Kept inline redirection function (will obsolete). - โ Removed
beginPopupContextWindow(label: String, mouseButton: Int, alsoOverItems: Boolean)
in favor ofbeginPopupContextWindow(label: String, flags: PopupFlag)
withPopupFlag.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 (vsTabBarFlag.NoTooltip
for entire tab bar). - [@Xipiryon]
Popups: All functions capable of opening popups (openPopup*
,beginPopupContext*
) now take a newPopupFlags
sets of flags instead of a mouse button index. The API is automatically backward compatible asPopupFlags
is guaranteed to hold mouse button index in the lower bits. - Popups: Added
PopupFlag.NoOpenOverExistingPopup
foropenPopup*
/beginPopupContext*
functions to first test for the presence of another popup at the same level. - โ
Popups: Added
PopupFlag.NoOpenOverItems
forbeginPopupContextWindow()
- similar to testing for!isAnyItemHovered()
prior to doing anopenPopup()
. - Popups: Added
PopupFlag.AnyPopupId
andPopupFlag.AnyPopupLevel
flags forisPopupOpen()
, 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 theWindowFlag.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()
orbeginPopup()
/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
- โ Removed