繁体   English   中英

使用GPUImage在OpenGL ES着色器中具有布尔返回类型的函数

[英]function with bool return type in OpenGL ES shader using 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));
}

着色器编译日志:

ERROR: 0:1: '_Bool' : syntax error syntax error

当我替换所有对函数的调用时

inBounds(vec2 p)

all(lessThan(boundMin, p)) && all(lessThan(p, boundMax))

很棒!


问题:

OpenGL ES 2.0片段着色器是否支持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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM