What is the efficiency of using the push/pop mechanism for state attributes in opengl compared to storing the previous value of an attribute in memory and then calling the appropriate function to set the old value back again once done?
Either of these options would be used in a scene graph-esque renderer to first modify the state of the context, perform some drawing operations, and then restore everything to the state above the node just visited.