【发布时间】:2018-08-18 22:41:25
【问题描述】:
在我的 macOS 金属应用程序中,我有一种情况,我只想每隔一段时间显示一次渲染结果。我想完成每一帧的渲染过程,并将可绘制的纹理图像保存到一个文件中,但我只想每第 16 帧左右显示一次渲染。当我不想显示时,我尝试跳过 commandBuffer.present(drawable),但它不起作用。一旦我这样做,它就会停止显示新帧。跳过一次对 commandBuffer.present() 的调用后,它只是不显示任何新帧。但是,它确实会继续运行。
为什么会这样?一旦我提交了一个命令缓冲区,它是否需要呈现?
如果我不能让它工作,那么我会尝试为这些我不想显示的帧渲染到屏幕外缓冲区。但这将是额外的工作,并且需要更多内存用于屏幕外渲染缓冲区,所以如果可能的话,我宁愿能够使用我的常规屏幕渲染缓冲区。
谢谢!
【问题讨论】: