2
0
Эх сурвалжийг харах

ImFont::RenderText() faster handling of rendering above clipping rect (useful for #200)

ocornut 10 жил өмнө
parent
commit
60079988bd
1 өөрчлөгдсөн 7 нэмэгдсэн , 1 устгасан
  1. 7 1
      imgui.cpp

+ 7 - 1
imgui.cpp

@@ -10095,7 +10095,13 @@ void ImFont::RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_re
                 if (y1 > clip_rect.w)
                 if (y1 > clip_rect.w)
                     break;
                     break;
                 float y2 = (float)(y1 + glyph->Height * scale);
                 float y2 = (float)(y1 + glyph->Height * scale);
-                if (y2 >= clip_rect.y) // FIMXE-OPT: could fast-forward until next line (without breaking word-wrapping)
+                if (y2 < clip_rect.y)
+                {
+                    // Fast-forward until next line
+                    char_width = 0.0f;
+                    while (s < text_end && *s != '\n') s++;
+                }
+                else
                 {
                 {
                     float x1 = (float)(x + glyph->XOffset * scale);
                     float x1 = (float)(x + glyph->XOffset * scale);
                     float x2 = (float)(x1 + glyph->Width * scale);
                     float x2 = (float)(x1 + glyph->Width * scale);