[cairo] pycairo performance tips

Arjen Nienhuis a.g.nienhuis at gmail.com
Tue Aug 10 04:06:36 PDT 2010


Hi,

Did you use a profiler on your code? What code is responsible for the bad
performance?

For panning you can render the whole image (even outside the visible window)
to an image and render that to the screen at the correct offset.

For zooming you can scale the cached image while zooming and then render to
the image again after the zooming is complete.

For editing you can drag a outline of the node that is selected across the
screen and render again at mouse-up.

Groeten, Arjen

On Tue, Aug 10, 2010 at 10:39 AM, Prashant Saxena <animator333 at yahoo.com>wrote:

> Hi,
>
> I am using cairo 1.8.6, wxpython 2.8.10.1 and python 2.6. I have created a
> custom OO based scene graph framework. I am using this frame work for a
> visual
> node based application. A similar screen shot can be found here:
>
>
> http://www.chamberlinproductions.org/Files/Blender/Blender%202.48a%20Screenshot.jpg
>
>
> From functionality point of view cairo is working great but from
> performance
> wise it's slightly lagging. Although I have implemented
> a custom cache implementation to make it as fast as possible but still I
> need
> some tips to improve it.
>
> Once a node is drawn it's cached as bitmap and instead of calling entire
> drawing
> operations, I am drawing it's bitmap.
>
>
>
> The main area where I need speed-ups are related to view port navigation:
>
> 1. When you select a node and move, you have to repeatedly call the main
> 'draw'
> to update the canvas and it's drawing all the nodes.
>
> 2. When you zoom-in or zoom-out (scaling DCs), you have to re-cache the
> node.
>
> 3. When you scroll/pan the canvas you have to draw all the nodes for every
> mouse-move call. This is much slower if you have already zoomed-in.(DC's
> scale
> is 5 or greater)
>
> Overall, how do you take out most of cairo/pycairo when you are creating a
> frame-work similar to the screen shot above?
>
> Shall I try newer version? (if there are any performance based improvements
> rather then functionality)
>
> Cheers
>
> Prashant
>
>
>
> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20100810/80b1bf8a/attachment.htm>


More information about the cairo mailing list