On Wed, 2009-12-02 at 09:49 -0800, Keith Packard wrote: 
> On Wed,  2 Dec 2009 11:48:11 +0100, Michel Dänzer <[email protected]> wrote:
> 
> > +   if (pSrc->pDrawable) {
> > +       xSrc += pSrc->pDrawable->x;
> > +       ySrc += pSrc->pDrawable->y;
> > +   }
> > +
> > +   if (pMask && pMask->pDrawable) {
> > +       xMask += pMask->pDrawable->x;
> > +       yMask += pMask->pDrawable->y;
> > +   }
> > +
> 
> I haven't read through the code carefully yet, but if there are
> transforms involved, then this computation is incorrect -- source
> coordinates are in the post-transform space. Given that the next line
> calls miComputeCompositeRegion, that would also be incorrect in the
> presence of source or mask transforms (yay!).

(Oddly enough, fbWalkCompositeRegion() does the same thing...)

Ugh, sounds like it'll be tricky to get this 100% correct for source
pictures with ->pDrawable->x/y != 0...

Fortunately though, that's a relatively academic issue compared to the
real problem occurring with window destination pictures. As a first
step, would you accept a patch with only the destination coordinate
adjustments?


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer

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

Reply via email to