This operation has rendering effects similar to cairo_show_glyphs() but, if the target surface supports it, uses the provided text and cluster mapping to embed the text for the glyphs shown in the output. If the target does not support the extended attributes, this function acts like the basic cairo_show_glyphs() as if it had been passed glyphs and num_glyphs. The mapping between utf8 and glyphs is provided by an array of clusters. Each cluster covers a number of text bytes and glyphs, and neighboring clusters cover neighboring areas of utf8 and glyphs. The clusters should collectively cover utf8 and glyphs in entirety. The first cluster always covers bytes from the beginning of utf8. If cluster_flags do not have the CAIRO_TEXT_CLUSTER_FLAG_BACKWARD set, the first cluster also covers the beginning of glyphs, otherwise it covers the end of the glyphs array and following clusters move backward. See cairo_text_cluster_t for constraints on valid clusters. Since 1.8


utf8 string

a string of text encoded in UTF-8

utf8_Len int

length of utf8 in bytes, or -1 if it is NUL-terminated

glyphs cairo_glyph_t[]

array of glyphs to show

clusters cairo_text_cluster_t[]

array of cluster mapping information

clusterFlags cairo_text_cluster_flags_t

cluster mapping flags