我在Swift中有以下结构
public struct PointWithValue2D {
let x: uint!
let y: uint!
let value: Float!
public init(_ x: uint, _ y: uint, _ value: Float) {
self.x = x
self.y = y
self.value = value
}
}
此结构的大小为24个字节。当我拥有此结构的Metal版本时,据我了解,大小将相同。
但是,要使我的结构在Metal中工作,我必须将属性填充到此:
struct PointWithValue2D {
uint x;
uint xPad;
uint y;
uint yPad;
float value;
float valuePad;
};
有人能解释为什么吗?