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.