OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2012 Google, Inc. | 2 * Copyright © 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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 static const arabic_fallback_plan_t arabic_fallback_plan_nil = {}; | 205 static const arabic_fallback_plan_t arabic_fallback_plan_nil = {}; |
206 | 206 |
207 static arabic_fallback_plan_t * | 207 static arabic_fallback_plan_t * |
208 arabic_fallback_plan_create (const hb_ot_shape_plan_t *plan, | 208 arabic_fallback_plan_create (const hb_ot_shape_plan_t *plan, |
209 hb_font_t *font) | 209 hb_font_t *font) |
210 { | 210 { |
211 arabic_fallback_plan_t *fallback_plan = (arabic_fallback_plan_t *) calloc (1,
sizeof (arabic_fallback_plan_t)); | 211 arabic_fallback_plan_t *fallback_plan = (arabic_fallback_plan_t *) calloc (1,
sizeof (arabic_fallback_plan_t)); |
212 if (unlikely (!fallback_plan)) | 212 if (unlikely (!fallback_plan)) |
213 return const_cast<arabic_fallback_plan_t *> (&arabic_fallback_plan_nil); | 213 return const_cast<arabic_fallback_plan_t *> (&arabic_fallback_plan_nil); |
214 | 214 |
215 for (unsigned int i = 0; i < ARABIC_NUM_FALLBACK_FEATURES; i++) { | 215 for (unsigned int i = 0; i < ARABIC_NUM_FALLBACK_FEATURES; i++) |
| 216 { |
| 217 fallback_plan->digest_array[i].init (); |
216 fallback_plan->mask_array[i] = plan->map.get_1_mask (arabic_fallback_feature
s[i]); | 218 fallback_plan->mask_array[i] = plan->map.get_1_mask (arabic_fallback_feature
s[i]); |
217 if (fallback_plan->mask_array[i]) { | 219 if (fallback_plan->mask_array[i]) { |
218 fallback_plan->lookup_array[i] = arabic_fallback_synthesize_lookup (plan,
font, i); | 220 fallback_plan->lookup_array[i] = arabic_fallback_synthesize_lookup (plan,
font, i); |
219 if (fallback_plan->lookup_array[i]) | 221 if (fallback_plan->lookup_array[i]) |
220 fallback_plan->lookup_array[i]->add_coverage (&fallback_plan->digest_arr
ay[i]); | 222 fallback_plan->lookup_array[i]->add_coverage (&fallback_plan->digest_arr
ay[i]); |
221 } | 223 } |
222 } | 224 } |
223 | 225 |
224 return fallback_plan; | 226 return fallback_plan; |
225 } | 227 } |
(...skipping 18 matching lines...) Expand all Loading... |
244 { | 246 { |
245 for (unsigned int i = 0; i < ARABIC_NUM_FALLBACK_FEATURES; i++) | 247 for (unsigned int i = 0; i < ARABIC_NUM_FALLBACK_FEATURES; i++) |
246 if (fallback_plan->lookup_array[i]) { | 248 if (fallback_plan->lookup_array[i]) { |
247 OT::hb_apply_context_t c (0, font, buffer, fallback_plan->mask_array[i], t
rue/*auto_zwj*/); | 249 OT::hb_apply_context_t c (0, font, buffer, fallback_plan->mask_array[i], t
rue/*auto_zwj*/); |
248 fallback_plan->lookup_array[i]->apply_string (&c, &fallback_plan->digest_a
rray[i]); | 250 fallback_plan->lookup_array[i]->apply_string (&c, &fallback_plan->digest_a
rray[i]); |
249 } | 251 } |
250 } | 252 } |
251 | 253 |
252 | 254 |
253 #endif /* HB_OT_SHAPE_COMPLEX_ARABIC_FALLBACK_HH */ | 255 #endif /* HB_OT_SHAPE_COMPLEX_ARABIC_FALLBACK_HH */ |
OLD | NEW |