With the spec for OpenGL4.1 , there are tons of deprecations.
One of them is the fact that glPushAttrib will no longer be there as of 4.1.
Here is the challenge : Suppose one of my vendoes creates a 3D engine based on OpenGL and lets me intervene in a post-Draw stage, after the whole scene was drawn (For my own reasons). In the standard fixed-function architecture I pushAttrib to all attrib bits, change the states of the machine , and then do my stuff. When I'm done , I popAttrib and all is well. As of 4.1 it won't be this way. Almost everything will be in the shader program , which is fine with me, yet I could not find a way to "Push" the current shader program and then "pop" it , there is no getprogram which returns the current active program so that I may keep its ID , insert my program , and when done , re- use the old ID in order to re-activate the old program. Did I miss anything about that in the spec , or is it something there is a solution for (Or is it something the ARB needs to think about)? something like getProgram with (0) returns the current running program ID....
Thank you .