在WebGL GLSL中,我正在尝试做类似的事情:
#if (2.0 > 3.0)
// something
#endif
但是这个错误有:
错误:0:21:'语法错误':表达式无效错误:0:21:'2.0':条件表达式后的意外标记
常量表达式是其中之一
•字面值(例如,5或真)
浮点字面值是不是?
同样,我也不确定为什么这不起作用,因为它是一个const
变量,使用值的常量表达式:
const vec3 x = vec3(1.0);
...
#if (x.x > 1.0)
#endif
错误:0:21:'x':条件表达式后的意外标记
错误:0:21:'语法错误':表达式无效
错误:0:21:'。' :条件表达式后的意外标记
啊,从预处理器部分的同一文档中,它说:
#if和#elif之后的表达式仅限于在文字整数常量上运行的表达式,以及定义的运算符使用的标识符。
这就是为什么花车,length()
等不起作用。