Если тип и размер uniform-переменной шейдера отличаются от типа и размера, указанных в имени функции, возникает ошибка GL_INVALID_OPERATION, а значение uniform-переменной не меняется.

Если location не указывает на uniform-переменную текущего программного объекта, возникает ошибка и значение uniform-переменной не меняется.

Ошибки

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

□ текущий программный объект не задан;

□ размер uniform-переменной, объявленной в шейдере, не совпадает с размером, указанным в вызове функции glUniformARB;

□ один из целочисленных вариантов этой функции используется для установки значения float, vec2, vec3, vec4 или массивов из них, или один из f-вариантов (с плавающей запятой) этой функции используется для установки значения i nt, i vec2, i vec3, i vec4 или массивов из них;

□ 1 ocati on не является корректным адресом uniform-переменной в текущем программном объекте;

□ количество задаваемых значений превышает объявленный размер указанной uniform-переменной;

□ семплер устанавливается не функциями gl Uni formli ARB и glUniformlivARB;

□ функция gl Uni f ormARB выполняется между соответствующими вызовами gl Begi n и gl End.

Соответствующие GET-функции

glGetActiveUniformARB, в которую передается дескриптор программного объекта.

gl GetUni formLocati onARB, в которую передаются дескриптор программного объекта и имя uniform-переменной.

gl GetUni formARB, в которую передаются дескриптор программного объекта и адрес uniform-переменной.

Смотри также

gl Disable, gl Enable, glLinkProgramARB, glUseProgramObjectARB

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

glUseProgramObjectARB Название

gl UseProgramObjectARB - устанавливает программный объект в текущее состояние для рендеринга.

Прототип функции

void glUseProgramObjectARBCGLhandleARB program)

Параметры

program Дескриптор программного объекта, чьи выполняемые про граммы устанавливаются для рендеринга.

Описание Функция gl UseProgramObjectARB устанавливает программный объект program в текущее состояние. После успешного связывания шейдерных объектов с программным функцией gl AttachObjectARB, успешной их компиляции функцией gl Сотри 1 е-ShaderARB, успешной компоновки функцией gl Li nkProgramARB в программном объекте создается одна или больше выполняемых программ.


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