LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1227|回复: 6

[对比]cairo的新版补丁,越patch越糟糕?

[复制链接]
发表于 2006-8-25 15:11:17 | 显示全部楼层 |阅读模式
1.0.4的patch是非常有效果的,这里就不说了

对于新版本的cairo,感谢日月兄维护的patch,不过我这里的感觉是,越补越糟糕?

可以参见下面两个截图,都使用了libXft的patch(来自David Turner)的原始版本,prepatch.png是没有加0001-freetype-Add-fir-filter-for-subpixel-text-rendering.txt的图
afterpatch.png是应用后的

应用前的干净不少,特别是像l这样的字母。。。从整体视觉上看,patch之后的字母笔画要粗些,而印象中1.0.4的patch之后笔画明显变细了。

软件版本:
cairo 1.2.2
libXft 2.1.10 w/fir-filter patch
freetype 2.1.10-r2
fontconfig 2.3.2-r1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2006-8-25 15:47:40 | 显示全部楼层
嗯。正在求证。
原patch中关于FIR_FILTER那段:
  1. +#define FIR_FILTER
  2. +
  3. +#ifdef FIR_FILTER
  4. +#if 0
  5. +static const int   fir_filter[5] = { 0x80, 0x00, 0x00, 0x00, 0x80 };  /* only used for debugging */
  6. +#else
  7. +static const int   fir_filter[5] = { 0x10, 0x40, 0x70, 0x40, 0x10 };
  8. +#endif
  9. +
  10. +#else /* !FIR_FILTER */
复制代码

sunmoon1997的patch:
  1. +static const int   fir_filter[5] = { 0x15, 0x3f, 0x55, 0x3f, 0x15 };
复制代码

尝试过改成:
  1. +static const int   fir_filter[5] = { 0x1C, 0x38, 0x55, 0x38, 0x1C };
复制代码

效果不明显。
回复 支持 反对

使用道具 举报

发表于 2006-8-25 17:25:29 | 显示全部楼层
这个贴图也很有参考意义:
rgb的渲染只应该在笔画的转角处才对,而不是竖划的左右再分别加一条黄一条蓝的。这样的表述是不是更明了?
那么具体怎么才能正确地实现呢?还请各位大拿指教。
回复 支持 反对

使用道具 举报

发表于 2006-8-25 18:09:05 | 显示全部楼层
再加两张分别是未应用和应用了libXft-2.1.10-lcd-cleartype.diff的gnome-terminal截图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2006-8-25 19:29:34 | 显示全部楼层
再废话一句偶就闭嘴(以句号为界):
sunmoon1997的补丁看起来更象是“subpixel"的修改版;David Turner原始版本的patch呢,是grayscale的彩色版。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-26 03:09:03 | 显示全部楼层
gnome-terminal那个比较怪,可能还有vte的缘故?我看了一下,使用David Turner的libXft patch,同样的字体,在普通gtk2程序里面,像L, I 这样的字母都很干净,但是到了gnome-terminal就“花"了。更直接的对比是gnome terminal的菜单和里面显示的字体,明显不同。

无论如何,日月兄的patch应该是起作用的,只是和我们期望的不同?
回复 支持 反对

使用道具 举报

发表于 2006-8-26 10:17:10 | 显示全部楼层
lucida, 好久没有见过了啊,终于又露面了 ;)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表