Более подробное описание использования семплеров в шейдере приводится в разделе 10.1.

f,9. Средства диагностики Иногда бывает сложно определить, почему программа не работает. Случаются ситуации, когда программа не работает из-за неправильного значения семплера. Значения этих переменных можно менять в любое время после компоновки и до выполнения программы. Чтобы поведение программы было надежным, реализация OpenGL должна проводить некоторые проверки во время выполнения программы, непосредственно перед началом выполнения шейдера (то есть перед выполнением рендеринга). В этот момент единственный способ сообщить об ошибке- установить флаг ошибки в OpenGL, но приложения обычно не проверяют флаг ошибки в этой критической для производительности точке.

Чтобы получать более подробную информацию о подобных проблемах, в API языка шейдеров OpenGL определена новая функция, которая может явно выполнить такую проверку и выдать диагностическую информацию:

voici glValidateProgranARBtGLhandleARB program)

Функция проверяет, могут ли выполняемые модули из program выполняться для текущего состояния OpenGL. Диагностическая информация, полученная в результате этой проверки, будет сохранена в информационном журнале программного объекта. Она может содержать пустую строку или строку с описанием того, как текущий программный объект взаимодействует с остальными параметрами OpenGL. Это позволяет разработчикам определить, почему текущая программа неэффективна, не очень оптимальна, не может выполняться и т. д.

Результат выполнения этой операции будет сохранен как часть состояния программного объекта. Это значение будет установлено в GL_TRUE при успешной проверке или в GL_FALSE - при неудачной проверке, а получить его можно функцией glGetObjectParaœterARB с аргументами program и GL_08JECT_VAL IDATE_STATUS_ARB.

Эта функция используется только во время разработки приложения. Содержимое информационного журнала (текст диагностических сообщений) обычно зависит от реализации OpenGL, то есть нельзя ожидать от разных реализаций одних и тех же сообщений.


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