diff options
author | Eugene Sandulenko | 2018-06-18 00:08:11 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2018-06-18 00:08:11 +0200 |
commit | 0e55160cd032eb91da1f5e1f0694903bc52cf8aa (patch) | |
tree | ae07332b47fb27949e85c417dbb8b8a5277042b9 /engines/zvision | |
parent | 79e158671e84b532687637184ecfbd65b827a81d (diff) | |
download | scummvm-rg350-0e55160cd032eb91da1f5e1f0694903bc52cf8aa.tar.gz scummvm-rg350-0e55160cd032eb91da1f5e1f0694903bc52cf8aa.tar.bz2 scummvm-rg350-0e55160cd032eb91da1f5e1f0694903bc52cf8aa.zip |
ZVISION: Reuse UTF8->UTF32 converter from Common
Diffstat (limited to 'engines/zvision')
-rw-r--r-- | engines/zvision/text/truetype_font.cpp | 32 | ||||
-rw-r--r-- | engines/zvision/text/truetype_font.h | 2 |
2 files changed, 1 insertions, 33 deletions
diff --git a/engines/zvision/text/truetype_font.cpp b/engines/zvision/text/truetype_font.cpp index 7848de5434..2bbfe8a706 100644 --- a/engines/zvision/text/truetype_font.cpp +++ b/engines/zvision/text/truetype_font.cpp @@ -165,36 +165,6 @@ int StyledTTFont::getKerningOffset(byte left, byte right) { return 0; } -Common::U32String StyledTTFont::convertUtf8ToUtf32(const Common::String &str) { - // The String class, and therefore the Font class as well, assume one - // character is one byte, but in this case it's actually an UTF-8 - // string with up to 4 bytes per character. To work around this, - // convert it to an U32String before drawing it, because our Font class - // can handle that. - Common::U32String u32str; - uint i = 0; - while (i < str.size()) { - uint32 chr = 0; - if ((str[i] & 0xF8) == 0xF0) { - chr |= (str[i++] & 0x07) << 18; - chr |= (str[i++] & 0x3F) << 12; - chr |= (str[i++] & 0x3F) << 6; - chr |= (str[i++] & 0x3F); - } else if ((str[i] & 0xF0) == 0xE0) { - chr |= (str[i++] & 0x0F) << 12; - chr |= (str[i++] & 0x3F) << 6; - chr |= (str[i++] & 0x3F); - } else if ((str[i] & 0xE0) == 0xC0) { - chr |= (str[i++] & 0x1F) << 6; - chr |= (str[i++] & 0x3F); - } else { - chr = (str[i++] & 0x7F); - } - u32str += chr; - } - return u32str; -} - void StyledTTFont::drawChar(Graphics::Surface *dst, byte chr, int x, int y, uint32 color) { if (_font) { _font->drawChar(dst, chr, x, y, color); @@ -213,7 +183,7 @@ void StyledTTFont::drawChar(Graphics::Surface *dst, byte chr, int x, int y, uint void StyledTTFont::drawString(Graphics::Surface *dst, const Common::String &str, int x, int y, int w, uint32 color, Graphics::TextAlign align) { if (_font) { - Common::U32String u32str = convertUtf8ToUtf32(str); + Common::U32String u32str = Common::convertUtf8ToUtf32(str); _font->drawString(dst, u32str, x, y, w, color, align); if (_style & TTF_STYLE_UNDERLINE) { int16 pos = (int16)floor(_font->getFontHeight() * 0.87); diff --git a/engines/zvision/text/truetype_font.h b/engines/zvision/text/truetype_font.h index 6abe05cda6..9ef0d39d9d 100644 --- a/engines/zvision/text/truetype_font.h +++ b/engines/zvision/text/truetype_font.h @@ -75,8 +75,6 @@ public: int getCharWidth(byte chr); int getKerningOffset(byte left, byte right); - Common::U32String convertUtf8ToUtf32(const Common::String &str); - void drawChar(Graphics::Surface *dst, byte chr, int x, int y, uint32 color); void drawString(Graphics::Surface *dst, const Common::String &str, int x, int y, int w, uint32 color, Graphics::TextAlign align = Graphics::kTextAlignLeft); |