"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "docs/CHANGELOG.txt" between
imgui-1.86.tar.gz and imgui-1.87.tar.gz

About: Dear ImGui is a bloat-free Graphical User Interface for C++ with minimal dependencies.

CHANGELOG.txt  (imgui-1.86):CHANGELOG.txt  (imgui-1.87)
skipping to change at line 34 skipping to change at line 34
- Read the `Breaking Changes` section (in imgui.cpp or here in the Changelog). - Read the `Breaking Changes` section (in imgui.cpp or here in the Changelog).
- If you have a problem with a missing function/symbols, search for its name in the code, there will likely be a comment about it. - If you have a problem with a missing function/symbols, search for its name in the code, there will likely be a comment about it.
- If you are dropping this repository in your codebase, please leave the demo an d text files in there, they will be useful. - If you are dropping this repository in your codebase, please leave the demo an d text files in there, they will be useful.
- You may diff your previous Changelog with the one you just copied and read tha t diff. - You may diff your previous Changelog with the one you just copied and read tha t diff.
- You may enable `IMGUI_DISABLE_OBSOLETE_FUNCTIONS` in imconfig.h to forcefully disable legacy names and symbols. - You may enable `IMGUI_DISABLE_OBSOLETE_FUNCTIONS` in imconfig.h to forcefully disable legacy names and symbols.
Doing it every once in a while is a good way to make sure you are not using ob solete symbols. Dear ImGui is in active development, Doing it every once in a while is a good way to make sure you are not using ob solete symbols. Dear ImGui is in active development,
and API updates have been a little more frequent lately. They are documented b elow and in imgui.cpp and should not affect all users. and API updates have been a little more frequent lately. They are documented b elow and in imgui.cpp and should not affect all users.
- Please report any issue! - Please report any issue!
----------------------------------------------------------------------- -----------------------------------------------------------------------
VERSION 1.87 (Released 2022-02-07)
-----------------------------------------------------------------------
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.87
Breaking Changes:
- Removed support for pre-C++11 compilers. We'll stop supporting VS2010. (#4537)
- Reworked IO mouse input API: (#4921, #4858) [@thedmd, @ocornut]
- Added io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent
() functions,
obsoleting writing directly to io.MousePos, io.MouseDown[], io.MouseWheel, e
tc.
- This enable input queue trickling to support low framerates. (#2787, #1992,
#3383, #2525, #1320)
- Reworked IO keyboard input API: (#4921, #2625, #3724) [@thedmd, @ocornut]
- Added io.AddKeyEvent() function, obsoleting writing directly to io.KeyMap[],
io.KeysDown[] arrays.
- For keyboard modifiers, you can call io.AddKeyEvent() with ImGuiKey_ModXXX v
alues,
obsoleting writing directly to io.KeyCtrl, io.KeyShift etc.
- Added io.SetKeyEventNativeData() function (optional) to pass native and old
legacy indices.
- Added full range of key enums in ImGuiKey (e.g. ImGuiKey_F1).
- Added GetKeyName() helper function.
- Obsoleted GetKeyIndex(): it is now unnecessary and will now return the same
value.
- All keyboard related functions taking 'int user_key_index' now take 'ImGuiKe
y key':
- IsKeyDown(), IsKeyPressed(), IsKeyReleased(), GetKeyPressedAmount().
- Added io.ConfigInputTrickleEventQueue (defaulting to true) to disable input
queue trickling.
- Backward compatibility:
- All backends updated to use new functions.
- Old backends populating those arrays should still work!
- Calling e.g. IsKeyPressed(MY_NATIVE_KEY_XXX) will still work! (for a while
)
- Those legacy arrays will only be disabled if '#define IMGUI_DISABLE_OBSOLE
TE_KEYIO' is set in your imconfig.
In a few versions, IMGUI_DISABLE_OBSOLETE_FUNCTIONS will automatically ena
ble IMGUI_DISABLE_OBSOLETE_KEYIO,
so this will be moved into the regular obsolescence path.
- BREAKING: If your custom backend used ImGuiKey as mock native indices (e.g
. "io.KeyMap[ImGuiKey_A] = ImGuiKey_A")
this is a use case that will now assert and be breaking for your old backe
nd.
- Transition guide:
- IsKeyPressed(MY_NATIVE_KEY_XXX) -> use IsKeyPressed(ImGuiKey_XX
X)
- IsKeyPressed(GetKeyIndex(ImGuiKey_XXX)) -> use IsKeyPressed(ImGuiKey_XX
X)
- Backend writing to io.KeyMap[],KeysDown[] -> backend should call io.AddKe
yEvent(), if legacy indexing is desired, call io.SetKeyEventNativeData()
- Basically the trick we took advantage of is that we previously only suppo
rted native keycode from 0 to 511,
so ImGuiKey values can still express a legacy native keycode, and new nam
ed keys are all >= 512.
- This will enable a few things in the future:
- Access to portable keys allows for backend-agnostic keyboard input code.
Until now it was difficult
to share code using keyboard across project because of this gap. (#2625,
#3724)
- Access to full key ranges will allow us to develop a proper keyboard shor
tcut system. (#456)
- io.SetKeyEventNativeData() include native keycode/scancode which may late
r be exposed. (#3141, #2959)
- Reworked IO nav/gamepad input API and unifying inputs sources: (#4921, #4858,
#787)
- Added full range of ImGuiKey_GamepadXXXX enums (e.g. ImGuiKey_GamepadDpadUp,
ImGuiKey_GamepadR2) to use with
io.AddKeyEvent(), io.AddKeyAnalogEvent().
- Added io.AddKeyAnalogEvent() function, obsoleting writing directly to io.Nav
Inputs[] arrays.
- Renamed ImGuiKey_KeyPadEnter to ImGuiKey_KeypadEnter to align with new symbols
. Kept redirection enum. (#2625)
- Removed support for legacy arithmetic operators (+,+-,*,/) when inputing text
into a slider/drag. (#4917, #3184)
This doesn't break any api/code but a feature that was accessible by end-users
(which seemingly no one used).
(Instead you may implement custom expression evaluators to provide a better ve
rsion of this).
- Backends: GLFW: backend now uses glfwSetCursorPosCallback().
- If calling ImGui_ImplGlfw_InitXXX with install_callbacks=true: nothing to do
. is already done for you.
- If calling ImGui_ImplGlfw_InitXXX with install_callbacks=false: you WILL NEE
D to register the GLFW callback
using glfwSetCursorPosCallback() and forward it to the backend function ImGu
i_ImplGlfw_CursorPosCallback().
- Backends: SDL: Added SDL_Renderer* parameter to ImGui_ImplSDL2_InitForSDLRende
rer(), so backend can call
SDL_GetRendererOutputSize() to obtain framebuffer size valid for hi-dpi. (#492
7) [@Clownacy]
- Commented out redirecting functions/enums names that were marked obsolete in 1
.69, 1.70, 1.71, 1.72 (March-July 2019)
- ImGui::SetNextTreeNodeOpen() -> use ImGui::SetNextItemOpen()
- ImGui::GetContentRegionAvailWidth() -> use ImGui::GetContentRegionAvail().x
- ImGui::TreeAdvanceToLabelPos() -> use ImGui::SetCursorPosX(ImGui::GetCu
rsorPosX() + ImGui::GetTreeNodeToLabelSpacing());
- ImFontAtlas::CustomRect -> use ImFontAtlasCustomRect
- ImGuiColorEditFlags_RGB/HSV/HEX -> use ImGuiColorEditFlags_DisplayRGB/HS
V/Hex
- Removed io.ImeSetInputScreenPosFn() in favor of more flexible io.SetPlatformIm
eDataFn() for IME support.
Because this field was mostly only ever used by Dear ImGui internally, not by
backends nor the vast majority
of user code, this should only affect a very small fraction for users who are
already very IME-aware.
- Obsoleted 'void* io.ImeWindowHandle' in favor of writing to 'void* ImGuiViewpo
rt::PlatformHandleRaw'.
This removes an incompatibility between 'master' and 'multi-viewports' backend
s and toward enabling
better support for IME. Updated backends accordingly. Because the old field is
set by existing backends,
we are keeping it (marked as obsolete).
Other Changes:
- IO: Added event based input queue API, which now trickles events to support lo
w framerates. [@thedmd, @ocornut]
Previously the most common issue case (button presses in low framerates) was h
andled by backend. This is now
handled by core automatically for all kind of inputs. (#4858, #2787, #1992, #3
383, #2525, #1320)
- New IO functions for keyboard/gamepad: AddKeyEvent(), AddKeyAnalogEvent().
- New IO functions for mouse: AddMousePosEvent(), AddMouseButtonEvent(), AddMo
useWheelEvent().
- IO: Unified key enums allow using key functions on key mods and gamepad values
.
- Fixed CTRL+Tab into an empty window causing artifacts on the highlight rectang
le due to bad reordering on ImDrawCmd.
- Fixed a situation where CTRL+Tab or Modal can occasionally lead to the creatio
n of ImDrawCmd with zero triangles,
which would makes the draw operation of some backends assert (e.g. Metal with
debugging). (#4857)
- Popups: Fixed a regression crash when a new window is created after a modal on
the same frame. (#4920) [@rokups]
- Popups: Fixed an issue when reopening a same popup multiple times would offset
them by 1 pixel on the right. (#4936)
- Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::A
ddCallback() when submitted in
last column or last channel and when there are no other drawing operation. (#4
843, #4844) [@hoffstadt]
- Tables: Fixed positioning of Sort icon on right-most column with some settings
(not resizable + no borders). (#4918).
- Nav: Fixed gamepad navigation in wrapping popups not wrapping all the way. (#4
365)
- Sliders, Drags: Fixed text input of values with a leading sign, common when us
ing a format enforcing sign. (#4917)
- Demo: draw a section of keyboard in "Inputs > Keyboard, Gamepad & Navigation s
tate" to visualize keys. [@thedmd]
- Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn()
API,
now taking a ImGuiPlatformImeData structure which we can more easily extend in
the future.
- Platform IME: moved io.ImeWindowHandle to GetMainViewport()->PlatformHandleRaw
.
- Platform IME: add ImGuiPlatformImeData::WantVisible, hide IME composition wind
ow when not used. (#2589) [@actboy168]
- Platform IME: add ImGuiPlatformImeData::InputLineHeight. (#3113) [@liuliu]
- Platform IME: [windows] call ImmSetCandidateWindow() to position candidate win
dow.
- Backends: GLFW: Pass localized keys (matching keyboard layout). Fix e.g. CTRL+
A, CTRL+Z, CTRL+Y shortcuts.
We are now converting GLFW untranslated keycodes back to translated keycodes i
n order to match the behavior of
other backend, and facilitate the use of GLFW with lettered-shortcuts API. (#4
56, #2625)
- Backends: GLFW: Submit keys and key mods using io.AddKeyEvent(). (#2625, #4921
)
- Backends: GLFW: Submit mouse data using io.AddMousePosEvent(), io.AddMouseButt
onEvent(), io.AddMouseWheelEvent() functions. (#4921)
- Backends: GLFW: Retrieve mouse position using glfwSetCursorPosCallback() + fal
lback when focused but not hovered/captured.
- Backends: GLFW: Submit gamepad data using io.AddKeyEvent/AddKeyAnalogEvent() f
unctions, stopped writing to io.NavInputs[]. (#4921)
- Backends: GLFW: Added ImGui_ImplGlfw_InstallCallbacks()/ImGui_ImplGlfw_Restore
Callbacks() helpers to facilitate user installing
callbacks after iniitializing backend. (#4981)
- Backends: Win32: Submit keys and key mods using io.AddKeyEvent(). (#2625, #492
1)
- Backends: Win32: Retrieve mouse position using WM_MOUSEMOVE/WM_MOUSELEAVE + fa
llback when focused but not hovered/captured.
- Backends: Win32: Submit mouse data using io.AddMousePosEvent(), AddMouseButton
Event(), AddMouseWheelEvent() functions. (#4921)
- Backends: Win32: Maintain a MouseButtonsDown mask instead of using ImGui::IsAn
yMouseDown() which will be obsoleted.
- Backends: Win32: Submit gamepad data using io.AddKeyEvent/AddKeyAnalogEvent()
functions, stopped writing to io.NavInputs[]. (#4921)
- Backends: SDL: Pass localized keys (matching keyboard layout). Fix e.g. CTRL+A
, CTRL+Z, CTRL+Y shortcuts. (#456, #2625)
- Backends: SDL: Submit key data using io.AddKeyEvent(). Submit keymods using io
.AddKeyModsEvent() at the same time. (#2625)
- Backends: SDL: Retrieve mouse position using SDL_MOUSEMOTION/SDL_WINDOWEVENT_L
EAVE + fallback when focused but not hovered/captured.
- Backends: SDL: Submit mouse data using io.AddMousePosEvent(), AddMouseButtonEv
ent(), AddMouseWheelEvent() functions. (#4921)
- Backends: SDL: Maintain a MouseButtonsDown mask instead of using ImGui::IsAnyM
ouseDown() which will be obsoleted.
- Backends: SDL: Submit gamepad data using io.AddKeyEvent/AddKeyAnalogEvent() fu
nctions, stopped writing to io.NavInputs[]. (#4921)
- Backends: Allegro5: Submit keys using io.AddKeyEvent(). Submit keymods using i
o.AddKeyModsEvent() at the same time. (#2625)
- Backends: Allegro5: Submit mouse data using io.AddMousePosEvent(), AddMouseBut
tonEvent(), AddMouseWheelEvent() functions. (#4921)
- Backends: OSX: Submit keys using io.AddKeyEvent(). Submit keymods using io.Add
KeyModsEvent() at the same time. (#2625)
- Backends: OSX: Submit mouse data using io.AddMousePosEvent(), AddMouseButtonEv
ent(), AddMouseWheelEvent() functions. (#4921)
- Backends: OSX: Submit gamepad data using io.AddKeyEvent/AddKeyAnalogEvent() fu
nctions, stopped writing to io.NavInputs[]. (#4921)
- Backends: OSX: Added basic Platform IME support. (#3108, #2598) [@liuliu]
- Backends: OSX: Fix Game Controller nav mapping to use shoulder for both focusi
ng and tweak speed. (#4759)
- Backends: OSX: Fix building with old Xcode versions that are missing gamepad f
eatures. [@rokups]
- Backends: OSX: Forward keyDown/keyUp events to OS when unused by Dear ImGui.
- Backends: Android, GLUT: Submit keys using io.AddKeyEvent(). Submit keymods us
ing io.AddKeyModsEvent() at the same time. (#2625)
- Backends: Android, GLUT: Submit mouse data using io.AddMousePosEvent(), AddMou
seButtonEvent(), AddMouseWheelEvent() functions. (#4858)
- Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init
(added in 1.86). (#4468, #4830) [@dymk]
It would generally not have noticeable side-effect at runtime but would be det
ected by runtime checkers.
- Backends: OpenGL3: Fix OpenGL ES2 includes on Apple systems. [@rokups]
- Backends: Metal: Added Apple Metal C++ API support. (#4824, #4746) [@luigifcru
z]
Enable with '#define IMGUI_IMPL_METAL_CPP' in your imconfig.h file.
- Backends: Metal: Ignore ImDrawCmd where ElemCount == 0, which are normally not
emitted by the library but
can theoretically be created by user code manipulating a ImDrawList. (#4857)
- Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, add ImGui_
ImplVulkan_AddTexture(). (#914) [@martty]
- Backends: SDL_Renderer: Fix texture atlas format on big-endian hardware (#4927
) [@Clownacy]
- Backends: WebGPU: Fixed incorrect size parameters in wgpuRenderPassEncoderSetI
ndexBuffer() and
wgpuRenderPassEncoderSetVertexBuffer() calls. (#4891) [@FeepsDev]
-----------------------------------------------------------------------
VERSION 1.86 (Released 2021-12-22) VERSION 1.86 (Released 2021-12-22)
----------------------------------------------------------------------- -----------------------------------------------------------------------
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.86
Breaking Changes: Breaking Changes:
- Removed CalcListClipping() function. Prefer using ImGuiListClipper which can r eturn non-contiguous ranges. - Removed CalcListClipping() function. Prefer using ImGuiListClipper which can r eturn non-contiguous ranges.
Please open an issue if you think you really need this function. (#3841) Please open an issue if you think you really need this function. (#3841)
- Backends: OSX: Added NSView* parameter to ImGui_ImplOSX_Init(). (#4759) [@stua rtcarnie] - Backends: OSX: Added NSView* parameter to ImGui_ImplOSX_Init(). (#4759) [@stua rtcarnie]
- Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade. cpp) + example app. (#368, #375) - Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade. cpp) + example app. (#368, #375)
Find last supported version at https://github.com/ocornut/imgui/wiki/Bindings Find last supported version at https://github.com/ocornut/imgui/wiki/Bindings
Other Changes: Other Changes:
skipping to change at line 132 skipping to change at line 274
cancel event. (#4759, #4253, #1873) [@stuartcarnie] cancel event. (#4759, #4253, #1873) [@stuartcarnie]
- Backends: OSX: Add Game Controller support (need linking GameController framew ork) (#4759) [@stuartcarnie] - Backends: OSX: Add Game Controller support (need linking GameController framew ork) (#4759) [@stuartcarnie]
- Backends: WebGPU: Passing explicit buffer sizes to wgpuRenderPassEncoderSetVer texBuffer() and - Backends: WebGPU: Passing explicit buffer sizes to wgpuRenderPassEncoderSetVer texBuffer() and
wgpuRenderPassEncoderSetIndexBuffer() functions as validation layers appears t o not do what the wgpuRenderPassEncoderSetIndexBuffer() functions as validation layers appears t o not do what the
in-flux specs says. (#4766) [@meshula] in-flux specs says. (#4766) [@meshula]
----------------------------------------------------------------------- -----------------------------------------------------------------------
VERSION 1.85 (Released 2021-10-12) VERSION 1.85 (Released 2021-10-12)
----------------------------------------------------------------------- -----------------------------------------------------------------------
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.85
This is the last release officially supporting C++03 and Visual Studio 2008/2010 . (#4537) This is the last release officially supporting C++03 and Visual Studio 2008/2010 . (#4537)
We expect that the next release will require a subset of the C++11 language (VS 2012~, GCC 4.8.1, Clang 3.3). We expect that the next release will require a subset of the C++11 language (VS 2012~, GCC 4.8.1, Clang 3.3).
We may use some C++11 language features but we will not use any C++ library head ers. We may use some C++11 language features but we will not use any C++ library head ers.
If you are stuck on ancient compiler you may need to stay at this version onward . If you are stuck on ancient compiler you may need to stay at this version onward .
Breaking Changes: Breaking Changes:
- Removed GetWindowContentRegionWidth() function. keep inline redirection helper . - Removed GetWindowContentRegionWidth() function. keep inline redirection helper .
Can use 'GetWindowContentRegionMax().x - GetWindowContentRegionMin().x' instea d but it's not Can use 'GetWindowContentRegionMax().x - GetWindowContentRegionMin().x' instea d but it's not
very useful in practice, and the only use of it in the demo was illfit. very useful in practice, and the only use of it in the demo was illfit.
 End of changes. 3 change blocks. 
0 lines changed or deleted 244 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)