1
0
Fork 0
mirror of https://github.com/ocornut/imgui.git synced 2026-01-11 00:04:24 +00:00

Version 1.92.0

This commit is contained in:
ocornut 2025-06-25 18:13:10 +02:00
parent da3c86925a
commit 673eb7de96
8 changed files with 42 additions and 36 deletions

View file

@ -36,11 +36,13 @@ HOW TO UPDATE?
- Please report any issue! - Please report any issue!
----------------------------------------------------------------------- -----------------------------------------------------------------------
VERSION 1.92.0 WIP (In Progress) VERSION 1.92.0 (Released 2025-06-25)
----------------------------------------------------------------------- -----------------------------------------------------------------------
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.92
THIS VERSION CONTAINS THE LARGEST AMOUNT OF BREAKING CHANGES SINCE 2015! THIS VERSION CONTAINS THE LARGEST AMOUNT OF BREAKING CHANGES SINCE 2015!
I TRIED REALLY HARD TO KEEP THEM TO A MINIMUM, REDUCE THE AMOUNT OF INTERFERENCES, I TRIED REALLY HARD TO KEEP THEM TO A MINIMUM, REDUCE THE AMOUNT OF INTERFERENCE,
BUT INEVITABLY SOME USERS OR THIRD-PARTY EXTENSIONS WILL BE AFFECTED. BUT INEVITABLY SOME USERS OR THIRD-PARTY EXTENSIONS WILL BE AFFECTED.
IN ORDER TO HELP US IMPROVE THE TRANSITION PROCESS, INCL. DOCUMENTATION AND COMMENTS, IN ORDER TO HELP US IMPROVE THE TRANSITION PROCESS, INCL. DOCUMENTATION AND COMMENTS,
@ -88,8 +90,9 @@ Breaking changes:
This is why it is called 'FontSizeBase' in the style structure. This is why it is called 'FontSizeBase' in the style structure.
- Global scale factors are: 'style.FontScaleMain', 'style.FontScaleDpi' and maybe more. - Global scale factors are: 'style.FontScaleMain', 'style.FontScaleDpi' and maybe more.
- ImFont::FontSize was removed and does not make sense anymore. - ImFont::FontSize was removed and does not make sense anymore.
ImFont::LegacySize is the size passed to AddFont(). - ImFont::LegacySize is the size passed to AddFont().
- Removed support for old PushFont(NULL) which was a shortcut for "revert to default font". - Removed support for old PushFont(NULL) which was a shortcut for "revert to default font".
`PushFont(NULL, some_size)` now keeps current change and changes size.
- Renamed/moved 'io.FontGlobalScale' to 'style.FontScaleMain'. - Renamed/moved 'io.FontGlobalScale' to 'style.FontScaleMain'.
- Fonts: **IMPORTANT** on Font Merging: - Fonts: **IMPORTANT** on Font Merging:
- When searching for a glyph in multiple merged fonts: font inputs are now scanned in order - When searching for a glyph in multiple merged fonts: font inputs are now scanned in order
@ -114,7 +117,7 @@ Breaking changes:
- Textures: - Textures:
- All API functions taking a 'ImTextureID' parameter are now taking a 'ImTextureRef': - All API functions taking a 'ImTextureID' parameter are now taking a 'ImTextureRef':
- ImTextureRef a small composite structure which may be constructed from a ImTextureID. - ImTextureRef ais small composite structure which may be constructed from a ImTextureID.
(or constructed from a ImTextureData* which represent a texture which will generally (or constructed from a ImTextureData* which represent a texture which will generally
be ready by the time of rendering). be ready by the time of rendering).
- Affected functions are: - Affected functions are:
@ -147,7 +150,7 @@ Breaking changes:
- Fonts: if you create and manage ImFontAtlas instances yourself (instead of relying on - Fonts: if you create and manage ImFontAtlas instances yourself (instead of relying on
ImGuiContext to create one, you'll need to call ImFontAtlasUpdateNewFrame() yourself. ImGuiContext to create one, you'll need to call ImFontAtlasUpdateNewFrame() yourself.
An assert will trigger if you don't. An assert will trigger if you don't.
- Fonts: obsolete ImGui::SetWindowFontScale() which is not useful anymore. Prefer using - Fonts: obsoleted ImGui::SetWindowFontScale() which is not useful anymore. Prefer using
PushFont(NULL, style.FontSizeBase * factor) or to manipulate other scaling factors. PushFont(NULL, style.FontSizeBase * factor) or to manipulate other scaling factors.
- Fonts: obsoleted ImFont::Scale which is not useful anymore. - Fonts: obsoleted ImFont::Scale which is not useful anymore.
- Fonts: changed ImFont::CalcWordWrapPositionA() to ImFont::CalcWordWrapPosition(): - Fonts: changed ImFont::CalcWordWrapPositionA() to ImFont::CalcWordWrapPosition():
@ -160,7 +163,7 @@ Breaking changes:
While in theory a vast majority of users shouldn't be affected, some use cases or While in theory a vast majority of users shouldn't be affected, some use cases or
extensions might be. Among other things: extensions might be. Among other things:
- ImDrawCmd::TextureId has been changed to ImDrawCmd::TexRef. - ImDrawCmd::TextureId has been changed to ImDrawCmd::TexRef.
- ImFontAtlas::ConfigData[] has been renamed to ImFontAtlas::Sources[] - ImFontAtlas::ConfigData[] has been renamed to ImFontAtlas::Sources[].
- ImFont::ConfigData[], ConfigDataCount has been renamed to Sources[], SourceCount. - ImFont::ConfigData[], ConfigDataCount has been renamed to Sources[], SourceCount.
- Each ImFont has a number of ImFontBaked instances corresponding to actively used - Each ImFont has a number of ImFontBaked instances corresponding to actively used
sizes. ImFont::GetFontBaked(size) retrieves the one for a given size. sizes. ImFont::GetFontBaked(size) retrieves the one for a given size.
@ -188,9 +191,6 @@ Breaking changes:
- renamed ImGuiFreeType::GetBuilderForFreeType() to ImGuiFreeType::GetFontLoader() - renamed ImGuiFreeType::GetBuilderForFreeType() to ImGuiFreeType::GetFontLoader()
- old: io.Fonts->FontBuilderIO = ImGuiFreeType::GetBuilderForFreeType() - old: io.Fonts->FontBuilderIO = ImGuiFreeType::GetBuilderForFreeType()
- new: io.Fonts.FontLoader = ImGuiFreeType::GetFontLoader(); - new: io.Fonts.FontLoader = ImGuiFreeType::GetFontLoader();
- DrawList: Fixed a regression from 1.91.1 where a Begin()/PushFont()/AddImage() sequence
would not restore the correct atlas Texture Identifier when the PushFont() call used
a font from a different atlas. (#8694, caused by #3224, #3875, #6398, #7903)
- DrawList: Renamed ImDrawList::PushTextureID()/PopTextureID() to PushTexture()/PopTexture(). - DrawList: Renamed ImDrawList::PushTextureID()/PopTextureID() to PushTexture()/PopTexture().
- Fonts: (users of custom rectangles) - Fonts: (users of custom rectangles)
- Renamed AddCustomRectRegular() to AddCustomRect(). (#8466) - Renamed AddCustomRectRegular() to AddCustomRect(). (#8466)
@ -249,7 +249,7 @@ Breaking changes:
- Internals: RenderTextEllipsis() function removed the 'float clip_max_x' parameter directly - Internals: RenderTextEllipsis() function removed the 'float clip_max_x' parameter directly
preceding 'float ellipsis_max_x'. Values were identical for a vast majority of users. (#8387) preceding 'float ellipsis_max_x'. Values were identical for a vast majority of users. (#8387)
Other changes: Non-breaking Fonts/Textures related changes:
- Textures: added partial texture update protocol. (#8465, #3761) - Textures: added partial texture update protocol. (#8465, #3761)
- The Renderer Backend needs to set io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures - The Renderer Backend needs to set io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures
@ -310,7 +310,7 @@ Other changes:
- ImFontBaked structures may be cleaned up between frames when unused, pointers - ImFontBaked structures may be cleaned up between frames when unused, pointers
to them are only valid for the current frame. to them are only valid for the current frame.
- Added ImFontBaked::IsGlyphLoaded() function. - Added ImFontBaked::IsGlyphLoaded() function.
- Fonts: custom rect packing has generally been reworked. (#8107, #7962, #1282) - Fonts: Custom Rect packing has generally been reworked. (#8107, #7962, #1282)
- ImFontAtlas::AddCustomRect() (previously AddCustomRectRegular()/AddCustomRectFontGlyph()) - ImFontAtlas::AddCustomRect() (previously AddCustomRectRegular()/AddCustomRectFontGlyph())
functions will immediately return a packed rectangle identifier, and you can write your functions will immediately return a packed rectangle identifier, and you can write your
pixels immediately - previously had to wait for Build() to be called. pixels immediately - previously had to wait for Build() to be called.
@ -328,14 +328,29 @@ Other changes:
for Renderer Backend to specify if there is a maximum accepted texture size (not yet used). for Renderer Backend to specify if there is a maximum accepted texture size (not yet used).
- Fonts: added compile-time overridable '#define ImTextureID_Invalid 0' if you need 0 - Fonts: added compile-time overridable '#define ImTextureID_Invalid 0' if you need 0
to be a valid low-level texture identifier. to be a valid low-level texture identifier.
- Fonts: reworked text ellipsis logic to ensure a "..." is always displayed instead
of a single character. (#7024)
- Fonts: word-wrapping code handle ideographic comma & full stop (U+3001, U+3002). (#8540)
- Fonts: fixed CalcWordWrapPosition() fallback when width is too small to wrap:
would use a +1 offset instead of advancing to the next UTF-8 codepoint. (#8540)
- Debug Tools: Fonts section: add font preview, add "Remove" button, add "Load all glyphs" - Debug Tools: Fonts section: add font preview, add "Remove" button, add "Load all glyphs"
button, add selection to change font backend when both are compiled in. button, add selection to change font backend when both are compiled in.
- Renderer Backends:
- Backends: DX9/DX10/DX11/DX12, Vulkan, OpenGL2/3, Metal, SDLGPU3, SDLRenderer2/3, WebGPU, Allegro5:
- Added ImGuiBackendFlags_RendererHasTextures support for all backends. (#8465, #3761, #3471)
[@ocornut, @ShironekoBen, @thedmd]
- Added ImGui_ImplXXXX_UpdateTexture(ImTextureData* tex) functions for all backends.
Available if you want to start uploading textures right after ImGui::Render() and without
waiting for the call to ImGui_ImplXXXX_RenderDrawData(). Also useful if you use a staged or
multi-threaded rendering schemes, where you might want to set ImDrawData::Textures = NULL. (#8597, #1860)
- Special thanks for fonts/texture related feedback to: @thedmd, @ShironekoBen, @rodrigorc, - Special thanks for fonts/texture related feedback to: @thedmd, @ShironekoBen, @rodrigorc,
@pathogendavid, @itamago, @rokups, @DucaRii, @Aarkham, @cyfewlp. @pathogendavid, @itamago, @rokups, @DucaRii, @Aarkham, @cyfewlp.
Other Changes:
- IO: variations in analog-only components of gamepad events do not interfere - IO: variations in analog-only components of gamepad events do not interfere
with trickling of mouse position events (#4921, #8508) with trickling of mouse position events (#4921, #8508)
- Windows: fixed SetNextWindowCollapsed()/SetWindowCollapsed() breaking - Windows: fixed SetNextWindowCollapsed()/SetWindowCollapsed() bypassing the
codepath that preserve last contents size when collapsed, resulting in codepath that preserve last contents size when collapsed, resulting in
programmatically uncollapsing auto-sizing windows having them flicker size programmatically uncollapsing auto-sizing windows having them flicker size
for a frame. (#7691) [@achabense] for a frame. (#7691) [@achabense]
@ -353,10 +368,10 @@ Other changes:
- ImGuiTreeNodeFlags_DrawLinesFull: Horizontal lines to child nodes. Vertical line drawn down to TreePop() position: cover full contents. - ImGuiTreeNodeFlags_DrawLinesFull: Horizontal lines to child nodes. Vertical line drawn down to TreePop() position: cover full contents.
- ImGuiTreeNodeFlags_DrawLinesToNodes: Horizontal lines to child nodes. Vertical line drawn down to bottom-most child node. - ImGuiTreeNodeFlags_DrawLinesToNodes: Horizontal lines to child nodes. Vertical line drawn down to bottom-most child node.
- Added style.TreeLinesFlags which stores the default setting, - Added style.TreeLinesFlags which stores the default setting,
which may be overriden in individual TreeNode() calls. which may be overridden in individual TreeNode() calls.
- Added style.TreeLinesSize (default to 1.0f). - Added style.TreeLinesSize (default to 1.0f).
- Added style.TreeLinesRadius (default to 0.0f). - Added style.TreeLinesRadius (default to 0.0f).
- Added ImGuiCol_TreeLines (in default style this is the same as ImGuiCol_Border). - Added ImGuiCol_TreeLines (in default styles this is the same as ImGuiCol_Border).
- Caveats: - Caveats:
- Tree nodes may be used in many creative ways (manually positioning openable - Tree nodes may be used in many creative ways (manually positioning openable
nodes in unusual ways, using indent to create tree-looking structures, etc.) nodes in unusual ways, using indent to create tree-looking structures, etc.)
@ -397,28 +412,19 @@ Other changes:
EndPopup() call. (#1651, #8499) EndPopup() call. (#1651, #8499)
- Error Handling: added better error report and recovery when calling EndFrame() - Error Handling: added better error report and recovery when calling EndFrame()
or Render() without NewFrame(). Was previously only an assert. or Render() without NewFrame(). Was previously only an assert.
- Fonts: reworked text ellipsis logic to ensure a "..." is always displayed instead
of a single character. (#7024)
- Fonts: word-wrapping code handle ideographic comma & full stop (U+3001, U+3002). (#8540)
- Fonts: fixed CalcWordWrapPosition() fallback when width is too small to wrap:
would use a +1 offset instead of advancing to the next UTF-8 codepoint. (#8540)
- Style, InputText: added ImGuiCol_InputTextCursor to configure color of - Style, InputText: added ImGuiCol_InputTextCursor to configure color of
the InputText cursor/caret. (#7031) the InputText cursor/caret. (#7031)
- Platform IME: added ImGuiPlatformImeData::ViewportId info (backported from Docking branch). - Platform IME: added ImGuiPlatformImeData::ViewportId info (backported from Docking branch).
- Platform IME: added ImGuiPlatformImeData::WantTextInput which might set independently - Platform IME: added ImGuiPlatformImeData::WantTextInput which might set independently
of WantVisible. This is set in the same structure because activating text input generally of WantVisible. This is set in the same structure because activating text input generally
requires providing a window to the backend. (#8584, #6341) requires providing a window to the backend. (#8584, #6341)
- DrawList: Fixed a regression from 1.91.1 where a Begin()/PushFont()/AddImage() sequence
would not restore the correct atlas Texture Identifier when the PushFont() call used
a font from a different atlas. (#8694, caused by #3224, #3875, #6398, #7903)
- Misc: added extra operators to ImVec4 in IMGUI_DEFINE_MATH_OPERATORS block. (#8510) [@gan74] - Misc: added extra operators to ImVec4 in IMGUI_DEFINE_MATH_OPERATORS block. (#8510) [@gan74]
- Misc: removed static linkage from operators to facilitate using in C++ modules. (#8682, #8358) [@johmani] - Misc: removed static linkage from operators to facilitate using in C++ modules. (#8682, #8358) [@johmani]
- Demo: changed default framed item width to use Min(GetFontSize() * 12, GetContentRegionAvail().x * 0.40f). - Demo: changed default framed item width to use Min(GetFontSize() * 12, GetContentRegionAvail().x * 0.40f).
- Renderer Backends: - Renderer Backends:
- Backends: DX9/DX10/DX11/DX12, Vulkan, OpenGL2/3, Metal, SDLGPU3, SDLRenderer2/3, WebGPU, Allegro5:
- Added ImGuiBackendFlags_RendererHasTextures support. (#8465, #3761, #3471)
[@ocornut, @ShironekoBen, @thedmd]
- Added ImGui_ImplXXXX_UpdateTexture(ImTextureData* tex) functions for all backend.
Available if you want to start uploading textures right after ImGui::Render() and without
waiting for the call to ImGui_ImplXXXX_RenderDrawData(). Also useful if you use a staged or
multi-threaded rendering schemes, where you might want to set ImDrawData::Textures = NULL. (#8597, #1860)
- Backends: SDLGPU3: Fixed creating atlas texture earlier than other backends, preventing - Backends: SDLGPU3: Fixed creating atlas texture earlier than other backends, preventing
to load fonts between the Init and NewFrames calls. to load fonts between the Init and NewFrames calls.
- Backends: SDLGPU3: Made ImGui_ImplSDLGPU3_PrepareDrawData() reuse GPU Transfer Buffers which - Backends: SDLGPU3: Made ImGui_ImplSDLGPU3_PrepareDrawData() reuse GPU Transfer Buffers which
@ -456,7 +462,7 @@ Other changes:
- Backends: GLFW, SDL2, SDL3: include GLFW/SDL version number in io.BackendPlatformName. - Backends: GLFW, SDL2, SDL3: include GLFW/SDL version number in io.BackendPlatformName.
- Backends: SDL3: Update for SDL3 api changes: revert SDL_GetClipboardText() - Backends: SDL3: Update for SDL3 api changes: revert SDL_GetClipboardText()
memory ownership change. (#8530, #7801) [@Green-Sky] memory ownership change. (#8530, #7801) [@Green-Sky]
- Backends: SDL3: honor ImGuiPlatformImeData->WantTextInput as an alternative - Backends: SDL3: honor ImGuiPlatformImeData::WantTextInput as an alternative
way to call SDL_StartTextInput(), without IME being necessarily visible. (#8584) way to call SDL_StartTextInput(), without IME being necessarily visible. (#8584)
- Backends: SDL3: fixed pulling SDL_PROP_WINDOW_COCOA_WINDOW_POINTER into - Backends: SDL3: fixed pulling SDL_PROP_WINDOW_COCOA_WINDOW_POINTER into
viewport->PlatformHandleRaw. (#8725, #8726) [@eertbleyen] viewport->PlatformHandleRaw. (#8725, #8726) [@eertbleyen]

View file

@ -1,4 +1,4 @@
// dear imgui, v1.92.0 WIP // dear imgui, v1.92.0
// (main code and documentation) // (main code and documentation)
// Help: // Help:

View file

@ -1,4 +1,4 @@
// dear imgui, v1.92.0 WIP // dear imgui, v1.92.0
// (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.0 WIP" #define IMGUI_VERSION "1.92.0"
#define IMGUI_VERSION_NUM 19199 #define IMGUI_VERSION_NUM 19200
#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

View file

@ -1,4 +1,4 @@
// dear imgui, v1.92.0 WIP // dear imgui, v1.92.0
// (demo code) // (demo code)
// Help: // Help:

View file

@ -1,4 +1,4 @@
// dear imgui, v1.92.0 WIP // dear imgui, v1.92.0
// (drawing and font code) // (drawing and font code)
/* /*

View file

@ -1,4 +1,4 @@
// dear imgui, v1.92.0 WIP // dear imgui, v1.92.0
// (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.

View file

@ -1,4 +1,4 @@
// dear imgui, v1.92.0 WIP // dear imgui, v1.92.0
// (tables and columns code) // (tables and columns code)
/* /*

View file

@ -1,4 +1,4 @@
// dear imgui, v1.92.0 WIP // dear imgui, v1.92.0
// (widgets code) // (widgets code)
/* /*