在WebGL GLSL中,我正在尝试执行以下操作:
#if (2.0 > 3.0)
// something
#endif
但是此错误与:
错误:0:21:“语法错误”:表达式无效 错误:0:21:'2.0':条件表达式后出现意外令牌
一个常量表达式是其中之一
•文字值(例如5或 true )
不浮动文字值吗?
类似地,我也不确定为什么它不起作用,因为它是一个const
变量,使用常量表达式作为值:
const vec3 x = vec3(1.0);
...
#if (x.x > 1.0)
#endif
错误:0:21:“ x”:条件表达式后出现意外令牌
错误:0:21:“语法错误”:表达式无效
错误:0:21:“。” :条件表达式后出现意外令牌
答案 0 :(得分:1)
啊,在“预处理器”部分的同一文档中,它说:
#if和#elif之后的表达式仅限于使用文字整数常量以及定义的运算符使用的标识符的表达式。
这就是为什么浮动,length()
等不起作用的原因。