未验证 提交 f7cfe998 编写于 作者: E Ebrahim Byagowi 提交者: GitHub

[os2] Move typometrics detection logic to the table (#1465)

上级 47cf9a96
...@@ -192,16 +192,12 @@ struct hmtxvmtx ...@@ -192,16 +192,12 @@ struct hmtxvmtx
default_advance = default_advance_ ? default_advance_ : hb_face_get_upem (face); default_advance = default_advance_ ? default_advance_ : hb_face_get_upem (face);
bool got_font_extents = false; bool got_font_extents = false;
if (T::os2Tag != HB_TAG_NONE) if (T::os2Tag != HB_TAG_NONE && face->table.OS2->is_typo_metrics ())
{ {
#define USE_TYPO_METRICS (1u<<7) ascender = abs (face->table.OS2->sTypoAscender);
if (0 != (face->table.OS2->fsSelection & USE_TYPO_METRICS)) descender = -abs (face->table.OS2->sTypoDescender);
{ line_gap = face->table.OS2->sTypoLineGap;
ascender = abs (face->table.OS2->sTypoAscender); got_font_extents = (ascender | descender) != 0;
descender = -abs (face->table.OS2->sTypoDescender);
line_gap = face->table.OS2->sTypoLineGap;
got_font_extents = (ascender | descender) != 0;
}
} }
hb_blob_t *_hea_blob = hb_sanitize_context_t().reference_table<H> (face); hb_blob_t *_hea_blob = hb_sanitize_context_t().reference_table<H> (face);
......
...@@ -112,10 +112,11 @@ struct OS2 ...@@ -112,10 +112,11 @@ struct OS2
OBLIQUE = 1u<<9 OBLIQUE = 1u<<9
}; };
inline bool is_italic (void) const { return fsSelection & ITALIC; } inline bool is_italic (void) const { return fsSelection & ITALIC; }
inline bool is_oblique (void) const { return fsSelection & OBLIQUE; } inline bool is_oblique (void) const { return fsSelection & OBLIQUE; }
inline bool is_typo_metrics (void) const { return fsSelection & USE_TYPO_METRICS; }
enum us_width_class_t { enum width_class_t {
FWIDTH_ULTRA_CONDENSED = 1, /* 50% */ FWIDTH_ULTRA_CONDENSED = 1, /* 50% */
FWIDTH_EXTRA_CONDENSED = 2, /* 62.5% */ FWIDTH_EXTRA_CONDENSED = 2, /* 62.5% */
FWIDTH_CONDENSED = 3, /* 75% */ FWIDTH_CONDENSED = 3, /* 75% */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册