Minor
This commit is contained in:
parent
cca757ae56
commit
48c513fec9
|
@ -731,7 +731,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_arabic =
|
|||
nullptr, /* decompose */
|
||||
nullptr, /* compose */
|
||||
setup_masks_arabic,
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
reorder_marks_arabic,
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE,
|
||||
true, /* fallback_position */
|
||||
|
|
|
@ -39,7 +39,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_default =
|
|||
nullptr, /* decompose */
|
||||
nullptr, /* compose */
|
||||
nullptr, /* setup_masks */
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE,
|
||||
true, /* fallback_position */
|
||||
|
|
|
@ -424,7 +424,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_hangul =
|
|||
nullptr, /* decompose */
|
||||
nullptr, /* compose */
|
||||
setup_masks_hangul,
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE,
|
||||
false, /* fallback_position */
|
||||
|
|
|
@ -154,18 +154,6 @@ compose_hebrew (const hb_ot_shape_normalize_context_t *c,
|
|||
return found;
|
||||
}
|
||||
|
||||
static bool
|
||||
disable_otl_hebrew (const hb_ot_shape_plan_t *plan)
|
||||
{
|
||||
/* For Hebrew shaper, use fallback if GPOS does not have 'hebr'
|
||||
* script. This matches Uniscribe better, and makes fonts like
|
||||
* Arial that have GSUB/GPOS/GDEF but no data for Hebrew work.
|
||||
* See:
|
||||
* https://github.com/harfbuzz/harfbuzz/issues/347#issuecomment-267838368
|
||||
*/
|
||||
return plan->map.chosen_script[1] != HB_TAG ('h','e','b','r');
|
||||
}
|
||||
|
||||
|
||||
const hb_ot_complex_shaper_t _hb_ot_complex_shaper_hebrew =
|
||||
{
|
||||
|
@ -179,7 +167,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_hebrew =
|
|||
nullptr, /* decompose */
|
||||
compose_hebrew,
|
||||
nullptr, /* setup_masks */
|
||||
disable_otl_hebrew,
|
||||
HB_TAG ('h','e','b','r'), /* gpos_tag. https://github.com/harfbuzz/harfbuzz/issues/347#issuecomment-267838368 */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE,
|
||||
true, /* fallback_position */
|
||||
|
|
|
@ -1620,7 +1620,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_indic =
|
|||
decompose_indic,
|
||||
compose_indic,
|
||||
setup_masks_indic,
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE,
|
||||
false, /* fallback_position */
|
||||
|
|
|
@ -29,9 +29,7 @@
|
|||
|
||||
#include "hb.hh"
|
||||
|
||||
|
||||
#include "hb-ot-shape-complex.hh"
|
||||
#include "hb-ot-shape.hh" /* XXX Remove */
|
||||
|
||||
|
||||
/* buffer var allocations */
|
||||
|
|
|
@ -496,7 +496,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_khmer =
|
|||
decompose_khmer,
|
||||
compose_khmer,
|
||||
setup_masks_khmer,
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE,
|
||||
false, /* fallback_position */
|
||||
|
|
|
@ -389,7 +389,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar_old =
|
|||
nullptr, /* decompose */
|
||||
nullptr, /* compose */
|
||||
nullptr, /* setup_masks */
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE,
|
||||
true, /* fallback_position */
|
||||
|
@ -407,7 +407,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar =
|
|||
nullptr, /* decompose */
|
||||
nullptr, /* compose */
|
||||
setup_masks_myanmar,
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY,
|
||||
false, /* fallback_position */
|
||||
|
|
|
@ -376,7 +376,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_thai =
|
|||
nullptr, /* decompose */
|
||||
nullptr, /* compose */
|
||||
nullptr, /* setup_masks */
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE,
|
||||
false,/* fallback_position */
|
||||
|
|
|
@ -56,7 +56,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_tibetan =
|
|||
nullptr, /* decompose */
|
||||
nullptr, /* compose */
|
||||
nullptr, /* setup_masks */
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE,
|
||||
true, /* fallback_position */
|
||||
|
|
|
@ -597,7 +597,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_use =
|
|||
nullptr, /* decompose */
|
||||
compose_use,
|
||||
setup_masks_use,
|
||||
nullptr, /* disable_otl */
|
||||
HB_TAG_NONE, /* gpos_tag */
|
||||
nullptr, /* reorder_marks */
|
||||
HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY,
|
||||
false, /* fallback_position */
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include "hb-ot-shape-normalize.hh"
|
||||
|
||||
|
||||
|
||||
/* buffer var allocations, used by complex shapers */
|
||||
#define complex_var_u8_0() var2.u8[2]
|
||||
#define complex_var_u8_1() var2.u8[3]
|
||||
|
@ -148,13 +147,11 @@ struct hb_ot_complex_shaper_t
|
|||
hb_buffer_t *buffer,
|
||||
hb_font_t *font);
|
||||
|
||||
/* disable_otl()
|
||||
* Called during shape().
|
||||
* If set and returns true, GDEF/GSUB/GPOS of the font are ignored
|
||||
* and fallback operations used.
|
||||
* May be nullptr.
|
||||
/* gpos_tag()
|
||||
* If not HB_TAG_NONE, then must match found GPOS script tag for
|
||||
* GPOS to be applied. Otherwise, fallback positioning will be used.
|
||||
*/
|
||||
bool (*disable_otl) (const hb_ot_shape_plan_t *plan);
|
||||
hb_tag_t gpos_tag;
|
||||
|
||||
/* reorder_marks()
|
||||
* Called during shape().
|
||||
|
|
|
@ -63,10 +63,10 @@ hb_ot_shape_planner_t::compile (hb_ot_shape_plan_t &plan,
|
|||
plan.kerning_requested = !!plan.kern_mask;
|
||||
plan.has_gpos_mark = !!plan.map.get_1_mask (HB_TAG ('m','a','r','k'));
|
||||
|
||||
bool disable_otl = plan.shaper->disable_otl && plan.shaper->disable_otl (&plan);
|
||||
//plan.fallback_substitute = disable_otl || !hb_ot_layout_has_substitution (face);
|
||||
plan.fallback_positioning = disable_otl || !hb_ot_layout_has_positioning (face);
|
||||
plan.fallback_glyph_classes = !hb_ot_layout_has_glyph_classes (face);
|
||||
bool disable_gpos = plan.shaper->gpos_tag &&
|
||||
plan.shaper->gpos_tag != plan.map.chosen_script[1];
|
||||
plan.fallback_positioning = disable_gpos || !hb_ot_layout_has_positioning (face);
|
||||
plan.fallback_glyph_classes = !hb_ot_layout_has_glyph_classes (face);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue