□ Совместно используемая глобальная переменная объявлена с различными типами или начальными значениями.

□ Один или более присоединенных шейдерных объектов не скомпилировался. Если операция компоновки прошла успешно, создается программа. Она содержит выполняемый модуль для вершинного процессора, или для фрагментного процессора, или для них обоих. В любом случае вся информация и выполняемые программы, задействованные в предыдущей операции компоновки, теряются.

7,3. Компоновка и использование шейдеров После операции компоновки приложения могут изменять присоединенные шейдерные объекты, компилировать их, отсоединять или присоединять дополнительные объекты, и все это не будет влиять на статус компоновки и информационный журнал до тех пор, пока не будет выполнена очередная операция компоновки.

Информацию о результатах компоновки можно получить функцией glGet-InfoLogARB (см. раздел 7.5) с аргументом program. Если программный объект был скомпонован успешно, результат будет содержать либо пустую строку, либо информацию о компоновке. При неудачной компоновке информационный журнал содержит информацию об ошибках, предупреждения и другие замечания.

Функция gl Link Prog ramARB не ожидает окончания операции компоновки и передает управление приложению. Любая последующая команда, зависящая от результата компоновки, будет ожидать ее окончания. Убедиться в том, что операция компоновки закончена, можно, вызвав функцию glGetObjectParameterARB, которая будет ожидать ее окончания, а затем выдаст результат.

После успешного завершения компоновки можно устанавливать выполняемые файлы как часть текущего состояния для рендеринга функцией

void glUseProgramObjectAREKGLhandleARB program)

Она устанавливает данный программный объект program как часть текущего состояния для рендеринга. Программный объект будет содержать выполняемый модуль для вершинного процессора, если содержит один или несколько успешно скомпилированных и скомпонованных шейдерных объектов тида GL_VERTEX_ SHADER_AR8. Точно так же программный объект будет содержать выполняемый модуль для вершинного процессора, если содержит один или несколько успешно скомпилированных и скомпонованных шейдерных объектов типа GL_FRAGMENT_ SHADER_ARB.


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