Skip to content

v1.90.2

Compare
Choose a tag to compare
@ocornut ocornut released this 09 Feb 16:43
· 692 commits to master since this release

1.90.2: Monthly update

Reading the 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!

📣 Click version number above to display full release note contents, otherwise it is clipped by GitHub!


Homepage: https://github.com/ocornut/imgui
Release notes: https://github.com/ocornut/imgui/releases
FAQ: https://www.dearimgui.com/faq/
Getting Started: https://github.com/ocornut/imgui/wiki/Getting-Started
Issues: https://github.com/ocornut/imgui/issues

Did you know? We have a Wiki!
It has sections such as this Getting Started and Useful Extensions Gallery! 👌

Thank you! ❤️

Dear ImGui is funded by your contributions and needs them to sustain and grow. We can invoice and accommodate to many situations.
If your company uses Dear ImGui, please reach out. See Sponsors page.

In the last year, Dear ImGui has been financially supported by:

Special thanks to @GamingMinds-DanielC, @PathogenDavid, @sakiodre & more for for their help with github answers.

Huge thank you to all past and present supporters!
Also thanks to PVS Studio (great static analyzer) for providing us with a license for this project.

Changes

Past releases include v1.89, v1.89.1, v1.89.2, v1.89.3, v1.89.4, v1.89.5, v1.89.6, v1.89.7, v1.89.8, v1.89.9, v1.90, v1.90.1 .We are trying to make more frequent releases. Because: some people are relying on tagging and auto-generated bindings for other languages. And: it sets a beat and may encourage teams to update more frequently. Remember that our policy is to comment out obsolete names/symbols after 24 months, so at minimum you must update once year to reduce update complexity, but the most frequently you update the easier it will be.

TL;DR

  • Many navigation improvements/fixes (some of them driven by work on remote activation/shortcuts api).
  • Debug tools improvements.
  • Backends fixes.
  • Better input routing features for docked/multi-viewport based applications.
  • Many things still under wrap (internal APIs, private branches etc.), sorry! I've been iterating/testing testing some internal features with selected users, but until they are satisfactory I am not promoting them to public API, and not talking much about them in changelog:
    • Input ownership, Input routing, Shortcut APIs.
    • Way to externally modify an active input text buffer.
    • Multi-Select APIs.
    • Typing-Select APIs.

Breaking Changes:

  • Commented out ImGuiIO::ImeWindowHandle obsoleted in 1.87 in favor of writing to void* ImGuiViewport::PlatformHandleRaw.
  • Backends: WebGPU: ImGui_ImplWGPU_Init() now takes a ImGui_ImplWGPU_InitInfo structure instead of variety of parameters, allowing for easier further changes. (#7240)

Other Changes:

  • Nav: keyboard/gamepad activation mark widgets as held to give better visual feedback.
  • Nav: tweak to logic marking navigated item as hovered when using keyboard, allowing the hover highlight to stay even while another item is activated.
  • Nav: Fixed SetKeyboardFocusHere() not working when current nav focus is in different scope, regression from 1.90.1 related to code scoping Tab presses to local scope. (#7226) [@bratpilz]
  • Nav: Fixed pressing Escape while in a child window with ImGuiWindowFlags_NavFlattened flag. (#7237)
  • Nav: Improve handling of Alt key to toggle menu so that key ownership may be claimed on individual left/right alt key without interfering with the other.
  • Nav, Menus: Fixed click on a BeginMenu() followed by right-arrow from making the child menu reopen and flicker (using ImGuiPopupFlags_NoReopen).
  • Nav: ImGuiWindowFlags_NoNavInputs is tested during scoring so NavFlattened windows can use it.
  • Popups: OpenPopup(): added ImGuiPopupFlags_NoReopen flag to specifically not close and reopen a popup when it is already open. (#1497, #1533) (Note that this differs from specific handling we already have in place for the case of calling OpenPopup() repeatedly every frame: we already didn't reopen in that specific situation, otherwise the effect would be very disastrous in term of confusion, as reopening would steal focus).
  • Popups: Slight change to popup closing logic (e.g. after focusing another window) which skipped over popups that are also child windows.
  • Combo: Fixed not reusing windows optimally when used inside a popup stack.
  • Debug Tools: Metrics: Fixed debug break in SetShortcutRouting() not handling ImGuiMod_Shortcut redirect.
  • Debug Tools: Metrics: Improved Monitors and Viewports minimap display. Highlight on hover.
  • Debug Tools: Debug Log: Added "Input Routing" logging.
  • Debug Tools: Added "nop" to IM_DEBUG_BREAK macro on GCC to work around GDB bug (#7266) [@Peter0x44]
  • Backends: Vulkan: Fixed vkAcquireNextImageKHR() validation errors in VulkanSDK 1.3.275 by allocating one extra semaphore than in-flight frames. (#7236) [@mklefrancois]
  • Backends: Vulkan: Fixed vkMapMemory() calls unnecessarily using full buffer size. (#3957)
  • Backends: Vulkan: Fixed handling of ImGui_ImplVulkan_InitInfo::MinAllocationSize field. (#7189, #4238)
  • Backends: WebGPU: Added ImGui_ImplWGPU_InitInfo::PipelineMultisampleState. (#7240)
  • Backends: WebGPU: Filling all WGPUDepthStencilState fields explicitly as a recent Dawn update stopped setting default values. (#7232) [@GrigoryGraborenko]
  • Backends: WebGPU: Fixed pipeline layout leak. (#7245) [@rajveermalviya]
  • Backends: OpenGL3: Backup and restore GL_PIXEL_UNPACK_BUFFER. (#7253)
  • Internals: Many improvements related to yet unpublicized shortcut routing and input ownership systems.
  • Internals: InputText: Added internal helpers to force reload of user-buffer when active. (#2890) [@kudaba, @ocornut] Often requested in some form (#6962, #5219, #3290, #4627, #5054, #3878, #2881, #1506, #1216, #968), and useful for interactive completion/suggestions popups (#2057, #718)

Changes from 1.90.1 to 1.90.2 related to the Docking branch:

  • Added ImGuiWindowClass::FocusRouteParentWindowId as a way to connect the focus route between a tool window to a parent document window, so that Shortcuts in the documents are routed when the tool is focused (regardless of whether the tool is docked or in a floating viewport, etc.) (#6798)
  • Added ImGuiDockNodeFlags_DockedWindowsInFocusRoute to automatically make a dockspace connect the focus route of its docked window. This is provided a convenience in case you have windows where a connection is not explicit. (#6798)
  • Viewports: Fixed moving across monitors when io.ConfigWindowsMoveFromTitleBarOnly is set. (#7299, #3071)
  • Backends: OSX: Fixed not submitting Monitors info when viewports are not enabled, leading to missing e.g. DpiScale info. (#7257) [@actboy168]

Changes from 1.90.1 to 1.90.2 related to the Range-Select branch:

This is a new API that hasn't been discussed much in public yet. Ignore if you are not one of the few users. If you happen to be using this please do get in contact. Hopefully this is on track to be stable and merged in 1.91.

  • RangeSelect/MultiSelect: Fixed ImGuiMultiSelectFlags_SelectOnClickRelease over tree node arrow.

Thank you for reading this changelog!

Extensions, bindings & co

Since 1.89 we semi-sneakily soft launched two new entire projects:

Dear ImGui Automation/Test Engine & Test Suite
https://github.com/ocornut/imgui_test_engine

Dear Bindings: alternative binding generator for C and other languages by @ShironekoBen (as an alternative to good old cimgui).
https://github.com/dearimgui/dear_bindings

See Useful extensions wiki page for more.

Gallery

@vhollander: "v2 platinum theme used in an actual program"
image

@kasperhbo: "An custom titlebar for mac os, using a "modified" version of glfw" for my tools applications
https://github.com/KaspersTools/HummingBird
https://github.com/KaspersTools/imgui
Screenshot 2024-01-27 at 00 16 02

@GavinNL: "For one of my projects, I needed the ability to dynamically create UI Form interfaces at run-time. So I developed a library that lets you define the interface using a Json Schema. I based it off React Json Schemas"

https://github.com/GavinNL/ImJSchema
WebAssembly Version To Test: https://t.co/IdlVzzm19L

strings


Also see previous releases details.
Note that GitHub are now clamping release notes sometimes really badly, click on a header/title to read full notes.

Dear ImGui is funded by your contributions and needs them to sustain and grow. We can invoice and accommodate to many situations.
If your company uses Dear ImGui, please reach out (omar AT dearimgui DOT com). See Sponsors page.