Hello all
I will limit myself to two possibilities of a GSoC project for this year: Cairo rendering and SP layer improvements. I think they have the biggest potential impact. This mail discusses the first one.
In order to use Cairo rendering in Inkscape, we need a Cairo-based canvas widget to replace the current SPCanvas / NRArena. They appear to be originally derived from GnomeCanvas. Canvas widgets are a rather common beast in the FOSS world, so even if we decide none of the existing ones are satisfactory for us, we have a large body of work from which we can derive inspiration.
This page has links to several existing canvas implementations. I have not analyzed all of them yet, but will keep you informed about any important http://live.gnome.org/ProjectRidley/CanvasOverview
Here are some requirements for our canvas. 0. Based on Cairo. 1. Model/view split: objects displayed on the canvas can exist without it. 2. Widgetless rendering: it should be possible to render completely in memory, for example for console-mode PDF export. 3. No excessive ties to Inkscape - implemented as a library, perhaps using a few well-defined portions of the existing codebase (e.g. 2geom). 4. Canvas primitives should be sufficient to render SVG.
There are many things to discuss, but here's the first one: Tiling reduces the area of the screen that needs to be redrawn, but increases the number of drawing operations. We could instead have a tile-less system that would compute the affected bounding box and redraw it in one go, instead of redrawing many tiles. What do you think?
Regards, Krzysztof