Все команды (процедуры и функции) 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. Для определения значения некоторых переменных служат специальные функции.


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