From 6d32174508fb8c518e7a832cc1d571fadd5cba76 Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 15 Oct 2026 14:03:51 +0200 Subject: [PATCH 1/9] Allow IM_NODEBUGSTEP to be defined by user. (#9584) Amend e2e9533991 --- imgui.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/imgui.h b/imgui.h index df2d42675..a7b071dab 100644 --- a/imgui.h +++ b/imgui.h @@ -130,6 +130,7 @@ Index of this file: // Alternative to using a .natstepfilter file or other scripts in misc/debuggers/ to skip debug-stepping selected trivial functions. // If you get a compiler error or warning related to use, please report it to us! +#ifndef IM_NODEBUGSTEP #if (defined(__clang__) && (__clang_major__ >= 7)) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) #define IM_NODEBUGSTEP [[gnu::artificial]] #elif defined(_MSC_VER) && (_MSC_VER >= 1915) @@ -137,6 +138,7 @@ Index of this file: #else #define IM_NODEBUGSTEP #endif +#endif // Warnings #ifdef _MSC_VER From f9961262498b3a2606fefb1ef23d02412f7bb582 Mon Sep 17 00:00:00 2001 From: Pascal Thomet Date: Thu, 15 Oct 2026 14:28:13 +0200 Subject: [PATCH 2/9] Demo: correct demo markers wordings (#9586) --- imgui_demo.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/imgui_demo.cpp b/imgui_demo.cpp index 13734d316..1337d60ba 100644 --- a/imgui_demo.cpp +++ b/imgui_demo.cpp @@ -1651,10 +1651,10 @@ static void DemoWindowWidgetsDragAndDrop() { if (ImGui::TreeNode("Drag and Drop")) { - IMGUI_DEMO_MARKER("Widgets/Drag and drop"); + IMGUI_DEMO_MARKER("Widgets/Drag and Drop"); if (ImGui::TreeNode("Drag and drop in standard widgets")) { - IMGUI_DEMO_MARKER("Widgets/Drag and drop/Standard widgets"); + IMGUI_DEMO_MARKER("Widgets/Drag and Drop/Standard widgets"); // ColorEdit widgets automatically act as drag source and drag target. // They are using standardized payload strings IMGUI_PAYLOAD_TYPE_COLOR_3F and IMGUI_PAYLOAD_TYPE_COLOR_4F // to allow your own widgets to use colors in their drag and drop interaction. @@ -1669,7 +1669,7 @@ static void DemoWindowWidgetsDragAndDrop() if (ImGui::TreeNode("Drag and drop to copy/swap items")) { - IMGUI_DEMO_MARKER("Widgets/Drag and drop/Copy-swap items"); + IMGUI_DEMO_MARKER("Widgets/Drag and Drop/Copy-swap items"); enum Mode { Mode_Copy, From cbe3d5fb887c3c5ab2949fc0762e7c4e97adeca7 Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 15 Oct 2026 14:34:31 +0200 Subject: [PATCH 3/9] Version 1.93.1 WIP --- docs/CHANGELOG.txt | 9 +++++++++ imgui.cpp | 2 +- imgui.h | 6 +++--- imgui_demo.cpp | 2 +- imgui_draw.cpp | 2 +- imgui_internal.h | 2 +- imgui_tables.cpp | 2 +- imgui_widgets.cpp | 2 +- misc/freetype/imgui_freetype.cpp | 3 ++- misc/freetype/imgui_freetype.h | 4 +++- 10 files changed, 23 insertions(+), 11 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index b5d983005..7389bba68 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -35,6 +35,15 @@ HOW TO UPDATE? and API updates have been a little more frequent lately. They are documented below and in imgui.cpp and should not affect all users. - Please report any issue! +----------------------------------------------------------------------- + VERSION 1.93.1 WIP (In Progress) +----------------------------------------------------------------------- + +Breaking Changes: + +Other Changes: + + ----------------------------------------------------------------------- VERSION 1.93.0 (Released 2026-10-14) ----------------------------------------------------------------------- diff --git a/imgui.cpp b/imgui.cpp index 3705e7262..4a4e1fe61 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.93.0 +// dear imgui, v1.93.1 WIP // (main code and documentation) // Help: diff --git a/imgui.h b/imgui.h index a7b071dab..3e9a75715 100644 --- a/imgui.h +++ b/imgui.h @@ -1,4 +1,4 @@ -// dear imgui, v1.93.0 +// dear imgui, v1.93.1 WIP // (headers) // Help: @@ -29,8 +29,8 @@ // Library Version // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345') -#define IMGUI_VERSION "1.93.0" -#define IMGUI_VERSION_NUM 19300 +#define IMGUI_VERSION "1.93.1 WIP" +#define IMGUI_VERSION_NUM 19301 #define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000 #define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198 diff --git a/imgui_demo.cpp b/imgui_demo.cpp index 1337d60ba..14da0ee79 100644 --- a/imgui_demo.cpp +++ b/imgui_demo.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.93.0 +// dear imgui, v1.93.1 WIP // (demo code) // Help: diff --git a/imgui_draw.cpp b/imgui_draw.cpp index 0d54ee8ad..9e4b1400e 100644 --- a/imgui_draw.cpp +++ b/imgui_draw.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.93.0 +// dear imgui, v1.93.1 WIP // (drawing and font code) /* diff --git a/imgui_internal.h b/imgui_internal.h index 420f070e8..14b8ce158 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -1,4 +1,4 @@ -// dear imgui, v1.93.0 +// dear imgui, v1.93.1 WIP // (internal structures/api) // You may use this file to debug, understand or extend Dear ImGui features but we don't provide any guarantee of forward compatibility. diff --git a/imgui_tables.cpp b/imgui_tables.cpp index a1757ed3f..ee208d160 100644 --- a/imgui_tables.cpp +++ b/imgui_tables.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.93.0 +// dear imgui, v1.93.1 WIP // (tables and columns code) /* diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index 821b15f44..3efccab30 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.93.0 +// dear imgui, v1.93.1 WIP // (widgets code) /* diff --git a/misc/freetype/imgui_freetype.cpp b/misc/freetype/imgui_freetype.cpp index 375863fdf..975374554 100644 --- a/misc/freetype/imgui_freetype.cpp +++ b/misc/freetype/imgui_freetype.cpp @@ -1,5 +1,6 @@ -// dear imgui: FreeType font builder (used as a replacement for the stb_truetype builder) +// dear imgui: FreeType font builder // (code) +// (used as a replacement for the stb_truetype builder) // Get the latest version at https://github.com/ocornut/imgui/tree/master/misc/freetype // Original code by @vuhdo (Aleksei Skriabin) in 2017, with improvements by @mikesart. diff --git a/misc/freetype/imgui_freetype.h b/misc/freetype/imgui_freetype.h index 85313699d..d271d49da 100644 --- a/misc/freetype/imgui_freetype.h +++ b/misc/freetype/imgui_freetype.h @@ -1,5 +1,6 @@ -// dear imgui: FreeType font builder (used as a replacement for the stb_truetype builder) +// dear imgui: FreeType font builder // (headers) +// (used as a replacement for the stb_truetype builder) #pragma once #include "imgui.h" // IMGUI_API @@ -40,6 +41,7 @@ enum ImGuiFreeTypeLoaderFlags_ ImGuiFreeTypeLoaderFlags_Bitmap = 1 << 9, // Enable FreeType bitmap glyphs #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS + // Renamed in 1.92.0 (June 2025) ImGuiFreeTypeBuilderFlags_NoHinting = ImGuiFreeTypeLoaderFlags_NoHinting, ImGuiFreeTypeBuilderFlags_NoAutoHint = ImGuiFreeTypeLoaderFlags_NoAutoHint, ImGuiFreeTypeBuilderFlags_ForceAutoHint = ImGuiFreeTypeLoaderFlags_ForceAutoHint, From 93a14c8fda0068cc93f726719422dc319bdbb5e7 Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 15 Oct 2026 14:51:48 +0200 Subject: [PATCH 4/9] (Breaking) Commented out legacy names/functions which were obsoleted from 1.90.7 (May 2024) to 1.91.0 (Sept 2024). --- docs/CHANGELOG.txt | 16 ++++++++++++++++ imgui.cpp | 10 ++++++++++ imgui.h | 25 +++++++++++++------------ 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index 7389bba68..52e22d779 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -41,6 +41,22 @@ HOW TO UPDATE? Breaking Changes: +Autumn cleanup of stuff marked obsolete more than two years ago: + +- Commented out legacy names/functions which were obsoleted in 1.90.7 (May 2024); + - `ImGuiMod_Shortcut` --> `ImGuiMod_Ctrl` (since 1.90.7 it maps to Cmd on macOS) +- Commented out legacy names/functions which were obsoleted in 1.90.9 (July 2024); + - `ImGuiCol_TabActive` --> `ImGuiCol_TabSelected` + - `ImGuiCol_TabUnfocused` --> `ImGuiCol_TabDimmed` + - `ImGuiCol_TabUnfocusedActive` --> `ImGuiCol_TabDimmedSelected` +- Commented out legacy names/functions which were obsoleted in 1.91.0 (July 2024); + - `ImGuiSelectableFlags_DontClosePopups` --> `ImGuiSelectableFlags_NoAutoClosePopups` + - `PushButtonRepeat(bool repeat)` --> `PushItemFlag(ImGuiItemFlags_ButtonRepeat, repeat)` + - `PopButtonRepeat()` --> `PopItemFlag()` + - `PushTabStop(bool tab_stop)` --> `PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop);` + - `PopTabStop()` --> `PopItemFlag()` + + Other Changes: diff --git a/imgui.cpp b/imgui.cpp index 4a4e1fe61..7947d5b72 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -395,6 +395,16 @@ IMPLEMENTING SUPPORT for ImGuiBackendFlags_RendererHasTextures: When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files. You can read releases logs https://github.com/ocornut/imgui/releases for more details. + 2026/10/15 (1.93.1) - commented out legacy names/functions which were obsoleted from 1.90.7 (May 2024) to 1.91.1 (Sept 2024): + - `ImGuiMod_Shortcut` --> `ImGuiMod_Ctrl` (since 1.90.7 it maps to Cmd on macOS) + - `ImGuiCol_TabActive` --> `ImGuiCol_TabSelected` + - `ImGuiCol_TabUnfocused` --> `ImGuiCol_TabDimmed` + - `ImGuiCol_TabUnfocusedActive` --> `ImGuiCol_TabDimmedSelected` + - `ImGuiSelectableFlags_DontClosePopups`-> `ImGuiSelectableFlags_NoAutoClosePopups` + - `PushButtonRepeat(bool repeat)` --> `PushItemFlag(ImGuiItemFlags_ButtonRepeat, repeat)` + - `PopButtonRepeat()` --> `PopItemFlag()` + - `PushTabStop(bool tab_stop)` --> `PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop);` + - `PopTabStop()` --> `PopItemFlag()` 2026/10/07 (1.93.0) - large cleanup/refactor of ImDrawList. many issues and inconsistencies fixed! (#9504) BELOW IS A SIMPLIFIED/SHORTENED RECAP OF CHANGES. READ CHANGELOG AND LINKS ABOVE FOR MORE DETAILS! useful links: diff --git a/imgui.h b/imgui.h index 3e9a75715..c9db02149 100644 --- a/imgui.h +++ b/imgui.h @@ -1409,7 +1409,7 @@ enum ImGuiSelectableFlags_ ImGuiSelectableFlags_SelectOnNav = 1 << 6, // Auto-select when moved into, unless Ctrl is held. Automatic when in a BeginMultiSelect() block. #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - ImGuiSelectableFlags_DontClosePopups = ImGuiSelectableFlags_NoAutoClosePopups, // Renamed in 1.91.0 + //ImGuiSelectableFlags_DontClosePopups = ImGuiSelectableFlags_NoAutoClosePopups, // Renamed in 1.91.0 //ImGuiSelectableFlags_AllowItemOverlap = ImGuiSelectableFlags_AllowOverlap, // Renamed in 1.89.7 #endif }; @@ -1712,7 +1712,7 @@ enum ImGuiKey : int #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS ImGuiKey_COUNT = ImGuiKey_NamedKey_END, // Obsoleted in 1.91.5 because it was misleading (since named keys don't start at 0 anymore) - ImGuiMod_Shortcut = ImGuiMod_Ctrl, // Removed in 1.90.7, you can now simply use ImGuiMod_Ctrl + //ImGuiMod_Shortcut = ImGuiMod_Ctrl, // Removed in 1.90.7, you can now simply use ImGuiMod_Ctrl (will auto map to Cmd on Mac) //ImGuiKey_ModCtrl = ImGuiMod_Ctrl, ImGuiKey_ModShift = ImGuiMod_Shift, ImGuiKey_ModAlt = ImGuiMod_Alt, ImGuiKey_ModSuper = ImGuiMod_Super, // Renamed in 1.89 //ImGuiKey_KeyPadEnter = ImGuiKey_KeypadEnter, // Renamed in 1.87 #endif @@ -1841,10 +1841,10 @@ enum ImGuiCol_ ImGuiCol_COUNT, #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - ImGuiCol_TabActive = ImGuiCol_TabSelected, // [renamed in 1.90.9] - ImGuiCol_TabUnfocused = ImGuiCol_TabDimmed, // [renamed in 1.90.9] - ImGuiCol_TabUnfocusedActive = ImGuiCol_TabDimmedSelected, // [renamed in 1.90.9] - ImGuiCol_NavHighlight = ImGuiCol_NavCursor, // [renamed in 1.91.4] + ImGuiCol_NavHighlight = ImGuiCol_NavCursor, // [renamed in 1.91.4] + //ImGuiCol_TabActive = ImGuiCol_TabSelected, // [renamed in 1.90.9] + //ImGuiCol_TabUnfocused = ImGuiCol_TabDimmed, // [renamed in 1.90.9] + //ImGuiCol_TabUnfocusedActive = ImGuiCol_TabDimmedSelected, // [renamed in 1.90.9] #endif }; @@ -2680,7 +2680,7 @@ struct ImGuiIO #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS float FontGlobalScale; // Moved io.FontGlobalScale to style.FontScaleMain in 1.92.0 (June 2025) - // Legacy: before 1.91.1, clipboard functions were stored in ImGuiIO instead of ImGuiPlatformIO. + // [Moved in 1.91.1] Clipboard functions were stored in ImGuiIO instead of ImGuiPlatformIO. // As this is will affect all users of custom engines/backends, we are providing proper legacy redirection (will obsolete). const char* (*GetClipboardTextFn)(void* user_data); void (*SetClipboardTextFn)(void* user_data, const char* text); @@ -3599,7 +3599,7 @@ struct ImDrawData ImVector* Textures; // List of textures to update. Most of the times the list is shared by all ImDrawData, has only 1 texture and it doesn't need any update. This almost always points to ImGui::GetPlatformIO().Textures[]. May be overridden or set to NULL if you want to manually update textures. #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - int CmdListsCount; // Use CmdLists.Size instead. Number of ImDrawList* to render. + int CmdListsCount; // [OBSOLETED in 1.92.9] Use CmdLists.Size instead. Number of ImDrawList* to render. #endif // Functions @@ -4231,16 +4231,17 @@ namespace ImGui // OBSOLETED in 1.91.9 (from February 2025) IMGUI_API void Image(ImTextureRef tex_ref, const ImVec2& image_size, const ImVec2& uv0, const ImVec2& uv1, const ImVec4& tint_col, const ImVec4& border_col); // <-- 'border_col' was removed in favor of ImGuiCol_ImageBorder. If you use 'tint_col', use ImageWithBg() instead. // OBSOLETED in 1.91.0 (from July 2024) - inline void PushButtonRepeat(bool repeat) { PushItemFlag(ImGuiItemFlags_ButtonRepeat, repeat); } - inline void PopButtonRepeat() { PopItemFlag(); } - inline void PushTabStop(bool tab_stop) { PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop); } - inline void PopTabStop() { PopItemFlag(); } // You do not need those functions! See #7838 on GitHub for more info. IMGUI_API ImVec2 GetContentRegionMax(); // Content boundaries max (e.g. window boundaries including scrolling, or current column boundaries). You should never need this. Always use GetCursorScreenPos() and GetContentRegionAvail()! IMGUI_API ImVec2 GetWindowContentRegionMin(); // Content boundaries min for the window (roughly (0,0)-Scroll), in window-local coordinates. You should never need this. Always use GetCursorScreenPos() and GetContentRegionAvail()! IMGUI_API ImVec2 GetWindowContentRegionMax(); // Content boundaries max for the window (roughly (0,0)+Size-Scroll), in window-local coordinates. You should never need this. Always use GetCursorScreenPos() and GetContentRegionAvail()! // Some of the older obsolete names along with their replacement (commented out so they are not reported in IDE) + // OBSOLETED in 1.91.0 (from July 2024) + //inline void PushButtonRepeat(bool repeat) { PushItemFlag(ImGuiItemFlags_ButtonRepeat, repeat); } + //inline void PopButtonRepeat() { PopItemFlag(); } + //inline void PushTabStop(bool tab_stop) { PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop); } + //inline void PopTabStop() { PopItemFlag(); } // OBSOLETED in 1.90.0 (from September 2023) //IMGUI_API bool Combo(const char* label, int* current_item, bool (*old_callback)(void* user_data, int idx, const char** out_text), void* user_data, int items_count, int popup_max_height_in_items = -1); // Getter signature changed. See 2023/09/15 and 2026/02/27 commits. //IMGUI_API bool ListBox(const char* label, int* current_item, bool (*old_callback)(void* user_data, int idx, const char** out_text), void* user_data, int items_count, int height_in_items = -1); // Getter signature changed. See 2023/09/15 and 2026/02/27 commits. From 1ff218165d71800455a1e8432bada8266f6d5cca Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 15 Oct 2026 14:52:02 +0200 Subject: [PATCH 5/9] (Breaking) Commented out legacy names/functions which were obsoleted in 1.91.1 (Sept 2024). --- docs/CHANGELOG.txt | 7 +++++++ imgui.cpp | 11 +++++++---- imgui.h | 6 +++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index 52e22d779..50b16b595 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -55,6 +55,13 @@ Autumn cleanup of stuff marked obsolete more than two years ago: - `PopButtonRepeat()` --> `PopItemFlag()` - `PushTabStop(bool tab_stop)` --> `PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop);` - `PopTabStop()` --> `PopItemFlag()` +- Commented out legacy names/functions which were obsoleted in 1.91.1 (Sept 2024); + - `io.GetClipboardTextFn` --> `platform_io.Platform_GetClipboardTextFn` + - `io.SetClipboardTextFn` --> `platform_io.Platform_SetClipboardTextFn` + - `io.ClipboardUserData` --> `platform_io.Platform_ClipboardUserData` + +Please also try to get rid of calls to `GetContentRegionMax()`, `GetWindowContentRegionMin()` +and `GetWindowContentRegionMax()`: you do NOT need those functions. See #7838. Other Changes: diff --git a/imgui.cpp b/imgui.cpp index 7947d5b72..256486f6b 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -405,6 +405,9 @@ IMPLEMENTING SUPPORT for ImGuiBackendFlags_RendererHasTextures: - `PopButtonRepeat()` --> `PopItemFlag()` - `PushTabStop(bool tab_stop)` --> `PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop);` - `PopTabStop()` --> `PopItemFlag()` + - `io.GetClipboardTextFn` --> `platform_io.Platform_GetClipboardTextFn` + - `io.SetClipboardTextFn` --> `platform_io.Platform_SetClipboardTextFn` + - `io.ClipboardUserData` --> `platform_io.Platform_ClipboardUserData` 2026/10/07 (1.93.0) - large cleanup/refactor of ImDrawList. many issues and inconsistencies fixed! (#9504) BELOW IS A SIMPLIFIED/SHORTENED RECAP OF CHANGES. READ CHANGELOG AND LINKS ABOVE FOR MORE DETAILS! useful links: @@ -11254,10 +11257,10 @@ static void ImGui::ErrorCheckNewFrameSanityChecks() } // Remap legacy clipboard handlers (OBSOLETED in 1.91.1, August 2024) - if (g.IO.GetClipboardTextFn != NULL && (g.PlatformIO.Platform_GetClipboardTextFn == NULL || g.PlatformIO.Platform_GetClipboardTextFn == Platform_GetClipboardTextFn_DefaultImpl)) - g.PlatformIO.Platform_GetClipboardTextFn = [](ImGuiContext* ctx) { return ctx->IO.GetClipboardTextFn(ctx->IO.ClipboardUserData); }; - if (g.IO.SetClipboardTextFn != NULL && (g.PlatformIO.Platform_SetClipboardTextFn == NULL || g.PlatformIO.Platform_SetClipboardTextFn == Platform_SetClipboardTextFn_DefaultImpl)) - g.PlatformIO.Platform_SetClipboardTextFn = [](ImGuiContext* ctx, const char* text) { return ctx->IO.SetClipboardTextFn(ctx->IO.ClipboardUserData, text); }; + //if (g.IO.GetClipboardTextFn != NULL && (g.PlatformIO.Platform_GetClipboardTextFn == NULL || g.PlatformIO.Platform_GetClipboardTextFn == Platform_GetClipboardTextFn_DefaultImpl)) + // g.PlatformIO.Platform_GetClipboardTextFn = [](ImGuiContext* ctx) { return ctx->IO.GetClipboardTextFn(ctx->IO.ClipboardUserData); }; + //if (g.IO.SetClipboardTextFn != NULL && (g.PlatformIO.Platform_SetClipboardTextFn == NULL || g.PlatformIO.Platform_SetClipboardTextFn == Platform_SetClipboardTextFn_DefaultImpl)) + // g.PlatformIO.Platform_SetClipboardTextFn = [](ImGuiContext* ctx, const char* text) { return ctx->IO.SetClipboardTextFn(ctx->IO.ClipboardUserData, text); }; // Remap legacy CurveTessellationTol into CurveTessellationMaxError (OBSOLETED in 1.93.0, August 2026) if (g.Style.CurveTessellationTol != 0.0f) diff --git a/imgui.h b/imgui.h index c9db02149..18ca1a33d 100644 --- a/imgui.h +++ b/imgui.h @@ -2682,9 +2682,9 @@ struct ImGuiIO // [Moved in 1.91.1] Clipboard functions were stored in ImGuiIO instead of ImGuiPlatformIO. // As this is will affect all users of custom engines/backends, we are providing proper legacy redirection (will obsolete). - const char* (*GetClipboardTextFn)(void* user_data); - void (*SetClipboardTextFn)(void* user_data, const char* text); - void* ClipboardUserData; + //const char* (*GetClipboardTextFn)(void* user_data); // --> `platform_io.Platform_GetClipboardTextFn` + //void (*SetClipboardTextFn)(void* user_data, const char* text); // --> `platform_io.Platform_SetClipboardTextFn` + //void* ClipboardUserData; // --> `platform_io.Platform_ClipboardUserData` //void ClearInputCharacters() { InputQueueCharacters.resize(0); } // [Obsoleted in 1.89.8] Clear the current frame text input buffer. Now included within ClearInputKeys(). Removed this as it is ambiguous/misleading and generally incorrect to use with the existence of a higher-level input queue. #endif From 4c9c888fc5f5fec3de99de61e05dcfc86259394a Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 15 Oct 2026 15:39:58 +0200 Subject: [PATCH 6/9] Build: warning fixes for VS2015 and Size; - bool value_changed = memcmp(p_v, &g.ActiveIdValueOnActivation, data_size); + bool value_changed = memcmp(p_v, &g.ActiveIdValueOnActivation, data_size) != 0; memcpy(p_v, &g.ActiveIdValueOnActivation, data_size); ClearActiveID(); return value_changed; @@ -3322,7 +3322,7 @@ bool ImGui::SliderBehavior(const ImRect& bb, ImGuiID id, ImGuiDataType data_type { // Canceling action reverts to initial value size_t data_size = DataTypeGetInfo(data_type)->Size; - bool value_changed = memcmp(p_v, &g.ActiveIdValueOnActivation, data_size); + bool value_changed = memcmp(p_v, &g.ActiveIdValueOnActivation, data_size) != 0; memcpy(p_v, &g.ActiveIdValueOnActivation, data_size); ClearActiveID(); return value_changed; From 145a2fbab64b320f8755f299eeb305c9d5e43c18 Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 15 Oct 2026 16:24:58 +0200 Subject: [PATCH 7/9] Docs: update binaries. --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 91bc92cde..517f32a9f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -113,7 +113,7 @@ Calling the `ImGui::ShowDemoWindow()` function will create a demo window showcas - [imgui_explorer](https://pthom.github.io/imgui_explorer): Web version of the demo w/ source code browser, courtesy of [@pthom](https://github.com/pthom). You should be able to build the examples from sources. If you don't, let us know! If you want to have a quick look at some Dear ImGui features, you can download Windows binaries of the demo app here: -- [imgui-demo-binaries-20260225.zip](https://www.dearimgui.com/binaries/imgui-demo-binaries-20260225.zip) (Windows, 1.92.6, built 2026/02/25, master) or [older binaries](https://www.dearimgui.com/binaries). +- [imgui-demo-binaries-20261015.zip](https://www.dearimgui.com/binaries/imgui-demo-binaries-20261015.zip) (Win32, 1.93.0, built 2026/10/15, master) or [older binaries](https://www.dearimgui.com/binaries). ### Gallery From f5d2b7dd01205b0f389ee26d11aa1b767ee87c94 Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 15 Oct 2026 16:32:52 +0200 Subject: [PATCH 8/9] CI: fixes for macOS. --- .github/workflows/build.yml | 2 +- docs/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e276e1de..0dcab4688 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -523,7 +523,7 @@ jobs: - name: Install Dependencies run: | - brew install glfw3 sdl2 sdl3 + brew install glfw sdl2 sdl3 - name: Build example_null (extra warnings, clang 64-bit) run: make -C examples/example_null WITH_EXTRA_WARNINGS=1 diff --git a/docs/README.md b/docs/README.md index 517f32a9f..1dea58176 100644 --- a/docs/README.md +++ b/docs/README.md @@ -113,7 +113,7 @@ Calling the `ImGui::ShowDemoWindow()` function will create a demo window showcas - [imgui_explorer](https://pthom.github.io/imgui_explorer): Web version of the demo w/ source code browser, courtesy of [@pthom](https://github.com/pthom). You should be able to build the examples from sources. If you don't, let us know! If you want to have a quick look at some Dear ImGui features, you can download Windows binaries of the demo app here: -- [imgui-demo-binaries-20261015.zip](https://www.dearimgui.com/binaries/imgui-demo-binaries-20261015.zip) (Win32, 1.93.0, built 2026/10/15, master) or [older binaries](https://www.dearimgui.com/binaries). +- [imgui-demo-binaries-20261015-win32.zip](https://www.dearimgui.com/binaries/imgui-demo-binaries-20261015-win32.zip) (Win32, 1.93.0, built 2026/10/15, master) or [older binaries](https://www.dearimgui.com/binaries). ### Gallery From c7d17f01cd3e14bbc9b33cee44e0a2d6f3a2a524 Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 15 Oct 2026 17:56:20 +0200 Subject: [PATCH 9/9] ImVec2: added a check for cases where a custom `IM_VEC2_CLASS_EXTRA` macro adds an extra `operator=` to ImVec2 --- docs/CHANGELOG.txt | 10 +++++++--- imgui.cpp | 9 +++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index 50b16b595..0576968ca 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -59,13 +59,17 @@ Autumn cleanup of stuff marked obsolete more than two years ago: - `io.GetClipboardTextFn` --> `platform_io.Platform_GetClipboardTextFn` - `io.SetClipboardTextFn` --> `platform_io.Platform_SetClipboardTextFn` - `io.ClipboardUserData` --> `platform_io.Platform_ClipboardUserData` - -Please also try to get rid of calls to `GetContentRegionMax()`, `GetWindowContentRegionMin()` -and `GetWindowContentRegionMax()`: you do NOT need those functions. See #7838. +- Please also try to get rid of calls to `GetContentRegionMax()`, `GetWindowContentRegionMin()` + and `GetWindowContentRegionMax()` will may be removed soon-ish: you should not + ever need those functions. See #7838. Other Changes: +- ImVec2: added a check for cases where a custom `IM_VEC2_CLASS_EXTRA` macro + adds an extra `operator=` to ImVec2. This isn't supported but should not + be needed as you should have a constructor to convert from your type to ImVec2. + ----------------------------------------------------------------------- VERSION 1.93.0 (Released 2026-10-14) diff --git a/imgui.cpp b/imgui.cpp index 256486f6b..a970e92ca 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -11208,6 +11208,15 @@ static void ImGui::ErrorCheckNewFrameSanityChecks() // #define IM_ASSERT(EXPR) do { if (SomeCode(EXPR)) SomeMoreCode(); } while (0) // Correct! if (true) IM_ASSERT(1); else IM_ASSERT(0); + // Check user IM_VEC2_CLASS_EXTRA macro + // (IF YOU GET A "ambiguous overload" COMPILE ERROR HERE: does your IM_VEC2_CLASS_EXTRA macro contains an operator=? + // e.g. ImVec2& operator=(const MyPoint & p) { x = p.x; y = p.y; return *this; } + // You should be able to remove it if you have the corresponding constructor: + // e.g. IM_NODEBUGSTEP constexpr inline ImVec2(const MyPoint& f) : x(f.x), y(f.y) {} + // Allowing you to add this extra operator to ImVec2 would prevent our whole codebase from using v = {x,y} assignment style. + // PLEASE GET IN TOUCH IF REMOVING THE operator= IS A PROBLEM TO YOU) + ImVec2 v; v = { 1.0f, 2.0f }; + // Emscripten backends are often imprecise in their submission of DeltaTime. (#6114, #3644) // Ideally the Emscripten app/backend should aim to fix or smooth this value and avoid feeding zero, but we tolerate it. #ifdef __EMSCRIPTEN__