summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Podtelezhnikov <apodtele@gmail.com>2023-02-07 23:03:18 -0500
committerAlexei Podtelezhnikov <apodtele@gmail.com>2023-02-07 23:03:18 -0500
commit27b2cd4101dfcf7d03904204e078b2de84cce8c4 (patch)
treebc7a8c47aead3b2d86f394f32f42c1da2c0fe045
parent515bdfef7e5e46f8a32d908ea49c28b0a867c263 (diff)
downloadfreetype2-27b2cd4101dfcf7d03904204e078b2de84cce8c4.tar.gz
* src/base/ftsynth.c (FT_GlyphSlot_Slant): Add vertical slant.
* include/freetype/ftsynth.h (FT_GlyphSlot_Slant): Update it.
-rw-r--r--include/freetype/ftsynth.h6
-rw-r--r--src/base/ftsynth.c9
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 );