|
@@ -3689,7 +3689,7 @@ ImFont::ImFont()
|
|
Scale = 1.0f;
|
|
Scale = 1.0f;
|
|
Ascent = Descent = 0.0f;
|
|
Ascent = Descent = 0.0f;
|
|
MetricsTotalSurface = 0;
|
|
MetricsTotalSurface = 0;
|
|
- memset(Used4kPagesMap, 0, sizeof(Used4kPagesMap));
|
|
|
|
|
|
+ memset(Used8kPagesMap, 0, sizeof(Used8kPagesMap));
|
|
}
|
|
}
|
|
|
|
|
|
ImFont::~ImFont()
|
|
ImFont::~ImFont()
|
|
@@ -3709,7 +3709,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));
|
|
|
|
|
|
+ memset(Used8kPagesMap, 0, sizeof(Used8kPagesMap));
|
|
}
|
|
}
|
|
|
|
|
|
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)
|
|
@@ -3732,7 +3732,7 @@ void ImFont::BuildLookupTable()
|
|
IndexAdvanceX.clear();
|
|
IndexAdvanceX.clear();
|
|
IndexLookup.clear();
|
|
IndexLookup.clear();
|
|
DirtyLookupTables = false;
|
|
DirtyLookupTables = false;
|
|
- memset(Used4kPagesMap, 0, sizeof(Used4kPagesMap));
|
|
|
|
|
|
+ memset(Used8kPagesMap, 0, sizeof(Used8kPagesMap));
|
|
GrowIndex(max_codepoint + 1);
|
|
GrowIndex(max_codepoint + 1);
|
|
for (int i = 0; i < Glyphs.Size; i++)
|
|
for (int i = 0; i < Glyphs.Size; i++)
|
|
{
|
|
{
|
|
@@ -3741,8 +3741,8 @@ void ImFont::BuildLookupTable()
|
|
IndexLookup[codepoint] = (ImWchar)i;
|
|
IndexLookup[codepoint] = (ImWchar)i;
|
|
|
|
|
|
// Mark 4K page as used
|
|
// Mark 4K page as used
|
|
- const int page_n = codepoint / 4096;
|
|
|
|
- Used4kPagesMap[page_n >> 3] |= 1 << (page_n & 7);
|
|
|
|
|
|
+ const int page_n = codepoint / 8192;
|
|
|
|
+ Used8kPagesMap[page_n >> 3] |= 1 << (page_n & 7);
|
|
}
|
|
}
|
|
|
|
|
|
// Create a glyph to handle TAB
|
|
// Create a glyph to handle TAB
|
|
@@ -3804,15 +3804,15 @@ void ImFont::BuildLookupTable()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-// API is designed this way to avoid exposing the 4K page size
|
|
|
|
|
|
+// API is designed this way to avoid exposing the 8K page size
|
|
// e.g. use with IsGlyphRangeUnused(0, 255)
|
|
// e.g. use with IsGlyphRangeUnused(0, 255)
|
|
bool ImFont::IsGlyphRangeUnused(unsigned int c_begin, unsigned int c_last)
|
|
bool ImFont::IsGlyphRangeUnused(unsigned int c_begin, unsigned int c_last)
|
|
{
|
|
{
|
|
- unsigned int page_begin = (c_begin / 4096);
|
|
|
|
- unsigned int page_last = (c_last / 4096);
|
|
|
|
|
|
+ unsigned int page_begin = (c_begin / 8192);
|
|
|
|
+ unsigned int page_last = (c_last / 8192);
|
|
for (unsigned int page_n = page_begin; page_n <= page_last; page_n++)
|
|
for (unsigned int page_n = page_begin; page_n <= page_last; page_n++)
|
|
- if ((page_n >> 3) < sizeof(Used4kPagesMap))
|
|
|
|
- if (Used4kPagesMap[page_n >> 3] & (1 << (page_n & 7)))
|
|
|
|
|
|
+ if ((page_n >> 3) < sizeof(Used8kPagesMap))
|
|
|
|
+ if (Used8kPagesMap[page_n >> 3] & (1 << (page_n & 7)))
|
|
return false;
|
|
return false;
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|