Commit Graph

128 Commits

Author SHA1 Message Date
Wouter Vermaelen
863e989c25 imgui_freetype.cpp: fix gcc -Wmissing-declarations (#8879) 2025-08-11 19:39:26 +02:00
Matthew Pohlmann
0448428322 Fonts: Change ImFontConfig::FontNo back to int from S8 (#8775)
When used with FreeType this value is passed as `face_index` which needs to be 32-bits.

# Conflicts:
#	docs/CHANGELOG.txt
2025-07-05 19:25:45 +02:00
ocornut
fd75bdccb0 Fonts: for large size fonts, layout/size calculation only load glyphs metrics. Actual glyphs are renderer+packed when used by drawing functions. (#8758, #8465)
(Breaking) breaks signature of ImFontLoader::FontBakedLoadGlyph, sorry.
2025-06-30 21:16:20 +02:00
ocornut
b7e5d76c79 Fonts: added ImFontAtlas::SetFontLoader() to dynamically change font loader at runtime without using internal API. (#8752, #8465) 2025-06-30 20:01:02 +02:00
ocornut
c56e8b4964 imgui_freetype: fixed NULL that creeped in instead of nullptr. 2025-06-18 15:31:00 +02:00
Pascal Thomet
842837e35b imgui_freetype: fix conversion null -> bool in FontBakedLoadGlyph (#8696) 2025-06-16 18:36:33 +02:00
ocornut
7a42233d43 imgui_freetype: fixed using legacy names. 2025-06-11 20:47:17 +02:00
ocornut
cc3d4cab21 (Breaking) renamed ImFontConfig::FontBuilderFlags -> FontLoaderFlags. ImFontAtlas::FontBuilderFlags -> FontLoaderFlags. ImGuiFreeTypeBuilderFlags -> ImGuiFreeTypeLoaderFlags. 2025-06-11 16:42:31 +02:00
ocornut
02f58b3207 Fonts: AddFont() functions now allow size_pixels==0.0f (only required when using certain functions)
Fonts: AddFont() funcitons allow size_pixels==0 for merged fonts.
2025-06-11 16:24:48 +02:00
ocornut
59a11363a5 Fonts: ground work for allowing SizePixels to be optional. 2025-06-11 16:06:24 +02:00
ocornut
92ff153763 Fonts: added notes/comments and dummy type about renaming ImFontBuilderIO::GetBuilderForFreeType() to ImFontLoader::GetFontLoader(). 2025-06-11 16:02:10 +02:00
ocornut
8523cbdf58 Fonts: rework ImFontLoader::FontBakedLoadGlyph() interface 2025-06-11 15:57:35 +02:00
ocornut
4dec946ae6 Fonts: don't pretend to half recover from OOM for now + debug log filename on load failure. 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
42e7bb80b6 imgui_freetype: removed anonymous namespace + extracting two functions outside of ImGui_ImplFreeType_FontSrcData. 2025-06-11 15:57:28 +02:00
ocornut
6a455e1281 imgui_freetype: moving data out of ImGui_ImplFreeType_FontSrcData.
The reasoning behind that we would ideally transition ImGui_ImplFreeType_FontSrcData to be shared between fonts using same source.
2025-06-11 15:57:28 +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
b12c42e75d Fonts: change uses of ImFontAtlasRect to ImTextureRect for simplicity. 2025-06-11 15:52:12 +02:00
ocornut
144f444217 Fonts: fixed memory leaks, shutting down font loader, and on AddFont() failure in FreeType backend. 2025-06-11 15:52:12 +02:00
ocornut
8ea0ae454f Fonts: fixed a bug using size specified by secondary font sources. 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
78a17038c2 imgui_freetype: no need to store metrics locally. 2025-06-11 15:47:49 +02:00
ocornut
18c8a93cca Fonts: Rework ImFontLoader signatures.
InitBaked may return false to signify this size is not supported.
2025-06-11 15:47:49 +02:00
ocornut
1cfc0de31d Fonts: Core allocates per-baked-per-src backend buffers, to allow having custom backend per font source. Backend BakedInit/Destroy/AddGlyph process a single source. 2025-06-11 15:47:41 +02:00
ocornut
76b252f80a Fonts: Added ImFontAtlasBakedSetFontGlyphBitmap(). 2025-06-11 15:47:41 +02:00
ocornut
92993e68c8 Fonts: Baked system, fix subsequent sources overriding shared font metrics. 2025-06-11 15:47:41 +02:00
ocornut
815553c4b4 Fonts: ImFontConfig: added GlyphExcludeRanges[]. 2025-06-11 15:47:35 +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
093d01269a Fonts: Baked system, with auto-bind, v10.
# Conflicts:
#	imgui_internal.h
2025-06-11 15:46:27 +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
b06f3c6d1d Fonts: turn public facing BuildRegisterGlyph() into ImFontAtlasBuildAddFontGlyph() thats sets up UV. 2025-06-11 15:44:38 +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
1269467fa0 imgui_freetype: Removing old code. 2025-06-11 15:41:16 +02:00
ocornut
08e1e7681e imgui_freetype: Added Freetype implementation for new architecture. 2025-06-11 15:41:16 +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
Romain Moret
e6913f58b9 imgui_freetype: Update lunasvg API to support v3.0+ (#8656, #6842, #6591) 2025-05-30 21:58:25 +02:00
tanksdude
f5003aff69 Docs: Fix some typos (#8505) 2025-03-21 16:23:09 +01:00
ocornut
4c0604ec2e Font: shallow refactor, rename ConfigData[] fields to Sources[], ConfigDataCount to SourcesCount.
In theory this is all internal stuff.
2025-02-25 17:41:29 +01:00
Rémy Tassoux
f94a5f0e8c Docs: Update doc about plutosvg (#8395) 2025-02-13 14:30:49 +01:00
fdsa
4f1d3809c3 Fixed tabs and spaces (#8377) 2025-02-06 19:54:43 +01:00
ocornut
8a1613a382 Fonts: OversampleH/OversampleV value defaults to 0 for automatic selection. 2025-01-24 19:32:30 +01:00
ocornut
4c64ba16c5 imgui_freetype: fixed issue where glyph advances would incorrectly be snapped to pixels. 2025-01-16 17:42:00 +01:00
ocornut
0514332474 Avoid clang/gcc warnings: -Wnontrivial-memaccess in backends. (#8295, #8129, #8135) 2025-01-08 11:44:00 +01:00
ocornut
566558b17c Replacing NULL with nullptr in examples/backends when they creeped back. (#6313, #7071, #4537) 2024-12-05 12:25:02 +01:00
ocornut
ee2119d7cb imgui_freetype: Fix build broken by 19a1f2a (#8107) 2024-11-29 19:10:39 +01:00
ocornut
19a1f2a5d2 Fonts: fixed AddCustomRect() not being packed with TexGlyphPadding + not accounted in surface area. (#8107) 2024-11-29 18:58:01 +01:00
ocornut
20360e00ce Merge miscellaneous small changes to reduce drift with texture update branch.
- ImGuiDebugLogFlags_EventFont is yet unused.
2024-11-20 21:46:47 +01:00
ocornut
3b683927ee imgui_freetype: Fixed a crash in build font atlas when using merged fonts and the first font in a merged set has no loaded glyph. (#8081) 2024-11-07 14:39:54 +01:00
Pascal Thomet
04d9a04557 imgui_freetype: Added support for plutosvg to render OpenType SVG fonts. (#7927, #7187 + #6591, #6607)
See #7927 for details.
2024-10-17 11:01:59 +02:00