iinclude <GL/glut.h>
При этом одновременно в текст программы включаются и заголовочные файлы стандартной библиотеки gl.h и библиотеки утилит OpenGL glu.h. В этих файлах находятся и макроопределения таких констант, как GL_LINES и GL_RGB.
2.6.4. Структура программы
Все программы, которые мы будем рассматривать в данной книге, имеют такую же структуру, что и программа построения узора Серпинского. Во всех этих программах будет использоваться библиотека GLUT. Функция main() включает вызовы функций из библиотеки GLUT, которые устанавливают параметры окна (или окон) приложения и обеспечивают поддержку со стороны операционной системы процесса отображения. В функции main() также объявляется имя функции отображения с обратным вызовом, которая, собственно, и формирует изображение. Помимо нее, в программе могут существовать и другие функции с обратным вызовом, которые необходимы для организации взаимодействия с пользователем. В
12 Я надеюсь, что у читателей не возникнет путаница из-за того, что я использую те же имена функций, которые упоминаются в руководстве OpenGL Programmer's Guide [Оре97,а] или в документации на библиотеку GLUT [Kil94,a].
Графическое программирование
функции myinit() настраиваются значения атрибутов и опций прикладной программы, для чего используются функции из библиотек GL и GLU. Хотя эти настройки можно выполнять и в функции main( ), текст программы будет понятнее и его будет легче сопровождать, если обращения к функциям из библиотеки GLUT вынести в отдельный блок (в данном случае - функцию main( )). Как правило, в программах OpenGL практически вся процедура формирования изображения выполняется в функции отображения с обратным вызовом, которую чаще всего именуют display ( ).
2.7. Программа Gasket
В дополнение к функции main(), представленной в листинге 2.1, в программу Gasket формирования узора Серпинского нужно включить функции myinit() (листинг 2.2) и display ( ) (листинг 2.3). Эта программа будет выводить точки красного цвета на белом фоне. При формировании изображения используются двухмерная система координат и прямоугольник (квадрат) видимости размером 500x500, причем начало координат располагается в левом нижнем углу этого квадрата.