OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2010,2011,2012 Google, Inc. | 2 * Copyright © 2010,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 23 matching lines...) Expand all Loading... |
34 | 34 |
35 | 35 |
36 | 36 |
37 /* buffer var allocations, used by complex shapers */ | 37 /* buffer var allocations, used by complex shapers */ |
38 #define complex_var_u8_0() var2.u8[2] | 38 #define complex_var_u8_0() var2.u8[2] |
39 #define complex_var_u8_1() var2.u8[3] | 39 #define complex_var_u8_1() var2.u8[3] |
40 | 40 |
41 | 41 |
42 enum hb_ot_shape_zero_width_marks_type_t { | 42 enum hb_ot_shape_zero_width_marks_type_t { |
43 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, | 43 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, |
44 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_UNICODE, | 44 // HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_UNICODE_EARLY, |
45 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF | 45 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_UNICODE_LATE, |
| 46 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY, |
| 47 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE |
46 }; | 48 }; |
47 | 49 |
48 | 50 |
49 /* Master OT shaper list */ | 51 /* Master OT shaper list */ |
50 #define HB_COMPLEX_SHAPERS_IMPLEMENT_SHAPERS \ | 52 #define HB_COMPLEX_SHAPERS_IMPLEMENT_SHAPERS \ |
51 HB_COMPLEX_SHAPER_IMPLEMENT (default) /* should be first */ \ | 53 HB_COMPLEX_SHAPER_IMPLEMENT (default) /* should be first */ \ |
52 HB_COMPLEX_SHAPER_IMPLEMENT (arabic) \ | 54 HB_COMPLEX_SHAPER_IMPLEMENT (arabic) \ |
53 HB_COMPLEX_SHAPER_IMPLEMENT (indic) \ | 55 HB_COMPLEX_SHAPER_IMPLEMENT (indic) \ |
54 HB_COMPLEX_SHAPER_IMPLEMENT (myanmar) \ | 56 HB_COMPLEX_SHAPER_IMPLEMENT (myanmar) \ |
55 HB_COMPLEX_SHAPER_IMPLEMENT (sea) \ | 57 HB_COMPLEX_SHAPER_IMPLEMENT (sea) \ |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 return &_hb_ot_complex_shaper_default; | 180 return &_hb_ot_complex_shaper_default; |
179 | 181 |
180 | 182 |
181 /* Unicode-1.1 additions */ | 183 /* Unicode-1.1 additions */ |
182 case HB_SCRIPT_THAI: | 184 case HB_SCRIPT_THAI: |
183 case HB_SCRIPT_LAO: | 185 case HB_SCRIPT_LAO: |
184 | 186 |
185 return &_hb_ot_complex_shaper_thai; | 187 return &_hb_ot_complex_shaper_thai; |
186 | 188 |
187 | 189 |
| 190 #if 0 |
| 191 /* Note: |
| 192 * Currently we don't have a separate Hangul shaper. The default shaper han
dles |
| 193 * Hangul by enabling jamo features. We may want to implement a separate sh
aper |
| 194 * in the future. See this thread for details of what such a shaper would d
o: |
| 195 * |
| 196 * http://lists.freedesktop.org/archives/harfbuzz/2013-April/003070.html |
| 197 */ |
| 198 /* Unicode-1.1 additions */ |
| 199 case HB_SCRIPT_HANGUL: |
| 200 |
| 201 return &_hb_ot_complex_shaper_hangul; |
| 202 #endif |
| 203 |
188 | 204 |
189 /* ^--- Add new shapers here */ | 205 /* ^--- Add new shapers here */ |
190 | 206 |
191 | 207 |
192 #if 0 | 208 #if 0 |
193 /* Note: | 209 /* Note: |
194 * | 210 * |
195 * These disabled scripts are listed in ucd/IndicSyllabicCategory.txt, but a
ccording | 211 * These disabled scripts are listed in ucd/IndicSyllabicCategory.txt, but a
ccording |
196 * to Martin Hosken and Jonathan Kew do not require complex shaping. | 212 * to Martin Hosken and Jonathan Kew do not require complex shaping. |
197 * | 213 * |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 * GSUB/GPOS needed, so there may be no scripts found! */ | 348 * GSUB/GPOS needed, so there may be no scripts found! */ |
333 if (planner->map.chosen_script[0] == HB_TAG ('D','F','L','T')) | 349 if (planner->map.chosen_script[0] == HB_TAG ('D','F','L','T')) |
334 return &_hb_ot_complex_shaper_default; | 350 return &_hb_ot_complex_shaper_default; |
335 else | 351 else |
336 return &_hb_ot_complex_shaper_sea; | 352 return &_hb_ot_complex_shaper_sea; |
337 } | 353 } |
338 } | 354 } |
339 | 355 |
340 | 356 |
341 #endif /* HB_OT_SHAPE_COMPLEX_PRIVATE_HH */ | 357 #endif /* HB_OT_SHAPE_COMPLEX_PRIVATE_HH */ |
OLD | NEW |