---
name: "SDL_ConvertSurface"
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_ConvertSurface"
---

# SDL\_ConvertSurface(3)

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

## NAME

SDL\_ConvertSurface - Copy an existing surface to a new surface of the specified format.

## HEADER FILE

Defined in SDL3/SDL\_surface.h

## SYNOPSIS

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

**SDL\_Surface \* SDL\_ConvertSurface(SDL\_Surface \*surface, SDL\_PixelFormat format);**

## DESCRIPTION

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.

## FUNCTION PARAMETERS

- *surface*

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

- *format*

  the new pixel format.

## 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\_ConvertSurfaceAndColorspace**(3)](/SDL_ConvertSurfaceAndColorspace/3.md), **•**(3), [**SDL\_DestroySurface**(3)](/SDL_DestroySurface/3.md)
