зеркало из https://github.com/mozilla/gecko-dev.git
bug 799869 - [harfbuzz] improve heuristic for choosing between shapers for khmer fonts. r=behdad
This commit is contained in:
Родитель
f67282a3de
Коммит
db03ce96d0
|
@ -283,16 +283,22 @@ hb_ot_shape_complex_categorize (const hb_ot_shape_planner_t *planner)
|
|||
else
|
||||
return &_hb_ot_complex_shaper_default;
|
||||
|
||||
|
||||
case HB_SCRIPT_KHMER:
|
||||
/* If the font has 'liga', let the generic shaper do it. */
|
||||
if (!planner->map.found_script[0] ||
|
||||
/* A number of Khmer fonts in the wild don't have a 'pref' feature,
|
||||
* and as such won't shape properly via the Indic shaper;
|
||||
* however, they typically have 'liga' / 'clig' features that implement
|
||||
* the necessary "reordering" by means of ligature substitutions.
|
||||
* So we send such pref-less fonts through the generic shaper instead;
|
||||
* use Indic only if the 'khmr' script has the 'pref' feature. */
|
||||
if (planner->map.found_script[0] &&
|
||||
hb_ot_layout_language_find_feature (planner->face, HB_OT_TAG_GSUB,
|
||||
planner->map.script_index[0],
|
||||
planner->map.language_index[0],
|
||||
HB_TAG ('l','i','g','a'), NULL))
|
||||
return &_hb_ot_complex_shaper_default;
|
||||
else
|
||||
HB_TAG ('p','r','e','f'), NULL))
|
||||
return &_hb_ot_complex_shaper_indic;
|
||||
else
|
||||
return &_hb_ot_complex_shaper_default;
|
||||
|
||||
|
||||
case HB_SCRIPT_MYANMAR:
|
||||
|
|
Загрузка…
Ссылка в новой задаче