[cairo] Any chance to get trapezoids into public API?

Chris Wilson chris at chris-wilson.co.uk
Sat Oct 31 12:39:32 PDT 2009

Excerpts from Clemens Eisserer's message of Sat Oct 31 10:47:22 +0000 2009:
> I am writing a Java2D plugin, which allows to use Cairo's tesselator+
> pixman's trapezoid-rasterizer for antialiased rendering. It works
> quite well, however it uses a lot of cairo-internal stuff like:
> I know by completly relying on cairo, I wouldn't have to mess with its
> internals - however there is a certain impedance mismatch between
> Java2D and Cairo and thats why I choose to use xrender back then.

My answer is simple: take cairo under the freedoms of its license and
incorporate a private copy into your library, and adapt to your needs.
Obviously this make me quite sad. I have a grand vision that involves
pushing cairo in all directions, both to improve its usage across the
desktop and to improve the capabilities for it to be (indirectly) h/w
accelerated.  Already this means that the interfaces you currently hook
into are being phased out as we find faster methods, and Java2D will
continue to suffer as the focus for driver development falls elsewhere.
(For instance, instead of switching from converting your
RenderFillRectangles span renderer to a trapezoid based one, you could
join the discussion in how we can expose a method for passing RLE spans
to RENDER. And what direction we should take the hardware acceleration
for 2D paths. At the moment it appears that we (the cairo/DDX developers)
are the ones pushing hardest and so are focused on our use cases.
Obviously I'd like to expand those use cases to include yours by
encouraging your adoption of Cairo. ;-)

If you have identified inadequacies in the public API or bottlenecks
anywhere within cairo that prevent you from using the library. Please
let us know how we can improve cairo, with profiles if possible!

Sorry for not being more helpful, but I want to ensure Cairo stays
focused on doing just one task and doing it well. Have fun developing
Java2D, I hope you find that Cairo is useful and that you do find ways
we can improve. 
Chris Wilson, Intel Open Source Technology Centre

More information about the cairo mailing list