[cairo] more pattern rewrite stuff...

David Reveman davidr at novell.com
Mon Jan 31 05:31:37 PST 2005


ok, I couldn't stop myself from trying to get this right. This patch
includes new changes to the pattern system, this time I'm pretty happy
with how it turned out. 

It removes backend functions set_filter, set_repeat and set_matrix.
Makes the "pattern <-> gstate" and "pattern <-> backend" connections
more appropriate and cleans up a lot of stuff. Looking at the diff is
probably not good enough.

Futher on, we should make the mask surface passed to surface_composite a
pattern as well, the current alpha modifications done to the gradient
stops in _cairo_pattern_set_alpha should be removed and I think I'd like
to remove the src_x and src_y parameters from surface_composite and
surface_composite_trapezoids and move them into the pattern matrix
instead.

The patch also includes updates to the glitz backend, with basic support
for the new trapezoid code I've got in glitz and it now uses libpixman
to rasterize traps when an intermediate mask is required. Output quality
from glitz backend should be just as good as quality of image/xlib with
this patch applied. The attached patch to libpixman needs to be applied
first for this to work.

-David
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cairo-pattern-update-050131.diff
Type: text/x-patch
Size: 94710 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20050131/b1bfe68c/cairo-pattern-update-050131.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libpixman-add-trapezoids.diff
Type: text/x-patch
Size: 1221 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20050131/b1bfe68c/libpixman-add-trapezoids.bin


More information about the cairo mailing list