Skip to content

Commit

Permalink
GRAPHICS: Allow negative xOffset in TTF.
Browse files Browse the repository at this point in the history
This should improve the visual looks of many fonts. However, it might result
in the first line of the glyph to be drawn left of the position specified in
drawChar.
  • Loading branch information
Johannes Schickel committed Sep 3, 2014
1 parent d55cd8f commit 248ea3c
Showing 1 changed file with 0 additions and 14 deletions.
14 changes: 0 additions & 14 deletions graphics/fonts/ttf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -454,25 +454,11 @@ bool TTFFont::cacheGlyph(Glyph &glyph, uint32 chr) const {
if (_face->glyph->format != FT_GLYPH_FORMAT_BITMAP)
return false;

FT_Glyph_Metrics &metrics = _face->glyph->metrics;

glyph.xOffset = _face->glyph->bitmap_left;
int xMax = glyph.xOffset + ftCeil26_6(metrics.width);
glyph.yOffset = _ascent - _face->glyph->bitmap_top;

glyph.advance = ftCeil26_6(_face->glyph->advance.x);

// In case we got a negative xMin we adjust that, this might make some
// characters make a bit odd, but it's the only way we can assure no
// invalid memory writes with the current font API
if (glyph.xOffset < 0) {
xMax -= glyph.xOffset;
glyph.xOffset = 0;

if (xMax > glyph.advance)
glyph.advance = xMax;
}

const FT_Bitmap &bitmap = _face->glyph->bitmap;
glyph.image.create(bitmap.width, bitmap.rows, PixelFormat::createFormatCLUT8());

Expand Down

0 comments on commit 248ea3c

Please sign in to comment.