Added SDL_FLIP_HORIZONTAL_AND_VERTICAL

Closes https://github.com/libsdl-org/SDL/pull/13788
This commit is contained in:
Sam Lantinga
2025-08-26 05:50:51 -07:00
parent 1fbed16cb0
commit 66ab91a314
2 changed files with 16 additions and 6 deletions

View File

@@ -96,9 +96,10 @@ typedef enum SDL_ScaleMode
*/
typedef enum SDL_FlipMode
{
SDL_FLIP_NONE, /**< Do not flip */
SDL_FLIP_HORIZONTAL, /**< flip horizontally */
SDL_FLIP_VERTICAL /**< flip vertically */
SDL_FLIP_NONE, /**< Do not flip */
SDL_FLIP_HORIZONTAL, /**< flip horizontally */
SDL_FLIP_VERTICAL, /**< flip vertically */
SDL_FLIP_HORIZONTAL_AND_VERTICAL, /**< flip horizontally and vertically (not a diagonal flip) */
} SDL_FlipMode;
#ifndef SDL_INTERNAL

View File

@@ -1874,14 +1874,23 @@ bool SDL_FlipSurface(SDL_Surface *surface, SDL_FlipMode flip)
return true;
}
bool result = true;
switch (flip) {
case SDL_FLIP_HORIZONTAL:
return SDL_FlipSurfaceHorizontal(surface);
result = SDL_FlipSurfaceHorizontal(surface);
break;
case SDL_FLIP_VERTICAL:
return SDL_FlipSurfaceVertical(surface);
result = SDL_FlipSurfaceVertical(surface);
break;
case SDL_FLIP_HORIZONTAL_AND_VERTICAL:
result &= SDL_FlipSurfaceHorizontal(surface);
result &= SDL_FlipSurfaceVertical(surface);
break;
default:
return SDL_InvalidParamError("flip");
result = SDL_InvalidParamError("flip");
break;
}
return result;
}
SDL_Surface *SDL_ConvertSurfaceAndColorspace(SDL_Surface *surface, SDL_PixelFormat format, SDL_Palette *palette, SDL_Colorspace colorspace, SDL_PropertiesID props)