Sorry for replying to myself again -- I meant to describe the effect of
this patch on source operands.

What this does is use the entire pixmap as the source operand and then
adjust either the source transform (if present) or source coordinates to
fetch pixels from the right part of that pixmap.

So, this gets the right pixels for source coordinates within the source
window. What it doesn't do is get the right pixels for anything
else. None of the repeat modes work, and pixels falling outside of the
window, but inside the pixmap will get whatever was in the pixmap at
that location.

To make the repeat modes work, we'd need to provide a rectangle
describing the projection of the window into the pixman_image, then
replace all of the existing pixman_image-based clipping with clipping
based on the window. This can be done in a backwards compatible
fashion by setting the clipping to the bounds of the pixman_image by
default and exposing a new API for source clipping.

We could also make source clipping work by performing point-in-region
computations for every source pixel fetch; one suspects that might be a
bit too expensive for most applications though.

-- 
[email protected]

Attachment: pgpkmOPMZ3VE8.pgp
Description: PGP signature

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to