Copy an existing surface to a new surface of the specified format.
Defined in <SDL3/SDL_surface.h>
SDL_Surface * SDL_ConvertSurface(SDL_Surface *surface, SDL_PixelFormat format);
SDL_Surface * | surface | the existing SDL_Surface structure to convert. |
SDL_PixelFormat | format | the new pixel format. |
(SDL_Surface *) Returns the new SDL_Surface structure that is created or NULL on failure; call SDL_GetError() for more information.
This function is used to optimize images for faster repeat blitting. This is accomplished by converting the original and storing the result as a new surface. The new, optimized surface can then be used as the source for future blits, making them faster.
If you are converting to an indexed surface and want to map colors to a palette, you can use SDL_ConvertSurfaceAndColorspace() instead.
If the original surface has alternate images, the new surface will have a reference to them as well.
This function is available since SDL 3.1.3.
SDL_Surface *input; SDL_Surface *output = SDL_ConvertSurface(input, SDL_PIXELFORMAT_RGBA32);