[Date Prev][Date Next][Thread Prev][Thread Next][Thread Index]

RE: [XaraXtreme-dev] Hackontest: the right time for the Cairo backend?

--On 29 April 2008 13:17:37 +0200 "Scheper, Erik-Berndt" <erik-berndt.scheper@xxxxxxxxx> wrote:

Personally I believe that the best way to go forward would be to fork the
current codebase to a really open repository such as sourceforge.net.

I think describing this as a 'fork' would be a little harsh. I think
the Xara guys have been pretty open with the fact that they don't
intend to develop it further, so it's really picking up a project
which has been abandoned (for good or ill) by its maintainer.

The reason why I am suggesting this point which might otherwise
seem insignificant is that if this goes anywhere, I think it would
be in everybody's interest (including Xara's) to cooperate
at least in terms of making sure (e.g.) file formats stay compatible.
Starting from message of "we're forking your code" perhaps does
not send out quite the right signal. "If you can't carry on with this,
we will" sounds a bit better.

You probably want to take a more recent snapshot than Carl's.

I suspect this is an eminently do-able project, but as usual will require
people outside Xara willing to spend time coding (that's the original
problem). Given that there's (with the possible exception of me) no-one
outside Xara that I know of with familiarity with the RenderRegion system,
and lots of people familiar with Cairo, then the approach I would take to
"get something working" would be leave the binary CDraw in place to start
with, and gradually replace the calls to CDraw to draw into the resultant
bitmap with Calls to Cairo; you can then toggle Cairo and and off and see
if it's doing things right. Eventually, you will have something (very
inefficiently no doubt as it will have to translate everything, and through
an emulation layer) drawing into a XaraLX format bitmap using only Cairo.
At that point you can ditch the binary blob. I do not expect getting to
this point is a huge task - probably a few man-weeks work.

You can then concentrate on making it more efficient (e.g. by using
Cairo's normal bitmap formats, creating a RenderRegion system which
better reflects Cairo's back end, etc).