diff --git a/include/freetype/ftsynth.h b/include/freetype/ftsynth.h index afc40b1d8..013f1cc78 100644 --- a/include/freetype/ftsynth.h +++ b/include/freetype/ftsynth.h @@ -68,10 +68,15 @@ FT_BEGIN_HEADER FT_EXPORT( void ) FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); - /* Slant an outline glyph to the right by about 12 degrees. */ + /* Slant an outline glyph to the right by about 12 degrees. */ FT_EXPORT( void ) FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); + /* Slant an outline glyph by a given sine of an angle. */ + FT_EXPORT( void ) + FT_GlyphSlot_Slant( FT_GlyphSlot slot, + FT_Fixed slant ); + /* */ diff --git a/src/base/ftsynth.c b/src/base/ftsynth.c index 10bbe0dfd..fd595e118 100644 --- a/src/base/ftsynth.c +++ b/src/base/ftsynth.c @@ -45,6 +45,16 @@ FT_EXPORT_DEF( void ) FT_GlyphSlot_Oblique( FT_GlyphSlot slot ) + { + FT_GlyphSlot_Slant( slot, 0x0366A ); + } + + + /* documentation is in ftsynth.h */ + + FT_EXPORT_DEF( void ) + FT_GlyphSlot_Slant( FT_GlyphSlot slot, + FT_Fixed slant ) { FT_Matrix transform; FT_Outline* outline; @@ -61,13 +71,11 @@ /* we don't touch the advance width */ - /* For italic, simply apply a shear transform, with an angle */ - /* of about 12 degrees. */ - + /* For italic, simply apply a shear transform */ transform.xx = 0x10000L; transform.yx = 0x00000L; - transform.xy = 0x0366AL; + transform.xy = slant; transform.yy = 0x10000L; FT_Outline_Transform( outline, &transform );