Skip to content

v1.47

Compare
Choose a tag to compare
@ocornut ocornut released this 25 Dec 22:01
· 5893 commits to master since this release

progress_bar2

The Christmas Maintenance Release

Bundling changes that happened in the past two months. Some minor additions and mostly a bunch of useful fixes. Thanks to everyone trying to push the library in new directions, reporting issues and suggesting improvements! If you want to get your hands dirty ImGui can use your help (e.g. #435)! Your patronage and donations are also still very helpful.

Why the odd dual naming, "dear imgui" vs "ImGui"?

The library started its life and is best known as "ImGui" only due to the fact that I didn't give it a proper name when I released it. However, the term IMGUI (immediate-mode graphical user interface) was coined before and is being used in variety of other situations. It seemed confusing and unfair to hog the name. To reduce the ambiguity without affecting existing codebases, I have decided on an alternate, longer name "dear imgui" that people can use to refer to this specific library in ambiguous situations. Otherwise, you can just ignore that.

Patreon

  • Minor rebranding "ImGui" -> "dear imgui" as an optional first name to reduce ambiguity with IMGUI term. (#21)
  • Added ProgressBar(). (#333)
  • InputText(): Added ImGuiInputTextFlags_Password mode: hide display, disable logging/copying to clipboard. (#237, #363, #374)
  • Added GetColorU32() helper to retrieve color given enum with global alpha and extra applied.
  • Added ImGuiIO::ClearInputCharacters() superfluous helper.
  • Fixed ImDrawList draw command merging bug where using PopClipRect() along with PushTextureID()/PopTextureID() functions would occasionaly restore an incorrect clipping rectangle.
  • Fixed ImDrawList draw command merging so PushTextureID(XXX)/PopTextureID()/PushTextureID(XXX) sequence are now properly merged.
  • Fixed large popups positioning issues when their contents on either axis is larger than DisplaySize, and WindowPadding < DisplaySafeAreaPadding.
  • Fixed border rendering in various situations when using non-pixel aligned glyphs.
  • Fixed border rendering of windows to always contain the border within the window.
  • Fixed Shutdown() leaking font atlas data if NewFrame() was never called. (#396, #303)
  • Fixed int>void* warnings for 64-bits architectures with fancy warnings enabled.
  • Renamed the dubious Color() helpers to ValueColor() - dangerously named, rarely used and probably to be made obsolete.
  • InputText(): Fixed and better handling of using keyboard while mouse button if being held and dragging. (#429)
  • InputText(): Replace OS IME (Input Method Editor) cursor on top-left when we are not text editing.
  • TreeNode(), CollapsingHeader(), Bullet(), BulletText(): various sizing and layout fixes to better support laying out multiple item with different height on same line. (#414, #282)
  • Begin(): Initial window creation with ImGuiWindowFlags_NoBringToFrontOnFocus flag pushes it at the front of global window list.
  • BeginPopupContextWindow() and BeginPopupContextVoid() reopen window on subsequent click. (#439)
  • ColorEdit4(): Fixed broken tooltip on hovering the color button. (actually fixes #373, #380)
  • ImageButton(): uses FrameRounding up to a maximum of available framing size. (#394)
  • Columns: Fixed bug with indentation within columns, also making code a bit shorter/faster. (#414, #125)
  • Columns: Columns set with no implicit id include the columns count within the id to reduce collisions. (#125)
  • Columns: Removed one unnecessary allocation when columns are not used by a window. (#125)
  • ImFontAtlas: Tweaked GetGlyphRangesJapanese() so it is easier to modify.
  • ImFontAtlas: Updated stb_rect_pack.h to 0.08.
  • Metrics: Fixed computing ImDrawCmd bounding box when the draw buffer have been unindexed.
  • Demo: Added a simple "Property Editor" demo applet. (#125, #414)
  • Demo: Fixed assertion in "Custom Rendering" demo when holding both mouse buttons. (#393)
  • Demo: Lots of extra comments, fixes.
  • Demo: Tweaks to Style Editor.
  • Examples: Not clearing input data/tex data in atlas (will be required for dynamic atlas anyway).
  • Examples: Added /Zi (output debug information) to Win32 batch files.
  • Examples: Various fixes for resizing window and recreating graphic context.
  • Examples: OpenGL2/3: Save/restore viewport as part of default render function. (#392, #441).
  • Examples; OpenGL3: Fixed gl3w.c for Linux when compiled with a C++ compiler. (#411)
  • Examples: DirectX: Removed assumption about Unicode build in example main.cpp. (#399)
  • Examples: DirectX10: Added DirectX10 example. (#424)
  • Examples: DirectX11: Downgraded requirement from shader model 5.0 to 4.0. (#420)
  • Examples: DirectX11: Removed Debug flag from graphics context. (#415)
  • Examples: Added SDL+OpenGL3 example. (#356)

Gallery

Property Editor example

property_editor_2

Projects using ImGui

LuxCode GUI for LuxRender ( http://www.luxrender.net/ )

lux core

Avoyd (game) ( http://www.enkisoftware.com )

6fb30c6e-7c09-11e5-8555-6ff6a9239ce9

Curve Editor from Lumix Engine ( https://github.com/nem0/LumixEngine )

curve editor