# HG changeset patch # User Sam Lantinga # Date 1228689460 0 # Node ID 6258fa7cd300a265761a44ea020f5a32a37e2b72 # Parent 7046f9567045e1a1e9e6b4174f193efce41d329e Fixed picking blit function when RLE fails diff -r 7046f9567045 -r 6258fa7cd300 src/video/SDL_blit.h --- a/src/video/SDL_blit.h Sun Dec 07 22:29:58 2008 +0000 +++ b/src/video/SDL_blit.h Sun Dec 07 22:37:40 2008 +0000 @@ -52,6 +52,7 @@ #define SDL_COPY_RLE_DESIRED 0x00001000 #define SDL_COPY_RLE_COLORKEY 0x00002000 #define SDL_COPY_RLE_ALPHAKEY 0x00004000 +#define SDL_COPY_RLE_MASK (SDL_COPY_RLE_DESIRED|SDL_COPY_RLE_COLORKEY|SDL_COPY_RLE_ALPHAKEY) /* SDL blit CPU flags */ #define SDL_CPU_ANY 0x00000000 diff -r 7046f9567045 -r 6258fa7cd300 src/video/SDL_blit_0.c --- a/src/video/SDL_blit_0.c Sun Dec 07 22:29:58 2008 +0000 +++ b/src/video/SDL_blit_0.c Sun Dec 07 22:37:40 2008 +0000 @@ -465,7 +465,7 @@ } else { which = surface->map->dst->format->BytesPerPixel; } - switch (surface->map->info.flags) { + switch (surface->map->info.flags & ~SDL_COPY_RLE_MASK) { case 0: return bitmap_blit[which]; diff -r 7046f9567045 -r 6258fa7cd300 src/video/SDL_blit_1.c --- a/src/video/SDL_blit_1.c Sun Dec 07 22:29:58 2008 +0000 +++ b/src/video/SDL_blit_1.c Sun Dec 07 22:37:40 2008 +0000 @@ -532,7 +532,7 @@ } else { which = dstfmt->BytesPerPixel; } - switch (surface->map->info.flags) { + switch (surface->map->info.flags & ~SDL_COPY_RLE_MASK) { case 0: return one_blit[which]; diff -r 7046f9567045 -r 6258fa7cd300 src/video/SDL_blit_A.c --- a/src/video/SDL_blit_A.c Sun Dec 07 22:29:58 2008 +0000 +++ b/src/video/SDL_blit_A.c Sun Dec 07 22:37:40 2008 +0000 @@ -2153,7 +2153,7 @@ SDL_PixelFormat *sf = surface->format; SDL_PixelFormat *df = surface->map->dst->format; - switch (surface->map->info.flags) { + switch (surface->map->info.flags & ~SDL_COPY_RLE_MASK) { case SDL_COPY_BLEND: /* Per-pixel alpha blits */ switch (df->BytesPerPixel) { diff -r 7046f9567045 -r 6258fa7cd300 src/video/SDL_blit_N.c --- a/src/video/SDL_blit_N.c Sun Dec 07 22:29:58 2008 +0000 +++ b/src/video/SDL_blit_N.c Sun Dec 07 22:37:40 2008 +0000 @@ -2430,7 +2430,7 @@ return (NULL); } - switch (surface->map->info.flags) { + switch (surface->map->info.flags & ~SDL_COPY_RLE_MASK) { case 0: blitfun = NULL; if (dstfmt->BitsPerPixel == 8) { diff -r 7046f9567045 -r 6258fa7cd300 src/video/SDL_surface.c --- a/src/video/SDL_surface.c Sun Dec 07 22:29:58 2008 +0000 +++ b/src/video/SDL_surface.c Sun Dec 07 22:37:40 2008 +0000 @@ -548,7 +548,7 @@ return 0; } - switch (surface->map->info.flags & (SDL_COPY_NEAREST)) { + switch (surface->map->info.flags & SDL_COPY_NEAREST) { case SDL_COPY_NEAREST: *scaleMode = SDL_TEXTURESCALEMODE_FAST; break;