Все команды (процедуры и функции) OpenGL начинаются с префикса gl, и все константы - с префикса GL_. Кроме того, в имена функций, и процедур OpenGL входят суффиксы, несущие информацию о числе передаваемых параметров и их типе. В табл. 4.1 приводятся вводимые OpenGL типы данных, каким стандартным типам языка С они соответствуют и какие суффиксы им соответствуют.
Таблица 4.1
|
Суффикс |
Описание |
Тип в С |
Типы в OpenGL |
| b |
8-битовое целое |
signed char | GLbyte |
| s |
16-битовое целое |
short | GLshort |
|
Суффикс |
Описание |
Tun e C |
Типы в OpenGL |
| i |
32-битовое целое |
long | GLint, GLsizei |
| f |
32-битовое число с плавающей точкой |
float | GLfloat, GLclampf |
| d |
64-битовое число с плавающей точкой |
double | GLdouble, GLclampd |
| ub |
8-битовое беззнаковое целое |
unsigned char | GLubyte, GLboolean |
| us |
16-битовое беззнаковое целое |
unsigned short | GLushort |
| ui |
32-битовое беззнаковое целое |
unsigned long | GLUint, GLenum, GLbitfield |
| void | GLvoid |
Некоторые команды OpenGL оканчиваются на букву v, что говорит о том, что команда получает указатель на массив значений, а не сами эти значения в виде отдельных параметров. Многие команды имеют как векторные, так и невекторные версии, например конструкции
glColor3f (1.0, 1.0, 1.0);
и
GLfloat color [] = { 1.0, 1.0, 1.0 }; glColor3fv ( color ) ;
полностью эквивалентны.
OpenGL можно рассматривать как машину, находящуюся в одном из нескольких состояний {Finite State Machine, FSM). Внутри OpenGL содержится целый ряд переменных, например текущий цвет, текущее значение вектора нормали, способ наложения текстуры и т. п. Можно установить текущий цвет, и все последующие объекты будут использовать этот цвет, до тех пор, пока текущий цвет не будет изменен. Каждая системная переменная имеет свое значение по умолчанию и в любой момент времени можно узнать значение каждой из этих переменных. Обычно для этого используется одна из следующих функций: glGetBooleanv, glGetDoublev, glGet-Floatv и glGetlntergerv. Для определения значения некоторых переменных служат специальные функции.
