2009/2/9 Mark van Doesburg
The current code works breaking the overlapping region down into regions the size of the non-overlapping part and copying them over one by one. That way you never have to worry about raster direction since you are always copying a non-overlapping part.
That's what the code said, I just didn't want to believe that was actually happening. So dragging a 1000x1000 window by one pixel diagionally results in a 1000000 operations, no wonder my Matrox G400 felt faster. (And the cpu load reaches 95% when dragging a window)
Actually, that would be exactly 1000 + 1 distinct copy operations. The algorithm is O(w), where w is the width of the area being copied. It can actually be optimized further by checking whether horizontal or vertical segmentation is faster. That said, there's no way to make it more efficient than a hardware implementation. -- Yang Zhao http://yangman.ca -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org