我正在尝试实现30 fps的屏幕录制(QML场景),同时也为我的显示器渲染相同的QML场景。到目前为止,我已经跟随(http://blog.qt.io/blog/2017/02/21/making-movies-qml/)并且已经能够通过使用两个QML引擎实现屏幕和屏幕外渲染。问题是,调用glReadPixels
(QOpenGLFramebufferObject->toImage
)的任何保存方法都会阻止屏幕渲染。
我已经学会了解决这个问题的方法是使用像素缓冲区对象(pbo)来实现异步传输;我在我的桌面平台上实现了这一点,但我需要一个具有OpenGL ES 2.0和QT 5.7.1的嵌入式平台的解决方案。
有没有其他方法可以使用帧缓冲对象或纹理来实现这个目标?有没有办法在GPU内存空间中复制纹理/颜色附件并将图像以块的形式传回?
谢谢,