uchar32_t currentChar = *iter;
n = getGlyphIndexByChar(currentChar);
bool visible = (Invisible.findFirst(currentChar) == -1);
- if (n > 0 && visible)
+ bool lineBreak=false;
+ if (currentChar == L'\r') // Mac or Windows breaks
{
- bool lineBreak=false;
- if (currentChar == L'\r') // Mac or Windows breaks
- {
- lineBreak = true;
- if (*(iter + 1) == (uchar32_t)'\n') // Windows line breaks.
- currentChar = *(++iter);
- }
- else if (currentChar == (uchar32_t)'\n') // Unix breaks
- {
- lineBreak = true;
- }
+ lineBreak = true;
+ if (*(iter + 1) == (uchar32_t)'\n') // Windows line breaks.
+ currentChar = *(++iter);
+ }
+ else if (currentChar == (uchar32_t)'\n') // Unix breaks
+ {
+ lineBreak = true;
+ }
- if (lineBreak)
- {
- previousChar = 0;
- offset.Y += font_metrics.ascender / 64;
- offset.X = position.UpperLeftCorner.X;
+ if (lineBreak)
+ {
+ previousChar = 0;
+ offset.Y += font_metrics.ascender / 64;
+ offset.X = position.UpperLeftCorner.X;
- if (hcenter)
- offset.X += (position.getWidth() - textDimension.Width) >> 1;
- ++iter;
- continue;
- }
+ if (hcenter)
+ offset.X += (position.getWidth() - textDimension.Width) >> 1;
+ ++iter;
+ continue;
+ }
+ if (n > 0 && visible)
+ {
// Calculate the glyph offset.
s32 offx = Glyphs[n-1].offset.X;
s32 offy = (font_metrics.ascender / 64) - Glyphs[n-1].offset.Y;