Re: shaper PangoGlyphString terminology

On Wed, 2004-04-28 at 22:05, Owen Taylor wrote:
> On Wed, 2004-04-28 at 02:22, Patrick wrote:
> > A simple question,
> > 
> > When a shaper returns a PangoGlyphString does the
> > PangoGlyphString.PangoGlyphInfo.PangoGlyphGeometry.x_offset / .y_offset
> > refer to the offset from the base glyph of the grapheme cluster
> > containing the glyph or from the very 1st grapheme cluster of the
> > supplied text? That is, what exactly is the "nominal character position"
> > mentioned in the API documentation?
> Note that grapheme clusters have absolutely nothing to do with
> positioning of glyphs. Graphemes are purely related to things
> like allowed cursor positions.

I thought a grapheme cluster referred to a combination of glyphs used to
represent a unicode codepoint or a basic 'linguistical unit' (you may
notice I'm unclear on standard terminology) of a language - ie. like an
accented 'a' could be made of a base 'a' glyph with an attached accent
glyph. And this being the case, wouldn't the glyphs that compose such a
'compound glyph' be laid out, in sequence, within the PangoGlyphString
as well?

Can you define some of these standard terms for me?

> The nomimal positions are gotten by adding up the widths
> of preceding characters
>  x0 = 0
>  x1 = x0 + glyphs->glyphs[0].geometry.width
>  x2 = x1 + glyphs->glyphs[1].geometry.width
> And x_offset/y_offset are added to that.

Ok. That explains why you've said in the past (archive search) that
(metric) kerning would have to be part of the shaping process. I was not
sure whether the shapers only formed what I referred to as a grapheme
clusters / compound glyphs or whether they did all of the glyph

Does this mean that the current Pango shaper engine function must be
extended to pass in additional arguments before any shaper could be
configured to do some of the optional OpenType substitutions (ie. small
caps, swashes, titling alternatives, ligatures), contextual positionings
and kerning?

Does this also mean that every shaper would need to redo this work?

Patrick <pabos glypsube org>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]