ocornut
39f6c793b3
Fonts: proof of concept support for user textures.
...
# Conflicts:
# imgui.h
# imgui_internal.h
2025-06-11 15:59:19 +02:00
ocornut
91ed6e67b4
Fonts: fixed support for multiple atlases.
...
Moved FontAtlasOwnedByContext to OwnerContext
# Conflicts:
# imgui.cpp
# imgui_internal.h
2025-06-11 15:58:29 +02:00
ocornut
fad5280d4c
Fonts: fixed broken support for legacy backend due to a mismatch with initial pre-build baked id.
2025-06-11 15:57:44 +02:00
ocornut
46fa9e8efb
Fonts: Debug display status. Fixed truncated raw texture id. Fixed FormatTextureIDForDebugDisplay(). Comments.
2025-06-11 15:57:35 +02:00
ocornut
b32ef3c05d
Fonts: make RasterizerDensity a dynamic field. (temporarily exposed as SetFontRasterizerDensity()).
...
# Conflicts:
# imgui.cpp
# imgui.h
2025-06-11 15:57:35 +02:00
ocornut
8140a9d8a6
Fonts: comments on ImTextureData fields.
2025-06-11 15:57:35 +02:00
ocornut
2b0d49a905
Fonts: make ImFont::Sources a vector.
...
Later it should become a ImSpan<>
2025-06-11 15:57:23 +02:00
ocornut
890fff92fd
Fonts: rename many internal functions for consistency. No other changes.
2025-06-11 15:57:23 +02:00
ocornut
c4fa9bb61f
Fonts: add ImFontGlyph::SourceIdx. Extract code out of DebugNodeFont() into DebugNodeFontGlyphesForSrcMask().
...
(src_mask unused in this commit)
2025-06-11 15:57:23 +02:00
ocornut
bcd1a94b89
Fonts: Extract ImFontAtlasBuildGetFontBaked() out of ImFont::GetFontBaked() mostly for consistency with upcoming changes + tweak locals in AddFont().
2025-06-11 15:57:23 +02:00
ocornut
c43b138a69
Fonts: no need to load current baked on SkipItems window? + removed unused field.
...
Avoid baked staying active after GC. Might cause issues.
# Conflicts:
# imgui.cpp
2025-06-11 15:56:59 +02:00
ocornut
ed2bb2cff0
Fonts: encode additional data in ImFontAtlasRectId to detect invalid id + added Rects debug browser.
2025-06-11 15:56:39 +02:00
ocornut
fb5c537080
Fonts: changing loader/backend or loader flags may be done without losing custom rects. Sharing more code.
2025-06-11 15:56:38 +02:00
ocornut
074bf39e40
Fonts: GC Compact All exposed in Metrics->Memory Allocations includes compacting texture data.
2025-06-11 15:56:24 +02:00
ocornut
44498825cd
(Breaking) Fonts: PushFont() default to preserve current font size.
2025-06-11 15:54:53 +02:00
ocornut
168b97c291
Fonts: removed size rounding in AddFont() which breaks relative sizing of merged fonts (8502)
...
# Conflicts:
# imgui.cpp
2025-06-11 15:54:52 +02:00
ocornut
0fff7ceda4
Fonts: comments, tweaks, minor amends.
...
Comments, tweaks
2025-06-11 15:53:42 +02:00
ocornut
cc65015e4e
Fonts: fixed crashing password fields.
...
# Conflicts:
# imgui_internal.h
2025-06-11 15:53:41 +02:00
ocornut
4048494aa1
Fonts: rename ImFontAtlasBuildClearTexture() to ImFontAtlasBuildClear().
2025-06-11 15:52:21 +02:00
ocornut
b12c42e75d
Fonts: change uses of ImFontAtlasRect to ImTextureRect for simplicity.
2025-06-11 15:52:12 +02:00
ocornut
41a0e991f0
Fonts: Added UI to edit FreeType loader flags. Added ImFontAtlasBuildReloadAll() / ImFontAtlasBuildReloadFont()
2025-06-11 15:51:56 +02:00
ocornut
40f988ce2a
Fonts: in ShowFontAtlas() preserve open-state for latest texture. Improve debug display.
2025-06-11 15:51:56 +02:00
ocornut
c98e3c0eff
Fonts: ImFontConfig::GlyphExcludeRanges is owner and copied.
2025-06-11 15:51:56 +02:00
ocornut
93410c47e1
Fonts: Fixed various small warnings / build issues.
2025-06-11 15:51:56 +02:00
ocornut
131f5c57ab
Textures: Detect when using a texture that's about to be destroyed.
2025-06-11 15:51:56 +02:00
ocornut
0b71339122
Demo: Add a "Fonts" section for visibility.
2025-06-11 15:51:33 +02:00
ocornut
e98a314e06
Textures: Added ImTextureData::UsedRect.
...
# Conflicts:
# imgui_internal.h
2025-06-11 15:51:19 +02:00
ocornut
2bf6879dae
Fonts: tidying up font scale logic.
...
# Conflicts:
# imgui_internal.h
2025-06-11 15:51:18 +02:00
ocornut
8a8d8a7b38
Fonts: Exposed CompactCache(). Hide ClearCache().
2025-06-11 15:47:35 +02:00
ocornut
82b81fce68
Fonts: PushFontSize() with -1 uses sources[0]'s size for now (backward compat design)
2025-06-11 15:47:34 +02:00
ocornut
6580590226
Fonts: Allow PushFont/NewFrame/PopFont idioms to function.
2025-06-11 15:47:29 +02:00
ocornut
99f6b305c1
Fonts: Baked system, v12: support GlyphOffset / GlyphMinAdvanceX / GlyphMaxAdvanceX by scaling from ref value.
...
Overwriting cfg->PixelSnapH = true; in imgui_freetype is weird.
2025-06-11 15:47:21 +02:00
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
722f6013ff
Fonts: Added a bit of user facing tooling.
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
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
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
c20e160e0f
Textures: added texture list pointer in ImDrawData.
...
# Conflicts:
# imgui.h
2025-06-11 15:12:02 +02:00
ocornut
208705368e
Textures: Adding a RefCount to textures so backend can avoid destroying them on shutdown if atlas is shared.
2025-06-11 15:05:51 +02:00
ocornut
a21a2e855b
Textures: Single Textures[] array allows backend to not have to care about atlases.
...
# Conflicts:
# imgui.h
2025-06-11 15:05:49 +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
9485aeb5c8
Demo: changed default framed item width to use Min(GetFontSize() * 12, GetContentRegionAvail().x * 0.40f).
2025-06-04 17:35:45 +02:00
ocornut
c3a3a39e92
Nav: fixed abnormal clipping disable over large ranges, could lead to stall. ( #3841 , #1725 )
...
Amend 93cccd27f
2025-05-30 21:55:50 +02:00