Я портирую шейдеры WebGL GLSL на рабочий стол OpenGL GLSL, используя #version 120
.Расширение GLSL для поддержки?: Тройной оператор?
Есть ли расширение, которое добавит поддержку для тройного оператора ?:
?
как:
#extension GL_EXT_***: enable
Я портирую шейдеры WebGL GLSL на рабочий стол OpenGL GLSL, используя #version 120
.Расширение GLSL для поддержки?: Тройной оператор?
Есть ли расширение, которое добавит поддержку для тройного оператора ?:
?
как:
#extension GL_EXT_***: enable
Нет расширения необходимо, это правильно в базовой спецификации:
OpenGL Shading Language 1.20 Specification, раздел 5.9 "Выражения", страница 38, шестая пуля:
троичной оператор выбора (? :). Он работает на трех выражениях (exp1? Exp2: exp3). Этот оператор оценивает первое выражение, которое должно приводить к скалярному булевому. Если результат верен, он выбирает оценку второго выражения, в противном случае он выбирает оценку третьего выражения. Оценивается только одно из второго и третьего выражений. Второе и третье выражения могут быть любыми типами, до тех пор, пока их типы совпадают, или существует преобразование в разделе 4.1.10 «Неявные преобразования», которое может быть применено к одному из выражений, чтобы совместить их типы. Этот результирующий тип соответствия является типом всего выражения.
Понял, спасибо вам большое! – neosettler
Это явно проблема XY. Что вы сделали, что заставляет вас думать, что '?:' Is * not * поддерживается в GLSL? –
это может быть, но #version 120 - это ошибки кашля – neosettler
Вот что делает [проблема XY] (http://meta.stackexchange.com/a/66378/164572). Ваша проблема в том, что ваш код дает вам ошибки. Вы * думаете *, что ошибки связаны с '?:' Не поддерживаются. Вместо этого вы должны спросить о вашей * реальной * проблеме: ваш код дает вам ошибки. –