Create a new PangoGlyphString
.
array of glyph information
logical cluster info, indexed by the byte index within the text corresponding to the glyph string
number of glyphs in this glyph string
Copy a glyph string and associated storage.
Computes the extents of a sub-portion of a glyph string.
The extents are relative to the start of the glyph string range (the origin of their coordinate system is at the start of the range, not at the start of the entire glyph string).
start index
end index (the range is the set of bytes with indices such that start <= index < end)
a PangoFont
Free a glyph string and associated storage.
Given a PangoGlyphString
and corresponding text, determine the width
corresponding to each character.
When multiple characters compose a single cluster, the width of the entire cluster is divided equally among the characters.
See also [methodPango
.GlyphItem.get_logical_widths].
the text corresponding to the glyphs
the length of text,
in bytes
the embedding level of the string
an array whose length is the number of characters in text (equal to g_utf8_strlen (text, length)
unless text has NUL
bytes) to be filled in with the resulting character widths.
Computes the logical width of the glyph string.
This can also be computed using [methodPango
.GlyphString.extents].
However, since this only computes the width, it's much faster. This
is in fact only a convenience function that computes the sum of
geometry
.width for each glyph in the glyphs
.
Converts from character position to x position.
The X position is measured from the left edge of the run. Character positions are obtained using font metrics for ligatures where available, and computed by dividing up each cluster into equal portions, otherwise.
the text for the run
the number of bytes (not characters) in text
.
the analysis information return from [funcitemize]
the byte index within text
whether we should compute the result for the beginning (%FALSE) or end (%TRUE) of the character.
Converts from character position to x position.
This variant of [methodPango
.GlyphString.index_to_x] additionally
accepts a PangoLogAttr
array. The grapheme boundary information
in it can be used to disambiguate positioning inside some complex
clusters.
the text for the run
the number of bytes (not characters) in text
.
the analysis information return from [funcitemize]
PangoLogAttr
array for text
the byte index within text
whether we should compute the result for the beginning (%FALSE) or end (%TRUE) of the character.
Resize a glyph string to the given length.
the new length of the string
Convert from x offset to character position.
Character positions are computed by dividing up each cluster into equal portions. In scripts where positioning within a cluster is not allowed (such as Thai), the returned value may not be a valid cursor position; the caller must combine the result with the logical attributes for the text to compute the valid cursor position.
the text for the run
the number of bytes (not characters) in text.
the analysis information return from [funcitemize]
the x offset (in Pango units)
Create a new PangoGlyphString
.
A
PangoGlyphString
is used to store strings of glyphs with geometry and visual attribute information.The storage for the glyph information is owned by the structure which simplifies memory management.