Important: Please read the Qt Code of Conduct -

GlCopyTexImage2D() results in black image on iOS but works on Desktop

  • Hi,

    my application has the same configuration as the "OpenGL Under QML" example (

    So i'm drawing raw openGL under QML components. After calling all my openGL commands on the default framebuffer (I do not use framebuffers at all, I rely on the QuickWindow for that and simply draw directly on the currently bound framebuffer) I want to use glCopyTexImage2D() to grab the contents of the default framebuffer and store them in a texture. All of this is done on the QSGRenderingThread ofcourse.

    This works great on desktop but on iOS it results in a black image. Are the openGL contents stored in a different framebuffer on iOS? How can I retrieve only my OpenGL content from the frameBuffer on iOS?

    Since blit operations are not available on OpenGL/ES, is there a way to capture the default framebuffer contents and store them in a texture or do I have to render on a separate framebuffer instead? I'd like to avoid rendering on a separate framebuffer for performance reasons.

Log in to reply