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
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