小编vix*_*vix的帖子

在屏幕上渲染 QML 并同时在屏幕外保存视频 (OpenGL ES 2.0)

我正在尝试实现 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 内存空间中的纹理/颜色附件并将图像分块传回?

谢谢,

qt screenshot video-capture qml opengl-es-2.0

6
推荐指数
1
解决办法
606
查看次数

标签 统计

opengl-es-2.0 ×1

qml ×1

qt ×1

screenshot ×1

video-capture ×1