Nav*_*eur 9 android opengl-es glsl fragment-shader
有人知道如何switch case在三星Galaxy S2上的片段着色器中进行语法处理吗?我得到编译错误:Expected literal or '(', got 'switch'.
我的语法如下:
switch(i){
case 0: x = alphas[0]; break;
case 1: //...etc.
}
Run Code Online (Sandbox Code Playgroud)
这在Nexus 7上工作正常,但在Galaxy S2上我得到了上述错误.是否switch case说明根本不可能在Galaxy S2?我想要使用它们的原因是它们似乎比if elseNexus 7 提供了性能提升.如果它们在Galaxy S2上是不可能的,有没有办法查询设备并使用(switch case如果可用),if else否则?
switchOpenGL ES 2.0不支持该语句.从OpenGL ES着色语言1.0.17规范3.7:
以下是保留供将来使用的关键字.使用它们将导致错误:
asm类union enum typedef模板这个打包的goto 开关默认...
GLSL ES基于桌面GLSL的1.10版本,但是在版本1.30中添加了"switch case"语句,因此您不能假设设备会支持它.
此外,我建议避免片段着色器中的分支,因为它严重打击了perfomanace.
| 归档时间: |
|
| 查看次数: |
9802 次 |
| 最近记录: |