浏览代码

Text, DrawList: Improved handling of long single-line wrapped text. (#7496, #5720)

ocornut 1 年之前
父节点
当前提交
daecfffefb
共有 2 个文件被更改,包括 4 次插入0 次删除
  1. 2 0
      docs/CHANGELOG.txt
  2. 2 0
      imgui_draw.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -43,6 +43,8 @@ Breaking changes:
 
 Other changes:
 
+- Text, DrawList: Improved handling of long single-line wrapped text. Faster and
+  mitigitate issues with reading vertex indexing limits with 16-bit indices.
 - Backends: SDL3: Fixed text inputs. Re-enable calling SDL_StartTextInput()/SDL_StopTextInput()
   as SDL3 no longer enables it by default. (#7452, #6306, #6071, #1953) [@Green-Sky]
 

+ 2 - 0
imgui_draw.cpp

@@ -4080,6 +4080,8 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, const ImVec2& pos, Im
             {
                 x = start_x;
                 y += line_height;
+                if (y > clip_rect.w)
+                    break; // break out of main loop
                 word_wrap_eol = NULL;
                 s = CalcWordWrapNextLineStartA(s, text_end); // Wrapping skips upcoming blanks
                 continue;