您可以将数组类型传递给用Metal编写的CIFilter内核吗?

时间:2019-08-28 07:53:18

标签: ios swift metal cifilter

问题确实说明了一切。我正在尝试找出用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
    }
}}

1 个答案:

答案 0 :(得分:0)

恐怕Metal内核不支持任意大小的数组参数。您要么必须知道在编译期间数组的最大容量(例如,Console.SetWindowPosition(0 , currentItem); ),要么就必须将数据放入一个缓冲区(作为采样器(纹理)传递给内核)。