Commit Graph

4918 Commits

Author SHA1 Message Date
ocornut 24f7328e5f DrawList, Fonts: fixed ImFontAtlasTextureRepack() overwriting draw list shared data UV's etc. even when not bound. (#8694, #8465)
ImFontAtlasUpdateDrawListsSharedData() call from ImFontAtlasTextureRepack() would trigger this.
For simplicity we also track current atlas in ImDrawListSharedData, but we could probably use Font->ContainerAtlas.
2025-06-17 12:06:05 +02:00
ocornut cfa43e721a Windows: clicking on a window close button doesn't claim focus and bring to front. (#8683)
build / Windows (push) Has been cancelled
build / Linux (push) Has been cancelled
build / MacOS (push) Has been cancelled
build / iOS (push) Has been cancelled
build / Emscripten (push) Has been cancelled
build / Android (push) Has been cancelled
scheduled / scheduled (push) Has been cancelled
Added ImGuiItemFlags_NoFocus, ImGuiButtonFlags_NoFocus. Neither are well specified so marking as experimental.
2025-06-13 17:40:17 +02:00
ocornut d8da97f756 Fonts: UpdateCurrentFontSize() early out doesn't need to clear FontBaked.
This was meant when the code would be lower in the function (after updating e.g. g.FontSize) Amend 0e769c5.
2025-06-13 16:47:23 +02:00
ocornut ca3169310e Fonts: fixed FontBaked=NULL in initial call to SetCurrentWindow() in Begin() using previous frame value of SkipItems. (#8465)
ref 0e769c5
2025-06-13 16:46:41 +02:00
ocornut 1ec1510ef7 Fonts: clarify assert. (#8680) 2025-06-12 16:49:47 +02:00
ocornut 115a8e74c2 Fonts: update misc comments, docs. 2025-06-12 14:18:23 +02:00
ocornut 41f4acfb4f Fonts: add has_textures parameters to ImFontAtlasUpdateNewFrame(). 2025-06-12 11:44:11 +02:00
ocornut a0b3eceec7 Fixed using IMGUI_DISABLE_DEMO_WINDOWS without IMGUI_DISABLE_DEBUG_TOOLS and without linking with imgui_demo.cpp 2025-06-12 11:02:32 +02:00
ocornut df068ce11e Various/misc fixes following back-and-forth dynamic_fonts->master->docking merges. Added missing API BREAKING CHANGES section. 2025-06-11 18:50:16 +02:00
ocornut 4acce85656 Fonts: tweaks demo and exposure to sliders, etc. 2025-06-11 17:36:28 +02:00
ocornut cc3d4cab21 (Breaking) renamed ImFontConfig::FontBuilderFlags -> FontLoaderFlags. ImFontAtlas::FontBuilderFlags -> FontLoaderFlags. ImGuiFreeTypeBuilderFlags -> ImGuiFreeTypeLoaderFlags. 2025-06-11 16:42:31 +02:00
ocornut e1481a731d Fonts: fixed NewFrame() when atlas builder has been created but fonts not added. Fixed GetCustomRect() after atlas clear. 2025-06-11 16:25:18 +02:00
ocornut 0e769c5418 Fonts: amend UpdateCurentFontSize() early out optimization. 2025-06-11 16:25:13 +02:00
ocornut 573f08135d Fonts: fixed PopFont() broken recovery.
"misc_recover_1" test would assert in EndFrame()
2025-06-11 16:25:10 +02:00
ocornut 2d2b1cee6b Fonts: internals: renamed g.FontSizeBeforeScaling to g.FontSizeBase for consistency.
# Conflicts:
#	imgui_internal.h
2025-06-11 16:10:45 +02:00
ocornut 3c27c643a9 Fonts: internals: renamed g.FontScale to g.FontBakedScale for clarity. Comments. 2025-06-11 16:10:18 +02:00
ocornut d85e22d205 Added style.FontScaleDpi which is the field overwritten by ImGuiConfigFlags_DpiEnableScaleFonts.
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_demo.cpp
2025-06-11 16:09:56 +02:00
ocornut 8766efcba6 (Breaking) Renamed io.FontGlobalScale to style.FontScaleMain.
# Conflicts:
#	imgui.cpp
2025-06-11 16:07:21 +02:00
ocornut 80c08f2286 (Breaking) Fonts: obsoleting SetWindowFontScale().
+ Comments

# Conflicts:
#	imgui.cpp
2025-06-11 16:07:05 +02:00
ocornut 59a11363a5 Fonts: ground work for allowing SizePixels to be optional. 2025-06-11 16:06:24 +02:00
ocornut 1e118ab891 Fonts: added ImGuiStyle::FontSizeBase. Ensuring PushFontSize() works before main loop and across NewFrame().
# Conflicts:
#	imgui.cpp
2025-06-11 16:06:21 +02:00
ocornut b029be6b6c Fonts: avoid calling GetFontBaked() during SetFontSize(). Also fixes loading extraneous baked on atlas that will be locked
e.g. PushFontSize() before NewFrame() on legacy backend.
2025-06-11 16:06:00 +02:00
ocornut 033cdc4133 Fonts: comments and slight packing of ImFontConfig fields. 2025-06-11 16:06:00 +02:00
ocornut 69547bd4bd Fonts: ImFont::DefaultSize -> ImFont::LegacySize. ImFontFlags_UseDefaultSize -> ImFontFlags_DefaultToLegacySize. 2025-06-11 16:06:00 +02:00
ocornut e3860aa6ac (Breaking) Fonts: removing obsolete ImFont::Scale. 2025-06-11 16:05:54 +02:00
ocornut 25f9c318e3 Fonts: added "Input Glyphs Overlap Detection Tool". Added "Clear bakes", "Clear unused" buttons. Move code. 2025-06-11 16:05:54 +02:00
ocornut 5926c877a1 Fonts: detect if ImFontAtlasUpdateNewFrame() is not being called. 2025-06-11 16:05:54 +02:00
ocornut b2343d6247 Fonts: fallback to default default rasterizer density + pick one from existing viewports at the time of calling AddUpdateViewport().
# Conflicts:
#	imgui.cpp
2025-06-11 16:05:33 +02:00
ocornut f3780c7354 Fonts: adding GetFontBaked() in public API. 2025-06-11 16:02:10 +02:00
ocornut 5ee9845559 Fonts: automatically set current rasterizer density to viewport density. Effectively should fix most things on macOS.
# Conflicts:
#	imgui.cpp
#	imgui.h
2025-06-11 16:02:09 +02:00
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