glutDisplayFunc вызывается всякий раз, когда ваше окно должно быть перерисовано.Это включает в себя время, когда кто-то вызывает glutPostRedisplay:)
Когда нужно перерисовывать окно?
- Когда его размер изменяется
- , когда он становится видимым
- , когда некоторые его части становятся видимыми
- , когда он перемещается
- и т. Д.
Но что если ваша функция отображения закрашивает треугольник в позиции x; y, где x; y;определяются позицией мыши?В этом случае вы должны попросить систему перерисовать окно при каждом перемещении мыши, верно?Вот почему вы будете вызывать glutPostRedisplay из MouseFunc ().На самом деле, когда вы вызываете glutPostRedisplay, событие перерисовки ставится в очередь вместе с другими событиями окна, такими как щелчок мыши и т.д.По сути, ваш mainLoop выбирает события из этой очереди и вызывает их обработчики