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
