Давайте подробнее рассмотрим функцию display
:
display()
{
glClear();
glutSwapBuffers();
drawTriangle();
}
glClear()
очищает буфер до постоянного цвета.glutSwapBuffers()
меняет местами передний буфер и задний буфер.Это покажет текущее содержимое буфера (который только чистый цвет) на экране.Содержимое нового буфера будет неопределенным.Каждый вызов отрисовки будет отрисовываться в задний буфер.
Как видите, у программы никогда не было возможности отобразить на экране что-либо, кроме чистого цвета.Просто переместите glutSwapBuffers()
в конец функции:
display()
{
glClear();
drawTriangle();
glutSwapBuffers();
}
И, пожалуйста, выберите более свежий учебник.Вы используете конвейер с фиксированной функцией, который устарел в течение 10 лет.Вы можете узнать это по звонкам типа glBegin()
или glVertex3f()
.Нет причин изучать что-то, что умирает (или уже мертво на некоторых платформах).