我想做这个自定义 CIFilter。
var dummyColors = [
CIVector(x: 0.9, y: 0.3, z: 0.4),
CIVector(x: 0.2, y: 0.5, z: 0.9),
CIVector(x: 0.5, y: 0.9, z: 0.3)
]
var normal = dummyColors.withUnsafeMutableBufferPointer { (buffer) -> UnsafeMutablePointer<CIVector> in
var p = buffer.baseAddress
print(p)
return p!
}
//this is parameter and how to pass bvalue to the kernel function
return self.kernel.apply(extent: inputExtent,
roiCallback: roiCallback,
arguments: [inputImage, reddish, greenish, blueish, normal]) // (5)
这是我试图用指针传递参数。但是代码似乎不喜欢它,它只是崩溃而没有打印错误。
这是金属功能
extern "C" { namespace coreimage { // (3)
//this is how you define parameter on the top of the function
float4 dyeInThree(sampler src,
float3 redVector,
float3 greenVector,
float3 blueVector,
device float3 *a)
还有另一种方法如何将参数传递给我的金属代码?