* src/base/ftsynth.c (FT_GlyphSlot_Slant): New API with custom slant.

* include/freetype/ftsynth.h (FT_GlyphSlot_Slant): Declare it.
This commit is contained in:
Liu Kunpeng(柳鲲鹏) 2022-10-16 22:10:19 -04:00 committed by Alexei Podtelezhnikov
parent 3ab1875cd2
commit bb59c3c958
2 changed files with 18 additions and 5 deletions

View File

@ -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 );
/* */

View File

@ -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 );