我正在关注来自 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() 似乎只是自行执行了 exit() 。在 C 中处理这些类型的情况的最佳方法是什么?