imgui v1.76 Release Notes

Release Date: 2020-04-12 // about 4 years ago
  • Reading the full 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!


    Homepage: https://github.com/ocornut/imgui
    ๐Ÿš€ Release notes: https://github.com/ocornut/imgui/releases
    Wiki: https://github.com/ocornut/imgui/wiki for bindings, links, extensions etc.
    ๐Ÿ™‹ FAQ: https://www.dearimgui.org/faq/
    Discord server: https://discord.dearimgui.org
    ๐Ÿ‘ Issues and support: https://github.com/ocornut/imgui/issues


    Thank you!

    ๐Ÿ‘ Ongoing work on Dear ImGui is currently financially supported by Blizzard, Google, Ubisoft, Nvidia along with Activision, Next Level Games, Supercell, Remedy and more. See sponsors page for details.

    We are transitioning toward a B2B model to grow and sustain the project (also see: "What happened in 2019?"). If your company uses Dear ImGui, consider reaching out at contact at dearimgui.com.

    ๐Ÿ‘ Huge thank you to all past and present supporters!

    All Changes

    (No known API breaking changes)

    • Drag and Drop, Nav: Disabling navigation arrow keys when drag and drop is active. In the docking branch pressing arrow keys while dragging a window from a tab could trigger an assert. (#3025)
    • BeginMenu: Using same ID multiple times appends content to a menu. (#1207) [@rokups]
    • ๐Ÿ›  BeginMenu: Fixed a bug where SetNextWindowXXX data before a BeginMenu() would not be cleared when the menu is not open. (#3030)
    • ๐Ÿ›  InputText: Fixed password fields displaying ASCII spaces as blanks instead of using the '*' glyph. (#2149, #515)
    • ๐Ÿ’… Selectable: Fixed honoring style.SelectableTextAlign with unspecified size. (#2347, #2601)
    • Selectable: Allow using ImGuiSelectableFlags_SpanAllColumns in other columns than first. (#125)
    • TreeNode: Made clicking on arrow with _OpenOnArrow toggle the open state on the Mouse Down event rather than the Mouse Down+Up sequence (this is rather standard behavior).
    • ๐Ÿšš ColorButton: Added ImGuiColorEditFlags_NoBorder flag to remove the border normally enforced by default for standalone ColorButton.
    • ๐Ÿ›  Nav: Fixed interactions with ImGuiListClipper, so e.g. Home/End result would not clip the landing item on the landing frame. (#787)
    • ๐Ÿ›  Nav: Internals: Fixed currently focused item from ever being clipped by ItemAdd(). (#787)
    • ๐Ÿ›  Scrolling: Fixed scrolling centering API leading to non-integer scrolling values and initial cursor position. This would often get fixed after the fix item submission, but using the ImGuiListClipper as the first thing after Begin() could largely break size calculations. (#3073)
    • โž• Added optional support for Unicode plane 1-16 (#2538, #2541, #2815) [@cloudwu, @samhocevar]
      • Compile-time enable with #define IMGUI_USE_WCHAR32 in imconfig.h.
      • More onsistent handling of unsupported code points (0xFFFD).
      • Surrogate pairs are supported when submitting UTF-16 data via io.AddInputCharacterUTF16(), allowing for more complete CJK input.
      • sizeof(ImWchar) goes from 2 to 4. IM_UNICODE_CODEPOINT_MAX goes from 0xFFFF to 0x10FFFF.
      • Various structures such as ImFont, ImFontGlyphRangesBuilder will use more memory, this is currently not particularly efficient.
    • Columns: undid the change in 1.75 were Columns()/BeginColumns() were preemptively limited to 64 columns with an assert. (#3037, #125)
    • ๐Ÿ›  Window: Fixed a bug with child window inheriting ItemFlags from their parent when the child window also manipulate the ItemFlags stack. (#3024) [@Stanbroek]
    • ๐Ÿ›  Font: Fixed non-ASCII space occasionally creating unnecessary empty looking polygons.
    • โœ… Misc: Added an explicit compile-time test for non-scoped IM_ASSERT() macros to redirect users to a solution rather than encourage people to add braces in the codebase.
    • Misc: Added additional checks in EndFrame() to verify that io.KeyXXX values have not been tampered with between NewFrame() and EndFrame().
    • 0๏ธโƒฃ Misc: Made default clipboard handlers for Win32 and OSX use a buffer inside the main context instead of a static buffer, so it can be freed properly on Shutdown. (#3110)
    • Misc, Freetype: Fixed support for IMGUI_STB_RECT_PACK_FILENAME compile time directive in imgui_freetype.cpp (matching support in the regular code path). (#3062) [@DonKult]
    • ๐Ÿ Metrics: Made Tools section more prominent. Showing wire-frame mesh directly hovering the ImDrawCmd instead of requiring to open it. Added options to disable bounding box and mesh display. Added notes on inactive/gc-ed windows.
    • Demo: Added black and white and color gradients to Demo>Examples>Custom Rendering.
    • ๐Ÿ— CI: Added more tests on the continuous-integration server: extra warnings for Clang/GCC, building SDL+Metal example, building imgui_freetype.cpp, more compile-time imconfig.h settings: disabling obsolete functions, enabling 32-bit ImDrawIdx, enabling 32-bit ImWchar, disabling demo. [@rokups]
    • โœ… Backends: OpenGL3: Fixed version check mistakenly testing for GL 4.0+ instead of 3.2+ to enable ImGuiBackendFlags_RendererHasVtxOffset, leaving 3.2 contexts without it. (#3119, #2866) [@wolfpld]
    • ๐Ÿ‘ Backends: OpenGL3: Added include support for older glbinding 2.x loader. (#3061) [@DonKult]
    • Backends: Win32: Added ImGui_ImplWin32_EnableDpiAwareness(), ImGui_ImplWin32_GetDpiScaleForHwnd(), ImGui_ImplWin32_GetDpiScaleForMonitor() helpers functions (backported from the docking branch). Those functions makes it easier for example apps to support hi-dpi features without setting up a manifest.
    • ๐Ÿ‘ Backends: Win32: Calling AddInputCharacterUTF16() from WM_CHAR message handler in order to support high-plane surrogate pairs. (#2815) [@cloudwu, @samhocevar]
    • Backends: SDL: Added ImGui_ImplSDL2_InitForMetal() for API consistency (even though the function currently does nothing).
    • ๐Ÿ›  Backends: SDL: Fixed mapping for ImGuiKey_KeyPadEnter. (#3031) [@Davido71]
    • ๐Ÿ›  Examples: Win32+DX12: Fixed resizing main window, enabled debug layer. (#3087, #3115) [@sergeyn]
    • ๐Ÿ›  Examples: SDL+DX11: Fixed resizing main window. (#3057) [@joeslay]
    • Examples: Added SDL+Metal example application. (#3017) [@coding-jackalope]

    Stay safe (and sneeze in your elbow)!

    Other branches & Beta features!

    New! The tables (#2957) features is still available for testing. When it stabilize we will merge it to master (expected merge in Q2 2020).

    Tables

    The docking (#2109) and multi-viewports (#1542) features are available in the docking branch, they are in beta but actively maintained and being used by many teams already. Your continuous feedback is always appreciated.

    Some of changes from 1.75 in 1.76 related to the docking branch (multi-viewport and docking features) include:

    • ๐Ÿ›  Docking: Fixed assert preventing dockspace from being created instead a hidden tab. (#3101)
    • ๐Ÿ”€ Viewports: Fixed secondary viewports accidentally merging into a minimized host viewport. (#3118)
    • ๐Ÿ›  Viewports, Docking: Added per-viewport work area system for e.g. menu-bars. Fixed DockspaceOverViewport() and demo code (overlay etc) accordingly. (#3035, #2889, #2474, #1542, #2109)
    • Viewports: Improve menu positioning in multi-monitor setups. [@rokups]
    • Viewports: Software mouse cursor is also scaled by current DpiScale. (amend #939)
    • Viewports: Avoid manually clipping resize grips and borders, which messes up with automation ability to locate those items. Also simpler and more standard.
    • Viewports: Fix for UWP in the imgui_impl_win32.cpp IME handler. (#2895, #2892).
    • Viewports: Bunch of extra of comments to facilitate setting up multi-viewports.
    • โ†ช Viewports, GLFW: Avoid using window positioning workaround for GLFW 3.3+ versions that have it fixed. Amend 09780b8.

    Some of the changes to 1.75 to 1.76 related to the tables branch include:

    • ๐Ÿšš Tables: Fix sort direction arrow (#3023). Remove SortOrder from ImGuiTableSortSpecsColumn. Made sort arrow smaller.
    • Tables: Added TableSetColumnWidth() api variant aimed at becoming public facing.
    • ๐Ÿ›  Tables: Fixed advanced demo layout when clipped.
    • Tables: Fix scrolling freeze bug with more than 32 columns (#3058). Fix limit of 63 columms instead of 64.
    • Tables: Locking IndentX per-row so multiple columns with IndentEnabled don't get indent shearing.
    • Tables: Added per-column ImGuiTableColumnFlags_NoReorder flag.

    Some of the changes to 1.75 to 1.76 related to the range_select branch (experimental multi-select/range-select API) include:

    • โœ… RangeSelect/MultiSelect: Fixed CTRL+A not testing focus scope id. Fixed CTRL+A not testing active id.
    • RangeSelect/MultiSelect: Added more demo code.
    • RangeSelect/MultiSelect: Fix Selectable() ambiguous return value, clarify need to use IsItemToggledSelection().
    • RangeSelect/MultiSelect; Fix a race condition where releasing a keyboard modifier on the frame after a keypress would erroneously ignore the key press.
    • ๐Ÿ›  Treenode fixes with multi-select api enabled.

    There's a CMake pull-request (#1713) if you prefer a traditional CMake integration over registering imgui sources files in your own project. There's a premake5 branch if you prefer the saner and nicer Visual Studio projects generated by premake.

    Help wanted!

    • If your company uses Dear ImGui, you can reach out to contact at dearimgui.com.
    • ๐Ÿ“š Dear ImGui is looking for a technical writer to help writing technical articles, tutorials and documentation. Please reach out if you are interesting in helping!.
    • ๐Ÿง Multi-viewports in particular needs help and bug-fixes on Linux and Mac. Specific workarounds for both SDL and GLFW are becoming highly desirable. I am myself not a Linux nor Mac users and those platforms have been lagging behind in term of multi-viewport supports. (#2117).
    • ๐Ÿ‘€ The Vulkan renderer appears to have issues (see vulkan tag)
    • Browsing issues and todo list you may find something something to contribute to!

    Gallery

    ๐Ÿš€ Impressive showcase in the Gallery for this release! See Gallery threads for more pictures and to post yours!

    @gboisse
    "Working on some visual node graph editing, imgui has been amazing so far ๐Ÿ™‚"
    node_graph

    @ketoo
    ๐Ÿ–จ "Working on the blueprint editor."
    https://github.com/ketoo/NoahGameFrame
    image

    ๐Ÿ“œ Parsec
    ๐Ÿ“œ https://parsecgaming.com/features/#features
    ๐Ÿš€ "Our entire UI has been built with imgui and deployed on 7 platforms (including the web/emscripten), it's an amazing thing you've done!"
    ๐Ÿ“œ parsec2

    Microsoft Flight Simulator SDK
    https://www.youtube.com/watch?v=10P21oFOxAU&feature=youtu.be&t=481
    flight simulator sdk

    Star Citizen
    https://youtu.be/V0AEp9vhgx0?t=367
    obraz

    @giladreich
    "I wanted to show my progress on my personal game engine editor for the old game Knight Online, using ImGui's docking & tables branch." (more)
    flags editor

    Particubes
    @aduermael: "We're using ImGui in Particubes, though it may not be easy to recognize it. ๐Ÿ™‚ [...] In Particubes, you can script games, and that includes GUI of course. We worked on an auto layout system users will be able to use in Lua to display their own buttons, labels, etc. For games to look good on all screen factors and be enjoyable with mouse & keyboard or touch events."
    particubes

    @parbo
    ๐Ÿ’ป "I work at Spotify, and on my hackdays I've been making a Spotify client using Dear Imgui. I'm using the docking branch, and the new table API. It uses the same C++ library as our mobile and desktop clients use, and the UI is roughly 6000 lines of code." (more)
    spotify

    Plotting library by @epezent (see #3067)
    1
    4

    NVIDIA Texture Tools Exporter
    https://developer.nvidia.com/nvidia-texture-tools-exporter

    Final Fantasy VII Remake
    https://www.youtube.com/watch?time_continue=675&v=DliMpiemUy8&feature=emb_title
    Inside FINAL FANTASY VII REMAKE โ€“ Episode 4 Music and Sound Effects (Closed Captions) 1 mp4_snapshot_11 18_ 2020 04 09_12 07 38

    Tracy Profiler by @wolfpld
    https://github.com/wolfpld/tracy
    Tracy Profiler