gpt4 book ai didi

swift - 复制 Metal 帧缓冲区纹理以供读取

转载 作者:行者123 更新时间:2023-11-28 11:54:53 25 4
gpt4 key购买 nike

我正在尝试截取 MetalKit View (MTKView) 的屏幕截图,就像在答案 Take a snapshot of current screen with Metal in swift 中一样但它要求 MTKView 将 framebufferOnly 设置为 false,这会根据 Apple 禁用一些优化。

有没有办法复制 MTKView 纹理(例如 view.currentDrawable.texture)以便我可以读取像素?我不需要经常截屏,所以禁用程序运行的整个生命周期的优化是一种耻辱。

我尝试使用 MTLTexture.newTextureViewWithPixelFormat 和 blit 缓冲区,但我仍然得到关于帧缓冲区只为真的相同异常。

最佳答案

当请求屏幕截图时,您可以切换 framebufferOnly,执行一次渲染过程,然后再将其切换回来。

或者,您可以针对您自己指定的纹理执行一个渲染 channel ,将其 blit 到可绘制对象的纹理(以免在视觉上丢失一帧),然后保存您自己的纹理的内容。

关于swift - 复制 Metal 帧缓冲区纹理以供读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51291919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com