旋转MTLTexture

时间:2017-10-23 21:04:56

标签: ios rotation metal

我使用Metal来显示相机框架。我使用id<MTLTexture>将输出的样本缓冲区转换为CVMetalTextureCacheCreateTextureFromImage,这很有效......除了帧顺时针旋转90度。

如何逆时针旋转id<MTLTexture> 90度?

当我显示纹理时(MTKView),我考虑过这样做,但是当我录制视频时,它仍会以错误的方式旋转。

1 个答案:

答案 0 :(得分:2)

这里至少有几个不同的选择。

最简单的可能就是要求&#34;物理&#34;从AVFoundation旋转帧。假设您使用的是AVCaptureConnection,则可以使用setVideoOrientation API(如果可用)指定您希望帧在传送之前进行轮换。然后,您可以统一处理显示和录制,而无需您做进一步的工作。

或者,您可以在将框架绘制到“金属”视图和录制影片时应用旋转变换。听起来你已经知道如何做前者了。后者仅相当于在transform上设置AVAssetWriterInput属性,假设您正在使用它。类似的API存在于较低级别的AVFoundation类中,例如AVMutableComposition