OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2011,2012 Google, Inc. | 2 * Copyright © 2011,2012 Google, Inc. |
3 * | 3 * |
4 * This is part of HarfBuzz, a text shaping library. | 4 * This is part of HarfBuzz, a text shaping library. |
5 * | 5 * |
6 * Permission is hereby granted, without written agreement and without | 6 * Permission is hereby granted, without written agreement and without |
7 * license or royalty fees, to use, copy, modify, and distribute this | 7 * license or royalty fees, to use, copy, modify, and distribute this |
8 * software and its documentation for any purpose, provided that the | 8 * software and its documentation for any purpose, provided that the |
9 * above copyright notice and the following two paragraphs appear in | 9 * above copyright notice and the following two paragraphs appear in |
10 * all copies of this software. | 10 * all copies of this software. |
(...skipping 1672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1683 hb_font_t *font HB_UNUSED, | 1683 hb_font_t *font HB_UNUSED, |
1684 hb_buffer_t *buffer) | 1684 hb_buffer_t *buffer) |
1685 { | 1685 { |
1686 hb_glyph_info_t *info = buffer->info; | 1686 hb_glyph_info_t *info = buffer->info; |
1687 unsigned int count = buffer->len; | 1687 unsigned int count = buffer->len; |
1688 for (unsigned int i = 0; i < count; i++) | 1688 for (unsigned int i = 0; i < count; i++) |
1689 info[i].syllable() = 0; | 1689 info[i].syllable() = 0; |
1690 } | 1690 } |
1691 | 1691 |
1692 | 1692 |
1693 static hb_ot_shape_normalization_mode_t | |
1694 normalization_preference_indic (const hb_segment_properties_t *props HB_UNUSED) | |
1695 { | |
1696 return HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT; | |
1697 } | |
1698 | |
1699 static bool | 1693 static bool |
1700 decompose_indic (const hb_ot_shape_normalize_context_t *c, | 1694 decompose_indic (const hb_ot_shape_normalize_context_t *c, |
1701 hb_codepoint_t ab, | 1695 hb_codepoint_t ab, |
1702 hb_codepoint_t *a, | 1696 hb_codepoint_t *a, |
1703 hb_codepoint_t *b) | 1697 hb_codepoint_t *b) |
1704 { | 1698 { |
1705 switch (ab) | 1699 switch (ab) |
1706 { | 1700 { |
1707 /* Don't decompose these. */ | 1701 /* Don't decompose these. */ |
1708 case 0x0931 : return false; | 1702 case 0x0931 : return false; |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1799 | 1793 |
1800 | 1794 |
1801 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_indic = | 1795 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_indic = |
1802 { | 1796 { |
1803 "indic", | 1797 "indic", |
1804 collect_features_indic, | 1798 collect_features_indic, |
1805 override_features_indic, | 1799 override_features_indic, |
1806 data_create_indic, | 1800 data_create_indic, |
1807 data_destroy_indic, | 1801 data_destroy_indic, |
1808 NULL, /* preprocess_text */ | 1802 NULL, /* preprocess_text */ |
1809 normalization_preference_indic, | 1803 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, |
1810 decompose_indic, | 1804 decompose_indic, |
1811 compose_indic, | 1805 compose_indic, |
1812 setup_masks_indic, | 1806 setup_masks_indic, |
1813 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, | 1807 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, |
1814 false, /* fallback_position */ | 1808 false, /* fallback_position */ |
1815 }; | 1809 }; |
OLD | NEW |