GLint glQetUniforiaLocatlonARB(GLhand]eARB program, const GLcharARB *name)
Эта функция возвращает целое число - индекс заданной uniform-переменной. Имя uniform-переменной указано в Пате как строка с нуль-символом. Можно использовать оператор элемента массива «[> или оператор элемента структуры «.* (без пробелов) для выбора элемента массива или структуры. Расположение первого элемента массива можно получить, задав имя массива или имя и «[О]». Результатом использования этих операторов не может быть другая структура, массив структур или компонент вектора или матрицы, Если uniform-переменная не найдена в заданном программном объекте или ее имя начинается с зарезервированного префикса gl_, будет возвращаться значение -1.
До компоновки расположение uniform-переменных неизвестно. После компоновки данной командой можно получить расположение uniform-переменной. Это значение может передаваться в gl Uni formARB для установки значения uniform-переменной или в gl GetUnl formARB для запроса текущего состояния uniform-nepeMeH-ной. После успешной компоновки программного объекта место uniform-переменных не меняется до следующей компоновки.
Установка значения определенной разработчиком uniform-переменной возможна только в случае, если программный объект активен. Все определенные разработчиком uniform-переменные при компоновке объекта устанавливаются в 0. Определенные разработчиком uniform-переменные - часть состояния программного объ.73. Установка uniform-переменных
.даа, Их значения можно изменять, только если программный объект сам является частью текущего состояния для рендеринга, но при временном выводе программного объекта из текущего состояния значения остаются неизменными. Для установки uniform-переменных используются следующие несколько функций: void g1Uniform{l|2|3|4}{f|i}ARB(GLint location. TYPE v)
Эта функция устанавливает определенную разработчиком uniform-переменную или массив переменных в значение v. Суффикс 1, 2, 3 или 4 указывает, сколько компонентов содержит v. Это значение должно совпадать с количеством компонентов в TYPE (например, 1 для float, int, bool; 2 для vec2, ivec2, bvec2 и т.д.). Суффикс f указывает, что тип передаваемых значений - число с плавающей запятой, а суффикс 1 - что это целое число; этот тип должен совпадать с типом uniform-переменной, i-вариант этой функции должен использоваться для uniform-переменных, объявленных как int, ivec2, ivec3 и ivec4 или массивов из них. f-ва-риант должен использоваться для типов float, vec2, vec3 и vec4 или массивов из них. Каждый из них может использоваться для передачи значений в uniform-переменные типов bool, bvec2, bvec3 и bvec4 или массивов из них. Значение uniform-переменной будет установлено в FALSE при входном значении 0 или O.Of или в TRUE - при любом другом значении;