OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2011,2012,2013 Google, Inc. | 2 * Copyright © 2011,2012,2013 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 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 if (pos == POS_BELOW_C && info[i].myanmar_category() != OT_A) | 384 if (pos == POS_BELOW_C && info[i].myanmar_category() != OT_A) |
385 { | 385 { |
386 pos = POS_AFTER_SUB; | 386 pos = POS_AFTER_SUB; |
387 info[i].myanmar_position() = pos; | 387 info[i].myanmar_position() = pos; |
388 continue; | 388 continue; |
389 } | 389 } |
390 info[i].myanmar_position() = pos; | 390 info[i].myanmar_position() = pos; |
391 } | 391 } |
392 } | 392 } |
393 | 393 |
394 buffer->merge_clusters (start, end); | |
395 /* Sit tight, rock 'n roll! */ | 394 /* Sit tight, rock 'n roll! */ |
396 hb_bubble_sort (info + start, end - start, compare_myanmar_order); | 395 buffer->sort (start, end, compare_myanmar_order); |
397 } | 396 } |
398 | 397 |
399 static void | 398 static void |
400 initial_reordering_syllable (const hb_ot_shape_plan_t *plan, | 399 initial_reordering_syllable (const hb_ot_shape_plan_t *plan, |
401 hb_face_t *face, | 400 hb_face_t *face, |
402 hb_buffer_t *buffer, | 401 hb_buffer_t *buffer, |
403 unsigned int start, unsigned int end) | 402 unsigned int start, unsigned int end) |
404 { | 403 { |
405 syllable_type_t syllable_type = (syllable_type_t) (buffer->info[start].syllabl
e() & 0x0F); | 404 syllable_type_t syllable_type = (syllable_type_t) (buffer->info[start].syllabl
e() & 0x0F); |
406 switch (syllable_type) { | 405 switch (syllable_type) { |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 NULL, /* data_create */ | 523 NULL, /* data_create */ |
525 NULL, /* data_destroy */ | 524 NULL, /* data_destroy */ |
526 NULL, /* preprocess_text */ | 525 NULL, /* preprocess_text */ |
527 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, | 526 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, |
528 NULL, /* decompose */ | 527 NULL, /* decompose */ |
529 NULL, /* compose */ | 528 NULL, /* compose */ |
530 setup_masks_myanmar, | 529 setup_masks_myanmar, |
531 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY, | 530 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY, |
532 false, /* fallback_position */ | 531 false, /* fallback_position */ |
533 }; | 532 }; |
OLD | NEW |