[cairo] Pango issues on Mac OS X

Ben Anderman ben at happyspork.com
Mon Sep 7 18:39:39 PDT 2009

Hello everyone,

I'm having problems with Pango on Mac OS X. I package Wesnoth for Mac,  
which is in the process of switching to Pango/Cairo for text  
rendering. I originally built using Pango 1.21.3, Cairo 1.8.2, and  
Pixman 0.12.0. Everything mostly worked with that, but we had the  
following issues:
1. Pango would only use fonts installed on the system, while Wesnoth  
ships with its own 2 fonts to cover all of its languages. I used a  
pango.aliases file to map the main font (DejaVu Sans) to a font  
included on OS X (Arial Unicode MS), which supports all but 2  
languages Wesnoth has translations for (Arabic and Hebrew). That  
worked well enough, but what about those last 2 languages?
2.  Pango would simply use the first font in the list you give it for  
all the text, rather than falling back to the next font when it found  
glyphs the current font couldn't handle. This made it impossible to  
get the last two languages to work, because although OS X comes with  
Hebrew and Arabic fonts, those fonts don't support any other glyphs at  
all. This also made the language selection menu not work, since that  
obviously needs to use more than one font.

So, I figured, before trying to get help with this, I'd upgrade to the  
latest version (which, by the way, is rather hard on Mac, if you want  
to support i386/ppc and OS X 10.4+). So I did that this past weekend,  
but that seems to have made things significantly worse; not only did  
it not fix the problem, but now it seems as though UTF isn't supported  
at all. With DejaVu Sans, all the text is upper cased, and the first  
letter of every chunk of text is some symbol (like !@#$%, etc.). In  
Arial Unicode MS things aren't quite so bad, but it seems clear that  
UTF-8 isn't supported. Here's screen shots of each:
DejaVu Sans: http://www.happyspork.com/pics/broken_pango_dejavu.png  
(On the plus side, Wesnoth never used to support !RABIC before!)
Arial: http://www.happyspork.com/pics/broken_pango.png
Old Pango: http://www.happyspork.com/pics/old_pango.png

The versions I upgraded to were: Pango 1.25.5, Pixman 0.16.0, and  
Cairo 1.8.8. I noticed with Pango, it now uses Core Text instead (or  
as well as?) ATSUI. This is good, I suppose, since ATSUI is deprecated  
now. But it did mean that I had to build one of the files with OS X  
10.5 headers, because Core Text, although it was introduced in OS X  
10.4, was only made a public API in 10.5. I wonder if Core Text has  
anything to do with the problems?

Thanks for any help,

Ben Anderman (crimson_penguin on IRC)

More information about the cairo mailing list