[Moonlight-list] OpenVG support for Moonlight

Jérémie Laval jeremie.laval at gmail.com
Thu Jul 23 08:36:24 EDT 2009


Hey folks,

The attached patch add support for Moonlight working on top of OpenVG.
Basically, there are three components that are modified or provided :
ShivaVG (the OpenVG implementation used in the port which is based on
OpenGL), Cairo (by adding the OpenVG surface) and Moonlight itself (for
using correctly the new surface).

Dependencies
============

- liboil 0.3
- gtkglext 1.2.0
- an accelerated OpenGL with PBO support (glxinfo | grep
'GL_ARB_pixel_buffer_object')

How to build
==========

- Extract the provided ShivaVG tarball, then, before calling autogen.sh and
configure, run `source exportShivavg.sh' which set up some environment
variables. After that, make and make install as usual.

- Compile moon with openvg.patch applied (patch based on r138450). Before
running autogen.sh or configure, run `source exportMoon.sh' which also setup
some environment variables. You may have to `make clean && make distclean'
for things to work correctly.

Demos that are known to "work"
=========================

- BubbleMark : http://bubblemark.com/silverlight2.html
- DeepZoom map :
http://blogs.msdn.com/lutzg/archive/2009/03/03/panning-across-large-maps-with-deep-zoom-and-custom-animations.aspx

TODO
=====

- Find a way to not monopolize GLib mainloop (fix Firefox redrawing).
- Add VBO to ShivaVG for path handling.
- Make Cairo OpenVG surface use more of ShivaVG rather than fallbacking on
cairo_image_surface operations.
- Image caching on Moonlight is currently totally disabled. Create another
cairo surface wrapping vgImage for that (that could maybe be returned by
cairo_surface_create_similar to keep the current caching code working).
- Get that f*ck*ng slowdown on NVidia squashed.
- Handle the resize of the canvas.

About Silverlight 3.0
===============

The cool thing about ShivaVG here is that it relies on OpenGL. It means that
when Moonlight will transition to SL 3.0 and its 3D effects, you can
basically still call Cairo/OpenVG for the 2D stuff and insert some other
OpenGL calls when 3D is necessary.

Cheers.

--
Jérémie Laval
jeremie.laval at gmail.com
http://garuma.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/moonlight-list/attachments/20090723/b824f9db/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: moon-openvg.tar.bz2
Type: application/x-bzip2
Size: 732916 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/moonlight-list/attachments/20090723/b824f9db/attachment-0001.bz2 


More information about the Moonlight-list mailing list