Отображение функции glutDisplayFunc в цикле

Я хочу снова вызвать функцию glutDisplayFunc в цикле, но это ошибка. Как решить эту проблему?

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB);
    glutInitWindowSize(1000, 1000);
    glutInitWindowPosition(0, 0);
    glutCreateWindow("simple");
    for (int m = 0; m <= l; m++) {
        cout << "Please enter a stage: ";
        cin >> num;
        glutDisplayFunc(display);
    }
    initializeGL();
    glutMainLoop();

person Melo234    schedule 26.03.2017    source источник
comment
Какая ошибка? Что ты пытаешься сделать? Вызов glutDisplayFunc в цикле кажется мне довольно бесполезным.   -  person BDL    schedule 26.03.2017
comment
Окно OpenGL ничего не показывало, как могло бы быть. По той причине, что я хочу вызвать эту функцию, потому что я хочу выбрать этап для отображения графика до тех пор, пока цикл не закончится.   -  person Melo234    schedule 26.03.2017
comment
Как уже написано в ответе, glutDisplayFunc не рисует. Кроме того, если вы заблокируете процесс, который также обрабатывает оконные сообщения, ожидая ввода командной строки, ваше окно все равно не будет работать.   -  person BDL    schedule 26.03.2017


Ответы (1)


glutDisplayFunc не вызывает функцию, которую вы ему передаете. В основном он хранит, какая функция должна быть вызвана внутри файла glutMainLoop().

В основном цикле перенасыщения функция рендеринга вызывается всякий раз, когда это необходимо. Если вы хотите, чтобы он перерисовывался как можно быстрее, вызовите glutPostRedisplay(); в конце функции отображения.

person BDL    schedule 26.03.2017