[cairo] Re: drawlist type functionality?

Jon Smirl jonsmirl at gmail.com
Mon Apr 4 17:31:18 PDT 2005

A draw list implemented on top of Cairo can't be optimized, it is
better for the list to exist in the layers below Cairo.

For example you might implement CarioBeginList/CairoEndList(). This
would enable list support in the various backends.

For OpenGL this would directly translate into an OpenGL display list.
OpenGL display lists can be cached in the client when rendering
remotely. They can also get compiled into card specfic commands and
stored on the graphics card. Another optimization is that all textures
in the list may be converted to match the native hardware format.

For other backends you might want to build a generic list
implementation library that the backends could use if they don't have
built-in display list support like OpenGL.

It is really important to consider hardware optimization when
designing things like this. It is very easy to design features that
can't be accelerated on existing hardware.

Jon Smirl
jonsmirl at gmail.com

More information about the cairo mailing list