Imgui

Latest version: v2.0.0

Safety actively analyzes 689579 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 7

1.78

-----------------------------------------------------------------------

Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.78

Breaking Changes:

- Obsoleted use of the trailing 'float power=1.0f' parameter for those functions: [Shironekoben, ocornut]
- DragFloat(), DragFloat2(), DragFloat3(), DragFloat4(), DragFloatRange2(), DragScalar(), DragScalarN()
- SliderFloat(), SliderFloat2(), SliderFloat3(), SliderFloat4(), SliderScalar(), SliderScalarN()
- VSliderFloat(), VSliderScalar()
Replaced the final 'float power=1.0f' argument with ImGuiSliderFlags defaulting to 0 (as with all our flags).
Worked out a backward-compatibility scheme so hopefully most C++ codebase should not be affected.
In short, when calling those functions:
- If you omitted the 'power' parameter (likely!), you are not affected.
- If you set the 'power' parameter to 1.0f (same as previous default value):
- Your compiler may warn on float>int conversion.
- Everything else will work (but will assert if IMGUI_DISABLE_OBSOLETE_FUNCTIONS is defined).
- You can replace the 1.0f value with 0 to fix the warning, and be technically correct.
- If you set the 'power' parameter to >1.0f (to enable non-linear editing):
- Your compiler may warn on float>int conversion.
- Code will assert at runtime for IM_ASSERT(power == 1.0f) with the following assert description:
"Call Drag function with ImGuiSliderFlags_Logarithmic instead of using the old 'float power' function!".
- In case asserts are disabled, the code will not crash and enable the _Logarithmic flag.
- You can replace the >1.0f value with ImGuiSliderFlags_Logarithmic to fix the warning/assert
and get a _similar_ effect as previous uses of power >1.0f.
See https://github.com/ocornut/imgui/issues/3361 for all details.
For shared code, you can version check at compile-time with `if IMGUI_VERSION_NUM >= 17704`.
Kept inline redirection functions (will obsolete) apart for: DragFloatRange2(), VSliderFloat(), VSliderScalar().
For those three the 'float power=1.0f' version was removed directly as they were most unlikely ever used.
- DragInt, DragFloat, DragScalar: Obsoleted use of v_min > v_max to lock edits (introduced in 1.73, this was not
demoed nor documented much, will be replaced a more generic ReadOnly feature).

Other Changes:

- Nav: Fixed clicking on void (behind any windows) from not clearing the focused window.
This would be problematic e.g. in situation where the application relies on io.WantCaptureKeyboard
flag being cleared accordingly. (bug introduced in 1.77 WIP on 2020/06/16) (3344, 2880)
- Window: Fixed clicking over an item which hovering has been disabled (e.g inhibited by a popup)
from marking the window as moved.
- Drag, Slider: Added ImGuiSliderFlags parameters.
- For float functions they replace the old trailing 'float power=1.0' parameter.
(See 3361 and the "Breaking Changes" block above for all details).
- Added ImGuiSliderFlags_Logarithmic flag to enable logarithmic editing
(generally more precision around zero), as a replacement to the old 'float power' parameter
which was obsoleted. (1823, 1316, 642) [Shironekoben, AndrewBelt]
- Added ImGuiSliderFlags_ClampOnInput flag to force clamping value when using
CTRL+Click to type in a value manually. (1829, 3209, 946, 413).
[note: RENAMED to ImGuiSliderFlags_AlwaysClamp in 1.79].
- Added ImGuiSliderFlags_NoRoundToFormat flag to disable rounding underlying
value to match precision of the display format string. (642)
- Added ImGuiSliderFlags_NoInput flag to disable turning widget into a text input
with CTRL+Click or Nav Enter.
- Nav, Slider: Fix using keyboard/gamepad controls with certain logarithmic sliders where
pushing a direction near zero values would be cancelled out. [Shironekoben]
- DragFloatRange2, DragIntRange2: Fixed an issue allowing to drag out of bounds when both
min and max value are on the same value. (1441)
- InputText, ImDrawList: Fixed assert triggering when drawing single line of text with more
than ~16 KB characters. (Note that current code is going to show corrupted display if after
clipping, more than 16 KB characters are visible in the same low-level ImDrawList::RenderText()
call. ImGui-level functions such as TextUnformatted() are not affected. This is quite rare
but it will be addressed later). (3349)
- Selectable: Fixed highlight/hit extent when used with horizontal scrolling (in or outside columns).
Also fixed related text clipping when used in a column after the first one. (3187, 3386)
- Scrolling: Avoid SetScroll, SetScrollFromPos functions from snapping on the edge of scroll
limits when close-enough by (WindowPadding - ItemPadding), which was a tweak with too many
side-effects. The behavior is still present in SetScrollHere functions as they are more explicitly
aiming at making widgets visible. May later be moved to a flag.
- Tabs: Allow calling SetTabItemClosed() after a tab has been submitted (will process next frame).
- InvisibleButton: Made public a small selection of ImGuiButtonFlags (previously in imgui_internal.h)
and allowed to pass them to InvisibleButton(): ImGuiButtonFlags_MouseButtonLeft/Right/Middle.
This is a small but rather important change because lots of multi-button behaviors could previously
only be achieved using lower-level/internal API. Now also available via high-level InvisibleButton()
with is a de-facto versatile building block to creating custom widgets with the public API.
- Fonts: Fixed ImFontConfig::GlyphExtraSpacing and ImFontConfig::PixelSnapH settings being pulled
from the merged/target font settings when merging fonts, instead of being pulled from the source
font settings.
- ImDrawList: Thick anti-aliased strokes (> 1.0f) with integer thickness now use a texture-based
path, reducing the amount of vertices/indices and CPU/GPU usage. (3245) [Shironekoben]
- This change will facilitate the wider use of thick borders in future style changes.
- Requires an extra bit of texture space (~64x64 by default), relies on GPU bilinear filtering.
- Set `io.AntiAliasedLinesUseTex = false` to disable rendering using this method.
- Clear `ImFontAtlasFlags_NoBakedLines` in ImFontAtlas::Flags to disable baking data in texture.
- ImDrawList: changed AddCircle(), AddCircleFilled() default num_segments from 12 to 0, effectively
enabling auto-tessellation by default. Tweak tessellation in Style Editor->Rendering section, or
by modifying the 'style.CircleSegmentMaxError' value. [ShironekoBen]
- ImDrawList: Fixed minor bug introduced in 1.75 where AddCircle() with 12 segments would generate
an extra vertex. (This bug was mistakenly marked as fixed in earlier 1.77 release). [ShironekoBen]
- Demo: Improved "Custom Rendering"->"Canvas" demo with a grid, scrolling and context menu.
Also showcase using InvisibleButton() with multiple mouse buttons flags.
- Demo: Improved "Layout & Scrolling" -> "Clipping" section.
- Demo: Improved "Layout & Scrolling" -> "Child Windows" section.
- Style Editor: Added preview of circle auto-tessellation when editing the corresponding value.
- Backends: OpenGL3: Added support for glad2 loader. (3330) [moritz-h]
- Backends: Allegro 5: Fixed horizontal scrolling direction with mouse wheel / touch pads (it seems
like Allegro 5 reports it differently from GLFW and SDL). (3394, 2424, 1463) [nobody-special666]
- Examples: Vulkan: Fixed GLFW+Vulkan and SDL+Vulkan clear color not being set. (3390) [RoryO]
- CI: Emscripten has stopped their support for their fastcomp backend, switching to latest sdk [Xipiryon]


-----------------------------------------------------------------------

1.77

-----------------------------------------------------------------------

Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.77

Breaking Changes:

- Removed unnecessary ID (first arg) of ImFontAtlas::AddCustomRectRegular() function. Please
note that this is a Beta api and will likely be reworked in order to support multi-DPI across
multiple monitors.
- Renamed OpenPopupOnItemClick() to OpenPopupContextItem(). Kept inline redirection function (will obsolete).
[NOTE: THIS WAS REVERTED IN 1.79]
- Removed BeginPopupContextWindow(const char*, int mouse_button, bool also_over_items) in favor
of BeginPopupContextWindow(const char*, ImGuiPopupFlags flags) with ImGuiPopupFlags_NoOverItems.
Kept inline redirection function (will obsolete).
- 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 0.0f (default) to always make a close button appear on hover (same as Chrome, VS).
- Set to FLT_MAX 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 ImGuiTabItemFlags_NoTooltip flag to disable the tooltip for individual tab item
(vs ImGuiTabBarFlags_NoTooltip for entire tab bar). [Xipiryon]
- Popups: All functions capable of opening popups (OpenPopup*, BeginPopupContext*) now take a new
ImGuiPopupFlags sets of flags instead of a mouse button index. The API is automatically backward
compatible as ImGuiPopupFlags is guaranteed to hold mouse button index in the lower bits.
- Popups: Added ImGuiPopupFlags_NoOpenOverExistingPopup for OpenPopup*/BeginPopupContext* functions
to first test for the presence of another popup at the same level.
- Popups: Added ImGuiPopupFlags_NoOpenOverItems for BeginPopupContextWindow() - similar to testing
for !IsAnyItemHovered() prior to doing an OpenPopup().
- Popups: Added ImGuiPopupFlags_AnyPopupId and ImGuiPopupFlags_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 ImGuiWindowFlags_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, ImGuiCond_Appearing, ImVec2(0.5f,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(0/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]
- ImDrawList: 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]
- ImDrawList, ImDrawListSplitter, Columns: Fixed an issue where changing channels with different
TextureId, VtxOffset would incorrectly apply new settings to draw channels. (3129, 3163)
[ocornut, thedmd, Shironekoben]
- ImDrawList, ImDrawListSplitter, Columns: Fixed an issue where starting a split when current
VtxOffset was not zero would lead to draw commands with wrong VtxOffset. (2591)
- ImDrawList, ImDrawListSplitter, Columns: Fixed an issue where starting a split right after
a callback draw command would incorrectly override the callback draw command.
- Misc, Freetype: Fix for rare case where FT_Get_Char_Index() succeeds but FT_Load_Glyph() fails.
- 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]
- CI: Added CI test to verify we're never accidentally dragging libstdc++ (on some compiler setups,
static constructors for non-pod data seems to drag in libstdc++ due to thread-safety concerns).
Fixed a static constructor which led to this dependency on some compiler setups. [rokups]
- Backends: Win32: Support for define NOGDI, won't try to call GetDeviceCaps(). (3137, 2327)
- Backends: Win32: Fix _WIN32_WINNT < 0x0600 (MinGW defaults to 0x502 == Windows 2003). (3183)
- Backends: SDL: Report a zero display-size when window is minimized, consistent with other backends,
making more render/clipping code use an early out path.
- Backends: OpenGL: Fixed handling of GL 4.5+ glClipControl(GL_UPPER_LEFT) by inverting the
projection matrix top and bottom values. (3143, 3146) [u3shit]
- Backends: OpenGL: On OSX, if unspecified by app, made default GLSL version 150. (3199) [albertvaka]
- Backends: OpenGL: Fixed loader auto-detection to not interfere with ES2/ES3 defines. (3246) [funchal]
- Backends: Vulkan: Fixed error in if initial frame has no vertices. (3177)
- Backends: Vulkan: Fixed edge case where render callbacks wouldn't be called if the ImDrawData
structure didn't have any vertices. (2697) [kudaba]
- Backends: OSX: Added workaround to avoid fast mouse clicks. (3261, 1992, 2525) [nburrus]
- Examples: GLFW+Vulkan, SDL+Vulkan: Fix for handling of minimized windows. (3259)
- Examples: Apple: Fixed example_apple_metal and example_apple_opengl2 using imgui_impl_osx.mm
not forwarding right and center mouse clicks. (3260) [nburrus]


-----------------------------------------------------------------------

1.76

-----------------------------------------------------------------------

Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.76

Other Changes:

- Drag and Drop, Nav: Disabling navigation arrow keys when drag and drop is active. In the docking
branch pressing arrow keys while dragging a window from a tab could trigger an assert. (3025)
- BeginMenu: Using same ID multiple times appends content to a menu. (1207) [rokups]
- BeginMenu: Fixed a bug where SetNextWindowXXX data before a BeginMenu() would not be cleared
when the menu is not open. (3030)
- InputText: Fixed password fields displaying ASCII spaces as blanks instead of using the '*'
glyph. (2149, 515)
- Selectable: Fixed honoring style.SelectableTextAlign with unspecified size. (2347, 2601)
- Selectable: Allow using ImGuiSelectableFlags_SpanAllColumns in other columns than first. (125)
- TreeNode: Made clicking on arrow with _OpenOnArrow toggle the open state on the Mouse Down
event rather than the Mouse Down+Up sequence (this is rather standard behavior).
- ColorButton: Added ImGuiColorEditFlags_NoBorder flag to remove the border normally enforced
by default for standalone ColorButton.
- Nav: Fixed interactions with ImGuiListClipper, so e.g. Home/End result would not clip the
landing item on the landing frame. (787)
- Nav: Fixed currently focused item from ever being clipped by ItemAdd(). (787)
- Scrolling: Fixed scrolling centering API leading to non-integer scrolling values and initial
cursor position. This would often get fixed after the fix item submission, but using the
ImGuiListClipper as the first thing after Begin() could largely break size calculations. (3073)
- Added optional support for Unicode plane 1-16 (2538, 2541, 2815) [cloudwu, samhocevar]
- Compile-time enable with 'define IMGUI_USE_WCHAR32' in imconfig.h.
- More onsistent handling of unsupported code points (0xFFFD).
- Surrogate pairs are supported when submitting UTF-16 data via io.AddInputCharacterUTF16(),
allowing for more complete CJK input.
- sizeof(ImWchar) goes from 2 to 4. IM_UNICODE_CODEPOINT_MAX goes from 0xFFFF to 0x10FFFF.
- Various structures such as ImFont, ImFontGlyphRangesBuilder will use more memory, this
is currently not particularly efficient.
- Columns: undid the change in 1.75 were Columns()/BeginColumns() were preemptively limited
to 64 columns with an assert. (3037, 125)
- Window: Fixed a bug with child window inheriting ItemFlags from their parent when the child
window also manipulate the ItemFlags stack. (3024) [Stanbroek]
- Font: Fixed non-ASCII space occasionally creating unnecessary empty looking polygons.
- Misc: Added an explicit compile-time test for non-scoped IM_ASSERT() macros to redirect users
to a solution rather than encourage people to add braces in the codebase.
- Misc: Added additional checks in EndFrame() to verify that io.KeyXXX values have not been
tampered with between NewFrame() and EndFrame().
- Misc: Made default clipboard handlers for Win32 and OSX use a buffer inside the main context
instead of a static buffer, so it can be freed properly on Shutdown. (3110)
- Misc, Freetype: Fixed support for IMGUI_STB_RECT_PACK_FILENAME compile time directive
in imgui_freetype.cpp (matching support in the regular code path). (3062) [DonKult]
- Metrics: Made Tools section more prominent. Showing wire-frame mesh directly hovering the ImDrawCmd
instead of requiring to open it. Added options to disable bounding box and mesh display.
Added notes on inactive/gc-ed windows.
- Demo: Added black and white and color gradients to Demo>Examples>Custom Rendering.
- CI: Added more tests on the continuous-integration server: extra warnings for Clang/GCC, building
SDL+Metal example, building imgui_freetype.cpp, more compile-time imconfig.h settings: disabling
obsolete functions, enabling 32-bit ImDrawIdx, enabling 32-bit ImWchar, disabling demo. [rokups]
- Backends: OpenGL3: Fixed version check mistakenly testing for GL 4.0+ instead of 3.2+ to enable
ImGuiBackendFlags_RendererHasVtxOffset, leaving 3.2 contexts without it. (3119, 2866) [wolfpld]
- Backends: OpenGL3: Added include support for older glbinding 2.x loader. (3061) [DonKult]
- Backends: Win32: Added ImGui_ImplWin32_EnableDpiAwareness(), ImGui_ImplWin32_GetDpiScaleForHwnd(),
ImGui_ImplWin32_GetDpiScaleForMonitor() helpers functions (backported from the docking branch).
Those functions makes it easier for example apps to support hi-dpi features without setting up
a manifest.
- Backends: Win32: Calling AddInputCharacterUTF16() from WM_CHAR message handler in order to support
high-plane surrogate pairs. (2815) [cloudwu, samhocevar]
- Backends: SDL: Added ImGui_ImplSDL2_InitForMetal() for API consistency (even though the function
currently does nothing).
- Backends: SDL: Fixed mapping for ImGuiKey_KeyPadEnter. (3031) [Davido71]
- Examples: Win32+DX12: Fixed resizing main window, enabled debug layer. (3087, 3115) [sergeyn]
- Examples: SDL+DX11: Fixed resizing main window. (3057) [joeslay]
- Examples: Added SDL+Metal example application. (3017) [coding-jackalope]


-----------------------------------------------------------------------

1.75

-----------------------------------------------------------------------

Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.75

Breaking Changes:

- Removed redirecting functions/enums names that were marked obsolete in 1.53 (December 2017):
- ShowTestWindow() -> use ShowDemoWindow()
- IsRootWindowFocused() -> use IsWindowFocused(ImGuiFocusedFlags_RootWindow)
- IsRootWindowOrAnyChildFocused() -> use IsWindowFocused(ImGuiFocusedFlags_RootAndChildWindows)
- SetNextWindowContentWidth(w) -> use SetNextWindowContentSize(ImVec2(w, 0.0f)
- GetItemsLineHeightWithSpacing() -> use GetFrameHeightWithSpacing()
- ImGuiCol_ChildWindowBg -> use ImGuiCol_ChildBg
- ImGuiStyleVar_ChildWindowRounding -> use ImGuiStyleVar_ChildRounding
- ImGuiTreeNodeFlags_AllowOverlapMode -> use ImGuiTreeNodeFlags_AllowItemOverlap
- IMGUI_DISABLE_TEST_WINDOWS -> use IMGUI_DISABLE_DEMO_WINDOWS
If you were still using the old names, while you are cleaning up, considering enabling
IMGUI_DISABLE_OBSOLETE_FUNCTIONS in imconfig.h even temporarily to have a pass at finding
and removing up old API calls, if any remaining.
- Removed implicit default parameter to IsMouseDragging(int button = 0) to be consistent
with other mouse functions (none of the other functions have it).
- Obsoleted calling ImDrawList::PrimReserve() with a negative count (which was vaguely
documented and rarely if ever used). Instead we added an explicit PrimUnreserve() API
which can be implemented faster. Also clarified pre-existing constraints which weren't
documented (can only unreserve from the last reserve call). If you suspect you ever
used that feature before (very unlikely, but grep for call to PrimReserve in your code),
you can define IMGUI_DEBUG_PARANOID in imconfig.h to catch existing calls. [ShironekoBen]
- ImDrawList::AddCircle()/AddCircleFilled() functions don't accept negative radius.
- Limiting Columns()/BeginColumns() api to 64 columns with an assert. While the current code
technically supports it, future code may not so we're putting the restriction ahead.
[Undid that change in 1.76]
- imgui_internal.h: changed ImRect() default constructor initializes all fields to 0.0f instead
of (FLT_MAX,FLT_MAX,-FLT_MAX,-FLT_MAX). If you used ImRect::Add() to create bounding boxes by
adding points into it without explicit initialization, you may need to fix your initial value.

Other Changes:

- Inputs: Added ImGuiMouseButton enum for convenience (e.g. ImGuiMouseButton_Right=1).
We forever guarantee that the existing value will not changes so existing code is free to use 0/1/2.
- Nav: Fixed a bug where the initial CTRL-Tab press while in a child window sometimes selected
the current root window instead of always selecting the previous root window. (787)
- ColorEdit: Fix label alignment when using ImGuiColorEditFlags_NoInputs. (2955) [rokups]
- ColorEdit: In HSV display of a RGB stored value, attempt to locally preserve Saturation
when Value==0.0 (similar to changes done in 1.73 for Hue). Removed Hue editing lock since
those improvements in 1.73 makes them unnecessary. (2722, 2770). [rokups]
- ColorEdit: "Copy As" context-menu tool shows hex values with a '' prefix instead of '0x'.
- ColorEdit: "Copy As" content-menu tool shows hex values both with/without alpha when available.
- InputText: Fix corruption or crash when executing undo after clearing input with ESC, as a
byproduct we are allowing to later undo the revert with a CTRL+Z. (3008).
- InputText: Fix using a combination of _CallbackResize (e.g. for std::string binding), along with the
_EnterReturnsTrue flag along with the rarely used property of using an InputText without persisting
user-side storage. Previously if you had e.g. a local unsaved std::string and reading result back
from the widget, the user string object wouldn't be resized when Enter key was pressed. (3009)
- MenuBar: Fix minor clipping issue where occasionally a menu text can overlap the right-most border.
- Window: Fix SetNextWindowBgAlpha(1.0f) failing to override alpha component. (3007) [Albog]
- Window: When testing for the presence of the ImGuiWindowFlags_NoBringToFrontOnFocus flag we
test both the focused/clicked window (which could be a child window) and the root window.
- ImDrawList: AddCircle(), AddCircleFilled() API can now auto-tessellate when provided a segment
count of zero. Alter tessellation quality with 'style.CircleSegmentMaxError'. [ShironekoBen]
- ImDrawList: Add AddNgon(), AddNgonFilled() API with a guarantee on the explicit segment count.
In the current branch they are essentially the same as AddCircle(), AddCircleFilled() but as
we will rework the circle rendering functions to use textures and automatic segment count
selection, those new api can fill a gap. [ShironekoBen]
- Columns: ImDrawList::Channels* functions now work inside columns. Added extra comments to
suggest using user-owned ImDrawListSplitter instead of ImDrawList functions. [rokups]
- Misc: Added ImGuiMouseCursor_NotAllowed enum so it can be used by more shared widgets. [rokups]
- Misc: Added IMGUI_DISABLE compile-time definition to make all headers and sources empty.
- Misc: Disable format checks when using stb_printf, to allow using extra formats.
Made IMGUI_USE_STB_SPRINTF a properly documented imconfig.h flag. (2954) [loicmolinari]
- Misc: Added misc/single_file/imgui_single_file.h, We use this to validate compiling all *.cpp
files in a same compilation unit. Actual users of that technique (also called "Unity builds")
can generally provide this themselves, so we don't really recommend you use this. [rokups]
- CI: Added PVS-Studio static analysis on the continuous-integration server. [rokups]
- Backends: GLFW, SDL, Win32, OSX, Allegro: Added support for ImGuiMouseCursor_NotAllowed. [rokups]
- Backends: GLFW: Added support for the missing mouse cursors newly added in GLFW 3.4+. [rokups]
- Backends: SDL: Wayland: use SDL_GetMouseState (because there is no global mouse state available
on Wayland). (2800, 2802) [NeroBurner]
- Backends: GLFW, SDL: report Windows key (io.KeySuper) as always released. Neither GLFW nor SDL can
correctly report the key release in every cases (e.g. when using Win+V) causing problems with some
widgets. The next release of GLFW (3.4+) will have a fix for it. However since it is both difficult
and discouraged to make use of this key for Windows application anyway, we just hide it. (2976)
- Backends: Win32: Added support for define IMGUI_IMPL_WIN32_DISABLE_GAMEPAD to disable all
XInput using code, and IMGUI_IMPL_WIN32_DISABLE_LINKING_XINPUT to disable linking with XInput,
the later may be problematic if compiling with recent Windows SDK and you want your app to run
on Windows 7. You can instead try linking with Xinput9_1_0.lib instead. (2716)
- Backends: Glut: Improved FreeGLUT support for MinGW. (3004) [podsvirov]
- Backends: Emscripten: Avoid forcefully setting IMGUI_DISABLE_FILE_FUNCTIONS. (3005) [podsvirov]
- Examples: OpenGL: Explicitly adding -DIMGUI_IMPL_OPENGL_LOADER_GL3W to Makefile to match linking
settings (otherwise if another loader such as Glew is accessible, the OpenGL3 backend might
automatically use it). (2919, 2798)
- Examples: OpenGL: Added support for glbinding OpenGL loader. (2870) [rokups]
- Examples: Emscripten: Demonstrating embedding fonts in Makefile and code. (2953) [Oipo]
- Examples: Metal: Wrapped main loop in autoreleasepool block to ensure allocations get freed
even if underlying system event loop gets paused due to app nap. (2910, 2917) [bear24rw]


-----------------------------------------------------------------------

1.74

-----------------------------------------------------------------------

Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.74

Breaking Changes:

- Removed redirecting functions/enums names that were marked obsolete in 1.52 (October 2017):
- Begin() [old 5 args version] -> use Begin() [3 args], use SetNextWindowSize() SetNextWindowBgAlpha() if needed
- IsRootWindowOrAnyChildHovered() -> use IsWindowHovered(ImGuiHoveredFlags_RootAndChildWindows)
- AlignFirstTextHeightToWidgets() -> use AlignTextToFramePadding()
- SetNextWindowPosCenter() -> use SetNextWindowPos() with a pivot of (0.5f, 0.5f)
- ImFont::Glyph -> use ImFontGlyph
If you were still using the old names, read "API Breaking Changes" section of imgui.cpp to find out
the new names or equivalent features, or see how they were implemented until 1.73.
- Inputs: Fixed a miscalculation in the keyboard/mouse "typematic" repeat delay/rate calculation, used
by keys and e.g. repeating mouse buttons as well as the GetKeyPressedAmount() function.
If you were using a non-default value for io.KeyRepeatRate (previous default was 0.250), you can
add +io.KeyRepeatDelay to it to compensate for the fix.
The function was triggering on: 0.0 and (delay+rate*N) where (N>=1). Fixed formula responds to (N>=0).
Effectively it made io.KeyRepeatRate behave like it was set to (io.KeyRepeatRate + io.KeyRepeatDelay).
Fixed the code and altered default io.KeyRepeatRate,Delay from 0.250,0.050 to 0.300,0.050 to compensate.
If you never altered io.KeyRepeatRate nor used GetKeyPressedAmount() this won't affect you.
- Misc: Renamed IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS to IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS. (1038)
- Misc: Renamed IMGUI_DISABLE_MATH_FUNCTIONS to IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS.
- Fonts: ImFontAtlas::AddCustomRectRegular() now requires an ID larger than 0x110000 (instead of 0x10000) to
conform with supporting Unicode planes 1-16 in a future update. ID below 0x110000 will now assert.
- Backends: DX12: Added extra ID3D12DescriptorHeap parameter to ImGui_ImplDX12_Init() function.
The value is unused in master branch but will be used by the multi-viewport feature. (2851) [obfuscate]

Other Changes:

- InputText, Nav: Fixed Home/End key broken when activating Keyboard Navigation. (787)
- InputText: Filter out ASCII 127 (DEL) emitted by low-level OSX layer, as we are using the Key value. (2578)
- Layout: Fixed a couple of subtle bounding box vertical positioning issues relating to the handling of text
baseline alignment. The issue would generally manifest when laying out multiple items on a same line,
with varying heights and text baseline offsets.
Some specific examples, e.g. a button with regular frame padding followed by another item with a
multi-line label and no frame padding, such as: multi-line text, small button, tree node item, etc.
The second item was correctly offset to match text baseline, and would interact/display correctly,
but it wouldn't push the contents area boundary low enough.
- Scrollbar: Fixed an issue where scrollbars wouldn't display on the frame following a frame where
all child window contents would be culled.
- ColorPicker: Fixed SV triangle gradient to block (broken in 1.73). (2864, 2711). [lewa-j]
- TreeNode: Fixed combination of ImGuiTreeNodeFlags_SpanFullWidth and ImGuiTreeNodeFlags_OpenOnArrow
incorrectly locating the arrow hit position to the left of the frame. (2451, 2438, 1897)
- TreeNode: The collapsing arrow accepts click even if modifier keys are being held, facilitating
interactions with custom multi-selections patterns. (2886, 1896, 1861)
- TreeNode: Added IsItemToggledOpen() to explicitly query if item was just open/closed, facilitating
interactions with custom multi-selections patterns. (1896, 1861)
- DragScalar, SliderScalar, InputScalar: Added p_ prefix to parameter that are pointers to the data
to clarify how they are used, and more comments redirecting to the demo code. (2844)
- Error handling: Assert if user mistakenly calls End() instead of EndChild() on a child window. (1651)
- Misc: Optimized storage of window settings data (reducing allocation count).
- Misc: Windows: Do not use _wfopen() if IMGUI_DISABLE_WIN32_FUNCTIONS is defined. (2815)
- Misc: Windows: Disabled win32 function by default when building with UWP. (2892, 2895)
- Misc: Using static_assert() when using C++11, instead of our own construct (avoid zealous Clang warnings).
- Misc: Added IMGUI_DISABLE_FILE_FUNCTIONS/IMGUI_DISABLE_DEFAULT_FILE_FUNCTION to nullify or disable
default implementation of ImFileXXX functions linking with fopen/fclose/fread/fwrite. (2734)
- Docs: Improved and moved FAQ to docs/FAQ.md so it can be readable on the web. [ButternCream, ocornut]
- Docs: Moved misc/fonts/README.txt to docs/FONTS.txt.
- Docs: Added permanent redirect from https://www.dearimgui.com/faq to FAQ page.
- Demo: Added simple item reordering demo in Widgets -> Drag and Drop section. (2823, 143) [rokups]
- Metrics: Show wire-frame mesh and approximate surface area when hovering ImDrawCmd. [ShironekoBen]
- Metrics: Expose basic details of each window key/value state storage.
- Examples: DX12: Using IDXGIDebug1::ReportLiveObjects() when DX12_ENABLE_DEBUG_LAYER is enabled.
- Examples: Emscripten: Removed BINARYEN_TRAP_MODE=clamp from Makefile which was removed in Emscripten 1.39.0
but required prior to 1.39.0, making life easier for absolutely no-one. (2877, 2878) [podsvirov]
- Backends: OpenGL2: Explicitly backup, setup and restore GL_TEXTURE_ENV to increase compatibility with
legacy OpenGL applications. (3000)
- Backends: OpenGL3: Fix building with pre-3.2 GL loaders which do not expose glDrawElementsBaseVertex(),
using runtime GL version to decide if we set ImGuiBackendFlags_RendererHasVtxOffset. (2866, 2852) [dpilawa]
- Backends: OSX: Fix using Backspace key. (2578, 2817, 2818) [DiligentGraphics]
- Backends: GLFW: Previously installed user callbacks are now restored on shutdown. (2836) [malte-v]
- CI: Set up a bunch of continuous-integration tests using GitHub Actions. We now compile many of the example
applications on Windows, Linux, MacOS, iOS, Emscripten. Removed Travis integration. (2865) [rokups]


-----------------------------------------------------------------------

1.73

-----------------------------------------------------------------------

Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.73

Other Changes:

- Nav, Scrolling: Added support for Home/End key. (787)
- ColorEdit: Disable Hue edit when Saturation==0 instead of letting Hue values jump around.
- ColorEdit, ColorPicker: In HSV display of a RGB stored value, attempt to locally preserve Hue
when Saturation==0, which reduces accidentally lossy interactions. (2722, 2770) [rokups]
- ColorPicker: Made rendering aware of global style alpha of the picker can be faded out. (2711)
Note that some elements won't accurately fade down with the same intensity, and the color wheel
when enabled will have small overlap glitches with (style.Alpha < 1.0).
- Tabs: Fixed single-tab not shrinking their width down.
- Tabs: Fixed clicking on a tab larger than tab-bar width creating a bouncing feedback loop.
- Tabs: Feed desired width (sum of unclipped tabs width) into layout system to allow for auto-resize. (2768)
(before 1.71 tab bars fed the sum of current width which created feedback loops in certain situations).
- Tabs: Improved shrinking for large number of tabs to avoid leaving extraneous space on the right side.
Individuals tabs are given integer-rounded width and remainder is spread between tabs left-to-right.
- Columns, Separator: Fixed a bug where non-visible separators within columns would alter the next row position
differently than visible ones.
- SliderScalar: Improved assert when using U32 or U64 types with a large v_max value. (2765) [loicmouton]
- DragInt, DragFloat, DragScalar: Using (v_min > v_max) allows locking any edits to the value.
- DragScalar: Fixed dragging of unsigned values on ARM cpu (float to uint cast is undefined). (2780) [dBagrat]
- TreeNode: Added ImGuiTreeNodeFlags_SpanAvailWidth flag. (2451, 2438, 1897) [Melix19, PathogenDavid]
This extends the hit-box to the right-most edge, even if the node is not framed.
(Note: this is not the default in order to allow adding other items on the same line. In the future we will
aim toward refactoring the hit-system to be front-to-back, allowing more natural overlapping of items,
and then we will be able to make this the default.)
- TreeNode: Added ImGuiTreeNodeFlags_SpanFullWidth flag. This extends the hit-box to both the left-most and
right-most edge of the working area, bypassing indentation.
- CollapsingHeader: Added support for ImGuiTreeNodeFlags_Bullet and ImGuiTreeNodeFlags_Leaf on framed nodes,
mostly for consistency. (2159, 2160) [goran-w]
- Selectable: Added ImGuiSelectableFlags_AllowItemOverlap flag in public api (was previously internal only).
- Style: Allow style.WindowMenuButtonPosition to be set to ImGuiDir_None to hide the collapse button. (2634, 2639)
- Font: Better ellipsis ("...") drawing implementation. Instead of drawing three pixel-ey dots (which was glaringly
unfitting with many types of fonts) we first attempt to find a standard ellipsis glyphs within the loaded set.
Otherwise we render ellipsis using '.' from the font from where we trim excessive spacing to make it as narrow
as possible. (2775) [rokups]
- ImDrawList: Clarified the name of many parameters so reading the code is a little easier. (2740)
- ImDrawListSplitter: Fixed merging channels if the last submitted draw command used a different texture. (2506)
- Using offsetof() when available in C++11. Avoids Clang sanitizer complaining about old-style macros. (94)
- ImVector: Added find(), find_erase(), find_erase_unsorted() helpers.
- Added a mechanism to compact/free the larger allocations of unused windows (buffers are compacted when
a window is unused for 60 seconds, as per io.ConfigWindowsMemoryCompactTimer = 60.0f). Note that memory
usage has never been reported as a problem, so this is merely a touch of overzealous luxury. (2636)
- Documentation: Various tweaks and improvements to the README page. [ker0chan]
- Backends: OpenGL3: Tweaked initialization code allow application calling ImGui_ImplOpenGL3_CreateFontsTexture()
before ImGui_ImplOpenGL3_NewFrame(), which sometimes can be convenient.
- Backends: OpenGL3: Attempt to automatically detect default GL loader by using __has_include. (2798) [o-micron]
- Backends: DX11: Fixed GSGetShader() call not passing an initialized instance count, which would
generally make the DX11 debug layer complain (bug added in 1.72).
- Backends: Vulkan: Added support for specifying multisample count. Set 'ImGui_ImplVulkan_InitInfo::MSAASamples' to
one of the VkSampleCountFlagBits values to use, default is non-multisampled as before. (2705, 2706) [vilya]
- Examples: OSX: Fix example_apple_opengl2/main.mm not forwarding mouse clicks and drags correctly. (1961, 2710)
[intonarumori, ElectricMagic]
- Misc: Updated stb_rect_pack.h from 0.99 to 1.00 (fixes by rygorous: off-by-1 bug in best-fit heuristic,
fix handling of rectangles too large to fit inside texture). (2762) [tido64]


-----------------------------------------------------------------------

Page 4 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.