diff options
author | marha <marha@users.sourceforge.net> | 2011-08-29 08:51:20 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-08-29 08:51:20 +0200 |
commit | 01df5d59e56a1b060568f8cad2e89f7eea22fc70 (patch) | |
tree | 9db83037fd85d0974b60fc1a05e0665083f26000 /xorg-server/fb | |
parent | fd1f4d9fe3ea67fa6def8ee4927a8f71e0440f12 (diff) | |
download | vcxsrv-01df5d59e56a1b060568f8cad2e89f7eea22fc70.tar.gz vcxsrv-01df5d59e56a1b060568f8cad2e89f7eea22fc70.tar.bz2 vcxsrv-01df5d59e56a1b060568f8cad2e89f7eea22fc70.zip |
xwininfo libX11 libXmu libxcb mesa xserver xkeyboard-config git update 29
aug 2011
Diffstat (limited to 'xorg-server/fb')
-rw-r--r-- | xorg-server/fb/fbblt.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/xorg-server/fb/fbblt.c b/xorg-server/fb/fbblt.c index a0402986c..680940467 100644 --- a/xorg-server/fb/fbblt.c +++ b/xorg-server/fb/fbblt.c @@ -65,6 +65,7 @@ fbBlt (FbBits *srcLine, int n, nmiddle; Bool destInvarient; int startbyte, endbyte; + int careful; FbDeclareMergeRop (); if (bpp == 24 && !FbCheck24Pix (pm)) @@ -74,12 +75,16 @@ fbBlt (FbBits *srcLine, return; } - if (alu == GXcopy && pm == FB_ALLONES && !reverse && + careful = !((srcLine < dstLine && srcLine + width * (bpp>>3) > dstLine) || + (dstLine < srcLine && dstLine + width * (bpp>>3) > srcLine)) || + (bpp & 7); + + if (alu == GXcopy && pm == FB_ALLONES && !careful && !(srcX & 7) && !(dstX & 7) && !(width & 7)) { int i; CARD8 *src = (CARD8 *) srcLine; CARD8 *dst = (CARD8 *) dstLine; - + srcStride *= sizeof(FbBits); dstStride *= sizeof(FbBits); width >>= 3; |