summaryrefslogtreecommitdiff
path: root/vcl/source/glyphs
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2006-11-15 11:38:22 +0000
committerIvo Hinkelmann <ihi@openoffice.org>2006-11-15 11:38:22 +0000
commitabe502dabf01dfc58862c69c2731e3ba87406f9b (patch)
treef1febc281f3aadf81b5d3987f3f51af1c0b350f8 /vcl/source/glyphs
parentb7982dcf3eb9647c3cee88f54c0a050226b70546 (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.cxx9
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;