非法 glutInit() 重新初始化尝试:如何取消初始化 glut?
illegal glutInit() reinitialization attempt: How can I de-initialize glut?
我实现了一个 class 函数,如果 class 被激活,它会调用 glutInit()
。像这样:
void myViewer::Activate() {
int argc = 1;
char* argv[1] = {const_cast<char*>("none")};
glutInit(&argc, argv);
}
void myViewer::Deactivate() {
...
}
如何“取消初始化”Glut 组件?调用激活函数两次报错freeglut (none): illegal glutInit() reinitialization attempt
文档的 Initialization 部分明确指出:
The primary initialization routine is glutInit
that should only be
called exactly once in a GLUT program.
您也没有将 glutInit
用作 specified。试图提供虚假论据是自找麻烦。他们想要原版 (argc
, argv
) 是有原因的:
glutInit will initialize the GLUT library and negotiate a session with the window system.
现在由于技术原因,即时关闭 OpenGL 会话不是一项简单的任务。在尝试释放与操作系统协商的显示表面之前,需要仔细彻底地关闭所有 OpenGl 活动。
许多视频游戏甚至不尝试这样做。他们只是抓取 window 用于显示和 运行 直到游戏终止(无论哪种方式 :))。
碰巧,供过于求明确禁止您尝试。
我实现了一个 class 函数,如果 class 被激活,它会调用 glutInit()
。像这样:
void myViewer::Activate() {
int argc = 1;
char* argv[1] = {const_cast<char*>("none")};
glutInit(&argc, argv);
}
void myViewer::Deactivate() {
...
}
如何“取消初始化”Glut 组件?调用激活函数两次报错freeglut (none): illegal glutInit() reinitialization attempt
文档的 Initialization 部分明确指出:
The primary initialization routine is
glutInit
that should only be called exactly once in a GLUT program.
您也没有将 glutInit
用作 specified。试图提供虚假论据是自找麻烦。他们想要原版 (argc
, argv
) 是有原因的:
glutInit will initialize the GLUT library and negotiate a session with the window system.
现在由于技术原因,即时关闭 OpenGL 会话不是一项简单的任务。在尝试释放与操作系统协商的显示表面之前,需要仔细彻底地关闭所有 OpenGl 活动。
许多视频游戏甚至不尝试这样做。他们只是抓取 window 用于显示和 运行 直到游戏终止(无论哪种方式 :))。
碰巧,供过于求明确禁止您尝试。