|  |  |  | @ -167,7 +167,21 @@ void ImGui::TextEx(const char* text, const char* text_end, ImGuiTextFlags flags) | 
			
		
	
		
			
				
					|  |  |  |  |     const ImVec2 text_pos(window->DC.CursorPos.x, window->DC.CursorPos.y + window->DC.CurrLineTextBaseOffset); | 
			
		
	
		
			
				
					|  |  |  |  |     const float wrap_pos_x = window->DC.TextWrapPos; | 
			
		
	
		
			
				
					|  |  |  |  |     const bool wrap_enabled = (wrap_pos_x >= 0.0f); | 
			
		
	
		
			
				
					|  |  |  |  |     if (text_end - text > 2000 && !wrap_enabled) | 
			
		
	
		
			
				
					|  |  |  |  |     if (text_end - text <= 2000 || wrap_enabled) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         // Common case
 | 
			
		
	
		
			
				
					|  |  |  |  |         const float wrap_width = wrap_enabled ? CalcWrapWidthForPos(window->DC.CursorPos, wrap_pos_x) : 0.0f; | 
			
		
	
		
			
				
					|  |  |  |  |         const ImVec2 text_size = CalcTextSize(text_begin, text_end, false, wrap_width); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         ImRect bb(text_pos, text_pos + text_size); | 
			
		
	
		
			
				
					|  |  |  |  |         ItemSize(text_size, 0.0f); | 
			
		
	
		
			
				
					|  |  |  |  |         if (!ItemAdd(bb, 0)) | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         // Render (we don't hide text after ## in this end-user function)
 | 
			
		
	
		
			
				
					|  |  |  |  |         RenderTextWrapped(bb.Min, text_begin, text_end, wrap_width); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     else | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         // Long text!
 | 
			
		
	
		
			
				
					|  |  |  |  |         // Perform manual coarse clipping to optimize for long multi-line text
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -240,19 +254,6 @@ void ImGui::TextEx(const char* text, const char* text_end, ImGuiTextFlags flags) | 
			
		
	
		
			
				
					|  |  |  |  |         ItemSize(text_size, 0.0f); | 
			
		
	
		
			
				
					|  |  |  |  |         ItemAdd(bb, 0); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     else | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         const float wrap_width = wrap_enabled ? CalcWrapWidthForPos(window->DC.CursorPos, wrap_pos_x) : 0.0f; | 
			
		
	
		
			
				
					|  |  |  |  |         const ImVec2 text_size = CalcTextSize(text_begin, text_end, false, wrap_width); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         ImRect bb(text_pos, text_pos + text_size); | 
			
		
	
		
			
				
					|  |  |  |  |         ItemSize(text_size, 0.0f); | 
			
		
	
		
			
				
					|  |  |  |  |         if (!ItemAdd(bb, 0)) | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         // Render (we don't hide text after ## in this end-user function)
 | 
			
		
	
		
			
				
					|  |  |  |  |         RenderTextWrapped(bb.Min, text_begin, text_end, wrap_width); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void ImGui::TextUnformatted(const char* text, const char* text_end) | 
			
		
	
	
		
			
				
					|  |  |  | @ -1285,7 +1286,7 @@ void ImGui::Bullet() | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     ImGuiContext& g = *GImGui; | 
			
		
	
		
			
				
					|  |  |  |  |     const ImGuiStyle& style = g.Style; | 
			
		
	
		
			
				
					|  |  |  |  |     const float line_height = ImMax(ImMin(window->DC.CurrLineSize.y, g.FontSize + g.Style.FramePadding.y * 2), g.FontSize); | 
			
		
	
		
			
				
					|  |  |  |  |     const float line_height = ImMax(ImMin(window->DC.CurrLineSize.y, g.FontSize + style.FramePadding.y * 2), g.FontSize); | 
			
		
	
		
			
				
					|  |  |  |  |     const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(g.FontSize, line_height)); | 
			
		
	
		
			
				
					|  |  |  |  |     ItemSize(bb); | 
			
		
	
		
			
				
					|  |  |  |  |     if (!ItemAdd(bb, 0)) | 
			
		
	
	
		
			
				
					|  |  |  | 
 |