Re: pango_layout_iter_get_char_extents()
- From: Owen Taylor <otaylor redhat com>
- To: Sven Neumann <sven gimp org>
- Cc: Havoc Pennington <hp redhat com>, gtk-devel-list gnome org
- Subject: Re: pango_layout_iter_get_char_extents()
- Date: 20 Jul 2001 13:00:35 -0400
Sven Neumann <sven gimp org> writes:
> Hi,
>
> Havoc Pennington <hp redhat com> writes:
>
> > Sven Neumann <sven gimp org> writes:
> > > That's what I would have guessed. However it looks as if
> > > pango_layout_iter_next_cluster() iterates line by line inserting
> > > an extra cluster at the end of the line. This is prooven by the
> > > extents returned by pango_layout_iter_get_cluster_extents() which
> > > alternatingly give the extents of a whole line and zero-wide
> > > rectangles.
> >
> > Yes, that's right. The reason for this is to handle empty lines or
> > something, I don't remember. I agree it's a bit weird.
>
> The fact that empty clusters are added at the end of the line is
> documented and did not surprise me, but clusters are definitely
> not handled as described in your first reply (you said they'd be
> equivalent to a font glyph). The iterator and get_extents function
> behave as if clusters were lines (at least for the case of simple
> layouts without attribute changes).
If that's the case, they are buggy. A cluster is basically an internal
detail in Pango ... most operations should care about graphemes
not clusters, but to describe it more exactly:
A cluster is the smallest unit at which the mapping between characters
and glyphs is defined.
A cluster can have multiple characters and one glyph
(character + composing accent rendered as one glyph)
A cluster can have multiple glyphs and one character.
(Hangul composed syllable rendered with combining Jamo)
A cluster can have multiple glyphs and multiple characters
(character + composing accent rendered as base glyph plus accent
glyph)
But all the width for the glyphs in a cluster is divided equally to
provide the logical widths of the characters within the cluster.
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]