mirror of
https://github.com/harfbuzz/harfbuzz.git
synced 2025-04-14 17:13:40 +00:00
[style] Adjust font slant angle for synthetic slant value
Part of https://github.com/harfbuzz/harfbuzz/pull/3338
This commit is contained in:
parent
ff697debd8
commit
602bd39680
1 changed files with 11 additions and 4 deletions
|
@ -48,13 +48,12 @@ _hb_angle_to_ratio (float a)
|
|||
{
|
||||
return tanf (a * float (M_PI / 180.));
|
||||
}
|
||||
#if 0
|
||||
|
||||
static inline float
|
||||
_hb_ratio_to_angle (float r)
|
||||
{
|
||||
return atanf (r) * float (180. / M_PI);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* hb_style_get_value:
|
||||
|
@ -73,7 +72,8 @@ float
|
|||
hb_style_get_value (hb_font_t *font, hb_style_tag_t style_tag)
|
||||
{
|
||||
if (unlikely (style_tag == HB_STYLE_TAG_SLANT_RATIO))
|
||||
return _hb_angle_to_ratio (hb_style_get_value (font, HB_STYLE_TAG_SLANT_ANGLE));
|
||||
return _hb_angle_to_ratio (hb_style_get_value (font, HB_STYLE_TAG_SLANT_ANGLE))
|
||||
+ font->slant;
|
||||
|
||||
hb_face_t *face = font->face;
|
||||
|
||||
|
@ -109,7 +109,14 @@ hb_style_get_value (hb_font_t *font, hb_style_tag_t style_tag)
|
|||
: 12.f;
|
||||
}
|
||||
case HB_STYLE_TAG_SLANT_ANGLE:
|
||||
return face->table.post->table->italicAngle.to_float ();
|
||||
{
|
||||
float angle = face->table.post->table->italicAngle.to_float ();
|
||||
|
||||
if (font->slant)
|
||||
angle = _hb_ratio_to_angle (font->slant + _hb_angle_to_ratio (angle));
|
||||
|
||||
return angle;
|
||||
}
|
||||
case HB_STYLE_TAG_WIDTH:
|
||||
return face->table.OS2->has_data ()
|
||||
? face->table.OS2->get_width ()
|
||||
|
|
Loading…
Add table
Reference in a new issue