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

One thought on “Accelerated Compositing with Clutter!

  1. Why do this (as well as the X11 surface stuff in WebProcess) instead of using the texmap composited layer implementation?

    Also, it seems like it’s been hard for other folks to map all of the layer animation semantics cleanly to another animation system — even the Apple code to use CoreAnimation has been very hacky…

Comments are closed.

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>