1
0
Fork 0
mirror of https://github.com/ocornut/imgui.git synced 2026-01-11 00:04:24 +00:00

Fonts: optimization bake FallbackAdvanceX into IndexAdvanceX[].

This commit is contained in:
ocornut 2024-11-29 17:34:52 +01:00 committed by ocornut
parent 4f27792ffe
commit 43cc3fc8b1

View file

@ -3820,7 +3820,7 @@ ImFontGlyph* ImFont::BuildLoadGlyph(ImWchar codepoint)
{
// Mark index as not found, so we don't attempt the search twice
BuildGrowIndex(codepoint + 1);
IndexAdvanceX[codepoint] = (float)IM_FONTGLYPH_INDEX_NOT_FOUND;
IndexAdvanceX[codepoint] = FallbackAdvanceX;
IndexLookup[codepoint] = IM_FONTGLYPH_INDEX_NOT_FOUND;
return NULL;
}
@ -4546,11 +4546,10 @@ float ImFont::GetCharAdvance(ImWchar c)
{
if (c < (size_t)IndexAdvanceX.Size)
{
// Missing glyphs fitting inside index will have stored FallbackAdvanceX already.
const float x = IndexAdvanceX.Data[c];
if (x >= 0.0f)
return x;
if (x == (float)IM_FONTGLYPH_INDEX_NOT_FOUND) // FIXME-NEWATLAS: could bake in index
return FallbackAdvanceX;
}
const ImFontGlyph* glyph = BuildLoadGlyph(c);
return glyph ? glyph->AdvanceX : FallbackAdvanceX;