mirror of
https://github.com/ocornut/imgui.git
synced 2026-01-11 00:04:24 +00:00
(Breaking) Fonts: obsoleting SetWindowFontScale().
+ Comments # Conflicts: # imgui.cpp
This commit is contained in:
parent
59a11363a5
commit
80c08f2286
3 changed files with 18 additions and 10 deletions
17
imgui.cpp
17
imgui.cpp
|
|
@ -8445,6 +8445,7 @@ ImFontBaked* ImGui::GetFontBaked()
|
|||
return GImGui->FontBaked;
|
||||
}
|
||||
|
||||
// Get current font size (= height in pixels) of current font, with external scale factors applied. Use ImGui::GetStyle().FontSizeBase to get value before external scale factors.
|
||||
float ImGui::GetFontSize()
|
||||
{
|
||||
return GImGui->FontSize;
|
||||
|
|
@ -8455,6 +8456,8 @@ ImVec2 ImGui::GetFontTexUvWhitePixel()
|
|||
return GImGui->DrawListSharedData.TexUvWhitePixel;
|
||||
}
|
||||
|
||||
// Prefer using PushFontSize(style.FontSize * factor), or use io.FontGlobalScale to scale all windows.
|
||||
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
||||
void ImGui::SetWindowFontScale(float scale)
|
||||
{
|
||||
IM_ASSERT(scale > 0.0f);
|
||||
|
|
@ -8462,6 +8465,7 @@ void ImGui::SetWindowFontScale(float scale)
|
|||
window->FontWindowScale = scale;
|
||||
UpdateCurrentFontSize(0.0f);
|
||||
}
|
||||
#endif
|
||||
|
||||
void ImGui::PushFocusScope(ImGuiID id)
|
||||
{
|
||||
|
|
@ -8737,13 +8741,16 @@ void ImGui::UpdateCurrentFontSize(float restore_font_size_after_scaling)
|
|||
float final_size = (restore_font_size_after_scaling > 0.0f) ? restore_font_size_after_scaling : 0.0f;
|
||||
if (final_size == 0.0f)
|
||||
{
|
||||
final_size = g.FontSizeBeforeScaling * g.IO.FontGlobalScale;
|
||||
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
||||
if (g.Font != NULL)
|
||||
final_size *= g.Font->Scale;
|
||||
#endif
|
||||
final_size = g.FontSizeBeforeScaling;
|
||||
|
||||
// External scale factors
|
||||
final_size *= g.IO.FontGlobalScale;
|
||||
if (window != NULL)
|
||||
final_size *= window->FontWindowScale;
|
||||
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
||||
if (g.Font != NULL)
|
||||
final_size *= g.Font->Scale;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Round font size
|
||||
|
|
|
|||
5
imgui.h
5
imgui.h
|
|
@ -474,7 +474,6 @@ namespace ImGui
|
|||
IMGUI_API void SetWindowSize(const ImVec2& size, ImGuiCond cond = 0); // (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0, 0) to force an auto-fit. prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects.
|
||||
IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiCond cond = 0); // (not recommended) set current window collapsed state. prefer using SetNextWindowCollapsed().
|
||||
IMGUI_API void SetWindowFocus(); // (not recommended) set current window to be focused / top-most. prefer using SetNextWindowFocus().
|
||||
IMGUI_API void SetWindowFontScale(float scale); // [OBSOLETE] set font scale. Adjust IO.FontGlobalScale if you want to scale all windows. This is an old API! For correct scaling, prefer to reload font + rebuild ImFontAtlas + call style.ScaleAllSizes().
|
||||
IMGUI_API void SetWindowPos(const char* name, const ImVec2& pos, ImGuiCond cond = 0); // set named window position.
|
||||
IMGUI_API void SetWindowSize(const char* name, const ImVec2& size, ImGuiCond cond = 0); // set named window size. set axis to 0.0f to force an auto-fit on this axis.
|
||||
IMGUI_API void SetWindowCollapsed(const char* name, bool collapsed, ImGuiCond cond = 0); // set named window collapsed state
|
||||
|
|
@ -532,7 +531,7 @@ namespace ImGui
|
|||
// Style read access
|
||||
// - Use the ShowStyleEditor() function to interactively see/edit the colors.
|
||||
IMGUI_API ImFont* GetFont(); // get current font
|
||||
IMGUI_API float GetFontSize(); // get current font size (= height in pixels) of current font with current scale applied
|
||||
IMGUI_API float GetFontSize(); // get current font size (= height in pixels) of current font with external scale factors applied. Use ImGui::GetStyle().FontSizeBase to get value before external scale factors.
|
||||
IMGUI_API ImVec2 GetFontTexUvWhitePixel(); // get UV coordinate for a white pixel, useful to draw custom shapes via the ImDrawList API
|
||||
IMGUI_API ImFontBaked* GetFontBaked(); // get current font bound at current size // == GetFont()->GetFontBaked(GetFontSize())
|
||||
IMGUI_API ImU32 GetColorU32(ImGuiCol idx, float alpha_mul = 1.0f); // retrieve given style color with style alpha applied and optional extra alpha multiplier, packed as a 32-bit value suitable for ImDrawList
|
||||
|
|
@ -3943,6 +3942,8 @@ struct ImGuiPlatformImeData
|
|||
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
||||
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.FontSize * factor) or use io.FontGlobalScale 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)
|
||||
|
|
|
|||
|
|
@ -8485,11 +8485,11 @@ void ImGui::ShowStyleEditor(ImGuiStyle* ref)
|
|||
"However, the _correct_ way of scaling your UI is currently to reload your font at the designed size, "
|
||||
"rebuild the font atlas, and call style.ScaleAllSizes() on a reference ImGuiStyle structure.\n"
|
||||
"Using those settings here will give you poor quality results.");
|
||||
static float window_scale = 1.0f;
|
||||
PushItemWidth(GetFontSize() * 8);
|
||||
if (DragFloat("window scale", &window_scale, 0.005f, MIN_SCALE, MAX_SCALE, "%.2f", ImGuiSliderFlags_AlwaysClamp)) // Scale only this window
|
||||
SetWindowFontScale(window_scale);
|
||||
DragFloat("global scale", &io.FontGlobalScale, 0.005f, MIN_SCALE, MAX_SCALE, "%.2f", ImGuiSliderFlags_AlwaysClamp); // Scale everything
|
||||
//static float window_scale = 1.0f;
|
||||
//if (DragFloat("window scale", &window_scale, 0.005f, MIN_SCALE, MAX_SCALE, "%.2f", ImGuiSliderFlags_AlwaysClamp)) // Scale only this window
|
||||
// SetWindowFontScale(window_scale);
|
||||
PopItemWidth();
|
||||
|
||||
EndTabItem();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue