Re: pango layout in irregular (non-rectangular) bounding shape


> I
> can already render stuff to screen and bound a text segment by width
> and height

I guess you tried PangoLayout and friends.

> how to render text within a non-rectangular bounding shape?

> Can someone point me in the right direction?

If I were you, I'd be using PangoItem, PangoGlyphString, and friends.
They are lower layer interface to pango, and you need to write more
codes than using PangoLayout, but it gives you better control over
layout.  (There may be some easier ways if you only needs fill texts
ina non rectangular area, but I don't know.)

The following outlines what you need to do:

(1) Call pango_itemize() once for your text,
(2) Call pango_break() for your entire text,
(3) Call pango_shape() for each PangoItem you got,
(4) Fold the text into lines, scanning the list of PangoItems, calling
    pango_glyph_string_get_width() for each PangoGlyphString you got,
    also breaking several PangoItem in a middle, referring to
    PangoLogAttr array you got (This will be the most complicated step),
(5) Either call pango_reorder_items() for each folded line and somehow
    refrect the results to your list of PangoGlyphString (or does an
    equivalent processing manually as suggested by pango document...), and
(6) Call pango_cairo_show_glyph_string() for each PangoGlyphString,
    moving the cairo current point appropriately.

Hope this helps,


Power up the Internet with Yahoo! Toolbar.

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