Описание
Программный объект предоставляет механизм, с помощью которого можно указать все шейдерные объекты - компоненты программы. glAttachObjectARB связывает шейдерный объект shader с программным объектом program. Это означает, что shader будет участвовать во всех операциях компоновки, выполняемых над program.
Действия, выполняемые над шейдерным объектом, всегда успешно выполняются вне зависимости от того, связан ли шейдерный объект с программным. Можно связывать их перед загрузкой исходного кода в шейдерный объект или непосредственно перед компиляцией шейдерного объекта. Не будет ошибкой связывание нескольких шейдерных объектов одного типа с одним и тем же программным объектом, так как в них могут содержаться только части целого шейдера. Можно связывать один шейдерный объект с несколькими программными объектами. Связанный шейдерный объект, который попытались удалить, на самом деле не удаляется, а просто помечается для удаления. Он будет удален после отсоединения шейдерного объекта от всех программных объектов с помощью функции glDetachObjectARB.
Ошибки
GL_I NVALID_VALUE возникает, если program или shader не являются дескрипторами объектов OpenGL.
GL_INVALI D_0PERATION возникает в следующих случаях:
□ program не является объектом типа GL_PROGRAM_OBJECT_ARB;
□ shader не является объектом типа GL_SHADER_OBJECT_ARB;
□ shader уже присоединен к program;
□ glAttachObjectARB вызывается между соответствующими вызовами glBegin и gl End.
Соответствующие GET-функции
gl GetAttachedOb jectsARB, в которую передается дескриптор программного объекта.
Смотри также
gl Compi 1 eShaderARB, glDetachObjectARB, glLi nkProgramARB, glShaderSourceARB
gIBindAttribLocationARB
Название
gIBindAttribLocationARB - устанавливает соответствие индекса дополнительных атрибутов вершин с переменной.
Прототип функции
void glBindAttribLocationARBC GLhandleARB program,
GLuint index, const GLcharARB *name)
Параметры
program Дескриптор программного объекта, в котором устанавлива ется соответствие индекса дополнительных атрибутов вершин с переменной,
i ndex Индекс дополнительного атрибута вершины.
name Строка с завершающим нулем, в которой содержится имя переменной вершинного шейдера, с которой связывается index.
Описание Функция gl Bi ndAttri bLocati onARB устанавливает соответствие определенной разработчиком attribute-переменной в программном объекте program с дополнительным атрибутом вершины index. Имя определенной разработчиком attribute-переменной передается в строке с завершающим нулем name, i ndex - индекс дополнительного атрибута вершины, соответствующий этой переменной. Когда program станет частью текущего состояния, изменение значений дополнительного атрибута вершины по index автоматически изменит значение определенной разработчиком attribute-переменной name.
Если name ссылается на attribute-переменную типа матрицы, index ссылается на первый столбец матрицы, а остальным столбцам соответствуют: i ndex+1 - для матрицы типа mat2; i ndex+1 и index+2 - для матрицы типа mat3; i ndex+1, index+2 и i ndex+3 - для матрицы типа mat4.