YuA*_*uAo 1 boolean opengl-es fragment-shader ios gpuimage
我正在使用GPUImage框架开发iOS项目.我不能让我的着色器得到遵守.
我的片段着色器中有一个函数:
const vec2 boundMin = vec2(0.0, 0.0);
const vec2 boundMax = vec2(1.0, 1.0);
bool inBounds (vec2 p) {
return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
}
Run Code Online (Sandbox Code Playgroud)
着色器编译日志:
ERROR: 0:1: '_Bool' : syntax error syntax error
Run Code Online (Sandbox Code Playgroud)
当我替换所有调用函数
inBounds(vec2 p)
同
all(lessThan(boundMin, p)) && all(lessThan(p, boundMax))
它很棒!
问题:
OpenGL ES 2.0 Fragment Shader支持bool功能吗?如果是的话,我哪里出错了?如果不是,为什么会出现类似的功能all(),lessThan()等等.
环境:iPad mini,iOS 7,OpenGL ES 2.0,Xcode 5.0.2
我终于搞清楚了!
GPUImage使用SHADER_STRING()来解析着色器.
当我写bool,LLVM Objective-C编译器不知道这个代码将被转换为着色器字符串.当编译器看到bool它会被替换bool时_Bool,因为在Objective-C中bool被定义为_Bool!
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |