□ все перечисленное не выполняется также при установке текущих координат.

Вместо этого необходимые операции должны быть реализованы в самом вершинном шейдере.

Если программа установлена на фрагментном процессоре, следующие стандартные операции не выполняются:

□ не накладываются текстурное окружение и текстурные функции;

□ не используются текстуры;

□ не выполняется сложение цветов;

□ не вычисляется дымка.

Вместо этого необходимые операции должны быть реализованы в самом фрагментном шейдере.

В то время когда программный объект является частью текущего состояния, приложение может менять связанные шейдерные объекты, компилировать их, присоединять дополнительные шейдерные объекты, отсоединять или удалять их. Все эти операции не влияют на уже установленные выполняемые программы. Однако повторная успешная компоновка текущего программного объекта функцией gl Li nkProgramARB повлечет за собой установку новых выполняемых программ. Несмотря на то что часть стандартной функциональности при этом недоступна, параметры внутреннего состояния OpenGL, контролирующие ее, можно изменять обычными вызовами функций OpenGL API.

Если program содержит шейдерные объекты исключительно типа GL_VERTEX_ SHADER_ARB, для обработки фрагментов будет использоваться стандартная функциональность. И наоборот, если program содержит шейдерные объекты исключительно типа GL_FRAGMENT_SHADER_ARB, стандартная функциональность будет использоваться для обработки вершин. Если program равно 0, программируемые процессоры не будут принимать участия в обработке вершин и фрагментов.

Примечания

Изменения программного объекта в одном контексте рендеринга не всегда влияют на другой контекст, пока для последнего не будет вызвана функция gl UseProgramOb j ect ARB.

Ошибки

GL_I NVAL I D_VALUE возникает, если program не равно 0 и не является дескриптором объекта OpenGL.

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

□ program не является объектом типа GL_PROGRAM_OBJECT_ARB;

□ program нельзя установить в текущее состояние;

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

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

gIGetHandleARB с аргументом program, glGetAttachedObjectsARB с аргументом program, gl GetActi veAttri bARB с аргументом program.

Смотри также

gl AttachObjectARB, glCompi1eShaderARB, glDetachObjectARB, glLinkProgramARB, glVal idateProgramARB

gIValidateProgramARB

Название

gl Val i dateProgramARB - выполняет проверку программного объекта на корректность.

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

void glValidateProgramARB(GLhandleARB program)

Параметры

program Дескриптор программного объекта для проверки корректности.

Описание

Функция gl Val idateProgramARB проверяет, могут ли выполняемые программы из program работать при текущем состоянии OpenGL. Результаты проверки сохраняются в информационном журнале программного объекта; это может быть пустая строка или текстовая информация о взаимодействии состояния текущего программного объекта с общим состоянием OpenGL. С помощью такой проверки корректности производители различных реализаций OpenGL могут предоставлять разработчику дополнительные средства диагностики: информацию о причинах неэффективности или отказов программы, о возможности дополнительной оптимизации и т. д.


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