关于SDL 2.0的本教程使用从main返回的代码,而不首先销毁任何资源指针:
int main(int argc, char** argv){
if (SDL_Init(SDL_INIT_EVERYTHING) == -1){
std::cout << SDL_GetError() << std::endl;
return 1;
}
window = SDL_CreateWindow("Lesson 2", SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
if (window == nullptr){
std::cout << SDL_GetError() << std::endl;
return 2; //this
}
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED
| SDL_RENDERER_PRESENTVSYNC);
if (renderer == nullptr){
std::cout << SDL_GetError() << std::endl;
return 3; //and this too
}
Run Code Online (Sandbox Code Playgroud)
在退出之前,我应该告诉我的终止函数是DestroyRenderer,DestroyWindow,DestroyTexture等吗?
与“我应该在退出程序之前释放已分配的内存”相同的问题吗?是的,如果 SDL/X11/GL/等没有错误。完成代码 - 无论如何,所有内容都会被释放。但我认为你没有理由不想自己这样做。
当然,如果您崩溃而不是退出 - 很可能有些事情不会完成,例如您不会将显示返回到本机桌面分辨率。
| 归档时间: |
|
| 查看次数: |
2090 次 |
| 最近记录: |