Я работаю над проектом iOS, используя инфраструктуру GPUImage. Я не могу выполнить свой шейдер.
В моем шейдере фрагмента есть функция:
const vec2 boundMin = vec2(0.0, 0.0);
const vec2 boundMax = vec2(1.0, 1.0);
bool inBounds (vec2 p) {
return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
}
Журнал компиляции шейдеров:
ERROR: 0:1: '_Bool' : syntax error syntax error
Когда я заменяю все вызовы на функцию
inBounds(vec2 p)
с
all(lessThan(boundMin, p)) && all(lessThan(p, boundMax))
он работает отлично!
Вопросы:
Поддерживается ли функция bool в OpenGL ES 2.0 Fragment Shader? Если да, то где я ошибся? Если нет, то почему существуют такие функции, как all()
, lessThan()
и т.д.
Окружающая среда: iPad mini, iOS 7, OpenGL ES 2.0, Xcode 5.0.2