SDL_Surface *SDL_ConvertSurface(SDL_Surface *src, SDL_PixelFormat *fmt, Uint32 flags);
Creates a new surface of the specified format, and then copies and maps the given surface to it. If this function fails, it returns NULL.
The flags parameter is passed to SDL_CreateRGBSurface and has those semantics.
This function is used internally by SDL_DisplayFormat.
This function can only be called after SDL_Init.
Returns either a pointer to the new surface, or NULL on error.