Home | History | Annotate | Download | only in src

Lines Matching refs:shaper_item

560 HB_Bool HB_ConvertStringToGlyphIndices(HB_ShaperItem *shaper_item)
562 if (shaper_item->glyphIndicesPresent) {
563 shaper_item->num_glyphs = shaper_item->initialGlyphCount;
564 shaper_item->glyphIndicesPresent = false;
567 return shaper_item->font->klass
568 ->convertStringToGlyphIndices(shaper_item->font,
569 shaper_item->string + shaper_item->item.pos, shaper_item->item.length,
570 shaper_item->glyphs, &shaper_item->num_glyphs,
571 shaper_item->item.bidiLevel % 2);
574 HB_Bool HB_BasicShape(HB_ShaperItem *shaper_item)
577 const int availableGlyphs = shaper_item->num_glyphs;
580 if (!HB_ConvertStringToGlyphIndices(shaper_item))
583 HB_HeuristicSetGlyphAttributes(shaper_item);
586 if (HB_SelectScript(shaper_item, basic_features)) {
587 HB_OpenTypeShape(shaper_item, /*properties*/0);
588 return HB_OpenTypePosition(shaper_item, availableGlyphs, /*doLogClusters*/true);
592 HB_HeuristicPosition(shaper_item);
1052 HB_Bool HB_SelectScript(HB_ShaperItem *shaper_item, const HB_OpenTypeFeature *features)
1054 HB_Script script = shaper_item->item.script;
1056 if (!shaper_item->face->supported_scripts[script])
1059 HB_Face face = shaper_item->face;
1060 if (face->current_script == script && face->current_flags == shaper_item->shaperFlags)
1064 face->current_flags = shaper_item->shaperFlags;
1346 HB_Bool HB_ShapeItem(HB_ShaperItem *shaper_item)
1349 if (shaper_item->num_glyphs < shaper_item->item.length) {
1350 shaper_item->num_glyphs = shaper_item->item.length;
1353 assert(shaper_item->item.script < HB_ScriptCount);
1354 result = HB_ScriptEngines[shaper_item->item.script].shape(shaper_item);
1355 shaper_item->glyphIndicesPresent = false;