[cairo] Re: Switching to Evas Canvas over LGPL

Carl Worth cworth at east.isi.edu
Mon Aug 16 09:54:04 PDT 2004

[My apologies if anyone gets this twice. I seemed to have botched my first attempt.]

On Mon, 16 Aug 2004 02:31:49 -0700, "M. Evans" wrote:
> Carl - no one said you didn't mean it, and I will choose the software 
> that I see fit.  Now, will you please answer my actual question?
> Carsten has kindly offered constrast/comparison with Cairo on several 
> forums such as OSNews.  He also offers lots of documents, which I 
> linked.  The Smoke Vector Graphics crew presents comparison/contrast 
> with various projects on their web site.  It is hard (from documents 
> only) to place Cairo in relation.

I apologize if I came across as overly terse. I felt I was being
challenged to prove technical superiority of cairo sufficient to justify
its license change, and I'm certainly not comfortable entering a
discussion on those terms.

If instead, you just wanted me to compare/contrast cairo and Evas, then
I would be happy to do so, (at least as far as my understanding of Evas
is accurate).

In fact, David Turner already provided a detailed response, so I won't
duplicate everything he said, but I will respond to a couple of your
questions here.

> Immediate mode vs. scene graph is an obvious point of difference (scene 
> graphs save tedious programming labor and are higher level abstractions) 

Yes, this is an important distinction between the two libraries. And
it's not that we think users should not use a scene-graph-based
interface when appropriate. It's just that we believe there's an
advantage to having a clean, exported immediate-mode drawing layer below

Note that, to my knowledge, we don't yet have a general "cairo canvas"
on top of cairo, but people have expressed interest in working on one,
and I'd be glad to see something like that.

> but I am looking more at baseline drawing capabilities, transformations, 
> etc. as well as X dependency issues.

As far as I understand, the primary primitive in Evas is an image. And
the software implementation of the image transformation/compositing in
Evas is certainly much more highly optimized than what we have in
cairo. This isn't surprising, as we haven't yet put effort into
optimizing the cairo software image stuff (libpixman).

Meanwhile, both cairo and Evas have support for doing image operations
using OpenGL and the performance there seems to be within the same order
of magnitude, (as expected).

Most of the interesting work in cairo so far has to do with geometric
primitives, (spline-based paths; stroking; caps, joins, and dashing;
etc.). Evas doesn't yet have much support for these kinds of operations,
but someone has started thinking about adding it.

Finally, both libraries have support for multiple backends, but I think
that cairo is distinct in the priority placed on supporting output
intended for high-quality printing, (even though we haven't finished the
PDF and PostScript work we want to do).

Hopefully, that helps complete your understanding, (and hopefully I
haven't misstated anything too badly).


More information about the cairo mailing list