Lines Matching refs:clusters
293 ALLOCATE_ARRAY (hb_graphite2_cluster_t, clusters, buffer->len);
296 memset (clusters, 0, sizeof (clusters[0]) * buffer->len);
305 while (clusters[ci].base_char > before && ci)
307 clusters[ci-1].num_chars += clusters[ci].num_chars;
308 clusters[ci-1].num_glyphs += clusters[ci].num_glyphs;
312 if (gr_slot_can_insert_before (is) && clusters[ci].num_chars && before >= clusters[ci].base_char + clusters[ci].num_chars)
314 hb_graphite2_cluster_t *c = clusters + ci + 1;
315 c->base_char = clusters[ci].base_char + clusters[ci].num_chars;
321 clusters[ci].num_glyphs++;
323 if (clusters[ci].base_char + clusters[ci].num_chars < after + 1)
324 clusters[ci].num_chars = after + 1 - clusters[ci].base_char;
331 for (unsigned int j = 0; j < clusters[i].num_glyphs; ++j)
333 hb_glyph_info_t *info = &buffer->info[clusters[i].base_glyph + j];
334 info->codepoint = gids[clusters[i].base_glyph + j];
335 info->cluster = gr_cinfo_base(gr_seg_cinfo(seg, clusters[i].base_char));