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

Re: [XaraXtreme-dev] Ping

On Sat, 17 Feb 2007 18:08:59 -0000, "Charles Moir" wrote:
> So I agree with Alex that, if the worst comes to the worst, and we do
> not release CDraw, Cairo is a perfectly good fall back, and in some ways
> a better solution (e.g. because it's using the platform's standard
> rendering library instead).

OK. Hopefully you know understand the "what about CDraw?" sentiment a
bit better now. An easy way to understand it is "has the worst come to
the worst after all?".

Some people, (speaking from personal experience), have just mentally
filed away the Xara source code as, "that might be interesting if it
becomes free software at some point". So it would be useful to know if
the CDraw source release will never happen. Assuming it will not, then
some of those same people might update their opinion to "definitely
not interesting" or "it might be interesting to work to make the the
software become free".

Over the past year, while the release plans of CDraw have been quite
uncertain, (license file states intent to release source, but no other
visible signs are given), there's been very little motivation for
anyone to invest work into freeing the xara code, (since what would be
the point if CDraw were made free shortly after thereby eliminating
most of the value of that work).

>                             I know Inkscape have often mentioned a
> desire to move to Cairo for similar reasons. And so the sentiment that
> Xara Xtreme is useless without CDraw is plainly just not true.

Yes, inkscape has been quite interested, and inkscape has actually
been progressing nicely on this front. It's got cairo-based PDF export
code now, (which is motivating some improvements in cairo's PDF export
quality), and very recently, there have been very promising
experiments at using cairo to render the main "canvas" of inkscape
itself. So that's just plain happening, (as I imagine it would also
happen for Xara if it were free).

> And for someone that knew Cairo or studied the CDraw interface in Xara
> Xtreme this is not really that difficult a job. I would bet who knew
> what they were doing could have something operational in days (obviously
> a lot longer to get it fully functional).

OK. Let's see what happens. I know cairo and I'm willing to help
anyone that wants to do this and needs assistance from someone that
knows cairo.

I've even made available a version of the xaralx code that is freely
redistributable under the terms of the GPL alone, (no additional
permissions granted), as it does not include the CDraw binary.

Instead, this version consists of the minimum number of stubs I could
identify necessary to link, (quite a few more than are listed in
gdraw.h and gdraw2.h as there are other function prototypes scattered
throughout the Kernel/ directory that are also apparently implemented
in CDraw.a).

Currently, the stubs simply print a message to stderr giving the name
of the unimplemented function, and generally return 0.

The only functions I've given a non-stub interface to are the first
two that are hit b the program, (GDraw_GetVersion and
GDraw_ContextLength). With these two in place, the program stops
generating internal errors at startup and actually runs. It basically
just doesn't draw anything, (well, it does draw a little bit of
something---things like the non-antialiased real-times scribbling with
the pencil show up, as do Bézier control handles, but not much past

If anyone wants to checkout the source as I've put it together, it's
available by means of git[*] with the following command:

	git clone git://people.freedesktop.org/~cworth/xaralx

After that clone, you'll get the tree I created. You'll also have
access to all of the xaralx code history as available in the upstream
subversion repository, (assuming that the subversion->git import
process worked correctly). And there's a "non-free" branch that
contains the exact contents of what is in subversion.

The changes I made can also be browsed online here:


If anyone wants to work to make this a viable port of xaralx to cairo,
I would be glad to assist, and to host changes here. I don't know that
I'll actually be spending a lot of time on this myself.

Oh, and I haven't gone through the paperwork necessary to contribute
co-copyright to Xara (or whomever). If this work ever gets to a point
where that would be interesting, and someone would want that, please
ask me.


[*] If you need a git client, you can probably install it through your
distribution of choice---likely with a package name of git-core. Or
you can obtain it from its home on the internet:


Attachment: pgpiQrsDLbkIq.pgp
Description: PGP signature