Lines Matching defs:indic_plan

545   indic_shape_plan_t *indic_plan = (indic_shape_plan_t *) calloc (1, sizeof (indic_shape_plan_t));
546 if (unlikely (!indic_plan))
549 indic_plan->config = &indic_configs[0];
552 indic_plan->config = &indic_configs[i];
556 indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FFu) != '2');
557 indic_plan->virama_glyph = (hb_codepoint_t) -1;
561 bool zero_context = !indic_plan->is_old_spec;
562 indic_plan->rphf.init (&plan->map, HB_TAG('r','p','h','f'), zero_context);
563 indic_plan->pref.init (&plan->map, HB_TAG('p','r','e','f'), zero_context);
564 indic_plan->blwf.init (&plan->map, HB_TAG('b','l','w','f'), zero_context);
565 indic_plan->pstf.init (&plan->map, HB_TAG('p','s','t','f'), zero_context);
567 for (unsigned int i = 0; i < ARRAY_LENGTH (indic_plan->mask_array); i++)
568 indic_plan->mask_array[i] = (indic_features[i].flags & F_GLOBAL) ?
571 return indic_plan;
581 consonant_position_from_face (const indic_shape_plan_t *indic_plan,
597 if (indic_plan->blwf.would_substitute (glyphs , 2, face) ||
598 indic_plan->blwf.would_substitute (glyphs+1, 2, face))
600 if (indic_plan->pstf.would_substitute (glyphs , 2, face) ||
601 indic_plan->pstf.would_substitute (glyphs+1, 2, face))
603 unsigned int pref_len = indic_plan->config->pref_len;
605 (indic_plan->pref.would_substitute (glyphs , 2, face) ||
606 indic_plan->pref.would_substitute (glyphs+1, 2, face)))
608 indic_plan->pref.would_substitute (glyphs+1, 1, face)))
667 const indic_shape_plan_t *indic_plan = (const indic_shape_plan_t *) plan->data;
669 if (indic_plan->config->base_pos != BASE_POS_LAST)
673 if (indic_plan->get_virama_glyph (font, &virama))
682 info[i].indic_position() = consonant_position_from_face (indic_plan, consonant, virama, face);
697 const indic_shape_plan_t *indic_plan = (const indic_shape_plan_t *) plan->data;
723 if (indic_plan->config->reph_pos != REPH_POS_DONT_CARE &&
724 indic_plan->mask_array[RPHF] &&
727 (indic_plan->config->reph_mode == REPH_MODE_IMPLICIT && !is_joiner (info[start + 2])) ||
728 (indic_plan->config->reph_mode == REPH_MODE_EXPLICIT && info[start + 2].indic_category() == OT_ZWJ)
734 indic_plan->config->reph_mode == REPH_MODE_EXPLICIT ?
736 if (indic_plan->rphf.would_substitute (glyphs, 2, face) ||
737 (indic_plan->config->reph_mode == REPH_MODE_EXPLICIT &&
738 indic_plan->rphf.would_substitute (glyphs, 3, face)))
746 } else if (indic_plan->config->reph_mode == REPH_MODE_LOG_REPHA && info[start].indic_category() == OT_Repha)
755 switch (indic_plan->config->base_pos)
842 assert (indic_plan->config->reph_mode == REPH_MODE_VIS_REPHA);
940 if (indic_plan->is_old_spec)
1029 if (indic_plan->is_old_spec || end - base > 127)
1063 info[i].mask |= indic_plan->mask_array[RPHF];
1066 mask = indic_plan->mask_array[HALF];
1067 if (!indic_plan->is_old_spec &&
1068 indic_plan->config->blwf_mode == BLWF_MODE_PRE_AND_POST)
1069 mask |= indic_plan->mask_array[BLWF];
1077 mask = indic_plan->mask_array[BLWF] | indic_plan->mask_array[ABVF] | indic_plan->mask_array[PSTF];
1082 if (indic_plan->is_old_spec &&
1109 info[i ].mask |= indic_plan->mask_array[BLWF];
1110 info[i+1].mask |= indic_plan->mask_array[BLWF];
1114 unsigned int pref_len = indic_plan->config->pref_len;
1115 if (indic_plan->mask_array[PREF] && base + pref_len < end)
1123 if (indic_plan->pref.would_substitute (glyphs, pref_len, face))
1126 info[i++].mask |= indic_plan->mask_array[PREF];
1134 if (indic_plan->mask_array[CFAR])
1136 info[i].mask |= indic_plan->mask_array[CFAR];
1158 info[j].mask &= ~indic_plan->mask_array[HALF];
1331 const indic_shape_plan_t *indic_plan = (const indic_shape_plan_t *) plan->data;
1340 if (indic_plan->virama_glyph)
1342 unsigned int virama_glyph = indic_plan->virama_glyph;
1363 bool try_pref = !!indic_plan->mask_array[PREF];
1370 if (try_pref && base + 1 < end && indic_plan->config->pref_len == 2)
1373 if ((info[i].mask & indic_plan->mask_array[PREF]) != 0)
1492 reph_position_t reph_pos = indic_plan->config->reph_pos;
1628 unsigned int pref_len = indic_plan->config->pref_len;
1630 if ((info[i].mask & indic_plan->mask_array[PREF]) != 0)
1705 info[start].mask |= indic_plan->mask_array[INIT];
1834 const indic_shape_plan_t *indic_plan = (const indic_shape_plan_t *) c->plan->data;
1840 indic_plan->pstf.would_substitute (&glyph, 1, c->font->face)))