=== src/ftcommon.i ================================================================== --- src/ftcommon.i (/freetype2/trunk/ft2demos) (revision 923) +++ src/ftcommon.i (/freetype2/branches/embolden/ft2demos) (local) @@ -752,6 +752,39 @@ &glyf, NULL ); + /* XXX dirty hack for testing bitmap emboldening */ + if ( glyf->format == FT_GLYPH_FORMAT_OUTLINE ) + { + FT_Render_Mode render_mode; + + if ( lcd_mode <= 1 ) + render_mode = FT_RENDER_MODE_NORMAL; + else if ( lcd_mode <= 3 ) + render_mode = FT_RENDER_MODE_LCD; + else + render_mode = FT_RENDER_MODE_LCD_V; + + if ( !antialias ) + render_mode = FT_RENDER_MODE_MONO; + + /* render the glyph to a bitmap, don't destroy original */ + error = FT_Glyph_To_Bitmap( &glyf, render_mode, NULL, 0 ); + if ( error ) + goto Exit; + + /* use 'l' to toggle */ + if ( low_prec ) + { + error = FT_Bitmap_Embolden( glyf->library, &((FT_BitmapGlyph)glyf)->bitmap, 1 << 6, 1 << 6); + if ( error ) + goto Exit; + ((FT_BitmapGlyph)glyf)->top += 1; + glyf->advance.x += 1 << 16; + } + + *aglyf = glyf; + } + if ( !error ) error = glyph_to_bitmap( glyf, target, left, top, x_advance, y_advance, aglyf ); }