###### (This is the documentation for SDL3, which is the current stable version. [SDL2](https://wiki.libsdl.org/SDL2/) was the previous version!) # SDL_ConvertSurfaceAndColorspace Copy an existing surface to a new surface of the specified format and colorspace. ## Header File Defined in [](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_surface.h) ## Syntax ```c SDL_Surface * SDL_ConvertSurfaceAndColorspace(SDL_Surface *surface, SDL_PixelFormat format, SDL_Palette *palette, SDL_Colorspace colorspace, SDL_PropertiesID props); ``` ## Function Parameters | | | | | ------------------------------------ | -------------- | ------------------------------------------------------------------------------- | | [SDL_Surface](SDL_Surface) * | **surface** | the existing [SDL_Surface](SDL_Surface) structure to convert. | | [SDL_PixelFormat](SDL_PixelFormat) | **format** | the new pixel format. | | [SDL_Palette](SDL_Palette) * | **palette** | an optional palette to use for indexed formats, may be NULL. | | [SDL_Colorspace](SDL_Colorspace) | **colorspace** | the new colorspace. | | [SDL_PropertiesID](SDL_PropertiesID) | **props** | an [SDL_PropertiesID](SDL_PropertiesID) with additional color properties, or 0. | ## Return Value ([SDL_Surface](SDL_Surface) *) Returns the new [SDL_Surface](SDL_Surface) structure that is created or NULL on failure; call [SDL_GetError](SDL_GetError)() for more information. ## Remarks This function converts an existing surface to a new format and colorspace and returns the new surface. This will perform any pixel format and colorspace conversion needed. If the original surface has alternate images, the new surface will have a reference to them as well. ## Version This function is available since SDL 3.1.3. ## See Also - [SDL_ConvertSurface](SDL_ConvertSurface) - [SDL_DestroySurface](SDL_DestroySurface) ---- [CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategorySurface](CategorySurface)