mirror of
https://github.com/ocornut/imgui.git
synced 2025-12-22 06:15:37 +00:00
Version 1.92.2
This commit is contained in:
@@ -36,9 +36,11 @@ HOW TO UPDATE?
|
|||||||
- Please report any issue!
|
- Please report any issue!
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
VERSION 1.92.2 WIP (In Progress)
|
VERSION 1.92.2 (Released 2025-08-11)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.92.2
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- Tabs: Renamed ImGuiTabBarFlags_FittingPolicyResizeDown to ImGuiTabBarFlags_FittingPolicyShrink.
|
- Tabs: Renamed ImGuiTabBarFlags_FittingPolicyResizeDown to ImGuiTabBarFlags_FittingPolicyShrink.
|
||||||
@@ -49,35 +51,36 @@ Breaking Changes:
|
|||||||
|
|
||||||
Other Changes:
|
Other Changes:
|
||||||
|
|
||||||
- Fixed an inconsistency between IsItemHovered() and internal hovering check,
|
- Fixed an old inconsistency between IsItemHovered() and internal hovering check,
|
||||||
where IsItemHovered() would return true to mouse was first clicked on the
|
where IsItemHovered() would return true to mouse was first clicked on the
|
||||||
background of a non-moveable window then moved over the item or button.
|
background of a non-moveable window then moved over the item or button.
|
||||||
Note that while it is consistent with other logic, there is a possibility
|
Note that while it is consistent with other logic, there is a possibility
|
||||||
that some third-party code may accidentally relied on this.
|
that some third-party code may accidentally relied on this. One can always use
|
||||||
|
ImGuiHoveredFlags_AllowWhenBlockedByActiveItem to bypass the active id check.
|
||||||
(#8877) [@achabense, @ocornut]
|
(#8877) [@achabense, @ocornut]
|
||||||
- Fonts: fixed an issue when a font using MergeMode has a reference size
|
- Fonts: fixed an issue when a font using MergeMode has a reference size
|
||||||
specified but the target font doesn't. Usually either all fonts should
|
specified but the target font doesn't. Usually either all fonts should
|
||||||
have a reference size (only required when specifying e.g. GlyphOffset),
|
have a reference size (only required when specifying e.g. GlyphOffset),
|
||||||
or none should have a reference size.
|
or none should have a reference size.
|
||||||
- Fonts: fixed a crash when changing texture format when using a legacy
|
- Fonts: fixed a crash when changing texture format when using a legacy
|
||||||
backend. Most commonly would happen when calling GetTexDataAsRGBA32()
|
backend. Most commonly would happen when calling GetTexDataAsRGBA32()
|
||||||
then immediately GetTexDataAsAlpha8(). (#8824)
|
then immediately calling GetTexDataAsAlpha8(). (#8824)
|
||||||
- Windows: fixed an issue where resizable child windows would emit border
|
- Windows: fixed an issue where resizable child windows would emit border
|
||||||
logic when hidden/non-visible (e.g. when in a docked window that is not
|
logic when hidden/non-visible (e.g. when in a docked window that is not
|
||||||
selected), impacting code not checking for BeginChild() return value. (#8815)
|
selected), impacting code not checking for BeginChild() return value. (#8815)
|
||||||
- Textures: Fixed support for `#define ImTextureID_Invalid` to non-zero value:
|
- Textures: Fixed support for `#define ImTextureID_Invalid` to non-zero value:
|
||||||
ImFontAtlas() was incorrectly cleared with zeroes. (#8860, #8745) [@cfillion]
|
ImFontAtlas() was incorrectly cleared with zeroes. (#8860, #8745) [@cfillion]
|
||||||
- Tables: fixed TableGetRowIndex() which never correctly worked when using
|
- Tables: fixed TableGetRowIndex() which never correctly worked when using
|
||||||
a clipper (it exists for consistency but is almost never used, as it is
|
a clipper (it exists for consistency but is almost never used, as it is
|
||||||
often more convenient to use index in caller-code, whereas TableGetRowIndex()
|
often more convenient to use index in caller-code, whereas TableGetRowIndex()
|
||||||
includes header rows).
|
includes header rows).
|
||||||
- Tables: fixed imgui_internal.h's TableGetHoveredRow() the same way. (#7350, #6588, #6250)
|
- Tables: fixed imgui_internal.h's TableGetHoveredRow() the same way. (#7350, #6588, #6250)
|
||||||
- Tabs: added new fitting policy ImGuiTabBarFlags_FittingPolicyMixed
|
- Tabs: added new fitting policy ImGuiTabBarFlags_FittingPolicyMixed
|
||||||
and made it the default. This policy shrink tab width down to a given amount,
|
and made it the default. This policy shrink tab width down to a given amount,
|
||||||
and then beyond that it enable scrolling buttons. (#3421, #8800)
|
and then beyond that it enable scrolling buttons. (#3421, #8800)
|
||||||
- Tabs: added style.TabMinWidthShrink, ImGuiStyleVar_TabMinWidthShrink to
|
- Tabs: added style.TabMinWidthShrink, ImGuiStyleVar_TabMinWidthShrink to
|
||||||
control the width to shrink to in ImGuiTabBarFlags_FittingPolicyMixed mode.
|
control the width to shrink to in ImGuiTabBarFlags_FittingPolicyMixed mode.
|
||||||
(#3421, #8800).
|
(#3421, #8800).
|
||||||
- Tabs: when scrolling is enabled, track selected tabs when resizing down
|
- Tabs: when scrolling is enabled, track selected tabs when resizing down
|
||||||
parent container. This does not prevent to horizontally scroll it out of
|
parent container. This does not prevent to horizontally scroll it out of
|
||||||
view during normal operations. (#3421, #8800)
|
view during normal operations. (#3421, #8800)
|
||||||
@@ -90,24 +93,26 @@ Other Changes:
|
|||||||
- Nav, Tables: fixed navigation within scrolling tables when item boundaries
|
- Nav, Tables: fixed navigation within scrolling tables when item boundaries
|
||||||
goes beyond columns limits. The fix done in 1.89.6 didn't work correctly
|
goes beyond columns limits. The fix done in 1.89.6 didn't work correctly
|
||||||
on scrolling windows. (#8816, #2221)
|
on scrolling windows. (#8816, #2221)
|
||||||
- Nav: fixed a bug where GamepadMenu button couldn't toggle between main and
|
- Nav: fixed a bug where ImGuiKey_NavGamepadMenu (==ImGuiKey_GamepadFaceLeft)
|
||||||
menu layers while navigating a Modal window. (#8834)
|
button couldn't toggle between main and menu layers while navigating a Modal
|
||||||
|
window. (#8834)
|
||||||
- Error Handling: minor improvements to error handling for TableGetSortSpecs()
|
- Error Handling: minor improvements to error handling for TableGetSortSpecs()
|
||||||
and TableSetBgColor() calls. (#1651, #8499)
|
and TableSetBgColor() calls. (#1651, #8499)
|
||||||
- Misc: fixed building with IMGUI_DISABLE_DEBUG_TOOLS only. (#8796)
|
- Misc: fixed building with IMGUI_DISABLE_DEBUG_TOOLS only. (#8796)
|
||||||
- Misc: fixed building with IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION. (#8794)
|
- Misc: fixed building with IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION. (#8794)
|
||||||
- Misc: removed more redundant inline static linkage from imgui_internal.h to
|
- Misc: removed more redundant inline static linkage from imgui_internal.h to
|
||||||
facilitate using in C++ modules. (#8813, #8682, #8358) [@stripe2933]
|
facilitate using in C++ modules. (#8813, #8682, #8358) [@stripe2933]
|
||||||
- Misc: ImVector: skip memcpy in operator= if `Data` isn't initialized in order
|
- Misc: ImVector: skip memcpy in operator= if `Data` isn't initialized in order
|
||||||
to play nice with -fsanitize=undefined. (#8874) [@i25e]
|
to play nice with -fsanitize=undefined. (#8874) [@i25e]
|
||||||
- CI: Added SDL3 builds to MacOS and Windows. (#8819, #8778) [@scribam]
|
- CI: Added SDL3 builds to MacOS and Windows. (#8819, #8778) [@scribam]
|
||||||
- CI: Updated Windows CI to use a more recent SDL2. (#8819, #8778) [@scribam]
|
- CI: Updated Windows CI to use a more recent SDL2. (#8819, #8778) [@scribam]
|
||||||
- Examples: SDL3+Metal: added SDL3+Metal example. (#8827, #8825) [@shi-yan]
|
- Examples: SDL3+Metal: added SDL3+Metal example. (#8827, #8825) [@shi-yan]
|
||||||
- Examples: SDL3+SDL_GPU: use SDL_WaitAndAcquireGPUSwapchainTexture() instead
|
- Examples: SDL3+SDL_GPU: use SDL_WaitAndAcquireGPUSwapchainTexture() instead
|
||||||
of SDL_AcquireGPUSwapchainTexture(). (#8830) [@itsdanott]
|
of SDL_AcquireGPUSwapchainTexture(). (#8830) [@itsdanott]
|
||||||
- Backends: OpenGL3: add and call embedded loader shutdown in ImGui_ImplOpenGL3_Shutdown()
|
- Examples: SDL3+SDL_GPU: use SDL_GPU_PRESENTMODE_VSYNC present mode.
|
||||||
|
- Backends: OpenGL3: add and call embedded loader shutdown in ImGui_ImplOpenGL3_Shutdown()
|
||||||
to facilitate multiple init/shutdown cycles in same process. (#8792) [@tim-rex]
|
to facilitate multiple init/shutdown cycles in same process. (#8792) [@tim-rex]
|
||||||
- Backends: OpenGL2, OpenGL3: set GL_UNPACK_ALIGNMENT to 1 before updating
|
- Backends: OpenGL2, OpenGL3: set GL_UNPACK_ALIGNMENT to 1 before updating
|
||||||
textures. (#8802) [@Daandelange]
|
textures. (#8802) [@Daandelange]
|
||||||
- Backends: SDL_GPU3: expose current SDL_GPUSampler* in the ImGui_ImplSDLGPU3_RenderState
|
- Backends: SDL_GPU3: expose current SDL_GPUSampler* in the ImGui_ImplSDLGPU3_RenderState
|
||||||
struct. (#8866, #8163, #7998, #7988)
|
struct. (#8866, #8163, #7998, #7988)
|
||||||
@@ -247,7 +252,7 @@ Breaking changes:
|
|||||||
see list of glyphs available in multiple font sources. This can facilitate understanding
|
see list of glyphs available in multiple font sources. This can facilitate understanding
|
||||||
which font input is providing which glyph.
|
which font input is providing which glyph.
|
||||||
- Fonts: **IMPORTANT** on Thread Safety:
|
- Fonts: **IMPORTANT** on Thread Safety:
|
||||||
- A few functions such as font->CalcTextSizeA() were by sheer luck (== accidentally)
|
- A few functions such as font->CalcTextSizeA() were by sheer luck (== accidentally)
|
||||||
thread-safe even thou we had never provided that guarantee before. They are
|
thread-safe even thou we had never provided that guarantee before. They are
|
||||||
definitively not thread-safe anymore as new glyphs may be loaded.
|
definitively not thread-safe anymore as new glyphs may be loaded.
|
||||||
|
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ Omar: "I first discovered the IMGUI paradigm at [Q-Games](https://www.q-games.co
|
|||||||
Embeds [ProggyClean.ttf](https://www.proggyfonts.net) font by Tristan Grimmer (MIT license).
|
Embeds [ProggyClean.ttf](https://www.proggyfonts.net) font by Tristan Grimmer (MIT license).
|
||||||
<br>Embeds [stb_textedit.h, stb_truetype.h, stb_rect_pack.h](https://github.com/nothings/stb/) by Sean Barrett (public domain).
|
<br>Embeds [stb_textedit.h, stb_truetype.h, stb_rect_pack.h](https://github.com/nothings/stb/) by Sean Barrett (public domain).
|
||||||
|
|
||||||
Inspiration, feedback, and testing for early versions: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. Special thanks to Alex Evans, Patrick Doane, Marco Koegler to pulling nice strings at the right moment. Also thank you to everyone posting feedback, questions and patches on GitHub.
|
Inspiration, feedback, and testing for early versions: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. Special thanks to Alex Evans, Patrick Doane, Marco Koegler for kindly helping. Also thank you to everyone posting feedback, questions and patches on GitHub.
|
||||||
|
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.92.2 WIP
|
// dear imgui, v1.92.2
|
||||||
// (main code and documentation)
|
// (main code and documentation)
|
||||||
|
|
||||||
// Help:
|
// Help:
|
||||||
|
|||||||
26
imgui.h
26
imgui.h
@@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.92.2 WIP
|
// dear imgui, v1.92.2
|
||||||
// (headers)
|
// (headers)
|
||||||
|
|
||||||
// Help:
|
// Help:
|
||||||
@@ -28,8 +28,8 @@
|
|||||||
|
|
||||||
// Library Version
|
// Library Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
||||||
#define IMGUI_VERSION "1.92.2 WIP"
|
#define IMGUI_VERSION "1.92.2"
|
||||||
#define IMGUI_VERSION_NUM 19215
|
#define IMGUI_VERSION_NUM 19220
|
||||||
#define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000
|
#define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000
|
||||||
#define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198
|
#define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198
|
||||||
|
|
||||||
@@ -3970,24 +3970,24 @@ struct ImGuiPlatformImeData
|
|||||||
namespace ImGui
|
namespace ImGui
|
||||||
{
|
{
|
||||||
// OBSOLETED in 1.92.0 (from June 2025)
|
// OBSOLETED in 1.92.0 (from June 2025)
|
||||||
inline void PushFont(ImFont* font) { PushFont(font, font ? font->LegacySize : 0.0f); }
|
inline void PushFont(ImFont* font) { PushFont(font, font ? font->LegacySize : 0.0f); }
|
||||||
IMGUI_API void SetWindowFontScale(float scale); // Set font scale factor for current window. Prefer using PushFont(NULL, style.FontSizeBase * factor) or use style.FontScaleMain to scale all windows.
|
IMGUI_API void SetWindowFontScale(float scale); // Set font scale factor for current window. Prefer using PushFont(NULL, style.FontSizeBase * factor) or use style.FontScaleMain to scale all windows.
|
||||||
// OBSOLETED in 1.91.9 (from February 2025)
|
// 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.
|
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)
|
// OBSOLETED in 1.91.0 (from July 2024)
|
||||||
inline void PushButtonRepeat(bool repeat) { PushItemFlag(ImGuiItemFlags_ButtonRepeat, repeat); }
|
inline void PushButtonRepeat(bool repeat) { PushItemFlag(ImGuiItemFlags_ButtonRepeat, repeat); }
|
||||||
inline void PopButtonRepeat() { PopItemFlag(); }
|
inline void PopButtonRepeat() { PopItemFlag(); }
|
||||||
inline void PushTabStop(bool tab_stop) { PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop); }
|
inline void PushTabStop(bool tab_stop) { PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop); }
|
||||||
inline void PopTabStop() { PopItemFlag(); }
|
inline void PopTabStop() { PopItemFlag(); }
|
||||||
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 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 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()!
|
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()!
|
||||||
// OBSOLETED in 1.90.0 (from September 2023)
|
// OBSOLETED in 1.90.0 (from September 2023)
|
||||||
inline bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags window_flags = 0) { return BeginChild(id, size, ImGuiChildFlags_FrameStyle, window_flags); }
|
inline bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags window_flags = 0) { return BeginChild(id, size, ImGuiChildFlags_FrameStyle, window_flags); }
|
||||||
inline void EndChildFrame() { EndChild(); }
|
inline void EndChildFrame() { EndChild(); }
|
||||||
//static inline bool BeginChild(const char* str_id, const ImVec2& size_arg, bool borders, ImGuiWindowFlags window_flags){ return BeginChild(str_id, size_arg, borders ? ImGuiChildFlags_Borders : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Borders
|
//inline bool BeginChild(const char* str_id, const ImVec2& size_arg, bool borders, ImGuiWindowFlags window_flags){ return BeginChild(str_id, size_arg, borders ? ImGuiChildFlags_Borders : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Borders
|
||||||
//static inline bool BeginChild(ImGuiID id, const ImVec2& size_arg, bool borders, ImGuiWindowFlags window_flags) { return BeginChild(id, size_arg, borders ? ImGuiChildFlags_Borders : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Borders
|
//inline bool BeginChild(ImGuiID id, const ImVec2& size_arg, bool borders, ImGuiWindowFlags window_flags) { return BeginChild(id, size_arg, borders ? ImGuiChildFlags_Borders : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Borders
|
||||||
inline void ShowStackToolWindow(bool* p_open = NULL) { ShowIDStackToolWindow(p_open); }
|
inline void ShowStackToolWindow(bool* p_open = NULL) { ShowIDStackToolWindow(p_open); }
|
||||||
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);
|
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);
|
||||||
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);
|
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);
|
||||||
// OBSOLETED in 1.89.7 (from June 2023)
|
// OBSOLETED in 1.89.7 (from June 2023)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.92.2 WIP
|
// dear imgui, v1.92.2
|
||||||
// (demo code)
|
// (demo code)
|
||||||
|
|
||||||
// Help:
|
// Help:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.92.2 WIP
|
// dear imgui, v1.92.2
|
||||||
// (drawing and font code)
|
// (drawing and font code)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.92.2 WIP
|
// dear imgui, v1.92.2
|
||||||
// (internal structures/api)
|
// (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.
|
// You may use this file to debug, understand or extend Dear ImGui features but we don't provide any guarantee of forward compatibility.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.92.2 WIP
|
// dear imgui, v1.92.2
|
||||||
// (tables and columns code)
|
// (tables and columns code)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.92.2 WIP
|
// dear imgui, v1.92.2
|
||||||
// (widgets code)
|
// (widgets code)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user