xcode 使用 clang,因此您可以使用像
typedef float float4 __attribute__((ext_vector_type(4)));
当我使用初始化向量时
float4 v = (float4)(1.0f, 2.0f, 3.0f, 4.0f);
那么所有 4 个组件都是 4.0。是否有可能在 xcode 中启用 clang 的向量构造函数?
问题在于,使用 C(和 C++)语法,当你这样做时(x, y, z, w)
,逗号操作符使得你得到的只是4.0f
. 当分配给 afloat4
时,它变成一个所有组件都设置为 的向量4.0f
。
使用方括号代替圆括号,如下所示:
float4 v = {1, 2, 3, 4};
这将为您提供一个 x=1、y=2、z=3 和 w=4 的向量。