aports/community/mupen64plus/sdl2-pitch.patch
2022-11-03 18:44:34 +00:00

21 lines
1.0 KiB
Diff

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;
}