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 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 static void | 259 static void |
260 initial_reordering_syllable (const hb_ot_shape_plan_t *plan, | 260 initial_reordering_syllable (const hb_ot_shape_plan_t *plan, |
261 hb_face_t *face, | 261 hb_face_t *face, |
262 hb_buffer_t *buffer, | 262 hb_buffer_t *buffer, |
263 unsigned int start, unsigned int end) | 263 unsigned int start, unsigned int end) |
264 { | 264 { |
265 syllable_type_t syllable_type = (syllable_type_t) (buffer->info[start].syllabl
e() & 0x0F); | 265 syllable_type_t syllable_type = (syllable_type_t) (buffer->info[start].syllabl
e() & 0x0F); |
266 switch (syllable_type) { | 266 switch (syllable_type) { |
267 case consonant_syllable: initial_reordering_consonant_syllable (plan, fa
ce, buffer, start, end); return; | 267 case consonant_syllable: initial_reordering_consonant_syllable (plan, fa
ce, buffer, start, end); return; |
268 case broken_cluster: initial_reordering_broken_cluster (plan, fa
ce, buffer, start, end); return; | 268 case broken_cluster: initial_reordering_broken_cluster (plan, fa
ce, buffer, start, end); return; |
269 case non_sea_cluster:»initial_reordering_non_sea_cluster (plan, face, buffer,
start, end); return; | 269 case non_sea_cluster:»» initial_reordering_non_sea_cluster (plan, fa
ce, buffer, start, end); return; |
270 } | 270 } |
271 } | 271 } |
272 | 272 |
273 static inline void | 273 static inline void |
274 insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED, | 274 insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED, |
275 hb_font_t *font, | 275 hb_font_t *font, |
276 hb_buffer_t *buffer) | 276 hb_buffer_t *buffer) |
277 { | 277 { |
278 /* Note: This loop is extra overhead, but should not be measurable. */ | 278 /* Note: This loop is extra overhead, but should not be measurable. */ |
279 bool has_broken_syllables = false; | 279 bool has_broken_syllables = false; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 NULL, /* data_create */ | 375 NULL, /* data_create */ |
376 NULL, /* data_destroy */ | 376 NULL, /* data_destroy */ |
377 NULL, /* preprocess_text */ | 377 NULL, /* preprocess_text */ |
378 normalization_preference_sea, | 378 normalization_preference_sea, |
379 NULL, /* decompose */ | 379 NULL, /* decompose */ |
380 NULL, /* compose */ | 380 NULL, /* compose */ |
381 setup_masks_sea, | 381 setup_masks_sea, |
382 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, | 382 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, |
383 false, /* fallback_position */ | 383 false, /* fallback_position */ |
384 }; | 384 }; |
OLD | NEW |