На этом шаге рассмотрим формат команд OpenGL.
Библиотека OpenGL не является объектно-ориентированной. При работе с библиотекой разработчик имеет дело только с функциями, переменными и константами. Имена всех функций OpenGL начинаются с букв gl, а констант — с GL_. В имена функций входят суффиксы, говорящие о количестве и типе передаваемых параметров. Например, прототип функции glColor3f() говорит о том, что в нее должны передаваться три значения с плавающей точкой (рис. 1).

Рис.1. Формат команд OpenGL
Поэтому при описании функций в OpenGL, чтобы не повторяться, принято вместо числа передаваемых аргументов и их типа ставить символ *. Итак, общий вид для упомянутой ранее функции будет выглядеть следующим образом: glColor*(). При этом подразумевается, что речь идет не об одной функции, а о целой серии функций, начинающихся с glColor.
В табл. 1 указаны символы суффиксов и типы, используемые в OpenGL:
| Байт | |||
| Короткое целое | |||
| Целое | |||
| С плавающей точкой | |||
| С плавающей точкой двойной точности | |||
| Байт без знака | |||
| Короткое целое без знака | |||
| Целое без знака | |||
| Перечисление | |||
| Массив из n параметров |
Суффикс v говорит о том, что функция принимает массив. Например, массив из трех значений с плавающей точкой в функцию glColor3fv() передается следующим образом:
GLfloat a[] = {1.0f, 0.0f, 0.0f}
glColor3fv(a); На следующем шаге рассмотрим классы Qt для работы с OpenGL.