SDL_Surface *SDL_DisplayFormatAlpha(SDL_Surface *surface);
This function takes a surface and copies it to a new surface of the pixel format and colors of the video framebuffer plus an alpha channel, suitable for fast blitting onto the display surface. It calls SDL_ConvertSurface
If you want to take advantage of hardware colorkey or alpha blit acceleration, you should set the colorkey and alpha value before calling this function.
This function can be used to convert a colourkey to an alpha channel, if the SDL_SRCCOLORKEY flag is set on the surface. The generated surface will then be transparent (alpha=0) where the pixels match the colourkey, and opaque (alpha=255) elsewhere.
If the conversion fails or runs out of memory, it returns NULL
SDL_ConvertSurface, SDL_SetAlpha, SDL_SetColorKey, SDL_DisplayFormat, SDL_Surface