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