diff options
Diffstat (limited to 'main/sdl2/altivec-fixes.patch')
-rw-r--r-- | main/sdl2/altivec-fixes.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/main/sdl2/altivec-fixes.patch b/main/sdl2/altivec-fixes.patch new file mode 100644 index 0000000000..7617e63367 --- /dev/null +++ b/main/sdl2/altivec-fixes.patch @@ -0,0 +1,36 @@ +--- SDL2-2.0.5.orig/src/video/SDL_blit_N.c ++++ SDL2-2.0.5/src/video/SDL_blit_N.c +@@ -118,12 +118,6 @@ + 16, 8, 0, 24, + 0, NULL + }; +- if (!srcfmt) { +- srcfmt = &default_pixel_format; +- } +- if (!dstfmt) { +- dstfmt = &default_pixel_format; +- } + const vector unsigned char plus = VECUINT8_LITERAL(0x00, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x04, 0x04, + 0x08, 0x08, 0x08, 0x08, +@@ -132,10 +126,16 @@ + vector unsigned char vswiz; + vector unsigned int srcvec; + #define RESHIFT(X) (3 - ((X) >> 3)) +- Uint32 rmask = RESHIFT(srcfmt->Rshift) << (dstfmt->Rshift); +- Uint32 gmask = RESHIFT(srcfmt->Gshift) << (dstfmt->Gshift); +- Uint32 bmask = RESHIFT(srcfmt->Bshift) << (dstfmt->Bshift); +- Uint32 amask; ++ Uint32 rmask, gmask, bmask, amask; ++ if (!srcfmt) { ++ srcfmt = &default_pixel_format; ++ } ++ if (!dstfmt) { ++ dstfmt = &default_pixel_format; ++ } ++ rmask = RESHIFT(srcfmt->Rshift) << (dstfmt->Rshift); ++ gmask = RESHIFT(srcfmt->Gshift) << (dstfmt->Gshift); ++ bmask = RESHIFT(srcfmt->Bshift) << (dstfmt->Bshift); + /* Use zero for alpha if either surface doesn't have alpha */ + if (dstfmt->Amask) { + amask = |