[cairo] Scrolling/Copying

Bill Spitzak spitzak at d2.com
Fri Jun 24 10:19:22 PDT 2005

Carl Worth wrote:

> So, I think I just talked myself into the fact that Owen had the right
> idea all along that cairo_set_source should lock the pattern matrix to
> refer to the user space at the time of cairo_set_source, (rather than
> the user space in effect at the time of subsequent drawing
> operations).
> This will allow usage like the following to directly copy from a
> source surface:
> 	cairo_identity_matrix (cr);
> 	cairo_set_source_surface (cr, surface, x, y);
> 	cairo_scale (cr, sx, sy);
> 	cairo_rectangle (cr, dx, dy, width, height);

I agree this will do what is wanted. Also it will allow the pattern to 
align in multiple fills even if you change the transformation between 
the fills.

So I guess this means that copying areas should be detected. I don't 
think there is any need to work correctly unless opaque copy is being 
done, ie any compositing operation other than src, and any repeating or 
alpha, will produce undefined results.

More information about the cairo mailing list