buffer_cluster_level_t#
Added in version 0.9.42.
- class buffer_cluster_level_t#
Data type for holding HarfBuzz’s clustering behavior options. The cluster level dictates one aspect of how HarfBuzz will treat non-base characters during shaping.
In HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES, non-base
characters are merged into the cluster of the base character that precedes them.
There is also cluster merging every time the clusters will otherwise become non-monotone.
In HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS, non-base characters are initially
assigned their own cluster values, which are not merged into preceding base
clusters. This allows HarfBuzz to perform additional operations like reorder
sequences of adjacent marks. The output is still monotone, but the cluster
values are more granular.
In HB_BUFFER_CLUSTER_LEVEL_CHARACTERS, non-base characters are assigned their
own cluster values, which are not merged into preceding base clusters. Moreover,
the cluster values are not merged into monotone order. This is the most granular
cluster level, and it is useful for clients that need to know the exact cluster
values of each character, but is harder to use for clients, since clusters
might appear in any order.
In HB_BUFFER_CLUSTER_LEVEL_GRAPHEMES, non-base characters are merged into the
cluster of the base character that precedes them. This is similar to the Unicode
Grapheme Cluster algorithm, but it is not exactly the same. The output is
not forced to be monotone. This is useful for clients that want to use HarfBuzz
as a cheap implementation of the Unicode Grapheme Cluster algorithm.
HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES is the default, because it maintains
backward compatibility with older versions of HarfBuzz. New client programs that
do not need to maintain such backward compatibility are recommended to use
HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS instead of the default.
Fields#
- class buffer_cluster_level_t
- CHARACTERS#
Don’t group cluster values.
- DEFAULT#
Default cluster level, equal to
HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES.
- GRAPHEMES#
Only group clusters, but don’t enforce monotone order.
- MONOTONE_CHARACTERS#
Return cluster values grouped into monotone order.
- MONOTONE_GRAPHEMES#
Return cluster values grouped by graphemes into monotone order.