On Fri, Jul 05, 2002 at 12:50:07PM -0700, Alexandre Julliard wrote:
Lionel Ulmer lionel.ulmer@free.fr writes:
What I had in mind in my comments to your patch was something like that :
if (src != iface) Do the standard memcpy code path else if source_Y > dest_Y do the ascending memmove copy else do the descending memmove copy
Do you actually need memmove in all these cases? It seems to me that it would only be needed if source_Y == dest_Y.
Yeah, you're right. So the thing should be :
if ((not on the same surface) OR (src_Y > dst_Y) OR ((src_Y == dst_Y) AND ((src_rect_Right <= dst_rect_Left) OR (dst_rect_Right <= src_rect_Left)))) ascending memcpy path else if src_Y == dst_Y memmove path else descending memcpy path
And the code should even be understandable :-)
Lionel