Количество активных атрибутов можно узнать с помощью функции gl Get -Ob j ect Pa rameterARB с параметром GL_0BJ ECT_ACTIVE_ATTR I BUTES_ARB. При значении i ndex, равном 0, возвращается информация о первой активной attribute-переменной, а при index, равном GL_0BJECT_ACTIVE_ATTRIBUTES_ARB-1, возвращается информация о последней активной attribute-переменной. Длину символьного буфера, требующуюся для сохранения самого длинного имени переменной из program, можно получить с помощью функции glGetObjectParameterARB с параметром GL_OBJECT_ACTIVE_ ATTRIBUTE_MAX_LENGTH_ARB.
В type возвращается указатель на значение типа данных attribute-переменной. Возможные типы данных: GL_FL0AT, GL_FL0AT_VЕС2_ARВ, GL_FL0AT_VEC3_ARB, GL_FL0AT_-VEC4_ARB, GL_FL0AT_MAT2_ARB, GL_FL0AT_MAT3_ARB, GL_FL0AT_MAT4_ARB. В size возвращается размер атрибута в единицах типа из type.
Эта функция возвращает максимум информации об указанной attribute-переменной, а если таковой нет, значение 1 ength будет равно 0, a name - пустой строке. Это может произойти в случае неудачного выполнения операции компоновки.
Ошибки
GL_INVALID_VALUE возникает в следующих случаях:
□ program не является дескриптором объекта OpenGL;
□ значение i ndex больше или равно GL_OBJECT_ACTI VE_ATTRIBUTES_ARB.
□ значение maxLength меньше 0.
GL_INVALID_0PERATI0N возникает в следующих случаях:
□ program не является объектом типа GL_PR0GRAM_0BJECT_ARB;
□ функция gl GetActi veAttri bARB выполняется между соответствующими вызовами gl Begin и gl End.
Смотри также
gl Bi ndAttri bLocati onARB, gl Li nkProgramARB, glVertexAttri bARB, 1VertexAttri bPointerARB
g IGetActi veil n iform ARB Название
glGetActi veUni formARB - возвращает информацию об активной uniform-перемен-ной из указанного программного объекта.
Прототип функции
void glGetActiveUniformARB( GLhandleARB program,
GLuint index,
GLsizei maxLength,
GLsizei *length,
GLint *size.
GLenum Чуре.
GLcharARB *name)
Параметры
program Дескриптор программного объекта, к которому выполняется запрос.
index Индекс uniform-переменной, для которой выполняется запрос.
maxLength Максимальное количество символов, которое OpenGL может записать в буфер name.
1 ength Возвращает количество символов, записанных в буфер name (без учета завершающего нуля), если в функцию передается не NULL.
si ze Возвращает размер uniform-переменной,
type Возвращает тип uniform-переменной.
паше Возвращает строку с завершающим нулем, в которой содержит ся имя uniform-переменной.
Описание
Функция gl GetActi veUni formARB возвращает информацию об активной uniform-ne-ременной из программного объекта program. Размер буфера символов, который выделяется приложением, указан в maxLength, ауказатель на этот буфер передается в паше. Uniform-переменная (встроенная или определенная разработчиком) считается активной, если во время операции компоновки было определено, что программа может обращаться к переменной во время выполнения. Это означает, что для program должна хотя бы раз выполниться операция компоновки gl Li nkProgramARB, не обязательно успешно.