get_outline_glyph(render_priv, code,
text_info->glyphs + text_info->length, drawing);
- text_info->glyphs[text_info->length].pos.x = pen.x;
- text_info->glyphs[text_info->length].pos.y = pen.y;
-
// Add additional space after italic to non-italic style changes
if (text_info->length &&
text_info->glyphs[text_info->length - 1].hash_key.italic &&
GlyphInfo *og = &text_info->glyphs[back];
while (og->bbox.xMax - og->bbox.xMin == 0 && og->hash_key.italic)
og = &text_info->glyphs[--back];
- pen.x += FFMAX(0, og->bbox.xMax - og->advance.x);
+ if (og->bbox.xMax > og->advance.x) {
+ // The FreeType oblique slants by 6/16
+ pen.x += og->bbox.yMax * 0.375;
+ }
}
+ text_info->glyphs[text_info->length].pos.x = pen.x;
+ text_info->glyphs[text_info->length].pos.y = pen.y;
+
pen.x += text_info->glyphs[text_info->length].advance.x;
pen.x += double_to_d6(render_priv->state.hspacing *
render_priv->font_scale