Home | History | Annotate | Download | only in src

Lines Matching full:item

139 static HB_Bool hangul_shape_syllable(HB_ShaperItem *item, HB_Bool openType)
141 const HB_UChar16 *ch = item->string + item->item.pos;
142 int len = item->item.length;
144 const int availableGlyphs = item->num_glyphs;
150 if (item->item.length == 2) {
156 } else if (item->item.length == 3) {
174 if (!item->font->klass->convertStringToGlyphIndices(item->font,
176 item->glyphs, &item->num_glyphs,
177 item->item.bidiLevel % 2))
180 item->attributes[i].mark = FALSE;
181 item->attributes[i].clusterStart = FALSE;
182 item->attributes[i].justification = 0;
183 item->attributes[i].zeroWidth = FALSE;
194 item->log_clusters = logClusters;
196 HB_OpenTypeShape(item, /*properties*/0);
198 positioned = HB_OpenTypePosition(item, availableGlyphs, /*doLogClusters*/FALSE);
205 HB_HeuristicPosition(item);
209 item->attributes[0].clusterStart = TRUE;
213 HB_Bool HB_HangulShape(HB_ShaperItem *item)
215 const HB_UChar16 *uc = item->string + item->item.pos;
219 assert(item->item.script == HB_Script_Hangul);
221 for (i = 0; i < (int)item->item.length; ++i) {
230 unsigned short *logClusters = item->log_clusters;
233 int sstart = item->item.pos;
234 int end = sstart + item->item.length;
237 openType = HB_SelectScript(item, hangul_features);
239 syllable = *item;
242 int send = hangul_nextSyllableBoundary(item->string, sstart, end);
244 syllable.item.pos = sstart;
245 syllable.item.length = send-sstart;
246 syllable.glyphs = item->glyphs + first_glyph;
247 syllable.attributes = item->attributes + first_glyph;
248 syllable.offsets = item->offsets + first_glyph;
249 syllable.advances = item->advances + first_glyph;
250 syllable.num_glyphs = item->num_glyphs - first_glyph;
252 item->num_glyphs += syllable.num_glyphs;
257 logClusters[i-item->item.pos] = first_glyph;
261 item->num_glyphs = first_glyph;
265 return HB_BasicShape(item);