解除引用SDL_Surfaces?

时间:2011-07-30 17:53:27

标签: c++ pointers copy sdl

有没有办法将SDL表面复制到另一个表面,比如​​创建备份副本,而不修改副本时修改原件? *surface = *original_surface dosnt工作。 SDL_Surface没有任何构造函数,所以我不能做任何像surface = new SDL_Surface (original_surface)这样的事情。目前,我不断打开原始图像,但打开图像需要的时间比完成一个循环要长。这导致了很多滞后,并最终导致错误,导致我的程序结束

1 个答案:

答案 0 :(得分:1)

您可以创建新的兼容曲面:

copy = SDL_CreateRGBSurface(flags, width, height, original->format.BitsPerPixel,
                            original->format.Rmask, original->format.Gmask,
                            original->format.Bmask, original->format.Amask);

然后将原稿复制到副本中:

SDL_BlitSurface(original, NULL, copy, NULL);