MTLBuffer 设置数组数据的时候 总是为 0 的错误
代码如下:
let textureData = [
0.0, 0.0,
1.0, 0.0,
0.0, 1.0,
1.0, 1.0
]
var ptransformMatrix4x4 = simd_float4x4(transform)
textCoordBuffer = metalManager?.deviceGPU.makeBuffer(bytes: textureData,
length: textData.count * MemoryLayout<Float>.size,
options: [])
在进行Metal debug 调试的时候 发现 textCoordBuffer 的值总是为 0
但是 textureData的值又是对的
然后发现 可能是需要明确指定数据类型,以前遇到过,所以更改如下:
let textureData :[Float] = [
0.0, 0.0,
1.0, 0.0,
0.0, 1.0,
1.0, 1.0
]
然后发现纹理坐标传入就对了
感觉在和Metal 做数据对接的时候 需要明确声明每个数据的具体类型