On Sun, 2006-02-26 at 20:38 +0100, Albert Graef wrote:
Canvases give you much more than just rendering. They
also manage the
graphical objects that you created and, if anything changes, rerendering
the changed parts happens automatically.
That's usually bad and undesirable for any real time graphics rendering,
like audio UIs often are. For example with proper interfaces I can now
get full screen scrolling spectrogram at 50-100 fps without huge CPU
load.
Moreover, they let you inspect
the object model of the rendered graphic. Does Cairo do that for you?
Well, Gtk+ uses Cairo nowadays anyway... Coordinate transformations,
etc. make it reasonable to also get proper printer output.
OpenGL can do something like this with its display
lists, but that's a
very low-level abstraction compared to what canvas widgets offer.
Probably you could create proper canvas implementation on top of
Cairo/OpenGL, but most of the current implementations I've seen are dead
slow. I'm not sure if GnomeCanvas or some other implementation has been
converted to Cairo yet...
- Jussi