Lines Matching refs:clusters
295 ALLOCATE_ARRAY (hb_graphite2_cluster_t, clusters, buffer->len); in _hb_graphite2_shape()
300 memset (clusters, 0, sizeof (clusters[0]) * buffer->len); in _hb_graphite2_shape()
303 clusters[0].cluster = buffer->info[0].cluster; in _hb_graphite2_shape()
310 while (clusters[ci].base_char > before && ci) in _hb_graphite2_shape()
312 clusters[ci-1].num_chars += clusters[ci].num_chars; in _hb_graphite2_shape()
313 clusters[ci-1].num_glyphs += clusters[ci].num_glyphs; in _hb_graphite2_shape()
317 …if (gr_slot_can_insert_before (is) && clusters[ci].num_chars && before >= clusters[ci].base_char +… in _hb_graphite2_shape()
319 hb_graphite2_cluster_t *c = clusters + ci + 1; in _hb_graphite2_shape()
320 c->base_char = clusters[ci].base_char + clusters[ci].num_chars; in _hb_graphite2_shape()
327 clusters[ci].num_glyphs++; in _hb_graphite2_shape()
329 if (clusters[ci].base_char + clusters[ci].num_chars < after + 1) in _hb_graphite2_shape()
330 clusters[ci].num_chars = after + 1 - clusters[ci].base_char; in _hb_graphite2_shape()
337 for (unsigned int j = 0; j < clusters[i].num_glyphs; ++j) in _hb_graphite2_shape()
339 hb_glyph_info_t *info = &buffer->info[clusters[i].base_glyph + j]; in _hb_graphite2_shape()
340 info->codepoint = gids[clusters[i].base_glyph + j]; in _hb_graphite2_shape()
341 info->cluster = clusters[i].cluster; in _hb_graphite2_shape()