I am trying to achieve a 30 fps screen recording (of a QML scene) while also rendering the same QML scene to my display. So far I have followed (http://blog.qt.io/blog/2017/02/21/making-movies-qml/) and have been able to achieve onscreen and offscreen rendering by use of two QML engines. The issue is that any saving method with calls to glReadPixels
(QOpenGLFramebufferObject->toImage
) will block the onscreen rendering.
I've learned a way to get around this is to use pixel buffer objects (pbo) to achieve asynchronous transfers; I have achieved this on my Desktop platform but I need a solution for my embedded platform which has OpenGL ES 2.0 and QT 5.7.1.
Is there any other way to use frame buffer objects or textures to achieve this goal? Is there a way to copy the texture / color attachment in the GPU memory space and transfer the image back in chunks?
Thanks,