void glutMainLoop(void)

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

Собственно вывод графической информации выполняется с помощью функции отображения с обратным вызовом (display callback). Эта функция задается еще одной функцией из библиотеки GLUT, определение которой имеет вид

void glutDisplayFunc(void (*func)(void));

Здесь аргумент f une задает имя функции, которая будет вызываться операционной системой, как только она придет к выводу, что окно приложения OpenGL должно быть обновлено. Одно из таких событий - открытие окна. Поскольку разрабатываемая нами программа не

2.6. Функции управления реагирует на действия пользователя, то все процедуры формирования изображения должны быть сосредоточены в теле функции, имя которой передается в качестве аргумента glutDisplayFunc( ). Эта функция будет выполнена однократно сразу же после открытия окна и выведет изображение узора.

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

Для большинства неинтерактивных графических приложений вполне подходит та программа main( ), которая приведена в листинге 2.1.

Листинг 2.1. Функция main( ) #include <GL/glut.h>

void main(int arge, char **argv) {
glutlnit(&argc,argv) ;
glutlnitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500,500) ; glutInitWindowPosition(0,0); glutCreateWindow("Simple OpenGL example"); glutDisplayFunc(display); myinit(); glutMainLoop();
}_

Для начальной установки переменных текущего состояния, отвечающих за настройку параметров визуализации и атрибутов, используется функция myinit( )12. Эти параметры предпочтительнее устанавливать один раз, независимо от функции формирования изображения. Стандартный заголовочный файл библиотеки GLUT включается в текст программы перед определениями любых функций. В большинстве систем программирования на языке С для этого используется директива компилятора


⇐ Предыдущая| |Следующая ⇒