На этом шаге рассмотрим формат команд 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.