---
name: "SDL_ConvertSurfaceAndColorspace"
section: "3"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_ConvertSurfaceAndColorspace"
---

# SDL\_ConvertSurfaceAndColorspace(3)

Copy an existing surface to a new surface of the specified format and colorspace.

## NAME

SDL\_ConvertSurfaceAndColorspace - Copy an existing surface to a new surface of the specified format and colorspace.

## HEADER FILE

Defined in SDL3/SDL\_surface.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**SDL\_Surface \* SDL\_ConvertSurfaceAndColorspace(SDL\_Surface \*surface, SDL\_PixelFormat format, SDL\_Palette \*palette, SDL\_Colorspace colorspace, SDL\_PropertiesID props);**

## DESCRIPTION

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.

## FUNCTION PARAMETERS

- *surface*

  the existing  **SDL\_Surface**\
    structure to convert.

- *format*

  the new pixel format.

- *palette*

  an optional palette to use for indexed formats, may be NULL.

- *colorspace*

  the new colorspace.

- *props*

  an  **SDL\_PropertiesID**\
    with additional color properties, or 0.

## RETURN VALUE

( **SDL\_Surface**\
  \*) Returns the new  **SDL\_Surface**

structure that is created or NULL on failure; call

**SDL\_GetError** () for more information.

## THREAD SAFETY

This function is not thread safe.

## AVAILABILITY

This function is available since SDL 3.2.0.

## SEE ALSO

**•**(3), [**SDL\_ConvertSurface**(3)](/SDL_ConvertSurface/3.md), **•**(3), [**SDL\_DestroySurface**(3)](/SDL_DestroySurface/3.md)
