Uniform-переменные, объявленные как структуры или массивы структур, непосредственно не возвращаются. Вместо этого каждая переменная сводится к ее фундаментальным компонентам, содержащим операторы « » и «[]», и каждое имя будет являться корректным для вызова функции gl GetUni formLocati onARB. Это имя не может быть именем структуры, массива структур, компонента матрицы или вектора. Каждый из этих фундаментальных компонентов считается отдельной активной uniform-переменной с соответствующим индексом. Если активная uniform-переменная сводится к элементу массива, все элементы этого массива считаются активными.

Размер uniform-переменной возвращается в size. Uni form-переменные, не являющиеся массивами, имеют размер 1, а массив uniform-переменных имеет размер этого массива. Структуры и массивы структур сводятся к компонентам, как описано ранее, и каждое возвращаемое имя имеет тип данных из приведенного списка. Если в результате такого приведения получается массив, возвращаемый размер будет размером этого массива, в противном случае возвращаемый размер будет равен 1.

Приложение Б. Справочник функций API

Перед выполнением этой операции для program должна обязательно вызываться функция gl Li nkProgramARB, не обязательно успешно. Uniform-переменная (встроенная или определенная разработчиком) считается активной в программном объекте, если за время выполнения программы возможны обращения к этой переменной.

Список активных uniform-переменных включает как встроенные (начинаются с gl_), так и определенные разработчиком переменные.

Эта функция возвращает максимум доступной информации. Если информация отсутствует, значение length будет равно 0, а в name возвратится пустая строка. Это может произойти в случае неудачного выполнения компоновки.

Ошибки

GL_INVALID_VALUE возникает в следующих случаях:

□ program не является дескриптором объекта OpenGL;

□ значение index больше или равно GL_OBJECT_ACTIVE_UNIFORMS_ARB;

□ значение maxLength меньше 0. GL_INVALI0_0PERATI0N возникает в следующих случаях:


⇐ Предыдущая| |Следующая ⇒