On Mon, 2005-08-15 at 23:45 +0400, Alexandre Prokoudine wrote:
Isn't Cairo been pushed to 1.0 for GNOME 2.12 release? This would mean quite stable API (but not neccesarily speed and robustness, though I'd like to be wrong).
Non-sequitur. Cairo has nothing to do with canvas widgets directly; it's just a rendering API upon which a canvas widget might be implemented.
So I can answer this once for everybody, here's how things break down, comparing the Inkscape and (hypothetical) Cairo/GTK stack ... the list is from low-level to high-level, so each layer builds atop the previous ones:
Inkscape Cairo/GTK -------- --------- Compositing/Buffering: libnr libpixman Rendering: libnr+livarot cairo Retained-mode Canvas: SPCanvas+NRArena (hypothetical) GtkCanvas SVG Canvas: SPObject n/a
So, Cairo cannot replace SPCanvas. It doesn't supercede GtkCanvas, and nothing can replace SPObject. Any "bottom-up" slice of the Inkscape stack can (in principle) be replaced by any equivalent bottom-up slice of the Cairo/GTK one. e.g. we could replace libnr+livarot with libpixman+cairo.
And when we talk about sharing out an "SVG Canvas", we are really referring to SPObject, built atop whatever retained-mode API we choose. Could be GtkCanvas eventually, if it proved adequate for our needs.
-mental