有什么方法可以将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/

10-13 08:26