diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2006-11-15 11:38:22 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2006-11-15 11:38:22 +0000 |
commit | abe502dabf01dfc58862c69c2731e3ba87406f9b (patch) | |
tree | f1febc281f3aadf81b5d3987f3f51af1c0b350f8 /vcl/source/glyphs | |
parent | b7982dcf3eb9647c3cee88f54c0a050226b70546 (diff) |
INTEGRATION: CWS vclshowstop08_SRC680 (1.133.8); FILE MERGED
2006/11/03 12:13:51 hdu 1.133.8.1: #i71094# workaround ft staircase bug for artificially emboldened gyphs
Diffstat (limited to 'vcl/source/glyphs')
-rw-r--r-- | vcl/source/glyphs/gcach_ftyp.cxx | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/vcl/source/glyphs/gcach_ftyp.cxx b/vcl/source/glyphs/gcach_ftyp.cxx index 18f78f472fc4..3ec65f85360a 100644 --- a/vcl/source/glyphs/gcach_ftyp.cxx +++ b/vcl/source/glyphs/gcach_ftyp.cxx @@ -1247,6 +1247,9 @@ void FreetypeServerFont::InitGlyphData( int nGlyphIndex, GlyphData& rGD ) const return; } + if( mbArtBold && pFTEmbolden ) + (*pFTEmbolden)( maFaceFT->glyph ); + int nCharWidth = maFaceFT->glyph->metrics.horiAdvance; if( nGlyphFlags & GF_ROTMASK ) { // for bVertical rotated glyphs @@ -1259,12 +1262,12 @@ void FreetypeServerFont::InitGlyphData( int nGlyphIndex, GlyphData& rGD ) const } rGD.SetCharWidth( (nCharWidth + 32) >> 6 ); - if( mbArtBold && pFTEmbolden ) - (*pFTEmbolden)( maFaceFT->glyph ); FT_Glyph pGlyphFT; rc = FT_Get_Glyph( maFaceFT->glyph, &pGlyphFT ); - /*int nAngle =*/ ApplyGlyphTransform( nGlyphFlags, pGlyphFT, false ); + ApplyGlyphTransform( nGlyphFlags, pGlyphFT, false ); + if( mbArtBold && pFTEmbolden && (nFTVERSION < 2200) ) // #i71094# workaround staircase bug + pGlyphFT->advance.y = 0; rGD.SetDelta( (pGlyphFT->advance.x + 0x8000) >> 16, -((pGlyphFT->advance.y + 0x8000) >> 16) ); FT_BBox aBbox; |