diff --git a/src/libs/renderer/src/s_device.cpp b/src/libs/renderer/src/s_device.cpp index ba49d239c..397c141c7 100644 --- a/src/libs/renderer/src/s_device.cpp +++ b/src/libs/renderer/src/s_device.cpp @@ -2906,7 +2906,7 @@ int32_t DX9RENDER::ExtPrint(int32_t nFontNum, uint32_t foreColor, uint32_t backC switch (wAlign) { case PR_ALIGN_CENTER: - x -= static_cast((pFont->GetStringWidth(Buff_4k, {.scale = fScale}) + 1L) / 2L); + x -= static_cast(pFont->GetStringWidth(Buff_4k, {.scale = fScale}) / 2); break; case PR_ALIGN_RIGHT: x -= static_cast(pFont->GetStringWidth(Buff_4k, {.scale = fScale})); diff --git a/src/libs/renderer/src/storm/bmfont/bmfont.cpp b/src/libs/renderer/src/storm/bmfont/bmfont.cpp index 534e7de8a..98870c0d1 100644 --- a/src/libs/renderer/src/storm/bmfont/bmfont.cpp +++ b/src/libs/renderer/src/storm/bmfont/bmfont.cpp @@ -129,7 +129,7 @@ size_t BmFont::GetStringWidth(const std::string_view &text, const FontPrintOverr previous = codepoint; } - return static_cast(xoffset); + return std::lround(xoffset); } size_t BmFont::GetHeight() const @@ -290,6 +290,10 @@ BmFont::UpdateVertexBufferResult BmFont::UpdateVertexBuffer(float x, float y, co { char32_t codepoint = utf8::Utf8ToCodepoint(text.data() + i); + if (codepoint == 10 || codepoint == 13) { + continue; + } + const BmCharacter *character = GetCharacter(codepoint); if (character == nullptr) {