github ocornut/imgui v1.90.6

latest release: v1.90.6-docking
11 days ago

1.90.6: May 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!


Links: Homepage - Release notes - FAQ - Issues, Q&A
Also see our Wiki with sections such as Getting Started and Useful Extensions Gallery! 👌

Ahem

Consider reading the foreword for v1.90.5. If you contacted me in March consider following up :)

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 Funding & Sponsors page. Did you know? If you need an excuse to pay, you may buy licenses for Test Engine and that will contribute to fund Dear ImGui.

Special thanks to @cfillion, @GamingMinds-DanielC, @PathogenDavid & more for for their help with patches and answers!

Recent financial contributions by G3DVu!, Lucid Games! Aras! Remedy Entertainment! And many other individuals. Thank you,

Changes

Breaking Changes:

  • TreeNode: Fixed a layout inconsistency when using a empty/hidden label followed by a SameLine() call. (#7505, #282)
     Before: TreeNode("##Hidden"); SameLine(); Text("Hello");
             // This was actually incorrect! BUT appeared to look ok with the default style
             // where ItemSpacing.x == FramePadding.x * 2 (it didn't look aligned otherwise).
     After:  TreeNode("##Hidden"); SameLine(0, 0); Text("Hello");
             // This is correct for all values in style.
  • With the fix, IF you were successfully using TreeNode("")+SameLine(); you will now have extra spacing between your TreeNode and the following item. You'll need to change the SameLine() call to SameLine(0,0) to remove this extraneous spacing. This seemed like the more sensible fix that's not making things less consistent. (Note: when using this idiom you are likely to also use ImGuiTreeNodeFlags_SpanAvailWidth).

Other Changes

  • Windows: Changed default ClipRect to extend to windows' left and right borders, instead of adding arbitrary WindowPadding.x * 0.5f space on left and right. That ClipRect half-padding was arbitrary/confusing and inconsistent with Y axis. It also made it harder to draw items covering whole window without pushing an extended ClipRect. Some items near windows left and right edge that used to be clipped may be partly more visible. (#3312, #7540, #3756, #6170, #6365)
  • Windows: Fixed subsequent Begin() append calls from setting last item information for title bar, making it impossible to use IsItemHovered() on a Begin()-to-append, and causing issue bypassing hover detection on collapsed windows. (#7506, #823)
  • Fonts: Fixed font ascent and descent calculation when a font hits exact integer values. It is possible that some prior manual use of ImFontConfig::GlyphOffset may become duplicate with this fix. (#7399, #7404) [@GamingMinds-DanielC]
  • TreeNode: Added ImGuiTreeNodeFlags_SpanTextWidth to make hitbox and highlight only cover the label. (#6937) [@dimateos]
  • Tables: Angled headers: fixed multi-line label display when angle is flipped. (#6917)
  • Tables: Angled headers: added style.TableAngledHeadersTextAlign and corresponding ImGuiStyleVar_TableAngledHeadersTextAlign variable. Default to horizontal center. (#6917) [@thedmd, @ocornut]
  • ProgressBar: Added support for indeterminate progress bar by passing an animated negative fraction, e.g. ProgressBar(-1.0f * GetTime()). (#5316, #5370, #1901)[@gan74]
  • Text, DrawList: Improved handling of long single-line wrapped text. Faster and mitigate issues with reading vertex indexing limits with 16-bit indices. (#7496, #5720)
  • Backends: OpenGL3: Detect ES3 contexts on desktop based on version string, to e.g. avoid calling glPolygonMode() on them. (#7447) [@afraidofdark, @ocornut]
  • Backends: OpenGL3: Update loader for Linux to support EGL/GLVND. (#7562) [@ShadowNinja, @vanfanel]
  • Backends: Vulkan: Added convenience support for Volk via IMGUI_IMPL_VULKAN_USE_VOLK define. (you could always use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + ImGui_ImplVulkan_LoadFunctions() as well). (#6582, #4854) [@adalsteinnh, @kennyalive, @ocornut]
  • Backends: SDL3: Fixed text inputs. Re-enable calling SDL_StartTextInput()/SDL_StopTextInput() as SDL3 no longer enables it by default. (#7452, #6306, #6071, #1953) [@Green-Sky]
  • Examples: GLFW+Vulkan, SDL+Vulkan: Added optional support for Volk. (#6582, #4854)
  • Examples: GLFW+WebGPU: Added support for WebGPU-native/Dawn (#7435, #7132) [@eliasdaler, @Zelif]
  • Examples: GLFW+WebGPU: Renamed example_emscripten_wgpu/ to example_glfw_wgpu/. (#7435, #7132)

Changes from 1.90.5 to 1.90.6 related to the Docking branch:

Changes from 1.90.3 to 1.90.6 related to the Range-Select branch: (previous release notes skipped a few)

  • RangeSelect/MultiSelect: (Breaking) merge ImGuiSelectionRequestType_Clear and ImGuiSelectionRequestType_SelectAll into ImGuiSelectionRequestType_SetAll, rename ImGuiSelectionRequest::RangeSelected to Selected.
  • RangeSelect/MultiSelect: Simplified ImGuiSelectionBasicStorage by using a single SetItemSelected() entry point.
  • RangeSelect/MultiSelect: Added ImGuiMultiSelectFlags_NoAutoSelect, ImGuiMultiSelectFlags_NoAutoClear features.
  • RangeSelect/MultiSelect: Added Checkbox Demo.
  • RangeSelect/MultiSelect: Box-Select: fix preventing focus. amend determination of scope_hovered for decorated/non-child windows + avoid stealing NavId. (#7424)

Gallery

Bitty Engine
https://paladin-t.github.io/bitty/
screenshot3_edit_map

@naoki-0603: "Game engine under development. / This is a game under development using my own game engine."
GameEngine_01

@Eragon-Brisingr: ImGui_WS Support Unreal Engine use ImGui and Draw on web page.
https://github.com/Eragon-Brisingr/ImGui_WS
ImGui_WS

storymachine
https://www.trystorymachine.com
storymachine_03

@achabense: _"I'm working on a project for exploring MAP-rules.
https://github.com/achabense/astral
screenshot

@mikamyara : "I write a code that simulates a CPU architecture for my students (for pedagogy only), and once the microcode table is filled with necessary signals, allows to create simple assembler code."
https://dl.eea-fds.umontpellier.fr/ArchiLaSimu-1.0/
image

@rafaelanderka: lbm-imgui "an interactive fluid simulation toolbox."
https://github.com/rafaelanderka/lbm-imgui
lbm-imgui-demo

@antopilo "A game engine inspired by Quake that I've been working on for a couple years"
https://nuake.antopilo.dev
https://github.com/antopilo/Nuake
image

Tug by @kyle-sylvestre: Tug: GDB frontend made with Dear ImGui
https://github.com/kyle-sylvestre/Tug
327977413-b5db9a13-717e-4e51-9702-dc2d8b28fea9


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 Funding/Sponsors page. Did you know? If you need an excuse to pay, you may buy licenses for Test Engine and that will contribute to fund Dear ImGui.

Don't miss a new imgui release

NewReleases is sending notifications on new releases.