2

私は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でこれらのタイプの状況を処理するための最良の方法は何ですか?

4

1 に答える 1

0

私は一度この問題を抱えていたので、これらのコード行を削除して解決しました:

glutInitContextVersion(3, 3);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);

(私はfreeglutを使用していましたが)

于 2013-07-20T21:57:23.520 に答える