当WebKit碰上Clutter

当WebKit碰上Clutter,是不是“金风玉露一相逢,便胜却人间无数呢”?

目前多种移动设备上的浏览器(例如苹果的 Safari)或者基于浏览器的应用引擎(例如,Nokia的WRT)都是以WebKit为内核的实现,这种以Web的技术和语法实现的移动设备上桌面应 用正准备以较低的开发门槛为主要优势,记得网页上一个说法:”有多少网页开发人员就有多少WRT的开发人员“。

Clutter是一个开源 的(c语言)的类库,该类库抽象了 OpenGL 和 OpenGL ES (the embedded version),用一种简单的方式描绘二维德图像在三维空间的运动。由于三维运动需要消耗CPU的计算能力,为了在三维的动态图形显示中保持高性能和低 电池消耗,Intel的Atom系列平台中,Clutter 可以在graphics processing unit (GPU)中运行,腾出CPU作其他应用计算。详细可以参见:http://www.moblinzone.com/top_stories/159 /34/37/Clutter_Adds_a_Cool_Factor_to_Devices_and_Development

WebKit 碰上Clutter,手机的UI是不是从此生动的立体起来呢?说实话今天我还没有弄清楚,因为我只见过一种显示的效果:就是WebKit显示的网页能够作 为一个平面,在三维空间上运动,例如:旋转180度等。好记性不如烂笔头,下边我老老实实记录下,我这几天的一点探索。

首先,要说说Jserv的博客,他的博文写的儒雅又严谨,文学修养和技术水平在他笔下是花开两朵,透过博客文章读下来,佩服的紧。扯远了,下边是该大牛的几篇相关的文章。

WebKit + Clutter:以 3D 技術給予網頁瀏覽的新體驗

http://blog.linux.org.tw/~jserv/archives/001989.html 

透過 OpenGL 作 WebKit 網頁描繪

http://blog.linux.org.tw/~jserv/archives/002009.html 

WebKit/Clutter 快速入門

http://blog.linux.org.tw/~jserv/archives/002012.html
 


读完大牛的文章,总想试一试,于是我在ubuntu8.10上测试了一把:
1、Webkit与Clutter的集成方案
Webkit 与Clutter的集成方案是:work has been directed into making a proper Clutter backend for WebKit,意思是为WebKit定制一BackEnd,BackEnd是什么呢,例如,GTK就是WebKit的一种BackEnd。通过 BackEnd进行网页图形绘制的。这个集成方案目前有一个WebKit官方的分支,其网页是:http://trac.webkit.org/wiki /clutter

2、下载源码
git clone git://git.o-hand.com/webkit

3、编译
./autogen.sh
./configure --enable-clutter --disable-gtk
make
由于我的ubuntu上安装的是Clutter 0.8,下载的源码用的版本是0.7,编译的时候我对configure.ac稍作了修改,使Clutter的版本检查能过去。

4、编译及运行大牛文章中的例子

我运行的例子是http://blog.linux.org.tw/~jserv/archives/002012.html中的源代码。简单的说就是

WebKitWebView *被设置到ClutterActor 中


在ubuntu上运行得有些奇怪(这个描述很不专业,具体说来就是第一个界面出来的慢,有时候WebKit的界面会消失),中文还有问题。不过网页确实能反转180度了,反转之后还能在文本框输入让google 网页执行搜索,激动了十分钟。


5、企图将Clutter升级到0.9
失败,差异挺多的,看来Clutter还不是很成熟,用法变化很快,0.8的Clutter代码在0.9版本下不能运行
a)ClutterCairo原来是在clutter-cairo安装包中定义的,被移到了clutter的内部。
b)ClutterFixed的定义被替换成CoglFixed
c)......懒得弄下去了,还是等git://git.o-hand.com/webkit的同志们升级到0.9吧。

你可能感兴趣的:(浏览器,ubuntu,processing,webkit,Safari,Nokia)