| Index: third_party/harfbuzz-ng/src/hb-ot-layout-private.hh
|
| ===================================================================
|
| --- third_party/harfbuzz-ng/src/hb-ot-layout-private.hh (리비전 189447)
|
| +++ third_party/harfbuzz-ng/src/hb-ot-layout-private.hh (작업 사본)
|
| @@ -43,6 +43,58 @@
|
| #define syllable() var1.u8[2] /* GSUB/GPOS shaping boundaries */
|
| #define lig_props() var1.u8[3] /* GSUB/GPOS ligature tracking */
|
|
|
| +/* buffer var allocations, used during the entire shaping process */
|
| +#define unicode_props0() var2.u8[0]
|
| +#define unicode_props1() var2.u8[1]
|
| +
|
| +
|
| +inline void
|
| +_hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_unicode_funcs_t *unicode)
|
| +{
|
| + info->unicode_props0() = ((unsigned int) unicode->general_category (info->codepoint)) |
|
| + (unicode->is_default_ignorable (info->codepoint) ? 0x80 : 0) |
|
| + (info->codepoint == 0x200C ? 0x40 : 0) |
|
| + (info->codepoint == 0x200D ? 0x20 : 0);
|
| + info->unicode_props1() = unicode->modified_combining_class (info->codepoint);
|
| +}
|
| +
|
| +inline hb_unicode_general_category_t
|
| +_hb_glyph_info_get_general_category (const hb_glyph_info_t *info)
|
| +{
|
| + return (hb_unicode_general_category_t) (info->unicode_props0() & 0x1F);
|
| +}
|
| +
|
| +inline void
|
| +_hb_glyph_info_set_modified_combining_class (hb_glyph_info_t *info, unsigned int modified_class)
|
| +{
|
| + info->unicode_props1() = modified_class;
|
| +}
|
| +
|
| +inline unsigned int
|
| +_hb_glyph_info_get_modified_combining_class (const hb_glyph_info_t *info)
|
| +{
|
| + return info->unicode_props1();
|
| +}
|
| +
|
| +inline hb_bool_t
|
| +_hb_glyph_info_is_default_ignorable (const hb_glyph_info_t *info)
|
| +{
|
| + return !!(info->unicode_props0() & 0x80);
|
| +}
|
| +
|
| +inline hb_bool_t
|
| +_hb_glyph_info_is_zwnj (const hb_glyph_info_t *info)
|
| +{
|
| + return !!(info->unicode_props0() & 0x40);
|
| +}
|
| +
|
| +inline hb_bool_t
|
| +_hb_glyph_info_is_zwj (const hb_glyph_info_t *info)
|
| +{
|
| + return !!(info->unicode_props0() & 0x20);
|
| +}
|
| +
|
| +
|
| #define hb_ot_layout_from_face(face) ((hb_ot_layout_t *) face->shaper_data.ot)
|
|
|
| /*
|
| @@ -50,11 +102,11 @@
|
| */
|
|
|
| typedef enum {
|
| - HB_OT_LAYOUT_GLYPH_PROPS_UNCLASSIFIED = 0x0001,
|
| - HB_OT_LAYOUT_GLYPH_PROPS_BASE_GLYPH = 0x0002,
|
| - HB_OT_LAYOUT_GLYPH_PROPS_LIGATURE = 0x0004,
|
| - HB_OT_LAYOUT_GLYPH_PROPS_MARK = 0x0008,
|
| - HB_OT_LAYOUT_GLYPH_PROPS_COMPONENT = 0x0010
|
| + HB_OT_LAYOUT_GLYPH_PROPS_UNCLASSIFIED = 1 << HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED,
|
| + HB_OT_LAYOUT_GLYPH_PROPS_BASE_GLYPH = 1 << HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH,
|
| + HB_OT_LAYOUT_GLYPH_PROPS_LIGATURE = 1 << HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE,
|
| + HB_OT_LAYOUT_GLYPH_PROPS_MARK = 1 << HB_OT_LAYOUT_GLYPH_CLASS_MARK,
|
| + HB_OT_LAYOUT_GLYPH_PROPS_COMPONENT = 1 << HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT
|
| } hb_ot_layout_glyph_class_mask_t;
|
|
|
|
|
| @@ -154,7 +206,8 @@
|
| hb_ot_layout_substitute_lookup (hb_font_t *font,
|
| hb_buffer_t *buffer,
|
| unsigned int lookup_index,
|
| - hb_mask_t mask);
|
| + hb_mask_t mask,
|
| + hb_bool_t auto_zwj);
|
|
|
| /* Should be called after all the substitute_lookup's are done */
|
| HB_INTERNAL void
|
| @@ -171,13 +224,13 @@
|
| hb_ot_layout_position_lookup (hb_font_t *font,
|
| hb_buffer_t *buffer,
|
| unsigned int lookup_index,
|
| - hb_mask_t mask);
|
| + hb_mask_t mask,
|
| + hb_bool_t auto_zwj);
|
|
|
| /* Should be called after all the position_lookup's are done */
|
| HB_INTERNAL void
|
| hb_ot_layout_position_finish (hb_font_t *font,
|
| - hb_buffer_t *buffer,
|
| - hb_bool_t zero_width_attached_marks);
|
| + hb_buffer_t *buffer);
|
|
|
|
|
|
|
|
|