Core/StringExt: Replace ptr + size by a view in IterateOnCodepoints parameter

Also increase buffer size to increase performance
This commit is contained in:
SirLynix
2024-01-22 17:02:26 +01:00
parent 8dab084037
commit 639f6708b0
5 changed files with 12 additions and 17 deletions

View File

@@ -263,10 +263,10 @@ namespace Nz
UInt64 key = ComputeKey(characterSize, style, outlineThickness);
auto& glyphMap = m_glyphes[key];
IterateOnCodepoints(characterSet, [&](const char32_t* characters, std::size_t characterCount)
IterateOnCodepoints(characterSet, [&](std::u32string_view characters)
{
for (std::size_t i = 0; i < characterCount; ++i)
PrecacheGlyph(glyphMap, characterSize, style, outlineThickness, characters[i]);
for (char32_t character : characters)
PrecacheGlyph(glyphMap, characterSize, style, outlineThickness, character);
return true;
});

View File

@@ -402,12 +402,10 @@ namespace Nz
m_lines.back().bounds.height += heightDifference;
}
IterateOnCodepoints(text, [&](const char32_t* characters, std::size_t characterCount)
IterateOnCodepoints(text, [&](std::u32string_view characters)
{
for (std::size_t i = 0; i < characterCount; ++i)
for (char32_t character : characters)
{
char32_t character = characters[i];
if (previousCharacter != 0)
m_drawPos.x += font.GetKerning(characterSize, previousCharacter, character);

View File

@@ -187,13 +187,10 @@ namespace Nz
const Font::SizeInfo& sizeInfo = m_font->GetSizeInfo(m_characterSize);
IterateOnCodepoints(text, [&](const char32_t* characters, std::size_t characterCount)
IterateOnCodepoints(text, [&](std::u32string_view characters)
{
for (std::size_t i = 0; i < characterCount; ++i)
for (char32_t character : characters)
{
char32_t character = characters[i];
if (m_previousCharacter != 0)
m_drawPos.x += m_font->GetKerning(m_characterSize, m_previousCharacter, character);