Opengl 有没有办法在freeglut(或glut)中插入退出回调函数?
在我的freeglut项目中,我分配了大量内存,当用户关闭freeglut(或glut)窗口时,我无法释放内存,有什么想法吗?freeglut提供了几种解决方案:Opengl 有没有办法在freeglut(或glut)中插入退出回调函数?,opengl,glut,freeglut,Opengl,Glut,Freeglut,在我的freeglut项目中,我分配了大量内存,当用户关闭freeglut(或glut)窗口时,我无法释放内存,有什么想法吗?freeglut提供了几种解决方案: 您可以调用glutSetOption(GLUT\u ACTION\u ON\u WINDOW\u CLOSE,GLUT\u ACTION\u CONTINUE\u EXECUTION)和glutLeaveMainLoop()使glutMainLoop()函数返回,然后您可以在glutMainLoop()调用后释放所有需要的内存 不需要
glutSetOption(GLUT\u ACTION\u ON\u WINDOW\u CLOSE,GLUT\u ACTION\u CONTINUE\u 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.
在主循环之前用atexit(onexit)注册退出函数。何必麻烦呢?关闭GLUT窗口,进程将被终止,释放所有分配的资源。@datenwolf:我知道这看起来很愚蠢,但我想用合法的方式来做这些事情:-实际上,我对CUDA有一个问题,因为它在调用析构函数之前释放了缓冲区,所以有时候你实际上需要通过“你自己的”:)在方法2中,如果我关上窗户怎么办。我会陷入无限的
循环吗?需要其他条件吗?