[cairo] About cairo_show_text and UTF-8...

Bill Spitzak spitzak at d2.com
Fri Jan 6 12:24:08 PST 2006

Owen Taylor wrote:

> This is not remotely possible (I think I've explained this before but
> I'll try again)
> Pango deals with fonts on a level that is *not* a simple model of
> character => glyph. Modern fonts include tables that describe how
> the different glyphs in the font interact with each other; this
> includes kerning, ligatures, and more sophisticated forms of
> combination that are essential to rendering most of the scripts of the
> world. (Arabic, Hindi/Devanagari, Thai, etc, etc, etc.)
> So, you can't just take two fonts and glom them together into one
> big font that has all the characters in either font.

I don't understand this. All I want is the first 0x10ffff glyph indicies 
to always draw something that has some relationship to the Unicode 
glyphs. A possible accurate definition is that they should draw the 
exact same glyph Pango would draw if given a 1-character string of only 
that index. That does not mean Pango is limited to these same glyphs. My 
recommendation is that the fontset contain alternate forms in non-unicde 
indexes above 0x10ffff, though instead Pango could just select several 
of them like it does with fonts now. And Pango can retrieve the tables 
for all the fonts from the fontset.

> You *could* add fontsetting code into the Cairo toy API. That would
> require changes to the Cairo internal interfaces, but is otherwise
> not all that hard. But it would be entirely separate from the Pango
> fontsetting code, other than they would both use fontconfig to
> get the lists of fonts to combine.

Please, somebody, do this, if that is the only solution.

However my belief is that doing this in two places is wasteful and 
possibly dangerous. If Cairo can manage this large set of glyphs, Pango 
should be able to take advantage of it, and Pango should be able talk to 
Cairo about only a single "font", rather than having to shuffle Cairo 
fonts around. This would also allow easy mixing and migrating from the 
"toy" interface to Pango, and would encourage Pango adoption. I am also 
extremely worried that different algorithims will lead to programs 
producing different output when given the same font-name string, which 
is a big turn-off for users.

More information about the cairo mailing list