Why Cairo?

因为想写一个 lightweight & fast 的文本布局引擎,这两天在留意一些新的图形 API。其实有些都不算很新了,像 [Anti-Grain Geometry](http://www.antigrain.com/)、[Amanith](http://www.amanith.org) 和 [Xara](http://www.xaraxtreme.org/)。

曾被誉为“Linux 图形未来希望”的 [cairo](http://www.cairographics.org) 广受诟病的是它的效率,尽管从一开始 cairo 便宣称将会利用 glitz 这样的 backend 实现硬件加速的矢量图形绘制,从而达到软件绘制无法达到的效果。结果现在戏剧性的是,cairo 比所有这些用软件绘制的引擎都慢得多

所以才有人写了这么一篇 [Why Cairo?](http://weblogs.mozillazine.org/tor/archives/2006/04/why_cairo.html),意思大概说得很清楚了,Mozilla 选用 cairo 的借口现在看来是非常苍白无力的,比如说 cairo 引以为傲的“bring vector graphics to print”有多少人需要把网页输出到 PDF/PS?如果最基本的页面渲染都做不到高效,谈何页面印刷的高效?

所以我觉得啊,rendering model 好当然不错,cross-platform 性能好也很好,但 cairo 是不是中 gnome 社群的毒太深了?什么东西都来搞个 backend,结果最后每个 backend 都半死不活的,没错,也许某天 David Reveman 搞定了 xgl 腾出手来整 glitz 了,可 David Reveman 就算搞定了 glitz,也未必能在 win32 下用啊。

… 今天测试的结果是,pango 用 cairo 作 backend,cairo 用 win32 backend,结果渲染一行字 (4 个字母),要半秒钟。嗯,没看错,就是 0.5s。

效率还是很重要的呀,虽然某位大人物说过:

预优化是万恶之源。

Author: Jiang Jiang

A software engineer from China, working on some OS for a fruit company. Interested in typography and science fiction.

12 thoughts on “Why Cairo?”

  1. 我用 trunk 已经有一段时间了,在我的 T23 上(windows xp/512MB/PIII 1.2G) 还算是可用的.

  2. hello jjgod,我在自己的网站中用了贵站的一些样式,当然,没有任何商业用处与目的,如果这样招致你的反感,我会马上修改.我网站url是log4u.net,同时希望你的同意.

  3. 这里的字体和背景颜色都很好看,看着舒服。我也去看了Fahlstad的站点,这些网页都用重色调做背景显得很酷。我好奇的是你用他的设计征求过他本人同意了吗?虽然这样问有点冒昧,请不要多心我完全是出于好奇。你的连接的站点都让人有新鲜感,就是有的字号太小了,得用Ctrl+放大,可是网页的布局就走形了。希望你尽快研究出汉字在网页上更丰富的表现力。没想到有人在默默地耕耘CSS。中国的网页都是千篇一律,就像总穿着旧衣服早该换了。如果你有现成的模板,我可以说服我们的会员换掉他们的网站符合web标准,就是不知道你怎么收费。我们是中国食品工业协会的会员。如你感兴趣请与我联系。

  4. cairo提供很多后端可以用
    ”cairo 用 win32 backend“的测试能测试出它的真正性能吗?
    用glitz作为cairo的后端测试试试。

Leave a Reply

Your email address will not be published. Required fields are marked *