我正在遵循来自openglbook.com的openGL教程,并尝试模拟当请求的OpenGL上下文在计算机上不可用时的场景。我的笔记本电脑opengl视频驱动程序版本是3.0,我要求的是3.3。目标是优雅地从错误中恢复。代码如下:
glutInitContextVersion(3, 3);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,GLUT_ACTION_GLUTMAINLOOP_RETURNS);
glutInitWindowSize(CurrentWidth, CurrentHeight);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
WindowHandle = glutCreateWindow(WINDOW_TITLE_PREFIX);
if (WindowHandle < 1) {
fprintf(
stderr,
"ERROR: Could not create a new rendering window.\n"
);
return -1;
}我的问题是我的程序中断了:
WindowHandle = glutCreateWindow(WINDOW_TITLE_PREFIX);我甚至不能检查返回代码,因为看起来glutCreateWindow()只是自己退出()。在C中处理这些类型的情况的最佳方法是什么?
发布于 2013-07-21 05:57:24
有一次我遇到了这个问题,我解决了删除以下代码行的问题:
glutInitContextVersion(3, 3);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);(我使用的是freeglut )
https://stackoverflow.com/questions/12926246
复制相似问题