在我的freeglut项目中,我已经分配了很多内存,并且当用户关闭freeglut(或者glut)窗口时,我没有办法解放任何想法?有没有办法在freeglut(或者glut)插入退出回调函数?
2
A
回答
6
FreeGLUT提供了几种解决方案是:
您可以拨打
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_CONTINUE_EXECUTION)
和glutLeaveMainLoop()
使glutMainLoop()
函数返回,然后你就可以后glutMainLoop()
拨打免费你想要的所有记忆。与其说
glutMainLoop()
你可以让自己的事件循环这样的:bool running = true; while (running) { glutMainLoopEvent(); }And whenever you want to exit application - just set running variable to false, and free the allocated memory after while loop.
或者你也可以什么都不做 - 任何现代操作系统正确将释放所有分配的内存时,进程终止。当然,如果你需要在终止时做一些特殊的事情 - 比如写入日志文件,发送网络数据包,那么你必须手动做到这一点。
+0
感谢您的出色解决方案! –
+0
在方法2中,如果关闭窗口会怎么样。我会陷入无限的'while'循环吗?需要任何其他条件? – ar2015
1
注册的出口函数的atexit(的OnExit)主循环之前。
相关问题
- 1. 调用glut函数退出程序
- 2. 有没有办法在VBScript中退出或中断switch语句?
- 3. 有没有办法在DefaultHandler中停止或退出分析?
- 4. 有没有办法退出Greasemonkey脚本?
- 5. 有没有办法在被调用者中获得调用函数的名称?
- 6. 有没有办法回滚并退出错误的psql脚本?
- 7. 有没有办法找出函数的返回类型?
- 8. 有没有办法从Rails的视图中提前退出或“返回”?
- 9. 有没有办法让AJAX调用返回HTML内容和回调函数?
- 10. 有没有办法插入没有数据的行
- 11. 有没有办法从其他函数调用函数?
- 12. 有没有办法在preg_replace_callback回调函数中传递另一个参数?
- 13. 有没有办法让argparse.ArgumentParser.parse_args()不会退出参数错误?
- 14. 有没有办法从TADOQuery1更新或插入TADOQuery1
- 15. 有没有办法在每次调用jquery基本函数时调用函数?
- 16. 有没有办法在StaticLayout中回退到Typeface.SERIF?
- 17. 有没有办法在PHP中使用MSSQL插入数据?
- 18. 有没有办法在函数体内调用Jquery .on()
- 19. 有没有办法在Oz中存储函数/过程调用?
- 20. 有没有办法在java中的父类中调用函数?
- 21. 有没有办法让一个函数在C调用
- 22. 有没有办法在ListView中调用函数?
- 23. iPhone:有没有办法在视频结束之前退出MPMoviePlayerController?
- 24. 有没有办法阻止SQL * Plus在Control-C上退出?
- 25. 是没有办法只用一个函数在PHP笨插入所有diifferent表
- 26. 未导出的函数无法使用或者没有问题?
- 27. scrapy start_requests没有进入回调函数
- 28. scrapy回调函数没有输入
- 29. 有没有办法在F#中导入(打开)特定函数?
- 30. 有没有办法在POSIX线程中'加入'(块),而不退出joinee?
为什么要麻烦?关闭你的GLUT窗口,进程终止,释放所有分配的资源。 – datenwolf
@datenwolf:我知道这看起来很愚蠢,但我想用合法的方式来做事: - | –
实际上,我在CUDA中遇到了一个问题,因为它在调用析构函数之前释放了它的缓冲区,所以有时候您实际上需要通过“您自己的”来实现:) – NightElfik