diff options
Diffstat (limited to 'community/mupen64plus/sdl2-pitch.patch')
-rw-r--r-- | community/mupen64plus/sdl2-pitch.patch | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/community/mupen64plus/sdl2-pitch.patch b/community/mupen64plus/sdl2-pitch.patch new file mode 100644 index 00000000000..18992df19e5 --- /dev/null +++ b/community/mupen64plus/sdl2-pitch.patch @@ -0,0 +1,20 @@ +Patch-Source: https://github.com/mupen64plus/mupen64plus-core/pull/970 +diff --git a/source/mupen64plus-core/src/api/vidext_sdl2_compat.h b/source/mupen64plus-core/src/api/vidext_sdl2_compat.h +index 06d778d..2e5b9f5 100644 +--- a/source/mupen64plus-core/src/api/vidext_sdl2_compat.h ++++ b/source/mupen64plus-core/src/api/vidext_sdl2_compat.h +@@ -474,8 +474,13 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags) + if (SDL_GL_MakeCurrent(SDL_VideoWindow, SDL_VideoContext) < 0) { + return NULL; + } ++ /* Pitch: size of of line in bytes */ ++ /* Add 7 to bpp before division, to ensure correct rounding towards infinity ++ * in cases where bits per pixel do not cleanly divide by 8 (such as 15) ++ */ ++ int pitch = (bpp + 7) / 8 * width; + SDL_VideoSurface = +- SDL_CreateRGBSurfaceFrom(NULL, width, height, bpp, 0, 0, 0, 0, 0); ++ SDL_CreateRGBSurfaceFrom(NULL, width, height, bpp, pitch, 0, 0, 0, 0); + if (!SDL_VideoSurface) { + return NULL; + } |