На этом шаге рассмотрим формат команд OpenGL.
Библиотека OpenGL не является объектно-ориентированной. При работе с библиотекой разработчик имеет дело только с функциями, переменными и константами. Имена всех функций OpenGL начинаются с букв gl, а констант — с GL_. В имена функций входят суффиксы, говорящие о количестве и типе передаваемых параметров. Например, прототип функции glColor3f() говорит о том, что в нее должны передаваться три значения с плавающей точкой (рис. 1).
Рис.1. Формат команд OpenGL
Поэтому при описании функций в OpenGL, чтобы не повторяться, принято вместо числа передаваемых аргументов и их типа ставить символ *. Итак, общий вид для упомянутой ранее функции будет выглядеть следующим образом: glColor*(). При этом подразумевается, что речь идет не об одной функции, а о целой серии функций, начинающихся с glColor.
В табл. 1 указаны символы суффиксов и типы, используемые в OpenGL:
Таблица 1. Суффиксы и типы OpenGL
Суффикс | Тип OpenGL | C++ Эквивалент | Описание |
---|---|---|---|
b | GLbyte | Char | Байт |
s | GLshort | Short | Короткое целое |
i | GLint | Int | Целое |
f | GLfloat | float | С плавающей точкой |
d | GLdouble | double | С плавающей точкой двойной точности |
ub | GLubyte | unsigned byte | Байт без знака |
us | GLushort | usnigned short | Короткое целое без знака |
ui | GLuint | unsigned int | Целое без знака |
GL_ | GLenum | Enum | Перечисление |
v | Массив из n параметров |
Суффикс v говорит о том, что функция принимает массив. Например, массив из трех значений с плавающей точкой в функцию glColor3fv() передается следующим образом:
GLfloat a[] = {1.0f, 0.0f, 0.0f} glColor3fv(a);
На следующем шаге рассмотрим классы Qt для работы с OpenGL.
Предыдущий шаг
Содержание
Следующий шаг