Framebuffer copy issue when using FBO objects


I’m developing an app which utilizes GL2.0+ (and an equiv port for GLES2.0) however I have an issue where by I am required to make a copy of the current Framebuffer so that I can apply some additional filter effects.

However, if the currently active Framebuffer is an FBO with a single color POT-texture attachment then I am unable to perform a texture copy operation using code which binds a texture and glCopyTexImage2D (…) to update the bound texture with the Framebuffer contents. Using glGetError() reports no errors.

If via debuging, I force the framebuffer not to be bound then the texture update works as expected. (albeit the wrong data is copied into the target texture ).

Does anybody know if this is a known issue or can point me as to the likely cause?

Not sure, though you can use glBlitFramebuffer to copy to or from whatever the FBO is bound to.

I was aware of the Framebuffer blit - but am relucant to use it since this feature is not available on the target hardware and also its not available on GLES so would still need an equiv on that profile.

My brother is reporting the same thing. He’s developing on a MAC with GL 2.x and targeting mobile devices and also wants to copy FBO texture attachments to another texture. Binding the GL back buffer works fine, but an FBO with colour attachemnt is just not playing nice. Framebuffer BLIT is not supported across all the mobile devices so it is not an option.
I’d be interested in knowing what the solution is.