mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -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_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 | ||||
|     imgui->set_scaling(font_size, 1.0f, m_retina_helper->get_scale_factor()); | ||||
| #else | ||||
|  |  | |||
|  | @ -2663,6 +2663,15 @@ void ImGuiWrapper::init_font(bool compress) | |||
|         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__ | ||||
|     ImFontConfig config; | ||||
|     config.MergeMode = true; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Leland Lucius
						Leland Lucius