aboutsummaryrefslogtreecommitdiffstats
path: root/main/sdl2/altivec-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/sdl2/altivec-fixes.patch')
-rw-r--r--main/sdl2/altivec-fixes.patch36
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 =