Skip to content

v1.48

Compare
Choose a tag to compare
@ocornut ocornut released this 09 Apr 16:30
· 6480 commits to master since this release

End of winter release

Accumulation of various things! Try to stay vaguely up to date!
Click https://github.com/ocornut/imgui to see the project homepage.

Avoyd ( http://www.enkisoftware.com )
cfhonfbweaafsne jpg large
Scroll down for more user screenshots or see the screenshot threads (#539)

Patreon

Breaking Changes

  • Consistently honoring exact width passed to PushItemWidth() (when positive), previously it would add extra FramePadding.x*2 over that width. Some hand-tuned layout may be affected slightly. (#346)
  • Style: removed style.WindowFillAlphaDefault which was confusing and redundant, baked alpha into ImGuiCol_WindowBg color. If you had a custom WindowBg color but didn't change WindowFillAlphaDefault, multiply WindowBg alpha component by 0.7. Renamed ImGuiCol_TooltipBg to ImGuiCol_PopupBG, applies to other types of popups. bg_alpha parameter of 5-parameters version of Begin() is an override. (#337)
  • InputText(): Added BufTextLen field in ImGuiTextEditCallbackData. Requesting user to update it if the buffer is modified in the callback. Added a temporary length-check assert to minimize panic for the 3 people using the callback. (#541)
  • Renamed GetWindowFont() to GetFont(), GetWindowFontSize() to GetFontSize(). Kept inline redirection function (will obsolete). (#340)

All changes

  • Consistently honoring exact width passed to PushItemWidth(), previously it would add extra FramePadding.x*2 over that width. Some hand-tuned layout may be affected slightly. (#346)
  • Fixed clipping of child windows within parent not taking account of child outer clipping boundaries (including scrollbar, etc.). (#506)
  • TextUnformatted(): Fixed rare crash bug with large blurb of text (2k+) not finished with a '\n' and fully above the clipping Y line. (#535)
  • IO: Added 'KeySuper' field to hold Cmd keyboard modifiers for OS X. Updated all examples accordingly. (#473)
  • Added ImGuiWindowFlags_ForceVerticalScrollbar, ImGuiWindowFlags_ForceHorizontalScrollbar flags. (#476)
  • Added IM_COL32 macros to generate a U32 packed color, convenient for direct use of ImDrawList api. (#346)
  • Added GetFontTexUvWhitePixel() helper, convenient for direct use of ImDrawList api.
  • Selectable(): Added ImGuiSelectableFlags_AllowDoubleClick flag to allow user reacting on double-click. (@zapolnov) (#516)
  • Begin(): made the close button explicitly set the boolean to false instead of toggling it. (#499)
  • BeginChild()/EndChild(): fixed incorrect layout to allow widgets submitted after an auto-fitted child window. (#540)
  • BeginChild(): Added ImGuiWindowFlags_AlwaysUseWindowPadding flag to ensure non-bordered child window uses window padding. (#462)
  • Fixed InputTextMultiLine(), ListBox(), BeginChildFrame(), ProgressBar(): outer frame not honoring bordering. (#462, #503)
  • Fixed Image(), ImageButtion() rendering a rectangle 1 px too large on each axis. (#457)
  • SetItemAllowOverlap(): Promoted from imgui_internal.h to public imgui.h api. (#517)
  • Combo(): Right-most button stays highlighted when popup is open.
  • Combo(): Display popup above if there's isn't enough space below / or select largest side. (#505)
  • DragFloat(), SliderFloat(), InputFloat(): fixed cases of erroneously returning true repeatedly after a text input modification (e.g. "0.0" --> "0.000" would keep returning true). (#564)
  • DragFloat(): Always apply value when mouse is held/widget active, so that an always-reseting variable (e.g. non saved local) can be passed.
  • InputText(): OS X friendly behaviors: Word movement uses Alt key; Shortcuts uses Cmd key; Double-clicking text select a single word; Jumping to next word sets cursor to end of current word instead of beginning of current word. (@zhiayang), (#473)
  • InputText(): Added BufTextLen in ImGuiTextEditCallbackData. Requesting user to maintain it if buffer is modified. Zero-ing structure properly before use. (#541)
  • CheckboxFlags(): Added support for testing/setting multiple flags at the same time. (@DMartinek) (#555)
  • TreeNode(), CollapsingHeader() fixed not being able to use "##" sequence in a formatted label.
  • ColorEdit4(): Empty label doesn't add InnerSpacing.x, matching behavior of other widgets. (#346)
  • ColorEdit4(): Removed unnecessary calls to scanf() when idle in hexadecimal edit mode.
  • BeginPopupContextItem(), BeginPopupContextWindow(): added early out optimization.
  • CaptureKeyboardFromApp() / CaptureMouseFromApp(): added argument to allow clearing the capture flag. (#533)
  • ImDrawList: Fixed index-overflow check broken by AddText() casting current index back to ImDrawIdx. (#514)
  • ImDrawList: Fixed incorrect removal of trailing draw command if it is a callback command.
  • ImDrawList: Allow windows with only a callback only to be functional. (#524)
  • ImDrawList: Fixed ImDrawList::AddRect() which used to render a rectangle 1 px too large on each axis. (#457)
  • ImDrawList: Fixed ImDrawList::AddCircle() to fit precisely within bounding box like AddCircleFilled() and AddRectFilled(). (#457)
  • ImDrawList: AddCircle(), AddRect() takes optional thickness parameter.
  • ImDrawList: Added AddTriangle().
  • ImDrawList: Added PrimQuadUV() helper to ease custom rendering of textured quads (require primitive reserve).
  • ImDrawList: Allow AddText(ImFont* font, float font_size, ...) variant to take NULL/0.0f as default.
  • ImFontAtlas: heuristic increase default texture width up for large number of glyphs. (#491)
  • ImTextBuffer: Fixed empty() helper which was utterly broken.
  • Metrics: allow to inspect individual triangles in drawcalls.
  • Demo: added more draw primitives in the Custom Rendering example. (#457)
  • Demo: extra comments and example for PushItemWidth(-1) patterns.
  • Demo: InputText password demo filters out blanks. (#515)
  • Demo: Fixed malloc/free mismatch and leak when destructing demo console, if it has been used. (@fungos) (#536)
  • Demo: plot code doesn't use ImVector to avoid heap allocation and be more friendly to custom allocator users. (#538)
  • Fixed compilation on DragonFly BSD (@mneumann) (#563)
  • Examples: Vulkan: Added a Vulkan example (@Loftilus) (#549)
  • Examples: DX10, DX11: Saving/restoring most device state so dropping render function in your codebase shouldn't have DX device side-effects. (#570)
  • Examples: DX10, DX11: Fixed ImGui_ImplDX??_NewFrame() from recreating device objects if render isn't called (g_pVB not set).
  • Examples: OpenGL3: Fix BindVertexArray/BindBuffer order. (@nlguillemot) (#527)
  • Examples: OpenGL: skip rendering and calling glViewport() if we have zero-fixed buffer. (#486)
  • Examples: SDL2+OpenGL3: Fix context creation options. Made ImGui_ImplSdlGL3_NewFrame() signature match GL2 one. (#468, #463)
  • Examples: SDL2+OpenGL2/3: Fix for high-dpi displays. (@nickgravelyn)
  • Various extra comments and clarification in the code.
  • Various other fixes and optimisations.

Gallery

Projects using ImGui

Virtualkc emulator ( http://floooh.github.io/virtualkc
f7ebafc4-f8e0-11e5-8f12-a037ec9e9b0b

Shinobi editor
cfgu6o6w4aa6y-b jpg large

Material editor thing
imgui_eg2

Lumote editor ( http://www.luminawesome.com )
3f8caedc-f021-11e5-8709-90c8ea7df1c0

TEMU / TPU Emulator ( see blog post http://labs.domipheus.com/blog/dear-imgui-thanks-the-tpu-emulator )
ce3i8ciukaa7i5o jpg large

Visual Designer 3D ( http://www.vd-3d.com )
overview

OdenVR ( http://odenvr.com/ )
55e766f6-d9a4-11e5-9d30-419f0f2576e2