Daniel Kurtz <[email protected]> writes: > + int srcX, /* bits */ > + FbBits * dstLine, /* pixels */ > + FbStride dstStride, /* pixels */
FbStride is in FbBits units, not pixels (yes, at 32bpp, it's the same) > + int dstX, /* bits */ > + int width, /* bits */ > int height, int alu, FbBits pm, int bpp, Bool reverse, Bool upsidedown) > - careful = !((srcLine < dstLine && srcLine + width * (bpp >> 3) > > dstLine) || > - (dstLine < srcLine && dstLine + width * (bpp >> 3) > > srcLine)) > + /* We must be careful if src and dst regions overlap */ > + careful = ((srcLine < dstLine && srcLine + (width / bpp) > dstLine) || > + (dstLine < srcLine && dstLine + (width / bpp) > srcLine)) I don't think that's correct either (although closer). srcLine + (width >> FB_SHIFT) is what you want as that converts width from bits to FbBits units. -- [email protected]
pgpa8HCQZn58x.pgp
Description: PGP signature
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
