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 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 buffer->idx = 0; | 448 buffer->idx = 0; |
449 unsigned int last_syllable = 0; | 449 unsigned int last_syllable = 0; |
450 while (buffer->idx < buffer->len) | 450 while (buffer->idx < buffer->len) |
451 { | 451 { |
452 unsigned int syllable = buffer->cur().syllable(); | 452 unsigned int syllable = buffer->cur().syllable(); |
453 syllable_type_t syllable_type = (syllable_type_t) (syllable & 0x0F); | 453 syllable_type_t syllable_type = (syllable_type_t) (syllable & 0x0F); |
454 if (unlikely (last_syllable != syllable && syllable_type == broken_cluster)) | 454 if (unlikely (last_syllable != syllable && syllable_type == broken_cluster)) |
455 { | 455 { |
456 last_syllable = syllable; | 456 last_syllable = syllable; |
457 | 457 |
458 hb_glyph_info_t info = dottedcircle; | 458 hb_glyph_info_t ginfo = dottedcircle; |
459 info.cluster = buffer->cur().cluster; | 459 ginfo.cluster = buffer->cur().cluster; |
460 info.mask = buffer->cur().mask; | 460 ginfo.mask = buffer->cur().mask; |
461 info.syllable() = buffer->cur().syllable(); | 461 ginfo.syllable() = buffer->cur().syllable(); |
462 | 462 |
463 buffer->output_info (info); | 463 buffer->output_info (ginfo); |
464 } | 464 } |
465 else | 465 else |
466 buffer->next_glyph (); | 466 buffer->next_glyph (); |
467 } | 467 } |
468 | 468 |
469 buffer->swap_buffers (); | 469 buffer->swap_buffers (); |
470 } | 470 } |
471 | 471 |
472 static void | 472 static void |
473 initial_reordering (const hb_ot_shape_plan_t *plan, | 473 initial_reordering (const hb_ot_shape_plan_t *plan, |
(...skipping 26 matching lines...) Expand all Loading... |
500 /* Uniscribe seems to have a shaper for 'mymr' that is like the | 500 /* Uniscribe seems to have a shaper for 'mymr' that is like the |
501 * generic shaper, except that it zeros mark advances GDEF_LATE. */ | 501 * generic shaper, except that it zeros mark advances GDEF_LATE. */ |
502 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar_old = | 502 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar_old = |
503 { | 503 { |
504 "default", | 504 "default", |
505 NULL, /* collect_features */ | 505 NULL, /* collect_features */ |
506 NULL, /* override_features */ | 506 NULL, /* override_features */ |
507 NULL, /* data_create */ | 507 NULL, /* data_create */ |
508 NULL, /* data_destroy */ | 508 NULL, /* data_destroy */ |
509 NULL, /* preprocess_text */ | 509 NULL, /* preprocess_text */ |
| 510 NULL, /* postprocess_glyphs */ |
510 HB_OT_SHAPE_NORMALIZATION_MODE_DEFAULT, | 511 HB_OT_SHAPE_NORMALIZATION_MODE_DEFAULT, |
511 NULL, /* decompose */ | 512 NULL, /* decompose */ |
512 NULL, /* compose */ | 513 NULL, /* compose */ |
513 NULL, /* setup_masks */ | 514 NULL, /* setup_masks */ |
514 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE, | 515 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE, |
515 true, /* fallback_position */ | 516 true, /* fallback_position */ |
516 }; | 517 }; |
517 | 518 |
518 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar = | 519 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar = |
519 { | 520 { |
520 "myanmar", | 521 "myanmar", |
521 collect_features_myanmar, | 522 collect_features_myanmar, |
522 override_features_myanmar, | 523 override_features_myanmar, |
523 NULL, /* data_create */ | 524 NULL, /* data_create */ |
524 NULL, /* data_destroy */ | 525 NULL, /* data_destroy */ |
525 NULL, /* preprocess_text */ | 526 NULL, /* preprocess_text */ |
| 527 NULL, /* postprocess_glyphs */ |
526 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, | 528 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, |
527 NULL, /* decompose */ | 529 NULL, /* decompose */ |
528 NULL, /* compose */ | 530 NULL, /* compose */ |
529 setup_masks_myanmar, | 531 setup_masks_myanmar, |
530 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY, | 532 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY, |
531 false, /* fallback_position */ | 533 false, /* fallback_position */ |
532 }; | 534 }; |
OLD | NEW |