我想在Objective-C中为我的iOS应用程序使用Metal中定义的一些矢量数据类型(例如uint2
,docs)。但是,我还没有找到关于这是否可行的任何信息。
答案 0 :(得分:5)
这些类型在<simd/SIMD.h>
中用于C和C ++(对于Objective-C和Objective-C ++,扩展名为。)
它们实际上是相同的类型,具有相同的数据布局,以及与您在Metal着色器中使用的相同的相关功能。因此,在您期望与Metal接口的CPU端代码中使用它们是一个好主意。例如,您可以在C ++头文件中为顶点着色器输入定义自己的结构,然后导入该标头并在CPU代码和着色器中使用相同的结构定义。
请注意,名称有所不同:例如uint2
在C中为vector_uint2
,在C ++中为simd::uint2
。