1. 在 cairo 中 freetype load flags 设置都是错误的, 包括 cairo-1.0.x 和 cairo-1.1.x. 在这个补丁中全部修正了。
2. 让 cairo 接受 FC_IGNORE_GLOBAL_ADVANCE_WIDTH 和 FC_EMBEDDED_BITMAP 规则 。
3. 在渲染字体之前根据 load flags 对 font_options 进行修正, 因为 cairo_font_options 通常只是一种提示,它并不能真正的反映目前使用的规则。如:是否使用 aa, 是否使用 supixel.
4. 让 cairo xlib 后端对同一个 font face 可以接受不同格式的字符,如一部分是 8 位的 aa 字符/32 位 subpixel 字符另外一部分是点阵。