[cairo] Lander Game

Alex Mac lots.of.mailing.lists at gmail.com
Mon Jan 8 15:07:24 PST 2007


On 08/01/07, Daniel Amelang <daniel.amelang at gmail.com> wrote:
> On 1/8/07, Alex Mac <lots.of.mailing.lists at gmail.com> wrote:
> > I'm guessing that rsvg does no caching and simply re-parses the svg
> > file every time? that would explain why its so slow.
> >
> > I saw something like this mentioned in another thread but I'll mention
> > it again here. It would be really useful if cairo had something like
> > OpenGL's display lists so that sequences of commands can be recorded
> > and then later replayed to a surface.
>
> You don't necessarily need display lists in this case to get that
> behavior. You can cache all that complex drawing in an intermediate
> cairo surface that you keep around to paint onto your destination
> surface as needed. That way, you only need to use rsvg to render the
> SVG once. If/when you need to draw the SVG at a different resolution,
> you'll probably want to re-render it for that resolution.

I've added in some code to render the background once to an Image
surface, but my goal is to have animated backgrounds so I dont really
want to have to do that.

Anyway, rendering to an image surface only seems to provide a small
improvement in performance, It's still slower than Qt4.

> Assuming that the bottleneck really is rsvg, you should see a healthy
> speedup with this approach.
>
> Dan
>


More information about the cairo mailing list