我正在制作的游戏中有一个shared_ptrfor 。SDL_Texture我想使用共享指针以便能够在多个对象上使用相同的纹理而不泄漏任何内存。我从一个方法返回共享指针
std::shared_ptr<SDL_Texture> RenderWindow::loadTexture(const char *filePath) {
return std::shared_ptr<SDL_Texture>(IMG_LoadTexture(renderer, filePath),
SDL_DestroyTexture);
}
Run Code Online (Sandbox Code Playgroud)
然而,当我在游戏中使用完纹理后,我希望能够手动调用它的析构函数,但是SDL_DestroyTexture当我需要它时它不会被调用,并且它会占用大量内存。有什么方法可以告诉它在我想要的时候调用它的析构函数吗?