问题确实说明了一切。我正在尝试找出用Metal编写的CIFilter的函数声明中声明值(float
类型)数组的正确方法。但是,到目前为止,我尝试过的所有方法都无法正常运行,而且我开始怀疑是否可能。当我尝试实例化内核时,最简单的方法就是抛出错误的访问权限。
示例:
#include <metal_stdlib>
using namespace metal;
#include <CoreImage/CoreImage.h>
extern "C" { namespace coreimage {
float4 sampleCode(device float* array, destination dest) {
/// Do Something here
}
}}
答案 0 :(得分:0)
恐怕Metal内核不支持任意大小的数组参数。您要么必须知道在编译期间数组的最大容量(例如,Console.SetWindowPosition(0 , currentItem);
),要么就必须将数据放入一个缓冲区(作为采样器(纹理)传递给内核)。