Allow creating an empty surface with pitch 0 This fixes Maelstrom, which creates an empty staging surface and then uses it for transfer to texture
diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c
index f3ee6a4..5930e40 100644
--- a/src/video/SDL_surface.c
+++ b/src/video/SDL_surface.c
@@ -230,7 +230,7 @@ SDL_CreateRGBSurfaceFrom(void *pixels,
minimalPitch = SDL_CalculatePitch(format, width, SDL_TRUE);
- if (pitch < 0 || ((size_t) pitch) < minimalPitch) {
+ if (pitch < 0 || (pitch > 0 && ((size_t) pitch) < minimalPitch)) {
SDL_InvalidParamError("pitch");
return NULL;
}
@@ -272,7 +272,7 @@ SDL_CreateRGBSurfaceWithFormatFrom(void *pixels,
minimalPitch = SDL_CalculatePitch(format, width, SDL_TRUE);
- if (pitch < 0 || ((size_t) pitch) < minimalPitch) {
+ if (pitch < 0 || (pitch > 0 && ((size_t) pitch) < minimalPitch)) {
SDL_InvalidParamError("pitch");
return NULL;
}