opengl glutmainloop ()

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

17
задан miller 28 March 2013 в 11:36
поделиться

2 ответа

Это точно , как заявила StrixVaria .

glutMainLoop входит в цикл обработки событий GLUT. Эту процедуру следует вызывать не более одного раза в программе GLUT. После вызова эта процедура никогда не вернется. При необходимости он будет вызывать любые зарегистрированные обратные вызовы.

Взято из здесь

4
ответ дан 30 November 2019 в 12:50
поделиться

Он вызывает ваш обратный вызов дисплея снова и снова, вызывая простоя между ними, чтобы он мог поддерживать определенную частоту кадров, если это возможно, и другие, если необходимо (например, если вы изменяете размер окна или запускаете событие ввода

По сути, внутри этой функции находится основной цикл программы, в котором GLUT выполняет большую часть работы за вас и позволяет вам просто настраивать конкретную логику программы в этих обратных вызовах. Прошло много времени с тех пор, как я работал с GLUT, и это определенно сначала сбивает с толку.

В вашем отображении обратный вызов, очевидно, должен быть вашей основной логикой для рисования того, что должно происходить. В обратном вызове в режиме ожидания должны быть очень легкие операции, чтобы определить, каким должно быть изменение состояния с момента последнего вызова дисплея до следующего раза. Например, если вы что-то анимируете,

20
ответ дан 30 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: