GLSL扩展支持?:三元运算符?

时间:2017-02-20 01:18:17

标签: opengl glsl ternary-operator

我使用#version 120将WebGL GLSL着色器移植到OpenGL GLSL桌面。

是否有任何扩展可以增加对?:三元运营商的支持?

像:

#extension GL_EXT_***: enable

1 个答案:

答案 0 :(得分:4)

不需要扩展,它在基本规范中是正确的:

OpenGL Shading Language 1.20 Specification,第5.9节"表达式",第38页,第6章:

  

三元选择算子(?:)。它运行在三个表达式(exp1?exp2:exp3)上。此运算符计算第一个表达式,该表达式必须生成标量布尔值。如果结果为true,则选择计算第二个表达式,否则选择计算第三个表达式。仅评估第二和第三表达式中的一个。第二个和第三个表达式可以是任何类型,只要它们的类型匹配,或者第4.1.10节“隐式转换”中的转换可以应用于其中一个表达式以使其类型匹配。生成的匹配类型是整个表达式的类型。