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 typedef enum SDL_FlipMode
{ {
SDL_FLIP_NONE, /**< Do not flip */ SDL_FLIP_NONE, /**< Do not flip */
SDL_FLIP_HORIZONTAL, /**< flip horizontally */ SDL_FLIP_HORIZONTAL, /**< flip horizontally */
SDL_FLIP_VERTICAL /**< flip vertically */ SDL_FLIP_VERTICAL, /**< flip vertically */
SDL_FLIP_HORIZONTAL_AND_VERTICAL, /**< flip horizontally and vertically (not a diagonal flip) */
} SDL_FlipMode; } SDL_FlipMode;
#ifndef SDL_INTERNAL #ifndef SDL_INTERNAL

View File

@@ -1874,14 +1874,23 @@ bool SDL_FlipSurface(SDL_Surface *surface, SDL_FlipMode flip)
return true; return true;
} }
bool result = true;
switch (flip) { switch (flip) {
case SDL_FLIP_HORIZONTAL: case SDL_FLIP_HORIZONTAL:
return SDL_FlipSurfaceHorizontal(surface); result = SDL_FlipSurfaceHorizontal(surface);
break;
case SDL_FLIP_VERTICAL: 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: 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) SDL_Surface *SDL_ConvertSurfaceAndColorspace(SDL_Surface *surface, SDL_PixelFormat format, SDL_Palette *palette, SDL_Colorspace colorspace, SDL_PropertiesID props)