我想知道如何将SDL_Surface *与shared_ptr连接?
在删除SDL_FreeSurface(SDL_Surface*)
之前,我需要致电SDL_Surface
。如何在shared_ptr中“修改删除过程”?
答案 0 :(得分:13)
只需将SDL_FreeSurface传递给构造函数:
std::shared_ptr<SDL_Surface> shared_surf(SDL_LoadBMP("foo.bmp"), SDL_FreeSurface);
请确保您不使用SDL_SetVideoMode
或SDL_GetVideoSurface
返回的指针执行此操作。