Render QML on the screen and simultaneously save video from the screen (OpenGL ES 2.0)

I am trying to record on the screen at 30 frames per second (QML scenes), and also show the same QML scene on my display. So far I have been following ( http://blog.qt.io/blog/2017/02/21/making-movies-qml/ ) and was able to achieve on-screen and off-screen rendering using two QML engines. The problem is that any save method with calls glReadPixels( QOpenGLFramebufferObject->toImage) blocks the display on the screen.

I learned how to get around this in order to use pixel buffer objects (pbo) to achieve asynchronous transfers; I achieved this on my desktop platform, but I need a solution for my embedded platform with OpenGL ES 2.0 and QT 5.7.1.

Is there any other way to use frame buffer objects or textures to achieve this? Is there a way to copy a texture / color paste into the GPU memory space and transfer the image to pieces?

Thank,

+4
source share

Source: https://habr.com/ru/post/1682860/


All Articles