gpt4 book ai didi

ios - 使用GPUImage在OpenGL ES着色器中具有 boolean 返回类型的函数

转载 作者:行者123 更新时间:2023-12-01 17:40:34 25 4
gpt4 key购买 nike

我正在使用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!

关于ios - 使用GPUImage在OpenGL ES着色器中具有 boolean 返回类型的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21206752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com