The GLJPanel implementation does not seem to unbind a temporary texture it uses for reading back pixels from the GPU. The texture is bound at line 1266 in GLJPanel: gl.glBindTexture(GL.GL_TEXTURE_2D, fboTex.getName()); If an application does not use texturing but still specifies texture coordinates (for example allowing an on/off switch for displaying textures), this can cause some hard-to-find rendering issues. It would be nice to have GLJPanel clean up and possible restore the original texture state.
fixed, see http://jogamp.org/git/?p=jogl.git;a=commit;h=c427ed22244df44b71a0f1f000b0f93e56c283c2
Fix Bug 826 Regression caused by commit 41190c3830157abdf9649cbf7767e57108f55075 (Bug 975) Commit 41190c3830157abdf9649cbf7767e57108f55075, fix for 'Bug 975 GLJPanel's OffscreenDrawable double swap', caused a regression of commit c427ed22244df44b71a0f1f000b0f93e56c283c2, fix for 'Bug 826: GLJPanel: Fully restore TextureState and Viewport'. Commit 41190c3830157abdf9649cbf7767e57108f55075 issues offscreenDrawable.swapBuffers() and hence modifying the texture unit settings before saving the TextureState, the whole purpose of commit c427ed22244df44b71a0f1f000b0f93e56c283c2.