Skip to content

v1.66

Compare
Choose a tag to compare
@ocornut ocornut released this 22 Nov 14:37
· 3715 commits to master since this release

See https://github.com/ocornut/imgui for the project homepage.
See https://github.com/ocornut/imgui/releases for earlier release notes.
See https://github.com/ocornut/imgui/wiki for language/framework bindings, links, 3rd parties helpers/extensions.
New users: go to https://discourse.dearimgui.org for technical support.

TL;DR;

This is a small release with all changes applied to master since September.
Please note that most of the recent works has been happening in the Viewport (#1542) and Docking (#2109) branches. The Docking branch already have dozens of active users and feedback on it is always welcome.

  • New functions/features: ImGuiWindowFlags_NoBackground, ImGuiWindowFlags_NoDecoration, ImGuiWindowFlags_NoMouseInputs, ImGui::GetDragDropPayload().
  • Bindings: Fixes for GL 4.5 contexts using glClipControl(). Chaining GLFW callbacks automatically. Fixes when using IMGUI_IMPL_OPENGL_LOADER_CUSTOM. SDL+Vulkan: Fix shutdown on Linux.
  • Many other fixes and improvements, read below for details.

Reminder: If you are updating from a version BEFORE 1.64 and you have any local modifications of the code, make sure you read the 1.64 release notes carefully.

Thank you

Some ongoing work on dear imgui is currently being sponsored by Blizzard Entertainment + general & community work by many individual users, hobbyists and studios on Patreon. See the readme for details and a more complete list. Huge thank you to all of you, past and present supporters! You help is very meaningful.

Breaking Changes

  • Renamed SetScrollHere() to SetScrollHereY(). Kept redirection function (will obsolete).
  • Renamed misc/stl/imgui_stl.* to misc/cpp/imgui_stdlib.* in prevision for other C++ helper files. (#2035, #2096)

Other Changes:

  • Fixed calling SetNextWindowSize()/SetWindowSize() with non-integer values leading to accidental alteration of window position. We now round the provided size. (#2067)
  • Fixed calling DestroyContext() always saving .ini data with the current context instead of the supplied context pointer. (#2066)
  • Nav, Focus: Fixed ImGuiWindowFlags_NoBringToFrontOnFocus windows not being restoring focus properly after the main menu bar or last focused window is deactivated.
  • Nav: Fixed an assert in certain circumstance (mostly when using popups) when mouse positions stop being valid. (#2168)
  • Nav: Fixed explicit directional input not re-highlighting current nav item if there is a single item in the window and highlight has been previously disabled by the mouse. (#787)
  • DragFloat: Fixed a situation where dragging with value rounding enabled or with a power curve erroneously wrapped the value to one of the min/max edge. (#2024, #708, #320, #2075).
  • DragFloat: Disabled using power curve when one edge is FLT_MAX (broken in 1.61). (#2024)
  • DragFloat: Disabled setting a default drag speed when one edge is FLT_MAX. (#2024)
  • SliderAngle: Added optional format argument to alter precision or localize the string. (#2150) [@podsvirov]
  • Window: Resizing from edges (with io.ConfigResizeWindowsFromEdges Beta flag) extends the hit region of root floating windows outside the window, making it easier to resize windows. Resize grips are also extended accordingly so there are no discontinuity when hovering between borders and corners. (#1495, #822)
  • Window: Added ImGuiWindowFlags_NoBackground flag to avoid rendering window background. This is mostly to allow the creation of new flag combinations, as we could already use SetNextWindowBgAlpha(0.0f). (#1660) [@biojppm, @ocornut]
  • Window: Added ImGuiWindowFlags_NoDecoration helper flag which is essentially NoTitleBar+NoResize+NoScrollbar+NoCollapse.
  • Window: Added ImGuiWindowFlags_NoMouseInputs which is basically the old ImGuiWindowFlags_NoInputs (essentially we have renamed ImGuiWindowFlags_NoInputs to ImGuiWindowFlags_NoMouseInputs). Made the new ImGuiWindowFlags_NoInputs encompass both NoMouseInputs+NoNav, which is consistent with its description. (#1660, #787)
  • Window, Inputs: Fixed resizing from edges when io.MousePos is not pixel-rounded by rounding mouse position input. (#2110)
  • BeginChild(): Fixed BeginChild(const char*, ...) variation erroneously not applying the ID stack to the provided string to uniquely identify the child window. This was undoing an intentional change introduced in 1.50 and broken in 1.60. (#1698, #894, #713).
  • TextUnformatted(): Fixed a case where large-text path would read bytes past the text_end marker depending on the position of new lines in the buffer (it wasn't affecting the output but still not the right thing to do!)
  • ListBox(): Fixed frame sizing when items_count==1 unnecessarily showing a scrollbar. (#2173) [@luk1337, @ocornut]
  • ListBox(): Tweaked frame sizing so list boxes will look more consistent when FramePadding is far from ItemSpacing.
  • RenderText(): Some optimization for very large text buffers, useful for non-optimized builds.
  • BeginMenu(): Fixed menu popup horizontal offset being off the item in the menu bar when WindowPadding=0.0f.
  • ArrowButton(): Fixed arrow shape being horizontally misaligned by (FramePadding.y-FramePadding.x) if they are different.
  • Demo: Split the contents of ShowDemoWindow() into smaller functions as it appears to speed up link time with VS. (#2152)
  • Drag and Drop: Added GetDragDropPayload() to peek directly into the payload (if any) from anywhere. (#143)
  • ImGuiTextBuffer: Avoid heap allocation when empty.
  • ImDrawList: Fixed AddConvexPolyFilled() undefined behavior when passing points_count smaller than 3,
    in particular, points_count==0 could lead to a memory stomp if the draw list was previously empty.
  • Examples: DirectX10, DirectX11: Removed seemingly unnecessary calls to invalidate and recreate device objects
    in the WM_SIZE handler. (#2088) [@ice1000]
  • Examples: GLFW: User previously installed GLFW callbacks are now saved and chain-called by the default callbacks. (#1759)
  • Examples: OpenGL3: Added support for GL 4.5's glClipControl(GL_UPPER_LEFT). (#2186)
  • Examples: OpenGL3+GLFW: Fixed error condition when using the GLAD loader. (#2157) [@blackball]
  • Examples: OpenGL3+GLFW/SDL: Made main.cpp compile with IMGUI_IMPL_OPENGL_LOADER_CUSTOM (may be missing init). (#2178) [@doug-moen]
  • Examples: SDL2+Vulkan: Fixed application shutdown which could deadlock on Linux + Xorg. (#2181) [@eRabbit0]

Gallery

Some of the software spotted since the last release..
You can submit pictures or video of your games/applications using dear imgui!
See more pictures here: #1902 and on the wiki: Quotes & Software using dear imgui.

Imogen by @CedricGuillemet
imogen

Unnamed Editor by @rokups (using docking branch)
kd29jbn

Zepto8: A PICO-8 emulator and IDE by @samhocevar (using docking branch)
zepto8

Profiler UI in Lumix Engine by @nem0
image

Unnamed Editor/test-bed by @r-lyeh
47254043-53a1ea00-d45c-11e8-97c9-335de68c5ee7

TimeLord
timelord