From 27b2cd4101dfcf7d03904204e078b2de84cce8c4 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Tue, 7 Feb 2023 23:03:18 -0500 Subject: [PATCH] * src/base/ftsynth.c (FT_GlyphSlot_Slant): Add vertical slant. * include/freetype/ftsynth.h (FT_GlyphSlot_Slant): Update it. --- include/freetype/ftsynth.h | 6 ++++-- src/base/ftsynth.c | 9 +++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/include/freetype/ftsynth.h b/include/freetype/ftsynth.h index feac6acf4..a1277cafc 100644 --- a/include/freetype/ftsynth.h +++ b/include/freetype/ftsynth.h @@ -72,10 +72,12 @@ FT_BEGIN_HEADER FT_EXPORT( void ) FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); - /* Slant an outline glyph by a given sine of an angle. */ + /* Slant an outline glyph by a given sine of an angle. You can apply */ + /* slant along either x- or y-axis. */ FT_EXPORT( void ) FT_GlyphSlot_Slant( FT_GlyphSlot slot, - FT_Fixed slant ); + FT_Fixed xslant, + FT_Fixed yslant ); /* */ diff --git a/src/base/ftsynth.c b/src/base/ftsynth.c index ed17be4b3..6ec25e13e 100644 --- a/src/base/ftsynth.c +++ b/src/base/ftsynth.c @@ -47,7 +47,7 @@ FT_GlyphSlot_Oblique( FT_GlyphSlot slot ) { /* Value '0x0366A' corresponds to a shear angle of about 12 degrees. */ - FT_GlyphSlot_Slant( slot, 0x0366A ); + FT_GlyphSlot_Slant( slot, 0x0366A, 0 ); } @@ -55,7 +55,8 @@ FT_EXPORT_DEF( void ) FT_GlyphSlot_Slant( FT_GlyphSlot slot, - FT_Fixed slant ) + FT_Fixed xslant, + FT_Fixed yslant ) { FT_Matrix transform; FT_Outline* outline; @@ -74,9 +75,9 @@ /* For italic, simply apply a shear transform */ transform.xx = 0x10000L; - transform.yx = 0x00000L; + transform.yx = -yslant; - transform.xy = slant; + transform.xy = xslant; transform.yy = 0x10000L; FT_Outline_Transform( outline, &transform );