|
@@ -1646,7 +1646,7 @@ void ImDrawList::AddBezierQuadratic(const ImVec2& p1, const ImVec2& p2, const Im
|
|
PathStroke(col, 0, thickness);
|
|
PathStroke(col, 0, thickness);
|
|
}
|
|
}
|
|
|
|
|
|
-void ImDrawList::AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect)
|
|
|
|
|
|
+void ImDrawList::AddText(ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect)
|
|
{
|
|
{
|
|
if ((col & IM_COL32_A_MASK) == 0)
|
|
if ((col & IM_COL32_A_MASK) == 0)
|
|
return;
|
|
return;
|
|
@@ -3638,6 +3638,7 @@ void ImFont::ClearOutputData()
|
|
DirtyLookupTables = true;
|
|
DirtyLookupTables = true;
|
|
Ascent = Descent = 0.0f;
|
|
Ascent = Descent = 0.0f;
|
|
MetricsTotalSurface = 0;
|
|
MetricsTotalSurface = 0;
|
|
|
|
+ memset(Used4kPagesMap, 0, sizeof(Used4kPagesMap));
|
|
}
|
|
}
|
|
|
|
|
|
static ImWchar FindFirstExistingGlyph(ImFont* font, const ImWchar* candidate_chars, int candidate_chars_count)
|
|
static ImWchar FindFirstExistingGlyph(ImFont* font, const ImWchar* candidate_chars, int candidate_chars_count)
|
|
@@ -3822,7 +3823,7 @@ void ImFont::AddRemapChar(ImWchar dst, ImWchar src, bool overwrite_dst)
|
|
IndexAdvanceX[dst] = (src < index_size) ? IndexAdvanceX.Data[src] : 1.0f;
|
|
IndexAdvanceX[dst] = (src < index_size) ? IndexAdvanceX.Data[src] : 1.0f;
|
|
}
|
|
}
|
|
|
|
|
|
-const ImFontGlyph* ImFont::FindGlyph(ImWchar c) const
|
|
|
|
|
|
+const ImFontGlyph* ImFont::FindGlyph(ImWchar c)
|
|
{
|
|
{
|
|
if (c >= (size_t)IndexLookup.Size)
|
|
if (c >= (size_t)IndexLookup.Size)
|
|
return FallbackGlyph;
|
|
return FallbackGlyph;
|
|
@@ -3832,7 +3833,7 @@ const ImFontGlyph* ImFont::FindGlyph(ImWchar c) const
|
|
return &Glyphs.Data[i];
|
|
return &Glyphs.Data[i];
|
|
}
|
|
}
|
|
|
|
|
|
-const ImFontGlyph* ImFont::FindGlyphNoFallback(ImWchar c) const
|
|
|
|
|
|
+const ImFontGlyph* ImFont::FindGlyphNoFallback(ImWchar c)
|
|
{
|
|
{
|
|
if (c >= (size_t)IndexLookup.Size)
|
|
if (c >= (size_t)IndexLookup.Size)
|
|
return NULL;
|
|
return NULL;
|
|
@@ -3855,7 +3856,7 @@ static inline const char* CalcWordWrapNextLineStartA(const char* text, const cha
|
|
// Simple word-wrapping for English, not full-featured. Please submit failing cases!
|
|
// Simple word-wrapping for English, not full-featured. Please submit failing cases!
|
|
// This will return the next location to wrap from. If no wrapping if necessary, this will fast-forward to e.g. text_end.
|
|
// This will return the next location to wrap from. If no wrapping if necessary, this will fast-forward to e.g. text_end.
|
|
// FIXME: Much possible improvements (don't cut things like "word !", "word!!!" but cut within "word,,,,", more sensible support for punctuations, support for Unicode punctuations, etc.)
|
|
// FIXME: Much possible improvements (don't cut things like "word !", "word!!!" but cut within "word,,,,", more sensible support for punctuations, support for Unicode punctuations, etc.)
|
|
-const char* ImFont::CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const
|
|
|
|
|
|
+const char* ImFont::CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width)
|
|
{
|
|
{
|
|
// For references, possible wrap point marked with ^
|
|
// For references, possible wrap point marked with ^
|
|
// "aaa bbb, ccc,ddd. eee fff. ggg!"
|
|
// "aaa bbb, ccc,ddd. eee fff. ggg!"
|
|
@@ -3953,7 +3954,7 @@ const char* ImFont::CalcWordWrapPositionA(float scale, const char* text, const c
|
|
return s;
|
|
return s;
|
|
}
|
|
}
|
|
|
|
|
|
-ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end, const char** remaining) const
|
|
|
|
|
|
+ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end, const char** remaining)
|
|
{
|
|
{
|
|
if (!text_end)
|
|
if (!text_end)
|
|
text_end = text_begin + strlen(text_begin); // FIXME-OPT: Need to avoid this.
|
|
text_end = text_begin + strlen(text_begin); // FIXME-OPT: Need to avoid this.
|
|
@@ -4032,7 +4033,7 @@ ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, cons
|
|
}
|
|
}
|
|
|
|
|
|
// Note: as with every ImDrawList drawing function, this expects that the font atlas texture is bound.
|
|
// Note: as with every ImDrawList drawing function, this expects that the font atlas texture is bound.
|
|
-void ImFont::RenderChar(ImDrawList* draw_list, float size, const ImVec2& pos, ImU32 col, ImWchar c) const
|
|
|
|
|
|
+void ImFont::RenderChar(ImDrawList* draw_list, float size, const ImVec2& pos, ImU32 col, ImWchar c)
|
|
{
|
|
{
|
|
const ImFontGlyph* glyph = FindGlyph(c);
|
|
const ImFontGlyph* glyph = FindGlyph(c);
|
|
if (!glyph || !glyph->Visible)
|
|
if (!glyph || !glyph->Visible)
|
|
@@ -4047,7 +4048,7 @@ void ImFont::RenderChar(ImDrawList* draw_list, float size, const ImVec2& pos, Im
|
|
}
|
|
}
|
|
|
|
|
|
// Note: as with every ImDrawList drawing function, this expects that the font atlas texture is bound.
|
|
// Note: as with every ImDrawList drawing function, this expects that the font atlas texture is bound.
|
|
-void ImFont::RenderText(ImDrawList* draw_list, float size, const ImVec2& pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, float wrap_width, bool cpu_fine_clip) const
|
|
|
|
|
|
+void ImFont::RenderText(ImDrawList* draw_list, float size, const ImVec2& pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, float wrap_width, bool cpu_fine_clip)
|
|
{
|
|
{
|
|
if (!text_end)
|
|
if (!text_end)
|
|
text_end = text_begin + strlen(text_begin); // ImGui:: functions generally already provides a valid text_end, so this is merely to handle direct calls.
|
|
text_end = text_begin + strlen(text_begin); // ImGui:: functions generally already provides a valid text_end, so this is merely to handle direct calls.
|