It is displayed on a cairo texture but the parsing and rendering of the SVG
itself is slow (comparing to just bitmaps or cairo).

But if your interface uses a single SVG file which is not re-rendered
frequently this might not be an issue at all.

On Thu, May 12, 2011 at 11:37 AM, Veli Ogla Sungutay <[email protected]
> wrote:

> in my case I'm only using a single SVG file which is processed only once to
> define the scene.
> Also at times, more sub renders from the same SVG file could be performed
> during the lifetime of the UI.
> No performance issues but I can't say that my tests were sophisticated.
>
> What exactly is the problem with librsvg which uses cairo itself? Can it be
> fixed?
>
>
>
> On Thu, May 12, 2011 at 12:44 PM, Jan Jokela <[email protected]> wrote:
>
>> Building a GUI with SVG files is a bad idea unless we are talking about
>> something really minimalistic.
>>
>> The main issue here is that librsvg is really slow rendering them. Take a
>> look at Cairo for the heavylifting.
>>
>>
>> On Thu, May 12, 2011 at 9:27 AM, Veli Ogla Sungutay <
>> [email protected]> wrote:
>>
>>> Hi guys,
>>>
>>> I've been experimenting with building SVG GUIs for a while now.
>>> Some tips you may find useful:
>>>
>>> 1. Inkscape can be called from command line with -S switch to give us
>>> id,x,y,width,height information for each element. These could be
>>> used to initialize  ClutterCairoTexture actors.
>>>
>>> 2. We rely on librsvg's rsvg_handle_render_cairo_sub. You may also use
>>> cairo itself to reposition each actor:
>>>
>>> ClutterActor* actor =
>>> clutter_cairo_texture_new(svgElement->width,svgElement->height);
>>> cairoHandle = clutter_cairo_texture_create(CLUTTER_CAIRO_TEXTURE(actor));
>>> cairo_translate(cairoHandle, -svgElement->x, -svgElement->y);
>>>
>>> rsvg_handle_render_cairo_sub(svgHandle, cairoHandle, "#elemID");
>>> cairo_destroy(cairoHandle);
>>>
>>> clutter_actor_set_position(actor,svgElement->x - xParent,svgElement->y -
>>> yParent)
>>>
>>> //Only opaque areas will react to mouse events. Useful for non
>>> rectangular shapes.
>>> clutter_texture_set_pick_with_alpha(CLUTTER_TEXTURE(actor), TRUE);
>>>
>>> You can let me know how it goes. I'm hoping to share my entire code some
>>> time in the summer.
>>>
>>>
>>>
>>>
>>>
>>> On Wed, May 11, 2011 at 1:10 PM, Damien Lespiau <
>>> [email protected]> wrote:
>>>
>>>> On Wed, 2011-05-11 at 06:00 +0100, Alexandre Quessy wrote:
>>>> > Hello,
>>>> > I would like to build a GUI with SVG files in Clutter.
>>>> >
>>>> > To do so, should I use dax?
>>>> > http://git.clutter-project.org/dax/tree/
>>>>
>>>> Oh, no, not a good idea. Dax is an unfinished science project that goes
>>>> boom when people try to use it.
>>>>
>>>> > If so, is it packaged for Debian?
>>>>
>>>> Dax is highly unfinished, does not even compile because it relies on
>>>> Clutter branches that I never ended pushing to master (because of them
>>>> being unfinished too). Thus, not ready yet to get in Debian :p
>>>>
>>>> > Otherwise, does mx provide this?
>>>>
>>>> The best way (best as in, working) to do this right now is to use
>>>> librsvg + ClutterCairoTexture. That does mean that a few things are not
>>>> ideal when thinking "SVG as Scalable graphics" (ie when you scale a SVG
>>>> subtree you may want to re-render it and upload it again to the GPU (but
>>>> when animating maybe not?)
>>>>
>>>> Interesting stuff to look at:
>>>>
>>>> * Lasem. another SVG (amd MathML) renderer
>>>> http://git.gnome.org/browse/lasem
>>>> It's been a while since I have looked at it,
>>>> * http://jyro.blogspot.com/2008/09/inkface-svg-based-gui-design.html
>>>>
>>>> HTH,
>>>>
>>>> --
>>>> Damien
>>>>
>>>> ---------------------------------------------------------------------
>>>> Intel Corporation (UK) Limited
>>>> Registered No. 1134945 (England)
>>>> Registered Office: Pipers Way, Swindon SN3 1RJ
>>>> VAT No: 860 2173 47
>>>>
>>>> This e-mail and any attachments may contain confidential material for
>>>> the sole use of the intended recipient(s). Any review or distribution
>>>> by others is strictly prohibited. If you are not the intended
>>>> recipient, please contact the sender and delete all copies.
>>>> _______________________________________________
>>>> clutter-app-devel-list mailing list
>>>> [email protected]
>>>> http://lists.clutter-project.org/listinfo/clutter-app-devel-list
>>>>
>>>
>>>
>>>
>>> --
>>> Veli Sungutay
>>> http://www.lyciasoft.com
>>>
>>> _______________________________________________
>>> clutter-app-devel-list mailing list
>>> [email protected]
>>> http://lists.clutter-project.org/listinfo/clutter-app-devel-list
>>>
>>>
>>
>
>
> --
> Veli Sungutay
> http://www.lyciasoft.com
>
_______________________________________________
clutter-app-devel-list mailing list
[email protected]
http://lists.clutter-project.org/listinfo/clutter-app-devel-list

Reply via email to