有什么方法可以将SDL表面复制到另一个表面,例如创建备份副本,而在修改副本时不修改原始表面? *surface = *original_surface
不要工作。 SDL_Surface没有任何构造函数,所以我不能做任何类似surface = new SDL_Surface (original_surface)
的事情。目前,我正在不断地打开原始图像,但是打开图像所需的时间比完成一个循环所需的时间更长。这会导致很多滞后,并最终导致错误,导致我的程序结束
最佳答案
您可以创建一个新的兼容表面:
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);
关于c++ - 取消引用SDL_Surfaces?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6884945/