Назад | Оглавление | Домой | Далее

7.2.        Основные типы данных

Все команды (процедуры и функции) OpenGL начинаются с префикса gl, а все константы – с префикса GL_. Кроме того, в имена функций и процедур OpenGL входят суффиксы, несущие информацию о числе передаваемых параметров и о их типе. В табл. 1 приводятся вводимые OpenGL типы данных, стандартные типы языка C и суффиксы, которым они соответствуют.

Таблица 1

Типы данных OpenGL

Суффикс

Описание

Тип в C

Тип в OpenGL

b

8-битовое целое

char

GLbyte

s

16-битовое целое

short

GLshort

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 можно рассматривать как автомат, находящийся в одном из нескольких состояний. Внутри OpenGL содержится целый ряд переменных, например, текущий цвет или текущий режим закрашивания. Если установить текущий цвет, то все последующие объекты будут этого цвета до тех пор, пока текущий цвет не будет изменён.

По умолчанию каждая системная переменная имеет своё значение, и в любой момент значение каждой из этих переменных можно узнать. Обычно для этого используется одна из следующих функций: glGetBooleanv(), glGetDoublev(), glGetFloatv() и glGetIntegerv(). Для определения значений некоторых переменных служат специальные функции.

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

 

Назад | Оглавление | Домой | Далее