[cairo] Serious concerns about cairo

Vladimir Vukicevic vladimirv at gmail.com
Sat Sep 23 13:12:14 PDT 2006


On 9/23/06, Carl Worth <cworth at cworth.org> wrote:
> As for providing mapping from a unicode character to a glyph index,
> there has been some discussion of this in the past. I'm not an expert
> in this area, but the last time the issue came up I was convinced by
> well-reasoned arguments against including this support in
> cairo. Similar arguments might apply to a ucs2-based API, though I'm
> not sure. Again, I'd have to dig up those conversations to remember
> the details.

The basic issue is that cairo should not be in the text layout or even
in the font business.  It should know how to render a glyph with the
current source at the current position, with the current
platform-specific font, and nothing more.  The "toy" text API was
included as a concession to wanting to easily do simple text, but it's
not intended to be a real text rendering API.

Doing glyph lookups, rendering non-ascii script, font selection, etc.
are all huge jobs, and are best done in a layer above cairo -- whether
that's Uniscribe, ATSU, pango, or some custom-grown thing.  It's very
easy to say "well, all I need is to just do glyph lookups for UCS2
characters", until someone tries to render an Indic or other script
where there isn't a 1-1 mapping... you end up either needing even more
functionality added, pushing things closer and closer to pango, or you
end up abandoning cairo for text layout and start using
Uniscribe/ATSU/etc.

If you want a cross-platform solution, pango has backends for
Uniscribe and ATSU for those platforms, and interacts well with cairo.
 Unfortunately, it has potential licensing issues.

    - Vlad


More information about the cairo mailing list