OpenGL— это стандарт для двумерной и трехмерной графики, впервые введенный Silicon Graphics в 1992 году. Сама библиотека может быть создана кем угодно, лишь бы она отвечала спецификации, установленной стандартом. Подробнее об этом можно почитать на wikipedia.
Библиотека OpenGL не является объектно ориентированной. При работе с библиотекой разработчик имеет дело только с функциями, переменными и константами. Имена всех функций OpenGL начинаются с букв gl, а констант с GL_. В именах функций содержатся суффиксы, которые говорят о количестве и типе передаваемых параметров.
Рассмотрим прототип функции glColor3f ():
gl — библиотека OpenGL; Color — команда; 3 — число аргументов; f (float) — типа аргумента (ов).
Обычно при описании функций в OpenGL принято вместо числа и их типа ставить знак *, следовательно общий вид для упомятой выше функции будет выглядеть так: glColor*(), подразумевая, что речь идет не об одной функции, а о целой серии функций, начинающихся с glColor.
Суффиксы и типы OpenGL
В следующей таблице указаны символы суффиксов и типы, используемые в OpenGL.
Например, для передачи массива из трех значений с плавающей точкой передать вфункцию glColor3fv () нужно проделать следующее:
GLfloat a[] = {1.0f, 0.0f, 0.0f}; // Создаем безразмерный массив a, и сразу инициализируем его некоторыми значениями.
glColor3fv(a); //передаем массив в функцию
В модуле QtOpenGL собранны все классы Qt для поддержки OpenGL, в нем опредлены 6 классов:
QGL — собраны некоторые константы для работы с OpenGL; QGLWidget — наследник класса QWidget. Осуществляет связь OpenGL c виджетом; QGLFormat — класс для хранения настроек OprnGL; QGLContext— контекст OpenGL (набор переменных состояния), создается автоматически QGLWidget ом; QGLColorMap— используется для индексирования цвета и зависит от используемого цветового режима; QGLPixelbuffer— содержит в себе буфер изображения OpenGL (pbuffer).