From abe502dabf01dfc58862c69c2731e3ba87406f9b Mon Sep 17 00:00:00 2001 From: Ivo Hinkelmann Date: Wed, 15 Nov 2006 11:38:22 +0000 Subject: 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 --- vcl/source/glyphs/gcach_ftyp.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'vcl/source/glyphs') 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; -- cgit