Синтаксис команд OpenGL | MetodPro.ru

Реклама на сайте

Синтаксис команд OpenGL


Обычно команды OpenGL реализуются в виде процедур или функций. Их имена начинаются с префикса gl, затем следует название команды, в котором  каждое слово начинается с большой буквы. Это особенно важно для языков, учитывающих регистр букв в тексте программы, например для Java. После названия может присутствовать суффикс, определяющий количество и тип параметров. Так команда, определяющая вершину, может иметь несколько реализаций. Например:

glVertex2f – задает вершину на плоскости, имеет два параметра каждый из которых представляет собой 32-разрядное число с плавающей точкой;

glVertex3i – задает вершину в пространстве, имеет три параметра каждый из которых представляет собой 32-разрядное целое число.

В общем виде интерфейс команды можно определить следующим образом:

glCommandName[1 2 3 4][b s i f d ub us ui][v](список параметров), где

CommandName – имя команды;

[1 2 3 4] – допустимые значения числа аргументов команды;

[b s i f d ub us ui] – допустимые типы аргументов:

Символ

Тип OpenGL

Описание

b

GLbyte

8 разрядов, целое

s

GLshort

16 разрядов, целое

i

GLint,GLsizei

32 разряда, целое

f

GLfloat

32 разряда, плавающая точка

d

GLdouble,GLclampd

64 разряда, плавающая точка

ub

GLubyte,GLboolean

8 разрядов, беззнаковое целое

us

GLushort

16 разрядов, беззнаковое целое

ui

GLuint,LGenum

32 разряда, беззнаковое целое

 

Появление в суффиксе символа v означает, что в качестве аргумента используется  указатель на массив. Количество и тип элементов массива определяется другими символами суффикса.

При написании программ можно использовать соответствующие  типы данных используемого языка программирования, но лучше этого не делать. Используя только типы данных, объявленные в OpenGL, вы обеспечиваете переносимость кода между различными реализациями библиотеки и избегаете ряда ошибок, вызванных неправильно установленным соответствием типов.

Конкретные реализации библиотек могут отклоняться от приведенной схемы использования суффиксов. Некоторые языки программирования поддерживают  перегрузку процедур (overload), родовые функции (generic function) или  иной механизм, позволяющий создавать несколько реализаций одной процедуры, различающихся типом и количеством параметров. В реализации библиотек для этих языков суффиксы могут быть опущены.

Если команды принадлежат библиотекам, расширяющим возможности OpenGL, то они имеют префиксы, отражающие название библиотеки. Например, команды, начинающиеся с префикса glu или glut, находятся, соответственно, в библиотеках GLU или GLUT. Мы будем использовать команды из этих библиотек для сокращения объема вспомогательного кода в примерах.

Константы в OpenGL  начинаются с префикса  GL и пишутся заглавными буквами. Но, в отличие от команд, слова в имени константы разделяются символами подчеркивания. Префикс также отделяется от имени. Примерами могут служить константы GL_LINE_STRIP и GL_COLOR_BUFFER_BIT.



Методические пособия

  • Системы автоматизированного проектирования
  • Социология молодёжи
  • Общая социология
  • Криптография
  • Проектирование трансляторов
  • Компьютерная графика
  • Моделирование систем
  • Информационная безопасность
  • Теория вычислительных процессов
  • Логические основы искусственного интелекта
  • Проектирование распределённых информационных систем