1.91.6: general maintenance release
❤️ A few months ago was the 10th anniversary of v1.00! Read: 10 years of Dear ImGui ! 🎉
✋ 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!
📣 If you are browsing multiple releases: click version number above to display full release note contents, otherwise it is badly clipped by GitHub!
Links: Homepage - Release notes - FAQ - Issues, Q&A. Also see our Wiki with sections such as..
- Getting Started (~25 lines in an existing app)
- Useful Extensions/Widgets
- Software using Dear ImGui
- Bindings & Backends
- and more! 👌
Dear ImGui is funded by your contributions and absolutely 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 page. Did you know? If you need an excuse to pay, you may buy licenses for Test Engine and buy hours of support (and cough not use them all) and that will contribute to fund Dear ImGui.
❤️ Thanks to recently joining sponsors: id Software!, SCS Software! Valve! Gravity Well! ❤️
❤️ Thanks to other present and past sponsors incl Supercell! BeamNG! OTOY! Arkane Lyon, Asobo Studio, Lucid Games! Asobo! G3Dvu ! Planestate Software! Aras P! FUTO! & many individuals ❤️
Thanks to @GamingMinds-DanielC, @PathogenDavid & more for their help with github answers!
Changes (since v1.91.5)
This is an unusual small release. It is mostly motivated by the fact that the Win32 backend in docking branch of v1.91.5 had a crash when running multiple program instances. Most of the work done this month is part of a larger feature I will talk about later :)
Breaking Changes:
- Backends: DX12: Changed
ImGui_ImplDX12_Init()
signature to take aImGui_ImplDX12_InitInfo
struct.- Using the new API, application is now required to pass function pointers to allocate/free SRV Descriptors.
- We provide convenience legacy fields to pass a single descriptor, matching the old API, but upcoming features will want multiple.
- Legacy ImGui_ImplDX12_Init() signature is still supported (will obsolete).
- Misc: changed CRC32 table from CRC32-adler to CRC32c polynomial in order to be compatible with the result of SSE 4.2 instructions. (#8169, #4933) [@Teselka]
- As a result, some .ini data may be partially lost when storing checksums (docking and tables information particularly).
- Because some users have crafted and storing .ini data as a way to workaround limitations of the docking API, we are providing a
#define IMGUI_USE_LEGACY_CRC32_ADLER
compile-time option to keep using old CRC32 tables if you cannot afford invalidating old .ini data.
Other changes:
- InputText: added
ImGuiInputTextFlags_ElideLeft
to elide left side and ensure right side of contents is visible when whole text is not fitting (useful for paths/filenames). (#1442, #1440, #4391, #7208, #8216) [@kucoman, @ocornut] - InputText: reactivating last activated
InputText()
doesn't restore horizontal scrolling (which was disabled during deactivation anyway). - Error Handling: fixed cases where recoverable error handling would crash when processing errors outside of the
NewFrame()
..EndFrame()
scope. (#1651) - Tables: fixed
SetNextWindowScroll()
value being ignored byBeginTable()
during the first frame or when scrolling flags have changed. (#8196) - Misc: changed embedded ProggyClean encoding to save a bit of binary space (~12kb to 9.5kb).
- Misc: added
IMGUI_DISABLE_DEFAULT_FONT
to strip embedded font from binary. (#8161) [@Demonese] - Demo: example tree used by Property Editor & Selection demos properly freed on application closure. (#8158) [@Legulysse]
- Fonts: fixed
AddCustomRect()
not being packed with TexGlyphPadding + not accounted for surface area used to determine best-guess texture size. (#8107) [@YarikTH, @ocornut] - Misc: use SSE 4.2 crc32 instructions when available. (#8169, #4933) [@Teselka]
- Tools: binary_to_compressed_c: added
-u8
/-u32
/-base85
export options. - Backends: DirectX12: Let user specifies the
DepthStencilView
format by settingImGui_ImplDX12_InitInfo::DSVFormat
. (#8217) [@bmarques1995] - Backends: Vulkan: Make user-provided descriptor pool optional. As a convenience, when setting
init_info->DescriptorPoolSize
then the backend will create and manage one itself. (#8172, #4867) [@zeux] - Examples: Win32+DX12: Using a basic free-list allocator to manage multiple SRV descriptors.
Changes from 1.91.5 to 1.91.6 in the Docking branch:
- Backends: Win32: Fixed a crash/regression in 1.91.5 when running two processes with multi-viewports (was using GetProp() to query property which could have belonged to another process). (#8162, #8069) [@sammyfreg, @ocornut]
- Docking: Added an assert to clarify that
ImGuiDockNodeFlags_CentralNode
flag (from internals) does not need to be passed to DockSpace(), as it causes general havoc. (#8145)
Gallery
@HODAKdev: "ImGui is amazing, you can make any editor you want. This is what my game engine looks like. ❤️"
https://github.com/HODAKdev/StarEngine
@734vin: "a node base editor use ImGui, pegborad module."
LightAct 4 (Media Server for Big Shows & Fast Workflows)
https://lightact.com
@matheusgarcez "Working in progress markdown renderer for a game guide overlay (using md4c for building the node tree):"
@coderloff "Here is my basic C++ game engine for learning purposes, Ferx Engine, I'm developing as a 16-year-old:"
Orion Drift upcoming game by Another Axiom
https://www.meta.com/experiences/orion-drift/7181769438517329/
https://www.youtube.com/watch?v=LWvzanMj_
https://www.meta.com/experiences/orion-drift/7181769438517329/
@BigJk "I'm using ImGui for the whole UI of a small game I'm currently developing for fun after work. It's a First Person Dungeon Crawler with Monster Collecting Elements called Gloamvault."
"It's the first time I had a usecase for ImGui's drag and drop features. I use it so that you can easily move monsters in your party around or cast spells by dragging the spell onto the target 😄 Was super easy to implement. Working with ImGui is a breeze as always!"
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.
❤️ A few months ago was the 10th anniversary of v1.00! Read: 10 years of Dear ImGui ! 🎉
💰 🙏 Dear ImGui is funded by your contributions and absolutely 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 page. Did you know? If you need an excuse to pay, you may buy licenses for Test Engine and buy hours of support (and cough not use them all) and that will contribute to fund Dear ImGui.