hb_buffer_cluster_level_t enum

hb_buffer_cluster_level_t: @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES: Return cluster values grouped by graphemes into monotone order. @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS: Return cluster values grouped into monotone order. @HB_BUFFER_CLUSTER_LEVEL_CHARACTERS: Don't group cluster values. @HB_BUFFER_CLUSTER_LEVEL_DEFAULT: Default cluster level, equal to @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES. @HB_BUFFER_CLUSTER_LEVEL_GRAPHEMES: Only group clusters, but don't enforce monotone order.

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.

Since: 0.9.42

Inheritance
Available extensions

Values

HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES → const hb_buffer_cluster_level_t
const hb_buffer_cluster_level_t(0)
HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS → const hb_buffer_cluster_level_t
const hb_buffer_cluster_level_t(1)
HB_BUFFER_CLUSTER_LEVEL_CHARACTERS → const hb_buffer_cluster_level_t
const hb_buffer_cluster_level_t(2)
HB_BUFFER_CLUSTER_LEVEL_GRAPHEMES → const hb_buffer_cluster_level_t
const hb_buffer_cluster_level_t(3)

Properties

hashCode int
The hash code for this object.
no setterinherited
index int
A numeric identifier for the enumerated value.
no setterinherited
name String

Available on Enum, provided by the EnumName extension

The name of the enum value.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
value int
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

fromValue(int value) hb_buffer_cluster_level_t

Constants

HB_BUFFER_CLUSTER_LEVEL_DEFAULT → const hb_buffer_cluster_level_t
values → const List<hb_buffer_cluster_level_t>
A constant List of the values in this enum, in order of their declaration.