я просто начался с помощью OpenGL, и кажется, что не легко понять работу glutMainLoop()
что действительно происходит там? Это остается там делающим ничто, пока какой-либо из вызовов функции не отвечает?
Это точно , как заявила StrixVaria .
glutMainLoop входит в цикл обработки событий GLUT. Эту процедуру следует вызывать не более одного раза в программе GLUT. После вызова эта процедура никогда не вернется. При необходимости он будет вызывать любые зарегистрированные обратные вызовы.
Взято из здесь
Он вызывает ваш обратный вызов дисплея снова и снова, вызывая простоя между ними, чтобы он мог поддерживать определенную частоту кадров, если это возможно, и другие, если необходимо (например, если вы изменяете размер окна или запускаете событие ввода
По сути, внутри этой функции находится основной цикл программы, в котором GLUT выполняет большую часть работы за вас и позволяет вам просто настраивать конкретную логику программы в этих обратных вызовах. Прошло много времени с тех пор, как я работал с GLUT, и это определенно сначала сбивает с толку.
В вашем отображении обратный вызов, очевидно, должен быть вашей основной логикой для рисования того, что должно происходить. В обратном вызове в режиме ожидания должны быть очень легкие операции, чтобы определить, каким должно быть изменение состояния с момента последнего вызова дисплея до следующего раза. Например, если вы что-то анимируете,