Функция gl GetActi veUni formARB возвращает имя uniform-переменной, указанной по i ndex, сохраняя его в буфере name. Возвращаемая строка завершается нуль-символом. Количество реально записанных символов без учета нуль-символа возвращается в 1 ength. Если приложению это значение не требуется, можно передавать NULL.

Количество активных uniform-переменных можно узнать с помощью функции gl GetObj ectРа rameterARB с параметром GL_0BJ ECT_ACTI VEJJNI F0RMS_ARB. При значении index, равном 0, возвращается информация о первой активной uniform-переменной, а при i ndex, равном GL_0BJ ЕСТ_АСТ IVE_UN IF0RMS_ARB- 1, возвращается информация о последней активной uniform-переменной. Длину символьного буфера, требующуюся для сохранения самого длинного имени uniform-переменной из program, можно получить с помощью функции glGetObjectParameterARB с параметром GL_0BJECT_ ACTIVE_UNIF0RM_MAX_L ENGTH_ARB.

В type возвращается указатель на значение типа данных uniform-переменной. Возможные типы данных: GL_FL0AT, GL_FL0AT_VEC2_ARB, GL_FL0AT_VEC3_ARB, GL_FL0AT_VEC4_ARB, GL_INT, GL_INT_VEC2_ARB, GL_INT_VEC3_ARB, GL_INT_VEC4_ARB, GL_B00L_ARB, GL_B00L_VEC2_ARB, GL_B00L_VEC3_ARB, GL_B00L_VEC4_ARB, GL_FL0AT_MAT2_ARB, GL_FL0AT_MAT3_ARB, GL_FL0AT_MAT4_ARB.

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

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

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

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

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

Ошибки

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


⇐ вернуться назад | | далее ⇒