v1.66
版本发布时间: 2018-11-22 22:37:55
ocornut/imgui最新发布版本:v1.91.3(2024-10-04 21:48:34)
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()
toSetScrollHereY()
. Kept redirection function (will obsolete). - Renamed
misc/stl/imgui_stl.*
tomisc/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 essentiallyNoTitleBar+NoResize+NoScrollbar+NoCollapse
. - Window: Added
ImGuiWindowFlags_NoMouseInputs
which is basically the old ImGuiWindowFlags_NoInputs (essentially we have renamedImGuiWindowFlags_NoInputs
toImGuiWindowFlags_NoMouseInputs
). Made the newImGuiWindowFlags_NoInputs
encompass bothNoMouseInputs+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: https://github.com/ocornut/imgui/issues/1902 and on the wiki: Quotes & Software using dear imgui.
Imogen by @CedricGuillemet
Unnamed Editor by @rokups (using docking
branch)
Zepto8: A PICO-8 emulator and IDE by @samhocevar (using docking
branch)
Profiler UI in Lumix Engine by @nem0
Unnamed Editor/test-bed by @r-lyeh
TimeLord