金属可以实现交换链吗?

Can metal implement a swap chain?

我尝试使用

使其类似于交换链

renderPassDescriptor.colorAttachments[0].loadAction,

但这不可能,因为它获取了一个不是之前可绘制对象的可绘制对象。

因为drawable的纹理不能交换,我认为交换链不能实现。

金属可以实现交换链吗?

在 Metal 中,交换链是通过从每一帧的 CAMetalLayer 中检索新的 MTLDrawable 并从该可绘制对象中检索 MTLTexture 来实现的。

可用的可绘制对象数量非常有限(通常为 3 个),因此您需要在渲染循环中仔细管理这些对象。

Apple 的文档在这个主题上不是很好,但您可以找到 more information here。本文档是根据在自定义视图中包含交换链逻辑而编写的,但您不必这样做。您可以将交换链编写为单独渲染器的一部分 class,等等