Количество активных атрибутов можно узнать с помощью функции 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, не обязательно успешно.


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