1200 Commits

Author SHA1 Message Date
ocornut
daaf0e4ef3 Fonts: Added PushFontSize(), PopFontSize() api. Added font_size param to PushFont() as well.
Fonts: Fixed PopFont() recovery.

(To squash into "Added PushFontSize(), PopFontSize() api."
2025-06-11 15:46:28 +02:00
ocornut
80404fae30 Fonts: clarify ClearTexData() as not supported with dynamic atlases. 2025-06-11 15:46:28 +02:00
ocornut
093d01269a Fonts: Baked system, with auto-bind, v10.
# Conflicts:
#	imgui_internal.h
2025-06-11 15:46:27 +02:00
ocornut
7aba8da551 (Breaking) Fonts: CalcWordWrapPositionA() -> CalcWordWrapPosition(), takes size instead of scale as this will be needed. 2025-06-11 15:45:22 +02:00
ocornut
fb69a09d6e Fonts: Fixed leak due to indirectly recursing ImFontAtlasPackInit(). 2025-06-11 15:45:14 +02:00
ocornut
c5653d5f34 Fonts: stb_truetype loader: Reworked scale handling to suggest this is not required caching. 2025-06-11 15:45:14 +02:00
ocornut
b203ac1e0d Fonts: Reduced reliance on ImFontConfig::DstFont. 2025-06-11 15:45:14 +02:00
ocornut
bd19bc5085 Fonts: Removed BuildClearGlyphs(), conflated with ClearOutputData() 2025-06-11 15:45:14 +02:00
ocornut
2bf6552f2f Fonts: Fixed/improved support for legacy backend. SetTexID() writes into our ImTextureData to keep the indirection, clear TexIsBuilt.
The idea is that a legacy backend can somehow add a if (!atlas->IsBuilt()) ImGui_ImplXXXXX_CreateFontsTexture() call _after_ Render() and some features are supported.
2025-06-11 15:45:14 +02:00
ocornut
ba62becb7d (Breaking) Fonts: remove ImFontAtlasCustomRect which is now the same as ImTextureRect 2025-06-11 15:45:08 +02:00
ocornut
a509790a1c Fonts: Added back support for AddCustomRectFontGlyph()
Legacy path naturally works.
2025-06-11 15:45:08 +02:00
ocornut
953ce90d27 Fonts: ImFontAtlasBuildInit() uses the occasion to sync HasTexUpdates from imgui context, narrowing the scope where it isn't set. 2025-06-11 15:45:07 +02:00
ocornut
288055180e Fonts: Comments, remove ImFontAtlas facing BuildGrowTexture(), BuildCompactTexture(). Make IsBuilt() obsolete. 2025-06-11 15:45:07 +02:00
ocornut
8ed4e2dde7 Fonts: Basic heuristic to repack instead of growing. Moved rects count/surface to internals. 2025-06-11 15:45:07 +02:00
ocornut
2137b3448b Textures: Added atlas's TexMinWidth/TexMinHeight/TexMaxWidth/TexMaxHeight.
Fixed ImFontAtlasBuildGetTextureSizeEstimate().
Basic error handling on OOM.
2025-06-11 15:45:01 +02:00
ocornut
14614f561b Textures: Ensure UpdateBox is set on texture _WantCreate state too. 2025-06-11 15:45:01 +02:00
ocornut
b06f3c6d1d Fonts: turn public facing BuildRegisterGlyph() into ImFontAtlasBuildAddFontGlyph() thats sets up UV. 2025-06-11 15:44:38 +02:00
ocornut
4ff1631b31 Fonts: Rasterizing ellipsis character from dot as one glyph + avoid preloading if it not needed.
# Conflicts:
#	imgui.cpp
2025-06-11 15:44:37 +02:00
ocornut
a2bc3d81c2 Fonts: Fixed support for multiple contexts. 2025-06-11 15:43:07 +02:00
ocornut
cec3e945f0 Fonts: added ImFontAtlas::RemoveFont(), fixed various leaks. 2025-06-11 15:43:07 +02:00
ocornut
df8450d928 Fonts: marked ImFontAtlas::Build() as obsolete 2025-06-11 15:43:07 +02:00
ocornut
4399599de9 Fonts: ClearCache(), ImFontAtlasBuildGetTextureSizeEstimate(), tweak clearing functions. 2025-06-11 15:43:06 +02:00
ocornut
a51a26e2aa Fonts: use a structure for post-processing - easier to pass things around and iterate on. 2025-06-11 15:43:06 +02:00
ocornut
553b1c301d Fonts: repack without full reload, discard rectangle, fixed CustomRect api with stable id, remove public BuildInit(). 2025-06-11 15:43:01 +02:00
ocornut
a6c7801926 Fonts: Measured and tweaked CalcTextSize() computation to minimize cost in our stress tests. 2025-06-11 15:42:55 +02:00
ocornut
076a1ab85c Fonts: Misc amends, remove _PackNodesFactor, comments. 2025-06-11 15:42:54 +02:00
ocornut
ac13683c26 Fonts: ImFontAtlas accept DrawListSharedData not being set. 2025-06-11 15:42:54 +02:00
ocornut
43cc3fc8b1 Fonts: optimization bake FallbackAdvanceX into IndexAdvanceX[]. 2025-06-11 15:42:54 +02:00
ocornut
4f27792ffe (Breaking) Removed atlas->TexDesiredWidth now unnecessary (github 327) 2025-06-11 15:42:54 +02:00
ocornut
b670f799d5 Fonts: use TexGlyphPadding. Fixed packing issues. Removed old code. 2025-06-11 15:41:21 +02:00
ocornut
0f553c57bd Fonts: AddFont() actually does the work, so we can handle errors & return an accurate return value. 2025-06-11 15:41:21 +02:00
ocornut
c20e160e0f Textures: added texture list pointer in ImDrawData.
# Conflicts:
#	imgui.h
2025-06-11 15:12:02 +02:00
ocornut
ee357aaddf Textures: Add ImTextureUserID_Invalid + introducing SetTexID().
Which gives us room for potentially updating ImDrawData during render.
2025-06-11 15:04:02 +02:00
ocornut
2cde9125d6 Fonts: Selecting font config source list done by shared code. 2025-06-11 15:04:02 +02:00
ocornut
0f0473bf1c Fonts, Textures: main code for ImGuiBackendFlags_RendererHasTextures feature.
# Conflicts:
#	imgui.h
#	imgui_demo.cpp
2025-06-11 15:03:46 +02:00
ocornut
191a728ecc (Breaking) added ImTextureRef struct. Changed ImDrawCmd::TextureId to TexRef.
Softly breaking. May require support from language binding generator.
Rebased and reworked completely on 2025/03/19.
2025-06-11 15:02:36 +02:00
ocornut
5e17c08010 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
2025-05-30 22:00:26 +02:00
ocornut
407a0b972e (Breaking) Fonts: CalcWordWrapPositionA() -> CalcWordWrapPosition(), takes size instead of scale.
This will be needed for upcoming changes.
2025-05-23 16:08:00 +02:00
ocornut
c008c7d494 Merge remote-tracking branch 'origin/master' into docking
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx11.cpp
#	backends/imgui_impl_dx12.cpp
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
2025-05-15 14:45:15 +02:00
ocornut
f484af34c2 Font: rename ImFont::AddRemapChar() parameters for clarity. (#609) 2025-05-08 18:05:05 +02:00
ocornut
88d2df24be Merge branch 'master' into docking 2025-04-16 20:31:18 +02:00
ocornut
e4a865177e ImFont: added cpu clip fine option for ImFont::RenderChar() (which is technically internal).
(toward #7024)
2025-04-16 20:21:23 +02:00
ocornut
47d1ab192a Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_vulkan.cpp
#	imgui_widgets.cpp
2025-04-08 19:59:38 +02:00
ocornut
e5b218e6d1 TreeNode: added ImGuiTreeNodeFlags_DrawTreeXXX flags. (#2920)
# Conflicts:
#	docs/CHANGELOG.txt
2025-04-08 19:58:59 +02:00
ocornut
b4bd596a39 Fonts: word-wrapping code handle ideographic comma & full stop (U+3001, U+3002). (#8540) 2025-04-01 22:57:07 +02:00
ocornut
fcab22f80f Fonts: fixed CalcWordWrapPositionA() fallback when width is too small to wrap with multibyte codepoints.. (#8540) 2025-04-01 22:57:07 +02:00
ocornut
df5690d91a Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_osx.mm
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	imgui.cpp
2025-03-30 16:42:28 +02:00
tanksdude
f5003aff69 Docs: Fix some typos (#8505) 2025-03-21 16:23:09 +01:00
ocornut
790f2b9a7a Merge branch 'master' into docking 2025-03-19 17:54:42 +01:00
ocornut
d467950a5e Style, InputText: added ImGuiCol_InputTextCursor to configure color of the InputText cursor/caret. (#7031) 2025-03-19 17:50:40 +01:00