|
@ -1,4 +1,4 @@ |
|
|
// dear imgui, v1.89.1
|
|
|
// dear imgui, v1.89.2 WIP
|
|
|
// (drawing and font code)
|
|
|
// (drawing and font code)
|
|
|
|
|
|
|
|
|
/*
|
|
|
/*
|
|
@ -3565,17 +3565,18 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, const ImVec2& pos, Im |
|
|
while (y + line_height < clip_rect.y && s < text_end) |
|
|
while (y + line_height < clip_rect.y && s < text_end) |
|
|
{ |
|
|
{ |
|
|
const char* line_end = (const char*)memchr(s, '\n', text_end - s); |
|
|
const char* line_end = (const char*)memchr(s, '\n', text_end - s); |
|
|
|
|
|
const char* line_next = line_end ? line_end + 1 : text_end; |
|
|
if (word_wrap_enabled) |
|
|
if (word_wrap_enabled) |
|
|
{ |
|
|
{ |
|
|
// FIXME-OPT: This is not optimal as do first do a search for \n before calling CalcWordWrapPositionA().
|
|
|
// FIXME-OPT: This is not optimal as do first do a search for \n before calling CalcWordWrapPositionA().
|
|
|
// If the specs for CalcWordWrapPositionA() were reworked to optionally return on \n we could combine both.
|
|
|
// If the specs for CalcWordWrapPositionA() were reworked to optionally return on \n we could combine both.
|
|
|
// However it is still better than nothing performing the fast-forward!
|
|
|
// However it is still better than nothing performing the fast-forward!
|
|
|
s = CalcWordWrapPositionA(scale, s, line_end, wrap_width); |
|
|
s = CalcWordWrapPositionA(scale, s, line_next, wrap_width); |
|
|
s = CalcWordWrapNextLineStartA(s, text_end); |
|
|
s = CalcWordWrapNextLineStartA(s, text_end); |
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
s = line_end ? line_end + 1 : text_end; |
|
|
s = line_next; |
|
|
} |
|
|
} |
|
|
y += line_height; |
|
|
y += line_height; |
|
|
} |
|
|
} |
|
|