|
发表于 2010-2-23 19:37:23
|
显示全部楼层
Post by realasking;2071235
我插一句,顺便请教大家:好像QT程序是用的libxft而cairo主要是GTK程序在用?虽然自己也动手打几个补丁,并且基本上能简单的写写字体配置文件了,但是始终不是太明白Linux下的字体和字体渲染机制方面的问题,有没有人简明的科普一下?比如LibXft,Freetype,Cairo,Pango它们作用和相互关系,以及分别用在什么地方?另外就是除此之外还有没有其它的字体渲染引擎,有些什么特点等。在论坛上虽然看过几篇很详细的文章,但是对于它们的关系还是弄得不太清楚。
是这样,gnome2.8以后,所有的2D绘图都会通过cairo这个“中间人“来处理,比如一个程序需要pango画字,那么程序不直接找pango,而是和cairo通讯,cairo再找pango处理画字的请求,再返回给程序。
本来这是一个很常见的机制,但是cairo本身有却有处理字体渲染的功能,所有画字后端的处理结果都会被cairo再处理一次(粗略看过源码,应该主要是次像素方面的)。
其结果就是,同样的fontconfig配置,kde的程序中字体看不出彩边,gnome的程序就有明显的彩边。
这个问题是我在比较firefox和konqueror中字体渲染区别的时候发现的,因为2.8以前可以改变gnome使用的画字程序,2.8却不行了,查了很多资料,问了很多地方才知道是cairo的问题。 |
|