是否可以在 Objective-C 中使用 Metal 数据类型?

Is it possible to use Metal data types in Objective-C?

我想在 Objective-C 中为我的 iOS 应用程序使用 Metal 中定义的一些矢量数据类型(例如 uint2docs)。但是,我还没有找到任何关于这是否可行的信息。

对于 C 和 C++,这些类型在 <simd/SIMD.h> 中(并且通过扩展,对于 Objective-C 和 Objective-C++)。

它们实际上是相同的类型,具有相同的数据布局和相同的关联函数,与您在 Metal 着色器中使用的那些相同。因此,在您希望与 Metal 交互的 CPU 端代码中使用它们是一个好主意。例如,您可以在 C++ 头文件中为顶点着色器输入定义自己的结构,然后导入该头文件并在 CPU 代码和着色器中使用相同的结构定义。

请注意名称略有不同:例如uint2 在 C 中是 vector_uint2,但在 C++ 中是 simd::uint2