[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!
-Carl
[*] 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