gpt4 book ai didi

objective-c - vec4 内核例程上的编译器错误

转载 作者:行者123 更新时间:2023-12-03 18:05:08 25 4
gpt4 key购买 nike

我正在尝试将以下内核例程包含到我的 Cocoa/Objective C 项目中。但我在构建项目时遇到编译器错误。第一行被标记为语法错误,指出“在 'vec4' 之前预期有 '='、','、';'、'asm' 或 'attribute'。

您知道这意味着什么以及如何解决它吗?据我所知,该声明看起来与我能找到的所有其他内核示例非常相似。

kernel vec4 threshold(sampler image, float midPoint, float range ) // First error on this line
//This from http://www.codingadventures.com/2008/06/threshold-filter-in-glsl/
{
vec4 pixel=unpremultiply( sample(image, samplerCoord(image)) );

float high = midPoint + range * 0.5;
float low = midPoint - range * 0.5;

high = min(1.0, high);
low = max(0.0, low);

float brightness = 0.3 * pixel.x + 0.59 * pixel.y+ 0.11 *pixel.z;

brightness = step( low, brightness ) * brightness;

brightness = brightness + step( high, brightness );
brightness = min( 1.0, brightness );

pixel.x = pixel.y =pixel.z = brightness;

return premultiply(pixel);
}

最佳答案

您缺少框架导入。错误是编译器不知道什么kernel意味着(它期望您为其分配一个值或以其他方式声明它)。

尝试以下 these steps :

  • 选择项目 > 添加到项目。
  • 导航至System/Library/Frameworks ,选择 QuartzCore.framework 并单击“添加”。
  • 在出现的工作表中,点击“添加”。
  • 然后您可能还需要 #import <QuartzCore/QuartzCore.h>在您希望使用 Core Image 的所有文件中。

    关于objective-c - vec4 内核例程上的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3107274/

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