All Versions
13
Latest Version
Avg Release Cycle
43 days
Latest Release
47 days ago

Changelog History
Page 1

  • v1.74

    December 12, 2019

    ⚡️ Updates:

    • kotlin 1.3.61
    • lwjgl 3.2.3
    • gradle 6.0.1
    • shadow 5.2.0
    • 👕 kotlintest 3.4.2

    🔄 Changelogs:

    🚀 This is a general release, keeping with the rhythm of having more frequent, smaller releases.

    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!

    Thanks for the last help:

    👍 @Sylvyrfysh (support help and coding)
    👍 @exuvo (support help)
    @yuraj11 and @ebak for donating

    and all the others opening issues and help tracking down bugs

    TL;DR;

    • ✂ Removed redirecting functions/enums names which were marked obsolete in 1.52 (October 2017). (it doesnt affect our port, we never keep them)
    • 🛠 Quantity of fixes.
    • 👌 Improved readme, docs, links, wiki hub.
    • 👌 Improved our continuous integration and testing suite.

    💥 Breaking Changes:

    • 🛠 Inputs: Fixed a miscalculation in the keyboard/mouse "typematic" repeat delay/rate calculation, used by keys and e.g. repeating mouse buttons as well as the GetKeyPressedAmount() function.
      0️⃣ If you were using a non-default value for io.KeyRepeatRate (previous default was 0.250), you can add +io.KeyRepeatDelay to it to compensate for the fix.
      🛠 The function was triggering on: 0.0 and (delay+rate*N) where (N>=1). Fixed formula responds to (N>=0).
      Effectively it made io.KeyRepeatRate behave like it was set to (io.KeyRepeatRate + io.KeyRepeatDelay).
      🛠 Fixed the code and altered default io.KeyRepeatRate,Delay from 0.250,0.050 to 0.300,0.050 to compensate.
      If you never altered io.KeyRepeatRate nor used GetKeyPressedAmount() this won't affect you.
    • Fonts: FontAtlas::addCustomRectRegular() now requires an ID larger than 0x110000 (instead of 0x10000) to
      ⚡️ conform with supporting Unicode planes 1-16 in a future update. ID below 0x110000 will now assert.

    Other Changes:

    • 🛠 InputText, Nav: Fixed Home/End key broken when activating Keyboard Navigation. (#787)
    • InputText: Filter out ASCII 127 (DEL) emitted by low-level OSX layer, as we are using the Key value. (#2578)
    • 🛠 Layout: Fixed a couple of subtle bounding box vertical positioning issues relating to the handling of text baseline alignment. The issue would generally manifest when laying out multiple items on a same line, with varying heights and text baseline offsets. Some specific examples, e.g. a button with regular frame padding followed by another item with a multi-line label and no frame padding, such as: multi-line text, small button, tree node item, etc. The second item was correctly offset to match text baseline, and would interact/display correctly, but it wouldn't push the contents area boundary low enough.
    • 🛠 Scrollbar: Fixed an issue where scrollbars wouldn't display on the frame following a frame where all child window contents would be culled.
    • 🛠 ColorPicker: Fixed SV triangle gradient to block (broken in 1.73). (#2864, #2711). [@lewa-j]
    • 🛠 TreeNode: Fixed combination of TreeNodeFlag.SpanFullWidth and TreeNodeFlag.OpenOnArrow incorrectly locating the arrow hit position to the left of the frame. (#2451, #2438, #1897)
    • TreeNode: The collapsing arrow accepts click even if modifier keys are being held, facilitating interactions with custom multi-selections patterns. (#2886, #1896, #1861)
    • TreeNode: Added IsItemToggledOpen() to explicitly query if item was just open/closed, facilitating interactions with custom multi-selections patterns. (#1896, #1861)
    • DragScalar, SliderScalar, InputScalar: Added p_ prefix to parameter that are pointers to the data to clarify how they are used, and more comments redirecting to the demo code. (#2844)
    • Error handling: Assert if user mistakenly calls End() instead of EndChild() on a child window. (#1651)
    • 📄 Docs: Improved and moved FAQ to docs/FAQ.md so it can be readable on the web. [@ButternCream, @ocornut]
    • 📄 Docs: Moved misc/fonts/README.txt to docs/FONTS.txt.
    • 📄 Docs: Added permanent redirect from https://www.dearimgui.org/faq to FAQ page.
    • Demo: Added simple item reordering demo in Widgets -> Drag and Drop section. (#2823, #143) [@rokups]
    • Metrics: Show wire-frame mesh and approximate surface area when hovering ImDrawCmd. [@ShironekoBen]
    • Metrics: Expose basic details of each window key/value state storage.
    • 🏗 Backends: OpenGL3: Fix building with pre-3.2 GL loaders which do not expose glDrawElementsBaseVertex(), using runtime GL version to decide if we set ImGuiBackendFlags_RendererHasVtxOffset. (#2866, #2852) [@dpilawa]
    • Backends: OSX: Fix using Backspace key. (#2578, #2817, #2818) [@DiligentGraphics]
  • v1.71

    August 19, 2019

    🚀 Monthly release!

    🚀 This is a general release following 1.70, keeping with the rhythm of having more frequent, smaller releases. 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!

    TL;DR;

    • 👀 Made SetNextWindowContentSize() actually useful (see details below).
    • 🛠 Fixes for tree nodes, collapsing headers, tab bars, columns inside an horizontally scrolling region.
    • 🔀 Dozens of other fixes and small additions. Also synched the Docking branch accordingly.

    💥 Breaking Changes

    • IO: changed io.AddInputCharacter(unsigned short c) signature to io.AddInputCharacter(unsigned int c).
    • 📇 Renamed SetNextTreeNodeOpen() to SetNextItemOpen(). Kept inline redirection function (will obsolete).
    • 🏁 Window: rendering of child windows outer decorations (e.g. bg color, border, scrollbars) is now performed as part of their parent window, avoiding the creation of an extraneous draw commands. If you have overlapping child windows with decorations, and relied on their relative z-order to be mapped to submission their order, this will affect your rendering. The optimization is disabled if the parent window has no visual output because it appears to be the most common situation leading to the creation of overlapping child windows. Please reach out if you are affected by this change!

    Other Changes:

    • 🏁 Window: clarified behavior of SetNextWindowContentSize(). Content size is defined as the size available after removal of WindowPadding on each sides. So SetNextWindowContentSize(ImVec2(100,100)) + auto-resize will always allow submitting a 100x100 item without creating a scrollbar, regarding of the WindowPadding value. The exact meaning of ContentSize for decorated windows was previously ill-defined.
    • 🛠 Window: Fixed auto-resize with AlwaysVerticalScrollbar or AlwaysHorizontalScrollbar flags.
    • 🛠 Window: Fixed one case where auto-resize by double-clicking the resize grip would make either scrollbar appear for a single frame after the resize.
    • ⏪ Separator: Revert 1.70 "Declare its thickness (1.0f) to the layout" change. It's not incorrect but it breaks existing some layout patterns. Will return back to it when we expose Separator flags.
    • 🛠 Fixed InputScalar, InputScalarN, SliderScalarN, DragScalarN with non-visible label from inserting style.ItemInnerSpacing.x worth of trailing spacing.
    • 🛠 Fixed InputFloatX, SliderFloatX, DragFloatX functions erroneously reporting IsItemEdited() multiple times when the text input doesn't match the formatted output value (e.g. input "1" shows "1.000"). It wasn't much of a problem because we typically use the return value instead of IsItemEdited() here.
    • 🛠 Fixed uses of IsItemDeactivated(), IsItemDeactivatedAfterEdit() on multi-components widgets and after EndGroup(). (#2550, #1875)
    • 🛠 Fixed crash when appending with BeginMainMenuBar() more than once and no other window are showing. (#2567)
    • 🛠 ColorEdit: Fixed the color picker popup only displaying inputs as HSV instead of showing multiple options. (#2587, broken in 1.69 by #2384).
    • 👍 CollapsingHeader: Better clipping when a close button is enabled and it overlaps the label. (#600)
    • Scrollbar: Minor bounding box adjustment to cope with various border size.
    • 💅 Scrollbar, Style: Changed default style.ScrollbarSize from 16 to 14.
    • 🛠 Combo: Fixed rounding not applying with the ImGuiComboFlags_NoArrowButton flag. (#2607) [@DucaRii]
    • 🚚 Nav: Fixed gamepad/keyboard moving of window affecting contents size incorrectly, sometimes leading to -scrollbars appearing during the movement.
    • 🚀 Nav: Fixed rare crash when e.g. releasing Alt-key while focusing a window with a menu at the same frame as clearing the focus. This was in most noticeable in back-ends such as Glfw and SDL which emits key release events when focusing another viewport, leading to Alt+clicking on void on another viewport triggering the issue. (#2609)
    • 🛠 TreeNode, CollapsingHeader: Fixed highlight frame not covering horizontal area fully when using horizontal scrolling. (#2211, #2579)
    • 🛠 TabBar: Fixed BeginTabBar() within a window with horizontal scrolling from creating a feedback loop with the horizontal contents size.
    • 🛠 Columns: Fixed Columns() within a window with horizontal scrolling from not covering the full horizontal area (previously only worked with an explicit contents size). (#125)
    • 🛠 Columns: Fixed Separator() from creating an extraneous draw command. (#125)
    • 🛠 Columns: Fixed Selectable() with ImGuiSelectableFlags_SpanAllColumns from creating an extraneous draw command. (#125)
    • 💅 Style: Added style.WindowMenuButtonPosition (left/right, defaults to ImGuiDir_Left) to move the collapsing/docking button to the other side of the title bar.
    • 💅 Style: Made window close button cross slightly smaller.
    • 🛠 Log/Capture: Fixed BeginTabItem() label not being included in a text log/capture.
    • 👍 ImDrawList: Added ImDrawCmd::VtxOffset value to support large meshes (64k+ vertices) using 16-bits indices. The renderer back-end needs to set io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset to enable this, and honor the ImDrawCmd::VtxOffset field. Otherwise the value will always be zero. This has the advantage of preserving smaller index buffers and allowing to execute on hardware that do not support 32-bits indices. Most examples back-ends have been modified to support the VtxOffset field. (not on JVM)
    • ImDrawList: Added ImDrawCmd::IdxOffset value, equivalent to summing element count for each draw command. This is provided for convenience and consistency with VtxOffset.
    • ImDrawCallback: Allow to override the signature of ImDrawCallback by #define-ing it. This is meant to facilitate custom rendering back-ends passing local render-specific data to the draw callback.
    • ImFontAtlas: FreeType: Added RasterizerFlags::Monochrome flag to disable font anti-aliasing. Combine with RasterizerFlags::MonoHinting for best results. (#2545) [@HolyBlackCat]
    • 🛠 ImFontGlyphRangesBuilder: Fixed unnecessarily over-sized buffer, which incidentally was also not fully cleared. Fixed edge-case overflow when adding character 0xFFFF. (#2568). [@NIKE3500]
    • 🏁 Demo: Added full "Dear ImGui" prefix to the title of "Dear ImGui Demo" and "Dear ImGui Metrics" windows.
    • 👍 Examples/Backends: Don't filter characters under 0x10000 before calling io.AddInputCharacter(), the filtering is done in io.AddInputCharacter() itself. This is in prevision for fuller Unicode support. (#2538, #2541)
  • v1.70

    June 13, 2019

    Hello!

    🚀 In spite of the greaaat looking version number, this is a general release following 1.69, keeping with the rhythm of having more frequent, smaller releases. 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 features that you've been ignoring until now!

    👀 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.
    👍 Issues and support: https://github.com/ocornut/imgui/issues
    👍 Technical support for new users: https://discourse.dearimgui.org (also search in GitHub Issues)
    Thank you

    👀 Ongoing work on dear imgui is currently being sponsored by Blizzard Entertainment + general & community work by many individual users, hobbyists and studios. See the readme for details. Huge thank you to all of you, past and present supporters! You help is very meaningful.
    TL;DR;

    • 🚀 First release since new multi-module structure (JVM specific)
    • ➕ Added DrawCmd.resetRenderState to request back-end renderer to reset its render state, in a standardized manner.
    • Layout: Added SetNextItemWidth() helper to avoid using PushItemWidth()/PopItemWidth() for single items.
    • ⏪ Popups: Closing a popup restores the focused/nav window in place at the time of the popup opening, instead of restoring the window that was in the window stack at the time of the OpenPopup call. (#2517).
    • 🛠 Examples: Vulkan: Various fixes.
    • 🛠 Many many other fixes, improvements, small additions. Read below!

    💥 Breaking Changes

    • ImDrawList: Improved algorithm for mitre joints on thick lines, preserving correct thickness up to 90 degrees angles (e.g. rectangles). If you have custom rendering using thick lines, they will appear a little thicker now (about +30%). (#2518) [@rmitton]
    • Obsoleted GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead! Kept inline redirection function.
    • Examples Vulkan:
    • imgui_impl_vulkan: Added MinImageCount/ImageCount fields in ImGui_ImplVulkan_InitInfo, required during initialization to specify the number of in-flight image requested by swap chains. (was previously a hard #define IMGUI_VK_QUEUED_FRAMES 2). (#2071, #1677) [@nathanvoglsam]
    • Tidying up the demo/internals helpers (most engine/app should not rely on them but it is possible you have!).

    Other Changes:

    • 🚚 ImDrawList: Added DrawCmd.resetRenderState to request the renderer back-end to reset its render state. (#2037, #1639, #2452). Added support for ImDrawCallback_ResetRenderState in all renderer back-ends. Each renderer code setting up initial render state has been moved to a function so it could be called at the start of rendering and when a ResetRenderState is requested. [@ocornut, @bear24rw]
    • InputText:
    • 🛠 Fixed selection background rendering one frame after the cursor movement when first transitioning from no-selection to has-selection. (Bug in 1.69) (#2436) [@Nazg-Gul]
    • 🖨 Work-around for buggy standard libraries where isprint('\t') returns true. (#2467, #1336)
    • 🛠 Fixed ImGuiInputTextFlags_AllowTabInput leading to two tabs characters being inserted if the back-end provided both Key and Character input. (#2467, #1336)
    • Layout:
    • ➕ Added SetNextItemWidth() helper to avoid using PushItemWidth()/PopItemWidth() for single items. Note that SetNextItemWidth() currently only affect the same subset of items as PushItemWidth(), generally referred to as the large framed+labeled items. Because the new SetNextItemWidth() function is explicit we may later extend its effect to more items.
    • 🛠 Fixed PushItemWidth(-width) for right-side alignment laying out some items (button, listbox, etc.) with negative sizes if the 'width' argument was smaller than the available width at the time of item submission.
    • Window:
    • 🛠 Fixed window with the ImGuiWindowFlags_AlwaysAutoResize flag unnecessarily extending their hovering boundaries by a few pixels (this is used to facilitate resizing from borders when available for a given window). One of the noticeable minor side effect was that navigating menus would have had a tendency to disable highlight from parent menu items earlier than necessary while approaching the child menu.
    • 💅 Close button is horizontally aligned with style.FramePadding.x.
    • 🛠 Fixed contents region being off by WindowBorderSize amount on the right when scrollbar is active.
    • 🛠 Fixed SetNextWindowSizeConstraints() with non-rounded positions making windows drift. (#2067, #2530)
    • Popups:
    • ⏪ Closing a popup restores the focused/nav window in place at the time of the popup opening, instead of restoring the window that was in the window stack at the time of the OpenPopup call. (#2517). Among other things, this allows opening a popup while no window are focused, and pressing Escape to clear the focus again.
    • 🛠 Fixed right-click from closing all popups instead of aiming at the hovered popup level (regression in 1.67).
    • 👍 Selectable: With ImGuiSelectableFlags_AllowDoubleClick doesn't return true on the mouse button release following the double-click. Only first mouse release + second mouse down (double-click) returns true. Likewise for internal ButtonBehavior() with both _PressedOnClickRelease | _PressedOnDoubleClick. (#2503)
    • 🚀 GetMouseDragDelta(): also returns the delta on the mouse button released frame. (#2419)
    • GetMouseDragDelta(): verify that mouse positions are valid otherwise returns zero.
    • 👍 Inputs: Support for horizontal scroll with Shift+Mouse Wheel. (#2424, #1463) [@LucaRood]
    • PlotLines, PlotHistogram: Ignore NaN values when calculating min/max bounds. (#2485)
    • 🛠 Columns: Fixed boundary of clipping being off by 1 pixel within the left column. (#125)
    • Separator: Declare its thickness (1.0f) to the layout, making items on both ends of a separator look more symmetrical.
    • Combo, Slider, Scrollbar: Improve rendering in situation when there's only a few pixels available (<3 pixels).
    • 🛠 Nav: Fixed Drag/Slider functions going into text input mode when keyboard CTRL is held while pressing NavActivate.
    • 🛠 Drag and Drop: Fixed drag source with ImGuiDragDropFlags_SourceAllowNullID and null ID from receiving click regardless of being covered by another window (it didn't honor correct hovering rules). (#2521)
    • ImDrawList: Improved algorithm for mitre joints on thick lines, preserving correct thickness up to 90 degrees angles, also faster to output. (#2518) [@rmitton]
    • 🏁 Metrics: Added "Show windows rectangles" tool to visualize the different rectangles.
    • Demo: Improved trees in columns demo.
    • Examples:
    • OpenGL3: Minor tweaks + not calling glBindBuffer more than necessary in the render loop.
    • Vulkan:
    • 🛠 Fixed in-flight buffers issues when using multi-viewports. (#2461, #2348, #2378, #2097)
    • ➕ Added missing support for 32-bit indices (#define ImDrawIdx unsigned int).
    • Avoid passing negative coordinates to vkCmdSetScissor, which debug validation layers do not like.
    • Added ImGui_ImplVulkan_SetMinImageCount() to change min image count at runtime. (#2071) [@nathanvoglsam]
  • v1.69

    May 04, 2019

    🚀 This is a general release, keeping with the beat of having more frequent, smaller releases. 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 features to explore that you've been ignoring until now!

    TL;DR;

    • ➕ Added native support for u8/s8/u16/s16 data types in DragScalar, InputScalar, SliderScalar functions. [still WIP on JVM]
    • ➕ Added GetBackgroundDrawList() helper to easily submit draw list primitives behind every windows.
    • ➕ Added InputTextWithHint() to display a greyed out message when an input field is empty.
    • ➕ Added ImGuiColorEditFlags_InputHSV to edit HSV colors without internal RGB<>HSV roundtrips.
    • 💻 Various fixes in the LogXXX functions to capture UI as text.
    • 🛠 Examples: OpenGL: Fixes to support GL ES 2.0 (WebGL 1.0).
    • 🛠 Dozens of other fixes and improvements.

    InputTextWithHint()
    image

    ImGuiDataType_S8/ImGuiDataType_U8/ImGuiDataType_S16/ImGuiDataType_U16 [still WIP on JVM]
    image

    GetBackgroundDrawList()
    image

    💥 Breaking Changes

    • Renamed ColorEdit/ColorPicker's ImGuiColorEditFlags_RGB/_HSV/_HEX flags to respectively ImGuiColorEditFlags_DisplayRGB/_DisplayHSV/_DisplayHex. This is because the addition of new flag ImGuiColorEditFlags_InputHSV makes the earlier one ambiguous. Keep redirection enum values (will obsolete). (#2384) [@haldean]
    • 📇 Renamed GetOverlayDrawList() to GetForegroundDrawList(). Kept redirection function (will obsolete). (#2391)

    Other Changes:

    • ➕ Added GetBackgroundDrawList() helper to quickly get access to a ImDrawList that will be rendered behind every other windows. (#2391, #545)
    • 👍 DragScalar, InputScalar, SliderScalar: Added support for u8/s8/u16/s16 data types (ImGuiDataType_S8 etc.). We are reusing function instances of larger types to reduce code size. (#643, #320, #708, #1011)
    • ➕ Added InputTextWithHint() to display a description/hint in the text box when no text has been entered. (#2400) [@Organic-Code, @ocornut]
    • 🛠 Nav: Fixed a tap on AltGR (e.g. German keyboard) from navigating to the menu layer.
    • 🛠 Nav: Fixed Ctrl+Tab keeping active InputText() of a previous window active after the switch. (#2380)
    • 🛠 Fixed IsItemDeactivated()/IsItemDeactivatedAfterEdit() from not correctly returning true when tabbing out of a focusable widget (Input/Slider/Drag) in most situations. (#2215, #1875)
    • 💅 InputInt, InputFloat, InputScalar: Fix to keep the label of the +/- buttons centered when style.FramePadding.x is abnormally larger than style.FramePadding.y. Since the buttons are meant to be square (to align with e.g. color button) we always use FramePadding.y. (#2367)
    • InputInt, InputScalar: +/- buttons now respects the natural type limits instead of overflowing or underflowing the value.
    • 🛠 InputText: Fixed an edge case crash that would happen if another widget sharing the same ID is being swapped with an InputText that has yet to be activated.
    • 🛠 InputText: Fixed various display corruption related to swapping the underlying buffer while a input widget is active (both for writable and read-only paths). Often they would manifest when manipulating the scrollbar of a multi-line input text.
    • ColorEdit, ColorPicker, ColorButton: Added ImGuiColorEditFlags_InputHSV to manipulate color values encoded as HSV (in order to avoid HSV<>RGB round trips and associated singularities). (#2383, #2384) [@haldean]
    • 🛠 ColorPicker: Fixed a bug/assertion when displaying a color picker in a collapsed window while dragging its title bar. (#2389)
    • 🛠 ColorEdit: Fixed tooltip not honoring the ImGuiColorEditFlags_NoAlpha contract of never reading the 4th float in the array (value was read and discarded). (#2384) [@haldean]
    • 🛠 MenuItem, Selectable: Fixed disabled widget interfering with navigation (fix c2db7f6 in 1.67).
    • 🛠 TabBar: Fixed a crash when using many BeginTabBar() recursively (didn't affect docking). (#2371)
    • TabBar: Added extra mis-usage error recovery. Past the assert, common mis-usage don't lead to hard crashes any more, facilitating integration with scripting languages. (#1651)
    • 🛠 TabBar: Fixed ImGuiTabItemFlags_SetSelected being ignored if the tab is not visible (with scrolling policy enabled) or if is currently appearing.
    • 🛰 TabBar: Fixed Tab tooltip code making drag and drop tooltip disappear during the frame where the drag payload activate a tab.
    • TabBar: Reworked scrolling policy (when ImGuiTabBarFlags_FittingPolicyScroll is set) to teleport the view when aiming at a tab far away the visible section, and otherwise accelerate the scrolling speed to cap the scrolling time to 0.3 seconds.
    • 🛠 Text: Fixed large Text/TextUnformatted calls not declaring their size into layout when starting below the lower point of the current clipping rectangle. Somehow this bug has been there since v1.0! It was hardly noticeable but would affect the scrolling range, which in turn would affect some scrolling request functions when called during the appearing frame of a window.
    • 🛠 Plot: Fixed divide-by-zero in PlotLines() when passing a count of 1. (#2387) [@Lectem]
    • 🛠 Log/Capture: Fixed LogXXX functions emitting an extraneous leading carriage return.
    • 🛠 Log/Capture: Fixed an issue when empty string on a new line would not emit a carriage return.
    • Log/Capture: Fixed LogXXX functions 'auto_open_depth' parameter being treated as an absolute tree depth instead of a relative one.
    • 🛠 Log/Capture: Fixed CollapsingHeader trailing ascii representation being "#" instead of "##".
    • ImFont: Added GetGlyphRangesVietnamese() helper. (#2403)
    • 💅 Misc: Asserting in NewFrame() if style.WindowMinSize is zero or smaller than (1.0f,1.0f).
    • Demo: Using GetBackgroundDrawList() and GetForegroundDrawList() in "Custom Rendering" demo.
    • Demo: InputText: Demonstrating use of ImGuiInputTextFlags_CallbackResize. (#2006, #1443, #1008).
    • 🏁 Examples: GLFW, SDL: Preserve DisplayFramebufferScale when main viewport is minimized. (This is particularly useful for the viewport branch because we are not supporting per-viewport frame-buffer scale. It fixes windows not refreshing when main viewport is minimized.) (#2416)
    • Examples: OpenGL: Fix to be able to run on ES 2.0 / WebGL 1.0. [@rmitton, @gabrielcuvillier]
    • Examples: OpenGL: Fix for OSX not supporting OpenGL 4.5, we don't try to read GL_CLIP_ORIGIN even if the OpenGL headers/loader happens to define the value. (#2366, #2186)
  • v1.69-build

    May 04, 2019

    🚀 This is a general release, keeping with the beat of having more frequent, smaller releases. 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 features to explore that you've been ignoring until now!

    TL;DR;

    • ➕ Added native support for u8/s8/u16/s16 data types in DragScalar, InputScalar, SliderScalar functions. [still WIP on JVM]
    • ➕ Added GetBackgroundDrawList() helper to easily submit draw list primitives behind every windows.
    • ➕ Added InputTextWithHint() to display a greyed out message when an input field is empty.
    • ➕ Added ImGuiColorEditFlags_InputHSV to edit HSV colors without internal RGB<>HSV roundtrips.
    • 💻 Various fixes in the LogXXX functions to capture UI as text.
    • 🛠 Examples: OpenGL: Fixes to support GL ES 2.0 (WebGL 1.0).
    • 🛠 Dozens of other fixes and improvements.

    InputTextWithHint()
    image

    ImGuiDataType_S8/ImGuiDataType_U8/ImGuiDataType_S16/ImGuiDataType_U16 [still WIP on JVM]
    image

    GetBackgroundDrawList()
    image

    💥 Breaking Changes

    • Renamed ColorEdit/ColorPicker's ImGuiColorEditFlags_RGB/_HSV/_HEX flags to respectively ImGuiColorEditFlags_DisplayRGB/_DisplayHSV/_DisplayHex. This is because the addition of new flag ImGuiColorEditFlags_InputHSV makes the earlier one ambiguous. Keep redirection enum values (will obsolete). (#2384) [@haldean]
    • 📇 Renamed GetOverlayDrawList() to GetForegroundDrawList(). Kept redirection function (will obsolete). (#2391)

    Other Changes:

    • ➕ Added GetBackgroundDrawList() helper to quickly get access to a ImDrawList that will be rendered behind every other windows. (#2391, #545)
    • 👍 DragScalar, InputScalar, SliderScalar: Added support for u8/s8/u16/s16 data types (ImGuiDataType_S8 etc.). We are reusing function instances of larger types to reduce code size. (#643, #320, #708, #1011)
    • ➕ Added InputTextWithHint() to display a description/hint in the text box when no text has been entered. (#2400) [@Organic-Code, @ocornut]
    • 🛠 Nav: Fixed a tap on AltGR (e.g. German keyboard) from navigating to the menu layer.
    • 🛠 Nav: Fixed Ctrl+Tab keeping active InputText() of a previous window active after the switch. (#2380)
    • 🛠 Fixed IsItemDeactivated()/IsItemDeactivatedAfterEdit() from not correctly returning true when tabbing out of a focusable widget (Input/Slider/Drag) in most situations. (#2215, #1875)
    • 💅 InputInt, InputFloat, InputScalar: Fix to keep the label of the +/- buttons centered when style.FramePadding.x is abnormally larger than style.FramePadding.y. Since the buttons are meant to be square (to align with e.g. color button) we always use FramePadding.y. (#2367)
    • InputInt, InputScalar: +/- buttons now respects the natural type limits instead of overflowing or underflowing the value.
    • 🛠 InputText: Fixed an edge case crash that would happen if another widget sharing the same ID is being swapped with an InputText that has yet to be activated.
    • 🛠 InputText: Fixed various display corruption related to swapping the underlying buffer while a input widget is active (both for writable and read-only paths). Often they would manifest when manipulating the scrollbar of a multi-line input text.
    • ColorEdit, ColorPicker, ColorButton: Added ImGuiColorEditFlags_InputHSV to manipulate color values encoded as HSV (in order to avoid HSV<>RGB round trips and associated singularities). (#2383, #2384) [@haldean]
    • 🛠 ColorPicker: Fixed a bug/assertion when displaying a color picker in a collapsed window while dragging its title bar. (#2389)
    • 🛠 ColorEdit: Fixed tooltip not honoring the ImGuiColorEditFlags_NoAlpha contract of never reading the 4th float in the array (value was read and discarded). (#2384) [@haldean]
    • 🛠 MenuItem, Selectable: Fixed disabled widget interfering with navigation (fix c2db7f6 in 1.67).
    • 🛠 TabBar: Fixed a crash when using many BeginTabBar() recursively (didn't affect docking). (#2371)
    • TabBar: Added extra mis-usage error recovery. Past the assert, common mis-usage don't lead to hard crashes any more, facilitating integration with scripting languages. (#1651)
    • 🛠 TabBar: Fixed ImGuiTabItemFlags_SetSelected being ignored if the tab is not visible (with scrolling policy enabled) or if is currently appearing.
    • 🛰 TabBar: Fixed Tab tooltip code making drag and drop tooltip disappear during the frame where the drag payload activate a tab.
    • TabBar: Reworked scrolling policy (when ImGuiTabBarFlags_FittingPolicyScroll is set) to teleport the view when aiming at a tab far away the visible section, and otherwise accelerate the scrolling speed to cap the scrolling time to 0.3 seconds.
    • 🛠 Text: Fixed large Text/TextUnformatted calls not declaring their size into layout when starting below the lower point of the current clipping rectangle. Somehow this bug has been there since v1.0! It was hardly noticeable but would affect the scrolling range, which in turn would affect some scrolling request functions when called during the appearing frame of a window.
    • 🛠 Plot: Fixed divide-by-zero in PlotLines() when passing a count of 1. (#2387) [@Lectem]
    • 🛠 Log/Capture: Fixed LogXXX functions emitting an extraneous leading carriage return.
    • 🛠 Log/Capture: Fixed an issue when empty string on a new line would not emit a carriage return.
    • Log/Capture: Fixed LogXXX functions 'auto_open_depth' parameter being treated as an absolute tree depth instead of a relative one.
    • 🛠 Log/Capture: Fixed CollapsingHeader trailing ascii representation being "#" instead of "##".
    • ImFont: Added GetGlyphRangesVietnamese() helper. (#2403)
    • 💅 Misc: Asserting in NewFrame() if style.WindowMinSize is zero or smaller than (1.0f,1.0f).
    • Demo: Using GetBackgroundDrawList() and GetForegroundDrawList() in "Custom Rendering" demo.
    • Demo: InputText: Demonstrating use of ImGuiInputTextFlags_CallbackResize. (#2006, #1443, #1008).
    • 🏁 Examples: GLFW, SDL: Preserve DisplayFramebufferScale when main viewport is minimized. (This is particularly useful for the viewport branch because we are not supporting per-viewport frame-buffer scale. It fixes windows not refreshing when main viewport is minimized.) (#2416)
    • Examples: OpenGL: Fix to be able to run on ES 2.0 / WebGL 1.0. [@rmitton, @gabrielcuvillier]
    • Examples: OpenGL: Fix for OSX not supporting OpenGL 4.5, we don't try to read GL_CLIP_ORIGIN even if the OpenGL headers/loader happens to define the value. (#2366, #2186)
  • v1.68.01

    March 01, 2019

    v1.68.1 beta 0

    • Lwjgl 3.2.2-3
    • Shadow 4.0.4
    • Kotlin 1.3.21
    • 👕 Kotlintest 3.2.1
    • Gradle 5.2.1

    Special thanks to @Sylvyrfysh for:

    • 🍎 GL2 backend, MacOS support
    • custom rendering
    • bezier curves
  • v1.68.01-00

    March 01, 2019

    v1.68.1 beta 0

    • Lwjgl 3.2.2-3
    • Shadow 4.0.4
    • Kotlin 1.3.21
    • 👕 Kotlintest 3.2.1
    • Gradle 5.2.1

    Special thanks to @Sylvyrfysh for:

    • 🍎 GL2 backend, MacOS support
    • custom rendering
    • bezier curves
  • v1.67

    January 20, 2019

    🆕 New Features:

    • drag & dropping
    • tabs
  • v1.67-beta

    January 20, 2019

    🆕 New Features:

    • drag & dropping
    • tabs
  • v1.63

    September 23, 2018

    🛠 Fixed memory leak