# SDL_SetColorKey

Set the color key (transparent pixel) in a surface.

## Header File

Defined in [SDL_surface.h](https://github.com/libsdl-org/SDL/blob/SDL2/include/SDL_surface.h)

## Syntax

```c
int SDL_SetColorKey(SDL_Surface * surface,
                    int flag, Uint32 key);
```

## Function Parameters

|                              |             |                                                                                        |
| ---------------------------- | ----------- | -------------------------------------------------------------------------------------- |
| [SDL_Surface](SDL_Surface) * | **surface** | the [SDL_Surface](SDL_Surface) structure to update.                                    |
| int                          | **flag**    | [SDL_TRUE](SDL_TRUE) to enable color key, [SDL_FALSE](SDL_FALSE) to disable color key. |
| [Uint32](Uint32)             | **key**     | the transparent pixel.                                                                 |

## Return Value

(int) Returns 0 on success or a negative error code on failure; call
[SDL_GetError](SDL_GetError)() for more information.

## Remarks

The color key defines a pixel value that will be treated as transparent in
a blit. For example, one can use this to specify that cyan pixels should be
considered transparent, and therefore not rendered.

It is a pixel of the format used by the surface, as generated by
[SDL_MapRGB](SDL_MapRGB)().

RLE acceleration can substantially speed up blitting of images with large
horizontal runs of transparent pixels. See
[SDL_SetSurfaceRLE](SDL_SetSurfaceRLE)() for details.

## Version

This function is available since SDL 2.0.0.

## See Also

- [SDL_BlitSurface](SDL_BlitSurface)
- [SDL_GetColorKey](SDL_GetColorKey)

----
[CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategorySurface](CategorySurface)