I just look at the Juce OpenGL shader abstraction. I see no method which allows me to 'unbind' the shader program, i.e. the equivalent of glUseProgram(0). I can type that myself of course, but I think if you supply this abstraction, I should not have to resort to native GL calls in order to stop using the shader when I finished drawing some primitives and want to use no shader afterwards, or just clean up the GL state behind me. Just wanted to note that, I can work just fine with the way things are!