Use bearingX adjustment to render FreeType glyphs correctly

This commit is contained in:
David Capello 2016-03-17 11:11:08 -03:00
parent 8304b7511d
commit 6d3c09d088

View File

@ -21,6 +21,7 @@ namespace ft {
FT_UInt glyph_index;
FT_Glyph ft_glyph;
FT_Bitmap* bitmap;
double bearingX;
double bearingY;
double x;
double y;
@ -121,7 +122,7 @@ namespace ft {
this->m_face, glyph_index, this->m_antialias);
if (glyph) {
glyph->bitmap = &FT_BitmapGlyph(glyph->ft_glyph)->bitmap;
glyph->x = x;
glyph->x = x + glyph->bearingX;
glyph->y = y
+ this->height()
+ this->descender() // descender is negative
@ -188,6 +189,7 @@ namespace ft {
}
m_glyph.ft_glyph = ft_glyph;
m_glyph.bearingX = face->glyph->metrics.horiBearingX / 64.0;
m_glyph.bearingY = face->glyph->metrics.horiBearingY / 64.0;
return &m_glyph;