Accelerated Compositing with Clutter!

I have been working on a new hardware acceleration backend for WebKitGtk+ with Clutter. This is an experimental feature, but after I added Clutter, Cogl, Clutter-gtk to WebKit jhbuild module file, you can try to test it more easily wth WebKit upstream.

Building WebKitGtk+ with Clutter

First thing you have to do is to set WEBKIT_EXTRA_MODULES environment variable as follows:

export WEBKIT_EXTRA_MODULES=webkitgtk-clutter-dependencies,libsecret

If you are using Ubuntu12.04, you should also add libsecret.

Before running build-webkkt script, you need to update all dependent libraries of WebKitGtk+ by running update-webkitgtk-libs script.

$ Tools/Scripts/update-webkitgtk-libs

Then, run build-webkit script as follows:

./Tools/Scripts/build-webkit --gtk --with-acceleration-backend=clutter --no-webgl

You can run the WebKitGtk+ launcher with enabling accelerated compositing as follows:

$ ./Tools/Scripts/run-launcher --gtk --enable-accelerated-compositing

Currently, basic features of CSS 3D transforms, and animations are working, but there are many missing features. Actually, the Clutter backend is already working well in WebKit-Clutter port. I worked on this port before, so the WebKit-Clutter development team(Kov, Changseok) and I are porting accelerated composting code of WebKit-Clutter to WebKitGtk+.

Anyway, the Clutter backend is very important because GTK+4.0 is planing to use Clutter or Cogl as a GDK backend. I expect that the Clutter backend may be able to work better with GTK+4.0