Watching my teammate hacking on moonlight was sure to detain on me someday. So when Alan talked about making Moonlight run on top of OpenVG I got pretty hooked.

Two hacking days later, I actually got something to "work". At the moment it's quite rough, hacky and it probably kills kitteh too (be careful, it makes shana angry, you wouldn't like that).

Basically, what I did is to plug the OpenVG layer inside Moonlight custom version of cairo (using that code as a base) and then tweaked Moonlight to use the new surface (together with some changes in how drawing and caching is done internally).

Following is a screencast of the thing running Bubble Mark :

(Direct link :

As you can see there are a lot of drawing issues remaining but the basic stuff is here. The code is not terribly faster (+10 fps or so) but that may come either from a bug in my graphic card driver (it already does the bizarre thing of slowing down after some time) or an other part of Moonlight.

It will definitely be better when OpenVG becomes more widespread, has more optimized implementations and can actually run on its own rather than on top of OpenGL (I'm eager to try that on top of Gallium3D when it will be ready).

As for inclusion in the mainline tree, I don't know. I mostly did the thing for fun as a proof-of-concept and it's certainly far too crappy to ever get integrated as is, but maybe someone will step up and do it correctly later :-) .