|
@@ -493,21 +493,26 @@ namespace ImGui
|
|
|
IMGUI_API void SetScrollFromPosY(float local_y, float center_y_ratio = 0.5f); // adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position.
|
|
|
|
|
|
// Parameters stacks (font)
|
|
|
+ // - PushFont(font, 0.0f) // Change font and keep current size
|
|
|
+ // - PushFont(NULL, 20.0f) // Keep font and change current size
|
|
|
+ // - PushFont(font, 20.0f) // Change font and set size to 20.0f
|
|
|
+ // - PushFont(font, style.FontSizeBase * 2.0f) // Change font and set size to be twice bigger than current size.
|
|
|
+ // - PushFont(font, font->LegacySize) // Change font and set size to size passed to AddFontXXX() function. Same as pre-1.92 behavior.
|
|
|
// *IMPORTANT* before 1.92, fonts had a single size. They can now be dynamically be adjusted.
|
|
|
- // - Before 1.92: PushFont() always used font default size.
|
|
|
- // - Since 1.92: PushFont() preserve the current shared font size.
|
|
|
- // - To use old behavior (single size font, size specified in AddFontXXX() call:
|
|
|
- // - Use 'PushFont(font, font->LegacySize)' at call site
|
|
|
- // - Or set 'ImFontConfig::Flags |= ImFontFlags_DefaultToLegacySize' before calling AddFont(), and then 'PushFont(font)' will use this size.
|
|
|
- // *IMPORTANT* External scale factors are applied over the provided value. If you want to scale an existing font size:
|
|
|
- // - OK: PushFontSize(style.FontSizeBase * 2.0f) (= value before external scale factors applied).
|
|
|
- // - NOT OK: PushFontSize(GetFontSize() * 2.0f) (= value after external scale factors applied. External scale factors are: 'style.FontScaleMain * style.FontScaleDpi * maybe more').
|
|
|
- IMGUI_API void PushFont(ImFont* font, float font_size_base = -1); // use NULL as a shortcut to push default font. Use <0.0f to keep current font size.
|
|
|
+ // - In 1.92 we have REMOVED the single parameter version of PushFont() because it seems like the easiest way to provide an error-proof transition.
|
|
|
+ // - PushFont(font) before 1.92 = PushFont(font, font->LegacySize) after 1.92 // Use default font size as passed to AddFontXXX() function.
|
|
|
+ // *IMPORTANT* external scale factors are applied over the provided size. If you want to scale an *existing* font size:
|
|
|
+ // - External scale factors are: 'style.FontScaleMain * style.FontScaleDpi' and maybe more.
|
|
|
+ // - CORRECT: PushFont(NULL, style.FontSizeBase) // use current unscaled size == does nothing
|
|
|
+ // - CORRECT: PushFont(NULL, style.FontSizeBase * 2.0f) // use current unscaled size x2 == make text twice bigger
|
|
|
+ // - INCORRECT: PushFont(NULL, GetFontSize()) // INCORRECT! use size after external factors applied == EXTERNAL SCALING FACTORS WILL APPLY TWICE!
|
|
|
+ // - INCORRECT: PushFont(NULL, GetFontSize() * 2.0f) // INCORRECT! use size after external factors applied == EXTERNAL SCALING FACTORS WILL APPLY TWICE!
|
|
|
+ IMGUI_API void PushFont(ImFont* font, float font_size_base_unscaled); // Use NULL as a shortcut to keep current font. Use 0.0f to keep current size.
|
|
|
IMGUI_API void PopFont();
|
|
|
IMGUI_API void PushFontSize(float font_size_base); // keep current font, change its size. Final 'font size = font_size_base * external scale factors'.
|
|
|
IMGUI_API void PopFontSize();
|
|
|
IMGUI_API ImFont* GetFont(); // get current font
|
|
|
- IMGUI_API float GetFontSize(); // get current font size (= height in pixels) AFTER external scale factors applied. *IMPORTANT* DO NOT PASS THIS VALUE TO PushFont()/PushFontSize()! Use ImGui::GetStyle().FontSizeBase to get value before external scale factors.
|
|
|
+ IMGUI_API float GetFontSize(); // get current scaled font size (= height in pixels). AFTER external scale factors applied. *IMPORTANT* DO NOT PASS THIS VALUE TO PushFont()/PushFontSize()! Use ImGui::GetStyle().FontSizeBase to get value before external scale factors.
|
|
|
IMGUI_API ImFontBaked* GetFontBaked(); // get current font bound at current size // == GetFont()->GetFontBaked(GetFontSize())
|
|
|
|
|
|
// Parameters stacks (shared)
|
|
@@ -3756,7 +3761,7 @@ struct ImFontBaked
|
|
|
enum ImFontFlags_
|
|
|
{
|
|
|
ImFontFlags_None = 0,
|
|
|
- ImFontFlags_DefaultToLegacySize = 1 << 0, // Legacy compatibility: make PushFont() calls without explicit size use font->LegacySize instead of current font size.
|
|
|
+ ImFontFlags_DefaultToLegacySize = 1 << 0, // Legacy compatibility: make `PushFont(font)` == `PushFont(font, font->LegacySize)`. Otherwise by default/shared current font size is used.
|
|
|
ImFontFlags_NoLoadError = 1 << 1, // Disable throwing an error/assert when calling AddFontXXX() with missing file/data. Calling code is expected to check AddFontXXX() return value.
|
|
|
ImFontFlags_NoLoadGlyphs = 1 << 2, // [Internal] Disable loading new glyphs.
|
|
|
ImFontFlags_LockBakedSizes = 1 << 3, // [Internal] Disable loading new baked sizes, disable garbage collecting current ones. e.g. if you want to lock a font to a single size. Important: if you use this to preload given sizes, consider the possibility of multiple font density used on Retina display.
|
|
@@ -3949,7 +3954,8 @@ struct ImGuiPlatformImeData
|
|
|
namespace ImGui
|
|
|
{
|
|
|
// OBSOLETED in 1.92.0 (from June 2025)
|
|
|
- IMGUI_API void SetWindowFontScale(float scale); // Set font scale factor for current window. Prefer using PushFontSize(style.FontSizeBase * factor) or use style.FontScaleMain to scale all windows.
|
|
|
+ static inline void PushFont(ImFont* font) { IM_ASSERT(font != NULL); PushFont(font, font->LegacySize); }
|
|
|
+ IMGUI_API void SetWindowFontScale(float scale); // Set font scale factor for current window. Prefer using PushFont(NULL, style.FontSizeBase * factor) or use style.FontScaleMain to scale all windows.
|
|
|
// OBSOLETED in 1.91.9 (from February 2025)
|
|
|
IMGUI_API void Image(ImTextureRef tex_ref, const ImVec2& image_size, const ImVec2& uv0, const ImVec2& uv1, const ImVec4& tint_col, const ImVec4& border_col); // <-- 'border_col' was removed in favor of ImGuiCol_ImageBorder. If you use 'tint_col', use ImageWithBg() instead.
|
|
|
// OBSOLETED in 1.91.0 (from July 2024)
|