Home | History | Annotate | Download | only in src

Lines Matching full:item

103 static HB_Bool tibetan_shape_syllable(HB_Bool openType, HB_ShaperItem *item, HB_Bool invalid)
106 const HB_UChar16 *str = item->string + item->item.pos;
107 int len = item->item.length;
109 const int availableGlyphs = item->num_glyphs;
114 if (item->num_glyphs < item->item.length + 4) {
115 item->num_glyphs = item->item.length + 4;
126 haveGlyphs = item->font->klass->convertStringToGlyphIndices(item->font,
128 item->glyphs, &item->num_glyphs,
129 item->item.bidiLevel % 2);
136 for (i = 0; i < item->item.length; i++) {
137 item->attributes[i].mark = FALSE;
138 item->attributes[i].clusterStart = FALSE;
139 item->attributes[i].justification = 0;
140 item->attributes[i].zeroWidth = FALSE;
148 HB_OpenTypeShape(item, /*properties*/0);
149 if (!HB_OpenTypePosition(item, availableGlyphs, /*doLogClusters*/FALSE))
152 HB_HeuristicPosition(item);
156 item->attributes[0].clusterStart = TRUE;
205 HB_Bool HB_TibetanShape(HB_ShaperItem *item)
209 unsigned short *logClusters = item->log_clusters;
211 HB_ShaperItem syllable = *item;
214 int sstart = item->item.pos;
215 int end = sstart + item->item.length;
217 assert(item->item.script == HB_Script_Tibetan);
220 openType = HB_SelectScript(item, tibetan_features);
226 int send = tibetan_nextSyllableBoundary(item->string, sstart, end, &invalid);
229 syllable.item.pos = sstart;
230 syllable.item.length = send-sstart;
231 syllable.glyphs = item->glyphs + first_glyph;
232 syllable.attributes = item->attributes + first_glyph;
233 syllable.offsets = item->offsets + first_glyph;
234 syllable.advances = item->advances + first_glyph;
235 syllable.num_glyphs = item->num_glyphs - first_glyph;
237 item->num_glyphs += syllable.num_glyphs;
242 logClusters[i-item->item.pos] = first_glyph;
246 item->num_glyphs = first_glyph;