[cairo] Thoughts on plans for 1.6

Carl Worth cworth at cworth.org
Wed Sep 5 14:59:27 PDT 2007

Here are some unorganized thoughts that I wanted to share before I
forget them, (but this does need to get cleaned up and into our
ROUDMAP file[*]).

First, Adrian just doesn't stop doing amazing work. I mentioned
previously that he had completed his work to do
fine-grained-fallbacks within the analysis surface. This is now being
used by both the ps and pdf backends.

And now, there's new work from Adrian to fix the pdf backend's
create_similar to use a meta-surface. This means that applications
that call cairo_push_group will no longer automatically get
rasterization for content inside the group. This is very exciting! In
particular, developers from both the inkscape and mozilla projects
should be quite pleased by improved PDF output from cairo with this
recent work. I'm looking forward to that feedback.

To that end, I'll be making a 1.5.2 snapshot very soon to make it
easier for people to test this new work.

And similarly, I want to make our 1.6 release available sooner rather
than later. Beyond the PS/PDF improvements that are already in place,
(and a similar create_similar fix for ps to come soon), here are some
other things that I'd like to see in 1.6. All of these will require
some more work, (and most of it in pixman).

  * Cairo-xlib should work with any truecolor visual

	This probably means writing a pair of pixman_image_convert
	functions that convert an back and forth between a format
	described by a pixman_format_code_t and a format described by
	arbitrary color/alpha channel masks.

  * Cairo-xlib should work with a pseudocolor visual

	This means applying the long-outstanding patch, (which should
	have its own palette-based conversion function to call as an
	analogue to the new pixman_image_convert function).

  * The a8-mask bug should be fixed

	Pixman currently refuses to render to an 8-bit alpha mask
	unless the stride is a multiple of 4 bytes. We'll need to dig
	through pixman finding and removing this assumption. This will
	help both inkscape and the gimp that have run into this bug.

  * Fix CAIRO_EXTEND_PAD for image surfaces

	This should be a trivial fix to pixman. It will allow
	applications to easily avoid the "faded image edges" when
	drawing scaled-up images. The current ugly effects are
	achieved with:

		cairo_scale (cr, x_scale, y_scale);
		cairo_set_source_surface, (cr, surface, x, y);
		cairo_paint (cr);

	And the fix is:

		cairo_scale (cr, x_scale, y_scale);
		cairo_set_source_surface, (cr, surface, x, y);
		cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_PAD);
		cairo_rectangle (cr, x, y, width, height);
		cairo_fill (cr);

	But obviously that requires that CAIRO_EXTEND_PAD work.

	This problem has been hit by Mozilla, Webkit, poppler, and
	likely many other applications. It will be most welcome when
	it is fixed.

So that's what I'd like to see in 1.6, and I'd like to release it as
soon as we can get that work done.

Any help that anyone can provide will be most appreciated!

Of course, other stuff might make it in as well. And we did have tons
of other ideas on our original 1.6 roadmap. Of course, there's nothing
stopping 1.6.2 and 1.8 releases very quickly after 1.6.0!

Have fun with cairo, everybody!


[*] Or files(!). We still haven't resolved the fact that we now have
ROADMAP in both the wiki and the source repositories.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.cairographics.org/archives/cairo/attachments/20070905/f40183e1/attachment.pgp 

More information about the cairo mailing list