From 3543dfda953beefd9add1316328e2c7cfb4aa637 Mon Sep 17 00:00:00 2001 From: ocornut Date: Wed, 6 Nov 2024 18:14:44 +0100 Subject: [PATCH] Docs: document removal of ImFont const qualifier as potentially breaking. --- docs/CHANGELOG.txt | 34 +++++++++++++++++----------------- imgui.cpp | 1 + 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index abf339421..ebc128a04 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -54,6 +54,7 @@ Breaking changes: consider updating to 1.91.4 first, then #define IMGUI_DISABLE_OBSOLETE_KEYIO, then update to latest. - Obsoleted ImGuiKey_COUNT (it is unusually error-prone/misleading since valid keys don't start at 0). Probably use ImGuiKey_NamedKey_BEGIN/ImGuiKey_NamedKey_END? +- Fonts: removed const qualifiers from most font functions in prevision for upcoming fonts improvements. Other changes: @@ -61,7 +62,6 @@ Other changes: between _Header and _HeaderHovered which was introduced v1.91 (#8106, #1861) - Buttons: using ImGuiItemFlags_ButtonRepeat makes default button behavior use PressedOnClick instead of PressedOnClickRelease when unspecified. -- Fonts: removed const qualifiers from most font functions. - InputText: fixed a bug (regression in 1.91.2) where modifying text buffer within a callback would sometimes prevents further appending to the buffer. - Tabs, Style: made ImGuiCol_TabDimmedSelectedOverline alpha 0 (not visible) in default @@ -74,9 +74,9 @@ Other changes: and (3) text output comes in submission order rather than spatial order. - Backends: DX12: Unmap() call specify written range. The range is informational and may be used by debug tools. -- Backends: SDL2: Replace SDL_Vulkan_GetDrawableSize() forward declaration with the - actual include. (#8095, #7967, #3190) [@sev-] -- Backends: SDL2, SDL3: SDL_EVENT_MOUSE_WHEEL event doesn't require dividing +- Backends: SDL2: Replace SDL_Vulkan_GetDrawableSize() forward declaration with the + actual include. (#8095, #7967, #3190) [@sev-] +- Backends: SDL2, SDL3: SDL_EVENT_MOUSE_WHEEL event doesn't require dividing by 100.0f on Emscripten target. (#4019, #6096, #1463) - Examples: SDL3+Vulkan: Added example. (#8084, #8085) - Examples: Android+OpenGL: Using ALooper_pollOnce() instead of ALooper_pollAll() @@ -88,7 +88,7 @@ Other changes: Breaking changes: -- Style: renamed ImGuiCol_NavHighlight to ImGuiCol_NavCursor, for consistency with +- Style: renamed ImGuiCol_NavHighlight to ImGuiCol_NavCursor, for consistency with newly exposed and reworked features. Kept inline redirection enum (will obsolete). - The typedef for ImTextureID now defaults to ImU64 instead of void*. (#1641) - This removes the requirement to redefine it for backends which are e.g. storing @@ -104,9 +104,9 @@ Breaking changes: - Note that you can always define ImTextureID to be your own high-level structures (with dedicated constructors and extra render parameters) if you like. - IO: moved ImGuiConfigFlags_NavEnableSetMousePos to standalone io.ConfigNavMoveSetMousePos bool. -- IO: moved ImGuiConfigFlags_NavNoCaptureKeyboard to standalone io.ConfigNavCaptureKeyboard bool +- IO: moved ImGuiConfigFlags_NavNoCaptureKeyboard to standalone io.ConfigNavCaptureKeyboard bool (note the inverted value!). (#2517, #2009) - Kept legacy names (will obsolete) + code that copies settings once the first time. + Kept legacy names (will obsolete) + code that copies settings once the first time. Dynamically changing the old value won't work. Switch to using the new value! Other changes: @@ -122,48 +122,48 @@ Other changes: - Set io.ConfigNavCursorVisibleAuto = true (default) to enable automatic toggling of cursor visibility (mouse click hide the cursor, arrow keys makes it visible). - Set io.ConfigNavCursorVisibleAlways to keep cursor always visible. - - Nav: added NavSetCursorVisible(bool visible) function to manipulate visibility of + - Nav: added NavSetCursorVisible(bool visible) function to manipulate visibility of navigation cursor (e.g. set default state, or after some actions). (#1074, #2048, #7237, #8059) - Nav: added io.ConfigNavEscapeClearFocusItem and io.ConfigNavEscapeClearFocusWindow to change how pressing Escape affects navigation. (#8059, #2048, #1074, #3200) - Set io.ConfigNavEscapeClearFocusItem = true (default) to clear focused item and highlight. - Set io.ConfigNavEscapeClearFocusItem = false for Escape to not have an effect. - Set io.ConfigNavEscapeClearFocusWindow = true to completely unfocus the dear imgui window, - is for some reason your app relies on imgui focus to take other decisions. + is for some reason your app relies on imgui focus to take other decisions. - Nav: pressing escape to hide the navigation cursor doesn't clear location, so it may be restored when Ctrl+Tabbing back into the same window later. - Nav: fixed Ctrl+Tab initiated with no focused window from skipping the top-most window. (#3200) - - Nav: navigation cursor is not rendered for items with `ImGuiItemFlags_NoNav`. Can be relevant + - Nav: navigation cursor is not rendered for items with `ImGuiItemFlags_NoNav`. Can be relevant when e.g activating a _NoNav item with mouse, then Ctrl+Tabbing back and forth. -- Disabled: clicking a disabled item focuses parent window. (#8064) +- Disabled: clicking a disabled item focuses parent window. (#8064) - InvisibleButton, Nav: fixed an issue when InvisibleButton() would be navigable into but not display navigation highlight. Properly navigation on it by default. (#8057) - InvisibleButton: added ImGuiButtonFlags_EnableNav to enable navigation. (#8057) -- Tooltips: fixed incorrect tooltip positioning when using keyboard/gamepad navigation +- Tooltips: fixed incorrect tooltip positioning when using keyboard/gamepad navigation (1.91.3 regression). (#8036) - DrawList: AddCallback() added an optional size parameter allowing to copy and store any amount of user data for usage by callbacks: (#6969, #4770, #7665) - If userdata_size == 0: we copy/store the 'userdata' argument as-is (existing behavior). It will be available unmodified in ImDrawCmd::UserCallbackData during render. - If userdata_size > 0, we copy/store 'userdata_size' bytes pointed to by 'userdata' (new behavior). - We store them in a buffer stored inside the drawlist. ImDrawCmd::UserCallbackData + We store them in a buffer stored inside the drawlist. ImDrawCmd::UserCallbackData will point inside that buffer so you have to retrieve data from there. Your callback may need to use ImDrawCmd::UserCallbackDataSize if you expect dynamically-sized data. - Note that we use a raw type-less copy. - Tables: fixed initial auto-sizing issue with synced-instances. (#8045, #7218) - InputText: fixed an issue with not declaring ownership of Delete/Backspace/Arrow keys, - preventing use of external shortcuts that are not guarded by an ActiveId check. (#8048) + preventing use of external shortcuts that are not guarded by an ActiveId check. (#8048) [@geertbleyen] -- InputText: ensure mouse cursor shape is set regardless of whether keyboard mode is +- InputText: ensure mouse cursor shape is set regardless of whether keyboard mode is enabled or not. (#6417) - InputScalar: added an assert to clarify that ImGuiInputTextFlags_EnterReturnsTrue is not supported by InputFloat, InputInt, InputScalar etc. widgets. It actually never was. (#8065, #3946) -- imgui_freetype: Added support for plutosvg (as an alternative to lunasvg) to render +- imgui_freetype: Added support for plutosvg (as an alternative to lunasvg) to render OpenType SVG fonts. Requires defining IMGUI_ENABLE_FREETYPE_PLUTOSVG along with IMGUI_ENABLE_FREETYPE. Providing headers/librairies for plutosvg + plutovg is up to you (see #7927 for help). (#7927, #7187, #6591, #6607) [@pthom] - Backends: DX11, DX12, SDLRenderer2/3. Vulkan, WGPU: expose selected state in - ImGui_ImplXXXX_RenderState structures during render loop user draw callbacks. + ImGui_ImplXXXX_RenderState structures during render loop user draw callbacks. (#6969, #5834, #7468, #3590) - Backends: DX9, DX10, DX11, DX12, OpenGL, Vulkan, WGPU: Changed default texture sampler to Clamp instead of Repeat/Wrap. (#7468, #7511, #5999, #5502, #7230) diff --git a/imgui.cpp b/imgui.cpp index 7f853fa0f..1f2dbc09a 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -440,6 +440,7 @@ CODE - read https://github.com/ocornut/imgui/issues/4921 - if you have trouble updating a very old codebase using legacy backend-specific key codes: consider updating to 1.91.4 first, then #define IMGUI_DISABLE_OBSOLETE_KEYIO, then update to latest. - obsoleted ImGuiKey_COUNT (it is unusually error-prone/misleading since valid keys don't start at 0). probably use ImGuiKey_NamedKey_BEGIN/ImGuiKey_NamedKey_END? + - fonts: removed const qualifiers from most font functions in prevision for upcoming font improvements. - 2024/10/18 (1.91.4) - renamed ImGuiCol_NavHighlight to ImGuiCol_NavCursor (for consistency with newly exposed and reworked features). Kept inline redirection enum (will obsolete). - 2024/10/14 (1.91.4) - moved ImGuiConfigFlags_NavEnableSetMousePos to standalone io.ConfigNavMoveSetMousePos bool. moved ImGuiConfigFlags_NavNoCaptureKeyboard to standalone io.ConfigNavCaptureKeyboard bool (note the inverted value!).