• Sam Lantinga's avatar
    Fixed bug #1090 (SDL_BlitCopyOverlap() assumes memcpy() operates in order) · d2b922f5
    Sam Lantinga authored
    Even if we're blitting between two different surfaces their pixels might still overlap, because of SDL_CreateRGBSurfaceFrom(), so always use SDL_BlitCopy() and check for overlap in that function.
    
    When handling overlapping surfaces, don't assume that memcpy() iterates forward, instead use memmove() correctly, and provide a fallback implementation of SDL_memmove() that handles the different cases.
    
    Fixed a bug with SDL_memset() not completely filling lengths that aren't a multiple of 4.
    Optimized SDL_memcpy() a bit using the same technique as SDL_memset().
    d2b922f5
SDL_stdinc.h 20.4 KB