2011-12-10 36 views
0

我正在编写一个程序来学习如何在一般情况下使用opengl和glut,并且我有过度的问题,我并不完全明白它有什么问题。glutExitgamemode回调错误

我可以创建一个过剩的窗口并进入全屏模式,但是每当我打电话给过多的游戏模式时,它都能正常工作,但是当我退出过剩游戏时,程序崩溃而不是返回到一个小窗口。
我收到以下错误:

2011-12-10 01:09:43.709 ogl [979:903] GLUT警告:以下是对GLUT 3.0的新检查;更新你的代码。

2011-12-10 01:09:43.710 ogl [979:903] GLUT致命错误:重新显示窗口2所需的内容,但没有显示回调。

在打电话过度退出游戏模式以使程序正常工作之前,我应该怎么做?

这是代码片段:

switch (key) { case 27: exit(0); break; case 97: glutGameModeString("640x480:[email protected]"); glutEnterGameMode();

break; case 99: glutLeaveGameMode(); case 98: glutFullScreen(); break; }

这是我的代码在主:

int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowPosition(50, 100);
glutInitWindowSize(640,480);
glutCreateWindow("GameMode");


windows = glutGetWindow();
glutReshapeFunc(Reshape);
glutDisplayFunc(display);
glutKeyboardFunc(keyhandle);
glutMainLoop(); }

回答

0

2011-12-10 01:09:43.710 ogl[979:903] GLUT Fatal Error: redisplay needed for window 2, but no display callback.

这个消息告诉你,GLUT希望你给它一个显示回调函数。 glutDisplayFunc用于此目的。

因为你没有提供你的代码,所以不可能告诉你是否这是你的问题。

+0

我贴了我的主代码。问题是当我退出程序崩溃的游戏模式时。如果我没有使用glutDisplayFunc,我将无法进入游戏模式并获得全屏显示,对吗? – mma1480

+0

我明白了。在glutLeaveGameMode()后我没有添加显示功能;我现在得到它的工作,谢谢 – mma1480