mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 01:07:57 -06:00
Fix garbled text when display scalling > 300% (#3402)
* Fix garbled text when display scalling > 300% On Windows, if your display scaling is greater than 300%, the text rendered by imgui will be garbled. Allowing imgui to do the scaling instead of making the font to large corrects the issue. * Only use modified scaling on Windows And only if the system's scaling factor is greater than 300%. --------- Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
parent
a996188e38
commit
1cdd31fa99
2 changed files with 20 additions and 1 deletions
|
@ -6422,7 +6422,17 @@ void GLCanvas3D::_resize(unsigned int w, unsigned int h)
|
||||||
m_last_w = w;
|
m_last_w = w;
|
||||||
m_last_h = h;
|
m_last_h = h;
|
||||||
|
|
||||||
const float font_size = 1.5f * wxGetApp().em_unit();
|
float font_size = wxGetApp().em_unit();
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
// On Windows, if manually scaled here, rendering issues can occur when the system's Display
|
||||||
|
// scaling is greater than 300% as the font's size gets to be to large. So, use imgui font
|
||||||
|
// scaling instead (see: ImGuiWrapper::init_font() and issue #3401)
|
||||||
|
font_size *= (font_size > 30.0f) ? 1.0f : 1.5f;
|
||||||
|
#else
|
||||||
|
font_size *= 1.5f;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLE_RETINA_GL
|
#if ENABLE_RETINA_GL
|
||||||
imgui->set_scaling(font_size, 1.0f, m_retina_helper->get_scale_factor());
|
imgui->set_scaling(font_size, 1.0f, m_retina_helper->get_scale_factor());
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -2663,6 +2663,15 @@ void ImGuiWrapper::init_font(bool compress)
|
||||||
if (bold_font == nullptr) { throw Slic3r::RuntimeError("ImGui: Could not load deafult font"); }
|
if (bold_font == nullptr) { throw Slic3r::RuntimeError("ImGui: Could not load deafult font"); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
// Render the text a bit larger (see GLCanvas3D::_resize() and issue #3401), but only if the scale factor
|
||||||
|
// for the Display is greater than 300%.
|
||||||
|
if (wxGetApp().em_unit() > 30) {
|
||||||
|
default_font->Scale = 1.5f;
|
||||||
|
bold_font->Scale = 1.5f;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
ImFontConfig config;
|
ImFontConfig config;
|
||||||
config.MergeMode = true;
|
config.MergeMode = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue